@coveo/atomic 3.61.5 → 3.63.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 (92) hide show
  1. package/custom-elements.json +189 -20
  2. package/dist/cjs/components/commerce/atomic-commerce-category-facet/atomic-commerce-category-facet.cjs +19 -7
  3. package/dist/cjs/components/commerce/atomic-commerce-interface/atomic-commerce-interface.cjs +25 -4
  4. package/dist/cjs/components/commerce/atomic-commerce-pager/atomic-commerce-pager.cjs +3 -2
  5. package/dist/cjs/components/commerce/atomic-commerce-products-per-page/atomic-commerce-products-per-page.cjs +1 -1
  6. package/dist/cjs/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.cjs +25 -4
  7. package/dist/cjs/components/common/facets/category-facet/active-value.cjs +69 -0
  8. package/dist/cjs/components/common/facets/category-facet/selected-value.cjs +78 -0
  9. package/dist/cjs/components/common/facets/category-facet/value-link.cjs +5 -6
  10. package/dist/cjs/components/common/interface/i18n.cjs +6 -2
  11. package/dist/cjs/components/common/interface/interface-controller.cjs +8 -4
  12. package/dist/cjs/components/common/pager/pager-fit-controller.cjs +72 -0
  13. package/dist/cjs/components/insight/atomic-insight-pager/atomic-insight-pager.cjs +3 -2
  14. package/dist/cjs/components/search/atomic-category-facet/atomic-category-facet.cjs +19 -8
  15. package/dist/cjs/components/search/atomic-pager/atomic-pager.cjs +3 -2
  16. package/dist/cjs/components/search/atomic-result-date/atomic-result-date.cjs +11 -16
  17. package/dist/cjs/components/search/atomic-results-per-page/atomic-results-per-page.cjs +1 -1
  18. package/dist/cjs/generated/dayjs-locales-data.cjs +43 -43
  19. package/dist/cjs/global/environment.cjs +1 -1
  20. package/dist/cjs/utils/dayjs-locales.cjs +23 -9
  21. package/dist/cjs/utils/field-utils.cjs +5 -1
  22. package/dist/cjs/{components/common/facets/category-facet/parent-value-link.cjs → utils/locale-utils.cjs} +14 -11
  23. package/dist/cjs/versions.cjs +1 -1
  24. package/dist/esm/components/commerce/atomic-commerce-category-facet/atomic-commerce-category-facet.js +19 -7
  25. package/dist/esm/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +25 -4
  26. package/dist/esm/components/commerce/atomic-commerce-pager/atomic-commerce-pager.js +3 -2
  27. package/dist/esm/components/commerce/atomic-commerce-products-per-page/atomic-commerce-products-per-page.js +1 -1
  28. package/dist/esm/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +25 -4
  29. package/dist/esm/components/common/facets/category-facet/active-value.js +31 -0
  30. package/dist/esm/components/common/facets/category-facet/selected-value.js +30 -0
  31. package/dist/esm/components/common/facets/category-facet/value-link.js +5 -6
  32. package/dist/esm/components/common/interface/i18n.js +6 -2
  33. package/dist/esm/components/common/interface/interface-controller.js +8 -4
  34. package/dist/esm/components/common/pager/pager-fit-controller.js +34 -0
  35. package/dist/esm/components/insight/atomic-insight-pager/atomic-insight-pager.js +3 -2
  36. package/dist/esm/components/search/atomic-category-facet/atomic-category-facet.js +19 -8
  37. package/dist/esm/components/search/atomic-pager/atomic-pager.js +3 -2
  38. package/dist/esm/components/search/atomic-result-date/atomic-result-date.js +10 -15
  39. package/dist/esm/components/search/atomic-results-per-page/atomic-results-per-page.js +1 -1
  40. package/dist/esm/generated/dayjs-locales-data.js +43 -43
  41. package/dist/esm/global/environment.js +1 -1
  42. package/dist/esm/utils/dayjs-locales.js +23 -9
  43. package/dist/esm/utils/field-utils.js +5 -1
  44. package/dist/esm/utils/locale-utils.js +12 -0
  45. package/dist/esm/versions.js +1 -1
  46. package/dist/lang/cs.json +1 -1
  47. package/dist/lang/da.json +1 -1
  48. package/dist/lang/de.json +1 -1
  49. package/dist/lang/el.json +1 -1
  50. package/dist/lang/es.json +1 -1
  51. package/dist/lang/fi.json +1 -1
  52. package/dist/lang/hu.json +1 -1
  53. package/dist/lang/id.json +1 -1
  54. package/dist/lang/it.json +1 -1
  55. package/dist/lang/ja.json +1 -1
  56. package/dist/lang/ko.json +1 -1
  57. package/dist/lang/nl.json +1 -1
  58. package/dist/lang/no.json +1 -1
  59. package/dist/lang/pl.json +1 -1
  60. package/dist/lang/pt-BR.json +1 -1
  61. package/dist/lang/pt.json +1 -1
  62. package/dist/lang/ru.json +1 -1
  63. package/dist/lang/sv.json +1 -1
  64. package/dist/lang/th.json +1 -1
  65. package/dist/lang/tr.json +1 -1
  66. package/dist/lang/zh-CN.json +1 -1
  67. package/dist/lang/zh-TW.json +1 -1
  68. package/dist/lang/zh.json +1 -1
  69. package/dist/types/components/commerce/atomic-commerce-category-facet/atomic-commerce-category-facet.d.ts +7 -1
  70. package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +17 -0
  71. package/dist/types/components/commerce/atomic-commerce-pager/atomic-commerce-pager.d.ts +1 -0
  72. package/dist/types/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.d.ts +13 -0
  73. package/dist/types/components/common/facets/category-facet/active-value.d.ts +19 -0
  74. package/dist/types/components/common/facets/category-facet/selected-value.d.ts +22 -0
  75. package/dist/types/components/common/facets/category-facet/value-link.d.ts +0 -1
  76. package/dist/types/components/common/interface/i18n.d.ts +9 -5
  77. package/dist/types/components/common/pager/pager-fit-controller.d.ts +21 -0
  78. package/dist/types/components/common/suggestions/suggestion-manager.d.ts +1 -1
  79. package/dist/types/components/common/suggestions/suggestions-types.d.ts +1 -1
  80. package/dist/types/components/insight/atomic-insight-interface/atomic-insight-interface.d.ts +4 -0
  81. package/dist/types/components/insight/atomic-insight-pager/atomic-insight-pager.d.ts +1 -0
  82. package/dist/types/components/recommendations/atomic-recs-interface/atomic-recs-interface.d.ts +4 -0
  83. package/dist/types/components/search/atomic-category-facet/atomic-category-facet.d.ts +8 -2
  84. package/dist/types/components/search/atomic-pager/atomic-pager.d.ts +1 -0
  85. package/dist/types/components/search/atomic-result-date/atomic-result-date.d.ts +3 -0
  86. package/dist/types/components/search/atomic-search-interface/atomic-search-interface.d.ts +4 -0
  87. package/dist/types/utils/dayjs-locales.d.ts +1 -1
  88. package/dist/types/utils/field-utils.d.ts +1 -1
  89. package/dist/types/utils/locale-utils.d.ts +7 -0
  90. package/package.json +4 -4
  91. package/dist/esm/components/common/facets/category-facet/parent-value-link.js +0 -9
  92. package/dist/types/components/common/facets/category-facet/parent-value-link.d.ts +0 -6
@@ -52,6 +52,7 @@ const with_tailwind_styles_cjs_namespaceObject = require("../../../decorators/wi
52
52
  const children_update_complete_mixin_cjs_namespaceObject = require("../../../mixins/children-update-complete-mixin.cjs");
53
53
  const init_queue_cjs_namespaceObject = require("../../../utils/init-queue.cjs");
54
54
  const initialization_common_utils_cjs_namespaceObject = require("../../../utils/initialization-common-utils.cjs");
55
+ const locale_utils_cjs_namespaceObject = require("../../../utils/locale-utils.cjs");
55
56
  const bindings_context_cjs_namespaceObject = require("../../common/context/bindings-context.cjs");
56
57
  const analytics_config_cjs_namespaceObject = require("../../common/interface/analytics-config.cjs");
57
58
  const interface_controller_cjs_namespaceObject = require("../../common/interface/interface-controller.cjs");
@@ -82,7 +83,7 @@ class AtomicCommerceRecommendationInterface extends (0, children_update_complete
82
83
  }
83
84
  updateLocale(language, country, currency) {
84
85
  if (!this.interfaceController.engineIsCreated(this.engine) || !this.context) return;
85
- language && this.interfaceController.onLanguageChange(language);
86
+ if (language || country && this.localizeWithCountry) this.interfaceController.onLanguageChange(this.getLocale(language || this.context.state.language, country || this.context.state.country));
86
87
  if (this.isNewLocale(language, country, currency)) {
87
88
  const { setContext } = (0, commerce_namespaceObject.loadContextActions)(this.engine);
88
89
  this.engine.dispatch(setContext({
@@ -105,11 +106,15 @@ class AtomicCommerceRecommendationInterface extends (0, children_update_complete
105
106
  updateIconAssetsPath() {
106
107
  this.store.state.iconAssetsPath = this.iconAssetsPath;
107
108
  }
109
+ toggleLocalizeWithCountry() {
110
+ if (!this.context) return;
111
+ this.interfaceController.onLanguageChange(this.getLocale(this.context.state.language, this.context.state.country));
112
+ }
108
113
  async updateLanguage() {
109
114
  if (!this.interfaceController.engineIsCreated(this.engine) || !this.language || !this.context) return;
110
115
  this.engine.logger.warn('The `language` property will be removed in the next major version of Atomic (v4). Rather than using this property, set the initial language through the engine configuration when calling `initializeWithEngine`, and update the language as needed using the `updateLocale` method.');
111
116
  this.context.setLanguage(this.language);
112
- return this.interfaceController.onLanguageChange();
117
+ return this.interfaceController.onLanguageChange(this.getLocale(this.language, this.context.state.country));
113
118
  }
114
119
  disconnectedCallback() {
115
120
  super.disconnectedCallback();
@@ -150,14 +155,17 @@ class AtomicCommerceRecommendationInterface extends (0, children_update_complete
150
155
  }
151
156
  initLanguage() {
152
157
  if (!this.context || this.language) return;
153
- this.interfaceController.onLanguageChange(this.context.state.language);
158
+ this.interfaceController.onLanguageChange(this.getLocale(this.context.state.language, this.context.state.country));
159
+ }
160
+ getLocale(language, country) {
161
+ return this.localizeWithCountry ? (0, locale_utils_cjs_namespaceObject.withCountry)(language, country) : language;
154
162
  }
155
163
  isNewLocale(language, country, currency) {
156
164
  if (!this.context) return false;
157
165
  return language && language !== this.context.state.language || country && country !== this.context.state.country || currency && currency !== this.context.state.currency;
158
166
  }
159
167
  constructor(){
160
- super(), this.bindings = {}, this.interfaceController = new interface_controller_cjs_namespaceObject.InterfaceController(this, 'CoveoAtomic', commerce_namespaceObject.VERSION), this.scrollContainer = 'atomic-commerce-recommendation-interface', this.languageAssetsPath = './lang', this.iconAssetsPath = './assets', this.analytics = true, this.handleInitialization = (event)=>{
168
+ super(), this.bindings = {}, this.interfaceController = new interface_controller_cjs_namespaceObject.InterfaceController(this, 'CoveoAtomic', commerce_namespaceObject.VERSION), this.scrollContainer = 'atomic-commerce-recommendation-interface', this.languageAssetsPath = './lang', this.iconAssetsPath = './assets', this.localizeWithCountry = false, this.analytics = true, this.handleInitialization = (event)=>{
161
169
  this.interfaceController.onComponentInitializing(event);
162
170
  };
163
171
  this.store = (0, external_store_cjs_namespaceObject.createCommerceRecommendationStore)();
@@ -234,6 +242,13 @@ _ts_decorate([
234
242
  }),
235
243
  _ts_metadata("design:type", String)
236
244
  ], AtomicCommerceRecommendationInterface.prototype, "language", void 0);
245
+ _ts_decorate([
246
+ (0, decorators_js_namespaceObject.property)({
247
+ type: Boolean,
248
+ attribute: 'localize-with-country',
249
+ reflect: true
250
+ })
251
+ ], AtomicCommerceRecommendationInterface.prototype, "localizeWithCountry", void 0);
237
252
  _ts_decorate([
238
253
  (0, decorators_js_namespaceObject.property)({
239
254
  type: Boolean,
@@ -254,6 +269,12 @@ _ts_decorate([
254
269
  _ts_metadata("design:paramtypes", []),
255
270
  _ts_metadata("design:returntype", void 0)
256
271
  ], AtomicCommerceRecommendationInterface.prototype, "updateIconAssetsPath", null);
272
+ _ts_decorate([
273
+ (0, watch_cjs_namespaceObject.watch)('localizeWithCountry'),
274
+ _ts_metadata("design:type", Function),
275
+ _ts_metadata("design:paramtypes", []),
276
+ _ts_metadata("design:returntype", void 0)
277
+ ], AtomicCommerceRecommendationInterface.prototype, "toggleLocalizeWithCountry", null);
257
278
  _ts_decorate([
258
279
  (0, watch_cjs_namespaceObject.watch)('language'),
259
280
  _ts_metadata("design:type", Function),
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ renderCategoryFacetActiveValue: ()=>renderCategoryFacetActiveValue
32
+ });
33
+ const external_lit_namespaceObject = require("lit");
34
+ const keyed_js_namespaceObject = require("lit/directives/keyed.js");
35
+ const ref_js_namespaceObject = require("lit/directives/ref.js");
36
+ const facet_value_label_highlight_cjs_namespaceObject = require("../facet-value-label-highlight/facet-value-label-highlight.cjs");
37
+ const renderCategoryFacetActiveValue = ({ props: { displayValue, numberOfResults, i18n, searchQuery, isLeafValue, setRef } })=>(children)=>{
38
+ const count = numberOfResults.toLocaleString(i18n.language);
39
+ return (0, external_lit_namespaceObject.html)`${(0, keyed_js_namespaceObject.keyed)(displayValue, (0, external_lit_namespaceObject.html)`<li class="contents">
40
+ <span
41
+ part="active-parent ${isLeafValue ? 'leaf-value' : 'node-value'}"
42
+ class="text-primary flex w-full items-center truncate px-2 py-2.5 text-left"
43
+ aria-current="true"
44
+ tabindex="-1"
45
+ ${(0, ref_js_namespaceObject.ref)(setRef)}
46
+ >
47
+ ${(0, facet_value_label_highlight_cjs_namespaceObject.renderFacetValueLabelHighlight)({
48
+ props: {
49
+ displayValue,
50
+ searchQuery,
51
+ isSelected: true
52
+ }
53
+ })}
54
+ <span part="value-count" class="value-count">
55
+ ${i18n.t('between-parentheses', {
56
+ text: count
57
+ })}
58
+ </span>
59
+ </span>
60
+ ${children}
61
+ </li>`)}`;
62
+ };
63
+ exports.renderCategoryFacetActiveValue = __webpack_exports__.renderCategoryFacetActiveValue;
64
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
65
+ "renderCategoryFacetActiveValue"
66
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
67
+ Object.defineProperty(exports, '__esModule', {
68
+ value: true
69
+ });
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ renderCategoryFacetSelectedValue: ()=>renderCategoryFacetSelectedValue
41
+ });
42
+ const external_lit_namespaceObject = require("lit");
43
+ const close_cjs_namespaceObject = require("../../../../images/close.cjs");
44
+ var close_cjs_default = /*#__PURE__*/ __webpack_require__.n(close_cjs_namespaceObject);
45
+ require("../../atomic-icon/atomic-icon.cjs");
46
+ const external_button_cjs_namespaceObject = require("../../button.cjs");
47
+ const renderCategoryFacetSelectedValue = ({ props: { displayValue, label, i18n, onClearFilters } })=>(0, external_lit_namespaceObject.html)`<div part="selected-value" class="mt-3 flex items-center justify-between gap-2">
48
+ <span
49
+ part="selected-value-pill"
50
+ title=${displayValue}
51
+ class="bg-neutral-light truncate rounded-md px-2 py-1 text-sm"
52
+ >${displayValue}</span
53
+ >
54
+ ${(0, external_button_cjs_namespaceObject.renderButton)({
55
+ props: {
56
+ part: 'selected-value-clear-button',
57
+ style: 'text-primary',
58
+ class: 'flex shrink-0 items-center p-1 text-sm',
59
+ ariaLabel: i18n.t('clear-filters-for-facet', {
60
+ count: 1,
61
+ label: i18n.t(label)
62
+ }),
63
+ onClick: onClearFilters
64
+ }
65
+ })((0, external_lit_namespaceObject.html)`<atomic-icon
66
+ part="selected-value-clear-button-icon"
67
+ class="mr-1 h-2 w-2"
68
+ .icon=${close_cjs_default()}
69
+ ></atomic-icon>
70
+ <span>${i18n.t('clear')}</span>`)}
71
+ </div>`;
72
+ exports.renderCategoryFacetSelectedValue = __webpack_exports__.renderCategoryFacetSelectedValue;
73
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
74
+ "renderCategoryFacetSelectedValue"
75
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
76
+ Object.defineProperty(exports, '__esModule', {
77
+ value: true
78
+ });
@@ -33,12 +33,11 @@ __webpack_require__.d(__webpack_exports__, {
33
33
  const external_lit_namespaceObject = require("lit");
34
34
  const facet_value_label_highlight_cjs_namespaceObject = require("../facet-value-label-highlight/facet-value-label-highlight.cjs");
35
35
  const facet_value_link_cjs_namespaceObject = require("../facet-value-link/facet-value-link.cjs");
36
- const renderCategoryFacetValueLink = ({ props: { displayValue, numberOfResults, i18n, onClick, isParent, isSelected, searchQuery, isLeafValue, setRef } })=>(children)=>{
37
- const partNames = [];
38
- if (isParent) partNames.push('active-parent');
39
- else partNames.push(`value-link${isSelected ? ' value-link-selected' : ''}`);
40
- if (isLeafValue) partNames.push('leaf-value');
41
- else partNames.push('node-value');
36
+ const renderCategoryFacetValueLink = ({ props: { displayValue, numberOfResults, i18n, onClick, isSelected, searchQuery, isLeafValue, setRef } })=>(children)=>{
37
+ const partNames = [
38
+ `value-link${isSelected ? ' value-link-selected' : ''}`,
39
+ isLeafValue ? 'leaf-value' : 'node-value'
40
+ ];
42
41
  return (0, external_lit_namespaceObject.html)`${(0, facet_value_link_cjs_namespaceObject.renderFacetValueLink)({
43
42
  props: {
44
43
  displayValue,
@@ -76,9 +76,13 @@ function i18nBackendOptions(atomicInterface) {
76
76
  }
77
77
  };
78
78
  }
79
- function loadTranslations(atomicInterface, language) {
79
+ async function loadTranslations(atomicInterface, language) {
80
+ const { languageUtils } = atomicInterface.i18n.services;
81
+ const languages = languageUtils.toResolveHierarchy(languageUtils.formatLanguageCode(language), false);
82
+ await Promise.all(languages.filter(isI18nLocaleAvailable).map((lng)=>loadTranslationBundle(atomicInterface, lng)));
83
+ }
84
+ function loadTranslationBundle(atomicInterface, lng) {
80
85
  const { i18n } = atomicInterface;
81
- const lng = language.split('-')[0];
82
86
  return new Promise((resolve)=>{
83
87
  new (external_i18next_http_backend_default())(i18n.services, i18nBackendOptions(atomicInterface)).read(lng, i18nTranslationNamespace, (_error, data)=>{
84
88
  if (data) i18n.addResourceBundle(lng, i18nTranslationNamespace, data, true, false);
@@ -53,8 +53,10 @@ class InterfaceController {
53
53
  this.host.updateIconAssetsPath();
54
54
  initEngine();
55
55
  if (this.host.registerFieldsToInclude) this.host.registerFieldsToInclude();
56
- (0, dayjs_locales_cjs_namespaceObject.loadDayjsLocale)(this.host.language || 'en');
57
- await this.i18nPromise;
56
+ await Promise.all([
57
+ this.i18nPromise,
58
+ (0, dayjs_locales_cjs_namespaceObject.loadDayjsLocale)(this.host.language || 'en')
59
+ ]);
58
60
  this.initComponents();
59
61
  }
60
62
  onAnalyticsChange() {
@@ -67,8 +69,10 @@ class InterfaceController {
67
69
  const language = newLanguage ?? this.host.language;
68
70
  const languageWithFallback = language ?? 'en';
69
71
  const { i18n } = this.host;
70
- (0, dayjs_locales_cjs_namespaceObject.loadDayjsLocale)(languageWithFallback);
71
- (0, external_i18n_cjs_namespaceObject.loadTranslations)(this.host, languageWithFallback).then(()=>{
72
+ Promise.all([
73
+ (0, dayjs_locales_cjs_namespaceObject.loadDayjsLocale)(languageWithFallback),
74
+ (0, external_i18n_cjs_namespaceObject.loadTranslations)(this.host, languageWithFallback)
75
+ ]).then(()=>{
72
76
  i18n.changeLanguage(language);
73
77
  });
74
78
  }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ class PagerFitController {
31
+ hostConnected() {
32
+ this.resizeObserver = new ResizeObserver(()=>requestAnimationFrame(()=>this.reset()));
33
+ this.resizeObserver.observe(document.documentElement);
34
+ if (this.host.parentElement) this.resizeObserver.observe(this.host.parentElement);
35
+ }
36
+ hostDisconnected() {
37
+ this.resizeObserver?.disconnect();
38
+ }
39
+ hostUpdated() {
40
+ const root = this.host.shadowRoot;
41
+ const previousButton = root?.querySelector('[part="previous-button"]');
42
+ const nextButton = root?.querySelector('[part="next-button"]');
43
+ const pageButtonCount = root?.querySelectorAll('[part~="page-button"]').length ?? 0;
44
+ const isWrapping = !!previousButton && !!nextButton && nextButton.offsetTop > previousButton.offsetTop;
45
+ if (isWrapping && pageButtonCount > 1) {
46
+ this.maxPages = pageButtonCount - 1;
47
+ queueMicrotask(()=>this.host.requestUpdate());
48
+ }
49
+ }
50
+ getNumberOfPagesToDisplay(numberOfPages) {
51
+ return Math.min(numberOfPages, this.maxPages);
52
+ }
53
+ reset() {
54
+ this.maxPages = 1 / 0;
55
+ this.host.requestUpdate();
56
+ }
57
+ constructor(host){
58
+ this.host = host;
59
+ this.maxPages = 1 / 0;
60
+ host.addController(this);
61
+ }
62
+ }
63
+ __webpack_require__.d(__webpack_exports__, {
64
+ PagerFitController: ()=>PagerFitController
65
+ });
66
+ exports.PagerFitController = __webpack_exports__.PagerFitController;
67
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
68
+ "PagerFitController"
69
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
70
+ Object.defineProperty(exports, '__esModule', {
71
+ value: true
72
+ });
@@ -47,6 +47,7 @@ const keyed_js_namespaceObject = require("lit/directives/keyed.js");
47
47
  const when_js_namespaceObject = require("lit/directives/when.js");
48
48
  const pager_buttons_cjs_namespaceObject = require("../../common/pager/pager-buttons.cjs");
49
49
  const pager_navigation_cjs_namespaceObject = require("../../common/pager/pager-navigation.cjs");
50
+ const pager_fit_controller_cjs_namespaceObject = require("../../common/pager/pager-fit-controller.cjs");
50
51
  const pager_utils_cjs_namespaceObject = require("../../common/pager/pager-utils.cjs");
51
52
  const validate_props_controller_cjs_namespaceObject = require("../../common/validate-props-controller/validate-props-controller.cjs");
52
53
  const bind_state_cjs_namespaceObject = require("../../../decorators/bind-state.cjs");
@@ -80,7 +81,7 @@ class AtomicInsightPager extends external_lit_namespaceObject.LitElement {
80
81
  });
81
82
  }
82
83
  render() {
83
- const pagesRange = (0, pager_utils_cjs_namespaceObject.getCurrentPagesRange)(this.pagerState.currentPage - 1, this.numberOfPages, this.pagerState.maxPage);
84
+ const pagesRange = (0, pager_utils_cjs_namespaceObject.getCurrentPagesRange)(this.pagerState.currentPage - 1, this.pagerFit.getNumberOfPagesToDisplay(this.numberOfPages), this.pagerState.maxPage);
84
85
  return (0, external_lit_namespaceObject.html)`${(0, when_js_namespaceObject.when)(this.pagerState.maxPage > 1, ()=>(0, external_lit_namespaceObject.html)`
85
86
  ${(0, pager_navigation_cjs_namespaceObject.renderPagerNavigation)({
86
87
  props: {
@@ -149,7 +150,7 @@ class AtomicInsightPager extends external_lit_namespaceObject.LitElement {
149
150
  });
150
151
  }
151
152
  constructor(){
152
- super(), this.numberOfPages = 5, this.ariaMessage = new accessibility_utils_cjs_namespaceObject.AriaLiveRegionController(this, 'atomic-insight-pager');
153
+ super(), this.numberOfPages = 5, this.ariaMessage = new accessibility_utils_cjs_namespaceObject.AriaLiveRegionController(this, 'atomic-insight-pager'), this.pagerFit = new pager_fit_controller_cjs_namespaceObject.PagerFitController(this);
153
154
  new validate_props_controller_cjs_namespaceObject.ValidatePropsController(this, ()=>({
154
155
  numberOfPages: this.numberOfPages
155
156
  }), AtomicInsightPager.propsSchema);
@@ -45,13 +45,14 @@ const external_lit_namespaceObject = require("lit");
45
45
  const decorators_js_namespaceObject = require("lit/decorators.js");
46
46
  const map_js_namespaceObject = require("lit/directives/map.js");
47
47
  const when_js_namespaceObject = require("lit/directives/when.js");
48
+ const active_value_cjs_namespaceObject = require("../../common/facets/category-facet/active-value.cjs");
48
49
  const all_categories_button_cjs_namespaceObject = require("../../common/facets/category-facet/all-categories-button.cjs");
49
50
  const children_as_tree_container_cjs_namespaceObject = require("../../common/facets/category-facet/children-as-tree-container.cjs");
50
51
  const parent_as_tree_container_cjs_namespaceObject = require("../../common/facets/category-facet/parent-as-tree-container.cjs");
51
52
  const parent_button_cjs_namespaceObject = require("../../common/facets/category-facet/parent-button.cjs");
52
- const parent_value_link_cjs_namespaceObject = require("../../common/facets/category-facet/parent-value-link.cjs");
53
53
  const search_results_container_cjs_namespaceObject = require("../../common/facets/category-facet/search-results-container.cjs");
54
54
  const search_value_cjs_namespaceObject = require("../../common/facets/category-facet/search-value.cjs");
55
+ const selected_value_cjs_namespaceObject = require("../../common/facets/category-facet/selected-value.cjs");
55
56
  const value_as_tree_container_cjs_namespaceObject = require("../../common/facets/category-facet/value-as-tree-container.cjs");
56
57
  const value_link_cjs_namespaceObject = require("../../common/facets/category-facet/value-link.cjs");
57
58
  const depends_on_cjs_namespaceObject = require("../../common/facets/depends-on.cjs");
@@ -211,6 +212,21 @@ class AtomicCategoryFacet extends external_lit_namespaceObject.LitElement {
211
212
  }
212
213
  });
213
214
  }
215
+ renderSelectedValue() {
216
+ const activeValue = this.facetState.selectedValueAncestry.at(-1);
217
+ if (!activeValue) return external_lit_namespaceObject.nothing;
218
+ return (0, selected_value_cjs_namespaceObject.renderCategoryFacetSelectedValue)({
219
+ props: {
220
+ displayValue: (0, field_utils_cjs_namespaceObject.getFieldValueCaption)(this.field, activeValue.value, this.bindings.i18n),
221
+ label: this.label,
222
+ i18n: this.bindings.i18n,
223
+ onClearFilters: ()=>{
224
+ this.focusTargets.activeValueFocus.focusAfterSearch();
225
+ this.facet.deselectAll();
226
+ }
227
+ }
228
+ });
229
+ }
214
230
  renderValuesTree(valuesAsTrees, isRoot) {
215
231
  if (!this.hasParents) return this.renderChildren();
216
232
  if (isRoot) return (0, value_as_tree_container_cjs_namespaceObject.renderCategoryFacetTreeValueContainer)()((0, external_lit_namespaceObject.html)`
@@ -255,16 +271,12 @@ class AtomicCategoryFacet extends external_lit_namespaceObject.LitElement {
255
271
  const activeParent = valuesAsTrees[0];
256
272
  const activeParentDisplayValue = (0, field_utils_cjs_namespaceObject.getFieldValueCaption)(this.field, activeParent.value, this.bindings.i18n);
257
273
  return (0, external_lit_namespaceObject.html)`
258
- ${(0, parent_value_link_cjs_namespaceObject.renderCategoryFacetParentValueLink)({
274
+ ${(0, active_value_cjs_namespaceObject.renderCategoryFacetActiveValue)({
259
275
  props: {
260
276
  displayValue: activeParentDisplayValue,
261
277
  numberOfResults: activeParent.numberOfResults,
262
278
  i18n: this.bindings.i18n,
263
279
  isLeafValue: activeParent.isLeafValue,
264
- onClick: ()=>{
265
- this.focusTargets.activeValueFocus.focusAfterSearch();
266
- this.facet.deselectAll();
267
- },
268
280
  searchQuery: this.facetState.facetSearch.query,
269
281
  setRef: (el)=>{
270
282
  this.focusTargets.activeValueFocus.setTarget(el);
@@ -287,7 +299,6 @@ class AtomicCategoryFacet extends external_lit_namespaceObject.LitElement {
287
299
  this.focusTargets.activeValueFocus.focusAfterSearch();
288
300
  this.facet.toggleSelect(facetValue);
289
301
  },
290
- isParent: false,
291
302
  isSelected,
292
303
  searchQuery: this.facetState.facetSearch.query,
293
304
  isLeafValue: facetValue.isLeafValue,
@@ -369,7 +380,7 @@ class AtomicCategoryFacet extends external_lit_namespaceObject.LitElement {
369
380
  return (0, facet_container_cjs_namespaceObject.renderFacetContainer)()((0, external_lit_namespaceObject.html)`
370
381
  ${this.renderHeader()}
371
382
  ${(0, when_js_namespaceObject.when)(!this.isCollapsed, ()=>(0, external_lit_namespaceObject.html)`
372
- ${this.renderSearchInput()}
383
+ ${this.renderSearchInput()} ${this.renderSelectedValue()}
373
384
  ${(0, when_js_namespaceObject.when)((0, facet_search_utils_cjs_namespaceObject.shouldDisplaySearchResults)(facetSearch), ()=>(0, external_lit_namespaceObject.html)`
374
385
  ${(0, when_js_namespaceObject.when)(facetSearch.values.length > 0, ()=>(0, facet_values_group_cjs_namespaceObject.renderFacetValuesGroup)({
375
386
  props: {
@@ -48,6 +48,7 @@ const when_js_namespaceObject = require("lit/directives/when.js");
48
48
  const store_cjs_namespaceObject = require("../../common/interface/store.cjs");
49
49
  const pager_buttons_cjs_namespaceObject = require("../../common/pager/pager-buttons.cjs");
50
50
  const pager_navigation_cjs_namespaceObject = require("../../common/pager/pager-navigation.cjs");
51
+ const pager_fit_controller_cjs_namespaceObject = require("../../common/pager/pager-fit-controller.cjs");
51
52
  const pager_utils_cjs_namespaceObject = require("../../common/pager/pager-utils.cjs");
52
53
  const validate_props_controller_cjs_namespaceObject = require("../../common/validate-props-controller/validate-props-controller.cjs");
53
54
  const bind_state_cjs_namespaceObject = require("../../../decorators/bind-state.cjs");
@@ -85,7 +86,7 @@ class AtomicPager extends (0, bindings_mixin_cjs_namespaceObject.InitializeBindi
85
86
  });
86
87
  }
87
88
  render() {
88
- const pagesRange = (0, pager_utils_cjs_namespaceObject.getCurrentPagesRange)(this.pagerState.currentPage - 1, this.numberOfPages, this.pagerState.maxPage - 1);
89
+ const pagesRange = (0, pager_utils_cjs_namespaceObject.getCurrentPagesRange)(this.pagerState.currentPage - 1, this.pagerFit.getNumberOfPagesToDisplay(this.numberOfPages), this.pagerState.maxPage - 1);
89
90
  return (0, external_lit_namespaceObject.html)`${(0, when_js_namespaceObject.when)(this.pagerState.maxPage > 1 && this.isAppLoaded, ()=>(0, external_lit_namespaceObject.html)` ${(0, pager_navigation_cjs_namespaceObject.renderPagerNavigation)({
90
91
  props: {
91
92
  i18n: this.bindings.i18n
@@ -150,7 +151,7 @@ class AtomicPager extends (0, bindings_mixin_cjs_namespaceObject.InitializeBindi
150
151
  });
151
152
  }
152
153
  constructor(){
153
- super(), this.isAppLoaded = false, this.numberOfPages = 5, this.previousButtonIcon = arrow_left_rounded_cjs_default(), this.nextButtonIcon = arrow_right_rounded_cjs_default(), this.ariaMessage = new accessibility_utils_cjs_namespaceObject.AriaLiveRegionController(this, 'atomic-pager');
154
+ super(), this.isAppLoaded = false, this.numberOfPages = 5, this.previousButtonIcon = arrow_left_rounded_cjs_default(), this.nextButtonIcon = arrow_right_rounded_cjs_default(), this.ariaMessage = new accessibility_utils_cjs_namespaceObject.AriaLiveRegionController(this, 'atomic-pager'), this.pagerFit = new pager_fit_controller_cjs_namespaceObject.PagerFitController(this);
154
155
  new validate_props_controller_cjs_namespaceObject.ValidatePropsController(this, ()=>({
155
156
  numberOfPages: this.numberOfPages
156
157
  }), AtomicPager.propsSchema);
@@ -45,8 +45,8 @@ const external_dayjs_namespaceObject = require("dayjs");
45
45
  var external_dayjs_default = /*#__PURE__*/ __webpack_require__.n(external_dayjs_namespaceObject);
46
46
  const calendar_namespaceObject = require("dayjs/plugin/calendar");
47
47
  var calendar_default = /*#__PURE__*/ __webpack_require__.n(calendar_namespaceObject);
48
- const updateLocale_namespaceObject = require("dayjs/plugin/updateLocale");
49
- var updateLocale_default = /*#__PURE__*/ __webpack_require__.n(updateLocale_namespaceObject);
48
+ const localizedFormat_namespaceObject = require("dayjs/plugin/localizedFormat");
49
+ var localizedFormat_default = /*#__PURE__*/ __webpack_require__.n(localizedFormat_namespaceObject);
50
50
  const external_lit_namespaceObject = require("lit");
51
51
  const decorators_js_namespaceObject = require("lit/decorators.js");
52
52
  const when_js_namespaceObject = require("lit/directives/when.js");
@@ -67,7 +67,7 @@ function _ts_metadata(metadataKey, metadataValue) {
67
67
  if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(metadataKey, metadataValue);
68
68
  }
69
69
  external_dayjs_default().extend(calendar_default());
70
- external_dayjs_default().extend(updateLocale_default());
70
+ external_dayjs_default().extend(localizedFormat_default());
71
71
  class AtomicResultDate extends (0, light_dom_cjs_namespaceObject.LightDomMixin)(external_lit_namespaceObject.LitElement) {
72
72
  initialize() {
73
73
  if (!this.result && this.resultController.item) {
@@ -95,19 +95,14 @@ class AtomicResultDate extends (0, light_dom_cjs_namespaceObject.LightDomMixin)(
95
95
  this.error = new Error(`Field "${this.field}" does not contain a valid date.`);
96
96
  return null;
97
97
  }
98
- if (this.relativeTime) {
99
- external_dayjs_default().updateLocale(this.bindings.interfaceElement.language, {
100
- calendar: {
101
- sameDay: this.bindings.i18n.t('calendar-same-day'),
102
- nextDay: this.bindings.i18n.t('calendar-next-day'),
103
- nextWeek: this.bindings.i18n.t('calendar-next-week'),
104
- lastDay: this.bindings.i18n.t('calendar-last-day'),
105
- lastWeek: this.bindings.i18n.t('calendar-last-week'),
106
- sameElse: this.format
107
- }
108
- });
109
- return parsedValue.calendar();
110
- }
98
+ if (this.relativeTime) return parsedValue.calendar(null, {
99
+ sameDay: this.bindings.i18n.t('calendar-same-day'),
100
+ nextDay: this.bindings.i18n.t('calendar-next-day'),
101
+ nextWeek: this.bindings.i18n.t('calendar-next-week'),
102
+ lastDay: this.bindings.i18n.t('calendar-last-day'),
103
+ lastWeek: this.bindings.i18n.t('calendar-last-week'),
104
+ sameElse: this.format
105
+ });
111
106
  return parsedValue.format(this.format);
112
107
  }
113
108
  constructor(){
@@ -89,7 +89,7 @@ class AtomicResultsPerPage extends (0, bindings_mixin_cjs_namespaceObject.Initia
89
89
  if (!this.searchStatusState) return (0, external_lit_namespaceObject.html)``;
90
90
  return (0, external_lit_namespaceObject.html)`
91
91
  ${(0, when_js_namespaceObject.when)(!this.searchStatusState.hasError && this.isAppLoaded && this.searchStatusState.hasResults, ()=>(0, external_lit_namespaceObject.html)`
92
- <div class="flex items-center">
92
+ <div class="flex flex-wrap items-center">
93
93
  ${(0, label_cjs_namespaceObject.renderLabel)()((0, external_lit_namespaceObject.html)`${this.label}`)}
94
94
  ${(0, fieldset_group_cjs_namespaceObject.renderFieldsetGroup)({
95
95
  props: {