{"version":3,"sources":["webpack:///./src/project/app/content-pages/ContentPageRenderer.vue?6671","webpack:///./src/project/layout/navigation/SideNavigation.vue?abdc","webpack:///./src/project/layout/navigation/SideNavigation.vue","webpack:///./src/project/layout/navigation/SideNavigation.vue?cfe1","webpack:///./src/project/layout/navigation/SideNavigation.vue?de89","webpack:///./src/project/app/content-pages/ContentPageRenderer.vue","webpack:///./src/project/app/content-pages/ContentPageRenderer.vue?9b45","webpack:///./src/project/app/content-pages/ContentPageRenderer.vue?3e21"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","hasLeftMenu","isContainerEnabled","slot","navigationItems","staticClass","page","component","key","tag","content","alias","_e","staticRenderFns","activeCategory","url","_v","_s","name","_l","menuItem","id","activeMenu","breadCrumbItems","breadcrumb","length","index","required","type","Array","PAGE_NAME","pageData","metadata","Date","now","toString","jsonContent","isTakeOverEnabled","isContainerDisabled","navigation","leftMenu","initPage","updateMetaData","$nextTick","trackPageRendered","pageType","pageId","trackGenericPageView","bus","emit","path","getPage","expectedContentUrl","setPrerenderRedirectUrlsIfLocationIsWrong","renderNewPage","error","HttpCancelError","status","undefined","uaIsPrerender","handleErrorCodes","exception","getPageData","$route","fullPath","siteInfo","value","resolve","to","from","trackPageDestroyed","options","updateOnQueryChange","updateCurrentPage","on","updatePageData","off","components","WithSideNavigation","SideNavigation"],"mappings":"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","file":"js/chunk-2d21a80f.3b8aee11.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('with-side-navigation',{attrs:{\"has-left-menu\":_vm.hasLeftMenu,\"enable-container\":_vm.isContainerEnabled}},[_c('section',{attrs:{\"slot\":\"left\"},slot:\"left\"},[_c('side-navigation',{attrs:{\"navigation-items\":_vm.navigationItems}})],1),_c('section',{staticClass:\"page\",attrs:{\"slot\":\"main\"},slot:\"main\"},[_c('transition',{attrs:{\"appear\":\"\",\"mode\":\"out-in\",\"enter-active-class\":\"animated fadeIn u-anim-dur-350\",\"leave-active-class\":\"animated fadeOut u-anim-dur-250\"}},[(_vm.page)?_c(_vm.page.component,{key:_vm.key,tag:\"component\",attrs:{\"content\":_vm.content,\"has-left-menu\":_vm.hasLeftMenu,\"alias\":_vm.alias}}):_vm._e()],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:\"c-sidenavigation\"},[(_vm.activeCategory)?_c('culture-aware-router-link',{staticClass:\"text-14 md:text-16 mb-5 md:mb-10 font-medium hover:underline\",attrs:{\"to\":_vm.activeCategory.url}},[_c('span',[_vm._v(_vm._s(_vm.activeCategory.name))])]):_vm._e(),_vm._l((_vm.navigationItems),function(menuItem){return _c('navigation-tree',{key:menuItem.id,staticClass:\"font-medium\",attrs:{\"menu-item\":menuItem,\"selected-menu-item\":_vm.activeMenu,\"use-route-navigation\":\"\"}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { BreadcrumbItem, NavigationItem } from '@/types/contentServerContract';\r\nimport appStore from '@/core/app/app.store';\r\n\r\n@Component\r\nexport default class SideNavigation extends Vue {\r\n @Prop({ required: true, type: Array })\r\n private navigationItems!: NavigationItem[];\r\n\r\n private get breadCrumbItems() {\r\n const breadCrumbItems = appStore.breadcrumb ?? null;\r\n return breadCrumbItems.length > 0 ? breadCrumbItems : null;\r\n }\r\n\r\n private get activeCategory(): BreadcrumbItem | null {\r\n if (!this.breadCrumbItems) return null;\r\n const index = this.breadCrumbItems.length >= 2 ? 2 : 1;\r\n return this.breadCrumbItems[this.breadCrumbItems.length - index];\r\n };\r\n\r\n private get activeMenu() {\r\n if (!this.breadCrumbItems) return null;\r\n return this.breadCrumbItems[this.breadCrumbItems.length - 1];\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideNavigation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideNavigation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SideNavigation.vue?vue&type=template&id=b6784174&\"\nimport script from \"./SideNavigation.vue?vue&type=script&lang=ts&\"\nexport * from \"./SideNavigation.vue?vue&type=script&lang=ts&\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Vue, Component, Watch } from 'vue-property-decorator';\r\nimport { ClientComponent, pageResolver } from '@/core/app/componentResolver.service';\r\nimport appStore from '@/core/app/app.store';\r\nimport { NavigationItem, PageData } from '@/types/contentServerContract';\r\nimport { ContentPageRenderedEventKey } from '@/router';\r\nimport bus from '@/core/bus';\r\nimport contentApi from '@/core/http/contentApi.service';\r\nimport { HttpCancelError } from '@/core/http/HttpCancelError';\r\nimport logService from '@/core/logging.service';\r\nimport { LOGGED_IN } from '@/core/auth/auth.service';\r\nimport { Route } from 'vue-router';\r\nimport WithSideNavigation from '@/project/layout/navigation/WithSideNavigation.vue';\r\nimport SideNavigation from '@/project/layout/navigation/SideNavigation.vue';\r\nimport domService from '@/core/dom/dom.service';\r\nimport { NOT_FOUND } from 'http-status-codes';\r\nimport errorCodeService from '@/core/errorCode.service';\r\nimport themeService from '@/project/app/themes/theme.service';\r\nimport gtmService from '@/project/tracking/gtm/GTM.service';\r\nimport botService from '@/project/site/bot.service';\r\nimport serverContext from '@/core/serverContext.service';\r\n\r\nconst PAGE_NAME = 'content';\r\n\r\n@Component({\r\n components: { WithSideNavigation, SideNavigation }\r\n})\r\nexport default class ContentPageRenderer extends Vue {\r\n private pageData: PageData | null = null;\r\n private page: ClientComponent | null = null;\r\n\r\n private get key(): any | null {\r\n return this.pageData?.metadata?.key ?? Date.now().toString();\r\n }\r\n\r\n private get alias(): any | null {\r\n return this.pageData?.jsonContent?.alias ?? null;\r\n }\r\n\r\n private get content(): any | null {\r\n return this.pageData?.jsonContent?.content ?? null;\r\n }\r\n\r\n private get isTakeOverEnabled() {\r\n return themeService.isTakeOverEnabled;\r\n }\r\n\r\n private get isContainerEnabled(): boolean {\r\n return this.isTakeOverEnabled === false && appStore.isContainerDisabled === false;\r\n }\r\n\r\n private get hasLeftMenu() {\r\n return this.navigationItems.length > 0;\r\n }\r\n\r\n private get navigationItems(): NavigationItem[] {\r\n return this.pageData?.navigation.leftMenu ?? [];\r\n }\r\n\r\n private renderNewPage() {\r\n if (!this.pageData) return;\r\n\r\n appStore.initPage({ breadcrumb: this.pageData?.navigation?.breadcrumb });\r\n domService.updateMetaData(this.pageData.metadata, true);\r\n\r\n this.$nextTick(() => {\r\n if (this.pageData?.metadata?.id) {\r\n gtmService.trackPageRendered({ pageType: PAGE_NAME, pageId: this.pageData.metadata.id });\r\n gtmService.trackGenericPageView(PAGE_NAME, this.pageData.metadata.id);\r\n }\r\n\r\n // Fire event for router (scrolling).\r\n bus.emit(ContentPageRenderedEventKey);\r\n });\r\n }\r\n\r\n private async getPageData(path: string) {\r\n try {\r\n this.pageData = await contentApi.getPage(path);\r\n const expectedContentUrl = this.pageData?.metadata?.url || null;\r\n botService.setPrerenderRedirectUrlsIfLocationIsWrong(expectedContentUrl);\r\n this.renderNewPage();\r\n } catch (error) {\r\n if (error instanceof HttpCancelError) {\r\n // Ignore - just because of new page-request while waiting.\r\n } else if (error && ((error.status === NOT_FOUND) || (error.status === undefined && botService.uaIsPrerender() /* CORS or Network error */))) {\r\n // if page not found\r\n // or\r\n // isPrerender AND CORS/network error: CORS cannot be detected in Axios, will just show as network error.\r\n // Prevents odd URLs like https://www.eetgroup.com/en-eu/https:/content.eetgroup.com/de-de/brands/hikvision to get in prerender index.\r\n errorCodeService.handleErrorCodes(NOT_FOUND);\r\n } else {\r\n logService.exception('Got exception when loading page', error);\r\n this.page = null;\r\n this.pageData = null;\r\n }\r\n }\r\n }\r\n\r\n private async updatePageData() {\r\n await this.getPageData(this.$route.fullPath);\r\n }\r\n\r\n private async updateCurrentPage() {\r\n try {\r\n this.pageData = await contentApi.getPage(this.$route.fullPath);\r\n const expectedContentUrl = this.pageData?.metadata?.url ? `${serverContext.siteInfo.url}${this.pageData.metadata.url}` : null;\r\n botService.setPrerenderRedirectUrlsIfLocationIsWrong(expectedContentUrl);\r\n appStore.initPage({ breadcrumb: this.pageData.navigation.breadcrumb });\r\n domService.updateMetaData(this.pageData.metadata, true);\r\n } catch (error) {\r\n if (error instanceof HttpCancelError) {\r\n // Ignore - just because of new page-request while waiting.\r\n } else if (error && error.status === NOT_FOUND) {\r\n errorCodeService.handleErrorCodes(NOT_FOUND);\r\n } else {\r\n logService.exception('Got exception when loading page', error);\r\n this.pageData = null;\r\n }\r\n }\r\n }\r\n\r\n @Watch('alias')\r\n onResolvedPageChange(value: ClientComponent | null) {\r\n if (value) {\r\n this.page = pageResolver.resolve(this.alias);\r\n\r\n if (!this.page) {\r\n errorCodeService.handleErrorCodes(NOT_FOUND, 'redirecting to 404 - pagealias unknown: ' + value);\r\n }\r\n } else {\r\n this.page = null;\r\n this.pageData = null;\r\n }\r\n }\r\n\r\n @Watch('$route')\r\n private onRouteChange(to: Route, from: Route) {\r\n if (to.path === from.path) {\r\n if (this.page?.options?.updateOnQueryChange) {\r\n this.updateCurrentPage();\r\n }\r\n return;\r\n }\r\n\r\n if (this.pageData?.metadata?.id) {\r\n gtmService.trackPageDestroyed({ pageType: PAGE_NAME, pageId: this.pageData.metadata.id });\r\n }\r\n\r\n this.getPageData(to.fullPath);\r\n }\r\n\r\n private created() {\r\n bus.on(LOGGED_IN, this.updatePageData);\r\n this.updatePageData();\r\n }\r\n\r\n private destroyed() {\r\n if (this.pageData?.metadata?.key) {\r\n gtmService.trackPageDestroyed({ pageType: PAGE_NAME, pageId: this.pageData.metadata.id });\r\n }\r\n\r\n bus.off(LOGGED_IN, this.updatePageData);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContentPageRenderer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContentPageRenderer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContentPageRenderer.vue?vue&type=template&id=33a80f08&\"\nimport script from \"./ContentPageRenderer.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContentPageRenderer.vue?vue&type=script&lang=ts&\"\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 null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}