vviinn-widgets 2.8.1 → 2.8.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 (80) hide show
  1. package/dist/cjs/cropper-handler_27.cjs.entry.js +21 -11
  2. package/dist/cjs/{customized-slots-68eeae0f.js → customized-slots-84e1c444.js} +1 -1
  3. package/dist/cjs/{index-42b99955.js → index-1077e27c.js} +13 -2
  4. package/dist/cjs/{index-3e5bfdde.js → index-4ea3a37f.js} +1 -1
  5. package/dist/cjs/{index-eed9118c.js → index-b2b8f092.js} +1 -1
  6. package/dist/cjs/loader.cjs.js +2 -4
  7. package/dist/cjs/vviinn-carousel_2.cjs.entry.js +3 -3
  8. package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js +2 -2
  9. package/dist/cjs/vviinn-vpr-button.cjs.entry.js +2 -2
  10. package/dist/cjs/vviinn-vps-button.cjs.entry.js +3 -3
  11. package/dist/cjs/vviinn-widgets.cjs.js +2 -4
  12. package/dist/collection/components/image-search/image-view/image-cropper/cropper-handler/cropper-handler.js +2 -6
  13. package/dist/collection/components/image-search/image-view/image-cropper/image-cropper.js +2 -7
  14. package/dist/collection/components/vviinn-example-images/vviinn-example-image/vviinn-example-image.css +4 -1
  15. package/dist/collection/components/vviinn-example-images/vviinn-example-image/vviinn-example-image.js +27 -3
  16. package/dist/collection/components/vviinn-example-images/vviinn-example-images.js +12 -7
  17. package/dist/collection/components/vviinn-image-view/vviinn-image-view.js +3 -7
  18. package/dist/collection/components/vviinn-product-card/vviinn-product-card.js +2 -6
  19. package/dist/collection/components/vviinn-vpr-button/stories/args.js +12 -8
  20. package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.css +5 -0
  21. package/dist/collection/components/vviinn-vpr-widget/stories/vviinn-vpr-widget.stories.js +0 -1
  22. package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.css +6 -0
  23. package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +15 -15
  24. package/dist/collection/components/vviinn-vps-widget/stories/vviinn-vps-widget.stories.js +1 -0
  25. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.css +6 -0
  26. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +18 -1
  27. package/dist/collection/global.js +1 -16
  28. package/dist/esm/cropper-handler_27.entry.js +21 -11
  29. package/dist/esm/{customized-slots-4d62f3b7.js → customized-slots-01387ced.js} +1 -1
  30. package/dist/esm/{index-6e7331d0.js → index-492f97b7.js} +1 -1
  31. package/dist/esm/{index-b7c3e969.js → index-65670ecf.js} +14 -2
  32. package/dist/esm/{index-ed092ade.js → index-84a46578.js} +1 -1
  33. package/dist/esm/loader.js +2 -4
  34. package/dist/esm/vviinn-carousel_2.entry.js +3 -3
  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-widgets.js +2 -4
  39. package/dist/types/components/vviinn-example-images/vviinn-example-image/vviinn-example-image.d.ts +2 -0
  40. package/dist/types/components/vviinn-example-images/vviinn-example-images.d.ts +2 -0
  41. package/dist/types/components/vviinn-vpr-button/stories/args.d.ts +8 -4
  42. package/dist/types/components/vviinn-vpr-button/stories/vviinn-vpr-button.stories.d.ts +8 -4
  43. package/dist/types/components/vviinn-vps-button/vviinn-vps-button.d.ts +15 -15
  44. package/dist/types/components/vviinn-vps-widget/stories/vviinn-vps-widget.stories.d.ts +1 -0
  45. package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +17 -0
  46. package/dist/types/components.d.ts +2 -0
  47. package/dist/vviinn-widgets/{p-4d5b33fb.entry.js → p-1a046662.entry.js} +1 -1
  48. package/dist/vviinn-widgets/{p-930c46ec.entry.js → p-1a7a4ee0.entry.js} +1 -1
  49. package/dist/vviinn-widgets/{p-e606146e.js → p-2573d0c3.js} +1 -1
  50. package/dist/vviinn-widgets/p-2732ae61.entry.js +1 -0
  51. package/dist/vviinn-widgets/{p-972de82b.js → p-90742d1c.js} +1 -1
  52. package/dist/vviinn-widgets/{p-44b45b18.js → p-9194527e.js} +1 -1
  53. package/dist/vviinn-widgets/p-af321db4.js +1 -0
  54. package/dist/vviinn-widgets/{p-5b75b530.entry.js → p-bd8d223e.entry.js} +1 -1
  55. package/dist/vviinn-widgets/{p-37183e6e.entry.js → p-c29c3636.entry.js} +1 -1
  56. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  57. package/package.json +4 -4
  58. package/www/build/{p-4d5b33fb.entry.js → p-1a046662.entry.js} +1 -1
  59. package/www/build/{p-930c46ec.entry.js → p-1a7a4ee0.entry.js} +1 -1
  60. package/www/build/{p-e606146e.js → p-2573d0c3.js} +1 -1
  61. package/www/build/p-2732ae61.entry.js +1 -0
  62. package/www/build/{p-972de82b.js → p-90742d1c.js} +1 -1
  63. package/www/build/{p-44b45b18.js → p-9194527e.js} +1 -1
  64. package/www/build/p-a67898be.css +1 -0
  65. package/www/build/p-af321db4.js +1 -0
  66. package/www/build/{p-5b75b530.entry.js → p-bd8d223e.entry.js} +1 -1
  67. package/www/build/p-bdca7ce2.js +1 -0
  68. package/www/build/{p-37183e6e.entry.js → p-c29c3636.entry.js} +1 -1
  69. package/www/build/vviinn-widgets.esm.js +1 -1
  70. package/www/index.html +1 -1
  71. package/dist/cjs/app-globals-c444baf0.js +0 -6912
  72. package/dist/esm/app-globals-54d3ff6c.js +0 -6910
  73. package/dist/vviinn-widgets/p-4243fcad.entry.js +0 -1
  74. package/dist/vviinn-widgets/p-7a5cb22d.js +0 -1
  75. package/dist/vviinn-widgets/p-a5997b62.js +0 -15
  76. package/www/build/p-4243fcad.entry.js +0 -1
  77. package/www/build/p-7a5cb22d.js +0 -1
  78. package/www/build/p-a5997b62.js +0 -15
  79. package/www/build/p-e0153ae2.css +0 -6
  80. package/www/build/p-f2781050.js +0 -125
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-42b99955.js');
6
- const index$1 = require('./index-3e5bfdde.js');
7
- const index$2 = require('./index-eed9118c.js');
8
- const customizedSlots = require('./customized-slots-68eeae0f.js');
5
+ const index = require('./index-1077e27c.js');
6
+ const index$1 = require('./index-4ea3a37f.js');
7
+ const index$2 = require('./index-b2b8f092.js');
8
+ const customizedSlots = require('./customized-slots-84e1c444.js');
9
9
 
10
10
  const cropperHandlerCss = ":host{--size:20px;background:transparent;border:4px solid white;box-sizing:content-box;display:block;height:var(--size);touch-action:none;position:absolute;width:var(--size);z-index:4;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.disabled){opacity:0.25}:host(.nw-resize){border-bottom:none;border-right:none;top:0;left:0}:host(.ne-resize){border-left:none;border-bottom:none;right:0;top:0}:host(.sw-resize){border-right:none;border-top:none;left:0;bottom:0}:host(.se-resize){border-left:none;border-top:none;bottom:0;right:0}";
11
11
 
@@ -95,7 +95,6 @@ let ImageCropper = class {
95
95
  this.mouseStartPoint = undefined;
96
96
  this.bounds = undefined;
97
97
  this.resizeObserver = new ResizeObserver(() => {
98
- console.log("resized");
99
98
  this.bounds = this.el.getBoundingClientRect();
100
99
  });
101
100
  }
@@ -334,7 +333,7 @@ let VviinnError = class {
334
333
  };
335
334
  VviinnError.style = vviinnErrorCss;
336
335
 
337
- const vviinnExampleImageCss = ":host{display:block;margin-bottom:8px;position:relative}img{width:100%;height:auto;cursor:pointer}.image-preloader{background:rgba(0, 0, 0, 0.25);border-radius:4px;bottom:12px;display:none;padding:4px 6px;pointer-events:none;position:absolute;right:12px;z-index:4}vviinn-preloader{--preloader-size:12px}@media (max-width: 640px){.image-preloader{display:block}}";
336
+ const vviinnExampleImageCss = ":host{display:block;margin-bottom:8px;position:relative}:host(:focus){border:2px solid var(--color-primary)}img{width:100%;height:auto;cursor:pointer}.image-preloader{background:rgba(0, 0, 0, 0.25);border-radius:4px;bottom:12px;display:none;padding:4px 6px;position:absolute;right:12px;z-index:4}vviinn-preloader{--preloader-size:12px}@media (max-width: 640px){.image-preloader{display:block}}";
338
337
 
339
338
  let VviinnExampleImage = class {
340
339
  constructor(hostRef) {
@@ -344,22 +343,28 @@ let VviinnExampleImage = class {
344
343
  this.src = "";
345
344
  this.width = 0;
346
345
  this.height = 0;
346
+ this.tabIndex = -1;
347
347
  this.selected = false;
348
348
  }
349
- async selectImage(_event) {
349
+ async selectImage() {
350
350
  this.selected = true;
351
351
  const file = await index$1.toFile(this.src);
352
352
  const processResult = await index$1.processSelectedFile(file);
353
353
  index$1._function.pipe(processResult, index$1.Either.match(() => this.exampleImageError.emit(), () => this.exampleImageSelected.emit()));
354
354
  this.selected = false;
355
355
  }
356
+ handleKeyPress({ key }) {
357
+ if (key !== "Enter" && key !== " ")
358
+ return;
359
+ this.selectImage();
360
+ }
356
361
  showPreloader() {
357
362
  return ((index$1.imageSearchState.objectDetectionInProgress ||
358
363
  index$1.imageSearchState.loading) &&
359
364
  this.selected);
360
365
  }
361
366
  render() {
362
- return (index.h(index.Host, null, this.showPreloader() ? (index.h("div", { class: "image-preloader" }, index.h("vviinn-preloader", null))) : null, index.h("img", { onClick: (ev) => this.selectImage(ev), src: this.src, width: this.width, height: this.height })));
367
+ return (index.h(index.Host, { tabindex: `${this.tabIndex}`, onClick: () => this.selectImage(), onKeyUp: (ev) => this.handleKeyPress(ev) }, this.showPreloader() ? (index.h("div", { class: "image-preloader" }, index.h("vviinn-preloader", null))) : null, index.h("img", { src: this.src, width: this.width, height: this.height })));
363
368
  }
364
369
  };
365
370
  VviinnExampleImage.style = vviinnExampleImageCss;
@@ -381,8 +386,13 @@ let VviinnExampleImages = class {
381
386
  componentWillLoad() {
382
387
  customizedSlots.slotChangeListener(this, this.el);
383
388
  }
389
+ delegateFocus() {
390
+ const firstSlot = this.imagesBlock.childNodes[0];
391
+ const firstExampleImage = firstSlot.childNodes[0];
392
+ firstExampleImage.focus();
393
+ }
384
394
  render() {
385
- return (index.h(index.Host, null, index.h("slot", { name: "vviinn-example-images-title" }, index.h("h3", null, "Mit den Beispielbildern die Suche direkt ausprobieren")), index.h("div", { class: "images" }, index.h("slot", { name: "vviinn-example-images-1" }, index.h("vviinn-example-image", { width: 480, height: 640, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDEtTC5qcGc=" })), index.h("slot", { name: "vviinn-example-images-2" }, index.h("vviinn-example-image", { width: 280, height: 480, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDItTS5qcGc=" })), index.h("slot", { name: "vviinn-example-images-3" }, index.h("vviinn-example-image", { width: 280, height: 480, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDMtTS5qcGc=" })), index.h("slot", { name: "vviinn-example-images-4" }, index.h("vviinn-example-image", { width: 480, height: 640, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDQtTC5qcGc=" })))));
395
+ return (index.h(index.Host, { onFocus: () => this.delegateFocus() }, index.h("slot", { name: "vviinn-example-images-title" }, index.h("h3", null, "Mit den Beispielbildern die Suche direkt ausprobieren")), index.h("div", { class: "images", ref: (el) => (this.imagesBlock = el) }, index.h("slot", { name: "vviinn-example-images-1" }, index.h("vviinn-example-image", { width: 480, height: 640, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDEtTC5qcGc=", tabIndex: 0 })), index.h("slot", { name: "vviinn-example-images-2" }, index.h("vviinn-example-image", { width: 280, height: 480, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDItTS5qcGc=", tabIndex: 1 })), index.h("slot", { name: "vviinn-example-images-3" }, index.h("vviinn-example-image", { width: 280, height: 480, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDMtTS5qcGc=", tabIndex: 2 })), index.h("slot", { name: "vviinn-example-images-4" }, index.h("vviinn-example-image", { width: 480, height: 640, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDQtTC5qcGc=", tabIndex: 3 })))));
386
396
  }
387
397
  get el() { return index.getElement(this); }
388
398
  };
@@ -417,7 +427,7 @@ const getImageSizes = (i) => {
417
427
  const dimensions = index$1.dimensionsFromImage(i);
418
428
  const resize = index$1.scaleByLargestSide(288);
419
429
  const newDimensions = resize(dimensions);
420
- const sizes = newDimensions.map(d => d.size);
430
+ const sizes = newDimensions.map((d) => d.size);
421
431
  return [sizes[0], sizes[1]];
422
432
  };
423
433
  let VviinnImageView = class {
@@ -1085,7 +1095,7 @@ let VviinnVpsWidget = class {
1085
1095
  return (index.h(index.Host, null, index.h("vviinn-overlayed-modal", { class: { "first-screen": this.slidePosition === 0 }, active: this.active, onSecondaryActionClicked: () => this.resetState(), onModalClosed: () => this.handleModalClose(), exportparts: "secondary-action, title, close-button, example-images" }, index.h("vviinn-slider", { showBullets: false, position: this.slidePosition }, index.h("vviinn-slide", { class: { "start-page": true } }, index.h("div", { class: {
1086
1096
  error: this.haveErrors(),
1087
1097
  "start-page_block": true,
1088
- } }, index.h("vviinn-wrong-format", { class: { hidden: !this.wrongImageFormat }, onActionClick: () => (this.wrongImageFormat = false) }), index.h("vviinn-server-error", { class: { hidden: !index$1.imageSearchState.serverError }, onActionClick: () => (index$1.imageSearchState.serverError = false) }), index.h("vviinn-teaser", { class: { hidden: this.haveErrors() } }), index.h("vviinn-image-selector", { class: { hidden: this.haveErrors() }, onImageSelected: () => this.handleImageSelection("upload"), onImageSelectedError: () => (this.wrongImageFormat = true), part: "select-image_button" }, index.h("span", { slot: "upload-button-text", class: "upload-button-content" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "29", height: "28", fill: "none" }, index.h("defs", null), index.h("path", { fill: "#fff", "fill-rule": "evenodd", d: "M10.271 3.89A.875.875 0 0111 3.5h7c.293 0 .566.146.728.39l1.49 2.235h3.033a2.625 2.625 0 012.625 2.625V21a2.625 2.625 0 01-2.625 2.625H5.75A2.625 2.625 0 013.125 21V8.75A2.625 2.625 0 015.75 6.125h3.031l1.49-2.235zm1.197 1.36l-1.49 2.235a.875.875 0 01-.729.39H5.75a.875.875 0 00-.875.875V21a.875.875 0 00.875.875h17.5a.875.875 0 00.875-.875V8.75a.875.875 0 00-.875-.875h-3.5a.875.875 0 01-.729-.39l-1.49-2.235h-6.063z", "clip-rule": "evenodd" }), index.h("path", { fill: "#fff", "fill-rule": "evenodd", d: "M14.5 11.375a3.062 3.062 0 100 6.125 3.062 3.062 0 000-6.125zm-4.813 3.063a4.812 4.812 0 119.625 0 4.812 4.812 0 01-9.625 0z", "clip-rule": "evenodd" })), index.h("slot", { name: "vviinn-image-upload-button-text" }, index.h("span", null, "Kamera oder Bild ausw\u00E4hlen")))), index.h("vviinn-privacy-badge", { class: { hidden: this.haveErrors() } })), index.h("div", { id: "onboarding-block", class: "start-page_block" }, index.h("div", { class: "onboarding-wrapper" }, index.h("vviinn-onboarding", null), index.h("vviinn-example-images", { part: "example-images", onImageSelected: () => this.handleImageSelection("example"), onImageSelectedError: () => this.resetScroll("onboarding-block", "smooth") })))), index.h("vviinn-slide", { class: { "results-page": true, active: this.slidePosition == 1 } }, index.h("div", { class: "image-wrapper" }, index.h("vviinn-image-view", null), index.h("div", { class: "filters-wrapper" }, index.h("div", { class: "filters" }, index$1.imageSearchState.filters.map((filter) => (index.h("search-filters", { filter: filter })))))), index.h("div", { id: "results-block", class: "products-wrapper" }, index.h("div", { class: {
1098
+ } }, index.h("vviinn-wrong-format", { class: { hidden: !this.wrongImageFormat }, onActionClick: () => (this.wrongImageFormat = false) }), index.h("vviinn-server-error", { class: { hidden: !index$1.imageSearchState.serverError }, onActionClick: () => (index$1.imageSearchState.serverError = false) }), index.h("vviinn-teaser", { class: { hidden: this.haveErrors() } }), index.h("vviinn-image-selector", { class: { hidden: this.haveErrors() }, onImageSelected: () => this.handleImageSelection("upload"), onImageSelectedError: () => (this.wrongImageFormat = true), part: "select-image_button" }, index.h("span", { slot: "upload-button-text", class: "upload-button-content" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "29", height: "28", fill: "none" }, index.h("defs", null), index.h("path", { fill: "#fff", "fill-rule": "evenodd", d: "M10.271 3.89A.875.875 0 0111 3.5h7c.293 0 .566.146.728.39l1.49 2.235h3.033a2.625 2.625 0 012.625 2.625V21a2.625 2.625 0 01-2.625 2.625H5.75A2.625 2.625 0 013.125 21V8.75A2.625 2.625 0 015.75 6.125h3.031l1.49-2.235zm1.197 1.36l-1.49 2.235a.875.875 0 01-.729.39H5.75a.875.875 0 00-.875.875V21a.875.875 0 00.875.875h17.5a.875.875 0 00.875-.875V8.75a.875.875 0 00-.875-.875h-3.5a.875.875 0 01-.729-.39l-1.49-2.235h-6.063z", "clip-rule": "evenodd" }), index.h("path", { fill: "#fff", "fill-rule": "evenodd", d: "M14.5 11.375a3.062 3.062 0 100 6.125 3.062 3.062 0 000-6.125zm-4.813 3.063a4.812 4.812 0 119.625 0 4.812 4.812 0 01-9.625 0z", "clip-rule": "evenodd" })), index.h("slot", { name: "vviinn-image-upload-button-text" }, index.h("span", null, "Kamera oder Bild ausw\u00E4hlen")))), index.h("vviinn-privacy-badge", { class: { hidden: this.haveErrors() } })), index.h("div", { id: "onboarding-block", class: "start-page_block" }, index.h("div", { class: "onboarding-wrapper" }, index.h("vviinn-onboarding", null), index.h("vviinn-example-images", { tabindex: 0, part: "example-images", onImageSelected: () => this.handleImageSelection("example"), onImageSelectedError: () => this.resetScroll("onboarding-block", "smooth") })))), index.h("vviinn-slide", { class: { "results-page": true, active: this.slidePosition == 1 } }, index.h("div", { class: "image-wrapper" }, index.h("vviinn-image-view", null), index.h("div", { class: "filters-wrapper" }, index.h("div", { class: "filters" }, index$1.imageSearchState.filters.map((filter) => (index.h("search-filters", { filter: filter })))))), index.h("div", { id: "results-block", class: "products-wrapper" }, index.h("div", { class: {
1089
1099
  "nothing-found": true,
1090
1100
  hidden: index$1.imageSearchState.results.length > 0,
1091
1101
  } }, index.h("vviinn-empty-results", null), index.h("vviinn-onboarding", null)), index.h("div", { class: {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index-42b99955.js');
3
+ const index = require('./index-1077e27c.js');
4
4
 
5
5
  const defaultSlotsNames = [
6
6
  "vviinn-onboarding-title",
@@ -21,7 +21,6 @@ function _interopNamespace(e) {
21
21
  }
22
22
 
23
23
  const NAMESPACE = 'vviinn-widgets';
24
- const Env = /* vviinn-widgets */ {"packageVersion":"2.8.0","packageName":"vviinn-widgets","environment":"local"};
25
24
 
26
25
  let scopeId;
27
26
  let hostTagName;
@@ -334,6 +333,12 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
334
333
  }
335
334
  }
336
335
  }
336
+ else if (memberName === 'ref') {
337
+ // minifier will clean this up
338
+ if (newValue) {
339
+ newValue(elm);
340
+ }
341
+ }
337
342
  else if ((!isProp ) &&
338
343
  memberName[0] === 'o' &&
339
344
  memberName[1] === 'n') {
@@ -508,6 +513,7 @@ const removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {
508
513
  for (; startIdx <= endIdx; ++startIdx) {
509
514
  if ((vnode = vnodes[startIdx])) {
510
515
  elm = vnode.$elm$;
516
+ callNodeRefs(vnode);
511
517
  // remove the vnode's element from the dom
512
518
  elm.remove();
513
519
  }
@@ -637,6 +643,12 @@ const patch = (oldVNode, newVNode) => {
637
643
  elm.data = text;
638
644
  }
639
645
  };
646
+ const callNodeRefs = (vNode) => {
647
+ {
648
+ vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
649
+ vNode.$children$ && vNode.$children$.map(callNodeRefs);
650
+ }
651
+ };
640
652
  const renderVdom = (hostRef, renderFnResults) => {
641
653
  const hostElm = hostRef.$hostElement$;
642
654
  const cmpMeta = hostRef.$cmpMeta$;
@@ -1342,7 +1354,6 @@ const flush = () => {
1342
1354
  const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
1343
1355
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
1344
1356
 
1345
- exports.Env = Env;
1346
1357
  exports.Host = Host;
1347
1358
  exports.bootstrapLazy = bootstrapLazy;
1348
1359
  exports.createEvent = createEvent;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index-42b99955.js');
3
+ const index = require('./index-1077e27c.js');
4
4
 
5
5
  // -------------------------------------------------------------------------------------
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index-42b99955.js');
3
+ const index = require('./index-1077e27c.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,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-42b99955.js');
6
- const appGlobals = require('./app-globals-c444baf0.js');
5
+ const index = require('./index-1077e27c.js');
7
6
 
8
7
  /*
9
8
  Stencil Client Patch Esm v2.9.0 | MIT Licensed | https://stenciljs.com
@@ -15,8 +14,7 @@ const patchEsm = () => {
15
14
  const defineCustomElements = (win, options) => {
16
15
  if (typeof window === 'undefined') return Promise.resolve();
17
16
  return patchEsm().then(() => {
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],"campaignId":[1,"campaign-id"],"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],"campaignId":[1,"campaign-id"],"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],"campaigns":[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"],"campaigns":[1],"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]}]]]], options);
17
+ 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],"campaignId":[1,"campaign-id"],"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],"tabIndex":[2,"tab-index"],"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],"campaignId":[1,"campaign-id"],"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],"campaigns":[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"],"campaigns":[1],"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]}]]]], options);
20
18
  });
21
19
  };
22
20
 
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-42b99955.js');
6
- const index$1 = require('./index-3e5bfdde.js');
7
- const index$2 = require('./index-eed9118c.js');
5
+ const index = require('./index-1077e27c.js');
6
+ const index$1 = require('./index-4ea3a37f.js');
7
+ const index$2 = require('./index-b2b8f092.js');
8
8
 
9
9
  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
10
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-42b99955.js');
6
- const index$1 = require('./index-eed9118c.js');
5
+ const index = require('./index-1077e27c.js');
6
+ const index$1 = require('./index-b2b8f092.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-42b99955.js');
6
- const index$1 = require('./index-eed9118c.js');
5
+ const index = require('./index-1077e27c.js');
6
+ const index$1 = require('./index-b2b8f092.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-42b99955.js');
6
- const index$1 = require('./index-eed9118c.js');
7
- const customizedSlots = require('./customized-slots-68eeae0f.js');
5
+ const index = require('./index-1077e27c.js');
6
+ const index$1 = require('./index-b2b8f092.js');
7
+ const customizedSlots = require('./customized-slots-84e1c444.js');
8
8
 
9
9
  const vviinnVpsButtonCss = ":host{cursor:pointer}";
10
10
 
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index-42b99955.js');
4
- const appGlobals = require('./app-globals-c444baf0.js');
3
+ const index = require('./index-1077e27c.js');
5
4
 
6
5
  /*
7
6
  Stencil Client Patch Browser v2.9.0 | MIT Licensed | https://stenciljs.com
@@ -16,6 +15,5 @@ const patchBrowser = () => {
16
15
  };
17
16
 
18
17
  patchBrowser().then(options => {
19
- appGlobals.globalScripts();
20
- 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],"campaignId":[1,"campaign-id"],"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],"campaignId":[1,"campaign-id"],"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],"campaigns":[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"],"campaigns":[1],"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]}]]]], options);
18
+ 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],"campaignId":[1,"campaign-id"],"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],"tabIndex":[2,"tab-index"],"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],"campaignId":[1,"campaign-id"],"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],"campaigns":[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"],"campaigns":[1],"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]}]]]], options);
21
19
  });
@@ -1,5 +1,6 @@
1
1
  import { Component, Host, h, Prop } from "@stencil/core";
2
2
  import { getCursorValue } from "../../../../../cropper/Handler";
3
+ import styles from "./cropper-handler.css";
3
4
  export class CropperHandler {
4
5
  constructor() {
5
6
  this.disabled = false;
@@ -15,12 +16,7 @@ export class CropperHandler {
15
16
  }
16
17
  static get is() { return "cropper-handler"; }
17
18
  static get encapsulation() { return "shadow"; }
18
- static get originalStyleUrls() { return {
19
- "$": ["cropper-handler.css"]
20
- }; }
21
- static get styleUrls() { return {
22
- "$": ["cropper-handler.css"]
23
- }; }
19
+ static get styles() { return styles; }
24
20
  static get properties() { return {
25
21
  "handler": {
26
22
  "type": "unknown",
@@ -5,6 +5,7 @@ import { imageSearchState, makeRectangularSearchRequest, } from "../../../../sto
5
5
  import { pipe } from "fp-ts/lib/function";
6
6
  import * as O from "fp-ts/lib/Option";
7
7
  import { findTarget } from "../../../../dom";
8
+ import styles from "./image-cropper.css";
8
9
  const MIN_SEARCHAREA_SIZE = 40;
9
10
  export class ImageCropper {
10
11
  constructor() {
@@ -13,7 +14,6 @@ export class ImageCropper {
13
14
  this.mouseStartPoint = undefined;
14
15
  this.bounds = undefined;
15
16
  this.resizeObserver = new ResizeObserver(() => {
16
- console.log("resized");
17
17
  this.bounds = this.el.getBoundingClientRect();
18
18
  });
19
19
  }
@@ -113,12 +113,7 @@ export class ImageCropper {
113
113
  }
114
114
  static get is() { return "image-cropper"; }
115
115
  static get encapsulation() { return "shadow"; }
116
- static get originalStyleUrls() { return {
117
- "$": ["image-cropper.css"]
118
- }; }
119
- static get styleUrls() { return {
120
- "$": ["image-cropper.css"]
121
- }; }
116
+ static get styles() { return styles; }
122
117
  static get properties() { return {
123
118
  "disabled": {
124
119
  "type": "boolean",
@@ -4,6 +4,10 @@
4
4
  position: relative;
5
5
  }
6
6
 
7
+ :host(:focus) {
8
+ border: 2px solid var(--color-primary);
9
+ }
10
+
7
11
  img {
8
12
  width: 100%;
9
13
  height: auto;
@@ -16,7 +20,6 @@ img {
16
20
  bottom: 12px;
17
21
  display: none;
18
22
  padding: 4px 6px;
19
- pointer-events: none;
20
23
  position: absolute;
21
24
  right: 12px;
22
25
  z-index: 4;
@@ -8,25 +8,31 @@ export class VviinnExampleImage {
8
8
  this.src = "";
9
9
  this.width = 0;
10
10
  this.height = 0;
11
+ this.tabIndex = -1;
11
12
  this.selected = false;
12
13
  }
13
- async selectImage(_event) {
14
+ async selectImage() {
14
15
  this.selected = true;
15
16
  const file = await toFile(this.src);
16
17
  const processResult = await processSelectedFile(file);
17
18
  pipe(processResult, E.match(() => this.exampleImageError.emit(), () => this.exampleImageSelected.emit()));
18
19
  this.selected = false;
19
20
  }
21
+ handleKeyPress({ key }) {
22
+ if (key !== "Enter" && key !== " ")
23
+ return;
24
+ this.selectImage();
25
+ }
20
26
  showPreloader() {
21
27
  return ((imageSearchState.objectDetectionInProgress ||
22
28
  imageSearchState.loading) &&
23
29
  this.selected);
24
30
  }
25
31
  render() {
26
- return (h(Host, null,
32
+ return (h(Host, { tabindex: `${this.tabIndex}`, onClick: () => this.selectImage(), onKeyUp: (ev) => this.handleKeyPress(ev) },
27
33
  this.showPreloader() ? (h("div", { class: "image-preloader" },
28
34
  h("vviinn-preloader", null))) : null,
29
- h("img", { onClick: (ev) => this.selectImage(ev), src: this.src, width: this.width, height: this.height })));
35
+ h("img", { src: this.src, width: this.width, height: this.height })));
30
36
  }
31
37
  static get is() { return "vviinn-example-image"; }
32
38
  static get encapsulation() { return "shadow"; }
@@ -90,6 +96,24 @@ export class VviinnExampleImage {
90
96
  "attribute": "height",
91
97
  "reflect": false,
92
98
  "defaultValue": "0"
99
+ },
100
+ "tabIndex": {
101
+ "type": "number",
102
+ "mutable": false,
103
+ "complexType": {
104
+ "original": "number",
105
+ "resolved": "number",
106
+ "references": {}
107
+ },
108
+ "required": false,
109
+ "optional": false,
110
+ "docs": {
111
+ "tags": [],
112
+ "text": ""
113
+ },
114
+ "attribute": "tab-index",
115
+ "reflect": false,
116
+ "defaultValue": "-1"
93
117
  }
94
118
  }; }
95
119
  static get states() { return {
@@ -1,4 +1,4 @@
1
- import { Component, Host, h, Event, Listen, Element } from "@stencil/core";
1
+ import { Component, Host, h, Event, Listen, Element, } from "@stencil/core";
2
2
  import { slotChangeListener } from "../customized-slots";
3
3
  export class VviinnExampleImages {
4
4
  handleImageSelection() {
@@ -10,19 +10,24 @@ export class VviinnExampleImages {
10
10
  componentWillLoad() {
11
11
  slotChangeListener(this, this.el);
12
12
  }
13
+ delegateFocus() {
14
+ const firstSlot = this.imagesBlock.childNodes[0];
15
+ const firstExampleImage = firstSlot.childNodes[0];
16
+ firstExampleImage.focus();
17
+ }
13
18
  render() {
14
- return (h(Host, null,
19
+ return (h(Host, { onFocus: () => this.delegateFocus() },
15
20
  h("slot", { name: "vviinn-example-images-title" },
16
21
  h("h3", null, "Mit den Beispielbildern die Suche direkt ausprobieren")),
17
- h("div", { class: "images" },
22
+ h("div", { class: "images", ref: (el) => (this.imagesBlock = el) },
18
23
  h("slot", { name: "vviinn-example-images-1" },
19
- h("vviinn-example-image", { width: 480, height: 640, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDEtTC5qcGc=" })),
24
+ h("vviinn-example-image", { width: 480, height: 640, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDEtTC5qcGc=", tabIndex: 0 })),
20
25
  h("slot", { name: "vviinn-example-images-2" },
21
- h("vviinn-example-image", { width: 280, height: 480, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDItTS5qcGc=" })),
26
+ h("vviinn-example-image", { width: 280, height: 480, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDItTS5qcGc=", tabIndex: 1 })),
22
27
  h("slot", { name: "vviinn-example-images-3" },
23
- h("vviinn-example-image", { width: 280, height: 480, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDMtTS5qcGc=" })),
28
+ h("vviinn-example-image", { width: 280, height: 480, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDMtTS5qcGc=", tabIndex: 2 })),
24
29
  h("slot", { name: "vviinn-example-images-4" },
25
- h("vviinn-example-image", { width: 480, height: 640, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDQtTC5qcGc=" })))));
30
+ h("vviinn-example-image", { width: 480, height: 640, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDQtTC5qcGc=", tabIndex: 3 })))));
26
31
  }
27
32
  static get is() { return "vviinn-example-images"; }
28
33
  static get encapsulation() { return "shadow"; }
@@ -5,11 +5,12 @@ import * as O from "fp-ts/lib/Option";
5
5
  import { sequenceToOption } from "../../utils/option/option";
6
6
  import { fromImage, move } from "../../geometry/Rectangle";
7
7
  import { dimensionsFromImage, scaleByLargestSide } from "../../Image/sizing";
8
+ import styles from "./vviinn-image-view.css";
8
9
  const getImageSizes = (i) => {
9
10
  const dimensions = dimensionsFromImage(i);
10
11
  const resize = scaleByLargestSide(288);
11
12
  const newDimensions = resize(dimensions);
12
- const sizes = newDimensions.map(d => d.size);
13
+ const sizes = newDimensions.map((d) => d.size);
13
14
  return [sizes[0], sizes[1]];
14
15
  };
15
16
  export class VviinnImageView {
@@ -52,10 +53,5 @@ export class VviinnImageView {
52
53
  }
53
54
  static get is() { return "vviinn-image-view"; }
54
55
  static get encapsulation() { return "shadow"; }
55
- static get originalStyleUrls() { return {
56
- "$": ["vviinn-image-view.css"]
57
- }; }
58
- static get styleUrls() { return {
59
- "$": ["vviinn-image-view.css"]
60
- }; }
56
+ static get styles() { return styles; }
61
57
  }
@@ -5,6 +5,7 @@ import { state } from "../../store/store";
5
5
  import * as O from "fp-ts/lib/Option";
6
6
  import { imageSearchState } from "../../store/imageSearch.store";
7
7
  import { Linked, Price, ResponsiveImage, Image, } from "./render-helpers";
8
+ import styles from "./vviinn-product-card.css";
8
9
  /**
9
10
  * @part brand - product brand.
10
11
  * @part currency - currency sign. Renders after price-amount.
@@ -91,12 +92,7 @@ export class VviinnProductCard {
91
92
  }
92
93
  static get is() { return "vviinn-product-card"; }
93
94
  static get encapsulation() { return "shadow"; }
94
- static get originalStyleUrls() { return {
95
- "$": ["vviinn-product-card.css"]
96
- }; }
97
- static get styleUrls() { return {
98
- "$": ["vviinn-product-card.css"]
99
- }; }
95
+ static get styles() { return styles; }
100
96
  static get properties() { return {
101
97
  "brand": {
102
98
  "type": "string",
@@ -67,7 +67,6 @@ export const argTypes = {
67
67
  defaultValue: true,
68
68
  },
69
69
  position: {
70
- name: "Modal container appearance",
71
70
  options: ["bottom", "right"],
72
71
  control: {
73
72
  type: "select",
@@ -178,7 +177,7 @@ export const argTypes = {
178
177
  defaultValue: true,
179
178
  },
180
179
  sidebarTitle: {
181
- name: "Modal container title name",
180
+ name: "sidebar-title",
182
181
  control: {
183
182
  type: "text",
184
183
  },
@@ -192,20 +191,25 @@ export const argTypes = {
192
191
  defaultValue: 28,
193
192
  },
194
193
  modalScrollbar: {
195
- name: "Use default horizontal scrollbar in modal container",
194
+ name: "modal-scrollbar",
196
195
  control: {
197
196
  type: "boolean",
198
197
  },
199
198
  defaultValue: false,
200
199
  },
201
- productId: {
202
- name: "Product id",
200
+ campaigns: {
201
+ name: "campaigns",
202
+ control: {
203
+ type: "text",
204
+ },
203
205
  },
204
206
  token: {
205
- name: "Token",
207
+ control: {
208
+ type: "text",
209
+ },
206
210
  },
207
- campaigns: {
208
- name: "campaigns",
211
+ productId: {
212
+ name: "product-id",
209
213
  control: {
210
214
  type: "text",
211
215
  },
@@ -1,4 +1,9 @@
1
1
  :host {
2
+ /**
3
+ * @prop --vviinn-carousel-columns: control number of items in grid mode
4
+ * @prop --vviinn-carousel-image-width: control image width in continuity mode
5
+ */
6
+
2
7
  display: block;
3
8
  }
4
9
 
@@ -5,7 +5,6 @@ const excludeControls = [
5
5
  "currencySign",
6
6
  "imageRatio",
7
7
  "imageWidth",
8
- "locale",
9
8
  "pricePrefix",
10
9
  "showScroll",
11
10
  ];
@@ -1,3 +1,9 @@
1
1
  :host {
2
+ /**
3
+ * @prop --color-primary: set color of search button and bullets in onboarding block
4
+ * @prop --color-primary-hover: set color of search button and bullets in onboarding block on mouse hover
5
+ * @prop --color-icons: set fill color of svg icons in onboarding block
6
+ */
7
+
2
8
  cursor: pointer;
3
9
  }