vviinn-widgets 2.197.0 → 2.198.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{index-BrWTzRc7.js → index-CF8yXqXJ.js} +4 -0
- package/dist/cjs/{package-BL578Fil.js → package-tfkS0Qj1.js} +1 -1
- package/dist/cjs/vviinn-button_6.cjs.entry.js +3 -3
- package/dist/cjs/vviinn-camera_12.cjs.entry.js +2 -2
- package/dist/cjs/vviinn-carousel_10.cjs.entry.js +9 -9
- package/dist/cjs/vviinn-detected-object_2.cjs.entry.js +1 -1
- package/dist/cjs/vviinn-text-search.cjs.entry.js +1 -1
- package/dist/collection/components/vviinn-carousel/vviinn-carousel.js +6 -4
- package/dist/collection/components/vviinn-cropper/vviinn-detected-object/vviinn-detected-object.css +3 -1
- package/dist/collection/components/vviinn-product-card/render-helpers.js +2 -2
- package/dist/collection/components/vviinn-product-card/vviinn-product-card.js +2 -2
- package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js +4 -2
- package/dist/collection/cssParts/index.js +2 -0
- package/dist/collection/cssParts/product.js +2 -0
- package/dist/esm/{index-CtuL3RiP.js → index-DyZfzSpJ.js} +4 -0
- package/dist/esm/{package-DZVuE7LY.js → package-DiWvyInL.js} +1 -1
- package/dist/esm/vviinn-button_6.entry.js +3 -3
- package/dist/esm/vviinn-camera_12.entry.js +2 -2
- package/dist/esm/vviinn-carousel_10.entry.js +9 -9
- package/dist/esm/vviinn-detected-object_2.entry.js +1 -1
- package/dist/esm/vviinn-text-search.entry.js +1 -1
- package/dist/types/components/vviinn-carousel/vviinn-carousel.d.ts +3 -1
- package/dist/types/components/vviinn-product-card/render-helpers.d.ts +1 -1
- package/dist/types/components/vviinn-vpr-button/vviinn-vpr-button.d.ts +3 -1
- package/dist/types/components/vviinn-vpr-widget/vviinn-vpr-widget.d.ts +3 -1
- package/dist/vviinn-widgets/{p-f3b8af7d.entry.js → p-6394a344.entry.js} +1 -1
- package/dist/vviinn-widgets/{p-60672b4b.entry.js → p-7708fb5e.entry.js} +1 -1
- package/dist/vviinn-widgets/p-89a5a04e.entry.js +1 -0
- package/dist/vviinn-widgets/{p-c6fad937.entry.js → p-937360db.entry.js} +1 -1
- package/dist/vviinn-widgets/{p-DZVuE7LY.js → p-DiWvyInL.js} +1 -1
- package/dist/vviinn-widgets/{p-CtuL3RiP.js → p-DyZfzSpJ.js} +1 -1
- package/dist/vviinn-widgets/{p-6c573566.entry.js → p-a11e1d2f.entry.js} +1 -1
- package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
- package/package.json +1 -1
- package/www/build/{p-f3b8af7d.entry.js → p-6394a344.entry.js} +1 -1
- package/www/build/{p-b4b6c1f6.js → p-70b5ea54.js} +1 -1
- package/www/build/{p-60672b4b.entry.js → p-7708fb5e.entry.js} +1 -1
- package/www/build/p-89a5a04e.entry.js +1 -0
- package/www/build/{p-c6fad937.entry.js → p-937360db.entry.js} +1 -1
- package/www/build/{p-DZVuE7LY.js → p-DiWvyInL.js} +1 -1
- package/www/build/{p-CtuL3RiP.js → p-DyZfzSpJ.js} +1 -1
- package/www/build/{p-6c573566.entry.js → p-a11e1d2f.entry.js} +1 -1
- package/www/build/vviinn-widgets.esm.js +1 -1
- package/www/index.html +1 -1
- package/dist/vviinn-widgets/p-2c7fc702.entry.js +0 -1
- package/www/build/p-2c7fc702.entry.js +0 -1
|
@@ -99,6 +99,8 @@ const customLabelPartsList = [
|
|
|
99
99
|
"custom-label-2",
|
|
100
100
|
"custom-label-3",
|
|
101
101
|
"custom-label-4",
|
|
102
|
+
"custom-label-content",
|
|
103
|
+
"custom-label-image",
|
|
102
104
|
];
|
|
103
105
|
const pricePartsList = [
|
|
104
106
|
"price-container",
|
|
@@ -166,6 +168,8 @@ const searchBarParts = makeExportPartsString([
|
|
|
166
168
|
const carouselParts = makeExportPartsString([
|
|
167
169
|
"items-group",
|
|
168
170
|
"carousel-button",
|
|
171
|
+
"carousel-button-prev",
|
|
172
|
+
"carousel-button-next",
|
|
169
173
|
"recommendations-results",
|
|
170
174
|
]);
|
|
171
175
|
const modalParts = makeExportPartsString([
|
|
@@ -4,9 +4,9 @@ var index = require('./index-OrE9ITel.js');
|
|
|
4
4
|
var i18next = require('./i18next-DkN_8H9H.js');
|
|
5
5
|
var search_store = require('./search.store-DHFf8KQS.js');
|
|
6
6
|
var customizedSlots = require('./customized-slots-BzqsGchC.js');
|
|
7
|
-
var _package = require('./package-
|
|
7
|
+
var _package = require('./package-tfkS0Qj1.js');
|
|
8
8
|
var SecondaryActionIcon = require('./SecondaryActionIcon-BZg-ADIW.js');
|
|
9
|
-
var index$2 = require('./index-
|
|
9
|
+
var index$2 = require('./index-CF8yXqXJ.js');
|
|
10
10
|
var index$1 = require('./index-DLEDOlRe.js');
|
|
11
11
|
var Rectangle = require('./Rectangle-DfUOGfXS.js');
|
|
12
12
|
require('./store-CrCuJC55.js');
|
|
@@ -514,7 +514,7 @@ const VviinnVprButton = class {
|
|
|
514
514
|
}
|
|
515
515
|
}
|
|
516
516
|
render() {
|
|
517
|
-
return (index.h(index.Host, { key: '
|
|
517
|
+
return (index.h(index.Host, { key: 'bf6e6f058b0fcb133df713d43d9603e50783dd7d', role: "button", tabindex: "0", "aria-label": this.getAriaLabel(), onClick: this.handleButtonClick, onKeyDown: this.handleKeyDown }, index.h("vviinn-button", { key: '829e3a82cc5345750696eddadfd307813b02464b', addStyle: this.addStyle, part: "vviinn-button" }, index.h("slot", { key: 'ad46d98bc63a6a4b5555151d8c366216d82299a8' }, this.campaignType === "VCS" ? (index.h(CrossSellingIcon, { width: this.iconSideSize, height: this.iconSideSize })) : (index.h(SimilarProductsIcon, { width: this.iconSideSize, height: this.iconSideSize }))))));
|
|
518
518
|
}
|
|
519
519
|
handleClick() {
|
|
520
520
|
const sidebar = document.createElement("vviinn-recommendations-sidebar");
|
|
@@ -9,9 +9,9 @@ var i18next = require('./i18next-DkN_8H9H.js');
|
|
|
9
9
|
var cropperUtils = require('./cropperUtils-Bam-BTEk.js');
|
|
10
10
|
var store = require('./store-CrCuJC55.js');
|
|
11
11
|
var index$2 = require('./index-DLEDOlRe.js');
|
|
12
|
-
var _package = require('./package-
|
|
12
|
+
var _package = require('./package-tfkS0Qj1.js');
|
|
13
13
|
var resources = require('./resources-CuHgJnvC.js');
|
|
14
|
-
var index$3 = require('./index-
|
|
14
|
+
var index$3 = require('./index-CF8yXqXJ.js');
|
|
15
15
|
var constants = require('./constants-DHaugTOE.js');
|
|
16
16
|
|
|
17
17
|
const CameraActionIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
|
|
@@ -4,11 +4,11 @@ var index = require('./index-OrE9ITel.js');
|
|
|
4
4
|
var search_store = require('./search.store-DHFf8KQS.js');
|
|
5
5
|
var Rectangle = require('./Rectangle-DfUOGfXS.js');
|
|
6
6
|
var i18next = require('./i18next-DkN_8H9H.js');
|
|
7
|
-
var _package = require('./package-
|
|
7
|
+
var _package = require('./package-tfkS0Qj1.js');
|
|
8
8
|
var index$2 = require('./index-ClWQDYyW.js');
|
|
9
9
|
var index$1 = require('./index-DLEDOlRe.js');
|
|
10
10
|
var customizedSlots = require('./customized-slots-BzqsGchC.js');
|
|
11
|
-
var index$3 = require('./index-
|
|
11
|
+
var index$3 = require('./index-CF8yXqXJ.js');
|
|
12
12
|
var resources = require('./resources-CuHgJnvC.js');
|
|
13
13
|
var store = require('./store-CrCuJC55.js');
|
|
14
14
|
var intersectionObserver = require('./intersectionObserver-Bz1vF9DA.js');
|
|
@@ -552,11 +552,11 @@ const VviinnCarousel = class {
|
|
|
552
552
|
}
|
|
553
553
|
render() {
|
|
554
554
|
var _a, _b;
|
|
555
|
-
return (index.h(index.Host, { key: '
|
|
556
|
-
this.sourceProduct.image.original, entityType: this.sourceProduct.entityType, price: this.sourceProduct.price.actual, salePrice: this.sourceProduct.price.sale, basePrice: (_a = this.sourceProduct.basePrice) === null || _a === void 0 ? void 0 : _a.actual, baseSalePrice: (_b = this.sourceProduct.basePrice) === null || _b === void 0 ? void 0 : _b.sale, addPriceContainer: this.addPriceContainer, imageRatio: 1, imageWidth: 300, imageResolutionWidth: this.imageResolutionWidth, isSourceProduct: true, currency: this.currencySign, pricePrefix: this.pricePrefix, isSetMode: this.isSetMode, locale: this.locale, favoriteShow: this.favoriteShow, responsive: true })), index.h("div", { key: '
|
|
555
|
+
return (index.h(index.Host, { key: '4745c2a317b4ea585c40f8cdd66cfdfb951e4d0b', class: this.getClassMap() }, index.h("div", { key: '1ec76f7cb3d3b15e67ab9195de4da16fa4212b19', class: Object.assign(Object.assign({}, this.getClassMap()), this.getBodyClassMap()) }, this.isSetMode && this.crossSellingRecommendations.length > 0 && (index.h("vviinn-product-card", { key: 'c69bf237306841f6216c7a88a1283b79afc688be', class: "set-mode product-card--source", productTitle: this.sourceProduct.title, image: this.sourceProduct.image.thumbnail ||
|
|
556
|
+
this.sourceProduct.image.original, entityType: this.sourceProduct.entityType, price: this.sourceProduct.price.actual, salePrice: this.sourceProduct.price.sale, basePrice: (_a = this.sourceProduct.basePrice) === null || _a === void 0 ? void 0 : _a.actual, baseSalePrice: (_b = this.sourceProduct.basePrice) === null || _b === void 0 ? void 0 : _b.sale, addPriceContainer: this.addPriceContainer, imageRatio: 1, imageWidth: 300, imageResolutionWidth: this.imageResolutionWidth, isSourceProduct: true, currency: this.currencySign, pricePrefix: this.pricePrefix, isSetMode: this.isSetMode, locale: this.locale, favoriteShow: this.favoriteShow, customLabels: index$2.getCustomLabels(this.sourceProduct), responsive: true })), index.h("div", { key: '07e4e63e35d26830a611ab8f2088ced160b207db', class: this.getContentClassMap() }, this.renderRecommendations(), this.showArrowButtons() && (index.h(index.Fragment, { key: '9c9c15097bef2d3e016b7399e13900b930d721af' }, index.h("button", { key: 'e8c76792a669f2812bc2865d7d03cca1557e7d46', class: {
|
|
557
557
|
prev: true,
|
|
558
558
|
"grid-arrows-dynamic": this.gridArrowsDynamic && this.isGridMode,
|
|
559
|
-
}, onClick: () => this.handleCarouselButtonClick("left"), part: "carousel-button", disabled: this.isFirst(), "aria-label": i18next.instance.t("buttons.previous") }, index.h(ChevronIcon, { key: '
|
|
559
|
+
}, onClick: () => this.handleCarouselButtonClick("left"), part: "carousel-button carousel-button-prev", disabled: this.isFirst(), "aria-label": i18next.instance.t("buttons.previous") }, index.h(ChevronIcon, { key: 'd0811109ba520c29fbceb752ca77e622148fbfac' })), index.h("button", { key: '5fb23c730e3f625eb7f9d6c909946a4d8a462887', class: "next", onClick: () => this.handleCarouselButtonClick("right"), part: "carousel-button carousel-button-next", disabled: this.isLast(), "aria-label": i18next.instance.t("buttons.next") }, index.h(ChevronIcon, { key: '8eb8480b52112324a0fe6fe2c06b2617f9ee5d69' })))))), this.showBullets() && (index.h("div", { key: 'e984bf6d3139814c2f076e1b5a41ba2e86b8be07', class: "bullets" }, this.renderBullets()))));
|
|
560
560
|
}
|
|
561
561
|
get el() { return index.getElement(this); }
|
|
562
562
|
static get watchers() { return {
|
|
@@ -1504,8 +1504,8 @@ const parseBasePrice = (basePrice) => {
|
|
|
1504
1504
|
}
|
|
1505
1505
|
return basePrice;
|
|
1506
1506
|
};
|
|
1507
|
-
const renderCustomLabels = (labels) => {
|
|
1508
|
-
const renderLabel = (label, index$1) => label ? (index.h("span", { part: `custom-label-${index$1}`, class: "custom-label" },
|
|
1507
|
+
const renderCustomLabels = (labels, location) => {
|
|
1508
|
+
const renderLabel = (label, index$1) => label ? (index.h("span", { part: `custom-label-${index$1} custom-label-${location}`, class: "custom-label" },
|
|
1509
1509
|
index.h("slot", { name: `vviinn-custom-label-${index$1}` }, label))) : null;
|
|
1510
1510
|
return (index.h(index.Fragment, null, labels.map((label, index) => renderLabel(label, index))));
|
|
1511
1511
|
};
|
|
@@ -1760,7 +1760,7 @@ const VviinnProductCard = class {
|
|
|
1760
1760
|
animated: this.isTransitioning,
|
|
1761
1761
|
"product-card--source": this.isSourceProduct,
|
|
1762
1762
|
"set-mode": this.isSetMode,
|
|
1763
|
-
}, exportparts: index$3.productCardParts, "data-id": this.productId }, index.h("div", { class: "content-container", part: "content-container" }, this.showSkeleton() ? (index.h(index.Fragment, null, index.h("vviinn-skeleton", { height: 40 }), index.h("vviinn-skeleton", { height: 20, halfWidth: true }), index.h("vviinn-skeleton", { height: 40 }))) : (index.h(index.Fragment, null, index.h(Linked, { deeplink: this.deeplink, part: "deeplink", tabindex: 0 }, index.h("span", { class: "title", part: "title" }, this.productTitle)), ((_a = this.brand) === null || _a === void 0 ? void 0 : _a.length) > 0 && (index.h("span", { class: "brand", part: "brand" }, this.brand)), ((_b = this.productType) === null || _b === void 0 ? void 0 : _b.length) > 0 && (index.h("span", { class: "product-type", part: "product-type" }, this.productType)), ((_c = this === null || this === void 0 ? void 0 : this.energyCertifications) !== null && _c !== void 0 ? _c : []).map((energyCertification) => (index.h("vviinn-energy-label", { classIconUrls: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classIconUrls, classDataSheetUrl: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classDataSheetUrl, productType: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.productType, certificationClass: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.certificationClass, classRange: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classRange }))), index.h(Price, { prefix: this.pricePrefix, currency: this.currency, locale: this.locale, price: this.price, basePrice: parseBasePrice(this.basePrice), salePrice: this.salePrice, baseSalePrice: parseBasePrice(this.baseSalePrice), showInContainer: this.addPriceContainer }), renderCustomLabels(this.customLabels.split(","))))), index.h("div", { class: {
|
|
1763
|
+
}, exportparts: index$3.productCardParts, "data-id": this.productId }, index.h("div", { class: "content-container", part: "content-container" }, this.showSkeleton() ? (index.h(index.Fragment, null, index.h("vviinn-skeleton", { height: 40 }), index.h("vviinn-skeleton", { height: 20, halfWidth: true }), index.h("vviinn-skeleton", { height: 40 }))) : (index.h(index.Fragment, null, index.h(Linked, { deeplink: this.deeplink, part: "deeplink", tabindex: 0 }, index.h("span", { class: "title", part: "title" }, this.productTitle)), ((_a = this.brand) === null || _a === void 0 ? void 0 : _a.length) > 0 && (index.h("span", { class: "brand", part: "brand" }, this.brand)), ((_b = this.productType) === null || _b === void 0 ? void 0 : _b.length) > 0 && (index.h("span", { class: "product-type", part: "product-type" }, this.productType)), ((_c = this === null || this === void 0 ? void 0 : this.energyCertifications) !== null && _c !== void 0 ? _c : []).map((energyCertification) => (index.h("vviinn-energy-label", { classIconUrls: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classIconUrls, classDataSheetUrl: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classDataSheetUrl, productType: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.productType, certificationClass: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.certificationClass, classRange: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classRange }))), index.h(Price, { prefix: this.pricePrefix, currency: this.currency, locale: this.locale, price: this.price, basePrice: parseBasePrice(this.basePrice), salePrice: this.salePrice, baseSalePrice: parseBasePrice(this.baseSalePrice), showInContainer: this.addPriceContainer }), renderCustomLabels(this.customLabels.split(","), "content")))), index.h("div", { class: {
|
|
1764
1764
|
"basket-button-container": true,
|
|
1765
1765
|
hidden: !this.isShowBasketButton() || this.showSkeleton(),
|
|
1766
1766
|
}, part: "basket-button-container" }, index.h("button", { class: {
|
|
@@ -1792,7 +1792,7 @@ const VviinnProductCard = class {
|
|
|
1792
1792
|
animationInterval: generateRandomNumber(800, 1400),
|
|
1793
1793
|
productData: this.productData,
|
|
1794
1794
|
});
|
|
1795
|
-
}, "aria-label": i18next.instance.t("a11y.findSimilarProducts") }, index.h("div", null, index.h("slot", { name: "vviinn-update-button-icon" }, index.h(UpdateIcon, { width: 14, height: 14 }))))), index.h("div", { class: "product-card-actions", part: "product-card-actions" }, index.h("slot", { name: "vviinn-product-card-actions" }))), this.showFooterArrow && index.h("div", { class: "footer-arrow" })));
|
|
1795
|
+
}, "aria-label": i18next.instance.t("a11y.findSimilarProducts") }, index.h("div", null, index.h("slot", { name: "vviinn-update-button-icon" }, index.h(UpdateIcon, { width: 14, height: 14 }))))), index.h("div", { class: "product-card-actions", part: "product-card-actions" }, index.h("slot", { name: "vviinn-product-card-actions" })), renderCustomLabels(this.customLabels.split(","), "image")), this.showFooterArrow && index.h("div", { class: "footer-arrow" })));
|
|
1796
1796
|
}
|
|
1797
1797
|
get el() { return index.getElement(this); }
|
|
1798
1798
|
static get watchers() { return {
|
|
@@ -5,7 +5,7 @@ var Rectangle = require('./Rectangle-DfUOGfXS.js');
|
|
|
5
5
|
var i18next = require('./i18next-DkN_8H9H.js');
|
|
6
6
|
require('./store-CrCuJC55.js');
|
|
7
7
|
|
|
8
|
-
const vviinnDetectedObjectCss = ":host{--font-family-base:Inter, system-ui, sans-serif;--font-family-mono:monospace;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-size-display:32px;--font-size-title:24px;--font-size-headline:18px;--font-size-label-large:16px;--font-size-label:14px;--font-size-body-large:16px;--font-size-body:14px;--font-size-caption:12px;--line-height-display:40px;--line-height-title:32px;--line-height-headline:24px;--line-height-label-large:24px;--line-height-label:20px;--line-height-body-large:24px;--line-height-body:20px;--line-height-caption:16px;--letter-spacing-title:0px;--letter-spacing-headline:0px;--letter-spacing-label-large:0px;--letter-spacing-label:0px;--letter-spacing-body-large:0px;--letter-spacing-body:0px;--letter-spacing-caption:0px;--font-weight-400:400;--font-weight-500:500;--font-weight-600:600;--font-weight-700:700;--spacing-none:0px;--spacing-25:2px;--spacing-50:4px;--spacing-75:6px;--spacing-100:8px;--spacing-125:10px;--spacing-150:12px;--spacing-200:16px;--spacing-250:20px;--spacing-300:24px;--spacing-400:32px;--spacing-500:40px;--spacing-600:48px;--border-radius-none:0px;--border-radius-25:2px;--border-radius-50:4px;--border-radius-100:8px;--border-radius-150:12px;--border-radius-200:16px;--border-radius-300:24px;--border-radius-400:32px;--border-radius-full:9999px;--stroke-width-none:0px;--stroke-width-25:1px;--stroke-width-50:2px;--stroke-width-75:3px;--stroke-width-100:4px;--stroke-width-150:6px;--stroke-width-200:8px;--stroke-width-300:12px;--product-card-widget-min-width:135px;--product-card-results-min-width:250px;--image-set-mode-min-width:155px;--source-card-set-mode-max-width:500px;--filter-blur-none:0px;--filter-blur-100:8px;--filter-blur-150:12px;--filter-blur-200:16px;--color-bg-base:#ffffff;--color-bg-inverse:#161616;--color-border-00:#ffffff;--color-border-01:#f4f4f4;--color-border-02:#e0e0e0;--color-border-03:#c6c6c6;--color-border-inverse-00:#161616;--color-border-inverse-01:#393939;--color-field-01:#ffffff;--color-field-02:#f4f4f4;--color-icon-primary:#161616;--color-icon-secondary:#525252;--color-icon-helper:#8d8d8d;--color-icon-on-color:#ffffff;--color-icon-inverse:#ffffff;--color-icon-disabled:#16161640;--color-text-primary:#161616;--color-text-secondary:#707070;--color-text-helper:#8d8d8d;--color-text-placeholder:#a8a8a8;--color-text-on-color:#ffffff;--color-text-inverse:#ffffff;--color-text-disabled:#16161640;--button-bg-color-primary:#000000;--button-bg-color-primary-hover:#161616;--button-bg-color-primary-active:#1e1e1e;--button-bg-color-secondary:#f4f4f4;--button-bg-color-secondary-hover:#e0e0e0;--button-bg-color-secondary-active:#c6c6c6;--button-bg-color-ghost-hover:#f4f4f4;--button-bg-color-ghost-active:#eaeaea;--button-bg-color-frosted:#6f6f6f66;--button-bg-color-frosted-hover:#6f6f6f80;--button-bg-color-frosted-active:#6f6f6f99;--button-bg-color-disabled:#e0e0e0;--button-bg-color-positive:#dcfce7;--surface-bg-color-01:#f4f4f4;--surface-bg-color-01-hover:#eaeaea;--surface-bg-color-01-active:#e0e0e0;--surface-bg-color-02:#ffffff;--surface-bg-color-inverse:#262626;--surface-bg-color-inverse-hover:#303030;--surface-bg-color-inverse-active:#393939;--surface-bg-color-disabled:#e0e0e0;--surface-bg-color-shadow-01:#dddddd;--surface-bg-color-shadow-02:#c6c6c6;--chip-bg-color-primary:#161616;--chip-bg-color-primary-hover:#1e1e1e;--chip-bg-color-primary-active:#262626;--chip-bg-color-subtle:#f4f4f4;--chip-bg-color-subtle-hover:#eaeaea;--chip-bg-color-subtle-active:#e0e0e0;--chip-bg-color-outline-hover:#f4f4f4;--chip-bg-color-outline-active:#eaeaea;--label-bg-color-accent:#ff3944;--sidebar-animation-duration:0.5s;}:host{--button-size:36px;display:block;position:absolute;left:calc(var(--x-position));top:calc(var(--y-position));z-index:2}.detected-object-button{background:transparent;border:none;padding:0;margin:0;font:inherit;color:inherit;position:absolute;left:calc(-1 * var(--button-size) / 2);top:calc(-1 * var(--button-size) / 2);width:var(--button-size);height:var(--button-size);border-radius:50%;cursor:pointer;z-index:3}:host::before,:host::after{content:\"\";cursor:pointer;position:absolute;height:var(--size);width:var(--size);left:calc(-1 * var(--size) / 2);top:calc(-1 * var(--size) / 2)}:host::before{--size:var(--button-size);border-radius:50%;z-index:0;background:rgba(0, 0, 0, 0.16)
|
|
8
|
+
const vviinnDetectedObjectCss = ":host{--font-family-base:Inter, system-ui, sans-serif;--font-family-mono:monospace;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-size-display:32px;--font-size-title:24px;--font-size-headline:18px;--font-size-label-large:16px;--font-size-label:14px;--font-size-body-large:16px;--font-size-body:14px;--font-size-caption:12px;--line-height-display:40px;--line-height-title:32px;--line-height-headline:24px;--line-height-label-large:24px;--line-height-label:20px;--line-height-body-large:24px;--line-height-body:20px;--line-height-caption:16px;--letter-spacing-title:0px;--letter-spacing-headline:0px;--letter-spacing-label-large:0px;--letter-spacing-label:0px;--letter-spacing-body-large:0px;--letter-spacing-body:0px;--letter-spacing-caption:0px;--font-weight-400:400;--font-weight-500:500;--font-weight-600:600;--font-weight-700:700;--spacing-none:0px;--spacing-25:2px;--spacing-50:4px;--spacing-75:6px;--spacing-100:8px;--spacing-125:10px;--spacing-150:12px;--spacing-200:16px;--spacing-250:20px;--spacing-300:24px;--spacing-400:32px;--spacing-500:40px;--spacing-600:48px;--border-radius-none:0px;--border-radius-25:2px;--border-radius-50:4px;--border-radius-100:8px;--border-radius-150:12px;--border-radius-200:16px;--border-radius-300:24px;--border-radius-400:32px;--border-radius-full:9999px;--stroke-width-none:0px;--stroke-width-25:1px;--stroke-width-50:2px;--stroke-width-75:3px;--stroke-width-100:4px;--stroke-width-150:6px;--stroke-width-200:8px;--stroke-width-300:12px;--product-card-widget-min-width:135px;--product-card-results-min-width:250px;--image-set-mode-min-width:155px;--source-card-set-mode-max-width:500px;--filter-blur-none:0px;--filter-blur-100:8px;--filter-blur-150:12px;--filter-blur-200:16px;--color-bg-base:#ffffff;--color-bg-inverse:#161616;--color-border-00:#ffffff;--color-border-01:#f4f4f4;--color-border-02:#e0e0e0;--color-border-03:#c6c6c6;--color-border-inverse-00:#161616;--color-border-inverse-01:#393939;--color-field-01:#ffffff;--color-field-02:#f4f4f4;--color-icon-primary:#161616;--color-icon-secondary:#525252;--color-icon-helper:#8d8d8d;--color-icon-on-color:#ffffff;--color-icon-inverse:#ffffff;--color-icon-disabled:#16161640;--color-text-primary:#161616;--color-text-secondary:#707070;--color-text-helper:#8d8d8d;--color-text-placeholder:#a8a8a8;--color-text-on-color:#ffffff;--color-text-inverse:#ffffff;--color-text-disabled:#16161640;--button-bg-color-primary:#000000;--button-bg-color-primary-hover:#161616;--button-bg-color-primary-active:#1e1e1e;--button-bg-color-secondary:#f4f4f4;--button-bg-color-secondary-hover:#e0e0e0;--button-bg-color-secondary-active:#c6c6c6;--button-bg-color-ghost-hover:#f4f4f4;--button-bg-color-ghost-active:#eaeaea;--button-bg-color-frosted:#6f6f6f66;--button-bg-color-frosted-hover:#6f6f6f80;--button-bg-color-frosted-active:#6f6f6f99;--button-bg-color-disabled:#e0e0e0;--button-bg-color-positive:#dcfce7;--surface-bg-color-01:#f4f4f4;--surface-bg-color-01-hover:#eaeaea;--surface-bg-color-01-active:#e0e0e0;--surface-bg-color-02:#ffffff;--surface-bg-color-inverse:#262626;--surface-bg-color-inverse-hover:#303030;--surface-bg-color-inverse-active:#393939;--surface-bg-color-disabled:#e0e0e0;--surface-bg-color-shadow-01:#dddddd;--surface-bg-color-shadow-02:#c6c6c6;--chip-bg-color-primary:#161616;--chip-bg-color-primary-hover:#1e1e1e;--chip-bg-color-primary-active:#262626;--chip-bg-color-subtle:#f4f4f4;--chip-bg-color-subtle-hover:#eaeaea;--chip-bg-color-subtle-active:#e0e0e0;--chip-bg-color-outline-hover:#f4f4f4;--chip-bg-color-outline-active:#eaeaea;--label-bg-color-accent:#ff3944;--sidebar-animation-duration:0.5s;}:host{--button-size:36px;display:block;position:absolute;left:calc(var(--x-position));top:calc(var(--y-position));z-index:2}.detected-object-button{background:transparent;border:none;padding:0;margin:0;font:inherit;color:inherit;position:absolute;left:calc(-1 * var(--button-size) / 2);top:calc(-1 * var(--button-size) / 2);width:var(--button-size);height:var(--button-size);border-radius:50%;cursor:pointer;z-index:3}:host::before,:host::after{content:\"\";cursor:pointer;position:absolute;height:var(--size);width:var(--size);left:calc(-1 * var(--size) / 2);top:calc(-1 * var(--size) / 2);will-change:transform;transform:translateZ(0)}:host::before{--size:var(--button-size);border-radius:50%;z-index:0;background:rgba(0, 0, 0, 0.16);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:transform 0.07s ease-in-out}:host::after{--size:13px;border-radius:50%;z-index:1;background:white;box-shadow:0px 2px 2px 0px rgba(0, 0, 0, 0.15);transition:transform 0.07s ease-in-out}:host(.active)::before{transform:scale(0.88);background:rgba(0, 0, 0, 0.4)}:host(.active)::after{transform:scale(0.67)}@media (min-width: 768px){:host(:not(.active):hover)::before{transform:scale(1.08);background:rgba(0, 0, 0, 0.32)}}";
|
|
9
9
|
|
|
10
10
|
const VviinnDetectedObject = class {
|
|
11
11
|
constructor(hostRef) {
|
|
@@ -6,7 +6,7 @@ var customizedSlots = require('./customized-slots-BzqsGchC.js');
|
|
|
6
6
|
var i18next = require('./i18next-DkN_8H9H.js');
|
|
7
7
|
var resources = require('./resources-CuHgJnvC.js');
|
|
8
8
|
var Rectangle = require('./Rectangle-DfUOGfXS.js');
|
|
9
|
-
var index$1 = require('./index-
|
|
9
|
+
var index$1 = require('./index-CF8yXqXJ.js');
|
|
10
10
|
var store = require('./store-CrCuJC55.js');
|
|
11
11
|
|
|
12
12
|
const TextSearchIcon = () => (index.h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
@@ -10,7 +10,9 @@ import { getCustomLabels } from "../../recommendation";
|
|
|
10
10
|
import { addIfNotEmpty } from "../../utils/collections/collectionsUtils";
|
|
11
11
|
import { DISCOVERY_WIDGET_IMAGE_RESOLUTION_WIDTH, PRODUCT_CARD_IMAGE_WIDTH, } from "../../widget/constants";
|
|
12
12
|
/**
|
|
13
|
-
* @part carousel-button
|
|
13
|
+
* @part carousel-button - Both carousel navigation buttons (generic part)
|
|
14
|
+
* @part carousel-button-prev - The previous/back navigation button
|
|
15
|
+
* @part carousel-button-next - The next/forward navigation button
|
|
14
16
|
**/
|
|
15
17
|
export class VviinnCarousel {
|
|
16
18
|
constructor() {
|
|
@@ -426,11 +428,11 @@ export class VviinnCarousel {
|
|
|
426
428
|
}
|
|
427
429
|
render() {
|
|
428
430
|
var _a, _b;
|
|
429
|
-
return (h(Host, { key: '
|
|
430
|
-
this.sourceProduct.image.original, entityType: this.sourceProduct.entityType, price: this.sourceProduct.price.actual, salePrice: this.sourceProduct.price.sale, basePrice: (_a = this.sourceProduct.basePrice) === null || _a === void 0 ? void 0 : _a.actual, baseSalePrice: (_b = this.sourceProduct.basePrice) === null || _b === void 0 ? void 0 : _b.sale, addPriceContainer: this.addPriceContainer, imageRatio: 1, imageWidth: 300, imageResolutionWidth: this.imageResolutionWidth, isSourceProduct: true, currency: this.currencySign, pricePrefix: this.pricePrefix, isSetMode: this.isSetMode, locale: this.locale, favoriteShow: this.favoriteShow, responsive: true })), h("div", { key: '
|
|
431
|
+
return (h(Host, { key: '4745c2a317b4ea585c40f8cdd66cfdfb951e4d0b', class: this.getClassMap() }, h("div", { key: '1ec76f7cb3d3b15e67ab9195de4da16fa4212b19', class: Object.assign(Object.assign({}, this.getClassMap()), this.getBodyClassMap()) }, this.isSetMode && this.crossSellingRecommendations.length > 0 && (h("vviinn-product-card", { key: 'c69bf237306841f6216c7a88a1283b79afc688be', class: "set-mode product-card--source", productTitle: this.sourceProduct.title, image: this.sourceProduct.image.thumbnail ||
|
|
432
|
+
this.sourceProduct.image.original, entityType: this.sourceProduct.entityType, price: this.sourceProduct.price.actual, salePrice: this.sourceProduct.price.sale, basePrice: (_a = this.sourceProduct.basePrice) === null || _a === void 0 ? void 0 : _a.actual, baseSalePrice: (_b = this.sourceProduct.basePrice) === null || _b === void 0 ? void 0 : _b.sale, addPriceContainer: this.addPriceContainer, imageRatio: 1, imageWidth: 300, imageResolutionWidth: this.imageResolutionWidth, isSourceProduct: true, currency: this.currencySign, pricePrefix: this.pricePrefix, isSetMode: this.isSetMode, locale: this.locale, favoriteShow: this.favoriteShow, customLabels: getCustomLabels(this.sourceProduct), responsive: true })), h("div", { key: '07e4e63e35d26830a611ab8f2088ced160b207db', class: this.getContentClassMap() }, this.renderRecommendations(), this.showArrowButtons() && (h(Fragment, { key: '9c9c15097bef2d3e016b7399e13900b930d721af' }, h("button", { key: 'e8c76792a669f2812bc2865d7d03cca1557e7d46', class: {
|
|
431
433
|
prev: true,
|
|
432
434
|
"grid-arrows-dynamic": this.gridArrowsDynamic && this.isGridMode,
|
|
433
|
-
}, onClick: () => this.handleCarouselButtonClick("left"), part: "carousel-button", disabled: this.isFirst(), "aria-label": i18next.t("buttons.previous") }, h(ChevronIcon, { key: '
|
|
435
|
+
}, onClick: () => this.handleCarouselButtonClick("left"), part: "carousel-button carousel-button-prev", disabled: this.isFirst(), "aria-label": i18next.t("buttons.previous") }, h(ChevronIcon, { key: 'd0811109ba520c29fbceb752ca77e622148fbfac' })), h("button", { key: '5fb23c730e3f625eb7f9d6c909946a4d8a462887', class: "next", onClick: () => this.handleCarouselButtonClick("right"), part: "carousel-button carousel-button-next", disabled: this.isLast(), "aria-label": i18next.t("buttons.next") }, h(ChevronIcon, { key: '8eb8480b52112324a0fe6fe2c06b2617f9ee5d69' })))))), this.showBullets() && (h("div", { key: 'e984bf6d3139814c2f076e1b5a41ba2e86b8be07', class: "bullets" }, this.renderBullets()))));
|
|
434
436
|
}
|
|
435
437
|
static get is() { return "vviinn-carousel"; }
|
|
436
438
|
static get originalStyleUrls() {
|
package/dist/collection/components/vviinn-cropper/vviinn-detected-object/vviinn-detected-object.css
CHANGED
|
@@ -255,6 +255,8 @@
|
|
|
255
255
|
width: var(--size);
|
|
256
256
|
left: calc(-1 * var(--size) / 2);
|
|
257
257
|
top: calc(-1 * var(--size) / 2);
|
|
258
|
+
will-change: transform;
|
|
259
|
+
transform: translateZ(0);
|
|
258
260
|
}
|
|
259
261
|
|
|
260
262
|
:host::before {
|
|
@@ -262,8 +264,8 @@
|
|
|
262
264
|
border-radius: 50%;
|
|
263
265
|
z-index: 0;
|
|
264
266
|
background: rgba(0, 0, 0, 0.16);
|
|
267
|
+
backdrop-filter: blur(4px);
|
|
265
268
|
-webkit-backdrop-filter: blur(4px);
|
|
266
|
-
backdrop-filter: blur(4px);
|
|
267
269
|
transition: transform 0.07s ease-in-out;
|
|
268
270
|
}
|
|
269
271
|
|
|
@@ -29,8 +29,8 @@ export const parseBasePrice = (basePrice) => {
|
|
|
29
29
|
}
|
|
30
30
|
return basePrice;
|
|
31
31
|
};
|
|
32
|
-
export const renderCustomLabels = (labels) => {
|
|
33
|
-
const renderLabel = (label, index) => label ? (h("span", { part: `custom-label-${index}`, class: "custom-label" }, h("slot", { name: `vviinn-custom-label-${index}` }, label))) : null;
|
|
32
|
+
export const renderCustomLabels = (labels, location) => {
|
|
33
|
+
const renderLabel = (label, index) => label ? (h("span", { part: `custom-label-${index} custom-label-${location}`, class: "custom-label" }, h("slot", { name: `vviinn-custom-label-${index}` }, label))) : null;
|
|
34
34
|
return (h(Fragment, null, labels.map((label, index) => renderLabel(label, index))));
|
|
35
35
|
};
|
|
36
36
|
export const Price = (props) => {
|
|
@@ -291,7 +291,7 @@ export class VviinnProductCard {
|
|
|
291
291
|
animated: this.isTransitioning,
|
|
292
292
|
"product-card--source": this.isSourceProduct,
|
|
293
293
|
"set-mode": this.isSetMode,
|
|
294
|
-
}, exportparts: productCardParts, "data-id": this.productId }, h("div", { class: "content-container", part: "content-container" }, this.showSkeleton() ? (h(Fragment, null, h("vviinn-skeleton", { height: 40 }), h("vviinn-skeleton", { height: 20, halfWidth: true }), h("vviinn-skeleton", { height: 40 }))) : (h(Fragment, null, h(Linked, { deeplink: this.deeplink, part: "deeplink", tabindex: 0 }, h("span", { class: "title", part: "title" }, this.productTitle)), ((_a = this.brand) === null || _a === void 0 ? void 0 : _a.length) > 0 && (h("span", { class: "brand", part: "brand" }, this.brand)), ((_b = this.productType) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h("span", { class: "product-type", part: "product-type" }, this.productType)), ((_c = this === null || this === void 0 ? void 0 : this.energyCertifications) !== null && _c !== void 0 ? _c : []).map((energyCertification) => (h("vviinn-energy-label", { classIconUrls: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classIconUrls, classDataSheetUrl: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classDataSheetUrl, productType: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.productType, certificationClass: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.certificationClass, classRange: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classRange }))), h(Price, { prefix: this.pricePrefix, currency: this.currency, locale: this.locale, price: this.price, basePrice: parseBasePrice(this.basePrice), salePrice: this.salePrice, baseSalePrice: parseBasePrice(this.baseSalePrice), showInContainer: this.addPriceContainer }), renderCustomLabels(this.customLabels.split(","))))), h("div", { class: {
|
|
294
|
+
}, exportparts: productCardParts, "data-id": this.productId }, h("div", { class: "content-container", part: "content-container" }, this.showSkeleton() ? (h(Fragment, null, h("vviinn-skeleton", { height: 40 }), h("vviinn-skeleton", { height: 20, halfWidth: true }), h("vviinn-skeleton", { height: 40 }))) : (h(Fragment, null, h(Linked, { deeplink: this.deeplink, part: "deeplink", tabindex: 0 }, h("span", { class: "title", part: "title" }, this.productTitle)), ((_a = this.brand) === null || _a === void 0 ? void 0 : _a.length) > 0 && (h("span", { class: "brand", part: "brand" }, this.brand)), ((_b = this.productType) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h("span", { class: "product-type", part: "product-type" }, this.productType)), ((_c = this === null || this === void 0 ? void 0 : this.energyCertifications) !== null && _c !== void 0 ? _c : []).map((energyCertification) => (h("vviinn-energy-label", { classIconUrls: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classIconUrls, classDataSheetUrl: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classDataSheetUrl, productType: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.productType, certificationClass: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.certificationClass, classRange: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classRange }))), h(Price, { prefix: this.pricePrefix, currency: this.currency, locale: this.locale, price: this.price, basePrice: parseBasePrice(this.basePrice), salePrice: this.salePrice, baseSalePrice: parseBasePrice(this.baseSalePrice), showInContainer: this.addPriceContainer }), renderCustomLabels(this.customLabels.split(","), "content")))), h("div", { class: {
|
|
295
295
|
"basket-button-container": true,
|
|
296
296
|
hidden: !this.isShowBasketButton() || this.showSkeleton(),
|
|
297
297
|
}, part: "basket-button-container" }, h("button", { class: {
|
|
@@ -323,7 +323,7 @@ export class VviinnProductCard {
|
|
|
323
323
|
animationInterval: generateRandomNumber(800, 1400),
|
|
324
324
|
productData: this.productData,
|
|
325
325
|
});
|
|
326
|
-
}, "aria-label": i18next.t("a11y.findSimilarProducts") }, h("div", null, h("slot", { name: "vviinn-update-button-icon" }, h(UpdateIcon, { width: 14, height: 14 }))))), h("div", { class: "product-card-actions", part: "product-card-actions" }, h("slot", { name: "vviinn-product-card-actions" }))), this.showFooterArrow && h("div", { class: "footer-arrow" })));
|
|
326
|
+
}, "aria-label": i18next.t("a11y.findSimilarProducts") }, h("div", null, h("slot", { name: "vviinn-update-button-icon" }, h(UpdateIcon, { width: 14, height: 14 }))))), h("div", { class: "product-card-actions", part: "product-card-actions" }, h("slot", { name: "vviinn-product-card-actions" })), renderCustomLabels(this.customLabels.split(","), "image")), this.showFooterArrow && h("div", { class: "footer-arrow" })));
|
|
327
327
|
}
|
|
328
328
|
static get is() { return "vviinn-product-card"; }
|
|
329
329
|
static get encapsulation() { return "shadow"; }
|
|
@@ -27,7 +27,9 @@ import { addEventListenersWithSignal } from "../../dom";
|
|
|
27
27
|
* @part price-regular - Block for a price if no sale price is presented.
|
|
28
28
|
* @part price-sale - Block for sale price. Rendered only if the sale price is presented.
|
|
29
29
|
* @part price-prefix - Block rendered before each price element (for ex. "from").
|
|
30
|
-
* @part carousel-button -
|
|
30
|
+
* @part carousel-button - Both carousel navigation buttons (generic part).
|
|
31
|
+
* @part carousel-button-prev - The previous/back carousel navigation button.
|
|
32
|
+
* @part carousel-button-next - The next/forward carousel navigation button.
|
|
31
33
|
* @part recommendations-results - For internal usage only!
|
|
32
34
|
* @part recommendations-title - Title of the recommendations grid.
|
|
33
35
|
* @part recommendations-subtitle - Subtitle of the recommendations grid.
|
|
@@ -190,7 +192,7 @@ export class VviinnVprButton {
|
|
|
190
192
|
}
|
|
191
193
|
}
|
|
192
194
|
render() {
|
|
193
|
-
return (h(Host, { key: '
|
|
195
|
+
return (h(Host, { key: 'bf6e6f058b0fcb133df713d43d9603e50783dd7d', role: "button", tabindex: "0", "aria-label": this.getAriaLabel(), onClick: this.handleButtonClick, onKeyDown: this.handleKeyDown }, h("vviinn-button", { key: '829e3a82cc5345750696eddadfd307813b02464b', addStyle: this.addStyle, part: "vviinn-button" }, h("slot", { key: 'ad46d98bc63a6a4b5555151d8c366216d82299a8' }, this.campaignType === "VCS" ? (h(CrossSellingIcon, { width: this.iconSideSize, height: this.iconSideSize })) : (h(SimilarProductsIcon, { width: this.iconSideSize, height: this.iconSideSize }))))));
|
|
194
196
|
}
|
|
195
197
|
handleClick() {
|
|
196
198
|
const sidebar = document.createElement("vviinn-recommendations-sidebar");
|
|
@@ -27,6 +27,8 @@ export const searchBarParts = makeExportPartsString([
|
|
|
27
27
|
export const carouselParts = makeExportPartsString([
|
|
28
28
|
"items-group",
|
|
29
29
|
"carousel-button",
|
|
30
|
+
"carousel-button-prev",
|
|
31
|
+
"carousel-button-next",
|
|
30
32
|
"recommendations-results",
|
|
31
33
|
]);
|
|
32
34
|
export const modalParts = makeExportPartsString([
|
|
@@ -97,6 +97,8 @@ const customLabelPartsList = [
|
|
|
97
97
|
"custom-label-2",
|
|
98
98
|
"custom-label-3",
|
|
99
99
|
"custom-label-4",
|
|
100
|
+
"custom-label-content",
|
|
101
|
+
"custom-label-image",
|
|
100
102
|
];
|
|
101
103
|
const pricePartsList = [
|
|
102
104
|
"price-container",
|
|
@@ -164,6 +166,8 @@ const searchBarParts = makeExportPartsString([
|
|
|
164
166
|
const carouselParts = makeExportPartsString([
|
|
165
167
|
"items-group",
|
|
166
168
|
"carousel-button",
|
|
169
|
+
"carousel-button-prev",
|
|
170
|
+
"carousel-button-next",
|
|
167
171
|
"recommendations-results",
|
|
168
172
|
]);
|
|
169
173
|
const modalParts = makeExportPartsString([
|
|
@@ -2,9 +2,9 @@ import { h, r as registerInstance, H as Host, c as createEvent, g as getElement,
|
|
|
2
2
|
import { i as instance } from './i18next-C7V-mvcq.js';
|
|
3
3
|
import { g as getAcceptableFileFormatsForDisplay, a as addIfNotEmpty, b as searchState, u as useSearchStore } from './search.store-BtRgJeHn.js';
|
|
4
4
|
import { s as slotChangeListener } from './customized-slots-ZvDCa2Eu.js';
|
|
5
|
-
import { c as campaignTypeNames, v as version } from './package-
|
|
5
|
+
import { c as campaignTypeNames, v as version } from './package-DiWvyInL.js';
|
|
6
6
|
import { S as SecondaryActionIcon } from './SecondaryActionIcon-Co8n0aty.js';
|
|
7
|
-
import { m as modalParts, c as carouselParts, p as productCardParts } from './index-
|
|
7
|
+
import { m as modalParts, c as carouselParts, p as productCardParts } from './index-DyZfzSpJ.js';
|
|
8
8
|
import { a as SIDEBAR_ANIMATION_DURATION, P as PRODUCT_CARD_IMAGE_WIDTH, D as DISCOVERY_WIDGET_IMAGE_RESOLUTION_WIDTH, L as LOADING_CLASS_DELAY, b as addEventListenersWithSignal } from './index-DlCdKcyY.js';
|
|
9
9
|
import { i as isClickedInRectBound } from './Rectangle-DM-Jf7YJ.js';
|
|
10
10
|
import './store-CMhsm-nf.js';
|
|
@@ -512,7 +512,7 @@ const VviinnVprButton = class {
|
|
|
512
512
|
}
|
|
513
513
|
}
|
|
514
514
|
render() {
|
|
515
|
-
return (h(Host, { key: '
|
|
515
|
+
return (h(Host, { key: 'bf6e6f058b0fcb133df713d43d9603e50783dd7d', role: "button", tabindex: "0", "aria-label": this.getAriaLabel(), onClick: this.handleButtonClick, onKeyDown: this.handleKeyDown }, h("vviinn-button", { key: '829e3a82cc5345750696eddadfd307813b02464b', addStyle: this.addStyle, part: "vviinn-button" }, h("slot", { key: 'ad46d98bc63a6a4b5555151d8c366216d82299a8' }, this.campaignType === "VCS" ? (h(CrossSellingIcon, { width: this.iconSideSize, height: this.iconSideSize })) : (h(SimilarProductsIcon, { width: this.iconSideSize, height: this.iconSideSize }))))));
|
|
516
516
|
}
|
|
517
517
|
handleClick() {
|
|
518
518
|
const sidebar = document.createElement("vviinn-recommendations-sidebar");
|
|
@@ -7,9 +7,9 @@ import { i as instance } from './i18next-C7V-mvcq.js';
|
|
|
7
7
|
import { M as MIN_SEARCH_AREA_SIZE, S as SUPPORTED_ASPECT_RATIO, a as MIN_IMAGE_SIDE_FOR_CROPPER, C as Cropper, c as cropperOptions, g as getCropBoxData, i as isCropBoxChangeMinimal, D as DEFAULT_IMAGE_SIZE } from './cropperUtils-BpgcCYJQ.js';
|
|
8
8
|
import { u as updateGlobalState, t as trackEvent, g as globalState } from './store-CMhsm-nf.js';
|
|
9
9
|
import { b as addEventListenersWithSignal, R as RESULTS_WIDGET_IMAGE_RESOLUTION_WIDTH, f as findSlotElements, g as getSlotNames, c as SCROLL_TO_DISCOVERY_DELAY, s as setElementInteractivity, S as SEARCH_WIDGET_IMAGE_RESOLUTION_WIDTH } from './index-DlCdKcyY.js';
|
|
10
|
-
import { v as version, c as campaignTypeNames } from './package-
|
|
10
|
+
import { v as version, c as campaignTypeNames } from './package-DiWvyInL.js';
|
|
11
11
|
import { r as resources } from './resources-Cvip80t1.js';
|
|
12
|
-
import { a as productCardsGridPart, p as productCardParts, l as listCardParts, b as contentCardParts, d as selectedFiltersParts, e as suggestionsParts, f as filtersParts, g as extendedFiltersParts, m as modalParts, s as searchBarParts, h as searchWidgetFilterParts, i as searchWidgetButtonParts } from './index-
|
|
12
|
+
import { a as productCardsGridPart, p as productCardParts, l as listCardParts, b as contentCardParts, d as selectedFiltersParts, e as suggestionsParts, f as filtersParts, g as extendedFiltersParts, m as modalParts, s as searchBarParts, h as searchWidgetFilterParts, i as searchWidgetButtonParts } from './index-DyZfzSpJ.js';
|
|
13
13
|
import { D as DEFAULT_EXAMPLE_IMAGE } from './constants-DOMXsA9W.js';
|
|
14
14
|
|
|
15
15
|
const CameraActionIcon = () => (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
|
|
@@ -2,11 +2,11 @@ import { h, r as registerInstance, c as createEvent, F as Fragment, H as Host, g
|
|
|
2
2
|
import { a as addIfNotEmpty, _ as _ArrayExports, u as useSearchStore } from './search.store-BtRgJeHn.js';
|
|
3
3
|
import { W as has, X as tuple, _ as _functionExports, e as requireSemigroup, O as OptionExports, v as pipe$1, N as chainW, Y as makeRequest, L as fromEither, Z as getApiPath, $ as createInitPostRequest, a0 as Apply, a1 as TaskEitherExports, E as EitherExports } from './Rectangle-DM-Jf7YJ.js';
|
|
4
4
|
import { i as instance } from './i18next-C7V-mvcq.js';
|
|
5
|
-
import { c as campaignTypeNames, f as fromString, a as fold, v as version } from './package-
|
|
5
|
+
import { c as campaignTypeNames, f as fromString, a as fold, v as version } from './package-DiWvyInL.js';
|
|
6
6
|
import { S as SET_MODE_IMAGE_WIDTH_CSS_VAR, C as CONTENT_GROUP_CSS_CLASS, o as CAROUSEL_IMAGE_WIDTH_CSS_VAR, p as CAROUSEL_CONTENT_WIDTH_CSS_VAR, R as RESULTS_CALCULATED_COLUMNS_CSS_VAR, D as DEFAULT_COLUMNS_NUMBER, h as getCustomLabels, q as SCROLL_POSITION_TOLERANCE, r as triggerResetFilters, t as triggerFilter, k as announceToScreenReader, i as getIntervalLabel, u as isPriceFilter, l as isSubFilterActive, m as RenderFilterButton, s as syncRequestFilters, P as PlusIcon, v as v4, c as createWidgetEvent, e as createResultEventByType, b as createAddToBasketEvent, d as createAddToWishlistEvent, f as createProductEventByType, w as getRecommendationsBody } from './index-E1xSXX9S.js';
|
|
7
7
|
import { P as PRODUCT_CARD_IMAGE_WIDTH, D as DISCOVERY_WIDGET_IMAGE_RESOLUTION_WIDTH, b as addEventListenersWithSignal, i as isElementInSelector, d as PRODUCT_CARD_IMAGE_RESOLUTION_WIDTH } from './index-DlCdKcyY.js';
|
|
8
8
|
import { s as slotChangeListener, S as SlotSkeleton } from './customized-slots-ZvDCa2Eu.js';
|
|
9
|
-
import { j as energyLabelParts, g as extendedFiltersParts, f as filtersParts, k as imageParts, b as contentCardParts, l as listCardParts, p as productCardParts, n as priceRangeParts } from './index-
|
|
9
|
+
import { j as energyLabelParts, g as extendedFiltersParts, f as filtersParts, k as imageParts, b as contentCardParts, l as listCardParts, p as productCardParts, n as priceRangeParts } from './index-DyZfzSpJ.js';
|
|
10
10
|
import { r as resources } from './resources-Cvip80t1.js';
|
|
11
11
|
import { g as globalState, t as trackEvent, u as updateGlobalState } from './store-CMhsm-nf.js';
|
|
12
12
|
import { s as setupIntersectionObserver } from './intersectionObserver-DHxfjh-K.js';
|
|
@@ -550,11 +550,11 @@ const VviinnCarousel = class {
|
|
|
550
550
|
}
|
|
551
551
|
render() {
|
|
552
552
|
var _a, _b;
|
|
553
|
-
return (h(Host, { key: '
|
|
554
|
-
this.sourceProduct.image.original, entityType: this.sourceProduct.entityType, price: this.sourceProduct.price.actual, salePrice: this.sourceProduct.price.sale, basePrice: (_a = this.sourceProduct.basePrice) === null || _a === void 0 ? void 0 : _a.actual, baseSalePrice: (_b = this.sourceProduct.basePrice) === null || _b === void 0 ? void 0 : _b.sale, addPriceContainer: this.addPriceContainer, imageRatio: 1, imageWidth: 300, imageResolutionWidth: this.imageResolutionWidth, isSourceProduct: true, currency: this.currencySign, pricePrefix: this.pricePrefix, isSetMode: this.isSetMode, locale: this.locale, favoriteShow: this.favoriteShow, responsive: true })), h("div", { key: '
|
|
553
|
+
return (h(Host, { key: '4745c2a317b4ea585c40f8cdd66cfdfb951e4d0b', class: this.getClassMap() }, h("div", { key: '1ec76f7cb3d3b15e67ab9195de4da16fa4212b19', class: Object.assign(Object.assign({}, this.getClassMap()), this.getBodyClassMap()) }, this.isSetMode && this.crossSellingRecommendations.length > 0 && (h("vviinn-product-card", { key: 'c69bf237306841f6216c7a88a1283b79afc688be', class: "set-mode product-card--source", productTitle: this.sourceProduct.title, image: this.sourceProduct.image.thumbnail ||
|
|
554
|
+
this.sourceProduct.image.original, entityType: this.sourceProduct.entityType, price: this.sourceProduct.price.actual, salePrice: this.sourceProduct.price.sale, basePrice: (_a = this.sourceProduct.basePrice) === null || _a === void 0 ? void 0 : _a.actual, baseSalePrice: (_b = this.sourceProduct.basePrice) === null || _b === void 0 ? void 0 : _b.sale, addPriceContainer: this.addPriceContainer, imageRatio: 1, imageWidth: 300, imageResolutionWidth: this.imageResolutionWidth, isSourceProduct: true, currency: this.currencySign, pricePrefix: this.pricePrefix, isSetMode: this.isSetMode, locale: this.locale, favoriteShow: this.favoriteShow, customLabels: getCustomLabels(this.sourceProduct), responsive: true })), h("div", { key: '07e4e63e35d26830a611ab8f2088ced160b207db', class: this.getContentClassMap() }, this.renderRecommendations(), this.showArrowButtons() && (h(Fragment, { key: '9c9c15097bef2d3e016b7399e13900b930d721af' }, h("button", { key: 'e8c76792a669f2812bc2865d7d03cca1557e7d46', class: {
|
|
555
555
|
prev: true,
|
|
556
556
|
"grid-arrows-dynamic": this.gridArrowsDynamic && this.isGridMode,
|
|
557
|
-
}, onClick: () => this.handleCarouselButtonClick("left"), part: "carousel-button", disabled: this.isFirst(), "aria-label": instance.t("buttons.previous") }, h(ChevronIcon, { key: '
|
|
557
|
+
}, onClick: () => this.handleCarouselButtonClick("left"), part: "carousel-button carousel-button-prev", disabled: this.isFirst(), "aria-label": instance.t("buttons.previous") }, h(ChevronIcon, { key: 'd0811109ba520c29fbceb752ca77e622148fbfac' })), h("button", { key: '5fb23c730e3f625eb7f9d6c909946a4d8a462887', class: "next", onClick: () => this.handleCarouselButtonClick("right"), part: "carousel-button carousel-button-next", disabled: this.isLast(), "aria-label": instance.t("buttons.next") }, h(ChevronIcon, { key: '8eb8480b52112324a0fe6fe2c06b2617f9ee5d69' })))))), this.showBullets() && (h("div", { key: 'e984bf6d3139814c2f076e1b5a41ba2e86b8be07', class: "bullets" }, this.renderBullets()))));
|
|
558
558
|
}
|
|
559
559
|
get el() { return getElement(this); }
|
|
560
560
|
static get watchers() { return {
|
|
@@ -1502,8 +1502,8 @@ const parseBasePrice = (basePrice) => {
|
|
|
1502
1502
|
}
|
|
1503
1503
|
return basePrice;
|
|
1504
1504
|
};
|
|
1505
|
-
const renderCustomLabels = (labels) => {
|
|
1506
|
-
const renderLabel = (label, index) => label ? (h("span", { part: `custom-label-${index}`, class: "custom-label" },
|
|
1505
|
+
const renderCustomLabels = (labels, location) => {
|
|
1506
|
+
const renderLabel = (label, index) => label ? (h("span", { part: `custom-label-${index} custom-label-${location}`, class: "custom-label" },
|
|
1507
1507
|
h("slot", { name: `vviinn-custom-label-${index}` }, label))) : null;
|
|
1508
1508
|
return (h(Fragment, null, labels.map((label, index) => renderLabel(label, index))));
|
|
1509
1509
|
};
|
|
@@ -1758,7 +1758,7 @@ const VviinnProductCard = class {
|
|
|
1758
1758
|
animated: this.isTransitioning,
|
|
1759
1759
|
"product-card--source": this.isSourceProduct,
|
|
1760
1760
|
"set-mode": this.isSetMode,
|
|
1761
|
-
}, exportparts: productCardParts, "data-id": this.productId }, h("div", { class: "content-container", part: "content-container" }, this.showSkeleton() ? (h(Fragment, null, h("vviinn-skeleton", { height: 40 }), h("vviinn-skeleton", { height: 20, halfWidth: true }), h("vviinn-skeleton", { height: 40 }))) : (h(Fragment, null, h(Linked, { deeplink: this.deeplink, part: "deeplink", tabindex: 0 }, h("span", { class: "title", part: "title" }, this.productTitle)), ((_a = this.brand) === null || _a === void 0 ? void 0 : _a.length) > 0 && (h("span", { class: "brand", part: "brand" }, this.brand)), ((_b = this.productType) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h("span", { class: "product-type", part: "product-type" }, this.productType)), ((_c = this === null || this === void 0 ? void 0 : this.energyCertifications) !== null && _c !== void 0 ? _c : []).map((energyCertification) => (h("vviinn-energy-label", { classIconUrls: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classIconUrls, classDataSheetUrl: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classDataSheetUrl, productType: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.productType, certificationClass: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.certificationClass, classRange: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classRange }))), h(Price, { prefix: this.pricePrefix, currency: this.currency, locale: this.locale, price: this.price, basePrice: parseBasePrice(this.basePrice), salePrice: this.salePrice, baseSalePrice: parseBasePrice(this.baseSalePrice), showInContainer: this.addPriceContainer }), renderCustomLabels(this.customLabels.split(","))))), h("div", { class: {
|
|
1761
|
+
}, exportparts: productCardParts, "data-id": this.productId }, h("div", { class: "content-container", part: "content-container" }, this.showSkeleton() ? (h(Fragment, null, h("vviinn-skeleton", { height: 40 }), h("vviinn-skeleton", { height: 20, halfWidth: true }), h("vviinn-skeleton", { height: 40 }))) : (h(Fragment, null, h(Linked, { deeplink: this.deeplink, part: "deeplink", tabindex: 0 }, h("span", { class: "title", part: "title" }, this.productTitle)), ((_a = this.brand) === null || _a === void 0 ? void 0 : _a.length) > 0 && (h("span", { class: "brand", part: "brand" }, this.brand)), ((_b = this.productType) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h("span", { class: "product-type", part: "product-type" }, this.productType)), ((_c = this === null || this === void 0 ? void 0 : this.energyCertifications) !== null && _c !== void 0 ? _c : []).map((energyCertification) => (h("vviinn-energy-label", { classIconUrls: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classIconUrls, classDataSheetUrl: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classDataSheetUrl, productType: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.productType, certificationClass: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.certificationClass, classRange: energyCertification === null || energyCertification === void 0 ? void 0 : energyCertification.classRange }))), h(Price, { prefix: this.pricePrefix, currency: this.currency, locale: this.locale, price: this.price, basePrice: parseBasePrice(this.basePrice), salePrice: this.salePrice, baseSalePrice: parseBasePrice(this.baseSalePrice), showInContainer: this.addPriceContainer }), renderCustomLabels(this.customLabels.split(","), "content")))), h("div", { class: {
|
|
1762
1762
|
"basket-button-container": true,
|
|
1763
1763
|
hidden: !this.isShowBasketButton() || this.showSkeleton(),
|
|
1764
1764
|
}, part: "basket-button-container" }, h("button", { class: {
|
|
@@ -1790,7 +1790,7 @@ const VviinnProductCard = class {
|
|
|
1790
1790
|
animationInterval: generateRandomNumber(800, 1400),
|
|
1791
1791
|
productData: this.productData,
|
|
1792
1792
|
});
|
|
1793
|
-
}, "aria-label": instance.t("a11y.findSimilarProducts") }, h("div", null, h("slot", { name: "vviinn-update-button-icon" }, h(UpdateIcon, { width: 14, height: 14 }))))), h("div", { class: "product-card-actions", part: "product-card-actions" }, h("slot", { name: "vviinn-product-card-actions" }))), this.showFooterArrow && h("div", { class: "footer-arrow" })));
|
|
1793
|
+
}, "aria-label": instance.t("a11y.findSimilarProducts") }, h("div", null, h("slot", { name: "vviinn-update-button-icon" }, h(UpdateIcon, { width: 14, height: 14 }))))), h("div", { class: "product-card-actions", part: "product-card-actions" }, h("slot", { name: "vviinn-product-card-actions" })), renderCustomLabels(this.customLabels.split(","), "image")), this.showFooterArrow && h("div", { class: "footer-arrow" })));
|
|
1794
1794
|
}
|
|
1795
1795
|
get el() { return getElement(this); }
|
|
1796
1796
|
static get watchers() { return {
|
|
@@ -3,7 +3,7 @@ import { _ as _functionExports, O as OptionExports, s as scaleWithSized, c as ce
|
|
|
3
3
|
import { i as instance } from './i18next-C7V-mvcq.js';
|
|
4
4
|
import './store-CMhsm-nf.js';
|
|
5
5
|
|
|
6
|
-
const vviinnDetectedObjectCss = ":host{--font-family-base:Inter, system-ui, sans-serif;--font-family-mono:monospace;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-size-display:32px;--font-size-title:24px;--font-size-headline:18px;--font-size-label-large:16px;--font-size-label:14px;--font-size-body-large:16px;--font-size-body:14px;--font-size-caption:12px;--line-height-display:40px;--line-height-title:32px;--line-height-headline:24px;--line-height-label-large:24px;--line-height-label:20px;--line-height-body-large:24px;--line-height-body:20px;--line-height-caption:16px;--letter-spacing-title:0px;--letter-spacing-headline:0px;--letter-spacing-label-large:0px;--letter-spacing-label:0px;--letter-spacing-body-large:0px;--letter-spacing-body:0px;--letter-spacing-caption:0px;--font-weight-400:400;--font-weight-500:500;--font-weight-600:600;--font-weight-700:700;--spacing-none:0px;--spacing-25:2px;--spacing-50:4px;--spacing-75:6px;--spacing-100:8px;--spacing-125:10px;--spacing-150:12px;--spacing-200:16px;--spacing-250:20px;--spacing-300:24px;--spacing-400:32px;--spacing-500:40px;--spacing-600:48px;--border-radius-none:0px;--border-radius-25:2px;--border-radius-50:4px;--border-radius-100:8px;--border-radius-150:12px;--border-radius-200:16px;--border-radius-300:24px;--border-radius-400:32px;--border-radius-full:9999px;--stroke-width-none:0px;--stroke-width-25:1px;--stroke-width-50:2px;--stroke-width-75:3px;--stroke-width-100:4px;--stroke-width-150:6px;--stroke-width-200:8px;--stroke-width-300:12px;--product-card-widget-min-width:135px;--product-card-results-min-width:250px;--image-set-mode-min-width:155px;--source-card-set-mode-max-width:500px;--filter-blur-none:0px;--filter-blur-100:8px;--filter-blur-150:12px;--filter-blur-200:16px;--color-bg-base:#ffffff;--color-bg-inverse:#161616;--color-border-00:#ffffff;--color-border-01:#f4f4f4;--color-border-02:#e0e0e0;--color-border-03:#c6c6c6;--color-border-inverse-00:#161616;--color-border-inverse-01:#393939;--color-field-01:#ffffff;--color-field-02:#f4f4f4;--color-icon-primary:#161616;--color-icon-secondary:#525252;--color-icon-helper:#8d8d8d;--color-icon-on-color:#ffffff;--color-icon-inverse:#ffffff;--color-icon-disabled:#16161640;--color-text-primary:#161616;--color-text-secondary:#707070;--color-text-helper:#8d8d8d;--color-text-placeholder:#a8a8a8;--color-text-on-color:#ffffff;--color-text-inverse:#ffffff;--color-text-disabled:#16161640;--button-bg-color-primary:#000000;--button-bg-color-primary-hover:#161616;--button-bg-color-primary-active:#1e1e1e;--button-bg-color-secondary:#f4f4f4;--button-bg-color-secondary-hover:#e0e0e0;--button-bg-color-secondary-active:#c6c6c6;--button-bg-color-ghost-hover:#f4f4f4;--button-bg-color-ghost-active:#eaeaea;--button-bg-color-frosted:#6f6f6f66;--button-bg-color-frosted-hover:#6f6f6f80;--button-bg-color-frosted-active:#6f6f6f99;--button-bg-color-disabled:#e0e0e0;--button-bg-color-positive:#dcfce7;--surface-bg-color-01:#f4f4f4;--surface-bg-color-01-hover:#eaeaea;--surface-bg-color-01-active:#e0e0e0;--surface-bg-color-02:#ffffff;--surface-bg-color-inverse:#262626;--surface-bg-color-inverse-hover:#303030;--surface-bg-color-inverse-active:#393939;--surface-bg-color-disabled:#e0e0e0;--surface-bg-color-shadow-01:#dddddd;--surface-bg-color-shadow-02:#c6c6c6;--chip-bg-color-primary:#161616;--chip-bg-color-primary-hover:#1e1e1e;--chip-bg-color-primary-active:#262626;--chip-bg-color-subtle:#f4f4f4;--chip-bg-color-subtle-hover:#eaeaea;--chip-bg-color-subtle-active:#e0e0e0;--chip-bg-color-outline-hover:#f4f4f4;--chip-bg-color-outline-active:#eaeaea;--label-bg-color-accent:#ff3944;--sidebar-animation-duration:0.5s;}:host{--button-size:36px;display:block;position:absolute;left:calc(var(--x-position));top:calc(var(--y-position));z-index:2}.detected-object-button{background:transparent;border:none;padding:0;margin:0;font:inherit;color:inherit;position:absolute;left:calc(-1 * var(--button-size) / 2);top:calc(-1 * var(--button-size) / 2);width:var(--button-size);height:var(--button-size);border-radius:50%;cursor:pointer;z-index:3}:host::before,:host::after{content:\"\";cursor:pointer;position:absolute;height:var(--size);width:var(--size);left:calc(-1 * var(--size) / 2);top:calc(-1 * var(--size) / 2)}:host::before{--size:var(--button-size);border-radius:50%;z-index:0;background:rgba(0, 0, 0, 0.16)
|
|
6
|
+
const vviinnDetectedObjectCss = ":host{--font-family-base:Inter, system-ui, sans-serif;--font-family-mono:monospace;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-size-display:32px;--font-size-title:24px;--font-size-headline:18px;--font-size-label-large:16px;--font-size-label:14px;--font-size-body-large:16px;--font-size-body:14px;--font-size-caption:12px;--line-height-display:40px;--line-height-title:32px;--line-height-headline:24px;--line-height-label-large:24px;--line-height-label:20px;--line-height-body-large:24px;--line-height-body:20px;--line-height-caption:16px;--letter-spacing-title:0px;--letter-spacing-headline:0px;--letter-spacing-label-large:0px;--letter-spacing-label:0px;--letter-spacing-body-large:0px;--letter-spacing-body:0px;--letter-spacing-caption:0px;--font-weight-400:400;--font-weight-500:500;--font-weight-600:600;--font-weight-700:700;--spacing-none:0px;--spacing-25:2px;--spacing-50:4px;--spacing-75:6px;--spacing-100:8px;--spacing-125:10px;--spacing-150:12px;--spacing-200:16px;--spacing-250:20px;--spacing-300:24px;--spacing-400:32px;--spacing-500:40px;--spacing-600:48px;--border-radius-none:0px;--border-radius-25:2px;--border-radius-50:4px;--border-radius-100:8px;--border-radius-150:12px;--border-radius-200:16px;--border-radius-300:24px;--border-radius-400:32px;--border-radius-full:9999px;--stroke-width-none:0px;--stroke-width-25:1px;--stroke-width-50:2px;--stroke-width-75:3px;--stroke-width-100:4px;--stroke-width-150:6px;--stroke-width-200:8px;--stroke-width-300:12px;--product-card-widget-min-width:135px;--product-card-results-min-width:250px;--image-set-mode-min-width:155px;--source-card-set-mode-max-width:500px;--filter-blur-none:0px;--filter-blur-100:8px;--filter-blur-150:12px;--filter-blur-200:16px;--color-bg-base:#ffffff;--color-bg-inverse:#161616;--color-border-00:#ffffff;--color-border-01:#f4f4f4;--color-border-02:#e0e0e0;--color-border-03:#c6c6c6;--color-border-inverse-00:#161616;--color-border-inverse-01:#393939;--color-field-01:#ffffff;--color-field-02:#f4f4f4;--color-icon-primary:#161616;--color-icon-secondary:#525252;--color-icon-helper:#8d8d8d;--color-icon-on-color:#ffffff;--color-icon-inverse:#ffffff;--color-icon-disabled:#16161640;--color-text-primary:#161616;--color-text-secondary:#707070;--color-text-helper:#8d8d8d;--color-text-placeholder:#a8a8a8;--color-text-on-color:#ffffff;--color-text-inverse:#ffffff;--color-text-disabled:#16161640;--button-bg-color-primary:#000000;--button-bg-color-primary-hover:#161616;--button-bg-color-primary-active:#1e1e1e;--button-bg-color-secondary:#f4f4f4;--button-bg-color-secondary-hover:#e0e0e0;--button-bg-color-secondary-active:#c6c6c6;--button-bg-color-ghost-hover:#f4f4f4;--button-bg-color-ghost-active:#eaeaea;--button-bg-color-frosted:#6f6f6f66;--button-bg-color-frosted-hover:#6f6f6f80;--button-bg-color-frosted-active:#6f6f6f99;--button-bg-color-disabled:#e0e0e0;--button-bg-color-positive:#dcfce7;--surface-bg-color-01:#f4f4f4;--surface-bg-color-01-hover:#eaeaea;--surface-bg-color-01-active:#e0e0e0;--surface-bg-color-02:#ffffff;--surface-bg-color-inverse:#262626;--surface-bg-color-inverse-hover:#303030;--surface-bg-color-inverse-active:#393939;--surface-bg-color-disabled:#e0e0e0;--surface-bg-color-shadow-01:#dddddd;--surface-bg-color-shadow-02:#c6c6c6;--chip-bg-color-primary:#161616;--chip-bg-color-primary-hover:#1e1e1e;--chip-bg-color-primary-active:#262626;--chip-bg-color-subtle:#f4f4f4;--chip-bg-color-subtle-hover:#eaeaea;--chip-bg-color-subtle-active:#e0e0e0;--chip-bg-color-outline-hover:#f4f4f4;--chip-bg-color-outline-active:#eaeaea;--label-bg-color-accent:#ff3944;--sidebar-animation-duration:0.5s;}:host{--button-size:36px;display:block;position:absolute;left:calc(var(--x-position));top:calc(var(--y-position));z-index:2}.detected-object-button{background:transparent;border:none;padding:0;margin:0;font:inherit;color:inherit;position:absolute;left:calc(-1 * var(--button-size) / 2);top:calc(-1 * var(--button-size) / 2);width:var(--button-size);height:var(--button-size);border-radius:50%;cursor:pointer;z-index:3}:host::before,:host::after{content:\"\";cursor:pointer;position:absolute;height:var(--size);width:var(--size);left:calc(-1 * var(--size) / 2);top:calc(-1 * var(--size) / 2);will-change:transform;transform:translateZ(0)}:host::before{--size:var(--button-size);border-radius:50%;z-index:0;background:rgba(0, 0, 0, 0.16);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:transform 0.07s ease-in-out}:host::after{--size:13px;border-radius:50%;z-index:1;background:white;box-shadow:0px 2px 2px 0px rgba(0, 0, 0, 0.15);transition:transform 0.07s ease-in-out}:host(.active)::before{transform:scale(0.88);background:rgba(0, 0, 0, 0.4)}:host(.active)::after{transform:scale(0.67)}@media (min-width: 768px){:host(:not(.active):hover)::before{transform:scale(1.08);background:rgba(0, 0, 0, 0.32)}}";
|
|
7
7
|
|
|
8
8
|
const VviinnDetectedObject = class {
|
|
9
9
|
constructor(hostRef) {
|
|
@@ -4,7 +4,7 @@ import { s as slotChangeListener } from './customized-slots-ZvDCa2Eu.js';
|
|
|
4
4
|
import { i as instance } from './i18next-C7V-mvcq.js';
|
|
5
5
|
import { r as resources } from './resources-Cvip80t1.js';
|
|
6
6
|
import { _ as _functionExports, g as getOrElse } from './Rectangle-DM-Jf7YJ.js';
|
|
7
|
-
import { s as searchBarParts } from './index-
|
|
7
|
+
import { s as searchBarParts } from './index-DyZfzSpJ.js';
|
|
8
8
|
import { u as updateGlobalState, g as globalState } from './store-CMhsm-nf.js';
|
|
9
9
|
|
|
10
10
|
const TextSearchIcon = () => (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
@@ -7,7 +7,9 @@ import { Locale } from "../../locale";
|
|
|
7
7
|
type MoveDirection = "left" | "right";
|
|
8
8
|
export type CarouselMode = "grid" | "continuity" | "set";
|
|
9
9
|
/**
|
|
10
|
-
* @part carousel-button
|
|
10
|
+
* @part carousel-button - Both carousel navigation buttons (generic part)
|
|
11
|
+
* @part carousel-button-prev - The previous/back navigation button
|
|
12
|
+
* @part carousel-button-next - The next/forward navigation button
|
|
11
13
|
**/
|
|
12
14
|
export declare class VviinnCarousel {
|
|
13
15
|
el: HTMLElement;
|
|
@@ -21,7 +21,7 @@ type PriceProps = PriceElementProps & {
|
|
|
21
21
|
baseSalePrice: BasePrice;
|
|
22
22
|
showInContainer?: boolean;
|
|
23
23
|
};
|
|
24
|
-
export declare const renderCustomLabels: (labels: string[]) => any;
|
|
24
|
+
export declare const renderCustomLabels: (labels: string[], location: "content" | "image") => any;
|
|
25
25
|
export declare const Price: FunctionalComponent<PriceProps>;
|
|
26
26
|
export type ImageProps = {
|
|
27
27
|
width: number;
|
|
@@ -27,7 +27,9 @@ import { OneClickDiscoveryMode } from "../../widget/types";
|
|
|
27
27
|
* @part price-regular - Block for a price if no sale price is presented.
|
|
28
28
|
* @part price-sale - Block for sale price. Rendered only if the sale price is presented.
|
|
29
29
|
* @part price-prefix - Block rendered before each price element (for ex. "from").
|
|
30
|
-
* @part carousel-button -
|
|
30
|
+
* @part carousel-button - Both carousel navigation buttons (generic part).
|
|
31
|
+
* @part carousel-button-prev - The previous/back carousel navigation button.
|
|
32
|
+
* @part carousel-button-next - The next/forward carousel navigation button.
|
|
31
33
|
* @part recommendations-results - For internal usage only!
|
|
32
34
|
* @part recommendations-title - Title of the recommendations grid.
|
|
33
35
|
* @part recommendations-subtitle - Subtitle of the recommendations grid.
|
|
@@ -27,7 +27,9 @@ export type UpdateButtonLocation = "onTop" | "onItem" | "topAndItem";
|
|
|
27
27
|
* @part price-regular - Block for a price if no sale price is presented.
|
|
28
28
|
* @part price-sale - Block for sale price. Rendered only if the sale price is presented.
|
|
29
29
|
* @part price-prefix - Block rendered before each price element (for ex. "from").
|
|
30
|
-
* @part carousel-button -
|
|
30
|
+
* @part carousel-button - Both carousel navigation buttons (generic part).
|
|
31
|
+
* @part carousel-button-prev - The previous/back carousel navigation button.
|
|
32
|
+
* @part carousel-button-next - The next/forward carousel navigation button.
|
|
31
33
|
* @part recommendations-results - For internal usage only!
|
|
32
34
|
* @part recommendations-title - Title of the recommendations grid.
|
|
33
35
|
* @part recommendations-subtitle - Subtitle of the recommendations grid.
|