{"version":3,"sources":["webpack:///./src/views/BlogDetails.vue","webpack:///./src/views/BlogDetails.vue?e11b","webpack:///./src/views/BlogDetails.vue?50db","webpack:///./src/views/BlogDetails.vue?302a","webpack:///./src/views/BlogDetails.vue?2b10","webpack:///./node_modules/client-website-ts-library/plugins/view/index.ts","webpack:///./src/views/BlogDetails.vue?70a3"],"names":["render","_vm","this","_c","_self","_setupProxy","blog","attrs","Title","Subtitle","Paragraph1","staticClass","Images","length","Preview","Url","undefined","_e","Paragraph2","staticRenderFns","BlogDetails","Mixins","AsyncView","constructor","mounted","blogId","$route","params","id","API","Blogs","Get","then","$emit","stripHtml","html","limit","tmp","document","createElement","innerHTML","text","innerText","substring","head","title","_a","_b","description","_d","image","_f","handleError","err","status","$router","push","path","query","next","Component","components","component","ViewBase","Vue","prolistAnalyticsService","ServiceManager","ServiceType","Analytics","headService","Require","Head","updateAnalytics","evt","obj","getAnalyticsEvent","call","getAnalyticsData","AnalyticsPageView","name","triggerAnalyticsEvent","event","GetAll","forEach","adapter","Record","triggerCustomAnalyticsEvent","updateHead","result","bind","Promise","meta","Update","UpdateWithStatic","View","requestAnimationFrame","$on"],"mappings":"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","file":"js/chunk-115f9724.ebc9756f.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Page',[(_vm.blog)?[_c('SiteMasthead',{attrs:{\"title\":_vm.blog.Title,\"subtitle\":_vm.blog.Subtitle,\"mini\":\"true\"}}),(_vm.blog.Paragraph1 != '')?_c('ContentRow',[_c('ContentContainer',{staticClass:\"content-container--narrow\"},[_c('div',{staticClass:\"blog-details\"},[_c('LazyImage',{staticClass:\"blog__image\",attrs:{\"image\":_vm.blog.Images.length >= 1 ? _vm.blog.Images[0].Preview.Url : undefined}}),_c('RichText',{attrs:{\"content\":_vm.blog.Paragraph1}})],1)])],1):_vm._e(),(_vm.blog.Paragraph2 != '')?_c('ContentRow',[_c('ContentContainer',{staticClass:\"content-container--narrow\"},[_c('div',{staticClass:\"blog-details\"},[_c('LazyImage',{staticClass:\"blog__image\",attrs:{\"image\":_vm.blog.Images.length >= 2 ? _vm.blog.Images[1].Preview.Url : undefined}}),_c('RichText',{attrs:{\"content\":_vm.blog.Paragraph2}})],1)])],1):_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { AsyncView, RouteMeta } from 'client-website-ts-library/plugins';\nimport { API } from 'client-website-ts-library/services';\nimport { Blog } from 'client-website-ts-library/types';\nimport { Component, Mixins } from 'vue-property-decorator';\n\n@Component({\n components: {\n },\n})\nexport default class BlogDetails extends Mixins(AsyncView) {\n private blog: Blog | null = null;\n\n mounted() {\n const blogId = this.$route.params.id;\n\n API.Blogs.Get(blogId).then((blog) => {\n this.blog = blog;\n this.$emit('updateView');\n });\n }\n\n stripHtml(html: string, limit: number): string {\n const tmp = document.createElement('div');\n\n tmp.innerHTML = html;\n\n const text = tmp.innerText;\n\n return text.length < (limit * 1.2) ? text : `${tmp.innerText.substring(0, limit)}...`;\n }\n\n public head(): RouteMeta {\n return {\n title: `${this.blog?.Title} - ${this.blog?.Subtitle}`,\n description: this.stripHtml(this.blog?.Paragraph1 ?? '', 100),\n image: this.blog?.Images.length ? this.blog?.Images[0].Preview.Url : undefined,\n };\n }\n\n handleError(err: Response) {\n if (err.status === 403) {\n this.$router.push({\n path: '/blogs',\n query: {\n next: `/blogs/${this.$route.params.id}`,\n },\n });\n }\n }\n}\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!./BlogDetails.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!./BlogDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BlogDetails.vue?vue&type=template&id=7408de42&scoped=true&\"\nimport script from \"./BlogDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./BlogDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BlogDetails.vue?vue&type=style&index=0&id=7408de42&prod&scoped=true&lang=css&\"\nimport style1 from \"./BlogDetails.vue?vue&type=style&index=1&id=7408de42&prod&lang=css&\"\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 \"7408de42\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlogDetails.vue?vue&type=style&index=1&id=7408de42&prod&lang=css&\"","import Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { AnalyticsEvent, AnalyticsEventObject, AnalyticsPageView, IAnalyticsAdapter, PROListAnalyticsAdapter } from \"../../services/Analytics\";\r\nimport { HeadService } from \"../../services/HeadService\";\r\nimport { ServiceManager, ServiceType } from \"../../services/ServiceManager\";\r\nimport { RouteMeta } from \"../meta\";\r\n\r\ninterface ViewBase {\r\n getAnalyticsEvent?(): AnalyticsEvent | null;\r\n getAnalyticsData?(): AnalyticsEventObject | null;\r\n head?(): RouteMeta | Promise | null;\r\n}\r\n\r\n@Component\r\nclass ViewBase extends Vue {\r\n protected prolistAnalyticsService = ServiceManager.Get(ServiceType.Analytics, 'PROListAnalyticsAdapter');\r\n protected headService = ServiceManager.Require(ServiceType.Head)!;\r\n\r\n public updateAnalytics() {\r\n let evt: AnalyticsEvent | null = null;\r\n let obj: AnalyticsEventObject | null = null;\r\n\r\n if (typeof this.getAnalyticsEvent !== 'undefined') {\r\n evt = this.getAnalyticsEvent.call(this);\r\n } else if(typeof this.getAnalyticsData !== 'undefined') {\r\n obj = this.getAnalyticsData.call(this);\r\n }\r\n\r\n if (evt === null) evt = new AnalyticsPageView(this.$route.path, this.$route.name || '', obj || undefined);\r\n\r\n this.triggerAnalyticsEvent(evt);\r\n }\r\n\r\n public triggerAnalyticsEvent(event: AnalyticsEvent) {\r\n ServiceManager.GetAll(ServiceType.Analytics).forEach((adapter) => {\r\n adapter.Record(event);\r\n });\r\n }\r\n\r\n public triggerCustomAnalyticsEvent(event: AnalyticsEvent) {\r\n if (this.prolistAnalyticsService !== null) this.prolistAnalyticsService.Record(event);\r\n }\r\n\r\n protected updateHead() {\r\n if ('head' in this) {\r\n const result = this.head!.bind(this)();\r\n\r\n if(result instanceof Promise) {\r\n result.then((meta: RouteMeta | null) => {\r\n this.headService.Update(meta);\r\n });\r\n } else {\r\n this.headService.Update(result as RouteMeta | null);\r\n }\r\n } else {\r\n this.headService.UpdateWithStatic(this.$route.path);\r\n }\r\n }\r\n}\r\n\r\n@Component\r\nclass View extends ViewBase {\r\n public mounted() {\r\n requestAnimationFrame(() => {\r\n this.updateHead();\r\n this.updateAnalytics();\r\n });\r\n }\r\n}\r\n\r\n@Component\r\nclass AsyncView extends ViewBase {\r\n public mounted() {\r\n this.$on('updateView', () => {\r\n requestAnimationFrame(() => {\r\n this.updateHead();\r\n this.updateAnalytics();\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport {\r\n View,\r\n AsyncView\r\n}\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlogDetails.vue?vue&type=style&index=0&id=7408de42&prod&scoped=true&lang=css&\""],"sourceRoot":""}