@gooddata/sdk-ui-filters 11.15.0-alpha.0 → 11.15.0-alpha.2

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 (104) hide show
  1. package/esm/DateFilter/DateFilterBody/CalendarTypeTabs.d.ts +12 -0
  2. package/esm/DateFilter/DateFilterBody/CalendarTypeTabs.d.ts.map +1 -0
  3. package/esm/DateFilter/DateFilterBody/CalendarTypeTabs.js +22 -0
  4. package/esm/DateFilter/DateFilterBody/CalendarTypeTabs.js.map +1 -0
  5. package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.d.ts.map +1 -1
  6. package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.js +16 -1
  7. package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.js.map +1 -1
  8. package/esm/DateFilter/DateFilterBody/DateFilterBodyContentFiltered.d.ts +7 -2
  9. package/esm/DateFilter/DateFilterBody/DateFilterBodyContentFiltered.d.ts.map +1 -1
  10. package/esm/DateFilter/DateFilterBody/DateFilterBodyContentFiltered.js +4 -3
  11. package/esm/DateFilter/DateFilterBody/DateFilterBodyContentFiltered.js.map +1 -1
  12. package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.d.ts.map +1 -1
  13. package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.js +10 -1
  14. package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.js.map +1 -1
  15. package/esm/DateFilter/DateFilterBody/DateFilterBodyRedesigned.d.ts.map +1 -1
  16. package/esm/DateFilter/DateFilterBody/DateFilterBodyRedesigned.js +30 -6
  17. package/esm/DateFilter/DateFilterBody/DateFilterBodyRedesigned.js.map +1 -1
  18. package/esm/DateFilter/DateFilterBody/RelativePresetFilterItems.d.ts.map +1 -1
  19. package/esm/DateFilter/DateFilterBody/RelativePresetFilterItems.js +3 -0
  20. package/esm/DateFilter/DateFilterBody/RelativePresetFilterItems.js.map +1 -1
  21. package/esm/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.js +2 -2
  22. package/esm/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.js.map +1 -1
  23. package/esm/DateFilter/DateFilterTextLocalized/DateFilterTextLocalized.d.ts +10 -2
  24. package/esm/DateFilter/DateFilterTextLocalized/DateFilterTextLocalized.d.ts.map +1 -1
  25. package/esm/DateFilter/DateFilterTextLocalized/DateFilterTextLocalized.js +4 -4
  26. package/esm/DateFilter/DateFilterTextLocalized/DateFilterTextLocalized.js.map +1 -1
  27. package/esm/DateFilter/DynamicSelect/utils.d.ts +3 -0
  28. package/esm/DateFilter/DynamicSelect/utils.d.ts.map +1 -1
  29. package/esm/DateFilter/DynamicSelect/utils.js +6 -0
  30. package/esm/DateFilter/DynamicSelect/utils.js.map +1 -1
  31. package/esm/DateFilter/RelativeDateFilterForm/GranularityTabs.d.ts.map +1 -1
  32. package/esm/DateFilter/RelativeDateFilterForm/GranularityTabs.js +12 -9
  33. package/esm/DateFilter/RelativeDateFilterForm/GranularityTabs.js.map +1 -1
  34. package/esm/DateFilter/constants/i18n.d.ts +26 -0
  35. package/esm/DateFilter/constants/i18n.d.ts.map +1 -1
  36. package/esm/DateFilter/constants/i18n.js +25 -0
  37. package/esm/DateFilter/constants/i18n.js.map +1 -1
  38. package/esm/DateFilter/index.d.ts +9 -4
  39. package/esm/DateFilter/index.d.ts.map +1 -1
  40. package/esm/DateFilter/index.js +1 -0
  41. package/esm/DateFilter/index.js.map +1 -1
  42. package/esm/DateFilter/utils/Translations/DateFilterTitle.d.ts +5 -4
  43. package/esm/DateFilter/utils/Translations/DateFilterTitle.d.ts.map +1 -1
  44. package/esm/DateFilter/utils/Translations/DateFilterTitle.js +17 -15
  45. package/esm/DateFilter/utils/Translations/DateFilterTitle.js.map +1 -1
  46. package/esm/DateFilter/utils/presetFilterUtils.d.ts +116 -0
  47. package/esm/DateFilter/utils/presetFilterUtils.d.ts.map +1 -0
  48. package/esm/DateFilter/utils/presetFilterUtils.js +197 -0
  49. package/esm/DateFilter/utils/presetFilterUtils.js.map +1 -0
  50. package/esm/MeasureValueFilter/AttributePicker.d.ts +12 -2
  51. package/esm/MeasureValueFilter/AttributePicker.d.ts.map +1 -1
  52. package/esm/MeasureValueFilter/AttributePicker.js +94 -68
  53. package/esm/MeasureValueFilter/AttributePicker.js.map +1 -1
  54. package/esm/MeasureValueFilter/DateDatasetPickerItem.d.ts +31 -0
  55. package/esm/MeasureValueFilter/DateDatasetPickerItem.d.ts.map +1 -0
  56. package/esm/MeasureValueFilter/DateDatasetPickerItem.js +26 -0
  57. package/esm/MeasureValueFilter/DateDatasetPickerItem.js.map +1 -0
  58. package/esm/MeasureValueFilter/DimensionalitySection.d.ts +13 -0
  59. package/esm/MeasureValueFilter/DimensionalitySection.d.ts.map +1 -1
  60. package/esm/MeasureValueFilter/DimensionalitySection.js +38 -28
  61. package/esm/MeasureValueFilter/DimensionalitySection.js.map +1 -1
  62. package/esm/MeasureValueFilter/Dropdown.d.ts +3 -0
  63. package/esm/MeasureValueFilter/Dropdown.d.ts.map +1 -1
  64. package/esm/MeasureValueFilter/Dropdown.js +2 -2
  65. package/esm/MeasureValueFilter/Dropdown.js.map +1 -1
  66. package/esm/MeasureValueFilter/DropdownBody.d.ts +3 -0
  67. package/esm/MeasureValueFilter/DropdownBody.d.ts.map +1 -1
  68. package/esm/MeasureValueFilter/DropdownBody.js +17 -7
  69. package/esm/MeasureValueFilter/DropdownBody.js.map +1 -1
  70. package/esm/MeasureValueFilter/MeasureValueFilterDropdown.d.ts.map +1 -1
  71. package/esm/MeasureValueFilter/MeasureValueFilterDropdown.js +11 -21
  72. package/esm/MeasureValueFilter/MeasureValueFilterDropdown.js.map +1 -1
  73. package/esm/MeasureValueFilter/OperatorDropdown.d.ts.map +1 -1
  74. package/esm/MeasureValueFilter/OperatorDropdown.js +2 -2
  75. package/esm/MeasureValueFilter/OperatorDropdown.js.map +1 -1
  76. package/esm/MeasureValueFilter/typings.d.ts +46 -1
  77. package/esm/MeasureValueFilter/typings.d.ts.map +1 -1
  78. package/esm/MeasureValueFilter/typings.js.map +1 -1
  79. package/esm/MeasureValueFilter/useAttributePickerItemsData.d.ts +25 -0
  80. package/esm/MeasureValueFilter/useAttributePickerItemsData.d.ts.map +1 -0
  81. package/esm/MeasureValueFilter/useAttributePickerItemsData.js +86 -0
  82. package/esm/MeasureValueFilter/useAttributePickerItemsData.js.map +1 -0
  83. package/esm/MeasureValueFilter/useAttributePickerListboxItems.d.ts +36 -0
  84. package/esm/MeasureValueFilter/useAttributePickerListboxItems.d.ts.map +1 -0
  85. package/esm/MeasureValueFilter/useAttributePickerListboxItems.js +120 -0
  86. package/esm/MeasureValueFilter/useAttributePickerListboxItems.js.map +1 -0
  87. package/esm/index.d.ts +2 -2
  88. package/esm/index.d.ts.map +1 -1
  89. package/esm/index.js +1 -1
  90. package/esm/index.js.map +1 -1
  91. package/esm/internal.d.ts +1 -0
  92. package/esm/internal.d.ts.map +1 -1
  93. package/esm/internal.js +2 -1
  94. package/esm/internal.js.map +1 -1
  95. package/esm/locales.d.ts.map +1 -1
  96. package/esm/locales.js +40 -0
  97. package/esm/locales.js.map +1 -1
  98. package/esm/sdk-ui-filters.d.ts +162 -3
  99. package/package.json +10 -10
  100. package/styles/css/main.css +96 -6
  101. package/styles/css/main.css.map +1 -1
  102. package/styles/css/measureValueFilter.css +96 -6
  103. package/styles/css/measureValueFilter.css.map +1 -1
  104. package/styles/scss/measureValueFilter.scss +116 -6
@@ -0,0 +1,197 @@
1
+ // (C) 2025 GoodData Corporation
2
+ /**
3
+ * Granularities for the Standard tab
4
+ */
5
+ const STANDARD_GRANULARITIES = [
6
+ "GDC.time.year",
7
+ "GDC.time.quarter",
8
+ "GDC.time.month",
9
+ "GDC.time.week_us",
10
+ "GDC.time.date",
11
+ "GDC.time.hour",
12
+ "GDC.time.minute",
13
+ ];
14
+ /**
15
+ * Fiscal-only granularities (used to detect if fiscal presets are available)
16
+ */
17
+ const FISCAL_ONLY_GRANULARITIES = [
18
+ "GDC.time.fiscal_year",
19
+ "GDC.time.fiscal_quarter",
20
+ "GDC.time.fiscal_month",
21
+ ];
22
+ /**
23
+ * Granularities for the Fiscal tab (fiscal year/quarter/month + shared week/day/hour/minute)
24
+ */
25
+ const FISCAL_TAB_GRANULARITIES = [
26
+ "GDC.time.fiscal_year",
27
+ "GDC.time.fiscal_quarter",
28
+ "GDC.time.fiscal_month",
29
+ "GDC.time.week_us",
30
+ "GDC.time.date",
31
+ "GDC.time.hour",
32
+ "GDC.time.minute",
33
+ ];
34
+ /**
35
+ * Get fiscal tabs configuration based on available presets.
36
+ * @param presets - The relative presets option group to check, or undefined
37
+ * @returns Configuration object with hasFiscal, hasStandard, and showTabs flags
38
+ * @alpha
39
+ */
40
+ export function getFiscalTabsConfig(presets) {
41
+ const hasFiscal = presets ? FISCAL_ONLY_GRANULARITIES.some((g) => g in presets) : false;
42
+ const hasStandard = presets ? STANDARD_GRANULARITIES.some((g) => g in presets) : false;
43
+ const showTabs = hasFiscal && hasStandard;
44
+ return { hasFiscal, hasStandard, showTabs };
45
+ }
46
+ /**
47
+ * Check if the presets contain any fiscal granularities.
48
+ * @param presets - The relative presets option group to check
49
+ * @returns true if any fiscal granularities are present
50
+ * @alpha
51
+ */
52
+ export function hasFiscalPresets(presets) {
53
+ return FISCAL_ONLY_GRANULARITIES.some((g) => g in presets);
54
+ }
55
+ /**
56
+ * Check if the presets contain any standard granularities.
57
+ * @param presets - The relative presets option group to check
58
+ * @returns true if any standard granularities are present
59
+ * @alpha
60
+ */
61
+ export function hasStandardPresets(presets) {
62
+ return STANDARD_GRANULARITIES.some((g) => g in presets);
63
+ }
64
+ function filterPresets(presets, granularities) {
65
+ // Cast needed: DateFilterRelativeOptionGroup uses a mapped type where each granularity
66
+ // has its own specific preset type, but we're building the object dynamically
67
+ return granularities.reduce((result, g) => {
68
+ if (presets[g]) {
69
+ result[g] = presets[g];
70
+ }
71
+ return result;
72
+ }, {});
73
+ }
74
+ /**
75
+ * Filter presets for the Standard tab.
76
+ * @param presets - The relative presets option group to filter
77
+ * @returns Filtered presets containing only standard granularities
78
+ * @alpha
79
+ */
80
+ export function filterStandardPresets(presets) {
81
+ return filterPresets(presets, STANDARD_GRANULARITIES);
82
+ }
83
+ /**
84
+ * Filter presets for the Fiscal tab.
85
+ * @param presets - The relative presets option group to filter
86
+ * @returns Filtered presets containing fiscal granularities and shared granularities (week, day, hour, minute)
87
+ * @alpha
88
+ */
89
+ export function filterFiscalPresets(presets) {
90
+ return filterPresets(presets, FISCAL_TAB_GRANULARITIES);
91
+ }
92
+ /**
93
+ * Determine which tab should be selected based on the selected preset's granularity.
94
+ * @param preset - The currently selected date filter option
95
+ * @returns "fiscal" if the preset uses a fiscal granularity, otherwise "standard"
96
+ * @alpha
97
+ */
98
+ export function getTabForPreset(preset) {
99
+ const granularity = "granularity" in preset ? preset.granularity : undefined;
100
+ return FISCAL_ONLY_GRANULARITIES.some((g) => g === granularity) ? "fiscal" : "standard";
101
+ }
102
+ /**
103
+ * Check if a granularity is a fiscal granularity.
104
+ * @param granularity - The granularity to check
105
+ * @returns true if the granularity is fiscal (fiscal_year, fiscal_quarter, or fiscal_month)
106
+ * @alpha
107
+ */
108
+ export function isFiscalGranularity(granularity) {
109
+ return FISCAL_ONLY_GRANULARITIES.includes(granularity);
110
+ }
111
+ /**
112
+ * Standard granularities that have fiscal equivalents.
113
+ * Used for filtering granularities when switching between standard/fiscal tabs.
114
+ * @internal
115
+ */
116
+ export const STANDARD_GRANULARITIES_WITH_FISCAL_EQUIVALENT = [
117
+ "GDC.time.year",
118
+ "GDC.time.quarter",
119
+ "GDC.time.month",
120
+ ];
121
+ /**
122
+ * Mapping from standard granularities to their fiscal equivalents.
123
+ * @internal
124
+ */
125
+ export const STANDARD_TO_FISCAL_GRANULARITY = {
126
+ "GDC.time.year": "GDC.time.fiscal_year",
127
+ "GDC.time.quarter": "GDC.time.fiscal_quarter",
128
+ "GDC.time.month": "GDC.time.fiscal_month",
129
+ };
130
+ /**
131
+ * Mapping from fiscal granularities to their standard equivalents.
132
+ * @internal
133
+ */
134
+ export const FISCAL_TO_STANDARD_GRANULARITY = {
135
+ "GDC.time.fiscal_year": "GDC.time.year",
136
+ "GDC.time.fiscal_quarter": "GDC.time.quarter",
137
+ "GDC.time.fiscal_month": "GDC.time.month",
138
+ };
139
+ /**
140
+ * Filter granularities for the standard tab view.
141
+ * Excludes all fiscal granularities.
142
+ * @param granularities - Available granularities to filter
143
+ * @returns Granularities suitable for standard tab
144
+ * @internal
145
+ */
146
+ export function filterStandardGranularities(granularities) {
147
+ return granularities.filter((g) => !isFiscalGranularity(g));
148
+ }
149
+ /**
150
+ * Filter granularities for the fiscal tab view.
151
+ * Includes fiscal granularities and shared granularities (week, day, hour, minute).
152
+ * @param granularities - Available granularities to filter
153
+ * @returns Granularities suitable for fiscal tab
154
+ * @internal
155
+ */
156
+ export function filterFiscalGranularities(granularities) {
157
+ return granularities.filter((g) => isFiscalGranularity(g) || !STANDARD_GRANULARITIES_WITH_FISCAL_EQUIVALENT.includes(g));
158
+ }
159
+ /**
160
+ * Ensures the granularity in a relative filter option is compatible with the available granularities.
161
+ * If the current granularity is not available, maps it to an equivalent or picks the first available.
162
+ * @param filterOption - The filter option to check/correct
163
+ * @param availableGranularities - List of available granularities
164
+ * @param fiscalFirst - Whether to prefer fiscal granularities when mapping
165
+ * @returns The filter option with a compatible granularity
166
+ * @internal
167
+ */
168
+ export function ensureCompatibleGranularity(filterOption, availableGranularities, fiscalFirst) {
169
+ const currentGranularity = filterOption.granularity;
170
+ // If current granularity is available, no change needed
171
+ if (currentGranularity && availableGranularities.includes(currentGranularity)) {
172
+ return filterOption;
173
+ }
174
+ // Try to map to equivalent granularity
175
+ let newGranularity;
176
+ let isEquivalentMapping = false;
177
+ if (currentGranularity) {
178
+ const mapping = fiscalFirst ? STANDARD_TO_FISCAL_GRANULARITY : FISCAL_TO_STANDARD_GRANULARITY;
179
+ newGranularity = mapping[currentGranularity];
180
+ // Check if we found an equivalent that's available
181
+ isEquivalentMapping = !!newGranularity && availableGranularities.includes(newGranularity);
182
+ }
183
+ // If mapping didn't work or no current granularity, use first available
184
+ if (!newGranularity || !availableGranularities.includes(newGranularity)) {
185
+ newGranularity = availableGranularities[0];
186
+ }
187
+ // Only clear from/to if this is NOT an equivalent mapping
188
+ // Equivalent mappings (month↔fiscal_month, etc.) preserve the same period length,
189
+ // so the from/to values remain semantically valid
190
+ return {
191
+ ...filterOption,
192
+ granularity: newGranularity,
193
+ from: isEquivalentMapping ? filterOption.from : undefined,
194
+ to: isEquivalentMapping ? filterOption.to : undefined,
195
+ };
196
+ }
197
+ //# sourceMappingURL=presetFilterUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presetFilterUtils.js","sourceRoot":"","sources":["../../../src/DateFilter/utils/presetFilterUtils.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,19 @@
1
1
  import { type IDimensionalityItem } from "./typings.js";
2
2
  interface IAttributePickerProps {
3
3
  /**
4
- * Available items that can be added (items from insight that are not in filter dimensionality).
4
+ * Available items from the current visualization (bucket-based dimensionality).
5
+ * These are already filtered to only include items that can be added.
5
6
  */
6
- availableItems: IDimensionalityItem[];
7
+ availableInsightItems: IDimensionalityItem[];
8
+ /**
9
+ * Available items from catalog (validated via computeValidObjects).
10
+ * These are already filtered to only include items that can be added.
11
+ */
12
+ availableCatalogItems: IDimensionalityItem[];
13
+ /**
14
+ * Whether catalog dimensionality is currently being loaded.
15
+ */
16
+ isLoadingCatalogDimensionality?: boolean;
7
17
  /**
8
18
  * Callback when items are added.
9
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AttributePicker.d.ts","sourceRoot":"","sources":["../../src/MeasureValueFilter/AttributePicker.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAgCxD,UAAU,qBAAqB;IAC3B;;OAEG;IACH,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC;;OAEG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IAC9C;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,aAAa,EAAE,WAAW,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,6DA0P1B,CAAC"}
1
+ {"version":3,"file":"AttributePicker.d.ts","sourceRoot":"","sources":["../../src/MeasureValueFilter/AttributePicker.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA+BjF,UAAU,qBAAqB;IAC3B;;;OAGG;IACH,qBAAqB,EAAE,mBAAmB,EAAE,CAAC;IAC7C;;;OAGG;IACH,qBAAqB,EAAE,mBAAmB,EAAE,CAAC;IAC7C;;OAEG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC;;OAEG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IAC9C;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,aAAa,EAAE,WAAW,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,6DAwQ1B,CAAC"}
@@ -1,31 +1,43 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2025 GoodData Corporation
3
3
  import { memo, useCallback, useId, useMemo, useState } from "react";
4
4
  import { useIntl } from "react-intl";
5
- import { isIdentifierRef, isLocalIdRef, isUriRef } from "@gooddata/sdk-model";
6
- import { Input, Overlay, UiButton, UiButtonSegmentedControl, UiCheckbox, UiIcon, UiIconButton, UiListbox, } from "@gooddata/sdk-ui-kit";
5
+ import { isIdentifierRef, isLocalIdRef, isUriRef, objRefToString } from "@gooddata/sdk-model";
6
+ import { Input, Overlay, UiButtonSegmentedControl, UiIcon, UiIconButton, UiListbox, } from "@gooddata/sdk-ui-kit";
7
+ import { isDateDimensionalityItem, useAttributePickerItemsData } from "./useAttributePickerItemsData.js";
8
+ import { useAttributePickerListboxItems, } from "./useAttributePickerListboxItems.js";
7
9
  function AttributePickerItemComponent({ item, isFocused, isCompact, onSelect, }) {
8
- const { dimensionalityItem, isChecked } = item.data;
10
+ const { dimensionalityItem } = item.data;
9
11
  const isDateItem = dimensionalityItem.type === "chronologicalDate" || dimensionalityItem.type === "genericDate";
10
12
  const iconType = isDateItem ? "date" : "ldmAttribute";
11
13
  const iconColor = isDateItem ? "primary" : "warning";
12
- return (_jsxs("div", { className: `gd-ui-kit-listbox__item gd-mvf-attribute-picker-item${isFocused ? " gd-ui-kit-listbox__item--isFocused" : ""}${isCompact ? " gd-ui-kit-listbox__item--isCompact" : ""}`, onClick: onSelect, "data-object-type": dimensionalityItem.type ?? "attribute", children: [_jsx(UiCheckbox, { checked: isChecked, preventDefault: true }), _jsx(UiIcon, { type: iconType, size: 20, color: iconColor, ariaHidden: true }), _jsx("span", { className: "gd-ui-kit-listbox__item-title", children: dimensionalityItem.title })] }));
14
+ return (_jsxs("div", { className: `gd-ui-kit-listbox__item gd-mvf-attribute-picker-item${isFocused ? " gd-ui-kit-listbox__item--isFocused" : ""}${isCompact ? " gd-ui-kit-listbox__item--isCompact" : ""}`, onClick: onSelect, "data-object-type": dimensionalityItem.type ?? "attribute", children: [_jsx(UiIcon, { type: iconType, size: 18, color: iconColor, ariaHidden: true }), _jsx("span", { className: "gd-ui-kit-listbox__item-title", children: dimensionalityItem.title })] }));
13
15
  }
14
16
  /**
15
17
  * @internal
16
18
  * AttributePicker dialog for selecting dimensionality items to add to the filter.
17
19
  */
18
- export const AttributePicker = memo(function AttributePicker({ availableItems, onAdd, onCancel, anchorElement, }) {
20
+ export const AttributePicker = memo(function AttributePicker({ availableInsightItems, availableCatalogItems, isLoadingCatalogDimensionality, onAdd, onCancel, anchorElement, }) {
19
21
  const intl = useIntl();
20
22
  const listboxId = useId();
21
- const [selectedIds, setSelectedIds] = useState(new Set());
22
23
  const [searchString, setSearchString] = useState("");
23
24
  const [typeFilter, setTypeFilter] = useState("attribute");
25
+ const [selectedDateDatasetKey, setSelectedDateDatasetKey] = useState(undefined);
26
+ const [isDateDatasetDropdownOpen, setIsDateDatasetDropdownOpen] = useState(false);
27
+ const availableItems = useMemo(() => {
28
+ return [...availableInsightItems, ...availableCatalogItems];
29
+ }, [availableInsightItems, availableCatalogItems]);
30
+ // While catalog is still loading (and we have not received any catalog items yet),
31
+ // decide which tabs to show purely from insight items.
32
+ const itemsForTypeDetection = useMemo(() => {
33
+ const isCatalogNotLoadedYet = (availableCatalogItems?.length ?? 0) === 0 && !!isLoadingCatalogDimensionality;
34
+ return isCatalogNotLoadedYet ? availableInsightItems : availableItems;
35
+ }, [availableCatalogItems, isLoadingCatalogDimensionality, availableInsightItems, availableItems]);
24
36
  // Check if we have items of each type
25
37
  const { hasAttributes, hasDates } = useMemo(() => {
26
38
  let hasAttributes = false;
27
39
  let hasDates = false;
28
- for (const item of availableItems) {
40
+ for (const item of itemsForTypeDetection) {
29
41
  const isDateItem = item.type === "chronologicalDate" || item.type === "genericDate";
30
42
  if (isDateItem) {
31
43
  hasDates = true;
@@ -37,9 +49,16 @@ export const AttributePicker = memo(function AttributePicker({ availableItems, o
37
49
  break;
38
50
  }
39
51
  return { hasAttributes, hasDates };
40
- }, [availableItems]);
41
- // Only show type filter when both types exist
52
+ }, [itemsForTypeDetection]);
53
+ // Show type filter only when both tabs would be meaningful.
54
+ // In particular, hide the Date tab when there are no date attributes available.
42
55
  const showTypeFilter = hasAttributes && hasDates;
56
+ // When only one type exists, avoid filtering out everything by forcing the effective type.
57
+ const effectiveTypeFilter = showTypeFilter
58
+ ? typeFilter
59
+ : hasDates
60
+ ? "date"
61
+ : "attribute";
43
62
  const handleSearch = useCallback((value) => {
44
63
  setSearchString(String(value));
45
64
  }, []);
@@ -61,61 +80,62 @@ export const AttributePicker = memo(function AttributePicker({ availableItems, o
61
80
  }
62
81
  return String(ref);
63
82
  }, []);
64
- const handleItemToggle = useCallback((item) => {
65
- const itemId = item.id;
66
- setSelectedIds((prev) => {
67
- const newSet = new Set(prev);
68
- if (newSet.has(itemId)) {
69
- newSet.delete(itemId);
83
+ const handleItemSelect = useCallback((item) => {
84
+ const selectedItem = item.data.dimensionalityItem;
85
+ onAdd([selectedItem]);
86
+ }, [onAdd]);
87
+ const dateDatasetOptions = useMemo(() => {
88
+ const optionsMap = new Map();
89
+ // Build options from all date items (ignoring search) so the dataset selector is stable while typing.
90
+ [...availableInsightItems, ...availableCatalogItems]
91
+ .filter(isDateDimensionalityItem)
92
+ .forEach((item) => {
93
+ if (!item.dataset) {
94
+ return;
70
95
  }
71
- else {
72
- newSet.add(itemId);
73
- }
74
- return newSet;
96
+ const key = objRefToString(item.dataset.identifier);
97
+ optionsMap.set(key, item.dataset.title);
75
98
  });
76
- }, []);
77
- const handleAdd = useCallback(() => {
78
- const itemsToAdd = availableItems.filter((item) => selectedIds.has(getItemId(item)));
79
- onAdd(itemsToAdd);
80
- }, [availableItems, selectedIds, getItemId, onAdd]);
81
- const isAddDisabled = selectedIds.size === 0;
82
- const filteredItems = useMemo(() => {
83
- let items = availableItems;
84
- // Filter by type when both types exist
85
- if (showTypeFilter) {
86
- items = items.filter((item) => {
87
- const isDateItem = item.type === "chronologicalDate" || item.type === "genericDate";
88
- return typeFilter === "date" ? isDateItem : !isDateItem;
89
- });
99
+ return Array.from(optionsMap.entries())
100
+ .map(([key, title]) => ({ key, title }))
101
+ .sort((a, b) => a.title.localeCompare(b.title));
102
+ }, [availableInsightItems, availableCatalogItems]);
103
+ const effectiveSelectedDateDatasetKey = useMemo(() => {
104
+ if (dateDatasetOptions.length === 0) {
105
+ return undefined;
90
106
  }
91
- // Filter by search string
92
- if (searchString.trim()) {
93
- const lowerSearch = searchString.toLowerCase();
94
- items = items.filter((item) => item.title.toLowerCase().includes(lowerSearch));
95
- }
96
- return items;
97
- }, [availableItems, searchString, showTypeFilter, typeFilter]);
98
- const listboxItems = useMemo(() => {
99
- return filteredItems.map((item) => {
100
- const itemId = getItemId(item);
101
- const isChecked = selectedIds.has(itemId);
102
- return {
103
- type: "interactive",
104
- id: itemId,
105
- stringTitle: item.title,
106
- data: {
107
- dimensionalityItem: item,
108
- isChecked,
109
- },
110
- };
111
- });
112
- }, [filteredItems, getItemId, selectedIds]);
113
- return (_jsx(Overlay, { alignTo: anchorElement, alignPoints: [
114
- { align: "br tr", offset: { x: 4, y: 0 } },
115
- { align: "bl tl", offset: { x: -4, y: 0 } },
116
- { align: "tr br", offset: { x: 4, y: 0 } },
117
- { align: "tl bl", offset: { x: -4, y: 0 } },
118
- ], positionType: "sameAsTarget", closeOnOutsideClick: true, closeOnEscape: true, onClose: onCancel, children: _jsx("div", { className: "gd-dropdown overlay", children: _jsxs("div", { className: "gd-mvf-attribute-picker-body s-mvf-attribute-picker", "data-testid": "mvf-attribute-picker", children: [_jsxs("div", { className: "gd-mvf-attribute-picker-header", children: [_jsxs("div", { className: "gd-mvf-attribute-picker-header-title", children: [_jsx(UiIcon, { type: "navigateLeft", size: 12, color: "complementary-7", ariaHidden: true }), intl.formatMessage({ id: "mvf.attributePicker.title" })] }), _jsx(UiIconButton, { icon: "close", variant: "bare", size: "small", onClick: onCancel, accessibilityConfig: {
107
+ return dateDatasetOptions.some((o) => o.key === selectedDateDatasetKey)
108
+ ? selectedDateDatasetKey
109
+ : dateDatasetOptions[0].key;
110
+ }, [dateDatasetOptions, selectedDateDatasetKey]);
111
+ const shouldShowDateDatasetSelector = effectiveTypeFilter === "date" && dateDatasetOptions.length > 1;
112
+ const { filteredInsightItems, catalogItemsByDataset, filteredCatalogItems } = useAttributePickerItemsData({
113
+ availableInsightItems,
114
+ availableCatalogItems,
115
+ searchString,
116
+ effectiveTypeFilter,
117
+ effectiveSelectedDateDatasetKey,
118
+ });
119
+ // Build listbox items with sections
120
+ const listboxItems = useAttributePickerListboxItems({
121
+ filteredInsightItems,
122
+ filteredCatalogItems,
123
+ catalogItemsByDataset,
124
+ getItemId,
125
+ intl,
126
+ effectiveTypeFilter,
127
+ shouldShowDateDatasetSelector,
128
+ dateDatasetOptions,
129
+ effectiveSelectedDateDatasetKey,
130
+ isDateDatasetDropdownOpen,
131
+ setSelectedDateDatasetKey,
132
+ setIsDateDatasetDropdownOpen,
133
+ listboxId,
134
+ isLoadingCatalogDimensionality,
135
+ });
136
+ const hasSelectableItems = filteredInsightItems.length > 0 || filteredCatalogItems.length > 0;
137
+ const shouldShowEmptyStateMessage = !isLoadingCatalogDimensionality && !hasSelectableItems;
138
+ return (_jsx(Overlay, { alignTo: anchorElement, alignPoints: [{ align: "tr tl" }, { align: "tl tr" }, { align: "br bl" }, { align: "bl br" }], positionType: "sameAsTarget", closeOnOutsideClick: true, closeOnEscape: true, onClose: onCancel, children: _jsx("div", { className: "gd-dropdown overlay", children: _jsxs("div", { className: "gd-mvf-attribute-picker-body s-mvf-attribute-picker", "data-testid": "mvf-attribute-picker", children: [_jsxs("div", { className: "gd-mvf-attribute-picker-header", children: [_jsx("div", { className: "gd-mvf-attribute-picker-header-title", children: intl.formatMessage({ id: "mvf.attributePicker.title" }) }), _jsx(UiIconButton, { icon: "close", variant: "bare", size: "small", onClick: onCancel, accessibilityConfig: {
119
139
  ariaLabel: intl.formatMessage({ id: "cancel" }),
120
140
  }, dataTestId: "s-mvf-attribute-picker-close" })] }), _jsx("div", { className: "gd-mvf-attribute-picker-search-bar", children: _jsx(Input, { className: "gd-mvf-attribute-picker-search-input", value: searchString, onChange: handleSearch, onEscKeyPress: handleSearchEscKeyPress, placeholder: intl.formatMessage({ id: "gs.list.search.placeholder" }), autofocus: true, clearOnEsc: true, isSearch: true, isSmall: true, accessibilityConfig: {
121
141
  ariaLabel: intl.formatMessage({ id: "gs.list.acessibility.search.label" }),
@@ -127,11 +147,17 @@ export const AttributePicker = memo(function AttributePicker({ availableItems, o
127
147
  ariaLabel: intl.formatMessage({
128
148
  id: "mvf.attributePicker.filter.dates",
129
149
  }),
130
- }, dataTestId: "s-mvf-attribute-picker-filter-dates" })] }) })) : null, _jsx("div", { className: "gd-mvf-attribute-picker-content", children: listboxItems.length === 0 ? (_jsx("div", { className: "gd-mvf-attribute-picker-no-results", children: intl.formatMessage({ id: "mvf.attributePicker.noResults" }) })) : (_jsxs(_Fragment, { children: [showTypeFilter ? (_jsx("div", { className: "gd-mvf-attribute-picker-list-header", children: intl.formatMessage({ id: "mvf.attributePicker.header.fromInsight" }) })) : null, _jsx(UiListbox, { items: listboxItems, onSelect: handleItemToggle, shouldCloseOnSelect: false, isCompact: true, InteractiveItemComponent: AttributePickerItemComponent, ariaAttributes: {
131
- id: listboxId,
132
- "aria-label": intl.formatMessage({
133
- id: "mvf.attributePicker.title",
134
- }),
135
- }, dataTestId: "s-mvf-attribute-picker-list" })] })) }), _jsxs("div", { className: "gd-mvf-attribute-picker-footer", children: [_jsx(UiButton, { variant: "secondary", size: "small", onClick: onCancel, label: intl.formatMessage({ id: "cancel" }) }), _jsx(UiButton, { variant: "primary", size: "small", onClick: handleAdd, label: intl.formatMessage({ id: "mvf.attributePicker.add" }), isDisabled: isAddDisabled })] })] }) }) }));
150
+ }, dataTestId: "s-mvf-attribute-picker-filter-dates" })] }) })) : null, _jsx("div", { className: "gd-mvf-attribute-picker-content", children: shouldShowEmptyStateMessage ? (_jsx("div", { className: "gd-mvf-attribute-picker-no-results", children: searchString.trim()
151
+ ? intl.formatMessage({
152
+ id: "mvf.attributePicker.noResults",
153
+ })
154
+ : intl.formatMessage({
155
+ id: "mvf.attributePicker.noItems",
156
+ }) })) : (_jsx(UiListbox, { items: listboxItems, onSelect: handleItemSelect, shouldCloseOnSelect: false, isCompact: true, InteractiveItemComponent: AttributePickerItemComponent, ariaAttributes: {
157
+ id: listboxId,
158
+ "aria-label": intl.formatMessage({
159
+ id: "mvf.attributePicker.title",
160
+ }),
161
+ }, dataTestId: "s-mvf-attribute-picker-list" })) })] }) }) }));
136
162
  });
137
163
  //# sourceMappingURL=AttributePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttributePicker.js","sourceRoot":"","sources":["../../src/MeasureValueFilter/AttributePicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AttributePicker.js","sourceRoot":"","sources":["../../src/MeasureValueFilter/AttributePicker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { type IntlShape } from "react-intl";
2
+ import { type IDateDatasetOption } from "./typings.js";
3
+ /**
4
+ * Props for the DateDatasetPickerItem component.
5
+ * @internal
6
+ */
7
+ export interface IDateDatasetPickerItemProps {
8
+ /** Available date dataset options */
9
+ dateDatasetOptions: IDateDatasetOption[];
10
+ /** Currently selected date dataset key */
11
+ selectedDateDatasetKey: string | undefined;
12
+ /** Whether the dropdown is open */
13
+ isDropdownOpen: boolean;
14
+ /** Callback when a date dataset is selected */
15
+ onSelect: (key: string) => void;
16
+ /** Callback to toggle the dropdown open state */
17
+ onToggleDropdown: () => void;
18
+ /** ID for the listbox (used for accessibility) */
19
+ listboxId: string;
20
+ /** Intl instance for localization */
21
+ intl: IntlShape;
22
+ }
23
+ /**
24
+ * A component that renders a date dataset picker with a dropdown selector.
25
+ * Used within the MeasureValueFilter AttributePicker to allow users to select
26
+ * which date dataset to use for date-based dimensionality.
27
+ *
28
+ * @internal
29
+ */
30
+ export declare function DateDatasetPickerItem({ dateDatasetOptions, selectedDateDatasetKey, isDropdownOpen, onSelect, onToggleDropdown, listboxId, intl, }: IDateDatasetPickerItemProps): import("react/jsx-runtime").JSX.Element;
31
+ //# sourceMappingURL=DateDatasetPickerItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateDatasetPickerItem.d.ts","sourceRoot":"","sources":["../../src/MeasureValueFilter/DateDatasetPickerItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IACxC,qCAAqC;IACrC,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;IACzC,0CAA0C;IAC1C,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,mCAAmC;IACnC,cAAc,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,iDAAiD;IACjD,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,IAAI,EAAE,SAAS,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAClC,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,IAAI,GACP,EAAE,2BAA2B,2CA8C7B"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { UiButton, UiListbox } from "@gooddata/sdk-ui-kit";
3
+ /**
4
+ * A component that renders a date dataset picker with a dropdown selector.
5
+ * Used within the MeasureValueFilter AttributePicker to allow users to select
6
+ * which date dataset to use for date-based dimensionality.
7
+ *
8
+ * @internal
9
+ */
10
+ export function DateDatasetPickerItem({ dateDatasetOptions, selectedDateDatasetKey, isDropdownOpen, onSelect, onToggleDropdown, listboxId, intl, }) {
11
+ const selectedDatasetTitle = dateDatasetOptions.find((o) => o.key === selectedDateDatasetKey)?.title ?? "";
12
+ return (_jsxs("div", { className: "gd-mvf-attribute-picker-date-dataset", children: [_jsx("div", { className: "gd-mvf-attribute-picker-date-dataset-label", children: intl.formatMessage({ id: "mvf.attributePicker.dateAs" }) }), _jsxs("div", { className: "gd-mvf-attribute-picker-date-dataset-control", children: [_jsx(UiButton, { variant: "secondary", size: "small", label: selectedDatasetTitle, iconAfter: isDropdownOpen ? "navigateUp" : "navigateDown", onClick: onToggleDropdown, dataTestId: "s-mvf-date-dataset-selector" }), isDropdownOpen ? (_jsx("div", { className: "gd-mvf-attribute-picker-date-dataset-dropdown", children: _jsx(UiListbox, { isCompact: true, items: dateDatasetOptions.map((o) => ({
13
+ type: "interactive",
14
+ id: o.key,
15
+ stringTitle: o.title,
16
+ data: undefined,
17
+ })), selectedItemId: selectedDateDatasetKey, onSelect: (item) => {
18
+ onSelect(item.id);
19
+ }, shouldCloseOnSelect: false, ariaAttributes: {
20
+ id: `${listboxId}-date-dataset`,
21
+ "aria-label": intl.formatMessage({
22
+ id: "mvf.attributePicker.dateAs",
23
+ }),
24
+ }, dataTestId: "s-mvf-date-dataset-list" }) })) : null] })] }));
25
+ }
26
+ //# sourceMappingURL=DateDatasetPickerItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateDatasetPickerItem.js","sourceRoot":"","sources":["../../src/MeasureValueFilter/DateDatasetPickerItem.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAyB3D;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAClC,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,IAAI,GACsB;IAC1B,MAAM,oBAAoB,GACtB,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,sBAAsB,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;IAElF,OAAO,CACH,eAAK,SAAS,EAAC,sCAAsC,aACjD,cAAK,SAAS,EAAC,4CAA4C,YACtD,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,4BAA4B,EAAE,CAAC,GACvD,EACN,eAAK,SAAS,EAAC,8CAA8C,aACzD,KAAC,QAAQ,IACL,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,oBAAoB,EAC3B,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,EACzD,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAC,6BAA6B,GAC1C,EACD,cAAc,CAAC,CAAC,CAAC,CACd,cAAK,SAAS,EAAC,+CAA+C,YAC1D,KAAC,SAAS,IACN,SAAS,QACT,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCAClC,IAAI,EAAE,aAAa;gCACnB,EAAE,EAAE,CAAC,CAAC,GAAG;gCACT,WAAW,EAAE,CAAC,CAAC,KAAK;gCACpB,IAAI,EAAE,SAAS;6BAClB,CAAC,CAAC,EACH,cAAc,EAAE,sBAAsB,EACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;gCACf,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BACtB,CAAC,EACD,mBAAmB,EAAE,KAAK,EAC1B,cAAc,EAAE;gCACZ,EAAE,EAAE,GAAG,SAAS,eAAe;gCAC/B,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC;oCAC7B,EAAE,EAAE,4BAA4B;iCACnC,CAAC;6BACL,EACD,UAAU,EAAC,yBAAyB,GACtC,GACA,CACT,CAAC,CAAC,CAAC,IAAI,IACN,IACJ,CACT,CAAC;AACN,CAAC"}
@@ -13,10 +13,23 @@ interface IDimensionalitySectionProps {
13
13
  * Insight default dimensionality items (from buckets).
14
14
  */
15
15
  insightDimensionality?: IDimensionalityItem[];
16
+ /**
17
+ * Catalog dimensionality items (from computeValidObjects).
18
+ */
19
+ catalogDimensionality?: IDimensionalityItem[];
20
+ /**
21
+ * Whether catalog dimensionality is currently being loaded.
22
+ */
23
+ isLoadingCatalogDimensionality?: boolean;
16
24
  /**
17
25
  * Callback when dimensionality changes.
18
26
  */
19
27
  onDimensionalityChange: (dimensionality: IDimensionalityItem[]) => void;
28
+ /**
29
+ * Indicates whether the filter is migrated from the old filter dialog (has no set dimensionality).
30
+ * This is used to determine whether to show the backward compatibility note.
31
+ */
32
+ isMigratedFilter: boolean;
20
33
  }
21
34
  /**
22
35
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"DimensionalitySection.d.ts","sourceRoot":"","sources":["../../src/MeasureValueFilter/DimensionalitySection.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA0CxD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACnC,GAAG,mBAAmB,EAAE,GAAG,SAAS,EACpC,GAAG,mBAAmB,EAAE,GAAG,SAAS,KACrC,OAYF,CAAC;AAEF,UAAU,2BAA2B;IACjC;;OAEG;IACH,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC;;OAEG;IACH,qBAAqB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9C;;OAEG;IACH,sBAAsB,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;CAC3E;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,mEA2KhC,CAAC"}
1
+ {"version":3,"file":"DimensionalitySection.d.ts","sourceRoot":"","sources":["../../src/MeasureValueFilter/DimensionalitySection.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA0CxD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACnC,GAAG,mBAAmB,EAAE,GAAG,SAAS,EACpC,GAAG,mBAAmB,EAAE,GAAG,SAAS,KACrC,OAYF,CAAC;AAEF,UAAU,2BAA2B;IACjC;;OAEG;IACH,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC;;OAEG;IACH,qBAAqB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9C;;OAEG;IACH,qBAAqB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9C;;OAEG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC;;OAEG;IACH,sBAAsB,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IACxE;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,mEA+MhC,CAAC"}