vviinn-widgets 2.188.0 → 2.189.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/cjs/{Rectangle-0jUlP_jx.js → Rectangle-DVEulpFu.js} +1 -0
  2. package/dist/cjs/{index-BUEskchg.js → index-DZMV2ChQ.js} +1 -1
  3. package/dist/cjs/{package-B2xF7VCy.js → package-CN6WlYoJ.js} +1 -1
  4. package/dist/cjs/{resources-5_Y1cO9T.js → resources-cQWt9LRT.js} +2 -2
  5. package/dist/cjs/{search.store-NSPzykno.js → search.store-CT4luzT3.js} +5 -2
  6. package/dist/cjs/vviinn-button_6.cjs.entry.js +3 -3
  7. package/dist/cjs/vviinn-camera_11.cjs.entry.js +35 -26
  8. package/dist/cjs/vviinn-carousel_10.cjs.entry.js +5 -5
  9. package/dist/cjs/vviinn-detected-object_2.cjs.entry.js +1 -1
  10. package/dist/cjs/vviinn-selected-filters.cjs.entry.js +3 -3
  11. package/dist/cjs/vviinn-shop-the-look.cjs.entry.js +2 -2
  12. package/dist/cjs/vviinn-text-search.cjs.entry.js +3 -3
  13. package/dist/cjs/vviinn-vps-button.cjs.entry.js +2 -2
  14. package/dist/collection/Image/error.js +2 -1
  15. package/dist/collection/components/vviinn-carousel/vviinn-carousel.js +2 -2
  16. package/dist/collection/components/vviinn-image-selector/vviinn-image-selector.js +20 -11
  17. package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-widget.js +1 -1
  18. package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +2 -2
  19. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +16 -16
  20. package/dist/collection/locale/resources.js +2 -2
  21. package/dist/esm/{Rectangle-CWwG37eK.js → Rectangle-DGBESJrE.js} +1 -1
  22. package/dist/esm/{index-CdSE2oQq.js → index-BIViS3eV.js} +1 -1
  23. package/dist/esm/{package-C1SlDb4h.js → package-B82dIeWY.js} +1 -1
  24. package/dist/esm/{resources-Bv3dEgL8.js → resources-CHDT594L.js} +2 -2
  25. package/dist/esm/{search.store-HXwFfRvm.js → search.store-DLJr8QhM.js} +4 -3
  26. package/dist/esm/vviinn-button_6.entry.js +3 -3
  27. package/dist/esm/vviinn-camera_11.entry.js +35 -26
  28. package/dist/esm/vviinn-carousel_10.entry.js +5 -5
  29. package/dist/esm/vviinn-detected-object_2.entry.js +1 -1
  30. package/dist/esm/vviinn-selected-filters.entry.js +3 -3
  31. package/dist/esm/vviinn-shop-the-look.entry.js +2 -2
  32. package/dist/esm/vviinn-text-search.entry.js +3 -3
  33. package/dist/esm/vviinn-vps-button.entry.js +2 -2
  34. package/dist/types/Image/error.d.ts +1 -0
  35. package/dist/types/components/vviinn-image-selector/vviinn-image-selector.d.ts +2 -2
  36. package/dist/types/components/vviinn-suggestions/render-helpers.d.ts +2 -4
  37. package/dist/types/components/vviinn-vps-button/vviinn-vps-button.d.ts +1 -1
  38. package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +2 -2
  39. package/dist/types/components.d.ts +5 -5
  40. package/dist/types/interfaces/generated.d.ts +23 -6
  41. package/dist/vviinn-widgets/{p-63811fdb.entry.js → p-1152fa0e.entry.js} +1 -1
  42. package/dist/vviinn-widgets/{p-138c29a9.entry.js → p-256b88e4.entry.js} +1 -1
  43. package/dist/vviinn-widgets/{p-dd65398d.entry.js → p-2b84bf8e.entry.js} +1 -1
  44. package/dist/vviinn-widgets/{p-fd6ee191.entry.js → p-30a6e803.entry.js} +1 -1
  45. package/{www/build/p-da22f7e7.entry.js → dist/vviinn-widgets/p-41b337dd.entry.js} +1 -1
  46. package/dist/vviinn-widgets/p-80eb9975.entry.js +1 -0
  47. package/dist/vviinn-widgets/{p-75994d6d.entry.js → p-93335b84.entry.js} +1 -1
  48. package/dist/vviinn-widgets/{p-C1SlDb4h.js → p-B82dIeWY.js} +1 -1
  49. package/dist/vviinn-widgets/p-BiDe0ltU.js +1 -0
  50. package/dist/vviinn-widgets/p-CHDT594L.js +1 -0
  51. package/dist/vviinn-widgets/{p-sRFYL4zd.js → p-D3T7gXzV.js} +1 -1
  52. package/dist/vviinn-widgets/{p-Bn0oxRR6.js → p-DtaDzVqa.js} +1 -1
  53. package/dist/vviinn-widgets/p-b78ab652.entry.js +1 -0
  54. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  55. package/package.json +1 -1
  56. package/www/build/{p-63811fdb.entry.js → p-1152fa0e.entry.js} +1 -1
  57. package/www/build/{p-138c29a9.entry.js → p-256b88e4.entry.js} +1 -1
  58. package/www/build/{p-dd65398d.entry.js → p-2b84bf8e.entry.js} +1 -1
  59. package/www/build/{p-fd6ee191.entry.js → p-30a6e803.entry.js} +1 -1
  60. package/{dist/vviinn-widgets/p-da22f7e7.entry.js → www/build/p-41b337dd.entry.js} +1 -1
  61. package/www/build/p-80eb9975.entry.js +1 -0
  62. package/www/build/{p-75994d6d.entry.js → p-93335b84.entry.js} +1 -1
  63. package/www/build/{p-C1SlDb4h.js → p-B82dIeWY.js} +1 -1
  64. package/www/build/p-BiDe0ltU.js +1 -0
  65. package/www/build/p-CHDT594L.js +1 -0
  66. package/www/build/{p-sRFYL4zd.js → p-D3T7gXzV.js} +1 -1
  67. package/www/build/{p-Bn0oxRR6.js → p-DtaDzVqa.js} +1 -1
  68. package/www/build/p-b78ab652.entry.js +1 -0
  69. package/www/build/{p-89a9d325.js → p-c7ba294f.js} +1 -1
  70. package/www/build/vviinn-widgets.esm.js +1 -1
  71. package/www/index.html +1 -1
  72. package/dist/vviinn-widgets/p-499470d6.entry.js +0 -1
  73. package/dist/vviinn-widgets/p-72fe0037.entry.js +0 -1
  74. package/dist/vviinn-widgets/p-Bv3dEgL8.js +0 -1
  75. package/dist/vviinn-widgets/p-XVwOf-d0.js +0 -1
  76. package/www/build/p-499470d6.entry.js +0 -1
  77. package/www/build/p-72fe0037.entry.js +0 -1
  78. package/www/build/p-Bv3dEgL8.js +0 -1
  79. package/www/build/p-XVwOf-d0.js +0 -1
@@ -129,6 +129,7 @@ export class VviinnVpsWidget {
129
129
  /** @internal */
130
130
  this.showInWidget = true;
131
131
  this.slidePosition = 0;
132
+ this.uploadSource = null;
132
133
  this.stream = null;
133
134
  this.products = [];
134
135
  this.isCameraInitializing = false;
@@ -243,20 +244,19 @@ export class VviinnVpsWidget {
243
244
  this.wrongImageFormat = false;
244
245
  this.resetScroll("results-block");
245
246
  this.stopStreamTracks();
246
- this.initResultEvents();
247
+ this.showInWidget && this.initResultEvents();
247
248
  this.stream = null;
248
249
  this.isCameraEnabled = false;
249
250
  this.isCameraButtonClicked = false;
250
251
  this.isCameraInitializing = false;
251
252
  this.setShowAspectRatioError(false);
252
253
  this.slidePosition = 0;
254
+ this.uploadSource = null;
253
255
  this.resetScroll("start-page_block");
254
256
  };
255
257
  this.resetState = () => {
256
258
  this.resetInnerState();
257
- if (this.showInWidget) {
258
- resetStore(this.storeName, "appStateAndReceivedData");
259
- }
259
+ this.showInWidget && resetStore(this.storeName, "appStateAndReceivedData");
260
260
  };
261
261
  }
262
262
  initResultEvents() {
@@ -312,7 +312,7 @@ export class VviinnVpsWidget {
312
312
  }
313
313
  else {
314
314
  document.body.style.overflow = this.overflow;
315
- this.initResultEvents();
315
+ this.showInWidget && this.initResultEvents();
316
316
  }
317
317
  }
318
318
  slidePositionWatcher() {
@@ -439,31 +439,31 @@ export class VviinnVpsWidget {
439
439
  }
440
440
  render() {
441
441
  var _a, _b, _c;
442
- return (h(Host, { key: '6befdfddd06e53f011e3f6a87bf5200bbfdafef1', exportparts: `${modalParts}, ${productCardParts}, ${searchBarParts}, ${searchWidgetFilterParts}, ${searchWidgetButtonParts}, ${productCardsGridPart}, ${suggestionsParts}` }, !this.showingInButton && SlotSkeleton("search"), h("vviinn-overlayed-modal", { key: '38380b522ca1ac1ae86e33f6060c7dc040632728', class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState, onVviinnWidgetClose: ({ detail }) => {
442
+ return (h(Host, { key: 'e4b3eb07adaedcc346dc23ebb4074d6b568f34a2', exportparts: `${modalParts}, ${productCardParts}, ${searchBarParts}, ${searchWidgetFilterParts}, ${searchWidgetButtonParts}, ${productCardsGridPart}, ${suggestionsParts}` }, !this.showingInButton && SlotSkeleton("search"), h("vviinn-overlayed-modal", { key: '7b4de48bae309958fdbcd075554c0926ceea6174', class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState, onVviinnWidgetClose: ({ detail }) => {
443
443
  if (detail.campaignTypeId !== "VPR")
444
444
  this.handleModalClose();
445
445
  }, buttonElementId: (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.widgetElementId, widgetVersion: version, hideBackButton: (this.mode === "upload" && this.showingInButton) ||
446
- (!this.isCameraEnabled && this.isOnboardingSlide()), exportparts: modalParts }, h("vviinn-slider", { key: 'be3a5bbebfa1396ff2568ce23f7e5573249d3e20', position: this.slidePosition }, h("vviinn-slide", { key: 'b5fe1748627e08700a3a67931eb835f3e22000bc', class: {
446
+ (!this.isCameraEnabled && this.isOnboardingSlide()), exportparts: modalParts }, h("vviinn-slider", { key: 'a8d336c59f73a6d68f6551363224b0b533958a51', position: this.slidePosition }, h("vviinn-slide", { key: '926a5a90953d80086442acc521a3d5577a444747', class: {
447
447
  "start-page": true,
448
448
  "camera-enabled": this.isCameraEnabled,
449
- } }, h("vviinn-camera", { key: '2ff5659977ee56238b02611b4f7e1f1e8f2a3228', onVviinnImageUploadFinished: this.handleVviinnImageUploadFinished, onVviinnImageUploadStarted: () => {
449
+ } }, h("vviinn-camera", { key: '8d4d1233f9f293f608d94d79437845545329593c', onVviinnImageUploadFinished: this.handleVviinnImageUploadFinished, onVviinnImageUploadStarted: () => {
450
450
  this.handleVviinnImageUpload("startCamera");
451
- }, basicEventData: this.getBasicEventData(), srcObject: this.stream, cameraButtonClicked: this.isCameraButtonClicked, exampleImageSource: this.exampleImageSource, showInWidget: this.showInWidget, storeName: this.storeName, state: this.state }), h("div", { key: '94e821fa25dbb4db2277d38f4ba6993941b9e2d8', class: {
451
+ }, basicEventData: this.getBasicEventData(), srcObject: this.stream, cameraButtonClicked: this.isCameraButtonClicked, exampleImageSource: this.exampleImageSource, showInWidget: this.showInWidget, storeName: this.storeName, state: this.state }), h("div", { key: '720b321bb57d3aad2bffd7ea1846f15dbb0ce53a', class: {
452
452
  error: this.haveErrors(),
453
- }, id: "start-page_block" }, h("div", { key: '72c99dcc3ba6f5f7969120ea1d453f034b4ec991', class: "start-page_main-content" }, (this.wrongImageFormat ||
454
- this.state.searchStatus === "error") && (h("div", { key: '655f4202af65eb118124e2401fe118ca0fc15631', class: "start-page_errors-block" }, this.getCurrentErrorType() && (h("vviinn-error", { key: '4c00d5fb45283e51ed94f18af266a62c80d46671', errorType: this.getCurrentErrorType(), handler: this.resetState, hasBackground: this.showInWidget, searchType: this.state.searchType })))), !this.haveErrors() && (h(Fragment, { key: 'f423acd6924394400fe6e6f4fa8e902a217dfffa' }, h("vviinn-teaser", { key: 'e7fb21f20050be0067d9286f6d3fa51ee6d4d2c6' }), h("div", { key: 'bf1f46945924a4df4e4c7f26bf6f6ee439f4ceb2', class: "buttons-group" }, this.renderButtons()), this.textSearchShow && (h("vviinn-text-search", { key: 'e4b5618848ede58e1d440390e64f25515d97b1b4', token: globalState.token, apiPath: globalState.apiPath, locale: globalState.locale, showInWidget: true, showOnFirstScreen: true, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" }))))), h("vviinn-privacy-badge", { key: 'c38a4b2832ee506d0090ba5a2fbf65a75e4baa58', privacyBadgeText: i18next.t("privacyBadgeText", {
453
+ }, id: "start-page_block" }, h("div", { key: 'c32f285eb2a09128da261ab6760ffecfe2c8d29c', class: "start-page_main-content" }, (this.wrongImageFormat ||
454
+ this.state.searchStatus === "error") && (h("div", { key: 'bf1e3792a180449a856e43e06f98fadb2b20f2b1', class: "start-page_errors-block" }, this.getCurrentErrorType() && (h("vviinn-error", { key: '475c56ce4cea82ca41630c7f33d80cc101be38c6', errorType: this.getCurrentErrorType(), handler: this.resetState, hasBackground: this.showInWidget, searchType: this.state.searchType })))), !this.haveErrors() && (h(Fragment, { key: '4df2847cfbb83dbda1cc6a79a441d66012644eec' }, h("vviinn-teaser", { key: 'da876e72cfd3883155f7852b4850d7d4ed8ffd06' }), h("div", { key: '804553414e50659d9394909e7db7e4ce999a2c16', class: "buttons-group" }, this.renderButtons()), this.textSearchShow && (h("vviinn-text-search", { key: '331a1f31d82487c4f50862793f88597e5e338929', token: globalState.token, apiPath: globalState.apiPath, locale: globalState.locale, showInWidget: true, showOnFirstScreen: true, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" }))))), h("vviinn-privacy-badge", { key: '3da1dec800cd91585502ad7eca9f309cf6f31f48', privacyBadgeText: i18next.t("privacyBadgeText", {
455
455
  interpolation: { escapeValue: false },
456
- }), class: { invisible: this.haveErrors() } }))), h("vviinn-slide", { key: '83eb0fb3af107fc3d54639c64367a5ebfc966f56', class: {
456
+ }), class: { invisible: this.haveErrors() } }))), h("vviinn-slide", { key: 'a344e5987bdc38735860430750c10e01d2c0eb8e', class: {
457
457
  "results-page": true,
458
458
  active: this.isResultSlide(),
459
- } }, this.isResultSlide() && (h("div", { key: 'cdfd64427728e91f5f0faf0c61b5e10a2a4ca0a3', class: "source-wrapper" }, this.isTextSearch() ? (h(Fragment, null, h("vviinn-text-search", { token: this.token, showInWidget: true, apiPath: this.apiPath, locale: this.locale, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" }), h("vviinn-suggestions", { showInWidget: true, token: this.token, apiPath: this.apiPath, locale: this.locale }))) : (h("vviinn-cropper", { basicEventData: this.getBasicEventData(), showAspectRatioError: this.showAspectRatioError, apiPath: this.apiPath, showInWidget: true, "save-image-mode": "never" })), ((_b = this.state.dynamicFilters) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h("div", { key: '04a27202fe48f245394b946726b4b3cd89916dad', class: {
459
+ } }, this.isResultSlide() && (h("div", { key: 'eadd2ddfcaa8277953e379742ede5f7afd22dffe', class: "source-wrapper" }, this.isTextSearch() ? (h(Fragment, null, h("vviinn-text-search", { token: this.token, showInWidget: true, apiPath: this.apiPath, locale: this.locale, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" }), h("vviinn-suggestions", { showInWidget: true, token: this.token, apiPath: this.apiPath, locale: this.locale }))) : (h("vviinn-cropper", { basicEventData: this.getBasicEventData(), showAspectRatioError: this.showAspectRatioError, apiPath: this.apiPath, showInWidget: true, "save-image-mode": "never" })), ((_b = this.state.dynamicFilters) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h("div", { key: 'b2cb3daae83d7ef7a50cfc8bcc04b300be5382c7', class: {
460
460
  "filters-wrapper": true,
461
461
  hidden: this.showAspectRatioError,
462
- } }, h("vviinn-filters", { key: '6b84c144742bf0ef62090292f09cef66b793fcd9', class: "preview-filters", showInWidget: true, exportparts: filtersParts }), h("vviinn-extended-filters", { key: '9517b380405ffb2d5f01180ae0277dd09257dc15', class: "preview-extended-filters", mode: "preview", showHeader: false, exportparts: extendedFiltersParts, showInWidget: true }), h("vviinn-extended-filters-button", { key: '7f2e322e44edb3b8cfbd1ba94809bd1245147d64', class: {
462
+ } }, h("vviinn-filters", { key: 'a028c222574d4e60ddcfd5ec289ff0c208bcfabc', class: "preview-filters", showInWidget: true, exportparts: filtersParts }), h("vviinn-extended-filters", { key: '88c438a41b5b44c918e5eeb9bc8590cba874b9c6', class: "preview-extended-filters", mode: "preview", showHeader: false, exportparts: extendedFiltersParts, showInWidget: true }), h("vviinn-extended-filters-button", { key: '0aba5bc3f6d005f0ae754494a79aaa10cf28a238', class: {
463
463
  "extended-filters-button": true,
464
464
  "has-primary-filters": this.state.dynamicFilters.filter((f) => f.isPrimary)
465
465
  .length > 0,
466
- }, exportparts: "extended-filters-button", showInWidget: true }))))), this.isResultSlide() && (h("vviinn-results", { key: 'ffc28d5ac4cefa0fc6573140aa0923fd45e44062', token: globalState.token, locale: globalState.locale, pricePrefix: globalState.pricePrefix, "currency-sign": globalState.currencySign, apiPath: globalState.apiPath, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, uiSessionId: this.uiSessionId, widgetElementId: (_c = this.buttonElementId) !== null && _c !== void 0 ? _c : this.widgetElementId, showInWidget: true, buttonElementId: this.buttonElementId, imageResolutionWidth: this.imageResolutionWidth, productDetailsNewTab: this.productDetailsNewTab, productDetailsRedirect: this.productDetailsRedirect, addToBasketShow: this.addToBasketShow, favoriteShow: this.favoriteShow, showAspectRatioError: this.showAspectRatioError, resetWidgetState: this.resetState, replaceSlotsContentInWidget: this.replaceSlotsContent.bind(this), replaceSlotsContentInButton: this.replaceSlotsContentInButton, addPriceContainer: this.addPriceContainer, oneClickDiscoveryMode: this.oneClickDiscoveryMode, oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, parentSlots: [...this.parentSlots, ...this.slots], scrollableModalBody: this.modalBody })))), h("vviinn-extended-filters", { key: '6e4ed4c898e3f11984efc8fd51bfebf0ea3b9e8c', class: "modal-extended-filters", mode: "modal", exportparts: extendedFiltersParts, showInWidget: true }))));
466
+ }, exportparts: "extended-filters-button", showInWidget: true }))))), this.isResultSlide() && (h("vviinn-results", { key: 'fc9e349d99f23df55fb546c2115ce705827b3114', token: globalState.token, locale: globalState.locale, pricePrefix: globalState.pricePrefix, "currency-sign": globalState.currencySign, apiPath: globalState.apiPath, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, uiSessionId: this.uiSessionId, widgetElementId: (_c = this.buttonElementId) !== null && _c !== void 0 ? _c : this.widgetElementId, showInWidget: true, buttonElementId: this.buttonElementId, imageResolutionWidth: this.imageResolutionWidth, productDetailsNewTab: this.productDetailsNewTab, productDetailsRedirect: this.productDetailsRedirect, addToBasketShow: this.addToBasketShow, favoriteShow: this.favoriteShow, showAspectRatioError: this.showAspectRatioError, resetWidgetState: this.resetState, replaceSlotsContentInWidget: this.replaceSlotsContent.bind(this), replaceSlotsContentInButton: this.replaceSlotsContentInButton, addPriceContainer: this.addPriceContainer, oneClickDiscoveryMode: this.oneClickDiscoveryMode, oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, parentSlots: [...this.parentSlots, ...this.slots], scrollableModalBody: this.modalBody })))), h("vviinn-extended-filters", { key: 'af6545ad7c1e002f297566a4c1590e8e043263d2', class: "modal-extended-filters", mode: "modal", exportparts: extendedFiltersParts, showInWidget: true }))));
467
467
  }
468
468
  static get is() { return "vviinn-vps-widget"; }
469
469
  static get encapsulation() { return "shadow"; }
@@ -1267,7 +1267,7 @@ export class VviinnVpsWidget {
1267
1267
  "composed": true,
1268
1268
  "docs": {
1269
1269
  "tags": [],
1270
- "text": "Wrong image format, that isn't .jpg, .jpeg, png, or the request failed"
1270
+ "text": "Wrong image format, that isn't .jpg, .jpeg, .png, .webp, or .avif, or the request failed"
1271
1271
  },
1272
1272
  "complexType": {
1273
1273
  "original": "BasicEventData",
@@ -47,7 +47,7 @@ export const resources = {
47
47
  },
48
48
  wrongFormatBlock: {
49
49
  title: "Dateityp wird nicht unterstützt",
50
- text: "Bitte laden Sie eine .jpg, .png oder .webp Bilddatei hoch.",
50
+ text: "Bitte laden Sie eine .jpg, .png, .webp oder .avif Bilddatei hoch.",
51
51
  button: "Neues Bild hochladen",
52
52
  },
53
53
  wrongAspectRatioBlock: {
@@ -170,7 +170,7 @@ export const resources = {
170
170
  },
171
171
  wrongFormatBlock: {
172
172
  title: "Wrong file format",
173
- text: "Please upload a .jpg, .png or .webp image file.",
173
+ text: "Please upload a .jpg, .png, .webp or .avif image file.",
174
174
  button: "Upload another file",
175
175
  },
176
176
  wrongAspectRatioBlock: {
@@ -8993,4 +8993,4 @@ const isClickedInRectBound = (event, rect) => {
8993
8993
  return inLeftBound && inRightBound && inTopBound && inBottomBound;
8994
8994
  };
8995
8995
 
8996
- export { Apply as $, invalidTokenError as A, requireTask as B, isSome as C, none$1 as D, EitherExports as E, fromTask as F, mapLeft as G, map as H, chain as I, textSearchSessionClient as J, fromEither as K, setBodyAndHeaders as L, chainW as M, productListingPageSessionClient as N, OptionExports as O, tryCatch as P, chainTaskK as Q, getOrElse as R, of as S, visualSearchSessionClient as T, getOrElseW as U, has as V, tuple as W, makeRequest as X, getApiPath as Y, createInitPostRequest as Z, _functionExports as _, divideOnSized as a, TaskEitherExports as a0, requireSemigroup as b, center as c, detectedObjectEq as d, require_function as e, fromImage as f, getOrElse$3 as g, requireFunctor as h, isClickedInRectBound as i, requireApply as j, requireChain as k, requireOrd as l, match as m, requireEq as n, requireZero as o, requireWitherable as p, requireFromEither as q, requireInternal as r, scaleWithSized as s, requireSeparated as t, pipe as u, chain$1 as v, left as w, right as x, fromNullable$1 as y, sequenceToEither as z };
8996
+ export { createInitPostRequest as $, sequenceToEither as A, invalidTokenError as B, requireTask as C, isSome as D, EitherExports as E, none$1 as F, fromTask as G, mapLeft as H, map as I, chain as J, textSearchSessionClient as K, fromEither as L, setBodyAndHeaders as M, chainW as N, OptionExports as O, productListingPageSessionClient as P, tryCatch as Q, chainTaskK as R, getOrElse as S, of as T, visualSearchSessionClient as U, getOrElseW as V, has as W, tuple as X, makeRequest as Y, getApiPath as Z, _functionExports as _, divideOnSized as a, Apply as a0, TaskEitherExports as a1, isLeft as b, center as c, detectedObjectEq as d, requireSemigroup as e, fromImage as f, getOrElse$3 as g, require_function as h, isClickedInRectBound as i, requireFunctor as j, requireApply as k, requireChain as l, match as m, requireOrd as n, requireEq as o, requireZero as p, requireWitherable as q, requireInternal as r, scaleWithSized as s, requireFromEither as t, requireSeparated as u, pipe as v, chain$1 as w, left as x, right as y, fromNullable$1 as z };
@@ -1,5 +1,5 @@
1
1
  import { h } from './index-C5qrIvmr.js';
2
- import { a as addIfNotEmpty, p as parseStringToExcluded } from './search.store-HXwFfRvm.js';
2
+ import { a as addIfNotEmpty, p as parseStringToExcluded } from './search.store-DLJr8QhM.js';
3
3
 
4
4
  const PlusIcon = () => (h("svg", { width: "32", height: "32", viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: "plus-icon", "aria-hidden": "true" },
5
5
  h("path", { d: "M14.6667 17.3333H8.00001C7.62223 17.3333 7.30556 17.2056 7.05001 16.95C6.79445 16.6944 6.66667 16.3778 6.66667 16C6.66667 15.6222 6.79445 15.3056 7.05001 15.05C7.30556 14.7944 7.62223 14.6667 8.00001 14.6667H14.6667V8.00001C14.6667 7.62223 14.7944 7.30556 15.05 7.05001C15.3056 6.79445 15.6222 6.66667 16 6.66667C16.3778 6.66667 16.6944 6.79445 16.95 7.05001C17.2056 7.30556 17.3333 7.62223 17.3333 8.00001V14.6667H24C24.3778 14.6667 24.6944 14.7944 24.95 15.05C25.2056 15.3056 25.3333 15.6222 25.3333 16C25.3333 16.3778 25.2056 16.6944 24.95 16.95C24.6944 17.2056 24.3778 17.3333 24 17.3333H17.3333V24C17.3333 24.3778 17.2056 24.6944 16.95 24.95C16.6944 25.2056 16.3778 25.3333 16 25.3333C15.6222 25.3333 15.3056 25.2056 15.05 24.95C14.7944 24.6944 14.6667 24.3778 14.6667 24V17.3333Z", fill: "currentColor" })));
@@ -12,6 +12,6 @@ function fromString(s) {
12
12
  return s === "VPR" ? { _tag: "VPR" } : { _tag: "VCS" };
13
13
  }
14
14
 
15
- const version = "2.188.0";
15
+ const version = "2.189.0";
16
16
 
17
17
  export { fold as a, campaignTypeNames as c, fromString as f, version as v };
@@ -47,7 +47,7 @@ const resources = {
47
47
  },
48
48
  wrongFormatBlock: {
49
49
  title: "Dateityp wird nicht unterstützt",
50
- text: "Bitte laden Sie eine .jpg, .png oder .webp Bilddatei hoch.",
50
+ text: "Bitte laden Sie eine .jpg, .png, .webp oder .avif Bilddatei hoch.",
51
51
  button: "Neues Bild hochladen",
52
52
  },
53
53
  wrongAspectRatioBlock: {
@@ -170,7 +170,7 @@ const resources = {
170
170
  },
171
171
  wrongFormatBlock: {
172
172
  title: "Wrong file format",
173
- text: "Please upload a .jpg, .png or .webp image file.",
173
+ text: "Please upload a .jpg, .png, .webp or .avif image file.",
174
174
  button: "Upload another file",
175
175
  },
176
176
  wrongAspectRatioBlock: {
@@ -1,5 +1,5 @@
1
1
  import { c as createStore, g as globalState } from './store-CMhsm-nf.js';
2
- import { r as requireInternal, b as requireSemigroup, e as require_function, h as requireFunctor, j as requireApply, k as requireChain, l as requireOrd, n as requireEq, o as requireZero, p as requireWitherable, q as requireFromEither, t as requireSeparated, u as pipe, v as chain, w as left, x as right, y as fromNullable, z as sequenceToEither, E as EitherExports, A as invalidTokenError, B as requireTask, C as isSome, D as none, _ as _functionExports, O as OptionExports, F as fromTask, G as mapLeft, H as map, I as chain$1, J as textSearchSessionClient, K as fromEither, L as setBodyAndHeaders, M as chainW, N as productListingPageSessionClient, P as tryCatch, Q as chainTaskK, R as getOrElse, S as of, T as visualSearchSessionClient, U as getOrElseW, a as divideOnSized } from './Rectangle-CWwG37eK.js';
2
+ import { r as requireInternal, e as requireSemigroup, h as require_function, j as requireFunctor, k as requireApply, l as requireChain, n as requireOrd, o as requireEq, p as requireZero, q as requireWitherable, t as requireFromEither, u as requireSeparated, v as pipe, w as chain, x as left, y as right, z as fromNullable, A as sequenceToEither, E as EitherExports, B as invalidTokenError, C as requireTask, D as isSome, F as none, _ as _functionExports, O as OptionExports, G as fromTask, H as mapLeft, I as map, J as chain$1, K as textSearchSessionClient, L as fromEither, M as setBodyAndHeaders, N as chainW, P as productListingPageSessionClient, Q as tryCatch, R as chainTaskK, S as getOrElse, T as of, U as visualSearchSessionClient, V as getOrElseW, a as divideOnSized } from './Rectangle-DGBESJrE.js';
3
3
 
4
4
  var _Array = {};
5
5
 
@@ -7700,7 +7700,8 @@ var findFirstMap$1 = function (f) {
7700
7700
  */
7701
7701
  var findFirstMap = findFirstMap$1;
7702
7702
 
7703
- const SUPPORTED_FILE_TYPES = ["jpg", "jpeg", "png", "webp"];
7703
+ const SUPPORTED_FILE_TYPES = ["jpg", "jpeg", "png", "webp", "avif"];
7704
+ const acceptableFileFormats = SUPPORTED_FILE_TYPES.map((type) => `.${type}`).join(", ");
7704
7705
  const unsupportedFileTypeError = {
7705
7706
  kind: "client",
7706
7707
  inner: "File format not supported",
@@ -8467,4 +8468,4 @@ const useSearchStore = (showInWidget) => showInWidget
8467
8468
  storeName: "components",
8468
8469
  };
8469
8470
 
8470
- export { _ArrayExports as _, addIfNotEmpty as a, searchState as b, shopTheLookState as c, makeVisualSearchRequest as d, makeUploadFileRequest as e, makeProductListingPageRequest as f, getImageSizes as g, makeTextSearchRequest as m, parseStringToExcluded as p, resetStore as r, setTextSearchQuery as s, toFile as t, useSearchStore as u };
8471
+ export { _ArrayExports as _, addIfNotEmpty as a, searchState as b, shopTheLookState as c, makeVisualSearchRequest as d, makeUploadFileRequest as e, checkImageType as f, getImageSizes as g, acceptableFileFormats as h, makeProductListingPageRequest as i, makeTextSearchRequest as m, parseStringToExcluded as p, resetStore as r, setTextSearchQuery as s, toFile as t, useSearchStore as u };
@@ -1,12 +1,12 @@
1
1
  import { h, r as registerInstance, H as Host, c as createEvent, g as getElement, F as Fragment } from './index-C5qrIvmr.js';
2
2
  import { i as instance } from './i18next-C7V-mvcq.js';
3
3
  import { s as slotChangeListener } from './customized-slots-Dy-qVYWj.js';
4
- import { c as campaignTypeNames, v as version } from './package-C1SlDb4h.js';
4
+ import { c as campaignTypeNames, v as version } from './package-B82dIeWY.js';
5
5
  import { S as SecondaryActionIcon } from './SecondaryActionIcon-Co8n0aty.js';
6
6
  import { m as modalParts, c as carouselParts, p as productCardParts } from './index-B6wlG8FA.js';
7
- import { a as addIfNotEmpty, b as searchState, u as useSearchStore } from './search.store-HXwFfRvm.js';
7
+ import { a as addIfNotEmpty, b as searchState, u as useSearchStore } from './search.store-DLJr8QhM.js';
8
8
  import { a as SIDEBAR_ANIMATION_DURATION, P as PRODUCT_CARD_IMAGE_WIDTH, D as DISCOVERY_WIDGET_IMAGE_RESOLUTION_WIDTH, L as LOADING_CLASS_DELAY } from './constants-rqiiCPBX.js';
9
- import { i as isClickedInRectBound } from './Rectangle-CWwG37eK.js';
9
+ import { i as isClickedInRectBound } from './Rectangle-DGBESJrE.js';
10
10
  import { a as addEventListenersWithSignal } from './index-CckoTlaC.js';
11
11
  import './store-CMhsm-nf.js';
12
12
 
@@ -1,15 +1,15 @@
1
1
  import { h, r as registerInstance, c as createEvent, H as Host, g as getElement, F as Fragment } from './index-C5qrIvmr.js';
2
- import { _ as _functionExports, E as EitherExports, f as fromImage, m as match, g as getOrElse, O as OptionExports } from './Rectangle-CWwG37eK.js';
3
- import { t as toFile, e as makeUploadFileRequest, g as getImageSizes, d as makeVisualSearchRequest, u as useSearchStore, s as setTextSearchQuery, r as resetStore, a as addIfNotEmpty, m as makeTextSearchRequest, f as makeProductListingPageRequest, p as parseStringToExcluded } from './search.store-HXwFfRvm.js';
2
+ import { _ as _functionExports, E as EitherExports, f as fromImage, b as isLeft, m as match, g as getOrElse, O as OptionExports } from './Rectangle-DGBESJrE.js';
3
+ import { t as toFile, e as makeUploadFileRequest, g as getImageSizes, d as makeVisualSearchRequest, u as useSearchStore, f as checkImageType, h as acceptableFileFormats, s as setTextSearchQuery, r as resetStore, a as addIfNotEmpty, m as makeTextSearchRequest, i as makeProductListingPageRequest, p as parseStringToExcluded } from './search.store-DLJr8QhM.js';
4
4
  import { s as slotChangeListener, p as productCardSlotNames, v as vprIconSlotName, S as SlotSkeleton } from './customized-slots-Dy-qVYWj.js';
5
- import { P as PlusIcon, R as RESULTS_CALCULATED_COLUMNS_CSS_VAR, c as createWidgetEvent, a as createFilterEvent, v as v4, b as createAddToBasketEvent, d as createAddToWishlistEvent, e as createResultEventByType, f as createProductEventByType, g as getCustomLabels, h as createImageSearchEvent } from './index-CdSE2oQq.js';
5
+ import { P as PlusIcon, R as RESULTS_CALCULATED_COLUMNS_CSS_VAR, c as createWidgetEvent, a as createFilterEvent, v as v4, b as createAddToBasketEvent, d as createAddToWishlistEvent, e as createResultEventByType, f as createProductEventByType, g as getCustomLabels, h as createImageSearchEvent } from './index-BIViS3eV.js';
6
6
  import { s as setLocalStorageItems, g as getLocalStorageItems, c as cleanLocalStorage } from './index-C5MrXMjM.js';
7
7
  import { i as instance } from './i18next-C7V-mvcq.js';
8
8
  import { M as MIN_SEARCH_AREA_SIZE, S as SUPPORTED_ASPECT_RATIO, b as MIN_IMAGE_SIDE_FOR_CROPPER, C as Cropper, c as cropperOptions, g as getCropBoxData, i as isCropBoxChangeMinimal, D as DEFAULT_IMAGE_SIZE, d as checkDeviceType } from './checkDeviceType-BFZcnzQf.js';
9
9
  import { u as updateGlobalState, t as trackEvent, g as globalState } from './store-CMhsm-nf.js';
10
10
  import { a as addEventListenersWithSignal, f as findSlotElements, g as getSlotNames, s as setElementInteractivity } from './index-CckoTlaC.js';
11
- import { v as version, c as campaignTypeNames } from './package-C1SlDb4h.js';
12
- import { r as resources } from './resources-Bv3dEgL8.js';
11
+ import { v as version, c as campaignTypeNames } from './package-B82dIeWY.js';
12
+ import { r as resources } from './resources-CHDT594L.js';
13
13
  import { a as productCardsGridPart, p as productCardParts, b as suggestionsParts, m as modalParts, e as extendedFiltersParts, f as filtersParts, s as searchBarParts, d as searchWidgetFilterParts, g as searchWidgetButtonParts } from './index-B6wlG8FA.js';
14
14
  import { R as RESULTS_WIDGET_IMAGE_RESOLUTION_WIDTH, b as SCROLL_TO_DISCOVERY_DELAY, S as SEARCH_WIDGET_IMAGE_RESOLUTION_WIDTH } from './constants-rqiiCPBX.js';
15
15
  import { t as triggerFilter } from './triggerFilter-B4e4JwCJ.js';
@@ -394,12 +394,21 @@ const VviinnImageSelector = class {
394
394
  this.vviinnNoResult = createEvent(this, "vviinnNoResult");
395
395
  this.vviinnImageUploadFinished = createEvent(this, "vviinnImageUploadFinished");
396
396
  this.loading = false;
397
- this.accept = "image";
398
397
  }
399
398
  async handleInputChange(event) {
400
- this.vviinnImageUploadStarted.emit(Object.assign(Object.assign({}, this.basicEventData), { isTriggeredByVpsWidget: this.storeName === "widget" }));
399
+ var _a;
401
400
  const input = event.target;
402
- const processingResult = await makeUploadFileRequest(this.storeName)(input.files[0]);
401
+ const file = (_a = input.files) === null || _a === void 0 ? void 0 : _a[0];
402
+ if (!file)
403
+ return;
404
+ const validationResult = checkImageType(file);
405
+ if (isLeft(validationResult)) {
406
+ this.vviinnNoResult.emit(Object.assign(Object.assign({}, this.basicEventData), { reason: validationResult.left.kind }));
407
+ input.value = "";
408
+ return;
409
+ }
410
+ this.vviinnImageUploadStarted.emit(Object.assign(Object.assign({}, this.basicEventData), { isTriggeredByVpsWidget: this.storeName === "widget" }));
411
+ const processingResult = await makeUploadFileRequest(this.storeName)(file);
403
412
  _functionExports.pipe(processingResult, match(({ kind }) => {
404
413
  this.vviinnNoResult.emit(Object.assign(Object.assign({}, this.basicEventData), { reason: kind }));
405
414
  }, (response) => {
@@ -411,7 +420,7 @@ const VviinnImageSelector = class {
411
420
  isTriggeredByVpsWidget: this.storeName === "widget",
412
421
  });
413
422
  }));
414
- input.value = null;
423
+ input.value = "";
415
424
  }
416
425
  startUploadWatcher(upload) {
417
426
  if (upload) {
@@ -420,13 +429,13 @@ const VviinnImageSelector = class {
420
429
  }
421
430
  }
422
431
  render() {
423
- return (h(Host, { key: '6861edff3c5282228d0521106e9e5eae456bfe3e', exportparts: "button" }, this.loading ? (h("vviinn-preloader", null)) : (h("label", { htmlFor: "fileInput", part: "button", tabindex: "0", onKeyDown: (e) => {
432
+ return (h(Host, { key: 'ccdb1848c44143d1ec9243c39776886873729aef', exportparts: "button" }, this.loading ? (h("vviinn-preloader", null)) : (h("label", { htmlFor: "fileInput", part: "button", tabindex: "0", onKeyDown: (e) => {
424
433
  var _a;
425
434
  if (e.key === "Enter" || e.key === " ") {
426
435
  e.preventDefault();
427
436
  (_a = this.fileInput) === null || _a === void 0 ? void 0 : _a.click();
428
437
  }
429
- } }, h("slot", { name: "upload-button-text" }, "Upload image"))), h("input", { key: '4aa61d6a7c3fef77426954db6c6c499e33d90d27', id: "fileInput", class: "visually-hidden", type: "file", tabindex: "-1", accept: this.accept === "image" ? "image/*" : "application/octet-stream", onChange: (event) => this.handleInputChange(event), ref: (el) => (this.fileInput = el) })));
438
+ } }, h("slot", { name: "upload-button-text" }, "Upload image"))), h("input", { key: 'bdddef690583a01729d2b7412736f3825b060386', id: "fileInput", class: "visually-hidden", type: "file", tabindex: "-1", accept: acceptableFileFormats, onChange: (event) => this.handleInputChange(event), ref: (el) => (this.fileInput = el) })));
430
439
  }
431
440
  static get watchers() { return {
432
441
  "startUpload": ["startUploadWatcher"]
@@ -1387,6 +1396,7 @@ const VviinnVpsWidget = class {
1387
1396
  /** @internal */
1388
1397
  this.showInWidget = true;
1389
1398
  this.slidePosition = 0;
1399
+ this.uploadSource = null;
1390
1400
  this.stream = null;
1391
1401
  this.products = [];
1392
1402
  this.isCameraInitializing = false;
@@ -1501,20 +1511,19 @@ const VviinnVpsWidget = class {
1501
1511
  this.wrongImageFormat = false;
1502
1512
  this.resetScroll("results-block");
1503
1513
  this.stopStreamTracks();
1504
- this.initResultEvents();
1514
+ this.showInWidget && this.initResultEvents();
1505
1515
  this.stream = null;
1506
1516
  this.isCameraEnabled = false;
1507
1517
  this.isCameraButtonClicked = false;
1508
1518
  this.isCameraInitializing = false;
1509
1519
  this.setShowAspectRatioError(false);
1510
1520
  this.slidePosition = 0;
1521
+ this.uploadSource = null;
1511
1522
  this.resetScroll("start-page_block");
1512
1523
  };
1513
1524
  this.resetState = () => {
1514
1525
  this.resetInnerState();
1515
- if (this.showInWidget) {
1516
- resetStore(this.storeName, "appStateAndReceivedData");
1517
- }
1526
+ this.showInWidget && resetStore(this.storeName, "appStateAndReceivedData");
1518
1527
  };
1519
1528
  }
1520
1529
  initResultEvents() {
@@ -1570,7 +1579,7 @@ const VviinnVpsWidget = class {
1570
1579
  }
1571
1580
  else {
1572
1581
  document.body.style.overflow = this.overflow;
1573
- this.initResultEvents();
1582
+ this.showInWidget && this.initResultEvents();
1574
1583
  }
1575
1584
  }
1576
1585
  slidePositionWatcher() {
@@ -1697,31 +1706,31 @@ const VviinnVpsWidget = class {
1697
1706
  }
1698
1707
  render() {
1699
1708
  var _a, _b, _c;
1700
- return (h(Host, { key: '6befdfddd06e53f011e3f6a87bf5200bbfdafef1', exportparts: `${modalParts}, ${productCardParts}, ${searchBarParts}, ${searchWidgetFilterParts}, ${searchWidgetButtonParts}, ${productCardsGridPart}, ${suggestionsParts}` }, !this.showingInButton && SlotSkeleton("search"), h("vviinn-overlayed-modal", { key: '38380b522ca1ac1ae86e33f6060c7dc040632728', class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState, onVviinnWidgetClose: ({ detail }) => {
1709
+ return (h(Host, { key: 'e4b3eb07adaedcc346dc23ebb4074d6b568f34a2', exportparts: `${modalParts}, ${productCardParts}, ${searchBarParts}, ${searchWidgetFilterParts}, ${searchWidgetButtonParts}, ${productCardsGridPart}, ${suggestionsParts}` }, !this.showingInButton && SlotSkeleton("search"), h("vviinn-overlayed-modal", { key: '7b4de48bae309958fdbcd075554c0926ceea6174', class: { "first-screen": this.isOnboardingSlide() }, isFirstScreen: this.isOnboardingSlide(), active: this.active, resetState: this.resetState, onVviinnWidgetClose: ({ detail }) => {
1701
1710
  if (detail.campaignTypeId !== "VPR")
1702
1711
  this.handleModalClose();
1703
1712
  }, buttonElementId: (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.widgetElementId, widgetVersion: version, hideBackButton: (this.mode === "upload" && this.showingInButton) ||
1704
- (!this.isCameraEnabled && this.isOnboardingSlide()), exportparts: modalParts }, h("vviinn-slider", { key: 'be3a5bbebfa1396ff2568ce23f7e5573249d3e20', position: this.slidePosition }, h("vviinn-slide", { key: 'b5fe1748627e08700a3a67931eb835f3e22000bc', class: {
1713
+ (!this.isCameraEnabled && this.isOnboardingSlide()), exportparts: modalParts }, h("vviinn-slider", { key: 'a8d336c59f73a6d68f6551363224b0b533958a51', position: this.slidePosition }, h("vviinn-slide", { key: '926a5a90953d80086442acc521a3d5577a444747', class: {
1705
1714
  "start-page": true,
1706
1715
  "camera-enabled": this.isCameraEnabled,
1707
- } }, h("vviinn-camera", { key: '2ff5659977ee56238b02611b4f7e1f1e8f2a3228', onVviinnImageUploadFinished: this.handleVviinnImageUploadFinished, onVviinnImageUploadStarted: () => {
1716
+ } }, h("vviinn-camera", { key: '8d4d1233f9f293f608d94d79437845545329593c', onVviinnImageUploadFinished: this.handleVviinnImageUploadFinished, onVviinnImageUploadStarted: () => {
1708
1717
  this.handleVviinnImageUpload("startCamera");
1709
- }, basicEventData: this.getBasicEventData(), srcObject: this.stream, cameraButtonClicked: this.isCameraButtonClicked, exampleImageSource: this.exampleImageSource, showInWidget: this.showInWidget, storeName: this.storeName, state: this.state }), h("div", { key: '94e821fa25dbb4db2277d38f4ba6993941b9e2d8', class: {
1718
+ }, basicEventData: this.getBasicEventData(), srcObject: this.stream, cameraButtonClicked: this.isCameraButtonClicked, exampleImageSource: this.exampleImageSource, showInWidget: this.showInWidget, storeName: this.storeName, state: this.state }), h("div", { key: '720b321bb57d3aad2bffd7ea1846f15dbb0ce53a', class: {
1710
1719
  error: this.haveErrors(),
1711
- }, id: "start-page_block" }, h("div", { key: '72c99dcc3ba6f5f7969120ea1d453f034b4ec991', class: "start-page_main-content" }, (this.wrongImageFormat ||
1712
- this.state.searchStatus === "error") && (h("div", { key: '655f4202af65eb118124e2401fe118ca0fc15631', class: "start-page_errors-block" }, this.getCurrentErrorType() && (h("vviinn-error", { key: '4c00d5fb45283e51ed94f18af266a62c80d46671', errorType: this.getCurrentErrorType(), handler: this.resetState, hasBackground: this.showInWidget, searchType: this.state.searchType })))), !this.haveErrors() && (h(Fragment, { key: 'f423acd6924394400fe6e6f4fa8e902a217dfffa' }, h("vviinn-teaser", { key: 'e7fb21f20050be0067d9286f6d3fa51ee6d4d2c6' }), h("div", { key: 'bf1f46945924a4df4e4c7f26bf6f6ee439f4ceb2', class: "buttons-group" }, this.renderButtons()), this.textSearchShow && (h("vviinn-text-search", { key: 'e4b5618848ede58e1d440390e64f25515d97b1b4', token: globalState.token, apiPath: globalState.apiPath, locale: globalState.locale, showInWidget: true, showOnFirstScreen: true, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" }))))), h("vviinn-privacy-badge", { key: 'c38a4b2832ee506d0090ba5a2fbf65a75e4baa58', privacyBadgeText: instance.t("privacyBadgeText", {
1720
+ }, id: "start-page_block" }, h("div", { key: 'c32f285eb2a09128da261ab6760ffecfe2c8d29c', class: "start-page_main-content" }, (this.wrongImageFormat ||
1721
+ this.state.searchStatus === "error") && (h("div", { key: 'bf1e3792a180449a856e43e06f98fadb2b20f2b1', class: "start-page_errors-block" }, this.getCurrentErrorType() && (h("vviinn-error", { key: '475c56ce4cea82ca41630c7f33d80cc101be38c6', errorType: this.getCurrentErrorType(), handler: this.resetState, hasBackground: this.showInWidget, searchType: this.state.searchType })))), !this.haveErrors() && (h(Fragment, { key: '4df2847cfbb83dbda1cc6a79a441d66012644eec' }, h("vviinn-teaser", { key: 'da876e72cfd3883155f7852b4850d7d4ed8ffd06' }), h("div", { key: '804553414e50659d9394909e7db7e4ce999a2c16', class: "buttons-group" }, this.renderButtons()), this.textSearchShow && (h("vviinn-text-search", { key: '331a1f31d82487c4f50862793f88597e5e338929', token: globalState.token, apiPath: globalState.apiPath, locale: globalState.locale, showInWidget: true, showOnFirstScreen: true, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" }))))), h("vviinn-privacy-badge", { key: '3da1dec800cd91585502ad7eca9f309cf6f31f48', privacyBadgeText: instance.t("privacyBadgeText", {
1713
1722
  interpolation: { escapeValue: false },
1714
- }), class: { invisible: this.haveErrors() } }))), h("vviinn-slide", { key: '83eb0fb3af107fc3d54639c64367a5ebfc966f56', class: {
1723
+ }), class: { invisible: this.haveErrors() } }))), h("vviinn-slide", { key: 'a344e5987bdc38735860430750c10e01d2c0eb8e', class: {
1715
1724
  "results-page": true,
1716
1725
  active: this.isResultSlide(),
1717
- } }, this.isResultSlide() && (h("div", { key: 'cdfd64427728e91f5f0faf0c61b5e10a2a4ca0a3', class: "source-wrapper" }, this.isTextSearch() ? (h(Fragment, null, h("vviinn-text-search", { token: this.token, showInWidget: true, apiPath: this.apiPath, locale: this.locale, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" }), h("vviinn-suggestions", { showInWidget: true, token: this.token, apiPath: this.apiPath, locale: this.locale }))) : (h("vviinn-cropper", { basicEventData: this.getBasicEventData(), showAspectRatioError: this.showAspectRatioError, apiPath: this.apiPath, showInWidget: true, "save-image-mode": "never" })), ((_b = this.state.dynamicFilters) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h("div", { key: '04a27202fe48f245394b946726b4b3cd89916dad', class: {
1726
+ } }, this.isResultSlide() && (h("div", { key: 'eadd2ddfcaa8277953e379742ede5f7afd22dffe', class: "source-wrapper" }, this.isTextSearch() ? (h(Fragment, null, h("vviinn-text-search", { token: this.token, showInWidget: true, apiPath: this.apiPath, locale: this.locale, uiSessionId: this.uiSessionId, basicEventData: this.getBasicEventData(true), "save-image-mode": "never" }), h("vviinn-suggestions", { showInWidget: true, token: this.token, apiPath: this.apiPath, locale: this.locale }))) : (h("vviinn-cropper", { basicEventData: this.getBasicEventData(), showAspectRatioError: this.showAspectRatioError, apiPath: this.apiPath, showInWidget: true, "save-image-mode": "never" })), ((_b = this.state.dynamicFilters) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h("div", { key: 'b2cb3daae83d7ef7a50cfc8bcc04b300be5382c7', class: {
1718
1727
  "filters-wrapper": true,
1719
1728
  hidden: this.showAspectRatioError,
1720
- } }, h("vviinn-filters", { key: '6b84c144742bf0ef62090292f09cef66b793fcd9', class: "preview-filters", showInWidget: true, exportparts: filtersParts }), h("vviinn-extended-filters", { key: '9517b380405ffb2d5f01180ae0277dd09257dc15', class: "preview-extended-filters", mode: "preview", showHeader: false, exportparts: extendedFiltersParts, showInWidget: true }), h("vviinn-extended-filters-button", { key: '7f2e322e44edb3b8cfbd1ba94809bd1245147d64', class: {
1729
+ } }, h("vviinn-filters", { key: 'a028c222574d4e60ddcfd5ec289ff0c208bcfabc', class: "preview-filters", showInWidget: true, exportparts: filtersParts }), h("vviinn-extended-filters", { key: '88c438a41b5b44c918e5eeb9bc8590cba874b9c6', class: "preview-extended-filters", mode: "preview", showHeader: false, exportparts: extendedFiltersParts, showInWidget: true }), h("vviinn-extended-filters-button", { key: '0aba5bc3f6d005f0ae754494a79aaa10cf28a238', class: {
1721
1730
  "extended-filters-button": true,
1722
1731
  "has-primary-filters": this.state.dynamicFilters.filter((f) => f.isPrimary)
1723
1732
  .length > 0,
1724
- }, exportparts: "extended-filters-button", showInWidget: true }))))), this.isResultSlide() && (h("vviinn-results", { key: 'ffc28d5ac4cefa0fc6573140aa0923fd45e44062', token: globalState.token, locale: globalState.locale, pricePrefix: globalState.pricePrefix, "currency-sign": globalState.currencySign, apiPath: globalState.apiPath, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, uiSessionId: this.uiSessionId, widgetElementId: (_c = this.buttonElementId) !== null && _c !== void 0 ? _c : this.widgetElementId, showInWidget: true, buttonElementId: this.buttonElementId, imageResolutionWidth: this.imageResolutionWidth, productDetailsNewTab: this.productDetailsNewTab, productDetailsRedirect: this.productDetailsRedirect, addToBasketShow: this.addToBasketShow, favoriteShow: this.favoriteShow, showAspectRatioError: this.showAspectRatioError, resetWidgetState: this.resetState, replaceSlotsContentInWidget: this.replaceSlotsContent.bind(this), replaceSlotsContentInButton: this.replaceSlotsContentInButton, addPriceContainer: this.addPriceContainer, oneClickDiscoveryMode: this.oneClickDiscoveryMode, oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, parentSlots: [...this.parentSlots, ...this.slots], scrollableModalBody: this.modalBody })))), h("vviinn-extended-filters", { key: '6e4ed4c898e3f11984efc8fd51bfebf0ea3b9e8c', class: "modal-extended-filters", mode: "modal", exportparts: extendedFiltersParts, showInWidget: true }))));
1733
+ }, exportparts: "extended-filters-button", showInWidget: true }))))), this.isResultSlide() && (h("vviinn-results", { key: 'fc9e349d99f23df55fb546c2115ce705827b3114', token: globalState.token, locale: globalState.locale, pricePrefix: globalState.pricePrefix, "currency-sign": globalState.currencySign, apiPath: globalState.apiPath, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, uiSessionId: this.uiSessionId, widgetElementId: (_c = this.buttonElementId) !== null && _c !== void 0 ? _c : this.widgetElementId, showInWidget: true, buttonElementId: this.buttonElementId, imageResolutionWidth: this.imageResolutionWidth, productDetailsNewTab: this.productDetailsNewTab, productDetailsRedirect: this.productDetailsRedirect, addToBasketShow: this.addToBasketShow, favoriteShow: this.favoriteShow, showAspectRatioError: this.showAspectRatioError, resetWidgetState: this.resetState, replaceSlotsContentInWidget: this.replaceSlotsContent.bind(this), replaceSlotsContentInButton: this.replaceSlotsContentInButton, addPriceContainer: this.addPriceContainer, oneClickDiscoveryMode: this.oneClickDiscoveryMode, oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, parentSlots: [...this.parentSlots, ...this.slots], scrollableModalBody: this.modalBody })))), h("vviinn-extended-filters", { key: 'af6545ad7c1e002f297566a4c1590e8e043263d2', class: "modal-extended-filters", mode: "modal", exportparts: extendedFiltersParts, showInWidget: true }))));
1725
1734
  }
1726
1735
  get el() { return getElement(this); }
1727
1736
  static get watchers() { return {
@@ -1,14 +1,14 @@
1
1
  import { h, r as registerInstance, c as createEvent, F as Fragment, H as Host, g as getElement } from './index-C5qrIvmr.js';
2
- import { a as addIfNotEmpty, _ as _ArrayExports, u as useSearchStore, b as searchState } from './search.store-HXwFfRvm.js';
3
- import { V as has, W as tuple, _ as _functionExports, b as requireSemigroup, O as OptionExports, u as pipe$1, M as chainW, X as makeRequest, K as fromEither, Y as getApiPath, Z as createInitPostRequest, $ as Apply, a0 as TaskEitherExports, E as EitherExports } from './Rectangle-CWwG37eK.js';
2
+ import { a as addIfNotEmpty, _ as _ArrayExports, u as useSearchStore, b as searchState } from './search.store-DLJr8QhM.js';
3
+ import { W as has, X as tuple, _ as _functionExports, e as requireSemigroup, O as OptionExports, v as pipe$1, N as chainW, Y as makeRequest, L as fromEither, Z as getApiPath, $ as createInitPostRequest, a0 as Apply, a1 as TaskEitherExports, E as EitherExports } from './Rectangle-DGBESJrE.js';
4
4
  import { i as instance } from './i18next-C7V-mvcq.js';
5
- import { c as campaignTypeNames, f as fromString, a as fold, v as version } from './package-C1SlDb4h.js';
6
- import { S as SET_MODE_IMAGE_WIDTH_CSS_VAR, C as CONTENT_GROUP_CSS_CLASS, i as CAROUSEL_IMAGE_WIDTH_CSS_VAR, j as CAROUSEL_CONTENT_WIDTH_CSS_VAR, R as RESULTS_CALCULATED_COLUMNS_CSS_VAR, D as DEFAULT_COLUMNS_NUMBER, g as getCustomLabels, k as SCROLL_POSITION_TOLERANCE, P as PlusIcon, v as v4, c as createWidgetEvent, e as createResultEventByType, b as createAddToBasketEvent, d as createAddToWishlistEvent, f as createProductEventByType, l as getRecommendationsBody } from './index-CdSE2oQq.js';
5
+ import { c as campaignTypeNames, f as fromString, a as fold, v as version } from './package-B82dIeWY.js';
6
+ import { S as SET_MODE_IMAGE_WIDTH_CSS_VAR, C as CONTENT_GROUP_CSS_CLASS, i as CAROUSEL_IMAGE_WIDTH_CSS_VAR, j as CAROUSEL_CONTENT_WIDTH_CSS_VAR, R as RESULTS_CALCULATED_COLUMNS_CSS_VAR, D as DEFAULT_COLUMNS_NUMBER, g as getCustomLabels, k as SCROLL_POSITION_TOLERANCE, P as PlusIcon, v as v4, c as createWidgetEvent, e as createResultEventByType, b as createAddToBasketEvent, d as createAddToWishlistEvent, f as createProductEventByType, l as getRecommendationsBody } from './index-BIViS3eV.js';
7
7
  import { P as PRODUCT_CARD_IMAGE_WIDTH, D as DISCOVERY_WIDGET_IMAGE_RESOLUTION_WIDTH, c as PRODUCT_CARD_IMAGE_RESOLUTION_WIDTH } from './constants-rqiiCPBX.js';
8
8
  import { s as slotChangeListener, S as SlotSkeleton } from './customized-slots-Dy-qVYWj.js';
9
9
  import { h as energyLabelParts, i as imageParts, j as contentCardParts, p as productCardParts, k as priceRangeParts } from './index-B6wlG8FA.js';
10
10
  import { b as announceToScreenReader, a as getIntervalLabel, c as isPriceFilter, i as isSubFilterActive, R as RenderFilterButton } from './RenderFilterButton-DbAF7O7r.js';
11
- import { r as resources } from './resources-Bv3dEgL8.js';
11
+ import { r as resources } from './resources-CHDT594L.js';
12
12
  import { b as triggerResetFilters, t as triggerFilter } from './triggerFilter-B4e4JwCJ.js';
13
13
  import { g as globalState, t as trackEvent, u as updateGlobalState } from './store-CMhsm-nf.js';
14
14
  import { a as addEventListenersWithSignal, i as isElementInSelector } from './index-CckoTlaC.js';
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-C5qrIvmr.js';
2
- import { _ as _functionExports, O as OptionExports, s as scaleWithSized, c as center, d as detectedObjectEq } from './Rectangle-CWwG37eK.js';
2
+ import { _ as _functionExports, O as OptionExports, s as scaleWithSized, c as center, d as detectedObjectEq } from './Rectangle-DGBESJrE.js';
3
3
  import { i as instance } from './i18next-C7V-mvcq.js';
4
4
  import './store-CMhsm-nf.js';
5
5
 
@@ -1,13 +1,13 @@
1
1
  import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-C5qrIvmr.js';
2
2
  import { g as getRemoveFilterAriaLabel, F as FilterIconClose, a as getIntervalLabel, b as announceToScreenReader, i as isSubFilterActive, R as RenderFilterButton } from './RenderFilterButton-DbAF7O7r.js';
3
3
  import { t as triggerFilter, a as triggerRemoveIntervalFilter } from './triggerFilter-B4e4JwCJ.js';
4
- import { u as useSearchStore } from './search.store-HXwFfRvm.js';
4
+ import { u as useSearchStore } from './search.store-DLJr8QhM.js';
5
5
  import { g as globalState } from './store-CMhsm-nf.js';
6
6
  import { i as instance } from './i18next-C7V-mvcq.js';
7
- import { r as resources } from './resources-Bv3dEgL8.js';
7
+ import { r as resources } from './resources-CHDT594L.js';
8
8
  import { g as getLocalStorageItems } from './index-C5MrXMjM.js';
9
9
  import { a as addEventListenersWithSignal } from './index-CckoTlaC.js';
10
- import './Rectangle-CWwG37eK.js';
10
+ import './Rectangle-DGBESJrE.js';
11
11
 
12
12
  const TextIcon = () => (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" },
13
13
  h("svg", { width: "25", height: "24", viewBox: "0 0 25 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
@@ -1,8 +1,8 @@
1
1
  import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-C5qrIvmr.js';
2
- import { a as divideOnSized, E as EitherExports } from './Rectangle-CWwG37eK.js';
2
+ import { a as divideOnSized, E as EitherExports } from './Rectangle-DGBESJrE.js';
3
3
  import { C as Cropper, c as cropperOptions, g as getCropBoxData, i as isCropBoxChangeMinimal, a as isDesktop$1 } from './checkDeviceType-BFZcnzQf.js';
4
4
  import { u as updateGlobalState } from './store-CMhsm-nf.js';
5
- import { c as shopTheLookState, d as makeVisualSearchRequest, e as makeUploadFileRequest } from './search.store-HXwFfRvm.js';
5
+ import { c as shopTheLookState, d as makeVisualSearchRequest, e as makeUploadFileRequest } from './search.store-DLJr8QhM.js';
6
6
  import { S as SecondaryActionIcon } from './SecondaryActionIcon-Co8n0aty.js';
7
7
  import { s as setupIntersectionObserver } from './intersectionObserver-DHxfjh-K.js';
8
8
 
@@ -1,9 +1,9 @@
1
1
  import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-C5qrIvmr.js';
2
- import { s as setTextSearchQuery, m as makeTextSearchRequest, u as useSearchStore } from './search.store-HXwFfRvm.js';
2
+ import { s as setTextSearchQuery, m as makeTextSearchRequest, u as useSearchStore } from './search.store-DLJr8QhM.js';
3
3
  import { s as slotChangeListener } from './customized-slots-Dy-qVYWj.js';
4
4
  import { i as instance } from './i18next-C7V-mvcq.js';
5
- import { r as resources } from './resources-Bv3dEgL8.js';
6
- import { _ as _functionExports, g as getOrElse } from './Rectangle-CWwG37eK.js';
5
+ import { r as resources } from './resources-CHDT594L.js';
6
+ import { _ as _functionExports, g as getOrElse } from './Rectangle-DGBESJrE.js';
7
7
  import { s as searchBarParts } from './index-B6wlG8FA.js';
8
8
  import { u as updateGlobalState, g as globalState } from './store-CMhsm-nf.js';
9
9
 
@@ -4,7 +4,7 @@ import { D as DEFAULT_EXAMPLE_IMAGE } from './constants-DOMXsA9W.js';
4
4
  import { f as findSlotElements } from './index-CckoTlaC.js';
5
5
  import { S as SEARCH_WIDGET_IMAGE_RESOLUTION_WIDTH } from './constants-rqiiCPBX.js';
6
6
  import { i as instance } from './i18next-C7V-mvcq.js';
7
- import { r as resources } from './resources-Bv3dEgL8.js';
7
+ import { r as resources } from './resources-CHDT594L.js';
8
8
  import { u as updateGlobalState, g as globalState } from './store-CMhsm-nf.js';
9
9
 
10
10
  const SearchModalCameraIcon = () => (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true" },
@@ -150,7 +150,7 @@ const VviinnVpsButton = class {
150
150
  }
151
151
  render() {
152
152
  const { ariaLabel, buttonIcon } = this.getButtonConfig();
153
- return (h(Host, { key: '217a7bba519ef7060fc80662ebea7d00906e09b3', role: this.buttonPressed ? undefined : "button", "aria-label": this.buttonPressed ? undefined : ariaLabel }, h("vviinn-button", { key: 'f9266b5a312a418fc91f92be8a2a46cf4e6fc36f', addStyle: this.addStyle, part: "vviinn-button", tabindex: this.buttonPressed ? undefined : "0", onClick: this.buttonPressed ? undefined : this.handleActivation, onKeyDown: this.buttonPressed ? undefined : this.handleKeyDown }, h("slot", { key: '3c0eb4a3f434f763a5b3b089655a7884bc296b3d' }, buttonIcon)), SlotSkeleton("search"), h("vviinn-vps-widget", { key: 'c12281cb2c98e8c09e84b95719cc13fe1816b3bb', mode: this.mode, "currency-sign": this.currencySign, token: this.token, locale: this.locale, apiPath: this.apiPath, pricePrefix: this.pricePrefix, campaignId: this.campaignId, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, showingInButton: true, buttonPressed: this.buttonPressed, resetVpsButton: this.resetButton, buttonElementId: this.el.id, active: this.buttonPressed &&
153
+ return (h(Host, { key: '77f53d931cece790d3ad282c9361255da9d7855f', role: this.buttonPressed ? undefined : "button", "aria-label": this.buttonPressed ? undefined : ariaLabel }, h("vviinn-button", { key: '4ae881afffce59ca29a16bcfac041b7f27e9b99f', addStyle: this.addStyle, part: "vviinn-button", tabindex: this.buttonPressed ? undefined : "0", onClick: this.buttonPressed ? undefined : this.handleActivation, onKeyDown: this.buttonPressed ? undefined : this.handleKeyDown }, h("slot", { key: 'd696de9a652f1536e8658647e8a34c4346560262' }, buttonIcon)), SlotSkeleton("search"), h("vviinn-vps-widget", { key: '96d554c425f8c06a2f61c8f4415b8789589996c6', mode: this.mode, "currency-sign": this.currencySign, token: this.token, locale: this.locale, apiPath: this.apiPath, pricePrefix: this.pricePrefix, campaignId: this.campaignId, campaignIdTextSearch: this.campaignIdTextSearch, campaignIdVisualSearch: this.campaignIdVisualSearch, showingInButton: true, buttonPressed: this.buttonPressed, resetVpsButton: this.resetButton, buttonElementId: this.el.id, active: this.buttonPressed &&
154
154
  (this.mode === "modal" || this.mode === "camera"), excluded: this.excluded, productDetailsNewTab: this.productDetailsNewTab, productDetailsRedirect: this.productDetailsRedirect, imageResolutionWidth: this.imageResolutionWidth, exampleImageSource: this.exampleImageSource, textSearchShow: this.textSearchShow, addToBasketShow: this.addToBasketShow, addPriceContainer: this.addPriceContainer, replaceSlotsContentInButton: this.replaceSlotsContent.bind(this), oneClickDiscoveryMode: this.oneClickDiscoveryMode, oneClickDiscoveryCampaigns: this.oneClickDiscoveryCampaigns, favoriteShow: this.favoriteShow, showInWidget: this.showInWidget, parentSlots: this.slots })));
155
155
  }
156
156
  get el() { return getElement(this); }
@@ -1,3 +1,4 @@
1
1
  import { Either } from "fp-ts/lib/Either";
2
2
  import { BasicError } from "../error";
3
+ export declare const acceptableFileFormats: string;
3
4
  export declare const checkImageType: (file: File) => Either<BasicError<string>, File>;
@@ -6,13 +6,13 @@ import { BasicEventData, ImageUploadEventData, NoResultEventData, SearchIdEventD
6
6
  */
7
7
  export declare class VviinnImageSelector {
8
8
  vviinnImageUploadStarted: EventEmitter<ImageUploadEventData>;
9
- /** Wrong image format, that isn't .jpg, .jpeg, png */
9
+ /** Wrong image format, that isn't .jpg, .jpeg, .png, .webp, or .avif */
10
10
  vviinnNoResult: EventEmitter<NoResultEventData>;
11
11
  vviinnImageUploadFinished: EventEmitter<SearchIdEventData>;
12
12
  basicEventData: BasicEventData;
13
13
  startUpload: boolean;
14
14
  loading: boolean;
15
- accept: "image" | "application-octet-stream";
15
+ accept: string;
16
16
  resetVpsButton: () => void;
17
17
  token?: string;
18
18
  apiPath?: string;
@@ -17,10 +17,8 @@ export declare const extractDataItems: (annotation: ContextAnnotation) => {
17
17
  deeplink?: string | null;
18
18
  brand?: string | null;
19
19
  productType?: string | null;
20
- image?: {
21
- original?: string;
22
- thumbnail?: string | null;
23
- };
20
+ image?: import("../../interfaces/generated").components["schemas"]["image"];
21
+ images?: import("../../interfaces/generated").components["schemas"]["image"][];
24
22
  price?: {
25
23
  actual?: import("../../interfaces/generated").components["schemas"]["price"] | null;
26
24
  sale?: import("../../interfaces/generated").components["schemas"]["price"] | null;
@@ -136,7 +136,7 @@ export declare class VviinnVpsButton {
136
136
  vviinnResultLoad: EventEmitter<BasicEventData>;
137
137
  /** The search result appears in the viewport */
138
138
  vviinnResultView: EventEmitter<BasicEventData>;
139
- /** Wrong image format, that isn't .jpg, .jpeg, png, or the request failed */
139
+ /** Wrong image format, that isn't .jpg, .jpeg, .png, .webp, or .avif, or the request failed */
140
140
  vviinnNoResult: EventEmitter<BasicEventData>;
141
141
  /** Crop area changes */
142
142
  vviinnImageCrop: EventEmitter<BasicEventData>;
@@ -122,7 +122,7 @@ export declare class VviinnVpsWidget {
122
122
  /** @internal */
123
123
  showInWidget?: boolean;
124
124
  slidePosition: number;
125
- uploadSource: UploadSource;
125
+ uploadSource: UploadSource | null;
126
126
  stream: MediaStream | null;
127
127
  products: Recommendation[];
128
128
  modalBody?: HTMLElement;
@@ -147,7 +147,7 @@ export declare class VviinnVpsWidget {
147
147
  vviinnSelectFilter: EventEmitter<SelectFilterEventData>;
148
148
  /** The image upload has started */
149
149
  vviinnImageUploadStarted: EventEmitter<ImageUploadEventData>;
150
- /** Wrong image format, that isn't .jpg, .jpeg, png, or the request failed */
150
+ /** Wrong image format, that isn't .jpg, .jpeg, .png, .webp, or .avif, or the request failed */
151
151
  vviinnNoResult: EventEmitter<BasicEventData>;
152
152
  private overflow;
153
153
  private uiSessionId;