{"version":3,"sources":["webpack:///./node_modules/nespresso-components/AddToCart/QuantitySelector.vue?93c4","webpack:///node_modules/nespresso-components/AddToCart/QuantitySelector.vue","webpack:///./node_modules/nespresso-components/AddToCart/QuantitySelector.vue?bab9","webpack:///./node_modules/nespresso-components/AddToCart/QuantitySelector.vue","webpack:///./node_modules/nespresso-components/AddToCart/QuantitySelector.vue?0773"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","ref","attrs","on","$event","$emit","domProps","_s","voices","close","howTo","preventDefault","style","product","images","_e","name","directives","rawName","value","expression","inStock","displayedPrice","_l","quantity","class","g_activeQuantity","activeQuantity","maxQuantity","set","btnLabelAdd","Infinity","warningProductLimit","_uid","chooseQuantity","step","otherQuantity","target","composing","customQuantity","_v","staticRenderFns","component"],"mappings":"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","file":"js/QuantitySelector.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"g_quantity_scene\"},[_c('div',{ref:\"quantityPopin\",staticClass:\"g_quantity_popin\",attrs:{\"tabindex\":\"-1\"}},[_c('div',{staticClass:\"g_quantity-popin-content\"},[(_vm.opened)?[_c('button',{staticClass:\"g_close\",on:{\"click\":function($event){return _vm.$emit('update:opened', false)}}},[_c('i',{staticClass:\"fn_close\",attrs:{\"aria-hidden\":\"true\"}}),_c('span',{staticClass:\"g_visually_hidden\",domProps:{\"textContent\":_vm._s(_vm.voices.close)}})]),_c('p',{staticClass:\"g_visually_hidden\",domProps:{\"textContent\":_vm._s(_vm.voices.howTo)}}),_c('form',{attrs:{\"role\":\"form\"},on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"g_productRow\"},[_c('div',{staticClass:\"g_product\"},[(_vm.isTouch)?_c('div',{staticClass:\"g_productImage\",style:((\"background-image: url(\" + (_vm.product.images.icon) + \")\"))}):_vm._e(),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.product.name)}}),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showPriceInQS),expression:\"showPriceInQS\"}],staticClass:\"g_productPrice\",attrs:{\"data-disabled\":!_vm.product.inStock},domProps:{\"textContent\":_vm._s(_vm.product.displayedPrice)}})])]),_c('div',{staticClass:\"g_quantitySelectorRow\"},[_c('ul',{staticClass:\"g_quantitySelector\"},_vm._l((_vm.quantities),function(quantity){return _c('li',[_c('button',{class:{g_activeQuantity: quantity === _vm.activeQuantity },attrs:{\"disabled\":quantity > _vm.maxQuantity},on:{\"click\":function($event){return _vm.set(quantity)}}},[_c('span',{staticClass:\"g_visually_hidden\",domProps:{\"textContent\":_vm._s(_vm.btnLabelAdd)}}),_c('span',{domProps:{\"textContent\":_vm._s(quantity)}}),_c('span',{staticClass:\"g_visually_hidden\",domProps:{\"innerHTML\":_vm._s(_vm.product.name)}})])])}),0)]),_c('div',{staticClass:\"g_quantityOtherRow\"},[_c('div',{staticClass:\"g_quantityOther\"},[(_vm.maxQuantity < Infinity)?_c('label',{domProps:{\"textContent\":_vm._s(_vm.warningProductLimit)}}):[_c('label',{staticClass:\"g_visually_hidden\",attrs:{\"for\":'g_quantity_selector_other' + _vm._uid},domProps:{\"textContent\":_vm._s(_vm.voices.chooseQuantity)}}),(_vm.isTouch)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customQuantity),expression:\"customQuantity\"}],attrs:{\"type\":\"number\",\"step\":_vm.step,\"min\":0,\"pattern\":\"[0-9]*\",\"inputmode\":\"numeric\",\"id\":'g_quantity_selector_other' + _vm._uid,\"placeholder\":_vm.voices.otherQuantity,\"aria-describedby\":'g_quantity_selector_hint' + _vm._uid,\"maxlength\":\"4\"},domProps:{\"value\":(_vm.customQuantity)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.customQuantity=$event.target.value}}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customQuantity),expression:\"customQuantity\"}],attrs:{\"type\":\"text\",\"step\":_vm.step,\"min\":0,\"pattern\":\"[0-9]*\",\"inputmode\":\"numeric\",\"id\":'g_quantity_selector_other' + _vm._uid,\"placeholder\":_vm.voices.otherQuantity,\"aria-describedby\":'g_quantity_selector_hint' + _vm._uid,\"maxlength\":\"4\"},domProps:{\"value\":(_vm.customQuantity)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.customQuantity=$event.target.value}}}),_c('span',{staticClass:\"g_visually_hidden\",attrs:{\"id\":'g_quantity_selector_hint' + _vm._uid},domProps:{\"textContent\":_vm._s(_vm.voices.otherQuantity)}}),_c('button',{staticClass:\"g_valid\",on:{\"click\":function($event){return _vm.set(_vm.customQuantity)}}},[_c('span',[_vm._v(\"OK\")])])]],2)])])]:_vm._e()],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<style lang=\"sass\">\n @import ~nespresso-bi/utilities\n @import ~nespresso-bi/brand/variables\n @import variables\n @import quantitySelector\n</style>\n\n<template lang=\"html\">\n <div class=\"g_quantity_scene\">\n <div class=\"g_quantity_popin\" ref=\"quantityPopin\" tabindex=\"-1\">\n <div class=\"g_quantity-popin-content\">\n <template v-if=\"opened\">\n <button class=\"g_close\" @click=\"$emit('update:opened', false)\">\n <i aria-hidden=\"true\" class=\"fn_close\"></i>\n <span class=\"g_visually_hidden\" v-text=\"voices.close\"></span>\n </button>\n <p class=\"g_visually_hidden\" v-text=\"voices.howTo\"></p>\n <form role=\"form\" @submit.prevent>\n <div class=\"g_productRow\">\n <div class=\"g_product\">\n <div class=\"g_productImage\" v-if=\"isTouch\" :style=\"`background-image: url(${product.images.icon})`\"></div>\n <span v-html=\"product.name\"></span>\n <p class=\"g_productPrice\" v-text=\"product.displayedPrice\" v-show=\"showPriceInQS\" :data-disabled=\"!product.inStock\"></p>\n </div>\n </div>\n <div class=\"g_quantitySelectorRow\">\n <ul class=\"g_quantitySelector\">\n <li v-for=\"quantity in quantities\">\n <button @click=\"set(quantity)\" :class=\"{g_activeQuantity: quantity === activeQuantity }\" :disabled=\"quantity > maxQuantity\">\n <span class=\"g_visually_hidden\" v-text=\"btnLabelAdd\"></span>\n <span v-text=\"quantity\"></span>\n <span v-html=\"product.name\" class=\"g_visually_hidden\"></span>\n </button>\n </li>\n </ul>\n </div>\n <div class=\"g_quantityOtherRow\">\n <div class=\"g_quantityOther\">\n <label v-if=\"maxQuantity < Infinity\" v-text=\"warningProductLimit\"></label>\n <template v-else>\n <label :for=\"'g_quantity_selector_other' + _uid\" v-text=\"voices.chooseQuantity\" class=\"g_visually_hidden\"></label><!--\n --><input v-if=\"isTouch\" v-model=\"customQuantity\" type=\"number\" :step=\"step\" :min=\"0\" pattern=\"[0-9]*\" inputmode=\"numeric\" :id=\"'g_quantity_selector_other' + _uid\" :placeholder=\"voices.otherQuantity\" :aria-describedby=\"'g_quantity_selector_hint' + _uid\" maxlength=\"4\"><!--\n --><input v-else v-model=\"customQuantity\" type=\"text\" :step=\"step\" :min=\"0\" pattern=\"[0-9]*\" inputmode=\"numeric\" :id=\"'g_quantity_selector_other' + _uid\" :placeholder=\"voices.otherQuantity\" :aria-describedby=\"'g_quantity_selector_hint' + _uid\" maxlength=\"4\"><!--\n --><span :id=\"'g_quantity_selector_hint' + _uid\" class=\"g_visually_hidden\" v-text=\"voices.otherQuantity\"></span><!--\n --><button class=\"g_valid\" @click=\"set(customQuantity)\">\n <span>OK</span>\n </button>\n </template>\n </div>\n </div>\n </form>\n </template>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { on, off, toggleClass, contains } from 'gaspard'\nimport dataLayer from 'nespresso-library/src/core/dataLayer'\nimport isTouch from 'nespresso-library/src/utils/isTouch'\n\nconst html = document.documentElement\n\nexport default {\n props: {\n opened: Boolean,\n product: Object,\n quantities: Array,\n voices: Object,\n activeQuantity: Number,\n step: Number,\n btnLabelAdd: String,\n showPriceInQS: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n customQuantity: null,\n // voiceClickToRemove: null,\n warningProductLimit: null,\n maxQuantity: Infinity,\n isTouch\n }\n },\n created () {\n this.setRule()\n },\n watch: {\n product (value, oldValue) {\n if (value.sku !== oldValue.sku) {\n this.setRule()\n }\n },\n opened (value) {\n this.$emit('update:opened', value)\n window.setTimeout(() => (value ? on : off)(document, 'click', this.clickOutside))\n if (value) {\n toggleClass(html, 'QSOpened', true)\n if (isTouch) {\n this._lastPageYScroll = window.pageYOffset\n }\n } else {\n window.setTimeout(() => toggleClass(html, 'QSOpened', false), 1500)\n if (isTouch && (this._lastPageYScroll !== window.pageYOffset)) {\n window.scrollTo(0, this._lastPageYScroll)\n }\n }\n },\n activeQuantity (value) {\n this.customQuantity = ~this.quantities.indexOf(value) ? null : value\n }\n },\n methods: {\n set (quantity) {\n quantity = Number(quantity)\n if (isNaN(quantity)) {\n quantity = this.quantities[this.quantities.length - 1]\n } else if (quantity > this.maxQuantity) {\n quantity = this.maxQuantity\n }\n if (Number(this.customQuantity) === 0) {\n this.customQuantity = null\n }\n this.$emit('setQuantity', quantity, true)\n },\n clickOutside (e) {\n if (this.opened && !contains(this.$refs.quantityPopin, e.target)) {\n this.$emit('update:opened', false)\n }\n },\n setRule () {\n window.napi\n .market()\n .getPackagingRules()\n .then(packagingRules => {\n for (const packagingRule of packagingRules) {\n for (const product of packagingRule.products) {\n if (product === this.product.id) {\n if (packagingRule.type === 'MAX') {\n this.maxQuantity = packagingRule.value / this.product.unitQuantity\n let warningProductLimit = window.config\n if (dataLayer.isMobile) {\n warningProductLimit = warningProductLimit.warningProductLimit\n } else if (dataLayer.isResponsive || dataLayer.isMosaic) {\n warningProductLimit = warningProductLimit.labels.quantitySelector.warningProductLimit\n } else {\n warningProductLimit = ''\n }\n this.warningProductLimit = warningProductLimit.replace('{0}', packagingRule.value)\n }\n break\n }\n }\n }\n })\n }\n }\n}\n</script>\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./QuantitySelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./QuantitySelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./QuantitySelector.vue?vue&type=template&id=9aa9ae18&lang=html&\"\nimport script from \"./QuantitySelector.vue?vue&type=script&lang=js&\"\nexport * from \"./QuantitySelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./QuantitySelector.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../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 * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../css-loader/index.js??ref--9-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--9-oneOf-1-2!../../sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./QuantitySelector.vue?vue&type=style&index=0&lang=sass&\""],"sourceRoot":""}