{"version":3,"sources":["webpack:///resources/js/src/app/components/itemList/CategoryImageCarousel.vue","webpack:///resources/js/src/app/components/itemList/CategoryItem.vue","webpack:///resources/js/src/app/components/itemList/ItemStoreSpecial.vue","webpack:///./resources/js/src/app/components/itemList/CategoryImageCarousel.vue?27c1","webpack:///./resources/js/src/app/components/itemList/CategoryItem.vue?fe78","webpack:///./resources/js/src/app/components/itemList/ItemStoreSpecial.vue?5e2d","webpack:///./resources/js/src/app/components/itemList/CategoryImageCarousel.vue","webpack:///./resources/js/src/app/components/itemList/CategoryImageCarousel.vue?93f3","webpack:///./resources/js/src/app/components/itemList/CategoryImageCarousel.vue?a063","webpack:///./resources/js/src/app/components/itemList/CategoryItem.vue","webpack:///./resources/js/src/app/components/itemList/CategoryItem.vue?45b6","webpack:///./resources/js/src/app/components/itemList/CategoryItem.vue?c61b","webpack:///./resources/js/src/app/components/itemList/ItemStoreSpecial.vue","webpack:///./resources/js/src/app/components/itemList/ItemStoreSpecial.vue?4a32","webpack:///./resources/js/src/app/components/itemList/ItemStoreSpecial.vue?0a7d","webpack:///./resources/js/src/app/helper/getSlotData.js"],"names":["getSlotData","slotKey","vm","$options","slotData","hasOwnProperty","$slots","slotNode","elm","JSON","parse","textContent","text"],"mappings":"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AAGA,kBACA;AACA,qCADA;AAEA,oCAFA;AAGA,oCAHA;AAIA,gCAJA;AAKA,gDALA;AAMA;AANA,OAJA;AAYA,cACA;AACA,+DADA;AAEA,6DAFA;AAGA;AAHA;AAbA;AAmBA,GAnCA;AAqCA,YACA;AACA,YADA,sBACA;AACA;AACA,KAHA;AAKA,YALA,sBAKA;AACA;AACA,KAPA;AASA,SATA,mBASA;AACA;AACA;AAXA,GAtCA;AAoDA,SApDA,qBAqDA;AACA;AACA,GAvDA;AAyDA,WACA;AACA,0BADA,oCAEA;AACA,uGACA;AACA;AACA,OAHA,MAKA;AACA;AACA;;AAEA;AACA,KAbA;AAeA,YAfA,sBAgBA;AACA,8OACA;AACA;AACA;;AAEA,sGACA;AACA;AACA;;AAEA;AACA,KA5BA;AA8BA,qBA9BA,+BA+BA;AACA;;AAEA,mGACA;AACA;AACA,OAHA,MAKA;AACA;AACA;;AAEA,uBACA;AACA;AACA;;AAEA;AACA;AAjDA,GA1DA;AA8GA,SACA;AACA,gBADA,0BAEA;AACA;AACA;AAJA;AA/GA,G;;;;;;;;;;;;ACrBA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA,sBAAsB,6BAA6B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS,SAAS,oBAAoB,EAAE;AACxC;AACA;AACA,kBAAkB,sCAAsC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC5DA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA;AACA,SAAS,4DAA4D;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,qBAAqB,6BAA6B;AAClD;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+BAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA,qCAAqC,iCAAiC;AACtE;AACA,2CAA2C,4BAA4B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,4BAA4B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6CAA6C;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2CAA2C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2BAA2B,sCAAsC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC3ZA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kCAAkC;AACnD;AACA,wBAAwB,4CAA4C;AACpE;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAoG;AAC3B;AACL;;;AAGpE;AACsG;AACtG,gBAAgB,2GAAU;AAC1B,EAAE,2FAAM;AACR,EAAE,gGAAM;AACR,EAAE,yGAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACe,gF;;;;;;;;;;;;ACtCf;AAAA;AAAA,wCAA6M,CAAgB,yPAAG,EAAC,C;;;;;;;;;;;;ACAjO;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAA2F;AAC3B;AACL;;;AAG3D;AACsG;AACtG,gBAAgB,2GAAU;AAC1B,EAAE,kFAAM;AACR,EAAE,uFAAM;AACR,EAAE,gGAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACe,gF;;;;;;;;;;;;ACtCf;AAAA;AAAA,wCAAoM,CAAgB,gPAAG,EAAC,C;;;;;;;;;;;;ACAxN;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAA+F;AAC3B;AACL;;;AAG/D;AACsG;AACtG,gBAAgB,2GAAU;AAC1B,EAAE,sFAAM;AACR,EAAE,2FAAM;AACR,EAAE,oGAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACe,gF;;;;;;;;;;;;ACtCf;AAAA;AAAA,wCAAwM,CAAgB,oPAAG,EAAC,C;;;;;;;;;;;;ACA5N;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,WAAT,CAAqBC,OAArB,EACP;AACI,SAAO,UAACC,EAAD,EACP;AACIA,MAAE,CAACC,QAAH,CAAYC,QAAZ,GAAuBF,EAAE,CAACC,QAAH,CAAYC,QAAZ,IAAwB,EAA/C;;AACA,QAAI,CAACF,EAAE,CAACC,QAAH,CAAYC,QAAZ,CAAqBC,cAArB,CAAoCJ,OAApC,CAAD,IAAiDC,EAAE,CAACI,MAAH,CAAUD,cAAV,CAAyBJ,OAAzB,CAArD,EACA;AACI,UAAMM,QAAQ,GAAGL,EAAE,CAACI,MAAH,CAAUL,OAAV,EAAmB,CAAnB,CAAjB;;AAEA,UAAIM,QAAQ,CAACC,GAAb,EACA;AACIN,UAAE,CAACC,QAAH,CAAYC,QAAZ,CAAqBH,OAArB,IAAgCQ,IAAI,CAACC,KAAL,CAAWH,QAAQ,CAACC,GAAT,CAAaG,WAAxB,CAAhC;AACH,OAHD,MAKA;AACIT,UAAE,CAACC,QAAH,CAAYC,QAAZ,CAAqBH,OAArB,IAAgCQ,IAAI,CAACC,KAAL,CAAWH,QAAQ,CAACK,IAApB,CAAhC;AACH;AACJ;;AAED,WAAOV,EAAE,CAACC,QAAH,CAAYC,QAAZ,CAAqBH,OAArB,CAAP;AACH,GAlBD;AAmBH,C","file":"chunks/ceres-7.js","sourcesContent":["<template>\n <a\n v-if=\"$data.$_enableCarousel\"\n :id=\"`owl-carousel-${_uid}`\"\n :href=\"itemUrl\"\n :aria-label=\"$translate('Ceres::Template.itemImageCarousel')\"\n role=\"listbox\"\n class=\"owl-carousel owl-theme\">\n <div v-for=\"(imageUrl, index) in imageUrls\" :key=\"index\">\n <lazy-img\n :image-url=\"imageUrl.url\"\n :alt=\"getAltText(imageUrl)\"\n :title=\"getTitleText(imageUrl)\"\n :width=\"getImageWidth(imageUrl)\"\n :height=\"getImageHeight(imageUrl)\"\n :ref=\"{ 'itemLazyImage' : index === 0 }\"\n picture-class=\"img-fluid\"\n role=\"option\" />\n </div>\n </a>\n\n <a v-else :href=\"itemUrl\">\n <lazy-img\n :ref=\"{ 'itemLazyImage': !disableLazyLoad }\"\n :image-url=\"imageOrItemImage\"\n :alt=\"getAltText(imageUrls[0])\"\n :title=\"getTitleText(imageUrls[0])\"\n :width=\"getImageWidth(imageUrls[0])\"\n :height=\"getImageHeight(imageUrls[0])\"\n picture-class=\"img-fluid\" />\n </a>\n</template>\n\n<script>\n\nexport default {\n\n name: \"category-image-carousel\",\n\n props: {\n imageUrlsData:\n {\n type: Array\n },\n itemUrl:\n {\n type: String\n },\n alt:\n {\n type: String\n },\n title:\n {\n type: String\n },\n showDots:\n {\n type: Boolean,\n default: App.config.item.categoryShowDots\n },\n showNav:\n {\n type: Boolean,\n default: App.config.item.categoryShowNav\n },\n disableLazyLoad: {\n type: Boolean,\n default: false\n },\n disableCarouselOnMobile:\n {\n type: Boolean\n },\n enableCarousel:\n {\n type: Boolean\n },\n template:\n {\n type: String\n }\n },\n\n data()\n {\n return {\n $_enableCarousel: false\n };\n },\n\n computed:\n {\n imageUrls()\n {\n return this.imageUrlsData;\n },\n imageOrItemImage()\n {\n return this.imageUrls.length ? this.imageUrls[0].url : this.itemImage;\n }\n },\n\n mounted()\n {\n const isMobile = window.matchMedia(\"(max-width: 768px)\").matches;\n const shouldCarouselBeEnabled = this.enableCarousel && this.imageUrls.length > 1;\n\n this.$data.$_enableCarousel = this.disableCarouselOnMobile && isMobile ? false : shouldCarouselBeEnabled;\n\n this.$nextTick(() =>\n {\n if (this.$data.$_enableCarousel)\n {\n this.initializeCarousel();\n }\n });\n },\n\n methods:\n {\n initializeCarousel()\n {\n $(\"#owl-carousel-\" + this._uid).owlCarousel({\n dots : !!this.showDots,\n items : 1,\n mouseDrag: false,\n loop : this.imageUrls.length > 1,\n lazyLoad : !this.disableLazyLoad,\n margin : 10,\n nav : !!this.showNav,\n navText : [\n `<i id=\"owl-nav-text-left-${this._uid}\" class='fa fa-chevron-left' aria-hidden='true'></i>`,\n `<i id=\"owl-nav-text-right-${this._uid}\" class='fa fa-chevron-right' aria-hidden='true'></i>`\n ],\n onTranslated(event)\n {\n const element = event.target.querySelector(\".owl-item.active img\");\n\n if (element && element.dataset.src && !element.src)\n {\n element.src = element.dataset.src;\n element.removeAttribute(\"data-src\");\n }\n },\n onInitialized: event =>\n {\n if (this.showNav)\n {\n document.querySelector(`#owl-nav-text-left-${this._uid}`).parentElement.onclick = event => event.preventDefault();\n document.querySelector(`#owl-nav-text-right-${this._uid}`).parentElement.onclick = event => event.preventDefault();\n }\n }\n });\n },\n\n getAltText(image)\n {\n const alt = image && image.alternate ? image.alternate : this.alt;\n\n return alt;\n },\n\n getTitleText(image)\n {\n const title = image && image.name ? image.name : this.title;\n\n return title;\n },\n\n getImageWidth(image)\n {\n return image && image.width ? image.width : undefined;\n },\n\n getImageHeight(image)\n {\n return image && image.height ? image.height : undefined;\n }\n }\n}\n</script>\n","<template>\n <article class=\"cmp cmp-product-thumb\" :data-testing=\"item.variation.id\">\n <div :class=\"paddingClasses\" :style=\"paddingInlineStyles\">\n\n <add-to-basket\n data-testing=\"item-add-to-basket\"\n :variation-id=\"item.variation.id\"\n :is-salable=\"!!item.filter && item.filter.isSalable\"\n :has-children=\"!!item.item && item.item.salableVariationCount > 1\"\n :interval-quantity=\"item.variation.intervalOrderQuantity || 1\"\n :minimum-quantity=\"item.variation.minimumOrderQuantity\"\n :maximum-quantity=\"!!item.variation.maximumOrderQuantity && item.variation.maximumOrderQuantity > 0 ? item.variation.maximumOrderQuantity : null\"\n :order-properties=\"item.properties.filter(function(prop) { return prop.property.isOderProperty })\"\n :has-order-properties=\"item.hasOrderProperties\"\n :has-required-order-property=\"item.hasRequiredOrderProperty\"\n :use-large-scale=\"true\"\n :show-quantity=\"false\"\n :item-url=\"item | itemURL(urlWithVariationId)\"\n :has-price=\"item | hasItemDefaultPrice\"\n :has-graduated-price=\"itemGraduatedPriceisCheapestSorting || itemGraduatedPricesalableVariationCount\"\n :item-type=\"item.item.itemType\">\n </add-to-basket>\n\n <div class=\"thumb-image\">\n <div class=\"prop-1-1\">\n <slot name=\"item-image\">\n <category-image-carousel :image-urls-data=\"item.images | itemImages(imageUrlAccessor)\"\n :alt=\"item | itemName\"\n :title=\"item | itemName\"\n :item-url=\"item | itemURL(urlWithVariationId)\"\n :enable-carousel=\"$ceres.config.item.enableImageCarousel\"\n :disable-carousel-on-mobile=\"disableCarouselOnMobile\"\n ref=\"categoryImageCarousel\">\n </category-image-carousel>\n </slot>\n </div>\n </div>\n\n <!-- STORE SPECIALS -->\n <slot name=\"store-special\">\n <item-store-special v-if=\"storeSpecial || item.variation.bundleType === 'bundle' || item.item.itemType === 'set'\"\n :store-special=\"storeSpecial\"\n :recommended-retail-price=\"item.prices.rrp\"\n :variation-retail-price=\"item.prices.default\"\n :special-offer-price=\"item.prices.specialOffer\"\n :decimal-count=\"decimalCount\"\n :bundle-type=\"item.variation.bundleType\"\n :item-type=\"item.item.itemType\">\n </item-store-special>\n </slot>\n <!-- ./STORE SPECIALS -->\n\n <!-- ITEM DETAILS -->\n <slot name=\"item-details\">\n <div class=\"thumb-content\">\n <a :href=\"item | itemURL(urlWithVariationId)\" class=\"thumb-title small\" :class=\"{ 'stretched-link': $ceres.config.global.shippingCostsCategoryId == 0 }\">\n {{ item | itemName }}<!--\n --><span v-for=\"attribute in item.groupedAttributes\">{{ \"Ceres::Template.itemGroupedAttribute\" | translate(attribute) }}</span>\n </a>\n <div class=\"thumb-meta mt-2\">\n <slot name=\"before-prices\"></slot>\n\n <div class=\"prices\">\n <div v-if=\"item.prices.rrp && item.prices.rrp.price.value > 0 && item.prices.rrp.price.value > item.prices.default.price.value\" class=\"price-view-port\">\n <del class=\"crossprice\" v-if=\"item.prices.specialOffer\">\n {{ item.prices.default.unitPrice.formatted | itemCrossPrice(true) }}\n </del>\n <del class=\"crossprice\" v-else>\n {{ item.prices.rrp.unitPrice.formatted | itemCrossPrice }}\n </del>\n </div>\n\n <div class=\"price\">\n <template v-if=\"item.item.itemType === 'set'\">\n {{ $translate(\"Ceres::Template.itemSetPrice\", { price: itemSetPrice }) }} {{ $translate(\"Ceres::Template.itemFootnote\") }}\n </template>\n <template v-else-if=\"itemGraduatedPriceisCheapestSorting\">\n {{ $translate(\"Ceres::Template.itemFromPrice\", { price: itemPriceGraduated }) }} {{ $translate(\"Ceres::Template.itemFootnote\") }}\n </template>\n <template v-else-if=\"itemGraduatedPricesalableVariationCount\">\n {{ $translate(\"Ceres::Template.itemFromPrice\", { price: itemPriceGraduated }) }} {{ $translate(\"Ceres::Template.itemFootnote\") }}\n </template>\n <template v-else>\n {{ item.prices.default.unitPrice.formatted | specialOffer(item.prices, \"unitPrice\", \"formatted\") }} {{ $translate(\"Ceres::Template.itemFootnote\") }}\n </template>\n </div>\n </div>\n </div>\n\n <slot name=\"after-prices\"></slot>\n\n <div class=\"category-lowest-price small\" v-if=\"item.prices.default.lowestPrice.value && hasCrossPrice\">\n <span v-html=\"$translate('Ceres::Template.itemLowestPrice', {'price': item.prices.default.lowestPrice.formatted})\"></span>\n </div>\n\n <div class=\"category-unit-price small\" v-if=\"!(item.unit.unitOfMeasurement === 'C62' && item.unit.content === 1)\">\n <span>{{ item.unit.content }}</span>\n <span> {{ item.unit.names.name }}</span>\n <span v-if=\"item.variation.mayShowUnitPrice\"> | {{ basePrice }}</span>\n </div>\n\n <add-to-basket\n :variation-id=\"item.variation.id\"\n :is-salable=\"!!item.filter && item.filter.isSalable\"\n :has-children=\"!!item.item && item.item.salableVariationCount > 1\"\n :interval-quantity=\"item.variation.intervalOrderQuantity || 1\"\n :minimum-quantity=\"item.variation.minimumOrderQuantity\"\n :maximum-quantity=\"!!item.variation.maximumOrderQuantity && item.variation.maximumOrderQuantity > 0 ? item.variation.maximumOrderQuantity : null\"\n :order-properties=\"item.properties.filter(function(prop) { return prop.property.isOderProperty })\"\n :has-order-properties=\"item.hasOrderProperties\"\n :has-required-order-property=\"item.hasRequiredOrderProperty\"\n :use-large-scale=\"false\"\n :show-quantity=\"false\"\n :item-url=\"item | itemURL(urlWithVariationId)\"\n :has-price=\"item | hasItemDefaultPrice\"\n :has-graduated-price=\"itemGraduatedPriceisCheapestSorting || itemGraduatedPricesalableVariationCount\"\n :item-type=\"item.item.itemType\">\n </add-to-basket>\n\n <div class=\"vat small text-muted\">\n {{ $translate(\"Ceres::Template.itemFootnote\") }} <span v-if=\"showNetPrices\">{{ $translate(\"Ceres::Template.itemExclVAT\") }}</span>\n <span v-else>{{ $translate(\"Ceres::Template.itemInclVAT\") }}</span>\n {{ $translate(\"Ceres::Template.itemExclusive\") }}\n <a v-if=\"$ceres.config.global.shippingCostsCategoryId > 0\" data-toggle=\"modal\" href=\"#shippingscosts\" class=\"text-appearance\" :title=\"$translate('Ceres::Template.itemShippingCosts')\">{{ $translate(\"Ceres::Template.itemShippingCosts\") }}</a>\n <a v-else :title=\"$translate('Ceres::Template.itemShippingCosts')\">{{ $translate(\"Ceres::Template.itemShippingCosts\") }}</a>\n </div>\n </div>\n </slot>\n <!-- ./ITEM DETAILS -->\n </div>\n </article>\n</template>\n\n<script>\nimport { mapState } from \"vuex\";\nimport CategoryImageCarousel from \"./CategoryImageCarousel.vue\";\nimport ItemStoreSpecial from \"./ItemStoreSpecial.vue\";\nimport {getSlotData} from \"../../helper/getSlotData\";\n\nexport default {\n components: {\n CategoryImageCarousel,\n ItemStoreSpecial\n },\n\n props: {\n decimalCount:\n {\n type: Number,\n default: 0\n },\n imageUrlAccessor:\n {\n type: String,\n default: \"urlMiddle\"\n },\n itemData:\n {\n type: Object\n },\n disableCarouselOnMobile:\n {\n type: Boolean\n },\n paddingClasses:\n {\n type: String,\n default: null\n },\n paddingInlineStyles:\n {\n type: String,\n default: null\n },\n forceUrlWithVariationId:\n {\n type: Boolean,\n default: false\n }\n },\n\n jsonDataFields: [\n \"itemDataRef\"\n ],\n\n computed:\n {\n item()\n {\n return this.itemData || this.itemSlotData || this.itemDataRef;\n },\n\n itemSlotData: getSlotData('item-data'),\n\n /**\n * returns itemData.item.storeSpecial\n */\n storeSpecial()\n {\n return this.item.item.storeSpecial;\n },\n\n /**\n * returns itemData.texts\n */\n texts()\n {\n return this.item.texts;\n },\n\n itemPrice()\n {\n return this.$options.filters.specialOffer(this.item.prices.default.unitPrice.formatted, this.item.prices, \"unitPrice\", \"formatted\" );\n },\n\n basePrice()\n {\n return this.item.prices.default.basePrice;\n },\n\n itemPriceGraduated()\n {\n let unitPrice;\n if (App.config.item.enableGraduatedPrices) {\n unitPrice = this.item.prices.graduatedPrices.length > 0\n ? this.item.prices.graduatedPrices[0].unitPrice\n : this.item.prices.default.unitPrice;\n } else {\n unitPrice = this.item.prices.default.unitPrice;\n }\n\n return this.$options.filters.specialOffer(unitPrice.formatted, this.item.prices, \"unitPrice\", \"formatted\" );\n },\n\n itemGraduatedPriceisCheapestSorting()\n {\n return !!this.item.item && this.item.item.salableVariationCount > 1 && !!this.$ceres.isCheapestSorting;\n },\n\n itemGraduatedPricesalableVariationCount()\n {\n return !!this.item.item && this.item.item.salableVariationCount == 1 && this.item.prices.graduatedPrices.length > 1 && App.config.item.enableGraduatedPrices;\n },\n\n itemSetPrice()\n {\n return this.$options.filters.currency(\n this.item.prices.default.price.value,\n this.item.prices.default.currency\n );\n },\n\n urlWithVariationId()\n {\n return !this.$ceres.config.item.showPleaseSelect || this.$ceres.initialPleaseSelect == 0 || this.forceUrlWithVariationId;\n },\n\n hasCrossPrice() {\n const hasRrpPrice = !!this.item.prices.rrp &&\n this.item.prices.rrp.unitPrice.value > this.item.prices.default.unitPrice.value;\n\n const hasBeforePrice = !!this.item.prices.specialOffer &&\n !!this.item.prices.default &&\n this.item.prices.default.unitPrice.value > this.item.prices.specialOffer.unitPrice.value;\n\n return hasRrpPrice || hasBeforePrice;\n },\n\n ...mapState({\n showNetPrices: state => state.basket.showNetPrices\n })\n }\n}\n</script>\n","<template>\n <div v-if=\"hasLabel || isBundle || isSet\" class=\"special-tags p-2\">\n \n <span v-if=\"hasLabel\" class=\"badge\" :class=\"tagClass\">\n {{ label }}\n </span>\n\n <span v-else-if=\"isBundle\" :class=\"tagClasses.itemBundle\">\n {{ $translate(\"Ceres::Template.itemBundle\") }}\n </span>\n\n <span v-else-if=\"isSet\" :class=\"tagClasses.itemSet\">\n {{ $translate(\"Ceres::Template.itemSet\") }}\n </span>\n\n </div>\n</template>\n\n<script>\nimport { isNullOrUndefined, isDefined } from \"../../helper/utils\";\n\nexport default {\n\n name: \"item-store-special\",\n\n props: [\n \"storeSpecial\",\n \"recommendedRetailPrice\",\n \"variationRetailPrice\",\n \"specialOfferPrice\",\n \"decimalCount\",\n \"bundleType\",\n \"itemType\"\n ],\n\n data()\n {\n return {\n tagClass: \"\",\n label: \"\",\n tagClasses:\n {\n 1: \"badge-offer badge-danger\",\n 2: \"badge-new badge-primary\",\n 3: \"badge-top badge-success\",\n default: \"badge-success\",\n itemBundle: \"badge badge-bundle bg-info\",\n itemSet: \"badge badge-dark\"\n },\n labels:\n {\n 1: this.$translate(\"Ceres::Template.storeSpecialOffer\"),\n 2: this.$translate(\"Ceres::Template.storeSpecialNew\"),\n 3: this.$translate(\"Ceres::Template.storeSpecialTop\")\n }\n };\n },\n\n computed:\n {\n hasLabel() {\n return this.label && this.label !== \"\";\n },\n\n isBundle() {\n return this.bundleType === \"bundle\";\n },\n\n isSet() {\n return this.itemType === \"set\";\n }\n },\n\n created()\n {\n this.initializeStoreSpecial();\n },\n\n methods:\n {\n initializeStoreSpecial()\n {\n if (!isNullOrUndefined(this.storeSpecial))\n {\n this.tagClass = this.tagClasses[this.storeSpecial.id] || this.tagClasses.default;\n }\n else\n {\n this.tagClass = this.tagClasses.default;\n }\n\n this.label = this.getLabel();\n },\n\n getLabel()\n {\n if (!isNullOrUndefined(this.storeSpecial) && this.storeSpecial.id === 1 && !isNullOrUndefined(this.recommendedRetailPrice))\n {\n return this.getPercentageSale();\n }\n\n if (isNullOrUndefined(this.storeSpecial))\n {\n return \"\";\n }\n\n return this.labels[this.storeSpecial.id] || this.storeSpecial.names.name;\n },\n\n getPercentageSale()\n {\n let percent;\n\n if (isDefined(this.specialOfferPrice))\n {\n percent = (1 - this.specialOfferPrice.unitPrice.value / this.variationRetailPrice.unitPrice.value ) * -100;\n }\n else\n {\n percent = (1 - this.variationRetailPrice.unitPrice.value / this.recommendedRetailPrice.unitPrice.value ) * -100;\n }\n\n if (percent < 0)\n {\n return percent.toFixed(this.decimalCount).replace(\".\", App.decimalSeparator) + \"%\";\n }\n\n return \"\";\n }\n },\n\n watch:\n {\n storeSpecial()\n {\n this.initializeStoreSpecial();\n }\n }\n}\n</script>\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _vm.$data.$_enableCarousel\n ? _c(\n \"a\",\n {\n staticClass: \"owl-carousel owl-theme\",\n attrs: {\n id: \"owl-carousel-\" + _vm._uid,\n href: _vm.itemUrl,\n \"aria-label\": _vm.$translate(\"Ceres::Template.itemImageCarousel\"),\n role: \"listbox\"\n }\n },\n _vm._l(_vm.imageUrls, function(imageUrl, index) {\n return _c(\n \"div\",\n { key: index },\n [\n _c(\"lazy-img\", {\n ref: { itemLazyImage: index === 0 },\n refInFor: true,\n attrs: {\n \"image-url\": imageUrl.url,\n alt: _vm.getAltText(imageUrl),\n title: _vm.getTitleText(imageUrl),\n width: _vm.getImageWidth(imageUrl),\n height: _vm.getImageHeight(imageUrl),\n \"picture-class\": \"img-fluid\",\n role: \"option\"\n }\n })\n ],\n 1\n )\n }),\n 0\n )\n : _c(\n \"a\",\n { attrs: { href: _vm.itemUrl } },\n [\n _c(\"lazy-img\", {\n ref: { itemLazyImage: !_vm.disableLazyLoad },\n attrs: {\n \"image-url\": _vm.imageOrItemImage,\n alt: _vm.getAltText(_vm.imageUrls[0]),\n title: _vm.getTitleText(_vm.imageUrls[0]),\n width: _vm.getImageWidth(_vm.imageUrls[0]),\n height: _vm.getImageHeight(_vm.imageUrls[0]),\n \"picture-class\": \"img-fluid\"\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"article\",\n {\n staticClass: \"cmp cmp-product-thumb\",\n attrs: { \"data-testing\": _vm.item.variation.id }\n },\n [\n _c(\n \"div\",\n { class: _vm.paddingClasses, style: _vm.paddingInlineStyles },\n [\n _c(\"add-to-basket\", {\n attrs: {\n \"data-testing\": \"item-add-to-basket\",\n \"variation-id\": _vm.item.variation.id,\n \"is-salable\": !!_vm.item.filter && _vm.item.filter.isSalable,\n \"has-children\":\n !!_vm.item.item && _vm.item.item.salableVariationCount > 1,\n \"interval-quantity\":\n _vm.item.variation.intervalOrderQuantity || 1,\n \"minimum-quantity\": _vm.item.variation.minimumOrderQuantity,\n \"maximum-quantity\":\n !!_vm.item.variation.maximumOrderQuantity &&\n _vm.item.variation.maximumOrderQuantity > 0\n ? _vm.item.variation.maximumOrderQuantity\n : null,\n \"order-properties\": _vm.item.properties.filter(function(prop) {\n return prop.property.isOderProperty\n }),\n \"has-order-properties\": _vm.item.hasOrderProperties,\n \"has-required-order-property\": _vm.item.hasRequiredOrderProperty,\n \"use-large-scale\": true,\n \"show-quantity\": false,\n \"item-url\": _vm._f(\"itemURL\")(_vm.item, _vm.urlWithVariationId),\n \"has-price\": _vm._f(\"hasItemDefaultPrice\")(_vm.item),\n \"has-graduated-price\":\n _vm.itemGraduatedPriceisCheapestSorting ||\n _vm.itemGraduatedPricesalableVariationCount,\n \"item-type\": _vm.item.item.itemType\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"thumb-image\" }, [\n _c(\n \"div\",\n { staticClass: \"prop-1-1\" },\n [\n _vm._t(\"item-image\", [\n _c(\"category-image-carousel\", {\n ref: \"categoryImageCarousel\",\n attrs: {\n \"image-urls-data\": _vm._f(\"itemImages\")(\n _vm.item.images,\n _vm.imageUrlAccessor\n ),\n alt: _vm._f(\"itemName\")(_vm.item),\n title: _vm._f(\"itemName\")(_vm.item),\n \"item-url\": _vm._f(\"itemURL\")(\n _vm.item,\n _vm.urlWithVariationId\n ),\n \"enable-carousel\":\n _vm.$ceres.config.item.enableImageCarousel,\n \"disable-carousel-on-mobile\": _vm.disableCarouselOnMobile\n }\n })\n ])\n ],\n 2\n )\n ]),\n _vm._v(\" \"),\n _vm._t(\"store-special\", [\n _vm.storeSpecial ||\n _vm.item.variation.bundleType === \"bundle\" ||\n _vm.item.item.itemType === \"set\"\n ? _c(\"item-store-special\", {\n attrs: {\n \"store-special\": _vm.storeSpecial,\n \"recommended-retail-price\": _vm.item.prices.rrp,\n \"variation-retail-price\": _vm.item.prices.default,\n \"special-offer-price\": _vm.item.prices.specialOffer,\n \"decimal-count\": _vm.decimalCount,\n \"bundle-type\": _vm.item.variation.bundleType,\n \"item-type\": _vm.item.item.itemType\n }\n })\n : _vm._e()\n ]),\n _vm._v(\" \"),\n _vm._t(\"item-details\", [\n _c(\n \"div\",\n { staticClass: \"thumb-content\" },\n [\n _c(\n \"a\",\n {\n staticClass: \"thumb-title small\",\n class: {\n \"stretched-link\":\n _vm.$ceres.config.global.shippingCostsCategoryId == 0\n },\n attrs: {\n href: _vm._f(\"itemURL\")(_vm.item, _vm.urlWithVariationId)\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm._f(\"itemName\")(_vm.item))\n ),\n _vm._l(_vm.item.groupedAttributes, function(attribute) {\n return _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm._f(\"translate\")(\n \"Ceres::Template.itemGroupedAttribute\",\n attribute\n )\n )\n )\n ])\n })\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"thumb-meta mt-2\" },\n [\n _vm._t(\"before-prices\"),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"prices\" }, [\n _vm.item.prices.rrp &&\n _vm.item.prices.rrp.price.value > 0 &&\n _vm.item.prices.rrp.price.value >\n _vm.item.prices.default.price.value\n ? _c(\"div\", { staticClass: \"price-view-port\" }, [\n _vm.item.prices.specialOffer\n ? _c(\"del\", { staticClass: \"crossprice\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"itemCrossPrice\")(\n _vm.item.prices.default.unitPrice\n .formatted,\n true\n )\n ) +\n \"\\n \"\n )\n ])\n : _c(\"del\", { staticClass: \"crossprice\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"itemCrossPrice\")(\n _vm.item.prices.rrp.unitPrice\n .formatted\n )\n ) +\n \"\\n \"\n )\n ])\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"price\" },\n [\n _vm.item.item.itemType === \"set\"\n ? [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$translate(\n \"Ceres::Template.itemSetPrice\",\n { price: _vm.itemSetPrice }\n )\n ) +\n \" \" +\n _vm._s(\n _vm.$translate(\n \"Ceres::Template.itemFootnote\"\n )\n ) +\n \"\\n \"\n )\n ]\n : _vm.itemGraduatedPriceisCheapestSorting\n ? [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$translate(\n \"Ceres::Template.itemFromPrice\",\n { price: _vm.itemPriceGraduated }\n )\n ) +\n \" \" +\n _vm._s(\n _vm.$translate(\n \"Ceres::Template.itemFootnote\"\n )\n ) +\n \"\\n \"\n )\n ]\n : _vm.itemGraduatedPricesalableVariationCount\n ? [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.$translate(\n \"Ceres::Template.itemFromPrice\",\n { price: _vm.itemPriceGraduated }\n )\n ) +\n \" \" +\n _vm._s(\n _vm.$translate(\n \"Ceres::Template.itemFootnote\"\n )\n ) +\n \"\\n \"\n )\n ]\n : [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"specialOffer\")(\n _vm.item.prices.default.unitPrice\n .formatted,\n _vm.item.prices,\n \"unitPrice\",\n \"formatted\"\n )\n ) +\n \" \" +\n _vm._s(\n _vm.$translate(\n \"Ceres::Template.itemFootnote\"\n )\n ) +\n \"\\n \"\n )\n ]\n ],\n 2\n )\n ])\n ],\n 2\n ),\n _vm._v(\" \"),\n _vm._t(\"after-prices\"),\n _vm._v(\" \"),\n _vm.item.prices.default.lowestPrice.value && _vm.hasCrossPrice\n ? _c(\"div\", { staticClass: \"category-lowest-price small\" }, [\n _c(\"span\", {\n domProps: {\n innerHTML: _vm._s(\n _vm.$translate(\"Ceres::Template.itemLowestPrice\", {\n price:\n _vm.item.prices.default.lowestPrice.formatted\n })\n )\n }\n })\n ])\n : _vm._e(),\n _vm._v(\" \"),\n !(\n _vm.item.unit.unitOfMeasurement === \"C62\" &&\n _vm.item.unit.content === 1\n )\n ? _c(\"div\", { staticClass: \"category-unit-price small\" }, [\n _c(\"span\", [_vm._v(_vm._s(_vm.item.unit.content))]),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\" \" + _vm._s(_vm.item.unit.names.name))\n ]),\n _vm._v(\" \"),\n _vm.item.variation.mayShowUnitPrice\n ? _c(\"span\", [_vm._v(\" | \" + _vm._s(_vm.basePrice))])\n : _vm._e()\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"add-to-basket\", {\n attrs: {\n \"variation-id\": _vm.item.variation.id,\n \"is-salable\":\n !!_vm.item.filter && _vm.item.filter.isSalable,\n \"has-children\":\n !!_vm.item.item &&\n _vm.item.item.salableVariationCount > 1,\n \"interval-quantity\":\n _vm.item.variation.intervalOrderQuantity || 1,\n \"minimum-quantity\": _vm.item.variation.minimumOrderQuantity,\n \"maximum-quantity\":\n !!_vm.item.variation.maximumOrderQuantity &&\n _vm.item.variation.maximumOrderQuantity > 0\n ? _vm.item.variation.maximumOrderQuantity\n : null,\n \"order-properties\": _vm.item.properties.filter(function(\n prop\n ) {\n return prop.property.isOderProperty\n }),\n \"has-order-properties\": _vm.item.hasOrderProperties,\n \"has-required-order-property\":\n _vm.item.hasRequiredOrderProperty,\n \"use-large-scale\": false,\n \"show-quantity\": false,\n \"item-url\": _vm._f(\"itemURL\")(\n _vm.item,\n _vm.urlWithVariationId\n ),\n \"has-price\": _vm._f(\"hasItemDefaultPrice\")(_vm.item),\n \"has-graduated-price\":\n _vm.itemGraduatedPriceisCheapestSorting ||\n _vm.itemGraduatedPricesalableVariationCount,\n \"item-type\": _vm.item.item.itemType\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"vat small text-muted\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$translate(\"Ceres::Template.itemFootnote\")) +\n \" \"\n ),\n _vm.showNetPrices\n ? _c(\"span\", [\n _vm._v(\n _vm._s(_vm.$translate(\"Ceres::Template.itemExclVAT\"))\n )\n ])\n : _c(\"span\", [\n _vm._v(\n _vm._s(_vm.$translate(\"Ceres::Template.itemInclVAT\"))\n )\n ]),\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$translate(\"Ceres::Template.itemExclusive\")) +\n \"\\n \"\n ),\n _vm.$ceres.config.global.shippingCostsCategoryId > 0\n ? _c(\n \"a\",\n {\n staticClass: \"text-appearance\",\n attrs: {\n \"data-toggle\": \"modal\",\n href: \"#shippingscosts\",\n title: _vm.$translate(\n \"Ceres::Template.itemShippingCosts\"\n )\n }\n },\n [\n _vm._v(\n _vm._s(\n _vm.$translate(\n \"Ceres::Template.itemShippingCosts\"\n )\n )\n )\n ]\n )\n : _c(\n \"a\",\n {\n attrs: {\n title: _vm.$translate(\n \"Ceres::Template.itemShippingCosts\"\n )\n }\n },\n [\n _vm._v(\n _vm._s(\n _vm.$translate(\n \"Ceres::Template.itemShippingCosts\"\n )\n )\n )\n ]\n )\n ])\n ],\n 2\n )\n ])\n ],\n 2\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _vm.hasLabel || _vm.isBundle || _vm.isSet\n ? _c(\"div\", { staticClass: \"special-tags p-2\" }, [\n _vm.hasLabel\n ? _c(\"span\", { staticClass: \"badge\", class: _vm.tagClass }, [\n _vm._v(\"\\n \" + _vm._s(_vm.label) + \"\\n \")\n ])\n : _vm.isBundle\n ? _c(\"span\", { class: _vm.tagClasses.itemBundle }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$translate(\"Ceres::Template.itemBundle\")) +\n \"\\n \"\n )\n ])\n : _vm.isSet\n ? _c(\"span\", { class: _vm.tagClasses.itemSet }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.$translate(\"Ceres::Template.itemSet\")) +\n \"\\n \"\n )\n ])\n : _vm._e()\n ])\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./CategoryImageCarousel.vue?vue&type=template&id=62e5025e&\"\nimport script from \"./CategoryImageCarousel.vue?vue&type=script&lang=js&\"\nexport * from \"./CategoryImageCarousel.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\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/runner/work/plugin-ceres/plugin-ceres/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('62e5025e')) {\n api.createRecord('62e5025e', component.options)\n } else {\n api.reload('62e5025e', component.options)\n }\n module.hot.accept(\"./CategoryImageCarousel.vue?vue&type=template&id=62e5025e&\", function () {\n api.rerender('62e5025e', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"resources/js/src/app/components/itemList/CategoryImageCarousel.vue\"\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryImageCarousel.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!./CategoryImageCarousel.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryImageCarousel.vue?vue&type=template&id=62e5025e&\"","import { render, staticRenderFns } from \"./CategoryItem.vue?vue&type=template&id=8ab526e6&\"\nimport script from \"./CategoryItem.vue?vue&type=script&lang=js&\"\nexport * from \"./CategoryItem.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\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/runner/work/plugin-ceres/plugin-ceres/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('8ab526e6')) {\n api.createRecord('8ab526e6', component.options)\n } else {\n api.reload('8ab526e6', component.options)\n }\n module.hot.accept(\"./CategoryItem.vue?vue&type=template&id=8ab526e6&\", function () {\n api.rerender('8ab526e6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"resources/js/src/app/components/itemList/CategoryItem.vue\"\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryItem.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!./CategoryItem.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryItem.vue?vue&type=template&id=8ab526e6&\"","import { render, staticRenderFns } from \"./ItemStoreSpecial.vue?vue&type=template&id=9410a8b2&\"\nimport script from \"./ItemStoreSpecial.vue?vue&type=script&lang=js&\"\nexport * from \"./ItemStoreSpecial.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\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/runner/work/plugin-ceres/plugin-ceres/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('9410a8b2')) {\n api.createRecord('9410a8b2', component.options)\n } else {\n api.reload('9410a8b2', component.options)\n }\n module.hot.accept(\"./ItemStoreSpecial.vue?vue&type=template&id=9410a8b2&\", function () {\n api.rerender('9410a8b2', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"resources/js/src/app/components/itemList/ItemStoreSpecial.vue\"\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemStoreSpecial.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!./ItemStoreSpecial.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemStoreSpecial.vue?vue&type=template&id=9410a8b2&\"","/**\n * Return a getter function to read json formatted data from a slot of the component.\n * This can be used to create a dynamic property for a vue component returning the parsed\n * json data from the given slot.\n * Once the data have been parsed, the result is stored on the vm options to avoid parsing the slot again.\n *\n * @param string slotKey The identifier of the slot to parse json data from\n */\nexport function getSlotData(slotKey)\n{\n return (vm) =>\n {\n vm.$options.slotData = vm.$options.slotData || {};\n if (!vm.$options.slotData.hasOwnProperty(slotKey) && vm.$slots.hasOwnProperty(slotKey))\n {\n const slotNode = vm.$slots[slotKey][0];\n\n if (slotNode.elm)\n {\n vm.$options.slotData[slotKey] = JSON.parse(slotNode.elm.textContent);\n }\n else\n {\n vm.$options.slotData[slotKey] = JSON.parse(slotNode.text);\n }\n }\n\n return vm.$options.slotData[slotKey];\n };\n}\n"],"sourceRoot":""}