vviinn-widgets 2.0.0 → 2.2.1
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.
- package/dist/cjs/Handler-d1a8a86a.js +329 -0
- package/dist/cjs/{app-globals-de6924b5.js → app-globals-d0251be8.js} +1 -1
- package/dist/cjs/cropper-handler.cjs.entry.js +27 -0
- package/dist/cjs/customized-slots-14b77e4a.js +53 -0
- package/dist/cjs/{cropper-handler_28.cjs.entry.js → highlight-box_22.cjs.entry.js} +48 -437
- package/dist/{esm/Array-e81cf4a3.js → cjs/imageSearch.store-d9ed1a5b.js} +10009 -3391
- package/dist/cjs/{index-7adce49f.js → index-141137b2.js} +14 -362
- package/dist/cjs/{index-8a276115.js → index-a5e15a0c.js} +7 -1
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/vviinn-carousel_5.cjs.entry.js +1232 -0
- package/dist/cjs/vviinn-error.cjs.entry.js +19 -0
- package/dist/cjs/vviinn-preloader.cjs.entry.js +26 -0
- package/dist/cjs/vviinn-vps-button.cjs.entry.js +43 -0
- package/dist/cjs/vviinn-vps-widget.cjs.entry.js +97 -0
- package/dist/cjs/vviinn-widgets.cjs.js +3 -3
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/vviinn-carousel/vviinn-carousel.css +22 -18
- package/dist/collection/components/vviinn-carousel/vviinn-carousel.js +78 -68
- package/dist/collection/components/vviinn-icons/index.js +4 -0
- package/dist/collection/components/vviinn-product-card/render-helpers.js +4 -4
- package/dist/collection/components/vviinn-product-card/vviinn-product-card.css +5 -6
- package/dist/collection/components/vviinn-product-card/vviinn-product-card.js +26 -5
- package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.css +238 -0
- package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js +200 -0
- package/dist/collection/components/vviinn-vpr-button/stories/kek.stories.js +18 -0
- package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.css +35 -0
- package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js +149 -0
- package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-vidget.js +148 -28
- package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-widget.css +31 -8
- package/dist/esm/Handler-639a4cb3.js +308 -0
- package/dist/esm/{app-globals-0a626970.js → app-globals-b6113170.js} +1 -1
- package/dist/esm/cropper-handler.entry.js +23 -0
- package/dist/esm/customized-slots-a952fb80.js +50 -0
- package/dist/esm/{cropper-handler_28.entry.js → highlight-box_22.entry.js} +21 -404
- package/dist/{cjs/Array-cce2fde8.js → esm/imageSearch.store-4ca31230.js} +8705 -2137
- package/dist/esm/{index-e77e65ae.js → index-017f18de.js} +6 -2
- package/dist/esm/{index-0ccfcee5.js → index-3e85e294.js} +14 -362
- package/dist/esm/loader.js +3 -3
- package/dist/esm/vviinn-carousel_5.entry.js +1224 -0
- package/dist/esm/vviinn-error.entry.js +15 -0
- package/dist/esm/vviinn-preloader.entry.js +22 -0
- package/dist/esm/vviinn-vps-button.entry.js +39 -0
- package/dist/esm/vviinn-vps-widget.entry.js +93 -0
- package/dist/esm/vviinn-widgets.js +3 -3
- package/dist/types/campaign/Campaign.d.ts +1 -1
- package/dist/types/components/vviinn-carousel/vviinn-carousel.d.ts +13 -7
- package/dist/types/components/vviinn-icons/index.d.ts +2 -0
- package/dist/types/components/vviinn-product-card/render-helpers.d.ts +3 -2
- package/dist/types/components/vviinn-product-card/vviinn-product-card.d.ts +2 -0
- package/dist/types/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.d.ts +25 -0
- package/dist/types/components/vviinn-vpr-button/stories/kek.stories.d.ts +7 -0
- package/dist/types/components/vviinn-vpr-button/vviinn-vpr-button.d.ts +14 -0
- package/dist/types/components/vviinn-vpr-widget/vviinn-vpr-vidget.d.ts +36 -8
- package/dist/types/components.d.ts +62 -10
- package/dist/vviinn-widgets/p-0ed1ef7e.entry.js +1 -0
- package/dist/vviinn-widgets/{p-6c4fd1db.js → p-16e49514.js} +1 -1
- package/dist/vviinn-widgets/p-3da18d7f.js +1 -0
- package/dist/vviinn-widgets/p-62a1b042.entry.js +1 -0
- package/dist/vviinn-widgets/p-68900093.entry.js +1 -0
- package/dist/vviinn-widgets/p-6c4c240d.entry.js +1 -0
- package/dist/vviinn-widgets/p-95e53d99.entry.js +1 -0
- package/dist/vviinn-widgets/p-9fee20e7.entry.js +1 -0
- package/dist/vviinn-widgets/p-d7894eaf.js +1 -0
- package/dist/vviinn-widgets/p-db0be4cd.js +1 -0
- package/dist/vviinn-widgets/p-eb15116d.entry.js +1 -0
- package/dist/vviinn-widgets/{p-489aee23.js → p-f00fddbb.js} +1 -1
- package/dist/vviinn-widgets/p-f582db5c.js +1 -0
- package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
- package/package.json +3 -1
- package/www/build/p-0ed1ef7e.entry.js +1 -0
- package/www/build/{p-6c4fd1db.js → p-16e49514.js} +1 -1
- package/www/build/p-1cc0cdfd.js +1 -0
- package/www/build/p-3da18d7f.js +1 -0
- package/www/build/p-62a1b042.entry.js +1 -0
- package/www/build/p-68900093.entry.js +1 -0
- package/www/build/p-6c4c240d.entry.js +1 -0
- package/www/build/p-95e53d99.entry.js +1 -0
- package/www/build/p-9fee20e7.entry.js +1 -0
- package/www/build/p-a67898be.css +1 -0
- package/www/build/p-d7894eaf.js +1 -0
- package/www/build/p-db0be4cd.js +1 -0
- package/www/build/p-eb15116d.entry.js +1 -0
- package/www/build/{p-489aee23.js → p-f00fddbb.js} +1 -1
- package/www/build/p-f582db5c.js +1 -0
- package/www/build/vviinn-widgets.esm.js +1 -1
- package/www/index.html +177 -8
- package/dist/cjs/imageSearch.store-39fce56c.js +0 -6926
- package/dist/cjs/vviinn-carousel.cjs.entry.js +0 -222
- package/dist/cjs/vviinn-vpr-widget.cjs.entry.js +0 -106
- package/dist/esm/imageSearch.store-b887ff78.js +0 -6893
- package/dist/esm/vviinn-carousel.entry.js +0 -218
- package/dist/esm/vviinn-vpr-widget.entry.js +0 -102
- package/dist/vviinn-widgets/p-2bf74c28.js +0 -1
- package/dist/vviinn-widgets/p-3063e23a.js +0 -1
- package/dist/vviinn-widgets/p-9145c82e.entry.js +0 -1
- package/dist/vviinn-widgets/p-ddcac3f8.js +0 -1
- package/dist/vviinn-widgets/p-f05da9f1.entry.js +0 -1
- package/dist/vviinn-widgets/p-f12f823d.entry.js +0 -1
- package/www/build/p-2bf74c28.js +0 -1
- package/www/build/p-3063e23a.js +0 -1
- package/www/build/p-9145c82e.entry.js +0 -1
- package/www/build/p-cbae3071.js +0 -125
- package/www/build/p-ddcac3f8.js +0 -1
- package/www/build/p-e0153ae2.css +0 -6
- package/www/build/p-f05da9f1.entry.js +0 -1
- package/www/build/p-f12f823d.entry.js +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { h } from './index-3e85e294.js';
|
|
2
|
+
|
|
3
|
+
const defaultSlotsNames = [
|
|
4
|
+
"vviinn-onboarding-title",
|
|
5
|
+
"vviinn-onboarding-card-1-icon",
|
|
6
|
+
"vviinn-onboarding-card-1-text",
|
|
7
|
+
"vviinn-onboarding-card-2-icon",
|
|
8
|
+
"vviinn-onboarding-card-2-text",
|
|
9
|
+
"vviinn-onboarding-card-3-icon",
|
|
10
|
+
"vviinn-onboarding-card-3-text",
|
|
11
|
+
"vviinn-example-images-title",
|
|
12
|
+
"vviinn-example-images-1",
|
|
13
|
+
"vviinn-example-images-2",
|
|
14
|
+
"vviinn-example-images-3",
|
|
15
|
+
"vviinn-example-images-4",
|
|
16
|
+
"vviinn-teaser-text",
|
|
17
|
+
"vviinn-image-upload-button-text",
|
|
18
|
+
"vviinn-privacy-badge-text"
|
|
19
|
+
];
|
|
20
|
+
const renderNamedSlot = (name) => h("slot", { name: name });
|
|
21
|
+
const SlotSkeleton = () => defaultSlotsNames.map(renderNamedSlot);
|
|
22
|
+
const getSlots = (element) => Array.from(element.shadowRoot.querySelectorAll("slot"));
|
|
23
|
+
const getNameAttribute = (element) => element.getAttribute("name");
|
|
24
|
+
const getSlotAttribute = (element) => element.getAttribute("slot");
|
|
25
|
+
const elementContainSlot = (slot) => (container) => {
|
|
26
|
+
const name1 = getNameAttribute(slot);
|
|
27
|
+
const name2 = getSlotAttribute(container);
|
|
28
|
+
return name1 === name2;
|
|
29
|
+
};
|
|
30
|
+
const getContentToReplace = (targets) => (acc, content) => {
|
|
31
|
+
const replaceCandidate = targets.find(elementContainSlot(content));
|
|
32
|
+
if (replaceCandidate) {
|
|
33
|
+
acc.set(content, replaceCandidate);
|
|
34
|
+
}
|
|
35
|
+
return acc;
|
|
36
|
+
};
|
|
37
|
+
const replaceSlotContent = (content, target) => {
|
|
38
|
+
target.innerHTML = content.outerHTML;
|
|
39
|
+
};
|
|
40
|
+
const slotChangeListener = (component, element) => {
|
|
41
|
+
component.connectedCallback = function () {
|
|
42
|
+
document.addEventListener("globalSlotsChanged", ({ detail }) => {
|
|
43
|
+
const slotsToReplace = getSlots(element).reduce(getContentToReplace(detail), new Map());
|
|
44
|
+
slotsToReplace.forEach(replaceSlotContent);
|
|
45
|
+
}, true);
|
|
46
|
+
};
|
|
47
|
+
component.connectedCallback.call(component);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export { SlotSkeleton as S, slotChangeListener as s };
|
|
@@ -1,41 +1,8 @@
|
|
|
1
|
-
import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
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}";
|
|
7
|
-
|
|
8
|
-
let CropperHandler = class {
|
|
9
|
-
constructor(hostRef) {
|
|
10
|
-
registerInstance(this, hostRef);
|
|
11
|
-
this.disabled = false;
|
|
12
|
-
}
|
|
13
|
-
render() {
|
|
14
|
-
return (h(Host, { part: `handle ${getCursorValue(this.handler.direction)}`, class: {
|
|
15
|
-
disabled: this.disabled,
|
|
16
|
-
[getCursorValue(this.handler.direction)]: true,
|
|
17
|
-
}, style: {
|
|
18
|
-
"--size": "20px",
|
|
19
|
-
cursor: getCursorValue(this.handler.direction),
|
|
20
|
-
}, draggable: false }));
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
CropperHandler.style = cropperHandlerCss;
|
|
24
|
-
|
|
25
|
-
const fromRectangle = (shape, target) => {
|
|
26
|
-
const top = `${shape.y}px`;
|
|
27
|
-
const left = `${shape.x}px`;
|
|
28
|
-
const right = `${target.width - (shape.x + shape.width)}px`;
|
|
29
|
-
const bottom = `${target.height - (shape.y + shape.height)}px`;
|
|
30
|
-
return {
|
|
31
|
-
top,
|
|
32
|
-
right,
|
|
33
|
-
bottom,
|
|
34
|
-
left,
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
const printClip = (clip) => `inset(${clip.top} ${clip.right} ${clip.bottom} ${clip.left})`;
|
|
38
|
-
const getClipValue = (shape, target) => printClip(fromRectangle(shape, target));
|
|
1
|
+
import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-3e85e294.js';
|
|
2
|
+
import { O as Option, h as sequenceToOption, i as imageSearchState, a as _function, t as transform, j as move, k as makeRectangularSearchRequest, l as fromAlt, n as foldValueObject, o as scaleWithSized, p as center, q as detectedObjectEq, r as toFile, u as processSelectedFile, E as Either, v as match, w as fromImage, x as dimensionsFromImage, y as scaleByLargestSide, N as NonEmptyArray } from './imageSearch.store-4ca31230.js';
|
|
3
|
+
import { p as pipe, m as pointDiffSemigroup, o as fromMouseEvent } from './Handler-639a4cb3.js';
|
|
4
|
+
import { c as CheckIcon, O as OnboardingCard1Icon, d as OnboardingCard2Icon, e as OnboardingCard3Icon, A as ArrowIcon } from './index-017f18de.js';
|
|
5
|
+
import { s as slotChangeListener } from './customized-slots-a952fb80.js';
|
|
39
6
|
|
|
40
7
|
// -------------------------------------------------------------------------------------
|
|
41
8
|
// -------------------------------------------------------------------------------------
|
|
@@ -57,6 +24,21 @@ var Ord = {
|
|
|
57
24
|
compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); }
|
|
58
25
|
};
|
|
59
26
|
|
|
27
|
+
const fromRectangle = (shape, target) => {
|
|
28
|
+
const top = `${shape.y}px`;
|
|
29
|
+
const left = `${shape.x}px`;
|
|
30
|
+
const right = `${target.width - (shape.x + shape.width)}px`;
|
|
31
|
+
const bottom = `${target.height - (shape.y + shape.height)}px`;
|
|
32
|
+
return {
|
|
33
|
+
top,
|
|
34
|
+
right,
|
|
35
|
+
bottom,
|
|
36
|
+
left,
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
const printClip = (clip) => `inset(${clip.top} ${clip.right} ${clip.bottom} ${clip.left})`;
|
|
40
|
+
const getClipValue = (shape, target) => printClip(fromRectangle(shape, target));
|
|
41
|
+
|
|
60
42
|
const highlightBoxCss = ":host{display:grid;position:absolute;box-sizing:border-box;border:none;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;--size:10px;--x-position:0;--y-position:0}img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pointer{position:absolute;width:var(--size);height:var(--size);background:black;border-radius:50%;z-index:2;cursor:pointer;transform:translate(var(--x-position), var(--y-position)) scale(0);-webkit-animation:0.25s linear fadein;animation:0.25s linear fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.pointer::after{content:\"\";cursor:pointer;border:5px solid black;border-radius:50%;width:var(--size);height:var(--size);display:block;transform:translate(calc(-50% + var(--size) * 0.5), calc(-50% + var(--size) * 0.5));padding:calc(var(--size) * 0.5);opacity:.75}@-webkit-keyframes fadein{from{transform:translate(var(--x-position), var(--y-position)) scale(0)}to{transform:translate(var(--x-position), var(--y-position)) scale(1)}}@keyframes fadein{from{transform:translate(var(--x-position), var(--y-position)) scale(0)}to{transform:translate(var(--x-position), var(--y-position)) scale(1)}}";
|
|
61
43
|
|
|
62
44
|
let HighlightBox = class {
|
|
@@ -301,18 +283,6 @@ let VviinnEmptyResults = class {
|
|
|
301
283
|
};
|
|
302
284
|
VviinnEmptyResults.style = vviinnEmptyResultsCss;
|
|
303
285
|
|
|
304
|
-
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}";
|
|
305
|
-
|
|
306
|
-
let VviinnError = class {
|
|
307
|
-
constructor(hostRef) {
|
|
308
|
-
registerInstance(this, hostRef);
|
|
309
|
-
}
|
|
310
|
-
render() {
|
|
311
|
-
return (h(Host, null, h("slot", { name: "icon" }), h("slot", { name: "title" }), h("slot", { name: "text" }), h("slot", { name: "action" })));
|
|
312
|
-
}
|
|
313
|
-
};
|
|
314
|
-
VviinnError.style = vviinnErrorCss;
|
|
315
|
-
|
|
316
286
|
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}}";
|
|
317
287
|
|
|
318
288
|
let VviinnExampleImage = class {
|
|
@@ -343,53 +313,6 @@ let VviinnExampleImage = class {
|
|
|
343
313
|
};
|
|
344
314
|
VviinnExampleImage.style = vviinnExampleImageCss;
|
|
345
315
|
|
|
346
|
-
const defaultSlotsNames = [
|
|
347
|
-
"vviinn-onboarding-title",
|
|
348
|
-
"vviinn-onboarding-card-1-icon",
|
|
349
|
-
"vviinn-onboarding-card-1-text",
|
|
350
|
-
"vviinn-onboarding-card-2-icon",
|
|
351
|
-
"vviinn-onboarding-card-2-text",
|
|
352
|
-
"vviinn-onboarding-card-3-icon",
|
|
353
|
-
"vviinn-onboarding-card-3-text",
|
|
354
|
-
"vviinn-example-images-title",
|
|
355
|
-
"vviinn-example-images-1",
|
|
356
|
-
"vviinn-example-images-2",
|
|
357
|
-
"vviinn-example-images-3",
|
|
358
|
-
"vviinn-example-images-4",
|
|
359
|
-
"vviinn-teaser-text",
|
|
360
|
-
"vviinn-image-upload-button-text",
|
|
361
|
-
"vviinn-privacy-badge-text"
|
|
362
|
-
];
|
|
363
|
-
const renderNamedSlot = (name) => h("slot", { name: name });
|
|
364
|
-
const SlotSkeleton = () => defaultSlotsNames.map(renderNamedSlot);
|
|
365
|
-
const getSlots = (element) => Array.from(element.shadowRoot.querySelectorAll("slot"));
|
|
366
|
-
const getNameAttribute = (element) => element.getAttribute("name");
|
|
367
|
-
const getSlotAttribute = (element) => element.getAttribute("slot");
|
|
368
|
-
const elementContainSlot = (slot) => (container) => {
|
|
369
|
-
const name1 = getNameAttribute(slot);
|
|
370
|
-
const name2 = getSlotAttribute(container);
|
|
371
|
-
return name1 === name2;
|
|
372
|
-
};
|
|
373
|
-
const getContentToReplace = (targets) => (acc, content) => {
|
|
374
|
-
const replaceCandidate = targets.find(elementContainSlot(content));
|
|
375
|
-
if (replaceCandidate) {
|
|
376
|
-
acc.set(content, replaceCandidate);
|
|
377
|
-
}
|
|
378
|
-
return acc;
|
|
379
|
-
};
|
|
380
|
-
const replaceSlotContent = (content, target) => {
|
|
381
|
-
target.innerHTML = content.outerHTML;
|
|
382
|
-
};
|
|
383
|
-
const slotChangeListener = (component, element) => {
|
|
384
|
-
component.connectedCallback = function () {
|
|
385
|
-
document.addEventListener("globalSlotsChanged", ({ detail }) => {
|
|
386
|
-
const slotsToReplace = getSlots(element).reduce(getContentToReplace(detail), new Map());
|
|
387
|
-
slotsToReplace.forEach(replaceSlotContent);
|
|
388
|
-
}, true);
|
|
389
|
-
};
|
|
390
|
-
component.connectedCallback.call(component);
|
|
391
|
-
};
|
|
392
|
-
|
|
393
316
|
const vviinnExampleImagesCss = "h3{font-size:22px;font-weight:600;line-height:32px;margin:0;margin-bottom:16px;text-align:center}.images{display:block;-moz-column-count:2;column-count:2;-moz-column-gap:16px;column-gap:16px}";
|
|
394
317
|
|
|
395
318
|
let VviinnExampleImages = class {
|
|
@@ -602,23 +525,6 @@ let VviinnOverlayedModal = class {
|
|
|
602
525
|
};
|
|
603
526
|
VviinnOverlayedModal.style = vviinnOverlayedModalCss;
|
|
604
527
|
|
|
605
|
-
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)}}";
|
|
606
|
-
|
|
607
|
-
let VviinnPreloader = class {
|
|
608
|
-
constructor(hostRef) {
|
|
609
|
-
registerInstance(this, hostRef);
|
|
610
|
-
}
|
|
611
|
-
isActive() {
|
|
612
|
-
return (imageSearchState.loading || imageSearchState.objectDetectionInProgress);
|
|
613
|
-
}
|
|
614
|
-
render() {
|
|
615
|
-
return (h(Host, { class: {
|
|
616
|
-
active: this.isActive(),
|
|
617
|
-
} }));
|
|
618
|
-
}
|
|
619
|
-
};
|
|
620
|
-
VviinnPreloader.style = vviinnPreloaderCss;
|
|
621
|
-
|
|
622
528
|
const vviinnPrivacyBadgeCss = ":host{display:block;background:#F4F4F4;padding:17px}.content{display:grid;grid-template-columns:-webkit-min-content auto;grid-template-columns:min-content auto;grid-gap:9px}.content p{color:#525252;font-size:12px;line-height:16px;margin:unset}";
|
|
623
529
|
|
|
624
530
|
let VviinnPrivacyBadge = class {
|
|
@@ -635,174 +541,6 @@ let VviinnPrivacyBadge = class {
|
|
|
635
541
|
};
|
|
636
542
|
VviinnPrivacyBadge.style = vviinnPrivacyBadgeCss;
|
|
637
543
|
|
|
638
|
-
class GtagAnalytics {
|
|
639
|
-
sendImpression(product) {
|
|
640
|
-
var _a, _b, _c;
|
|
641
|
-
gtag('event', 'view_item_list', {
|
|
642
|
-
items: [
|
|
643
|
-
{
|
|
644
|
-
id: product.productId,
|
|
645
|
-
name: product.title,
|
|
646
|
-
brand: (_a = product.brand) !== null && _a !== void 0 ? _a : '',
|
|
647
|
-
category: (_b = product.productType) !== null && _b !== void 0 ? _b : '',
|
|
648
|
-
list_name: 'VI VPR View',
|
|
649
|
-
price: Math.min(...[product.price.actual, (_c = product.price.sale) !== null && _c !== void 0 ? _c : Infinity])
|
|
650
|
-
}
|
|
651
|
-
]
|
|
652
|
-
});
|
|
653
|
-
return undefined;
|
|
654
|
-
}
|
|
655
|
-
sendClick(product) {
|
|
656
|
-
var _a, _b, _c;
|
|
657
|
-
gtag('event', 'select_content', {
|
|
658
|
-
content_type: 'product',
|
|
659
|
-
items: [
|
|
660
|
-
{
|
|
661
|
-
id: product.productId,
|
|
662
|
-
name: product.title,
|
|
663
|
-
brand: (_a = product.brand) !== null && _a !== void 0 ? _a : '',
|
|
664
|
-
category: (_b = product.productType) !== null && _b !== void 0 ? _b : '',
|
|
665
|
-
list_name: 'VI VPR View',
|
|
666
|
-
price: Math.min(...[product.price.actual, (_c = product.price.sale) !== null && _c !== void 0 ? _c : Infinity])
|
|
667
|
-
}
|
|
668
|
-
]
|
|
669
|
-
});
|
|
670
|
-
return undefined;
|
|
671
|
-
}
|
|
672
|
-
}
|
|
673
|
-
|
|
674
|
-
class GAnalytics {
|
|
675
|
-
constructor() {
|
|
676
|
-
ga('require', 'ec');
|
|
677
|
-
}
|
|
678
|
-
convertProduct(product) {
|
|
679
|
-
var _a, _b, _c;
|
|
680
|
-
return {
|
|
681
|
-
id: product.productId,
|
|
682
|
-
name: product.title,
|
|
683
|
-
brand: (_a = product.brand) !== null && _a !== void 0 ? _a : '',
|
|
684
|
-
category: (_b = product.productType) !== null && _b !== void 0 ? _b : '',
|
|
685
|
-
list: 'VI VPR View',
|
|
686
|
-
price: Math.min(...[product.price.actual, (_c = product.price.sale) !== null && _c !== void 0 ? _c : Infinity])
|
|
687
|
-
};
|
|
688
|
-
}
|
|
689
|
-
sendImpression(product) {
|
|
690
|
-
ga('ec:addImpression', this.convertProduct(product));
|
|
691
|
-
return undefined;
|
|
692
|
-
}
|
|
693
|
-
sendClick(product) {
|
|
694
|
-
var _a, _b, _c;
|
|
695
|
-
ga('ec:addProduct', {
|
|
696
|
-
id: product.productId,
|
|
697
|
-
name: product.title,
|
|
698
|
-
brand: (_a = product.brand) !== null && _a !== void 0 ? _a : '',
|
|
699
|
-
category: (_b = product.productType) !== null && _b !== void 0 ? _b : '',
|
|
700
|
-
price: Math.min(...[product.price.actual, (_c = product.price.sale) !== null && _c !== void 0 ? _c : Infinity])
|
|
701
|
-
});
|
|
702
|
-
ga('ec:setAction', 'click', { list: 'VI VPR View' });
|
|
703
|
-
return undefined;
|
|
704
|
-
}
|
|
705
|
-
}
|
|
706
|
-
|
|
707
|
-
const getGtagAnalytics = () => _function.pipe(Option.fromNullable(window.gtag), Option.map(() => new GtagAnalytics()));
|
|
708
|
-
const getCommonAnalytics = () => _function.pipe(Option.fromNullable(window.ga), Option.map(() => new GAnalytics()));
|
|
709
|
-
const analyticsMonoid = Option.getMonoid(Semigroup.first());
|
|
710
|
-
const getAnalyticsModule = analyticsMonoid.concat(getGtagAnalytics(), getCommonAnalytics());
|
|
711
|
-
|
|
712
|
-
const FIT_EXPR = /fit\/\d+\//;
|
|
713
|
-
const containsFit = (url) => {
|
|
714
|
-
return _function.pipe(url.match(FIT_EXPR), Either.fromNullable(url), Either.map(() => url));
|
|
715
|
-
};
|
|
716
|
-
const processWidth = (url, size) => {
|
|
717
|
-
return _function.pipe(containsFit(url), Either.map((url) => url.replace(FIT_EXPR, `fit/${size}/`)), Either.getOrElse(() => url));
|
|
718
|
-
};
|
|
719
|
-
const Linked = (props, child) => props.deeplink ? (h("a", { class: props.part, part: props.part, href: props.deeplink }, child)) : (child);
|
|
720
|
-
const FormattedPrice = (props) => {
|
|
721
|
-
var _a;
|
|
722
|
-
const locale = props.locale;
|
|
723
|
-
const formattedPrice = new Intl.NumberFormat(locale, {
|
|
724
|
-
minimumFractionDigits: 2,
|
|
725
|
-
}).format(props.price);
|
|
726
|
-
const fullPrice = `${(_a = props.prefix) !== null && _a !== void 0 ? _a : ""} ${formattedPrice} ${props.currency}`;
|
|
727
|
-
return (h("span", { class: "price-amount", part: "price-amount" }, fullPrice));
|
|
728
|
-
};
|
|
729
|
-
const Price = (props) => {
|
|
730
|
-
const priceEl = (h(FormattedPrice, { prefix: props.prefix, currency: props.currency, price: props.price, locale: props.locale }));
|
|
731
|
-
return (h("span", { class: "price-container", part: "price-container" }, props.salePrice ? ([
|
|
732
|
-
h("span", { class: "price-sale", part: "price-sale" },
|
|
733
|
-
h(FormattedPrice, { prefix: props.prefix, currency: props.currency, price: props.salePrice, locale: props.locale })),
|
|
734
|
-
h("span", { class: "price-outdated", part: "price-outdated" }, priceEl),
|
|
735
|
-
]) : (h("span", { class: "price-regular", part: "price-regular" }, priceEl))));
|
|
736
|
-
};
|
|
737
|
-
const Image = (props) => (h("picture", null,
|
|
738
|
-
h("img", { loading: "lazy", part: "image", class: "image", width: props.width, height: props.height, src: processWidth(props.src, props.width), alt: props.title })));
|
|
739
|
-
const ResponsiveImage = (props) => (h("picture", null,
|
|
740
|
-
h("img", { loading: "lazy", part: "image", class: "image responsive", src: processWidth(props.src, props.width), alt: props.title })));
|
|
741
|
-
|
|
742
|
-
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;max-width:-webkit-min-content;max-width:-moz-min-content;max-width:min-content;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;max-width:-webkit-min-content;max-width:-moz-min-content;max-width:min-content}.deeplink{text-decoration:none}picture{position:relative}: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}";
|
|
743
|
-
|
|
744
|
-
let VviinnProductCard = class {
|
|
745
|
-
constructor(hostRef) {
|
|
746
|
-
registerInstance(this, hostRef);
|
|
747
|
-
this.recommendationLoad = createEvent(this, "recommendationLoad", 7);
|
|
748
|
-
this.recommendationView = createEvent(this, "recommendationView", 7);
|
|
749
|
-
this.recommendationClick = createEvent(this, "recommendationClick", 7);
|
|
750
|
-
this.currency = undefined;
|
|
751
|
-
this.imageRatio = 1;
|
|
752
|
-
this.imageWidth = 200;
|
|
753
|
-
this.locale = undefined;
|
|
754
|
-
this.pricePrefix = undefined;
|
|
755
|
-
this.responsive = false;
|
|
756
|
-
this.dimmedBackground = false;
|
|
757
|
-
this.imageLoaded = false;
|
|
758
|
-
this.intersectionObserver = new IntersectionObserver(this.intersectionCallback.bind(this), { threshold: 1.0 });
|
|
759
|
-
}
|
|
760
|
-
intersectionCallback(data) {
|
|
761
|
-
if (data.some((entry) => entry.isIntersecting)) {
|
|
762
|
-
_function.pipe(getAnalyticsModule, Option.map((analytics) => analytics.sendImpression(this.getProduct())));
|
|
763
|
-
this.recommendationView.emit(this.productId);
|
|
764
|
-
this.intersectionObserver.disconnect();
|
|
765
|
-
}
|
|
766
|
-
}
|
|
767
|
-
componentDidLoad() {
|
|
768
|
-
this.recommendationLoad.emit(this.productId);
|
|
769
|
-
this.intersectionObserver.observe(this.el);
|
|
770
|
-
const links = this.el.shadowRoot.querySelectorAll("a");
|
|
771
|
-
links.forEach((link) => link.addEventListener("mousedown", (event) => {
|
|
772
|
-
this.recommendationClick.emit(this.productId);
|
|
773
|
-
if (window.ga) {
|
|
774
|
-
event.preventDefault();
|
|
775
|
-
}
|
|
776
|
-
_function.pipe(getAnalyticsModule, Option.match(() => null, (analytics) => analytics.sendClick(this.getProduct())));
|
|
777
|
-
if (window.ga) {
|
|
778
|
-
ga("send", "event", "UX", "click", "Results", {
|
|
779
|
-
hitCallback: function () {
|
|
780
|
-
document.location.href = this.deeplink;
|
|
781
|
-
},
|
|
782
|
-
});
|
|
783
|
-
}
|
|
784
|
-
}));
|
|
785
|
-
}
|
|
786
|
-
getProduct() {
|
|
787
|
-
return imageSearchState.results.find((r) => r.productId === this.productId);
|
|
788
|
-
}
|
|
789
|
-
renderImage() {
|
|
790
|
-
const props = {
|
|
791
|
-
width: this.imageWidth,
|
|
792
|
-
height: this.imageWidth * this.imageRatio,
|
|
793
|
-
src: this.image,
|
|
794
|
-
title: this.productTitle
|
|
795
|
-
};
|
|
796
|
-
return this.responsive ? ResponsiveImage(props) : Image(props);
|
|
797
|
-
}
|
|
798
|
-
render() {
|
|
799
|
-
var _a, _b, _c;
|
|
800
|
-
return (h(Host, { exportparts: "brand, currency, deeplink, image, type, image-link, price-amount, price-container, price-outdated, price-prefix, price-regular, price-sale, title", class: { dimmed: this.dimmedBackground } }, h(Linked, { deeplink: this.deeplink, part: "image-link" }, this.renderImage()), h(Linked, { deeplink: this.deeplink, part: "deeplink" }, h("span", { class: "title", part: "title" }, this.productTitle)), h("span", { class: "brand", part: "brand" }, this.brand), h("span", { class: "type", part: "type" }, this.productType), h(Price, { prefix: (_a = this.pricePrefix) !== null && _a !== void 0 ? _a : state.pricePrefix, currency: (_b = this.currency) !== null && _b !== void 0 ? _b : state.currencySign, price: this.price, salePrice: this.salePrice, locale: (_c = this.locale) !== null && _c !== void 0 ? _c : state.locale })));
|
|
801
|
-
}
|
|
802
|
-
get el() { return getElement(this); }
|
|
803
|
-
};
|
|
804
|
-
VviinnProductCard.style = vviinnProductCardCss;
|
|
805
|
-
|
|
806
544
|
const vviinnServerErrorCss = ":host{display:block}";
|
|
807
545
|
|
|
808
546
|
let VviinnServerError = class {
|
|
@@ -958,127 +696,6 @@ let VviinnTeaser = class {
|
|
|
958
696
|
};
|
|
959
697
|
VviinnTeaser.style = vviinnTeaserCss;
|
|
960
698
|
|
|
961
|
-
const vviinnVpsButtonCss = "";
|
|
962
|
-
|
|
963
|
-
let VviinnVpsButton = class {
|
|
964
|
-
constructor(hostRef) {
|
|
965
|
-
registerInstance(this, hostRef);
|
|
966
|
-
this.globalSlotsChanged = createEvent(this, "globalSlotsChanged", 7);
|
|
967
|
-
/** Currency sign will shown after price */
|
|
968
|
-
this.currencySign = "€";
|
|
969
|
-
/** Locale for currency formatting */
|
|
970
|
-
this.locale = "de-DE";
|
|
971
|
-
this.pressed = false;
|
|
972
|
-
}
|
|
973
|
-
handleModalClosed() {
|
|
974
|
-
this.pressed = false;
|
|
975
|
-
}
|
|
976
|
-
componentDidLoad() {
|
|
977
|
-
const slots = this.el.querySelectorAll("[slot]");
|
|
978
|
-
this.globalSlotsChanged.emit(Array.from(slots));
|
|
979
|
-
}
|
|
980
|
-
handleKeyDown(ev) {
|
|
981
|
-
if (ev.code !== "Enter" && ev.code !== "Space")
|
|
982
|
-
return;
|
|
983
|
-
this.pressed = true;
|
|
984
|
-
}
|
|
985
|
-
handleClick() {
|
|
986
|
-
this.pressed = true;
|
|
987
|
-
}
|
|
988
|
-
render() {
|
|
989
|
-
return (h(Host, { tabindex: "0", role: "button", pressed: this.pressed, onClick: () => this.handleClick(), onKeyDown: (ev) => this.handleKeyDown(ev) }, h("slot", null, h(CameraIcon, null)), h(SlotSkeleton, null), h("vviinn-vps-widget", { active: this.pressed, "currency-sign": "\u20AC", token: this.token, locale: this.locale, apiPath: this.apiPath, exportparts: "brand, currency, deeplink, image, image-link, price-amount, price-container, price-outdated, price-prefix, price-regular, price-sale, title, product-card" })));
|
|
990
|
-
}
|
|
991
|
-
get el() { return getElement(this); }
|
|
992
|
-
};
|
|
993
|
-
VviinnVpsButton.style = vviinnVpsButtonCss;
|
|
994
|
-
|
|
995
|
-
const vviinnVpsWidgetCss = ":host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}:host{display:block}.hidden{visibility:hidden;height:1px}vviinn-overlayed-modal.first-screen::part(title),vviinn-overlayed-modal.first-screen::part(secondary-action){visibility:hidden}.start-page{display:grid;grid-template-columns:repeat(2, 1fr);min-height:580px}.start-page_block{align-content:start;border-right:1px solid #F4F4F4;display:grid;padding:48px}.start-page_block.error{align-content:center}#onboarding-block{border-right:unset;box-sizing:border-box;grid-gap:24px;overflow-y:auto;position:relative;width:100%}vviinn-teaser{margin-bottom:32px;margin-top:-24px}vviinn-image-selector{align-items:center;background:var(--color-primary, var(--color-primary-system));border-color:var(--color-primary, var(--color-primary-system));border-radius:2px;color:white;display:grid;font-size:16px;font-weight:600;height:56px;justify-items:center;margin-bottom:16px;transition:background 0.1s ease-in-out}vviinn-image-selector:hover{background:var(--color-primary-hover, var(--color-primary-hover-system));border-color:var(--color-primary-hover, var(--color-primary-hover-system))}vviinn-image-selector:active{border-color:black}.upload-button-content{display:grid;align-items:center;justify-items:start;justify-content:center;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;grid-gap:16px}.results-page{display:grid;grid-template-columns:336px auto;box-sizing:border-box}.results-page>*{padding:24px;box-sizing:border-box}.products{align-content:center;align-items:start;box-sizing:border-box;display:grid;grid-gap:32px 16px;grid-template-columns:repeat(auto-fill, minmax(152px, 1fr));justify-items:center;padding:24px;padding-right:0;position:absolute;width:calc(100% - 16px)}.products.hidden{display:none}vviinn-empty-results{width:280px;align-self:center;justify-self:center}.products-wrapper{display:grid;overflow-y:auto;overflow-x:hidden;padding:unset;position:relative;width:100%}.image-wrapper{border-right:1px solid #F4F4F4;display:grid;grid-template-rows:-webkit-min-content 170px;grid-template-rows:min-content 170px;grid-gap:24px;min-width:100%}.onboarding-wrapper{position:absolute;width:100%;padding:48px;box-sizing:border-box;display:grid;grid-gap:64px;padding-bottom:24px}vviinn-product-card{gap:0;width:100%}vviinn-product-card::part(image){border:1px solid #eaeaea;margin-bottom:8px}vviinn-product-card::part(price-container),vviinn-product-card::part(deeplink),vviinn-product-card::part(title){align-self:start}search-filters span{display:none}search-filters::part(filter){background:#F4F4F4;border-radius:4px;border:1px solid #F4F4F4;box-sizing:border-box;color:#161616;font-size:14px;font-weight:600;line-height:20px}search-filters::part(show-more-filters){border:1px solid #f4f4f4;border-radius:4px;box-sizing:border-box;color:#161616;font-size:14px;font-weight:600;line-height:20px;padding:6px 16px}search-filters::part(show-more-filters):hover{background:#EAEAEA}search-filters::part(filter):hover{background:#EAEAEA}search-filters::part(filter):focus{outline:none;border:1px solid var(--color-primary, var(--color-primary-system))}search-filters::part(filter active){background:rgba(15, 98, 254, 0.15);color:var(--color-primary, var(--color-primary-system))}.filters-wrapper{overflow:auto}.results-page:not(.active){display:none}.nothing-found{display:grid;grid-gap:64px;justify-self:center;padding-top:64px;padding-bottom:16px;position:absolute;width:60%}@media (max-width: 768px){.start-page_block{padding:24px}.onboarding-wrapper{padding:24px}}@media (max-width: 640px){.start-page{grid-template-rows:-webkit-min-content;grid-template-rows:min-content;grid-template-columns:unset;grid-gap:48px;padding:24px 0 48px 0}}@media (max-width: 640px) and (min-width: 415px){.onboarding-wrapper{position:unset}#onboarding-block{overflow:unset}.start-page.active{height:1px;overflow:auto}}@media (max-width: 415px){.results-page>*{box-sizing:border-box;padding:24px}vviinn-slide{padding-bottom:48px}.start-page_block:last-of-type{border-right:unset;overflow-y:unset;position:static;box-sizing:border-box;width:unset}.start-page_block{padding:0 24px}vviinn-teaser{margin-top:24px}.onboarding-wrapper{position:static;width:unset;padding:unset;box-sizing:border-box}.results-page{grid-template-columns:unset;grid-template-rows:-webkit-min-content auto;grid-template-rows:min-content auto}.image{margin-bottom:8px}.image-wrapper{grid-template-rows:-webkit-min-content auto;grid-template-rows:min-content auto;width:100%}.products-wrapper{align-content:start;position:static;overflow-y:unset;width:100%;padding-top:0}.products{position:static;padding:0;width:unset;grid-gap:32px 16px;justify-content:center}.nothing-found{position:static;grid-gap:64px;padding:unset;align-content:start;width:unset}}@media (max-width: 320px){.products{grid-template-columns:unset}}vviinn-wrong-format,vviinn-server-error{width:280px;align-self:center;justify-self:center}";
|
|
996
|
-
|
|
997
|
-
let VviinnVpsWidget = class {
|
|
998
|
-
constructor(hostRef) {
|
|
999
|
-
registerInstance(this, hostRef);
|
|
1000
|
-
/** When true modal window with widget will be shown */
|
|
1001
|
-
this.active = false;
|
|
1002
|
-
/** Currency sign will shown after price */
|
|
1003
|
-
this.currencySign = "€";
|
|
1004
|
-
/** Locale for currency formatting */
|
|
1005
|
-
this.locale = "de-DE";
|
|
1006
|
-
this.slidePosition = 0;
|
|
1007
|
-
this.width = 0;
|
|
1008
|
-
this.wrongImageFormat = false;
|
|
1009
|
-
}
|
|
1010
|
-
activeWatcher(value) {
|
|
1011
|
-
if (value) {
|
|
1012
|
-
this.overflow = document.body.style.overflow;
|
|
1013
|
-
document.body.style.overflow = "hidden";
|
|
1014
|
-
}
|
|
1015
|
-
else {
|
|
1016
|
-
document.body.style.overflow = this.overflow;
|
|
1017
|
-
}
|
|
1018
|
-
}
|
|
1019
|
-
componentWillLoad() {
|
|
1020
|
-
slotChangeListener(this, this.el);
|
|
1021
|
-
}
|
|
1022
|
-
connectedCallback() {
|
|
1023
|
-
state$1.apiPath = this.apiPath;
|
|
1024
|
-
state$1.currencySign = this.currencySign;
|
|
1025
|
-
state$1.locale = this.locale;
|
|
1026
|
-
imageSearchState.token = this.token;
|
|
1027
|
-
}
|
|
1028
|
-
handleImageSelection() {
|
|
1029
|
-
this.slidePosition = 1;
|
|
1030
|
-
const root = this.el.shadowRoot.querySelector("vviinn-overlayed-modal");
|
|
1031
|
-
const overlay = root.shadowRoot.querySelector("vviinn-overlay");
|
|
1032
|
-
const modal = overlay.querySelector("vviinn-modal");
|
|
1033
|
-
const modalBody = modal.shadowRoot.querySelector(".body");
|
|
1034
|
-
modalBody.scrollTop = 0;
|
|
1035
|
-
}
|
|
1036
|
-
resetState() {
|
|
1037
|
-
this.resetScroll("onboarding-block");
|
|
1038
|
-
this.slidePosition = 0;
|
|
1039
|
-
imageSearchState.image = Option.none;
|
|
1040
|
-
imageSearchState.imageUrl = Option.none;
|
|
1041
|
-
imageSearchState.imageBounds = Option.none;
|
|
1042
|
-
imageSearchState.searchArea = Option.none;
|
|
1043
|
-
imageSearchState.results = [];
|
|
1044
|
-
imageSearchState.filters = [];
|
|
1045
|
-
imageSearchState.detectedObjects = [];
|
|
1046
|
-
imageSearchState.activeIonLink = undefined;
|
|
1047
|
-
imageSearchState.rectangleSearchForm = undefined;
|
|
1048
|
-
this.resetScroll("results-block");
|
|
1049
|
-
}
|
|
1050
|
-
haveErrors() {
|
|
1051
|
-
return this.wrongImageFormat || imageSearchState.serverError;
|
|
1052
|
-
}
|
|
1053
|
-
resetScroll(elementId, behavior = "auto") {
|
|
1054
|
-
const element = this.el.shadowRoot.getElementById(elementId);
|
|
1055
|
-
element.scroll({ top: 0, left: 0, behavior });
|
|
1056
|
-
}
|
|
1057
|
-
handleModalClose() {
|
|
1058
|
-
this.active = false;
|
|
1059
|
-
this.resetState();
|
|
1060
|
-
const elementsToReset = ["onboarding-block", "results-block"];
|
|
1061
|
-
elementsToReset.forEach((name) => this.resetScroll(name));
|
|
1062
|
-
}
|
|
1063
|
-
render() {
|
|
1064
|
-
return (h(Host, null, 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" }, h("vviinn-slider", { showBullets: false, position: this.slidePosition }, h("vviinn-slide", { class: { "start-page": true } }, h("div", { class: {
|
|
1065
|
-
error: this.haveErrors(),
|
|
1066
|
-
"start-page_block": true,
|
|
1067
|
-
} }, h("vviinn-wrong-format", { class: { hidden: !this.wrongImageFormat }, onActionClick: () => (this.wrongImageFormat = false) }), h("vviinn-server-error", { class: { hidden: !imageSearchState.serverError }, onActionClick: () => (imageSearchState.serverError = false) }), h("vviinn-teaser", { class: { hidden: this.haveErrors() } }), h("vviinn-image-selector", { class: { hidden: this.haveErrors() }, onImageSelected: () => this.handleImageSelection(), onImageSelectedError: () => (this.wrongImageFormat = true), part: "select-image_button" }, h("span", { slot: "upload-button-text", class: "upload-button-content" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "29", height: "28", fill: "none" }, h("defs", null), 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" }), 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" })), h("slot", { name: "vviinn-image-upload-button-text" }, h("span", null, "Kamera oder Bild ausw\u00E4hlen")))), h("vviinn-privacy-badge", { class: { hidden: this.haveErrors() } })), h("div", { id: "onboarding-block", class: "start-page_block" }, h("div", { class: "onboarding-wrapper" }, h("vviinn-onboarding", null), h("vviinn-example-images", { onImageSelected: () => this.handleImageSelection(), onImageSelectedError: () => this.resetScroll("onboarding-block", "smooth") })))), h("vviinn-slide", { class: { "results-page": true, active: this.slidePosition == 1 } }, h("div", { class: "image-wrapper" }, h("vviinn-image-view", null), h("div", { class: "filters-wrapper" }, h("div", { class: "filters" }, imageSearchState.filters.map((filter) => (h("search-filters", { filter: filter })))))), h("div", { id: "results-block", class: "products-wrapper" }, h("div", { class: { "nothing-found": true, hidden: imageSearchState.results.length > 0 } }, h("vviinn-empty-results", null), h("vviinn-onboarding", null)), h("div", { class: {
|
|
1068
|
-
hidden: imageSearchState.results.length <= 0,
|
|
1069
|
-
products: true,
|
|
1070
|
-
} }, imageSearchState.results.map((p) => {
|
|
1071
|
-
var _a;
|
|
1072
|
-
return (h("vviinn-product-card", { hidden: true, productTitle: p.title, productId: p.productId, brand: p.brand, deeplink: p.deeplink, price: p.price.actual, salePrice: p.price.sale, imageWidth: 160, image: (_a = p.image.thumbnail) !== null && _a !== void 0 ? _a : p.image.original, part: "product-card" }));
|
|
1073
|
-
}))))))));
|
|
1074
|
-
}
|
|
1075
|
-
get el() { return getElement(this); }
|
|
1076
|
-
static get watchers() { return {
|
|
1077
|
-
"active": ["activeWatcher"]
|
|
1078
|
-
}; }
|
|
1079
|
-
};
|
|
1080
|
-
VviinnVpsWidget.style = vviinnVpsWidgetCss;
|
|
1081
|
-
|
|
1082
699
|
const vviinnWrongFormatCss = ":host{display:block}";
|
|
1083
700
|
|
|
1084
701
|
let VviinnWrongFormat = class {
|
|
@@ -1092,4 +709,4 @@ let VviinnWrongFormat = class {
|
|
|
1092
709
|
};
|
|
1093
710
|
VviinnWrongFormat.style = vviinnWrongFormatCss;
|
|
1094
711
|
|
|
1095
|
-
export {
|
|
712
|
+
export { HighlightBox as highlight_box, ImageCropper as image_cropper, SearchFilters as search_filters, VviinnDetectedObject as vviinn_detected_object, VviinnEmptyResults as vviinn_empty_results, VviinnExampleImage as vviinn_example_image, VviinnExampleImages as vviinn_example_images, VviinnImageSelector as vviinn_image_selector, VviinnImageView as vviinn_image_view, VviinnModal as vviinn_modal, VviinnOnboarding as vviinn_onboarding, VviinnOnboardingCard1 as vviinn_onboarding_card_1, VviinnOnboardingCard2 as vviinn_onboarding_card_2, VviinnOnboardingCard3 as vviinn_onboarding_card_3, VviinnOverlay as vviinn_overlay, VviinnOverlayedModal as vviinn_overlayed_modal, VviinnPrivacyBadge as vviinn_privacy_badge, VviinnServerError as vviinn_server_error, VviinnSlide as vviinn_slide, VviinnSlider as vviinn_slider, VviinnTeaser as vviinn_teaser, VviinnWrongFormat as vviinn_wrong_format };
|