vviinn-widgets 2.55.7 → 2.57.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 (83) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/{package-5a367e60.js → package-741eaeb0.js} +1 -1
  3. package/dist/cjs/search-filters_17.cjs.entry.js +2 -2
  4. package/dist/cjs/{vviinn-carousel_4.cjs.entry.js → vviinn-carousel_5.cjs.entry.js} +196 -19
  5. package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js +2 -1
  6. package/dist/cjs/vviinn-vpr-button.cjs.entry.js +3 -1
  7. package/dist/cjs/vviinn-vps-button.cjs.entry.js +1 -1
  8. package/dist/cjs/vviinn-vps-widget.cjs.entry.js +2 -2
  9. package/dist/cjs/vviinn-widgets.cjs.js +1 -1
  10. package/dist/collection/collection-manifest.json +1 -0
  11. package/dist/collection/components/vviinn-carousel/constants.js +0 -3
  12. package/dist/collection/components/vviinn-carousel/vviinn-carousel.js +29 -5
  13. package/dist/collection/components/vviinn-filters/helpers/getFilterOptions.js +7 -0
  14. package/dist/collection/components/vviinn-filters/helpers/index.js +1 -0
  15. package/dist/collection/components/vviinn-filters/vviinn-filters.css +296 -0
  16. package/dist/collection/components/vviinn-filters/vviinn-filters.js +221 -0
  17. package/dist/collection/components/vviinn-icons/icons/FiltersIcon.js +2 -0
  18. package/dist/collection/components/vviinn-icons/icons/NewCloseIcon.js +2 -0
  19. package/dist/collection/components/vviinn-icons/index.js +2 -0
  20. package/dist/collection/components/vviinn-image-view/vviinn-detected-object/vviinn-detected-object.css +23 -3
  21. package/dist/collection/components/vviinn-product-card/vviinn-product-card.css +18 -5
  22. package/dist/collection/components/vviinn-product-card/vviinn-product-card.js +15 -7
  23. package/dist/collection/components/vviinn-slider/vviinn-slider.css +23 -3
  24. package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js +20 -1
  25. package/dist/collection/components/vviinn-vpr-button/stories/vviinn-vpr-button.stories.js +2 -0
  26. package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js +20 -0
  27. package/dist/collection/components/vviinn-vpr-widget/stories/vviinn-vpr-widget.stories.js +6 -0
  28. package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-widget.js +87 -5
  29. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.css +23 -3
  30. package/dist/collection/recommendation/index.js +2 -2
  31. package/dist/esm/loader.js +1 -1
  32. package/dist/esm/{package-4f93de66.js → package-bcb2838f.js} +1 -1
  33. package/dist/esm/search-filters_17.entry.js +2 -2
  34. package/dist/esm/{vviinn-carousel_4.entry.js → vviinn-carousel_5.entry.js} +196 -20
  35. package/dist/esm/vviinn-recommendations-sidebar.entry.js +2 -1
  36. package/dist/esm/vviinn-vpr-button.entry.js +3 -1
  37. package/dist/esm/vviinn-vps-button.entry.js +1 -1
  38. package/dist/esm/vviinn-vps-widget.entry.js +2 -2
  39. package/dist/esm/vviinn-widgets.js +1 -1
  40. package/dist/types/campaign/VPRCampaignService.d.ts +4 -0
  41. package/dist/types/components/vviinn-carousel/constants.d.ts +0 -3
  42. package/dist/types/components/vviinn-carousel/vviinn-carousel.d.ts +4 -1
  43. package/dist/types/components/vviinn-filters/helpers/getFilterOptions.d.ts +20 -0
  44. package/dist/types/components/vviinn-filters/helpers/index.d.ts +1 -0
  45. package/dist/types/components/vviinn-filters/vviinn-filters.d.ts +31 -0
  46. package/dist/types/components/vviinn-icons/icons/FiltersIcon.d.ts +1 -0
  47. package/dist/types/components/vviinn-icons/icons/NewCloseIcon.d.ts +1 -0
  48. package/dist/types/components/vviinn-icons/index.d.ts +2 -0
  49. package/dist/types/components/vviinn-product-card/vviinn-product-card.d.ts +3 -1
  50. package/dist/types/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.d.ts +1 -0
  51. package/dist/types/components/vviinn-vpr-button/vviinn-vpr-button.d.ts +2 -0
  52. package/dist/types/components/vviinn-vpr-widget/vviinn-vpr-widget.d.ts +12 -0
  53. package/dist/types/components.d.ts +72 -2
  54. package/dist/types/interfaces/recommendation.d.ts +4 -0
  55. package/dist/types/recommendation/index.d.ts +3 -1
  56. package/dist/vviinn-widgets/p-48fb97ea.js +1 -0
  57. package/dist/vviinn-widgets/p-60474b5f.entry.js +1 -0
  58. package/dist/vviinn-widgets/{p-ca8d1e96.entry.js → p-7dcb27f2.entry.js} +1 -1
  59. package/dist/vviinn-widgets/p-7e72a6f9.entry.js +1 -0
  60. package/dist/vviinn-widgets/p-928bdf4f.entry.js +1 -0
  61. package/dist/vviinn-widgets/{p-c7bdec1a.entry.js → p-cc1b9651.entry.js} +1 -1
  62. package/dist/vviinn-widgets/{p-583431e6.entry.js → p-f6ae8745.entry.js} +2 -2
  63. package/dist/vviinn-widgets/vviinn-widgets.css +1 -1
  64. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  65. package/package.json +1 -1
  66. package/www/build/p-48fb97ea.js +1 -0
  67. package/www/build/p-60474b5f.entry.js +1 -0
  68. package/www/build/{p-ca8d1e96.entry.js → p-7dcb27f2.entry.js} +1 -1
  69. package/www/build/p-7e72a6f9.entry.js +1 -0
  70. package/www/build/p-928bdf4f.entry.js +1 -0
  71. package/www/build/{p-c7bdec1a.entry.js → p-cc1b9651.entry.js} +1 -1
  72. package/www/build/{p-583431e6.entry.js → p-f6ae8745.entry.js} +2 -2
  73. package/www/build/vviinn-widgets.css +1 -1
  74. package/www/build/vviinn-widgets.esm.js +1 -1
  75. package/www/favicon.ico +0 -0
  76. package/dist/vviinn-widgets/p-62610e78.entry.js +0 -1
  77. package/dist/vviinn-widgets/p-a10c25f7.entry.js +0 -1
  78. package/dist/vviinn-widgets/p-b09ad131.js +0 -1
  79. package/dist/vviinn-widgets/p-eb2e026b.entry.js +0 -1
  80. package/www/build/p-62610e78.entry.js +0 -1
  81. package/www/build/p-a10c25f7.entry.js +0 -1
  82. package/www/build/p-b09ad131.js +0 -1
  83. package/www/build/p-eb2e026b.entry.js +0 -1
@@ -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-preloader.cjs",[[1,"vviinn-preloader"]]],["vviinn-error.cjs",[[1,"vviinn-error"]]],["vviinn-carousel_4.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"],"updateButtonLocation":[1,"update-button-location"],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"closed":[4],"opened":[4],"recommendations":[32],"sourceProduct":[32],"trackingDeactivated":[32],"hasErrorOnLoad":[32],"updatingAllCards":[32],"updatedCardsAmount":[32]},[[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnAuxClick","trackAuxClick"],[0,"vviinnAddToBasket","trackAddToBasket"],[0,"vviinnUpdatingAllCardsFinished","updatingAllCardsFinishedListener"]]],[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":[1040],"widgetVersion":[1,"widget-version"],"addToBasketShow":[4,"add-to-basket-show"],"updatingAllCards":[4,"updating-all-cards"],"updateButtonLocation":[1,"update-button-location"],"replaceSlotsContent":[16],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"locale":[1],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32],"isRTL":[32],"crossSellingRecommendations":[32],"setModeDiscount":[32],"setModeAppliedDiscounts":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"],[0,"vviinnAddToBasket","trackAddToBasket"]]],[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"],"updateButtonLocation":[1,"update-button-location"],"appliedDiscountPercentage":[2,"applied-discount-percentage"],"currentDiscountPercentage":[2,"current-discount-percentage"],"isSourceProduct":[4,"is-source-product"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"index":[2],"updatingAllCards":[4,"updating-all-cards"],"defaultAnimationInterval":[2,"default-animation-interval"],"isTransitioning":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"]]],[1,"vviinn-skeleton",{"height":[2],"halfWidth":[4,"half-width"]}]]],["search-filters_17.cjs",[[1,"vviinn-image-view",{"basicEventData":[16],"setShowAspectRatioError":[16],"showAspectRatioError":[4,"show-aspect-ratio-error"],"cropper":[32],"hidePreloader":[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"],"isFirstScreen":[4,"is-first-screen"]}],[1,"vviinn-empty-results",{"handler":[16]}],[1,"vviinn-image-selector",{"basicEventData":[16],"startUpload":[4,"start-upload"],"loading":[4],"accept":[1],"resetVpsButton":[16],"capture":[1]}],[1,"vviinn-server-error",{"handler":[16]}],[1,"vviinn-text-search",{"searchQuery":[1,"search-query"],"setSearchQuery":[16],"handleTextSearch":[16]}],[1,"vviinn-wrong-aspect-ratio",{"handler":[16]}],[1,"vviinn-wrong-format",{"handler":[16]}],[1,"search-filters",{"filter":[16],"textSearchFiltersGroup":[16],"basicEventData":[16],"selectedFilter":[32],"hideFilters":[32]}],[1,"vviinn-example-image",{"exampleImageSource":[1,"example-image-source"],"width":[2],"height":[2],"basicEventData":[16],"srcObject":[16],"cameraButtonClicked":[4,"camera-button-clicked"],"selected":[32],"videoInitialized":[32],"zoomCapabilities":[32]}],[1,"vviinn-privacy-badge",{"privacyBadgeText":[1,"privacy-badge-text"]}],[1,"vviinn-slide"],[1,"vviinn-slider",{"showBullets":[4,"show-bullets"],"position":[514],"showArrows":[4,"show-arrows"],"elementsCount":[32],"internalPosition":[32],"swipeStartPosition":[32],"isRTL":[32]}],[1,"vviinn-teaser"],[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"],"isFirstScreen":[4,"is-first-screen"],"slider":[32]}],[1,"vviinn-overlay"]]],["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"],"exampleImageSource":[1,"example-image-source"],"textSearchShow":[4,"text-search-show"],"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],"stream":[32],"cameraInitializing":[32],"cameraEnabled":[32],"cameraButtonClicked":[32],"uploadSource":[32],"showAspectRatioError":[32],"products":[32],"searchQuery":[32]},[[0,"vviinnCameraEnabled","trackCameraEnabled"],[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnAuxClick","trackAuxClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"],[0,"vviinnTextSearchFilterSelected","trackTextSearchFilterSelected"]]]]],["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"],"exampleImageSource":[1,"example-image-source"],"textSearchShow":[4,"text-search-show"],"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);
17
+ return index.bootstrapLazy([["vviinn-button.cjs",[[1,"vviinn-button",{"addStyle":[4,"add-style"]}]]],["vviinn-preloader.cjs",[[1,"vviinn-preloader"]]],["vviinn-error.cjs",[[1,"vviinn-error"]]],["vviinn-carousel_5.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"],"updateButtonLocation":[1,"update-button-location"],"showFilters":[4,"show-filters"],"setModeDiscounts":[1,"set-mode-discounts"],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"closed":[4],"opened":[4],"recommendations":[32],"dynamicFilters":[32],"sourceProduct":[32],"trackingDeactivated":[32],"hasErrorOnLoad":[32],"updatingAllCards":[32],"updatedCardsAmount":[32],"setModeDiscountsArray":[32]},[[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnAuxClick","trackAuxClick"],[0,"vviinnAddToBasket","trackAddToBasket"],[0,"vviinnUpdatingAllCardsFinished","updatingAllCardsFinishedListener"],[0,"vviinnFiltersChanged","filtersChanged"]]],[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":[1040],"widgetVersion":[1,"widget-version"],"addToBasketShow":[4,"add-to-basket-show"],"updatingAllCards":[4,"updating-all-cards"],"updateButtonLocation":[1,"update-button-location"],"replaceSlotsContent":[16],"setModeDiscountsArray":[16],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"locale":[1],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32],"isRTL":[32],"crossSellingRecommendations":[32],"setModeDiscount":[32],"currentDiscountIndex":[32],"setModeAppliedDiscounts":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"],[0,"vviinnAddToBasket","trackAddToBasket"]]],[1,"vviinn-filters",{"filters":[16],"widgetElementId":[1,"widget-element-id"],"selectedFilter":[32],"requestFilters":[32],"requestFiltersMore":[32],"showMore":[32],"selectedMoreOptions":[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],"basketButtonShow":[4,"basket-button-show"],"updateButtonLocation":[1,"update-button-location"],"appliedDiscountPercentage":[2,"applied-discount-percentage"],"currentDiscountPercentage":[2,"current-discount-percentage"],"isSourceProduct":[4,"is-source-product"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"index":[2],"updatingAllCards":[4,"updating-all-cards"],"defaultAnimationInterval":[2,"default-animation-interval"],"isTransitioning":[32],"basketButonPressed":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"]]],[1,"vviinn-skeleton",{"height":[2],"halfWidth":[4,"half-width"]}]]],["search-filters_17.cjs",[[1,"vviinn-image-view",{"basicEventData":[16],"setShowAspectRatioError":[16],"showAspectRatioError":[4,"show-aspect-ratio-error"],"cropper":[32],"hidePreloader":[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"],"isFirstScreen":[4,"is-first-screen"]}],[1,"vviinn-empty-results",{"handler":[16]}],[1,"vviinn-image-selector",{"basicEventData":[16],"startUpload":[4,"start-upload"],"loading":[4],"accept":[1],"resetVpsButton":[16],"capture":[1]}],[1,"vviinn-server-error",{"handler":[16]}],[1,"vviinn-text-search",{"searchQuery":[1,"search-query"],"setSearchQuery":[16],"handleTextSearch":[16]}],[1,"vviinn-wrong-aspect-ratio",{"handler":[16]}],[1,"vviinn-wrong-format",{"handler":[16]}],[1,"search-filters",{"filter":[16],"textSearchFiltersGroup":[16],"basicEventData":[16],"selectedFilter":[32],"hideFilters":[32]}],[1,"vviinn-example-image",{"exampleImageSource":[1,"example-image-source"],"width":[2],"height":[2],"basicEventData":[16],"srcObject":[16],"cameraButtonClicked":[4,"camera-button-clicked"],"selected":[32],"videoInitialized":[32],"zoomCapabilities":[32]}],[1,"vviinn-privacy-badge",{"privacyBadgeText":[1,"privacy-badge-text"]}],[1,"vviinn-slide"],[1,"vviinn-slider",{"showBullets":[4,"show-bullets"],"position":[514],"showArrows":[4,"show-arrows"],"elementsCount":[32],"internalPosition":[32],"swipeStartPosition":[32],"isRTL":[32]}],[1,"vviinn-teaser"],[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"],"isFirstScreen":[4,"is-first-screen"],"slider":[32]}],[1,"vviinn-overlay"]]],["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"],"exampleImageSource":[1,"example-image-source"],"textSearchShow":[4,"text-search-show"],"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],"stream":[32],"cameraInitializing":[32],"cameraEnabled":[32],"cameraButtonClicked":[32],"uploadSource":[32],"showAspectRatioError":[32],"products":[32],"searchQuery":[32]},[[0,"vviinnCameraEnabled","trackCameraEnabled"],[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnAuxClick","trackAuxClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"],[0,"vviinnTextSearchFilterSelected","trackTextSearchFilterSelected"]]]]],["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"],"exampleImageSource":[1,"example-image-source"],"textSearchShow":[4,"text-search-show"],"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"],"showFilters":[4,"show-filters"],"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"],"showFilters":[4,"show-filters"],"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.55.7";
3
+ const version = "2.57.0";
4
4
 
5
5
  exports.version = version;
@@ -230,7 +230,7 @@ const SearchFilters = class {
230
230
  };
231
231
  SearchFilters.style = searchFiltersCss;
232
232
 
233
- const vviinnDetectedObjectCss = ":host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}:host{display:block;position:absolute;left:calc(var(--x-position));top:calc(var(--y-position));z-index:2}:host::before,:host::after{content:\"\";cursor:pointer;position:absolute;height:var(--size);width:var(--size);left:calc(-1 * var(--size) / 2);top:calc(-1 * var(--size) / 2)}:host::before{--size:36px;border-radius:50%;z-index:0;background:rgba(0, 0, 0, 0.16);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform 0.07s ease-in-out}:host::after{--size:13px;border-radius:50%;z-index:1;background:white;box-shadow:0px 2px 2px 0px rgba(0, 0, 0, 0.15);transition:transform 0.07s ease-in-out}:host(.active)::before{transform:scale(0.88);background:rgba(0, 0, 0, 0.4)}:host(.active)::after{transform:scale(0.67)}@media (min-width: 768px){:host(:not(.active):hover)::before{transform:scale(1.08);background:rgba(0, 0, 0, 0.32)}}";
233
+ const vviinnDetectedObjectCss = ":host{--color-primary-system:#0f62fe;--color-primary-hover-system:#014cda;--color-icons-system:#2f8edf;--spacer:8px;--surface-color-surface-01:#f4f4f4;--text-color-text-primary:#161616;--font-family:Inter, system-ui, sans-serif;--font-size-body:14px;--font-weight-regular:400;--line-height-body:20px;--letter-spacing-default:0px;--background-color-background:#fff;--border-color-border-01:#f4f4f4;--gray-100:#161616;--gray-10:#f4f4f4;--gray-70:#525252;--radius-radius-md:8px;--button-color-button-primary:#000;--text-color-text-inverse:#fff;--text-color-text-secondary:#525252;--button-color-button-disabled:#e0e0e0;--text-color-text-disabled:rgba(22, 22, 22, 0.25)}:host{display:block;position:absolute;left:calc(var(--x-position));top:calc(var(--y-position));z-index:2}:host::before,:host::after{content:\"\";cursor:pointer;position:absolute;height:var(--size);width:var(--size);left:calc(-1 * var(--size) / 2);top:calc(-1 * var(--size) / 2)}:host::before{--size:36px;border-radius:50%;z-index:0;background:rgba(0, 0, 0, 0.16);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform 0.07s ease-in-out}:host::after{--size:13px;border-radius:50%;z-index:1;background:white;box-shadow:0px 2px 2px 0px rgba(0, 0, 0, 0.15);transition:transform 0.07s ease-in-out}:host(.active)::before{transform:scale(0.88);background:rgba(0, 0, 0, 0.4)}:host(.active)::after{transform:scale(0.67)}@media (min-width: 768px){:host(:not(.active):hover)::before{transform:scale(1.08);background:rgba(0, 0, 0, 0.32)}}";
234
234
 
235
235
  const VviinnDetectedObject = class {
236
236
  constructor(hostRef) {
@@ -3999,7 +3999,7 @@ const getStyleMap = (data) => {
3999
3999
  const Arrow = ({ kind, tabindex, disabled, onClick, onKeyDown, }) => (index.h("div", { class: getStyleMap({ kind, disabled }), onClick: onClick, tabindex: tabindex, onKeyDown: onKeyDown },
4000
4000
  index.h(ArrowIcon, null)));
4001
4001
 
4002
- const vviinnSliderCss = ":host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}:host{--num-items:0;--position:0;display:grid;grid-gap:20px;justify-items:center;position:relative}.items-wrapper{overflow:hidden;width:100%}.items{box-sizing:border-box;display:grid;grid-auto-flow:column;grid-template-columns:repeat(var(--num-items), 100%);transform:translateX(calc(-100% * var(--position)));transition:transform 0.33s ease-in-out}.controls{display:grid;grid-gap:16px;grid-template-columns:repeat(var(--num-items), min-content)}.bullet{background:#e0e0e0;border-radius:50%;box-sizing:border-box;cursor:pointer;height:8px;width:8px;transition:background 0.1s ease-in-out}.bullet:hover{background:#c6c6c6}.bullet.active{background:var(--color-primary, var(--color-primary-system))}.bullet:active{background:transparent;border:2px solid var(--color-primary, var(--color-primary-system))}.arrow-wrapper{align-items:center;cursor:pointer;background:white;border:2px solid white;bottom:0;box-sizing:border-box;display:grid;height:calc(var(--spacer) * 6);justify-items:center;margin:auto;position:absolute;top:0;transform:translate3d(0, -50%, 0);transition:border 0.25ms ease-in-out;width:calc(var(--spacer) * 4)}.arrow-wrapper:active{border-color:var(--color-primary, var(--color-primary-system));opacity:0.75}.arrow-wrapper:focus{border-color:var(--color-primary, var(--color-primary-system));opacity:0.5;outline:none}.prev{left:0}.next{right:0}.next>svg{transform:rotate3d(0, 1, 0, 180deg)}.arrow-wrapper>svg{transition:fill 0.25ms ease-in-out;fill:#a8a8a8}.arrow-wrapper:hover>svg{fill:#8d8d8d}";
4002
+ const vviinnSliderCss = ":host{--color-primary-system:#0f62fe;--color-primary-hover-system:#014cda;--color-icons-system:#2f8edf;--spacer:8px;--surface-color-surface-01:#f4f4f4;--text-color-text-primary:#161616;--font-family:Inter, system-ui, sans-serif;--font-size-body:14px;--font-weight-regular:400;--line-height-body:20px;--letter-spacing-default:0px;--background-color-background:#fff;--border-color-border-01:#f4f4f4;--gray-100:#161616;--gray-10:#f4f4f4;--gray-70:#525252;--radius-radius-md:8px;--button-color-button-primary:#000;--text-color-text-inverse:#fff;--text-color-text-secondary:#525252;--button-color-button-disabled:#e0e0e0;--text-color-text-disabled:rgba(22, 22, 22, 0.25)}:host{--num-items:0;--position:0;display:grid;grid-gap:20px;justify-items:center;position:relative}.items-wrapper{overflow:hidden;width:100%}.items{box-sizing:border-box;display:grid;grid-auto-flow:column;grid-template-columns:repeat(var(--num-items), 100%);transform:translateX(calc(-100% * var(--position)));transition:transform 0.33s ease-in-out}.controls{display:grid;grid-gap:16px;grid-template-columns:repeat(var(--num-items), min-content)}.bullet{background:#e0e0e0;border-radius:50%;box-sizing:border-box;cursor:pointer;height:8px;width:8px;transition:background 0.1s ease-in-out}.bullet:hover{background:#c6c6c6}.bullet.active{background:var(--color-primary, var(--color-primary-system))}.bullet:active{background:transparent;border:2px solid var(--color-primary, var(--color-primary-system))}.arrow-wrapper{align-items:center;cursor:pointer;background:white;border:2px solid white;bottom:0;box-sizing:border-box;display:grid;height:calc(var(--spacer) * 6);justify-items:center;margin:auto;position:absolute;top:0;transform:translate3d(0, -50%, 0);transition:border 0.25ms ease-in-out;width:calc(var(--spacer) * 4)}.arrow-wrapper:active{border-color:var(--color-primary, var(--color-primary-system));opacity:0.75}.arrow-wrapper:focus{border-color:var(--color-primary, var(--color-primary-system));opacity:0.5;outline:none}.prev{left:0}.next{right:0}.next>svg{transform:rotate3d(0, 1, 0, 180deg)}.arrow-wrapper>svg{transition:fill 0.25ms ease-in-out;fill:#a8a8a8}.arrow-wrapper:hover>svg{fill:#8d8d8d}";
4003
4003
 
4004
4004
  const VviinnSlider = class {
4005
4005
  constructor(hostRef) {
@@ -7,7 +7,7 @@ const search_store = require('./search.store-d6fff13b.js');
7
7
  const customizedSlots = require('./customized-slots-8e27cac8.js');
8
8
  const i18next = require('./i18next-74ff3413.js');
9
9
  const PlusIcon = require('./PlusIcon-835a5dcc.js');
10
- const _package = require('./package-5a367e60.js');
10
+ const _package = require('./package-741eaeb0.js');
11
11
  const resources = require('./resources-1a173128.js');
12
12
 
13
13
  const BasketIcon = () => (index.h("svg", { width: "25", height: "24", viewBox: "0 0 25 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
@@ -23,14 +23,21 @@ const UpdateIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg",
23
23
  index.h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M23.5998 4.57C20.3898 4.19 19.8798 3.68 19.4198 0.37C19.3798 0.15 19.2198 0 19.0098 0C18.7998 0 18.6298 0.15 18.5898 0.37C18.1198 3.66 17.6298 4.13 14.4098 4.57C14.1698 4.61 14.0098 4.77 14.0098 5C14.0098 5.23 14.1698 5.39 14.4098 5.42C17.6298 5.81 18.1398 6.31 18.5898 9.62C18.6298 9.84 18.7998 10 19.0098 10C19.2198 10 19.3898 9.84 19.4198 9.62C19.8898 6.31 20.3898 5.81 23.5998 5.42C23.8398 5.38 23.9998 5.22 23.9998 5C23.9998 4.78 23.8298 4.6 23.5998 4.57Z", fill: "currentColor" }),
24
24
  index.h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M19.93 13C19.43 13 19.01 13.37 18.95 13.86C18.52 17.36 15.51 20.06 11.89 20C8.24 19.94 5.15 16.92 5.01 13.27C4.92 10.79 6.13 8.58 8.01 7.27V11C8.01 11.55 8.46 12 9.01 12C9.56 12 10.01 11.55 10.01 11V5C10.01 4.45 9.56 4 9.01 4H3C2.45 4 2 4.45 2 5C2 5.55 2.45 6 3 6H6.35C4.24 7.71 2.91 10.35 3 13.3C3.15 17.98 7.06 21.87 11.74 22C16.45 22.13 20.37 18.65 20.93 14.13C21 13.53 20.53 13.01 19.93 13.01V13Z", fill: "currentColor" })));
25
25
 
26
+ const FiltersIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
27
+ index.h("path", { d: "M3.66522 19.275C3.40867 19.275 3.19362 19.1862 3.02007 19.0086C2.84653 18.8311 2.75977 18.6142 2.75977 18.358C2.75977 18.1017 2.84653 17.8863 3.02007 17.7118C3.19362 17.5372 3.40867 17.45 3.66522 17.45H8.34022C8.59322 17.45 8.80972 17.5378 8.98974 17.7135C9.16976 17.8892 9.25977 18.107 9.25977 18.3667C9.25977 18.6229 9.16976 18.8384 8.98974 19.013C8.80972 19.1877 8.59322 19.275 8.34022 19.275H3.66522ZM3.66522 6.54995C3.40867 6.54995 3.19362 6.46209 3.02007 6.28638C2.84653 6.11066 2.75977 5.89293 2.75977 5.63318C2.75977 5.37696 2.84653 5.16154 3.02007 4.9869C3.19362 4.81225 3.40867 4.72493 3.66522 4.72493H12.4902C12.7432 4.72493 12.9597 4.81371 13.1397 4.99128C13.3198 5.16884 13.4098 5.38573 13.4098 5.64195C13.4098 5.89817 13.3198 6.11356 13.1397 6.28813C12.9597 6.46268 12.7432 6.54995 12.4902 6.54995H3.66522ZM11.5084 21.325C11.2549 21.325 11.0386 21.2366 10.8592 21.0599C10.6799 20.8832 10.5902 20.665 10.5902 20.4054V16.2804C10.5902 16.0239 10.6804 15.8088 10.8606 15.6353C11.0409 15.4617 11.2578 15.375 11.5112 15.375C11.7646 15.375 11.9786 15.4617 12.1533 15.6353C12.3279 15.8088 12.4152 16.0239 12.4152 16.2804V17.45H20.3348C20.5913 17.45 20.8064 17.5378 20.9799 17.7135C21.1535 17.8892 21.2402 18.107 21.2402 18.3667C21.2402 18.6229 21.1535 18.8384 20.9799 19.013C20.8064 19.1877 20.5913 19.275 20.3348 19.275H12.4152V20.4054C12.4152 20.665 12.3283 20.8832 12.1545 21.0599C11.9807 21.2366 11.7653 21.325 11.5084 21.325ZM8.33879 14.9554C8.08539 14.9554 7.87137 14.8686 7.69672 14.6951C7.52208 14.5215 7.43477 14.3065 7.43477 14.05V12.9054H3.66522C3.40867 12.9054 3.19362 12.8185 3.02007 12.6447C2.84653 12.4709 2.75977 12.2555 2.75977 11.9986C2.75977 11.7416 2.84653 11.5267 3.02007 11.3538C3.19362 11.1809 3.40867 11.0945 3.66522 11.0945H7.43477V9.89995C7.43477 9.6434 7.52167 9.42836 7.69549 9.25483C7.86929 9.08128 8.08467 8.9945 8.34162 8.9945C8.59503 8.9945 8.81141 9.08128 8.99074 9.25483C9.17009 9.42836 9.25977 9.6434 9.25977 9.89995V14.05C9.25977 14.3065 9.16962 14.5215 8.98934 14.6951C8.80906 14.8686 8.59221 14.9554 8.33879 14.9554ZM11.5098 12.9054C11.2568 12.9054 11.0403 12.8185 10.8602 12.6447C10.6802 12.4709 10.5902 12.2555 10.5902 11.9986C10.5902 11.7416 10.6802 11.5267 10.8602 11.3538C11.0403 11.1809 11.2568 11.0945 11.5098 11.0945H20.3348C20.5913 11.0945 20.8064 11.1814 20.9799 11.3552C21.1535 11.529 21.2402 11.7444 21.2402 12.0014C21.2402 12.2583 21.1535 12.4732 20.9799 12.6461C20.8064 12.819 20.5913 12.9054 20.3348 12.9054H11.5098ZM15.6584 8.62495C15.405 8.62495 15.1886 8.53818 15.0092 8.36463C14.8299 8.19109 14.7402 7.97605 14.7402 7.7195V3.5945C14.7402 3.3349 14.8304 3.11674 15.0106 2.94003C15.1909 2.76329 15.4078 2.67493 15.6612 2.67493C15.9146 2.67493 16.1286 2.76329 16.3033 2.94003C16.4779 3.11674 16.5652 3.3349 16.5652 3.5945V4.72493H20.3348C20.5913 4.72493 20.8064 4.81371 20.9799 4.99128C21.1535 5.16884 21.2402 5.38573 21.2402 5.64195C21.2402 5.89817 21.1535 6.11356 20.9799 6.28813C20.8064 6.46268 20.5913 6.54995 20.3348 6.54995H16.5652V7.7195C16.5652 7.97605 16.4783 8.19109 16.3045 8.36463C16.1307 8.53818 15.9153 8.62495 15.6584 8.62495Z", fill: "#525252" })));
28
+
29
+ const NewCloseIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "32", height: "32", viewBox: "0 0 32 32", fill: "none" },
30
+ index.h("g", { "clip-path": "url(#clip0_1696_811)" },
31
+ index.h("path", { d: "M24 9.4L22.6 8L16 14.6L9.4 8L8 9.4L14.6 16L8 22.6L9.4 24L16 17.4L22.6 24L24 22.6L17.4 16L24 9.4Z", fill: "#C6C6C6" })),
32
+ index.h("defs", null,
33
+ index.h("clipPath", { id: "clip0_1696_811" },
34
+ index.h("rect", { width: "32", height: "32", fill: "white" })))));
35
+
26
36
  const COLUMNS_NUMBER_CSS_VAR = "--vviinn-carousel-columns-internal";
27
37
  const CAROUSEL_WIDTH_CSS_VAR = "--vviinn-carousel-content-width";
28
38
  const CAROUSEL_IMAGE_WIDTH_CSS_VAR = "--vviinn-carousel-image-width";
29
39
  const SET_MODE_IMAGE_WIDTH = "--vviinn-set-mode-image-width";
30
40
  const CONTENT_GROUP_CSS_CLASS = "items-group";
31
- const SET_MODE_INITIAL_DISCOUNT = 5;
32
- const SET_MODE_MAX_DISCOUNT = 15;
33
- const SET_MODE_DISCOUNT_STEP = 5;
34
41
 
35
42
  const numberUnderDivisionSemigroup = {
36
43
  concat: (x, y) => x / y,
@@ -129,6 +136,7 @@ const VviinnCarousel = class {
129
136
  this.columns = 0;
130
137
  this.resizeObserver = new ResizeObserver(() => this.handleResize());
131
138
  this.defaultAnimationInterval = 2000;
139
+ this.setModeMaxDiscount = null;
132
140
  this.mutationObserver = new MutationObserver(() => this.cloneSlottedContent());
133
141
  this.handleWindowResize = () => this.setImageWidthSetMode("100%");
134
142
  this.isLastGroup = () => this.isGridMode &&
@@ -164,7 +172,8 @@ const VviinnCarousel = class {
164
172
  this.activeContentGroup = 0;
165
173
  this.isRTL = false;
166
174
  this.crossSellingRecommendations = [];
167
- this.setModeDiscount = SET_MODE_INITIAL_DISCOUNT;
175
+ this.setModeDiscount = null;
176
+ this.currentDiscountIndex = 0;
168
177
  this.setModeAppliedDiscounts = {};
169
178
  this.mode = "continuity";
170
179
  this.imageWidth = 140;
@@ -178,6 +187,7 @@ const VviinnCarousel = class {
178
187
  this.updatingAllCards = undefined;
179
188
  this.updateButtonLocation = undefined;
180
189
  this.replaceSlotsContent = undefined;
190
+ this.setModeDiscountsArray = undefined;
181
191
  this.currencySign = undefined;
182
192
  this.pricePrefix = "";
183
193
  this.locale = undefined;
@@ -207,6 +217,9 @@ const VviinnCarousel = class {
207
217
  if (this.isSetMode) {
208
218
  window.addEventListener("resize", this.handleWindowResize);
209
219
  this.sourceProduct = search_store.searchState.sourceProduct;
220
+ this.setModeDiscount = this.setModeDiscountsArray[0];
221
+ this.setModeMaxDiscount =
222
+ this.setModeDiscountsArray[this.setModeDiscountsArray.length - 1];
210
223
  }
211
224
  if (this.isSetMode && this.recommendations.length >= columnsNumber) {
212
225
  this.crossSellingRecommendations = this.recommendations.slice(0, columnsNumber);
@@ -255,9 +268,11 @@ const VviinnCarousel = class {
255
268
  if (this.setModeAppliedDiscounts.hasOwnProperty(productId))
256
269
  return;
257
270
  this.setModeAppliedDiscounts = Object.assign(Object.assign({}, this.setModeAppliedDiscounts), { [productId]: this.setModeDiscount });
258
- const isMaxDiscount = this.setModeDiscount === SET_MODE_MAX_DISCOUNT;
271
+ const isMaxDiscount = this.setModeDiscount === this.setModeMaxDiscount;
259
272
  if (!isMaxDiscount) {
260
- this.setModeDiscount += SET_MODE_DISCOUNT_STEP;
273
+ this.currentDiscountIndex += 1;
274
+ this.setModeDiscount =
275
+ this.setModeDiscountsArray[this.currentDiscountIndex];
261
276
  }
262
277
  }
263
278
  setItemWidth() {
@@ -385,7 +400,7 @@ const VviinnCarousel = class {
385
400
  const salePrice = this.isSetMode
386
401
  ? setModeDiscount
387
402
  : recommendation.price.sale;
388
- 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: salePrice, responsive: this.isGridMode, dimmedBackground: this.isContinuityMode || this.isSetMode, campaignTypeId: this.campaignTypeId, index: rank, widgetElementId: this.widgetElementId, widgetVersion: this.widgetVersion, addToBasketShow: this.addToBasketShow, mode: this.mode, "data-id": recommendation.productId, updatingAllCards: this.updatingAllCards, defaultAnimationInterval: this.defaultAnimationInterval, updateButtonLocation: this.updateButtonLocation, appliedDiscountPercentage: appliedDiscount, currentDiscountPercentage: this.setModeDiscount, currency: this.currencySign, pricePrefix: this.pricePrefix, locale: this.locale }));
403
+ 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: salePrice, responsive: this.isGridMode, dimmedBackground: this.isContinuityMode || this.isSetMode, campaignTypeId: this.campaignTypeId, index: rank, widgetElementId: this.widgetElementId, widgetVersion: this.widgetVersion, basketButtonShow: this.addToBasketShow, mode: this.mode, "data-id": recommendation.productId, updatingAllCards: this.updatingAllCards, defaultAnimationInterval: this.defaultAnimationInterval, updateButtonLocation: this.updateButtonLocation, appliedDiscountPercentage: appliedDiscount, currentDiscountPercentage: this.setModeDiscount, currency: this.currencySign, pricePrefix: this.pricePrefix, locale: this.locale }));
389
404
  }
390
405
  renderRecommendationGroup(elements) {
391
406
  return (index.h("div", { class: CONTENT_GROUP_CSS_CLASS, part: "items-group" }, ...elements));
@@ -427,6 +442,143 @@ const VviinnCarousel = class {
427
442
  };
428
443
  VviinnCarousel.style = vviinnCarouselCss;
429
444
 
445
+ const getFilterOptions = (filter) => {
446
+ return filter && "values" in filter
447
+ ? filter.values
448
+ : filter && "suggestions" in filter
449
+ ? filter.suggestions
450
+ : [];
451
+ };
452
+
453
+ const vviinnFiltersCss = ":host{--color-primary-system:#0f62fe;--color-primary-hover-system:#014cda;--color-icons-system:#2f8edf;--spacer:8px;--surface-color-surface-01:#f4f4f4;--text-color-text-primary:#161616;--font-family:Inter, system-ui, sans-serif;--font-size-body:14px;--font-weight-regular:400;--line-height-body:20px;--letter-spacing-default:0px;--background-color-background:#fff;--border-color-border-01:#f4f4f4;--gray-100:#161616;--gray-10:#f4f4f4;--gray-70:#525252;--radius-radius-md:8px;--button-color-button-primary:#000;--text-color-text-inverse:#fff;--text-color-text-secondary:#525252;--button-color-button-disabled:#e0e0e0;--text-color-text-disabled:rgba(22, 22, 22, 0.25)}:host{overflow:hidden}.filters-header,.filters-footer{overflow-x:auto}.filters-header{display:flex;justify-content:space-between;gap:14px}.filters-modal-list,.sub-filters-wrapper,.main-filters-wrapper,.filters-modal-sub-list{list-style:none;margin:0;padding:0}.sub-filters-wrapper,.main-filters-wrapper{display:flex}.main-filters-wrapper{padding:2px;gap:10px;border-radius:8px;background:var(--surface-color-surface-01)}.filters-modal-main-button,.filters-sub-button,.filters-main-button,.filters-modal-close{cursor:pointer;border:none}.filters-sub-button,.filters-main-button{font-family:var(--font-family);font-size:var(--font-size-body);font-style:normal;font-weight:var(--font-weight-regular);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-default);display:flex;justify-content:center;align-items:center;gap:10px;border-radius:6px}.filters-main-button{color:var(--text-color-text-primary);padding:10px 16px;flex:1 0 0;background:var(--surface-color-surface-01)}.filters-main-button:hover{color:var(--text-color-text-secondary)}.filters-main-button.active{background:var(--background-color-background)}.filters-footer{margin:16px 0}.sub-filters-wrapper{gap:12px}.filters-sub-button{color:#000;padding:10px;border:1px solid var(--border-color-border-01);background:var(--background-color-background)}.filters-sub-button:hover{color:var(--text-color-text-secondary)}.filters-sub-button.active{border-color:#000}.filters-more-button{display:flex;padding:10px;align-items:flex-start;gap:10px;border-radius:8px;background:var(--surface-color-surface-01);border:none;cursor:pointer}.filters-modal{display:none;position:fixed;top:0;bottom:0;right:0;left:0;background-color:rgba(0, 0, 0, 0.5);z-index:98}.filters-modal.open{display:block}.filters-modal-wrapper{position:fixed;top:0;bottom:0;right:0;width:420px;background-color:#ffffff;z-index:99;border-radius:32px 0px 0px 32px}@media (max-width: 768px){.filters-modal-wrapper{width:100%;top:20%;border-radius:32px 32px 0px 0px}}.filters-modal-header{position:relative;padding:20px 0;color:var(--gray-100);text-align:center;font-family:var(--font-family);font-size:16px;font-style:normal;font-weight:500;line-height:24px;border-bottom:1px solid var(--gray-10)}.filters-modal-list{margin:4px 24px}.filters-modal-main-button{border-bottom:1px solid var(--gray-10);width:100%;background:none;text-align:left;padding:20px 0;color:var(--gray-70);font-family:var(--font-family);font-size:18px;font-style:normal;font-weight:500;line-height:24px}.filters-modal-sub-list{display:none}.filters-modal-sub-list.open{display:block}.filters-modal-sub-list>li{margin-top:10px}.filters-modal-close{position:absolute;right:0;top:15px;cursor:pointer;background:none}.filters-more-modal-button{background:none;display:block;border:none;cursor:pointer}.filters-more-modal-button.active{color:var(--color-primary-system)}.filters-modal-actions{position:absolute;bottom:0;left:0;right:0;border-top:1px solid var(--gray-10);padding:24px}.filters-modal-apply{color:var(--text-color-text-inverse);text-align:center;font-family:var(--font-family);font-size:16px;font-style:normal;font-weight:500;line-height:24px;display:flex;width:100%;padding:12px;justify-content:center;align-items:center;gap:10px;border-radius:var(--radius-radius-md);background:var(--button-color-button-primary);cursor:pointer;border:none}.filters-modal-apply:disabled{background:var(--button-color-button-disabled);color:var(--text-color-text-disabled)}.filters-modal-reset{background:none;border:none;cursor:pointer;display:block;text-align:center;width:100%;margin-top:20px;color:var(--text-color-text-secondary);text-align:center;font-family:var(--font-family);font-size:var(--font-size-body);font-style:normal;font-weight:var(--font-weight-regular);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-default)}";
454
+
455
+ const VviinnFilters = class {
456
+ constructor(hostRef) {
457
+ index.registerInstance(this, hostRef);
458
+ this.vviinnFiltersChanged = index.createEvent(this, "vviinnFiltersChanged", 7);
459
+ this.mainFilters = [];
460
+ this.moreFilters = [];
461
+ this.filters = [];
462
+ this.widgetElementId = undefined;
463
+ this.selectedFilter = undefined;
464
+ this.requestFilters = [];
465
+ this.requestFiltersMore = [];
466
+ this.showMore = false;
467
+ this.selectedMoreOptions = [];
468
+ }
469
+ connectedCallback() {
470
+ this.setMainAndMoreFilters();
471
+ }
472
+ setMainAndMoreFilters() {
473
+ this.mainFilters = this.filters.slice(0, 4);
474
+ this.moreFilters = this.filters.slice(4);
475
+ }
476
+ handleMainFilterSelection(filter) {
477
+ this.selectedFilter = filter;
478
+ }
479
+ subFilterSelection(filters, { column: selectedColumn }, filterValue) {
480
+ var _a, _b;
481
+ const value = (_a = filterValue.interval) !== null && _a !== void 0 ? _a : filterValue;
482
+ const index = filters.findIndex(({ column }) => column === selectedColumn);
483
+ const valueIndex = (_b = filters[index]) === null || _b === void 0 ? void 0 : _b.values.findIndex((val) => val === value);
484
+ const pushObject = { column: selectedColumn, values: [] };
485
+ if (valueIndex > -1)
486
+ pushObject.values.splice(valueIndex, 1);
487
+ else
488
+ pushObject.values.push(value);
489
+ if (index === -1)
490
+ filters = [...filters, pushObject];
491
+ else {
492
+ filters[index] = pushObject;
493
+ if (filters[index].values.length === 0) {
494
+ filters = [...filters.filter((filter) => filters[index] !== filter)];
495
+ }
496
+ else {
497
+ filters = [...filters];
498
+ }
499
+ }
500
+ return filters;
501
+ }
502
+ emitTequestFiltersMore(requestFilters) {
503
+ this.vviinnFiltersChanged.emit(requestFilters);
504
+ this.showMore = false;
505
+ }
506
+ handleSubFilterSelection(filterValue, seletedFilter, type = "main") {
507
+ if (type === "main") {
508
+ this.requestFilters = this.subFilterSelection(this.requestFilters, seletedFilter, filterValue);
509
+ this.emitTequestFiltersMore(Object.assign({}, this.requestFilters));
510
+ }
511
+ else {
512
+ this.requestFiltersMore = this.subFilterSelection(this.requestFiltersMore, seletedFilter, filterValue);
513
+ }
514
+ }
515
+ showActiveOnMainButton({ column }) {
516
+ if (!this.selectedFilter)
517
+ return "";
518
+ return this.selectedFilter.column === column ? "active" : "";
519
+ }
520
+ showActiveOnSubButton(requestFilters, filterValue) {
521
+ if (!this.selectedFilter)
522
+ return "";
523
+ const mainFilter = requestFilters.find((filter) => filter.column === this.selectedFilter.column);
524
+ if (!mainFilter)
525
+ return "";
526
+ return mainFilter.values.some((value) => value === filterValue || value === filterValue.interval)
527
+ ? "active"
528
+ : "";
529
+ }
530
+ showActiveOnModalSubButton(requestFilters, filterValue) {
531
+ let className = "";
532
+ requestFilters.forEach((filter) => {
533
+ if (filter.values.some((value) => value === filterValue || value === filterValue.interval)) {
534
+ className = "active";
535
+ }
536
+ });
537
+ return className;
538
+ }
539
+ handleMoreOptionsMainClick(column) {
540
+ if (this.selectedMoreOptions.includes(column)) {
541
+ this.selectedMoreOptions = this.selectedMoreOptions.filter((option) => option !== column);
542
+ }
543
+ else {
544
+ this.selectedMoreOptions = [...this.selectedMoreOptions, column];
545
+ }
546
+ }
547
+ filtersModalApply() {
548
+ this.emitTequestFiltersMore(Object.assign(Object.assign({}, this.requestFilters), this.requestFiltersMore));
549
+ }
550
+ render() {
551
+ const selectedFilterOptions = getFilterOptions(this.selectedFilter);
552
+ let moreFiltersOptionCount = 0;
553
+ this.moreFilters.forEach((filter) => {
554
+ moreFiltersOptionCount += getFilterOptions(filter).length;
555
+ });
556
+ return (index.h(index.Host, { part: "filters" }, index.h("div", { class: "filters-header" }, index.h("ul", { class: "main-filters-wrapper" }, this.mainFilters.map((filter) => {
557
+ return (index.h("li", null, index.h("button", { class: `filters-main-button ${this.showActiveOnMainButton(filter)}`, onClick: () => this.handleMainFilterSelection(filter) }, filter.column)));
558
+ })), this.moreFilters.length > 0 && (index.h("button", { class: "filters-more-button", onClick: () => (this.showMore = true) }, index.h(FiltersIcon, null)))), this.selectedFilter !== undefined && (index.h("div", { class: "filters-footer" }, index.h("ul", { class: "sub-filters-wrapper" }, selectedFilterOptions &&
559
+ selectedFilterOptions.map((filter) => {
560
+ return (index.h("li", null, index.h("button", { onClick: () => this.handleSubFilterSelection(filter.value, this.selectedFilter), class: `filters-sub-button ${this.showActiveOnSubButton(this.requestFilters, filter.value)}` }, filter.label)));
561
+ })))), index.h("div", { class: `filters-modal ${this.showMore ? "open" : ""}` }, index.h("div", { class: "filters-modal-wrapper" }, index.h("div", { class: "filters-modal-header" }, "Filters", moreFiltersOptionCount > 0 ? ` (${moreFiltersOptionCount})` : "", index.h("button", { class: "filters-modal-close", onClick: () => {
562
+ this.showMore = false;
563
+ this.requestFiltersMore = [];
564
+ } }, index.h(NewCloseIcon, null))), index.h("ul", { class: "filters-modal-list" }, this.moreFilters.map((mainFilter) => {
565
+ const filterOptions = getFilterOptions(mainFilter);
566
+ return (index.h("li", null, index.h("button", { onClick: () => this.handleMoreOptionsMainClick(mainFilter.column), class: "filters-modal-main-button" }, mainFilter.column, " ", filterOptions.length > 0
567
+ ? `(${filterOptions.length})`
568
+ : ""), index.h("ul", { class: `filters-modal-sub-list ${this.selectedMoreOptions.includes(mainFilter.column)
569
+ ? "open"
570
+ : ""}` }, filterOptions &&
571
+ filterOptions.map((filter) => {
572
+ return (index.h("li", null, index.h("button", { onClick: () => this.handleSubFilterSelection(filter.value, mainFilter, "more"), class: `filters-more-modal-button ${this.showActiveOnModalSubButton(this.requestFiltersMore, filter.value)}` }, filter.label)));
573
+ }))));
574
+ })), index.h("div", { class: "filters-modal-actions" }, index.h("button", { class: "filters-modal-apply", onClick: () => this.filtersModalApply(), disabled: this.requestFiltersMore.length === 0 }, "Apply"), index.h("button", { class: "filters-modal-reset", onClick: () => (this.requestFiltersMore = []) }, "Reset Filters"))))));
575
+ }
576
+ static get watchers() { return {
577
+ "filters": ["setMainAndMoreFilters"]
578
+ }; }
579
+ };
580
+ VviinnFilters.style = vviinnFiltersCss;
581
+
430
582
  class GtagAnalytics {
431
583
  sendImpression(product) {
432
584
  var _a, _b, _c;
@@ -541,7 +693,7 @@ const Image = (props, onLoadEnd = () => undefined) => (index.h("picture", null,
541
693
  const ResponsiveImage = (props, onLoadEnd = () => undefined) => (index.h("picture", null,
542
694
  index.h("img", { loading: props.lazy ? "lazy" : "eager", part: "image", class: "image responsive", src: processWidth(props.src, props.width), alt: props.title, ref: props.ref, onLoad: onLoadEnd })));
543
695
 
544
- const vviinnProductCardCss = ":host{align-items:center;display:flex;flex-direction:column;position:relative;gap:8px;height:100%;--min-image-size-set-mode:155px}.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}.image.responsive{width:100%;height:auto;aspect-ratio:1}.brand,.type{display:none}.title{-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere;text-overflow:ellipsis;color:#161616;display:-webkit-box;font-size:16px;font-style:normal;font-weight:500;line-height:24px;overflow:hidden}.deeplink{text-decoration:none;max-width:100%}.image-link{display:contents}picture{position:relative;width:100%}picture::before{content:\"\";opacity:0;width:100%;height:100%;box-sizing:border-box;display:block;top:0;left:0;position:absolute}.update-button{position:absolute;top:8px;right:8px;padding:6px;width:32px;height:32px;z-index:1;background-color:rgba(127, 127, 127, 0.4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:none;color:white;cursor:pointer}.update-button svg{width:20px;height:20px}.update-button::after{content:\"\";position:absolute;top:-4px;right:-4px;width:calc(100% + 8px);height:calc(100% + 8px)}.update-button:hover{background-color:rgba(127, 127, 127, 0.5)}.update-button.hidden{display:none}.basket-button{font-size:16px;padding:10px 12px;box-sizing:border-box;border:none;cursor:pointer}.basket-button.basket-button-grid{width:100%;background-color:unset;border:1px solid #dddddd}.basket-button.basket-button-continuity{align-self:start;background-color:#f7f7f7}.basket-button-continuity:hover{background-color:#eaeaea}.basket-button-grid:hover{background-color:#f7f7f7}:host(.dimmed) picture::after{content:\"\";width:100%;height:100%;box-sizing:border-box;background-color:#f7f7f7;display:block;top:0;left:0;position:absolute;mix-blend-mode:multiply}:host(.animated) picture::after{mix-blend-mode:normal}:host(.animated) picture::before{opacity:1;animation:pulse 1.8s infinite}:host(.animated) picture::after{content:url(\"data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_810_154)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M64.7332 1.23333C66.2665 12.2667 67.9665 13.9667 78.6665 15.2333C79.4332 15.3333 79.9999 15.9333 79.9999 16.6667C79.9999 17.4 79.4665 17.9333 78.6665 18.0667C67.9665 19.3667 66.2999 21.0333 64.7332 32.0667C64.6332 32.8 64.0665 33.3333 63.3665 33.3333C62.6665 33.3333 62.0999 32.8 61.9665 32.0667C60.4665 21.0333 58.7665 19.3667 48.0332 18.0667C47.2332 17.9667 46.6999 17.4333 46.6999 16.6667C46.6999 15.9 47.2332 15.3667 48.0332 15.2333C58.7665 13.7667 60.3999 12.2 61.9665 1.23333C62.0999 0.5 62.6665 0 63.3665 0C64.0665 0 64.5999 0.5 64.7332 1.23333ZM38.5665 71.5667C38.3665 72.6 37.6665 73.3333 36.6665 73.3333C35.6665 73.3333 34.9665 72.6 34.7998 71.5667C31.9332 50.7 29.0998 47.9 8.49984 45.2C7.39984 45.1 6.6665 44.3 6.6665 43.3C6.6665 42.3 7.39984 41.5333 8.49984 41.4333C29.1332 39.1333 32.0998 35.9333 34.7998 15.0333C34.9665 14.0333 35.6665 13.3333 36.6665 13.3333C37.6665 13.3333 38.3665 14 38.5665 15.0333C41.2665 35.9333 44.1998 39.1333 64.8665 41.4333C65.9332 41.5333 66.6665 42.2667 66.6665 43.3C66.6665 44.3333 65.9332 45.1 64.8665 45.2C44.1998 47.5 41.2665 50.7 38.5665 71.5667Z' fill='white'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_810_154'%3E%3Crect width='80' height='80' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");background-color:transparent;position:absolute;width:80px;height:80px;left:calc(50% - 40px);top:calc(50% - 40px)}:host(.animated) .update-button{display:none}:host(.set-mode){line-height:20px;align-items:flex-start;height:auto}:host(.set-mode) .basket-button{display:flex;gap:8px;align-items:center;box-sizing:border-box;justify-content:center;border:none;background-color:#f4f4f4;font-weight:500;color:#525252}:host(.set-mode:not(.animated)) .basket-button{margin-top:auto}:host(.set-mode) .basket-button:hover{background-color:rgb(234, 234, 234)}:host(.set-mode) .title{font-weight:400}:host(.set-mode) .image{width:var(--vviinn-set-mode-image-width, 100%);height:auto;border:none;aspect-ratio:1;min-width:var(--min-image-size-set-mode);min-height:var(--min-image-size-set-mode)}:host(.set-mode.product-card--source){height:-moz-fit-content;height:fit-content;flex-grow:1}:host(.set-mode.product-card--source) .image{aspect-ratio:1;width:100%;height:100%}:host(.set-mode) picture .plus-icon{background-color:white;position:absolute;z-index:1;padding:16px;top:calc(50% - 32px);color:#a8a8a8;right:-88px;outline:1px solid #f4f4f4;border-radius:50%;width:32px;height:32px}@media (max-width: 768px){:host(.set-mode) picture .plus-icon{padding:8px;top:calc(50% - 24px);right:-24px}}:host(.set-mode) .basket-button.applied-discount{background:transparent;border:1px solid #e0e0e0}:host(.set-mode) .basket-button--hidden{display:none}:host(.set-mode) .price-container{flex-direction:row;flex-wrap:wrap}:host(.set-mode) .price-amount{margin-right:12px}@media (max-width: 1080px){:host(.set-mode) .price-amount{margin-right:8px}}@keyframes pulse{0%{background-color:rgb(244, 244, 244)}50%{background-color:rgb(232, 232, 232)}100%{background-color:rgba(244, 244, 244)}}.discount-label{position:absolute;left:0;top:13px;line-height:20px;padding:2px 4px;border-radius:0px 4px 4px 0px;color:white;background-color:#ff3944;letter-spacing:0.5px}";
696
+ const vviinnProductCardCss = ":host{align-items:center;display:flex;flex-direction:column;position:relative;gap:8px;height:100%;--min-image-size-set-mode:155px}.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}.image.responsive{width:100%;height:auto;aspect-ratio:1}.brand,.type{display:none}.title{-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere;text-overflow:ellipsis;color:#161616;display:-webkit-box;font-size:16px;font-style:normal;font-weight:500;line-height:24px;overflow:hidden}.deeplink{text-decoration:none;max-width:100%}.image-link{display:contents}picture{position:relative;width:100%}picture::before{content:\"\";opacity:0;width:100%;height:100%;box-sizing:border-box;display:block;top:0;left:0;position:absolute}.update-button{position:absolute;top:8px;right:8px;padding:6px;width:32px;height:32px;z-index:1;background-color:rgba(127, 127, 127, 0.4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:none;color:white;cursor:pointer}.update-button svg{width:20px;height:20px}.update-button::after{content:\"\";position:absolute;top:-4px;right:-4px;width:calc(100% + 8px);height:calc(100% + 8px)}.update-button:hover{background-color:rgba(127, 127, 127, 0.5)}.update-button.hidden{display:none}.basket-button{font-size:16px;padding:10px 12px;box-sizing:border-box;border:none;cursor:pointer}.basket-button-icon-container{display:inline-flex;align-items:center;justify-content:center}.basket-button.basket-button-grid{width:100%;background-color:unset;border:1px solid #dddddd}.basket-button.basket-button-continuity{align-self:start;background-color:#f7f7f7}.basket-button-continuity:hover{background-color:#eaeaea}.basket-button-grid:hover{background-color:#f7f7f7}:host(.dimmed) picture::after{content:\"\";width:100%;height:100%;box-sizing:border-box;background-color:#f7f7f7;display:block;top:0;left:0;position:absolute;mix-blend-mode:multiply}:host(.animated) picture::after{mix-blend-mode:normal}:host(.animated) picture::before{opacity:1;animation:pulse 1.8s infinite}:host(.animated) picture::after{content:url(\"data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_810_154)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M64.7332 1.23333C66.2665 12.2667 67.9665 13.9667 78.6665 15.2333C79.4332 15.3333 79.9999 15.9333 79.9999 16.6667C79.9999 17.4 79.4665 17.9333 78.6665 18.0667C67.9665 19.3667 66.2999 21.0333 64.7332 32.0667C64.6332 32.8 64.0665 33.3333 63.3665 33.3333C62.6665 33.3333 62.0999 32.8 61.9665 32.0667C60.4665 21.0333 58.7665 19.3667 48.0332 18.0667C47.2332 17.9667 46.6999 17.4333 46.6999 16.6667C46.6999 15.9 47.2332 15.3667 48.0332 15.2333C58.7665 13.7667 60.3999 12.2 61.9665 1.23333C62.0999 0.5 62.6665 0 63.3665 0C64.0665 0 64.5999 0.5 64.7332 1.23333ZM38.5665 71.5667C38.3665 72.6 37.6665 73.3333 36.6665 73.3333C35.6665 73.3333 34.9665 72.6 34.7998 71.5667C31.9332 50.7 29.0998 47.9 8.49984 45.2C7.39984 45.1 6.6665 44.3 6.6665 43.3C6.6665 42.3 7.39984 41.5333 8.49984 41.4333C29.1332 39.1333 32.0998 35.9333 34.7998 15.0333C34.9665 14.0333 35.6665 13.3333 36.6665 13.3333C37.6665 13.3333 38.3665 14 38.5665 15.0333C41.2665 35.9333 44.1998 39.1333 64.8665 41.4333C65.9332 41.5333 66.6665 42.2667 66.6665 43.3C66.6665 44.3333 65.9332 45.1 64.8665 45.2C44.1998 47.5 41.2665 50.7 38.5665 71.5667Z' fill='white'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_810_154'%3E%3Crect width='80' height='80' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");background-color:transparent;position:absolute;width:80px;height:80px;left:calc(50% - 40px);top:calc(50% - 40px)}:host(.animated) .update-button{display:none}:host(.set-mode){line-height:20px;align-items:flex-start;height:auto}:host(.set-mode) .basket-button{border:none;background-color:#f4f4f4;font-weight:500;color:#525252}:host(.set-mode) .basket-button-container{display:flex;gap:8px;align-items:center;box-sizing:border-box;justify-content:center}:host(.set-mode:not(.animated)) .basket-button{margin-top:auto}:host(.set-mode) .basket-button:hover{background-color:rgb(234, 234, 234)}:host(.set-mode) .title{font-weight:400}:host(.set-mode) .image{width:var(--vviinn-set-mode-image-width, 100%);height:auto;border:none;aspect-ratio:1;min-width:var(--min-image-size-set-mode);min-height:var(--min-image-size-set-mode)}:host(.set-mode.product-card--source){height:-moz-fit-content;height:fit-content;flex-grow:1}:host(.set-mode.product-card--source) .image{aspect-ratio:1;width:100%;height:100%}:host(.set-mode) picture .plus-icon{background-color:white;position:absolute;z-index:1;padding:16px;top:calc(50% - 32px);color:#a8a8a8;right:-88px;outline:1px solid #f4f4f4;border-radius:50%;width:32px;height:32px}@media (max-width: 768px){:host(.set-mode) picture .plus-icon{padding:8px;top:calc(50% - 24px);right:-24px}}:host(.set-mode) .basket-button.pressed{background:transparent;border:1px solid #e0e0e0}:host(.set-mode) .basket-button.pressed .discount-percentage{padding-right:5px}:host(.set-mode) .basket-button--hidden{display:none}:host(.set-mode) .price-container{flex-direction:row;flex-wrap:wrap}:host(.set-mode) .price-amount{margin-right:12px}@media (max-width: 1080px){:host(.set-mode) .price-amount{margin-right:8px}}@keyframes pulse{0%{background-color:rgb(244, 244, 244)}50%{background-color:rgb(232, 232, 232)}100%{background-color:rgba(244, 244, 244)}}.discount-label{position:absolute;left:0;top:13px;line-height:20px;padding:2px 4px;border-radius:0px 4px 4px 0px;color:white;background-color:#ff3944;letter-spacing:0.5px}";
545
697
 
546
698
  const VviinnProductCard = class {
547
699
  constructor(hostRef) {
@@ -577,7 +729,7 @@ const VviinnProductCard = class {
577
729
  this.responsive = false;
578
730
  this.dimmedBackground = false;
579
731
  this.mode = undefined;
580
- this.addToBasketShow = undefined;
732
+ this.basketButtonShow = undefined;
581
733
  this.updateButtonLocation = undefined;
582
734
  this.appliedDiscountPercentage = undefined;
583
735
  this.currentDiscountPercentage = undefined;
@@ -590,6 +742,7 @@ const VviinnProductCard = class {
590
742
  this.updatingAllCards = undefined;
591
743
  this.defaultAnimationInterval = undefined;
592
744
  this.isTransitioning = false;
745
+ this.basketButonPressed = false;
593
746
  }
594
747
  connectedCallback() {
595
748
  this.productData = this.getProductData();
@@ -609,6 +762,7 @@ const VviinnProductCard = class {
609
762
  crossSellingClickListener({ detail }) {
610
763
  const { animationInterval } = detail;
611
764
  this.isTransitioning = true;
765
+ this.basketButonPressed = false;
612
766
  const animationTimer = setTimeout(() => {
613
767
  this.isTransitioning = false;
614
768
  clearTimeout(animationTimer);
@@ -618,6 +772,7 @@ const VviinnProductCard = class {
618
772
  if (!this.updatingAllCards)
619
773
  return;
620
774
  this.isTransitioning = true;
775
+ this.basketButonPressed = false;
621
776
  const animationTimer = setTimeout(() => {
622
777
  this.vviinnUpdatingAllCardsFinished.emit();
623
778
  this.isTransitioning = false;
@@ -682,15 +837,18 @@ const VviinnProductCard = class {
682
837
  dimmed: this.dimmedBackground,
683
838
  animated: this.isTransitioning,
684
839
  "set-mode": this.isSetMode,
685
- }, 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, discount-label, title, basket-button, update-button-item" }, index.h(Linked, { deeplink: this.deeplink, part: "image-link" }, this.renderImage()), this.isTransitioning ? (index.h(index.Fragment, null, index.h("vviinn-skeleton", { height: 20 }), index.h("vviinn-skeleton", { height: 20, halfWidth: true }))) : (index.h(index.Fragment, null, 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: this.pricePrefix, currency: this.currency, price: this.price, salePrice: this.salePrice, locale: this.locale }), this.isSetMode && !this.appliedDiscountPercentage && (index.h("div", { class: "discount-label", part: "discount-label" }, `-${this.currentDiscountPercentage}%`)))), (this.addToBasketShow || this.isSetMode) && (index.h(index.Fragment, null, this.isTransitioning && index.h("vviinn-skeleton", { height: 44 }), index.h("button", { class: {
840
+ }, 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, discount-label, discount-percentage, title, basket-button, update-button-item" }, index.h(Linked, { deeplink: this.deeplink, part: "image-link" }, this.renderImage()), this.isTransitioning ? (index.h(index.Fragment, null, index.h("vviinn-skeleton", { height: 20 }), index.h("vviinn-skeleton", { height: 20, halfWidth: true }))) : (index.h(index.Fragment, null, 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: this.pricePrefix, currency: this.currency, price: this.price, salePrice: this.salePrice, locale: this.locale }), this.isSetMode &&
841
+ !this.appliedDiscountPercentage &&
842
+ this.currentDiscountPercentage && (index.h("div", { class: "discount-label", part: "discount-label" }, `-${this.currentDiscountPercentage}%`)))), (this.basketButtonShow || this.isSetMode) && (index.h(index.Fragment, null, this.isTransitioning && index.h("vviinn-skeleton", { height: 44 }), index.h("button", { class: {
686
843
  "basket-button": true,
687
844
  "basket-button--hidden": this.isTransitioning,
688
845
  "basket-button-grid": this.isGridMode || this.isSetMode,
689
846
  "basket-button-continuity ": this.isContinuityMode,
690
- "applied-discount": !!this.appliedDiscountPercentage,
847
+ pressed: this.basketButonPressed,
691
848
  }, part: "basket-button", onClick: () => {
692
849
  this.vviinnAddToBasket.emit(Object.assign(Object.assign({}, this.productData), { discount: this.currentDiscountPercentage }));
693
- } }, this.isSetMode ? (index.h(index.Fragment, null, this.appliedDiscountPercentage ? (index.h("span", null, index.h("slot", { name: "vviinn-basket-button-icon-pressed" }, index.h(CheckCircleIcon, null)))) : (index.h("span", null, index.h("slot", { name: "vviinn-basket-button-icon" }, index.h(BasketIcon, null)))), this.appliedDiscountPercentage ? (index.h(index.Fragment, null, index.h("span", null, this.appliedDiscountPercentage, "% "), index.h("span", null, index.h("slot", { name: "vviinn-basket-button-text-pressed" }, i18next.instance.t("setMode.appliedDiscountText"))))) : (index.h("slot", { name: "vviinn-basket-button-text" }, i18next.instance.t("setMode.basketButtonText"))))) : (index.h("span", null, index.h("slot", { name: "vviinn-basket-button-text" }, i18next.instance.t("basketButtonText"))))))), this.isSetMode && !this.appliedDiscountPercentage && (index.h("button", { class: {
850
+ this.basketButonPressed = true;
851
+ } }, this.isSetMode ? (index.h(index.Fragment, null, !this.basketButonPressed && (index.h("div", { key: "set-not-pressed", class: "basket-button-container" }, index.h("span", { class: "basket-button-icon-container" }, index.h("slot", { name: "vviinn-basket-button-icon" }, index.h(BasketIcon, null))), index.h("span", null, index.h("slot", { name: "vviinn-basket-button-text" }, i18next.instance.t("setMode.basketButtonText"))))), this.basketButonPressed && (index.h("div", { key: "set-pressed", class: "basket-button-container" }, index.h("span", { class: "basket-button-icon-container" }, index.h("slot", { name: "vviinn-basket-button-icon-pressed" }, index.h(CheckCircleIcon, null))), index.h("span", null, this.appliedDiscountPercentage && (index.h("span", { class: "discount-percentage", part: "discount-percentage" }, this.appliedDiscountPercentage, "%")), index.h("slot", { name: "vviinn-basket-button-text-pressed" }, i18next.instance.t("setMode.appliedDiscountText"))))))) : (index.h("slot", { name: "vviinn-basket-button-text" }, i18next.instance.t("basketButtonText")))))), this.isSetMode && !this.basketButonPressed && (index.h("button", { class: {
694
852
  "update-button": true,
695
853
  hidden: this.updateButtonLocation === "onTop",
696
854
  }, part: "update-button-item", onClick: () => {
@@ -1376,9 +1534,9 @@ const parseCampaigns = (campaigns) => campaigns.split(",").map((value) => {
1376
1534
  ? parseInt(trimmedValue)
1377
1535
  : trimmedValue;
1378
1536
  });
1379
- const getRecommendationsBody = ({ productId, campaigns, color, excluded, }) => {
1537
+ const getRecommendationsBody = ({ productId, campaigns, color, excluded, dynamicFilters = [], }) => {
1380
1538
  const staticFilters = Object.assign(Object.assign({}, (color.length ? { color } : {})), (excluded.length ? { excluded: parseExcluded(excluded) } : {}));
1381
- return Object.assign(Object.assign({ productId }, (campaigns.length ? { campaigns: parseCampaigns(campaigns) } : {})), (Object.keys(staticFilters).length ? { staticFilters } : {}));
1539
+ return Object.assign(Object.assign({ productId, dynamicFilters: dynamicFilters !== null && dynamicFilters !== void 0 ? dynamicFilters : undefined }, (campaigns.length ? { campaigns: parseCampaigns(campaigns) } : {})), (Object.keys(staticFilters).length ? { staticFilters } : {}));
1382
1540
  };
1383
1541
 
1384
1542
  const vviinnVprWidgetCss = ":host{display:grid;grid-gap:1rem;width:100%}:host(:not(.loaded)){position:absolute;visibility:hidden}:host(.grid) vviinn-product-card::part(image){border:1px solid #dddddd;width:100%}:host(.set) vviinn-carousel{overflow-x:auto}:host(.set) vviinn-carousel{scrollbar-width:thin}.widget-header{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center}.widget-header h3{margin-top:8px;margin-bottom:0;font-size:14px;font-weight:400;line-height:20px}.update-button{display:flex;align-items:center;justify-content:center;color:#525252;gap:8px;padding:8px 10px;background:rgb(244, 244, 244);border:none;cursor:pointer}.update-button:hover{background:rgb(234, 234, 234)}.update-button svg{color:#6f6f6f;width:24px;height:24px}h2{margin:0}vviinn-product-card::part(price-container){align-self:flex-start;text-align:left;display:flex}.results{display:grid;grid-gap:1rem}.no-result-text{font-size:20px}.visually-hidden{position:absolute;top:0;left:0;z-index:-1;height:0;width:0}h2{margin:0}:host(.grid) h2{justify-content:center}:host(.grid) vviinn-product-card::part(image){min-width:100%}:host(.grid) vviinn-product-card::part(image-link){width:100%}:host(.grid) vviinn-product-card::part(title),:host(.grid) vviinn-product-card::part(brand),:host(.grid) vviinn-product-card::part(type){text-align:center}:host(.grid) vviinn-product-card::part(price-container){align-self:center}:host(.continuity) vviinn-product-card::part(title),:host(.continuity) vviinn-product-card::part(brand),:host(.continuity) vviinn-product-card::part(type),:host(.continuity) vviinn-product-card::part(deeplink){text-align:left;max-width:unset;align-self:start}";
@@ -1406,12 +1564,14 @@ const VviinnVprWidget = class {
1406
1564
  this.vviinnResultView = index.createEvent(this, "vviinnResultView", 7);
1407
1565
  this.vviinnNoResult = index.createEvent(this, "vviinnNoResult", 7);
1408
1566
  this.vviinnAddToBasket = index.createEvent(this, "vviinnAddToBasket", 7);
1567
+ this.vviinnFiltersChanged = index.createEvent(this, "vviinnFiltersChanged", 7);
1409
1568
  this.globalSlotsChanged = index.createEvent(this, "globalSlotsChanged", 7);
1410
1569
  this.vviinnRecommendationsLoaded = index.createEvent(this, "vviinnRecommendationsLoaded", 7);
1411
1570
  this.vviinnWidgetOpen = index.createEvent(this, "vviinnWidgetOpen", 7);
1412
1571
  this.vviinnWidgetClose = index.createEvent(this, "vviinnWidgetClose", 7);
1413
1572
  this.productImageLoadedSubject = new Subject();
1414
1573
  this.resultViewed = false;
1574
+ this.requestDynamicFilters = [];
1415
1575
  this.setTrackingDeactivated = (result) => {
1416
1576
  if (result.status === "rejected") {
1417
1577
  this.trackingDeactivated = true;
@@ -1438,6 +1598,8 @@ const VviinnVprWidget = class {
1438
1598
  this.productDetailNewTab = false;
1439
1599
  this.addToBasketShow = false;
1440
1600
  this.updateButtonLocation = "topAndItem";
1601
+ this.showFilters = false;
1602
+ this.setModeDiscounts = this.mode === "set" ? "5, 10, 15" : "";
1441
1603
  this.apiPath = "https://api.vviinn.com";
1442
1604
  this.useCarousel = true;
1443
1605
  this.showingInButton = false;
@@ -1445,11 +1607,13 @@ const VviinnVprWidget = class {
1445
1607
  this.closed = undefined;
1446
1608
  this.opened = undefined;
1447
1609
  this.recommendations = [];
1610
+ this.dynamicFilters = [];
1448
1611
  this.sourceProduct = null;
1449
1612
  this.trackingDeactivated = false;
1450
1613
  this.hasErrorOnLoad = false;
1451
1614
  this.updatingAllCards = false;
1452
1615
  this.updatedCardsAmount = 0;
1616
+ this.setModeDiscountsArray = [];
1453
1617
  }
1454
1618
  getBasicEventData() {
1455
1619
  return {
@@ -1529,6 +1693,12 @@ const VviinnVprWidget = class {
1529
1693
  this.isSetMode = this.mode === "set";
1530
1694
  this.isGridMode = this.mode === "grid";
1531
1695
  this.isContinuityMode = this.mode === "continuity";
1696
+ if (this.isSetMode && this.setModeDiscounts.length) {
1697
+ this.setModeDiscountsArray = this.setModeDiscounts
1698
+ .split(",")
1699
+ .map((d) => parseInt(d.trim()))
1700
+ .filter((d) => !isNaN(d));
1701
+ }
1532
1702
  }
1533
1703
  async componentWillLoad() {
1534
1704
  await i18next.instance.init({
@@ -1609,6 +1779,10 @@ const VviinnVprWidget = class {
1609
1779
  return;
1610
1780
  this.updatingAllCards = false;
1611
1781
  }
1782
+ async filtersChanged({ detail }) {
1783
+ this.requestDynamicFilters = detail;
1784
+ this.getRecommendations();
1785
+ }
1612
1786
  trackWidgetEvent(action) {
1613
1787
  if (this.trackingDeactivated)
1614
1788
  return;
@@ -1662,6 +1836,7 @@ const VviinnVprWidget = class {
1662
1836
  color: this.color,
1663
1837
  excluded: this.excluded,
1664
1838
  campaigns: this.campaigns,
1839
+ dynamicFilters: this.requestDynamicFilters,
1665
1840
  });
1666
1841
  const request = search_store._function.pipe(search_store.TaskEither.of(getRecommendationsService(campaignType)), search_store.TaskEither.ap(search_store.TaskEither.of(body)), search_store.TaskEither.ap(search_store.TaskEither.of(headers)), search_store.TaskEither.flatten);
1667
1842
  const runRequest = await request();
@@ -1678,9 +1853,10 @@ const VviinnVprWidget = class {
1678
1853
  handleError(_) {
1679
1854
  this.hasErrorOnLoad = true;
1680
1855
  }
1681
- handleRecommendationsSuccess({ data, }) {
1856
+ handleRecommendationsSuccess({ data, interactions, }) {
1682
1857
  this.vviinnResultLoad.emit(this.getBasicEventData());
1683
1858
  this.trackResultEvent("load");
1859
+ this.dynamicFilters = interactions.dynamicFilters;
1684
1860
  const { products, sourceProduct } = data;
1685
1861
  this.recommendations = products;
1686
1862
  this.sourceProduct = sourceProduct;
@@ -1709,14 +1885,14 @@ const VviinnVprWidget = class {
1709
1885
  [this.mode]: true,
1710
1886
  }, "aria-hidden": "false" }, index.h(index.Fragment, null, this.renderExternalCSS(), customizedSlots.SlotSkeleton("vpr"), index.h("style", null, search_store.state.fallbackStyles), index.h("div", { class: "widget-header" }, index.h("div", null, index.h("h2", { part: "recommendations-title" }, index.h("slot", { name: "vviinn-recommendations-title" }, this.isSetMode
1711
1887
  ? i18next.instance.t("setMode.widgetTitle")
1712
- : this.blockTitle)), this.isSetMode && (index.h("h3", { part: "recommendations-subtitle" }, index.h("slot", { name: "vviinn-recommendations-subtitle" }, i18next.instance.t("setMode.widgetSubtitle"))))), this.isSetMode && this.updateButtonLocation !== "onItem" ? (index.h("button", { class: "update-button", part: "update-button-top", onClick: () => (this.updatingAllCards = true) }, index.h("slot", { name: "vviinn-update-button-icon" }, index.h(UpdateIcon, null)), index.h("slot", { name: "vviinn-update-button-text" }, index.h("span", null, i18next.instance.t("setMode.updateButtonText"))))) : null), this.recommendations.length > 0 &&
1888
+ : this.blockTitle)), this.isSetMode && (index.h("h3", { part: "recommendations-subtitle" }, index.h("slot", { name: "vviinn-recommendations-subtitle" }, i18next.instance.t("setMode.widgetSubtitle"))))), this.isSetMode && this.updateButtonLocation !== "onItem" ? (index.h("button", { class: "update-button", part: "update-button-top", onClick: () => (this.updatingAllCards = true) }, index.h("slot", { name: "vviinn-update-button-icon" }, index.h(UpdateIcon, null)), index.h("slot", { name: "vviinn-update-button-text" }, index.h("span", null, i18next.instance.t("setMode.updateButtonText"))))) : null), this.showFilters && (index.h("vviinn-filters", { filters: this.dynamicFilters, widgetElementId: this.id })), this.recommendations.length > 0 &&
1713
1889
  (this.useCarousel ? this.renderCarousel() : this.renderResults()), (this.recommendations.length === 0 || this.hasErrorOnLoad) &&
1714
1890
  !search_store.searchState.loading && (index.h("p", { class: "no-result-text" }, this.noResultText.length
1715
1891
  ? this.noResultText
1716
1892
  : i18next.instance.t("noResultText"))))));
1717
1893
  }
1718
1894
  renderRecommendation(recommendation, index$1) {
1719
- 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.isGridMode, addToBasketShow: this.addToBasketShow, mode: this.mode, dimmedBackground: this.useDimmedBackgroundInCard(), campaignTypeId: this.campaignType, index: index$1, widgetElementId: this.id, widgetVersion: _package.version, currency: this.currencySign, pricePrefix: this.pricePrefix, locale: this.locale }));
1895
+ 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.isGridMode, basketButtonShow: this.addToBasketShow, mode: this.mode, dimmedBackground: this.useDimmedBackgroundInCard(), campaignTypeId: this.campaignType, index: index$1, widgetElementId: this.id, widgetVersion: _package.version, currency: this.currencySign, pricePrefix: this.pricePrefix, locale: this.locale }));
1720
1896
  }
1721
1897
  useDimmedBackgroundInCard() {
1722
1898
  return this.isContinuityMode || this.isSetMode || !this.useCarousel;
@@ -1725,7 +1901,7 @@ const VviinnVprWidget = class {
1725
1901
  return (index.h("div", { class: "recommendations-grid", part: "recommendations-grid" }, this.recommendations.map((r, i) => this.renderRecommendation(r, i))));
1726
1902
  }
1727
1903
  renderCarousel() {
1728
- 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, updatingAllCards: this.updatingAllCards, updateButtonLocation: this.updateButtonLocation, replaceSlotsContent: this.replaceSlotsContent.bind(this), currencySign: this.currencySign, pricePrefix: this.pricePrefix, locale: this.locale }));
1904
+ 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, updatingAllCards: this.updatingAllCards, updateButtonLocation: this.updateButtonLocation, replaceSlotsContent: this.replaceSlotsContent.bind(this), setModeDiscountsArray: this.setModeDiscountsArray, currencySign: this.currencySign, pricePrefix: this.pricePrefix, locale: this.locale }));
1729
1905
  }
1730
1906
  get el() { return index.getElement(this); }
1731
1907
  static get watchers() { return {
@@ -1740,6 +1916,7 @@ const VviinnVprWidget = class {
1740
1916
  VviinnVprWidget.style = vviinnVprWidgetCss;
1741
1917
 
1742
1918
  exports.vviinn_carousel = VviinnCarousel;
1919
+ exports.vviinn_filters = VviinnFilters;
1743
1920
  exports.vviinn_product_card = VviinnProductCard;
1744
1921
  exports.vviinn_skeleton = VviinnSkeleton;
1745
1922
  exports.vviinn_vpr_widget = VviinnVprWidget;
@@ -32,6 +32,7 @@ const RecommendationsSidebar = class {
32
32
  this.excluded = undefined;
33
33
  this.productDetailNewTab = undefined;
34
34
  this.addToBasketShow = false;
35
+ this.showFilters = false;
35
36
  this.buttonChildren = undefined;
36
37
  this.apiPath = "https://api.vviinn.com";
37
38
  this.buttonElementId = undefined;
@@ -73,7 +74,7 @@ const RecommendationsSidebar = class {
73
74
  });
74
75
  }
75
76
  render() {
76
- 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(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 })))));
77
+ 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(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, showFilters: this.showFilters })))));
77
78
  }
78
79
  renderSourceImage() {
79
80
  return (index.h("img", { class: "source-image", part: "source-image", src: this.sourceImage }));