vviinn-widgets 2.167.0 → 2.168.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 (77) hide show
  1. package/dist/cjs/constants-DHaugTOE.js +5 -0
  2. package/dist/cjs/{constants-wmamV_ry.js → index-B7VfQ5vd.js} +6 -3
  3. package/dist/cjs/{package-CTmKiTyO.js → package-DeG1AEbB.js} +1 -1
  4. package/dist/cjs/vviinn-camera_12.cjs.entry.js +50 -45
  5. package/dist/cjs/vviinn-carousel_10.cjs.entry.js +46 -23
  6. package/dist/cjs/vviinn-detected-object_7.cjs.entry.js +10 -9
  7. package/dist/cjs/vviinn-selected-filters.cjs.entry.js +15 -14
  8. package/dist/cjs/vviinn-text-search.cjs.entry.js +12 -7
  9. package/dist/cjs/vviinn-vps-button.cjs.entry.js +3 -2
  10. package/dist/collection/components/vviinn-cropper/vviinn-cropper.js +14 -11
  11. package/dist/collection/components/vviinn-filters/vviinn-extended-filters.js +19 -10
  12. package/dist/collection/components/vviinn-filters/vviinn-filters.js +13 -9
  13. package/dist/collection/components/vviinn-filters/vviinn-selected-filters.js +15 -14
  14. package/dist/collection/components/vviinn-product-card/vviinn-product-card.js +15 -3
  15. package/dist/collection/components/vviinn-results/vviinn-results.js +18 -19
  16. package/dist/collection/components/vviinn-text-search/vviinn-text-search.js +12 -7
  17. package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js +9 -8
  18. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +16 -13
  19. package/dist/collection/dom/index.js +5 -0
  20. package/dist/esm/constants-DOMXsA9W.js +3 -0
  21. package/dist/esm/index-CGjTkEbG.js +9 -0
  22. package/dist/esm/{package-Ds0qJGAs.js → package-CJeeTzkr.js} +1 -1
  23. package/dist/esm/vviinn-camera_12.entry.js +46 -41
  24. package/dist/esm/vviinn-carousel_10.entry.js +46 -23
  25. package/dist/esm/vviinn-detected-object_7.entry.js +10 -9
  26. package/dist/esm/vviinn-selected-filters.entry.js +15 -14
  27. package/dist/esm/vviinn-text-search.entry.js +11 -6
  28. package/dist/esm/vviinn-vps-button.entry.js +2 -1
  29. package/dist/types/components/vviinn-cropper/vviinn-cropper.d.ts +1 -0
  30. package/dist/types/components/vviinn-filters/vviinn-extended-filters.d.ts +1 -0
  31. package/dist/types/components/vviinn-filters/vviinn-filters.d.ts +1 -0
  32. package/dist/types/components/vviinn-filters/vviinn-selected-filters.d.ts +1 -0
  33. package/dist/types/components/vviinn-product-card/vviinn-product-card.d.ts +2 -0
  34. package/dist/types/components/vviinn-results/vviinn-results.d.ts +1 -0
  35. package/dist/types/components/vviinn-text-search/vviinn-text-search.d.ts +2 -1
  36. package/dist/types/components/vviinn-vpr-button/vviinn-vpr-button.d.ts +1 -0
  37. package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +3 -2
  38. package/dist/types/components.d.ts +5 -5
  39. package/dist/types/dom/index.d.ts +2 -0
  40. package/dist/vviinn-widgets/p-165690ca.entry.js +1 -0
  41. package/dist/vviinn-widgets/p-2fe44cd6.entry.js +1 -0
  42. package/dist/vviinn-widgets/p-366df345.entry.js +1 -0
  43. package/dist/vviinn-widgets/p-CGjTkEbG.js +1 -0
  44. package/dist/vviinn-widgets/{p-Ds0qJGAs.js → p-CJeeTzkr.js} +1 -1
  45. package/dist/vviinn-widgets/p-DOMXsA9W.js +1 -0
  46. package/dist/vviinn-widgets/p-d2908040.entry.js +10 -0
  47. package/dist/vviinn-widgets/p-dec628aa.entry.js +1 -0
  48. package/dist/vviinn-widgets/p-fdff6519.entry.js +1 -0
  49. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  50. package/package.json +1 -1
  51. package/www/build/p-165690ca.entry.js +1 -0
  52. package/www/build/p-2fe44cd6.entry.js +1 -0
  53. package/www/build/p-366df345.entry.js +1 -0
  54. package/www/build/p-CGjTkEbG.js +1 -0
  55. package/www/build/{p-Ds0qJGAs.js → p-CJeeTzkr.js} +1 -1
  56. package/www/build/p-DOMXsA9W.js +1 -0
  57. package/www/build/{p-9fa69445.js → p-a2741931.js} +1 -1
  58. package/www/build/p-d2908040.entry.js +10 -0
  59. package/www/build/p-dec628aa.entry.js +1 -0
  60. package/www/build/p-fdff6519.entry.js +1 -0
  61. package/www/build/vviinn-widgets.esm.js +1 -1
  62. package/www/index.html +1 -1
  63. package/dist/esm/constants-BPu6OLhB.js +0 -6
  64. package/dist/vviinn-widgets/p-08c03082.entry.js +0 -1
  65. package/dist/vviinn-widgets/p-177e130c.entry.js +0 -1
  66. package/dist/vviinn-widgets/p-1debe9ef.entry.js +0 -1
  67. package/dist/vviinn-widgets/p-53347933.entry.js +0 -1
  68. package/dist/vviinn-widgets/p-7d12f926.entry.js +0 -1
  69. package/dist/vviinn-widgets/p-BPu6OLhB.js +0 -1
  70. package/dist/vviinn-widgets/p-bb74e1b1.entry.js +0 -10
  71. package/www/build/p-08c03082.entry.js +0 -1
  72. package/www/build/p-177e130c.entry.js +0 -1
  73. package/www/build/p-1debe9ef.entry.js +0 -1
  74. package/www/build/p-53347933.entry.js +0 -1
  75. package/www/build/p-7d12f926.entry.js +0 -1
  76. package/www/build/p-BPu6OLhB.js +0 -1
  77. package/www/build/p-bb74e1b1.entry.js +0 -10
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ const DEFAULT_EXAMPLE_IMAGE = "https://cdn.vviinn.com/assets/merchant/default/vviinn_img_start-hero.jpg";
4
+
5
+ exports.DEFAULT_EXAMPLE_IMAGE = DEFAULT_EXAMPLE_IMAGE;
@@ -2,9 +2,12 @@
2
2
 
3
3
  const findSlotElements = (el) => Array.from(el.querySelectorAll("[slot]"));
4
4
  const getSlotNames = (slotElements) => slotElements.map((el) => el.getAttribute("slot"));
5
+ function addEventListenersWithSignal(target, listeners, signal) {
6
+ listeners.forEach(([type, handler]) => {
7
+ target.addEventListener(type, handler, { signal });
8
+ });
9
+ }
5
10
 
6
- const DEFAULT_EXAMPLE_IMAGE = "https://cdn.vviinn.com/assets/merchant/default/vviinn_img_start-hero.jpg";
7
-
8
- exports.DEFAULT_EXAMPLE_IMAGE = DEFAULT_EXAMPLE_IMAGE;
11
+ exports.addEventListenersWithSignal = addEventListenersWithSignal;
9
12
  exports.findSlotElements = findSlotElements;
10
13
  exports.getSlotNames = getSlotNames;
@@ -14,7 +14,7 @@ function fromString(s) {
14
14
  return s === "VPR" ? { _tag: "VPR" } : { _tag: "VCS" };
15
15
  }
16
16
 
17
- const version = "2.167.0";
17
+ const version = "2.168.1";
18
18
 
19
19
  exports.campaignTypeNames = campaignTypeNames;
20
20
  exports.fold = fold;
@@ -6,12 +6,13 @@ var customizedSlots = require('./customized-slots-Da3rVnNM.js');
6
6
  var index$2 = require('./index-D_wGgGZa.js');
7
7
  var index$1 = require('./index-C3G9W48a.js');
8
8
  var Rectangle = require('./Rectangle-oExct0ft.js');
9
- var _package = require('./package-CTmKiTyO.js');
9
+ var index$3 = require('./index-B7VfQ5vd.js');
10
+ var _package = require('./package-DeG1AEbB.js');
10
11
  var resources = require('./resources-fyqfpLC2.js');
11
- var index$3 = require('./index-DYvhURIh.js');
12
- var constants$1 = require('./constants-wmamV_ry.js');
12
+ var index$4 = require('./index-DYvhURIh.js');
13
13
  var constants = require('./constants-CgBx7Czu.js');
14
14
  var WarningIcon = require('./WarningIcon-DOMzuRV9.js');
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" },
17
18
  index.h("path", { d: "M12 17.5C13.25 17.5 14.3125 17.0625 15.1875 16.1875C16.0625 15.3125 16.5 14.25 16.5 13C16.5 11.75 16.0625 10.6875 15.1875 9.8125C14.3125 8.9375 13.25 8.5 12 8.5C10.75 8.5 9.6875 8.9375 8.8125 9.8125C7.9375 10.6875 7.5 11.75 7.5 13C7.5 14.25 7.9375 15.3125 8.8125 16.1875C9.6875 17.0625 10.75 17.5 12 17.5ZM12 15.5C11.3 15.5 10.7083 15.2583 10.225 14.775C9.74167 14.2917 9.5 13.7 9.5 13C9.5 12.3 9.74167 11.7083 10.225 11.225C10.7083 10.7417 11.3 10.5 12 10.5C12.7 10.5 13.2917 10.7417 13.775 11.225C14.2583 11.7083 14.5 12.3 14.5 13C14.5 13.7 14.2583 14.2917 13.775 14.775C13.2917 15.2583 12.7 15.5 12 15.5ZM4 21C3.45 21 2.97917 20.8042 2.5875 20.4125C2.19583 20.0208 2 19.55 2 19V7C2 6.45 2.19583 5.97917 2.5875 5.5875C2.97917 5.19583 3.45 5 4 5H7.15L8.4 3.65C8.58333 3.45 8.80417 3.29167 9.0625 3.175C9.32083 3.05833 9.59167 3 9.875 3H14.125C14.4083 3 14.6792 3.05833 14.9375 3.175C15.1958 3.29167 15.4167 3.45 15.6 3.65L16.85 5H20C20.55 5 21.0208 5.19583 21.4125 5.5875C21.8042 5.97917 22 6.45 22 7V19C22 19.55 21.8042 20.0208 21.4125 20.4125C21.0208 20.8042 20.55 21 20 21H4Z", fill: "currentColor" })));
@@ -3642,16 +3643,18 @@ const VviinnCropper = class {
3642
3643
  this.state = state;
3643
3644
  this.storeName = storeName;
3644
3645
  this.initPreloadedImage();
3645
- document.addEventListener("vviinnImageUploadFinished", this.imageUploadFinishedHandler);
3646
- document.addEventListener("vviinnCropperResetState", this.resetStateHandler);
3647
- document.addEventListener("vviinnResetCropArea", this.resetCropAreaHandler);
3646
+ this.eventAbortController = new AbortController();
3647
+ const { signal } = this.eventAbortController;
3648
+ index$3.addEventListenersWithSignal(document, [
3649
+ ["vviinnImageUploadFinished", this.imageUploadFinishedHandler],
3650
+ ["vviinnCropperResetState", this.resetStateHandler],
3651
+ ["vviinnResetCropArea", this.resetCropAreaHandler],
3652
+ ], signal);
3648
3653
  }
3649
3654
  disconnectedCallback() {
3650
- var _a, _b;
3651
- document.removeEventListener("vviinnImageUploadFinished", this.imageUploadFinishedHandler);
3652
- document.removeEventListener("vviinnCropperResetState", this.resetStateHandler);
3653
- document.removeEventListener("vviinnResetCropArea", this.resetCropAreaHandler);
3654
- (_b = (_a = this.cropper) === null || _a === void 0 ? void 0 : _a.destroy) === null || _b === void 0 ? void 0 : _b.call(_a);
3655
+ var _a, _b, _c;
3656
+ (_a = this.eventAbortController) === null || _a === void 0 ? void 0 : _a.abort();
3657
+ (_c = (_b = this.cropper) === null || _b === void 0 ? void 0 : _b.destroy) === null || _c === void 0 ? void 0 : _c.call(_b);
3655
3658
  search_store.componentsState.image = null;
3656
3659
  }
3657
3660
  selectDetectedObject({ detail }) {
@@ -3694,11 +3697,11 @@ const VviinnCropper = class {
3694
3697
  }
3695
3698
  render() {
3696
3699
  var _a, _b;
3697
- return (index.h(index.Host, { key: 'f1bae6a9564dad26b93047f5e700c1e317450fa2', class: {
3700
+ return (index.h(index.Host, { key: '3d893072d0e91ebfac9c437679eea13573fc4f88', class: {
3698
3701
  "show-in-widget": this.showInWidget,
3699
3702
  active: !!this.state.image,
3700
- } }, index.h("div", { key: '0659c8029d8aa2201380815837bd3e6fb0d2b7bd', class: "container" }, index.h("div", { key: '5a9f6e3f8aeb13ac5301dfbadff733099aaec475', class: "image-container", style: { width: `${this.width.toString()}px`, overflow: "hidden" } }, index.h("img", { key: 'd6480a6de6b161ec8c4bcdf3a54e83d87ae97b01', decoding: "async", width: this.width, height: this.height, src: (_a = this.state.image) === null || _a === void 0 ? void 0 : _a.src, draggable: false, onLoad: this.loadImage }), (_b = this.state.detectedObjects) === null || _b === void 0 ? void 0 :
3701
- _b.map((object) => (index.h("vviinn-detected-object", { detectedObject: object, selectedDetectedObject: this.selectedDetectedObject, basicEventData: this.basicEventData, imageBounds: this.state.imageBounds, showInWidget: this.showInWidget })))), this.showPreloader() && (index.h("div", { key: '80a31f0c2a6291b63acd9fe7958f7dde2c776aed', class: "image-preloader" }, index.h("vviinn-preloader", { key: 'e7d207bde456762ec438c5659e2f6921809b9f50' }))))));
3703
+ } }, index.h("div", { key: '2ad54a9800fab5876f543d5b2ee87687bb9903e0', class: "container" }, index.h("div", { key: '7d80b9e796906f2cc6ae2a0d3bef638e0dd8cbac', class: "image-container", style: { width: `${this.width.toString()}px`, overflow: "hidden" } }, index.h("img", { key: '4d86852740e6e77de4fd368122ade89ed3ac653e', decoding: "async", width: this.width, height: this.height, src: (_a = this.state.image) === null || _a === void 0 ? void 0 : _a.src, draggable: false, onLoad: this.loadImage }), (_b = this.state.detectedObjects) === null || _b === void 0 ? void 0 :
3704
+ _b.map((object) => (index.h("vviinn-detected-object", { detectedObject: object, selectedDetectedObject: this.selectedDetectedObject, basicEventData: this.basicEventData, imageBounds: this.state.imageBounds, showInWidget: this.showInWidget })))), this.showPreloader() && (index.h("div", { key: '62eff0eca821cda5e16ae99112da2c764eb330f1', class: "image-preloader" }, index.h("vviinn-preloader", { key: '04a92436b270f840827e736d4d417085a2835986' }))))));
3702
3705
  }
3703
3706
  get el() { return index.getElement(this); }
3704
3707
  };
@@ -3910,7 +3913,7 @@ const VviinnResults = class {
3910
3913
  this.getTextSearchResults(this.state.textSearchId);
3911
3914
  }
3912
3915
  else {
3913
- search_store.makeVisualSearchRequest(this.storeName, this.searchId);
3916
+ search_store.makeVisualSearchRequest(this.storeName, this.state.visualSearchId);
3914
3917
  }
3915
3918
  };
3916
3919
  this.filterTriggeredHandler = ({ detail, }) => {
@@ -3976,8 +3979,8 @@ const VviinnResults = class {
3976
3979
  }
3977
3980
  async componentWillLoad() {
3978
3981
  customizedSlots.slotChangeListener(this, this.el);
3979
- this.slots = constants$1.findSlotElements(this.el);
3980
- this.passedSlotNames = constants$1.getSlotNames([...this.parentSlots, ...this.slots]);
3982
+ this.slots = index$3.findSlotElements(this.el);
3983
+ this.passedSlotNames = index$3.getSlotNames([...this.parentSlots, ...this.slots]);
3981
3984
  if (!this.showInWidget) {
3982
3985
  await Rectangle.instance.init({
3983
3986
  lng: search_store.globalState.locale,
@@ -4036,12 +4039,16 @@ const VviinnResults = class {
4036
4039
  if (!this.uiSessionId) {
4037
4040
  this.uiSessionId = index$2.v4();
4038
4041
  }
4039
- document.addEventListener("vviinnImageUploadStarted", this.imageUploadStartedHandler);
4040
- document.addEventListener("vviinnTextSearchStarted", this.textSearchStartedHandler);
4041
- document.addEventListener("vviinnFiltersChanged", this.filtersChangedHandler);
4042
- document.addEventListener("vviinnFilterTriggered", this.filterTriggeredHandler);
4043
- document.addEventListener("vviinnImageCrop", this.imageCropHandler);
4044
- document.addEventListener("vviinnOneClickDiscoveryClosed", this.oneClickDiscoveryClosedHandler);
4042
+ this.eventAbortController = new AbortController();
4043
+ const { signal } = this.eventAbortController;
4044
+ index$3.addEventListenersWithSignal(document, [
4045
+ ["vviinnImageUploadStarted", this.imageUploadStartedHandler],
4046
+ ["vviinnTextSearchStarted", this.textSearchStartedHandler],
4047
+ ["vviinnFiltersChanged", this.filtersChangedHandler],
4048
+ ["vviinnFilterTriggered", this.filterTriggeredHandler],
4049
+ ["vviinnImageCrop", this.imageCropHandler],
4050
+ ["vviinnOneClickDiscoveryClosed", this.oneClickDiscoveryClosedHandler],
4051
+ ], signal);
4045
4052
  if (!!this.searchId)
4046
4053
  search_store.makeVisualSearchRequest(this.storeName, this.searchId);
4047
4054
  this.getResultsByCategory();
@@ -4049,15 +4056,10 @@ const VviinnResults = class {
4049
4056
  !this.showInWidget && this.getTextSearchResults();
4050
4057
  }
4051
4058
  disconnectedCallback() {
4052
- var _a;
4059
+ var _a, _b;
4053
4060
  search_store.resetStore(this.storeName, "all");
4054
- document.removeEventListener("vviinnImageUploadStarted", this.imageUploadStartedHandler);
4055
- document.removeEventListener("vviinnTextSearchStarted", this.textSearchStartedHandler);
4056
- document.removeEventListener("vviinnFiltersChanged", this.filtersChangedHandler);
4057
- document.removeEventListener("vviinnFilterTriggered", this.filterTriggeredHandler);
4058
- document.removeEventListener("vviinnImageCrop", this.imageCropHandler);
4059
- document.removeEventListener("vviinnOneClickDiscoveryClosed", this.oneClickDiscoveryClosedHandler);
4060
- (_a = this.disposeStoreListener) === null || _a === void 0 ? void 0 : _a.call(this);
4061
+ (_a = this.eventAbortController) === null || _a === void 0 ? void 0 : _a.abort();
4062
+ (_b = this.disposeStoreListener) === null || _b === void 0 ? void 0 : _b.call(this);
4061
4063
  this.resizeObserver.disconnect();
4062
4064
  }
4063
4065
  watchTextSearchQuery(newQuery) {
@@ -4190,13 +4192,13 @@ const VviinnResults = class {
4190
4192
  render() {
4191
4193
  var _a;
4192
4194
  const resultsLength = this.getResults().length;
4193
- return (index.h(index.Host, { key: '01c3147ae6603cf1c353afb3d234c7b4952d3a8d', id: "results-block", class: {
4195
+ return (index.h(index.Host, { key: '4130287ba2797e13e13ef459aefb7454ad529a8a', id: "results-block", class: {
4194
4196
  "show-in-widget": this.showInWidget,
4195
4197
  "matching-discovery": this.oneClickDiscoveryMode === "append-slider",
4196
- }, exportparts: `${index$3.productCardParts}, ${index$3.productCardsGridPart}` }, index.h("div", { key: 'f11e370143ecee3aa4c433ca5cb9c44544705e8a', class: "nothing-found" }, resultsLength === 0 && this.showInWidget && (index.h("vviinn-empty-results", { key: '8e0c25a09e22f03ff2ccd9b08448579095b3f734', handler: () => this === null || this === void 0 ? void 0 : this.resetWidgetState() })), this.showAspectRatioError && this.showInWidget && (index.h("vviinn-wrong-aspect-ratio", { key: '97fc821f704b24da0e5dc23a27c6748f192c9e25', handler: () => this === null || this === void 0 ? void 0 : this.resetWidgetState() }))), index.h("div", { key: 'bac7a906840e576e84961c5fbcff0ffebe2c677c', class: {
4198
+ }, exportparts: `${index$4.productCardParts}, ${index$4.productCardsGridPart}` }, index.h("div", { key: 'cf45f881e64d3e48d4072250799205d5d140207b', class: "nothing-found" }, resultsLength === 0 && this.showInWidget && (index.h("vviinn-empty-results", { key: '28965b07a17bc4215a9d19468148b1d1816b75cc', handler: () => this === null || this === void 0 ? void 0 : this.resetWidgetState() })), this.showAspectRatioError && this.showInWidget && (index.h("vviinn-wrong-aspect-ratio", { key: 'ab5ffce3145e7ef6865efee9d0e24a8dc04d8643', handler: () => this === null || this === void 0 ? void 0 : this.resetWidgetState() }))), index.h("div", { key: '802d30495385f9f4d6b203fd715c207b1253c76d', class: {
4197
4199
  hidden: this.showAspectRatioError || resultsLength === 0,
4198
4200
  products: true,
4199
- }, part: index$3.productCardsGridPart, id: "vviinn-results-products" }, resultsLength > 0 && this.renderResults(), index.h("div", { key: 'e9d7f969ab5a725e7798787405d211e700c74888', id: "one-click-discovery-append", style: {
4201
+ }, part: index$4.productCardsGridPart, id: "vviinn-results-products" }, resultsLength > 0 && this.renderResults(), index.h("div", { key: '488e5683bc1ae77b021b2cdda3d73d00e5b35a84', id: "one-click-discovery-append", style: {
4200
4202
  order: ((_a = this.oneClickDiscoveryAppendIndex) !== null && _a !== void 0 ? _a : resultsLength).toString(),
4201
4203
  } }))));
4202
4204
  }
@@ -4546,7 +4548,7 @@ const VviinnVpsWidget = class {
4546
4548
  fallbackLng: "en",
4547
4549
  resources: resources.resources,
4548
4550
  });
4549
- this.slots = constants$1.findSlotElements(this.el);
4551
+ this.slots = index$3.findSlotElements(this.el);
4550
4552
  customizedSlots.slotChangeListener(this, this.el);
4551
4553
  this.vviinnWidgetLoad.emit(this.getBasicEventData());
4552
4554
  this.trackWidgetEvent("load");
@@ -4625,10 +4627,13 @@ const VviinnVpsWidget = class {
4625
4627
  this.state.excluded = search_store.parseStringToExcluded(this.excluded);
4626
4628
  this.uiSessionId = index$2.v4();
4627
4629
  this.widgetElementId = this.el.id;
4628
- document.addEventListener("vviinnCropperAspectRatioError", this.handleAspectRatioError);
4630
+ this.eventAbortController = new AbortController();
4631
+ const { signal } = this.eventAbortController;
4632
+ index$3.addEventListenersWithSignal(document, [["vviinnCropperAspectRatioError", this.handleAspectRatioError]], signal);
4629
4633
  }
4630
4634
  disconnectedCallback() {
4631
- document.removeEventListener("vviinnCropperAspectRatioError", this.handleAspectRatioError);
4635
+ var _a;
4636
+ (_a = this.eventAbortController) === null || _a === void 0 ? void 0 : _a.abort();
4632
4637
  }
4633
4638
  trackWidgetEvent(action) {
4634
4639
  const _a = this.getBasicEventData(), rest = __rest(_a, ["campaignTypeId"]);
@@ -4683,26 +4688,26 @@ const VviinnVpsWidget = class {
4683
4688
  }
4684
4689
  render() {
4685
4690
  var _a, _b, _c, _d;
4686
- return (index.h(index.Host, { key: 'd4f54ba50a239b393e6e0d101f3c2c146f768f71', exportparts: `${index$3.modalParts}, ${index$3.productCardParts}, ${index$3.searchBarParts}, ${index$3.searchWidgetFilterParts}, ${index$3.searchWidgetButtonParts}, ${index$3.productCardsGridPart}` }, !this.showingInButton && customizedSlots.SlotSkeleton("search"), index.h("vviinn-overlayed-modal", { key: '2c914b9aab31aaf076b0a92fdb2600de09a37b1f', class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState, onVviinnWidgetClose: ({ detail }) => {
4691
+ return (index.h(index.Host, { key: 'c5738fb67466b93d3f119bf6ada9804826fef846', exportparts: `${index$4.modalParts}, ${index$4.productCardParts}, ${index$4.searchBarParts}, ${index$4.searchWidgetFilterParts}, ${index$4.searchWidgetButtonParts}, ${index$4.productCardsGridPart}` }, !this.showingInButton && customizedSlots.SlotSkeleton("search"), index.h("vviinn-overlayed-modal", { key: '1e8ab116b6f7608c11068f2aac44ae54d965d842', class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState, onVviinnWidgetClose: ({ detail }) => {
4687
4692
  if (detail.campaignTypeId !== "VPR")
4688
4693
  this.handleModalClose();
4689
4694
  }, buttonElementId: (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.widgetElementId, widgetVersion: _package.version, hideBackButton: (this.mode === "upload" && this.showingInButton) ||
4690
- (!this.isCameraEnabled && this.isOnboardingSlide()), exportparts: index$3.modalParts }, index.h("vviinn-slider", { key: 'e66cc061bb5d939bfa3774a4bb4c7b46fbdb7252', position: this.slidePosition }, index.h("vviinn-slide", { key: '32cdf59d1bd01154012d7daf564139ac677e5ea4', class: {
4695
+ (!this.isCameraEnabled && this.isOnboardingSlide()), exportparts: index$4.modalParts }, index.h("vviinn-slider", { key: '2affa844da5a3a7eaeb9daaf78763041987141b1', position: this.slidePosition }, index.h("vviinn-slide", { key: '2c5a8391a7e2bce025cbb667f797814d3ed6b3dc', class: {
4691
4696
  "start-page": true,
4692
4697
  "camera-enabled": this.isCameraEnabled,
4693
- } }, index.h("vviinn-camera", { key: '418143acc4fddea1288718d9f839d4a337506045', onVviinnImageUploadFinished: this.handleVviinnImageUploadFinished, onVviinnImageUploadStarted: () => {
4698
+ } }, index.h("vviinn-camera", { key: '2804c62558ee750995eee136b0c68e2d5aa8265b', onVviinnImageUploadFinished: this.handleVviinnImageUploadFinished, onVviinnImageUploadStarted: () => {
4694
4699
  this.handleVviinnImageUpload("startCamera");
4695
- }, 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: 'b0b15d1347137b169bdb0acda55e5da8fbea1a0b', class: {
4700
+ }, 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: '2741ce461985eb0c34f440d973621ece4b1c6087', class: {
4696
4701
  error: this.haveErrors(),
4697
- }, id: "start-page_block" }, index.h("div", { key: '3ea6ce99ca5c974544f47818ef24c5820f201515', class: "start-page_main-content" }, (this.wrongImageFormat || this.state.serverError) && (index.h("div", { key: '4153c474b0bebb57d16f844881e509b1e12da553', class: "start-page_errors-block" }, index.h("vviinn-wrong-format", { key: 'eb3a12ccfe34b2c8355e0222be1207aa22ea9ac0', class: { hidden: !this.wrongImageFormat }, handler: () => this.resetState() }), index.h("vviinn-server-error", { key: 'f14931c8e1d0b3808994cdc94e5b41bcd0f12896', class: { hidden: !this.state.serverError }, handler: () => this.resetState() }))), !this.haveErrors() && (index.h(index.Fragment, { key: 'b57de4bb5c9cfd2425dec113584c9b9ed26bb5ac' }, index.h("vviinn-teaser", { key: '25b5f5e51532f28901acdfae7e3b3b498e8f71e5' }), index.h("div", { key: '5635e68c3a6da9a234cdfd0cb89d302ccbc9ed3a', class: "buttons-group" }, this.renderButtons()), this.textSearchShow && (index.h("vviinn-text-search", { key: 'e1653def9f6829084e4671f56cac4c947f523548', token: search_store.globalState.token, apiPath: search_store.globalState.apiPath, locale: search_store.globalState.locale, showInWidget: true, showOnFirstScreen: true, searchQuery: this.textSearchQuery, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" }))))), index.h("vviinn-privacy-badge", { key: 'fef4ac05c2122274e1b9d8403c2cd4152301db4a', privacyBadgeText: Rectangle.instance.t("privacyBadgeText", {
4702
+ }, id: "start-page_block" }, index.h("div", { key: '49401113b70d469d56f4fa3668c49b8746dd54de', class: "start-page_main-content" }, (this.wrongImageFormat || this.state.serverError) && (index.h("div", { key: '2c91e1b9999c175583ebf5b27862d77e97ae86f1', class: "start-page_errors-block" }, index.h("vviinn-wrong-format", { key: '86070e8af39765c8678af29933d1e1869073a0e0', class: { hidden: !this.wrongImageFormat }, handler: () => this.resetState() }), index.h("vviinn-server-error", { key: 'f92dbd1a986c949e245ecaf8b367f401eb69d753', class: { hidden: !this.state.serverError }, handler: () => this.resetState() }))), !this.haveErrors() && (index.h(index.Fragment, { key: '6039f9b062946cbc08a0503be3ce23cafc6cf30a' }, index.h("vviinn-teaser", { key: '705f22147cfb02b8a7936ab7fa4736025dac5ab0' }), index.h("div", { key: '481b524aefa54cd7b3270002fde6a65afb69f0ab', class: "buttons-group" }, this.renderButtons()), this.textSearchShow && (index.h("vviinn-text-search", { key: '3f02db2dfd75b50f1918abf96f71a1876124953d', token: search_store.globalState.token, apiPath: search_store.globalState.apiPath, locale: search_store.globalState.locale, showInWidget: true, showOnFirstScreen: true, searchQuery: this.textSearchQuery, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" }))))), index.h("vviinn-privacy-badge", { key: '66d67bff12b6341197acb41e1d67137f62c5807b', privacyBadgeText: Rectangle.instance.t("privacyBadgeText", {
4698
4703
  interpolation: { escapeValue: false },
4699
- }), class: { invisible: this.haveErrors() } }))), index.h("vviinn-slide", { key: 'fd15ce24bee0b78886145c3e3d9f4ad29d14b852', class: {
4704
+ }), class: { invisible: this.haveErrors() } }))), index.h("vviinn-slide", { key: '5500e9601a8dcaebbe8b5af0e911528f5a9e293d', class: {
4700
4705
  "results-page": true,
4701
4706
  active: this.isResultSlide(),
4702
- } }, this.isResultSlide() && (index.h("div", { key: '6d8994850e600ef04072aec3dc88fe94fc94e194', class: "source-wrapper" }, this.state.searchType === "text" ? (index.h("vviinn-text-search", { token: this.token, showInWidget: true, searchQuery: this.textSearchQuery, apiPath: this.apiPath, locale: this.locale, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" })) : (index.h("vviinn-cropper", { basicEventData: this.getBasicEventData(), showAspectRatioError: this.showAspectRatioError, apiPath: this.apiPath, showInWidget: true, "save-image-mode": "never" })), ((_b = this.state.dynamicFilters) === null || _b === void 0 ? void 0 : _b.length) > 0 && (index.h("div", { key: '465f732964bf517d95f86de3a180f057df8fbf22', class: {
4707
+ } }, this.isResultSlide() && (index.h("div", { key: '24f1ae2b4d20dc7cb30d9cee2b27ad20bc5d326b', class: "source-wrapper" }, this.state.searchType === "text" ? (index.h("vviinn-text-search", { token: this.token, showInWidget: true, searchQuery: this.textSearchQuery, apiPath: this.apiPath, locale: this.locale, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" })) : (index.h("vviinn-cropper", { basicEventData: this.getBasicEventData(), showAspectRatioError: this.showAspectRatioError, apiPath: this.apiPath, showInWidget: true, "save-image-mode": "never" })), ((_b = this.state.dynamicFilters) === null || _b === void 0 ? void 0 : _b.length) > 0 && (index.h("div", { key: 'f54fc565fc457ae649cc02864e26c41f40c91105', class: {
4703
4708
  "filters-wrapper": true,
4704
4709
  hidden: this.showAspectRatioError,
4705
- } }, index.h("vviinn-filters", { key: '3c28d99c105d858503646b4266d1bcc1d7ae4473', class: "preview-filters", showInWidget: true, exportparts: index$3.filtersParts }), index.h("vviinn-extended-filters", { key: '2df9ec5937f09f792b2323e84ffebba2fe9a04f7', class: "preview-extended-filters", mode: "preview", showHeader: false, exportparts: index$3.extendedFiltersParts, showInWidget: true }), index.h("vviinn-extended-filters-button", { key: '6c4d1308abd13e73a730488d2ef100ef5d04fe9b', class: "extended-filters-button", exportparts: "extended-filters-button", showInWidget: true }))))), this.isResultSlide() && (index.h("vviinn-results", { key: '024d97470e701ddc323f03d8c3d2c1c0a44626d8', token: search_store.globalState.token, locale: search_store.globalState.locale, pricePrefix: search_store.globalState.pricePrefix, "currency-sign": search_store.globalState.currencySign, apiPath: search_store.globalState.apiPath, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, uiSessionId: this.uiSessionId, widgetElementId: (_c = this.buttonElementId) !== null && _c !== void 0 ? _c : this.widgetElementId, showInWidget: true, buttonElementId: this.buttonElementId, imageResolutionWidth: this.imageResolutionWidth, 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, textSearchQuery: this.textSearchQuery, addPriceContainer: this.addPriceContainer, oneClickDiscoveryMode: (_d = this.oneClickDiscoveryMode) !== null && _d !== void 0 ? _d : (this.oneClickDiscoveryShow ? "append-grid" : undefined), oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, parentSlots: [...this.parentSlots, ...this.slots], scrollableModalBody: this.modalBody })))), index.h("vviinn-extended-filters", { key: 'c927dfdeda2a4bdba3f6f5fb04d17db6f16e3019', class: "modal-extended-filters", mode: "modal", exportparts: index$3.extendedFiltersParts, showInWidget: true }))));
4710
+ } }, index.h("vviinn-filters", { key: '58933172e973e0bff76aa55d525c55b966ca4453', class: "preview-filters", showInWidget: true, exportparts: index$4.filtersParts }), index.h("vviinn-extended-filters", { key: '6197bd739eaa770b819842b18cf9869eb00ae5ad', class: "preview-extended-filters", mode: "preview", showHeader: false, exportparts: index$4.extendedFiltersParts, showInWidget: true }), index.h("vviinn-extended-filters-button", { key: 'b0b88f608e65e4b90c693a7bcfffab68e6c1347f', class: "extended-filters-button", exportparts: "extended-filters-button", showInWidget: true }))))), this.isResultSlide() && (index.h("vviinn-results", { key: 'e4a18c06c375d3d0ab311a7721a8dbf0c2e4774f', token: search_store.globalState.token, locale: search_store.globalState.locale, pricePrefix: search_store.globalState.pricePrefix, "currency-sign": search_store.globalState.currencySign, apiPath: search_store.globalState.apiPath, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, uiSessionId: this.uiSessionId, widgetElementId: (_c = this.buttonElementId) !== null && _c !== void 0 ? _c : this.widgetElementId, showInWidget: true, buttonElementId: this.buttonElementId, imageResolutionWidth: this.imageResolutionWidth, 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, textSearchQuery: this.textSearchQuery, addPriceContainer: this.addPriceContainer, oneClickDiscoveryMode: (_d = this.oneClickDiscoveryMode) !== null && _d !== void 0 ? _d : (this.oneClickDiscoveryShow ? "append-grid" : undefined), oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, parentSlots: [...this.parentSlots, ...this.slots], scrollableModalBody: this.modalBody })))), index.h("vviinn-extended-filters", { key: 'f846bbbd4d6c62305e45666d1eeec2e627d1fc2f', class: "modal-extended-filters", mode: "modal", exportparts: index$4.extendedFiltersParts, showInWidget: true }))));
4706
4711
  }
4707
4712
  get el() { return index.getElement(this); }
4708
4713
  static get watchers() { return {
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-A2FtmPS7.js');
4
4
  var search_store = require('./search.store-BLHPjH2B.js');
5
- var _package = require('./package-CTmKiTyO.js');
5
+ var _package = require('./package-DeG1AEbB.js');
6
6
  var index$1 = require('./index-D_wGgGZa.js');
7
7
  var constants = require('./constants-CgBx7Czu.js');
8
8
  var Rectangle = require('./Rectangle-oExct0ft.js');
@@ -10,6 +10,7 @@ var customizedSlots = require('./customized-slots-Da3rVnNM.js');
10
10
  var index$2 = require('./index-DYvhURIh.js');
11
11
  var triggerFilter = require('./triggerFilter-CJzx3fGm.js');
12
12
  var resources = require('./resources-fyqfpLC2.js');
13
+ var index$3 = require('./index-B7VfQ5vd.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" },
@@ -729,17 +730,25 @@ const VviinnExtendedFilters = class {
729
730
  connectedCallback() {
730
731
  const { state } = search_store.useSearchStore(this.showInWidget);
731
732
  this.state = state;
732
- document.addEventListener("vviinnFiltersChanged", this.handleFiltersChanged);
733
- document.addEventListener("vviinnSelectedFiltersReset", this.handleSelectedFiltersReset);
734
- this.mode !== "preview" &&
735
- document.addEventListener("vviinnExtendedFiltersButtonClicked", this.handleExtendedFiltersButtonClicked);
733
+ this.eventAbortController = new AbortController();
734
+ const { signal } = this.eventAbortController;
735
+ index$3.addEventListenersWithSignal(document, [
736
+ ["vviinnFiltersChanged", this.handleFiltersChanged],
737
+ ["vviinnSelectedFiltersReset", this.handleSelectedFiltersReset],
738
+ ...(this.mode !== "preview"
739
+ ? [
740
+ [
741
+ "vviinnExtendedFiltersButtonClicked",
742
+ this.handleExtendedFiltersButtonClicked,
743
+ ],
744
+ ]
745
+ : []),
746
+ ], signal);
736
747
  this.filtersStringWatcher();
737
748
  }
738
749
  disconnectedCallback() {
739
- document.addEventListener("vviinnFiltersChanged", this.handleFiltersChanged);
740
- document.addEventListener("vviinnSelectedFiltersReset", this.handleSelectedFiltersReset);
741
- this.mode !== "preview" &&
742
- document.removeEventListener("vviinnExtendedFiltersButtonClicked", this.handleExtendedFiltersButtonClicked);
750
+ var _a;
751
+ (_a = this.eventAbortController) === null || _a === void 0 ? void 0 : _a.abort();
743
752
  }
744
753
  getAsideElement() {
745
754
  return this.el.shadowRoot.querySelector("aside");
@@ -761,9 +770,9 @@ const VviinnExtendedFilters = class {
761
770
  }
762
771
  render() {
763
772
  const filters = this.getFilters();
764
- return (index.h(index.Host, { key: '982b6b78f6e27996a540d906fd5651c02514d068', class: {
773
+ return (index.h(index.Host, { key: '8a4ef085c41ae1b683d9cae4f700950b259aa146', class: {
765
774
  "show-in-widget": this.showInWidget,
766
- } }, customizedSlots.SlotSkeleton("filters"), (filters === null || filters === void 0 ? void 0 : filters.length) > 0 && this.mode === "button" && (index.h("vviinn-extended-filters-button", { key: '2fd7c42697106608be4953483dac2537de08d9b8' })), this.renderModal(filters)));
775
+ } }, customizedSlots.SlotSkeleton("filters"), (filters === null || filters === void 0 ? void 0 : filters.length) > 0 && this.mode === "button" && (index.h("vviinn-extended-filters-button", { key: '8a79f04a7eb3855c289a22cee25e1e1eb3e8a4c2' })), this.renderModal(filters)));
767
776
  }
768
777
  get el() { return index.getElement(this); }
769
778
  static get watchers() { return {
@@ -879,26 +888,29 @@ const VviinnFilters = class {
879
888
  connectedCallback() {
880
889
  const { state } = search_store.useSearchStore(this.showInWidget);
881
890
  this.state = state;
882
- document.addEventListener("vviinnFiltersChanged", this.handleFiltersChanged);
883
- document.addEventListener("vviinnSelectedFiltersReset", this.handleSelectedFiltersReset);
884
- document.addEventListener("vviinnFilterTriggered", this.handleFilterTriggered);
891
+ this.eventAbortController = new AbortController();
892
+ const { signal } = this.eventAbortController;
893
+ index$3.addEventListenersWithSignal(document, [
894
+ ["vviinnFiltersChanged", this.handleFiltersChanged],
895
+ ["vviinnSelectedFiltersReset", this.handleSelectedFiltersReset],
896
+ ["vviinnFilterTriggered", this.handleFilterTriggered],
897
+ ], signal);
885
898
  this.filtersStringWatcher();
886
899
  }
887
900
  disconnectedCallback() {
888
- document.removeEventListener("vviinnFiltersChanged", this.handleFiltersChanged);
889
- document.removeEventListener("vviinnSelectedFiltersReset", this.handleSelectedFiltersReset);
890
- document.removeEventListener("vviinnFilterTriggered", this.handleFilterTriggered);
901
+ var _a;
902
+ (_a = this.eventAbortController) === null || _a === void 0 ? void 0 : _a.abort();
891
903
  }
892
904
  render() {
893
905
  var _a;
894
906
  const filters = this.getFilters().filter((filter) => filter.isPrimary);
895
907
  const { column } = (_a = this.selectedFilter) !== null && _a !== void 0 ? _a : {};
896
908
  const filterOptions = getFilterOptions(this.selectedFilter);
897
- return (index.h(index.Host, { key: 'f9c94f81573fc12c516b2318143d7e61b08d553e', class: {
909
+ return (index.h(index.Host, { key: 'ac3c346440969183059de30ec9aa055d7b7b2f64', class: {
898
910
  "show-in-widget": this.showInWidget,
899
- } }, (filters === null || filters === void 0 ? void 0 : filters.length) > 0 && (index.h("ul", { key: '10470d638f61a6b50adc629b6c7120a90dbc13f8', class: "main-filters-list", part: "filters-list" }, filters.map((filter) => {
911
+ } }, (filters === null || filters === void 0 ? void 0 : filters.length) > 0 && (index.h("ul", { key: 'e27099922c14511101044370e6df8cea89a4c462', class: "main-filters-list", part: "filters-list" }, filters.map((filter) => {
900
912
  return (index.h("li", null, index.h("button", { class: `filters-main-button ${this.showActiveOnMainButton(filter)}`, onClick: () => this.handleMainFilterSelection(filter), part: "filters-main-button" }, filter.label)));
901
- }))), !!this.selectedFilter && this.selectedFilter.isPrimary && (index.h("div", { key: 'd80bc074fb51878f0a754862a2a930f8558f4a6c', class: "filters-footer", part: "filters-footer" }, triggerFilter.isIntervalFilter(column) ? (index.h("vviinn-price-range", { histogram: filterOptions.filter((item) => item.value.frequency > 0), priceChangeHandler: this.priceChangeHandler, selectedInterval: this.getSelectedPriceInterval() })) : (index.h("ul", { class: "sub-filters-wrapper", part: "filters-footer-list" }, !!filterOptions &&
913
+ }))), !!this.selectedFilter && this.selectedFilter.isPrimary && (index.h("div", { key: 'e5b10d63489aea533cf52d8f80bcdf2894aebc6d', class: "filters-footer", part: "filters-footer" }, triggerFilter.isIntervalFilter(column) ? (index.h("vviinn-price-range", { histogram: filterOptions.filter((item) => item.value.frequency > 0), priceChangeHandler: this.priceChangeHandler, selectedInterval: this.getSelectedPriceInterval() })) : (index.h("ul", { class: "sub-filters-wrapper", part: "filters-footer-list" }, !!filterOptions &&
902
914
  filterOptions.map(({ value, label, active }) => {
903
915
  const isSelected = triggerFilter.isSubFilterActive(this.requestFilters, value, this.selectedFilter);
904
916
  return triggerFilter.RenderFilterButton({
@@ -1359,14 +1371,25 @@ const VviinnProductCard = class {
1359
1371
  search_store._functionExports.pipe(getAnalyticsModule, search_store.OptionExports.match(() => null, (analytics) => analytics.sendClick(this.getProduct())));
1360
1372
  }
1361
1373
  addLinksEventListeners() {
1374
+ this.linkEventAbortController = new AbortController();
1375
+ const { signal } = this.linkEventAbortController;
1362
1376
  const links = this.el.shadowRoot.querySelectorAll("a");
1363
1377
  links.forEach((link) => {
1364
- link.addEventListener("click", this.productClickHandler.bind(this));
1365
- link.addEventListener("auxclick", () => {
1378
+ const clickHandler = this.productClickHandler.bind(this);
1379
+ const auxClickHandler = () => {
1366
1380
  this.vviinnAuxClick.emit(Object.assign({}, this.productData));
1367
- });
1381
+ };
1382
+ index$3.addEventListenersWithSignal(link, [
1383
+ ["click", clickHandler],
1384
+ ["auxclick", auxClickHandler],
1385
+ ], signal);
1368
1386
  });
1369
1387
  }
1388
+ disconnectedCallback() {
1389
+ var _a, _b;
1390
+ (_a = this.linkEventAbortController) === null || _a === void 0 ? void 0 : _a.abort();
1391
+ (_b = this.intersectionObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
1392
+ }
1370
1393
  getProduct() {
1371
1394
  return search_store.searchState.results.find((r) => r.productId === this.productId);
1372
1395
  }
@@ -5,9 +5,10 @@ var search_store = require('./search.store-BLHPjH2B.js');
5
5
  var Rectangle = require('./Rectangle-oExct0ft.js');
6
6
  var WarningIcon = require('./WarningIcon-DOMzuRV9.js');
7
7
  var customizedSlots = require('./customized-slots-Da3rVnNM.js');
8
- var _package = require('./package-CTmKiTyO.js');
8
+ var _package = require('./package-DeG1AEbB.js');
9
9
  var index$1 = require('./index-DYvhURIh.js');
10
10
  var constants = require('./constants-CgBx7Czu.js');
11
+ var index$2 = require('./index-B7VfQ5vd.js');
11
12
 
12
13
  const SecondaryActionIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
13
14
  index.h("path", { d: "M7.82499 13L12.725 17.9C12.925 18.1 13.0208 18.3333 13.0125 18.6C13.0042 18.8667 12.9 19.1 12.7 19.3C12.5 19.4833 12.2667 19.5792 12 19.5875C11.7333 19.5958 11.5 19.5 11.3 19.3L4.69999 12.7C4.59999 12.6 4.52915 12.4917 4.48749 12.375C4.44582 12.2583 4.42499 12.1333 4.42499 12C4.42499 11.8667 4.44582 11.7417 4.48749 11.625C4.52915 11.5083 4.59999 11.4 4.69999 11.3L11.3 4.69999C11.4833 4.51665 11.7125 4.42499 11.9875 4.42499C12.2625 4.42499 12.5 4.51665 12.7 4.69999C12.9 4.89999 13 5.13749 13 5.41249C13 5.68749 12.9 5.92499 12.7 6.12499L7.82499 11H19C19.2833 11 19.5208 11.0958 19.7125 11.2875C19.9042 11.4792 20 11.7167 20 12C20 12.2833 19.9042 12.5208 19.7125 12.7125C19.5208 12.9042 19.2833 13 19 13H7.82499Z", fill: "currentColor" })));
@@ -235,7 +236,7 @@ const VviinnVprButton = class {
235
236
  }
236
237
  }
237
238
  render() {
238
- return (index.h(index.Host, { key: '09dfd61dbbc3bc43ae2d4cc034faa105d676999f', onClick: () => {
239
+ return (index.h(index.Host, { key: '7ba746d38e2891f961af15d0aa57653b417b8e4a', onClick: () => {
239
240
  if (this.appendSidebarToId && !this.targetAppendSidebarTo) {
240
241
  setTimeout(() => {
241
242
  this.handleClick();
@@ -244,7 +245,7 @@ const VviinnVprButton = class {
244
245
  else {
245
246
  this.handleClick();
246
247
  }
247
- }, role: "button", tabindex: "0" }, index.h("vviinn-button", { key: '60b4167b9189c9b396c003a043ed231776bf8210', addStyle: this.addStyle, part: "vviinn-button" }, index.h("slot", { key: '158ae74be03b06097840931dba71301354368ac8' }, this.campaignType === "VCS" ? (index.h(CrossSellingIcon, { width: this.iconSideSize, height: this.iconSideSize })) : (index.h(SimilarProductsIcon, { width: this.iconSideSize, height: this.iconSideSize }))))));
248
+ }, role: "button", tabindex: "0" }, index.h("vviinn-button", { key: '557da5e4a5828fc68ef47f4320d75546d420b609', addStyle: this.addStyle, part: "vviinn-button" }, index.h("slot", { key: '8c68592b700325c440f12a5d6155eaad79a7a64a' }, this.campaignType === "VCS" ? (index.h(CrossSellingIcon, { width: this.iconSideSize, height: this.iconSideSize })) : (index.h(SimilarProductsIcon, { width: this.iconSideSize, height: this.iconSideSize }))))));
248
249
  }
249
250
  handleClick() {
250
251
  const sidebar = document.createElement("vviinn-recommendations-sidebar");
@@ -293,7 +294,9 @@ const VviinnVprButton = class {
293
294
  sidebar.useCarousel = this.position === "bottom";
294
295
  }
295
296
  this.sidebar = sidebar;
296
- document.addEventListener("vviinnWidgetClose", this.sidebarCloseListener);
297
+ this.eventAbortController = new AbortController();
298
+ const { signal } = this.eventAbortController;
299
+ index$2.addEventListenersWithSignal(document, [["vviinnWidgetClose", this.sidebarCloseListener]], signal);
297
300
  if (this.targetAppendSidebarTo) {
298
301
  this.sidebar.showInCustomContainer = true;
299
302
  this.targetAppendSidebarTo.innerHTML = "";
@@ -303,11 +306,9 @@ const VviinnVprButton = class {
303
306
  document.body.append(this.sidebar);
304
307
  }
305
308
  disconnectedCallback() {
306
- var _a;
307
- if (this.sidebar) {
308
- document.removeEventListener("vviinnWidgetClose", this.sidebarCloseListener);
309
- }
310
- (_a = this.disposeStoreListener) === null || _a === void 0 ? void 0 : _a.call(this);
309
+ var _a, _b;
310
+ (_a = this.eventAbortController) === null || _a === void 0 ? void 0 : _a.abort();
311
+ (_b = this.disposeStoreListener) === null || _b === void 0 ? void 0 : _b.call(this);
311
312
  }
312
313
  get el() { return index.getElement(this); }
313
314
  static get watchers() { return {
@@ -6,6 +6,7 @@ var search_store = require('./search.store-BLHPjH2B.js');
6
6
  var Rectangle = require('./Rectangle-oExct0ft.js');
7
7
  var resources = require('./resources-fyqfpLC2.js');
8
8
  var index$1 = require('./index-C3G9W48a.js');
9
+ var index$2 = require('./index-B7VfQ5vd.js');
9
10
 
10
11
  const TextIcon = () => (index.h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
11
12
  index.h("svg", { width: "25", height: "24", viewBox: "0 0 25 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
@@ -130,12 +131,16 @@ const VviinnSelectedFilters = class {
130
131
  connectedCallback() {
131
132
  const { state } = search_store.useSearchStore(this.showInWidget);
132
133
  this.state = state;
133
- document.addEventListener("vviinnFiltersChanged", this.handleFiltersChanged);
134
- document.addEventListener("vviinnFilterTriggered", this.handleFilterTriggered);
135
- document.addEventListener("vviinnSelectedFiltersReset", this.handleSelectedFiltersReset);
136
- document.addEventListener("vviinnImageUploadStarted", this.handleImageUploadStarted);
137
- document.addEventListener("vviinnImageUploadFinished", this.handleImageUploadFinished);
138
- document.addEventListener("vviinnImageCrop", this.handleImageCrop);
134
+ this.eventAbortController = new AbortController();
135
+ const { signal } = this.eventAbortController;
136
+ index$2.addEventListenersWithSignal(document, [
137
+ ["vviinnFiltersChanged", this.handleFiltersChanged],
138
+ ["vviinnFilterTriggered", this.handleFilterTriggered],
139
+ ["vviinnSelectedFiltersReset", this.handleSelectedFiltersReset],
140
+ ["vviinnImageUploadStarted", this.handleImageUploadStarted],
141
+ ["vviinnImageUploadFinished", this.handleImageUploadFinished],
142
+ ["vviinnImageCrop", this.handleImageCrop],
143
+ ], signal);
139
144
  }
140
145
  async componentWillLoad() {
141
146
  this.getUploadedImageSrc();
@@ -149,12 +154,8 @@ const VviinnSelectedFilters = class {
149
154
  this.replaceSlotsContent();
150
155
  }
151
156
  disconnectedCallback() {
152
- document.removeEventListener("vviinnFiltersChanged", this.handleFiltersChanged);
153
- document.removeEventListener("vviinnFilterTriggered", this.handleFilterTriggered);
154
- document.removeEventListener("vviinnSelectedFiltersReset", this.handleSelectedFiltersReset);
155
- document.removeEventListener("vviinnImageUploadStarted", this.handleImageUploadStarted);
156
- document.removeEventListener("vviinnImageUploadFinished", this.handleImageUploadFinished);
157
- document.removeEventListener("vviinnImageCrop", this.handleImageCrop);
157
+ var _a;
158
+ (_a = this.eventAbortController) === null || _a === void 0 ? void 0 : _a.abort();
158
159
  }
159
160
  componentWillRender() {
160
161
  var _a;
@@ -180,9 +181,9 @@ const VviinnSelectedFilters = class {
180
181
  }
181
182
  render() {
182
183
  var _a, _b;
183
- return (index.h(index.Host, { key: 'f833bd49b706dac3351b9601f42f235130767e6c', class: {
184
+ return (index.h(index.Host, { key: '092778e5d05c7f11b9f360d9d7eafd739999d909', class: {
184
185
  "show-in-widget": this.showInWidget,
185
- } }, index.h("ul", { key: '760b94867d45706723ff679302c8b3602849f9dc', class: "selected-filters-wrapper", part: "selected-filters-list" }, RenderCustomButton({
186
+ } }, index.h("ul", { key: '1f81b7813bceea2153128678e713761b4a63c30f', class: "selected-filters-wrapper", part: "selected-filters-list" }, RenderCustomButton({
186
187
  label: this.textSearchCustomFilter,
187
188
  buttonType: "text",
188
189
  hidden: !((_a = this.textSearchCustomFilter) === null || _a === void 0 ? void 0 : _a.length),
@@ -5,7 +5,8 @@ var search_store = require('./search.store-BLHPjH2B.js');
5
5
  var customizedSlots = require('./customized-slots-Da3rVnNM.js');
6
6
  var Rectangle = require('./Rectangle-oExct0ft.js');
7
7
  var resources = require('./resources-fyqfpLC2.js');
8
- var index$1 = require('./index-DYvhURIh.js');
8
+ var index$2 = require('./index-DYvhURIh.js');
9
+ var index$1 = require('./index-B7VfQ5vd.js');
9
10
 
10
11
  const TextSearchIcon = () => (index.h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
11
12
  index.h("path", { d: "M20.6 4.57C17.39 4.19 16.88 3.68 16.42 0.37C16.38 0.15 16.22 0 16.01 0C15.8 0 15.63 0.15 15.59 0.37C15.12 3.66 14.63 4.13 11.41 4.57C11.17 4.61 11.01 4.77 11.01 5C11.01 5.23 11.17 5.39 11.41 5.42C14.63 5.81 15.14 6.31 15.59 9.62C15.63 9.84 15.8 10 16.01 10C16.22 10 16.39 9.84 16.42 9.62C16.89 6.31 17.39 5.81 20.6 5.42C20.84 5.38 21 5.22 21 5C21 4.78 20.83 4.6 20.6 4.57Z", fill: "#525252" }),
@@ -154,12 +155,16 @@ const VviinnTextSearch = class {
154
155
  const { state, storeName } = search_store.useSearchStore(this.showInWidget);
155
156
  this.state = state;
156
157
  this.storeName = storeName;
157
- document.addEventListener("vviinnFilterTriggered", this.filterTriggeredHandler);
158
- document.addEventListener("vviinnImageUploadFinished", this.imageUploadFinishedHandler);
158
+ this.eventAbortController = new AbortController();
159
+ const { signal } = this.eventAbortController;
160
+ index$1.addEventListenersWithSignal(document, [
161
+ ["vviinnFilterTriggered", this.filterTriggeredHandler],
162
+ ["vviinnImageUploadFinished", this.imageUploadFinishedHandler],
163
+ ], signal);
159
164
  }
160
165
  disconnectedCallback() {
161
- document.removeEventListener("vviinnFilterTriggered", this.filterTriggeredHandler);
162
- document.removeEventListener("vviinnImageUploadFinished", this.imageUploadFinishedHandler);
166
+ var _a;
167
+ (_a = this.eventAbortController) === null || _a === void 0 ? void 0 : _a.abort();
163
168
  clearTimeout(this.triggerTooltipStart);
164
169
  clearTimeout(this.triggerTooltipEnd);
165
170
  }
@@ -228,8 +233,8 @@ const VviinnTextSearch = class {
228
233
  }
229
234
  }
230
235
  render() {
231
- return (index.h(index.Host, { key: 'c4929073c1229ccdc941c4168ce4c20e7ab86748', exportparts: index$1.searchBarParts }, index.h("div", { key: '6b18110e89fce5f80de212cdcd8bb4aa93c9a252', class: "text-search-container", part: "text-search-container" }, index.h("input", { key: 'd65c310e2ead8f2e918e29c23c6ee6810d3f023f', class: "text-search-input", part: "text-search-input", type: "text", placeholder: this.getPlaceholderText(), value: this.searchQuery, onInput: (event) => this.handleInputChange(event), onKeyUp: (event) => this.handleKeyPress(event) }), this.mode === "extended" && (index.h("vviinn-vps-button", { key: '63c12d90c876c52d3b1ac0672657ba9034d566e2', token: search_store.globalState.token, locale: search_store.globalState.locale, apiPath: search_store.globalState.apiPath, addStyle: false, showInWidget: false, exportparts: "vviinn-button" })), this.mode === "basic" && (index.h("slot", { key: 'b0d3250b809ea692bff4a0c9f8ae9c88e4afe702', name: "vviinn-text-search-actions" })), (this.mode === "extended" || this.showInWidget) &&
232
- this.recognition && (index.h("button", { key: 'f59432039bddcae76e224e9ad4dd1dc4a57f56da', class: "speech-button", part: "speech-button", onClick: () => this.handleSpeech() }, index.h(MicIcon, { key: '155bee4ac5cb4e7b86ffcd28483027d36a378caa' }), this.isShowRecording() && (index.h("span", { key: 'da1ab308baab739ccb48f0eb68f32c6c40b68e30', class: "recording-indicator" })))), index.h("button", { key: 'bbe403e8e4a5940fa43f884782a788765d55b846', class: "text-search-button", part: "text-search-button", onClick: () => this.handleTextSearch(), disabled: this.state.loading }, this.isShowPreloader() ? (index.h("vviinn-preloader", null)) : (index.h("slot", { name: "vviinn-text-search-icon" }, index.h(TextSearchIcon, null))))), this.showTooltip && (index.h("p", { key: '8e40fff9010c28394a8896d5387a5c4141d72f19', class: "text-search-tooltip", part: "text-search-tooltip" }, Rectangle.instance.t(this.tooltipText)))));
236
+ return (index.h(index.Host, { key: 'fea1ae2912905e8002a61b98f88272b5606e6bc1', exportparts: index$2.searchBarParts }, index.h("div", { key: '2bfdaed4f750b539c188e4dc86fcfb8f21fc5eba', class: "text-search-container", part: "text-search-container" }, index.h("input", { key: '70c93d58739345c6ddb9aa1cc441b9358c3191f5', class: "text-search-input", part: "text-search-input", type: "text", placeholder: this.getPlaceholderText(), value: this.searchQuery, onInput: (event) => this.handleInputChange(event), onKeyUp: (event) => this.handleKeyPress(event) }), this.mode === "extended" && (index.h("vviinn-vps-button", { key: '371a9346320a0f889eb823c7c7333728be68b1ad', token: search_store.globalState.token, locale: search_store.globalState.locale, apiPath: search_store.globalState.apiPath, addStyle: false, showInWidget: false, exportparts: "vviinn-button" })), this.mode === "basic" && (index.h("slot", { key: '72a8e429c39ca5cd3af4d3ba52b863bcaaa9e674', name: "vviinn-text-search-actions" })), (this.mode === "extended" || this.showInWidget) &&
237
+ this.recognition && (index.h("button", { key: 'a9235dad1dabc1bcf387b0af0866d0941bdcc212', class: "speech-button", part: "speech-button", onClick: () => this.handleSpeech() }, index.h(MicIcon, { key: '72b1034441cd79b45c24de4eaf58ee9a01526f80' }), this.isShowRecording() && (index.h("span", { key: 'f612982ac800d1ed8c89c22b3eaad656d81d7fd1', class: "recording-indicator" })))), index.h("button", { key: '2a086eca7d9dbc228dbb6b2bde8c81a75b701747', class: "text-search-button", part: "text-search-button", onClick: () => this.handleTextSearch(), disabled: this.state.loading }, this.isShowPreloader() ? (index.h("vviinn-preloader", null)) : (index.h("slot", { name: "vviinn-text-search-icon" }, index.h(TextSearchIcon, null))))), this.showTooltip && (index.h("p", { key: '14fcb7c58089030f32db8f8c2b3fa9da9fe31c0b', class: "text-search-tooltip", part: "text-search-tooltip" }, Rectangle.instance.t(this.tooltipText)))));
233
238
  }
234
239
  get el() { return index.getElement(this); }
235
240
  };
@@ -2,7 +2,8 @@
2
2
 
3
3
  var index = require('./index-A2FtmPS7.js');
4
4
  var customizedSlots = require('./customized-slots-Da3rVnNM.js');
5
- var constants$1 = require('./constants-wmamV_ry.js');
5
+ var constants$1 = require('./constants-DHaugTOE.js');
6
+ var index$1 = require('./index-B7VfQ5vd.js');
6
7
  var constants = require('./constants-CgBx7Czu.js');
7
8
 
8
9
  const SearchModalCameraIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
@@ -85,7 +86,7 @@ const VviinnVpsButton = class {
85
86
  }
86
87
  }
87
88
  componentWillLoad() {
88
- this.slots = constants$1.findSlotElements(this.el);
89
+ this.slots = index$1.findSlotElements(this.el);
89
90
  }
90
91
  componentDidLoad() {
91
92
  this.replaceSlotsContent();