vviinn-widgets 2.217.1 → 2.219.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.
Files changed (63) hide show
  1. package/dist/cjs/cssUrlHelper-BX9kngtZ.js +7 -0
  2. package/dist/cjs/{index-KB8ruJQe.js → index-DdCwxNyl.js} +1 -1
  3. package/dist/cjs/{openProductLink-BwHUGXtr.js → openProductLink-B3cy6uw_.js} +0 -5
  4. package/dist/cjs/{search.store-C82VhK1A.js → search.store-DiomZf0i.js} +3 -1
  5. package/dist/cjs/vviinn-button_6.cjs.entry.js +3 -2
  6. package/dist/cjs/vviinn-camera_12.cjs.entry.js +26 -18
  7. package/dist/cjs/vviinn-carousel_10.cjs.entry.js +7 -6
  8. package/dist/cjs/vviinn-shop-the-look.cjs.entry.js +4 -3
  9. package/dist/cjs/vviinn-text-search.cjs.entry.js +6 -6
  10. package/dist/cjs/vviinn-vps-button.cjs.entry.js +2 -1
  11. package/dist/collection/components/vviinn-text-search/vviinn-text-search.js +5 -5
  12. package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js +2 -1
  13. package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +2 -1
  14. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +20 -13
  15. package/dist/collection/store/search.store.js +2 -0
  16. package/dist/esm/cssUrlHelper-DsQD_dY6.js +5 -0
  17. package/dist/esm/{index-CMX-QEzm.js → index-DHNImAac.js} +1 -1
  18. package/dist/esm/{openProductLink-CJ9Wo3Ye.js → openProductLink-C7_qzUNW.js} +1 -5
  19. package/dist/esm/{search.store-Bof_HKxz.js → search.store-DUkS1MAq.js} +3 -1
  20. package/dist/esm/vviinn-button_6.entry.js +3 -2
  21. package/dist/esm/vviinn-camera_12.entry.js +24 -16
  22. package/dist/esm/vviinn-carousel_10.entry.js +4 -3
  23. package/dist/esm/vviinn-shop-the-look.entry.js +3 -2
  24. package/dist/esm/vviinn-text-search.entry.js +6 -6
  25. package/dist/esm/vviinn-vps-button.entry.js +2 -1
  26. package/dist/types/store/search.store.d.ts +1 -0
  27. package/dist/vviinn-widgets/{p-dcaf6f35.entry.js → p-315db5a2.entry.js} +1 -1
  28. package/dist/vviinn-widgets/p-5e186249.entry.js +1 -0
  29. package/dist/vviinn-widgets/p-91768e9c.entry.js +1 -0
  30. package/dist/vviinn-widgets/{p-elxMiKkD.js → p-C063BS9s.js} +1 -1
  31. package/dist/vviinn-widgets/p-C7_qzUNW.js +1 -0
  32. package/dist/vviinn-widgets/p-D3wRLf2J.js +1 -0
  33. package/{www/build/p-DM6fTGU7.js → dist/vviinn-widgets/p-DXT8Rt8G.js} +1 -1
  34. package/dist/vviinn-widgets/p-ab6447df.entry.js +1 -0
  35. package/dist/vviinn-widgets/p-fa907040.entry.js +1 -0
  36. package/dist/vviinn-widgets/p-fcbaa790.entry.js +1 -0
  37. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  38. package/package.json +1 -1
  39. package/www/build/{p-dcaf6f35.entry.js → p-315db5a2.entry.js} +1 -1
  40. package/www/build/p-5e186249.entry.js +1 -0
  41. package/www/build/p-91768e9c.entry.js +1 -0
  42. package/www/build/{p-elxMiKkD.js → p-C063BS9s.js} +1 -1
  43. package/www/build/p-C7_qzUNW.js +1 -0
  44. package/www/build/p-D3wRLf2J.js +1 -0
  45. package/{dist/vviinn-widgets/p-DM6fTGU7.js → www/build/p-DXT8Rt8G.js} +1 -1
  46. package/www/build/p-ab6447df.entry.js +1 -0
  47. package/www/build/{p-fff4758a.js → p-ed15ff33.js} +1 -1
  48. package/www/build/p-fa907040.entry.js +1 -0
  49. package/www/build/p-fcbaa790.entry.js +1 -0
  50. package/www/build/vviinn-widgets.esm.js +1 -1
  51. package/www/index.html +1 -1
  52. package/dist/vviinn-widgets/p-5ee404fb.entry.js +0 -1
  53. package/dist/vviinn-widgets/p-756d201c.entry.js +0 -1
  54. package/dist/vviinn-widgets/p-97099d69.entry.js +0 -1
  55. package/dist/vviinn-widgets/p-CtSr754V.js +0 -1
  56. package/dist/vviinn-widgets/p-e4c19fc9.entry.js +0 -1
  57. package/dist/vviinn-widgets/p-fbbf34ba.entry.js +0 -1
  58. package/www/build/p-5ee404fb.entry.js +0 -1
  59. package/www/build/p-756d201c.entry.js +0 -1
  60. package/www/build/p-97099d69.entry.js +0 -1
  61. package/www/build/p-CtSr754V.js +0 -1
  62. package/www/build/p-e4c19fc9.entry.js +0 -1
  63. package/www/build/p-fbbf34ba.entry.js +0 -1
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-D38ORu31.js');
4
+
5
+ const renderExternalCSS = (cssUrl) => (cssUrl === null || cssUrl === void 0 ? void 0 : cssUrl.length) ? index.h("link", { href: cssUrl, rel: "stylesheet" }) : null;
6
+
7
+ exports.renderExternalCSS = renderExternalCSS;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-D38ORu31.js');
4
- var search_store = require('./search.store-C82VhK1A.js');
4
+ var search_store = require('./search.store-DiomZf0i.js');
5
5
  var store = require('./store-jPZ4ROqV.js');
6
6
 
7
7
  const PlusIcon = () => (index.h("svg", { width: "32", height: "32", viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: "plus-icon", "aria-hidden": "true" },
@@ -1,9 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D38ORu31.js');
4
-
5
- const renderExternalCSS = (cssUrl) => (cssUrl === null || cssUrl === void 0 ? void 0 : cssUrl.length) ? index.h("link", { href: cssUrl, rel: "stylesheet" }) : null;
6
-
7
3
  const openProductLink = (deeplink, event, productDetailsRedirect = true, productDetailsNewTab = false) => {
8
4
  if (!productDetailsRedirect)
9
5
  return;
@@ -17,4 +13,3 @@ const openProductLink = (deeplink, event, productDetailsRedirect = true, product
17
13
  };
18
14
 
19
15
  exports.openProductLink = openProductLink;
20
- exports.renderExternalCSS = renderExternalCSS;
@@ -8593,7 +8593,7 @@ const encodeToBase64UTF8 = (str) => {
8593
8593
  return btoa(String.fromCharCode.apply(null, utf8Array));
8594
8594
  };
8595
8595
 
8596
- const version = "2.217.1";
8596
+ const version = "2.219.0";
8597
8597
 
8598
8598
  const appStateGlobalDefaults = {
8599
8599
  excluded: null,
@@ -8700,6 +8700,8 @@ const updateVisualSearchState = (store, isHiResUpdate = false) => async (respons
8700
8700
  state.visualSearchId = response.requestId;
8701
8701
  state.results = response.data.products;
8702
8702
  state.dynamicFilters = dynamicFilters;
8703
+ state.redirect = response.interactions.redirect
8704
+ ? Object.assign(Object.assign({}, response.interactions.redirect), { searchId: response.requestId }) : null;
8703
8705
  const extractedFilters = extractSelectedFilters(dynamicFilters);
8704
8706
  if (state.requestFilters.length === 0 && extractedFilters.length > 0) {
8705
8707
  state.requestFilters = extractedFilters;
@@ -2,12 +2,13 @@
2
2
 
3
3
  var index = require('./index-D38ORu31.js');
4
4
  var store = require('./store-jPZ4ROqV.js');
5
- var search_store = require('./search.store-C82VhK1A.js');
5
+ var search_store = require('./search.store-DiomZf0i.js');
6
6
  var index$1 = require('./index-CBteD3gC.js');
7
7
  var SecondaryActionIcon = require('./SecondaryActionIcon-Ng84u7-b.js');
8
8
  var index$2 = require('./index-CvMi8_tX.js');
9
9
  var constants = require('./constants-BlwqMvns.js');
10
10
  var Rectangle = require('./Rectangle-7dF6_xf3.js');
11
+ var cssUrlHelper = require('./cssUrlHelper-BX9kngtZ.js');
11
12
 
12
13
  const CrossIcon = () => (index.h("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
13
14
  index.h("path", { d: "M16 1.4L14.6 0L8 6.6L1.4 0L0 1.4L6.6 8L0 14.6L1.4 16L8 9.4L14.6 16L16 14.6L9.4 8L16 1.4Z", fill: "currentColor" })));
@@ -526,7 +527,7 @@ const VviinnVprButton = class {
526
527
  }
527
528
  }
528
529
  render() {
529
- return (index.h(index.Host, { key: 'e1d8ff31a915dc5aef78838bd4f84e2e416b0953', role: "button", tabindex: "0", "aria-label": this.getAriaLabel(), onClick: this.handleButtonClick, onKeyDown: this.handleKeyDown }, index.h("vviinn-button", { key: 'b5178a6135d508c7b1f04ab159e7c8117ee986af', addStyle: this.addStyle, part: "vviinn-button" }, index.h("slot", { key: '882bd8cfa3a809e99bb4a1162e8988d49b327113' }, this.campaignType === "VCS" ? (index.h(CrossSellingIcon, { width: this.iconSideSize, height: this.iconSideSize })) : (index.h(SimilarProductsIcon, { width: this.iconSideSize, height: this.iconSideSize }))))));
530
+ return (index.h(index.Host, { key: '2d6cd8ecdeadf7205ad1b9b7170dc5ad28d43c3b', role: "button", tabindex: "0", "aria-label": this.getAriaLabel(), onClick: this.handleButtonClick, onKeyDown: this.handleKeyDown }, cssUrlHelper.renderExternalCSS(this.cssUrl), index.h("vviinn-button", { key: 'f6852f2eb943f40d692bf5e0609a5ac1628f598f', addStyle: this.addStyle, part: "vviinn-button" }, index.h("slot", { key: '5f934ba1ef44cb5133dcf2a843429c5f92858514' }, this.campaignType === "VCS" ? (index.h(CrossSellingIcon, { width: this.iconSideSize, height: this.iconSideSize })) : (index.h(SimilarProductsIcon, { width: this.iconSideSize, height: this.iconSideSize }))))));
530
531
  }
531
532
  handleClick() {
532
533
  const sidebar = document.createElement("vviinn-recommendations-sidebar");
@@ -2,15 +2,16 @@
2
2
 
3
3
  var index = require('./index-D38ORu31.js');
4
4
  var Rectangle = require('./Rectangle-7dF6_xf3.js');
5
- var search_store = require('./search.store-C82VhK1A.js');
5
+ var search_store = require('./search.store-DiomZf0i.js');
6
6
  var index$2 = require('./index-CBteD3gC.js');
7
- var index$1 = require('./index-KB8ruJQe.js');
7
+ var index$1 = require('./index-DdCwxNyl.js');
8
8
  var store = require('./store-jPZ4ROqV.js');
9
9
  var cropperUtils = require('./cropperUtils-DCDOLeBS.js');
10
- var openProductLink = require('./openProductLink-BwHUGXtr.js');
10
+ var cssUrlHelper = require('./cssUrlHelper-BX9kngtZ.js');
11
11
  var index$3 = require('./index-CvMi8_tX.js');
12
12
  var resultsPageUrl = require('./resultsPageUrl-Cki7CFQz.js');
13
13
  var constants = require('./constants-BlwqMvns.js');
14
+ var openProductLink = require('./openProductLink-B3cy6uw_.js');
14
15
  var constants$1 = require('./constants-DHaugTOE.js');
15
16
 
16
17
  const CameraActionIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
@@ -435,7 +436,7 @@ const VviinnCropper = class {
435
436
  return (index.h(index.Host, { key: 'ae2656d0782e723ffe5c8ba9ad6074db55e219c0', class: {
436
437
  "show-in-widget": this.showInWidget,
437
438
  active: !!this.state.image,
438
- } }, openProductLink.renderExternalCSS(this.cssUrl), index.h("div", { key: '0c547762649ddc68aa2755681c6637ec1556b315', class: "container" }, this.state.image && (index.h("div", { key: '811e79aaf4ee1144c8c6ce0017300ba9aeda8803', class: "image-container", style: {
439
+ } }, cssUrlHelper.renderExternalCSS(this.cssUrl), index.h("div", { key: '0c547762649ddc68aa2755681c6637ec1556b315', class: "container" }, this.state.image && (index.h("div", { key: '811e79aaf4ee1144c8c6ce0017300ba9aeda8803', class: "image-container", style: {
439
440
  width: `${this.width.toString()}px`,
440
441
  overflow: "hidden",
441
442
  } }, index.h("img", { key: '458474fa006a1397daa335fb9ee50477ab0e62ce', decoding: "async", width: this.width, height: this.height, src: this.state.image.src, draggable: false, onLoad: this.loadImage, alt: store.instance.t("a11y.cropperImage") }), (_a = this.state.detectedObjects) === null || _a === void 0 ? void 0 :
@@ -984,7 +985,7 @@ const VviinnResults = class {
984
985
  return (index.h(index.Host, { key: '2ba9c019be5e6d2a70f299ebd4827baefa671cad', id: "results-block", class: {
985
986
  "show-in-widget": this.showInWidget,
986
987
  "matching-discovery": this.oneClickDiscoveryMode === "append-slider",
987
- }, exportparts: `${index$3.productCardParts}, ${index$3.listCardParts}, ${index$3.contentCardParts}, ${index$3.productCardsGridPart}` }, openProductLink.renderExternalCSS(this.cssUrl), index.h("div", { key: '8521abb79a86723af8f18cd66558f8cd56d0d725', class: "nothing-found" }, this.getCurrentErrorType() && (index.h("vviinn-error", { key: '030f376feaa161d598dc60e2deae0bcde368759a', errorType: this.getCurrentErrorType(), handler: this.resetWidgetState, hasBackground: this.showInWidget, searchType: this.state.searchType }))), index.h("div", { key: '82a242f74f6a5481b40ec26a977d11465a5c58da', class: {
988
+ }, exportparts: `${index$3.productCardParts}, ${index$3.listCardParts}, ${index$3.contentCardParts}, ${index$3.productCardsGridPart}` }, cssUrlHelper.renderExternalCSS(this.cssUrl), index.h("div", { key: '8521abb79a86723af8f18cd66558f8cd56d0d725', class: "nothing-found" }, this.getCurrentErrorType() && (index.h("vviinn-error", { key: '030f376feaa161d598dc60e2deae0bcde368759a', errorType: this.getCurrentErrorType(), handler: this.resetWidgetState, hasBackground: this.showInWidget, searchType: this.state.searchType }))), index.h("div", { key: '82a242f74f6a5481b40ec26a977d11465a5c58da', class: {
988
989
  hidden: this.showAspectRatioError || resultsLength === 0,
989
990
  products: true,
990
991
  }, part: index$3.productCardsGridPart, id: "vviinn-results-products" }, resultsLength > 0 && this.renderResults(), index.h("div", { key: 'ed28c78ddfa0826f8ad8a70639e83386d9297c7c', id: "one-click-discovery-append", style: {
@@ -1802,11 +1803,19 @@ const VviinnVpsWidget = class {
1802
1803
  this.uploadSource = uploadSource;
1803
1804
  };
1804
1805
  this.handleVviinnImageUploadFinished = (detail) => {
1806
+ const visualSearchRedirect = this.state.redirect;
1807
+ const hasVisualSearchRedirect = !!(visualSearchRedirect === null || visualSearchRedirect === void 0 ? void 0 : visualSearchRedirect.url) &&
1808
+ visualSearchRedirect.searchId === detail.searchId;
1809
+ if (hasVisualSearchRedirect) {
1810
+ this.handleImageSearchRedirect(visualSearchRedirect.url, detail.searchId);
1811
+ return;
1812
+ }
1805
1813
  const shouldRedirectToResultsPage = this.resultsPageUrl &&
1806
1814
  !this.showInWidget &&
1807
1815
  !resultsPageUrl.isOnResultsPage(this.resultsPageUrl);
1808
1816
  if (shouldRedirectToResultsPage) {
1809
- this.handleImageSearchRedirect(detail.searchId);
1817
+ const url = resultsPageUrl.buildImageSearchRedirectUrl(this.resultsPageUrl, detail.searchId, resultsPageUrl.parseResultsPageParamNames(this.resultsPageParams).searchId);
1818
+ this.handleImageSearchRedirect(url, detail.searchId);
1810
1819
  return;
1811
1820
  }
1812
1821
  this.handleImageSelection();
@@ -1957,8 +1966,7 @@ const VviinnVpsWidget = class {
1957
1966
  isResultSlide() {
1958
1967
  return this.slidePosition === 1;
1959
1968
  }
1960
- handleImageSearchRedirect(searchId) {
1961
- const url = resultsPageUrl.buildImageSearchRedirectUrl(this.resultsPageUrl, searchId, resultsPageUrl.parseResultsPageParamNames(this.resultsPageParams).searchId);
1969
+ handleImageSearchRedirect(url, searchId) {
1962
1970
  const redirectData = Object.assign(Object.assign({}, this.getBasicEventData()), { url, source: "visual-search", searchId });
1963
1971
  const event = this.vviinnRedirect.emit(redirectData);
1964
1972
  if (!event.defaultPrevented) {
@@ -2140,31 +2148,31 @@ const VviinnVpsWidget = class {
2140
2148
  }
2141
2149
  render() {
2142
2150
  var _a, _b, _c;
2143
- return (index.h(index.Host, { key: '01b4f049543923fb986fc0100118312b076215a1', exportparts: `${index$3.modalParts}, ${index$3.productCardParts}, ${index$3.searchBarParts}, ${index$3.searchWidgetFilterParts}, ${index$3.searchWidgetButtonParts}, ${index$3.productCardsGridPart}, ${index$3.suggestionsParts}` }, openProductLink.renderExternalCSS(this.cssUrl), !this.showingInButton && index$2.SlotSkeleton("search"), index.h("vviinn-overlayed-modal", { key: 'c6f39d506801e5b19aedd62d24d7c80ecddf6c0a', class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState, onVviinnWidgetClose: ({ detail }) => {
2151
+ return (index.h(index.Host, { key: '0985a289b00fca5286466be2d4f33ef7d32c49cb', exportparts: `${index$3.modalParts}, ${index$3.productCardParts}, ${index$3.searchBarParts}, ${index$3.searchWidgetFilterParts}, ${index$3.searchWidgetButtonParts}, ${index$3.productCardsGridPart}, ${index$3.suggestionsParts}` }, cssUrlHelper.renderExternalCSS(this.cssUrl), !this.showingInButton && index$2.SlotSkeleton("search"), index.h("vviinn-overlayed-modal", { key: '42c48cf9f6414ccd23705ad4a1ca2dcccf6aa65f', class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState, onVviinnWidgetClose: ({ detail }) => {
2144
2152
  if (detail.campaignTypeId !== "VPR")
2145
2153
  this.handleModalClose();
2146
2154
  }, buttonElementId: (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.widgetElementId, widgetVersion: search_store.version, hideBackButton: this.mode === "upload" ||
2147
- (!this.isCameraEnabled && this.isOnboardingSlide()) }, index.h("vviinn-slider", { key: '07b98067fda24f46e1b34ea8a27a107b0e7cc925', position: this.slidePosition }, index.h("vviinn-slide", { key: '373b868d121f435fae72799e1d5aed63719bc44a', class: {
2155
+ (!this.isCameraEnabled && this.isOnboardingSlide()) }, index.h("vviinn-slider", { key: '399dac9c2c005efad3c3506dd84f7bcf9c550eaf', position: this.slidePosition }, index.h("vviinn-slide", { key: '832f2287e46f4edaeade004325106fecbdb3e618', class: {
2148
2156
  "start-page": true,
2149
2157
  "camera-enabled": this.isCameraEnabled,
2150
- } }, index.h("vviinn-camera", { key: '57871a635ec0c3f8fe92e0d983b154f659afff01', token: this.token, onVviinnImageUploadFinished: ({ detail }) => this.handleVviinnImageUploadFinished(detail), onVviinnImageUploadStarted: () => {
2158
+ } }, index.h("vviinn-camera", { key: 'fee0491b5660c7f4c61796bfc647edf6c1121ed6', token: this.token, onVviinnImageUploadFinished: ({ detail }) => this.handleVviinnImageUploadFinished(detail), onVviinnImageUploadStarted: () => {
2151
2159
  this.handleVviinnImageUpload("startCamera");
2152
- }, apiPath: this.apiPath, basicEventData: this.getBasicEventData(), srcObject: this.stream, cameraButtonClicked: this.isCameraButtonClicked, exampleImageSource: this.exampleImageSource, showInWidget: this.showInWidget, storeName: this.storeName, state: this.state }), index.h("div", { key: '5999da46ea9baeac815578fb2112af5d9248219a', class: {
2160
+ }, apiPath: this.apiPath, basicEventData: this.getBasicEventData(), srcObject: this.stream, cameraButtonClicked: this.isCameraButtonClicked, exampleImageSource: this.exampleImageSource, showInWidget: this.showInWidget, storeName: this.storeName, state: this.state }), index.h("div", { key: 'f5e463f64ac999e3b7bded376a0f12406ad3869d', class: {
2153
2161
  error: this.haveErrors(),
2154
- }, id: "start-page_block" }, index.h("div", { key: '63c7fbcbffa30eabe9bf6e1cb58b5cd55cd01bd0', class: "start-page_main-content" }, (this.wrongImageFormat ||
2155
- this.state.searchStatus === "error") && (index.h("div", { key: '5aa9c7d3d7ff2cb5d3041f680b18a0356d60f61e', class: "start-page_errors-block" }, this.getCurrentErrorType() && (index.h("vviinn-error", { key: '686db18d4492c958f5236b0b2e76f2d39e9a08d4', errorType: this.getCurrentErrorType(), handler: this.resetState, hasBackground: true, searchType: this.state.searchType })))), !this.haveErrors() && (index.h(index.Fragment, { key: 'f0bbc9a11f5595b87b70add2f18169d0e985e4d6' }, index.h("vviinn-teaser", { key: '41e84754db32d28f8cfe0666c10ffadd96805e61' }), index.h("div", { key: '575c73b2ddbcb508af636f381b819c2b112d2b06', class: "buttons-group" }, this.renderButtons()), this.textSearchShow && !this.isResultSlide() && (index.h("vviinn-text-search", { key: 'ccb9709e6a796c29668954ea6988d5111c8ac5e5', token: this.token, apiPath: this.apiPath, locale: this.locale, showInWidget: this.showInWidget, showOnFirstScreen: true, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), resultsPageUrl: this.resultsPageUrl, autoSuggestShow: this.autoSuggestShow, "save-image-mode": "never" }))))), index.h("vviinn-privacy-badge", { key: '47e8a7b3bec65c2758ecaf65f0cc8d9af6ea188d', privacyBadgeText: store.instance.t("privacyBadgeText", {
2162
+ }, id: "start-page_block" }, index.h("div", { key: '155a80658288afe387d77f1140819fa72134a42e', class: "start-page_main-content" }, (this.wrongImageFormat ||
2163
+ this.state.searchStatus === "error") && (index.h("div", { key: '3c948759b2b3b264008d814d8c711cba759f0042', class: "start-page_errors-block" }, this.getCurrentErrorType() && (index.h("vviinn-error", { key: '6ded7b63230680c53893a571100ad63787db36e8', errorType: this.getCurrentErrorType(), handler: this.resetState, hasBackground: true, searchType: this.state.searchType })))), !this.haveErrors() && (index.h(index.Fragment, { key: '14c56d10d2df3af3f32b37aa10bc687bc4a52617' }, index.h("vviinn-teaser", { key: '99092cc741e26cb2f1101fa4bb5ff219017c7be9' }), index.h("div", { key: '77cf9e9e82a38e9fc9de074c3d02dda473d604ac', class: "buttons-group" }, this.renderButtons()), this.textSearchShow && !this.isResultSlide() && (index.h("vviinn-text-search", { key: '9393d8afb3ae1bbc3ed1d6f4f6461356dd3be912', token: this.token, apiPath: this.apiPath, locale: this.locale, showInWidget: this.showInWidget, showOnFirstScreen: true, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), resultsPageUrl: this.resultsPageUrl, autoSuggestShow: this.autoSuggestShow, "save-image-mode": "never" }))))), index.h("vviinn-privacy-badge", { key: '4c381e57c33d18a5736af7ad54a3512ba1ace512', privacyBadgeText: store.instance.t("privacyBadgeText", {
2156
2164
  interpolation: { escapeValue: false },
2157
- }), class: { invisible: this.haveErrors() } }))), index.h("vviinn-slide", { key: '90b4dbc609191dc60a723d8c1c76eac581ef0ff7', class: {
2165
+ }), class: { invisible: this.haveErrors() } }))), index.h("vviinn-slide", { key: 'c3f7ea7984ce33f702153878f378be802adb8258', class: {
2158
2166
  "results-page": true,
2159
2167
  active: this.isResultSlide(),
2160
- } }, this.isResultSlide() && (index.h("div", { key: '0b4410683c1d777267f6277986675f132d6fb389', class: "source-wrapper" }, this.isTextSearch() && (index.h("vviinn-text-search", { key: '2084be2aa14b17922a1cfa046df7c646935e0d13', token: this.token, showInWidget: this.showInWidget, apiPath: this.apiPath, locale: this.locale, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), resultsPageUrl: this.resultsPageUrl, autoSuggestShow: this.autoSuggestShow, "save-image-mode": "never" })), !this.isTextSearch() && (index.h("vviinn-cropper", { key: 'de6347c097358595f025e745911d40c166d6c7b1', token: this.token, basicEventData: this.getBasicEventData(), showAspectRatioError: this.showAspectRatioError, apiPath: this.apiPath, showInWidget: this.showInWidget, "save-image-mode": "never" })), index.h("vviinn-suggestions", { key: '33be481c722028ab35af64b68447ba99c9e3ceb8', showInWidget: this.showInWidget, token: this.token, apiPath: this.apiPath, locale: this.locale }), index.h("vviinn-selected-filters", { key: '868951037f06f2beb6f8b0f497f15797e166db34', locale: this.locale, currencySign: this.currencySign, showInWidget: this.showInWidget, exportparts: index$3.filtersParts }), ((_b = this.state.dynamicFilters) === null || _b === void 0 ? void 0 : _b.length) > 0 && (index.h("div", { key: '464ce9e0159ac8b5da45122c55953e80d940383b', class: {
2168
+ } }, this.isResultSlide() && (index.h("div", { key: 'cd8ec6519b09395d2b4926301bfeec3dc91d2ac6', class: "source-wrapper" }, this.isTextSearch() && (index.h("vviinn-text-search", { key: '96e71f8fb6f1c682f872e76f2b9dd5616d767934', token: this.token, showInWidget: this.showInWidget, apiPath: this.apiPath, locale: this.locale, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), resultsPageUrl: this.resultsPageUrl, autoSuggestShow: this.autoSuggestShow, "save-image-mode": "never" })), !this.isTextSearch() && (index.h("vviinn-cropper", { key: '4aabf6d68425e50b277c15c881c40bea2e4d38b1', token: this.token, basicEventData: this.getBasicEventData(), showAspectRatioError: this.showAspectRatioError, apiPath: this.apiPath, showInWidget: this.showInWidget, "save-image-mode": "never" })), index.h("vviinn-suggestions", { key: 'ca8f970dbd2f3b1824f80feb7477b3d34b8b5ed1', showInWidget: this.showInWidget, token: this.token, apiPath: this.apiPath, locale: this.locale }), index.h("vviinn-selected-filters", { key: '44ff0a2c8dea93a3b5c2cd593b34dc20a4b115b4', locale: this.locale, currencySign: this.currencySign, showInWidget: this.showInWidget, exportparts: index$3.filtersParts }), ((_b = this.state.dynamicFilters) === null || _b === void 0 ? void 0 : _b.length) > 0 && (index.h("div", { key: 'dbf0b1c1a240f60931b1b75d8b76806e071f359f', class: {
2161
2169
  "filters-wrapper": true,
2162
2170
  hidden: this.showAspectRatioError,
2163
- } }, index.h("vviinn-filters", { key: 'd9549d22f88bb270d4e3221faf545caa6a2bcb12', showInWidget: this.showInWidget, showIntervalInputs: this.showIntervalInputs }), index.h("vviinn-extended-filters", { key: 'c1c78c38dd71beab583fa7f68d294d23b2d59c44', mode: "preview", showHeader: false, showInWidget: this.showInWidget, locale: this.locale, currencySign: this.currencySign, showIntervalInputs: this.showIntervalInputs }), index.h("vviinn-extended-filters-button", { key: 'ade4464be96dccd368c4f0e580bb1fec968dbd01', class: {
2171
+ } }, index.h("vviinn-filters", { key: '801f6aab643da44e564f062fddeb14811eca70bd', showInWidget: this.showInWidget, showIntervalInputs: this.showIntervalInputs }), index.h("vviinn-extended-filters", { key: '36a32875a0532cbf7148720df7a743bb0159e51e', mode: "preview", showHeader: false, showInWidget: this.showInWidget, locale: this.locale, currencySign: this.currencySign, showIntervalInputs: this.showIntervalInputs }), index.h("vviinn-extended-filters-button", { key: '148bf202a89af93e8cd88a612d585d0849a3d7de', class: {
2164
2172
  "extended-filters-button": true,
2165
2173
  "has-primary-filters": this.state.dynamicFilters.filter((f) => f.isPrimary)
2166
2174
  .length > 0,
2167
- }, showInWidget: this.showInWidget }))))), this.isResultSlide() && (index.h(index.Fragment, { key: '36a3a9853b096df62fb977a5799cc7c863f93ca5' }, index.h("vviinn-results", { key: 'd38adf77a1e2988233991fbc7d2d9beedc7e0375', token: this.token, locale: this.locale, numberLocale: this.numberLocale, pricePrefix: this.pricePrefix, "currency-sign": this.currencySign, apiPath: this.apiPath, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, uiSessionId: this.uiSessionId, widgetElementId: (_c = this.buttonElementId) !== null && _c !== void 0 ? _c : this.widgetElementId, showInWidget: this.showInWidget, buttonElementId: this.buttonElementId, imageResolutionWidth: this.imageResolutionWidth, showMultipleImages: this.showMultipleImages, productDetailsNewTab: this.productDetailsNewTab, productDetailsRedirect: this.productDetailsRedirect, addToBasketShow: this.addToBasketShow, favoriteShow: this.favoriteShow, showAspectRatioError: this.showAspectRatioError, resetWidgetState: this.resetState, replaceSlotsContentInWidget: this.replaceSlotsContent.bind(this), replaceSlotsContentInButton: this.replaceSlotsContentInButton, addPriceContainer: this.addPriceContainer, oneClickDiscoveryMode: this.oneClickDiscoveryMode, oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, parentSlots: [...this.parentSlots, ...this.slots], scrollableModalBody: this.modalBody }))))), index.h("vviinn-extended-filters", { key: 'e40f196666c92c3813ca883732d6e155b7e181d7', class: "modal-extended-filters", mode: "modal", exportparts: index$3.extendedFiltersParts, showInWidget: this.showInWidget, locale: this.locale, currencySign: this.currencySign, showIntervalInputs: this.showIntervalInputs }))));
2175
+ }, showInWidget: this.showInWidget }))))), this.isResultSlide() && (index.h(index.Fragment, { key: '263743fba6b324f47a1fae12648995bdef73aa25' }, index.h("vviinn-results", { key: '977140130b3b8dafaac6ae428c2b9f013de37d00', token: this.token, locale: this.locale, numberLocale: this.numberLocale, pricePrefix: this.pricePrefix, "currency-sign": this.currencySign, apiPath: this.apiPath, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, uiSessionId: this.uiSessionId, widgetElementId: (_c = this.buttonElementId) !== null && _c !== void 0 ? _c : this.widgetElementId, showInWidget: this.showInWidget, buttonElementId: this.buttonElementId, imageResolutionWidth: this.imageResolutionWidth, showMultipleImages: this.showMultipleImages, productDetailsNewTab: this.productDetailsNewTab, productDetailsRedirect: this.productDetailsRedirect, addToBasketShow: this.addToBasketShow, favoriteShow: this.favoriteShow, showAspectRatioError: this.showAspectRatioError, resetWidgetState: this.resetState, replaceSlotsContentInWidget: this.replaceSlotsContent.bind(this), replaceSlotsContentInButton: this.replaceSlotsContentInButton, addPriceContainer: this.addPriceContainer, oneClickDiscoveryMode: this.oneClickDiscoveryMode, oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, parentSlots: [...this.parentSlots, ...this.slots], scrollableModalBody: this.modalBody }))))), index.h("vviinn-extended-filters", { key: '24d12faff2641fd61a4d13d7303734f1770120b2', class: "modal-extended-filters", mode: "modal", exportparts: index$3.extendedFiltersParts, showInWidget: this.showInWidget, locale: this.locale, currencySign: this.currencySign, showIntervalInputs: this.showIntervalInputs }))));
2168
2176
  }
2169
2177
  get el() { return index.getElement(this); }
2170
2178
  static get watchers() { return {
@@ -1,15 +1,16 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-D38ORu31.js');
4
- var search_store = require('./search.store-C82VhK1A.js');
4
+ var search_store = require('./search.store-DiomZf0i.js');
5
5
  var Rectangle = require('./Rectangle-7dF6_xf3.js');
6
6
  var store = require('./store-jPZ4ROqV.js');
7
- var index$1 = require('./index-KB8ruJQe.js');
7
+ var index$1 = require('./index-DdCwxNyl.js');
8
8
  var constants = require('./constants-BlwqMvns.js');
9
9
  var index$2 = require('./index-CBteD3gC.js');
10
10
  var index$3 = require('./index-CvMi8_tX.js');
11
11
  var swiperElement = require('./swiper-element-DjtzojCR.js');
12
- var openProductLink = require('./openProductLink-BwHUGXtr.js');
12
+ var cssUrlHelper = require('./cssUrlHelper-BX9kngtZ.js');
13
+ var openProductLink = require('./openProductLink-B3cy6uw_.js');
13
14
 
14
15
  const BasketIcon = () => (index.h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
15
16
  index.h("g", { id: "shopping-bag" },
@@ -1857,7 +1858,7 @@ const VviinnProductCard = class {
1857
1858
  render() {
1858
1859
  var _a, _b, _c;
1859
1860
  if (this.isContentCard || this.isListCard) {
1860
- return (index.h(index.Host, { part: `product-card ${this.entityType}-card`, class: `${this.entityType}-card`, exportparts: this.isContentCard ? index$3.contentCardParts : index$3.listCardParts, "data-id": this.productId }, openProductLink.renderExternalCSS(this.cssUrl), index.h("div", { class: `image-container ${this.entityType}-card-image-container`, part: "image-container" }, renderProductCardImage({
1861
+ return (index.h(index.Host, { part: `product-card ${this.entityType}-card`, class: `${this.entityType}-card`, exportparts: this.isContentCard ? index$3.contentCardParts : index$3.listCardParts, "data-id": this.productId }, cssUrlHelper.renderExternalCSS(this.cssUrl), index.h("div", { class: `image-container ${this.entityType}-card-image-container`, part: "image-container" }, renderProductCardImage({
1861
1862
  src: this.imageProps.src,
1862
1863
  width: this.imageProps.width,
1863
1864
  title: this.imageProps.title,
@@ -1881,7 +1882,7 @@ const VviinnProductCard = class {
1881
1882
  animated: this.isTransitioning,
1882
1883
  "product-card--source": this.isSourceProduct,
1883
1884
  "set-mode": this.isSetMode,
1884
- }, exportparts: index$3.productCardParts, "data-id": this.productId }, openProductLink.renderExternalCSS(this.cssUrl), 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.effectiveCurrencySign, numberLocale: this.effectiveNumberLocale, price: this.price, basePrice: parseBasePrice(this.basePrice), salePrice: this.salePrice, baseSalePrice: parseBasePrice(this.baseSalePrice), showInContainer: this.addPriceContainer }), renderCustomLabels(this.customLabels.split(index$1.CUSTOM_LABELS_DELIMITER), "content")))), index.h("div", { class: {
1885
+ }, exportparts: index$3.productCardParts, "data-id": this.productId }, cssUrlHelper.renderExternalCSS(this.cssUrl), 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.effectiveCurrencySign, numberLocale: this.effectiveNumberLocale, price: this.price, basePrice: parseBasePrice(this.basePrice), salePrice: this.salePrice, baseSalePrice: parseBasePrice(this.baseSalePrice), showInContainer: this.addPriceContainer }), renderCustomLabels(this.customLabels.split(index$1.CUSTOM_LABELS_DELIMITER), "content")))), index.h("div", { class: {
1885
1886
  "basket-button-container": true,
1886
1887
  hidden: !this.isShowBasketButton() || this.showSkeleton(),
1887
1888
  }, part: "basket-button-container" }, index.h("button", { class: {
@@ -11954,7 +11955,7 @@ const VviinnVprWidget = class {
11954
11955
  empty: this.recommendations.length == 0,
11955
11956
  [this.mode]: true,
11956
11957
  "show-in-widget": this.showInWidget,
11957
- }, role: "region", "aria-label": !this.showingInButton ? store.instance.t("a11y.recommendations") : undefined, "aria-busy": isLoading ? "true" : "false", "aria-live": isLoading ? "polite" : "off" }, index.h(index.Fragment, null, openProductLink.renderExternalCSS(this.cssUrl), index$2.SlotSkeleton("discovery"), (this.isSetMode ||
11958
+ }, role: "region", "aria-label": !this.showingInButton ? store.instance.t("a11y.recommendations") : undefined, "aria-busy": isLoading ? "true" : "false", "aria-live": isLoading ? "polite" : "off" }, index.h(index.Fragment, null, cssUrlHelper.renderExternalCSS(this.cssUrl), index$2.SlotSkeleton("discovery"), (this.isSetMode ||
11958
11959
  this.blockTitle !== "" ||
11959
11960
  !!this.blockSubtitle) && (index.h("div", { class: "widget-header" }, index.h("div", null, this.blockTitle !== "" && (index.h("h2", { part: "recommendations-title" }, index.h("slot", { name: "vviinn-recommendations-title" }, (_a = this.blockTitle) !== null && _a !== void 0 ? _a : (this.isSetMode
11960
11961
  ? store.instance.t("setMode.widgetTitle")
@@ -4,11 +4,12 @@ var index = require('./index-D38ORu31.js');
4
4
  var Rectangle = require('./Rectangle-7dF6_xf3.js');
5
5
  var cropperUtils = require('./cropperUtils-DCDOLeBS.js');
6
6
  var swiperElement = require('./swiper-element-DjtzojCR.js');
7
- var search_store = require('./search.store-C82VhK1A.js');
7
+ var search_store = require('./search.store-DiomZf0i.js');
8
8
  var SecondaryActionIcon = require('./SecondaryActionIcon-Ng84u7-b.js');
9
9
  var index$1 = require('./index-CvMi8_tX.js');
10
10
  var store = require('./store-jPZ4ROqV.js');
11
- var openProductLink = require('./openProductLink-BwHUGXtr.js');
11
+ var cssUrlHelper = require('./cssUrlHelper-BX9kngtZ.js');
12
+ var openProductLink = require('./openProductLink-B3cy6uw_.js');
12
13
 
13
14
  const UploadActionIconVariant = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
14
15
  index.h("path", { d: "M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H13C13.2833 3 13.5208 3.09583 13.7125 3.2875C13.9042 3.47917 14 3.71667 14 4C14 4.28333 13.9042 4.52083 13.7125 4.7125C13.5208 4.90417 13.2833 5 13 5H5V19H19V11C19 10.7167 19.0958 10.4792 19.2875 10.2875C19.4792 10.0958 19.7167 10 20 10C20.2833 10 20.5208 10.0958 20.7125 10.2875C20.9042 10.4792 21 10.7167 21 11V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM17 7H16C15.7167 7 15.4792 6.90417 15.2875 6.7125C15.0958 6.52083 15 6.28333 15 6C15 5.71667 15.0958 5.47917 15.2875 5.2875C15.4792 5.09583 15.7167 5 16 5H17V4C17 3.71667 17.0958 3.47917 17.2875 3.2875C17.4792 3.09583 17.7167 3 18 3C18.2833 3 18.5208 3.09583 18.7125 3.2875C18.9042 3.47917 19 3.71667 19 4V5H20C20.2833 5 20.5208 5.09583 20.7125 5.2875C20.9042 5.47917 21 5.71667 21 6C21 6.28333 20.9042 6.52083 20.7125 6.7125C20.5208 6.90417 20.2833 7 20 7H19V8C19 8.28333 18.9042 8.52083 18.7125 8.7125C18.5208 8.90417 18.2833 9 18 9C17.7167 9 17.4792 8.90417 17.2875 8.7125C17.0958 8.52083 17 8.28333 17 8V7ZM11.25 16L9.4 13.525C9.3 13.3917 9.16667 13.325 9 13.325C8.83333 13.325 8.7 13.3917 8.6 13.525L6.6 16.2C6.46667 16.3667 6.45 16.5417 6.55 16.725C6.65 16.9083 6.8 17 7 17H17C17.2 17 17.35 16.9083 17.45 16.725C17.55 16.5417 17.5333 16.3667 17.4 16.2L14.65 12.525C14.55 12.3917 14.4167 12.325 14.25 12.325C14.0833 12.325 13.95 12.3917 13.85 12.525L11.25 16Z", fill: "white" })));
@@ -1379,7 +1380,7 @@ const VviinnShopTheLook = class {
1379
1380
  }, TIMING.SEARCH_DEBOUNCE_DELAY);
1380
1381
  }
1381
1382
  render() {
1382
- return (index.h(index.Host, { key: '4734dcdc0c1a7d206970c8baf08e257077e952f9', exportparts: index$1.shopTheLookParts }, openProductLink.renderExternalCSS(this.cssUrl), index.h("div", { key: '129438fdcf114bd903ad6888287e060e5fdc3948', class: `shop-the-look-container ${this.showModal ? "modal-open" : ""} ${this.showCropper ? "with-cropper" : ""} widget-style-${this.widgetStyle}` }, index.h("div", { key: '04e037ad029930bd366920ca79e0ae7becebaf2c', class: "main-content" }, this.renderSwiperWrapper(), this.showLoadingSpinner && (index.h("div", { key: '18ca739ed4cf0b1167fd8976fdab0c5e6e0ee410', class: "search-loader" }, index.h("vviinn-preloader", { key: 'efd47991fa32bf315c4985f98f0c14ccbf6f5a72' })))), this.renderModalWrapper(), index.h("div", { key: '332adbe2912fb61f82f9cf0488a13f7c9a0a405c', class: "actions-container", part: "shop-the-look-actions-container" }, this.uploadMode && (index.h("div", { key: '55c748ffeded24b97801683454f9a1b8675f6ed6', class: "upload-button-container" }, index.h("button", { key: '7cfa399b98e254bd12bff706cf6c4bea42dce684', class: "upload-button", part: "shop-the-look-upload-button", onClick: () => { var _a; return (_a = this.fileInput) === null || _a === void 0 ? void 0 : _a.click(); }, disabled: this.showLoadingSpinner }, index.h("span", { key: '48b59d82816a50b6f98bbf68c8a6849679437852', class: "upload-button-icon", part: "shop-the-look-upload-button-icon" }, index.h("slot", { key: '14f12cf7f44a39ba4f1d9cbecb6fa3558ae5fd5d', name: "vviinn-image-upload-icon" }, index.h(UploadActionIconVariant, { key: '1937cea6010c0a21182e88f365f188a65b0f3a70' }))), index.h("span", { key: 'd62a5ee1ac2c17a663dda26cb0debd83821510c0', class: "upload-button-text", part: "shop-the-look-upload-button-text" }, index.h("slot", { key: '42a4910a590a2b258dccb2a3ace5da8f60099791', name: "upload-button-text" }))), index.h("input", { key: '242e2ed2e319428ebde6dff7df8c37b60d33a8f1', type: "file", class: "visually-hidden", accept: search_store.getAcceptableFileFormats(), onChange: this.handleFileUpload, ref: (el) => (this.fileInput = el) }))), this.showNavigation() &&
1383
+ return (index.h(index.Host, { key: '4734dcdc0c1a7d206970c8baf08e257077e952f9', exportparts: index$1.shopTheLookParts }, cssUrlHelper.renderExternalCSS(this.cssUrl), index.h("div", { key: '129438fdcf114bd903ad6888287e060e5fdc3948', class: `shop-the-look-container ${this.showModal ? "modal-open" : ""} ${this.showCropper ? "with-cropper" : ""} widget-style-${this.widgetStyle}` }, index.h("div", { key: '04e037ad029930bd366920ca79e0ae7becebaf2c', class: "main-content" }, this.renderSwiperWrapper(), this.showLoadingSpinner && (index.h("div", { key: '18ca739ed4cf0b1167fd8976fdab0c5e6e0ee410', class: "search-loader" }, index.h("vviinn-preloader", { key: 'efd47991fa32bf315c4985f98f0c14ccbf6f5a72' })))), this.renderModalWrapper(), index.h("div", { key: '332adbe2912fb61f82f9cf0488a13f7c9a0a405c', class: "actions-container", part: "shop-the-look-actions-container" }, this.uploadMode && (index.h("div", { key: '55c748ffeded24b97801683454f9a1b8675f6ed6', class: "upload-button-container" }, index.h("button", { key: '7cfa399b98e254bd12bff706cf6c4bea42dce684', class: "upload-button", part: "shop-the-look-upload-button", onClick: () => { var _a; return (_a = this.fileInput) === null || _a === void 0 ? void 0 : _a.click(); }, disabled: this.showLoadingSpinner }, index.h("span", { key: '48b59d82816a50b6f98bbf68c8a6849679437852', class: "upload-button-icon", part: "shop-the-look-upload-button-icon" }, index.h("slot", { key: '14f12cf7f44a39ba4f1d9cbecb6fa3558ae5fd5d', name: "vviinn-image-upload-icon" }, index.h(UploadActionIconVariant, { key: '1937cea6010c0a21182e88f365f188a65b0f3a70' }))), index.h("span", { key: 'd62a5ee1ac2c17a663dda26cb0debd83821510c0', class: "upload-button-text", part: "shop-the-look-upload-button-text" }, index.h("slot", { key: '42a4910a590a2b258dccb2a3ace5da8f60099791', name: "upload-button-text" }))), index.h("input", { key: '242e2ed2e319428ebde6dff7df8c37b60d33a8f1', type: "file", class: "visually-hidden", accept: search_store.getAcceptableFileFormats(), onChange: this.handleFileUpload, ref: (el) => (this.fileInput = el) }))), this.showNavigation() &&
1383
1384
  renderNavigation(this.swiperActiveIndex, this.totalImages, this.handleNavigatePrev, this.handleNavigateNext)))));
1384
1385
  }
1385
1386
  get el() { return index.getElement(this); }
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-D38ORu31.js');
4
4
  var Rectangle = require('./Rectangle-7dF6_xf3.js');
5
- var search_store = require('./search.store-C82VhK1A.js');
5
+ var search_store = require('./search.store-DiomZf0i.js');
6
6
  var index$2 = require('./index-CBteD3gC.js');
7
7
  var store = require('./store-jPZ4ROqV.js');
8
8
  var index$1 = require('./index-CvMi8_tX.js');
@@ -405,7 +405,7 @@ const VviinnTextSearch = class {
405
405
  }
406
406
  }
407
407
  render() {
408
- return (index.h(index.Host, { key: '34d054620af49581af6c5038ccb24fc983394d84', exportparts: `${index$1.searchBarParts}, ${index$1.searchModalFirstScreenParts}` }, index.h("div", { key: 'b63cd15fffa92ce9f2783107702b293c087350b3', class: "text-search-container", part: "text-search-container" }, index.h("input", Object.assign({ key: 'dcb2a15f10e3ce65c5e154472179943a8a2732ea', class: "text-search-input", part: "text-search-input", type: "text", placeholder: this.getPlaceholderText(), value: this.state.textSearchQuery || "", onInput: (event) => this.handleInputChange(event), onKeyDown: this.handleKeyDown, onBlur: this.autoSuggestShow ? this.hideSuggestions : undefined }, (this.autoSuggestShow && {
408
+ return (index.h(index.Host, { key: 'a97f9685f46a30ca9ab12396ee1aa01482731370', exportparts: `${index$1.searchBarParts}, ${index$1.searchModalFirstScreenParts}` }, index.h("div", { key: '384e2cc006c0c66b2e50d56631beb538cbaa4f07', class: "text-search-container", part: "text-search-container" }, index.h("input", Object.assign({ key: '5e571ee58eab698531946a19c5e92fb970340d33', class: "text-search-input", part: "text-search-input", type: "text", placeholder: this.getPlaceholderText(), value: this.state.textSearchQuery || "", onInput: (event) => this.handleInputChange(event), onKeyDown: this.handleKeyDown, onBlur: this.autoSuggestShow ? this.hideSuggestions : undefined }, (this.autoSuggestShow && {
409
409
  role: "combobox",
410
410
  "aria-autocomplete": "list",
411
411
  "aria-expanded": this.autoSuggestCompletions.length > 0 &&
@@ -416,11 +416,11 @@ const VviinnTextSearch = class {
416
416
  "aria-activedescendant": this.activeSuggestionIndex >= 0
417
417
  ? `suggestion-${this.activeSuggestionIndex}`
418
418
  : undefined,
419
- }))), this.mode === "extended" && (index.h("vviinn-vps-button", Object.assign({ key: '0102857f6f6f800687f17ace2d90aee1d14cb3eb', token: this.token, locale: this.locale, apiPath: this.apiPath, addStyle: false, showResultsInModal: false, resultsPageUrl: this.resultsPageUrl, resultsPageParams: this.resultsPageParams }, (this.exampleImageSource && {
419
+ }))), this.mode === "extended" && (index.h("vviinn-vps-button", Object.assign({ key: 'a92908b647b3f07546bfa3e3a15f7306374cd59d', token: this.token, locale: this.locale, apiPath: this.apiPath, addStyle: false, showResultsInModal: false, resultsPageUrl: this.resultsPageUrl, resultsPageParams: this.resultsPageParams }, (this.exampleImageSource && {
420
420
  exampleImageSource: this.exampleImageSource,
421
- }), (this.cssUrl != null && { cssUrl: this.cssUrl }), (this.visualSearchMode && { mode: this.visualSearchMode }), { parentSlots: this.slots }))), this.mode === "basic" && (index.h("slot", { key: '2be782a7f2ec3ec21809c9075f495ca4ed3167e8', name: "vviinn-text-search-actions" })), (this.mode === "extended" || this.showInWidget) &&
422
- this.recognition && (index.h("button", { key: '8711e6f5dd1412cef9d9e655f2f9b0e5bebd3272', class: "speech-button", part: "speech-button", "aria-label": store.instance.t("a11y.speechButton"), onClick: this.handleSpeech, onKeyDown: (event) => this.handleButtonKeyDown(event, this.handleSpeech) }, index.h(MicIcon, { key: '66f8b01114ed126495208d6db96050d39a6924f9' }), this.isShowRecording() && (index.h("span", { key: 'afa850af213c41a356aa09dc712e91cf425a4f79', class: "recording-indicator" })))), index.h("button", { key: '8ce59d9f6214e8db235910359069c005066d4a83', class: "text-search-button", part: "text-search-button", onClick: () => this.handleTextSearch(), onKeyDown: (event) => this.handleButtonKeyDown(event, this.handleTextSearch), disabled: this.state.searchStatus === "loading", "aria-label": store.instance.t("a11y.textSearchButton") }, this.isShowPreloader() ? (index.h("vviinn-preloader", null)) : (index.h("slot", { name: "vviinn-text-search-icon" }, index.h(TextSearchIcon, null))))), this.autoSuggestShow &&
423
- renderSuggestions(this.autoSuggestCompletions, this.state.textSearchQuery, this.activeSuggestionIndex, this.selectSuggestion), this.showTooltip && (index.h("p", { key: 'f82df73e88ba1dbf4c86bb1aa56c9a921ab76ee0', class: "text-search-tooltip", part: "text-search-tooltip" }, store.instance.t(this.tooltipText)))));
421
+ }), (this.cssUrl != null && { cssUrl: this.cssUrl }), (this.visualSearchMode && { mode: this.visualSearchMode }), { parentSlots: this.slots }))), this.mode === "basic" && (index.h("slot", { key: '06e20a8744dea22ee8bd51d5a1e37b5e29b0b7f4', name: "vviinn-text-search-actions" })), (this.mode === "extended" || this.showInWidget) &&
422
+ this.recognition && (index.h("button", { key: '1ab2f0acb7137c36231a542234a717e34430474f', class: "speech-button", part: "speech-button", "aria-label": store.instance.t("a11y.speechButton"), onClick: this.handleSpeech, onKeyDown: (event) => this.handleButtonKeyDown(event, this.handleSpeech) }, index.h(MicIcon, { key: 'eb97b29086e9e5ad18b1ff6ac9637b760ae2c83a' }), this.isShowRecording() && (index.h("span", { key: 'dc8cecbb91eaa4a5195727b50919022898630a23', class: "recording-indicator" })))), index.h("button", { key: 'ebd39b8d86ab47cd4fadda6a5ad30c8001bd8c5a', class: "text-search-button", part: "text-search-button", onClick: () => this.handleTextSearch(), onKeyDown: (event) => this.handleButtonKeyDown(event, this.handleTextSearch), disabled: this.state.searchStatus === "loading", "aria-label": store.instance.t("a11y.textSearchButton") }, this.isShowPreloader() ? (index.h("vviinn-preloader", null)) : (index.h("slot", { name: "vviinn-text-search-icon" }, index.h(TextSearchIcon, null))))), this.autoSuggestShow &&
423
+ renderSuggestions(this.autoSuggestCompletions, this.state.textSearchQuery, this.activeSuggestionIndex, this.selectSuggestion), this.showTooltip && (index.h("p", { key: 'd59b3a49c6bda6b2992e3b0aa7bffb4ef674d3b6', class: "text-search-tooltip", part: "text-search-tooltip" }, store.instance.t(this.tooltipText)))));
424
424
  }
425
425
  get el() { return index.getElement(this); }
426
426
  };
@@ -5,6 +5,7 @@ var index$2 = require('./index-CBteD3gC.js');
5
5
  var constants$1 = require('./constants-DHaugTOE.js');
6
6
  var constants = require('./constants-BlwqMvns.js');
7
7
  var index$1 = require('./index-CvMi8_tX.js');
8
+ var cssUrlHelper = require('./cssUrlHelper-BX9kngtZ.js');
8
9
  var store = require('./store-jPZ4ROqV.js');
9
10
 
10
11
  const SearchModalCameraIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true" },
@@ -154,7 +155,7 @@ const VviinnVpsButton = class {
154
155
  }
155
156
  render() {
156
157
  const { ariaLabel, buttonIcon } = this.getButtonConfig();
157
- return (index.h(index.Host, { key: 'b5274974a697ae4d65dc7204c5c35de228625b89', role: this.buttonPressed ? undefined : "button", "aria-label": this.buttonPressed ? undefined : ariaLabel, exportparts: `vviinn-button, ${index$1.searchModalFirstScreenParts}` }, index.h("vviinn-button", { key: '7e7f103a1dacc33b385da58fa1e3d33c10369e09', addStyle: this.addStyle, part: "vviinn-button", tabindex: this.buttonPressed ? undefined : "0", onClick: this.buttonPressed ? undefined : this.handleActivation, onKeyDown: this.buttonPressed ? undefined : this.handleKeyDown }, index.h("slot", { key: 'e23e07b5789a62e7d3cadf407adf2b65a376947b' }, buttonIcon)), index$2.SlotSkeleton("search"), index.h("vviinn-vps-widget", { key: 'd092bd2fc87aaba40cc44a13d050cb309b0cd50c', mode: this.mode, "currency-sign": this.currencySign, token: this.token, locale: this.locale, numberLocale: this.numberLocale, apiPath: this.apiPath, pricePrefix: this.pricePrefix, campaignId: this.campaignId, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, showingInButton: true, buttonPressed: this.buttonPressed, resetVpsButton: this.resetButton, buttonElementId: this.el.id, active: this.buttonPressed &&
158
+ return (index.h(index.Host, { key: '9d0e319edac342158caa501aae1756ade2b92242', role: this.buttonPressed ? undefined : "button", "aria-label": this.buttonPressed ? undefined : ariaLabel, exportparts: `vviinn-button, ${index$1.searchModalFirstScreenParts}` }, cssUrlHelper.renderExternalCSS(this.cssUrl), index.h("vviinn-button", { key: 'f30a55f9bbb705f5a17c925b655fa9210695b18d', addStyle: this.addStyle, part: "vviinn-button", tabindex: this.buttonPressed ? undefined : "0", onClick: this.buttonPressed ? undefined : this.handleActivation, onKeyDown: this.buttonPressed ? undefined : this.handleKeyDown }, index.h("slot", { key: 'e4fe7e8fe94fde3111836c7d0ae227a9a35fd1f4' }, buttonIcon)), index$2.SlotSkeleton("search"), index.h("vviinn-vps-widget", { key: '981a1866d06c8e35d7a9b211bf9f87ad06b85e42', mode: this.mode, "currency-sign": this.currencySign, token: this.token, locale: this.locale, numberLocale: this.numberLocale, apiPath: this.apiPath, pricePrefix: this.pricePrefix, campaignId: this.campaignId, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, showingInButton: true, buttonPressed: this.buttonPressed, resetVpsButton: this.resetButton, buttonElementId: this.el.id, active: this.buttonPressed &&
158
159
  (this.mode === "modal" || this.mode === "camera"), excluded: this.excluded, productDetailsNewTab: this.productDetailsNewTab, productDetailsRedirect: this.productDetailsRedirect, imageResolutionWidth: this.imageResolutionWidth, showMultipleImages: this.showMultipleImages, exampleImageSource: this.exampleImageSource, textSearchShow: this.textSearchShow, autoSuggestShow: this.autoSuggestShow, addToBasketShow: this.addToBasketShow, addPriceContainer: this.addPriceContainer, showIntervalInputs: this.showIntervalInputs, replaceSlotsContentInButton: this.replaceSlotsContent.bind(this), oneClickDiscoveryMode: this.oneClickDiscoveryMode, oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, favoriteShow: this.favoriteShow, showResultsInModal: this.showResultsInModal, resultsPageUrl: this.resultsPageUrl, resultsPageParams: this.resultsPageParams, parentSlots: [...this.parentSlots, ...this.slots], cssUrl: this.cssUrl })));
159
160
  }
160
161
  get el() { return index.getElement(this); }
@@ -267,7 +267,7 @@ export class VviinnTextSearch {
267
267
  }
268
268
  }
269
269
  render() {
270
- return (h(Host, { key: '34d054620af49581af6c5038ccb24fc983394d84', exportparts: `${searchBarParts}, ${searchModalFirstScreenParts}` }, h("div", { key: 'b63cd15fffa92ce9f2783107702b293c087350b3', class: "text-search-container", part: "text-search-container" }, h("input", Object.assign({ key: 'dcb2a15f10e3ce65c5e154472179943a8a2732ea', class: "text-search-input", part: "text-search-input", type: "text", placeholder: this.getPlaceholderText(), value: this.state.textSearchQuery || "", onInput: (event) => this.handleInputChange(event), onKeyDown: this.handleKeyDown, onBlur: this.autoSuggestShow ? this.hideSuggestions : undefined }, (this.autoSuggestShow && {
270
+ return (h(Host, { key: 'a97f9685f46a30ca9ab12396ee1aa01482731370', exportparts: `${searchBarParts}, ${searchModalFirstScreenParts}` }, h("div", { key: '384e2cc006c0c66b2e50d56631beb538cbaa4f07', class: "text-search-container", part: "text-search-container" }, h("input", Object.assign({ key: '5e571ee58eab698531946a19c5e92fb970340d33', class: "text-search-input", part: "text-search-input", type: "text", placeholder: this.getPlaceholderText(), value: this.state.textSearchQuery || "", onInput: (event) => this.handleInputChange(event), onKeyDown: this.handleKeyDown, onBlur: this.autoSuggestShow ? this.hideSuggestions : undefined }, (this.autoSuggestShow && {
271
271
  role: "combobox",
272
272
  "aria-autocomplete": "list",
273
273
  "aria-expanded": this.autoSuggestCompletions.length > 0 &&
@@ -278,11 +278,11 @@ export class VviinnTextSearch {
278
278
  "aria-activedescendant": this.activeSuggestionIndex >= 0
279
279
  ? `suggestion-${this.activeSuggestionIndex}`
280
280
  : undefined,
281
- }))), this.mode === "extended" && (h("vviinn-vps-button", Object.assign({ key: '0102857f6f6f800687f17ace2d90aee1d14cb3eb', token: this.token, locale: this.locale, apiPath: this.apiPath, addStyle: false, showResultsInModal: false, resultsPageUrl: this.resultsPageUrl, resultsPageParams: this.resultsPageParams }, (this.exampleImageSource && {
281
+ }))), this.mode === "extended" && (h("vviinn-vps-button", Object.assign({ key: 'a92908b647b3f07546bfa3e3a15f7306374cd59d', token: this.token, locale: this.locale, apiPath: this.apiPath, addStyle: false, showResultsInModal: false, resultsPageUrl: this.resultsPageUrl, resultsPageParams: this.resultsPageParams }, (this.exampleImageSource && {
282
282
  exampleImageSource: this.exampleImageSource,
283
- }), (this.cssUrl != null && { cssUrl: this.cssUrl }), (this.visualSearchMode && { mode: this.visualSearchMode }), { parentSlots: this.slots }))), this.mode === "basic" && (h("slot", { key: '2be782a7f2ec3ec21809c9075f495ca4ed3167e8', name: "vviinn-text-search-actions" })), (this.mode === "extended" || this.showInWidget) &&
284
- this.recognition && (h("button", { key: '8711e6f5dd1412cef9d9e655f2f9b0e5bebd3272', class: "speech-button", part: "speech-button", "aria-label": i18next.t("a11y.speechButton"), onClick: this.handleSpeech, onKeyDown: (event) => this.handleButtonKeyDown(event, this.handleSpeech) }, h(MicIcon, { key: '66f8b01114ed126495208d6db96050d39a6924f9' }), this.isShowRecording() && (h("span", { key: 'afa850af213c41a356aa09dc712e91cf425a4f79', class: "recording-indicator" })))), h("button", { key: '8ce59d9f6214e8db235910359069c005066d4a83', class: "text-search-button", part: "text-search-button", onClick: () => this.handleTextSearch(), onKeyDown: (event) => this.handleButtonKeyDown(event, this.handleTextSearch), disabled: this.state.searchStatus === "loading", "aria-label": i18next.t("a11y.textSearchButton") }, this.isShowPreloader() ? (h("vviinn-preloader", null)) : (h("slot", { name: "vviinn-text-search-icon" }, h(TextSearchIcon, null))))), this.autoSuggestShow &&
285
- renderSuggestions(this.autoSuggestCompletions, this.state.textSearchQuery, this.activeSuggestionIndex, this.selectSuggestion), this.showTooltip && (h("p", { key: 'f82df73e88ba1dbf4c86bb1aa56c9a921ab76ee0', class: "text-search-tooltip", part: "text-search-tooltip" }, i18next.t(this.tooltipText)))));
283
+ }), (this.cssUrl != null && { cssUrl: this.cssUrl }), (this.visualSearchMode && { mode: this.visualSearchMode }), { parentSlots: this.slots }))), this.mode === "basic" && (h("slot", { key: '06e20a8744dea22ee8bd51d5a1e37b5e29b0b7f4', name: "vviinn-text-search-actions" })), (this.mode === "extended" || this.showInWidget) &&
284
+ this.recognition && (h("button", { key: '1ab2f0acb7137c36231a542234a717e34430474f', class: "speech-button", part: "speech-button", "aria-label": i18next.t("a11y.speechButton"), onClick: this.handleSpeech, onKeyDown: (event) => this.handleButtonKeyDown(event, this.handleSpeech) }, h(MicIcon, { key: 'eb97b29086e9e5ad18b1ff6ac9637b760ae2c83a' }), this.isShowRecording() && (h("span", { key: 'dc8cecbb91eaa4a5195727b50919022898630a23', class: "recording-indicator" })))), h("button", { key: 'ebd39b8d86ab47cd4fadda6a5ad30c8001bd8c5a', class: "text-search-button", part: "text-search-button", onClick: () => this.handleTextSearch(), onKeyDown: (event) => this.handleButtonKeyDown(event, this.handleTextSearch), disabled: this.state.searchStatus === "loading", "aria-label": i18next.t("a11y.textSearchButton") }, this.isShowPreloader() ? (h("vviinn-preloader", null)) : (h("slot", { name: "vviinn-text-search-icon" }, h(TextSearchIcon, null))))), this.autoSuggestShow &&
285
+ renderSuggestions(this.autoSuggestCompletions, this.state.textSearchQuery, this.activeSuggestionIndex, this.selectSuggestion), this.showTooltip && (h("p", { key: 'd59b3a49c6bda6b2992e3b0aa7bffb4ef674d3b6', class: "text-search-tooltip", part: "text-search-tooltip" }, i18next.t(this.tooltipText)))));
286
286
  }
287
287
  static get is() { return "vviinn-text-search"; }
288
288
  static get encapsulation() { return "shadow"; }
@@ -6,6 +6,7 @@ import { initializeLocale } from "../../locale";
6
6
  import { useSearchStore } from "../../store/search.store";
7
7
  import { DISCOVERY_WIDGET_IMAGE_RESOLUTION_WIDTH, PRODUCT_CARD_IMAGE_WIDTH, SIDEBAR_ANIMATION_DURATION, } from "../../widget/constants";
8
8
  import { addEventListenersWithSignal } from "../../dom";
9
+ import { renderExternalCSS } from "../../utils/cssUrl/cssUrlHelper";
9
10
  /**
10
11
  * @part button - Clickable button element.
11
12
  * @part vviinn-button - Button element container.
@@ -213,7 +214,7 @@ export class VviinnVprButton {
213
214
  }
214
215
  }
215
216
  render() {
216
- return (h(Host, { key: 'e1d8ff31a915dc5aef78838bd4f84e2e416b0953', role: "button", tabindex: "0", "aria-label": this.getAriaLabel(), onClick: this.handleButtonClick, onKeyDown: this.handleKeyDown }, h("vviinn-button", { key: 'b5178a6135d508c7b1f04ab159e7c8117ee986af', addStyle: this.addStyle, part: "vviinn-button" }, h("slot", { key: '882bd8cfa3a809e99bb4a1162e8988d49b327113' }, this.campaignType === "VCS" ? (h(CrossSellingIcon, { width: this.iconSideSize, height: this.iconSideSize })) : (h(SimilarProductsIcon, { width: this.iconSideSize, height: this.iconSideSize }))))));
217
+ return (h(Host, { key: '2d6cd8ecdeadf7205ad1b9b7170dc5ad28d43c3b', role: "button", tabindex: "0", "aria-label": this.getAriaLabel(), onClick: this.handleButtonClick, onKeyDown: this.handleKeyDown }, renderExternalCSS(this.cssUrl), h("vviinn-button", { key: 'f6852f2eb943f40d692bf5e0609a5ac1628f598f', addStyle: this.addStyle, part: "vviinn-button" }, h("slot", { key: '5f934ba1ef44cb5133dcf2a843429c5f92858514' }, this.campaignType === "VCS" ? (h(CrossSellingIcon, { width: this.iconSideSize, height: this.iconSideSize })) : (h(SimilarProductsIcon, { width: this.iconSideSize, height: this.iconSideSize }))))));
217
218
  }
218
219
  handleClick() {
219
220
  const sidebar = document.createElement("vviinn-recommendations-sidebar");
@@ -5,6 +5,7 @@ import { DEFAULT_EXAMPLE_IMAGE } from "../../assets/constants";
5
5
  import { findSlotElements } from "../../dom";
6
6
  import { SEARCH_WIDGET_IMAGE_RESOLUTION_WIDTH } from "../../widget/constants";
7
7
  import { searchModalFirstScreenParts } from "../../cssParts";
8
+ import { renderExternalCSS } from "../../utils/cssUrl/cssUrlHelper";
8
9
  import i18next from "i18next";
9
10
  import { initializeLocale } from "../../locale";
10
11
  /**
@@ -204,7 +205,7 @@ export class VviinnVpsButton {
204
205
  }
205
206
  render() {
206
207
  const { ariaLabel, buttonIcon } = this.getButtonConfig();
207
- return (h(Host, { key: 'b5274974a697ae4d65dc7204c5c35de228625b89', role: this.buttonPressed ? undefined : "button", "aria-label": this.buttonPressed ? undefined : ariaLabel, exportparts: `vviinn-button, ${searchModalFirstScreenParts}` }, h("vviinn-button", { key: '7e7f103a1dacc33b385da58fa1e3d33c10369e09', addStyle: this.addStyle, part: "vviinn-button", tabindex: this.buttonPressed ? undefined : "0", onClick: this.buttonPressed ? undefined : this.handleActivation, onKeyDown: this.buttonPressed ? undefined : this.handleKeyDown }, h("slot", { key: 'e23e07b5789a62e7d3cadf407adf2b65a376947b' }, buttonIcon)), SlotSkeleton("search"), h("vviinn-vps-widget", { key: 'd092bd2fc87aaba40cc44a13d050cb309b0cd50c', mode: this.mode, "currency-sign": this.currencySign, token: this.token, locale: this.locale, numberLocale: this.numberLocale, apiPath: this.apiPath, pricePrefix: this.pricePrefix, campaignId: this.campaignId, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, showingInButton: true, buttonPressed: this.buttonPressed, resetVpsButton: this.resetButton, buttonElementId: this.el.id, active: this.buttonPressed &&
208
+ return (h(Host, { key: '9d0e319edac342158caa501aae1756ade2b92242', role: this.buttonPressed ? undefined : "button", "aria-label": this.buttonPressed ? undefined : ariaLabel, exportparts: `vviinn-button, ${searchModalFirstScreenParts}` }, renderExternalCSS(this.cssUrl), h("vviinn-button", { key: 'f30a55f9bbb705f5a17c925b655fa9210695b18d', addStyle: this.addStyle, part: "vviinn-button", tabindex: this.buttonPressed ? undefined : "0", onClick: this.buttonPressed ? undefined : this.handleActivation, onKeyDown: this.buttonPressed ? undefined : this.handleKeyDown }, h("slot", { key: 'e4fe7e8fe94fde3111836c7d0ae227a9a35fd1f4' }, buttonIcon)), SlotSkeleton("search"), h("vviinn-vps-widget", { key: '981a1866d06c8e35d7a9b211bf9f87ad06b85e42', mode: this.mode, "currency-sign": this.currencySign, token: this.token, locale: this.locale, numberLocale: this.numberLocale, apiPath: this.apiPath, pricePrefix: this.pricePrefix, campaignId: this.campaignId, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, showingInButton: true, buttonPressed: this.buttonPressed, resetVpsButton: this.resetButton, buttonElementId: this.el.id, active: this.buttonPressed &&
208
209
  (this.mode === "modal" || this.mode === "camera"), excluded: this.excluded, productDetailsNewTab: this.productDetailsNewTab, productDetailsRedirect: this.productDetailsRedirect, imageResolutionWidth: this.imageResolutionWidth, showMultipleImages: this.showMultipleImages, exampleImageSource: this.exampleImageSource, textSearchShow: this.textSearchShow, autoSuggestShow: this.autoSuggestShow, addToBasketShow: this.addToBasketShow, addPriceContainer: this.addPriceContainer, showIntervalInputs: this.showIntervalInputs, replaceSlotsContentInButton: this.replaceSlotsContent.bind(this), oneClickDiscoveryMode: this.oneClickDiscoveryMode, oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, favoriteShow: this.favoriteShow, showResultsInModal: this.showResultsInModal, resultsPageUrl: this.resultsPageUrl, resultsPageParams: this.resultsPageParams, parentSlots: [...this.parentSlots, ...this.slots], cssUrl: this.cssUrl })));
209
210
  }
210
211
  static get is() { return "vviinn-vps-button"; }
@@ -173,11 +173,19 @@ export class VviinnVpsWidget {
173
173
  this.uploadSource = uploadSource;
174
174
  };
175
175
  this.handleVviinnImageUploadFinished = (detail) => {
176
+ const visualSearchRedirect = this.state.redirect;
177
+ const hasVisualSearchRedirect = !!(visualSearchRedirect === null || visualSearchRedirect === void 0 ? void 0 : visualSearchRedirect.url) &&
178
+ visualSearchRedirect.searchId === detail.searchId;
179
+ if (hasVisualSearchRedirect) {
180
+ this.handleImageSearchRedirect(visualSearchRedirect.url, detail.searchId);
181
+ return;
182
+ }
176
183
  const shouldRedirectToResultsPage = this.resultsPageUrl &&
177
184
  !this.showInWidget &&
178
185
  !isOnResultsPage(this.resultsPageUrl);
179
186
  if (shouldRedirectToResultsPage) {
180
- this.handleImageSearchRedirect(detail.searchId);
187
+ const url = buildImageSearchRedirectUrl(this.resultsPageUrl, detail.searchId, parseResultsPageParamNames(this.resultsPageParams).searchId);
188
+ this.handleImageSearchRedirect(url, detail.searchId);
181
189
  return;
182
190
  }
183
191
  this.handleImageSelection();
@@ -328,8 +336,7 @@ export class VviinnVpsWidget {
328
336
  isResultSlide() {
329
337
  return this.slidePosition === 1;
330
338
  }
331
- handleImageSearchRedirect(searchId) {
332
- const url = buildImageSearchRedirectUrl(this.resultsPageUrl, searchId, parseResultsPageParamNames(this.resultsPageParams).searchId);
339
+ handleImageSearchRedirect(url, searchId) {
333
340
  const redirectData = Object.assign(Object.assign({}, this.getBasicEventData()), { url, source: "visual-search", searchId });
334
341
  const event = this.vviinnRedirect.emit(redirectData);
335
342
  if (!event.defaultPrevented) {
@@ -511,31 +518,31 @@ export class VviinnVpsWidget {
511
518
  }
512
519
  render() {
513
520
  var _a, _b, _c;
514
- return (h(Host, { key: '01b4f049543923fb986fc0100118312b076215a1', exportparts: `${modalParts}, ${productCardParts}, ${searchBarParts}, ${searchWidgetFilterParts}, ${searchWidgetButtonParts}, ${productCardsGridPart}, ${suggestionsParts}` }, renderExternalCSS(this.cssUrl), !this.showingInButton && SlotSkeleton("search"), h("vviinn-overlayed-modal", { key: 'c6f39d506801e5b19aedd62d24d7c80ecddf6c0a', class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState, onVviinnWidgetClose: ({ detail }) => {
521
+ return (h(Host, { key: '0985a289b00fca5286466be2d4f33ef7d32c49cb', exportparts: `${modalParts}, ${productCardParts}, ${searchBarParts}, ${searchWidgetFilterParts}, ${searchWidgetButtonParts}, ${productCardsGridPart}, ${suggestionsParts}` }, renderExternalCSS(this.cssUrl), !this.showingInButton && SlotSkeleton("search"), h("vviinn-overlayed-modal", { key: '42c48cf9f6414ccd23705ad4a1ca2dcccf6aa65f', class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState, onVviinnWidgetClose: ({ detail }) => {
515
522
  if (detail.campaignTypeId !== "VPR")
516
523
  this.handleModalClose();
517
524
  }, buttonElementId: (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.widgetElementId, widgetVersion: version, hideBackButton: this.mode === "upload" ||
518
- (!this.isCameraEnabled && this.isOnboardingSlide()) }, h("vviinn-slider", { key: '07b98067fda24f46e1b34ea8a27a107b0e7cc925', position: this.slidePosition }, h("vviinn-slide", { key: '373b868d121f435fae72799e1d5aed63719bc44a', class: {
525
+ (!this.isCameraEnabled && this.isOnboardingSlide()) }, h("vviinn-slider", { key: '399dac9c2c005efad3c3506dd84f7bcf9c550eaf', position: this.slidePosition }, h("vviinn-slide", { key: '832f2287e46f4edaeade004325106fecbdb3e618', class: {
519
526
  "start-page": true,
520
527
  "camera-enabled": this.isCameraEnabled,
521
- } }, h("vviinn-camera", { key: '57871a635ec0c3f8fe92e0d983b154f659afff01', token: this.token, onVviinnImageUploadFinished: ({ detail }) => this.handleVviinnImageUploadFinished(detail), onVviinnImageUploadStarted: () => {
528
+ } }, h("vviinn-camera", { key: 'fee0491b5660c7f4c61796bfc647edf6c1121ed6', token: this.token, onVviinnImageUploadFinished: ({ detail }) => this.handleVviinnImageUploadFinished(detail), onVviinnImageUploadStarted: () => {
522
529
  this.handleVviinnImageUpload("startCamera");
523
- }, apiPath: this.apiPath, basicEventData: this.getBasicEventData(), srcObject: this.stream, cameraButtonClicked: this.isCameraButtonClicked, exampleImageSource: this.exampleImageSource, showInWidget: this.showInWidget, storeName: this.storeName, state: this.state }), h("div", { key: '5999da46ea9baeac815578fb2112af5d9248219a', class: {
530
+ }, apiPath: this.apiPath, basicEventData: this.getBasicEventData(), srcObject: this.stream, cameraButtonClicked: this.isCameraButtonClicked, exampleImageSource: this.exampleImageSource, showInWidget: this.showInWidget, storeName: this.storeName, state: this.state }), h("div", { key: 'f5e463f64ac999e3b7bded376a0f12406ad3869d', class: {
524
531
  error: this.haveErrors(),
525
- }, id: "start-page_block" }, h("div", { key: '63c7fbcbffa30eabe9bf6e1cb58b5cd55cd01bd0', class: "start-page_main-content" }, (this.wrongImageFormat ||
526
- this.state.searchStatus === "error") && (h("div", { key: '5aa9c7d3d7ff2cb5d3041f680b18a0356d60f61e', class: "start-page_errors-block" }, this.getCurrentErrorType() && (h("vviinn-error", { key: '686db18d4492c958f5236b0b2e76f2d39e9a08d4', errorType: this.getCurrentErrorType(), handler: this.resetState, hasBackground: true, searchType: this.state.searchType })))), !this.haveErrors() && (h(Fragment, { key: 'f0bbc9a11f5595b87b70add2f18169d0e985e4d6' }, h("vviinn-teaser", { key: '41e84754db32d28f8cfe0666c10ffadd96805e61' }), h("div", { key: '575c73b2ddbcb508af636f381b819c2b112d2b06', class: "buttons-group" }, this.renderButtons()), this.textSearchShow && !this.isResultSlide() && (h("vviinn-text-search", { key: 'ccb9709e6a796c29668954ea6988d5111c8ac5e5', token: this.token, apiPath: this.apiPath, locale: this.locale, showInWidget: this.showInWidget, showOnFirstScreen: true, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), resultsPageUrl: this.resultsPageUrl, autoSuggestShow: this.autoSuggestShow, "save-image-mode": "never" }))))), h("vviinn-privacy-badge", { key: '47e8a7b3bec65c2758ecaf65f0cc8d9af6ea188d', privacyBadgeText: i18next.t("privacyBadgeText", {
532
+ }, id: "start-page_block" }, h("div", { key: '155a80658288afe387d77f1140819fa72134a42e', class: "start-page_main-content" }, (this.wrongImageFormat ||
533
+ this.state.searchStatus === "error") && (h("div", { key: '3c948759b2b3b264008d814d8c711cba759f0042', class: "start-page_errors-block" }, this.getCurrentErrorType() && (h("vviinn-error", { key: '6ded7b63230680c53893a571100ad63787db36e8', errorType: this.getCurrentErrorType(), handler: this.resetState, hasBackground: true, searchType: this.state.searchType })))), !this.haveErrors() && (h(Fragment, { key: '14c56d10d2df3af3f32b37aa10bc687bc4a52617' }, h("vviinn-teaser", { key: '99092cc741e26cb2f1101fa4bb5ff219017c7be9' }), h("div", { key: '77cf9e9e82a38e9fc9de074c3d02dda473d604ac', class: "buttons-group" }, this.renderButtons()), this.textSearchShow && !this.isResultSlide() && (h("vviinn-text-search", { key: '9393d8afb3ae1bbc3ed1d6f4f6461356dd3be912', token: this.token, apiPath: this.apiPath, locale: this.locale, showInWidget: this.showInWidget, showOnFirstScreen: true, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), resultsPageUrl: this.resultsPageUrl, autoSuggestShow: this.autoSuggestShow, "save-image-mode": "never" }))))), h("vviinn-privacy-badge", { key: '4c381e57c33d18a5736af7ad54a3512ba1ace512', privacyBadgeText: i18next.t("privacyBadgeText", {
527
534
  interpolation: { escapeValue: false },
528
- }), class: { invisible: this.haveErrors() } }))), h("vviinn-slide", { key: '90b4dbc609191dc60a723d8c1c76eac581ef0ff7', class: {
535
+ }), class: { invisible: this.haveErrors() } }))), h("vviinn-slide", { key: 'c3f7ea7984ce33f702153878f378be802adb8258', class: {
529
536
  "results-page": true,
530
537
  active: this.isResultSlide(),
531
- } }, this.isResultSlide() && (h("div", { key: '0b4410683c1d777267f6277986675f132d6fb389', class: "source-wrapper" }, this.isTextSearch() && (h("vviinn-text-search", { key: '2084be2aa14b17922a1cfa046df7c646935e0d13', token: this.token, showInWidget: this.showInWidget, apiPath: this.apiPath, locale: this.locale, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), resultsPageUrl: this.resultsPageUrl, autoSuggestShow: this.autoSuggestShow, "save-image-mode": "never" })), !this.isTextSearch() && (h("vviinn-cropper", { key: 'de6347c097358595f025e745911d40c166d6c7b1', token: this.token, basicEventData: this.getBasicEventData(), showAspectRatioError: this.showAspectRatioError, apiPath: this.apiPath, showInWidget: this.showInWidget, "save-image-mode": "never" })), h("vviinn-suggestions", { key: '33be481c722028ab35af64b68447ba99c9e3ceb8', showInWidget: this.showInWidget, token: this.token, apiPath: this.apiPath, locale: this.locale }), h("vviinn-selected-filters", { key: '868951037f06f2beb6f8b0f497f15797e166db34', locale: this.locale, currencySign: this.currencySign, showInWidget: this.showInWidget, exportparts: filtersParts }), ((_b = this.state.dynamicFilters) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h("div", { key: '464ce9e0159ac8b5da45122c55953e80d940383b', class: {
538
+ } }, this.isResultSlide() && (h("div", { key: 'cd8ec6519b09395d2b4926301bfeec3dc91d2ac6', class: "source-wrapper" }, this.isTextSearch() && (h("vviinn-text-search", { key: '96e71f8fb6f1c682f872e76f2b9dd5616d767934', token: this.token, showInWidget: this.showInWidget, apiPath: this.apiPath, locale: this.locale, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), resultsPageUrl: this.resultsPageUrl, autoSuggestShow: this.autoSuggestShow, "save-image-mode": "never" })), !this.isTextSearch() && (h("vviinn-cropper", { key: '4aabf6d68425e50b277c15c881c40bea2e4d38b1', token: this.token, basicEventData: this.getBasicEventData(), showAspectRatioError: this.showAspectRatioError, apiPath: this.apiPath, showInWidget: this.showInWidget, "save-image-mode": "never" })), h("vviinn-suggestions", { key: 'ca8f970dbd2f3b1824f80feb7477b3d34b8b5ed1', showInWidget: this.showInWidget, token: this.token, apiPath: this.apiPath, locale: this.locale }), h("vviinn-selected-filters", { key: '44ff0a2c8dea93a3b5c2cd593b34dc20a4b115b4', locale: this.locale, currencySign: this.currencySign, showInWidget: this.showInWidget, exportparts: filtersParts }), ((_b = this.state.dynamicFilters) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h("div", { key: 'dbf0b1c1a240f60931b1b75d8b76806e071f359f', class: {
532
539
  "filters-wrapper": true,
533
540
  hidden: this.showAspectRatioError,
534
- } }, h("vviinn-filters", { key: 'd9549d22f88bb270d4e3221faf545caa6a2bcb12', showInWidget: this.showInWidget, showIntervalInputs: this.showIntervalInputs }), h("vviinn-extended-filters", { key: 'c1c78c38dd71beab583fa7f68d294d23b2d59c44', mode: "preview", showHeader: false, showInWidget: this.showInWidget, locale: this.locale, currencySign: this.currencySign, showIntervalInputs: this.showIntervalInputs }), h("vviinn-extended-filters-button", { key: 'ade4464be96dccd368c4f0e580bb1fec968dbd01', class: {
541
+ } }, h("vviinn-filters", { key: '801f6aab643da44e564f062fddeb14811eca70bd', showInWidget: this.showInWidget, showIntervalInputs: this.showIntervalInputs }), h("vviinn-extended-filters", { key: '36a32875a0532cbf7148720df7a743bb0159e51e', mode: "preview", showHeader: false, showInWidget: this.showInWidget, locale: this.locale, currencySign: this.currencySign, showIntervalInputs: this.showIntervalInputs }), h("vviinn-extended-filters-button", { key: '148bf202a89af93e8cd88a612d585d0849a3d7de', class: {
535
542
  "extended-filters-button": true,
536
543
  "has-primary-filters": this.state.dynamicFilters.filter((f) => f.isPrimary)
537
544
  .length > 0,
538
- }, showInWidget: this.showInWidget }))))), this.isResultSlide() && (h(Fragment, { key: '36a3a9853b096df62fb977a5799cc7c863f93ca5' }, h("vviinn-results", { key: 'd38adf77a1e2988233991fbc7d2d9beedc7e0375', token: this.token, locale: this.locale, numberLocale: this.numberLocale, pricePrefix: this.pricePrefix, "currency-sign": this.currencySign, apiPath: this.apiPath, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, uiSessionId: this.uiSessionId, widgetElementId: (_c = this.buttonElementId) !== null && _c !== void 0 ? _c : this.widgetElementId, showInWidget: this.showInWidget, buttonElementId: this.buttonElementId, imageResolutionWidth: this.imageResolutionWidth, showMultipleImages: this.showMultipleImages, productDetailsNewTab: this.productDetailsNewTab, productDetailsRedirect: this.productDetailsRedirect, addToBasketShow: this.addToBasketShow, favoriteShow: this.favoriteShow, showAspectRatioError: this.showAspectRatioError, resetWidgetState: this.resetState, replaceSlotsContentInWidget: this.replaceSlotsContent.bind(this), replaceSlotsContentInButton: this.replaceSlotsContentInButton, addPriceContainer: this.addPriceContainer, oneClickDiscoveryMode: this.oneClickDiscoveryMode, oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, parentSlots: [...this.parentSlots, ...this.slots], scrollableModalBody: this.modalBody }))))), h("vviinn-extended-filters", { key: 'e40f196666c92c3813ca883732d6e155b7e181d7', class: "modal-extended-filters", mode: "modal", exportparts: extendedFiltersParts, showInWidget: this.showInWidget, locale: this.locale, currencySign: this.currencySign, showIntervalInputs: this.showIntervalInputs }))));
545
+ }, showInWidget: this.showInWidget }))))), this.isResultSlide() && (h(Fragment, { key: '263743fba6b324f47a1fae12648995bdef73aa25' }, h("vviinn-results", { key: '977140130b3b8dafaac6ae428c2b9f013de37d00', token: this.token, locale: this.locale, numberLocale: this.numberLocale, pricePrefix: this.pricePrefix, "currency-sign": this.currencySign, apiPath: this.apiPath, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, uiSessionId: this.uiSessionId, widgetElementId: (_c = this.buttonElementId) !== null && _c !== void 0 ? _c : this.widgetElementId, showInWidget: this.showInWidget, buttonElementId: this.buttonElementId, imageResolutionWidth: this.imageResolutionWidth, showMultipleImages: this.showMultipleImages, productDetailsNewTab: this.productDetailsNewTab, productDetailsRedirect: this.productDetailsRedirect, addToBasketShow: this.addToBasketShow, favoriteShow: this.favoriteShow, showAspectRatioError: this.showAspectRatioError, resetWidgetState: this.resetState, replaceSlotsContentInWidget: this.replaceSlotsContent.bind(this), replaceSlotsContentInButton: this.replaceSlotsContentInButton, addPriceContainer: this.addPriceContainer, oneClickDiscoveryMode: this.oneClickDiscoveryMode, oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, parentSlots: [...this.parentSlots, ...this.slots], scrollableModalBody: this.modalBody }))))), h("vviinn-extended-filters", { key: '24d12faff2641fd61a4d13d7303734f1770120b2', class: "modal-extended-filters", mode: "modal", exportparts: extendedFiltersParts, showInWidget: this.showInWidget, locale: this.locale, currencySign: this.currencySign, showIntervalInputs: this.showIntervalInputs }))));
539
546
  }
540
547
  static get is() { return "vviinn-vps-widget"; }
541
548
  static get encapsulation() { return "shadow"; }
@@ -121,6 +121,8 @@ const updateVisualSearchState = (store, isHiResUpdate = false) => async (respons
121
121
  state.visualSearchId = response.requestId;
122
122
  state.results = response.data.products;
123
123
  state.dynamicFilters = dynamicFilters;
124
+ state.redirect = response.interactions.redirect
125
+ ? Object.assign(Object.assign({}, response.interactions.redirect), { searchId: response.requestId }) : null;
124
126
  const extractedFilters = extractSelectedFilters(dynamicFilters);
125
127
  if (state.requestFilters.length === 0 && extractedFilters.length > 0) {
126
128
  state.requestFilters = extractedFilters;
@@ -0,0 +1,5 @@
1
+ import { h } from './index-RkvPN2Rk.js';
2
+
3
+ const renderExternalCSS = (cssUrl) => (cssUrl === null || cssUrl === void 0 ? void 0 : cssUrl.length) ? h("link", { href: cssUrl, rel: "stylesheet" }) : null;
4
+
5
+ export { renderExternalCSS as r };
@@ -1,5 +1,5 @@
1
1
  import { h } from './index-RkvPN2Rk.js';
2
- import { j as addIfNotEmpty, p as parseStringToExcluded, o as isValueMatch, q as isIntervalMatch, r as valueToString, t as extractFilterValue } from './search.store-Bof_HKxz.js';
2
+ import { j as addIfNotEmpty, p as parseStringToExcluded, o as isValueMatch, q as isIntervalMatch, r as valueToString, t as extractFilterValue } from './search.store-DUkS1MAq.js';
3
3
  import { i as instance } from './store-BJxQCbNV.js';
4
4
 
5
5
  const PlusIcon = () => (h("svg", { width: "32", height: "32", viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: "plus-icon", "aria-hidden": "true" },