{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./resources/js/src/app/components/item/OrderPropertyList.vue","webpack:///./resources/js/src/app/components/item/OrderPropertyListGroup.vue","webpack:///./resources/js/src/app/components/item/OrderPropertyListItem.vue","webpack:///resources/js/src/app/components/item/OrderPropertyListItem.vue","webpack:///./resources/js/src/app/components/item/OrderPropertyListItem.vue?9cfe","webpack:///./resources/js/src/app/components/item/OrderPropertyListGroup.vue?7adf","webpack:///resources/js/src/app/components/item/OrderPropertyListGroup.vue","webpack:///./resources/js/src/app/components/item/OrderPropertyListItem.vue?b1da","webpack:///resources/js/src/app/components/item/OrderPropertyList.vue","webpack:///./resources/js/src/app/components/item/OrderPropertyList.vue?a774","webpack:///./resources/js/src/app/components/item/OrderPropertyListGroup.vue?2baf","webpack:///./resources/js/src/app/components/item/OrderPropertyList.vue?bfc2"],"names":["$","$values","values","target","stat","O","DESCRIPTORS","fails","uncurryThis","objectGetPrototypeOf","objectKeys","toIndexedObject","propertyIsEnumerable","f","push","IE_BUG","Object","create","createMethod","TO_ENTRIES","it","key","keys","IE_WORKAROUND","length","i","result","module","exports","entries","render","_vm","this","_c","_self","renderOrderPropertyList","staticClass","style","transform","activeSlide","_l","sortedGroupedProperties","propertyGroup","index","class","active","id","attrs","paddingClasses","paddingInlineStyles","_v","tabindex","on","click","$event","slideTo","directives","name","rawName","highlight","touchedSlides","error","hasError","title","group","names","$translate","_e","_withStripped","isShownOnItemPageCount","_s","description","properties","property","isShownOnItemPage","inputType","value","inputValue","expression","type","maxlength","isOrderProperty","domProps","input","composing","onInputValueChanged","surcharge","inclOrPlus","_f","footnotes","requiredFootnotes","isRequired","isPreSelected","_uid","checked","change","for","selectedDescription","selectionValue","$$selectedVal","Array","prototype","filter","call","options","o","selected","map","_value","multiple","selectionValues","placement","scopedSlots","_u","fn","proxy","waiting","disabled","selectedFileName","selectedFile","preventDefault","clearSelectedFile","ref","size","setPropertyFile","isTouchDevice","ApiService","require","NotificationService","props","inject","itemId","default","data","mounted","_this","document","addEventListener","event","detail","valueType","warn","TranslationService","translate","propertyName","closeAfter","computed","_objectSpread","orderPropertyGroupingType","_this2","App","config","item","requireOrderProperties","variationMarkInvalidProperties","variationMissingProperties","find","itemSurcharge","hasTax","vatId","isShownAsAdditionalCosts","isNullOrUndefined","$store","getters","concat","state","items","isSSR","body","classList","contains","mapState","isBasketLoading","basket","methods","isOderProperty","useVariationOrderProperties","validateInt","validateFloat","commit","setVariationOrderProperty","propertyId","parseInt","isNaN","lastChar","slice","str","replace","decimalSeparator","arr","split","toFixedLength","parseFloat","toFixed","toString","orderProperty","files","uploadPropertyFile","file","_this3","setIsBasketLoading","fileData","FormData","append","post","processData","contentType","cache","async","timeout","supressNotifications","done","response","fail","_handleValidationErrors","always","$refs","fileInput","hasOwnProperty","_i","_Object$values","validation_errors","err","message","maxSize","mapMutations","components","OrderPropertyListItem","String","_step","groupedProperties","JSON","parse","stringify","variationGroupedProperties","_iterator","_createForOfIteratorHelper","s","n","sortGroupProperties","e","getSortedGroups","missingPropertyGroupIds","_toConsumableArray","Set","isShopBuilder","sort","prev","current","position","groups","_step2","_iterator2","lowestPosition","reduce","groupId","includes"],"mappings":"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","file":"chunks/ceres-7.min.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _vm.renderOrderPropertyList\n ? _c(\"div\", { staticClass: \"order-property-slider mb-3\" }, [\n _c(\n \"div\",\n {\n staticClass: \"order-property-slider-inner\",\n style: { transform: \"translateX(-\" + _vm.activeSlide * 100 + \"%)\" },\n },\n _vm._l(_vm.sortedGroupedProperties, function (propertyGroup, index) {\n return _c(\n \"div\",\n { key: index, class: { active: index === _vm.activeSlide } },\n [\n _c(\"order-property-list-group\", {\n key: propertyGroup.id,\n attrs: {\n \"padding-classes\": _vm.paddingClasses,\n \"padding-inline-styles\": _vm.paddingInlineStyles,\n \"property-group\": propertyGroup,\n },\n }),\n ],\n 1\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _vm.sortedGroupedProperties.length > 1\n ? _c(\n \"div\",\n {\n staticClass: \"order-property-slider-controls\",\n class: _vm.paddingClasses,\n style: _vm.paddingInlineStyles,\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"btn shadow-none\",\n class: {\n \"btn-primary\": _vm.activeSlide > 0,\n \"btn-secondary disabled\": _vm.activeSlide === 0,\n },\n attrs: {\n tabindex: \"0\",\n \"data-testing\": \"order-property-previous-slide\",\n },\n on: {\n click: function ($event) {\n return _vm.slideTo(_vm.activeSlide - 1)\n },\n },\n },\n [_c(\"span\", { staticClass: \"fa fa-chevron-left\" })]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"slider-nav\" },\n _vm._l(\n _vm.sortedGroupedProperties,\n function (propertyGroup, index) {\n return _c(\"span\", {\n directives: [{ name: \"tooltip\", rawName: \"v-tooltip\" }],\n key: index,\n class: {\n active: index === _vm.activeSlide,\n highlight: !_vm.touchedSlides[index],\n error: propertyGroup.hasError,\n },\n attrs: {\n \"data-toggle\": \"tooltip\",\n \"data-placement\": \"top\",\n title: propertyGroup.group\n ? propertyGroup.group.names.name\n : _vm.$translate(\n \"Ceres::Template.singleItemPropertiesWithoutGroup\"\n ),\n },\n on: {\n click: function ($event) {\n return _vm.slideTo(index)\n },\n },\n })\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"btn float-right shadow-none\",\n class: {\n \"btn-primary\":\n _vm.activeSlide <\n _vm.sortedGroupedProperties.length - 1,\n \"btn-secondary disabled\":\n _vm.activeSlide >=\n _vm.sortedGroupedProperties.length - 1,\n },\n attrs: {\n tabindex: \"0\",\n \"data-testing\": \"order-property-next-slide\",\n },\n on: {\n click: function ($event) {\n return _vm.slideTo(_vm.activeSlide + 1)\n },\n },\n },\n [_c(\"span\", { staticClass: \"fa fa-chevron-right\" })]\n ),\n ]\n )\n : _vm._e(),\n ])\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\"div\", [\n _vm.isShownOnItemPageCount\n ? _c(\n \"div\",\n { staticClass: \"pt-2\" },\n [\n _vm.propertyGroup.group\n ? _c(\n \"div\",\n { class: _vm.paddingClasses, style: _vm.paddingInlineStyles },\n [\n _c(\"div\", { staticClass: \"h4\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.propertyGroup.group.names.name) +\n \":\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"text-muted text-wrap\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.propertyGroup.group.names.description) +\n \"\\n \"\n ),\n ]),\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm._l(_vm.propertyGroup.properties, function (property) {\n return _c(\n \"div\",\n {\n key: property.id,\n class: _vm.paddingClasses,\n style: _vm.paddingInlineStyles,\n },\n [\n property.isShownOnItemPage\n ? _c(\"order-property-list-item\", {\n attrs: {\n group: _vm.propertyGroup.group,\n property: property,\n },\n })\n : _vm._e(),\n ],\n 1\n )\n }),\n ],\n 2\n )\n : _vm._e(),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"position-relative\" },\n [\n _vm.inputType === \"text\" ||\n _vm.inputType === \"float\" ||\n _vm.inputType === \"int\"\n ? _c(\n \"div\",\n {\n staticClass: \"input-unit order-property-input\",\n class: { active: _vm.property.value, error: _vm.hasError },\n attrs: { \"data-validate\": \"text\" },\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.inputValue,\n expression: \"inputValue\",\n },\n { name: \"tooltip\", rawName: \"v-tooltip\" },\n ],\n attrs: {\n type: \"text\",\n \"data-toggle\": \"tooltip\",\n maxlength: _vm.isOrderProperty(_vm.property) ? 128 : 65535,\n title: _vm.property.names.description,\n \"data-testing\": \"order-property-input-\" + _vm.inputType,\n },\n domProps: { value: _vm.inputValue },\n on: {\n input: [\n function ($event) {\n if ($event.target.composing) return\n _vm.inputValue = $event.target.value\n },\n function ($event) {\n return _vm.onInputValueChanged($event.target.value)\n },\n ],\n },\n }),\n _vm._v(\" \"),\n _c(\"label\", { staticClass: \"d-flex\" }, [\n _c(\"span\", { staticClass: \"text-truncate\" }, [\n _vm._v(_vm._s(_vm.property.names.name)),\n ]),\n _vm._v(\" \"),\n _c(\n \"strong\",\n { staticClass: \"ml-1\" },\n [\n _vm.surcharge > 0\n ? [\n _vm._v(\n \"(\" +\n _vm._s(_vm.inclOrPlus) +\n \" \" +\n _vm._s(_vm._f(\"currency\")(_vm.surcharge)) +\n \")\"\n ),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.footnotes) +\n \" \" +\n _vm._s(_vm.requiredFootnotes)\n ),\n ]),\n ],\n 2\n ),\n ]),\n ]\n )\n : _vm.inputType === \"checkbox\" || _vm.inputType === \"radio\"\n ? _c(\n \"div\",\n { staticClass: \"form-check\", class: { error: _vm.hasError } },\n [\n _vm.inputType === \"checkbox\" &&\n !(_vm.property.isRequired && _vm.property.isPreSelected)\n ? _c(\"input\", {\n staticClass: \"form-check-input\",\n attrs: {\n type: \"checkbox\",\n name: _vm.group ? _vm.group.id : \"check\" + _vm._uid,\n id: \"check\" + _vm._uid,\n \"data-testing\": \"order-property-input-checkbox\",\n },\n domProps: {\n value: _vm.property.id,\n checked: _vm.property.value,\n },\n on: {\n change: function ($event) {\n return _vm.onInputValueChanged($event.target.checked)\n },\n },\n })\n : _vm.inputType === \"radio\"\n ? _c(\"input\", {\n staticClass: \"form-check-input\",\n attrs: {\n type: \"radio\",\n name: _vm.group ? _vm.group.id : \"check\" + _vm._uid,\n id: \"check\" + _vm._uid,\n \"data-testing\": \"order-property-input-radio\",\n },\n domProps: {\n value: _vm.property.id,\n checked: _vm.property.value,\n },\n on: {\n change: function ($event) {\n return _vm.onInputValueChanged($event.target.value)\n },\n },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"label\",\n {\n directives: [{ name: \"tooltip\", rawName: \"v-tooltip\" }],\n staticClass: \"form-check-label text-appearance d-flex\",\n attrs: {\n for: \"check\" + _vm._uid,\n \"data-toggle\": \"tooltip\",\n title: _vm.property.names.description,\n \"data-testing\": \"order-property-label-\" + _vm.inputType,\n },\n },\n [\n _c(\"span\", { staticClass: \"text-wrap\" }, [\n _vm._v(_vm._s(_vm.property.names.name)),\n ]),\n _vm._v(\" \"),\n _c(\n \"strong\",\n { staticClass: \"ml-1\" },\n [\n _vm.surcharge > 0\n ? [\n _vm._v(\n \"(\" +\n _vm._s(_vm.inclOrPlus) +\n \" \" +\n _vm._s(_vm._f(\"currency\")(_vm.surcharge)) +\n \")\"\n ),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.footnotes) +\n \" \" +\n _vm._s(_vm.requiredFootnotes)\n ),\n ]),\n ],\n 2\n ),\n ]\n ),\n ]\n )\n : _vm.inputType === \"selection\"\n ? _c(\n \"div\",\n { class: { \"d-flex\": _vm.selectedDescription } },\n [\n _c(\n \"div\",\n {\n directives: [{ name: \"tooltip\", rawName: \"v-tooltip\" }],\n staticClass: \"input-unit order-property-input\",\n class: { active: _vm.property.value, error: _vm.hasError },\n attrs: {\n \"data-toggle\": \"tooltip\",\n title: _vm.property.names.description,\n },\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.selectionValue,\n expression: \"selectionValue\",\n },\n ],\n staticClass: \"custom-select\",\n attrs: {\n id: \"order-property-input-select\",\n \"data-testing\": \"order-property-selection\",\n },\n on: {\n change: [\n function ($event) {\n var $$selectedVal = Array.prototype.filter\n .call($event.target.options, function (o) {\n return o.selected\n })\n .map(function (o) {\n var val = \"_value\" in o ? o._value : o.value\n return val\n })\n _vm.selectionValue = $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n },\n function ($event) {\n return _vm.onInputValueChanged($event.target.value)\n },\n ],\n },\n },\n [\n _c(\n \"option\",\n { domProps: { selected: true, value: null } },\n [\n _vm._v(\n _vm._s(\n _vm.$translate(\n \"Ceres::Template.singleItemPleaseSelect\"\n )\n )\n ),\n ]\n ),\n _vm._v(\" \"),\n _vm._l(\n _vm.property.selectionValues,\n function (value, id) {\n return _c(\n \"option\",\n {\n key: id,\n attrs: {\n \"data-testing\":\n \"order-property-selection-option\",\n },\n domProps: {\n selected: _vm.property.id === id,\n value: id,\n },\n },\n [_vm._v(_vm._s(value.name))]\n )\n }\n ),\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\n \"label\",\n {\n staticClass: \"d-flex w-100\",\n attrs: { for: \"order-property-input-select\" },\n },\n [\n _c(\"span\", { staticClass: \"text-truncate\" }, [\n _vm._v(_vm._s(_vm.property.names.name)),\n ]),\n _vm._v(\" \"),\n _c(\n \"strong\",\n { staticClass: \"ml-1\" },\n [\n _vm.surcharge > 0\n ? [\n _vm._v(\n \"(\" +\n _vm._s(_vm.inclOrPlus) +\n \" \" +\n _vm._s(_vm._f(\"currency\")(_vm.surcharge)) +\n \")\"\n ),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.footnotes) +\n \" \" +\n _vm._s(_vm.requiredFootnotes)\n ),\n ]),\n ],\n 2\n ),\n ]\n ),\n ]\n ),\n _vm._v(\" \"),\n _vm.selectedDescription\n ? _c(\"popper\", {\n staticClass: \"order-property-selection-info-popper\",\n attrs: { placement: \"bottom\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"handle\",\n fn: function () {\n return [\n _c(\n \"button\",\n {\n staticClass:\n \"btn btn-icon btn-circle btn-default btn-appearance font-weight-bold\",\n },\n [_vm._v(\"?\")]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"content\",\n fn: function () {\n return [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.selectedDescription) +\n \"\\n \"\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 2730731730\n ),\n })\n : _vm._e(),\n ],\n 1\n )\n : _vm.inputType === \"file\"\n ? _c(\n \"div\",\n { staticClass: \"d-flex\" },\n [\n _c(\n \"label\",\n {\n directives: [{ name: \"tooltip\", rawName: \"v-tooltip\" }],\n staticClass:\n \"input-unit file-input order-property-input component-loading with-icon sending\",\n class: {\n active: _vm.property.value,\n \"is-loading\": _vm.waiting,\n error: _vm.hasError,\n },\n attrs: {\n \"data-toggle\": \"tooltip\",\n title: _vm.property.names.description,\n },\n },\n [\n _c(\n \"span\",\n {\n staticClass: \"input-unit-preview\",\n class: { disabled: _vm.waiting },\n },\n [_vm._v(_vm._s(_vm.selectedFileName))]\n ),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"input-unit-label d-flex\" }, [\n _c(\"span\", { staticClass: \"text-truncate\" }, [\n _vm._v(_vm._s(_vm.property.names.name)),\n ]),\n _vm._v(\" \"),\n _c(\n \"strong\",\n { staticClass: \"ml-1\" },\n [\n _vm.surcharge > 0\n ? [\n _vm._v(\n \"(\" +\n _vm._s(_vm.inclOrPlus) +\n \" \" +\n _vm._s(_vm._f(\"currency\")(_vm.surcharge)) +\n \")\"\n ),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n _vm._s(_vm.footnotes) +\n \" \" +\n _vm._s(_vm.requiredFootnotes)\n ),\n ]),\n ],\n 2\n ),\n ]),\n _vm._v(\" \"),\n !_vm.selectedFile\n ? _c(\"span\", { staticClass: \"input-unit-btn\" }, [\n _c(\"i\", { staticClass: \"fa fa-ellipsis-h\" }),\n ])\n : _c(\n \"span\",\n {\n staticClass: \"input-unit-btn\",\n attrs: { disabled: _vm.waiting },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.clearSelectedFile()\n },\n },\n },\n [_c(\"i\", { staticClass: \"fa fa-times\" })]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n ref: \"fileInput\",\n attrs: {\n disabled: _vm.waiting,\n type: \"file\",\n size: \"50\",\n \"data-testing\": \"order-property-input-file\",\n },\n on: {\n change: function ($event) {\n return _vm.setPropertyFile($event)\n },\n },\n }),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"client-only\",\n [\n _vm.isTouchDevice && _vm.property.names.description\n ? _c(\"popper\", {\n staticClass: \"order-property-selection-info-popper\",\n attrs: { placement: \"bottom\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"handle\",\n fn: function () {\n return [\n _c(\n \"button\",\n {\n staticClass:\n \"btn btn-icon btn-circle btn-default btn-appearance font-weight-bold\",\n },\n [_vm._v(\"?\")]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"content\",\n fn: function () {\n return [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.property.names.description) +\n \"\\n \"\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 1618376136\n ),\n })\n : _vm._e(),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"client-only\",\n [\n _vm.isTouchDevice &&\n _vm.inputType !== \"selection\" &&\n _vm.inputType !== \"file\" &&\n _vm.property.names.description\n ? _c(\"popper\", {\n staticClass:\n \"order-property-selection-info-popper position-absolute\",\n class: {\n \"checkbox-or-radio\":\n _vm.inputType === \"checkbox\" || _vm.inputType === \"radio\",\n },\n attrs: { placement: \"bottom\" },\n scopedSlots: _vm._u(\n [\n {\n key: \"handle\",\n fn: function () {\n return [\n _c(\n \"button\",\n {\n staticClass:\n \"btn btn-icon btn-circle btn-default btn-appearance font-weight-bold\",\n },\n [_vm._v(\"?\")]\n ),\n ]\n },\n proxy: true,\n },\n {\n key: \"content\",\n fn: function () {\n return [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.property.names.description) +\n \"\\n \"\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 1214237640\n ),\n })\n : _vm._e(),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<template>\n <div class=\"position-relative\">\n <div v-if=\"inputType === 'text' || inputType === 'float' || inputType === 'int'\" class=\"input-unit order-property-input\" :class=\"{ 'active': property.value, 'error': hasError }\" data-validate=\"text\">\n <input\n type=\"text\"\n @input=\"onInputValueChanged($event.target.value)\"\n v-model=\"inputValue\"\n v-tooltip\n data-toggle=\"tooltip\"\n :maxlength=\"isOrderProperty(property) ? 128 : 65535\"\n :title=\"property.names.description\"\n :data-testing=\"'order-property-input-' + inputType\">\n <label class=\"d-flex\">\n <span class=\"text-truncate\">{{ property.names.name }}</span>\n <strong class=\"ml-1\">\n <template v-if=\"surcharge > 0\">({{ inclOrPlus }} {{ surcharge | currency }})</template>\n <span>{{ footnotes }} {{ requiredFootnotes }}</span>\n </strong>\n </label>\n </div>\n\n <div v-else-if=\"inputType === 'checkbox' || inputType === 'radio'\" class=\"form-check\" :class=\"{ 'error': hasError }\">\n <input v-if=\"inputType === 'checkbox' && !(property.isRequired && property.isPreSelected)\"\n type=\"checkbox\"\n :name=\"group ? group.id : 'check' + _uid\"\n :id=\"'check' + _uid\"\n :value=\"property.id\"\n :checked=\"property.value\"\n @change=\"onInputValueChanged($event.target.checked)\"\n class=\"form-check-input\"\n data-testing=\"order-property-input-checkbox\">\n <input v-else-if=\"inputType === 'radio'\"\n type=\"radio\"\n :name=\"group ? group.id : 'check' + _uid\"\n :id=\"'check' + _uid\"\n :value=\"property.id\"\n @change=\"onInputValueChanged($event.target.value)\"\n class=\"form-check-input\"\n :checked=\"property.value\"\n data-testing=\"order-property-input-radio\">\n\n <label class=\"form-check-label text-appearance d-flex\"\n :for=\"'check' + _uid\"\n v-tooltip data-toggle=\"tooltip\"\n :title=\"property.names.description\"\n :data-testing=\"'order-property-label-' + inputType\">\n <span class=\"text-wrap\">{{ property.names.name }}</span>\n <strong class=\"ml-1\">\n <template v-if=\"surcharge > 0\">({{ inclOrPlus }} {{ surcharge | currency }})</template>\n <span>{{ footnotes }} {{ requiredFootnotes }}</span>\n </strong>\n </label>\n </div>\n\n <div v-else-if=\"inputType === 'selection'\" :class=\"{ 'd-flex': selectedDescription }\">\n <div\n class=\"input-unit order-property-input\"\n :class=\"{ 'active': property.value, 'error': hasError }\"\n v-tooltip\n data-toggle=\"tooltip\"\n :title=\"property.names.description\">\n <select id=\"order-property-input-select\" v-model=\"selectionValue\" @change=\"onInputValueChanged($event.target.value)\" class=\"custom-select\" data-testing=\"order-property-selection\">\n <option :selected=\"true\" :value=\"null\">{{ $translate(\"Ceres::Template.singleItemPleaseSelect\") }}</option>\n <option :selected=\"property.id === id\" :value=\"id\" v-for=\"(value, id) in property.selectionValues\" :key=\"id\" data-testing=\"order-property-selection-option\">{{ value.name }}</option>\n </select>\n <label class=\"d-flex w-100\" for=\"order-property-input-select\">\n <span class=\"text-truncate\">{{ property.names.name }}</span>\n <strong class=\"ml-1\">\n <template v-if=\"surcharge > 0\">({{ inclOrPlus }} {{ surcharge | currency }})</template>\n <span>{{ footnotes }} {{ requiredFootnotes }}</span>\n </strong>\n </label>\n </div>\n\n <popper class=\"order-property-selection-info-popper\" v-cloak v-if=\"selectedDescription\" placement=\"bottom\">\n <template #handle>\n <button class=\"btn btn-icon btn-circle btn-default btn-appearance font-weight-bold\">?</button>\n </template>\n <template #content>\n {{ selectedDescription }}\n </template>\n </popper>\n </div>\n\n <div v-else-if=\"inputType === 'file'\" class=\"d-flex\">\n <label class=\"input-unit file-input order-property-input component-loading with-icon sending\" :class=\"{ 'active': property.value, 'is-loading': waiting, 'error': hasError }\" v-tooltip data-toggle=\"tooltip\" :title=\"property.names.description\">\n <span class=\"input-unit-preview\" :class=\"{ 'disabled': waiting }\">{{selectedFileName}}</span>\n <span class=\"input-unit-label d-flex\">\n <span class=\"text-truncate\">{{ property.names.name }}</span>\n <strong class=\"ml-1\">\n <template v-if=\"surcharge > 0\">({{ inclOrPlus }} {{ surcharge | currency }})</template>\n <span>{{ footnotes }} {{ requiredFootnotes }}</span>\n </strong>\n </span>\n <span class=\"input-unit-btn\" v-if=\"!selectedFile\">\n <i class=\"fa fa-ellipsis-h\"></i>\n </span>\n <span class=\"input-unit-btn\" v-else :disabled=\"waiting\" @click.prevent=\"clearSelectedFile()\">\n <i class=\"fa fa-times\"></i>\n </span>\n <input :disabled=\"waiting\" ref=\"fileInput\" type=\"file\" size=\"50\" @change=\"setPropertyFile($event)\" data-testing=\"order-property-input-file\">\n </label>\n\n <client-only>\n <popper class=\"order-property-selection-info-popper\" v-cloak v-if=\"isTouchDevice && property.names.description\" placement=\"bottom\">\n <template #handle>\n <button class=\"btn btn-icon btn-circle btn-default btn-appearance font-weight-bold\">?</button>\n </template>\n <template #content>\n {{ property.names.description }}\n </template>\n </popper>\n </client-only>\n </div>\n\n <client-only>\n <popper class=\"order-property-selection-info-popper position-absolute\" :class=\"{ 'checkbox-or-radio': inputType === 'checkbox' || inputType === 'radio'}\" v-cloak v-if=\"isTouchDevice && inputType !== 'selection' && inputType !== 'file' && property.names.description\" placement=\"bottom\">\n <template #handle>\n <button class=\"btn btn-icon btn-circle btn-default btn-appearance font-weight-bold\">?</button>\n </template>\n <template #content>\n {{ property.names.description }}\n </template>\n </popper>\n </client-only>\n </div>\n</template>\n\n<script>\nconst ApiService = require(\"../../services/ApiService\");\nconst NotificationService = require(\"../../services/NotificationService\");\n\nimport { isNullOrUndefined } from \"../../helper/utils\";\nimport { mapState, mapMutations } from \"vuex\";\nimport TranslationService from '../../services/TranslationService';\n\nexport default {\n\n name: \"order-property-list-item\",\n\n props:\n {\n group: Object,\n property: Object\n },\n\n inject: {\n itemId: {\n default: null\n }\n },\n\n data()\n {\n return {\n inputValue: \"\",\n selectedFile: null,\n waiting: false,\n selectionValue: null\n };\n },\n\n mounted()\n {\n document.addEventListener(\"onVariationChanged\", event =>\n {\n if (event.detail.itemId === this.itemId)\n {\n // clear type specific bindings\n if (this.property.valueType === \"selection\")\n {\n this.selectionValue = this.property.value || null;\n }\n else if (this.property.valueType === \"file\")\n {\n if (this.property.value && this.property.value.length)\n {\n NotificationService.warn(\n TranslationService.translate(\"Ceres::Template.singleItemOrderPropertyFileHasReset\",\n { propertyName: this.property.names.name })\n ).closeAfter(5000);\n }\n\n this.clearSelectedFile();\n }\n else\n {\n this.inputValue = this.property.value || \"\";\n }\n }\n });\n },\n\n computed:\n {\n inputType()\n {\n const orderPropertyGroupingType = this.group ? this.group.orderPropertyGroupingType : null;\n const valueType = this.property.valueType;\n\n if (valueType === \"empty\")\n {\n if (!orderPropertyGroupingType || orderPropertyGroupingType === \"none\" || orderPropertyGroupingType === \"multi\")\n {\n return \"checkbox\";\n }\n\n return \"radio\";\n }\n\n return valueType;\n },\n\n selectedFileName()\n {\n if (this.selectedFile)\n {\n return this.selectedFile.name;\n }\n\n return \"\";\n },\n\n hasError()\n {\n const isRequired = this.property.isRequired || App.config.item.requireOrderProperties;\n\n if (isRequired && this.variationMarkInvalidProperties && this.inputType === \"radio\")\n {\n return this.variationMissingProperties.find(property => property.property.id === this.property.id);\n }\n\n return isRequired && this.variationMarkInvalidProperties && !this.property.value;\n },\n\n surcharge()\n {\n return this.property.itemSurcharge || this.property.surcharge;\n },\n\n hasTax()\n {\n return this.property.vatId !== \"none\" && this.property.vatId !== null;\n },\n\n inclOrPlus()\n {\n if(this.property.isShownAsAdditionalCosts || !this.hasTax)\n {\n return this.$translate(\"Ceres::Template.basketPlusAbbr\")\n }\n return this.$translate(\"Ceres::Template.basketIncludeAbbr\");\n },\n\n footnotes()\n {\n if (this.surcharge > 0)\n {\n if (this.property.isRequired && !this.property.isPreSelected && this.hasTax)\n {\n return this.$translate(\"Ceres::Template.singleItemFootnote12\");\n }\n else if(this.hasTax)\n {\n return this.$translate(\"Ceres::Template.singleItemFootnote1\");\n }\n }\n },\n\n requiredFootnotes()\n {\n if (this.property.isRequired && !this.property.isPreSelected && !this.footnotes)\n {\n return this.$translate(\"Ceres::Template.singleItemFootnote2\");\n }\n },\n\n selectedDescription()\n {\n if (this.inputType !== \"selection\" || isNullOrUndefined(this.selectionValue))\n {\n return null;\n }\n\n const selectedProperty = this.property.selectionValues[this.selectionValue];\n\n return selectedProperty.description;\n },\n\n variationMissingProperties()\n {\n return this.$store.getters[`${this.itemId}/variationMissingProperties`];\n },\n\n variationMarkInvalidProperties() {\n return this.$store.state.items[this.itemId] && this.$store.state.items[this.itemId].variationMarkInvalidProperties;\n },\n\n isTouchDevice() {\n return !App.isSSR ? document.body.classList.contains(\"touch\"): false;\n },\n\n ...mapState({\n isBasketLoading: state => state.basket.isBasketLoading,\n })\n },\n\n methods:\n {\n isOrderProperty(property){\n return property.isOderProperty && App.useVariationOrderProperties\n },\n onInputValueChanged(value)\n {\n if (this.inputType === \"int\")\n {\n value = this.validateInt(value);\n }\n else if (this.inputType === \"float\")\n {\n value = this.validateFloat(value);\n }\n else if (this.inputType === \"checkbox\")\n {\n if (!value)\n {\n value = null;\n }\n }\n else if (this.inputType === \"selection\")\n {\n if (isNullOrUndefined(value) || value.length <= 0)\n {\n value = null;\n }\n }\n else if (this.inputType === \"text\")\n {\n if(value === \"\")\n {\n value = null;\n }\n }\n\n this.$store.commit(`${this.itemId}/setVariationPropertySurcharges`, this.$store.getters[`${this.itemId}/variationBasePrice`]);\n this.setVariationOrderProperty({ propertyId: this.property.id, value: value });\n },\n\n validateInt(value)\n {\n value = parseInt(value);\n\n if (isNaN(value))\n {\n value = null;\n }\n\n this.inputValue = value;\n\n return value;\n },\n\n validateFloat(value)\n {\n const lastChar = value.slice(-1);\n\n const str = value.replace(App.decimalSeparator, \".\");\n const arr = str.split(\".\");\n let toFixedLength = 0;\n\n if (arr.length === 2)\n {\n toFixedLength = arr[1].length;\n }\n\n value = parseFloat(str).toFixed(toFixedLength);\n\n if (isNaN(value))\n {\n value = null;\n }\n else\n {\n if (lastChar === \".\" || lastChar === App.decimalSeparator)\n {\n value += lastChar;\n }\n\n value = value.toString().replace(\".\", App.decimalSeparator);\n }\n\n this.inputValue = value;\n\n return value;\n },\n\n setVariationOrderProperty(orderProperty) {\n return this.$store.commit(`${this.itemId}/setVariationOrderProperty`, orderProperty);\n },\n\n setPropertyFile(event)\n {\n if (event.target && event.target.files && event.target.files.length > 0)\n {\n this.selectedFile = event.target.files[0];\n this.uploadPropertyFile(this.selectedFile);\n }\n },\n\n uploadPropertyFile(file)\n {\n this.setIsBasketLoading(true);\n this.waiting = true;\n\n const fileData = new FormData();\n\n fileData.append(\"fileData\", file);\n\n ApiService.post(\"/rest/io/order/property/file\", fileData, { processData: false, contentType: false, cache: false, async: true, timeout: 60000, supressNotifications: true })\n .done(response =>\n {\n this.setVariationOrderProperty({ propertyId: this.property.id, value: response });\n })\n .fail(error =>\n {\n this.clearSelectedFile();\n this._handleValidationErrors(error);\n })\n .always(response =>\n {\n this.setIsBasketLoading(false);\n this.waiting = false;\n });\n },\n\n clearSelectedFile()\n {\n this.selectedFile = null;\n this.setVariationOrderProperty({ propertyId: this.property.id, value: null });\n this.$refs.fileInput.value = \"\";\n },\n\n _handleValidationErrors(error)\n {\n if (error.hasOwnProperty(\"validation_errors\"))\n {\n for (const err of Object.values(error.validation_errors))\n {\n NotificationService.error(err[0]);\n }\n }\n\n if (error.error.message && error.error.message === \"Post too large\")\n {\n NotificationService.error(\n this.$translate(\"Ceres::Template.errorPostTooLarge\" , { maxSize: error.error.maxSize })\n );\n }\n },\n\n ...mapMutations([\n \"setIsBasketLoading\"\n ]),\n }\n}\n</script>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderPropertyListItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderPropertyListItem.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderPropertyListGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderPropertyListGroup.vue?vue&type=script&lang=js\"","<template>\n <div>\n <div v-if=\"isShownOnItemPageCount\" class=\"pt-2\">\n <div v-if=\"propertyGroup.group\" :class=\"paddingClasses\" :style=\"paddingInlineStyles\">\n <div class=\"h4\">\n {{ propertyGroup.group.names.name }}:\n </div>\n <p class=\"text-muted text-wrap\">\n {{ propertyGroup.group.names.description }}\n </p>\n </div>\n\n <div v-for=\"property in propertyGroup.properties\" :key=\"property.id\" :class=\"paddingClasses\" :style=\"paddingInlineStyles\">\n <order-property-list-item v-if=\"property.isShownOnItemPage\" :group=\"propertyGroup.group\" :property=\"property\"></order-property-list-item>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport OrderPropertyListItem from \"./OrderPropertyListItem.vue\";\n\nexport default {\n name: \"order-property-list-group\",\n\n components:\n {\n OrderPropertyListItem\n },\n\n props:\n {\n paddingClasses:\n {\n type: String,\n default: null\n },\n paddingInlineStyles:\n {\n type: String,\n default: null\n },\n propertyGroup: Object\n },\n\n computed:\n {\n isShownOnItemPageCount()\n {\n const properties = this.propertyGroup.properties.filter(property => property.isShownOnItemPage);\n\n return properties.length;\n }\n }\n}\n</script>\n","import { render, staticRenderFns } from \"./OrderPropertyListItem.vue?vue&type=template&id=074d9b10\"\nimport script from \"./OrderPropertyListItem.vue?vue&type=script&lang=js\"\nexport * from \"./OrderPropertyListItem.vue?vue&type=script&lang=js\"\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","<template>\n <div class=\"order-property-slider mb-3\" v-if=\"renderOrderPropertyList\">\n <div class=\"order-property-slider-inner\" :style=\"{transform: 'translateX(-' + (activeSlide * 100) + '%)'}\">\n <div v-for=\"(propertyGroup, index) in sortedGroupedProperties\" :class=\"{'active': index === activeSlide}\" :key=\"index\">\n <order-property-list-group\n :padding-classes=\"paddingClasses\"\n :padding-inline-styles=\"paddingInlineStyles\"\n :key=\"propertyGroup.id\"\n :property-group=\"propertyGroup\">\n </order-property-list-group>\n </div>\n </div>\n\n <div class=\"order-property-slider-controls\" :class=\"paddingClasses\" :style=\"paddingInlineStyles\" v-if=\"sortedGroupedProperties.length > 1\">\n <div\n class=\"btn shadow-none\"\n @click=\"slideTo(activeSlide - 1)\"\n :class=\"{'btn-primary': activeSlide > 0, 'btn-secondary disabled': activeSlide === 0}\"\n tabindex=\"0\"\n data-testing=\"order-property-previous-slide\">\n <span class=\"fa fa-chevron-left\"></span>\n </div>\n\n <div class=\"slider-nav\">\n <span v-for=\"(propertyGroup, index) in sortedGroupedProperties\"\n :class=\"{ 'active': index === activeSlide, 'highlight': !touchedSlides[index], 'error': propertyGroup.hasError }\"\n @click=\"slideTo(index)\"\n :key=\"index\"\n v-tooltip\n data-toggle=\"tooltip\"\n data-placement=\"top\"\n :title=\"propertyGroup.group ? propertyGroup.group.names.name : $translate('Ceres::Template.singleItemPropertiesWithoutGroup')\">\n </span>\n </div>\n\n <div\n class=\"btn float-right shadow-none\"\n @click=\"slideTo(activeSlide + 1)\"\n :class=\"{'btn-primary': activeSlide < sortedGroupedProperties.length - 1, 'btn-secondary disabled': activeSlide >= sortedGroupedProperties.length - 1 }\"\n tabindex=\"0\"\n data-testing=\"order-property-next-slide\">\n <span class=\"fa fa-chevron-right\"></span>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport OrderPropertyListGroup from \"./OrderPropertyListGroup.vue\";\n\nexport default {\n name: \"order-property-list\",\n\n components:\n {\n \"order-property-list-group\": OrderPropertyListGroup\n },\n\n props:\n {\n paddingClasses:\n {\n type: String,\n default: null\n },\n paddingInlineStyles:\n {\n type: String,\n default: null\n },\n },\n\n inject: {\n itemId: {\n default: null\n }\n },\n\n data()\n {\n return {\n activeSlide: 0,\n touchedSlides: { 0: true }\n };\n },\n\n mounted()\n {\n if (App.useVariationOrderProperties)\n {\n // go to first side, because variation order properties could differ between variations\n document.addEventListener(\"onVariationChanged\", () => {\n this.activeSlide = 0;\n });\n }\n },\n\n computed:\n {\n sortedGroupedProperties()\n {\n const groupedProperties = JSON.parse(JSON.stringify(this.variationGroupedProperties));\n\n for (const group of groupedProperties)\n {\n this.sortGroupProperties(group);\n }\n\n return this.getSortedGroups(groupedProperties);\n },\n\n missingPropertyGroupIds()\n {\n if (this.variationMarkInvalidProperties)\n {\n return [...new Set(this.variationMissingProperties.map(property => property.group && property.group.id))];\n }\n\n return [];\n },\n\n variationGroupedProperties()\n {\n return this.$store.getters[`${this.itemId}/variationGroupedProperties`];\n },\n\n renderOrderPropertyList()\n {\n return this.variationGroupedProperties.length || App.isShopBuilder;\n },\n\n variationMissingProperties()\n {\n return this.$store.getters[`${this.itemId}/variationMissingProperties`];\n },\n\n variationMarkInvalidProperties() {\n return this.$store.state.items[this.itemId] && this.$store.state.items[this.itemId].variationMarkInvalidProperties;\n }\n },\n\n methods:\n {\n sortGroupProperties(group)\n {\n return group.properties.sort((prev, current) =>\n {\n if (prev.position > current.position)\n {\n return 1;\n }\n if (prev.position < current.position)\n {\n return -1;\n }\n\n return 0;\n });\n },\n\n getSortedGroups(groups)\n {\n for (const group of groups)\n {\n const lowestPosition = group.properties.reduce((prev, current) => (prev.position < current.position) ? prev : current);\n\n group.lowestPosition = lowestPosition.position;\n\n const groupId = group.group ? group.group.id : null;\n\n if (this.variationMarkInvalidProperties && this.missingPropertyGroupIds.includes(groupId))\n {\n group.hasError = true;\n }\n }\n\n return groups.sort((prev, current) =>\n {\n if (prev.lowestPosition > current.lowestPosition)\n {\n return 1;\n }\n if (prev.lowestPosition < current.lowestPosition)\n {\n return -1;\n }\n\n return 0;\n });\n },\n\n slideTo(position)\n {\n if (position >= 0 && position < this.sortedGroupedProperties.length)\n {\n this.activeSlide = position;\n this.touchedSlides[this.activeSlide] = true;\n }\n }\n }\n}\n</script>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderPropertyList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderPropertyList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./OrderPropertyListGroup.vue?vue&type=template&id=7ff791e6\"\nimport script from \"./OrderPropertyListGroup.vue?vue&type=script&lang=js\"\nexport * from \"./OrderPropertyListGroup.vue?vue&type=script&lang=js\"\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","import { render, staticRenderFns } from \"./OrderPropertyList.vue?vue&type=template&id=bd598d7e\"\nimport script from \"./OrderPropertyList.vue?vue&type=script&lang=js\"\nexport * from \"./OrderPropertyList.vue?vue&type=script&lang=js\"\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"],"sourceRoot":""}