{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?27a9","webpack:///./src/components/widgets/Menu.vue?96e4","webpack:///./src/App.vue","webpack:///./src/components/widgets/Menu.vue","webpack:///src/components/widgets/Menu.vue","webpack:///./src/components/widgets/Menu.vue?0284","webpack:///./src/components/widgets/Menu.vue?4507","webpack:///./src/assets/structure.js","webpack:///src/App.vue","webpack:///./src/App.vue?b9ec","webpack:///./src/App.vue?5d35","webpack:///./src/store/index.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","render","_vm","this","_c","_self","attrs","staticClass","animationName","activeSlide","content","component","activeSlideIndex","chaptersVisited","demoStructure","activeChapterIndex","hideMenu","on","setSlideIndex","setChapterIndex","resetDemo","_e","staticRenderFns","hideKeys","$event","$emit","previousSlide","nextSlide","_v","_s","activeChapter","slides","_l","frame","index","class","$root","chapter","slide","props","structure","computed","methods","previousChapter","nextChapter","addKeyHandlers","removeKeyHandlers","beforeDestroy","created","chapters","title","subtitle","body","animation","require","bg","info","animationComponents","label","text","hoverAnimation","animationLeft","animateContent","buttons","uri","components","Menu","watch","navigateTo","checkNavigationHistory","mounted","Vue","use","Vuex","Store","state","mutations","actions","VueLottiePlayer","config","productionTip","store","h","App","$mount"],"mappings":"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","file":"js/app.ea90dc42.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-1318af14\":\"c8a89260\",\"chunk-1bbfdac8\":\"a6d0f7c9\",\"chunk-298025bc\":\"29c60e73\",\"chunk-2bfc689e\":\"5d937b7c\",\"chunk-393a7e5e\":\"56ccbb17\",\"chunk-5a1fb4ae\":\"a686f3c1\",\"chunk-5f00d9aa\":\"754ec3ab\",\"chunk-6011d4f8\":\"4d9fb329\",\"chunk-ecacd258\":\"06ca5e5c\",\"chunk-f30bf464\":\"175ef93d\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-1318af14\":1,\"chunk-1bbfdac8\":1,\"chunk-298025bc\":1,\"chunk-2bfc689e\":1,\"chunk-393a7e5e\":1,\"chunk-5a1fb4ae\":1,\"chunk-5f00d9aa\":1,\"chunk-6011d4f8\":1,\"chunk-ecacd258\":1,\"chunk-f30bf464\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-1318af14\":\"5666ef43\",\"chunk-1bbfdac8\":\"03b74d17\",\"chunk-298025bc\":\"621f0f8f\",\"chunk-2bfc689e\":\"fd3d70dc\",\"chunk-393a7e5e\":\"092c9cbd\",\"chunk-5a1fb4ae\":\"d8dc0305\",\"chunk-5f00d9aa\":\"f1854075\",\"chunk-6011d4f8\":\"7bb9be71\",\"chunk-ecacd258\":\"5b385a48\",\"chunk-f30bf464\":\"59c02b23\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=84d6affa&prod&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=style&index=0&id=d8da6994&prod&scoped=true&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('div',{staticClass:\"page-content-wrapper\"},[_c('main',[_c('transition',{attrs:{\"name\":_vm.animationName,\"mode\":\"out-in\"}},[_c(_vm.activeSlide.content.component,{key:_vm.activeSlideIndex,tag:\"component\",staticClass:\"content-component\",attrs:{\"data\":_vm.activeSlide.content.data,\"hubData\":_vm.chaptersVisited,\"structure\":_vm.demoStructure}})],1)],1),(_vm.demoStructure)?_c('Menu',{attrs:{\"structure\":_vm.demoStructure,\"activeChapterIndex\":_vm.activeChapterIndex,\"activeSlideIndex\":_vm.activeSlideIndex,\"hideKeys\":_vm.activeSlide.content.data.hideMenu},on:{\"setSlideIndex\":_vm.setSlideIndex,\"setChapterIndex\":_vm.setChapterIndex,\"reset\":_vm.resetDemo}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.hideKeys)?_c('section',{staticClass:\"menu-footer\"},[_c('div',{staticClass:\"controls\"},[_c('button',{staticClass:\"icon rounded default home\",on:{\"click\":function($event){return _vm.$emit('reset')}}},[_c('svg',{attrs:{\"fill\":\"none\",\"height\":\"14\",\"viewBox\":\"0 0 14 14\",\"width\":\"14\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('clipPath',{attrs:{\"id\":\"a\"}},[_c('rect',{attrs:{\"height\":\"14\",\"rx\":\"4\",\"width\":\"14\"}})]),_c('g',{attrs:{\"clip-path\":\"url(#a)\"}},[_c('path',{attrs:{\"d\":\"m1.26 6.261 5.074-4.927a1.182 1.182 0 0 1 1.65.004l5.02 4.941m-9.984 1.105v4.173c0 .655.53 1.182 1.178 1.182h1.76a1.18 1.18 0 0 0 1.178-1.182v-1.7m4.126-2.473v4.173a1.18 1.18 0 0 1 -1.178 1.182h-1.08\",\"stroke\":\"#fff\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])])]),_c('button',{staticClass:\"icon rounded default\",on:{\"click\":_vm.previousSlide}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"6\",\"height\":\"9\",\"fill\":\"none\",\"viewBox\":\"0 0 6 9\"}},[_c('path',{attrs:{\"fill\":\"#fff\",\"d\":\"M7.482 4.526H1.788l2.616 2.815-.663.71L0 4.025 3.74 0l.66.705L1.789 3.52h5.693v1.007Z\"}})])]),_c('button',{staticClass:\"icon rounded default\",on:{\"click\":_vm.nextSlide}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"9\",\"height\":\"9\",\"fill\":\"none\",\"viewBox\":\"0 0 9 9\"}},[_c('path',{attrs:{\"fill\":\"#fff\",\"d\":\"M.872 3.654h5.694L3.95.839l.662-.71 3.741 4.026-3.74 4.025-.659-.705 2.61-2.814H.873V3.654Z\"}})])]),_c('div',{staticClass:\"pagination\"},[_vm._v(\" \"+_vm._s(_vm.activeSlideIndex +1)+\" of \"+_vm._s(_vm.activeChapter.slides.length)+\" \")])]),_c('ul',{staticClass:\"progress\"},_vm._l((_vm.activeChapter.slides),function(frame,index){return _c('li',{key:index,class:{'active' : index === _vm.activeSlideIndex},on:{\"click\":function($event){return _vm.$root.$emit('goToAndStop', {chapter: _vm.activeChapterIndex, slide: index})}}},[_c('div')])}),0)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n
\n\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Menu.vue?vue&type=template&id=d8da6994&scoped=true&\"\nimport script from \"./Menu.vue?vue&type=script&lang=js&\"\nexport * from \"./Menu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Menu.vue?vue&type=style&index=0&id=d8da6994&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d8da6994\",\n null\n \n)\n\nexport default component.exports","const structure = {\n\n chapters: [\n {\n slides: [\n {\n content: {\n component: () => import('@/views/chapter_one/TitleScreen.vue'),\n data: {\n title: \"Empowering your 5G business absolutely requires automation\",\n subtitle: \"Automation will fuel the 5G revolution\",\n body: \"5G's full potential relies directly on automation at scale. Read on to discover how Nokia's designed-for-automation Core delivers this for you.
\",\n animation: require('@/assets/videos/icon-1.json')\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_one/TitleScreen.vue'),\n data: {\n title: \"With chaos comes opportunity\",\n subtitle: \"Market forces are changing the game for service providers\",\n body: \"The communication service provider business is being disrupted by new IT-centric competition, new technologies, and new use cases. This creates both opportunities and challenges as you chart your 5G course.
\",\n animation: require('@/assets/videos/icon-2.json')\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_one/SlideTwo.vue'),\n data: {}\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_one/SlideThree.vue'),\n data: {}\n }\n },\n {\n content: {\n component: () => import('@/views/HubSlide.vue'),\n data: {\n hideMenu: true\n }\n }\n }\n\n ],\n },\n {\n slides: [\n {\n content: {\n component: () => import('@/views/chapter_two/TitleScreen.vue'),\n data: {\n title: \"Automation at scale delivers a better business result\",\n body: \"CSPs can optimize business efficiency by adopting a webscale network approach. Nokia's core solutions are designed for cloud environments, allowing you to profit from opportunity by automating at scale.\",\n animation: require('@/assets/videos/icon-1.json')\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_two/SlideTwo.vue'),\n data: {\n title: \"Operate efficiently\",\n subtitle: \"The big idea\",\n body: \"Containerized application deployment within a webscale architecture enables a connected automation framework with extremely efficient virtualization.
\",\n bg: 'city_1',\n info: \"Communication service providers continue to struggle with high levels of OPEX from managing their networks, even after moving to an ETSI MANO cloud approach. 5G will make the situation even more complex. CSPs need to deploy 5G networks and new use cases but avoid high costs that would otherwise result from greater complexity.\",\n animationComponents:[\n {\n label: 'Reduced costs',\n text: 'Zero-touch lifecycle management of network functions, automated upgrades, much finer granularity of functions all contribute to reduce OPEX',\n animation: require('@/assets/videos/Building-the-living-network-icon-1.json'),\n hoverAnimation: require('@/assets/videos/Building-the-living-network-icon-1-white.json'),\n },\n {\n label: 'Real-time optimization',\n text: 'Container management system scales horizontally depending on workload for a network that grows and shrinks dynamically based on need',\n animation: require('@/assets/videos/Building-the-living-network-icon-4.json'),\n hoverAnimation: require('@/assets/videos/Building-the-living-network-icon-4-white.json'),\n animationLeft: true\n },\n ]\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_two/SlideTwo.vue'),\n data: {\n title: \"Diversify effectively\",\n subtitle: \"The big idea\",\n body: \"Containerized application deployment within a webscale architecture allows easy creation and onboarding of new application microservices.
\",\n bg: 'city_2',\n info: \"Communication service providers need to diversify and offer more than just voice, text, and data to grow their business. 5G offers a new approach to do just that. But physical network elements and even an ETSI MANO VNF approach are custom designed for traditional services and lack agility.\",\n animationComponents:[\n {\n label: 'Acceleration',\n text: 'Intelligent network workflows, such as auto-deployment, auto-configuration, and DevOps decrease time from concept to launch',\n animation: require('@/assets/videos/Building-the-living-network-icon-2.json'),\n hoverAnimation: require('@/assets/videos/Building-the-living-network-icon-2-white.json'),\n },\n {\n label: 'Service agility',\n text: 'IT webscale cloud-native approach allows rapid deployment of new industry vertical use cases',\n animation: require('@/assets/videos/Building-the-living-network-icon-5.json'),\n hoverAnimation: require('@/assets/videos/Building-the-living-network-icon-5-white.json'),\n animationLeft: true\n },\n ]\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_two/SlideTwo.vue'),\n data: {\n title: \"Deliver quantity\",\n subtitle: \"The big idea\",\n body: \"Containerized application deployment within a webscale architecture creates massive parallelism within a highly redundant cloud infrastructure
\",\n bg: 'city_3',\n info: \"A traditional network element approach results in a large ‘blast radius’ if an element fails. It also ties elements together in a complex web of interconnections. CSPs need to ensure premium network reliability in a faster-moving 5G service environment with more overall complexity.\",\n animationComponents:[\n {\n label: 'Service stability',\n text: 'Continuous testing coupled with the nature of the webscale cloud architecture improves stability and reliability',\n animation: require('@/assets/videos/Building-the-living-network-icon-6.json'),\n hoverAnimation: require('@/assets/videos/Building-the-living-network-icon-6-white.json'),\n },\n {\n label: 'Reduced outages',\n text: 'Remove human errors in configuration and operations, which account for 40%-80% of outages',\n animation: require('@/assets/videos/Building-the-living-network-icon-3.json'),\n hoverAnimation: require('@/assets/videos/Building-the-living-network-icon-3-white.json'),\n animationLeft: true\n },\n ]\n }\n }\n },\n {\n content: {\n component: () => import('@/views/HubSlide.vue'),\n data: {\n hideMenu: true\n }\n }\n }\n ]\n },\n {\n slides: [\n {\n content: {\n component: () => import('@/views/chapter_three/TitleScreen.vue'),\n data: {\n title: \"Webscale Cloud Model\",\n body: \"The webscale cloud model for telecom networks is a layered approach that creates progressive levels of abstractions from simple machines at the bottom toward increasing complexity at the top.
\",\n animation: require('@/assets/videos/robot-arm-icon.json')\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_three/SlideTwo.vue'),\n data: {\n title: \"Cloud Platform\",\n body: \"The cloud platform consists of compute, storage and networking hardware. It can be implemented on public cloud, private cloud, or bare metal, and it creates an Infrastructure-as-a-Service layer.
\",\n animation: require('@/assets/videos/web-scale-cloud-model-01.json')\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_three/SlideTwo.vue'),\n data: {\n title: \"Containers-as-a-Service\",\n body: \"A container runtime abstracts the platform from the cloud infrastructure, to create a Container-as-a-Service layer. Kubernetes provides container orchestration along with Docker and HELM charts. Additional container management functions provide alarms, metrics and logs.
\",\n animation: require('@/assets/videos/web-scale-cloud-model-02.json')\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_three/SlideTwo.vue'),\n data: {\n title: \"Platform-as-a-Service\",\n body: \"A set of microservices are added next that provide a common toolset for the network's Cloud-native Network Functions (CNFs) through an API interface. This results in a service provider oriented Platform-as-a-Service.
\",\n animation: require('@/assets/videos/web-scale-cloud-model-03.json')\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_three/SlideTwo.vue'),\n data: {\n title: \"Cloud-native CNFs\",\n body: \"At the top level are collections of microservices grouped into the CNFs of communication applications. These are highly portable across infrastructures, and even across container systems.
\",\n animation: require('@/assets/videos/web-scale-cloud-model-04.json')\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_three/SlideTwo.vue'),\n data: {\n title: \"The paradigm shift\",\n animateContent: true,\n body: [\n \"Orchestration is added both as an application function as well as from cloud and domain management. Since microservices expose APIs for controllability, it allows for finely grained, connected automation systems. Automation is no longer restricted to scripts driving element management systems.\",\n \"This is the paradigm shift. Moving away from a network element centric (telco) approach to a true cloud-native webscale architecture enables holistic automation. This lowers OPEX, makes it easier to onboard new services, and improves reliability.\"\n ],\n animation: require('@/assets/videos/web-scale-cloud-model-05.json')\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_three/SlideTwo.vue'),\n data: {\n title: \"The paradigm shift\",\n body: \"Orchestration is added both as an application function as well as from cloud and domain management. Since microservices expose APIs for controllability, it allows for finely grained, connected automation systems. Automation is no longer restricted to scripts driving element management systems.
This is the paradigm shift. Moving away from a network element centric (telco) approach to a true cloud-native webscale architecture enables holistic automation. This lowers OPEX, makes it easier to onboard new services, and improves reliability.
\",\n animation: require('@/assets/videos/web-scale-cloud-model-06.json')\n }\n }\n },\n {\n content: {\n component: () => import('@/views/HubSlide.vue'),\n data: {\n hideMenu: true\n }\n }\n }\n ]\n },\n {\n slides: [\n {\n content: {\n component: () => import('@/views/chapter_four/TitleScreen.vue'),\n data: {\n title: \"Automation use cases\",\n body: \"Automation is not a product. It is a technique that permeates every aspect of a service provider network, to yield lower OPEX, service agility, and to improve reliability. Here we cover five important use cases where automation leads to better returns on infrastructure.
\"\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_four/SlideOne.vue'),\n data: {\n title: \"Automated updates\",\n body: \"Vendor product updates take too long, and I don’t always get what I need.
Use CI/CD techniques to keep the vendor and service provider in lockstep, and use DevOps to deliver network element CNFs. Nokia extends CI/CD through delivery and operations to create the Nokia DelOps approach.
Automation allows for zero-touch updates, testing, and continuous monitoring of the health of the system.
\",\n animation: require('@/assets/videos/05-automated-updates.json'),\n buttons: [\n {\n uri: 'https://onestore.nokia.com/asset/210426 '\n },\n {\n uri: 'https://onestore.nokia.com/asset/210426'\n },\n ]\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_four/SlideOne.vue'),\n data: {\n title: \"Automatic configuration\",\n body: \"40% to 80% of network outages are caused by network element configuration errors. And software updates create additional work to accommodate customizations.
Automation allows for configuration to be done using a knowledge base with far fewer errors.
An automation framework does the configuration with little human intervention, and also re-applies customizations when new software updates are deployed.
\",\n animation: require('@/assets/videos/06-automatic-configuration.json'),\n buttons: [\n {\n uri: 'https://onestore.nokia.com/asset/210459'\n },\n ]\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_four/SlideOne.vue'),\n data: {\n title: \"Network optimization\",\n body: \"Static VNF allocation means that I have to provision excess capacity to accommodate highest traffic levels. Much of that capacity is idle most of the time.
Use automated horizontal scaling of microservices to dynamically expand and contract the network based on traffic conditions.
Webscale style automation automatically takes care of scaling for each CNF in the system.
\",\n animation: require('@/assets/videos/07-network-optimization.json'),\n buttons: [\n {\n uri: 'https://onestore.nokia.com/asset/210461'\n },\n ]\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_four/SlideOne.vue'),\n data: {\n title: \"Network healing\",\n body: \"Network failures require direct intervention, requiring me to keep high staff levels in case they happen.
Automation plus Artificial Intelligence capabilities detect and automatically correct for network failures of many types, without requiring human intervention.
The technology exists today, when coupled with a webscale architecture, to automatically recover from faults and create a highly reliable system leveraging the massive redundancy of the cloud.
\",\n animation: false,\n buttons: [\n {\n uri: 'https://onestore.nokia.com/asset/210462'\n },\n ]\n }\n }\n },\n {\n content: {\n component: () => import('@/views/chapter_four/SlideOne.vue'),\n data: {\n title: \"Network slicing\",\n body: \"Network slicing brings exciting new capabilities, but introduces a new complexity challenge to configure and operate – given that slices will be tuned independently and differently.
\",\n animation: require('@/assets/videos/08-network-slicing.json'),\n buttons: [\n {\n uri: 'https://onestore.nokia.com/asset/210463'\n },\n ]\n }\n }\n },\n {\n content: {\n component: () => import('@/views/HubSlide.vue'),\n data: {\n hideMenu: true\n }\n }\n }\n ]\n }\n ]\n}\n\nexport default structure","\n