vviinn-widgets 2.4.2 → 2.4.3

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 (93) hide show
  1. package/dist/cjs/Handler-d1a8a86a.js +329 -0
  2. package/dist/cjs/{app-globals-d999d944.js → app-globals-474864e0.js} +1 -1
  3. package/dist/cjs/cropper-handler.cjs.entry.js +27 -0
  4. package/dist/cjs/{customized-slots-90e8e849.js → customized-slots-0aa6c3d6.js} +1 -1
  5. package/dist/cjs/{cropper-handler_27.cjs.entry.js → highlight-box_22.cjs.entry.js} +85 -469
  6. package/dist/cjs/{index-c0d08aca.js → imageSearch.store-076370bf.js} +10575 -14822
  7. package/dist/cjs/index-34d20028.js +3222 -0
  8. package/dist/cjs/{index-e8cf5dc5.js → index-61403ab1.js} +1 -1
  9. package/dist/cjs/{index-53400160.js → index-a87f1a44.js} +1 -1
  10. package/dist/cjs/loader.cjs.js +3 -3
  11. package/dist/cjs/{vviinn-carousel_2.cjs.entry.js → vviinn-carousel_3.cjs.entry.js} +212 -25
  12. package/dist/cjs/vviinn-error.cjs.entry.js +19 -0
  13. package/dist/cjs/vviinn-preloader.cjs.entry.js +26 -0
  14. package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js +2 -2
  15. package/dist/cjs/vviinn-vpr-button.cjs.entry.js +2 -2
  16. package/dist/cjs/vviinn-vps-button.cjs.entry.js +3 -3
  17. package/dist/cjs/vviinn-vps-widget.cjs.entry.js +162 -0
  18. package/dist/cjs/vviinn-widgets.cjs.js +3 -3
  19. package/dist/collection/components/image-search/search-filters/search-filters.js +1 -1
  20. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +3 -0
  21. package/dist/collection/openApi/index.js +1 -1
  22. package/dist/esm/Handler-639a4cb3.js +308 -0
  23. package/dist/esm/{app-globals-f91c6f94.js → app-globals-3888cd41.js} +1 -1
  24. package/dist/esm/cropper-handler.entry.js +23 -0
  25. package/dist/esm/{customized-slots-7be7f3b8.js → customized-slots-863113e2.js} +1 -1
  26. package/dist/esm/{cropper-handler_27.entry.js → highlight-box_22.entry.js} +21 -400
  27. package/dist/esm/{index-840ec915.js → imageSearch.store-b516d12e.js} +10749 -14986
  28. package/dist/esm/index-2f8fb0fe.js +3213 -0
  29. package/dist/esm/{index-00c7b7c2.js → index-36978848.js} +2 -2
  30. package/dist/esm/{index-d7147986.js → index-56c062df.js} +1 -1
  31. package/dist/esm/loader.js +3 -3
  32. package/dist/esm/{vviinn-carousel_2.entry.js → vviinn-carousel_3.entry.js} +190 -4
  33. package/dist/esm/vviinn-error.entry.js +15 -0
  34. package/dist/esm/vviinn-preloader.entry.js +22 -0
  35. package/dist/esm/vviinn-recommendations-sidebar.entry.js +2 -2
  36. package/dist/esm/vviinn-vpr-button.entry.js +2 -2
  37. package/dist/esm/vviinn-vps-button.entry.js +3 -3
  38. package/dist/esm/vviinn-vps-widget.entry.js +158 -0
  39. package/dist/esm/vviinn-widgets.js +3 -3
  40. package/dist/types/components/image-search/search-filters/search-filters.d.ts +1 -1
  41. package/dist/types/components/vviinn-vpr-widget/vviinn-vpr-vidget.d.ts +1 -1
  42. package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +2 -1
  43. package/dist/types/components.d.ts +1 -1
  44. package/dist/types/openApi/index.d.ts +2 -2
  45. package/dist/types/tracking/event.d.ts +1 -1
  46. package/dist/types/tracking/index.d.ts +8 -8
  47. package/dist/types/tracking/models.d.ts +1 -1
  48. package/dist/vviinn-widgets/{p-2d4cb17f.entry.js → p-0a9cee09.entry.js} +1 -1
  49. package/dist/vviinn-widgets/p-28678772.js +1 -0
  50. package/dist/vviinn-widgets/{p-07d8ba79.entry.js → p-2e6ecda7.entry.js} +1 -1
  51. package/dist/vviinn-widgets/{p-dc2da207.js → p-47183c9a.js} +1 -1
  52. package/dist/vviinn-widgets/p-535611cd.entry.js +1 -0
  53. package/dist/vviinn-widgets/p-606ff863.js +1 -0
  54. package/dist/vviinn-widgets/p-9cc6f0dd.entry.js +1 -0
  55. package/{www/build/p-ce96f232.js → dist/vviinn-widgets/p-ac0a2989.js} +1 -1
  56. package/dist/vviinn-widgets/p-ad29e9c5.entry.js +1 -0
  57. package/{www/build/p-a66512b2.js → dist/vviinn-widgets/p-b4caf042.js} +1 -1
  58. package/dist/vviinn-widgets/p-b547a6d0.entry.js +1 -0
  59. package/dist/vviinn-widgets/{p-7d5af04d.js → p-c853cba8.js} +1 -1
  60. package/dist/vviinn-widgets/p-d2097302.entry.js +1 -0
  61. package/dist/vviinn-widgets/p-d8d49616.entry.js +1 -0
  62. package/dist/vviinn-widgets/p-f582db5c.js +1 -0
  63. package/dist/vviinn-widgets/{p-9c7297c8.entry.js → p-f9410382.entry.js} +1 -1
  64. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  65. package/package.json +3 -3
  66. package/www/build/{p-2d4cb17f.entry.js → p-0a9cee09.entry.js} +1 -1
  67. package/www/build/p-28678772.js +1 -0
  68. package/www/build/{p-07d8ba79.entry.js → p-2e6ecda7.entry.js} +1 -1
  69. package/www/build/{p-dc2da207.js → p-47183c9a.js} +1 -1
  70. package/www/build/p-535611cd.entry.js +1 -0
  71. package/www/build/p-606ff863.js +1 -0
  72. package/www/build/p-7c313f33.js +125 -0
  73. package/www/build/p-9cc6f0dd.entry.js +1 -0
  74. package/{dist/vviinn-widgets/p-ce96f232.js → www/build/p-ac0a2989.js} +1 -1
  75. package/www/build/p-ad29e9c5.entry.js +1 -0
  76. package/{dist/vviinn-widgets/p-a66512b2.js → www/build/p-b4caf042.js} +1 -1
  77. package/www/build/p-b547a6d0.entry.js +1 -0
  78. package/www/build/{p-7d5af04d.js → p-c853cba8.js} +1 -1
  79. package/www/build/p-d2097302.entry.js +1 -0
  80. package/www/build/p-d8d49616.entry.js +1 -0
  81. package/www/build/p-e0153ae2.css +6 -0
  82. package/www/build/p-f582db5c.js +1 -0
  83. package/www/build/{p-9c7297c8.entry.js → p-f9410382.entry.js} +1 -1
  84. package/www/build/vviinn-widgets.esm.js +1 -1
  85. package/www/index.html +1 -1
  86. package/dist/vviinn-widgets/p-196479f9.js +0 -1
  87. package/dist/vviinn-widgets/p-ae524f97.entry.js +0 -1
  88. package/dist/vviinn-widgets/p-fce4183d.entry.js +0 -1
  89. package/www/build/p-196479f9.js +0 -1
  90. package/www/build/p-32bb0615.js +0 -1
  91. package/www/build/p-a67898be.css +0 -1
  92. package/www/build/p-ae524f97.entry.js +0 -1
  93. package/www/build/p-fce4183d.entry.js +0 -1
@@ -21,7 +21,7 @@ function _interopNamespace(e) {
21
21
  }
22
22
 
23
23
  const NAMESPACE = 'vviinn-widgets';
24
- const Env = /* vviinn-widgets */ {"packageVersion":"2.4.1","packageName":"vviinn-widgets","environment":"local"};
24
+ const Env = /* vviinn-widgets */ {"packageVersion":"2.4.2","packageName":"vviinn-widgets","environment":"local"};
25
25
 
26
26
  let scopeId;
27
27
  let hostTagName;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index-e8cf5dc5.js');
3
+ const index = require('./index-61403ab1.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,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-e8cf5dc5.js');
6
- const appGlobals = require('./app-globals-d999d944.js');
5
+ const index = require('./index-61403ab1.js');
6
+ const appGlobals = require('./app-globals-474864e0.js');
7
7
 
8
8
  /*
9
9
  Stencil Client Patch Esm v2.9.0 | MIT Licensed | https://stenciljs.com
@@ -16,7 +16,7 @@ const defineCustomElements = (win, options) => {
16
16
  if (typeof window === 'undefined') return Promise.resolve();
17
17
  return patchEsm().then(() => {
18
18
  appGlobals.globalScripts();
19
- return index.bootstrapLazy([["cropper-handler_27.cjs",[[1,"vviinn-vps-widget",{"token":[1],"apiPath":[1,"api-path"],"active":[1028],"currencySign":[1,"currency-sign"],"locale":[1],"slidePosition":[32],"width":[32],"wrongImageFormat":[32]},[[0,"recommendationView","trackRecommendationView"],[0,"recommendationClick","trackRecommendationClick"],[0,"cropperChanged","trachSearchAreaChanges"],[0,"detectedObjectClicked","trackDetectedObject"],[0,"filterSelected","trackFilter"]]],[1,"vviinn-image-view"],[1,"vviinn-onboarding"],[1,"vviinn-example-images",null,[[0,"exampleImageSelected","handleImageSelection"],[0,"exampleImageError","handleImageSelectionError"]]],[1,"vviinn-overlayed-modal",{"active":[4]}],[1,"vviinn-empty-results"],[1,"vviinn-image-selector"],[1,"vviinn-server-error"],[1,"vviinn-wrong-format"],[1,"search-filters",{"filter":[16],"selectedCategoryId":[32],"hideFilters":[32]}],[1,"vviinn-privacy-badge"],[1,"vviinn-teaser"],[1,"image-cropper",{"disabled":[4],"handleMove":[32]}],[1,"vviinn-example-image",{"src":[1],"width":[2],"height":[2],"selected":[32]}],[1,"highlight-box"],[1,"vviinn-detected-object",{"detectedObject":[16],"position":[32]}],[1,"vviinn-modal",{"active":[1540],"slider":[32]}],[1,"vviinn-onboarding-card-1"],[1,"vviinn-onboarding-card-2"],[1,"vviinn-onboarding-card-3"],[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]}],[1,"cropper-handler",{"handler":[16],"disabled":[4]}],[1,"vviinn-error"],[1,"vviinn-preloader"],[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"],"index":[2],"imageLoaded":[32]}]]],["vviinn-vps-button.cjs",[[1,"vviinn-vps-button",{"token":[1],"currencySign":[1,"currency-sign"],"locale":[1],"apiPath":[1,"api-path"],"pressed":[32]},[[0,"modalClosed","handleModalClosed"]]]]],["vviinn-carousel_2.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],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showScroll":[4,"show-scroll"],"cssUrl":[1,"css-url"],"recommendations":[32],"loaded":[32]},[[0,"productImageLoaded","handleImageLoading"],[0,"recommendationView","trackRecommendationView"],[0,"recommendationClick","trackRecommendationClick"]]],[0,"vviinn-carousel",{"mode":[1],"imageWidth":[2,"image-width"],"showScroll":[4,"show-scroll"],"recommendations":[16],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32]}]]],["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"],"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"]}]]]], options);
19
+ return index.bootstrapLazy([["cropper-handler.cjs",[[1,"cropper-handler",{"handler":[16],"disabled":[4]}]]],["vviinn-error.cjs",[[1,"vviinn-error"]]],["vviinn-preloader.cjs",[[1,"vviinn-preloader"]]],["vviinn-carousel_3.cjs",[[1,"vviinn-vpr-widget",{"blockTitle":[1,"block-title"],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"productId":[1,"product-id"],"token":[1],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"mode":[1],"campaignType":[1,"campaign-type"],"locale":[1],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showScroll":[4,"show-scroll"],"cssUrl":[1,"css-url"],"recommendations":[32],"loaded":[32]},[[0,"productImageLoaded","handleImageLoading"],[0,"recommendationView","trackRecommendationView"],[0,"recommendationClick","trackRecommendationClick"]]],[0,"vviinn-carousel",{"mode":[1],"imageWidth":[2,"image-width"],"showScroll":[4,"show-scroll"],"recommendations":[16],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[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"],"index":[2],"imageLoaded":[32]}]]],["highlight-box_22.cjs",[[1,"vviinn-image-view"],[1,"vviinn-onboarding"],[1,"vviinn-example-images",null,[[0,"exampleImageSelected","handleImageSelection"],[0,"exampleImageError","handleImageSelectionError"]]],[1,"vviinn-overlayed-modal",{"active":[4]}],[1,"vviinn-empty-results"],[1,"vviinn-image-selector"],[1,"vviinn-server-error"],[1,"vviinn-wrong-format"],[1,"search-filters",{"filter":[16],"selectedCategoryId":[32],"hideFilters":[32]}],[1,"vviinn-privacy-badge"],[1,"vviinn-teaser"],[1,"image-cropper",{"disabled":[4],"handleMove":[32]}],[1,"vviinn-example-image",{"src":[1],"width":[2],"height":[2],"selected":[32]}],[1,"highlight-box"],[1,"vviinn-detected-object",{"detectedObject":[16],"position":[32]}],[1,"vviinn-modal",{"active":[1540],"slider":[32]}],[1,"vviinn-onboarding-card-1"],[1,"vviinn-onboarding-card-2"],[1,"vviinn-onboarding-card-3"],[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]}]]],["vviinn-vps-widget.cjs",[[1,"vviinn-vps-widget",{"token":[1],"apiPath":[1,"api-path"],"active":[1028],"currencySign":[1,"currency-sign"],"locale":[1],"slidePosition":[32],"width":[32],"wrongImageFormat":[32]},[[0,"recommendationView","trackRecommendationView"],[0,"recommendationClick","trackRecommendationClick"],[0,"cropperChanged","trachSearchAreaChanges"],[0,"detectedObjectClicked","trackDetectedObject"],[0,"filterSelected","trackFilter"]]]]],["vviinn-vps-button.cjs",[[1,"vviinn-vps-button",{"token":[1],"currencySign":[1,"currency-sign"],"locale":[1],"apiPath":[1,"api-path"],"pressed":[32]},[[0,"modalClosed","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"],"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"]}]]]], options);
20
20
  });
21
21
  };
22
22
 
@@ -2,9 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-e8cf5dc5.js');
6
- const index$1 = require('./index-c0d08aca.js');
7
- const index$2 = require('./index-53400160.js');
5
+ const index = require('./index-61403ab1.js');
6
+ const imageSearch_store = require('./imageSearch.store-076370bf.js');
7
+ const index$1 = require('./index-a87f1a44.js');
8
+ const Handler = require('./Handler-d1a8a86a.js');
9
+ const index$2 = require('./index-34d20028.js');
8
10
 
9
11
  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;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;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.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)}}";
10
12
 
@@ -192,7 +194,7 @@ let VviinnCarousel = class {
192
194
  }
193
195
  renderGrid() {
194
196
  const recommendations = this.renderRecommendationsElements();
195
- const grouppedContent = index$1._Array.chunksOf(this.getColumnsNumber())(recommendations);
197
+ const grouppedContent = imageSearch_store._Array.chunksOf(this.getColumnsNumber())(recommendations);
196
198
  return this.renderRecommendationGroups(grouppedContent);
197
199
  }
198
200
  renderBullets() {
@@ -204,12 +206,196 @@ let VviinnCarousel = class {
204
206
  }, onClick: () => this.scroll(index$1) })));
205
207
  }
206
208
  render() {
207
- return (index.h(index.Host, { class: this.getClassMap() }, index.h("div", { class: Object.assign({ body: true }, this.getClassMap()) }, index.h("button", { class: "prev", onClick: () => this.showPrev(), part: "carousel-button" }, index.h(index$2.ChevronIcon, null)), index.h("div", { class: this.getContentClassMap(), onScroll: () => this.processScrollbarWidth() }, this.renderRecommendations()), index.h("button", { class: "next", onClick: () => this.showNext(), part: "carousel-button" }, index.h(index$2.ChevronIcon, null))), this.showBullets() ? (index.h("div", { class: "bullets" }, this.renderBullets())) : ("")));
209
+ return (index.h(index.Host, { class: this.getClassMap() }, index.h("div", { class: Object.assign({ body: true }, this.getClassMap()) }, index.h("button", { class: "prev", onClick: () => this.showPrev(), part: "carousel-button" }, index.h(index$1.ChevronIcon, null)), index.h("div", { class: this.getContentClassMap(), onScroll: () => this.processScrollbarWidth() }, this.renderRecommendations()), index.h("button", { class: "next", onClick: () => this.showNext(), part: "carousel-button" }, index.h(index$1.ChevronIcon, null))), this.showBullets() ? (index.h("div", { class: "bullets" }, this.renderBullets())) : ("")));
208
210
  }
209
211
  get el() { return index.getElement(this); }
210
212
  };
211
213
  VviinnCarousel.style = vviinnCarouselCss;
212
214
 
215
+ class GtagAnalytics {
216
+ sendImpression(product) {
217
+ var _a, _b, _c;
218
+ gtag('event', 'view_item_list', {
219
+ items: [
220
+ {
221
+ id: product.productId,
222
+ name: product.title,
223
+ brand: (_a = product.brand) !== null && _a !== void 0 ? _a : '',
224
+ category: (_b = product.productType) !== null && _b !== void 0 ? _b : '',
225
+ list_name: 'VI VPR View',
226
+ price: Math.min(...[product.price.actual, (_c = product.price.sale) !== null && _c !== void 0 ? _c : Infinity])
227
+ }
228
+ ]
229
+ });
230
+ return undefined;
231
+ }
232
+ sendClick(product) {
233
+ var _a, _b, _c;
234
+ gtag('event', 'select_content', {
235
+ content_type: 'product',
236
+ items: [
237
+ {
238
+ id: product.productId,
239
+ name: product.title,
240
+ brand: (_a = product.brand) !== null && _a !== void 0 ? _a : '',
241
+ category: (_b = product.productType) !== null && _b !== void 0 ? _b : '',
242
+ list_name: 'VI VPR View',
243
+ price: Math.min(...[product.price.actual, (_c = product.price.sale) !== null && _c !== void 0 ? _c : Infinity])
244
+ }
245
+ ]
246
+ });
247
+ return undefined;
248
+ }
249
+ }
250
+
251
+ class GAnalytics {
252
+ constructor() {
253
+ ga('require', 'ec');
254
+ }
255
+ convertProduct(product) {
256
+ var _a, _b, _c;
257
+ return {
258
+ id: product.productId,
259
+ name: product.title,
260
+ brand: (_a = product.brand) !== null && _a !== void 0 ? _a : '',
261
+ category: (_b = product.productType) !== null && _b !== void 0 ? _b : '',
262
+ list: 'VI VPR View',
263
+ price: Math.min(...[product.price.actual, (_c = product.price.sale) !== null && _c !== void 0 ? _c : Infinity])
264
+ };
265
+ }
266
+ sendImpression(product) {
267
+ ga('ec:addImpression', this.convertProduct(product));
268
+ return undefined;
269
+ }
270
+ sendClick(product) {
271
+ var _a, _b, _c;
272
+ ga('ec:addProduct', {
273
+ id: product.productId,
274
+ name: product.title,
275
+ brand: (_a = product.brand) !== null && _a !== void 0 ? _a : '',
276
+ category: (_b = product.productType) !== null && _b !== void 0 ? _b : '',
277
+ price: Math.min(...[product.price.actual, (_c = product.price.sale) !== null && _c !== void 0 ? _c : Infinity])
278
+ });
279
+ ga('ec:setAction', 'click', { list: 'VI VPR View' });
280
+ return undefined;
281
+ }
282
+ }
283
+
284
+ const getGtagAnalytics = () => imageSearch_store._function.pipe(imageSearch_store.Option.fromNullable(window.gtag), imageSearch_store.Option.map(() => new GtagAnalytics()));
285
+ const getCommonAnalytics = () => imageSearch_store._function.pipe(imageSearch_store.Option.fromNullable(window.ga), imageSearch_store.Option.map(() => new GAnalytics()));
286
+ const analyticsMonoid = imageSearch_store.Option.getMonoid(imageSearch_store.Semigroup.first());
287
+ const getAnalyticsModule = analyticsMonoid.concat(getGtagAnalytics(), getCommonAnalytics());
288
+
289
+ const FIT_EXPR = /fit\/\d+\//;
290
+ const containsFit = (url) => {
291
+ return imageSearch_store._function.pipe(url.match(FIT_EXPR), imageSearch_store.Either.fromNullable(url), imageSearch_store.Either.map(() => url));
292
+ };
293
+ const processWidth = (url, size) => {
294
+ return imageSearch_store._function.pipe(containsFit(url), imageSearch_store.Either.map((url) => url.replace(FIT_EXPR, `fit/${size}/`)), imageSearch_store.Either.getOrElse(() => url));
295
+ };
296
+ const Linked = (props, child) => props.deeplink ? (index.h("a", { class: props.part, part: props.part, href: props.deeplink }, child)) : (child);
297
+ const FormattedPrice = (props) => {
298
+ var _a;
299
+ const locale = props.locale;
300
+ const formattedPrice = new Intl.NumberFormat(locale, {
301
+ minimumFractionDigits: 2,
302
+ }).format(props.price);
303
+ const fullPrice = `${(_a = props.prefix) !== null && _a !== void 0 ? _a : ""} ${formattedPrice} ${props.currency}`;
304
+ return (index.h("span", { class: "price-amount", part: "price-amount" }, fullPrice));
305
+ };
306
+ const Price = (props) => {
307
+ const priceEl = (index.h(FormattedPrice, { prefix: props.prefix, currency: props.currency, price: props.price, locale: props.locale }));
308
+ return (index.h("span", { class: "price-container", part: "price-container" }, props.salePrice ? ([
309
+ index.h("span", { class: "price-sale", part: "price-sale" },
310
+ index.h(FormattedPrice, { prefix: props.prefix, currency: props.currency, price: props.salePrice, locale: props.locale })),
311
+ index.h("span", { class: "price-outdated", part: "price-outdated" }, priceEl),
312
+ ]) : (index.h("span", { class: "price-regular", part: "price-regular" }, priceEl))));
313
+ };
314
+ const Image = (props, onLoadEnd = () => undefined) => (index.h("picture", null,
315
+ index.h("img", { loading: props.lazy ? "lazy" : "eager", part: "image", class: "image", width: props.width, height: props.height, src: processWidth(props.src, props.width), alt: props.title, onLoad: onLoadEnd })));
316
+ const ResponsiveImage = (props, onLoadEnd = () => undefined) => (index.h("picture", null,
317
+ index.h("img", { loading: props.lazy ? "lazy" : "eager", part: "image", class: "image responsive", src: processWidth(props.src, props.width), alt: props.title, onLoad: onLoadEnd })));
318
+
319
+ 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}";
320
+
321
+ let VviinnProductCard = class {
322
+ constructor(hostRef) {
323
+ index.registerInstance(this, hostRef);
324
+ this.recommendationLoad = index.createEvent(this, "recommendationLoad", 7);
325
+ this.recommendationView = index.createEvent(this, "recommendationView", 7);
326
+ this.recommendationClick = index.createEvent(this, "recommendationClick", 7);
327
+ this.productImageLoaded = index.createEvent(this, "productImageLoaded", 7);
328
+ this.currency = undefined;
329
+ this.imageRatio = 1;
330
+ this.imageWidth = 200;
331
+ this.locale = undefined;
332
+ this.pricePrefix = undefined;
333
+ this.responsive = false;
334
+ this.dimmedBackground = false;
335
+ /** @internal */
336
+ this.index = 0;
337
+ this.imageLoaded = false;
338
+ this.productData = null;
339
+ this.intersectionObserver = new IntersectionObserver(this.intersectionCallback.bind(this), { threshold: 1.0 });
340
+ }
341
+ connectedCallback() {
342
+ this.productData = {
343
+ product: this.productId,
344
+ rank: this.index
345
+ };
346
+ }
347
+ intersectionCallback(data) {
348
+ if (data.some((entry) => entry.isIntersecting)) {
349
+ imageSearch_store._function.pipe(getAnalyticsModule, imageSearch_store.Option.map((analytics) => analytics.sendImpression(this.getProduct())));
350
+ this.recommendationView.emit(this.productData);
351
+ this.intersectionObserver.disconnect();
352
+ }
353
+ }
354
+ componentDidLoad() {
355
+ this.recommendationLoad.emit(this.productData);
356
+ this.intersectionObserver.observe(this.el);
357
+ const links = this.el.shadowRoot.querySelectorAll("a");
358
+ links.forEach((link) => link.addEventListener("mousedown", (event) => {
359
+ this.recommendationClick.emit(this.productData);
360
+ if (window.ga) {
361
+ event.preventDefault();
362
+ }
363
+ imageSearch_store._function.pipe(getAnalyticsModule, imageSearch_store.Option.match(() => null, (analytics) => analytics.sendClick(this.getProduct())));
364
+ if (window.ga) {
365
+ ga("send", "event", "UX", "click", "Results", {
366
+ hitCallback: function () {
367
+ document.location.href = this.deeplink;
368
+ },
369
+ });
370
+ }
371
+ }));
372
+ }
373
+ getProduct() {
374
+ return imageSearch_store.imageSearchState.results.find((r) => r.productId === this.productId);
375
+ }
376
+ renderImage() {
377
+ const props = {
378
+ width: this.imageWidth,
379
+ height: this.imageWidth * this.imageRatio,
380
+ src: this.image,
381
+ title: this.productTitle,
382
+ lazy: false,
383
+ };
384
+ return this.responsive
385
+ ? ResponsiveImage(props, () => this.kek())
386
+ : Image(props, () => this.kek());
387
+ }
388
+ kek() {
389
+ this.productImageLoaded.emit(this.productId);
390
+ }
391
+ render() {
392
+ var _a, _b, _c;
393
+ return (index.h(index.Host, { part: "product-card", class: { dimmed: this.dimmedBackground }, exportparts: "brand, currency, deeplink, image, image-link, price-amount, price-container, price-outdated, price-prefix, price-regular, price-sale, 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 })));
394
+ }
395
+ get el() { return index.getElement(this); }
396
+ };
397
+ VviinnProductCard.style = vviinnProductCardCss;
398
+
213
399
  const createBearerString = (x) => `Bearer ${x}`;
214
400
  const createAuthedHeader = (x) => new Headers({
215
401
  Authorization: x,
@@ -219,7 +405,7 @@ const createFetchAuthOptions = (x) => {
219
405
  headers: x,
220
406
  };
221
407
  };
222
- const createBearAuthedHeader = index$1._function.flow(createBearerString, createAuthedHeader, createFetchAuthOptions);
408
+ const createBearAuthedHeader = imageSearch_store._function.flow(createBearerString, createAuthedHeader, createFetchAuthOptions);
223
409
 
224
410
  const isVPR = (c) => c._tag === "VPR";
225
411
  function fold(onVPR, onVCS) {
@@ -229,8 +415,8 @@ function fromString(s) {
229
415
  return s === "VPR" ? { _tag: "VPR" } : { _tag: "VCS" };
230
416
  }
231
417
 
232
- const sequenceToEither = index$1.sequenceT(index$1.Apply);
233
- const apiGet = (path, data = {}) => index$1.pipe(sequenceToEither(index$1.getApiPath(), index$1.createInitGetRequest), index$1.fromEither, index$1.chainW(index$1.makeRequest(path, data)));
418
+ const sequenceToEither = imageSearch_store.sequenceT(imageSearch_store.Apply);
419
+ const apiGet = (path, data = {}) => Handler.pipe(sequenceToEither(imageSearch_store.getApiPath(), imageSearch_store.createInitGetRequest), imageSearch_store.fromEither, imageSearch_store.chainW(imageSearch_store.makeRequest(path, data)));
234
420
 
235
421
  const getVPRRecommendations = (productId) => (options) => {
236
422
  const url = `product/${productId}/similar-products`;
@@ -242,7 +428,7 @@ const getVCSRecommendations = (productId) => (options) => {
242
428
  return apiGet(url, options);
243
429
  };
244
430
 
245
- const getRecommendationsService = (campaignType) => index$1._function.pipe(fromString(campaignType), fold(() => getVPRRecommendations, () => getVCSRecommendations));
431
+ const getRecommendationsService = (campaignType) => imageSearch_store._function.pipe(fromString(campaignType), fold(() => getVPRRecommendations, () => getVCSRecommendations));
246
432
 
247
433
  function isFunction(value) {
248
434
  return typeof value === 'function';
@@ -889,42 +1075,42 @@ let VviinnVprWidget = class {
889
1075
  this.getRecommendations();
890
1076
  }
891
1077
  handleApiPathChange(newPath) {
892
- index$1.state.apiPath = newPath;
1078
+ imageSearch_store.state.apiPath = newPath;
893
1079
  this.getRecommendations();
894
1080
  }
895
1081
  handleImageLoading({ detail }) {
896
1082
  this.productImageLoadedSubject.next(detail);
897
1083
  }
898
1084
  trackRecommendationView({ detail }) {
899
- const recommendationViewEvent = index$1.createProductViewVprEvent(Object.assign({ session_id: this.uiSessionId }, detail));
1085
+ const recommendationViewEvent = index$2.createProductViewVprEvent(Object.assign({ session_id: this.uiSessionId }, detail));
900
1086
  this.trackingApi.trackEvent(recommendationViewEvent);
901
1087
  }
902
1088
  trackRecommendationClick({ detail }) {
903
- const recommendationClickEvent = index$1.createProductViewVprEvent(Object.assign({ session_id: this.uiSessionId }, detail));
1089
+ const recommendationClickEvent = index$2.createProductViewVprEvent(Object.assign({ session_id: this.uiSessionId }, detail));
904
1090
  this.trackingApi.trackEvent(recommendationClickEvent);
905
1091
  }
906
1092
  connectedCallback() {
907
- index$1.state.apiPath = this.apiPath;
908
- index$1.state.currencySign = this.currencySign;
909
- index$1.state.locale = this.locale;
910
- this.uiSessionId = index$1.v4();
911
- this.trackingApi = index$1.createTrackingApi(this.apiPath, this.token);
912
- const widgetOpenEvent = index$1.createWidgetVprEvent({
1093
+ imageSearch_store.state.apiPath = this.apiPath;
1094
+ imageSearch_store.state.currencySign = this.currencySign;
1095
+ imageSearch_store.state.locale = this.locale;
1096
+ this.uiSessionId = index$2.v4();
1097
+ this.trackingApi = index$2.createTrackingApi(this.apiPath, this.token);
1098
+ const widgetOpenEvent = index$2.createWidgetVprEvent({
913
1099
  action: "open",
914
1100
  session_id: this.uiSessionId,
915
1101
  });
916
1102
  this.trackingApi.trackEvent(widgetOpenEvent);
917
1103
  }
918
1104
  disconnectedCallback() {
919
- const widgetCloseEvent = index$1.createWidgetVprEvent({
1105
+ const widgetCloseEvent = index$2.createWidgetVprEvent({
920
1106
  action: "close",
921
1107
  session_id: this.uiSessionId,
922
1108
  });
923
1109
  this.trackingApi.trackEvent(widgetCloseEvent);
924
1110
  }
925
1111
  async componentWillLoad() {
926
- index$1.state.pricePrefix = this.pricePrefix;
927
- index$1.state.currencySign = this.currencySign;
1112
+ imageSearch_store.state.pricePrefix = this.pricePrefix;
1113
+ imageSearch_store.state.currencySign = this.currencySign;
928
1114
  this.getRecommendations();
929
1115
  }
930
1116
  async getRecommendations() {
@@ -932,9 +1118,9 @@ let VviinnVprWidget = class {
932
1118
  return;
933
1119
  const campaignType = this.campaignType.length > 0 ? this.campaignType : "VPR";
934
1120
  const headers = createBearAuthedHeader(this.token);
935
- const request = index$1._function.pipe(index$1.TaskEither.of(getRecommendationsService(campaignType)), index$1.TaskEither.ap(index$1.TaskEither.of(this.productId)), index$1.TaskEither.ap(index$1.TaskEither.of(headers)), index$1.TaskEither.flatten);
1121
+ const request = imageSearch_store._function.pipe(imageSearch_store.TaskEither.of(getRecommendationsService(campaignType)), imageSearch_store.TaskEither.ap(imageSearch_store.TaskEither.of(this.productId)), imageSearch_store.TaskEither.ap(imageSearch_store.TaskEither.of(headers)), imageSearch_store.TaskEither.flatten);
936
1122
  const runRequest = await request();
937
- index$1._function.pipe(runRequest, index$1.Either.fold((error) => this.handleError(error), (data) => this.handleRecommendationsSucces(data)));
1123
+ imageSearch_store._function.pipe(runRequest, imageSearch_store.Either.fold((error) => this.handleError(error), (data) => this.handleRecommendationsSucces(data)));
938
1124
  }
939
1125
  handleError(error) {
940
1126
  console.log("ERROR:", error);
@@ -942,7 +1128,7 @@ let VviinnVprWidget = class {
942
1128
  handleRecommendationsSucces(data) {
943
1129
  var _a;
944
1130
  this.recommendations = (_a = data === null || data === void 0 ? void 0 : data.extended) !== null && _a !== void 0 ? _a : data;
945
- index$1.imageSearchState.results = this.recommendations;
1131
+ imageSearch_store.imageSearchState.results = this.recommendations;
946
1132
  this.loaded = true;
947
1133
  this.productIds = this.recommendations.map((r) => r.productId);
948
1134
  this.productImageLoadedSubject.subscribe((id) => {
@@ -963,7 +1149,7 @@ let VviinnVprWidget = class {
963
1149
  loaded: this.loaded,
964
1150
  empty: this.recommendations.length == 0,
965
1151
  [this.mode]: true,
966
- }, "aria-hidden": this.loaded ? "false" : "true" }, this.renderExternalCSS(), index.h("style", null, index$1.state.fallbackStyles), index.h("h2", { part: "recommendations-title" }, this.blockTitle), this.useCarousel ? this.renderCarousel() : this.renderResults()));
1152
+ }, "aria-hidden": this.loaded ? "false" : "true" }, this.renderExternalCSS(), index.h("style", null, imageSearch_store.state.fallbackStyles), index.h("h2", { part: "recommendations-title" }, this.blockTitle), this.useCarousel ? this.renderCarousel() : this.renderResults()));
967
1153
  }
968
1154
  renderRecommendation(recommendation, index$1) {
969
1155
  return (index.h("vviinn-product-card", { part: "product-part", productId: recommendation.productId, productTitle: recommendation.title, 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(), index: index$1 }));
@@ -987,4 +1173,5 @@ let VviinnVprWidget = class {
987
1173
  VviinnVprWidget.style = vviinnVprWidgetCss;
988
1174
 
989
1175
  exports.vviinn_carousel = VviinnCarousel;
1176
+ exports.vviinn_product_card = VviinnProductCard;
990
1177
  exports.vviinn_vpr_widget = VviinnVprWidget;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-61403ab1.js');
6
+
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
+
9
+ let VviinnError = class {
10
+ constructor(hostRef) {
11
+ index.registerInstance(this, hostRef);
12
+ }
13
+ render() {
14
+ return (index.h(index.Host, null, index.h("slot", { name: "icon" }), index.h("slot", { name: "title" }), index.h("slot", { name: "text" }), index.h("slot", { name: "action" })));
15
+ }
16
+ };
17
+ VviinnError.style = vviinnErrorCss;
18
+
19
+ exports.vviinn_error = VviinnError;
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-61403ab1.js');
6
+ const imageSearch_store = require('./imageSearch.store-076370bf.js');
7
+ require('./Handler-d1a8a86a.js');
8
+
9
+ const vviinnPreloaderCss = ":host{--preloader-size:24px;--preloader-width:calc(var(--preloader-size) / 6);transform-origin:center;-webkit-animation:rotate 3s linear infinite;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}@-webkit-keyframes rotate{from{transform:rotate(-360deg)}to{transform:rotate(360deg)}}@keyframes rotate{from{transform:rotate(-360deg)}to{transform:rotate(360deg)}}";
10
+
11
+ let VviinnPreloader = class {
12
+ constructor(hostRef) {
13
+ index.registerInstance(this, hostRef);
14
+ }
15
+ isActive() {
16
+ return (imageSearch_store.imageSearchState.loading || imageSearch_store.imageSearchState.objectDetectionInProgress);
17
+ }
18
+ render() {
19
+ return (index.h(index.Host, { class: {
20
+ active: this.isActive(),
21
+ } }));
22
+ }
23
+ };
24
+ VviinnPreloader.style = vviinnPreloaderCss;
25
+
26
+ exports.vviinn_preloader = VviinnPreloader;
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-e8cf5dc5.js');
6
- const index$1 = require('./index-53400160.js');
5
+ const index = require('./index-61403ab1.js');
6
+ const index$1 = require('./index-a87f1a44.js');
7
7
 
8
8
  const recommendationsSidebarCss = ":host{--vviinn-carousel-columns:0;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}:host(.right) main{overflow:auto}.sidebar{background:white;box-sizing:border-box;display:flex;flex-direction:column}:host(.bottom.idle) .sidebar,:host(.bottom.closed) .sidebar{transform:translateY(100%)}:host(.bottom.closed) .sidebar{-webkit-animation-name:slideOutFromBottom;animation-name:slideOutFromBottom;-webkit-animation-duration:0.5s;animation-duration:0.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}:host(.bottom.open) .sidebar{-webkit-animation-name:slideInFromBottom;animation-name:slideInFromBottom;-webkit-animation-duration:0.5s;animation-duration:0.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}:host(.right.idle) .sidebar{transform:translateX(100%)}:host(.right.closed) .sidebar{-webkit-animation-name:slideOutFromRight;animation-name:slideOutFromRight;-webkit-animation-duration:0.5s;animation-duration:0.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}:host(.right.open) .sidebar{-webkit-animation-name:slideInFromRight;animation-name:slideInFromRight;-webkit-animation-duration:0.5s;animation-duration:0.5s;-webkit-animation-fill-mode:forwards;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}@-webkit-keyframes slideInFromBottom{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInFromBottom{from{transform:translateY(100%)}to{transform:translateY(0)}}@-webkit-keyframes slideOutFromBottom{from{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes slideOutFromBottom{from{transform:translateY(0)}to{transform:translateY(100%)}}@-webkit-keyframes slideInFromRight{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slideInFromRight{from{transform:translateX(100%)}to{transform:translateX(0)}}@-webkit-keyframes slideOutFromRight{from{transform:translateX(0)}to{transform:translateX(100%)}}@keyframes slideOutFromRight{from{transform:translateX(0)}to{transform:translateX(100%)}}";
9
9
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-e8cf5dc5.js');
6
- const index$1 = require('./index-53400160.js');
5
+ const index = require('./index-61403ab1.js');
6
+ const index$1 = require('./index-a87f1a44.js');
7
7
 
8
8
  const vviinnVprButtonCss = ":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}.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,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-e8cf5dc5.js');
6
- const index$1 = require('./index-53400160.js');
7
- const customizedSlots = require('./customized-slots-90e8e849.js');
5
+ const index = require('./index-61403ab1.js');
6
+ const index$1 = require('./index-a87f1a44.js');
7
+ const customizedSlots = require('./customized-slots-0aa6c3d6.js');
8
8
 
9
9
  const vviinnVpsButtonCss = ":host{cursor:pointer}";
10
10