{"version":3,"sources":["webpack:///./src/pages/BlogItemPage.vue?1836","webpack:///./src/pages/BlogItemPage.vue?9b4c","webpack:///./src/containers/BlogSidebar.vue?8996","webpack:///./src/components/Other/ProductCard.vue?19d4","webpack:///./src/components/Other/ProductCard.vue?174f","webpack:///./src/components/Other/ProductCard.vue?36ca","webpack:///./src/components/Other/ProductCard.vue","webpack:///./src/containers/BlogSidebar.vue?68e9","webpack:///./src/containers/BlogSidebar.vue?45cb","webpack:///./src/containers/BlogSidebar.vue","webpack:///./src/pages/BlogItemPage.vue?ef6d","webpack:///./src/pages/BlogItemPage.vue?4f24","webpack:///./src/pages/BlogItemPage.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","on","$event","preventDefault","onBackLinkClick","_v","data","fields","_s","type","title","contentfulImageUrlByHeight","image","_e","domProps","introduction","text","relatedBlogItems","recipeProducts","relatedBlogItemsInfoCards","relatedBlogItemsSwiperOptions","scopedSlots","_u","key","fn","ref","item","staticRenderFns","relatedProducts","length","_l","index","images","url","contentfulImageUrlByWidth","component","components","ProductCard","relatedMaxCount","slug","0","slidesPerView","420","576","768","992","$route","params","getContent","newVal","EventBus","$emit","Config","PageIsLoadingEvent","GetFirstEntry","BlogItemPage","then","result","Consoler","debugLog","setDocumentTitle","getRelatedBlogItems","finally","GetEntries","sys","id","items","ProductPage","$router","go","document","DocumentTitleBase","BlogPageSlug","Recipe","isRecipe","map","blogItem","undefined","description","link","immediate","deep","Content","BlogSidebar","RichTextRenderer","InfoCards","InfoSlideCard"],"mappings":"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","file":"assets/js/BlogItemPage.5a58ed1f.js","sourcesContent":["import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlogItemPage.vue?vue&type=style&index=0&id=197fd022&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlogItemPage.vue?vue&type=style&index=0&id=197fd022&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.data)?_c('div',[_c('div',{staticClass:\"section home subpage thin-hero\"}),_c('div',{staticClass:\"section first-in-sections blog-post\",attrs:{\"id\":\"firstContent\"}},[_c('b-container',[_c('b-row',[_c('b-colxx',{staticClass:\"mb-4\",attrs:{\"xxs\":\"12\"}},[_c('a',{attrs:{\"href\":\"\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onBackLinkClick($event)}}},[_c('i',{staticClass:\"icon-arrow-left\"}),_vm._v(\"\\n Tillbaka\\n \")])])],1),_c('b-row',[_c('b-colxx',{attrs:{\"xxs\":\"12\",\"lg\":\"7\"}},[(_vm.data.fields.image)?_c('b-card',{staticClass:\"d-inline-block mb-5\",attrs:{\"no-body\":\"\"}},[_c('b-card-body',{staticClass:\"p-0\"},[_c('b-badge',{staticClass:\"position-absolute badge-top-left\",attrs:{\"pill\":\"\"}},[_vm._v(_vm._s(_vm.data.fields.type))]),_c('img',{staticClass:\"main-image img-fluid limit-height\",attrs:{\"alt\":_vm.data.fields.title,\"src\":_vm.contentfulImageUrlByHeight(_vm.data.fields.image, 500)}})],1)],1):_vm._e()],1)],1),_c('b-row',[_c('b-colxx',{attrs:{\"xxs\":\"12\",\"lg\":\"7\"}},[_c('h2',[_vm._v(_vm._s(_vm.data.fields.title))]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.data.fields.introduction)}}),_c('div',{staticClass:\"description-container\"},[(_vm.data.fields.text)?_c('RichTextRenderer',{attrs:{\"document\":_vm.data.fields.text}}):_vm._e()],1)]),_c('BlogSidebar',{attrs:{\"blogItems\":_vm.relatedBlogItems,\"relatedProducts\":_vm.recipeProducts}})],1)],1)],1),(_vm.relatedBlogItemsInfoCards.length)?_c('div',{staticClass:\"section background last-in-sections\"},[_c('b-container',[_c('b-row',[_c('b-colxx',{staticClass:\"text-center mb-4\",attrs:{\"xxs\":\"12\"}},[_c('h3',{staticClass:\"section-title\"},[(_vm.isRecipe)?[_vm._v(\"Fler recept\")]:[_vm._v(\"Relaterade inlägg\")]],2)]),_c('b-colxx',{staticClass:\"mt-4\",attrs:{\"xxs\":\"12\"}},[_c('InfoCards',{attrs:{\"items\":_vm.relatedBlogItemsInfoCards,\"customSwiperOptions\":_vm.relatedBlogItemsSwiperOptions},scopedSlots:_vm._u([{key:\"slide\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('InfoSlideCard',{attrs:{\"item\":item,\"imageAsThumbnails\":false}})]}}],null,false,1100937152)})],1)],1)],1)],1):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-colxx',{staticClass:\"side-bar\",attrs:{\"xxs\":\"12\",\"lg\":\"4\",\"offset-lg\":\"1\"}},[_c('div',{staticClass:\"side-bar-content\"},[(_vm.relatedProducts && _vm.relatedProducts.length)?_c('div',[_c('h2',[_vm._v(\"Relaterade produkter\")]),_vm._l((_vm.relatedProducts),function(item,index){return _c('ProductCard',{key:index,attrs:{\"data\":item}})})],2):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{staticClass:\"flex-row mb-4\",attrs:{\"no-body\":\"\"}},[_c('div',{staticClass:\"w-30 position-relative\"},[(_vm.data.fields.images && _vm.data.fields.images.length)?[_c('router-link',{attrs:{\"to\":_vm.url}},[_c('img',{staticClass:\"card-img-left\",attrs:{\"src\":_vm.contentfulImageUrlByWidth(_vm.data.fields.images[0], 207),\"alt\":_vm.data.fields.title}})])]:_vm._e()],2),_c('div',{staticClass:\"w-70 d-flex align-items-center\"},[_c('b-card-body',[_c('router-link',{attrs:{\"to\":_vm.url}},[_c('h6',{staticClass:\"mb-0\"},[_vm._v(_vm._s(_vm.data.fields.title))])])],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { BlogItemPageData, ProductPageData } from '@/models/pages';\r\nimport linkResolver from '@/contentful/link-resolver';\r\n\r\n@Component\r\nexport default class ProductCard extends Vue {\r\n @Prop() private data!: ProductPageData;\r\n\r\n private get url(): string {\r\n return linkResolver(this.data);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProductCard.vue?vue&type=template&id=4e52be6e&\"\nimport script from \"./ProductCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductCard.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\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { BlogItemPageData, ProductPageData } from '@/models/pages';\r\nimport ProductCard from '@/components/Other/ProductCard.vue';\r\n\r\n@Component({\r\n components: {\r\n ProductCard\r\n }\r\n})\r\nexport default class BlogSidebar extends Vue {\r\n @Prop() private blogItems!: BlogItemPageData[];\r\n @Prop() private relatedProducts!: ProductPageData[];\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlogSidebar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlogSidebar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BlogSidebar.vue?vue&type=template&id=4e3bb3b4&\"\nimport script from \"./BlogSidebar.vue?vue&type=script&lang=ts&\"\nexport * from \"./BlogSidebar.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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport Content from '@/components/Sections/Content.vue';\r\nimport InfoCards from '@/components/Other/InfoCards.vue';\r\nimport InfoSlideCard from '@/components/Other/InfoSlideCard.vue';\r\nimport RichTextRenderer from 'contentful-rich-text-vue-renderer';\r\nimport {\r\n BlogItemPageData,\r\n BlogItemType,\r\n PageContentTypes,\r\n ProductPageData\r\n} from '@/models/pages';\r\nimport { ContentfulHelper } from '@/helpers/contentful-helper';\r\nimport BlogSidebar from '@/containers/BlogSidebar.vue';\r\nimport { Config } from '../utils/Config';\r\nimport { EventBus } from '@/utils/EventBus';\r\nimport { InfoCardFields } from '@/components/Other/InfoSlideCard.vue';\r\nimport linkResolver from '@/contentful/link-resolver';\r\nimport { generateSwiperOptions } from '@/models/swiper';\r\nimport { Consoler } from '@/utils/Consoler';\r\n\r\n@Component({\r\n components: {\r\n Content,\r\n BlogSidebar,\r\n RichTextRenderer,\r\n InfoCards,\r\n InfoSlideCard\r\n }\r\n})\r\nexport default class BlogItemPage extends Vue {\r\n private readonly relatedMaxCount: number = 5;\r\n\r\n private slug: string = '';\r\n private data: BlogItemPageData | null = null;\r\n private relatedBlogItems: BlogItemPageData[] = [];\r\n\r\n private relatedBlogItemsSwiperOptions = generateSwiperOptions(3, {\r\n 0: { slidesPerView: 1 },\r\n 420: { slidesPerView: 1 },\r\n 576: { slidesPerView: 2 },\r\n 768: { slidesPerView: 3 },\r\n 992: { slidesPerView: 3 }\r\n // 1200: { slidesPerView: 4 },\r\n // 1440: { slidesPerView: 5 }\r\n });\r\n\r\n private get blogPageUrl(): string {\r\n return '/' + Config.BlogPageSlug;\r\n }\r\n\r\n private get isRecipe(): boolean {\r\n return this.data !== null && this.data.fields.type === BlogItemType.Recipe;\r\n }\r\n private get recipeProducts(): ProductPageData[] {\r\n return this.isRecipe && this.data !== null\r\n ? this.data.fields.relatedProducts\r\n : [];\r\n }\r\n\r\n private get relatedBlogItemsInfoCards(): InfoCardFields[] {\r\n return this.relatedBlogItems.map(blogItem => {\r\n return {\r\n image: blogItem.fields.image\r\n ? blogItem.fields.image\r\n : undefined,\r\n title: blogItem.fields.title,\r\n description: blogItem.fields.introduction,\r\n link: linkResolver(blogItem)\r\n };\r\n });\r\n }\r\n\r\n private created() {\r\n this.slug = this.$route.params.slug;\r\n this.getContent();\r\n }\r\n\r\n // Watch url change\r\n @Watch('$route', { immediate: false, deep: true })\r\n private onUrlChange(newVal: any) {\r\n if (this.slug !== this.$route.params.slug) {\r\n this.slug = this.$route.params.slug;\r\n this.getContent();\r\n }\r\n }\r\n\r\n private getContent() {\r\n this.data = null;\r\n EventBus.$emit(Config.PageIsLoadingEvent, true);\r\n\r\n ContentfulHelper.GetFirstEntry(this.$route, {\r\n 'content_type': PageContentTypes.BlogItemPage,\r\n 'fields.slug[in]': this.slug,\r\n 'order': 'sys.createdAt'\r\n })\r\n .then(result => {\r\n this.data = result as BlogItemPageData;\r\n Consoler.debugLog('Fetched blog item page', this.data);\r\n this.setDocumentTitle();\r\n this.getRelatedBlogItems();\r\n })\r\n .finally(() => {\r\n EventBus.$emit(Config.PageIsLoadingEvent, false);\r\n });\r\n }\r\n\r\n private getRelatedBlogItems() {\r\n this.relatedBlogItems = [];\r\n\r\n ContentfulHelper.GetEntries(this.$route, {\r\n 'content_type': PageContentTypes.BlogItemPage,\r\n 'fields.type': this.data !== null ? this.data.fields.type : '',\r\n 'sys.id[ne]': this.data !== null ? this.data.sys.id : '',\r\n 'limit': this.relatedMaxCount,\r\n 'order': '-sys.createdAt'\r\n }).then(result => {\r\n this.relatedBlogItems = result.items as BlogItemPageData[];\r\n Consoler.debugLog('Fetched related blog items', this.relatedBlogItems);\r\n });\r\n }\r\n\r\n private getRelatedProducts() {\r\n this.relatedBlogItems = [];\r\n\r\n ContentfulHelper.GetEntries(this.$route, {\r\n 'content_type': PageContentTypes.ProductPage,\r\n 'fields.type': this.data !== null ? this.data.fields.type : '',\r\n 'sys.id[ne]': this.data !== null ? this.data.sys.id : '',\r\n 'limit': this.relatedMaxCount,\r\n 'order': '-sys.createdAt'\r\n }).then(result => {\r\n this.relatedBlogItems = result.items as BlogItemPageData[];\r\n Consoler.debugLog('Fetched related products', this.relatedBlogItems);\r\n });\r\n }\r\n\r\n private onBackLinkClick() {\r\n this.$router.go(-1);\r\n }\r\n\r\n private setDocumentTitle() {\r\n document.title =\r\n Config.DocumentTitleBase +\r\n (this.data !== null ? ' - ' + this.data.fields.title : '');\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlogItemPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlogItemPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BlogItemPage.vue?vue&type=template&id=197fd022&scoped=true&\"\nimport script from \"./BlogItemPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./BlogItemPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BlogItemPage.vue?vue&type=style&index=0&id=197fd022&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 \"197fd022\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}