@gooddata/sdk-ui-filters 11.15.0 → 11.16.0-alpha.1
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/AttributeFilter/AttributeFilterProviders.d.ts.map +1 -1
- package/esm/AttributeFilter/AttributeFilterProviders.js +2 -2
- package/esm/AttributeFilter/AttributeFilterProviders.js.map +1 -1
- package/esm/AttributeFilter/Components/Dropdown/AttributeFilterDropdown.d.ts.map +1 -1
- package/esm/AttributeFilter/Components/Dropdown/AttributeFilterDropdown.js +2 -2
- package/esm/AttributeFilter/Components/Dropdown/AttributeFilterDropdown.js.map +1 -1
- package/esm/AttributeFilter/Components/DropdownButton/AttributeFilterDropdownButton.d.ts +7 -1
- package/esm/AttributeFilter/Components/DropdownButton/AttributeFilterDropdownButton.d.ts.map +1 -1
- package/esm/AttributeFilter/Components/DropdownButton/AttributeFilterDropdownButton.js +13 -3
- package/esm/AttributeFilter/Components/DropdownButton/AttributeFilterDropdownButton.js.map +1 -1
- package/esm/AttributeFilter/Context/AttributeFilterContext.d.ts +1 -1
- package/esm/AttributeFilter/Context/AttributeFilterContext.d.ts.map +1 -1
- package/esm/AttributeFilter/Context/AttributeFilterContext.js +2 -1
- package/esm/AttributeFilter/Context/AttributeFilterContext.js.map +1 -1
- package/esm/AttributeFilter/hooks/useAttributeFilterController.d.ts.map +1 -1
- package/esm/AttributeFilter/hooks/useAttributeFilterController.js +28 -2
- package/esm/AttributeFilter/hooks/useAttributeFilterController.js.map +1 -1
- package/esm/AttributeFilter/types.d.ts +14 -2
- package/esm/AttributeFilter/types.d.ts.map +1 -1
- package/esm/DateFilter/DateFilter.d.ts +16 -1
- package/esm/DateFilter/DateFilter.d.ts.map +1 -1
- package/esm/DateFilter/DateFilter.js +4 -4
- package/esm/DateFilter/DateFilter.js.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBody.d.ts +6 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBody.d.ts.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBody.js +3 -3
- package/esm/DateFilter/DateFilterBody/DateFilterBody.js.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.d.ts +6 -2
- package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.d.ts.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.js +5 -5
- package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.js.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.d.ts +6 -2
- package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.d.ts.map +1 -1
- package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.js +6 -6
- 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 +5 -5
- package/esm/DateFilter/DateFilterBody/DateFilterBodyRedesigned.js.map +1 -1
- package/esm/DateFilter/DateFilterCore.d.ts +8 -1
- package/esm/DateFilter/DateFilterCore.d.ts.map +1 -1
- package/esm/DateFilter/DateFilterCore.js +1 -1
- package/esm/DateFilter/DateFilterCore.js.map +1 -1
- package/esm/DateFilter/index.d.ts +8 -8
- package/esm/DateFilter/index.d.ts.map +1 -1
- package/esm/DateFilter/index.js +2 -2
- package/esm/DateFilter/index.js.map +1 -1
- package/esm/DateFilter/utils/presetFilterUtils.d.ts +29 -3
- package/esm/DateFilter/utils/presetFilterUtils.d.ts.map +1 -1
- package/esm/DateFilter/utils/presetFilterUtils.js +45 -5
- package/esm/DateFilter/utils/presetFilterUtils.js.map +1 -1
- package/esm/FilterGroup/FilterGroup.d.ts +15 -0
- package/esm/FilterGroup/FilterGroup.d.ts.map +1 -0
- package/esm/FilterGroup/FilterGroup.js +101 -0
- package/esm/FilterGroup/FilterGroup.js.map +1 -0
- package/esm/FilterGroup/index.d.ts +2 -0
- package/esm/FilterGroup/index.d.ts.map +1 -0
- package/esm/FilterGroup/index.js +3 -0
- package/esm/FilterGroup/index.js.map +1 -0
- package/esm/FilterGroup/useFilterGroupStatus.d.ts +25 -0
- package/esm/FilterGroup/useFilterGroupStatus.d.ts.map +1 -0
- package/esm/FilterGroup/useFilterGroupStatus.js +69 -0
- package/esm/FilterGroup/useFilterGroupStatus.js.map +1 -0
- package/esm/MeasureValueFilter/DateDatasetPickerItem.d.ts.map +1 -1
- package/esm/MeasureValueFilter/DateDatasetPickerItem.js +20 -14
- package/esm/MeasureValueFilter/DateDatasetPickerItem.js.map +1 -1
- package/esm/MeasureValueFilter/DropdownBody.d.ts.map +1 -1
- package/esm/MeasureValueFilter/DropdownBody.js +3 -66
- package/esm/MeasureValueFilter/DropdownBody.js.map +1 -1
- package/esm/MeasureValueFilter/PreviewSection.d.ts +16 -0
- package/esm/MeasureValueFilter/PreviewSection.d.ts.map +1 -0
- package/esm/MeasureValueFilter/PreviewSection.js +98 -0
- package/esm/MeasureValueFilter/PreviewSection.js.map +1 -0
- package/esm/MeasureValueFilter/useAttributePickerItemsData.d.ts.map +1 -1
- package/esm/MeasureValueFilter/useAttributePickerItemsData.js +66 -59
- package/esm/MeasureValueFilter/useAttributePickerItemsData.js.map +1 -1
- package/esm/index.d.ts +2 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -2
- package/esm/index.js.map +1 -1
- package/esm/sdk-ui-filters.d.ts +87 -11
- package/package.json +10 -10
- package/styles/css/filterGroup.css +27 -0
- package/styles/css/filterGroup.css.map +1 -0
- package/styles/css/main.css +38 -12
- package/styles/css/main.css.map +1 -1
- package/styles/css/measureValueFilter.css +12 -12
- package/styles/css/measureValueFilter.css.map +1 -1
- package/styles/scss/filterGroup.scss +34 -0
- package/styles/scss/main.scss +1 -0
- package/styles/scss/measureValueFilter.scss +14 -14
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2019-2026 GoodData Corporation
|
|
3
|
+
import { memo, useMemo } from "react";
|
|
4
|
+
import { useIntl } from "react-intl";
|
|
5
|
+
import { isComparisonConditionOperator, isRangeConditionOperator, } from "@gooddata/sdk-model";
|
|
6
|
+
import { messages } from "@gooddata/sdk-ui";
|
|
7
|
+
import { UiTooltip, formatNumberWithSeparators } from "@gooddata/sdk-ui-kit";
|
|
8
|
+
import { getOperatorWithValueTranslationKey } from "./helpers/measureValueFilterOperator.js";
|
|
9
|
+
/**
|
|
10
|
+
* Threshold for shortening dimensionality titles.
|
|
11
|
+
* When there are more items than this, the list is shortened with a count indicator.
|
|
12
|
+
*/
|
|
13
|
+
const DIMENSIONALITY_SHORTEN_THRESHOLD = 3;
|
|
14
|
+
/**
|
|
15
|
+
* Builds shortened dimensionality display with count indicator.
|
|
16
|
+
* Returns shortened text for display and full text for tooltip when there are more items than the threshold.
|
|
17
|
+
*/
|
|
18
|
+
const buildShortenedDimensionality = (items) => {
|
|
19
|
+
const titles = items.map((item) => item.title).filter(Boolean);
|
|
20
|
+
if (titles.length === 0) {
|
|
21
|
+
return { shortenedText: "", fullText: undefined, additionalCount: undefined };
|
|
22
|
+
}
|
|
23
|
+
const fullText = titles.join(", ");
|
|
24
|
+
if (titles.length <= DIMENSIONALITY_SHORTEN_THRESHOLD) {
|
|
25
|
+
return { shortenedText: fullText, fullText: undefined, additionalCount: undefined };
|
|
26
|
+
}
|
|
27
|
+
// Shorten to first 3 items with count indicator
|
|
28
|
+
const shortenedTitles = titles.slice(0, DIMENSIONALITY_SHORTEN_THRESHOLD);
|
|
29
|
+
const additionalCount = titles.length - DIMENSIONALITY_SHORTEN_THRESHOLD;
|
|
30
|
+
const shortenedText = `${shortenedTitles.join(", ")}...`;
|
|
31
|
+
return { shortenedText, fullText, additionalCount };
|
|
32
|
+
};
|
|
33
|
+
const formatNumberForPreview = (value, separators, suffix) => {
|
|
34
|
+
if (value === null || value === undefined || isNaN(value)) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
const formattedNumber = formatNumberWithSeparators(value, separators);
|
|
38
|
+
return `${formattedNumber}${suffix}`;
|
|
39
|
+
};
|
|
40
|
+
const getConditionLabel = (operator, value, from, to, separators, suffix, intl) => {
|
|
41
|
+
if (isComparisonConditionOperator(operator)) {
|
|
42
|
+
const formattedValue = formatNumberForPreview(value, separators, suffix);
|
|
43
|
+
return formattedValue == undefined
|
|
44
|
+
? undefined
|
|
45
|
+
: intl.formatMessage({ id: getOperatorWithValueTranslationKey(operator) }, { value: formattedValue });
|
|
46
|
+
}
|
|
47
|
+
if (isRangeConditionOperator(operator)) {
|
|
48
|
+
const formattedFrom = formatNumberForPreview(from, separators, suffix);
|
|
49
|
+
const formattedTo = formatNumberForPreview(to, separators, suffix);
|
|
50
|
+
return formattedFrom === undefined || formattedTo === undefined
|
|
51
|
+
? undefined
|
|
52
|
+
: intl.formatMessage({ id: getOperatorWithValueTranslationKey(operator) }, {
|
|
53
|
+
from: formattedFrom,
|
|
54
|
+
to: formattedTo,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return undefined;
|
|
58
|
+
};
|
|
59
|
+
export const PreviewSection = memo(function PreviewSection({ operator, measureTitle, usePercentage, separators, dimensionality, value, from, to, }) {
|
|
60
|
+
const intl = useIntl();
|
|
61
|
+
const textPreview = useMemo(() => {
|
|
62
|
+
if (operator === "ALL") {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const suffix = usePercentage ? "%" : "";
|
|
66
|
+
const condition = getConditionLabel(operator, value, from, to, separators, suffix, intl);
|
|
67
|
+
if (!condition) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
if (!measureTitle) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const { shortenedText, fullText, additionalCount } = buildShortenedDimensionality(dimensionality);
|
|
74
|
+
const placeholderValues = {
|
|
75
|
+
metric: measureTitle,
|
|
76
|
+
condition,
|
|
77
|
+
dimensionality: shortenedText || undefined,
|
|
78
|
+
count: additionalCount,
|
|
79
|
+
b: (chunk) => _jsx("b", { children: chunk }),
|
|
80
|
+
};
|
|
81
|
+
if (dimensionality.length > 0 && shortenedText) {
|
|
82
|
+
// Use shortened variant when there are hidden items
|
|
83
|
+
const message = additionalCount === undefined
|
|
84
|
+
? messages["mvfPreviewFilterWithDimensionality"]
|
|
85
|
+
: messages["mvfPreviewFilterWithDimensionalityShortened"];
|
|
86
|
+
return { content: intl.formatMessage(message, placeholderValues), tooltip: fullText };
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
content: intl.formatMessage(messages["mvfPreviewFilterWithoutDimensionality"], placeholderValues),
|
|
90
|
+
tooltip: fullText,
|
|
91
|
+
};
|
|
92
|
+
}, [operator, dimensionality, separators, usePercentage, measureTitle, intl, value, from, to]);
|
|
93
|
+
if (!textPreview) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
return (_jsxs("div", { className: "gd-mvf-preview", children: [_jsx("div", { className: "gd-mvf-preview-header", children: intl.formatMessage(messages["mvfPreviewTitle"]) }), textPreview.tooltip ? (_jsx(UiTooltip, { anchor: _jsx("div", { className: "gd-mvf-preview-content", "data-testid": "mvf-preview-text", children: textPreview.content }), content: textPreview.tooltip, arrowPlacement: "left", triggerBy: ["hover"], width: "same-as-anchor", optimalPlacement: true })) : (_jsx("div", { className: "gd-mvf-preview-content", "data-testid": "mvf-preview-text", children: textPreview.content }))] }));
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=PreviewSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreviewSection.js","sourceRoot":"","sources":["../../src/MeasureValueFilter/PreviewSection.tsx"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,OAAO,EAAkB,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAkB,OAAO,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAEH,6BAA6B,EAC7B,wBAAwB,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAI7F;;;GAGG;AACH,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAW3C;;;GAGG;AACH,MAAM,4BAA4B,GAAG,CAAC,KAA4B,EAA4B,EAAE;IAC5F,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;IAClF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,MAAM,CAAC,MAAM,IAAI,gCAAgC,EAAE,CAAC;QACpD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;IACxF,CAAC;IAED,gDAAgD;IAChD,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,GAAG,gCAAgC,CAAC;IACzE,MAAM,aAAa,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAEzD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AACxD,CAAC,CAAC;AAIF,MAAM,sBAAsB,GAAG,CAC3B,KAAuB,EACvB,UAAmC,EACnC,MAAc,EACI,EAAE;IACpB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,eAAe,GAAG,0BAA0B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACtE,OAAO,GAAG,eAAe,GAAG,MAAM,EAAE,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACtB,QAAoC,EACpC,KAAuB,EACvB,IAAsB,EACtB,EAAoB,EACpB,UAAmC,EACnC,MAAc,EACd,IAAe,EACG,EAAE;IACpB,IAAI,6BAA6B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QACzE,OAAO,cAAc,IAAI,SAAS;YAC9B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,aAAa,CACd,EAAE,EAAE,EAAE,kCAAkC,CAAC,QAAQ,CAAC,EAAE,EACpD,EAAE,KAAK,EAAE,cAAc,EAAE,CAC5B,CAAC;IACZ,CAAC;IACD,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,sBAAsB,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QACnE,OAAO,aAAa,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS;YAC3D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,aAAa,CACd,EAAE,EAAE,EAAE,kCAAkC,CAAC,QAAQ,CAAC,EAAE,EACpD;gBACI,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAE,WAAW;aAClB,CACJ,CAAC;IACZ,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAaF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,cAAc,CAAC,EACvD,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,EACd,KAAK,EACL,IAAI,EACJ,EAAE,GACiB;IACnB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,MAAM,WAAW,GAAG,OAAO,CAAC,GAGnB,EAAE;QACP,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAC;QAClG,MAAM,iBAAiB,GAAG;YACtB,MAAM,EAAE,YAAY;YACpB,SAAS;YACT,cAAc,EAAE,aAAa,IAAI,SAAS;YAC1C,KAAK,EAAE,eAAe;YACtB,CAAC,EAAE,CAAC,KAAgB,EAAE,EAAE,CAAC,sBAAI,KAAK,GAAK;SAC1C,CAAC;QACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;YAC7C,oDAAoD;YACpD,MAAM,OAAO,GACT,eAAe,KAAK,SAAS;gBACzB,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;gBAChD,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC1F,CAAC;QACD,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,uCAAuC,CAAC,EAAE,iBAAiB,CAAC;YACjG,OAAO,EAAE,QAAQ;SACpB,CAAC;IACN,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAE/F,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACH,eAAK,SAAS,EAAC,gBAAgB,aAC3B,cAAK,SAAS,EAAC,uBAAuB,YAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,GAAO,EAC7F,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CACnB,KAAC,SAAS,IACN,MAAM,EACF,cAAK,SAAS,EAAC,wBAAwB,iBAAa,kBAAkB,YACjE,WAAW,CAAC,OAAO,GAClB,EAEV,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,cAAc,EAAC,MAAM,EACrB,SAAS,EAAE,CAAC,OAAO,CAAC,EACpB,KAAK,EAAC,gBAAgB,EACtB,gBAAgB,SAClB,CACL,CAAC,CAAC,CAAC,CACA,cAAK,SAAS,EAAC,wBAAwB,iBAAa,kBAAkB,YACjE,WAAW,CAAC,OAAO,GAClB,CACT,IACC,CACT,CAAC;AACN,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAttributePickerItemsData.d.ts","sourceRoot":"","sources":["../../src/MeasureValueFilter/useAttributePickerItemsData.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,eAAO,MAAM,wBAAwB,GAAI,MAAM,mBAAmB,YACE,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useAttributePickerItemsData.d.ts","sourceRoot":"","sources":["../../src/MeasureValueFilter/useAttributePickerItemsData.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,eAAO,MAAM,wBAAwB,GAAI,MAAM,mBAAmB,YACE,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC,CAAC;AA6EjG,UAAU,kCAAkC;IACxC,qBAAqB,EAAE,mBAAmB,EAAE,CAAC;IAC7C,qBAAqB,EAAE,mBAAmB,EAAE,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,WAAW,GAAG,MAAM,CAAC;IAC1C,+BAA+B,EAAE,MAAM,GAAG,SAAS,CAAC;CACvD;AAED,UAAU,kCAAkC;IACxC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,qBAAqB,EAAE,qBAAqB,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,EACxC,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,+BAA+B,GAClC,EAAE,kCAAkC,GAAG,kCAAkC,CAqCzE"}
|
|
@@ -1,7 +1,61 @@
|
|
|
1
|
-
// (C) 2025 GoodData Corporation
|
|
1
|
+
// (C) 2025-2026 GoodData Corporation
|
|
2
2
|
import { useMemo } from "react";
|
|
3
3
|
import { objRefToString } from "@gooddata/sdk-model";
|
|
4
4
|
export const isDateDimensionalityItem = (item) => item.type === "chronologicalDate" || item.type === "genericDate";
|
|
5
|
+
function filterItemsByType(items, effectiveTypeFilter) {
|
|
6
|
+
const filterByType = (item) => effectiveTypeFilter === "date" ? isDateDimensionalityItem(item) : !isDateDimensionalityItem(item);
|
|
7
|
+
return items.filter(filterByType);
|
|
8
|
+
}
|
|
9
|
+
function dedupeCatalogAgainstInsight(insightItems, catalogItems) {
|
|
10
|
+
// Remove duplicates: items that are already present in "From visualization" should not appear in catalog.
|
|
11
|
+
// Prefer ref-based dedupe when bucket items provide `ref` (display form ObjRef); fallback to title otherwise.
|
|
12
|
+
const insightRefKeys = new Set(insightItems.map((i) => (i.ref ? objRefToString(i.ref) : undefined)).filter((x) => !!x));
|
|
13
|
+
const insightTitlesWithoutRef = new Set(insightItems.filter((i) => !i.ref).map((i) => i.title));
|
|
14
|
+
return catalogItems.filter((item) => {
|
|
15
|
+
const itemKey = objRefToString(item.identifier);
|
|
16
|
+
if (insightRefKeys.has(itemKey)) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return !insightTitlesWithoutRef.has(item.title);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function filterCatalogBySelectedDateDataset(catalogItems, effectiveTypeFilter, effectiveSelectedDateDatasetKey) {
|
|
23
|
+
// If we are in the Date tab, filter date items by selected date dataset
|
|
24
|
+
if (effectiveTypeFilter !== "date" || !effectiveSelectedDateDatasetKey) {
|
|
25
|
+
return catalogItems;
|
|
26
|
+
}
|
|
27
|
+
const matchesSelectedDataset = (item) => {
|
|
28
|
+
if (!item.dataset) {
|
|
29
|
+
// Should not happen once the app provides dataset for all date items; keep as fallback.
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return objRefToString(item.dataset.identifier) === effectiveSelectedDateDatasetKey;
|
|
33
|
+
};
|
|
34
|
+
// Insight ("From visualization") date items should always remain visible. (This only filters catalog items.)
|
|
35
|
+
return catalogItems.filter(matchesSelectedDataset);
|
|
36
|
+
}
|
|
37
|
+
function filterItemsBySearch(items, searchString) {
|
|
38
|
+
// Apply search filter
|
|
39
|
+
if (!searchString.trim()) {
|
|
40
|
+
return items;
|
|
41
|
+
}
|
|
42
|
+
const lowerSearch = searchString.toLowerCase();
|
|
43
|
+
return items.filter((item) => item.title.toLowerCase().includes(lowerSearch));
|
|
44
|
+
}
|
|
45
|
+
function groupCatalogItemsByDataset(catalogItems) {
|
|
46
|
+
// Group catalog items by dataset (Attribute tab)
|
|
47
|
+
const grouped = new Map();
|
|
48
|
+
catalogItems.forEach((item) => {
|
|
49
|
+
if (item.dataset) {
|
|
50
|
+
const datasetKey = objRefToString(item.dataset.identifier);
|
|
51
|
+
if (!grouped.has(datasetKey)) {
|
|
52
|
+
grouped.set(datasetKey, { title: item.dataset.title, items: [] });
|
|
53
|
+
}
|
|
54
|
+
grouped.get(datasetKey).items.push(item);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return grouped;
|
|
58
|
+
}
|
|
5
59
|
/**
|
|
6
60
|
* @internal
|
|
7
61
|
* Hook that filters and groups attribute picker items based on type filter, search, and date dataset selection.
|
|
@@ -9,71 +63,24 @@ export const isDateDimensionalityItem = (item) => item.type === "chronologicalDa
|
|
|
9
63
|
export function useAttributePickerItemsData({ availableInsightItems, availableCatalogItems, searchString, effectiveTypeFilter, effectiveSelectedDateDatasetKey, }) {
|
|
10
64
|
return useMemo(() => {
|
|
11
65
|
// Start from explicit sources so the separation logic cannot drift.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
: !isDateDimensionalityItem(item);
|
|
19
|
-
};
|
|
20
|
-
insightItemsList = insightItemsList.filter(filterByType);
|
|
21
|
-
catalogItemsList = catalogItemsList.filter(filterByType);
|
|
22
|
-
// Remove duplicates: items that are already present in "From visualization" should not appear in catalog.
|
|
23
|
-
// Prefer ref-based dedupe when bucket items provide `ref` (display form ObjRef); fallback to title otherwise.
|
|
24
|
-
const insightRefKeys = new Set(insightItemsList
|
|
25
|
-
.map((i) => (i.ref ? objRefToString(i.ref) : undefined))
|
|
26
|
-
.filter((x) => !!x));
|
|
27
|
-
const insightTitlesWithoutRef = new Set(insightItemsList.filter((i) => !i.ref).map((i) => i.title));
|
|
28
|
-
catalogItemsList = catalogItemsList.filter((item) => {
|
|
29
|
-
const itemKey = objRefToString(item.identifier);
|
|
30
|
-
if (insightRefKeys.has(itemKey)) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
return !insightTitlesWithoutRef.has(item.title);
|
|
34
|
-
});
|
|
35
|
-
// If we are in the Date tab, filter date items by selected date dataset
|
|
36
|
-
if (effectiveTypeFilter === "date" && effectiveSelectedDateDatasetKey) {
|
|
37
|
-
const matchesSelectedDataset = (item) => {
|
|
38
|
-
if (!item.dataset) {
|
|
39
|
-
// Should not happen once the app provides dataset for all date items; keep as fallback.
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
return objRefToString(item.dataset.identifier) === effectiveSelectedDateDatasetKey;
|
|
43
|
-
};
|
|
44
|
-
// Insight ("From visualization") date items should always remain visible.
|
|
45
|
-
catalogItemsList = catalogItemsList.filter(matchesSelectedDataset);
|
|
46
|
-
}
|
|
47
|
-
// Apply search filter
|
|
48
|
-
if (searchString.trim()) {
|
|
49
|
-
const lowerSearch = searchString.toLowerCase();
|
|
50
|
-
const filterBySearch = (item) => item.title.toLowerCase().includes(lowerSearch);
|
|
51
|
-
insightItemsList = insightItemsList.filter(filterBySearch);
|
|
52
|
-
catalogItemsList = catalogItemsList.filter(filterBySearch);
|
|
53
|
-
}
|
|
66
|
+
const insightItemsAfterType = filterItemsByType(availableInsightItems, effectiveTypeFilter);
|
|
67
|
+
const catalogItemsAfterType = filterItemsByType(availableCatalogItems, effectiveTypeFilter);
|
|
68
|
+
const dedupedCatalog = dedupeCatalogAgainstInsight(insightItemsAfterType, catalogItemsAfterType);
|
|
69
|
+
const dateDatasetFilteredCatalog = filterCatalogBySelectedDateDataset(dedupedCatalog, effectiveTypeFilter, effectiveSelectedDateDatasetKey);
|
|
70
|
+
const filteredInsightItems = filterItemsBySearch(insightItemsAfterType, searchString);
|
|
71
|
+
const filteredCatalogItems = filterItemsBySearch(dateDatasetFilteredCatalog, searchString);
|
|
54
72
|
// For Date tab, we do not render dataset headers in the list (dataset is selected via "Date as").
|
|
55
73
|
if (effectiveTypeFilter === "date") {
|
|
56
74
|
return {
|
|
57
|
-
filteredInsightItems
|
|
58
|
-
filteredCatalogItems
|
|
75
|
+
filteredInsightItems,
|
|
76
|
+
filteredCatalogItems,
|
|
59
77
|
catalogItemsByDataset: new Map(),
|
|
60
78
|
};
|
|
61
79
|
}
|
|
62
|
-
// Group catalog items by dataset (Attribute tab)
|
|
63
|
-
const grouped = new Map();
|
|
64
|
-
catalogItemsList.forEach((item) => {
|
|
65
|
-
if (item.dataset) {
|
|
66
|
-
const datasetKey = objRefToString(item.dataset.identifier);
|
|
67
|
-
if (!grouped.has(datasetKey)) {
|
|
68
|
-
grouped.set(datasetKey, { title: item.dataset.title, items: [] });
|
|
69
|
-
}
|
|
70
|
-
grouped.get(datasetKey).items.push(item);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
80
|
return {
|
|
74
|
-
filteredInsightItems
|
|
75
|
-
catalogItemsByDataset:
|
|
76
|
-
filteredCatalogItems
|
|
81
|
+
filteredInsightItems,
|
|
82
|
+
catalogItemsByDataset: groupCatalogItemsByDataset(filteredCatalogItems),
|
|
83
|
+
filteredCatalogItems,
|
|
77
84
|
};
|
|
78
85
|
}, [
|
|
79
86
|
availableInsightItems,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAttributePickerItemsData.js","sourceRoot":"","sources":["../../src/MeasureValueFilter/useAttributePickerItemsData.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"useAttributePickerItemsData.js","sourceRoot":"","sources":["../../src/MeasureValueFilter/useAttributePickerItemsData.ts"],"names":[],"mappings":"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"}
|
package/esm/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @packageDocumentation
|
|
9
9
|
*/
|
|
10
10
|
export type { IDateFilterCallbackProps, IDateFilterOwnProps, IDateFilterProps, IDateFilterState, IDateFilterStatePropsIntersection, AbsoluteDateFilterOption, DateFilterOption, DateFilterRelativeOptionGroup, IDateFilterOptionsByType, IExtendedDateFilterErrors, IDateFilterRelativeFormErrors, RelativeDateFilterOption, IUiAbsoluteDateFilterForm, IUiRelativeDateFilterForm, GranularityIntlKey, DateFilterLabelMode, IDateAndMessageTranslator, IDateTranslator, IMessageTranslator, IFilterConfigurationProps, IDateFilterAbsoluteDateTimeFormErrors, DateRangePosition, CalendarTabType, IFiscalTabsConfig, IUiRelativeDateFilterFormLike, } from "./DateFilter/index.js";
|
|
11
|
-
export { DateFilter, DateFilterHelpers, defaultDateFilterOptions, isAbsoluteDateFilterOption, isRelativeDateFilterOption, isRelativeDateFilterWithBoundOption, filterVisibleDateFilterOptions, isUiRelativeDateFilterForm, getLocalizedIcuDateFormatPattern, getFiscalTabsConfig, hasFiscalPresets, hasStandardPresets, filterStandardPresets, filterFiscalPresets, filterStandardGranularities, filterFiscalGranularities, getTabForPreset, isFiscalGranularity, ensureCompatibleGranularity, } from "./DateFilter/index.js";
|
|
11
|
+
export { DateFilter, DateFilterHelpers, defaultDateFilterOptions, isAbsoluteDateFilterOption, isRelativeDateFilterOption, isRelativeDateFilterWithBoundOption, filterVisibleDateFilterOptions, isUiRelativeDateFilterForm, getLocalizedIcuDateFormatPattern, getFiscalTabsConfig, getDefaultCalendarTab, hasFiscalPresets, hasStandardPresets, filterStandardPresets, filterFiscalPresets, filterStandardGranularities, filterFiscalGranularities, getTabForPreset, isFiscalGranularity, ensureCompatibleGranularity, } from "./DateFilter/index.js";
|
|
12
12
|
export type { IMeasureValueFilterProps, IMeasureValueFilterState, } from "./MeasureValueFilter/MeasureValueFilter.js";
|
|
13
13
|
export { MeasureValueFilter } from "./MeasureValueFilter/MeasureValueFilter.js";
|
|
14
14
|
export type { IMeasureValueFilterDropdownProps } from "./MeasureValueFilter/MeasureValueFilterDropdown.js";
|
|
@@ -26,6 +26,7 @@ export type { Correlation, CallbackRegistration, Callback, CallbackPayloadWithCo
|
|
|
26
26
|
export { newAttributeFilterHandler } from "./AttributeFilterHandler/index.js";
|
|
27
27
|
export type { IAttributeFilterProps, IAttributeFilterButtonProps, IAttributeFilterBaseProps, IAttributeFilterErrorProps, IAttributeFilterLoadingProps, IAttributeFilterDropdownButtonProps, IAttributeFilterDropdownBodyProps, IAttributeFilterDropdownActionsProps, IAttributeFilterElementsSearchBarProps, IAttributeFilterElementsActionsProps, IAttributeFilterElementsSelectProps, IAttributeFilterElementsSelectItemProps, IAttributeFilterElementsSelectErrorProps, IAttributeFilterElementsSelectLoadingProps, IAttributeFilterEmptyResultProps, IAttributeFilterStatusBarProps, OnApplyCallbackType, OnSelectCallbackType, ParentFilterOverAttributeType, IAttributeFilterCoreProps, IAttributeFilterCustomComponentProps, IUseAttributeFilterControllerProps, IUseAttributeFilterHandlerProps, IAttributeFilterContext, IAttributeDatasetInfoProps, IAttributeDisplayFormSelectProps, IAttributeFilterAllValuesFilteredResultProps, IAttributeFilterConfigurationButtonProps, IAttributeFilterDeleteButtonProps, IAttributeFilterFilteredStatusProps, IAttributeFilterSelectionStatusProps, IUseAttributeFilterSearchProps, AttributeFilterController, AttributeFilterControllerData, AttributeFilterControllerCallbacks, IAttributeFilterDependencyTooltipProps, } from "./AttributeFilter/index.js";
|
|
28
28
|
export { AttributeFilter, AttributeFilterButton, useAttributeFilterController, useAttributeFilterHandler, useAttributeFilterContext, AttributeDisplayFormSelect, AttributeFilterAllValuesFilteredResult, AttributeFilterConfigurationButton, AttributeFilterDeleteButton, AttributeFilterDropdownActions, AttributeFilterDropdownBody, AttributeFilterDropdownButton, AttributeFilterElementsActions, AttributeFilterElementsSearchBar, AttributeFilterElementsSelect, AttributeFilterElementsSelectError, AttributeFilterElementsSelectItem, SingleSelectionAttributeFilterElementsSelectItem, AttributeFilterElementsSelectLoading, AttributeFilterEmptyAttributeResult, AttributeFilterEmptyResult, AttributeFilterEmptySearchResult, AttributeFilterError, AttributeFilterFilteredStatus, AttributeFilterLoading, AttributeFilterSelectionStatus, AttributeFilterSimpleDropdownButton, AttributeFilterSimpleDropdownButtonWithSelection, AttributeFilterStatusBar, SingleSelectionAttributeFilterStatusBar, AttributeDatasetInfo, AttributeFilterButtonTooltip, EmptyElementsSearchBar, useAutoOpenAttributeFilterDropdownButton, useOnCloseAttributeFilterDropdownButton, useAttributeFilterSearch, AttributeFilterDependencyTooltip, getAttributeFilterSubtitle, } from "./AttributeFilter/index.js";
|
|
29
|
+
export { FilterGroup, type IFilterGroupProps } from "./FilterGroup/index.js";
|
|
29
30
|
export type { IFilterButtonCustomIcon, VisibilityMode } from "./shared/index.js";
|
|
30
31
|
export type { IDateFilterButtonProps } from "./DateFilter/DateFilterButton/DateFilterButton.js";
|
|
31
32
|
//# sourceMappingURL=index.d.ts.map
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// (C) 2019-
|
|
2
|
-
export { DateFilter, DateFilterHelpers, defaultDateFilterOptions, isAbsoluteDateFilterOption, isRelativeDateFilterOption, isRelativeDateFilterWithBoundOption, filterVisibleDateFilterOptions, isUiRelativeDateFilterForm, getLocalizedIcuDateFormatPattern, getFiscalTabsConfig, hasFiscalPresets, hasStandardPresets, filterStandardPresets, filterFiscalPresets, filterStandardGranularities, filterFiscalGranularities, getTabForPreset, isFiscalGranularity, ensureCompatibleGranularity, } from "./DateFilter/index.js";
|
|
1
|
+
// (C) 2019-2026 GoodData Corporation
|
|
2
|
+
export { DateFilter, DateFilterHelpers, defaultDateFilterOptions, isAbsoluteDateFilterOption, isRelativeDateFilterOption, isRelativeDateFilterWithBoundOption, filterVisibleDateFilterOptions, isUiRelativeDateFilterForm, getLocalizedIcuDateFormatPattern, getFiscalTabsConfig, getDefaultCalendarTab, hasFiscalPresets, hasStandardPresets, filterStandardPresets, filterFiscalPresets, filterStandardGranularities, filterFiscalGranularities, getTabForPreset, isFiscalGranularity, ensureCompatibleGranularity, } from "./DateFilter/index.js";
|
|
3
3
|
export { MeasureValueFilter } from "./MeasureValueFilter/MeasureValueFilter.js";
|
|
4
4
|
export { MeasureValueFilterDropdown } from "./MeasureValueFilter/MeasureValueFilterDropdown.js";
|
|
5
5
|
export { isWarningMessage } from "./MeasureValueFilter/typings.js";
|
|
@@ -8,4 +8,5 @@ export { RankingFilter } from "./RankingFilter/RankingFilter.js";
|
|
|
8
8
|
export { RankingFilterDropdown } from "./RankingFilter/RankingFilterDropdown.js";
|
|
9
9
|
export { newAttributeFilterHandler } from "./AttributeFilterHandler/index.js";
|
|
10
10
|
export { AttributeFilter, AttributeFilterButton, useAttributeFilterController, useAttributeFilterHandler, useAttributeFilterContext, AttributeDisplayFormSelect, AttributeFilterAllValuesFilteredResult, AttributeFilterConfigurationButton, AttributeFilterDeleteButton, AttributeFilterDropdownActions, AttributeFilterDropdownBody, AttributeFilterDropdownButton, AttributeFilterElementsActions, AttributeFilterElementsSearchBar, AttributeFilterElementsSelect, AttributeFilterElementsSelectError, AttributeFilterElementsSelectItem, SingleSelectionAttributeFilterElementsSelectItem, AttributeFilterElementsSelectLoading, AttributeFilterEmptyAttributeResult, AttributeFilterEmptyResult, AttributeFilterEmptySearchResult, AttributeFilterError, AttributeFilterFilteredStatus, AttributeFilterLoading, AttributeFilterSelectionStatus, AttributeFilterSimpleDropdownButton, AttributeFilterSimpleDropdownButtonWithSelection, AttributeFilterStatusBar, SingleSelectionAttributeFilterStatusBar, AttributeDatasetInfo, AttributeFilterButtonTooltip, EmptyElementsSearchBar, useAutoOpenAttributeFilterDropdownButton, useOnCloseAttributeFilterDropdownButton, useAttributeFilterSearch, AttributeFilterDependencyTooltip, getAttributeFilterSubtitle, } from "./AttributeFilter/index.js";
|
|
11
|
+
export { FilterGroup } from "./FilterGroup/index.js";
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAuCrC,OAAO,EACH,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,mCAAmC,EACnC,8BAA8B,EAC9B,0BAA0B,EAC1B,gCAAgC,EAChC,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,2BAA2B,GAC9B,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAEhF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAQhG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAiEjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAwC9E,OAAO,EACH,eAAe,EACf,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,sCAAsC,EACtC,kCAAkC,EAClC,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,gCAAgC,EAChC,6BAA6B,EAC7B,kCAAkC,EAClC,iCAAiC,EACjC,gDAAgD,EAChD,oCAAoC,EACpC,mCAAmC,EACnC,0BAA0B,EAC1B,gCAAgC,EAChC,oBAAoB,EACpB,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,mCAAmC,EACnC,gDAAgD,EAChD,wBAAwB,EACxB,uCAAuC,EACvC,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,wCAAwC,EACxC,uCAAuC,EACvC,wBAAwB,EACxB,gCAAgC,EAChC,0BAA0B,GAC7B,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAuCrC,OAAO,EACH,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,mCAAmC,EACnC,8BAA8B,EAC9B,0BAA0B,EAC1B,gCAAgC,EAChC,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,2BAA2B,GAC9B,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAEhF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAQhG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAiEjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAwC9E,OAAO,EACH,eAAe,EACf,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,sCAAsC,EACtC,kCAAkC,EAClC,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,gCAAgC,EAChC,6BAA6B,EAC7B,kCAAkC,EAClC,iCAAiC,EACjC,gDAAgD,EAChD,oCAAoC,EACpC,mCAAmC,EACnC,0BAA0B,EAC1B,gCAAgC,EAChC,oBAAoB,EACpB,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,mCAAmC,EACnC,gDAAgD,EAChD,wBAAwB,EACxB,uCAAuC,EACvC,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,wCAAwC,EACxC,uCAAuC,EACvC,wBAAwB,EACxB,gCAAgC,EAChC,0BAA0B,GAC7B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,WAAW,EAA0B,MAAM,wBAAwB,CAAC"}
|
package/esm/sdk-ui-filters.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ import { GoodDataSdkError } from '@gooddata/sdk-ui';
|
|
|
19
19
|
import { IAbsoluteDateFilter } from '@gooddata/sdk-model';
|
|
20
20
|
import { IAbsoluteDateFilterForm } from '@gooddata/sdk-model';
|
|
21
21
|
import { IAbsoluteDateFilterPreset } from '@gooddata/sdk-model';
|
|
22
|
+
import { IActiveCalendars } from '@gooddata/sdk-model';
|
|
22
23
|
import { IAlignPoint } from '@gooddata/sdk-ui-kit';
|
|
23
24
|
import { IAllTimeDateFilterOption } from '@gooddata/sdk-model';
|
|
24
25
|
import { IAnalyticalBackend } from '@gooddata/sdk-backend-spi';
|
|
@@ -360,7 +361,7 @@ export declare function AttributeFilterDropdownBody({ onApplyButtonClick, onCanc
|
|
|
360
361
|
*
|
|
361
362
|
* @beta
|
|
362
363
|
*/
|
|
363
|
-
export declare function AttributeFilterDropdownButton({ isOpen, title, selectedItemsCount, showSelectionCount, subtitle, disabled, customIcon, isFiltering, isLoading, isLoaded, isError, isDraggable, icon, TooltipContentComponent, titleExtension, onClick, className, buttonRef, dropdownId, }: IAttributeFilterDropdownButtonProps): JSX.Element;
|
|
364
|
+
export declare function AttributeFilterDropdownButton({ isOpen, title, selectedItemsCount, totalItemsCount, showSelectionCount, subtitle, disabled, customIcon, isFiltering, isLoading, isLoaded, isError, isDraggable, icon, TooltipContentComponent, titleExtension, onClick, className, buttonRef, dropdownId, }: IAttributeFilterDropdownButtonProps): JSX.Element;
|
|
364
365
|
|
|
365
366
|
/**
|
|
366
367
|
* It displays three state a checkbox and allow select all or none elements that respect current search criteria.
|
|
@@ -549,16 +550,16 @@ export declare const DateFilterHelpers: {
|
|
|
549
550
|
getDateFilterTitleUsingTranslator: (filter: DateFilterOption, translator: IDateAndMessageTranslator, dateFormat?: string, labelMode?: DateFilterLabelMode) => string;
|
|
550
551
|
getDateFilterRepresentation: (filter: DateFilterOption, locale: ILocale, messages: ITranslations, dateFormat?: string, labelMode?: DateFilterLabelMode) => string;
|
|
551
552
|
granularityIntlCodes: {
|
|
552
|
-
"GDC.time.
|
|
553
|
-
"GDC.time.
|
|
553
|
+
"GDC.time.minute": GranularityIntlKey;
|
|
554
|
+
"GDC.time.hour": GranularityIntlKey;
|
|
555
|
+
"GDC.time.date": GranularityIntlKey;
|
|
554
556
|
"GDC.time.week_us": GranularityIntlKey;
|
|
555
|
-
"GDC.time.quarter": GranularityIntlKey;
|
|
556
|
-
"GDC.time.fiscal_quarter": GranularityIntlKey;
|
|
557
557
|
"GDC.time.month": GranularityIntlKey;
|
|
558
558
|
"GDC.time.fiscal_month": GranularityIntlKey;
|
|
559
|
-
"GDC.time.
|
|
560
|
-
"GDC.time.
|
|
561
|
-
"GDC.time.
|
|
559
|
+
"GDC.time.quarter": GranularityIntlKey;
|
|
560
|
+
"GDC.time.fiscal_quarter": GranularityIntlKey;
|
|
561
|
+
"GDC.time.year": GranularityIntlKey;
|
|
562
|
+
"GDC.time.fiscal_year": GranularityIntlKey;
|
|
562
563
|
};
|
|
563
564
|
applyExcludeCurrentPeriod: (dateFilterOption: DateFilterOption | undefined, excludeCurrentPeriod: boolean) => DateFilterOption | undefined;
|
|
564
565
|
defaultDateFilterOptions: IDateFilterOptionsByType;
|
|
@@ -643,6 +644,13 @@ export declare function filterFiscalGranularities(granularities: DateFilterGranu
|
|
|
643
644
|
*/
|
|
644
645
|
export declare function filterFiscalPresets(presets: DateFilterRelativeOptionGroup): DateFilterRelativeOptionGroup;
|
|
645
646
|
|
|
647
|
+
/**
|
|
648
|
+
* FilterGroup is a component that renders a dropdown button with multiple attribute filters
|
|
649
|
+
*
|
|
650
|
+
* @public
|
|
651
|
+
*/
|
|
652
|
+
export declare function FilterGroup(props: IFilterGroupProps): JSX.Element;
|
|
653
|
+
|
|
646
654
|
/**
|
|
647
655
|
* Filter granularities for the standard tab view.
|
|
648
656
|
* Excludes all fiscal granularities.
|
|
@@ -674,12 +682,39 @@ export declare function filterVisibleDateFilterOptions(dateFilterOptions: IDateF
|
|
|
674
682
|
export declare function getAttributeFilterSubtitle(isCommittedSelectionInverted: boolean, committedSelectionElements: IAttributeElement[], intl: IntlShape): string;
|
|
675
683
|
|
|
676
684
|
/**
|
|
677
|
-
*
|
|
685
|
+
* Determine the default calendar tab based on active calendars configuration.
|
|
686
|
+
*
|
|
687
|
+
* @remarks
|
|
688
|
+
* Priority:
|
|
689
|
+
* 1. If current preset is fiscal, stay on fiscal tab (respect user's current selection)
|
|
690
|
+
* 2. Otherwise, use the default from activeCalendars settings
|
|
691
|
+
* 3. Fall back to "standard" if no configuration
|
|
692
|
+
*
|
|
693
|
+
* @param activeCalendars - Optional active calendars configuration from workspace settings
|
|
694
|
+
* @param currentPreset - The currently selected date filter option
|
|
695
|
+
* @returns The tab that should be selected by default
|
|
696
|
+
* @alpha
|
|
697
|
+
*/
|
|
698
|
+
export declare function getDefaultCalendarTab(activeCalendars?: IActiveCalendars, currentPreset?: DateFilterOption): CalendarTabType;
|
|
699
|
+
|
|
700
|
+
/**
|
|
701
|
+
* Get fiscal tabs configuration based on available presets and active calendars settings.
|
|
702
|
+
*
|
|
703
|
+
* @remarks
|
|
704
|
+
* When `activeCalendars` is provided, it controls which calendar types are enabled:
|
|
705
|
+
* - `activeCalendars.standard === true` enables standard calendar
|
|
706
|
+
* - `activeCalendars.fiscal === true` enables fiscal calendar
|
|
707
|
+
* - Both enabled → show tabs for switching between calendars
|
|
708
|
+
* - Only one enabled → no tabs, show only that calendar type
|
|
709
|
+
*
|
|
710
|
+
* When `activeCalendars` is undefined (not configured), defaults to standard only.
|
|
711
|
+
*
|
|
678
712
|
* @param presets - The relative presets option group to check, or undefined
|
|
713
|
+
* @param activeCalendars - Optional active calendars configuration from workspace settings
|
|
679
714
|
* @returns Configuration object with hasFiscal, hasStandard, and showTabs flags
|
|
680
715
|
* @alpha
|
|
681
716
|
*/
|
|
682
|
-
export declare function getFiscalTabsConfig(presets: DateFilterRelativeOptionGroup | undefined): IFiscalTabsConfig;
|
|
717
|
+
export declare function getFiscalTabsConfig(presets: DateFilterRelativeOptionGroup | undefined, activeCalendars?: IActiveCalendars): IFiscalTabsConfig;
|
|
683
718
|
|
|
684
719
|
/**
|
|
685
720
|
* Returns localized date format pattern for DAY granularity according to ICU. Unsupported locales default to en-US.
|
|
@@ -1230,7 +1265,7 @@ export declare interface IAttributeFilterConfigurationButtonProps {
|
|
|
1230
1265
|
* The return type of {@link useAttributeFilterContext}.
|
|
1231
1266
|
* @beta
|
|
1232
1267
|
*/
|
|
1233
|
-
export declare type IAttributeFilterContext = AttributeFilterController & Pick<IAttributeFilterCoreProps, "fullscreenOnMobile" | "title" | "selectionMode" | "selectFirst" | "disabled" | "customIcon" | "withoutApply" | "workingFilter" | "overlayPositionType">;
|
|
1268
|
+
export declare type IAttributeFilterContext = AttributeFilterController & Pick<IAttributeFilterCoreProps, "fullscreenOnMobile" | "title" | "selectionMode" | "selectFirst" | "disabled" | "customIcon" | "withoutApply" | "workingFilter" | "overlayPositionType" | "alignPoints">;
|
|
1234
1269
|
|
|
1235
1270
|
/**
|
|
1236
1271
|
* @public
|
|
@@ -1434,6 +1469,13 @@ export declare interface IAttributeFilterCoreProps {
|
|
|
1434
1469
|
* Callback that will be triggered when error is thrown.
|
|
1435
1470
|
*/
|
|
1436
1471
|
onError?: (error: GoodDataSdkError) => void;
|
|
1472
|
+
/**
|
|
1473
|
+
* Callback that will be triggered when initialization loading state changes.
|
|
1474
|
+
*
|
|
1475
|
+
* @param loading - true if loading, false if not loading
|
|
1476
|
+
* @param attribute - attribute metadata object when it is a success event, undefined otherwise
|
|
1477
|
+
*/
|
|
1478
|
+
onInitLoadingChanged?: (loading: boolean, attribute?: IAttributeMetadataObject) => void;
|
|
1437
1479
|
/**
|
|
1438
1480
|
* Enables the migration of displayAsLabel to be immediately reported to the parent app.
|
|
1439
1481
|
*/
|
|
@@ -1442,6 +1484,11 @@ export declare interface IAttributeFilterCoreProps {
|
|
|
1442
1484
|
* Specifies the overlay position type for the attribute filter dropdown.
|
|
1443
1485
|
*/
|
|
1444
1486
|
overlayPositionType?: OverlayPositionType;
|
|
1487
|
+
/**
|
|
1488
|
+
* Specifies the align points for the attribute filter dropdown body.
|
|
1489
|
+
* In other words where the dropdown body should be placed.
|
|
1490
|
+
*/
|
|
1491
|
+
alignPoints?: IAlignPoint[];
|
|
1445
1492
|
}
|
|
1446
1493
|
|
|
1447
1494
|
/**
|
|
@@ -1676,6 +1723,12 @@ export declare interface IAttributeFilterDropdownButtonProps {
|
|
|
1676
1723
|
* @beta
|
|
1677
1724
|
*/
|
|
1678
1725
|
selectedItemsCount?: number;
|
|
1726
|
+
/**
|
|
1727
|
+
* Total items count. Shown beside the selected items count if showSelectionCount is true.
|
|
1728
|
+
*
|
|
1729
|
+
* @beta
|
|
1730
|
+
*/
|
|
1731
|
+
totalItemsCount?: number;
|
|
1679
1732
|
/**
|
|
1680
1733
|
*
|
|
1681
1734
|
* @beta
|
|
@@ -2713,6 +2766,21 @@ export declare interface IDateFilterOwnProps extends IDateFilterStatePropsInters
|
|
|
2713
2766
|
* @alpha
|
|
2714
2767
|
*/
|
|
2715
2768
|
improveAccessibility?: boolean;
|
|
2769
|
+
/**
|
|
2770
|
+
* Active calendars configuration from workspace settings.
|
|
2771
|
+
* Controls which calendar types (standard/fiscal) are available in the filter.
|
|
2772
|
+
*
|
|
2773
|
+
* @remarks
|
|
2774
|
+
* When provided:
|
|
2775
|
+
* - `standard: true` enables standard calendar presets
|
|
2776
|
+
* - `fiscal: true` enables fiscal calendar presets
|
|
2777
|
+
* - `default` determines which tab is selected by default ("STANDARD" or "FISCAL")
|
|
2778
|
+
*
|
|
2779
|
+
* When undefined, defaults to standard calendar only.
|
|
2780
|
+
*
|
|
2781
|
+
* @alpha
|
|
2782
|
+
*/
|
|
2783
|
+
activeCalendars?: IActiveCalendars;
|
|
2716
2784
|
}
|
|
2717
2785
|
|
|
2718
2786
|
/**
|
|
@@ -2864,6 +2932,14 @@ export declare interface IFilterConfigurationProps {
|
|
|
2864
2932
|
onCancelButtonClick: () => void;
|
|
2865
2933
|
}
|
|
2866
2934
|
|
|
2935
|
+
/**
|
|
2936
|
+
* @public
|
|
2937
|
+
*/
|
|
2938
|
+
export declare interface IFilterGroupProps {
|
|
2939
|
+
title: string;
|
|
2940
|
+
filters: IAttributeFilterButtonProps[];
|
|
2941
|
+
}
|
|
2942
|
+
|
|
2867
2943
|
/**
|
|
2868
2944
|
* Configuration for fiscal calendar tabs.
|
|
2869
2945
|
* @alpha
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-filters",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.16.0-alpha.1",
|
|
4
4
|
"description": "GoodData.UI SDK - Filter Components",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -47,11 +47,11 @@
|
|
|
47
47
|
"ts-invariant": "^0.7.5",
|
|
48
48
|
"tslib": "2.8.1",
|
|
49
49
|
"uuid": "^11.1.0",
|
|
50
|
-
"@gooddata/sdk-backend-spi": "11.
|
|
51
|
-
"@gooddata/sdk-
|
|
52
|
-
"@gooddata/sdk-
|
|
53
|
-
"@gooddata/
|
|
54
|
-
"@gooddata/
|
|
50
|
+
"@gooddata/sdk-backend-spi": "11.16.0-alpha.1",
|
|
51
|
+
"@gooddata/sdk-ui": "11.16.0-alpha.1",
|
|
52
|
+
"@gooddata/sdk-model": "11.16.0-alpha.1",
|
|
53
|
+
"@gooddata/util": "11.16.0-alpha.1",
|
|
54
|
+
"@gooddata/sdk-ui-kit": "11.16.0-alpha.1"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@gooddata/stylelint-config": "^5.0.0",
|
|
@@ -94,10 +94,10 @@
|
|
|
94
94
|
"typescript": "5.9.3",
|
|
95
95
|
"vitest": "3.2.4",
|
|
96
96
|
"vitest-dom": "0.1.1",
|
|
97
|
-
"@gooddata/
|
|
98
|
-
"@gooddata/
|
|
99
|
-
"@gooddata/sdk-
|
|
100
|
-
"@gooddata/
|
|
97
|
+
"@gooddata/reference-workspace": "11.16.0-alpha.1",
|
|
98
|
+
"@gooddata/sdk-ui-theme-provider": "11.16.0-alpha.1",
|
|
99
|
+
"@gooddata/sdk-backend-mockingbird": "11.16.0-alpha.1",
|
|
100
|
+
"@gooddata/eslint-config": "11.16.0-alpha.1"
|
|
101
101
|
},
|
|
102
102
|
"peerDependencies": {
|
|
103
103
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.dropdown-body .gd-list.gd-filter-group-body {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
border: 1px solid var(--gd-palette-complementary-3, #dde4eb);
|
|
5
|
+
border-radius: 3px;
|
|
6
|
+
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
min-width: 150px;
|
|
9
|
+
max-width: 300px;
|
|
10
|
+
max-height: 450px;
|
|
11
|
+
overflow-y: auto;
|
|
12
|
+
margin: 0;
|
|
13
|
+
}
|
|
14
|
+
.dropdown-body .gd-list.gd-filter-group-body .fixedDataTableRowLayout_rowWrapper .gd-filter-group-item {
|
|
15
|
+
border-bottom: 1px solid var(--gd-palette-complementary-3, #dde4eb);
|
|
16
|
+
}
|
|
17
|
+
.dropdown-body .gd-list.gd-filter-group-body .fixedDataTableRowLayout_rowWrapper:last-child .gd-filter-group-item {
|
|
18
|
+
border-bottom: none;
|
|
19
|
+
}
|
|
20
|
+
.dropdown-body .gd-list.gd-filter-group-body .gd-attribute-filter__next {
|
|
21
|
+
display: block;
|
|
22
|
+
}
|
|
23
|
+
.dropdown-body .gd-list.gd-filter-group-body .fixedDataTableLayout_main {
|
|
24
|
+
height: auto;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/*# sourceMappingURL=filterGroup.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../scss/filterGroup.scss"],"names":[],"mappings":"AAGA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGI;EACI;;AAGJ;EACI;;AAIR;EACI;;AAGJ;EACI","file":"filterGroup.css"}
|