vviinn-widgets 2.44.2 → 2.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/VisualSearchIcon-1180d079.js +8 -0
- package/dist/cjs/{customized-slots-49c03dc1.js → customized-slots-1b59bd38.js} +1 -0
- package/dist/cjs/{index-7ff2ab5f.js → index-279a6a0f.js} +75 -75
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{package-5912f89d.js → package-3b910c03.js} +1 -1
- package/dist/cjs/{search-filters_16.cjs.entry.js → search-filters_17.cjs.entry.js} +116 -55
- package/dist/cjs/{imageSearch.store-dc4e98b3.js → search.store-0b319593.js} +55 -21
- package/dist/cjs/vviinn-button.cjs.entry.js +2 -2
- package/dist/cjs/vviinn-carousel_4.cjs.entry.js +60 -51
- package/dist/cjs/vviinn-preloader.cjs.entry.js +2 -2
- package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js +4 -2
- package/dist/cjs/vviinn-vpr-button.cjs.entry.js +3 -3
- package/dist/cjs/vviinn-vps-button.cjs.entry.js +7 -4
- package/dist/cjs/vviinn-vps-widget.cjs.entry.js +65 -40
- package/dist/cjs/vviinn-widgets.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/customized-slots.js +1 -0
- package/dist/collection/components/image-search/search-filters/search-filters.js +5 -5
- package/dist/collection/components/vviinn-error/vviinn-empty-results/vviinn-empty-results.js +2 -1
- package/dist/collection/components/vviinn-example-image/vviinn-example-image.js +1 -1
- package/dist/collection/components/vviinn-icons/icons/ArrowIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/BasketIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/CameraActionIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/CameraIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/CheckCircleIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/CheckIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/ChevronIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/CloseIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/CrossIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/GalleryActionIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/LoaderIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/MinusIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/PlusIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/RoundCameraIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/SecondaryActionIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/TextSearchIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/UpdateIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/UploadActionIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/VisualSearchIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/icons/WarningIcon.js +2 -0
- package/dist/collection/components/vviinn-icons/index.js +20 -18
- package/dist/collection/components/vviinn-image-selector/vviinn-image-selector.js +1 -1
- package/dist/collection/components/vviinn-image-view/vviinn-detected-object/vviinn-detected-object.js +7 -7
- package/dist/collection/components/vviinn-image-view/vviinn-image-view.js +7 -8
- package/dist/collection/components/vviinn-modal/vviinn-modal.js +2 -2
- package/dist/collection/components/vviinn-preloader/vviinn-preloader.js +2 -2
- package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.css +1 -0
- package/dist/collection/components/vviinn-product-card/vviinn-product-card.js +2 -2
- package/dist/collection/components/vviinn-text-search/vviinn-text-search.css +63 -0
- package/dist/collection/components/vviinn-text-search/vviinn-text-search.js +118 -0
- package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-vidget.js +7 -4
- package/dist/collection/components/vviinn-vps-button/stories/vviinn-vps-button.stories.js +2 -0
- package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +20 -1
- package/dist/collection/components/vviinn-vps-widget/stories/vviinn-vps-widget.stories.js +2 -0
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.css +15 -1
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +77 -31
- package/dist/collection/locale/resources-vps.js +2 -0
- package/dist/collection/network/request.js +1 -1
- package/dist/collection/searchSession/searchSession.js +5 -10
- package/dist/collection/store/{imageSearch.store.js → search.store.js} +34 -5
- package/dist/esm/VisualSearchIcon-13f7da6a.js +6 -0
- package/dist/esm/{customized-slots-9a9f8c20.js → customized-slots-3bea41d2.js} +1 -0
- package/dist/esm/{index-53105ad4.js → index-9c15b8f1.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{package-b2424850.js → package-cae9f186.js} +1 -1
- package/dist/esm/{search-filters_16.entry.js → search-filters_17.entry.js} +85 -25
- package/dist/esm/{imageSearch.store-c0f2a178.js → search.store-5eebcfbe.js} +54 -21
- package/dist/esm/vviinn-button.entry.js +1 -1
- package/dist/esm/vviinn-carousel_4.entry.js +19 -10
- package/dist/esm/vviinn-preloader.entry.js +2 -2
- package/dist/esm/vviinn-recommendations-sidebar.entry.js +4 -2
- package/dist/esm/vviinn-vpr-button.entry.js +2 -2
- package/dist/esm/vviinn-vps-button.entry.js +8 -5
- package/dist/esm/vviinn-vps-widget.entry.js +61 -36
- package/dist/esm/vviinn-widgets.js +1 -1
- package/dist/types/components/vviinn-icons/icons/ArrowIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/BasketIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/CameraActionIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/CameraIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/CheckCircleIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/CheckIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/ChevronIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/CloseIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/CrossIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/GalleryActionIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/LoaderIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/MinusIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/PlusIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/RoundCameraIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/SecondaryActionIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/TextSearchIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/UpdateIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/UploadActionIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/VisualSearchIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/icons/WarningIcon.d.ts +1 -0
- package/dist/types/components/vviinn-icons/index.d.ts +20 -17
- package/dist/types/components/vviinn-text-search/vviinn-text-search.d.ts +18 -0
- package/dist/types/components/vviinn-vpr-widget/vviinn-vpr-vidget.d.ts +1 -0
- package/dist/types/components/vviinn-vps-button/vviinn-vps-button.d.ts +2 -0
- package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +9 -0
- package/dist/types/components.d.ts +37 -0
- package/dist/types/network/request.d.ts +1 -1
- package/dist/types/searchSession/searchSession.d.ts +17 -3
- package/dist/types/store/{imageSearch.store.d.ts → search.store.d.ts} +6 -4
- package/{www/build/p-987a8e9f.js → dist/vviinn-widgets/p-04cdf7c5.js} +1 -1
- package/dist/vviinn-widgets/{p-7f2c9319.entry.js → p-185e2420.entry.js} +1 -1
- package/dist/vviinn-widgets/p-1a1d85b7.js +1 -0
- package/dist/vviinn-widgets/p-3d2759e3.entry.js +1 -0
- package/dist/vviinn-widgets/{p-da7273ce.js → p-41ab810c.js} +1 -1
- package/dist/vviinn-widgets/{p-ed082ecf.entry.js → p-4c726a51.entry.js} +1 -1
- package/dist/vviinn-widgets/p-ae471f24.entry.js +11 -0
- package/dist/vviinn-widgets/p-b21ebac9.js +1 -0
- package/dist/vviinn-widgets/p-c96f5909.entry.js +1 -0
- package/dist/vviinn-widgets/p-d1592ac5.entry.js +1 -0
- package/dist/vviinn-widgets/p-d162fe72.entry.js +1 -0
- package/dist/vviinn-widgets/{p-010b4979.entry.js → p-ec7b07a0.entry.js} +1 -1
- package/dist/vviinn-widgets/p-ed482314.js +1 -0
- package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
- package/package.json +1 -1
- package/{dist/vviinn-widgets/p-987a8e9f.js → www/build/p-04cdf7c5.js} +1 -1
- package/www/build/{p-7f2c9319.entry.js → p-185e2420.entry.js} +1 -1
- package/www/build/p-1a1d85b7.js +1 -0
- package/www/build/p-3d2759e3.entry.js +1 -0
- package/www/build/{p-da7273ce.js → p-41ab810c.js} +1 -1
- package/www/build/{p-ed082ecf.entry.js → p-4c726a51.entry.js} +1 -1
- package/www/build/p-ae471f24.entry.js +11 -0
- package/www/build/p-b21ebac9.js +1 -0
- package/www/build/p-c96f5909.entry.js +1 -0
- package/www/build/p-d1592ac5.entry.js +1 -0
- package/www/build/p-d162fe72.entry.js +1 -0
- package/www/build/{p-010b4979.entry.js → p-ec7b07a0.entry.js} +1 -1
- package/www/build/p-ed482314.js +1 -0
- package/www/build/vviinn-widgets.esm.js +1 -1
- package/dist/cjs/index-28052f80.js +0 -48
- package/dist/esm/index-ac58a953.js +0 -34
- package/dist/vviinn-widgets/p-044c5f45.entry.js +0 -1
- package/dist/vviinn-widgets/p-726774f9.js +0 -1
- package/dist/vviinn-widgets/p-7f19baa1.js +0 -1
- package/dist/vviinn-widgets/p-a7cc44b3.entry.js +0 -1
- package/dist/vviinn-widgets/p-ab938400.entry.js +0 -1
- package/dist/vviinn-widgets/p-b1e9dd46.entry.js +0 -1
- package/dist/vviinn-widgets/p-c8ef8d6c.js +0 -1
- package/dist/vviinn-widgets/p-ecd1c141.entry.js +0 -11
- package/www/build/p-044c5f45.entry.js +0 -1
- package/www/build/p-726774f9.js +0 -1
- package/www/build/p-7f19baa1.js +0 -1
- package/www/build/p-a7cc44b3.entry.js +0 -1
- package/www/build/p-ab938400.entry.js +0 -1
- package/www/build/p-b1e9dd46.entry.js +0 -1
- package/www/build/p-c8ef8d6c.js +0 -1
- package/www/build/p-ecd1c141.entry.js +0 -11
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent,
|
|
2
|
-
import {
|
|
1
|
+
import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-1f3eaf12.js';
|
|
2
|
+
import { s as searchState, b as state, a as _function, O as Option, k as parseExcluded, q as isEmpty } from './search.store-5eebcfbe.js';
|
|
3
3
|
import { i as instance } from './i18next-387f2b0a.js';
|
|
4
|
-
import { v as version } from './package-
|
|
5
|
-
import { c as campaignTypeNames, s as slotChangeListener, S as SlotSkeleton } from './customized-slots-
|
|
6
|
-
import { j as createSearchEvent, k as createFilterEvent, v as v4, c as createTrackingApi, l as createWidgetVpsEvent, m as createProductVpsEventByType, n as createResultVpsEventByType } from './index-
|
|
7
|
-
import { c as CameraActionIcon, d as UploadActionIcon } from './index-ac58a953.js';
|
|
4
|
+
import { v as version } from './package-cae9f186.js';
|
|
5
|
+
import { c as campaignTypeNames, s as slotChangeListener, S as SlotSkeleton } from './customized-slots-3bea41d2.js';
|
|
6
|
+
import { j as createSearchEvent, k as createFilterEvent, v as v4, c as createTrackingApi, l as createWidgetVpsEvent, m as createProductVpsEventByType, n as createResultVpsEventByType } from './index-9c15b8f1.js';
|
|
8
7
|
import { D as DEFAULT_EXAMPLE_IMAGE } from './constants-8bf233a9.js';
|
|
9
8
|
|
|
9
|
+
const CameraActionIcon = () => (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
|
|
10
|
+
h("path", { d: "M12 17.5C13.25 17.5 14.3125 17.0625 15.1875 16.1875C16.0625 15.3125 16.5 14.25 16.5 13C16.5 11.75 16.0625 10.6875 15.1875 9.8125C14.3125 8.9375 13.25 8.5 12 8.5C10.75 8.5 9.6875 8.9375 8.8125 9.8125C7.9375 10.6875 7.5 11.75 7.5 13C7.5 14.25 7.9375 15.3125 8.8125 16.1875C9.6875 17.0625 10.75 17.5 12 17.5ZM12 15.5C11.3 15.5 10.7083 15.2583 10.225 14.775C9.74167 14.2917 9.5 13.7 9.5 13C9.5 12.3 9.74167 11.7083 10.225 11.225C10.7083 10.7417 11.3 10.5 12 10.5C12.7 10.5 13.2917 10.7417 13.775 11.225C14.2583 11.7083 14.5 12.3 14.5 13C14.5 13.7 14.2583 14.2917 13.775 14.775C13.2917 15.2583 12.7 15.5 12 15.5ZM4 21C3.45 21 2.97917 20.8042 2.5875 20.4125C2.19583 20.0208 2 19.55 2 19V7C2 6.45 2.19583 5.97917 2.5875 5.5875C2.97917 5.19583 3.45 5 4 5H7.15L8.4 3.65C8.58333 3.45 8.80417 3.29167 9.0625 3.175C9.32083 3.05833 9.59167 3 9.875 3H14.125C14.4083 3 14.6792 3.05833 14.9375 3.175C15.1958 3.29167 15.4167 3.45 15.6 3.65L16.85 5H20C20.55 5 21.0208 5.19583 21.4125 5.5875C21.8042 5.97917 22 6.45 22 7V19C22 19.55 21.8042 20.0208 21.4125 20.4125C21.0208 20.8042 20.55 21 20 21H4Z", fill: "currentColor" })));
|
|
11
|
+
|
|
12
|
+
const UploadActionIcon = () => (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
|
|
13
|
+
h("path", { d: "M4.5 21C4.1 21 3.75 20.85 3.45 20.55C3.15 20.25 3 19.9 3 19.5V4.5C3 4.1 3.15 3.75 3.45 3.45C3.75 3.15 4.1 3 4.5 3H19.5C19.9 3 20.25 3.15 20.55 3.45C20.85 3.75 21 4.1 21 4.5V19.5C21 19.9 20.85 20.25 20.55 20.55C20.25 20.85 19.9 21 19.5 21H4.5ZM6.65 17.075H17.375C17.525 17.075 17.6333 17.0083 17.7 16.875C17.7667 16.7417 17.7583 16.6083 17.675 16.475L14.75 12.575C14.6667 12.475 14.5667 12.425 14.45 12.425C14.3333 12.425 14.2333 12.475 14.15 12.575L11.15 16.45L9.125 13.675C9.04167 13.575 8.94167 13.525 8.825 13.525C8.70833 13.525 8.60833 13.575 8.525 13.675L6.375 16.475C6.275 16.6083 6.25833 16.7417 6.325 16.875C6.39167 17.0083 6.5 17.075 6.65 17.075Z", fill: "currentColor" })));
|
|
14
|
+
|
|
10
15
|
const resources = {
|
|
11
16
|
de: {
|
|
12
17
|
translation: {
|
|
@@ -17,6 +22,7 @@ const resources = {
|
|
|
17
22
|
privacyBadgeText: "Durch das Hochladen eines Bildes willigst Du in die Verarbeitung durch unseren Partner Vviinn ein. Das Bild wird nach einer Stunde Inaktivität gelöscht.",
|
|
18
23
|
teaserText: "Finde Produkte auf \n einem Foto",
|
|
19
24
|
imageSearchModalTitle: "Bildsuche",
|
|
25
|
+
textSearchPlaceholder: "mit Text suchen",
|
|
20
26
|
emptyResultsBlock: {
|
|
21
27
|
title: "Leider nichts gefunden",
|
|
22
28
|
button: "Neues Bild hochladen",
|
|
@@ -45,6 +51,7 @@ const resources = {
|
|
|
45
51
|
privacyBadgeText: "By uploading a picture you agree to the processing by our partner Vviinn. The image will be deleted after one hour of inactivity.",
|
|
46
52
|
teaserText: "Find Product by Photo",
|
|
47
53
|
imageSearchModalTitle: "Visual Search",
|
|
54
|
+
textSearchPlaceholder: "Search by text",
|
|
48
55
|
emptyResultsBlock: {
|
|
49
56
|
title: "Sorry, nothing found",
|
|
50
57
|
button: "Upload another image",
|
|
@@ -73,7 +80,7 @@ const videoStreamSettings = {
|
|
|
73
80
|
frameRate: { ideal: 30 },
|
|
74
81
|
};
|
|
75
82
|
|
|
76
|
-
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);height:640px}#start-page_block{box-sizing:border-box;display:flex;overflow-y:auto;flex-direction:column;justify-content:center;padding:42px 62px}#start-page_block.error{align-content:center}.start-page_main-content{flex-grow:1;display:flex;flex-direction:column;justify-content:center}.start-page_errors-block{display:flex;flex-direction:column;justify-content:center;gap:12px}.buttons-group{display:flex;flex-direction:column;gap:12px;margin:24px
|
|
83
|
+
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);height:640px}#start-page_block{box-sizing:border-box;display:flex;overflow-y:auto;flex-direction:column;justify-content:center;padding:42px 62px}#start-page_block.error{align-content:center}.start-page_main-content{flex-grow:1;display:flex;flex-direction:column;justify-content:center}.start-page_errors-block{display:flex;flex-direction:column;justify-content:center;gap:12px}#start-page_block vviinn-text-search{margin-top:12px}.buttons-group{display:flex;flex-direction:column;gap:12px;margin-top:24px}.action-button{display:grid;border:none;cursor:pointer;align-items:center;border-radius:8px;font-size:16px;height:48px;justify-items:center;transition:background 0.1s ease-in-out;color:#525252;background-color:#f4f4f4}.action-button:hover{background-color:#eaeaea}.action-button:first-child{background:var(--color-primary, var(--color-primary-system));border-color:var(--color-primary, var(--color-primary-system));color:white}.action-button:first-child:hover{background:var(--color-primary-hover, var(--color-primary-hover-system));border-color:var(--color-primary-hover, var(--color-primary-hover-system))}.action-button:active{border-color:black}.action-button-content{display:grid;align-items:center;justify-items:start;justify-content:center;grid-template-columns:max-content auto;grid-gap:8px}.results-page{margin-top:64px;display:grid;grid-template-columns:336px auto;box-sizing:border-box}.results-page>*{padding:24px;box-sizing:border-box}.results-page .text-search-wrapper{width:100%;padding:24px}.products{width:100%;align-content:center;align-items:start;box-sizing:border-box;display:grid;grid-gap:32px 16px;grid-template-columns:repeat(auto-fill, minmax(130px, 1fr));justify-items:center;padding:24px;position:absolute}.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{display:grid;grid-template-rows:min-content 1fr;min-width:100%}.filters-wrapper{margin-top:24px;overflow-x:auto;transform:translateX(-24px);min-width:calc(100% + 48px)}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:8px;box-sizing:border-box;color:#161616;font-size:14px;font-weight:400;line-height:20px}search-filters::part(show-more-filters){display:flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid #f4f4f4;min-width:40px;height:40px;border-radius:100px;box-sizing:border-box;color:#161616}search-filters::part(show-more-filters):hover{background:#eaeaea}search-filters::part(filter active){background:var(--color-primary, var(--color-primary-system));color:white}.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%}vviinn-preloader{--preloader-size:24px;display:flex}@media (max-width: 1080px){#start-page_block{padding:24px 36px}}@media (max-width: 768px){.start-page{display:flex;flex-direction:column;height:100%}vviinn-overlayed-modal.first-screen::part(secondary-action){visibility:visible}.start-page.active{height:calc(100vh - 64px);height:calc(100svh - 64px)}.start-page:not(.active){overflow:hidden}.results-page{margin-top:0}.results-page>*{box-sizing:border-box;padding:12px 24px 24px}.image-wrapper{padding:0}.filters-wrapper{padding-left:24px;min-width:calc(100% + 40px)}.results-page{grid-template-rows:min-content;grid-template-columns:unset}#start-page_block{overflow-y:unset;min-height:-moz-fit-content;min-height:fit-content;padding:24px 20px}.image{margin-bottom:8px}.image-wrapper{grid-template-rows:min-content auto;width:100%}.products-wrapper{align-content:start;position:static;overflow-y:unset;width:100%;padding-top:0;margin-top:24px}.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: 480px){.start-page{padding-top:0}.action-button-content{grid-gap:10px}}@media (max-width: 380px){.filters-wrapper{padding-left:24px}.products{grid-gap:24px 10px}}vviinn-wrong-format,vviinn-server-error{width:280px;align-self:center;justify-self:center}.visually-hidden{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}";
|
|
77
84
|
|
|
78
85
|
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
79
86
|
var t = {};
|
|
@@ -220,6 +227,7 @@ const VviinnVpsWidget = class {
|
|
|
220
227
|
this.productDetailNewTab = true;
|
|
221
228
|
this.imageResolutionWidth = 250;
|
|
222
229
|
this.exampleImageSource = DEFAULT_EXAMPLE_IMAGE;
|
|
230
|
+
this.textSearchShow = false;
|
|
223
231
|
this.apiPath = "https://api.vviinn.com";
|
|
224
232
|
this.showingInButton = false;
|
|
225
233
|
this.buttonElementId = undefined;
|
|
@@ -235,6 +243,8 @@ const VviinnVpsWidget = class {
|
|
|
235
243
|
this.cameraButtonClicked = false;
|
|
236
244
|
this.uploadSource = undefined;
|
|
237
245
|
this.showAspectRatioError = false;
|
|
246
|
+
this.products = [];
|
|
247
|
+
this.initialSearchQuery = "";
|
|
238
248
|
}
|
|
239
249
|
initResultEvents() {
|
|
240
250
|
this.resultLoaded = false;
|
|
@@ -252,6 +262,9 @@ const VviinnVpsWidget = class {
|
|
|
252
262
|
isResultSlide() {
|
|
253
263
|
return this.slidePosition === 1;
|
|
254
264
|
}
|
|
265
|
+
findProductById(id) {
|
|
266
|
+
return searchState.results.find((r) => r.productId === id);
|
|
267
|
+
}
|
|
255
268
|
handleOpenLink(deeplink, event) {
|
|
256
269
|
if (this.productDetailNewTab || event.ctrlKey || event.metaKey) {
|
|
257
270
|
let newTab = window.open();
|
|
@@ -316,7 +329,7 @@ const VviinnVpsWidget = class {
|
|
|
316
329
|
async trackProductClick({ detail }) {
|
|
317
330
|
const { productId, clickEvent } = detail;
|
|
318
331
|
const productClickEvent = this.getProductTrackEvent(detail, "click");
|
|
319
|
-
const product =
|
|
332
|
+
const product = this.findProductById(productId);
|
|
320
333
|
if (!product || !product.deeplink)
|
|
321
334
|
return;
|
|
322
335
|
if (!this.trackingDeactivated) {
|
|
@@ -334,7 +347,7 @@ const VviinnVpsWidget = class {
|
|
|
334
347
|
async trackAuxClick({ detail }) {
|
|
335
348
|
const { productId } = detail;
|
|
336
349
|
const productClickEvent = this.getProductTrackEvent(detail, "click");
|
|
337
|
-
const product =
|
|
350
|
+
const product = this.findProductById(productId);
|
|
338
351
|
if (!product || !product.deeplink)
|
|
339
352
|
return;
|
|
340
353
|
if (!this.trackingDeactivated) {
|
|
@@ -367,6 +380,10 @@ const VviinnVpsWidget = class {
|
|
|
367
380
|
const searchEvent = createFilterEvent(Object.assign({ session_id: this.uiSessionId, source: this.imageSource, kind: detail.kind, action: detail.action }, rest));
|
|
368
381
|
this.trackingApi.trackEvent(searchEvent).then(this.setTrackingDeactivated);
|
|
369
382
|
}
|
|
383
|
+
async trackTextSearchFinished({ detail }) {
|
|
384
|
+
this.initialSearchQuery = detail;
|
|
385
|
+
this.slidePosition = 1;
|
|
386
|
+
}
|
|
370
387
|
connectedCallback() {
|
|
371
388
|
this.isDesktop = checkDeviceType() === "desktop";
|
|
372
389
|
state.apiPath = this.apiPath;
|
|
@@ -374,12 +391,13 @@ const VviinnVpsWidget = class {
|
|
|
374
391
|
state.locale = this.locale;
|
|
375
392
|
this.cameraAvailable =
|
|
376
393
|
!!navigator.mediaDevices && !!navigator.mediaDevices.getUserMedia;
|
|
377
|
-
|
|
378
|
-
imageSearchState.campaignId = _function.pipe(this.campaignId, Option.fromNullable, Option.chain(Option.fromPredicate(notEmptyString)), Option.map(filterInt), Option.chain(Option.fromPredicate(notNan)), Option.map((s) => `${s}`));
|
|
394
|
+
const campaignId = _function.pipe(this.campaignId, Option.fromNullable, Option.chain(Option.fromPredicate(notEmptyString)), Option.map(filterInt), Option.chain(Option.fromPredicate(notNan)), Option.map((s) => `${s}`));
|
|
379
395
|
if (this.excluded) {
|
|
380
396
|
this.excluded = parseExcluded(this.excluded);
|
|
381
397
|
}
|
|
382
|
-
|
|
398
|
+
searchState.token = this.token;
|
|
399
|
+
searchState.campaignId = campaignId;
|
|
400
|
+
searchState.excluded = this.excluded;
|
|
383
401
|
this.uiSessionId = v4();
|
|
384
402
|
this.trackingApi = createTrackingApi(this.apiPath, this.token);
|
|
385
403
|
this.id = this.el.id;
|
|
@@ -439,22 +457,26 @@ const VviinnVpsWidget = class {
|
|
|
439
457
|
this.cameraAvailable && (h("button", { class: "action-button", part: "start-camera_button", onClick: () => {
|
|
440
458
|
this.handleStartCameraClick();
|
|
441
459
|
this.uploadSource = "startCamera";
|
|
442
|
-
} },
|
|
460
|
+
} }, searchState.loading &&
|
|
461
|
+
searchState.searchType === "image" &&
|
|
462
|
+
this.uploadSource === "startCamera" ? (h("vviinn-preloader", null)) : (h("span", { class: "action-button-content" }, h("slot", { name: "vviinn-camera-icon" }, h(CameraActionIcon, null)), this.cameraEnabled ? (h("slot", { name: "vviinn-camera-button-text-stop" }, h("span", null, instance.t("cameraButtonTextStop")))) : (h("slot", { name: "vviinn-camera-button-text-start" }, h("span", null, instance.t("cameraButtonTextStart")))))))),
|
|
443
463
|
h("vviinn-image-selector", { class: "action-button", onClick: () => (this.uploadSource = "uploadPhoto"), onVviinnImageUploadFinished: this.handleVviinnImageUploadFinished, onVviinnImageUpload: () => {
|
|
444
464
|
this.handleVviinnImageUpload("uploadPhoto");
|
|
445
|
-
}, onVviinnNoResult: ({ detail }) => this.handleVviinnNoResult(detail), resetVpsButton: this.resetVpsButton, basicEventData: this.getBasicEventData(), part: "upload-photo_button", startUpload: this.buttonPressed && this.showingInButton && this.mode === "upload", loading:
|
|
465
|
+
}, onVviinnNoResult: ({ detail }) => this.handleVviinnNoResult(detail), resetVpsButton: this.resetVpsButton, basicEventData: this.getBasicEventData(), part: "upload-photo_button", startUpload: this.buttonPressed && this.showingInButton && this.mode === "upload", loading: searchState.loading &&
|
|
466
|
+
searchState.searchType === "image" &&
|
|
467
|
+
this.uploadSource === "uploadPhoto" }, h("span", { slot: "upload-button-text", class: "action-button-content" }, h("slot", { name: "vviinn-image-upload-icon" }, h(UploadActionIcon, null)), h("slot", { name: "vviinn-image-upload-button-text" }, h("span", null, instance.t("imageUploadButtonText"))))),
|
|
446
468
|
];
|
|
447
469
|
return this.isDesktop ? buttons.reverse() : buttons;
|
|
448
470
|
}
|
|
449
471
|
renderResults() {
|
|
450
|
-
if (
|
|
472
|
+
if (searchState.results.length === 0)
|
|
451
473
|
return null;
|
|
452
474
|
if (!this.resultLoaded) {
|
|
453
475
|
this.vviinnResultLoad.emit(this.getBasicEventData());
|
|
454
476
|
this.trackResultEvent("load");
|
|
455
477
|
this.resultLoaded = true;
|
|
456
478
|
}
|
|
457
|
-
return
|
|
479
|
+
return searchState.results.map((p, i) => {
|
|
458
480
|
var _a;
|
|
459
481
|
return (h("vviinn-product-card", { key: p.productId, hidden: true, productTitle: p.title, productId: p.productId, productType: p.productType, brand: p.brand, deeplink: p.deeplink, price: p.price.actual, salePrice: p.price.sale, responsive: true, imageWidth: this.imageResolutionWidth, image: (_a = p.image.thumbnail) !== null && _a !== void 0 ? _a : p.image.original, part: "product-card", campaignTypeId: "VPS", index: i, widgetElementId: this.id, buttonElementId: this.buttonElementId, widgetVersion: version }));
|
|
460
482
|
});
|
|
@@ -462,18 +484,19 @@ const VviinnVpsWidget = class {
|
|
|
462
484
|
resetState() {
|
|
463
485
|
this.resetScroll("start-page_block");
|
|
464
486
|
this.slidePosition = 0;
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
487
|
+
searchState.resetCategoryLink = undefined;
|
|
488
|
+
searchState.activeIonLink = undefined;
|
|
489
|
+
searchState.image = Option.none;
|
|
490
|
+
searchState.imageUrl = Option.none;
|
|
491
|
+
searchState.imageBounds = Option.none;
|
|
492
|
+
searchState.searchArea = Option.none;
|
|
493
|
+
searchState.results = [];
|
|
494
|
+
searchState.filters = [];
|
|
495
|
+
searchState.detectedObjects = [];
|
|
496
|
+
searchState.rectangleSearchForm = undefined;
|
|
497
|
+
searchState.loading = false;
|
|
498
|
+
searchState.serverError = false;
|
|
499
|
+
searchState.searchType = undefined;
|
|
477
500
|
this.wrongImageFormat = false;
|
|
478
501
|
this.resetScroll("results-block");
|
|
479
502
|
this.stopStreamTracks();
|
|
@@ -484,7 +507,7 @@ const VviinnVpsWidget = class {
|
|
|
484
507
|
this.setShowAspectRatioError(false);
|
|
485
508
|
}
|
|
486
509
|
haveErrors() {
|
|
487
|
-
return this.wrongImageFormat ||
|
|
510
|
+
return this.wrongImageFormat || searchState.serverError;
|
|
488
511
|
}
|
|
489
512
|
resetScroll(elementId, behavior = "auto") {
|
|
490
513
|
const element = this.el.shadowRoot.getElementById(elementId);
|
|
@@ -499,7 +522,7 @@ const VviinnVpsWidget = class {
|
|
|
499
522
|
}
|
|
500
523
|
render() {
|
|
501
524
|
var _a;
|
|
502
|
-
return (h(Host,
|
|
525
|
+
return (h(Host, { exportparts: "text-search-input" }, !this.showingInButton && h(SlotSkeleton, null), h("vviinn-overlayed-modal", { class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState.bind(this), onVviinnWidgetClose: () => this.handleModalClose(), buttonElementId: (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.id, widgetVersion: version, hideBackButton: (this.mode === "upload" && this.showingInButton) ||
|
|
503
526
|
(!this.cameraEnabled && this.isOnboardingSlide()), exportparts: "secondary-action, title, close-button" }, h("vviinn-slider", { showBullets: false, position: this.slidePosition }, h("vviinn-slide", { class: {
|
|
504
527
|
"start-page": true,
|
|
505
528
|
"camera-enabled": this.cameraEnabled,
|
|
@@ -509,21 +532,23 @@ const VviinnVpsWidget = class {
|
|
|
509
532
|
error: this.haveErrors(),
|
|
510
533
|
}, id: "start-page_block" }, h("div", { class: "start-page_main-content" }, h("div", { class: {
|
|
511
534
|
"start-page_errors-block": true,
|
|
512
|
-
hidden: !this.wrongImageFormat && !
|
|
513
|
-
} }, h("vviinn-wrong-format", { class: { hidden: !this.wrongImageFormat }, handler: () => this.resetState() }), h("vviinn-server-error", { class: { hidden: !
|
|
535
|
+
hidden: !this.wrongImageFormat && !searchState.serverError,
|
|
536
|
+
} }, h("vviinn-wrong-format", { class: { hidden: !this.wrongImageFormat }, handler: () => this.resetState() }), h("vviinn-server-error", { class: { hidden: !searchState.serverError }, handler: () => this.resetState() })), !this.haveErrors() && h("vviinn-teaser", null), !this.haveErrors() && (h("div", { class: "buttons-group" }, this.renderButtons())), this.textSearchShow && !this.haveErrors() && (h("vviinn-text-search", { clearSearchQuery: true }))), h("vviinn-privacy-badge", { privacyBadgeText: instance.t("privacyBadgeText"), class: { invisible: this.haveErrors() } }))), h("vviinn-slide", { class: {
|
|
514
537
|
"results-page": true,
|
|
515
538
|
active: this.isResultSlide(),
|
|
516
|
-
} }, h("div", { class: "image-wrapper" },
|
|
539
|
+
} }, this.isResultSlide() && searchState.searchType === "image" && (h("div", { class: "image-wrapper" }, h("vviinn-image-view", { basicEventData: this.getBasicEventData(), setShowAspectRatioError: this.setShowAspectRatioError, showAspectRatioError: this.showAspectRatioError }), h("div", { class: {
|
|
517
540
|
"filters-wrapper": true,
|
|
518
541
|
hidden: this.showAspectRatioError,
|
|
519
|
-
} }, h("div", { class: "filters" },
|
|
542
|
+
} }, h("div", { class: "filters" }, searchState.filters.map((filter) => (h("search-filters", { filter: filter, basicEventData: this.getBasicEventData() }))))))), this.textSearchShow &&
|
|
543
|
+
this.isResultSlide() &&
|
|
544
|
+
searchState.searchType === "text" && (h("div", { class: "text-search-wrapper" }, h("vviinn-text-search", { initialSearchQuery: this.initialSearchQuery }))), h("div", { id: "results-block", class: "products-wrapper" }, h("div", { class: {
|
|
520
545
|
"nothing-found": true,
|
|
521
|
-
hidden:
|
|
546
|
+
hidden: searchState.results.length > 0,
|
|
522
547
|
} }, h("vviinn-empty-results", { handler: () => this.resetState() })), h("div", { class: {
|
|
523
548
|
"nothing-found": true,
|
|
524
549
|
hidden: !this.showAspectRatioError,
|
|
525
550
|
} }, h("vviinn-wrong-aspect-ratio", { handler: () => this.resetState() })), h("div", { class: {
|
|
526
|
-
hidden:
|
|
551
|
+
hidden: searchState.results.length <= 0 ||
|
|
527
552
|
this.showAspectRatioError,
|
|
528
553
|
products: true,
|
|
529
554
|
} }, this.active && this.renderResults())))))));
|
|
@@ -17,5 +17,5 @@ const patchBrowser = () => {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
patchBrowser().then(options => {
|
|
20
|
-
return bootstrapLazy([["vviinn-button",[[1,"vviinn-button",{"addStyle":[4,"add-style"]}]]],["vviinn-preloader",[[1,"vviinn-preloader"]]],["vviinn-error",[[1,"vviinn-error"]]],["vviinn-carousel_4",[[1,"vviinn-vpr-widget",{"blockTitle":[1,"block-title"],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"productId":[1,"product-id"],"token":[1],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"mode":[1],"campaignType":[1,"campaign-type"],"locale":[1],"campaigns":[1],"color":[1],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"showScroll":[4,"show-scroll"],"cssUrl":[1,"css-url"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"addToBasketShow":[4,"add-to-basket-show"],"updateButtonLocation":[1,"update-button-location"],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"closed":[4],"opened":[4],"recommendations":[32],"trackingDeactivated":[32],"hasErrorOnLoad":[32],"updatingAllCards":[32]},[[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnAuxClick","trackAuxClick"],[0,"vviinnAddToBasket","trackAddToBasket"],[0,"vviinnUpdatingAllCardsFinished","updatingAllCardsFinishedListener"]]],[0,"vviinn-carousel",{"mode":[1],"imageWidth":[2,"image-width"],"showScroll":[4,"show-scroll"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"recommendations":[16],"widgetVersion":[1,"widget-version"],"addToBasketShow":[4,"add-to-basket-show"],"updatingAllCards":[4,"updating-all-cards"],"updateButtonLocation":[1,"update-button-location"],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32],"isRTL":[32],"crossSellingRecommendations":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"]]],[1,"vviinn-product-card",{"brand":[1],"currency":[1],"deeplink":[1],"image":[1],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"locale":[1],"price":[2],"pricePrefix":[1,"price-prefix"],"productId":[1,"product-id"],"productTitle":[1,"product-title"],"productType":[1,"product-type"],"salePrice":[2,"sale-price"],"responsive":[4],"dimmedBackground":[4,"dimmed-background"],"mode":[1],"addToBasketShow":[4,"add-to-basket-show"],"updateButtonLocation":[1,"update-button-location"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"index":[2],"updatingAllCards":[4,"updating-all-cards"],"defaultAnimationInterval":[2,"default-animation-interval"],"imageLoaded":[32],"isTransitioning":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"]]],[1,"vviinn-skeleton",{"height":[2],"halfWidth":[4,"half-width"]}]]],["search-
|
|
20
|
+
return bootstrapLazy([["vviinn-button",[[1,"vviinn-button",{"addStyle":[4,"add-style"]}]]],["vviinn-preloader",[[1,"vviinn-preloader"]]],["vviinn-error",[[1,"vviinn-error"]]],["vviinn-carousel_4",[[1,"vviinn-vpr-widget",{"blockTitle":[1,"block-title"],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"productId":[1,"product-id"],"token":[1],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"mode":[1],"campaignType":[1,"campaign-type"],"locale":[1],"campaigns":[1],"color":[1],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"showScroll":[4,"show-scroll"],"cssUrl":[1,"css-url"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"addToBasketShow":[4,"add-to-basket-show"],"updateButtonLocation":[1,"update-button-location"],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"closed":[4],"opened":[4],"recommendations":[32],"trackingDeactivated":[32],"hasErrorOnLoad":[32],"updatingAllCards":[32]},[[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnAuxClick","trackAuxClick"],[0,"vviinnAddToBasket","trackAddToBasket"],[0,"vviinnUpdatingAllCardsFinished","updatingAllCardsFinishedListener"]]],[0,"vviinn-carousel",{"mode":[1],"imageWidth":[2,"image-width"],"showScroll":[4,"show-scroll"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"recommendations":[16],"widgetVersion":[1,"widget-version"],"addToBasketShow":[4,"add-to-basket-show"],"updatingAllCards":[4,"updating-all-cards"],"updateButtonLocation":[1,"update-button-location"],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32],"isRTL":[32],"crossSellingRecommendations":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"]]],[1,"vviinn-product-card",{"brand":[1],"currency":[1],"deeplink":[1],"image":[1],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"locale":[1],"price":[2],"pricePrefix":[1,"price-prefix"],"productId":[1,"product-id"],"productTitle":[1,"product-title"],"productType":[1,"product-type"],"salePrice":[2,"sale-price"],"responsive":[4],"dimmedBackground":[4,"dimmed-background"],"mode":[1],"addToBasketShow":[4,"add-to-basket-show"],"updateButtonLocation":[1,"update-button-location"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"index":[2],"updatingAllCards":[4,"updating-all-cards"],"defaultAnimationInterval":[2,"default-animation-interval"],"imageLoaded":[32],"isTransitioning":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"]]],[1,"vviinn-skeleton",{"height":[2],"halfWidth":[4,"half-width"]}]]],["search-filters_17",[[1,"vviinn-image-view",{"basicEventData":[16],"setShowAspectRatioError":[16],"showAspectRatioError":[4,"show-aspect-ratio-error"],"cropper":[32],"hidePreloader":[32]},[[0,"vviinnSelectObject","selectDetectedObject"]]],[1,"vviinn-overlayed-modal",{"active":[4],"resetState":[16],"buttonElementId":[1,"button-element-id"],"hideBackButton":[4,"hide-back-button"],"widgetVersion":[1,"widget-version"],"isFirstScreen":[4,"is-first-screen"]}],[1,"vviinn-empty-results",{"handler":[16]}],[1,"vviinn-image-selector",{"basicEventData":[16],"startUpload":[4,"start-upload"],"loading":[4],"accept":[1],"resetVpsButton":[16],"capture":[1]}],[1,"vviinn-server-error",{"handler":[16]}],[1,"vviinn-text-search",{"clearSearchQuery":[4,"clear-search-query"],"initialSearchQuery":[1,"initial-search-query"],"searchQuery":[32]}],[1,"vviinn-wrong-aspect-ratio",{"handler":[16]}],[1,"vviinn-wrong-format",{"handler":[16]}],[1,"search-filters",{"filter":[16],"basicEventData":[16],"selectedFilter":[32],"hideFilters":[32]}],[1,"vviinn-example-image",{"exampleImageSource":[1,"example-image-source"],"width":[2],"height":[2],"basicEventData":[16],"srcObject":[16],"cameraButtonClicked":[4,"camera-button-clicked"],"selected":[32],"videoInitialized":[32],"zoomCapabilities":[32]}],[1,"vviinn-privacy-badge",{"privacyBadgeText":[1,"privacy-badge-text"]}],[1,"vviinn-slide"],[1,"vviinn-slider",{"showBullets":[4,"show-bullets"],"position":[514],"showArrows":[4,"show-arrows"],"elementsCount":[32],"internalPosition":[32],"swipeStartPosition":[32],"isRTL":[32]}],[1,"vviinn-teaser"],[1,"vviinn-detected-object",{"detectedObject":[16],"basicEventData":[16],"position":[32]}],[1,"vviinn-modal",{"active":[1540],"resetState":[16],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"hideBackButton":[4,"hide-back-button"],"isFirstScreen":[4,"is-first-screen"],"slider":[32]}],[1,"vviinn-overlay"]]],["vviinn-vps-widget",[[1,"vviinn-vps-widget",{"token":[1],"active":[1028],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"imageResolutionWidth":[2,"image-resolution-width"],"exampleImageSource":[1,"example-image-source"],"textSearchShow":[4,"text-search-show"],"apiPath":[1,"api-path"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"buttonPressed":[4,"button-pressed"],"mode":[1],"resetVpsButton":[16],"slidePosition":[32],"width":[32],"wrongImageFormat":[32],"trackingDeactivated":[32],"stream":[32],"cameraEnabled":[32],"cameraButtonClicked":[32],"uploadSource":[32],"showAspectRatioError":[32],"products":[32],"initialSearchQuery":[32]},[[0,"vviinnCameraEnabled","trackCameraEnabled"],[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnAuxClick","trackAuxClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"],[0,"vviinnTextSearchFinished","trackTextSearchFinished"]]]]],["vviinn-vps-button",[[1,"vviinn-vps-button",{"token":[1],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"addStyle":[4,"add-style"],"mode":[1],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"imageResolutionWidth":[2,"image-resolution-width"],"exampleImageSource":[1,"example-image-source"],"textSearchShow":[4,"text-search-show"],"apiPath":[1,"api-path"],"buttonPressed":[32]},[[0,"vviinnWidgetClose","handleModalClosed"]]]]],["vviinn-recommendations-sidebar",[[1,"vviinn-recommendations-sidebar",{"sidebarTitle":[1,"sidebar-title"],"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"widgetScrollbar":[4,"widget-scrollbar"],"mode":[1],"campaigns":[1],"campaignType":[1,"campaign-type"],"color":[1],"locale":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"addToBasketShow":[4,"add-to-basket-show"],"buttonChildren":[16],"apiPath":[1,"api-path"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"showingInButton":[4,"showing-in-button"],"state":[32]},[[16,"click","bodyClickListener"]]]]],["vviinn-vpr-button",[[1,"vviinn-vpr-button",{"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"sidebarTitle":[1,"sidebar-title"],"modalScrollbar":[4,"modal-scrollbar"],"campaigns":[1],"campaignType":[1,"campaign-type"],"locale":[1],"color":[1],"addStyle":[4,"add-style"],"mode":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"addToBasketShow":[4,"add-to-basket-show"],"apiPath":[1,"api-path"]}]]]], options);
|
|
21
21
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ArrowIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const BasketIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CameraActionIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CameraIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CheckCircleIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CheckIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ChevronIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CloseIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CrossIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GalleryActionIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const LoaderIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const MinusIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const PlusIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const RoundCameraIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SecondaryActionIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TextSearchIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const UpdateIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const UploadActionIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const VisualSearchIcon: () => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const WarningIcon: () => any;
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
1
|
+
export { ArrowIcon } from "./icons/ArrowIcon";
|
|
2
|
+
export { BasketIcon } from "./icons/BasketIcon";
|
|
3
|
+
export { CameraActionIcon } from "./icons/CameraActionIcon";
|
|
4
|
+
export { CameraIcon } from "./icons/CameraIcon";
|
|
5
|
+
export { CheckCircleIcon } from "./icons/CheckCircleIcon";
|
|
6
|
+
export { CheckIcon } from "./icons/CheckIcon";
|
|
7
|
+
export { ChevronIcon } from "./icons/ChevronIcon";
|
|
8
|
+
export { CloseIcon } from "./icons/CloseIcon";
|
|
9
|
+
export { CrossIcon } from "./icons/CrossIcon";
|
|
10
|
+
export { GalleryActionIcon } from "./icons/GalleryActionIcon";
|
|
11
|
+
export { LoaderIcon } from "./icons/LoaderIcon";
|
|
12
|
+
export { MinusIcon } from "./icons/MinusIcon";
|
|
13
|
+
export { PlusIcon } from "./icons/PlusIcon";
|
|
14
|
+
export { RoundCameraIcon } from "./icons/RoundCameraIcon";
|
|
15
|
+
export { SecondaryActionIcon } from "./icons/SecondaryActionIcon";
|
|
16
|
+
export { TextSearchIcon } from "./icons/TextSearchIcon";
|
|
17
|
+
export { UpdateIcon } from "./icons/UpdateIcon";
|
|
18
|
+
export { UploadActionIcon } from "./icons/UploadActionIcon";
|
|
19
|
+
export { VisualSearchIcon } from "./icons/VisualSearchIcon";
|
|
20
|
+
export { WarningIcon } from "./icons/WarningIcon";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EventEmitter } from "../../stencil-public-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* @part text-search-input - Text search input.
|
|
4
|
+
* @slot vviinn-text-search-icon - Icon of text search block.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VviinnTextSearch {
|
|
7
|
+
el: HTMLElement;
|
|
8
|
+
clearSearchQuery: boolean;
|
|
9
|
+
initialSearchQuery: string;
|
|
10
|
+
searchQuery: string;
|
|
11
|
+
/** @internal */
|
|
12
|
+
vviinnTextSearchFinished: EventEmitter;
|
|
13
|
+
componentWillLoad(): void;
|
|
14
|
+
handleInputChange(event: Event): void;
|
|
15
|
+
private handleKeyPress;
|
|
16
|
+
private handleSearch;
|
|
17
|
+
render(): any;
|
|
18
|
+
}
|
|
@@ -124,6 +124,7 @@ export declare class VviinnVprWidget implements ComponentInterface {
|
|
|
124
124
|
private resultViewed;
|
|
125
125
|
private getBasicEventData;
|
|
126
126
|
private handleOpenLink;
|
|
127
|
+
private findProductById;
|
|
127
128
|
trackingApi: DefaultApi;
|
|
128
129
|
uiSessionId: string;
|
|
129
130
|
setTrackingDeactivated: (result: EventConfirmation) => void;
|
|
@@ -54,6 +54,8 @@ export declare class VviinnVpsButton {
|
|
|
54
54
|
imageResolutionWidth: number;
|
|
55
55
|
/** Example image source */
|
|
56
56
|
exampleImageSource: string;
|
|
57
|
+
/** Show the text search */
|
|
58
|
+
textSearchShow: boolean;
|
|
57
59
|
/** @internal */
|
|
58
60
|
apiPath: string | undefined;
|
|
59
61
|
buttonPressed: boolean;
|
|
@@ -2,6 +2,7 @@ import { EventEmitter } from "../../stencil-public-runtime";
|
|
|
2
2
|
import { EventConfirmation } from "vviinn-tracking-client-ts";
|
|
3
3
|
import { ProductCardEvent, BasicEventData, SelectFilterEventData, ProductCardEventData, SelectObjectEventData } from "../../recommendation/events";
|
|
4
4
|
import { Locale } from "../../locale";
|
|
5
|
+
import { Recommendation } from "../..";
|
|
5
6
|
type UploadSource = "uploadPhoto" | "startCamera";
|
|
6
7
|
/**
|
|
7
8
|
* @part close-button - Close Button in the modal's header.
|
|
@@ -25,6 +26,7 @@ type UploadSource = "uploadPhoto" | "startCamera";
|
|
|
25
26
|
* @part price-sale - Block for sale price. Rendered only if the sale price is presented.
|
|
26
27
|
* @part price-prefix - Block rendered before each price element (for ex. "from").
|
|
27
28
|
* @part title - Title inside Product Card.
|
|
29
|
+
* @part text-search-input - Text search input.
|
|
28
30
|
|
|
29
31
|
* @slot vviinn-onboarding-title - Title of onboarding section.
|
|
30
32
|
* @slot onboarding-card-1-icon - Icon (or other graphics) on the first onboarding slide.
|
|
@@ -42,6 +44,7 @@ type UploadSource = "uploadPhoto" | "startCamera";
|
|
|
42
44
|
* @slot vviinn-camera-icon - Icon of Camera Button.
|
|
43
45
|
* @slot vviinn-privacy-badge-text - Text content of privacy notification block.
|
|
44
46
|
* @slot vviinn-image-search-modal-title - Image search modal title.
|
|
47
|
+
* @slot vviinn-text-search-icon - Icon of text search block.
|
|
45
48
|
*
|
|
46
49
|
*/
|
|
47
50
|
export declare class VviinnVpsWidget {
|
|
@@ -64,6 +67,8 @@ export declare class VviinnVpsWidget {
|
|
|
64
67
|
imageResolutionWidth: number;
|
|
65
68
|
/** Example image source */
|
|
66
69
|
exampleImageSource: string;
|
|
70
|
+
/** Show the text search */
|
|
71
|
+
textSearchShow: boolean;
|
|
67
72
|
/** @internal */
|
|
68
73
|
apiPath: string;
|
|
69
74
|
/** Set true when showing the widget in button */
|
|
@@ -87,6 +92,8 @@ export declare class VviinnVpsWidget {
|
|
|
87
92
|
cameraButtonClicked: boolean;
|
|
88
93
|
uploadSource: UploadSource;
|
|
89
94
|
showAspectRatioError: boolean;
|
|
95
|
+
products: Recommendation[];
|
|
96
|
+
initialSearchQuery: string;
|
|
90
97
|
/** @internal */
|
|
91
98
|
globalSlotsChanged: EventEmitter<any>;
|
|
92
99
|
/** The event emits on widget load */
|
|
@@ -129,6 +136,7 @@ export declare class VviinnVpsWidget {
|
|
|
129
136
|
private stopStreamTracks;
|
|
130
137
|
private isOnboardingSlide;
|
|
131
138
|
private isResultSlide;
|
|
139
|
+
private findProductById;
|
|
132
140
|
private handleOpenLink;
|
|
133
141
|
private handleVviinnImageUpload;
|
|
134
142
|
private handleVviinnImageUploadFinished;
|
|
@@ -149,6 +157,7 @@ export declare class VviinnVpsWidget {
|
|
|
149
157
|
trachSearchAreaChanges(): void;
|
|
150
158
|
trackDetectedObject(): void;
|
|
151
159
|
trackFilter({ detail }: CustomEvent<SelectFilterEventData>): void;
|
|
160
|
+
trackTextSearchFinished({ detail }: CustomEvent<string>): Promise<void>;
|
|
152
161
|
connectedCallback(): void;
|
|
153
162
|
componentWillLoad(): Promise<void>;
|
|
154
163
|
private trackWidgetEvent;
|