@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.
- package/esm/DateFilter/DateFilterBody/CalendarTypeTabs.d.ts +12 -0
- package/esm/DateFilter/DateFilterBody/CalendarTypeTabs.d.ts.map +1 -0
- package/esm/DateFilter/DateFilterBody/CalendarTypeTabs.js +22 -0
- package/esm/DateFilter/DateFilterBody/CalendarTypeTabs.js.map +1 -0
- package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.d.ts.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.js +16 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.js.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyContentFiltered.d.ts +7 -2
- package/esm/DateFilter/DateFilterBody/DateFilterBodyContentFiltered.d.ts.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyContentFiltered.js +4 -3
- package/esm/DateFilter/DateFilterBody/DateFilterBodyContentFiltered.js.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.d.ts.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.js +10 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.js.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyRedesigned.d.ts.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyRedesigned.js +30 -6
- package/esm/DateFilter/DateFilterBody/DateFilterBodyRedesigned.js.map +1 -1
- package/esm/DateFilter/DateFilterBody/RelativePresetFilterItems.d.ts.map +1 -1
- package/esm/DateFilter/DateFilterBody/RelativePresetFilterItems.js +3 -0
- package/esm/DateFilter/DateFilterBody/RelativePresetFilterItems.js.map +1 -1
- package/esm/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.js +2 -2
- package/esm/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.js.map +1 -1
- package/esm/DateFilter/DateFilterTextLocalized/DateFilterTextLocalized.d.ts +10 -2
- package/esm/DateFilter/DateFilterTextLocalized/DateFilterTextLocalized.d.ts.map +1 -1
- package/esm/DateFilter/DateFilterTextLocalized/DateFilterTextLocalized.js +4 -4
- package/esm/DateFilter/DateFilterTextLocalized/DateFilterTextLocalized.js.map +1 -1
- package/esm/DateFilter/DynamicSelect/utils.d.ts +3 -0
- package/esm/DateFilter/DynamicSelect/utils.d.ts.map +1 -1
- package/esm/DateFilter/DynamicSelect/utils.js +6 -0
- package/esm/DateFilter/DynamicSelect/utils.js.map +1 -1
- package/esm/DateFilter/RelativeDateFilterForm/GranularityTabs.d.ts.map +1 -1
- package/esm/DateFilter/RelativeDateFilterForm/GranularityTabs.js +12 -9
- package/esm/DateFilter/RelativeDateFilterForm/GranularityTabs.js.map +1 -1
- package/esm/DateFilter/constants/i18n.d.ts +26 -0
- package/esm/DateFilter/constants/i18n.d.ts.map +1 -1
- package/esm/DateFilter/constants/i18n.js +25 -0
- package/esm/DateFilter/constants/i18n.js.map +1 -1
- package/esm/DateFilter/index.d.ts +9 -4
- package/esm/DateFilter/index.d.ts.map +1 -1
- package/esm/DateFilter/index.js +1 -0
- package/esm/DateFilter/index.js.map +1 -1
- package/esm/DateFilter/utils/Translations/DateFilterTitle.d.ts +5 -4
- package/esm/DateFilter/utils/Translations/DateFilterTitle.d.ts.map +1 -1
- package/esm/DateFilter/utils/Translations/DateFilterTitle.js +17 -15
- package/esm/DateFilter/utils/Translations/DateFilterTitle.js.map +1 -1
- package/esm/DateFilter/utils/presetFilterUtils.d.ts +116 -0
- package/esm/DateFilter/utils/presetFilterUtils.d.ts.map +1 -0
- package/esm/DateFilter/utils/presetFilterUtils.js +197 -0
- package/esm/DateFilter/utils/presetFilterUtils.js.map +1 -0
- package/esm/MeasureValueFilter/AttributePicker.d.ts +12 -2
- package/esm/MeasureValueFilter/AttributePicker.d.ts.map +1 -1
- package/esm/MeasureValueFilter/AttributePicker.js +94 -68
- package/esm/MeasureValueFilter/AttributePicker.js.map +1 -1
- package/esm/MeasureValueFilter/DateDatasetPickerItem.d.ts +31 -0
- package/esm/MeasureValueFilter/DateDatasetPickerItem.d.ts.map +1 -0
- package/esm/MeasureValueFilter/DateDatasetPickerItem.js +26 -0
- package/esm/MeasureValueFilter/DateDatasetPickerItem.js.map +1 -0
- package/esm/MeasureValueFilter/DimensionalitySection.d.ts +13 -0
- package/esm/MeasureValueFilter/DimensionalitySection.d.ts.map +1 -1
- package/esm/MeasureValueFilter/DimensionalitySection.js +38 -28
- package/esm/MeasureValueFilter/DimensionalitySection.js.map +1 -1
- package/esm/MeasureValueFilter/Dropdown.d.ts +3 -0
- package/esm/MeasureValueFilter/Dropdown.d.ts.map +1 -1
- package/esm/MeasureValueFilter/Dropdown.js +2 -2
- package/esm/MeasureValueFilter/Dropdown.js.map +1 -1
- package/esm/MeasureValueFilter/DropdownBody.d.ts +3 -0
- package/esm/MeasureValueFilter/DropdownBody.d.ts.map +1 -1
- package/esm/MeasureValueFilter/DropdownBody.js +17 -7
- package/esm/MeasureValueFilter/DropdownBody.js.map +1 -1
- package/esm/MeasureValueFilter/MeasureValueFilterDropdown.d.ts.map +1 -1
- package/esm/MeasureValueFilter/MeasureValueFilterDropdown.js +11 -21
- package/esm/MeasureValueFilter/MeasureValueFilterDropdown.js.map +1 -1
- package/esm/MeasureValueFilter/OperatorDropdown.d.ts.map +1 -1
- package/esm/MeasureValueFilter/OperatorDropdown.js +2 -2
- package/esm/MeasureValueFilter/OperatorDropdown.js.map +1 -1
- package/esm/MeasureValueFilter/typings.d.ts +46 -1
- package/esm/MeasureValueFilter/typings.d.ts.map +1 -1
- package/esm/MeasureValueFilter/typings.js.map +1 -1
- package/esm/MeasureValueFilter/useAttributePickerItemsData.d.ts +25 -0
- package/esm/MeasureValueFilter/useAttributePickerItemsData.d.ts.map +1 -0
- package/esm/MeasureValueFilter/useAttributePickerItemsData.js +86 -0
- package/esm/MeasureValueFilter/useAttributePickerItemsData.js.map +1 -0
- package/esm/MeasureValueFilter/useAttributePickerListboxItems.d.ts +36 -0
- package/esm/MeasureValueFilter/useAttributePickerListboxItems.d.ts.map +1 -0
- package/esm/MeasureValueFilter/useAttributePickerListboxItems.js +120 -0
- package/esm/MeasureValueFilter/useAttributePickerListboxItems.js.map +1 -0
- package/esm/index.d.ts +2 -2
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/internal.d.ts +1 -0
- package/esm/internal.d.ts.map +1 -1
- package/esm/internal.js +2 -1
- package/esm/internal.js.map +1 -1
- package/esm/locales.d.ts.map +1 -1
- package/esm/locales.js +40 -0
- package/esm/locales.js.map +1 -1
- package/esm/sdk-ui-filters.d.ts +162 -3
- package/package.json +10 -10
- package/styles/css/main.css +96 -6
- package/styles/css/main.css.map +1 -1
- package/styles/css/measureValueFilter.css +96 -6
- package/styles/css/measureValueFilter.css.map +1 -1
- 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
|
|
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
|
-
|
|
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":"
|
|
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
|
|
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,
|
|
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
|
|
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(
|
|
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({
|
|
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
|
|
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
|
-
}, [
|
|
41
|
-
//
|
|
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
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
return newSet;
|
|
96
|
+
const key = objRefToString(item.dataset.identifier);
|
|
97
|
+
optionsMap.set(key, item.dataset.title);
|
|
75
98
|
});
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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:
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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":";AAAA,gCAAgC;AAEhC,OAAO,EAAsC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExG,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
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;
|
|
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"}
|