\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./packages.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./packages.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./packages.vue?vue&type=template&id=123ab1d1\"\nimport script from \"./packages.vue?vue&type=script&lang=js\"\nexport * from \"./packages.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/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","export default {\r\n data() {\r\n return {\r\n loading: {\r\n step1: false,\r\n step2: false,\r\n step3: false,\r\n },\r\n error: {\r\n step1: null,\r\n step2: null,\r\n step3: null,\r\n step: null,\r\n price: null,\r\n },\r\n info: {\r\n step1: null,\r\n step2: null,\r\n step3: null,\r\n step: null,\r\n price: null,\r\n },\r\n validationError: null,\r\n existingPolicy: false,\r\n existingPolicyKey: null,\r\n };\r\n },\r\n watch: {\r\n \"product.step\": {\r\n handler: function (newValue, oldValue) {\r\n this.scrollToTop();\r\n\r\n // Update temporary product if product is not existing\r\n if (!this.existingPolicy) {\r\n this.$store.commit(\"temporaryProduct\", this.product);\r\n }\r\n\r\n // If you change step, update router with push,. otherwise just update router with replace, so that navigation is intact\r\n if (oldValue && newValue != oldValue) {\r\n // Update query with new step value\r\n let query = this.copy(this.$route.query);\r\n query.step = newValue;\r\n\r\n // Push value to router\r\n this.$router\r\n .push({ name: this.product.productName, query: query })\r\n .catch(() => {});\r\n } else if (!oldValue && newValue != this.$route.query.step) {\r\n // Update query with new step value\r\n let query = this.copy(this.$route.query);\r\n query.step = newValue;\r\n\r\n // Push value to router\r\n this.$router.replace({\r\n name: this.product.productName,\r\n query: query,\r\n });\r\n }\r\n },\r\n immediate: true,\r\n },\r\n \"$route.query.step\": {\r\n handler(value) {\r\n if (value) {\r\n this.product.step = parseInt(value);\r\n }\r\n },\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n /*\r\n * Parse data to api\r\n */\r\n parseSubmitData(product) {\r\n // Create Submit data object with standard baseInfo\r\n let submitData = {\r\n carObjectData: [],\r\n homeObjectData: [],\r\n personalAccidentObjectData: [],\r\n buildingObjectData: [],\r\n caravanObjectData: [],\r\n dogObjectData: [],\r\n travelObjectData: [],\r\n baseInfo: {},\r\n };\r\n\r\n // Loop through packages\r\n for (const [key, value] of Object.entries(product.packages)) {\r\n const pkey = key;\r\n\r\n // Do not parse?\r\n if (\"parse\" in value && !value.parse) {\r\n submitData[product.priceObject].push({ ...value, key: key });\r\n continue;\r\n }\r\n\r\n // Create car object for the array in submitData\r\n let currentObject = {\r\n key: key,\r\n coverages:\r\n \"coveragesBase\" in value\r\n ? this.$options.filters.renderTextInObject(\r\n Array.from(value.coveragesBase),\r\n product\r\n )\r\n : [],\r\n };\r\n\r\n // Run through fields and fill out data\r\n for (const [key, value] of Object.entries(product.fields)) {\r\n // Only send if the field is set to export\r\n if (value.export) {\r\n currentObject[key] = value.value;\r\n }\r\n\r\n // If base info set to true, export to baseInfo\r\n if (value.baseInfo) {\r\n submitData.baseInfo[key] = value.value;\r\n }\r\n }\r\n\r\n // Reset price on package\r\n value.price = null;\r\n\r\n // Set bundle to loading\r\n value.loading = true;\r\n\r\n // Run through coverages and put in car object\r\n if (\"coverages\" in value) {\r\n value.coverages.forEach((element) => {\r\n // Only send if package is included and set to export\r\n if (element.included && element.export) {\r\n // Create coverage element\r\n let coverage = {\r\n bundleCode: element.key,\r\n excessId: product.fields.excessId.value,\r\n };\r\n\r\n // Inject values\r\n if (\"inject\" in element) {\r\n for (const key in element.inject) {\r\n coverage[key] = product.fields[element.inject[key]].value;\r\n }\r\n }\r\n\r\n // Push this coverage to car object\r\n currentObject.coverages.push(coverage);\r\n }\r\n });\r\n }\r\n\r\n //Run through extra coverages and put in coverages\r\n if (product.coverages && \"coverages\" in value) {\r\n //eslint-disable-next-line no-unused-vars\r\n for (const [key, value] of Object.entries(product.coverages)) {\r\n // Only send if coverage is chosen\r\n if (value.chosen) {\r\n const keys = Array.isArray(value.keys) ? value.keys : value.keys[pkey];\r\n\r\n // Run through keys on extra coverage\r\n keys.forEach((element) => {\r\n let coverage = {\r\n bundleCode: element,\r\n excessId: product.fields.excessId.value,\r\n };\r\n\r\n // Inject values\r\n if (\"inject\" in value) {\r\n for (const key in value.inject) {\r\n coverage[key] = product.fields[value.inject[key]].value;\r\n }\r\n }\r\n\r\n // Push this coverage to car object\r\n currentObject.coverages.push(coverage);\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Map if priceobject is 'personalAccidentObjectData'\r\n if (product.priceObject == \"personalAccidentObjectData\") {\r\n currentObject.coverages = currentObject.coverages.map((cov) => {\r\n if ([200, 250].includes(parseInt(cov.bundleCode))) {\r\n cov.bundleSumInsured = parseInt(currentObject.bundleSumInsured);\r\n }\r\n\r\n if ([100].includes(parseInt(cov.bundleCode))) {\r\n cov.bundleSumInsured = parseInt(currentObject.deathSumInsured);\r\n }\r\n\r\n return cov;\r\n });\r\n }\r\n\r\n // Push to submit data\r\n submitData[product.priceObject].push(currentObject);\r\n\r\n // Add extra products\r\n if (\"extra\" in product) {\r\n for (const key in product.extra) {\r\n const extra = product.extra[key];\r\n\r\n if (extra.chosen) {\r\n let prod = { ...extra.product, key: `extra_${key}` };\r\n\r\n // imports from main product\r\n if (\"import\" in extra) {\r\n for (const imp of extra.import) {\r\n prod[imp] = currentObject[imp];\r\n }\r\n }\r\n\r\n // Add prod\r\n submitData[product.priceObject].push(prod);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return submitData;\r\n },\r\n /*\r\n * Function for changing step\r\n */\r\n changeStep(step) {\r\n this.product.step = step;\r\n },\r\n /*\r\n * Remove packages\r\n */\r\n resetPackages() {\r\n let self = this;\r\n\r\n // Set all packages to false\r\n // eslint-disable-next-line no-unused-vars\r\n for (const [key, value] of Object.entries(self.product.packages)) {\r\n value.value = false;\r\n }\r\n },\r\n /*\r\n * When a package is chosen\r\n */\r\n choosePackage(value) {\r\n this.product.package = value;\r\n\r\n // Reset selection\r\n this.resetPackages();\r\n value.value = true;\r\n\r\n // Track data for retargeting\r\n this.trackData(\"calculatePrice\", this.product, this.$store.state.basket);\r\n\r\n // Update temporary product if product is not existing\r\n if (!this.existingPolicy) {\r\n this.$store.commit(\"temporaryProduct\", this.product);\r\n }\r\n // If exiting policy, update existing policy\r\n if (this.existingPolicy && this.allRequirementsMet) {\r\n this.updateExistingPolicy(this.product, this.existingPolicyKey);\r\n }\r\n },\r\n /*\r\n * Go to message box\r\n */\r\n messageBox() {\r\n this.$router.push({\r\n name: \"Henvendelse\",\r\n params: {\r\n validation: this.validationError,\r\n },\r\n });\r\n },\r\n /*\r\n * Set from price response\r\n */\r\n insertPrice(data) {\r\n // Check if the response has objects\r\n if (data.objects && data.objects.length > 0) {\r\n // Run through coverages and put in car object\r\n data.objects.forEach((element) => {\r\n if (\"key\" in element && element.key.indexOf(\"extra_\") == 0) {\r\n // Price is for extra product\r\n this.product.extraPrices[element.key.split(\"_\")[1]] = element;\r\n } else if (\"key\" in element) {\r\n // Price is for package\r\n this.product.packages[element.key].price = element;\r\n\r\n // Remove loading\r\n this.product.packages[element.key].loading = false;\r\n } else {\r\n // Add object as key\r\n element.key = element.object.toLowerCase();\r\n\r\n // Price is for package\r\n this.product.packages[element.object.toLowerCase()].price = element;\r\n\r\n // Remove loading\r\n this.product.packages[element.object.toLowerCase()].loading = false;\r\n }\r\n });\r\n }\r\n },\r\n /*\r\n * Form error\r\n */\r\n formError(property, value) {\r\n this.product.fields[property].error = value;\r\n },\r\n },\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('h4',{staticClass:\"progress-indicator-mobile-text\"},[_vm._v(_vm._s(_vm.currentStepName))]),_c('ul',{staticClass:\"progress-indicator\"},_vm._l((_vm.steps),function(item,index){return _c('li',{key:index,class:[\n { active: _vm.step == index + 1 },\n { completed: _vm.step > index + 1 },\n ]},[_c('div',{staticClass:\"bubble\"},[_c('div',{staticClass:\"bubbleIcon\"},[(_vm.step > index + 1)?_c('i',{staticClass:\"fa-light fa-check\"}):_c('i',{staticClass:\"fa-light\",class:item.icon})])]),_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(item.name))])])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n
\r\n
{{ currentStepName }}
\r\n
\r\n
index + 1 },\r\n ]\"\r\n >\r\n
\r\n
\r\n index + 1\" class=\"fa-light fa-check\">\r\n \r\n
\r\n
\r\n {{ item.name }}\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./progress-indicator.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./progress-indicator.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./progress-indicator.vue?vue&type=template&id=7b9fc7be\"\nimport script from \"./progress-indicator.vue?vue&type=script&lang=js\"\nexport * from \"./progress-indicator.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"button-flex-container\"},[(_vm.step > 1)?_c('button',{staticClass:\"button white justify-start\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('changeStep', _vm.step - 1)}}},[_vm._v(\" Tilbage \")]):_vm._e(),_vm._l((_vm.steps),function(button,index){return [(_vm.step == index + 1)?_c('button',{key:index,staticClass:\"button\",attrs:{\"type\":\"submit\",\"form\":'step' + (index + 1),\"disabled\":button.loading || button.disabled || _vm.disableButton}},[(button.loading)?[_c('i',{staticClass:\"fa-light fa-spinner-third fa-fw icon-spin\"})]:(_vm.steps.length == index + 1 && _vm.betaling)?[_vm._v(\"Gennemfør bestilling\")]:(_vm.steps.length == index + 1 && !_vm.existingPolicy)?[_vm._v(\"Tilføj til indkøbskurv\")]:(_vm.steps.length == index + 1 && _vm.existingPolicy)?[_vm._v(\"Opdater indkøbskurv\")]:[_vm._v(\"Næste\")]],2):_vm._e()]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressButtons.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressButtons.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProgressButtons.vue?vue&type=template&id=6cb249fa\"\nimport script from \"./ProgressButtons.vue?vue&type=script&lang=js\"\nexport * from \"./ProgressButtons.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/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":""}