vviinn-widgets 2.22.2 → 2.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/cjs/highlight-box_22.cjs.entry.js +13 -5
  2. package/dist/cjs/{index-0659dc39.js → index-fef7ae7e.js} +53 -10
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/{package-8a334970.js → package-1157a5c0.js} +1 -1
  5. package/dist/cjs/vviinn-carousel_3.cjs.entry.js +72 -73
  6. package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js +1 -9
  7. package/dist/cjs/vviinn-vpr-button.cjs.entry.js +1 -1
  8. package/dist/cjs/vviinn-vps-button.cjs.entry.js +2 -2
  9. package/dist/cjs/vviinn-vps-widget.cjs.entry.js +56 -63
  10. package/dist/cjs/vviinn-widgets.cjs.js +1 -1
  11. package/dist/collection/components/image-search/search-filters/search-filters.js +14 -6
  12. package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js +1 -9
  13. package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-vidget.js +137 -72
  14. package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +2 -2
  15. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.css +32 -28
  16. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +61 -62
  17. package/dist/collection/tracking/index.js +40 -7
  18. package/dist/collection/tracking/models.js +3 -2
  19. package/dist/collection/tracking/product.js +14 -2
  20. package/dist/esm/highlight-box_22.entry.js +13 -5
  21. package/dist/esm/{index-3b3211a8.js → index-3bcebf1e.js} +51 -5
  22. package/dist/esm/loader.js +1 -1
  23. package/dist/esm/{package-e5b8c7da.js → package-3a623150.js} +1 -1
  24. package/dist/esm/vviinn-carousel_3.entry.js +72 -73
  25. package/dist/esm/vviinn-recommendations-sidebar.entry.js +1 -9
  26. package/dist/esm/vviinn-vpr-button.entry.js +1 -1
  27. package/dist/esm/vviinn-vps-button.entry.js +2 -2
  28. package/dist/esm/vviinn-vps-widget.entry.js +56 -63
  29. package/dist/esm/vviinn-widgets.js +1 -1
  30. package/dist/types/components/image-search/search-filters/search-filters.d.ts +2 -0
  31. package/dist/types/components/vviinn-vpr-widget/vviinn-vpr-vidget.d.ts +13 -4
  32. package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +5 -3
  33. package/dist/types/components.d.ts +2 -0
  34. package/dist/types/recommendation/events.d.ts +4 -1
  35. package/dist/types/tracking/index.d.ts +4 -6
  36. package/dist/types/tracking/models.d.ts +4 -3
  37. package/dist/types/tracking/product.d.ts +4 -1
  38. package/dist/vviinn-widgets/p-0f1be586.entry.js +1 -0
  39. package/dist/vviinn-widgets/{p-22b5e568.entry.js → p-2583622e.entry.js} +1 -1
  40. package/dist/vviinn-widgets/p-3190f047.entry.js +1 -0
  41. package/dist/vviinn-widgets/p-389b4d96.entry.js +1 -0
  42. package/dist/vviinn-widgets/p-6c9884fa.js +1 -0
  43. package/dist/vviinn-widgets/{p-d9ad4ed1.js → p-6f5566a8.js} +1 -1
  44. package/dist/vviinn-widgets/p-709d32e1.entry.js +1 -0
  45. package/dist/vviinn-widgets/p-b3523692.entry.js +1 -0
  46. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  47. package/package.json +1 -1
  48. package/www/build/p-0f1be586.entry.js +1 -0
  49. package/www/build/{p-22b5e568.entry.js → p-2583622e.entry.js} +1 -1
  50. package/www/build/p-3190f047.entry.js +1 -0
  51. package/www/build/p-389b4d96.entry.js +1 -0
  52. package/www/build/p-6c9884fa.js +1 -0
  53. package/www/build/{p-d9ad4ed1.js → p-6f5566a8.js} +1 -1
  54. package/www/build/p-709d32e1.entry.js +1 -0
  55. package/www/build/p-b3523692.entry.js +1 -0
  56. package/www/build/{p-2cae34e6.js → p-d872804f.js} +3 -3
  57. package/www/build/vviinn-widgets.esm.js +1 -1
  58. package/www/index.html +1 -1
  59. package/dist/vviinn-widgets/p-06f95934.entry.js +0 -1
  60. package/dist/vviinn-widgets/p-1f0e1f36.entry.js +0 -1
  61. package/dist/vviinn-widgets/p-5d8fcf51.js +0 -1
  62. package/dist/vviinn-widgets/p-72ceedfc.entry.js +0 -1
  63. package/dist/vviinn-widgets/p-afcccf0d.entry.js +0 -1
  64. package/dist/vviinn-widgets/p-bd5ff73d.entry.js +0 -1
  65. package/www/build/p-06f95934.entry.js +0 -1
  66. package/www/build/p-1f0e1f36.entry.js +0 -1
  67. package/www/build/p-5d8fcf51.js +0 -1
  68. package/www/build/p-72ceedfc.entry.js +0 -1
  69. package/www/build/p-afcccf0d.entry.js +0 -1
  70. package/www/build/p-bd5ff73d.entry.js +0 -1
@@ -213,6 +213,14 @@ const SearchFilters = class {
213
213
  this.selectedFilter = "";
214
214
  this.hideFilters = true;
215
215
  }
216
+ isCategoriesFilterType() {
217
+ return this.filterType === "categories";
218
+ }
219
+ getFilterKind() {
220
+ return this.isCategoriesFilterType()
221
+ ? "category"
222
+ : this.filterType;
223
+ }
216
224
  handleFilterSelection(filter) {
217
225
  return this.isFilterSelected(filter)
218
226
  ? this.clearSelectedFilter(filter)
@@ -221,12 +229,12 @@ const SearchFilters = class {
221
229
  selectFilter(selectedFilter) {
222
230
  imageSearch_store.imageSearchState.activeIonLink = selectedFilter;
223
231
  this.selectedFilter = parseFilters(selectedFilter, this.filterType);
224
- this.vviinnSelectFilter.emit(Object.assign(Object.assign({}, this.basicEventData), { action: "select", filterName: selectedFilter.name }));
232
+ this.vviinnSelectFilter.emit(Object.assign(Object.assign({}, this.basicEventData), { action: "select", kind: this.getFilterKind() }));
225
233
  }
226
234
  clearSelectedFilter(selectedFilter) {
227
235
  imageSearch_store.imageSearchState.activeIonLink = selectedFilter.clear;
228
236
  this.selectedFilter = parseFilters(selectedFilter.clear, this.filterType);
229
- this.vviinnSelectFilter.emit(Object.assign(Object.assign({}, this.basicEventData), { action: "deselect" }));
237
+ this.vviinnSelectFilter.emit(Object.assign(Object.assign({}, this.basicEventData), { action: "deselect", kind: this.getFilterKind() }));
230
238
  }
231
239
  toggleFilters() {
232
240
  this.hideFilters = !this.hideFilters;
@@ -237,7 +245,7 @@ const SearchFilters = class {
237
245
  this.handleFilterSelection(f);
238
246
  }
239
247
  isFilterSelected(filterLink) {
240
- return this.filterType === "categories"
248
+ return this.isCategoriesFilterType()
241
249
  ? this.selectedFilter === parseFilters(filterLink, "categories")
242
250
  : this.selectedFilter === filterLink.name;
243
251
  }
@@ -247,8 +255,8 @@ const SearchFilters = class {
247
255
  const { name, filters } = this.filter;
248
256
  return (index.h(index.Host, { exportparts: "filter, show-more-filters" }, index.h("div", { class: {
249
257
  filters: true,
250
- "no-scrollbar-mobile": this.filterType === "categories",
251
- "no-scrollbar": this.filterType !== "categories",
258
+ "no-scrollbar-mobile": this.isCategoriesFilterType(),
259
+ "no-scrollbar": !this.isCategoriesFilterType(),
252
260
  } }, filters
253
261
  .filter((_, i) => (this.hideFilters ? i < FILTERS_COUNT : true))
254
262
  .map((filter, index$1) => {
@@ -3274,8 +3274,9 @@ const createTrackingEvent = (widget) => (eventData) => {
3274
3274
  return Object.assign(Object.assign({}, eventData), widget);
3275
3275
  };
3276
3276
 
3277
- const PRODUCT_CLICK_EVENT_TYPE = "product_click_event";
3277
+ const PRODUCT_LOAD_EVENT_TYPE = "product_load_event";
3278
3278
  const PRODUCT_VIEW_EVENT_TYPE = "product_view_event";
3279
+ const PRODUCT_CLICK_EVENT_TYPE = "product_click_event";
3279
3280
  const FILTER_EVENT_TYPE = "filter_event";
3280
3281
  const SEARCH_EVENT_TYPE = "search_event";
3281
3282
  const WIDGET_EVENT_TYPE = "widget_event";
@@ -3285,6 +3286,18 @@ const filterEvent = {
3285
3286
  typ: FILTER_EVENT_TYPE,
3286
3287
  };
3287
3288
 
3289
+ const vprProductLoad = {
3290
+ widget: "VPR",
3291
+ typ: PRODUCT_LOAD_EVENT_TYPE,
3292
+ };
3293
+ const vpcProductLoad = {
3294
+ widget: "VPC",
3295
+ typ: PRODUCT_LOAD_EVENT_TYPE,
3296
+ };
3297
+ const vpsProductLoad = {
3298
+ widget: "VPS",
3299
+ typ: PRODUCT_LOAD_EVENT_TYPE,
3300
+ };
3288
3301
  const vprProductView = {
3289
3302
  widget: "VPR",
3290
3303
  typ: PRODUCT_VIEW_EVENT_TYPE,
@@ -3328,12 +3341,45 @@ const vpsWidget = {
3328
3341
  typ: WIDGET_EVENT_TYPE,
3329
3342
  };
3330
3343
 
3344
+ const createProductLoadVprEvent = createTrackingEvent(vprProductLoad);
3331
3345
  const createProductViewVprEvent = createTrackingEvent(vprProductView);
3332
- const createProductViewVpsEvent = createTrackingEvent(vpsProductView);
3333
- const createProductViewVpcEvent = createTrackingEvent(vpcProductView);
3334
3346
  const createProductClickVprEvent = createTrackingEvent(vprProductClick);
3335
- const createProductClickVpsEvent = createTrackingEvent(vpsProductClick);
3347
+ const createProductLoadVpcEvent = createTrackingEvent(vpcProductLoad);
3348
+ const createProductViewVpcEvent = createTrackingEvent(vpcProductView);
3336
3349
  const createProductClickVpcEvent = createTrackingEvent(vpcProductClick);
3350
+ const createProductLoadVpsEvent = createTrackingEvent(vpsProductLoad);
3351
+ const createProductViewVpsEvent = createTrackingEvent(vpsProductView);
3352
+ const createProductClickVpsEvent = createTrackingEvent(vpsProductClick);
3353
+ const createProductVprEventByType = (type) => {
3354
+ switch (type) {
3355
+ case "load":
3356
+ return createProductLoadVprEvent;
3357
+ case "view":
3358
+ return createProductViewVprEvent;
3359
+ case "click":
3360
+ return createProductClickVprEvent;
3361
+ }
3362
+ };
3363
+ const createProductVpcEventByType = (type) => {
3364
+ switch (type) {
3365
+ case "load":
3366
+ return createProductLoadVpcEvent;
3367
+ case "view":
3368
+ return createProductViewVpcEvent;
3369
+ case "click":
3370
+ return createProductClickVpcEvent;
3371
+ }
3372
+ };
3373
+ const createProductVpsEventByType = (type) => {
3374
+ switch (type) {
3375
+ case "load":
3376
+ return createProductLoadVpsEvent;
3377
+ case "view":
3378
+ return createProductViewVpsEvent;
3379
+ case "click":
3380
+ return createProductClickVpsEvent;
3381
+ }
3382
+ };
3337
3383
  const createWidgetVprEvent = createTrackingEvent(vprWidget);
3338
3384
  const createWidgetVpsEvent = createTrackingEvent(vpsWidget);
3339
3385
  const createWidgetVpcEvent = createTrackingEvent(vpcWidget);
@@ -3341,12 +3387,9 @@ const createSearchEvent = createTrackingEvent(searchEvent);
3341
3387
  const createFilterEvent = createTrackingEvent(filterEvent);
3342
3388
 
3343
3389
  exports.createFilterEvent = createFilterEvent;
3344
- exports.createProductClickVpcEvent = createProductClickVpcEvent;
3345
- exports.createProductClickVprEvent = createProductClickVprEvent;
3346
- exports.createProductClickVpsEvent = createProductClickVpsEvent;
3347
- exports.createProductViewVpcEvent = createProductViewVpcEvent;
3348
- exports.createProductViewVprEvent = createProductViewVprEvent;
3349
- exports.createProductViewVpsEvent = createProductViewVpsEvent;
3390
+ exports.createProductVpcEventByType = createProductVpcEventByType;
3391
+ exports.createProductVprEventByType = createProductVprEventByType;
3392
+ exports.createProductVpsEventByType = createProductVpsEventByType;
3350
3393
  exports.createSearchEvent = createSearchEvent;
3351
3394
  exports.createTrackingApi = createTrackingApi;
3352
3395
  exports.createWidgetVpcEvent = createWidgetVpcEvent;
@@ -14,7 +14,7 @@ const patchEsm = () => {
14
14
  const defineCustomElements = (win, options) => {
15
15
  if (typeof window === 'undefined') return Promise.resolve();
16
16
  return patchEsm().then(() => {
17
- return index.bootstrapLazy([["vviinn-button.cjs",[[1,"vviinn-button",{"addStyle":[4,"add-style"]}]]],["cropper-handler.cjs",[[1,"cropper-handler",{"handler":[16],"disabled":[4]}]]],["vviinn-error.cjs",[[1,"vviinn-error"]]],["vviinn-preloader.cjs",[[1,"vviinn-preloader"]]],["vviinn-carousel_3.cjs",[[1,"vviinn-vpr-widget",{"blockTitle":[1,"block-title"],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"productId":[1,"product-id"],"token":[1],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"mode":[1],"campaignType":[1,"campaign-type"],"locale":[1],"campaigns":[1],"color":[1],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"showScroll":[4,"show-scroll"],"cssUrl":[1,"css-url"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"recommendations":[32],"trackingDeactivated":[32],"hasErrorOnLoad":[32]},[[0,"vviinnProductLoad","handleProductLoading"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"]]],[0,"vviinn-carousel",{"mode":[1],"imageWidth":[2,"image-width"],"showScroll":[4,"show-scroll"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"recommendations":[16],"widgetVersion":[1,"widget-version"],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32],"isRTL":[32]}],[1,"vviinn-product-card",{"brand":[1],"currency":[1],"deeplink":[1],"image":[1],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"locale":[1],"price":[2],"pricePrefix":[1,"price-prefix"],"productId":[1,"product-id"],"productTitle":[1,"product-title"],"productType":[1,"product-type"],"salePrice":[2,"sale-price"],"responsive":[4],"dimmedBackground":[4,"dimmed-background"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"index":[2],"imageLoaded":[32]}]]],["highlight-box_22.cjs",[[1,"vviinn-image-view",{"basicEventData":[16]}],[1,"vviinn-onboarding"],[1,"vviinn-example-images",{"basicEventData":[16],"exampleImagesTitle":[1,"example-images-title"]}],[1,"vviinn-overlayed-modal",{"active":[4],"resetState":[16],"buttonElementId":[1,"button-element-id"],"hideBackButton":[4,"hide-back-button"],"widgetVersion":[1,"widget-version"]}],[1,"vviinn-empty-results"],[1,"vviinn-image-selector",{"basicEventData":[16],"startUpload":[4,"start-upload"],"resetVpsButton":[16]}],[1,"vviinn-server-error",{"handler":[16]}],[1,"vviinn-wrong-format",{"handler":[16]}],[1,"search-filters",{"filter":[16],"basicEventData":[16],"selectedFilter":[32],"hideFilters":[32]}],[1,"vviinn-privacy-badge",{"privacyBadgeText":[1,"privacy-badge-text"]}],[1,"vviinn-teaser"],[1,"image-cropper",{"disabled":[4],"basicEventData":[16],"handleMove":[32]}],[1,"vviinn-example-image",{"src":[1],"width":[2],"height":[2],"basicEventData":[16],"selected":[32]}],[1,"highlight-box"],[1,"vviinn-detected-object",{"detectedObject":[16],"basicEventData":[16],"position":[32]}],[1,"vviinn-modal",{"active":[1540],"resetState":[16],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"hideBackButton":[4,"hide-back-button"],"slider":[32]}],[1,"vviinn-onboarding-card-1",{"cardTitle":[1,"card-title"],"cardText":[1,"card-text"]}],[1,"vviinn-onboarding-card-2",{"cardTitle":[1,"card-title"],"cardText":[1,"card-text"]}],[1,"vviinn-onboarding-card-3",{"cardTitle":[1,"card-title"],"cardText":[1,"card-text"]}],[1,"vviinn-overlay"],[1,"vviinn-slide"],[1,"vviinn-slider",{"showBullets":[4,"show-bullets"],"position":[514],"showArrows":[4,"show-arrows"],"elementsCount":[32],"internalPosition":[32],"swipeStartPosition":[32],"isRTL":[32]}]]],["vviinn-vps-widget.cjs",[[1,"vviinn-vps-widget",{"token":[1],"active":[1028],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"buttonPressed":[4,"button-pressed"],"mode":[1],"resetVpsButton":[16],"slidePosition":[32],"width":[32],"wrongImageFormat":[32],"trackingDeactivated":[32]},[[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"],[0,"secondaryActionClicked","trackSecondaryAction"]]]]],["vviinn-vps-button.cjs",[[1,"vviinn-vps-button",{"token":[1],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"addStyle":[4,"add-style"],"mode":[1],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"buttonPressed":[32]},[[0,"vviinnWidgetClose","handleModalClosed"]]]]],["vviinn-recommendations-sidebar.cjs",[[1,"vviinn-recommendations-sidebar",{"sidebarTitle":[1,"sidebar-title"],"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"widgetScrollbar":[4,"widget-scrollbar"],"mode":[1],"campaigns":[1],"campaignType":[1,"campaign-type"],"color":[1],"locale":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"showingInButton":[4,"showing-in-button"],"state":[32]},[[16,"click","bodyClickListener"]]]]],["vviinn-vpr-button.cjs",[[1,"vviinn-vpr-button",{"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"sidebarTitle":[1,"sidebar-title"],"modalScrollbar":[4,"modal-scrollbar"],"campaigns":[1],"campaignType":[1,"campaign-type"],"locale":[1],"color":[1],"addStyle":[4,"add-style"],"mode":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"]}]]]], options);
17
+ return index.bootstrapLazy([["vviinn-button.cjs",[[1,"vviinn-button",{"addStyle":[4,"add-style"]}]]],["cropper-handler.cjs",[[1,"cropper-handler",{"handler":[16],"disabled":[4]}]]],["vviinn-error.cjs",[[1,"vviinn-error"]]],["vviinn-preloader.cjs",[[1,"vviinn-preloader"]]],["vviinn-carousel_3.cjs",[[1,"vviinn-vpr-widget",{"blockTitle":[1,"block-title"],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"productId":[1,"product-id"],"token":[1],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"mode":[1],"campaignType":[1,"campaign-type"],"locale":[1],"campaigns":[1],"color":[1],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"showScroll":[4,"show-scroll"],"cssUrl":[1,"css-url"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"closed":[4],"opened":[4],"recommendations":[32],"trackingDeactivated":[32],"hasErrorOnLoad":[32]},[[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"]]],[0,"vviinn-carousel",{"mode":[1],"imageWidth":[2,"image-width"],"showScroll":[4,"show-scroll"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"recommendations":[16],"widgetVersion":[1,"widget-version"],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32],"isRTL":[32]}],[1,"vviinn-product-card",{"brand":[1],"currency":[1],"deeplink":[1],"image":[1],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"locale":[1],"price":[2],"pricePrefix":[1,"price-prefix"],"productId":[1,"product-id"],"productTitle":[1,"product-title"],"productType":[1,"product-type"],"salePrice":[2,"sale-price"],"responsive":[4],"dimmedBackground":[4,"dimmed-background"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"index":[2],"imageLoaded":[32]}]]],["highlight-box_22.cjs",[[1,"vviinn-image-view",{"basicEventData":[16]}],[1,"vviinn-onboarding"],[1,"vviinn-example-images",{"basicEventData":[16],"exampleImagesTitle":[1,"example-images-title"]}],[1,"vviinn-overlayed-modal",{"active":[4],"resetState":[16],"buttonElementId":[1,"button-element-id"],"hideBackButton":[4,"hide-back-button"],"widgetVersion":[1,"widget-version"]}],[1,"vviinn-empty-results"],[1,"vviinn-image-selector",{"basicEventData":[16],"startUpload":[4,"start-upload"],"resetVpsButton":[16]}],[1,"vviinn-server-error",{"handler":[16]}],[1,"vviinn-wrong-format",{"handler":[16]}],[1,"search-filters",{"filter":[16],"basicEventData":[16],"selectedFilter":[32],"hideFilters":[32]}],[1,"vviinn-privacy-badge",{"privacyBadgeText":[1,"privacy-badge-text"]}],[1,"vviinn-teaser"],[1,"image-cropper",{"disabled":[4],"basicEventData":[16],"handleMove":[32]}],[1,"vviinn-example-image",{"src":[1],"width":[2],"height":[2],"basicEventData":[16],"selected":[32]}],[1,"highlight-box"],[1,"vviinn-detected-object",{"detectedObject":[16],"basicEventData":[16],"position":[32]}],[1,"vviinn-modal",{"active":[1540],"resetState":[16],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"hideBackButton":[4,"hide-back-button"],"slider":[32]}],[1,"vviinn-onboarding-card-1",{"cardTitle":[1,"card-title"],"cardText":[1,"card-text"]}],[1,"vviinn-onboarding-card-2",{"cardTitle":[1,"card-title"],"cardText":[1,"card-text"]}],[1,"vviinn-onboarding-card-3",{"cardTitle":[1,"card-title"],"cardText":[1,"card-text"]}],[1,"vviinn-overlay"],[1,"vviinn-slide"],[1,"vviinn-slider",{"showBullets":[4,"show-bullets"],"position":[514],"showArrows":[4,"show-arrows"],"elementsCount":[32],"internalPosition":[32],"swipeStartPosition":[32],"isRTL":[32]}]]],["vviinn-vps-widget.cjs",[[1,"vviinn-vps-widget",{"token":[1],"active":[1028],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"buttonPressed":[4,"button-pressed"],"mode":[1],"resetVpsButton":[16],"slidePosition":[32],"width":[32],"wrongImageFormat":[32],"trackingDeactivated":[32]},[[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"],[0,"secondaryActionClicked","trackSecondaryAction"]]]]],["vviinn-vps-button.cjs",[[1,"vviinn-vps-button",{"token":[1],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"addStyle":[4,"add-style"],"mode":[1],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"buttonPressed":[32]},[[0,"vviinnWidgetClose","handleModalClosed"]]]]],["vviinn-recommendations-sidebar.cjs",[[1,"vviinn-recommendations-sidebar",{"sidebarTitle":[1,"sidebar-title"],"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"widgetScrollbar":[4,"widget-scrollbar"],"mode":[1],"campaigns":[1],"campaignType":[1,"campaign-type"],"color":[1],"locale":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"showingInButton":[4,"showing-in-button"],"state":[32]},[[16,"click","bodyClickListener"]]]]],["vviinn-vpr-button.cjs",[[1,"vviinn-vpr-button",{"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"sidebarTitle":[1,"sidebar-title"],"modalScrollbar":[4,"modal-scrollbar"],"campaigns":[1],"campaignType":[1,"campaign-type"],"locale":[1],"color":[1],"addStyle":[4,"add-style"],"mode":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"]}]]]], options);
18
18
  });
19
19
  };
20
20
 
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- const version = "2.22.2";
3
+ const version = "2.24.0";
4
4
 
5
5
  exports.version = version;
@@ -7,9 +7,9 @@ const imageSearch_store = require('./imageSearch.store-cc9b4a68.js');
7
7
  const index$1 = require('./index-6cfe5293.js');
8
8
  const Campaign = require('./Campaign-778b5b2c.js');
9
9
  const i18next = require('./i18next-74ff3413.js');
10
- const _package = require('./package-8a334970.js');
10
+ const _package = require('./package-1157a5c0.js');
11
11
  const Handler = require('./Handler-de64afa5.js');
12
- const index$2 = require('./index-0659dc39.js');
12
+ const index$2 = require('./index-fef7ae7e.js');
13
13
 
14
14
  const vviinnCarouselCss = ":host{--vviinn-progressbar-width:0;--vviinn-carousel-item-width:150px;--vviinn-carousel-columns-internal:var(--vviinn-carousel-columns, 4);--vviinn-carousel-image-width-system:140px}.body{display:flex;position:relative;width:var(--vviinn-carousel-content-width);flex-direction:column}.content-wrapper *{box-sizing:border-box}.content-wrapper{overflow-y:hidden;overflow-x:auto;flex-grow:1}.bullets{margin-top:16px;display:flex;flex-direction:row;grid-gap:24px;justify-content:center}.bullet{width:10px;height:10px;background:#e0e0e0;border-radius:50%;cursor:pointer}.bullet.active{background:#161616}.content:not(.show-scrollbar),.content.grid{scrollbar-color:#fff0 #fff0}.content:not(.show-scrollbar)::-webkit-scrollbar,.content.grid::-webkit-scrollbar{opacity:0}.content{display:flex;flex-direction:row;grid-gap:8px;overflow-y:hidden;overflow-x:auto;flex-grow:1;padding-bottom:16px}.content.left>*{scroll-snap-align:start}.content.right>*{scroll-snap-align:end}:host(.continuity) button{border-radius:2px}:host(.grid) button{border-radius:50%}button{align-items:center;background-color:white;border:none;box-shadow:0px 2px 6px rgba(0, 0, 0, 0.15);cursor:pointer;display:grid;height:40px;justify-items:center;position:absolute;top:calc(50% - 20px);width:40px;z-index:1;padding:0;margin:0}button{fill:#525252}button:disabled{display:none}button.prev svg{transform:rotate(180deg);margin-left:-5px}.prev{left:0}.next{right:0}.items-group{display:grid;grid-gap:16px;grid-template-columns:repeat(var(--vviinn-carousel-columns-internal), 1fr);min-width:100%}vviinn-product-card::part(price-container){text-align:center}:host(.classic) vviinn-product-card::part(title),:host(.classic) vviinn-product-card::part(brand),:host(.classic) vviinn-product-card::part(type){text-align:center}@media (max-width: 480px){:host(.modern) button{display:none}.items-group{grid-template-columns:repeat(2, 1fr)}}";
15
15
 
@@ -1220,6 +1220,7 @@ const VviinnVprWidget = class {
1220
1220
  this.vviinnNoResult = index.createEvent(this, "vviinnNoResult", 7);
1221
1221
  this.vviinnRecommendationsLoaded = index.createEvent(this, "vviinnRecommendationsLoaded", 7);
1222
1222
  this.vviinnWidgetOpen = index.createEvent(this, "vviinnWidgetOpen", 7);
1223
+ this.vviinnWidgetClose = index.createEvent(this, "vviinnWidgetClose", 7);
1223
1224
  this.productImageLoadedSubject = new Subject();
1224
1225
  this.resultViewed = false;
1225
1226
  this.setTrackingDeactivated = (result) => {
@@ -1250,6 +1251,8 @@ const VviinnVprWidget = class {
1250
1251
  this.useCarousel = true;
1251
1252
  this.showingInButton = false;
1252
1253
  this.buttonElementId = undefined;
1254
+ this.closed = undefined;
1255
+ this.opened = undefined;
1253
1256
  this.recommendations = [];
1254
1257
  this.trackingDeactivated = false;
1255
1258
  this.hasErrorOnLoad = false;
@@ -1284,42 +1287,68 @@ const VviinnVprWidget = class {
1284
1287
  imageSearch_store.state.apiPath = newPath;
1285
1288
  this.getRecommendations();
1286
1289
  }
1287
- handleProductLoading({ detail }) {
1290
+ trackWidgetOpen() {
1291
+ if (!this.opened)
1292
+ return;
1293
+ this.vviinnWidgetOpen.emit(this.getBasicEventData());
1294
+ this.trackWidgetEvent("open");
1295
+ }
1296
+ trackWidgetClose() {
1297
+ if (!this.closed)
1298
+ return;
1299
+ this.vviinnWidgetClose.emit(this.getBasicEventData());
1300
+ this.trackWidgetEvent("close");
1301
+ }
1302
+ connectedCallback() {
1303
+ var _a;
1304
+ imageSearch_store.state.apiPath = this.apiPath;
1305
+ imageSearch_store.state.currencySign = this.currencySign;
1306
+ imageSearch_store.state.locale = this.locale;
1307
+ this.id = (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.el.id;
1308
+ this.uiSessionId = index$2.v4();
1309
+ this.trackingApi = index$2.createTrackingApi(this.apiPath, this.token);
1310
+ this.getRecommendations();
1311
+ i18next.instance.init({
1312
+ lng: this.locale,
1313
+ fallbackLng: "de-DE",
1314
+ resources,
1315
+ });
1316
+ this.vviinnWidgetLoad.emit(this.getBasicEventData());
1317
+ this.trackWidgetEvent("load");
1318
+ }
1319
+ async componentWillLoad() {
1320
+ imageSearch_store.state.pricePrefix = this.pricePrefix;
1321
+ imageSearch_store.state.currencySign = this.currencySign;
1322
+ if (this.excluded) {
1323
+ this.excluded = imageSearch_store.parseExcluded(this.excluded);
1324
+ }
1325
+ }
1326
+ trackProductLoad({ detail }) {
1288
1327
  this.productImageLoadedSubject.next(detail.productId);
1328
+ const productLoadEvent = this.getProductTrackEvent(detail, "load");
1329
+ if (!productLoadEvent)
1330
+ return;
1331
+ this.trackingApi
1332
+ .trackEvent(productLoadEvent)
1333
+ .then(this.setTrackingDeactivated);
1289
1334
  }
1290
1335
  trackProductView({ detail }) {
1291
1336
  if (!this.resultViewed) {
1292
1337
  this.resultViewed = true;
1293
1338
  this.vviinnResultView.emit(this.getBasicEventData());
1294
1339
  }
1295
- if (this.trackingDeactivated)
1340
+ const productViewEvent = this.getProductTrackEvent(detail, "view");
1341
+ if (!productViewEvent)
1296
1342
  return;
1297
- const { productRank, productId, productName, widgetType, widgetId, campaignTypeId, campaignTypeName } = detail, rest = __rest(detail, ["productRank", "productId", "productName", "widgetType", "widgetId", "campaignTypeId", "campaignTypeName"]);
1298
- const eventBody = Object.assign({ session_id: this.uiSessionId, rank: productRank, product: productId }, rest);
1299
- let productViewEvent;
1300
- if (campaignTypeId === "VCS") {
1301
- productViewEvent = index$2.createProductViewVpcEvent(eventBody);
1302
- }
1303
- else if (campaignTypeId === "VPR") {
1304
- productViewEvent = index$2.createProductViewVprEvent(eventBody);
1305
- }
1306
1343
  this.trackingApi
1307
1344
  .trackEvent(productViewEvent)
1308
1345
  .then(this.setTrackingDeactivated);
1309
1346
  }
1310
1347
  async trackProductClick({ detail }) {
1311
- const { productRank, productId, productName, widgetType, widgetId, campaignTypeId, campaignTypeName } = detail, rest = __rest(detail, ["productRank", "productId", "productName", "widgetType", "widgetId", "campaignTypeId", "campaignTypeName"]);
1312
- const eventBody = Object.assign({ session_id: this.uiSessionId, rank: productRank, product: productId }, rest);
1313
- let productClickEvent;
1314
- if (campaignTypeId === "VCS") {
1315
- productClickEvent = index$2.createProductClickVpcEvent(eventBody);
1316
- }
1317
- else if (campaignTypeId === "VPR") {
1318
- productClickEvent = index$2.createProductClickVprEvent(eventBody);
1319
- }
1320
1348
  const product = this.recommendations.find((r) => r.productId === detail.productId);
1321
1349
  if (!product || !product.deeplink)
1322
1350
  return;
1351
+ const productClickEvent = this.getProductTrackEvent(detail, "click");
1323
1352
  if (!this.trackingDeactivated) {
1324
1353
  await this.trackingApi
1325
1354
  .trackEvent(productClickEvent)
@@ -1332,62 +1361,33 @@ const VviinnVprWidget = class {
1332
1361
  this.handleOpenLink(product.deeplink);
1333
1362
  }
1334
1363
  }
1335
- connectedCallback() {
1336
- var _a;
1337
- imageSearch_store.state.apiPath = this.apiPath;
1338
- imageSearch_store.state.currencySign = this.currencySign;
1339
- imageSearch_store.state.locale = this.locale;
1340
- this.id = (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.el.id;
1341
- this.uiSessionId = index$2.v4();
1342
- this.trackingApi = index$2.createTrackingApi(this.apiPath, this.token);
1343
- i18next.instance.init({
1344
- lng: this.locale,
1345
- fallbackLng: "de-DE",
1346
- resources,
1347
- });
1348
- if (this.trackingDeactivated || !this.showingInButton)
1364
+ trackWidgetEvent(action) {
1365
+ if (this.trackingDeactivated)
1349
1366
  return;
1350
- const eventBody = {
1351
- action: "open",
1352
- session_id: this.uiSessionId,
1353
- };
1354
- let widgetOpenEvent;
1367
+ const _a = this.getBasicEventData(), rest = __rest(_a, ["campaignTypeId"]);
1368
+ let widgetEvent;
1369
+ const eventBody = Object.assign({ action, session_id: this.uiSessionId }, rest);
1355
1370
  if (this.campaignType === "VCS") {
1356
- widgetOpenEvent = index$2.createWidgetVpcEvent(eventBody);
1371
+ widgetEvent = index$2.createWidgetVpcEvent(eventBody);
1357
1372
  }
1358
1373
  else if (this.campaignType === "VPR") {
1359
- widgetOpenEvent = index$2.createWidgetVprEvent(eventBody);
1374
+ widgetEvent = index$2.createWidgetVprEvent(eventBody);
1360
1375
  }
1361
- this.trackingApi
1362
- .trackEvent(widgetOpenEvent)
1363
- .then(this.setTrackingDeactivated);
1376
+ this.trackingApi.trackEvent(widgetEvent).then(this.setTrackingDeactivated);
1364
1377
  }
1365
- disconnectedCallback() {
1378
+ getProductTrackEvent(detail, eventType) {
1366
1379
  if (this.trackingDeactivated)
1367
- return;
1368
- const eventBody = {
1369
- action: "close",
1370
- session_id: this.uiSessionId,
1371
- };
1372
- let widgetCloseEvent;
1373
- if (this.campaignType === "VCS") {
1374
- widgetCloseEvent = index$2.createWidgetVpcEvent(eventBody);
1375
- }
1376
- else if (this.campaignType === "VPR") {
1377
- widgetCloseEvent = index$2.createWidgetVprEvent(eventBody);
1380
+ return null;
1381
+ const { productRank, productId, campaignTypeId } = detail, rest = __rest(detail, ["productRank", "productId", "campaignTypeId"]);
1382
+ let productEvent;
1383
+ const eventBody = Object.assign({ session_id: this.uiSessionId, rank: productRank, product: productId }, rest);
1384
+ if (campaignTypeId === "VCS") {
1385
+ productEvent = index$2.createProductVpcEventByType(eventType)(eventBody);
1378
1386
  }
1379
- this.trackingApi
1380
- .trackEvent(widgetCloseEvent)
1381
- .then(this.setTrackingDeactivated);
1382
- }
1383
- async componentWillLoad() {
1384
- imageSearch_store.state.pricePrefix = this.pricePrefix;
1385
- imageSearch_store.state.currencySign = this.currencySign;
1386
- if (this.excluded) {
1387
- this.excluded = imageSearch_store.parseExcluded(this.excluded);
1387
+ else if (campaignTypeId === "VPR") {
1388
+ productEvent = index$2.createProductVprEventByType(eventType)(eventBody);
1388
1389
  }
1389
- this.vviinnWidgetLoad.emit(this.getBasicEventData());
1390
- this.getRecommendations();
1390
+ return productEvent;
1391
1391
  }
1392
1392
  async getRecommendations() {
1393
1393
  if (this.productId === undefined || this.token === undefined)
@@ -1446,9 +1446,6 @@ const VviinnVprWidget = class {
1446
1446
  return (index.h("div", { class: "recommendations-grid", part: "recommendations-grid" }, this.recommendations.map((r, i) => this.renderRecommendation(r, i))));
1447
1447
  }
1448
1448
  renderCarousel() {
1449
- if (this.showingInButton) {
1450
- this.vviinnWidgetOpen.emit(this.getBasicEventData());
1451
- }
1452
1449
  return (index.h("vviinn-carousel", { mode: this.mode, campaignTypeId: this.campaignType, imageWidth: this.imageWidth, showScroll: this.showScroll, recommendations: this.recommendations, widgetElementId: this.id, widgetVersion: _package.version, gridArrowsDynamic: this.gridArrowsDynamic }));
1453
1450
  }
1454
1451
  get el() { return index.getElement(this); }
@@ -1456,7 +1453,9 @@ const VviinnVprWidget = class {
1456
1453
  "productId": ["handleProductIdChange"],
1457
1454
  "campaignType": ["handleCampaignTypeChange"],
1458
1455
  "campaigns": ["handleCampaignsChange"],
1459
- "apiPath": ["handleApiPathChange"]
1456
+ "apiPath": ["handleApiPathChange"],
1457
+ "opened": ["trackWidgetOpen"],
1458
+ "closed": ["trackWidgetClose"]
1460
1459
  }; }
1461
1460
  };
1462
1461
  VviinnVprWidget.style = vviinnVprWidgetCss;
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-a4becaff.js');
6
6
  const index$1 = require('./index-6cfe5293.js');
7
- const Campaign = require('./Campaign-778b5b2c.js');
8
7
 
9
8
  const recommendationsSidebarCss = ":host{--vviinn-carousel-columns:4;box-sizing:border-box;display:block;display:flex;height:100vh;left:0;position:fixed;top:0;transition:background 0.1s ease-in-out;width:100vw}:host(.open){background:rgba(0, 0, 0, 0.2)}:host(.bottom){flex-direction:column;justify-content:end}:host(.right){flex-direction:row;justify-content:flex-end}header{position:relative;text-align:center;padding:32px}header.contains-source-img{display:grid;justify-items:center;grid-gap:12px}img.source-image{width:64px;height:64px;border-radius:50%;box-shadow:0px 2px 4px rgba(0, 0, 0, 0.15);padding:8px}:host(.right) header{box-shadow:0px 2px 6px rgba(0, 0, 0, 0.1)}main{padding:0 24px;min-height:100px}:host(.right) main{overflow:auto}.sidebar{background:white;box-sizing:border-box;display:flex;flex-direction:column;max-height:100vh;overflow-y:auto}:host(.bottom.idle) .sidebar,:host(.bottom.closed) .sidebar{transform:translateY(100%)}:host(.bottom.closed) .sidebar{animation-name:slideOutFromBottom;animation-duration:0.5s;animation-fill-mode:forwards}:host(.bottom.open) .sidebar{animation-name:slideInFromBottom;animation-duration:0.5s;animation-fill-mode:forwards}:host(.right.idle) .sidebar{transform:translateX(100%)}:host(.right.closed) .sidebar{animation-name:slideOutFromRight;animation-duration:0.5s;animation-fill-mode:forwards}:host(.right.open) .sidebar{animation-name:slideInFromRight;animation-duration:0.5s;animation-fill-mode:forwards}:host(.right) .sidebar{max-width:480px}:host(.right) vviinn-vpr-widget::part(recommendations-grid){display:grid;grid-template-columns:repeat(2, 1fr);grid-gap:24px}:host(.right) vviinn-vpr-widget{overflow:auto}:host(.right) vviinn-vpr-widget::part(image){border:none}.title{font-style:normal;font-weight:500;font-size:28px;line-height:40px;text-align:center;color:#000000}vviinn-vpr-widget::part(title),vviinn-vpr-widget::part(brand),vviinn-vpr-widget::part(type){text-align:left}vviinn-vpr-widget::part(price-container){align-self:start}.close-sidebar{background:transparent;border:none;cursor:pointer;margin:0;padding:0;position:absolute;right:24px;top:24px}@keyframes slideInFromBottom{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideOutFromBottom{from{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes slideInFromRight{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slideOutFromRight{from{transform:translateX(0)}to{transform:translateX(100%)}}@media (max-width: 768px){:host{--vviinn-carousel-columns:2}}";
10
9
 
@@ -61,7 +60,7 @@ const RecommendationsSidebar = class {
61
60
  return (_a = this.el.shadowRoot.querySelector("aside")) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
62
61
  }
63
62
  render() {
64
- return (index.h(index.Host, { class: this.getClassMap() }, index.h("aside", { class: "sidebar", part: "body", onAnimationEnd: (e) => this.handleAnimationEnd(e) }, index.h("header", { class: { "contains-source-img": this.isSourceImageValid() }, part: "sidebar-header" }, this.isSourceImageValid() ? this.renderSourceImage() : null, index.h("span", { class: "title", part: "title" }, this.sidebarTitle), index.h("button", { class: "close-sidebar", onClick: () => (this.state = "closed") }, index.h(index$1.CrossIcon, null))), index.h("main", { part: "sidebar-content" }, index.h("vviinn-vpr-widget", { exportparts: "brand, currency, deeplink, image, image-link, price-amount, price-container, price-prefix, price-outdated, price-regular, price-sale, title: product-title, carousel-button, product-card, items-group", token: this.token, productId: this.productId, imageWidth: this.imageWidth, blockTitle: "", mode: this.mode, "campaign-type": this.campaignType, useCarousel: this.position === "bottom", onVviinnRecommendationsLoaded: () => (this.state = "open"), showScroll: this.widgetScrollbar, campaigns: this.campaigns, color: this.color, currencySign: this.currencySign, apiPath: this.apiPath, locale: this.locale, buttonElementId: this.buttonElementId, noResultText: this.noResultText, noResultShow: this.noResultShow, gridArrowsDynamic: this.gridArrowsDynamic, showingInButton: this.showingInButton, excluded: this.excluded, productDetailNewTab: this.productDetailNewTab })))));
63
+ return (index.h(index.Host, { class: this.getClassMap() }, index.h("aside", { class: "sidebar", part: "body", onAnimationEnd: (e) => this.handleAnimationEnd(e) }, index.h("header", { class: { "contains-source-img": this.isSourceImageValid() }, part: "sidebar-header" }, this.isSourceImageValid() ? this.renderSourceImage() : null, index.h("span", { class: "title", part: "title" }, this.sidebarTitle), index.h("button", { class: "close-sidebar", onClick: () => (this.state = "closed") }, index.h(index$1.CrossIcon, null))), index.h("main", { part: "sidebar-content" }, index.h("vviinn-vpr-widget", { exportparts: "brand, currency, deeplink, image, image-link, price-amount, price-container, price-prefix, price-outdated, price-regular, price-sale, title: product-title, carousel-button, product-card, items-group", token: this.token, productId: this.productId, imageWidth: this.imageWidth, blockTitle: "", mode: this.mode, "campaign-type": this.campaignType, useCarousel: this.position === "bottom", onVviinnRecommendationsLoaded: () => (this.state = "open"), showScroll: this.widgetScrollbar, campaigns: this.campaigns, color: this.color, currencySign: this.currencySign, apiPath: this.apiPath, locale: this.locale, buttonElementId: this.buttonElementId, noResultText: this.noResultText, noResultShow: this.noResultShow, gridArrowsDynamic: this.gridArrowsDynamic, showingInButton: this.showingInButton, excluded: this.excluded, productDetailNewTab: this.productDetailNewTab, closed: this.state === "closed", opened: this.state === "open" })))));
65
64
  }
66
65
  renderSourceImage() {
67
66
  return (index.h("img", { class: "source-image", part: "source-image", src: this.sourceImage }));
@@ -74,13 +73,6 @@ const RecommendationsSidebar = class {
74
73
  const isClosingAnimation = animationName.includes("slideOut");
75
74
  if (!isClosingAnimation)
76
75
  return;
77
- this.vviinnWidgetClose.emit({
78
- widgetType: "VPR",
79
- campaignTypeId: this.campaignType,
80
- campaignTypeName: Campaign.campaignTypeNames[this.campaignType],
81
- widgetId: this.buttonElementId,
82
- widgetVersion: this.widgetVersion,
83
- });
84
76
  }
85
77
  get el() { return index.getElement(this); }
86
78
  };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-a4becaff.js');
6
- const _package = require('./package-8a334970.js');
6
+ const _package = require('./package-1157a5c0.js');
7
7
  const index$1 = require('./index-6cfe5293.js');
8
8
 
9
9
  const vviinnVprButtonCss = ":host{display:block}";
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-a4becaff.js');
6
- const _package = require('./package-8a334970.js');
6
+ const _package = require('./package-1157a5c0.js');
7
7
  const index$1 = require('./index-6cfe5293.js');
8
8
  const customizedSlots = require('./customized-slots-aee3f39d.js');
9
9
  const Campaign = require('./Campaign-778b5b2c.js');
@@ -63,7 +63,7 @@ const VviinnVpsButton = class {
63
63
  render() {
64
64
  return (index.h(index.Host, { tabindex: "0", role: "button" }, index.h("vviinn-button", { onClick: () => {
65
65
  this.handleClick();
66
- }, addStyle: this.addStyle, part: "vviinn-button" }, index.h("slot", null, index.h(index$1.CameraIcon, null))), index.h(customizedSlots.SlotSkeleton, null), index.h("vviinn-vps-widget", { mode: this.mode, "currency-sign": this.currencySign, token: this.token, locale: this.locale, apiPath: this.apiPath, exportparts: "brand, deeplink, currency, image, image-link, price-amount-sale, price-amount-outdated, price-amount-regular, price-container, price-outdated, price-regular, price-sale, price-prefix, title, product-card, example-images", campaignId: this.campaignId, showingInButton: true, buttonPressed: this.buttonPressed, resetVpsButton: this.resetButton.bind(this), buttonElementId: this.el.id, active: this.buttonPressed, excluded: this.excluded, productDetailNewTab: this.productDetailNewTab })));
66
+ }, addStyle: this.addStyle, part: "vviinn-button" }, index.h("slot", null, index.h(index$1.CameraIcon, null))), index.h(customizedSlots.SlotSkeleton, null), index.h("vviinn-vps-widget", { mode: this.mode, "currency-sign": this.currencySign, token: this.token, locale: this.locale, apiPath: this.apiPath, exportparts: "brand, deeplink, currency, image, image-link, price-amount-sale, price-amount-outdated, price-amount-regular, price-container, price-outdated, price-regular, price-sale, price-prefix, title, product-card, example-images", campaignId: this.campaignId, showingInButton: true, buttonPressed: this.buttonPressed, resetVpsButton: this.resetButton.bind(this), buttonElementId: this.el.id, active: this.buttonPressed && this.mode === "modal", excluded: this.excluded, productDetailNewTab: this.productDetailNewTab })));
67
67
  }
68
68
  get el() { return index.getElement(this); }
69
69
  };