vviinn-widgets 2.216.2 → 2.217.1

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 (76) hide show
  1. package/dist/cjs/{index-BM7VfZ_J.js → index-KB8ruJQe.js} +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/resultsPageUrl-Cki7CFQz.js +45 -0
  4. package/dist/cjs/{search.store-DX5IRC4l.js → search.store-C82VhK1A.js} +13 -7
  5. package/dist/cjs/vviinn-button_6.cjs.entry.js +4 -4
  6. package/dist/cjs/vviinn-camera_12.cjs.entry.js +23 -21
  7. package/dist/cjs/vviinn-carousel_10.cjs.entry.js +15 -11
  8. package/dist/cjs/vviinn-shop-the-look.cjs.entry.js +2 -2
  9. package/dist/cjs/vviinn-text-search.cjs.entry.js +21 -15
  10. package/dist/cjs/vviinn-vps-button.cjs.entry.js +3 -3
  11. package/dist/cjs/vviinn-widgets.cjs.js +1 -1
  12. package/dist/collection/components/vviinn-carousel/vviinn-carousel.js +3 -5
  13. package/dist/collection/components/vviinn-results/stories/ResultsTemplate.js +3 -1
  14. package/dist/collection/components/vviinn-results/vviinn-results.js +24 -5
  15. package/dist/collection/components/vviinn-shop-the-look/vviinn-shop-the-look.js +1 -1
  16. package/dist/collection/components/vviinn-suggestions/render-helpers.js +4 -2
  17. package/dist/collection/components/vviinn-text-search/helpers/handleSuggestionsKeyDown.js +1 -1
  18. package/dist/collection/components/vviinn-text-search/helpers/renderSuggestions.js +5 -6
  19. package/dist/collection/components/vviinn-text-search/vviinn-text-search.js +34 -8
  20. package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js +4 -4
  21. package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-widget.js +10 -4
  22. package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +23 -4
  23. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +33 -14
  24. package/dist/collection/helpers/url/resultsPageUrl.js +24 -7
  25. package/dist/collection/helpers/url/resultsPageUrl.test.js +63 -1
  26. package/dist/collection/store/search.store.js +13 -6
  27. package/dist/esm/{index-CmCUlnFh.js → index-CMX-QEzm.js} +1 -1
  28. package/dist/esm/loader.js +1 -1
  29. package/dist/esm/resultsPageUrl-DbOxfJSz.js +39 -0
  30. package/dist/esm/{search.store-B0ZhYtWV.js → search.store-Bof_HKxz.js} +13 -7
  31. package/dist/esm/vviinn-button_6.entry.js +4 -4
  32. package/dist/esm/vviinn-camera_12.entry.js +23 -21
  33. package/dist/esm/vviinn-carousel_10.entry.js +15 -11
  34. package/dist/esm/vviinn-shop-the-look.entry.js +2 -2
  35. package/dist/esm/vviinn-text-search.entry.js +21 -15
  36. package/dist/esm/vviinn-vps-button.entry.js +3 -3
  37. package/dist/esm/vviinn-widgets.js +1 -1
  38. package/dist/types/components/vviinn-filters/helpers/syncRequestFilters.d.ts +3 -1
  39. package/dist/types/components/vviinn-results/vviinn-results.d.ts +2 -0
  40. package/dist/types/components/vviinn-text-search/vviinn-text-search.d.ts +2 -0
  41. package/dist/types/components/vviinn-vps-button/vviinn-vps-button.d.ts +3 -1
  42. package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +3 -1
  43. package/dist/types/components.d.ts +36 -4
  44. package/dist/types/helpers/url/resultsPageUrl.d.ts +9 -3
  45. package/dist/types/store/search.store.d.ts +8 -4
  46. package/{www/build/p-a3829a7f.entry.js → dist/vviinn-widgets/p-5ee404fb.entry.js} +1 -1
  47. package/{www/build/p-c64a4923.entry.js → dist/vviinn-widgets/p-756d201c.entry.js} +1 -1
  48. package/dist/vviinn-widgets/{p-1e7d7fc8.entry.js → p-97099d69.entry.js} +1 -1
  49. package/dist/vviinn-widgets/{p-DIMfQtwJ.js → p-DM6fTGU7.js} +1 -1
  50. package/dist/vviinn-widgets/p-DbOxfJSz.js +1 -0
  51. package/dist/vviinn-widgets/p-dcaf6f35.entry.js +1 -0
  52. package/dist/vviinn-widgets/p-e4c19fc9.entry.js +1 -0
  53. package/dist/vviinn-widgets/{p-B--7xBdV.js → p-elxMiKkD.js} +1 -1
  54. package/dist/vviinn-widgets/{p-df67781e.entry.js → p-fbbf34ba.entry.js} +1 -1
  55. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  56. package/package.json +1 -1
  57. package/{dist/vviinn-widgets/p-a3829a7f.entry.js → www/build/p-5ee404fb.entry.js} +1 -1
  58. package/{dist/vviinn-widgets/p-c64a4923.entry.js → www/build/p-756d201c.entry.js} +1 -1
  59. package/www/build/{p-1e7d7fc8.entry.js → p-97099d69.entry.js} +1 -1
  60. package/www/build/{p-DIMfQtwJ.js → p-DM6fTGU7.js} +1 -1
  61. package/www/build/p-DbOxfJSz.js +1 -0
  62. package/www/build/p-dcaf6f35.entry.js +1 -0
  63. package/www/build/p-e4c19fc9.entry.js +1 -0
  64. package/www/build/{p-B--7xBdV.js → p-elxMiKkD.js} +1 -1
  65. package/www/build/{p-df67781e.entry.js → p-fbbf34ba.entry.js} +1 -1
  66. package/www/build/{p-64d1f5a3.js → p-fff4758a.js} +1 -1
  67. package/www/build/vviinn-widgets.esm.js +1 -1
  68. package/www/index.html +1 -1
  69. package/dist/cjs/resultsPageUrl-BMlvrFCW.js +0 -27
  70. package/dist/esm/resultsPageUrl-niHq9WT6.js +0 -22
  71. package/dist/vviinn-widgets/p-137944e9.entry.js +0 -1
  72. package/dist/vviinn-widgets/p-2b96382d.entry.js +0 -1
  73. package/dist/vviinn-widgets/p-niHq9WT6.js +0 -1
  74. package/www/build/p-137944e9.entry.js +0 -1
  75. package/www/build/p-2b96382d.entry.js +0 -1
  76. package/www/build/p-niHq9WT6.js +0 -1
@@ -184,8 +184,7 @@ export class VviinnVprWidget {
184
184
  (_a = this.setRecommendationsLoading) === null || _a === void 0 ? void 0 : _a.call(this, loading);
185
185
  };
186
186
  this.showNoResultText = () => !this.recommendationsLoading &&
187
- (this.recommendations.length === 0 ||
188
- this.hasErrorOnLoad);
187
+ (this.recommendations.length === 0 || this.hasErrorOnLoad);
189
188
  this.productCardEventDataToEventBody = (eventData) => {
190
189
  const { productRank, productId, campaignTypeId, discount } = eventData, rest = __rest(eventData, ["productRank", "productId", "campaignTypeId", "discount"]);
191
190
  return Object.assign({ session_id: this.uiSessionId, rank: productRank, product: productId }, rest);
@@ -427,9 +426,16 @@ export class VviinnVprWidget {
427
426
  empty: this.recommendations.length == 0,
428
427
  [this.mode]: true,
429
428
  "show-in-widget": this.showInWidget,
430
- }, role: "region", "aria-label": !this.showingInButton ? i18next.t("a11y.recommendations") : undefined, "aria-busy": isLoading ? "true" : "false", "aria-live": isLoading ? "polite" : "off" }, h(Fragment, null, renderExternalCSS(this.cssUrl), SlotSkeleton("discovery"), (this.isSetMode || this.blockTitle !== "" || !!this.blockSubtitle) && (h("div", { class: "widget-header" }, h("div", null, this.blockTitle !== "" && (h("h2", { part: "recommendations-title" }, h("slot", { name: "vviinn-recommendations-title" }, (_a = this.blockTitle) !== null && _a !== void 0 ? _a : (this.isSetMode
429
+ }, role: "region", "aria-label": !this.showingInButton ? i18next.t("a11y.recommendations") : undefined, "aria-busy": isLoading ? "true" : "false", "aria-live": isLoading ? "polite" : "off" }, h(Fragment, null, renderExternalCSS(this.cssUrl), SlotSkeleton("discovery"), (this.isSetMode ||
430
+ this.blockTitle !== "" ||
431
+ !!this.blockSubtitle) && (h("div", { class: "widget-header" }, h("div", null, this.blockTitle !== "" && (h("h2", { part: "recommendations-title" }, h("slot", { name: "vviinn-recommendations-title" }, (_a = this.blockTitle) !== null && _a !== void 0 ? _a : (this.isSetMode
431
432
  ? i18next.t("setMode.widgetTitle")
432
- : i18next.t("discoveryWidgetTitle"))))), (this.isSetMode || !!this.blockSubtitle) && (h("h3", { part: "recommendations-subtitle" }, h("slot", { name: "vviinn-recommendations-subtitle" }, this.blockSubtitle || (this.isSetMode ? i18next.t("setMode.widgetSubtitle") : ""))))), this.isSetMode && this.updateButtonLocation !== "onItem" && this.recommendations.length > 0 ? (h("button", { class: "update-button", part: "update-button-top", onClick: () => (this.updatingAllCards = true) }, h("slot", { name: "vviinn-update-button-icon" }, h(UpdateIcon, null)), h("slot", { name: "vviinn-update-button-text" }, h("span", null, i18next.t("setMode.updateButtonText"))))) : null)), (this.showFilters || this.showExtendedFilters) && (h("div", { class: "filters-header " }, this.showFilters && h("vviinn-filters", null), this.showExtendedFilters && (h("vviinn-extended-filters", { showingInButton: this.showingInButton, locale: this.locale, currencySign: this.currencySign })))), this.useCarousel ? this.renderCarousel() : this.renderResults(), this.showNoResultText() && (h("div", { class: "no-result-text", role: "status" }, this.noResultText.length
433
+ : i18next.t("discoveryWidgetTitle"))))), (this.isSetMode || !!this.blockSubtitle) && (h("h3", { part: "recommendations-subtitle" }, h("slot", { name: "vviinn-recommendations-subtitle" }, this.blockSubtitle ||
434
+ (this.isSetMode
435
+ ? i18next.t("setMode.widgetSubtitle")
436
+ : ""))))), this.isSetMode &&
437
+ this.updateButtonLocation !== "onItem" &&
438
+ this.recommendations.length > 0 ? (h("button", { class: "update-button", part: "update-button-top", onClick: () => (this.updatingAllCards = true) }, h("slot", { name: "vviinn-update-button-icon" }, h(UpdateIcon, null)), h("slot", { name: "vviinn-update-button-text" }, h("span", null, i18next.t("setMode.updateButtonText"))))) : null)), (this.showFilters || this.showExtendedFilters) && (h("div", { class: "filters-header " }, this.showFilters && h("vviinn-filters", null), this.showExtendedFilters && (h("vviinn-extended-filters", { showingInButton: this.showingInButton, locale: this.locale, currencySign: this.currencySign })))), this.useCarousel ? this.renderCarousel() : this.renderResults(), this.showNoResultText() && (h("div", { class: "no-result-text", role: "status" }, this.noResultText.length
433
439
  ? this.noResultText
434
440
  : i18next.t("noResultText"))))));
435
441
  }
@@ -132,7 +132,7 @@ export class VviinnVpsButton {
132
132
  this.showIntervalInputs = false;
133
133
  /** URL to external CSS file for custom styling */
134
134
  this.cssUrl = null;
135
- /** Show search results in modal or on page */
135
+ /** Render results in modal. Set false to redirect or show results on the page. */
136
136
  this.showResultsInModal = true;
137
137
  /** @internal */
138
138
  this.parentSlots = [];
@@ -204,8 +204,8 @@ export class VviinnVpsButton {
204
204
  }
205
205
  render() {
206
206
  const { ariaLabel, buttonIcon } = this.getButtonConfig();
207
- return (h(Host, { key: 'd5ba32a4d606b64258b1390a5c7e6cac14a99cd6', role: this.buttonPressed ? undefined : "button", "aria-label": this.buttonPressed ? undefined : ariaLabel, exportparts: `vviinn-button, ${searchModalFirstScreenParts}` }, h("vviinn-button", { key: 'd8ae79f09cb900f4867aa8eb80879b5aad3277d3', 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: 'c494e2ca280c158ca518f767d4fc33f5849904a8' }, buttonIcon)), SlotSkeleton("search"), h("vviinn-vps-widget", { key: 'af6d84f3d65ef57da89a654192f460e8e019f576', 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
- (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, parentSlots: [...this.parentSlots, ...this.slots], cssUrl: this.cssUrl })));
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
+ (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
209
  }
210
210
  static get is() { return "vviinn-vps-button"; }
211
211
  static get encapsulation() { return "shadow"; }
@@ -766,7 +766,7 @@ export class VviinnVpsButton {
766
766
  "optional": true,
767
767
  "docs": {
768
768
  "tags": [],
769
- "text": "Show search results in modal or on page"
769
+ "text": "Render results in modal. Set false to redirect or show results on the page."
770
770
  },
771
771
  "getter": false,
772
772
  "setter": false,
@@ -792,6 +792,25 @@ export class VviinnVpsButton {
792
792
  "setter": false,
793
793
  "reflect": false
794
794
  },
795
+ "resultsPageParams": {
796
+ "type": "string",
797
+ "attribute": "results-page-params",
798
+ "mutable": false,
799
+ "complexType": {
800
+ "original": "string",
801
+ "resolved": "string",
802
+ "references": {}
803
+ },
804
+ "required": false,
805
+ "optional": true,
806
+ "docs": {
807
+ "tags": [],
808
+ "text": "Custom URL param names for results page redirect. Default: \"query=query&searchId=searchId\"."
809
+ },
810
+ "getter": false,
811
+ "setter": false,
812
+ "reflect": false
813
+ },
795
814
  "parentSlots": {
796
815
  "type": "unknown",
797
816
  "attribute": "parent-slots",
@@ -29,7 +29,7 @@ import { extendedFiltersParts, filtersParts, modalParts, productCardParts, produ
29
29
  import { findSlotElements, addEventListenersWithSignal } from "../../dom";
30
30
  import { SEARCH_WIDGET_IMAGE_RESOLUTION_WIDTH } from "../../widget/constants";
31
31
  import { renderExternalCSS } from "../../utils/cssUrl/cssUrlHelper";
32
- import { isOnResultsPage, buildImageSearchRedirectUrl, } from "../../helpers/url/resultsPageUrl";
32
+ import { isOnResultsPage, buildImageSearchRedirectUrl, parseResultsPageParamNames, } from "../../helpers/url/resultsPageUrl";
33
33
  const CAMERA_START_DELAY = 500;
34
34
  /**
35
35
  * @slot vviinn-teaser-text - Text on the widget's main screen.
@@ -143,7 +143,7 @@ export class VviinnVpsWidget {
143
143
  this.showIntervalInputs = false;
144
144
  /** URL to external CSS file for custom styling */
145
145
  this.cssUrl = null;
146
- /** Show search results in modal or on page */
146
+ /** Render results in modal. Set false to redirect or show results on the page. */
147
147
  this.showResultsInModal = true;
148
148
  /** Set true when showing the widget in button */
149
149
  /** @internal */
@@ -329,7 +329,7 @@ export class VviinnVpsWidget {
329
329
  return this.slidePosition === 1;
330
330
  }
331
331
  handleImageSearchRedirect(searchId) {
332
- const url = buildImageSearchRedirectUrl(this.resultsPageUrl, searchId);
332
+ const url = buildImageSearchRedirectUrl(this.resultsPageUrl, searchId, parseResultsPageParamNames(this.resultsPageParams).searchId);
333
333
  const redirectData = Object.assign(Object.assign({}, this.getBasicEventData()), { url, source: "visual-search", searchId });
334
334
  const event = this.vviinnRedirect.emit(redirectData);
335
335
  if (!event.defaultPrevented) {
@@ -511,31 +511,31 @@ export class VviinnVpsWidget {
511
511
  }
512
512
  render() {
513
513
  var _a, _b, _c;
514
- return (h(Host, { key: '6aed408d103c9178aa941c2d2b787b3ceb403112', exportparts: `${modalParts}, ${productCardParts}, ${searchBarParts}, ${searchWidgetFilterParts}, ${searchWidgetButtonParts}, ${productCardsGridPart}, ${suggestionsParts}` }, renderExternalCSS(this.cssUrl), !this.showingInButton && SlotSkeleton("search"), h("vviinn-overlayed-modal", { key: '76b8814a2c9a90ad89c0b1307d8af3b2165a2f20', class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState, onVviinnWidgetClose: ({ detail }) => {
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 }) => {
515
515
  if (detail.campaignTypeId !== "VPR")
516
516
  this.handleModalClose();
517
517
  }, 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: '9871062493a9eb73a435cc00bd0c984e7cb07f99', position: this.slidePosition }, h("vviinn-slide", { key: 'd8bdff5c066124b82933fbdc48351c01e10bed4a', class: {
518
+ (!this.isCameraEnabled && this.isOnboardingSlide()) }, h("vviinn-slider", { key: '07b98067fda24f46e1b34ea8a27a107b0e7cc925', position: this.slidePosition }, h("vviinn-slide", { key: '373b868d121f435fae72799e1d5aed63719bc44a', class: {
519
519
  "start-page": true,
520
520
  "camera-enabled": this.isCameraEnabled,
521
- } }, h("vviinn-camera", { key: 'cc211f0489c8a7015e1e71d6921a603f28b24cd0', token: this.token, onVviinnImageUploadFinished: ({ detail }) => this.handleVviinnImageUploadFinished(detail), onVviinnImageUploadStarted: () => {
521
+ } }, h("vviinn-camera", { key: '57871a635ec0c3f8fe92e0d983b154f659afff01', token: this.token, onVviinnImageUploadFinished: ({ detail }) => this.handleVviinnImageUploadFinished(detail), onVviinnImageUploadStarted: () => {
522
522
  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: 'ce68792877d657ae8a4be79d1affa448969dc35d', class: {
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: {
524
524
  error: this.haveErrors(),
525
- }, id: "start-page_block" }, h("div", { key: 'e91f0b8ba1150a5a8e71911379666893fe19ac1d', class: "start-page_main-content" }, (this.wrongImageFormat ||
526
- this.state.searchStatus === "error") && (h("div", { key: '5278752a9838158d26ab74a6e2274e68c0e3694f', class: "start-page_errors-block" }, this.getCurrentErrorType() && (h("vviinn-error", { key: '2244e75a1b13473f4b5b0904a7d505956372279c', errorType: this.getCurrentErrorType(), handler: this.resetState, hasBackground: true, searchType: this.state.searchType })))), !this.haveErrors() && (h(Fragment, { key: 'c40fba405487df607f432a3a61341794f39b9e61' }, h("vviinn-teaser", { key: '246f3b4a349b100f18aa63fd375561daa75c358b' }), h("div", { key: 'c3054a13a601ab5f7977dcc497791c95ac3e4c9d', class: "buttons-group" }, this.renderButtons()), this.textSearchShow && !this.isResultSlide() && (h("vviinn-text-search", { key: '02d3304c0844b3b59323810133359fde23efce1b', 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: '58233bdef25abfda3a3160c6e01ae02310d77825', privacyBadgeText: i18next.t("privacyBadgeText", {
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", {
527
527
  interpolation: { escapeValue: false },
528
- }), class: { invisible: this.haveErrors() } }))), h("vviinn-slide", { key: '38d314277f6b56d2b9a938aff67bcf290919fc63', class: {
528
+ }), class: { invisible: this.haveErrors() } }))), h("vviinn-slide", { key: '90b4dbc609191dc60a723d8c1c76eac581ef0ff7', class: {
529
529
  "results-page": true,
530
530
  active: this.isResultSlide(),
531
- } }, this.isResultSlide() && (h("div", { key: '952734e6210be933a987ea7d9c302af207b07918', class: "source-wrapper" }, this.isTextSearch() && (h("vviinn-text-search", { key: '20a6501cff42d1ad9a63b9fafe47eec13217d270', 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: '7b2dfe5f2955c0da08015a2631d43bf6e8dc637d', token: this.token, basicEventData: this.getBasicEventData(), showAspectRatioError: this.showAspectRatioError, apiPath: this.apiPath, showInWidget: this.showInWidget, "save-image-mode": "never" })), h("vviinn-suggestions", { key: 'f33add9678d7888f7e846ddf02425cac63d05047', showInWidget: this.showInWidget, token: this.token, apiPath: this.apiPath, locale: this.locale }), h("vviinn-selected-filters", { key: '1ed93b2b8173ddfb82df91a3306f5a03384c9e6a', 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: 'fdc4c607a3a094c14f062c5ba35d1239b851eb2e', class: {
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: {
532
532
  "filters-wrapper": true,
533
533
  hidden: this.showAspectRatioError,
534
- } }, h("vviinn-filters", { key: '410171f7ea209973c1c5943511b7dd7f59545ae5', showInWidget: this.showInWidget, showIntervalInputs: this.showIntervalInputs }), h("vviinn-extended-filters", { key: 'ce86b434f676f7357d197b2daeebe3b523f37de1', mode: "preview", showHeader: false, showInWidget: this.showInWidget, locale: this.locale, currencySign: this.currencySign, showIntervalInputs: this.showIntervalInputs }), h("vviinn-extended-filters-button", { key: '5b54b7ae75bdff0c519d946c2016997da4bb8363', class: {
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: {
535
535
  "extended-filters-button": true,
536
536
  "has-primary-filters": this.state.dynamicFilters.filter((f) => f.isPrimary)
537
537
  .length > 0,
538
- }, showInWidget: this.showInWidget }))))), this.isResultSlide() && (h(Fragment, { key: '6f6bac82cbd34c620a27d0c8b9e7715b211bd5d3' }, h("vviinn-results", { key: '69fcf9486340292f4d86c180c9fab1d9b3602d86', 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: '7ba8188f7ee5d3338ecbdaac1957505384f7f415', class: "modal-extended-filters", mode: "modal", exportparts: extendedFiltersParts, showInWidget: this.showInWidget, locale: this.locale, currencySign: this.currencySign, showIntervalInputs: this.showIntervalInputs }))));
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 }))));
539
539
  }
540
540
  static get is() { return "vviinn-vps-widget"; }
541
541
  static get encapsulation() { return "shadow"; }
@@ -1070,7 +1070,7 @@ export class VviinnVpsWidget {
1070
1070
  "optional": true,
1071
1071
  "docs": {
1072
1072
  "tags": [],
1073
- "text": "Show search results in modal or on page"
1073
+ "text": "Render results in modal. Set false to redirect or show results on the page."
1074
1074
  },
1075
1075
  "getter": false,
1076
1076
  "setter": false,
@@ -1096,6 +1096,25 @@ export class VviinnVpsWidget {
1096
1096
  "setter": false,
1097
1097
  "reflect": false
1098
1098
  },
1099
+ "resultsPageParams": {
1100
+ "type": "string",
1101
+ "attribute": "results-page-params",
1102
+ "mutable": false,
1103
+ "complexType": {
1104
+ "original": "string",
1105
+ "resolved": "string",
1106
+ "references": {}
1107
+ },
1108
+ "required": false,
1109
+ "optional": true,
1110
+ "docs": {
1111
+ "tags": [],
1112
+ "text": "Custom URL param names for results page redirect. Default: \"query=query&searchId=searchId\"."
1113
+ },
1114
+ "getter": false,
1115
+ "setter": false,
1116
+ "reflect": false
1117
+ },
1099
1118
  "showingInButton": {
1100
1119
  "type": "boolean",
1101
1120
  "attribute": "showing-in-button",
@@ -1,20 +1,37 @@
1
+ export const DEFAULT_RESULTS_PAGE_PARAM_NAMES = {
2
+ query: "query",
3
+ searchId: "searchId",
4
+ };
5
+ export const parseResultsPageParamNames = (raw) => {
6
+ const result = Object.assign({}, DEFAULT_RESULTS_PAGE_PARAM_NAMES);
7
+ if (!raw)
8
+ return result;
9
+ const params = new URLSearchParams(raw);
10
+ const query = params.get("query");
11
+ const searchId = params.get("searchId");
12
+ if (query)
13
+ result.query = query;
14
+ if (searchId)
15
+ result.searchId = searchId;
16
+ return result;
17
+ };
1
18
  export const resolveResultsPageUrl = (resultsPageUrl) => new URL(resultsPageUrl, window.location.origin);
2
19
  const normalizePathname = (pathname) => pathname.replace(/\/+$/, "") || "/";
3
20
  export const isOnResultsPage = (resultsPageUrl) => normalizePathname(window.location.pathname) ===
4
21
  normalizePathname(resolveResultsPageUrl(resultsPageUrl).pathname);
5
- export const buildTextSearchRedirectUrl = (resultsPageUrl, query) => {
22
+ export const buildTextSearchRedirectUrl = (resultsPageUrl, query, queryParamName = DEFAULT_RESULTS_PAGE_PARAM_NAMES.query) => {
6
23
  const url = resolveResultsPageUrl(resultsPageUrl);
7
- url.searchParams.set("query", query);
24
+ url.searchParams.set(queryParamName, query);
8
25
  return url.toString();
9
26
  };
10
- export const buildImageSearchRedirectUrl = (resultsPageUrl, searchId) => {
27
+ export const buildImageSearchRedirectUrl = (resultsPageUrl, searchId, searchIdParamName = DEFAULT_RESULTS_PAGE_PARAM_NAMES.searchId) => {
11
28
  const url = resolveResultsPageUrl(resultsPageUrl);
12
- url.searchParams.set("searchId", searchId);
29
+ url.searchParams.set(searchIdParamName, searchId);
13
30
  return url.toString();
14
31
  };
15
- export const parseResultsPageParams = (search = window.location.search) => {
32
+ export const parseResultsPageParams = (search = window.location.search, paramNames = DEFAULT_RESULTS_PAGE_PARAM_NAMES) => {
16
33
  const params = new URLSearchParams(search);
17
- const query = params.get("query");
18
- const searchId = params.get("searchId");
34
+ const query = params.get(paramNames.query);
35
+ const searchId = params.get(paramNames.searchId);
19
36
  return Object.assign(Object.assign({}, (query && { query })), (searchId && { searchId }));
20
37
  };
@@ -1,4 +1,4 @@
1
- import { resolveResultsPageUrl, isOnResultsPage, buildTextSearchRedirectUrl, buildImageSearchRedirectUrl, parseResultsPageParams, } from "./resultsPageUrl";
1
+ import { resolveResultsPageUrl, isOnResultsPage, buildTextSearchRedirectUrl, buildImageSearchRedirectUrl, parseResultsPageParams, parseResultsPageParamNames, } from "./resultsPageUrl";
2
2
  describe("resolveResultsPageUrl", () => {
3
3
  it("resolves a pathname to a full URL using current origin", () => {
4
4
  const url = resolveResultsPageUrl("/search");
@@ -127,4 +127,66 @@ describe("parseResultsPageParams", () => {
127
127
  const result = parseResultsPageParams("?query=hello+world%26more");
128
128
  expect(result).toEqual({ query: "hello world&more" });
129
129
  });
130
+ it("uses custom param names when provided", () => {
131
+ const result = parseResultsPageParams("?q=shoes&sid=abc-123", {
132
+ query: "q",
133
+ searchId: "sid",
134
+ });
135
+ expect(result).toEqual({ query: "shoes", searchId: "abc-123" });
136
+ });
137
+ it("ignores default names when custom names provided", () => {
138
+ const result = parseResultsPageParams("?query=shoes&searchId=abc", {
139
+ query: "q",
140
+ searchId: "sid",
141
+ });
142
+ expect(result).toEqual({});
143
+ });
144
+ });
145
+ describe("parseResultsPageParamNames", () => {
146
+ it("returns defaults when input is empty", () => {
147
+ expect(parseResultsPageParamNames()).toEqual({
148
+ query: "query",
149
+ searchId: "searchId",
150
+ });
151
+ });
152
+ it("returns defaults when input is undefined", () => {
153
+ expect(parseResultsPageParamNames(undefined)).toEqual({
154
+ query: "query",
155
+ searchId: "searchId",
156
+ });
157
+ });
158
+ it("parses both custom names from URLSearchParams string", () => {
159
+ expect(parseResultsPageParamNames("query=q&searchId=sid")).toEqual({
160
+ query: "q",
161
+ searchId: "sid",
162
+ });
163
+ });
164
+ it("overrides only provided keys, keeps defaults for missing", () => {
165
+ expect(parseResultsPageParamNames("query=q")).toEqual({
166
+ query: "q",
167
+ searchId: "searchId",
168
+ });
169
+ });
170
+ it("ignores unknown keys", () => {
171
+ expect(parseResultsPageParamNames("foo=bar&query=q")).toEqual({
172
+ query: "q",
173
+ searchId: "searchId",
174
+ });
175
+ });
176
+ });
177
+ describe("buildTextSearchRedirectUrl with custom param name", () => {
178
+ it("uses custom queryParamName", () => {
179
+ const result = buildTextSearchRedirectUrl("/search", "shoes", "q");
180
+ const url = new URL(result);
181
+ expect(url.searchParams.get("q")).toBe("shoes");
182
+ expect(url.searchParams.get("query")).toBeNull();
183
+ });
184
+ });
185
+ describe("buildImageSearchRedirectUrl with custom param name", () => {
186
+ it("uses custom searchIdParamName", () => {
187
+ const result = buildImageSearchRedirectUrl("/search", "abc-123", "sid");
188
+ const url = new URL(result);
189
+ expect(url.searchParams.get("sid")).toBe("abc-123");
190
+ expect(url.searchParams.get("searchId")).toBeNull();
191
+ });
130
192
  });
@@ -46,10 +46,16 @@ const receivedDataDefaults = {
46
46
  autoSuggestCompletions: [],
47
47
  };
48
48
  const storeDefaults = Object.assign(Object.assign(Object.assign({}, appStateGlobalDefaults), appStateDefaults), receivedDataDefaults);
49
- const { state: searchState, onChange: onChangeWidgetState } = createStore(storeDefaults);
50
- const { state: componentsState, onChange: onChangeComponentsState } = createStore(storeDefaults);
49
+ const widgetStore = createStore(storeDefaults);
50
+ const searchState = widgetStore.state;
51
+ const onChangeWidgetState = widgetStore.onChange;
52
+ const componentsStore = createStore(storeDefaults);
53
+ const componentsState = componentsStore.state;
54
+ const onChangeComponentsState = componentsStore.onChange;
51
55
  const shopTheLookDefaults = Object.assign({}, storeDefaults);
52
- const { state: shopTheLookState, onChange: onChangeShopTheLookState } = createStore(shopTheLookDefaults);
56
+ const shopTheLookStore = createStore(shopTheLookDefaults);
57
+ const shopTheLookState = shopTheLookStore.state;
58
+ const onChangeShopTheLookState = shopTheLookStore.onChange;
53
59
  const useStore = (store) => {
54
60
  switch (store) {
55
61
  case "widget":
@@ -287,12 +293,13 @@ export const makeAutoSuggestRequest = async (store, query, token, apiPath) => {
287
293
  };
288
294
  return pipe(getTokenWithBody(token, body), setBodyAndHeaders, TE.fromEither, TE.chain((request) => autoSuggestClient(request, apiPath)), TE.map((response) => {
289
295
  var _a, _b;
290
- if (response.data.query.trim().toLowerCase() !== ((_a = state.textSearchQuery) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase()))
296
+ if (response.data.query.trim().toLowerCase() !==
297
+ ((_a = state.textSearchQuery) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase()))
291
298
  return response;
292
299
  const completions = (_b = response.data.completions) !== null && _b !== void 0 ? _b : [];
293
300
  state.autoSuggestCompletions = completions;
294
- const matchingCompletion = completions.find((completion) => completion.suggestion.trim().toLowerCase() === query.trim().toLowerCase() &&
295
- (completion === null || completion === void 0 ? void 0 : completion.url));
301
+ const matchingCompletion = completions.find((completion) => completion.suggestion.trim().toLowerCase() ===
302
+ query.trim().toLowerCase() && (completion === null || completion === void 0 ? void 0 : completion.url));
296
303
  if (matchingCompletion === null || matchingCompletion === void 0 ? void 0 : matchingCompletion.url) {
297
304
  state.redirect = { url: matchingCompletion.url, query };
298
305
  }
@@ -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-B0ZhYtWV.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';
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" },
@@ -5,7 +5,7 @@ import { g as globalScripts } from './app-globals-CjDicjFm.js';
5
5
  const defineCustomElements = async (win, options) => {
6
6
  if (typeof window === 'undefined') return undefined;
7
7
  await globalScripts();
8
- return bootstrapLazy(JSON.parse("[[\"vviinn-detected-object_2\",[[1,\"vviinn-detected-object\",{\"detectedObject\":[16,\"detected-object\"],\"selectedDetectedObject\":[16,\"selected-detected-object\"],\"basicEventData\":[16,\"basic-event-data\"],\"imageBounds\":[16,\"image-bounds\"],\"showInWidget\":[4,\"show-in-widget\"],\"position\":[32]}],[1,\"vviinn-preloader\"]]],[\"vviinn-carousel_10\",[[1,\"vviinn-vpr-widget\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"productId\":[1,\"product-id\"],\"mode\":[1],\"campaigns\":[1],\"excluded\":[1],\"campaignType\":[1,\"campaign-type\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"color\":[1],\"imageWidth\":[2,\"image-width\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"setItemsAmount\":[2,\"set-items-amount\"],\"cssUrl\":[1,\"css-url\"],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"noResultText\":[1,\"no-result-text\"],\"noResultShow\":[4,\"no-result-show\"],\"gridArrowsDynamic\":[4,\"grid-arrows-dynamic\"],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"showFilters\":[4,\"show-filters\"],\"showExtendedFilters\":[4,\"show-extended-filters\"],\"setModeDiscounts\":[1,\"set-mode-discounts\"],\"updateButtonLocation\":[1,\"update-button-location\"],\"addPriceContainer\":[4,\"add-price-container\"],\"favoriteShow\":[4,\"favorite-show\"],\"blockTitle\":[1,\"block-title\"],\"blockSubtitle\":[1,\"block-subtitle\"],\"showScroll\":[4,\"show-scroll\"],\"useCarousel\":[4,\"use-carousel\"],\"showingInButton\":[4,\"showing-in-button\"],\"buttonElementId\":[1,\"button-element-id\"],\"closed\":[4],\"opened\":[4],\"isAppended\":[4,\"is-appended\"],\"showInWidget\":[4,\"show-in-widget\"],\"recommendationsLoading\":[1028,\"recommendations-loading\"],\"setRecommendationsLoading\":[16,\"set-recommendations-loading\"],\"uiSessionId\":[1025,\"ui-session-id\"],\"recommendations\":[32],\"dynamicFilters\":[32],\"sourceProduct\":[32],\"hasErrorOnLoad\":[32],\"updatingAllCards\":[32],\"updatedCardsAmount\":[32],\"setModeDiscountsArray\":[32]},[[0,\"vviinnProductLoad\",\"trackProductLoad\"],[0,\"vviinnProductView\",\"trackProductView\"],[0,\"vviinnProductClick\",\"trackProductClick\"],[0,\"vviinnAuxClick\",\"trackAuxClick\"],[0,\"vviinnAddToBasket\",\"trackAddToBasket\"],[0,\"vviinnAddToFavorite\",\"trackAddToWishlist\"],[0,\"vviinnUpdatingAllCardsFinished\",\"updatingAllCardsFinishedListener\"],[0,\"vviinnFiltersChanged\",\"filtersChanged\"]],{\"productId\":[\"handleProductIdChange\"],\"campaignType\":[\"handleCampaignTypeChange\"],\"campaigns\":[\"handleCampaignsChange\"],\"opened\":[\"trackWidgetOpen\"],\"closed\":[\"trackWidgetClose\"]}],[0,\"vviinn-carousel\",{\"mode\":[1],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"imageWidth\":[2,\"image-width\"],\"showScroll\":[4,\"show-scroll\"],\"campaignTypeId\":[1,\"campaign-type-id\"],\"widgetElementId\":[1,\"widget-element-id\"],\"gridArrowsDynamic\":[4,\"grid-arrows-dynamic\"],\"recommendations\":[1040],\"sourceProduct\":[16,\"source-product\"],\"widgetVersion\":[1,\"widget-version\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"updatingAllCards\":[4,\"updating-all-cards\"],\"updateButtonLocation\":[1,\"update-button-location\"],\"replaceSlotsContent\":[16,\"replace-slots-content\"],\"setModeDiscountsArray\":[16,\"set-mode-discounts-array\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"addPriceContainer\":[4,\"add-price-container\"],\"favoriteShow\":[4,\"favorite-show\"],\"setItemsAmount\":[2,\"set-items-amount\"],\"isAppended\":[4,\"is-appended\"],\"loading\":[4],\"hasErrorOnLoad\":[4,\"has-error-on-load\"],\"showInWidget\":[4,\"show-in-widget\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"moveDirection\":[32],\"contentGroups\":[32],\"activeContentGroup\":[32],\"currentScrollIndex\":[32],\"isRTL\":[32],\"crossSellingRecommendations\":[32],\"setModeDiscount\":[32],\"currentDiscountIndex\":[32],\"setModeAppliedDiscounts\":[32],\"columns\":[32],\"showContent\":[32]},[[0,\"vviinnCrossSellingClick\",\"crossSellingClickListener\"],[0,\"vviinnAddToBasket\",\"setModeAddToBasketHandler\"]],{\"recommendations\":[\"recommendationsWatcher\"],\"updatingAllCards\":[\"updatingAllCardsWatcher\"],\"loading\":[\"onLoadingChange\"]}],[1,\"vviinn-extended-filters\",{\"mode\":[513],\"showHeader\":[4,\"show-header\"],\"searchThreshold\":[2,\"search-threshold\"],\"locale\":[1],\"currencySign\":[1,\"currency-sign\"],\"filtersString\":[1,\"filters-string\"],\"showInWidget\":[4,\"show-in-widget\"],\"showingInButton\":[4,\"showing-in-button\"],\"widgetElement\":[8,\"widget-element\"],\"showIntervalInputs\":[4,\"show-interval-inputs\"],\"innerFilters\":[32],\"requestFilters\":[32],\"showMore\":[32],\"selectedMoreOptions\":[32],\"displayedOptionsCount\":[32],\"searchTerm\":[32]},[[17,\"mousedown\",\"bodyMouseDownListener\"]],{\"showMore\":[\"showMoreWatcher\"],\"selectedMoreOptions\":[\"selectedMoreOptionsWatcher\"],\"filtersString\":[\"filtersStringWatcher\"]}],[1,\"vviinn-filters\",{\"filtersString\":[1,\"filters-string\"],\"showInWidget\":[4,\"show-in-widget\"],\"showIntervalInputs\":[4,\"show-interval-inputs\"],\"innerFilters\":[32],\"selectedFilterColumn\":[32],\"requestFilters\":[32]},null,{\"filtersString\":[\"filtersStringWatcher\"]}],[1,\"vviinn-extended-filters-button\",{\"handleClick\":[16,\"handle-click\"],\"showInWidget\":[4,\"show-in-widget\"]}],[1,\"vviinn-product-card\",{\"brand\":[1],\"currencySign\":[1,\"currency-sign\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"pricePrefix\":[1,\"price-prefix\"],\"image\":[1],\"images\":[16],\"showMultipleImages\":[4,\"show-multiple-images\"],\"imageWidth\":[2,\"image-width\"],\"price\":[2],\"basePrice\":[1,\"base-price\"],\"productTitle\":[1,\"product-title\"],\"productType\":[1,\"product-type\"],\"entityType\":[1,\"entity-type\"],\"isSetMode\":[4,\"is-set-mode\"],\"salePrice\":[2,\"sale-price\"],\"baseSalePrice\":[1,\"base-sale-price\"],\"responsive\":[4],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"favoriteShow\":[4,\"favorite-show\"],\"updateButtonLocation\":[1,\"update-button-location\"],\"customLabels\":[1,\"custom-labels\"],\"addPriceContainer\":[4,\"add-price-container\"],\"energyCertifications\":[1040,\"energy-certifications\"],\"deeplink\":[1],\"cssUrl\":[1,\"css-url\"],\"productId\":[1,\"product-id\"],\"product\":[16],\"campaignTypeId\":[1,\"campaign-type-id\"],\"widgetElementId\":[1,\"widget-element-id\"],\"buttonElementId\":[1,\"button-element-id\"],\"widgetVersion\":[1,\"widget-version\"],\"index\":[2],\"updatingAllCards\":[4,\"updating-all-cards\"],\"defaultAnimationInterval\":[2,\"default-animation-interval\"],\"appliedDiscountPercentage\":[2,\"applied-discount-percentage\"],\"currentDiscountPercentage\":[2,\"current-discount-percentage\"],\"isSourceProduct\":[4,\"is-source-product\"],\"isResultsWidget\":[4,\"is-results-widget\"],\"energyCertificationsString\":[1,\"energy-certifications-string\"],\"isStandalone\":[4,\"is-standalone\"],\"showFooterArrow\":[4,\"show-footer-arrow\"],\"imageResolutionWidth\":[1026,\"image-resolution-width\"],\"loading\":[1028],\"disableMobileSwiper\":[4,\"disable-mobile-swiper\"],\"isTransitioning\":[32],\"basketButonPressed\":[32],\"favoriteButonPressed\":[32],\"imageLoaded\":[32],\"showSecondImage\":[32]},[[0,\"vviinnCrossSellingClick\",\"crossSellingClickListener\"]],{\"updatingAllCards\":[\"updatingAllCardsWatcher\"],\"productId\":[\"productIdWatcher\"],\"showSecondImage\":[\"showSecondImageWatcher\"]}],[1,\"vviinn-range-filter\",{\"histogram\":[16],\"intervalChangeHandler\":[16,\"interval-change-handler\"],\"selectedInterval\":[16,\"selected-interval\"],\"showCurrency\":[4,\"show-currency\"],\"showIntervalInputs\":[4,\"show-interval-inputs\"],\"currencySign\":[1,\"currency-sign\"],\"scalingFactor\":[32],\"minValue\":[32],\"maxValue\":[32],\"fromValue\":[32],\"toValue\":[32]},null,{\"selectedInterval\":[\"initializeValues\"],\"histogram\":[\"initializeValues\"]}],[1,\"vviinn-image\",{\"src\":[1],\"width\":[2],\"alt\":[1],\"imageTitle\":[1,\"image-title\"],\"responsive\":[4],\"entityType\":[1,\"entity-type\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"objectFit\":[1,\"object-fit\"],\"showSkeleton\":[4,\"show-skeleton\"],\"isSetMode\":[4,\"is-set-mode\"],\"customClass\":[1,\"custom-class\"],\"borderRadius\":[1,\"border-radius\"],\"border\":[1],\"backgroundColor\":[1,\"background-color\"],\"imageRef\":[16,\"image-ref\"],\"loadEndCallback\":[16,\"load-end-callback\"],\"imageLoaded\":[32],\"imageError\":[32]}],[1,\"vviinn-energy-label\",{\"classIconUrls\":[16,\"class-icon-urls\"],\"productType\":[1,\"product-type\"],\"classDataSheetUrl\":[1,\"class-data-sheet-url\"],\"iconDirection\":[1,\"icon-direction\"],\"certificationClass\":[1,\"certification-class\"],\"classRange\":[16,\"class-range\"]}],[1,\"vviinn-skeleton\",{\"height\":[2],\"halfWidth\":[4,\"half-width\"],\"aspectRatio\":[2,\"aspect-ratio\"]}]]],[\"vviinn-shop-the-look\",[[1,\"vviinn-shop-the-look\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"imageUrls\":[1,\"image-urls\"],\"height\":[2],\"currencySign\":[1,\"currency-sign\"],\"campaignId\":[1,\"campaign-id\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"widgetStyle\":[1,\"widget-style\"],\"showCropper\":[4,\"show-cropper\"],\"uploadMode\":[4,\"upload-mode\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"cssUrl\":[1,\"css-url\"],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"selectedDetectedObject\":[32],\"showModal\":[32],\"modalPosition\":[32],\"showDetailedView\":[32],\"selectedProductIndex\":[32],\"modalImageIndex\":[32],\"swiperActiveIndex\":[32],\"totalImages\":[32],\"imageUrlsList\":[32],\"swiperKey\":[32],\"needNavigation\":[32],\"showLoadingSpinner\":[32],\"isSearchInProgress\":[32],\"currentViewMode\":[32],\"isWidgetVisible\":[32],\"uploadedImageUrls\":[32]},[[0,\"vviinnProductClick\",\"handleProductCardClick\"]],{\"currentViewMode\":[\"onViewModeChange\"],\"showModal\":[\"onShowModalChange\"]}]]],[\"vviinn-button_6\",[[1,\"vviinn-vpr-button\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"productId\":[1,\"product-id\"],\"mode\":[1],\"campaigns\":[1],\"excluded\":[1],\"campaignType\":[1,\"campaign-type\"],\"color\":[1],\"imageWidth\":[2,\"image-width\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"setItemsAmount\":[2,\"set-items-amount\"],\"cssUrl\":[1,\"css-url\"],\"noResultText\":[1,\"no-result-text\"],\"noResultShow\":[4,\"no-result-show\"],\"gridArrowsDynamic\":[4,\"grid-arrows-dynamic\"],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"showFilters\":[4,\"show-filters\"],\"addPriceContainer\":[4,\"add-price-container\"],\"oneClickDiscoveryMode\":[1,\"one-click-discovery-mode\"],\"setModeDiscounts\":[1,\"set-mode-discounts\"],\"updateButtonLocation\":[1,\"update-button-location\"],\"sidebarTitle\":[1,\"sidebar-title\"],\"sidebarSubtitle\":[1,\"sidebar-subtitle\"],\"modalScrollbar\":[4,\"modal-scrollbar\"],\"position\":[1],\"addStyle\":[4,\"add-style\"],\"favoriteShow\":[4,\"favorite-show\"],\"appendSidebarToElement\":[16,\"append-sidebar-to-element\"],\"appendSidebarToId\":[1,\"append-sidebar-to-id\"],\"isStandalone\":[4,\"is-standalone\"],\"showInWidget\":[4,\"show-in-widget\"],\"uiSessionId\":[1,\"ui-session-id\"],\"targetAppendSidebarTo\":[32]},null,{\"appendSidebarToElement\":[\"appendSidebarToElementWatcher\"]}],[1,\"vviinn-error\",{\"hasBackground\":[4,\"has-background\"],\"errorType\":[1,\"error-type\"],\"handler\":[16],\"searchType\":[1,\"search-type\"]}],[1,\"vviinn-modal\",{\"active\":[1540],\"resetState\":[16,\"reset-state\"],\"buttonElementId\":[1,\"button-element-id\"],\"widgetVersion\":[1,\"widget-version\"],\"hideBackButton\":[4,\"hide-back-button\"],\"isFirstScreen\":[4,\"is-first-screen\"],\"slider\":[32]},null,{\"active\":[\"handleActiveChange\"]}],[1,\"vviinn-overlay\",{\"active\":[516]},null,{\"active\":[\"handleActiveChange\"]}],[1,\"vviinn-recommendations-sidebar\",{\"sidebarTitle\":[1,\"sidebar-title\"],\"sidebarSubtitle\":[1,\"sidebar-subtitle\"],\"token\":[1],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"productId\":[1,\"product-id\"],\"position\":[1],\"widgetScrollbar\":[4,\"widget-scrollbar\"],\"mode\":[1],\"campaigns\":[1],\"campaignType\":[1,\"campaign-type\"],\"color\":[1],\"imageWidth\":[2,\"image-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"cssUrl\":[1,\"css-url\"],\"noResultText\":[1,\"no-result-text\"],\"noResultShow\":[4,\"no-result-show\"],\"gridArrowsDynamic\":[4,\"grid-arrows-dynamic\"],\"excluded\":[1],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"addPriceContainer\":[4,\"add-price-container\"],\"showFilters\":[4,\"show-filters\"],\"setModeDiscounts\":[1,\"set-mode-discounts\"],\"setItemsAmount\":[2,\"set-items-amount\"],\"updateButtonLocation\":[1,\"update-button-location\"],\"favoriteShow\":[4,\"favorite-show\"],\"useCarousel\":[4,\"use-carousel\"],\"showInWidget\":[4,\"show-in-widget\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"apiPath\":[1,\"api-path\"],\"showInCustomContainer\":[4,\"show-in-custom-container\"],\"buttonChildren\":[16,\"button-children\"],\"buttonElementId\":[1,\"button-element-id\"],\"widgetVersion\":[1,\"widget-version\"],\"showingInButton\":[4,\"showing-in-button\"],\"showInModal\":[4,\"show-in-modal\"],\"isAppended\":[4,\"is-appended\"],\"uiSessionId\":[1,\"ui-session-id\"],\"triggerElement\":[16,\"trigger-element\"],\"sidebarState\":[32],\"sourceProduct\":[32],\"showLoadingClass\":[32],\"recommendationsLoading\":[32],\"hidden\":[32]},[[0,\"vviinnUpdatingAllCardsStarted\",\"updatingAllCardsStarted\"],[0,\"vviinnUpdatingAllCardsFinished\",\"updatingAllCardsFinished\"],[16,\"click\",\"bodyClickListener\"],[0,\"sourceProductReceived\",\"sourceProductReceived\"],[8,\"keydown\",\"handleEscape\"]],{\"recommendationsLoading\":[\"handleLoadingChange\"],\"sidebarState\":[\"handleSidebarStateChange\"]}],[1,\"vviinn-button\",{\"addStyle\":[4,\"add-style\"]}]]],[\"vviinn-vps-button\",[[1,\"vviinn-vps-button\",{\"token\":[1],\"currencySign\":[1,\"currency-sign\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"pricePrefix\":[1,\"price-prefix\"],\"campaignId\":[1,\"campaign-id\"],\"campaignIdTextSearch\":[1,\"campaign-id-text-search\"],\"campaignIdVisualSearch\":[1,\"campaign-id-visual-search\"],\"addStyle\":[4,\"add-style\"],\"mode\":[1],\"excluded\":[1],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"exampleImageSource\":[1,\"example-image-source\"],\"textSearchShow\":[4,\"text-search-show\"],\"autoSuggestShow\":[4,\"auto-suggest-show\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"favoriteShow\":[4,\"favorite-show\"],\"oneClickDiscoveryMode\":[1,\"one-click-discovery-mode\"],\"oneClickDiscoveryCampaigns\":[1,\"one-click-discovery-campaigns\"],\"addPriceContainer\":[4,\"add-price-container\"],\"showIntervalInputs\":[4,\"show-interval-inputs\"],\"cssUrl\":[1,\"css-url\"],\"apiPath\":[1,\"api-path\"],\"showResultsInModal\":[4,\"show-results-in-modal\"],\"resultsPageUrl\":[1,\"results-page-url\"],\"parentSlots\":[16,\"parent-slots\"],\"buttonPressed\":[32]},[[0,\"vviinnWidgetClose\",\"handleModalClosed\"]],{\"buttonPressed\":[\"buttonPressedWatcher\"]}]]],[\"vviinn-text-search\",[[1,\"vviinn-text-search\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"locale\":[1],\"mode\":[1],\"searchQuery\":[1025,\"search-query\"],\"placeholder\":[1],\"resultsPageUrl\":[1,\"results-page-url\"],\"autoSuggestShow\":[4,\"auto-suggest-show\"],\"exampleImageSource\":[1,\"example-image-source\"],\"cssUrl\":[1,\"css-url\"],\"visualSearchMode\":[1,\"visual-search-mode\"],\"showInWidget\":[4,\"show-in-widget\"],\"showOnFirstScreen\":[4,\"show-on-first-screen\"],\"uiSessionId\":[1,\"ui-session-id\"],\"basicEventData\":[16,\"basic-event-data\"],\"isRecording\":[32],\"showTooltip\":[32],\"autoSuggestCompletions\":[32],\"activeSuggestionIndex\":[32]}]]],[\"vviinn-camera_12\",[[1,\"vviinn-vps-widget\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"active\":[1028],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"campaignId\":[1,\"campaign-id\"],\"campaignIdTextSearch\":[1,\"campaign-id-text-search\"],\"campaignIdVisualSearch\":[1,\"campaign-id-visual-search\"],\"excluded\":[1],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"exampleImageSource\":[1,\"example-image-source\"],\"textSearchShow\":[4,\"text-search-show\"],\"autoSuggestShow\":[4,\"auto-suggest-show\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"favoriteShow\":[4,\"favorite-show\"],\"oneClickDiscoveryMode\":[1,\"one-click-discovery-mode\"],\"oneClickDiscoveryCampaigns\":[1,\"one-click-discovery-campaigns\"],\"addPriceContainer\":[4,\"add-price-container\"],\"showIntervalInputs\":[4,\"show-interval-inputs\"],\"cssUrl\":[1,\"css-url\"],\"showResultsInModal\":[4,\"show-results-in-modal\"],\"resultsPageUrl\":[1,\"results-page-url\"],\"showingInButton\":[4,\"showing-in-button\"],\"buttonElementId\":[1,\"button-element-id\"],\"buttonPressed\":[4,\"button-pressed\"],\"mode\":[1],\"resetVpsButton\":[16,\"reset-vps-button\"],\"replaceSlotsContentInButton\":[16,\"replace-slots-content-in-button\"],\"parentSlots\":[16,\"parent-slots\"],\"slidePosition\":[32],\"uploadSource\":[32],\"stream\":[32],\"products\":[32],\"modalBody\":[32],\"uploadDialogOpened\":[32],\"isCameraInitializing\":[32],\"isCameraEnabled\":[32],\"isCameraButtonClicked\":[32],\"showAspectRatioError\":[32],\"wrongImageFormat\":[32]},[[0,\"widgetTextSearchFinished\",\"textSearchFinishedHandler\"],[0,\"vviinnTextSearchStarted\",\"textSearchStartedHandler\"],[0,\"vviinnResultLoad\",\"resultLoadHandler\"],[0,\"vviinnResultView\",\"resultViewHandler\"],[0,\"vviinnCameraEnabled\",\"trackCameraEnabled\"],[0,\"vviinnImageCrop\",\"cropAreaChanges\"],[0,\"vviinnSelectObject\",\"trackDetectedObject\"],[0,\"vviinnSelectFilter\",\"trackImageSearchFilterSelected\"]],{\"active\":[\"activeWatcher\"],\"slidePosition\":[\"slidePositionWatcher\"]}],[1,\"vviinn-results\",{\"token\":[1],\"currencySign\":[1,\"currency-sign\"],\"locale\":[8],\"numberLocale\":[1,\"number-locale\"],\"campaignIdTextSearch\":[1,\"campaign-id-text-search\"],\"campaignIdVisualSearch\":[1,\"campaign-id-visual-search\"],\"pricePrefix\":[1,\"price-prefix\"],\"searchId\":[1,\"search-id\"],\"resultsPageUrl\":[1,\"results-page-url\"],\"uiSessionId\":[1025,\"ui-session-id\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"favoriteShow\":[4,\"favorite-show\"],\"textSearchQuery\":[1,\"text-search-query\"],\"filterColumn\":[1,\"filter-column\"],\"filterValue\":[1,\"filter-value\"],\"resultsCount\":[2,\"results-count\"],\"addPriceContainer\":[4,\"add-price-container\"],\"oneClickDiscoveryMode\":[1,\"one-click-discovery-mode\"],\"oneClickDiscoveryCampaigns\":[1,\"one-click-discovery-campaigns\"],\"cssUrl\":[1,\"css-url\"],\"apiPath\":[1,\"api-path\"],\"showInWidget\":[4,\"show-in-widget\"],\"buttonElementId\":[1,\"button-element-id\"],\"widgetElementId\":[1025,\"widget-element-id\"],\"showAspectRatioError\":[4,\"show-aspect-ratio-error\"],\"resetWidgetState\":[16,\"reset-widget-state\"],\"replaceSlotsContentInWidget\":[16,\"replace-slots-content-in-widget\"],\"replaceSlotsContentInButton\":[16,\"replace-slots-content-in-button\"],\"parentSlots\":[16,\"parent-slots\"],\"useInnerState\":[4,\"use-inner-state\"],\"scrollableModalBody\":[16,\"scrollable-modal-body\"],\"slotsReplaced\":[32],\"oneClickDiscoveryAppendIndex\":[32],\"oneClickDiscoverySelectedIndex\":[32],\"innerResults\":[32]},[[0,\"vviinnProductLoad\",\"trackProductLoad\"],[0,\"vviinnProductView\",\"trackProductView\"],[0,\"vviinnProductClick\",\"trackProductClick\"],[0,\"vviinnAuxClick\",\"trackAuxClick\"],[0,\"vviinnAddToBasket\",\"trackAddToBasket\"],[0,\"vviinnAddToFavorite\",\"trackAddToFavorite\"]],{\"textSearchQuery\":[\"watchTextSearchQuery\"],\"searchId\":[\"watchSearchId\"]}],[1,\"vviinn-cropper\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"saveImageMode\":[1,\"save-image-mode\"],\"autoSearch\":[4,\"auto-search\"],\"width\":[1026],\"cssUrl\":[1,\"css-url\"],\"height\":[1026],\"basicEventData\":[1040,\"basic-event-data\"],\"showAspectRatioError\":[4,\"show-aspect-ratio-error\"],\"showInWidget\":[4,\"show-in-widget\"],\"cropper\":[32],\"selectedDetectedObject\":[32]},[[0,\"vviinnSelectObject\",\"selectDetectedObject\"],[0,\"vviinnImageCrop\",\"imageCropHandler\"]]],[1,\"vviinn-overlayed-modal\",{\"active\":[4],\"resetState\":[16,\"reset-state\"],\"buttonElementId\":[1,\"button-element-id\"],\"hideBackButton\":[4,\"hide-back-button\"],\"widgetVersion\":[1,\"widget-version\"],\"isFirstScreen\":[4,\"is-first-screen\"]}],[1,\"vviinn-image-selector\",{\"basicEventData\":[16,\"basic-event-data\"],\"startUpload\":[4,\"start-upload\"],\"loading\":[4],\"accept\":[1],\"resetVpsButton\":[16,\"reset-vps-button\"],\"token\":[1],\"apiPath\":[1,\"api-path\"],\"showInWidget\":[4,\"show-in-widget\"],\"storeName\":[1,\"store-name\"],\"state\":[16]},null,{\"startUpload\":[\"startUploadWatcher\"]}],[1,\"vviinn-camera\",{\"token\":[1],\"exampleImageSource\":[1,\"example-image-source\"],\"width\":[2],\"height\":[2],\"basicEventData\":[16,\"basic-event-data\"],\"srcObject\":[16,\"src-object\"],\"cameraButtonClicked\":[4,\"camera-button-clicked\"],\"showInWidget\":[4,\"show-in-widget\"],\"storeName\":[1,\"store-name\"],\"state\":[16],\"apiPath\":[1,\"api-path\"],\"selected\":[32],\"videoInitialized\":[32],\"zoomCapabilities\":[32]},null,{\"srcObject\":[\"handleSrcObjectChange\"]}],[1,\"vviinn-privacy-badge\",{\"privacyBadgeText\":[1,\"privacy-badge-text\"]}],[1,\"vviinn-selected-filters\",{\"locale\":[1],\"currencySign\":[1,\"currency-sign\"],\"showInWidget\":[4,\"show-in-widget\"],\"requestFilters\":[32],\"selectedFilterButtons\":[32],\"textSearchCustomFilter\":[32],\"imageSrc\":[32],\"intervalCustomFilters\":[32]}],[1,\"vviinn-slide\"],[1,\"vviinn-slider\",{\"position\":[514],\"elementsCount\":[32],\"internalPosition\":[32],\"swipeStartPosition\":[32],\"isRTL\":[32]},null,{\"position\":[\"positionWatchHandler\"]}],[1,\"vviinn-suggestions\",{\"showInWidget\":[4,\"show-in-widget\"],\"apiPath\":[1,\"api-path\"],\"locale\":[1],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"token\":[1],\"stream\":[32],\"appliedSuggestionFilters\":[32]}],[1,\"vviinn-teaser\"]]]]"), options);
8
+ return bootstrapLazy(JSON.parse("[[\"vviinn-detected-object_2\",[[1,\"vviinn-detected-object\",{\"detectedObject\":[16,\"detected-object\"],\"selectedDetectedObject\":[16,\"selected-detected-object\"],\"basicEventData\":[16,\"basic-event-data\"],\"imageBounds\":[16,\"image-bounds\"],\"showInWidget\":[4,\"show-in-widget\"],\"position\":[32]}],[1,\"vviinn-preloader\"]]],[\"vviinn-carousel_10\",[[1,\"vviinn-vpr-widget\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"productId\":[1,\"product-id\"],\"mode\":[1],\"campaigns\":[1],\"excluded\":[1],\"campaignType\":[1,\"campaign-type\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"color\":[1],\"imageWidth\":[2,\"image-width\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"setItemsAmount\":[2,\"set-items-amount\"],\"cssUrl\":[1,\"css-url\"],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"noResultText\":[1,\"no-result-text\"],\"noResultShow\":[4,\"no-result-show\"],\"gridArrowsDynamic\":[4,\"grid-arrows-dynamic\"],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"showFilters\":[4,\"show-filters\"],\"showExtendedFilters\":[4,\"show-extended-filters\"],\"setModeDiscounts\":[1,\"set-mode-discounts\"],\"updateButtonLocation\":[1,\"update-button-location\"],\"addPriceContainer\":[4,\"add-price-container\"],\"favoriteShow\":[4,\"favorite-show\"],\"blockTitle\":[1,\"block-title\"],\"blockSubtitle\":[1,\"block-subtitle\"],\"showScroll\":[4,\"show-scroll\"],\"useCarousel\":[4,\"use-carousel\"],\"showingInButton\":[4,\"showing-in-button\"],\"buttonElementId\":[1,\"button-element-id\"],\"closed\":[4],\"opened\":[4],\"isAppended\":[4,\"is-appended\"],\"showInWidget\":[4,\"show-in-widget\"],\"recommendationsLoading\":[1028,\"recommendations-loading\"],\"setRecommendationsLoading\":[16,\"set-recommendations-loading\"],\"uiSessionId\":[1025,\"ui-session-id\"],\"recommendations\":[32],\"dynamicFilters\":[32],\"sourceProduct\":[32],\"hasErrorOnLoad\":[32],\"updatingAllCards\":[32],\"updatedCardsAmount\":[32],\"setModeDiscountsArray\":[32]},[[0,\"vviinnProductLoad\",\"trackProductLoad\"],[0,\"vviinnProductView\",\"trackProductView\"],[0,\"vviinnProductClick\",\"trackProductClick\"],[0,\"vviinnAuxClick\",\"trackAuxClick\"],[0,\"vviinnAddToBasket\",\"trackAddToBasket\"],[0,\"vviinnAddToFavorite\",\"trackAddToWishlist\"],[0,\"vviinnUpdatingAllCardsFinished\",\"updatingAllCardsFinishedListener\"],[0,\"vviinnFiltersChanged\",\"filtersChanged\"]],{\"productId\":[\"handleProductIdChange\"],\"campaignType\":[\"handleCampaignTypeChange\"],\"campaigns\":[\"handleCampaignsChange\"],\"opened\":[\"trackWidgetOpen\"],\"closed\":[\"trackWidgetClose\"]}],[0,\"vviinn-carousel\",{\"mode\":[1],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"imageWidth\":[2,\"image-width\"],\"showScroll\":[4,\"show-scroll\"],\"campaignTypeId\":[1,\"campaign-type-id\"],\"widgetElementId\":[1,\"widget-element-id\"],\"gridArrowsDynamic\":[4,\"grid-arrows-dynamic\"],\"recommendations\":[1040],\"sourceProduct\":[16,\"source-product\"],\"widgetVersion\":[1,\"widget-version\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"updatingAllCards\":[4,\"updating-all-cards\"],\"updateButtonLocation\":[1,\"update-button-location\"],\"replaceSlotsContent\":[16,\"replace-slots-content\"],\"setModeDiscountsArray\":[16,\"set-mode-discounts-array\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"addPriceContainer\":[4,\"add-price-container\"],\"favoriteShow\":[4,\"favorite-show\"],\"setItemsAmount\":[2,\"set-items-amount\"],\"isAppended\":[4,\"is-appended\"],\"loading\":[4],\"hasErrorOnLoad\":[4,\"has-error-on-load\"],\"showInWidget\":[4,\"show-in-widget\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"moveDirection\":[32],\"contentGroups\":[32],\"activeContentGroup\":[32],\"currentScrollIndex\":[32],\"isRTL\":[32],\"crossSellingRecommendations\":[32],\"setModeDiscount\":[32],\"currentDiscountIndex\":[32],\"setModeAppliedDiscounts\":[32],\"columns\":[32],\"showContent\":[32]},[[0,\"vviinnCrossSellingClick\",\"crossSellingClickListener\"],[0,\"vviinnAddToBasket\",\"setModeAddToBasketHandler\"]],{\"recommendations\":[\"recommendationsWatcher\"],\"updatingAllCards\":[\"updatingAllCardsWatcher\"],\"loading\":[\"onLoadingChange\"]}],[1,\"vviinn-extended-filters\",{\"mode\":[513],\"showHeader\":[4,\"show-header\"],\"searchThreshold\":[2,\"search-threshold\"],\"locale\":[1],\"currencySign\":[1,\"currency-sign\"],\"filtersString\":[1,\"filters-string\"],\"showInWidget\":[4,\"show-in-widget\"],\"showingInButton\":[4,\"showing-in-button\"],\"widgetElement\":[8,\"widget-element\"],\"showIntervalInputs\":[4,\"show-interval-inputs\"],\"innerFilters\":[32],\"requestFilters\":[32],\"showMore\":[32],\"selectedMoreOptions\":[32],\"displayedOptionsCount\":[32],\"searchTerm\":[32]},[[17,\"mousedown\",\"bodyMouseDownListener\"]],{\"showMore\":[\"showMoreWatcher\"],\"selectedMoreOptions\":[\"selectedMoreOptionsWatcher\"],\"filtersString\":[\"filtersStringWatcher\"]}],[1,\"vviinn-filters\",{\"filtersString\":[1,\"filters-string\"],\"showInWidget\":[4,\"show-in-widget\"],\"showIntervalInputs\":[4,\"show-interval-inputs\"],\"innerFilters\":[32],\"selectedFilterColumn\":[32],\"requestFilters\":[32]},null,{\"filtersString\":[\"filtersStringWatcher\"]}],[1,\"vviinn-extended-filters-button\",{\"handleClick\":[16,\"handle-click\"],\"showInWidget\":[4,\"show-in-widget\"]}],[1,\"vviinn-product-card\",{\"brand\":[1],\"currencySign\":[1,\"currency-sign\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"pricePrefix\":[1,\"price-prefix\"],\"image\":[1],\"images\":[16],\"showMultipleImages\":[4,\"show-multiple-images\"],\"imageWidth\":[2,\"image-width\"],\"price\":[2],\"basePrice\":[1,\"base-price\"],\"productTitle\":[1,\"product-title\"],\"productType\":[1,\"product-type\"],\"entityType\":[1,\"entity-type\"],\"isSetMode\":[4,\"is-set-mode\"],\"salePrice\":[2,\"sale-price\"],\"baseSalePrice\":[1,\"base-sale-price\"],\"responsive\":[4],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"favoriteShow\":[4,\"favorite-show\"],\"updateButtonLocation\":[1,\"update-button-location\"],\"customLabels\":[1,\"custom-labels\"],\"addPriceContainer\":[4,\"add-price-container\"],\"energyCertifications\":[1040,\"energy-certifications\"],\"deeplink\":[1],\"cssUrl\":[1,\"css-url\"],\"productId\":[1,\"product-id\"],\"product\":[16],\"campaignTypeId\":[1,\"campaign-type-id\"],\"widgetElementId\":[1,\"widget-element-id\"],\"buttonElementId\":[1,\"button-element-id\"],\"widgetVersion\":[1,\"widget-version\"],\"index\":[2],\"updatingAllCards\":[4,\"updating-all-cards\"],\"defaultAnimationInterval\":[2,\"default-animation-interval\"],\"appliedDiscountPercentage\":[2,\"applied-discount-percentage\"],\"currentDiscountPercentage\":[2,\"current-discount-percentage\"],\"isSourceProduct\":[4,\"is-source-product\"],\"isResultsWidget\":[4,\"is-results-widget\"],\"energyCertificationsString\":[1,\"energy-certifications-string\"],\"isStandalone\":[4,\"is-standalone\"],\"showFooterArrow\":[4,\"show-footer-arrow\"],\"imageResolutionWidth\":[1026,\"image-resolution-width\"],\"loading\":[1028],\"disableMobileSwiper\":[4,\"disable-mobile-swiper\"],\"isTransitioning\":[32],\"basketButonPressed\":[32],\"favoriteButonPressed\":[32],\"imageLoaded\":[32],\"showSecondImage\":[32]},[[0,\"vviinnCrossSellingClick\",\"crossSellingClickListener\"]],{\"updatingAllCards\":[\"updatingAllCardsWatcher\"],\"productId\":[\"productIdWatcher\"],\"showSecondImage\":[\"showSecondImageWatcher\"]}],[1,\"vviinn-range-filter\",{\"histogram\":[16],\"intervalChangeHandler\":[16,\"interval-change-handler\"],\"selectedInterval\":[16,\"selected-interval\"],\"showCurrency\":[4,\"show-currency\"],\"showIntervalInputs\":[4,\"show-interval-inputs\"],\"currencySign\":[1,\"currency-sign\"],\"scalingFactor\":[32],\"minValue\":[32],\"maxValue\":[32],\"fromValue\":[32],\"toValue\":[32]},null,{\"selectedInterval\":[\"initializeValues\"],\"histogram\":[\"initializeValues\"]}],[1,\"vviinn-image\",{\"src\":[1],\"width\":[2],\"alt\":[1],\"imageTitle\":[1,\"image-title\"],\"responsive\":[4],\"entityType\":[1,\"entity-type\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"objectFit\":[1,\"object-fit\"],\"showSkeleton\":[4,\"show-skeleton\"],\"isSetMode\":[4,\"is-set-mode\"],\"customClass\":[1,\"custom-class\"],\"borderRadius\":[1,\"border-radius\"],\"border\":[1],\"backgroundColor\":[1,\"background-color\"],\"imageRef\":[16,\"image-ref\"],\"loadEndCallback\":[16,\"load-end-callback\"],\"imageLoaded\":[32],\"imageError\":[32]}],[1,\"vviinn-energy-label\",{\"classIconUrls\":[16,\"class-icon-urls\"],\"productType\":[1,\"product-type\"],\"classDataSheetUrl\":[1,\"class-data-sheet-url\"],\"iconDirection\":[1,\"icon-direction\"],\"certificationClass\":[1,\"certification-class\"],\"classRange\":[16,\"class-range\"]}],[1,\"vviinn-skeleton\",{\"height\":[2],\"halfWidth\":[4,\"half-width\"],\"aspectRatio\":[2,\"aspect-ratio\"]}]]],[\"vviinn-shop-the-look\",[[1,\"vviinn-shop-the-look\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"imageUrls\":[1,\"image-urls\"],\"height\":[2],\"currencySign\":[1,\"currency-sign\"],\"campaignId\":[1,\"campaign-id\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"widgetStyle\":[1,\"widget-style\"],\"showCropper\":[4,\"show-cropper\"],\"uploadMode\":[4,\"upload-mode\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"cssUrl\":[1,\"css-url\"],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"selectedDetectedObject\":[32],\"showModal\":[32],\"modalPosition\":[32],\"showDetailedView\":[32],\"selectedProductIndex\":[32],\"modalImageIndex\":[32],\"swiperActiveIndex\":[32],\"totalImages\":[32],\"imageUrlsList\":[32],\"swiperKey\":[32],\"needNavigation\":[32],\"showLoadingSpinner\":[32],\"isSearchInProgress\":[32],\"currentViewMode\":[32],\"isWidgetVisible\":[32],\"uploadedImageUrls\":[32]},[[0,\"vviinnProductClick\",\"handleProductCardClick\"]],{\"currentViewMode\":[\"onViewModeChange\"],\"showModal\":[\"onShowModalChange\"]}]]],[\"vviinn-button_6\",[[1,\"vviinn-vpr-button\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"productId\":[1,\"product-id\"],\"mode\":[1],\"campaigns\":[1],\"excluded\":[1],\"campaignType\":[1,\"campaign-type\"],\"color\":[1],\"imageWidth\":[2,\"image-width\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"setItemsAmount\":[2,\"set-items-amount\"],\"cssUrl\":[1,\"css-url\"],\"noResultText\":[1,\"no-result-text\"],\"noResultShow\":[4,\"no-result-show\"],\"gridArrowsDynamic\":[4,\"grid-arrows-dynamic\"],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"showFilters\":[4,\"show-filters\"],\"addPriceContainer\":[4,\"add-price-container\"],\"oneClickDiscoveryMode\":[1,\"one-click-discovery-mode\"],\"setModeDiscounts\":[1,\"set-mode-discounts\"],\"updateButtonLocation\":[1,\"update-button-location\"],\"sidebarTitle\":[1,\"sidebar-title\"],\"sidebarSubtitle\":[1,\"sidebar-subtitle\"],\"modalScrollbar\":[4,\"modal-scrollbar\"],\"position\":[1],\"addStyle\":[4,\"add-style\"],\"favoriteShow\":[4,\"favorite-show\"],\"appendSidebarToElement\":[16,\"append-sidebar-to-element\"],\"appendSidebarToId\":[1,\"append-sidebar-to-id\"],\"isStandalone\":[4,\"is-standalone\"],\"showInWidget\":[4,\"show-in-widget\"],\"uiSessionId\":[1,\"ui-session-id\"],\"targetAppendSidebarTo\":[32]},null,{\"appendSidebarToElement\":[\"appendSidebarToElementWatcher\"]}],[1,\"vviinn-error\",{\"hasBackground\":[4,\"has-background\"],\"errorType\":[1,\"error-type\"],\"handler\":[16],\"searchType\":[1,\"search-type\"]}],[1,\"vviinn-modal\",{\"active\":[1540],\"resetState\":[16,\"reset-state\"],\"buttonElementId\":[1,\"button-element-id\"],\"widgetVersion\":[1,\"widget-version\"],\"hideBackButton\":[4,\"hide-back-button\"],\"isFirstScreen\":[4,\"is-first-screen\"],\"slider\":[32]},null,{\"active\":[\"handleActiveChange\"]}],[1,\"vviinn-overlay\",{\"active\":[516]},null,{\"active\":[\"handleActiveChange\"]}],[1,\"vviinn-recommendations-sidebar\",{\"sidebarTitle\":[1,\"sidebar-title\"],\"sidebarSubtitle\":[1,\"sidebar-subtitle\"],\"token\":[1],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"productId\":[1,\"product-id\"],\"position\":[1],\"widgetScrollbar\":[4,\"widget-scrollbar\"],\"mode\":[1],\"campaigns\":[1],\"campaignType\":[1,\"campaign-type\"],\"color\":[1],\"imageWidth\":[2,\"image-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"cssUrl\":[1,\"css-url\"],\"noResultText\":[1,\"no-result-text\"],\"noResultShow\":[4,\"no-result-show\"],\"gridArrowsDynamic\":[4,\"grid-arrows-dynamic\"],\"excluded\":[1],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"addPriceContainer\":[4,\"add-price-container\"],\"showFilters\":[4,\"show-filters\"],\"setModeDiscounts\":[1,\"set-mode-discounts\"],\"setItemsAmount\":[2,\"set-items-amount\"],\"updateButtonLocation\":[1,\"update-button-location\"],\"favoriteShow\":[4,\"favorite-show\"],\"useCarousel\":[4,\"use-carousel\"],\"showInWidget\":[4,\"show-in-widget\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"apiPath\":[1,\"api-path\"],\"showInCustomContainer\":[4,\"show-in-custom-container\"],\"buttonChildren\":[16,\"button-children\"],\"buttonElementId\":[1,\"button-element-id\"],\"widgetVersion\":[1,\"widget-version\"],\"showingInButton\":[4,\"showing-in-button\"],\"showInModal\":[4,\"show-in-modal\"],\"isAppended\":[4,\"is-appended\"],\"uiSessionId\":[1,\"ui-session-id\"],\"triggerElement\":[16,\"trigger-element\"],\"sidebarState\":[32],\"sourceProduct\":[32],\"showLoadingClass\":[32],\"recommendationsLoading\":[32],\"hidden\":[32]},[[0,\"vviinnUpdatingAllCardsStarted\",\"updatingAllCardsStarted\"],[0,\"vviinnUpdatingAllCardsFinished\",\"updatingAllCardsFinished\"],[16,\"click\",\"bodyClickListener\"],[0,\"sourceProductReceived\",\"sourceProductReceived\"],[8,\"keydown\",\"handleEscape\"]],{\"recommendationsLoading\":[\"handleLoadingChange\"],\"sidebarState\":[\"handleSidebarStateChange\"]}],[1,\"vviinn-button\",{\"addStyle\":[4,\"add-style\"]}]]],[\"vviinn-vps-button\",[[1,\"vviinn-vps-button\",{\"token\":[1],\"currencySign\":[1,\"currency-sign\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"pricePrefix\":[1,\"price-prefix\"],\"campaignId\":[1,\"campaign-id\"],\"campaignIdTextSearch\":[1,\"campaign-id-text-search\"],\"campaignIdVisualSearch\":[1,\"campaign-id-visual-search\"],\"addStyle\":[4,\"add-style\"],\"mode\":[1],\"excluded\":[1],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"exampleImageSource\":[1,\"example-image-source\"],\"textSearchShow\":[4,\"text-search-show\"],\"autoSuggestShow\":[4,\"auto-suggest-show\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"favoriteShow\":[4,\"favorite-show\"],\"oneClickDiscoveryMode\":[1,\"one-click-discovery-mode\"],\"oneClickDiscoveryCampaigns\":[1,\"one-click-discovery-campaigns\"],\"addPriceContainer\":[4,\"add-price-container\"],\"showIntervalInputs\":[4,\"show-interval-inputs\"],\"cssUrl\":[1,\"css-url\"],\"apiPath\":[1,\"api-path\"],\"showResultsInModal\":[4,\"show-results-in-modal\"],\"resultsPageUrl\":[1,\"results-page-url\"],\"resultsPageParams\":[1,\"results-page-params\"],\"parentSlots\":[16,\"parent-slots\"],\"buttonPressed\":[32]},[[0,\"vviinnWidgetClose\",\"handleModalClosed\"]],{\"buttonPressed\":[\"buttonPressedWatcher\"]}]]],[\"vviinn-text-search\",[[1,\"vviinn-text-search\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"locale\":[1],\"mode\":[1],\"searchQuery\":[1025,\"search-query\"],\"placeholder\":[1],\"resultsPageUrl\":[1,\"results-page-url\"],\"resultsPageParams\":[1,\"results-page-params\"],\"autoSuggestShow\":[4,\"auto-suggest-show\"],\"exampleImageSource\":[1,\"example-image-source\"],\"cssUrl\":[1,\"css-url\"],\"visualSearchMode\":[1,\"visual-search-mode\"],\"showInWidget\":[4,\"show-in-widget\"],\"showOnFirstScreen\":[4,\"show-on-first-screen\"],\"uiSessionId\":[1,\"ui-session-id\"],\"basicEventData\":[16,\"basic-event-data\"],\"isRecording\":[32],\"showTooltip\":[32],\"autoSuggestCompletions\":[32],\"activeSuggestionIndex\":[32]}]]],[\"vviinn-camera_12\",[[1,\"vviinn-vps-widget\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"active\":[1028],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"locale\":[1],\"numberLocale\":[1,\"number-locale\"],\"campaignId\":[1,\"campaign-id\"],\"campaignIdTextSearch\":[1,\"campaign-id-text-search\"],\"campaignIdVisualSearch\":[1,\"campaign-id-visual-search\"],\"excluded\":[1],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"exampleImageSource\":[1,\"example-image-source\"],\"textSearchShow\":[4,\"text-search-show\"],\"autoSuggestShow\":[4,\"auto-suggest-show\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"favoriteShow\":[4,\"favorite-show\"],\"oneClickDiscoveryMode\":[1,\"one-click-discovery-mode\"],\"oneClickDiscoveryCampaigns\":[1,\"one-click-discovery-campaigns\"],\"addPriceContainer\":[4,\"add-price-container\"],\"showIntervalInputs\":[4,\"show-interval-inputs\"],\"cssUrl\":[1,\"css-url\"],\"showResultsInModal\":[4,\"show-results-in-modal\"],\"resultsPageUrl\":[1,\"results-page-url\"],\"resultsPageParams\":[1,\"results-page-params\"],\"showingInButton\":[4,\"showing-in-button\"],\"buttonElementId\":[1,\"button-element-id\"],\"buttonPressed\":[4,\"button-pressed\"],\"mode\":[1],\"resetVpsButton\":[16,\"reset-vps-button\"],\"replaceSlotsContentInButton\":[16,\"replace-slots-content-in-button\"],\"parentSlots\":[16,\"parent-slots\"],\"slidePosition\":[32],\"uploadSource\":[32],\"stream\":[32],\"products\":[32],\"modalBody\":[32],\"uploadDialogOpened\":[32],\"isCameraInitializing\":[32],\"isCameraEnabled\":[32],\"isCameraButtonClicked\":[32],\"showAspectRatioError\":[32],\"wrongImageFormat\":[32]},[[0,\"widgetTextSearchFinished\",\"textSearchFinishedHandler\"],[0,\"vviinnTextSearchStarted\",\"textSearchStartedHandler\"],[0,\"vviinnResultLoad\",\"resultLoadHandler\"],[0,\"vviinnResultView\",\"resultViewHandler\"],[0,\"vviinnCameraEnabled\",\"trackCameraEnabled\"],[0,\"vviinnImageCrop\",\"cropAreaChanges\"],[0,\"vviinnSelectObject\",\"trackDetectedObject\"],[0,\"vviinnSelectFilter\",\"trackImageSearchFilterSelected\"]],{\"active\":[\"activeWatcher\"],\"slidePosition\":[\"slidePositionWatcher\"]}],[1,\"vviinn-results\",{\"token\":[1],\"currencySign\":[1,\"currency-sign\"],\"locale\":[8],\"numberLocale\":[1,\"number-locale\"],\"campaignIdTextSearch\":[1,\"campaign-id-text-search\"],\"campaignIdVisualSearch\":[1,\"campaign-id-visual-search\"],\"pricePrefix\":[1,\"price-prefix\"],\"searchId\":[1,\"search-id\"],\"resultsPageUrl\":[1,\"results-page-url\"],\"resultsPageParams\":[1,\"results-page-params\"],\"uiSessionId\":[1025,\"ui-session-id\"],\"imageResolutionWidth\":[2,\"image-resolution-width\"],\"showMultipleImages\":[4,\"show-multiple-images\"],\"productDetailsNewTab\":[4,\"product-details-new-tab\"],\"productDetailsRedirect\":[4,\"product-details-redirect\"],\"addToBasketShow\":[4,\"add-to-basket-show\"],\"favoriteShow\":[4,\"favorite-show\"],\"textSearchQuery\":[1,\"text-search-query\"],\"filterColumn\":[1,\"filter-column\"],\"filterValue\":[1,\"filter-value\"],\"resultsCount\":[2,\"results-count\"],\"addPriceContainer\":[4,\"add-price-container\"],\"oneClickDiscoveryMode\":[1,\"one-click-discovery-mode\"],\"oneClickDiscoveryCampaigns\":[1,\"one-click-discovery-campaigns\"],\"cssUrl\":[1,\"css-url\"],\"apiPath\":[1,\"api-path\"],\"showInWidget\":[4,\"show-in-widget\"],\"buttonElementId\":[1,\"button-element-id\"],\"widgetElementId\":[1025,\"widget-element-id\"],\"showAspectRatioError\":[4,\"show-aspect-ratio-error\"],\"resetWidgetState\":[16,\"reset-widget-state\"],\"replaceSlotsContentInWidget\":[16,\"replace-slots-content-in-widget\"],\"replaceSlotsContentInButton\":[16,\"replace-slots-content-in-button\"],\"parentSlots\":[16,\"parent-slots\"],\"useInnerState\":[4,\"use-inner-state\"],\"scrollableModalBody\":[16,\"scrollable-modal-body\"],\"slotsReplaced\":[32],\"oneClickDiscoveryAppendIndex\":[32],\"oneClickDiscoverySelectedIndex\":[32],\"innerResults\":[32]},[[0,\"vviinnProductLoad\",\"trackProductLoad\"],[0,\"vviinnProductView\",\"trackProductView\"],[0,\"vviinnProductClick\",\"trackProductClick\"],[0,\"vviinnAuxClick\",\"trackAuxClick\"],[0,\"vviinnAddToBasket\",\"trackAddToBasket\"],[0,\"vviinnAddToFavorite\",\"trackAddToFavorite\"]],{\"textSearchQuery\":[\"watchTextSearchQuery\"],\"searchId\":[\"watchSearchId\"]}],[1,\"vviinn-cropper\",{\"token\":[1],\"apiPath\":[1,\"api-path\"],\"saveImageMode\":[1,\"save-image-mode\"],\"autoSearch\":[4,\"auto-search\"],\"width\":[1026],\"cssUrl\":[1,\"css-url\"],\"height\":[1026],\"basicEventData\":[1040,\"basic-event-data\"],\"showAspectRatioError\":[4,\"show-aspect-ratio-error\"],\"showInWidget\":[4,\"show-in-widget\"],\"cropper\":[32],\"selectedDetectedObject\":[32]},[[0,\"vviinnSelectObject\",\"selectDetectedObject\"],[0,\"vviinnImageCrop\",\"imageCropHandler\"]]],[1,\"vviinn-overlayed-modal\",{\"active\":[4],\"resetState\":[16,\"reset-state\"],\"buttonElementId\":[1,\"button-element-id\"],\"hideBackButton\":[4,\"hide-back-button\"],\"widgetVersion\":[1,\"widget-version\"],\"isFirstScreen\":[4,\"is-first-screen\"]}],[1,\"vviinn-image-selector\",{\"basicEventData\":[16,\"basic-event-data\"],\"startUpload\":[4,\"start-upload\"],\"loading\":[4],\"accept\":[1],\"resetVpsButton\":[16,\"reset-vps-button\"],\"token\":[1],\"apiPath\":[1,\"api-path\"],\"showInWidget\":[4,\"show-in-widget\"],\"storeName\":[1,\"store-name\"],\"state\":[16]},null,{\"startUpload\":[\"startUploadWatcher\"]}],[1,\"vviinn-camera\",{\"token\":[1],\"exampleImageSource\":[1,\"example-image-source\"],\"width\":[2],\"height\":[2],\"basicEventData\":[16,\"basic-event-data\"],\"srcObject\":[16,\"src-object\"],\"cameraButtonClicked\":[4,\"camera-button-clicked\"],\"showInWidget\":[4,\"show-in-widget\"],\"storeName\":[1,\"store-name\"],\"state\":[16],\"apiPath\":[1,\"api-path\"],\"selected\":[32],\"videoInitialized\":[32],\"zoomCapabilities\":[32]},null,{\"srcObject\":[\"handleSrcObjectChange\"]}],[1,\"vviinn-privacy-badge\",{\"privacyBadgeText\":[1,\"privacy-badge-text\"]}],[1,\"vviinn-selected-filters\",{\"locale\":[1],\"currencySign\":[1,\"currency-sign\"],\"showInWidget\":[4,\"show-in-widget\"],\"requestFilters\":[32],\"selectedFilterButtons\":[32],\"textSearchCustomFilter\":[32],\"imageSrc\":[32],\"intervalCustomFilters\":[32]}],[1,\"vviinn-slide\"],[1,\"vviinn-slider\",{\"position\":[514],\"elementsCount\":[32],\"internalPosition\":[32],\"swipeStartPosition\":[32],\"isRTL\":[32]},null,{\"position\":[\"positionWatchHandler\"]}],[1,\"vviinn-suggestions\",{\"showInWidget\":[4,\"show-in-widget\"],\"apiPath\":[1,\"api-path\"],\"locale\":[1],\"currencySign\":[1,\"currency-sign\"],\"pricePrefix\":[1,\"price-prefix\"],\"token\":[1],\"stream\":[32],\"appliedSuggestionFilters\":[32]}],[1,\"vviinn-teaser\"]]]]"), options);
9
9
  };
10
10
 
11
11
  export { defineCustomElements };
@@ -0,0 +1,39 @@
1
+ const DEFAULT_RESULTS_PAGE_PARAM_NAMES = {
2
+ query: "query",
3
+ searchId: "searchId",
4
+ };
5
+ const parseResultsPageParamNames = (raw) => {
6
+ const result = Object.assign({}, DEFAULT_RESULTS_PAGE_PARAM_NAMES);
7
+ if (!raw)
8
+ return result;
9
+ const params = new URLSearchParams(raw);
10
+ const query = params.get("query");
11
+ const searchId = params.get("searchId");
12
+ if (query)
13
+ result.query = query;
14
+ if (searchId)
15
+ result.searchId = searchId;
16
+ return result;
17
+ };
18
+ const resolveResultsPageUrl = (resultsPageUrl) => new URL(resultsPageUrl, window.location.origin);
19
+ const normalizePathname = (pathname) => pathname.replace(/\/+$/, "") || "/";
20
+ const isOnResultsPage = (resultsPageUrl) => normalizePathname(window.location.pathname) ===
21
+ normalizePathname(resolveResultsPageUrl(resultsPageUrl).pathname);
22
+ const buildTextSearchRedirectUrl = (resultsPageUrl, query, queryParamName = DEFAULT_RESULTS_PAGE_PARAM_NAMES.query) => {
23
+ const url = resolveResultsPageUrl(resultsPageUrl);
24
+ url.searchParams.set(queryParamName, query);
25
+ return url.toString();
26
+ };
27
+ const buildImageSearchRedirectUrl = (resultsPageUrl, searchId, searchIdParamName = DEFAULT_RESULTS_PAGE_PARAM_NAMES.searchId) => {
28
+ const url = resolveResultsPageUrl(resultsPageUrl);
29
+ url.searchParams.set(searchIdParamName, searchId);
30
+ return url.toString();
31
+ };
32
+ const parseResultsPageParams = (search = window.location.search, paramNames = DEFAULT_RESULTS_PAGE_PARAM_NAMES) => {
33
+ const params = new URLSearchParams(search);
34
+ const query = params.get(paramNames.query);
35
+ const searchId = params.get(paramNames.searchId);
36
+ return Object.assign(Object.assign({}, (query && { query })), (searchId && { searchId }));
37
+ };
38
+
39
+ export { parseResultsPageParams as a, buildTextSearchRedirectUrl as b, buildImageSearchRedirectUrl as c, isOnResultsPage as i, parseResultsPageParamNames as p };