{"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":""}