{"version":3,"sources":["webpack:///./src/components/product/ProductCard.vue?d5d6","webpack:///src/components/product/ProductCard.vue","webpack:///./src/components/product/ProductCard.vue?43bb","webpack:///./src/components/product/ProductCard.vue","webpack:///./src/helpers/helpers.js","webpack:///./src/store.js","webpack:///./src/common.js","webpack:///./src/components/form/LeadForm.vue?8e9b","webpack:///./src/plugins/bootstrap.js","webpack:///./src/components/core/swiper/SwiperWrapper.vue?ff67","webpack:///src/components/core/swiper/SwiperWrapper.vue","webpack:///./src/components/core/swiper/SwiperWrapper.vue?503f","webpack:///./src/components/core/swiper/SwiperWrapper.vue","webpack:///./src/components/product/ProductCard.vue?99cb","webpack:///./src/components/solution/SolutionPreferredPopin.vue?cf91","webpack:///./src/components/core/swiper/SwiperWrapper.vue?d225","webpack:///./src/mixins/visual.js","webpack:///./src/components/form/LeadForm.vue?a7ac","webpack:///src/components/form/LeadForm.vue","webpack:///./src/components/form/LeadForm.vue?c7a1","webpack:///./src/components/form/LeadForm.vue","webpack:///./src/components/list/ListHighlights.vue?dd47","webpack:///src/components/list/ListHighlights.vue","webpack:///./src/components/list/ListHighlights.vue?e869","webpack:///./src/components/list/ListHighlights.vue","webpack:///./src/components/list/ListHighlights.vue?52b2","webpack:///./src/components/solution/SolutionPreferredPopin.vue?f5a0","webpack:///src/components/solution/SolutionPreferredPopin.vue","webpack:///./src/components/solution/SolutionPreferredPopin.vue?c13d","webpack:///./src/components/solution/SolutionPreferredPopin.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","class","classes","staticClass","isFromApi","forceImage","attrs","image","size","label","domProps","_s","config","knowMore","on","togglePopin","_e","staticRenderFns","component","api","Nespresso","getNameFromApi","sku","getProduct","name","Vue","use","Vuex","Store","state","selectedFilters","business","capsules","milk","accessories","ui","popin","opened","survey","active","form","surveyIndex","planIndex","genericMessage","getters","isFilterSelected","key","filter","Array","isArray","includes","currentSelectedFilter","isPopinOpened","getPlan","dico","plan","isPlanDefined","plans","getAccessories","reduce","list","getMessage","template","planCombos","combos","comboItems","output","item","quantity","combosList","planAccessories","accessoriesItems","title","accessoriesList","length","skuReplaces","replace","capture","push","Promise","all","skus","combosWithNames","shift","machine","mutations","initialiseStore","match","document","cookie","RegExp","agreedCookie","sessionStorage","getItem","parseInt","JSON","parse","toggleSlide","index","setItem","togglePlan","toggleForm","status","toggleSurvey","addFilter","value","stringify","addMultipleFilter","filterValue","removeFilter","updatedValue","removeMultipleFilter","difference","setGenericMessage","actions","updateFilters","commit","isMultiple","stateFilterValue","isInObject","intersection","mutation","productionTip","App","trackingLabel","centralLandingAlias","sectionTrackingLabels","trackingLabelTxt","VueLanding","project","landing","trackingLabelPrefix","skipMutationKeys","additionalBrands","Tracking","globalTracking","el","store","h","prototype","indexOf","b","a","c","Number","arguments","Math","ceil","floor","Object","defineProperty","searchElement","fromIndex","TypeError","o","len","n","k","max","abs","sameValueZero","x","y","isNaN","find","predicate","thisArg","kValue","call","configurable","writable","wrapper","ref","_t","visual","methods","getVisualUrl","type","svg","$landing","getImgUrl","folder","ext","target","displayForm","$event","preventDefault","onSubmit","_l","field","full","_b","scopedSlots","_u","fn","errors","error","directives","rawName","expression","_i","$$a","$$el","$$c","checked","$$v","$$i","$set","concat","slice","isRequired","placeholder","composing","_q","$$selectedVal","options","selected","map","val","_value","multiple","_v","default","option","regex","required","allowFalse","terms","fields","reCaptchaID","feedback","message","back","isLoading","submit","script","setAttribute","head","appendChild","highlight","excluded","icon","onChange","imgURL","isForcingPopinImage","images","forcedSameMachinePopin","solution","introduction","highlights","package"],"mappings":"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","file":"js/chunk-common.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.classes},[_c('div',{staticClass:\"image\"},[(_vm.isFromApi && !_vm.forceImage)?_c('img',{attrs:{\"src\":_vm.image}}):(_vm.isIcon)?_c('visual',{attrs:{\"svg\":_vm.image}}):_c('visual',{attrs:{\"src\":_vm.image}})],1),(_vm.label)?_c('div',{staticClass:\"caption\"},[(_vm.size === 'small')?_c('paragraph',{attrs:{\"size\":\"S\",\"content\":_vm.label}}):_c('heading',{attrs:{\"level\":5},domProps:{\"innerHTML\":_vm._s(_vm.label)}}),(_vm.hasPopin)?_c('cta',{attrs:{\"is-link\":\"\",\"font-icon\":\"fn_angleLink\",\"type\":\"text\",\"size\":\"S\",\"content\":_vm.config.knowMore},on:{\"click\":_vm.togglePopin}}):_vm._e()],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div :class=\"classes\">\n <div class=\"image\">\n <img v-if=\"isFromApi && !forceImage\" :src=\"image\">\n <visual v-else-if=\"isIcon\" :svg=\"image\"/>\n <visual v-else :src=\"image\"/>\n </div>\n <div class=\"caption\" v-if=\"label\">\n <paragraph size=\"S\" :content=\"label\" v-if=\"size === 'small'\" />\n <heading :level=\"5\" v-html=\"label\" v-else />\n <cta\n is-link\n font-icon=\"fn_angleLink\"\n type=\"text\"\n size=\"S\"\n :content=\"config.knowMore\"\n @click=\"togglePopin\"\n v-if=\"hasPopin\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport Nespresso from 'nespresso-library/src/core/api'\nimport Cta from 'gvue/src/core/Cta'\nimport Heading from 'gvue/src/core/Heading'\nimport Paragraph from 'gvue/src/core/Paragraph'\nimport Visual from 'gvue/src/core/Visual'\n\nconst SIZES = ['small', 'normal', 'inline', 'free']\n\nexport default {\n name: 'ProductCard',\n components: {\n Cta,\n Heading,\n Paragraph,\n Visual\n },\n props: {\n product: { type: Object, required: true },\n size: {\n type: String,\n default: 'normal',\n validator: value => SIZES.includes(value)\n },\n isIcon: { type: Boolean, default: false },\n isImg: { type: Boolean, default: false },\n forceTitle: { type: Boolean, default: false },\n hasPopin: { type: Boolean, default: false }\n },\n data () {\n return {\n apiProduct: null\n }\n },\n computed: {\n image (name) {\n if (this.isFromApi && !this.forceImage) {\n if (this.isImg) {\n window.sessionStorage.setItem('popinImg', this.apiProduct.responsiveImages.standard)\n }\n return this.apiProduct.responsiveImages.standard\n }\n if (this.isIcon) {\n return this.$landing.getImgUrl({ ext: 'svg', folder: 'icons', name: this.product.image })\n }\n return { ext: 'png', folder: 'visuals', name: this.product.image }\n },\n label () {\n const _label = !this.isFromApi || (this.forceTitle && this.product.title !== '')\n ? this.product.title\n : this.apiProduct.name\n const { quantity } = this.product\n const suffix = quantity ? ` ×${quantity}` : ''\n return _label ? `${_label}${suffix}` : ''\n },\n isFromApi () {\n return this.apiProduct !== null\n },\n forceImage () {\n return this.product.image && this.product.image !== ''\n },\n classes () {\n return ['product', this.size]\n }\n },\n async created () {\n const api = new Nespresso()\n const sku = this.product.sku\n if (sku) {\n this.apiProduct = await api.getProduct(sku)\n }\n this.config = this.$json.config\n },\n methods: {\n togglePopin () {\n this.$store.commit('togglePopin', true)\n }\n }\n}\n</script>\n\n<style lang=\"sass\" scoped>\n@import ~nespresso-bi/utilities\n@import ~nespresso-bi/brand/variables\n.product\n display: flex\n align-items: center\n\n + .product\n margin-left: ($gap * .25)\n\n &.normal\n\n .image\n height: pxToRem(170)\n width: pxToRem(170)\n\n &.small\n\n .image\n height: pxToRem(145)\n width: pxToRem(110)\n mix-blend-mode: multiply\n\n .caption\n margin-top: 0\n\n &.normal,\n &.small\n .image\n display: flex\n align-items: center\n img\n max-width: 100%\n max-height: 100%\n height: auto\n display: block\n margin: 0 auto\n\n &.inline\n align-items: flex-end\n margin-top: ($gap*0.75)\n\n > *\n flex: 0 0 50%\n max-width: 50%\n\n .caption\n margin-bottom: 0.75em\n margin-left: 0.5em\n\n &.free\n .image\n img\n width: auto\n.caption\n width: 100%\n\n.image\n img\n display: block\n margin: 0 auto\n transition: none\n object-fit: contain\n /deep/ svg\n box-sizing: border-box\n\n.g\n .g_h5\n margin: 0 auto\n max-width: 12em\n\n .g_link\n margin: ($gap * 0.5) 0 0\n color: $color_base\n text-transform: uppercase\n cursor: pointer\n+mobile\n .image\n img\n height: pxToRem(100)\n width: pxToRem(100)\n /deep/ svg\n padding: pxToRem(20)\n height: pxToRem(100)\n width: pxToRem(100)\n .caption\n text-align: left\n\n .product\n &.normal,\n &.small\n flex-direction: column\n\n .image\n height: pxToRem(80)\n width: pxToRem(80)\n\n .caption\n text-align: center\n\n + .product\n margin-top: $gap\n\n .g .g_h5\n margin: 0 auto\n\n+desktop\n .image\n img\n height: pxToRem(170)\n width: pxToRem(170)\n /deep/ svg\n padding: pxToRem(30)\n box-sizing: border-box\n height: pxToRem(170)\n width: pxToRem(170)\n\n .caption\n margin-top: $gap\n\n .product\n flex-direction: column\n + .product\n margin-left: ($gap * 4)\n\n &.inline\n flex-direction: row\n\n .image\n img\n height: auto\n width: auto\n max-height: 12em\n max-width: 100%\n\n+tablet\n .image\n img\n height: pxToRem(120)\n width: pxToRem(120)\n /deep/ svg\n padding: pxToRem(25)\n height: pxToRem(120)\n width: pxToRem(120)\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../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=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../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=js&\"","import { render, staticRenderFns } from \"./ProductCard.vue?vue&type=template&id=3d62766b&scoped=true&\"\nimport script from \"./ProductCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductCard.vue?vue&type=style&index=0&id=3d62766b&lang=sass&scoped=true&\"\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 \"3d62766b\",\n null\n \n)\n\nexport default component.exports","import Nespresso from 'nespresso-library/src/core/api'\n\nconst api = new Nespresso()\n\nexport const customPrice = (price, entity) =>\n price\n ? `${entity.currencySymbol}${price}`\n : entity.displayedPrice\n\nexport const getNameFromApi = async sku => (await api.getProduct(sku) || {}).name\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nimport { difference, intersection } from 'lodash'\nimport { getNameFromApi } from '@/helpers/helpers'\n\nVue.use(Vuex)\nexport default new Vuex.Store({\n state: {\n // selectedFilters: {\n // business: 'restaurant',\n // capsules: '0-30',\n // milk: 'milk',\n // accessories: ['accessories', 'cookiesAndChocolates']\n // },\n selectedFilters: {\n business: '',\n capsules: '',\n milk: '',\n accessories: []\n },\n ui: {\n popin: {\n opened: false\n },\n survey: {\n active: true\n // active: false\n },\n form: {\n active: false\n }\n },\n surveyIndex: 1,\n planIndex: 1,\n genericMessage: ''\n },\n getters: {\n isFilterSelected: state => (key, filter) => {\n if (Array.isArray(state.selectedFilters[key])) {\n return state.selectedFilters[key].includes(filter)\n } else {\n return state.selectedFilters[key] === filter\n }\n },\n currentSelectedFilter: state => label => state.selectedFilters[label],\n isPopinOpened: state => state.ui.popin.opened,\n getPlan: state => dico => {\n const { capsules, milk } = state.selectedFilters\n const plan = `plan${state.planIndex}`\n const isPlanDefined = dico.plans && dico.plans[capsules] && dico.plans[capsules][plan]\n return isPlanDefined ? dico.plans[capsules][plan][milk] : null\n },\n getAccessories: state => dico => {\n const { accessories } = state.selectedFilters\n return accessories.reduce(\n (list, filter) => ([...list, ...[dico.list[filter]]]),\n []\n )\n },\n getMessage: (state, getters) => async (dico, template) => {\n const plan = getters.getPlan(dico.plan)\n if (plan) {\n const planCombos = plan.combos\n const comboItems = (output, item) => `${output}${output !== '' ? '\\n' : ''} - {sku}${item.sku}{/sku} ×${item.quantity}`\n const combosList = (output, combos) => `${output}${output !== '' ? '\\n or\\n' : ''}${combos.reduce(comboItems, '')}`\n const combos = planCombos.reduce(combosList, '')\n\n const planAccessories = getters.getAccessories(dico.accessories)\n\n const accessoriesItems = (output, item) =>\n item.title\n ? `${output}${output !== '' ? '\\n' : ''} - ${item.title}`\n : ''\n const accessoriesList = (output, accessories) =>\n `${output}${output !== '' ? '\\n or\\n' : ''}${accessories.reduce(accessoriesItems, '')}`\n const accessories = planAccessories.length ? planAccessories.reduce(accessoriesList, '') : []\n\n const skuReplaces = []\n combos.replace(\n /{sku}(.*?){\\/sku}/g,\n async (capture, sku) => {\n skuReplaces.push(getNameFromApi(sku))\n }\n )\n const skus = await Promise.all(skuReplaces)\n const combosWithNames = combos.replace(\n /{sku}(.*?){\\/sku}/g,\n () => skus.shift().replace(/(<([^>]+)>)/gi, '')\n )\n\n return template\n .replace('{machine}', plan.machine.title)\n .replace('{capsules}', plan.capsules)\n .replace('{combos}', combosWithNames)\n .replace('{accessories}', accessories)\n }\n return ''\n }\n },\n mutations: {\n initialiseStore (state) {\n const match = document.cookie.match(new RegExp('(^| )evidonConsentCategories=([^;]+)'))\n // Only works with the cookie banner, not in local\n const agreedCookie = match ? match[2] === 'all' : false\n if (agreedCookie) {\n if (sessionStorage.getItem('tool__ui_survey_active')) {\n state.ui.survey.active = sessionStorage.getItem('tool__ui_survey_active') === 'true'\n }\n if (sessionStorage.getItem('tool__surveyIndex')) {\n state.surveyIndex = parseInt(sessionStorage.getItem('tool__surveyIndex'))\n }\n if (sessionStorage.getItem('tool__selectedFilters')) {\n state.selectedFilters = JSON.parse(sessionStorage.getItem('tool__selectedFilters'))\n }\n }\n },\n toggleSlide (state, index) {\n state.surveyIndex = index\n sessionStorage.setItem('tool__surveyIndex', index)\n },\n togglePlan (state, index) {\n state.planIndex = index\n },\n toggleForm (state, status) {\n state.ui.form.active = status\n },\n togglePopin (state, status) {\n state.ui.popin.opened = status\n },\n toggleSurvey (state, status) {\n state.ui.survey.active = status\n sessionStorage.setItem('tool__ui_survey_active', state.ui.survey.active)\n },\n addFilter (state, { key, value }) {\n state.selectedFilters = { ...state.selectedFilters, [key]: value }\n sessionStorage.setItem('tool__selectedFilters', JSON.stringify(state.selectedFilters))\n },\n addMultipleFilter (state, { key, value }) {\n const filterValue = [...state.selectedFilters[key], ...value]\n state.selectedFilters = { ...state.selectedFilters, [key]: filterValue }\n sessionStorage.setItem('tool__selectedFilters', JSON.stringify(state.selectedFilters))\n },\n removeFilter (state, { key, value }) {\n const updatedValue = state.selectedFilters[key] === value ? '' : value\n state.selectedFilters = { ...state.selectedFilters, [key]: updatedValue }\n sessionStorage.setItem('tool__selectedFilters', JSON.stringify(state.selectedFilters))\n },\n removeMultipleFilter (state, { key, value }) {\n const updatedValue = difference(state.selectedFilters[key], value)\n state.selectedFilters = { ...state.selectedFilters, [key]: updatedValue }\n sessionStorage.setItem('tool__selectedFilters', JSON.stringify(state.selectedFilters))\n },\n setGenericMessage (state, value) {\n state.genericMessage = value\n }\n },\n actions: {\n updateFilters ({ commit, state }, filter) {\n const isMultiple = Array.isArray(filter.value)\n const stateFilterValue = state.selectedFilters[filter.key]\n const isInObject = isMultiple\n ? intersection(stateFilterValue, filter.value).length\n : stateFilterValue === filter.value\n const mutation = `${isInObject ? 'remove' : 'add'}${isMultiple ? 'Multiple' : ''}Filter`\n commit(mutation, filter)\n }\n }\n})\n","import '@/plugins/bootstrap'\nimport 'swiper/css/swiper.css'\n\nimport Vue from 'vue'\nimport VueLanding from 'nespresso-components/landing/VueLanding'\nimport Tracking from 'nespresso-library/src/core/tracking'\nimport store from '@/store'\n\nVue.config.productionTip = false\n\nexport default ({ App, trackingLabel, centralLandingAlias, sectionTrackingLabels }) => {\n const trackingLabelTxt = `B2B - LP - Page ${trackingLabel}`\n Vue.use(VueLanding, {\n project: 'b2b-plans',\n landing: centralLandingAlias,\n centralLandingAlias,\n trackingLabelPrefix: trackingLabelTxt,\n skipMutationKeys: ['background', 'image', 'standard', 'name', 'target', 'link', 'template', 'machine'],\n additionalBrands: [],\n sectionTrackingLabels\n })\n Tracking.globalTracking(trackingLabelTxt)\n return new Vue({\n el: '#agilityApp',\n store,\n render: h => h(App)\n })\n}\n","import mod 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/style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LeadForm.vue?vue&type=style&index=0&id=b5fb17a0&lang=sass&scoped=true&\"; export default mod; 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/style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LeadForm.vue?vue&type=style&index=0&id=b5fb17a0&lang=sass&scoped=true&\"","\nif (process.env.NODE_ENV === 'development') {\n require('nespresso-library/src/utils/mocks')\n}\n\n// Reset classic prototype\n/* eslint-disable */\nArray.prototype.indexOf = function (b) {\n var a = this.length >>> 0\n var c = Number(arguments[1]) || 0\n c = (c < 0) ? Math.ceil(c) : Math.floor(c)\n if (c < 0) { c += a }\n for (; c < a; c++) { if (c in this && this[c] === b) { return c } }\n return -1\n}\n/* eslint-disable */\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\nif (!Array.prototype.includes) {\n Object.defineProperty(Array.prototype, 'includes', {\n value: function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" est nul ou non défini');\n }\n var o = Object(this);\n var len = o.length >>> 0;\n if (len === 0) {\n return false;\n }\n var n = fromIndex | 0;\n var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n function sameValueZero(x, y) {\n return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));\n }\n while (k < len) {\n if (sameValueZero(o[k], searchElement)) {\n return true;\n }\n k++;\n }\n return false;\n }\n });\n}\n\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, 'find', {\n value: function(predicate) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n var o = Object(this);\n var len = o.length >>> 0;\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var thisArg = arguments[1];\n var k = 0;\n while (k < len) {\n var kValue = o[k];\n if (predicate.call(thisArg, kValue, k, o)) {\n return kValue;\n }\n k++;\n }\n return undefined;\n },\n configurable: true,\n writable: true\n });\n}\n\nimport(/* webpackChunkName: \"classic-reset\" */ 'nespresso-sass/reset/_classic.sass')\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.classes.wrapper},[_c('div',{ref:\"swiper\",staticClass:\"swiper-container\"},[_c('div',{staticClass:\"swiper-wrapper\"},[_vm._t(\"slides\")],2)]),(_vm.toolbar)?_c('div',{staticClass:\"swiper-toolbar\"},[_c('div',{ref:\"pagination\",staticClass:\"swiper-pagination\"}),_c('div',{ref:\"prevEl\",staticClass:\"swiper-button-prev\"}),_c('div',{ref:\"nextEl\",staticClass:\"swiper-button-next\"})]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div :class=\"classes.wrapper\">\n <div class=\"swiper-container\" ref=\"swiper\">\n <div class=\"swiper-wrapper\">\n <slot name=\"slides\"></slot>\n </div>\n </div>\n <div class=\"swiper-toolbar\" v-if=\"toolbar\">\n <div class=\"swiper-pagination\" ref=\"pagination\"></div>\n <div class=\"swiper-button-prev\" ref=\"prevEl\"></div>\n <div class=\"swiper-button-next\" ref=\"nextEl\"></div>\n </div>\n </div>\n</template>\n\n<script>\nimport Swiper from 'swiper'\n\nconst CONTRASTS = ['dark', 'light']\n\nexport default {\n name: 'SwiperWrapper',\n props: {\n contrast: {\n type: String,\n default: 'light',\n validator: value => CONTRASTS.includes(value)\n },\n options: {\n type: Object,\n default: () => ({})\n },\n toolbar: {\n type: Boolean,\n default: true\n }\n },\n data () {\n return {\n swiper: null\n }\n },\n computed: {\n classes () {\n return {\n wrapper: ['swiper', this.contrast]\n }\n }\n },\n mounted () {\n this.$nextTick(this.initSwiper)\n },\n beforeDestroy () {\n this.swiper.destroy()\n },\n methods: {\n initSwiper () {\n const { swiper, pagination, nextEl, prevEl } = this.$refs\n const options = {\n speed: 350,\n ...this.options,\n ...this.options.navigation && {\n navigation: {\n nextEl,\n prevEl\n }\n },\n ...this.options.pagination && {\n pagination: {\n el: pagination,\n ...this.options.pagination\n }\n }\n }\n this.swiper = new Swiper(swiper, options)\n }\n }\n}\n</script>\n\n<style lang=\"sass\" scoped>\n@import nespresso-bi/utilities\n@import nespresso-bi/brand/_variables\n\n.swiper\n position: relative\n --swiper-navigation-size: 38px\n max-width: calc(100vw - 2.5em)\n box-sizing: border-box\n\n.swiper-pagination\n position: static\n width: auto\n\n &-fraction\n color: $color_action\n font-weight: 300\n letter-spacing: 0.0625em\n\n.swiper-button-disabled\n opacity: 0.625\n\n.swiper-button-prev,\n.swiper-button-next\n font-size: 2.25em\n color: $color_mid\n transition: opacity 200ms ease\n\n &.swiper-button-disabled\n opacity: 0.05\n\n.swiper-toolbar\n height: 14px\n\n.swiper-button-prev\n left: 0\n\n.swiper-button-next\n right: 0\n\n/deep/\n .swiper-pagination-fraction\n\n .swiper-pagination-current\n color: $color_base\n font-size: 2em\n font-weight: 800\n letter-spacing: 0.25em\n\n .swiper-pagination-bullets\n display: flex\n justify-content: center\n\n .swiper-pagination-bullet\n position: relative\n height: pxToRem(7)\n width: pxToRem(7)\n border: 1px solid\n border-radius: 50%\n\n &::before\n content: ''\n +pos(absolute, -1px, -1px, -1px, -1px)\n border-radius: inherit\n transform: scale(0)\n opacity: 0\n transition: opacity 150ms ease, transform 150ms ease\n\n &-active\n &::before\n opacity: 1\n transform: scale(1.5)\n\n + .swiper-pagination-bullet\n margin-left: 1em\n\n.light\n /deep/\n .swiper-pagination-bullet\n border-color: $color-base\n &::before\n background-color: $color-base\n\n.dark\n /deep/\n .swiper-pagination-bullet\n border-color: $color-white\n &::before\n background-color: $color-white\n\n+desktop\n .swiper\n max-width: 62.25em\n margin: ($gap*2.5) auto\n\n+mobile\n .swiper\n --swiper-navigation-size: 30px\n\n .swiper-button-prev\n left: $gap * -0.25\n\n .swiper-button-next\n right: $gap * -0.25\n\n@media only screen and (max-width: 1150px)\n .swiper\n max-width: 80vw\n margin: ($gap*1.5) auto\n\n// Legacy styles for IE11 compatibility\n@media all and (-ms-high-contrast:none)\n .swiper-button-prev,\n .swiper-button-next\n position: absolute\n top: 50%\n width: 27px\n height: 44px\n margin-top: -22px\n z-index: 10\n cursor: pointer\n background-size: 27px 44px\n background-position: center\n background-repeat: no-repeat\n\n .swiper-button-prev.swiper-button-disabled,\n .swiper-button-next.swiper-button-disabled\n opacity: 0.35\n cursor: auto\n pointer-events: none\n\n .swiper-button-prev,\n .swiper-container-rtl .swiper-button-next\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23757575'%2F%3E%3C%2Fsvg%3E\")\n left: 10px\n right: auto\n\n .swiper-button-next,\n .swiper-container-rtl .swiper-button-prev\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23757575'%2F%3E%3C%2Fsvg%3E\")\n right: 10px\n left: auto\n\n .swiper-button-prev.swiper-button-white,\n .swiper-container-rtl .swiper-button-next.swiper-button-white\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E\")\n\n .swiper-button-next.swiper-button-white,\n .swiper-container-rtl .swiper-button-prev.swiper-button-white\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E\")\n\n .swiper-button-prev.swiper-button-black,\n .swiper-container-rtl .swiper-button-next.swiper-button-black\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E\")\n\n .swiper-button-next.swiper-button-black,\n .swiper-container-rtl .swiper-button-prev.swiper-button-black\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E\")\n\n .swiper-button-lock\n display: none\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwiperWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwiperWrapper.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SwiperWrapper.vue?vue&type=template&id=576f8ba0&scoped=true&\"\nimport script from \"./SwiperWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./SwiperWrapper.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SwiperWrapper.vue?vue&type=style&index=0&id=576f8ba0&lang=sass&scoped=true&\"\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 \"576f8ba0\",\n null\n \n)\n\nexport default component.exports","import mod 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/style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCard.vue?vue&type=style&index=0&id=3d62766b&lang=sass&scoped=true&\"; export default mod; 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/style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductCard.vue?vue&type=style&index=0&id=3d62766b&lang=sass&scoped=true&\"","import mod 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/style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SolutionPreferredPopin.vue?vue&type=style&index=0&id=224d7bde&lang=sass&scoped=true&\"; export default mod; 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/style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SolutionPreferredPopin.vue?vue&type=style&index=0&id=224d7bde&lang=sass&scoped=true&\"","import mod 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/style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwiperWrapper.vue?vue&type=style&index=0&id=576f8ba0&lang=sass&scoped=true&\"; export default mod; 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/style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwiperWrapper.vue?vue&type=style&index=0&id=576f8ba0&lang=sass&scoped=true&\"","export const visual = {\n methods: {\n getVisualUrl (type, name) {\n return {\n svg: this.$landing.getImgUrl({\n folder: 'icons',\n name,\n ext: 'svg'\n })\n }[type]\n }\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.dico.target && _vm.displayForm)?_c('validation-observer',[_c('form',{ref:\"form\",staticClass:\"wrapper\",on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_vm._l((_vm.dico.fields),function(field,name){return _c('div',{key:name,class:['row', { full: field.type === 'textarea' }]},[(field.display)?_c('validation-provider',_vm._b({staticClass:\"control\",attrs:{\"mode\":\"lazy\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('label',{class:{ error: errors[0] }},[(field.type === 'checkbox')?[_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form[name]),expression:\"form[name]\"}],attrs:{\"name\":\"name\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.form[name])?_vm._i(_vm.form[name],null)>-1:(_vm.form[name])},on:{\"change\":function($event){var $$a=_vm.form[name],$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.form, name, $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.form, name, $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.form, name, $$c)}}}},'input',_vm.isRequired(field),false)),_c('span',{domProps:{\"innerHTML\":_vm._s(field.label)}})]:[_c('span',{domProps:{\"innerHTML\":_vm._s(field.label)}}),((field.type)==='checkbox'&&(field.type === 'text' || field.type === 'email'|| field.type === 'tel'))?_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form[name]),expression:\"form[name]\"}],attrs:{\"name\":name,\"placeholder\":field.placeholder,\"size\":field.size,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.form[name])?_vm._i(_vm.form[name],null)>-1:(_vm.form[name])},on:{\"change\":function($event){var $$a=_vm.form[name],$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.form, name, $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.form, name, $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.form, name, $$c)}}}},'input',_vm.isRequired(field),false)):((field.type)==='radio'&&(field.type === 'text' || field.type === 'email'|| field.type === 'tel'))?_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form[name]),expression:\"form[name]\"}],attrs:{\"name\":name,\"placeholder\":field.placeholder,\"size\":field.size,\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.form[name],null)},on:{\"change\":function($event){return _vm.$set(_vm.form, name, null)}}},'input',_vm.isRequired(field),false)):(field.type === 'text' || field.type === 'email'|| field.type === 'tel')?_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form[name]),expression:\"form[name]\"}],attrs:{\"name\":name,\"placeholder\":field.placeholder,\"size\":field.size,\"type\":field.type},domProps:{\"value\":(_vm.form[name])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, name, $event.target.value)}}},'input',_vm.isRequired(field),false)):_vm._e(),(field.type === 'select')?_c('select',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form[name]),expression:\"form[name]\"}],attrs:{\"name\":name},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.form, name, $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},'select',_vm.isRequired(field),false),[_c('option',{attrs:{\"value\":\"\",\"selected\":\"\",\"disabled\":\"\"}},[_vm._v(_vm._s(field.default))]),_vm._l((field.options),function(option){return _c('option',{key:option.value,domProps:{\"value\":option.value}},[_vm._v(_vm._s(option.label))])})],2):_vm._e(),(field.type === 'textarea')?_c('textarea',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.form[name]),expression:\"form[name]\"}],attrs:{\"name\":name,\"placeholder\":field.placeholder},domProps:{\"value\":(_vm.form[name])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.form, name, $event.target.value)}}},'textarea',_vm.isRequired(field),false)):_vm._e()]],2),_c('small',[_vm._v(_vm._s(errors[0]))])]}}],null,true)},'validation-provider',_vm.regex(field),false)):_vm._e()],1)}),_c('div',{staticClass:\"row footer\"},[_c('div',[_c('validation-provider',{staticClass:\"mention\",attrs:{\"rules\":{ required: { allowFalse: false } }},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('label',{class:{ error: errors[0] }},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.terms),expression:\"terms\"}],attrs:{\"name\":\"terms\",\"required\":\"\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.terms)?_vm._i(_vm.terms,null)>-1:(_vm.terms)},on:{\"change\":function($event){var $$a=_vm.terms,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.terms=$$a.concat([$$v]))}else{$$i>-1&&(_vm.terms=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.terms=$$c}}}}),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.dico.fields.terms.label)}}),_c('small',[_vm._v(_vm._s(errors[0]))])])]}}],null,false,1844413010)})],1),_c('div',{staticClass:\"grecaptcha-badge\"},[_c('div',{staticClass:\"g-recaptcha\",attrs:{\"data-sitekey\":_vm.reCaptchaID}}),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"captchaToken\",\"id\":\"captchaToken\"}})])]),_c('div',{staticClass:\"row bar\"},[(_vm.feedback.message)?_c('small',{class:_vm.feedback.status,domProps:{\"innerHTML\":_vm._s(_vm.feedback.message)}}):_vm._e(),_c('cta',{staticClass:\"back g_btnWhite\",attrs:{\"is-btn\":\"\",\"type\":\"button\",\"content\":_vm.config.back},on:{\"click\":_vm.back}}),_c('button',{ref:\"submit\",staticClass:\"g_btn submit\",attrs:{\"type\":\"submit\",\"disabled\":_vm.isLoading}},[_vm._v(\" \"+_vm._s(_vm.dico.fields.submit.label)+\" \")])],1)],2)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <validation-observer\n v-if=\"dico.target && displayForm\"\n >\n <form class=\"wrapper\" ref=\"form\" @submit.prevent=\"onSubmit\">\n <div :class=\"['row', { full: field.type === 'textarea' }]\"\n v-for=\"(field, name) in dico.fields\"\n :key=\"name\"\n >\n <validation-provider\n class=\"control\"\n mode=\"lazy\"\n v-bind=\"regex(field)\"\n v-if=\"field.display\"\n v-slot=\"{ errors }\"\n >\n <label :class=\"{ error: errors[0] }\">\n\n <template v-if=\"field.type === 'checkbox'\">\n <input\n name=\"name\"\n v-bind=\"isRequired(field)\"\n type=\"checkbox\"\n v-model=\"form[name]\"\n >\n <span v-html=\"field.label\" />\n </template>\n\n <template v-else>\n <span v-html=\"field.label\" />\n <input\n :name=\"name\"\n :placeholder=\"field.placeholder\"\n :size=\"field.size\"\n :type=\"field.type\"\n v-bind=\"isRequired(field)\"\n v-if=\"field.type === 'text' || field.type === 'email'|| field.type === 'tel'\"\n v-model=\"form[name]\"\n />\n <select\n :name=\"name\"\n v-bind=\"isRequired(field)\"\n v-if=\"field.type === 'select'\"\n v-model=\"form[name]\"\n >\n <option value=\"\" selected disabled>{{ field.default }}</option>\n <option\n v-for=\"option in field.options\"\n :key=\"option.value\"\n :value=\"option.value\"\n >{{ option.label }}</option>\n </select>\n <textarea\n :name=\"name\"\n :placeholder=\"field.placeholder\"\n v-bind=\"isRequired(field)\"\n v-if=\"field.type === 'textarea'\"\n v-model=\"form[name]\"\n />\n </template>\n\n </label>\n <small>{{ errors[0] }}</small>\n </validation-provider>\n </div>\n\n <div class=\"row footer\">\n <div>\n <validation-provider class=\"mention\" v-slot=\"{ errors }\" :rules=\"{ required: { allowFalse: false } }\">\n <label :class=\"{ error: errors[0] }\">\n <input\n name=\"terms\"\n required\n type=\"checkbox\"\n v-model=\"terms\"\n >\n <span v-html=\"dico.fields.terms.label\" />\n <small>{{ errors[0] }}</small>\n </label>\n </validation-provider>\n </div>\n <div class=\"grecaptcha-badge\">\n <div class=\"g-recaptcha\" :data-sitekey=\"reCaptchaID\"> </div>\n <input type=\"hidden\" name=\"captchaToken\" id=\"captchaToken\" />\n </div>\n </div>\n <div class=\"row bar\">\n <small\n :class=\"feedback.status\"\n v-if=\"feedback.message\"\n v-html=\"feedback.message\"\n />\n <cta\n is-btn\n type=\"button\"\n class=\"back g_btnWhite\"\n :content=\"config.back\"\n @click=\"back\"\n />\n <button\n class=\"g_btn submit\"\n ref=\"submit\"\n type=\"submit\"\n :disabled=\"isLoading\"\n >\n {{ dico.fields.submit.label }}\n </button>\n </div>\n </form>\n </validation-observer>\n</template>\n\n<script>\nimport axios from 'axios'\nimport Cta from 'gvue/src/core/Cta'\nimport { ValidationObserver, ValidationProvider, extend } from 'vee-validate'\nimport { email, regex, required } from 'vee-validate/dist/rules'\nimport Tracking from 'nespresso-library/src/core/tracking'\n\nexport default {\n name: 'LeadForm',\n components: {\n Cta,\n ValidationObserver,\n ValidationProvider\n },\n props: {\n message: { type: String, default: '' }\n },\n data () {\n return {\n form: {},\n formFields: {},\n terms: '',\n feedback: {\n status: '',\n message: ''\n },\n reCaptchaID: '',\n isLoading: false\n }\n },\n computed: {\n displayForm () {\n return Object.values(this.form)\n }\n },\n created () {\n this.config = this.$json.config\n this.dico = this.$json.form\n this.initializeData()\n this.configureValidation(this.dico.config)\n },\n watch: {\n message (value) {\n this.form.comment = value\n }\n },\n mounted () {\n const apiURL = `https://www.nespresso.com/ecapi/stores/v5/${this.$landing.country.toLowerCase()}/B2B`\n fetch(apiURL)\n .then(async response => {\n const data = await response.json()\n // check for error response\n if (!response.ok) {\n // get error message from body or default to response statusText\n const error = (data && data.message) || response.statusText\n return Promise.reject(error)\n }\n this.reCaptchaID = data.recaptchaKey || ''\n // Load the recaptcha script once recaptchaKey is added to the data-sitekey attribute of div having class=\"g-recaptcha\"\n const script = document.createElement('script')\n script.setAttribute('src', 'https://www.google.com/recaptcha/api.js')\n document.head.appendChild(script)\n })\n .catch(error => {\n console.error('There was an error!', error)\n })\n },\n methods: {\n onSubmit (event) {\n this.isLoading = true\n this.form.captchaToken = event.target['g-recaptcha-response'].value\n if (!this.form.captchaToken) {\n this.isLoading = false\n return\n }\n this.form.language = window.padl.page.pageInfo.language\n\n for (const key in this.form) {\n if (this.form[key]) {\n this.formFields[key] = this.form[key]\n }\n }\n\n if (!this.formFields.firstName) {\n this.formFields.firstName = 'Subscription'\n }\n\n if (this.formFields.comment) {\n const { country } = this.$landing\n if (country !== 'BE' && country !== 'LU') {\n this.formFields.comment = this.formFields.comment.substr(0, 499)\n }\n }\n\n this.send()\n },\n send () {\n const axiosConfig = {\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n }\n axios.post(this.dico.target, JSON.stringify(this.formFields), axiosConfig)\n .then((res) => {\n this.feedback = {\n status: 'success',\n message: this.dico.messages.success\n }\n this.isLoading = false\n this.track()\n })\n .catch((error) => {\n this.feedback = {\n status: 'error',\n message: this.dico.messages.error.replace('{error}', error.message)\n }\n this.isLoading = false\n })\n },\n initializeData () {\n this.form = Object\n .keys(this.dico.fields)\n .reduce(\n (fields, fieldName) => ({ ...fields, [fieldName]: '' }), {}\n )\n this.form.comment = this.message\n },\n configureValidation (config) {\n extend('email', { ...email, message: this.dico.fields.emailAddress.error })\n extend('regex-city', { ...regex, message: this.dico.fields.city.error })\n extend('regex-name', { ...regex, message: this.dico.fields.firstName.error })\n extend('regex-phone', { ...regex, message: this.dico.fields.phoneNumber.error })\n extend('regex-zipcode', { ...regex, message: this.dico.fields.zipCode.error })\n extend('regex-postcode', { ...regex, message: this.dico.fields.zipCode.error })\n extend('required', { ...required, message: config.required })\n },\n track () {\n Tracking.customEvent({\n category: 'User Engagement',\n action: 'Click',\n label: `${this.$landing.trackingLabelPrefix} - Lead`,\n interaction: 0\n })\n },\n isRequired (field) {\n return {\n ...field.required && {\n required: 'required'\n }\n }\n },\n regex (field) {\n if (!field.regex || field.regex.name === '') {\n return {}\n }\n const rules = field.type === 'checkbox' && field.required\n ? { required: { allowFalse: false } }\n : { [`regex-${field.regex.name.trim().toLowerCase()}`]: new RegExp(field.regex.rule) }\n\n return { rules }\n },\n back () {\n this.$store.commit('toggleForm', false)\n }\n }\n}\n</script>\n\n<style lang=\"sass\" scoped>\n@import ~nespresso-bi/utilities\n@import ~nespresso-bi/brand/variables\n@import LeadForm\n\n.g\n .g_btn.submit\n margin-left: $gap\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LeadForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LeadForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LeadForm.vue?vue&type=template&id=b5fb17a0&scoped=true&\"\nimport script from \"./LeadForm.vue?vue&type=script&lang=js&\"\nexport * from \"./LeadForm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LeadForm.vue?vue&type=style&index=0&id=b5fb17a0&lang=sass&scoped=true&\"\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 \"b5fb17a0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"highlights\"},_vm._l((_vm.highlights),function(highlight){return _c('li',{key:highlight.title,class:['highlight', { excluded: highlight.excluded }]},[_c('span',{staticClass:\"bullet\"},[_c('visual',{attrs:{\"svg\":_vm.icon}})],1),_c('paragraph',{attrs:{\"size\":\"S\",\"content\":highlight.label}})],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ul class=\"highlights\">\n <li\n :class=\"['highlight', { excluded: highlight.excluded }]\"\n :key=\"highlight.title\"\n v-for=\"highlight in highlights\"\n >\n <span class=\"bullet\">\n <visual :svg=\"icon\"/>\n </span>\n <paragraph size=\"S\" :content=\"highlight.label\" />\n </li>\n </ul>\n\n</template>\n\n<script>\nimport Paragraph from 'gvue/src/core/Paragraph'\nimport Visual from 'gvue/src/core/Visual'\n\nexport default {\n name: 'Highlight',\n props: {\n highlights: { type: Array, required: true }\n },\n components: {\n Paragraph,\n Visual\n },\n computed: {\n icon () {\n return this.$landing.getImgUrl({ folder: 'icons', name: 'icon-list-item', ext: 'svg' })\n }\n }\n}\n</script>\n\n<style lang=\"sass\" scoped>\n@import ~nespresso-bi/utilities\n@import ~nespresso-bi/brand/variables\n\n.highlights\n list-style-type: none\n margin: ($gap * 0.75) 0 0 0\n padding: 0\n\n.highlight\n display: flex\n align-items: center\n\n + .highlight\n margin-top: 0.75em\n\n &.excluded\n opacity: 0.7\n filter: grayscale(1)\n\n.bullet\n display: flex\n align-items: center\n justify-content: center\n margin-right: 0.75em\n padding: 0.25em\n background-color: $color_action\n border-radius: 50%\n\n /deep/\n svg\n height: pxToRem(10)\n width: pxToRem(10)\n display: block\n fill: $color_white\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListHighlights.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListHighlights.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ListHighlights.vue?vue&type=template&id=3c056a76&scoped=true&\"\nimport script from \"./ListHighlights.vue?vue&type=script&lang=js&\"\nexport * from \"./ListHighlights.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ListHighlights.vue?vue&type=style&index=0&id=3c056a76&lang=sass&scoped=true&\"\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 \"3c056a76\",\n null\n \n)\n\nexport default component.exports","import mod 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/style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListHighlights.vue?vue&type=style&index=0&id=3c056a76&lang=sass&scoped=true&\"; export default mod; 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/style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListHighlights.vue?vue&type=style&index=0&id=3c056a76&lang=sass&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popin',{attrs:{\"close-label\":\"Close\",\"is-open\":_vm.value},on:{\"input\":_vm.onChange}},[_c('div',{staticClass:\"figure\"},[(_vm.imgURL && !_vm.isForcingPopinImage())?_c('img',{attrs:{\"src\":_vm.imgURL()}}):(_vm.isForcingPopinImage())?_c('visual',{attrs:{\"src\":_vm.images.forcedSameMachinePopin}}):(_vm.isFromApi && !_vm.forceImage && !_vm.isForcingPopinImage())?_c('img',{attrs:{\"src\":_vm.images.machine}}):_c('img',{attrs:{\"src\":_vm.images.machine}})],1),_c('div',{staticClass:\"caption\"},[_c('heading',{attrs:{\"level\":3},domProps:{\"innerHTML\":_vm._s(_vm.solution.popin.title)}}),_c('paragraph',{attrs:{\"size\":\"S\"},domProps:{\"innerHTML\":_vm._s(_vm.solution.popin.introduction)}}),_c('list-highlights',{attrs:{\"highlights\":_vm.solution.popin.highlights}}),_c('heading',{attrs:{\"level\":5}},[_c('visual',{attrs:{\"src\":_vm.images.package}}),_vm._v(\" \"+_vm._s(_vm.solution.popin.package.title)+\" \")],1),_c('list-highlights',{attrs:{\"highlights\":_vm.solution.popin.package.highlights}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <popin\n close-label=\"Close\"\n :is-open=\"value\"\n @input=\"onChange\"\n >\n <div class=\"figure\">\n <img v-if=\"imgURL && !isForcingPopinImage()\" :src=\"imgURL()\"/>\n <visual v-else-if=\"isForcingPopinImage()\" :src=\"images.forcedSameMachinePopin\"/>\n <img v-else-if=\"isFromApi && !forceImage && !isForcingPopinImage()\" :src=\"images.machine\"/>\n <img v-else :src=\"images.machine\"/>\n </div>\n\n <div class=\"caption\">\n <heading :level=\"3\" v-html=\"solution.popin.title\" />\n <paragraph size=\"S\" v-html=\"solution.popin.introduction\" />\n <list-highlights :highlights=\"solution.popin.highlights\" />\n <heading :level=\"5\">\n <visual :src=\"images.package\" />\n {{ solution.popin.package.title }}\n </heading>\n <list-highlights :highlights=\"solution.popin.package.highlights\" />\n </div>\n </popin>\n</template>\n\n<script>\nimport Nespresso from 'nespresso-library/src/core/api'\nimport Heading from 'gvue/src/core/Heading'\nimport Paragraph from 'gvue/src/core/Paragraph'\nimport Popin from 'gvue/src/core/Popin'\nimport ListHighlights from '@/components/list/ListHighlights'\n\nexport default {\n name: 'SolutionPreferredPopin',\n components: {\n Heading,\n Paragraph,\n Popin,\n ListHighlights\n },\n props: {\n solution: { type: Object, required: true },\n value: { type: Boolean, default: false }\n },\n computed: {\n images () {\n return {\n package: { folder: 'visuals', name: this.solution.popin.visual, ext: 'png' },\n machine: (!this.forceImage && this.isFromApi)\n ? this.apiProduct.responsiveImages.standard\n : { folder: 'visuals', name: this.solution.machine.image, ext: 'png' },\n forcedSameMachinePopin: { folder: 'visuals', name: this.solution.machine.image, ext: 'png' }\n }\n },\n isFromApi () {\n return this.apiProduct !== null\n },\n forceImage () {\n return this.solution.machine.image\n }\n },\n data () {\n return {\n isOpened: this.open,\n apiProduct: null\n }\n },\n async created () {\n const api = new Nespresso()\n const sku = this.solution.machine.sku\n if (sku) {\n this.apiProduct = await api.getProduct(sku)\n }\n this.config = this.$json.config\n },\n methods: {\n isForcingPopinImage () {\n return this.solution.machine.forceImagePopin\n },\n imgURL () {\n const popImg = window.sessionStorage.getItem('popinImg')\n if (popImg !== null) {\n return popImg\n }\n return false\n },\n onChange (value) {\n this.$emit('input', value)\n }\n }\n}\n</script>\n\n<style lang=\"sass\" scoped>\n@import ~nespresso-bi/utilities\n@import ~nespresso-bi/brand/variables\n\n.g\n .g_popin\n /deep/\n .g_popinContent\n background-color: white\n padding: ($gap * 4.5) ($gap * 2) ($gap * 2)\n\n .g_h3\n margin: 0\n\n .g_h5\n margin: ($gap * 1.5) 0 0 0\n\n img\n margin-right: 0.25em\n position: relative\n top: 0.125em\n height: 1.25em\n width: auto\n\n .g_txt_S\n margin: ($gap * 0.5) 0 0\n max-width: 25em\n\n.figure\n img\n margin: 0 auto\n max-height: 20em\n max-width: 14em\n\n.caption\n flex-basis: 60%\n text-align: left\n\n.terms\n margin-top: ($gap * 2)\n padding-top: ($gap * 2)\n border-top: 1px solid $color_border\n opacity: 0.5\n\n/deep/\n .bullet\n background-color: currentColor\n\n .highlights\n margin-top: $gap\n font-size: 0.875em\n\n .g_wysiwyg\n margin: 0\n\n+mobile\n .figure\n text-align: center\n height: 15em\n img\n max-height: 15em\n min-height: 100%\n\n .g\n .g_popin\n /deep/\n .g_popinContent\n height: 100%\n\n+desktop\n .figure\n flex-basis: 40%\n flex-shrink: 0\n img\n display: block\n height: 100%\n width: 100%\n object-fit: contain\n\n .g\n .g_popin\n /deep/\n .g_popinRestrict\n width: 50em\n min-width: 50em\n height: auto\n max-height: none\n border-radius: 5px\n\n .g_popinContent\n border-radius: 5px\n padding: ($gap * 3) ($gap * 4) ($gap * 3) 0\n display: flex\n\n@media all and (-ms-high-contrast:none)\n .figure\n img\n height: auto\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SolutionPreferredPopin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SolutionPreferredPopin.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SolutionPreferredPopin.vue?vue&type=template&id=224d7bde&scoped=true&\"\nimport script from \"./SolutionPreferredPopin.vue?vue&type=script&lang=js&\"\nexport * from \"./SolutionPreferredPopin.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SolutionPreferredPopin.vue?vue&type=style&index=0&id=224d7bde&lang=sass&scoped=true&\"\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 \"224d7bde\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}