vviinn-widgets 2.180.1 → 2.180.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/cjs/{package-oO--ZhE-.js → package-CI2BBWCd.js} +1 -1
  2. package/dist/cjs/{triggerFilter-B1jIVczU.js → triggerFilter-DMhMlhX4.js} +4 -2
  3. package/dist/cjs/vviinn-camera_10.cjs.entry.js +1 -1
  4. package/dist/cjs/vviinn-carousel_9.cjs.entry.js +2 -2
  5. package/dist/cjs/vviinn-detected-object_6.cjs.entry.js +1 -1
  6. package/dist/cjs/vviinn-selected-filters.cjs.entry.js +4 -4
  7. package/dist/cjs/vviinn-vps-button.cjs.entry.js +1 -1
  8. package/dist/collection/components/vviinn-carousel/vviinn-carousel.js +2 -2
  9. package/dist/collection/components/vviinn-filters/helpers/getIntervalLabel.js +4 -2
  10. package/dist/collection/components/vviinn-filters/vviinn-selected-filters.js +3 -3
  11. package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-widget.js +1 -1
  12. package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +1 -1
  13. package/dist/esm/{package-CSctix6j.js → package-CpyswvPf.js} +1 -1
  14. package/dist/esm/{triggerFilter-CfqsUfAn.js → triggerFilter-DEQtuJV4.js} +4 -2
  15. package/dist/esm/vviinn-camera_10.entry.js +1 -1
  16. package/dist/esm/vviinn-carousel_9.entry.js +2 -2
  17. package/dist/esm/vviinn-detected-object_6.entry.js +1 -1
  18. package/dist/esm/vviinn-selected-filters.entry.js +4 -4
  19. package/dist/esm/vviinn-vps-button.entry.js +1 -1
  20. package/dist/types/components/vviinn-filters/helpers/getIntervalLabel.d.ts +1 -1
  21. package/dist/types/interfaces/generated.d.ts +11 -2
  22. package/dist/vviinn-widgets/{p-90aa0b72.entry.js → p-09259ac8.entry.js} +1 -1
  23. package/dist/vviinn-widgets/{p-a342e51e.entry.js → p-0ed50237.entry.js} +1 -1
  24. package/dist/vviinn-widgets/{p-cb647dbb.entry.js → p-1c5940b8.entry.js} +1 -1
  25. package/dist/vviinn-widgets/{p-fed6b735.entry.js → p-34a24f9b.entry.js} +1 -1
  26. package/dist/vviinn-widgets/{p-CSctix6j.js → p-CpyswvPf.js} +1 -1
  27. package/dist/vviinn-widgets/p-de7846fa.entry.js +1 -0
  28. package/dist/vviinn-widgets/p-yvJms2U5.js +1 -0
  29. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  30. package/package.json +1 -1
  31. package/www/build/{p-90aa0b72.entry.js → p-09259ac8.entry.js} +1 -1
  32. package/www/build/{p-a342e51e.entry.js → p-0ed50237.entry.js} +1 -1
  33. package/www/build/{p-cb647dbb.entry.js → p-1c5940b8.entry.js} +1 -1
  34. package/www/build/{p-fed6b735.entry.js → p-34a24f9b.entry.js} +1 -1
  35. package/www/build/{p-CSctix6j.js → p-CpyswvPf.js} +1 -1
  36. package/www/build/p-de7846fa.entry.js +1 -0
  37. package/www/build/{p-39966f1a.js → p-fee495d7.js} +1 -1
  38. package/www/build/p-yvJms2U5.js +1 -0
  39. package/www/build/vviinn-widgets.esm.js +1 -1
  40. package/www/index.html +1 -1
  41. package/dist/vviinn-widgets/p-0afb9042.entry.js +0 -1
  42. package/dist/vviinn-widgets/p-BiQFiZBS.js +0 -1
  43. package/www/build/p-0afb9042.entry.js +0 -1
  44. package/www/build/p-BiQFiZBS.js +0 -1
@@ -14,7 +14,7 @@ function fromString(s) {
14
14
  return s === "VPR" ? { _tag: "VPR" } : { _tag: "VCS" };
15
15
  }
16
16
 
17
- const version = "2.180.1";
17
+ const version = "2.180.3";
18
18
 
19
19
  exports.campaignTypeNames = campaignTypeNames;
20
20
  exports.fold = fold;
@@ -43,7 +43,7 @@ function getColorOptionAriaLabel(label) {
43
43
 
44
44
  const isPriceFilter = (column) => column === "price" || column === "minimum_price";
45
45
 
46
- const getIntervalLabel = (intervalFilter, fullInterval, currencySign) => {
46
+ const getIntervalLabel = (intervalFilter, fullInterval, currencySign, showColumnLabel = false) => {
47
47
  if (!fullInterval)
48
48
  return null;
49
49
  const { start, end } = fullInterval;
@@ -55,7 +55,9 @@ const getIntervalLabel = (intervalFilter, fullInterval, currencySign) => {
55
55
  }
56
56
  else {
57
57
  const rangeValue = `${start} – ${end}`;
58
- return isPrice ? rangeValue : `${intervalFilter.label}: ${rangeValue}`;
58
+ return isPrice
59
+ ? rangeValue
60
+ : `${showColumnLabel ? `${intervalFilter.label}: ` : ""}${rangeValue}`;
59
61
  }
60
62
  }
61
63
  else {
@@ -9,7 +9,7 @@ var i18next = require('./i18next-DkN_8H9H.js');
9
9
  var store = require('./store-CrCuJC55.js');
10
10
  var Rectangle = require('./Rectangle-Dki6rXFf.js');
11
11
  var index$3 = require('./index-CtHOBs61.js');
12
- var _package = require('./package-oO--ZhE-.js');
12
+ var _package = require('./package-CI2BBWCd.js');
13
13
  var resources = require('./resources-DWfxrCA4.js');
14
14
  var index$4 = require('./index-Dob37WH6.js');
15
15
  var constants = require('./constants-D9v4GJNd.js');
@@ -3,12 +3,12 @@
3
3
  var index = require('./index-OrE9ITel.js');
4
4
  var search_store = require('./search.store-C6iFzVC6.js');
5
5
  var i18next = require('./i18next-DkN_8H9H.js');
6
- var _package = require('./package-oO--ZhE-.js');
6
+ var _package = require('./package-CI2BBWCd.js');
7
7
  var index$1 = require('./index-BFM8FXu_.js');
8
8
  var constants = require('./constants-D9v4GJNd.js');
9
9
  var customizedSlots = require('./customized-slots-7egKJD19.js');
10
10
  var index$2 = require('./index-Dob37WH6.js');
11
- var triggerFilter = require('./triggerFilter-B1jIVczU.js');
11
+ var triggerFilter = require('./triggerFilter-DMhMlhX4.js');
12
12
  var resources = require('./resources-DWfxrCA4.js');
13
13
  var Rectangle = require('./Rectangle-Dki6rXFf.js');
14
14
  var store = require('./store-CrCuJC55.js');
@@ -5,7 +5,7 @@ var search_store = require('./search.store-C6iFzVC6.js');
5
5
  var i18next = require('./i18next-DkN_8H9H.js');
6
6
  var Rectangle = require('./Rectangle-Dki6rXFf.js');
7
7
  var customizedSlots = require('./customized-slots-7egKJD19.js');
8
- var _package = require('./package-oO--ZhE-.js');
8
+ var _package = require('./package-CI2BBWCd.js');
9
9
  var index$1 = require('./index-Dob37WH6.js');
10
10
  var constants = require('./constants-D9v4GJNd.js');
11
11
  var index$2 = require('./index-CtHOBs61.js');
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-OrE9ITel.js');
4
- var triggerFilter = require('./triggerFilter-B1jIVczU.js');
4
+ var triggerFilter = require('./triggerFilter-DMhMlhX4.js');
5
5
  var search_store = require('./search.store-C6iFzVC6.js');
6
6
  var store = require('./store-CrCuJC55.js');
7
7
  var i18next = require('./i18next-DkN_8H9H.js');
@@ -92,7 +92,7 @@ const VviinnSelectedFilters = class {
92
92
  this.textSearchCustomFilter = detail.kind;
93
93
  }
94
94
  if (detail.action === "select" && ((_a = detail.filter) === null || _a === void 0 ? void 0 : _a.type) === "interval") {
95
- const intervalLabel = triggerFilter.getIntervalLabel(detail.filter, detail.value.interval, store.globalState.currencySign);
95
+ const intervalLabel = triggerFilter.getIntervalLabel(detail.filter, detail.value.interval, store.globalState.currencySign, true);
96
96
  if (intervalLabel) {
97
97
  this.intervalCustomFilters = Object.assign(Object.assign({}, this.intervalCustomFilters), { [detail.filter.column]: intervalLabel });
98
98
  }
@@ -225,9 +225,9 @@ const VviinnSelectedFilters = class {
225
225
  }
226
226
  render() {
227
227
  var _a, _b;
228
- return (index.h(index.Host, { key: 'a80383c627e3804b3c48fa252d9078f962d0fafd', class: {
228
+ return (index.h(index.Host, { key: '72e0cb320949bd9395f617f556e27c7bf897972e', class: {
229
229
  "show-in-widget": this.showInWidget,
230
- } }, index.h("div", { key: '3fd50f4c8ca3c0e69a1723a737e0e98d40aec288', ref: (el) => (this.filterAnnouncementRef = el), "aria-live": "polite", class: "sr-only" }), index.h("section", { key: 'ddecdaa3f4f601badb613bf567106fac8e00172a', "aria-label": i18next.instance.t("a11y.selectedFilters") }, index.h("ul", { key: '9466dcd95bf97430cfb3513ee27fec53784f729f', class: "selected-filters-wrapper", part: "selected-filters-list" }, RenderCustomButton({
230
+ } }, index.h("div", { key: 'fe7ad0a6a62429d1484556ef67b8f13dd951cb4f', ref: (el) => (this.filterAnnouncementRef = el), "aria-live": "polite", class: "sr-only" }), index.h("section", { key: '8c0125c2e9a84c35fdfaa8b8ce37d3c3323598e6', "aria-label": i18next.instance.t("a11y.selectedFilters") }, index.h("ul", { key: 'fbd1a2e9f444016d945fe4697cedd3754a8c6387', class: "selected-filters-wrapper", part: "selected-filters-list" }, RenderCustomButton({
231
231
  label: this.textSearchCustomFilter,
232
232
  buttonType: "text",
233
233
  hidden: !((_a = this.textSearchCustomFilter) === null || _a === void 0 ? void 0 : _a.length),
@@ -152,7 +152,7 @@ const VviinnVpsButton = class {
152
152
  }
153
153
  render() {
154
154
  const { ariaLabel, buttonIcon } = this.getButtonConfig();
155
- return (index.h(index.Host, { key: 'c605056f5c531c8f43785970cf36383c2cf76369', role: this.buttonPressed ? undefined : "button", tabindex: this.buttonPressed ? undefined : "0", "aria-label": this.buttonPressed ? undefined : ariaLabel, onClick: this.buttonPressed ? undefined : this.handleActivation, onKeyDown: this.buttonPressed ? undefined : this.handleKeyDown }, index.h("vviinn-button", { key: '8537c22b370739b0f4fa5d3c285b715482d29b64', addStyle: this.addStyle, part: "vviinn-button" }, index.h("slot", { key: '5c3920837cd9e5beaf94afde234de5795bf55218' }, buttonIcon)), customizedSlots.SlotSkeleton("search"), index.h("vviinn-vps-widget", { key: '8c45aa84a4f49ba38c542886263c5e2eed24cd7d', 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 &&
155
+ return (index.h(index.Host, { key: 'c98da3ce762d3969b61d868c02e8d819062dab2d', role: this.buttonPressed ? undefined : "button", "aria-label": this.buttonPressed ? undefined : ariaLabel }, index.h("vviinn-button", { key: '55cf7ddab1baf3a27d9786e69bb77a5cf1dd1992', addStyle: this.addStyle, part: "vviinn-button", tabindex: this.buttonPressed ? undefined : "0", onClick: this.buttonPressed ? undefined : this.handleActivation, onKeyDown: this.buttonPressed ? undefined : this.handleKeyDown }, index.h("slot", { key: '1c8446a18c223362dd062335a0d94f1fad889d71' }, buttonIcon)), customizedSlots.SlotSkeleton("search"), index.h("vviinn-vps-widget", { key: '60e23aa3366570a378820d236e830f1ee254588f', 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 &&
156
156
  (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 })));
157
157
  }
158
158
  get el() { return index.getElement(this); }
@@ -635,7 +635,7 @@ export class VviinnCarousel {
635
635
  "mutable": true,
636
636
  "complexType": {
637
637
  "original": "Recommendation[]",
638
- "resolved": "{ kind?: \"content\" | \"product\"; groupId?: string; productId?: string; title?: string; deeplink?: string; brand?: string; productType?: string; image?: { original?: string; thumbnail?: string; }; price?: { actual?: number; sale?: number; }; basePrice?: { actual?: { price?: number; quantity?: number; measure?: string; }; sale?: { price?: number; quantity?: number; measure?: string; }; }; energyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; minEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; maxEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; energyCertifications?: { certificationClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; classIconUrls?: { left: string; right: string; }; classRange?: { min?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; max?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; }; classLabelUrl?: string; classDataSheetUrl?: string; productType?: string; }[]; custom_label_0?: string; custom_label_1?: string; custom_label_2?: string; custom_label_3?: string; custom_label_4?: string; }[]",
638
+ "resolved": "{ kind?: \"content\" | \"product\"; entityType?: \"list\" | \"content\" | \"product\"; groupId?: string; productId?: string; title?: string; deeplink?: string; brand?: string; productType?: string; image?: { original?: string; thumbnail?: string; }; price?: { actual?: number; sale?: number; }; basePrice?: { actual?: { price?: number; quantity?: number; measure?: string; }; sale?: { price?: number; quantity?: number; measure?: string; }; }; energyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; minEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; maxEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; energyCertifications?: { certificationClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; classIconUrls?: { left: string; right: string; }; classRange?: { min?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; max?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; }; classLabelUrl?: string; classDataSheetUrl?: string; productType?: string; }[]; custom_label_0?: string; custom_label_1?: string; custom_label_2?: string; custom_label_3?: string; custom_label_4?: string; }[]",
639
639
  "references": {
640
640
  "Recommendation": {
641
641
  "location": "import",
@@ -660,7 +660,7 @@ export class VviinnCarousel {
660
660
  "mutable": false,
661
661
  "complexType": {
662
662
  "original": "Recommendation",
663
- "resolved": "{ kind?: \"content\" | \"product\"; groupId?: string; productId?: string; title?: string; deeplink?: string; brand?: string; productType?: string; image?: { original?: string; thumbnail?: string; }; price?: { actual?: number; sale?: number; }; basePrice?: { actual?: { price?: number; quantity?: number; measure?: string; }; sale?: { price?: number; quantity?: number; measure?: string; }; }; energyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; minEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; maxEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; energyCertifications?: { certificationClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; classIconUrls?: { left: string; right: string; }; classRange?: { min?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; max?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; }; classLabelUrl?: string; classDataSheetUrl?: string; productType?: string; }[]; custom_label_0?: string; custom_label_1?: string; custom_label_2?: string; custom_label_3?: string; custom_label_4?: string; }",
663
+ "resolved": "{ kind?: \"content\" | \"product\"; entityType?: \"list\" | \"content\" | \"product\"; groupId?: string; productId?: string; title?: string; deeplink?: string; brand?: string; productType?: string; image?: { original?: string; thumbnail?: string; }; price?: { actual?: number; sale?: number; }; basePrice?: { actual?: { price?: number; quantity?: number; measure?: string; }; sale?: { price?: number; quantity?: number; measure?: string; }; }; energyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; minEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; maxEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; energyCertifications?: { certificationClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; classIconUrls?: { left: string; right: string; }; classRange?: { min?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; max?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; }; classLabelUrl?: string; classDataSheetUrl?: string; productType?: string; }[]; custom_label_0?: string; custom_label_1?: string; custom_label_2?: string; custom_label_3?: string; custom_label_4?: string; }",
664
664
  "references": {
665
665
  "Recommendation": {
666
666
  "location": "import",
@@ -1,5 +1,5 @@
1
1
  import { isPriceFilter } from "../../../filters";
2
- export const getIntervalLabel = (intervalFilter, fullInterval, currencySign) => {
2
+ export const getIntervalLabel = (intervalFilter, fullInterval, currencySign, showColumnLabel = false) => {
3
3
  if (!fullInterval)
4
4
  return null;
5
5
  const { start, end } = fullInterval;
@@ -11,7 +11,9 @@ export const getIntervalLabel = (intervalFilter, fullInterval, currencySign) =>
11
11
  }
12
12
  else {
13
13
  const rangeValue = `${start} – ${end}`;
14
- return isPrice ? rangeValue : `${intervalFilter.label}: ${rangeValue}`;
14
+ return isPrice
15
+ ? rangeValue
16
+ : `${showColumnLabel ? `${intervalFilter.label}: ` : ""}${rangeValue}`;
15
17
  }
16
18
  }
17
19
  else {
@@ -68,7 +68,7 @@ export class VviinnSelectedFilters {
68
68
  this.textSearchCustomFilter = detail.kind;
69
69
  }
70
70
  if (detail.action === "select" && ((_a = detail.filter) === null || _a === void 0 ? void 0 : _a.type) === "interval") {
71
- const intervalLabel = getIntervalLabel(detail.filter, detail.value.interval, globalState.currencySign);
71
+ const intervalLabel = getIntervalLabel(detail.filter, detail.value.interval, globalState.currencySign, true);
72
72
  if (intervalLabel) {
73
73
  this.intervalCustomFilters = Object.assign(Object.assign({}, this.intervalCustomFilters), { [detail.filter.column]: intervalLabel });
74
74
  }
@@ -201,9 +201,9 @@ export class VviinnSelectedFilters {
201
201
  }
202
202
  render() {
203
203
  var _a, _b;
204
- return (h(Host, { key: 'a80383c627e3804b3c48fa252d9078f962d0fafd', class: {
204
+ return (h(Host, { key: '72e0cb320949bd9395f617f556e27c7bf897972e', class: {
205
205
  "show-in-widget": this.showInWidget,
206
- } }, h("div", { key: '3fd50f4c8ca3c0e69a1723a737e0e98d40aec288', ref: (el) => (this.filterAnnouncementRef = el), "aria-live": "polite", class: "sr-only" }), h("section", { key: 'ddecdaa3f4f601badb613bf567106fac8e00172a', "aria-label": i18next.t("a11y.selectedFilters") }, h("ul", { key: '9466dcd95bf97430cfb3513ee27fec53784f729f', class: "selected-filters-wrapper", part: "selected-filters-list" }, RenderCustomButton({
206
+ } }, h("div", { key: 'fe7ad0a6a62429d1484556ef67b8f13dd951cb4f', ref: (el) => (this.filterAnnouncementRef = el), "aria-live": "polite", class: "sr-only" }), h("section", { key: '8c0125c2e9a84c35fdfaa8b8ce37d3c3323598e6', "aria-label": i18next.t("a11y.selectedFilters") }, h("ul", { key: 'fbd1a2e9f444016d945fe4697cedd3754a8c6387', class: "selected-filters-wrapper", part: "selected-filters-list" }, RenderCustomButton({
207
207
  label: this.textSearchCustomFilter,
208
208
  buttonType: "text",
209
209
  hidden: !((_a = this.textSearchCustomFilter) === null || _a === void 0 ? void 0 : _a.length),
@@ -1565,7 +1565,7 @@ export class VviinnVprWidget {
1565
1565
  },
1566
1566
  "complexType": {
1567
1567
  "original": "Recommendation",
1568
- "resolved": "{ kind?: \"content\" | \"product\"; groupId?: string; productId?: string; title?: string; deeplink?: string; brand?: string; productType?: string; image?: { original?: string; thumbnail?: string; }; price?: { actual?: number; sale?: number; }; basePrice?: { actual?: { price?: number; quantity?: number; measure?: string; }; sale?: { price?: number; quantity?: number; measure?: string; }; }; energyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; minEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; maxEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; energyCertifications?: { certificationClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; classIconUrls?: { left: string; right: string; }; classRange?: { min?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; max?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; }; classLabelUrl?: string; classDataSheetUrl?: string; productType?: string; }[]; custom_label_0?: string; custom_label_1?: string; custom_label_2?: string; custom_label_3?: string; custom_label_4?: string; }",
1568
+ "resolved": "{ kind?: \"content\" | \"product\"; entityType?: \"list\" | \"content\" | \"product\"; groupId?: string; productId?: string; title?: string; deeplink?: string; brand?: string; productType?: string; image?: { original?: string; thumbnail?: string; }; price?: { actual?: number; sale?: number; }; basePrice?: { actual?: { price?: number; quantity?: number; measure?: string; }; sale?: { price?: number; quantity?: number; measure?: string; }; }; energyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; minEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; maxEnergyEfficiencyClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; energyCertifications?: { certificationClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; classIconUrls?: { left: string; right: string; }; classRange?: { min?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; max?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; }; classLabelUrl?: string; classDataSheetUrl?: string; productType?: string; }[]; custom_label_0?: string; custom_label_1?: string; custom_label_2?: string; custom_label_3?: string; custom_label_4?: string; }",
1569
1569
  "references": {
1570
1570
  "Recommendation": {
1571
1571
  "location": "import",
@@ -173,7 +173,7 @@ export class VviinnVpsButton {
173
173
  }
174
174
  render() {
175
175
  const { ariaLabel, buttonIcon } = this.getButtonConfig();
176
- return (h(Host, { key: 'c605056f5c531c8f43785970cf36383c2cf76369', role: this.buttonPressed ? undefined : "button", tabindex: this.buttonPressed ? undefined : "0", "aria-label": this.buttonPressed ? undefined : ariaLabel, onClick: this.buttonPressed ? undefined : this.handleActivation, onKeyDown: this.buttonPressed ? undefined : this.handleKeyDown }, h("vviinn-button", { key: '8537c22b370739b0f4fa5d3c285b715482d29b64', addStyle: this.addStyle, part: "vviinn-button" }, h("slot", { key: '5c3920837cd9e5beaf94afde234de5795bf55218' }, buttonIcon)), SlotSkeleton("search"), h("vviinn-vps-widget", { key: '8c45aa84a4f49ba38c542886263c5e2eed24cd7d', 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 &&
176
+ return (h(Host, { key: 'c98da3ce762d3969b61d868c02e8d819062dab2d', role: this.buttonPressed ? undefined : "button", "aria-label": this.buttonPressed ? undefined : ariaLabel }, h("vviinn-button", { key: '55cf7ddab1baf3a27d9786e69bb77a5cf1dd1992', 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: '1c8446a18c223362dd062335a0d94f1fad889d71' }, buttonIcon)), SlotSkeleton("search"), h("vviinn-vps-widget", { key: '60e23aa3366570a378820d236e830f1ee254588f', 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 &&
177
177
  (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 })));
178
178
  }
179
179
  static get is() { return "vviinn-vps-button"; }
@@ -12,6 +12,6 @@ function fromString(s) {
12
12
  return s === "VPR" ? { _tag: "VPR" } : { _tag: "VCS" };
13
13
  }
14
14
 
15
- const version = "2.180.1";
15
+ const version = "2.180.3";
16
16
 
17
17
  export { fold as a, campaignTypeNames as c, fromString as f, version as v };
@@ -41,7 +41,7 @@ function getColorOptionAriaLabel(label) {
41
41
 
42
42
  const isPriceFilter = (column) => column === "price" || column === "minimum_price";
43
43
 
44
- const getIntervalLabel = (intervalFilter, fullInterval, currencySign) => {
44
+ const getIntervalLabel = (intervalFilter, fullInterval, currencySign, showColumnLabel = false) => {
45
45
  if (!fullInterval)
46
46
  return null;
47
47
  const { start, end } = fullInterval;
@@ -53,7 +53,9 @@ const getIntervalLabel = (intervalFilter, fullInterval, currencySign) => {
53
53
  }
54
54
  else {
55
55
  const rangeValue = `${start} – ${end}`;
56
- return isPrice ? rangeValue : `${intervalFilter.label}: ${rangeValue}`;
56
+ return isPrice
57
+ ? rangeValue
58
+ : `${showColumnLabel ? `${intervalFilter.label}: ` : ""}${rangeValue}`;
57
59
  }
58
60
  }
59
61
  else {
@@ -7,7 +7,7 @@ import { i as instance } from './i18next-C7V-mvcq.js';
7
7
  import { a as getDefaultExportFromCjs, u as updateGlobalState, t as trackEvent, g as globalState } from './store-CMhsm-nf.js';
8
8
  import { f as fromImage } from './Rectangle-zsZBqb9v.js';
9
9
  import { a as addEventListenersWithSignal, f as findSlotElements, g as getSlotNames, s as setElementInteractivity } from './index-B80MfONa.js';
10
- import { v as version, c as campaignTypeNames } from './package-CSctix6j.js';
10
+ import { v as version, c as campaignTypeNames } from './package-CpyswvPf.js';
11
11
  import { r as resources } from './resources-B0QvmME2.js';
12
12
  import { a as productCardsGridPart, p as productCardParts, m as modalParts, e as extendedFiltersParts, f as filtersParts, s as searchBarParts, b as searchWidgetFilterParts, d as searchWidgetButtonParts } from './index-DTNFlVla.js';
13
13
  import { R as RESULTS_WIDGET_IMAGE_RESOLUTION_WIDTH, b as SCROLL_TO_DISCOVERY_DELAY, S as SEARCH_WIDGET_IMAGE_RESOLUTION_WIDTH } from './constants-0HgCM20e.js';
@@ -1,12 +1,12 @@
1
1
  import { h, r as registerInstance, c as createEvent, F as Fragment, H as Host, g as getElement } from './index-C5qrIvmr.js';
2
2
  import { j as has, k as tuple, a as addIfNotEmpty, _ as _functionExports, l as _ArrayExports, u as useSearchStore, n as requireSemigroup, O as OptionExports, E as EitherExports, b as searchState, o as pipe$1, q as chainW, v as makeRequest, w as fromEither, x as getApiPath, y as createInitPostRequest, A as Apply, T as TaskEitherExports } from './search.store-DuGAVKtX.js';
3
3
  import { i as instance } from './i18next-C7V-mvcq.js';
4
- import { c as campaignTypeNames, f as fromString, a as fold, v as version } from './package-CSctix6j.js';
4
+ import { c as campaignTypeNames, f as fromString, a as fold, v as version } from './package-CpyswvPf.js';
5
5
  import { C as CONTENT_GROUP_CSS_CLASS, i as CAROUSEL_IMAGE_WIDTH_CSS_VAR, S as SET_MODE_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-CcBKWb29.js';
6
6
  import { P as PRODUCT_CARD_IMAGE_WIDTH, D as DISCOVERY_WIDGET_IMAGE_RESOLUTION_WIDTH } from './constants-0HgCM20e.js';
7
7
  import { s as slotChangeListener, S as SlotSkeleton } from './customized-slots-R6SaZo4w.js';
8
8
  import { g as energyLabelParts, h as contentCardParts, p as productCardParts, i as priceRangeParts } from './index-DTNFlVla.js';
9
- import { d as triggerResetFilters, t as triggerFilter, c as announceToScreenReader, a as getIntervalLabel, e as isPriceFilter, i as isSubFilterActive, R as RenderFilterButton } from './triggerFilter-CfqsUfAn.js';
9
+ import { d as triggerResetFilters, t as triggerFilter, c as announceToScreenReader, a as getIntervalLabel, e as isPriceFilter, i as isSubFilterActive, R as RenderFilterButton } from './triggerFilter-DEQtuJV4.js';
10
10
  import { r as resources } from './resources-B0QvmME2.js';
11
11
  import { i as isClickedInRectBound } from './Rectangle-zsZBqb9v.js';
12
12
  import { g as globalState, t as trackEvent, u as updateGlobalState } from './store-CMhsm-nf.js';
@@ -3,7 +3,7 @@ import { _ as _functionExports, O as OptionExports, d as detectedObjectEq, a as
3
3
  import { i as instance } from './i18next-C7V-mvcq.js';
4
4
  import { s as scaleWithSized, c as center } from './Rectangle-zsZBqb9v.js';
5
5
  import { s as slotChangeListener } from './customized-slots-R6SaZo4w.js';
6
- import { c as campaignTypeNames, v as version } from './package-CSctix6j.js';
6
+ import { c as campaignTypeNames, v as version } from './package-CpyswvPf.js';
7
7
  import { m as modalParts } from './index-DTNFlVla.js';
8
8
  import { a as SIDEBAR_ANIMATION_DURATION, P as PRODUCT_CARD_IMAGE_WIDTH, D as DISCOVERY_WIDGET_IMAGE_RESOLUTION_WIDTH } from './constants-0HgCM20e.js';
9
9
  import { a as addEventListenersWithSignal } from './index-B80MfONa.js';
@@ -1,5 +1,5 @@
1
1
  import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-C5qrIvmr.js';
2
- import { g as getRemoveFilterAriaLabel, F as FilterIconClose, t as triggerFilter, a as getIntervalLabel, b as triggerRemoveIntervalFilter, c as announceToScreenReader, i as isSubFilterActive, R as RenderFilterButton } from './triggerFilter-CfqsUfAn.js';
2
+ import { g as getRemoveFilterAriaLabel, F as FilterIconClose, t as triggerFilter, a as getIntervalLabel, b as triggerRemoveIntervalFilter, c as announceToScreenReader, i as isSubFilterActive, R as RenderFilterButton } from './triggerFilter-DEQtuJV4.js';
3
3
  import { u as useSearchStore } from './search.store-DuGAVKtX.js';
4
4
  import { g as globalState } from './store-CMhsm-nf.js';
5
5
  import { i as instance } from './i18next-C7V-mvcq.js';
@@ -90,7 +90,7 @@ const VviinnSelectedFilters = class {
90
90
  this.textSearchCustomFilter = detail.kind;
91
91
  }
92
92
  if (detail.action === "select" && ((_a = detail.filter) === null || _a === void 0 ? void 0 : _a.type) === "interval") {
93
- const intervalLabel = getIntervalLabel(detail.filter, detail.value.interval, globalState.currencySign);
93
+ const intervalLabel = getIntervalLabel(detail.filter, detail.value.interval, globalState.currencySign, true);
94
94
  if (intervalLabel) {
95
95
  this.intervalCustomFilters = Object.assign(Object.assign({}, this.intervalCustomFilters), { [detail.filter.column]: intervalLabel });
96
96
  }
@@ -223,9 +223,9 @@ const VviinnSelectedFilters = class {
223
223
  }
224
224
  render() {
225
225
  var _a, _b;
226
- return (h(Host, { key: 'a80383c627e3804b3c48fa252d9078f962d0fafd', class: {
226
+ return (h(Host, { key: '72e0cb320949bd9395f617f556e27c7bf897972e', class: {
227
227
  "show-in-widget": this.showInWidget,
228
- } }, h("div", { key: '3fd50f4c8ca3c0e69a1723a737e0e98d40aec288', ref: (el) => (this.filterAnnouncementRef = el), "aria-live": "polite", class: "sr-only" }), h("section", { key: 'ddecdaa3f4f601badb613bf567106fac8e00172a', "aria-label": instance.t("a11y.selectedFilters") }, h("ul", { key: '9466dcd95bf97430cfb3513ee27fec53784f729f', class: "selected-filters-wrapper", part: "selected-filters-list" }, RenderCustomButton({
228
+ } }, h("div", { key: 'fe7ad0a6a62429d1484556ef67b8f13dd951cb4f', ref: (el) => (this.filterAnnouncementRef = el), "aria-live": "polite", class: "sr-only" }), h("section", { key: '8c0125c2e9a84c35fdfaa8b8ce37d3c3323598e6', "aria-label": instance.t("a11y.selectedFilters") }, h("ul", { key: 'fbd1a2e9f444016d945fe4697cedd3754a8c6387', class: "selected-filters-wrapper", part: "selected-filters-list" }, RenderCustomButton({
229
229
  label: this.textSearchCustomFilter,
230
230
  buttonType: "text",
231
231
  hidden: !((_a = this.textSearchCustomFilter) === null || _a === void 0 ? void 0 : _a.length),
@@ -150,7 +150,7 @@ const VviinnVpsButton = class {
150
150
  }
151
151
  render() {
152
152
  const { ariaLabel, buttonIcon } = this.getButtonConfig();
153
- return (h(Host, { key: 'c605056f5c531c8f43785970cf36383c2cf76369', role: this.buttonPressed ? undefined : "button", tabindex: this.buttonPressed ? undefined : "0", "aria-label": this.buttonPressed ? undefined : ariaLabel, onClick: this.buttonPressed ? undefined : this.handleActivation, onKeyDown: this.buttonPressed ? undefined : this.handleKeyDown }, h("vviinn-button", { key: '8537c22b370739b0f4fa5d3c285b715482d29b64', addStyle: this.addStyle, part: "vviinn-button" }, h("slot", { key: '5c3920837cd9e5beaf94afde234de5795bf55218' }, buttonIcon)), SlotSkeleton("search"), h("vviinn-vps-widget", { key: '8c45aa84a4f49ba38c542886263c5e2eed24cd7d', 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: 'c98da3ce762d3969b61d868c02e8d819062dab2d', role: this.buttonPressed ? undefined : "button", "aria-label": this.buttonPressed ? undefined : ariaLabel }, h("vviinn-button", { key: '55cf7ddab1baf3a27d9786e69bb77a5cf1dd1992', 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: '1c8446a18c223362dd062335a0d94f1fad889d71' }, buttonIcon)), SlotSkeleton("search"), h("vviinn-vps-widget", { key: '60e23aa3366570a378820d236e830f1ee254588f', 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,2 +1,2 @@
1
1
  import { Interval, ResponseIntervalFilterItem } from "../../../interfaces/search";
2
- export declare const getIntervalLabel: (intervalFilter: ResponseIntervalFilterItem, fullInterval: Interval, currencySign?: string) => string | null;
2
+ export declare const getIntervalLabel: (intervalFilter: ResponseIntervalFilterItem, fullInterval: Interval, currencySign?: string, showColumnLabel?: boolean) => string | null;
@@ -275,6 +275,7 @@ export interface components {
275
275
  }[];
276
276
  "response-product-item": {
277
277
  kind?: components["schemas"]["item-kind"];
278
+ entityType?: components["schemas"]["entity-type"];
278
279
  /** @example 55fc5f71d6362321cb93b82b387e2f32 */
279
280
  groupId?: string | null;
280
281
  /** @example 55fc5f71d6362321cb93b82b387e2f32 */
@@ -319,10 +320,18 @@ export interface components {
319
320
  custom_label_4?: string | null;
320
321
  };
321
322
  /**
322
- * @description The API usually returns products; it can also return items representing content pages.
323
- * To enable different handling of these items, the API uses an `item-kind` to distinguish between them.
323
+ * @deprecated
324
+ * @description This field is superseded by the entity type and therefore deprecated.
324
325
  */
325
326
  "item-kind": "product" | "content";
327
+ /**
328
+ * @description The API usually returns products; it can also return entities representing something else.
329
+ * To enable different handling of these entities, the API uses an `entity-type` to distinguish between them, namely:
330
+ * * A `product` entity represents a product in the catalog.
331
+ * * A `content` entity contains information relevant to a user, e.g., trends, opening hours.
332
+ * * A `list` entity comprises a collection of distinguishable items, e.g., a category page.
333
+ */
334
+ "entity-type": "product" | "content" | "list";
326
335
  /** @example 19.9 */
327
336
  price: number | null;
328
337
  /**