vviinn-widgets 2.27.0 → 2.28.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 (113) hide show
  1. package/dist/cjs/{customized-slots-aee3f39d.js → customized-slots-0a8d663c.js} +18 -1
  2. package/dist/cjs/{imageSearch.store-070ddd94.js → imageSearch.store-dc4e98b3.js} +1 -1
  3. package/dist/cjs/{index-a4becaff.js → index-5619b5ec.js} +3 -0
  4. package/dist/cjs/{index-44211965.js → index-ea4811ba.js} +14 -1
  5. package/dist/cjs/{index-6cfe5293.js → index-fcf59d51.js} +1 -1
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/{package-83bca9cc.js → package-2c1dfbe0.js} +1 -1
  8. package/dist/cjs/search-filters_20.cjs.entry.js +5 -6
  9. package/dist/cjs/vviinn-button.cjs.entry.js +2 -2
  10. package/dist/cjs/vviinn-carousel_3.cjs.entry.js +55 -17
  11. package/dist/cjs/vviinn-error.cjs.entry.js +1 -1
  12. package/dist/cjs/vviinn-preloader.cjs.entry.js +2 -2
  13. package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js +15 -4
  14. package/dist/cjs/vviinn-vpr-button.cjs.entry.js +7 -3
  15. package/dist/cjs/vviinn-vps-button.cjs.entry.js +5 -6
  16. package/dist/cjs/vviinn-vps-widget.cjs.entry.js +10 -14
  17. package/dist/cjs/vviinn-widgets.cjs.js +2 -2
  18. package/dist/collection/components/customized-slots.js +1 -0
  19. package/dist/collection/components/vviinn-carousel/vviinn-carousel.js +19 -1
  20. package/dist/collection/components/vviinn-product-card/vviinn-product-card.css +35 -0
  21. package/dist/collection/components/vviinn-product-card/vviinn-product-card.js +76 -2
  22. package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.css +5 -0
  23. package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js +52 -1
  24. package/dist/collection/components/vviinn-vpr-button/stories/vviinn-vpr-button.stories.js +2 -0
  25. package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js +43 -0
  26. package/dist/collection/components/vviinn-vpr-widget/stories/vviinn-vpr-widget.stories.js +3 -0
  27. package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-vidget.js +93 -6
  28. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +4 -7
  29. package/dist/collection/locale/resources-vpr.js +2 -0
  30. package/dist/collection/tracking/index.js +3 -1
  31. package/dist/collection/tracking/models.js +2 -1
  32. package/dist/collection/tracking/product.js +10 -2
  33. package/dist/esm/{customized-slots-b372eaed.js → customized-slots-136b5f71.js} +16 -2
  34. package/dist/esm/{imageSearch.store-e6e053a1.js → imageSearch.store-c0f2a178.js} +1 -1
  35. package/dist/esm/{index-48ef9564.js → index-1f3eaf12.js} +3 -0
  36. package/dist/esm/{index-44a3df03.js → index-95fa66d2.js} +13 -2
  37. package/dist/esm/{index-33bc6d2c.js → index-d1215e03.js} +1 -1
  38. package/dist/esm/loader.js +3 -3
  39. package/dist/esm/{package-18449ec6.js → package-ed187917.js} +1 -1
  40. package/dist/esm/search-filters_20.entry.js +4 -5
  41. package/dist/esm/vviinn-button.entry.js +2 -2
  42. package/dist/esm/vviinn-carousel_3.entry.js +52 -14
  43. package/dist/esm/vviinn-error.entry.js +1 -1
  44. package/dist/esm/vviinn-preloader.entry.js +2 -2
  45. package/dist/esm/vviinn-recommendations-sidebar.entry.js +15 -4
  46. package/dist/esm/vviinn-vpr-button.entry.js +7 -3
  47. package/dist/esm/vviinn-vps-button.entry.js +4 -5
  48. package/dist/esm/vviinn-vps-widget.entry.js +9 -13
  49. package/dist/esm/vviinn-widgets.js +3 -3
  50. package/dist/types/components/vviinn-carousel/vviinn-carousel.d.ts +1 -0
  51. package/dist/types/components/vviinn-product-card/vviinn-product-card.d.ts +8 -0
  52. package/dist/types/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.d.ts +5 -0
  53. package/dist/types/components/vviinn-vpr-button/vviinn-vpr-button.d.ts +6 -0
  54. package/dist/types/components/vviinn-vpr-widget/vviinn-vpr-vidget.d.ts +11 -0
  55. package/dist/types/components.d.ts +43 -0
  56. package/dist/types/tracking/index.d.ts +2 -0
  57. package/dist/types/tracking/models.d.ts +3 -2
  58. package/dist/types/tracking/product.d.ts +3 -1
  59. package/dist/vviinn-widgets/p-02a84a90.entry.js +1 -0
  60. package/dist/vviinn-widgets/p-17b380b1.entry.js +1 -0
  61. package/dist/vviinn-widgets/{p-34b551fb.entry.js → p-1b008776.entry.js} +1 -1
  62. package/dist/vviinn-widgets/p-1e83e6ba.js +2 -0
  63. package/dist/vviinn-widgets/{p-04b5d426.entry.js → p-48a3c418.entry.js} +1 -1
  64. package/dist/vviinn-widgets/p-5303d4a8.js +1 -0
  65. package/dist/vviinn-widgets/p-6b12aed8.entry.js +1 -0
  66. package/dist/vviinn-widgets/{p-0aab6dd9.entry.js → p-774581dc.entry.js} +1 -1
  67. package/{www/build/p-9d6d9d58.js → dist/vviinn-widgets/p-987a8e9f.js} +1 -1
  68. package/dist/vviinn-widgets/{p-60ea7665.js → p-a69d3568.js} +1 -1
  69. package/dist/vviinn-widgets/{p-7a97ad69.entry.js → p-a8515396.entry.js} +1 -1
  70. package/dist/vviinn-widgets/p-bf490f6f.entry.js +1 -0
  71. package/dist/vviinn-widgets/p-f9858364.entry.js +1 -0
  72. package/dist/vviinn-widgets/p-fc5a0363.js +1 -0
  73. package/{www/build/p-229e20ac.js → dist/vviinn-widgets/p-ffa567ee.js} +1 -1
  74. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  75. package/package.json +2 -2
  76. package/www/build/p-02a84a90.entry.js +1 -0
  77. package/www/build/p-17b380b1.entry.js +1 -0
  78. package/www/build/{p-34b551fb.entry.js → p-1b008776.entry.js} +1 -1
  79. package/www/build/p-1e83e6ba.js +2 -0
  80. package/www/build/{p-04b5d426.entry.js → p-48a3c418.entry.js} +1 -1
  81. package/www/build/p-5303d4a8.js +1 -0
  82. package/www/build/p-6b12aed8.entry.js +1 -0
  83. package/www/build/{p-0aab6dd9.entry.js → p-774581dc.entry.js} +1 -1
  84. package/www/build/{p-f2369f7f.js → p-8b25b766.js} +3 -3
  85. package/{dist/vviinn-widgets/p-9d6d9d58.js → www/build/p-987a8e9f.js} +1 -1
  86. package/www/build/{p-60ea7665.js → p-a69d3568.js} +1 -1
  87. package/www/build/{p-7a97ad69.entry.js → p-a8515396.entry.js} +1 -1
  88. package/www/build/p-bf490f6f.entry.js +1 -0
  89. package/www/build/p-f9858364.entry.js +1 -0
  90. package/www/build/p-fc5a0363.js +1 -0
  91. package/{dist/vviinn-widgets/p-229e20ac.js → www/build/p-ffa567ee.js} +1 -1
  92. package/www/build/vviinn-widgets.esm.js +1 -1
  93. package/www/index.html +9 -1
  94. package/dist/cjs/Campaign-778b5b2c.js +0 -18
  95. package/dist/esm/Campaign-1af6ed38.js +0 -14
  96. package/dist/vviinn-widgets/p-0ac51aca.entry.js +0 -1
  97. package/dist/vviinn-widgets/p-1e2306cf.js +0 -1
  98. package/dist/vviinn-widgets/p-53eacbe3.js +0 -1
  99. package/dist/vviinn-widgets/p-709d32e1.entry.js +0 -1
  100. package/dist/vviinn-widgets/p-926a2241.entry.js +0 -1
  101. package/dist/vviinn-widgets/p-badde98c.js +0 -1
  102. package/dist/vviinn-widgets/p-c7d0d73d.entry.js +0 -1
  103. package/dist/vviinn-widgets/p-fa17e81f.js +0 -2
  104. package/dist/vviinn-widgets/p-fa892c77.entry.js +0 -1
  105. package/www/build/p-0ac51aca.entry.js +0 -1
  106. package/www/build/p-1e2306cf.js +0 -1
  107. package/www/build/p-53eacbe3.js +0 -1
  108. package/www/build/p-709d32e1.entry.js +0 -1
  109. package/www/build/p-926a2241.entry.js +0 -1
  110. package/www/build/p-badde98c.js +0 -1
  111. package/www/build/p-c7d0d73d.entry.js +0 -1
  112. package/www/build/p-fa17e81f.js +0 -2
  113. package/www/build/p-fa892c77.entry.js +0 -1
@@ -1,6 +1,19 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index-a4becaff.js');
3
+ const index = require('./index-5619b5ec.js');
4
+
5
+ const campaignTypeNames = {
6
+ VPR: "Similar Products",
7
+ VPS: "Visual Search",
8
+ VCS: "Cross-Selling",
9
+ };
10
+ const isVPR = (c) => c._tag === "VPR";
11
+ function fold(onVPR, onVCS) {
12
+ return (c) => (isVPR(c) ? onVPR() : onVCS());
13
+ }
14
+ function fromString(s) {
15
+ return s === "VPR" ? { _tag: "VPR" } : { _tag: "VCS" };
16
+ }
4
17
 
5
18
  const defaultSlotsNames = [
6
19
  "vviinn-onboarding-title",
@@ -19,6 +32,7 @@ const defaultSlotsNames = [
19
32
  "vviinn-image-upload-button-text",
20
33
  "vviinn-privacy-badge-text",
21
34
  "vviinn-image-search-modal-title",
35
+ "vviinn-basket-button-text",
22
36
  ];
23
37
  const renderNamedSlot = (name) => index.h("slot", { name: name });
24
38
  const SlotSkeleton = () => defaultSlotsNames.map(renderNamedSlot);
@@ -51,4 +65,7 @@ const slotChangeListener = (component, element) => {
51
65
  };
52
66
 
53
67
  exports.SlotSkeleton = SlotSkeleton;
68
+ exports.campaignTypeNames = campaignTypeNames;
69
+ exports.fold = fold;
70
+ exports.fromString = fromString;
54
71
  exports.slotChangeListener = slotChangeListener;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index-a4becaff.js');
3
+ const index = require('./index-5619b5ec.js');
4
4
 
5
5
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
6
6
 
@@ -1156,6 +1156,9 @@ const postUpdateComponent = (hostRef) => {
1156
1156
  const endPostUpdate = createTime('postUpdate', tagName);
1157
1157
  const instance = hostRef.$lazyInstance$ ;
1158
1158
  const ancestorComponent = hostRef.$ancestorComponent$;
1159
+ {
1160
+ safeCall(instance, 'componentDidRender');
1161
+ }
1159
1162
  if (!(hostRef.$flags$ & 64 /* HOST_FLAGS.hasLoadedComponent */)) {
1160
1163
  hostRef.$flags$ |= 64 /* HOST_FLAGS.hasLoadedComponent */;
1161
1164
  {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const imageSearch_store = require('./imageSearch.store-070ddd94.js');
3
+ const imageSearch_store = require('./imageSearch.store-dc4e98b3.js');
4
4
 
5
5
  // Unique ID creation requires a high quality random # generator. In the browser we therefore
6
6
  // require the crypto API and do not support built-in fallback to lower quality random number
@@ -3811,6 +3811,7 @@ const createTrackingEvent = (widget) => (eventData) => {
3811
3811
  const PRODUCT_LOAD_EVENT_TYPE = "product_load_event";
3812
3812
  const PRODUCT_VIEW_EVENT_TYPE = "product_view_event";
3813
3813
  const PRODUCT_CLICK_EVENT_TYPE = "product_click_event";
3814
+ const ADD_TO_BASKET_EVENT_TYPE = "add_to_basket_event";
3814
3815
  const FILTER_EVENT_TYPE = "filter_event";
3815
3816
  const SEARCH_EVENT_TYPE = "search_event";
3816
3817
  const WIDGET_EVENT_TYPE = "widget_event";
@@ -3856,6 +3857,14 @@ const vpsProductClick = {
3856
3857
  widget: "VPS",
3857
3858
  typ: PRODUCT_CLICK_EVENT_TYPE,
3858
3859
  };
3860
+ const vprAddToBasket = {
3861
+ widget: "VPR",
3862
+ typ: ADD_TO_BASKET_EVENT_TYPE,
3863
+ };
3864
+ const vpcAddToBasket = {
3865
+ widget: "VPC",
3866
+ typ: ADD_TO_BASKET_EVENT_TYPE,
3867
+ };
3859
3868
 
3860
3869
  const searchEvent = {
3861
3870
  widget: "VPS",
@@ -3884,6 +3893,8 @@ const createProductClickVpcEvent = createTrackingEvent(vpcProductClick);
3884
3893
  const createProductLoadVpsEvent = createTrackingEvent(vpsProductLoad);
3885
3894
  const createProductViewVpsEvent = createTrackingEvent(vpsProductView);
3886
3895
  const createProductClickVpsEvent = createTrackingEvent(vpsProductClick);
3896
+ const createAddToBasketVprEvent = createTrackingEvent(vprAddToBasket);
3897
+ const createAddToBasketVpcEvent = createTrackingEvent(vpcAddToBasket);
3887
3898
  const createProductVprEventByType = (type) => {
3888
3899
  switch (type) {
3889
3900
  case "load":
@@ -3920,6 +3931,8 @@ const createWidgetVpcEvent = createTrackingEvent(vpcWidget);
3920
3931
  const createSearchEvent = createTrackingEvent(searchEvent);
3921
3932
  const createFilterEvent = createTrackingEvent(filterEvent);
3922
3933
 
3934
+ exports.createAddToBasketVpcEvent = createAddToBasketVpcEvent;
3935
+ exports.createAddToBasketVprEvent = createAddToBasketVprEvent;
3923
3936
  exports.createFilterEvent = createFilterEvent;
3924
3937
  exports.createProductVpcEventByType = createProductVpcEventByType;
3925
3938
  exports.createProductVprEventByType = createProductVprEventByType;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index-a4becaff.js');
3
+ const index = require('./index-5619b5ec.js');
4
4
 
5
5
  const ArrowIcon = () => (index.h("svg", { width: "12", height: "20", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
6
6
  index.h("path", { d: "M0 10 10 0l1.4 1.4L2.8 10l8.6 8.6L10 20 0 10Z" })));
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-a4becaff.js');
5
+ const index = require('./index-5619b5ec.js');
6
6
 
7
7
  /*
8
8
  Stencil Client Patch Esm v3.3.1 | MIT Licensed | https://stenciljs.com
@@ -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"]}]]],["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]}]]],["search-filters_20.cjs",[[1,"vviinn-onboarding"],[1,"vviinn-example-images",{"basicEventData":[16],"exampleImagesTitle":[1,"example-images-title"]}],[1,"vviinn-image-view",{"basicEventData":[16],"cropper":[32]},[[0,"vviinnSelectObject","selectDetectedObject"]]],[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,"vviinn-example-image",{"src":[1],"width":[2],"height":[2],"basicEventData":[16],"selected":[32]}],[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"],"imageResolutionWidth":[2,"image-resolution-width"],"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"],"imageResolutionWidth":[2,"image-resolution-width"],"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"]}]]],["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"],"addToBasketShow":[4,"add-to-basket-show"],"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,"vviinnAddToBasket","trackAddToBasket"]]],[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"],"addToBasketShow":[4,"add-to-basket-show"],"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"],"mode":[1],"addToBasketShow":[4,"add-to-basket-show"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"index":[2],"imageLoaded":[32]}]]],["search-filters_20.cjs",[[1,"vviinn-onboarding"],[1,"vviinn-example-images",{"basicEventData":[16],"exampleImagesTitle":[1,"example-images-title"]}],[1,"vviinn-image-view",{"basicEventData":[16],"cropper":[32]},[[0,"vviinnSelectObject","selectDetectedObject"]]],[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,"vviinn-example-image",{"src":[1],"width":[2],"height":[2],"basicEventData":[16],"selected":[32]}],[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"],"imageResolutionWidth":[2,"image-resolution-width"],"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"],"imageResolutionWidth":[2,"image-resolution-width"],"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"],"addToBasketShow":[4,"add-to-basket-show"],"buttonChildren":[16],"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"],"addToBasketShow":[4,"add-to-basket-show"],"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.27.0";
3
+ const version = "2.28.0";
4
4
 
5
5
  exports.version = version;
@@ -2,12 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-a4becaff.js');
6
- const imageSearch_store = require('./imageSearch.store-070ddd94.js');
5
+ const index = require('./index-5619b5ec.js');
6
+ const imageSearch_store = require('./imageSearch.store-dc4e98b3.js');
7
7
  const i18next = require('./i18next-74ff3413.js');
8
- const customizedSlots = require('./customized-slots-aee3f39d.js');
9
- const Campaign = require('./Campaign-778b5b2c.js');
10
- const index$1 = require('./index-6cfe5293.js');
8
+ const customizedSlots = require('./customized-slots-0a8d663c.js');
9
+ const index$1 = require('./index-fcf59d51.js');
11
10
 
12
11
  // -------------------------------------------------------------------------------------
13
12
  // -------------------------------------------------------------------------------------
@@ -3703,7 +3702,7 @@ const VviinnModal = class {
3703
3702
  this.vviinnWidgetClose.emit({
3704
3703
  widgetType: "VPS",
3705
3704
  campaignTypeId: "VPS",
3706
- campaignTypeName: Campaign.campaignTypeNames["VPS"],
3705
+ campaignTypeName: customizedSlots.campaignTypeNames["VPS"],
3707
3706
  widgetId: this.buttonElementId,
3708
3707
  widgetVersion: this.widgetVersion,
3709
3708
  });
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-a4becaff.js');
6
- const index$1 = require('./index-6cfe5293.js');
5
+ const index = require('./index-5619b5ec.js');
6
+ const index$1 = require('./index-fcf59d51.js');
7
7
 
8
8
  const vviinnButtonCss = ":host{display:block}.open-button{align-items:center;background:rgba(255, 255, 255, 0.8);border-radius:50%;border:none;box-shadow:0px 2px 6px rgba(0, 0, 0, 0.15);box-sizing:border-box;cursor:pointer;display:grid;height:40px;justify-items:center;padding:0;width:40px;transition:all 0.25s ease-in-out}.raw-open-button{background:none;border:none;cursor:pointer}.open-button:hover{box-shadow:0px 2px 6px rgba(0, 0, 0, 0.25)}.open-button:focus{border:2px solid rgba(15, 98, 254, 0.5);outline:none}.open-button:active{background:#f4f4f4;outline:none}";
9
9
 
@@ -2,13 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-a4becaff.js');
6
- const imageSearch_store = require('./imageSearch.store-070ddd94.js');
7
- const index$1 = require('./index-6cfe5293.js');
8
- const Campaign = require('./Campaign-778b5b2c.js');
5
+ const index = require('./index-5619b5ec.js');
6
+ const imageSearch_store = require('./imageSearch.store-dc4e98b3.js');
7
+ const index$1 = require('./index-fcf59d51.js');
9
8
  const i18next = require('./i18next-74ff3413.js');
10
- const _package = require('./package-83bca9cc.js');
11
- const index$2 = require('./index-44211965.js');
9
+ const customizedSlots = require('./customized-slots-0a8d663c.js');
10
+ const _package = require('./package-2c1dfbe0.js');
11
+ const index$2 = require('./index-ea4811ba.js');
12
12
 
13
13
  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)}}";
14
14
 
@@ -37,6 +37,7 @@ const VviinnCarousel = class {
37
37
  this.gridArrowsDynamic = undefined;
38
38
  this.recommendations = [];
39
39
  this.widgetVersion = undefined;
40
+ this.addToBasketShow = undefined;
40
41
  }
41
42
  componentWillLoad() {
42
43
  this.isRTL = document.dir === "rtl";
@@ -196,7 +197,7 @@ const VviinnCarousel = class {
196
197
  };
197
198
  }
198
199
  renderRecommendation(recommendation, rank) {
199
- return (index.h("vviinn-product-card", { part: "product-part", productId: recommendation.productId, productTitle: recommendation.title, productType: recommendation.productType, deeplink: recommendation.deeplink, image: recommendation.image.thumbnail, brand: recommendation.brand, imageWidth: this.imageWidth, imageRatio: 1, price: recommendation.price.actual, salePrice: recommendation.price.sale, responsive: this.mode === "grid", dimmedBackground: this.mode === "continuity", campaignTypeId: this.campaignTypeId, index: rank, widgetElementId: this.widgetElementId, widgetVersion: this.widgetVersion }));
200
+ return (index.h("vviinn-product-card", { part: "product-part", productId: recommendation.productId, productTitle: recommendation.title, productType: recommendation.productType, deeplink: recommendation.deeplink, image: recommendation.image.thumbnail, brand: recommendation.brand, imageWidth: this.imageWidth, imageRatio: 1, price: recommendation.price.actual, salePrice: recommendation.price.sale, responsive: this.mode === "grid", dimmedBackground: this.mode === "continuity", campaignTypeId: this.campaignTypeId, index: rank, widgetElementId: this.widgetElementId, widgetVersion: this.widgetVersion, addToBasketShow: this.addToBasketShow, mode: this.mode }));
200
201
  }
201
202
  renderRecommendationGroup(elements) {
202
203
  return (index.h("div", { class: CONTENT_GROUP_CSS_CLASS, part: "items-group" }, ...elements));
@@ -417,7 +418,7 @@ const Image = (props, onLoadEnd = () => undefined) => (index.h("picture", null,
417
418
  const ResponsiveImage = (props, onLoadEnd = () => undefined) => (index.h("picture", null,
418
419
  index.h("img", { loading: props.lazy ? "lazy" : "eager", part: "image", class: "image responsive", src: processWidth(props.src, props.width), alt: props.title, onLoad: onLoadEnd })));
419
420
 
420
- const vviinnProductCardCss = ":host{align-items:center;display:flex;flex-direction:column;gap:8px;height:100%}.price-container{display:flex;flex-direction:column}.price-sale,.price-regular{font-style:normal;font-weight:normal;font-size:16px;line-height:24px;color:#161616}.price-outdated{font-style:normal;font-weight:normal;font-size:16px;line-height:24px;color:#757575;text-decoration:line-through}.product-type{word-wrap:anywhere}.image{display:grid;align-content:center;-o-object-position:50% 50%;object-position:50% 50%;-o-object-fit:contain;object-fit:contain;text-align:center;box-sizing:border-box}img.responsive{width:100%;height:auto;aspect-ratio:1}.brand,.type{display:none}.title{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#161616;display:-webkit-box;font-size:16px;font-style:normal;font-weight:500;line-height:24px;margin-bottom:8px;overflow:hidden}.deeplink{text-decoration:none}.image-link{display:contents}picture{position:relative;width:100%}:host(.dimmed) picture::before{content:\"\";width:100%;height:100%;box-sizing:border-box;background:#f7f7f7;display:block;top:0;left:0;position:absolute;mix-blend-mode:multiply}";
421
+ const vviinnProductCardCss = ":host{align-items:center;display:flex;flex-direction:column;gap:8px;height:100%}.price-container{display:flex;flex-direction:column;margin-top:auto}.price-sale,.price-regular{font-style:normal;font-weight:normal;font-size:16px;line-height:24px;color:#161616}.price-outdated{font-style:normal;font-weight:normal;font-size:16px;line-height:24px;color:#757575;text-decoration:line-through}.product-type{word-wrap:anywhere}.image{display:grid;align-content:center;-o-object-position:50% 50%;object-position:50% 50%;-o-object-fit:contain;object-fit:contain;text-align:center;box-sizing:border-box}img.responsive{width:100%;height:auto;aspect-ratio:1}.brand,.type{display:none}.title{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#161616;display:-webkit-box;font-size:16px;font-style:normal;font-weight:500;line-height:24px;margin-bottom:8px;overflow:hidden}.deeplink{text-decoration:none;max-width:100%}.image-link{display:contents}picture{position:relative;width:100%}.basket-button{border:none;cursor:pointer;font-size:16px;padding:10px 12px;margin-top:8px}.basket-button.basket-button-grid{width:100%;background:none;border:1px solid #dddddd}.basket-button.basket-button-continuity{align-self:start;background:#f7f7f7}.basket-button-continuity:hover{background:#eaeaea}.basket-button-grid:hover{background:#f7f7f7}@media (max-width: 640px){.basket-button{padding:8px 10px}}:host(.dimmed) picture::before{content:\"\";width:100%;height:100%;box-sizing:border-box;background:#f7f7f7;display:block;top:0;left:0;position:absolute;mix-blend-mode:multiply}";
421
422
 
422
423
  const VviinnProductCard = class {
423
424
  constructor(hostRef) {
@@ -425,6 +426,7 @@ const VviinnProductCard = class {
425
426
  this.vviinnProductLoad = index.createEvent(this, "vviinnProductLoad", 7);
426
427
  this.vviinnProductView = index.createEvent(this, "vviinnProductView", 7);
427
428
  this.vviinnProductClick = index.createEvent(this, "vviinnProductClick", 7);
429
+ this.vviinnAddToBasket = index.createEvent(this, "vviinnAddToBasket", 7);
428
430
  this.productData = null;
429
431
  this.intersectionObserver = new IntersectionObserver(this.intersectionCallback.bind(this), { threshold: 1.0 });
430
432
  this.brand = undefined;
@@ -442,6 +444,8 @@ const VviinnProductCard = class {
442
444
  this.salePrice = undefined;
443
445
  this.responsive = false;
444
446
  this.dimmedBackground = false;
447
+ this.mode = undefined;
448
+ this.addToBasketShow = undefined;
445
449
  this.campaignTypeId = undefined;
446
450
  this.widgetElementId = undefined;
447
451
  this.buttonElementId = undefined;
@@ -452,6 +456,9 @@ const VviinnProductCard = class {
452
456
  connectedCallback() {
453
457
  this.productData = this.getProductData();
454
458
  }
459
+ componentWillLoad() {
460
+ customizedSlots.slotChangeListener(this, this.el);
461
+ }
455
462
  getWidgetType() {
456
463
  return this.campaignTypeId === "VPR" || this.campaignTypeId === "VCS"
457
464
  ? "VPR"
@@ -466,7 +473,7 @@ const VviinnProductCard = class {
466
473
  productType: this.productType,
467
474
  widgetType: this.getWidgetType(),
468
475
  campaignTypeId: this.campaignTypeId,
469
- campaignTypeName: Campaign.campaignTypeNames[this.campaignTypeId],
476
+ campaignTypeName: customizedSlots.campaignTypeNames[this.campaignTypeId],
470
477
  widgetId: (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.widgetElementId,
471
478
  widgetVersion: this.widgetVersion,
472
479
  };
@@ -504,7 +511,13 @@ const VviinnProductCard = class {
504
511
  }
505
512
  render() {
506
513
  var _a, _b, _c;
507
- return (index.h(index.Host, { part: "product-card", class: { dimmed: this.dimmedBackground }, exportparts: "brand, currency, deeplink, image, image-link, price-amount-sale, price-amount-outdated, price-amount-regular, price-container, price-outdated, price-regular, price-sale, price-prefix, title" }, index.h(Linked, { deeplink: this.deeplink, part: "image-link" }, this.renderImage()), index.h(Linked, { deeplink: this.deeplink, part: "deeplink" }, index.h("span", { class: "title", part: "title" }, this.productTitle)), index.h("span", { class: "brand", part: "brand" }, this.brand), index.h("span", { class: "type", part: "type" }, this.productType), index.h(Price, { prefix: (_a = this.pricePrefix) !== null && _a !== void 0 ? _a : imageSearch_store.state.pricePrefix, currency: (_b = this.currency) !== null && _b !== void 0 ? _b : imageSearch_store.state.currencySign, price: this.price, salePrice: this.salePrice, locale: (_c = this.locale) !== null && _c !== void 0 ? _c : imageSearch_store.state.locale })));
514
+ return (index.h(index.Host, { part: "product-card", class: { dimmed: this.dimmedBackground }, exportparts: "brand, currency, deeplink, image, image-link, price-amount-sale, price-amount-outdated, price-amount-regular, price-container, price-outdated, price-regular, price-sale, price-prefix, title, basket-button" }, index.h(Linked, { deeplink: this.deeplink, part: "image-link" }, this.renderImage()), index.h(Linked, { deeplink: this.deeplink, part: "deeplink" }, index.h("span", { class: "title", part: "title" }, this.productTitle)), index.h("span", { class: "brand", part: "brand" }, this.brand), index.h("span", { class: "type", part: "type" }, this.productType), index.h(Price, { prefix: (_a = this.pricePrefix) !== null && _a !== void 0 ? _a : imageSearch_store.state.pricePrefix, currency: (_b = this.currency) !== null && _b !== void 0 ? _b : imageSearch_store.state.currencySign, price: this.price, salePrice: this.salePrice, locale: (_c = this.locale) !== null && _c !== void 0 ? _c : imageSearch_store.state.locale }), this.addToBasketShow && (index.h("button", { class: {
515
+ "basket-button": true,
516
+ "basket-button-grid": this.mode === "grid",
517
+ "basket-button-continuity ": this.mode === "continuity",
518
+ }, part: "basket-button", onClick: () => {
519
+ this.vviinnAddToBasket.emit(this.productData);
520
+ } }, index.h("slot", { name: "vviinn-basket-button-text" }, index.h("span", null, i18next.instance.t("basketButtonText")))))));
508
521
  }
509
522
  get el() { return index.getElement(this); }
510
523
  };
@@ -1178,17 +1191,19 @@ const getVCSRecommendations = (productId) => (color) => (excludedFilters) => (ca
1178
1191
  return apiGet(url, options);
1179
1192
  };
1180
1193
 
1181
- const getRecommendationsService = (campaignType) => imageSearch_store._function.pipe(Campaign.fromString(campaignType), Campaign.fold(() => getVPRRecommendations, () => getVCSRecommendations));
1194
+ const getRecommendationsService = (campaignType) => imageSearch_store._function.pipe(customizedSlots.fromString(campaignType), customizedSlots.fold(() => getVPRRecommendations, () => getVCSRecommendations));
1182
1195
 
1183
1196
  const resources = {
1184
1197
  de: {
1185
1198
  translation: {
1186
1199
  noResultText: "Keine Ergebnisse! Versuche es bitte später erneut.",
1200
+ basketButtonText: "In den Warenkorb",
1187
1201
  },
1188
1202
  },
1189
1203
  en: {
1190
1204
  translation: {
1191
1205
  noResultText: "No results! Please, try again later.",
1206
+ basketButtonText: "Add to Basket",
1192
1207
  },
1193
1208
  },
1194
1209
  };
@@ -1217,6 +1232,8 @@ const VviinnVprWidget = class {
1217
1232
  this.vviinnResultLoad = index.createEvent(this, "vviinnResultLoad", 7);
1218
1233
  this.vviinnResultView = index.createEvent(this, "vviinnResultView", 7);
1219
1234
  this.vviinnNoResult = index.createEvent(this, "vviinnNoResult", 7);
1235
+ this.vviinnAddToBasket = index.createEvent(this, "vviinnAddToBasket", 7);
1236
+ this.globalSlotsChanged = index.createEvent(this, "globalSlotsChanged", 7);
1220
1237
  this.vviinnRecommendationsLoaded = index.createEvent(this, "vviinnRecommendationsLoaded", 7);
1221
1238
  this.vviinnWidgetOpen = index.createEvent(this, "vviinnWidgetOpen", 7);
1222
1239
  this.vviinnWidgetClose = index.createEvent(this, "vviinnWidgetClose", 7);
@@ -1246,6 +1263,7 @@ const VviinnVprWidget = class {
1246
1263
  this.cssUrl = null;
1247
1264
  this.excluded = "";
1248
1265
  this.productDetailNewTab = false;
1266
+ this.addToBasketShow = false;
1249
1267
  this.apiPath = "https://api.vviinn.com";
1250
1268
  this.useCarousel = true;
1251
1269
  this.showingInButton = false;
@@ -1260,7 +1278,7 @@ const VviinnVprWidget = class {
1260
1278
  return {
1261
1279
  widgetType: "VPR",
1262
1280
  campaignTypeId: this.campaignType,
1263
- campaignTypeName: Campaign.campaignTypeNames[this.campaignType],
1281
+ campaignTypeName: customizedSlots.campaignTypeNames[this.campaignType],
1264
1282
  widgetId: this.id,
1265
1283
  widgetVersion: _package.version,
1266
1284
  };
@@ -1298,6 +1316,12 @@ const VviinnVprWidget = class {
1298
1316
  this.vviinnWidgetClose.emit(this.getBasicEventData());
1299
1317
  this.trackWidgetEvent("close");
1300
1318
  }
1319
+ componentDidRender() {
1320
+ if (this.showingInButton && this.closed)
1321
+ return;
1322
+ const slots = this.el.querySelectorAll("[slot]");
1323
+ this.globalSlotsChanged.emit(Array.from(slots));
1324
+ }
1301
1325
  connectedCallback() {
1302
1326
  var _a;
1303
1327
  imageSearch_store.state.apiPath = this.apiPath;
@@ -1360,10 +1384,24 @@ const VviinnVprWidget = class {
1360
1384
  this.handleOpenLink(product.deeplink);
1361
1385
  }
1362
1386
  }
1387
+ async trackAddToBasket({ detail }) {
1388
+ const { productRank, productId, campaignTypeId, widgetType } = detail, rest = __rest(detail, ["productRank", "productId", "campaignTypeId", "widgetType"]);
1389
+ let addToBasketEvent;
1390
+ const eventBody = Object.assign({ session_id: this.uiSessionId, rank: productRank, product: productId }, rest);
1391
+ if (this.campaignType === "VCS") {
1392
+ addToBasketEvent = index$2.createAddToBasketVpcEvent(eventBody);
1393
+ }
1394
+ else if (this.campaignType === "VPR") {
1395
+ addToBasketEvent = index$2.createAddToBasketVprEvent(eventBody);
1396
+ }
1397
+ this.trackingApi
1398
+ .trackEvent(addToBasketEvent)
1399
+ .then(this.setTrackingDeactivated);
1400
+ }
1363
1401
  trackWidgetEvent(action) {
1364
1402
  if (this.trackingDeactivated)
1365
1403
  return;
1366
- const _a = this.getBasicEventData(), rest = __rest(_a, ["campaignTypeId"]);
1404
+ const _a = this.getBasicEventData(), rest = __rest(_a, ["campaignTypeId", "widgetType"]);
1367
1405
  let widgetEvent;
1368
1406
  const eventBody = Object.assign({ action, session_id: this.uiSessionId }, rest);
1369
1407
  if (this.campaignType === "VCS") {
@@ -1377,7 +1415,7 @@ const VviinnVprWidget = class {
1377
1415
  getProductTrackEvent(detail, eventType) {
1378
1416
  if (this.trackingDeactivated)
1379
1417
  return null;
1380
- const { productRank, productId, campaignTypeId } = detail, rest = __rest(detail, ["productRank", "productId", "campaignTypeId"]);
1418
+ const { productRank, productId, campaignTypeId, widgetType } = detail, rest = __rest(detail, ["productRank", "productId", "campaignTypeId", "widgetType"]);
1381
1419
  let productEvent;
1382
1420
  const eventBody = Object.assign({ session_id: this.uiSessionId, rank: productRank, product: productId }, rest);
1383
1421
  if (campaignTypeId === "VCS") {
@@ -1430,13 +1468,13 @@ const VviinnVprWidget = class {
1430
1468
  loaded: true,
1431
1469
  empty: this.recommendations.length == 0,
1432
1470
  [this.mode]: true,
1433
- }, "aria-hidden": "false" }, index.h(index.Fragment, null, this.renderExternalCSS(), index.h("style", null, imageSearch_store.state.fallbackStyles), index.h("h2", { part: "recommendations-title" }, this.blockTitle), this.recommendations.length > 0 &&
1471
+ }, "aria-hidden": "false" }, this.addToBasketShow && index.h(customizedSlots.SlotSkeleton, null), index.h(index.Fragment, null, this.renderExternalCSS(), index.h("style", null, imageSearch_store.state.fallbackStyles), index.h("h2", { part: "recommendations-title" }, this.blockTitle), this.recommendations.length > 0 &&
1434
1472
  (this.useCarousel ? this.renderCarousel() : this.renderResults()), this.recommendations.length === 0 && this.hasErrorOnLoad && (index.h("p", { class: "no-result-text" }, this.noResultText.length
1435
1473
  ? this.noResultText
1436
1474
  : i18next.instance.t("noResultText"))))));
1437
1475
  }
1438
1476
  renderRecommendation(recommendation, index$1) {
1439
- return (index.h("vviinn-product-card", { part: "product-part", productId: recommendation.productId, productTitle: recommendation.title, productType: recommendation.productType, deeplink: recommendation.deeplink, image: recommendation.image.thumbnail, brand: recommendation.brand, imageWidth: this.imageWidth, imageRatio: 1, price: recommendation.price.actual, salePrice: recommendation.price.sale, responsive: this.mode === "grid", dimmedBackground: this.useDimmedBackgroundInCard(), campaignTypeId: this.campaignType, index: index$1, widgetElementId: this.id, widgetVersion: _package.version }));
1477
+ return (index.h("vviinn-product-card", { part: "product-part", productId: recommendation.productId, productTitle: recommendation.title, productType: recommendation.productType, deeplink: recommendation.deeplink, image: recommendation.image.thumbnail, brand: recommendation.brand, imageWidth: this.imageWidth, imageRatio: 1, price: recommendation.price.actual, salePrice: recommendation.price.sale, responsive: this.mode === "grid", addToBasketShow: this.addToBasketShow, mode: this.mode, dimmedBackground: this.useDimmedBackgroundInCard(), campaignTypeId: this.campaignType, index: index$1, widgetElementId: this.id, widgetVersion: _package.version }));
1440
1478
  }
1441
1479
  useDimmedBackgroundInCard() {
1442
1480
  return this.mode === "continuity" || !this.useCarousel;
@@ -1445,7 +1483,7 @@ const VviinnVprWidget = class {
1445
1483
  return (index.h("div", { class: "recommendations-grid", part: "recommendations-grid" }, this.recommendations.map((r, i) => this.renderRecommendation(r, i))));
1446
1484
  }
1447
1485
  renderCarousel() {
1448
- 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 }));
1486
+ 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, addToBasketShow: this.addToBasketShow }));
1449
1487
  }
1450
1488
  get el() { return index.getElement(this); }
1451
1489
  static get watchers() { return {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-a4becaff.js');
5
+ const index = require('./index-5619b5ec.js');
6
6
 
7
7
  const vviinnErrorCss = ":host{background:#F4F4F4;border-radius:8px;display:grid;grid-gap:20px;padding:24px;text-align:center}::slotted(svg){display:grid;align-self:center}::slotted(h4){margin:unset;font-weight:600;font-size:18px;line-height:24px}::slotted(span){font-size:14px;line-height:20px}::slotted(button){-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--color-primary, var(--color-primary-system));font-weight:600;font-size:16px;line-height:20px;cursor:pointer}";
8
8
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-a4becaff.js');
6
- const imageSearch_store = require('./imageSearch.store-070ddd94.js');
5
+ const index = require('./index-5619b5ec.js');
6
+ const imageSearch_store = require('./imageSearch.store-dc4e98b3.js');
7
7
 
8
8
  const vviinnPreloaderCss = ":host{--preloader-size:24px;--preloader-width:calc(var(--preloader-size) / 6);transform-origin:center;animation:rotate 3s linear infinite;border:var(--preloader-width) solid white;border-radius:50%;border-top-color:transparent;display:none;outline:0;width:var(--preloader-size);height:var(--preloader-size);box-sizing:border-box}:host(.active){display:flex}@keyframes rotate{from{transform:rotate(-360deg)}to{transform:rotate(360deg)}}";
9
9
 
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-a4becaff.js');
6
- const index$1 = require('./index-6cfe5293.js');
5
+ const index = require('./index-5619b5ec.js');
6
+ const index$1 = require('./index-fcf59d51.js');
7
7
 
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}}";
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}:host [slot]{visibility:hidden;position:absolute}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}}";
9
9
 
10
10
  const RecommendationsSidebar = class {
11
11
  constructor(hostRef) {
@@ -29,6 +29,8 @@ const RecommendationsSidebar = class {
29
29
  this.gridArrowsDynamic = undefined;
30
30
  this.excluded = undefined;
31
31
  this.productDetailNewTab = undefined;
32
+ this.addToBasketShow = false;
33
+ this.buttonChildren = undefined;
32
34
  this.apiPath = "https://api.vviinn.com";
33
35
  this.buttonElementId = undefined;
34
36
  this.widgetVersion = undefined;
@@ -59,8 +61,17 @@ const RecommendationsSidebar = class {
59
61
  var _a;
60
62
  return (_a = this.el.shadowRoot.querySelector("aside")) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
61
63
  }
64
+ componentDidLoad() {
65
+ const widgetElement = this.el.shadowRoot.querySelector("vviinn-vpr-widget");
66
+ Array.from(this.buttonChildren).forEach((child) => {
67
+ const childClone = child.cloneNode(true);
68
+ if (child.hasAttribute("slot")) {
69
+ widgetElement.appendChild(childClone);
70
+ }
71
+ });
72
+ }
62
73
  render() {
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" })))));
74
+ 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", addToBasketShow: this.addToBasketShow })))));
64
75
  }
65
76
  renderSourceImage() {
66
77
  return (index.h("img", { class: "source-image", part: "source-image", src: this.sourceImage }));
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-a4becaff.js');
6
- const _package = require('./package-83bca9cc.js');
7
- const index$1 = require('./index-6cfe5293.js');
5
+ const index = require('./index-5619b5ec.js');
6
+ const _package = require('./package-2c1dfbe0.js');
7
+ const index$1 = require('./index-fcf59d51.js');
8
8
 
9
9
  const vviinnVprButtonCss = ":host{display:block}";
10
10
 
@@ -20,6 +20,7 @@ const VviinnVprButton = class {
20
20
  this.vviinnResultLoad = index.createEvent(this, "vviinnResultLoad", 7);
21
21
  this.vviinnResultView = index.createEvent(this, "vviinnResultView", 7);
22
22
  this.vviinnNoResult = index.createEvent(this, "vviinnNoResult", 7);
23
+ this.vviinnAddToBasket = index.createEvent(this, "vviinnAddToBasket", 7);
23
24
  this.sidebar = null;
24
25
  this.sidebarCloseListener = () => {
25
26
  document.body.removeChild(this.sidebar);
@@ -43,6 +44,7 @@ const VviinnVprButton = class {
43
44
  this.gridArrowsDynamic = false;
44
45
  this.excluded = "";
45
46
  this.productDetailNewTab = false;
47
+ this.addToBasketShow = false;
46
48
  this.apiPath = "https://api.vviinn.com";
47
49
  }
48
50
  render() {
@@ -74,6 +76,8 @@ const VviinnVprButton = class {
74
76
  sidebar.widgetVersion = _package.version;
75
77
  sidebar.showingInButton = true;
76
78
  sidebar.excluded = this.excluded;
79
+ sidebar.addToBasketShow = this.addToBasketShow;
80
+ sidebar.buttonChildren = this.el.children;
77
81
  this.sidebar = sidebar;
78
82
  sidebar.addEventListener("vviinnWidgetClose", this.sidebarCloseListener);
79
83
  document.body.append(this.sidebar);
@@ -2,11 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-a4becaff.js');
6
- const _package = require('./package-83bca9cc.js');
7
- const index$1 = require('./index-6cfe5293.js');
8
- const customizedSlots = require('./customized-slots-aee3f39d.js');
9
- const Campaign = require('./Campaign-778b5b2c.js');
5
+ const index = require('./index-5619b5ec.js');
6
+ const _package = require('./package-2c1dfbe0.js');
7
+ const index$1 = require('./index-fcf59d51.js');
8
+ const customizedSlots = require('./customized-slots-0a8d663c.js');
10
9
 
11
10
  const vviinnVpsButtonCss = ":host{display:block}";
12
11
 
@@ -31,7 +30,7 @@ const VviinnVpsButton = class {
31
30
  return {
32
31
  widgetType: "VPS",
33
32
  campaignTypeId: "VPS",
34
- campaignTypeName: Campaign.campaignTypeNames["VPS"],
33
+ campaignTypeName: customizedSlots.campaignTypeNames["VPS"],
35
34
  widgetId: this.el.id,
36
35
  widgetVersion: _package.version,
37
36
  };