@gooddata/sdk-ui-filters 11.65.0-alpha.0 → 11.65.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/Components/ElementsSelect/AttributeFilterElementsSelect.d.ts.map +1 -1
- package/esm/AttributeFilter/Components/ElementsSelect/AttributeFilterElementsSelect.js +5 -2
- package/esm/AttributeFilter/Components/ElementsSelect/AttributeFilterElementsSelectItem.d.ts +1 -1
- package/esm/AttributeFilter/Components/ElementsSelect/AttributeFilterElementsSelectItem.d.ts.map +1 -1
- package/esm/AttributeFilter/Components/ElementsSelect/AttributeFilterElementsSelectItem.js +3 -2
- package/esm/AttributeFilter/Components/ElementsSelect/SingleSelectionAttributeFilterElementsSelectItem.d.ts +1 -1
- package/esm/AttributeFilter/Components/ElementsSelect/SingleSelectionAttributeFilterElementsSelectItem.d.ts.map +1 -1
- package/esm/AttributeFilter/Components/ElementsSelect/SingleSelectionAttributeFilterElementsSelectItem.js +3 -2
- package/esm/AttributeFilter/Components/ElementsSelect/types.d.ts +7 -0
- package/esm/AttributeFilter/Components/ElementsSelect/types.d.ts.map +1 -1
- package/esm/AttributeFilter/hooks/types.d.ts +13 -1
- package/esm/AttributeFilter/hooks/types.d.ts.map +1 -1
- package/esm/AttributeFilter/hooks/useAttributeFilterController.d.ts.map +1 -1
- package/esm/AttributeFilter/hooks/useAttributeFilterController.js +2 -1
- package/esm/AttributeFilter/hooks/useAttributeFilterControllerData.d.ts +2 -1
- package/esm/AttributeFilter/hooks/useAttributeFilterControllerData.d.ts.map +1 -1
- package/esm/AttributeFilter/hooks/useAttributeFilterControllerData.js +4 -1
- package/esm/AttributeFilter/hooks/useAttributeFilterHandler.d.ts +2 -1
- package/esm/AttributeFilter/hooks/useAttributeFilterHandler.d.ts.map +1 -1
- package/esm/AttributeFilter/hooks/useAttributeFilterHandler.js +25 -4
- package/esm/AttributeFilter/hooks/useAttributeFilterHandlerState.d.ts +1 -0
- package/esm/AttributeFilter/hooks/useAttributeFilterHandlerState.d.ts.map +1 -1
- package/esm/AttributeFilter/hooks/useAttributeFilterHandlerState.js +1 -0
- package/esm/AttributeFilter/hooks/useElementsFilterController.d.ts +2 -1
- package/esm/AttributeFilter/hooks/useElementsFilterController.d.ts.map +1 -1
- package/esm/AttributeFilter/hooks/useElementsFilterController.js +3 -2
- package/esm/AttributeFilter/types.d.ts +9 -1
- package/esm/AttributeFilter/types.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/factory.d.ts +9 -1
- package/esm/AttributeFilterHandler/factory.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/factory.js +3 -1
- package/esm/AttributeFilterHandler/internal/bridge.d.ts +1 -0
- package/esm/AttributeFilterHandler/internal/bridge.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/bridge.js +4 -1
- package/esm/AttributeFilterHandler/internal/loader.d.ts +1 -0
- package/esm/AttributeFilterHandler/internal/loader.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/loader.js +3 -0
- package/esm/AttributeFilterHandler/internal/redux/displayForms/displayFormsReducers.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/redux/displayForms/displayFormsReducers.js +1 -0
- package/esm/AttributeFilterHandler/internal/redux/elements/InMemoryPaging.d.ts +2 -1
- package/esm/AttributeFilterHandler/internal/redux/elements/InMemoryPaging.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/redux/elements/InMemoryPaging.js +5 -3
- package/esm/AttributeFilterHandler/internal/redux/elements/elementsSaga.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/redux/elements/elementsSaga.js +3 -0
- package/esm/AttributeFilterHandler/internal/redux/elements/elementsSelectors.d.ts +8 -2
- package/esm/AttributeFilterHandler/internal/redux/elements/elementsSelectors.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/redux/elements/elementsSelectors.js +16 -3
- package/esm/AttributeFilterHandler/internal/redux/elements/formatElementTitles.d.ts +13 -0
- package/esm/AttributeFilterHandler/internal/redux/elements/formatElementTitles.d.ts.map +1 -0
- package/esm/AttributeFilterHandler/internal/redux/elements/formatElementTitles.js +36 -0
- package/esm/AttributeFilterHandler/internal/redux/elements/loadElementsFromBackend.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/redux/elements/loadElementsFromBackend.js +11 -7
- package/esm/AttributeFilterHandler/internal/redux/elements/numericElementValues.d.ts +41 -0
- package/esm/AttributeFilterHandler/internal/redux/elements/numericElementValues.d.ts.map +1 -0
- package/esm/AttributeFilterHandler/internal/redux/elements/numericElementValues.js +103 -0
- package/esm/AttributeFilterHandler/internal/redux/loadCustomElements/loadCustomElementsReducers.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/redux/loadCustomElements/loadCustomElementsReducers.js +5 -0
- package/esm/AttributeFilterHandler/internal/redux/loadInitialElementsPage/loadInitialElementsPageReducers.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/redux/loadInitialElementsPage/loadInitialElementsPageReducers.js +4 -0
- package/esm/AttributeFilterHandler/internal/redux/loadNextElementsPage/loadNextElementsPageReducers.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/redux/loadNextElementsPage/loadNextElementsPageReducers.js +3 -0
- package/esm/AttributeFilterHandler/internal/redux/store/createStore.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/redux/store/createStore.js +1 -0
- package/esm/AttributeFilterHandler/internal/redux/store/state.d.ts +10 -1
- package/esm/AttributeFilterHandler/internal/redux/store/state.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/internal/redux/store/types.d.ts +5 -1
- package/esm/AttributeFilterHandler/internal/redux/store/types.d.ts.map +1 -1
- package/esm/AttributeFilterHandler/types/elementsLoader.d.ts +15 -0
- package/esm/AttributeFilterHandler/types/elementsLoader.d.ts.map +1 -1
- package/esm/sdk-ui-filters.d.ts +53 -2
- package/package.json +12 -12
|
@@ -72,6 +72,7 @@ export declare class AttributeFilterLoader implements IAttributeFilterLoader {
|
|
|
72
72
|
getOffset: () => number;
|
|
73
73
|
setSearch: (search: string) => void;
|
|
74
74
|
getSearch: () => string;
|
|
75
|
+
getElementsNumberFormat: () => string | undefined;
|
|
75
76
|
setLimit: (limit: number) => void;
|
|
76
77
|
getLimit: () => number;
|
|
77
78
|
setOrder: (order: SortDirection) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/AttributeFilterHandler/internal/loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/AttributeFilterHandler/internal/loader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACX,KAAK,aAAa,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACpC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,EACxC,KAAK,mCAAmC,EACxC,KAAK,qCAAqC,EAC7C,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EACH,KAAK,oBAAoB,EACzB,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,EACzC,KAAK,oCAAoC,EACzC,KAAK,sCAAsC,EAC3C,KAAK,yCAAyC,EAC9C,KAAK,wCAAwC,EAC7C,KAAK,wCAAwC,EAC7C,KAAK,0CAA0C,EAC/C,KAAK,8CAA8C,EACnD,KAAK,6CAA6C,EAClD,KAAK,6CAA6C,EAClD,KAAK,+CAA+C,EACpD,KAAK,6CAA6C,EAClD,KAAK,4CAA4C,EACjD,KAAK,4CAA4C,EACjD,KAAK,8CAA8C,EACnD,KAAK,2CAA2C,EAChD,KAAK,0CAA0C,EAC/C,KAAK,0CAA0C,EAC/C,KAAK,4CAA4C,EACpD,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE/D;;GAEG;AACH,qBAAa,qBAAsB,YAAW,sBAAsB;IAChE,SAAS,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC7C,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAE/C,SAAS,aAAa,MAAM,EAAE,4BAA4B,EAGzD;IAED,OAAO,CAAC,0BAA0B,CAiBhC;IAKF,IAAI,iBACa,WAAW,wBACF,OAAO,6BACF,OAAO,KACnC,IAAI,CAGL;IAEF,WAAW,EAAE,oBAAoB,CAAC,0BAA0B,CAAC,CAE3D;IAEF,aAAa,EAAE,oBAAoB,CAAC,4BAA4B,CAAC,CAE/D;IAEF,WAAW,EAAE,oBAAoB,CAAC,0BAA0B,CAAC,CAE3D;IAEF,YAAY,EAAE,oBAAoB,CAAC,2BAA2B,CAAC,CAE7D;IAEF,aAAa,QAAO,oBAAoB,CAEtC;IAEF,YAAY,QAAO,gBAAgB,GAAG,SAAS,CAE7C;IAKF,cAAc,iBAAiB,WAAW,KAAY,IAAI,CAExD;IAEF,uBAAuB,QAAO,oBAAoB,CAEhD;IAEF,sBAAsB,QAAO,gBAAgB,GAAG,SAAS,CAEvD;IAEF,qBAAqB,EAAE,oBAAoB,CAAC,oCAAoC,CAAC,CAE/E;IAEF,uBAAuB,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,CAEnF;IAEF,qBAAqB,EAAE,oBAAoB,CAAC,oCAAoC,CAAC,CAE/E;IAEF,sBAAsB,EAAE,oBAAoB,CAAC,qCAAqC,CAAC,CAEjF;IAMF,aAAa,iBAAiB,WAAW,KAAY,IAAI,CAEvD;IAEF,mBAAmB,QAAO,IAAI,CAE5B;IAEF,YAAY,QAAO,wBAAwB,GAAG,SAAS,CAErD;IAEF,iBAAiB,QAAO,gBAAgB,GAAG,SAAS,CAElD;IAEF,kBAAkB,QAAO,oBAAoB,CAE3C;IAEF,oBAAoB,EAAE,oBAAoB,CAAC,mCAAmC,CAAC,CAE7E;IAEF,sBAAsB,EAAE,oBAAoB,CAAC,qCAAqC,CAAC,CAEjF;IAEF,oBAAoB,EAAE,oBAAoB,CAAC,mCAAmC,CAAC,CAE7E;IAEF,qBAAqB,EAAE,oBAAoB,CAAC,oCAAoC,CAAC,CAE/E;IAIF,uBAAuB,iBAAiB,WAAW,KAAY,IAAI,CAejE;IAEF,6BAA6B,IAAI,IAAI,CAEpC;IAED,4BAA4B,QAAO,oBAAoB,CAErD;IAEF,2BAA2B,QAAO,gBAAgB,GAAG,SAAS,CAE5D;IAEF,8BAA8B,EAAE,oBAAoB,CAAC,6CAA6C,CAAC,CAIjG;IAEF,gCAAgC,EAAE,oBAAoB,CAAC,+CAA+C,CAAC,CAGjG;IAEN,8BAA8B,EAAE,oBAAoB,CAAC,6CAA6C,CAAC,CAIjG;IAEF,+BAA+B,EAAE,oBAAoB,CAAC,8CAA8C,CAAC,CAInG;IAMF,oBAAoB,iBAAiB,WAAW,KAAY,IAAI,CAe9D;IAEF,0BAA0B,IAAI,IAAI,CAEjC;IAED,yBAAyB,QAAO,oBAAoB,CAElD;IAEF,wBAAwB,QAAO,gBAAgB,GAAG,SAAS,CAEzD;IAEF,2BAA2B,EAAE,oBAAoB,CAAC,0CAA0C,CAAC,CAE3F;IAEF,6BAA6B,EAAE,oBAAoB,CAAC,4CAA4C,CAAC,CAI/F;IAEF,2BAA2B,EAAE,oBAAoB,CAAC,0CAA0C,CAAC,CAE3F;IAEF,4BAA4B,EAAE,oBAAoB,CAAC,2CAA2C,CAAC,CAI7F;IAMF,kBAAkB,YAAa,oBAAoB,gBAAgB,WAAW,KAAG,IAAI,CAEnF;IAEF,wBAAwB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAExD;IAED,yBAAyB,EAAE,oBAAoB,CAAC,wCAAwC,CAAC,CAEvF;IAEF,2BAA2B,EAAE,oBAAoB,CAAC,0CAA0C,CAAC,CAE3F;IAEF,yBAAyB,EAAE,oBAAoB,CAAC,wCAAwC,CAAC,CAEvF;IAEF,0BAA0B,EAAE,oBAAoB,CAAC,yCAAyC,CAAC,CAEzF;IAMF,sBAAsB,iBAAkB,WAAW,KAAG,IAAI,CAExD;IAEF,4BAA4B,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAE5D;IAED,6BAA6B,EAAE,oBAAoB,CAAC,4CAA4C,CAAC,CAI/F;IAEF,+BAA+B,EAAE,oBAAoB,CAAC,8CAA8C,CAAC,CAInG;IAEF,6BAA6B,EAAE,oBAAoB,CAAC,4CAA4C,CAAC,CAI/F;IAEF,8BAA8B,EAAE,oBAAoB,CAAC,6CAA6C,CAAC,CAIjG;IAGF,iBAAiB,mBAAoB,MAAM,KAAG,IAAI,CAEhD;IAEF,iBAAiB,QAAO,MAAM,GAAG,SAAS,CAExC;IAEF,cAAc,UAAW,MAAM,KAAG,IAAI,CAEpC;IAEF,SAAS,QAAO,MAAM,CAEpB;IAEF,SAAS,WAAY,MAAM,KAAG,IAAI,CAEhC;IAEF,SAAS,QAAO,MAAM,CAEpB;IAEF,uBAAuB,QAAO,MAAM,GAAG,SAAS,CAE9C;IAEF,QAAQ,UAAW,MAAM,KAAG,IAAI,CAE9B;IAEF,QAAQ,QAAO,MAAM,CAEnB;IAEF,QAAQ,UAAW,aAAa,KAAG,IAAI,CAErC;IAEF,QAAQ,QAAO,aAAa,GAAG,SAAS,CAEtC;IAEF,mBAAmB,aAAc,QAAQ,EAAE,KAAG,IAAI,CAEhD;IAEF,mBAAmB,QAAO,QAAQ,EAAE,CAElC;IAEF,0BAA0B,eAAgB,MAAM,EAAE,KAAG,IAAI,CAEvD;IAEF,0BAA0B,QAAO,MAAM,EAAE,CAEvC;IAEF,2BAA2B,YAAa,6BAA6B,EAAE,KAAG,IAAI,CAE5E;IAEF,2BAA2B,QAAO,6BAA6B,EAAE,CAE/D;IAEF,sBAAsB,YAAa,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,KAAG,IAAI,CAErF;IAEF,sBAAsB,QAAO,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAExE;IAEF,cAAc,QAAO,iBAAiB,EAAE,CAEtC;IAEF,gBAAgB,SAAU,MAAM,EAAE,KAAG,iBAAiB,EAAE,CAEtD;IAEF,qBAAqB,QAAO,MAAM,GAAG,SAAS,CAE5C;IAEF,wCAAwC,QAAO,MAAM,GAAG,SAAS,CAE/D;IAEF,qCAAqC,QAAO,wBAAwB,EAAE,CAEpE;IAEF,SAAS,QAAO,gBAAgB,CAE9B;IAEF,kBAAkB,QAAO,gBAAgB,CAEvC;IAEF,iBAAiB,QAAO,gBAAgB,GAAG,SAAS,CAElD;IAEF,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAElC;CACL"}
|
|
@@ -222,6 +222,9 @@ export class AttributeFilterLoader {
|
|
|
222
222
|
getSearch = () => {
|
|
223
223
|
return this.bridge.getSearch();
|
|
224
224
|
};
|
|
225
|
+
getElementsNumberFormat = () => {
|
|
226
|
+
return this.bridge.getElementsNumberFormat();
|
|
227
|
+
};
|
|
225
228
|
setLimit = (limit) => {
|
|
226
229
|
this.bridge.setLimit(limit);
|
|
227
230
|
};
|
package/esm/AttributeFilterHandler/internal/redux/displayForms/displayFormsReducers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"displayFormsReducers.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/displayForms/displayFormsReducers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"displayFormsReducers.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/displayForms/displayFormsReducers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AA6BhE;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;6BA7BI,MAAM;+BAAqB,MAAM;yBAAe,WAAW;;;;;;4BAW5D,MAAM;0BAAgB,WAAW;;;;;;yBAUpC,MAAM;0BAAgB,WAAW;;;;CAYjE,CAAC"}
|
|
@@ -11,6 +11,7 @@ const transformFilterToPrimaryLabel = (state, action) => {
|
|
|
11
11
|
const setDisplayAsLabel = (state, action) => {
|
|
12
12
|
if (!areObjRefsEqual(state.displayAsLabelRef, action.payload.displayAsLabel)) {
|
|
13
13
|
state.elements.cache = {};
|
|
14
|
+
state.elements.numberFormat = undefined;
|
|
14
15
|
}
|
|
15
16
|
state.displayAsLabelRef = action.payload.displayAsLabel;
|
|
16
17
|
};
|
|
@@ -2,11 +2,12 @@ import { type IElementsQueryResult } from "@gooddata/sdk-backend-spi";
|
|
|
2
2
|
import { type IAttributeElement } from "@gooddata/sdk-model";
|
|
3
3
|
export declare class InMemoryPaging implements IElementsQueryResult {
|
|
4
4
|
protected readonly allItems: IAttributeElement[];
|
|
5
|
+
readonly numberFormat?: string | undefined;
|
|
5
6
|
readonly items: IAttributeElement[];
|
|
6
7
|
readonly limit: number;
|
|
7
8
|
readonly offset: number;
|
|
8
9
|
readonly totalCount: number;
|
|
9
|
-
constructor(allItems: IAttributeElement[], limit?: number, offset?: number);
|
|
10
|
+
constructor(allItems: IAttributeElement[], limit?: number, offset?: number, numberFormat?: string | undefined);
|
|
10
11
|
next(): Promise<IElementsQueryResult>;
|
|
11
12
|
goTo(pageIndex: number): Promise<IElementsQueryResult>;
|
|
12
13
|
all(): Promise<IAttributeElement[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InMemoryPaging.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/elements/InMemoryPaging.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,qBAAa,cAAe,YAAW,oBAAoB;IAOnD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE;
|
|
1
|
+
{"version":3,"file":"InMemoryPaging.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/elements/InMemoryPaging.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,qBAAa,cAAe,YAAW,oBAAoB;IAOnD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE;aAGhC,YAAY,CAAC,EAAE,MAAM;IATzC,SAAgB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3C,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,YACuB,QAAQ,EAAE,iBAAiB,EAAE,EAChD,KAAK,SAAK,EACV,MAAM,SAAI,EACM,YAAY,CAAC,EAAE,MAAM,YAAA,EAaxC;IAEY,IAAI,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAQjD;IAEY,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAQlE;IAEY,GAAG,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAE/C;IAEY,SAAS,CAClB,SAAS,EAAE,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,KAAK,MAAM,GAClE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAE9B;CACJ"}
|
|
@@ -3,12 +3,14 @@ import { invariant } from "ts-invariant";
|
|
|
3
3
|
// inspired by the same thing in sdk-backend-base, copied here to avoid the dependency
|
|
4
4
|
export class InMemoryPaging {
|
|
5
5
|
allItems;
|
|
6
|
+
numberFormat;
|
|
6
7
|
items;
|
|
7
8
|
limit;
|
|
8
9
|
offset;
|
|
9
10
|
totalCount;
|
|
10
|
-
constructor(allItems, limit = 50, offset = 0) {
|
|
11
|
+
constructor(allItems, limit = 50, offset = 0, numberFormat) {
|
|
11
12
|
this.allItems = allItems;
|
|
13
|
+
this.numberFormat = numberFormat;
|
|
12
14
|
invariant(offset >= 0, `paging offset must be non-negative, got: ${offset}`);
|
|
13
15
|
invariant(limit > 0, `limit must be a positive number, got: ${limit}`);
|
|
14
16
|
// this will naturally return empty items if at the end of data; limit will always be positive
|
|
@@ -23,13 +25,13 @@ export class InMemoryPaging {
|
|
|
23
25
|
if (this.items.length === 0) {
|
|
24
26
|
return this;
|
|
25
27
|
}
|
|
26
|
-
return Promise.resolve(new InMemoryPaging(this.allItems, this.limit, this.offset + this.items.length));
|
|
28
|
+
return Promise.resolve(new InMemoryPaging(this.allItems, this.limit, this.offset + this.items.length, this.numberFormat));
|
|
27
29
|
}
|
|
28
30
|
async goTo(pageIndex) {
|
|
29
31
|
if (this.items.length === 0) {
|
|
30
32
|
return this;
|
|
31
33
|
}
|
|
32
|
-
return Promise.resolve(new InMemoryPaging(this.allItems, this.limit, pageIndex * this.
|
|
34
|
+
return Promise.resolve(new InMemoryPaging(this.allItems, this.limit, pageIndex * this.limit, this.numberFormat));
|
|
33
35
|
}
|
|
34
36
|
async all() {
|
|
35
37
|
return Promise.resolve([...this.allItems]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elementsSaga.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/elements/elementsSaga.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAYvG;;GAEG;AACH,wBAAiB,YAAY,CACzB,OAAO,EAAE,oBAAoB,GAAG,iBAAiB,EACjD,OAAO,CAAC,EAAE,MAAM,GACjB,YAAY,CAAC,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"elementsSaga.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/elements/elementsSaga.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAYvG;;GAEG;AACH,wBAAiB,YAAY,CACzB,OAAO,EAAE,oBAAoB,GAAG,iBAAiB,EACjD,OAAO,CAAC,EAAE,MAAM,GACjB,YAAY,CAAC,mBAAmB,CAAC,CA6DnC"}
|
|
@@ -35,5 +35,8 @@ export function* elementsSaga(options, cacheId) {
|
|
|
35
35
|
totalCount: elementsQueryResult.totalCount,
|
|
36
36
|
options: omit(allOptions, "signal"),
|
|
37
37
|
cacheId: elementsQueryResult.cacheId,
|
|
38
|
+
...(elementsQueryResult.numberFormat === undefined
|
|
39
|
+
? {}
|
|
40
|
+
: { numberFormat: elementsQueryResult.numberFormat }),
|
|
38
41
|
};
|
|
39
42
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type IElementsQueryAttributeFilter } from "@gooddata/sdk-backend-spi";
|
|
2
|
-
import { type IAbsoluteDateFilter, type IAttributeElement, type IAttributeMetadataObject, type IMeasure, type IMeasureDefinitionType, type IRelativeDateFilter, type ObjRef, type SortDirection } from "@gooddata/sdk-model";
|
|
2
|
+
import { type IAbsoluteDateFilter, type IAttributeElement, type IAttributeMetadataObject, type IMeasure, type IMeasureDefinitionType, type IRelativeDateFilter, type ISeparators, type ObjRef, type SortDirection } from "@gooddata/sdk-model";
|
|
3
3
|
import { type GoodDataSdkError } from "@gooddata/sdk-ui";
|
|
4
4
|
import { type AsyncOperationStatus, type AttributeElementKey } from "../../../types/common.js";
|
|
5
5
|
import { type ILoadElementsOptions } from "../../../types/elementsLoader.js";
|
|
@@ -19,8 +19,14 @@ export declare const getElementsByKeys: (keys: AttributeElementKey[], elementsMa
|
|
|
19
19
|
* @internal
|
|
20
20
|
*/
|
|
21
21
|
export declare const selectElementKeys: FilterSelector<AttributeElementKey[]>;
|
|
22
|
+
export declare const selectElementsSeparators: FilterSelector<ISeparators | undefined>;
|
|
23
|
+
export declare const selectElementsNumberFormat: FilterSelector<string | undefined>;
|
|
22
24
|
/**
|
|
23
|
-
*
|
|
25
|
+
* Loaded elements, with a formatted title added to the values of a numeric computed attribute.
|
|
26
|
+
*
|
|
27
|
+
* @remarks
|
|
28
|
+
* The number format comes with the loaded elements; the titles are formatted when read so that the raw
|
|
29
|
+
* titles in the cache stay untouched for selection and filter definitions.
|
|
24
30
|
*/
|
|
25
31
|
export declare const selectElementsCache: FilterSelector<Record<string, IAttributeElement>>;
|
|
26
32
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elementsSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/elements/elementsSelectors.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACb,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACX,KAAK,aAAa,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"elementsSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/elements/elementsSelectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import { createSelector } from "@reduxjs/toolkit";
|
|
3
3
|
import { compact } from "lodash-es";
|
|
4
4
|
import { selectState, toCacheKey } from "../common/selectors.js";
|
|
5
|
+
import { formatElementTitlesMap } from "./formatElementTitles.js";
|
|
6
|
+
import { toRawValueSearch } from "./numericElementValues.js";
|
|
5
7
|
/**
|
|
6
8
|
* Get the elements specified by the keys.
|
|
7
9
|
*
|
|
@@ -22,7 +24,17 @@ export const selectElementKeys = createSelector(selectState, (state) => state.el
|
|
|
22
24
|
/**
|
|
23
25
|
* @internal
|
|
24
26
|
*/
|
|
25
|
-
|
|
27
|
+
const selectRawElementsCache = createSelector(selectState, (state) => state.elements.cache);
|
|
28
|
+
export const selectElementsSeparators = createSelector(selectState, (state) => state.config.separators);
|
|
29
|
+
export const selectElementsNumberFormat = createSelector(selectState, (state) => state.elements.numberFormat);
|
|
30
|
+
/**
|
|
31
|
+
* Loaded elements, with a formatted title added to the values of a numeric computed attribute.
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* The number format comes with the loaded elements; the titles are formatted when read so that the raw
|
|
35
|
+
* titles in the cache stay untouched for selection and filter definitions.
|
|
36
|
+
*/
|
|
37
|
+
export const selectElementsCache = createSelector(selectRawElementsCache, selectElementsNumberFormat, selectElementsSeparators, formatElementTitlesMap);
|
|
26
38
|
/**
|
|
27
39
|
* @internal
|
|
28
40
|
*/
|
|
@@ -86,7 +98,7 @@ export const selectCacheId = createSelector(selectState, (state) => state.elemen
|
|
|
86
98
|
/**
|
|
87
99
|
* @internal
|
|
88
100
|
*/
|
|
89
|
-
export const selectLoadElementsOptions = createSelector(selectOffset, selectLimit, selectOrder, selectSearch, selectLimitingAttributeFilters, selectLimitingMeasures, selectLimitingDateFilters, selectLimitingValidationItems, (offset, limit, order, search, limitingAttributeFilters, limitingMeasures, limitingDateFilters, limitingValidationItems) => {
|
|
101
|
+
export const selectLoadElementsOptions = createSelector(selectOffset, selectLimit, selectOrder, selectSearch, selectLimitingAttributeFilters, selectLimitingMeasures, selectLimitingDateFilters, selectLimitingValidationItems, selectElementsNumberFormat, selectElementsSeparators, (offset, limit, order, search, limitingAttributeFilters, limitingMeasures, limitingDateFilters, limitingValidationItems, numberFormat, separators) => {
|
|
90
102
|
return {
|
|
91
103
|
limit,
|
|
92
104
|
limitingAttributeFilters,
|
|
@@ -95,7 +107,8 @@ export const selectLoadElementsOptions = createSelector(selectOffset, selectLimi
|
|
|
95
107
|
limitingValidationItems,
|
|
96
108
|
offset,
|
|
97
109
|
order,
|
|
98
|
-
|
|
110
|
+
// number-formatted values are matched by their raw value, see toRawValueSearch
|
|
111
|
+
search: toRawValueSearch(search, numberFormat, separators),
|
|
99
112
|
};
|
|
100
113
|
});
|
|
101
114
|
/**
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type IAttributeElement, type ISeparators } from "@gooddata/sdk-model";
|
|
2
|
+
/**
|
|
3
|
+
* Gives the cached elements, keyed by element key, a formatted title according to the number format of
|
|
4
|
+
* their values.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Returns the very same map when nothing gets formatted, so that nothing downstream sees a new reference
|
|
8
|
+
* for an unchanged cache.
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatElementTitlesMap(elements: Record<string, IAttributeElement>, numberFormat: string | undefined, separators: ISeparators | undefined): Record<string, IAttributeElement>;
|
|
13
|
+
//# sourceMappingURL=formatElementTitles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatElementTitles.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/elements/formatElementTitles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAwB/E;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC3C,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,UAAU,EAAE,WAAW,GAAG,SAAS,GACpC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAcnC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { createNumberFormatter, formatAttributeValue } from "@gooddata/sdk-ui";
|
|
3
|
+
/**
|
|
4
|
+
* Gives an element of a numeric computed attribute a formatted title, the same way measure values are
|
|
5
|
+
* formatted. Elements that already have a formatted title (dates) and titles that are not numbers are
|
|
6
|
+
* returned unchanged; the raw title and the uri always stay as they are.
|
|
7
|
+
*/
|
|
8
|
+
function formatElementTitle(element, numberFormat, formatter) {
|
|
9
|
+
const { title, formattedTitle } = element;
|
|
10
|
+
if (formattedTitle !== undefined) {
|
|
11
|
+
return element;
|
|
12
|
+
}
|
|
13
|
+
const formatted = formatAttributeValue(title, numberFormat, formatter);
|
|
14
|
+
return formatted === null || formatted === title ? element : { ...element, formattedTitle: formatted };
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Gives the cached elements, keyed by element key, a formatted title according to the number format of
|
|
18
|
+
* their values.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* Returns the very same map when nothing gets formatted, so that nothing downstream sees a new reference
|
|
22
|
+
* for an unchanged cache.
|
|
23
|
+
*
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export function formatElementTitlesMap(elements, numberFormat, separators) {
|
|
27
|
+
if (!numberFormat) {
|
|
28
|
+
return elements;
|
|
29
|
+
}
|
|
30
|
+
const formatter = createNumberFormatter(separators);
|
|
31
|
+
const entries = Object.entries(elements);
|
|
32
|
+
const formatted = entries.map(([key, element]) => [key, formatElementTitle(element, numberFormat, formatter)]);
|
|
33
|
+
return formatted.every(([, element], index) => element === entries[index][1])
|
|
34
|
+
? elements
|
|
35
|
+
: Object.fromEntries(formatted);
|
|
36
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadElementsFromBackend.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/elements/loadElementsFromBackend.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAIvB,KAAK,oBAAoB,EAG5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAKH,KAAK,MAAM,EAKd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"loadElementsFromBackend.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/elements/loadElementsFromBackend.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAIvB,KAAK,oBAAoB,EAG5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAKH,KAAK,MAAM,EAKd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA2CtD;;GAEG;AACH,wBAAsB,uBAAuB,CACzC,OAAO,EAAE,mCAAmC,EAC5C,OAAO,EAAE,oBAAoB,GAAG,iBAAiB,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,EAC9E,kBAAkB,EAAE,mBAAmB,EACvC,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC,CAsH/B;AAED,eAAO,MAAM,sBAAsB,YAAa,kBAAkB,YACpB,CAAC"}
|
|
@@ -23,12 +23,16 @@ async function loadElementsAsExecution(backend, workspace, displayFormRef, eleme
|
|
|
23
23
|
});
|
|
24
24
|
const dataViewFacade = DataViewFacade.for(executionDataView);
|
|
25
25
|
const [headers] = dataViewFacade.meta().attributeHeaders();
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
const [descriptor] = dataViewFacade.meta().attributeDescriptors();
|
|
27
|
+
return {
|
|
28
|
+
elements: headers.map(([header]) => {
|
|
29
|
+
return {
|
|
30
|
+
title: header.attributeHeaderItem.name,
|
|
31
|
+
uri: header.attributeHeaderItem.uri,
|
|
32
|
+
};
|
|
33
|
+
}),
|
|
34
|
+
numberFormat: descriptor?.attributeHeader.numberFormat,
|
|
35
|
+
};
|
|
32
36
|
}
|
|
33
37
|
/**
|
|
34
38
|
* @internal
|
|
@@ -50,7 +54,7 @@ export async function loadElementsFromBackend(context, options, hiddenElementsIn
|
|
|
50
54
|
isElementsQueryOptionsElementsByValue(elements) &&
|
|
51
55
|
isInitialSelectionRequest) {
|
|
52
56
|
const resolvedElements = await loadElementsAsExecution(backend, workspace, displayFormRef, elements, hiddenElementsInfo);
|
|
53
|
-
return new InMemoryPaging(resolvedElements, limit, offset);
|
|
57
|
+
return new InMemoryPaging(resolvedElements.elements, limit, offset, resolvedElements.numberFormat);
|
|
54
58
|
}
|
|
55
59
|
let loader = backend.workspace(workspace).attributes().elements().forDisplayForm(displayFormRef);
|
|
56
60
|
const loaderOptions = {
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type IAttributeElement, type ISeparators } from "@gooddata/sdk-model";
|
|
2
|
+
/**
|
|
3
|
+
* Reads text written with the given separators as a number in plain notation, e.g. "1 234,5" with a space
|
|
4
|
+
* for grouping and a decimal comma becomes "1234.5".
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Only the separators are understood: grouping separators in thousands positions are dropped and the
|
|
8
|
+
* decimal separator becomes a dot. Anything else a number format may add (units, scaling, percent) makes the text not a number.
|
|
9
|
+
* An unfinished number, such as "12," while typing, is still read ("12.").
|
|
10
|
+
*
|
|
11
|
+
* @param text - text to read
|
|
12
|
+
* @param separators - separators the text is written with; defaults to "," for grouping and "." for decimals
|
|
13
|
+
* @returns the number in plain notation, or undefined when the text is not a number
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export declare function toPlainNumberText(text: string, separators: ISeparators | undefined): string | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Turns the search a user typed into the search for the raw element values of a number-formatted attribute.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* Elements are matched by their raw value, so a number typed with the separators the user reads, such as
|
|
22
|
+
* "1 234,5", is searched as "1234.5". Anything that is not such a number is searched as typed.
|
|
23
|
+
*
|
|
24
|
+
* @param search - search as typed by the user
|
|
25
|
+
* @param numberFormat - number format of the element values; without one the search is kept as typed
|
|
26
|
+
* @param separators - separators the formatted values are displayed with
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export declare function toRawValueSearch(search: string, numberFormat: string | undefined, separators: ISeparators | undefined): string;
|
|
30
|
+
/**
|
|
31
|
+
* Gets the raw value of a number-formatted element when its displayed value says more than the raw value
|
|
32
|
+
* with separators, e.g. a rounded "1.23" for "1.2349" or a scaled "1.2 K" for "1234". Returns undefined
|
|
33
|
+
* when the displayed value differs only in separators or padding ("1 234,50" for "1234.5"), and for
|
|
34
|
+
* elements without a formatted value.
|
|
35
|
+
*
|
|
36
|
+
* @param element - element of an attribute with a number format
|
|
37
|
+
* @param separators - separators the formatted value is displayed with
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
export declare function getNumberFormattedElementRawTitle(element: IAttributeElement, separators: ISeparators | undefined): string | undefined;
|
|
41
|
+
//# sourceMappingURL=numericElementValues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numericElementValues.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/elements/numericElementValues.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA2B/E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CA0BvG;AAgBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,UAAU,EAAE,WAAW,GAAG,SAAS,GACpC,MAAM,CASR;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC7C,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,WAAW,GAAG,SAAS,GACpC,MAAM,GAAG,SAAS,CAUpB"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
const DEFAULT_SEPARATORS = { thousand: ",", decimal: "." };
|
|
3
|
+
/**
|
|
4
|
+
* Removes grouping separators from the integer part of a number, or returns undefined when they do not
|
|
5
|
+
* sit in thousands positions ("1.234" for a dot, but not "1234.5" or "1.23"), so that text which is not
|
|
6
|
+
* grouped, such as a raw value with a dot where the dot groups thousands, is not misread.
|
|
7
|
+
*/
|
|
8
|
+
function removeGrouping(text, thousand) {
|
|
9
|
+
if (!thousand) {
|
|
10
|
+
return text;
|
|
11
|
+
}
|
|
12
|
+
// a space-like grouping separator (e.g. a non-breaking space) is typed as a plain space too
|
|
13
|
+
const groups = /^\s$/.test(thousand) ? text.split(/\s/) : text.split(thousand);
|
|
14
|
+
if (groups.length === 1) {
|
|
15
|
+
return text;
|
|
16
|
+
}
|
|
17
|
+
const [first, ...rest] = groups;
|
|
18
|
+
const isGrouped = /^\d{1,3}$/.test(first) && rest.every((group) => /^\d{3}$/.test(group));
|
|
19
|
+
return isGrouped ? groups.join("") : undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Reads text written with the given separators as a number in plain notation, e.g. "1 234,5" with a space
|
|
23
|
+
* for grouping and a decimal comma becomes "1234.5".
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
* Only the separators are understood: grouping separators in thousands positions are dropped and the
|
|
27
|
+
* decimal separator becomes a dot. Anything else a number format may add (units, scaling, percent) makes the text not a number.
|
|
28
|
+
* An unfinished number, such as "12," while typing, is still read ("12.").
|
|
29
|
+
*
|
|
30
|
+
* @param text - text to read
|
|
31
|
+
* @param separators - separators the text is written with; defaults to "," for grouping and "." for decimals
|
|
32
|
+
* @returns the number in plain notation, or undefined when the text is not a number
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
export function toPlainNumberText(text, separators) {
|
|
36
|
+
const thousand = separators?.thousand ?? DEFAULT_SEPARATORS.thousand;
|
|
37
|
+
const decimal = separators?.decimal ?? DEFAULT_SEPARATORS.decimal;
|
|
38
|
+
const trimmed = text.trim();
|
|
39
|
+
const sign = trimmed.startsWith("-") ? "-" : "";
|
|
40
|
+
const unsigned = trimmed.slice(sign.length);
|
|
41
|
+
const [integerPart, fractionPart, ...rest] = decimal ? unsigned.split(decimal) : [unsigned];
|
|
42
|
+
if (rest.length > 0) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
const integerDigits = removeGrouping(integerPart, thousand);
|
|
46
|
+
if (integerDigits === undefined) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const isDigitsOnly = /^\d*$/.test(integerDigits) && (fractionPart === undefined || /^\d*$/.test(fractionPart));
|
|
50
|
+
if (!isDigitsOnly || !/\d/.test(`${integerDigits}${fractionPart ?? ""}`)) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
return fractionPart === undefined ? `${sign}${integerDigits}` : `${sign}${integerDigits}.${fractionPart}`;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Drops trailing zeros of the decimal part, and the decimal point with them when nothing is left ("1.50"
|
|
57
|
+
* becomes "1.5", "1.0" becomes "1"). An unfinished "12." stays as it is. This only widens a substring match.
|
|
58
|
+
*/
|
|
59
|
+
function withoutTrailingDecimalZeros(plainNumber) {
|
|
60
|
+
if (!plainNumber.includes(".")) {
|
|
61
|
+
return plainNumber;
|
|
62
|
+
}
|
|
63
|
+
const trimmed = plainNumber.replace(/0+$/, "");
|
|
64
|
+
return trimmed !== plainNumber && trimmed.endsWith(".") ? trimmed.slice(0, -1) : trimmed;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Turns the search a user typed into the search for the raw element values of a number-formatted attribute.
|
|
68
|
+
*
|
|
69
|
+
* @remarks
|
|
70
|
+
* Elements are matched by their raw value, so a number typed with the separators the user reads, such as
|
|
71
|
+
* "1 234,5", is searched as "1234.5". Anything that is not such a number is searched as typed.
|
|
72
|
+
*
|
|
73
|
+
* @param search - search as typed by the user
|
|
74
|
+
* @param numberFormat - number format of the element values; without one the search is kept as typed
|
|
75
|
+
* @param separators - separators the formatted values are displayed with
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
export function toRawValueSearch(search, numberFormat, separators) {
|
|
79
|
+
if (!numberFormat || !search) {
|
|
80
|
+
return search;
|
|
81
|
+
}
|
|
82
|
+
const plainNumber = toPlainNumberText(search, separators);
|
|
83
|
+
// Raw values carry no padding, so "1 234,50" read from a "#,##0.00" value must find "1234.5".
|
|
84
|
+
return plainNumber === undefined ? search : withoutTrailingDecimalZeros(plainNumber);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Gets the raw value of a number-formatted element when its displayed value says more than the raw value
|
|
88
|
+
* with separators, e.g. a rounded "1.23" for "1.2349" or a scaled "1.2 K" for "1234". Returns undefined
|
|
89
|
+
* when the displayed value differs only in separators or padding ("1 234,50" for "1234.5"), and for
|
|
90
|
+
* elements without a formatted value.
|
|
91
|
+
*
|
|
92
|
+
* @param element - element of an attribute with a number format
|
|
93
|
+
* @param separators - separators the formatted value is displayed with
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
export function getNumberFormattedElementRawTitle(element, separators) {
|
|
97
|
+
const { title, formattedTitle } = element;
|
|
98
|
+
if (!title || !formattedTitle || formattedTitle === title) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
const displayedNumber = toPlainNumberText(formattedTitle, separators);
|
|
102
|
+
return displayedNumber !== undefined && Number(displayedNumber) === Number(title) ? undefined : title;
|
|
103
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadCustomElementsReducers.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/loadCustomElements/loadCustomElementsReducers.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvG,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"loadCustomElementsReducers.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/loadCustomElements/loadCustomElementsReducers.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvG,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AA2FhE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;qBA3FV,oBAAoB;yBAAe,WAAW,GAAG,SAAS;;;;;;yBAItD,WAAW,GAAG,SAAS;;;;;;0BAmB9B,WAAW;;;;;;mBAsDV,gBAAgB;yBAAe,WAAW,GAAG,SAAS;;;;;;yBAIhD,WAAW,GAAG,SAAS;;;;;;yBAIvB,WAAW,GAAG,SAAS;;;;CAavD,CAAC"}
|
package/esm/AttributeFilterHandler/internal/redux/loadCustomElements/loadCustomElementsReducers.js
CHANGED
|
@@ -20,6 +20,11 @@ const loadCustomElementsSuccess = (state, action) => {
|
|
|
20
20
|
const keys = [];
|
|
21
21
|
const { options: { elements, filterByPrimaryLabel }, correlation, } = action.payload;
|
|
22
22
|
const shouldOverrideKeys = state.initialization.status === "loading" && correlation?.startsWith(INIT_SELECTION_PREFIX);
|
|
23
|
+
// Both the selected elements resolved at init and any other custom load carry the format, so the
|
|
24
|
+
// selection is formatted even when the initial page load fails or comes without one.
|
|
25
|
+
if (action.payload.numberFormat !== undefined) {
|
|
26
|
+
state.elements.numberFormat = action.payload.numberFormat;
|
|
27
|
+
}
|
|
23
28
|
if (elements) {
|
|
24
29
|
const originalElements = getElementValues(elements);
|
|
25
30
|
// iterate over original elements to keep the order in selection,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadInitialElementsPageReducers.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/loadInitialElementsPage/loadInitialElementsPageReducers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"loadInitialElementsPageReducers.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/loadInitialElementsPage/loadInitialElementsPageReducers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAwDhE;;GAEG;AACH,eAAO,MAAM,+BAA+B;;;yBAzD8C,WAAW;;;;;;yBAIb,WAAW;;;;;;yBAe1E,WAAW;;;;;;mBAqBT,gBAAgB;yBAAe,WAAW;;;;;;;yBAQoB,WAAW;;;;CAgBnG,CAAC"}
|
|
@@ -13,6 +13,10 @@ const loadInitialElementsPageStart = (state) => {
|
|
|
13
13
|
const loadInitialElementsPageSuccess = (state, action) => {
|
|
14
14
|
state.elements.initialPageLoad.status = "success";
|
|
15
15
|
state.elements.totalCountWithCurrentSettings = action.payload.totalCount;
|
|
16
|
+
// a source without a format (static elements) must not drop the one already known
|
|
17
|
+
if (action.payload.numberFormat !== undefined) {
|
|
18
|
+
state.elements.numberFormat = action.payload.numberFormat;
|
|
19
|
+
}
|
|
16
20
|
action.payload.elements.forEach((el) => {
|
|
17
21
|
const cacheKey = getElementCacheKey(el);
|
|
18
22
|
if (!state.elements.cache[cacheKey]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadNextElementsPageReducers.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/loadNextElementsPage/loadNextElementsPageReducers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"loadNextElementsPageReducers.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/loadNextElementsPage/loadNextElementsPageReducers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAoDhE;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;yBArD8C,WAAW;;;;;;yBAIb,WAAW;;;;;;yBAUvE,WAAW;;;;;;mBAsBT,gBAAgB;yBAAe,WAAW;;;;;;;yBAQiB,WAAW;;;;CAgBhG,CAAC"}
|
|
@@ -7,6 +7,9 @@ const loadNextElementsPageStart = (state) => {
|
|
|
7
7
|
};
|
|
8
8
|
const loadNextElementsPageSuccess = (state, action) => {
|
|
9
9
|
state.elements.nextPageLoad.status = "success";
|
|
10
|
+
if (action.payload.numberFormat !== undefined) {
|
|
11
|
+
state.elements.numberFormat = action.payload.numberFormat;
|
|
12
|
+
}
|
|
10
13
|
action.payload.elements.forEach((el) => {
|
|
11
14
|
const cacheKey = getElementCacheKey(el);
|
|
12
15
|
if (!state.elements.cache[cacheKey]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStore.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/store/createStore.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,4BAA4B,EAAE,KAAK,mCAAmC,EAAE,MAAM,YAAY,CAAC;AAkCzG;;GAEG;AACH,wBAAgB,iCAAiC,CAC7C,OAAO,EAAE,mCAAmC,GAC7C,4BAA4B,
|
|
1
|
+
{"version":3,"file":"createStore.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/store/createStore.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,4BAA4B,EAAE,KAAK,mCAAmC,EAAE,MAAM,YAAY,CAAC;AAkCzG;;GAEG;AACH,wBAAgB,iCAAiC,CAC7C,OAAO,EAAE,mCAAmC,GAC7C,4BAA4B,CAoF9B"}
|
|
@@ -69,6 +69,7 @@ export function createAttributeFilterHandlerStore(context) {
|
|
|
69
69
|
hiddenElements: context.hiddenElements,
|
|
70
70
|
staticElements: context.staticElements,
|
|
71
71
|
withoutApply: context.withoutApply,
|
|
72
|
+
separators: context.separators,
|
|
72
73
|
},
|
|
73
74
|
originalFilter: context.attributeFilter,
|
|
74
75
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type AnyAction, type CaseReducer } from "@reduxjs/toolkit";
|
|
2
|
-
import { type IAttributeElement, type IAttributeFilter, type IAttributeMetadataObject, type ObjRef } from "@gooddata/sdk-model";
|
|
2
|
+
import { type IAttributeElement, type IAttributeFilter, type IAttributeMetadataObject, type ISeparators, type ObjRef } from "@gooddata/sdk-model";
|
|
3
3
|
import { type GoodDataSdkError } from "@gooddata/sdk-ui";
|
|
4
4
|
import { type AsyncOperationStatus, type AttributeElementKey } from "../../../types/common.js";
|
|
5
5
|
import { type ILoadElementsOptions } from "../../../types/elementsLoader.js";
|
|
@@ -29,6 +29,11 @@ export interface IAttributeFilterState {
|
|
|
29
29
|
};
|
|
30
30
|
totalCountWithCurrentSettings?: number;
|
|
31
31
|
cache: Record<string, IAttributeElement>;
|
|
32
|
+
/**
|
|
33
|
+
* Number format of the loaded element values (numeric computed attributes); the element titles
|
|
34
|
+
* are formatted with it and the separators when read from the cache.
|
|
35
|
+
*/
|
|
36
|
+
numberFormat?: string;
|
|
32
37
|
initialPageLoad: {
|
|
33
38
|
status: AsyncOperationStatus;
|
|
34
39
|
error?: GoodDataSdkError;
|
|
@@ -58,6 +63,10 @@ export interface IAttributeFilterState {
|
|
|
58
63
|
hiddenElements?: string[];
|
|
59
64
|
staticElements?: IAttributeElement[];
|
|
60
65
|
withoutApply?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Number separators used when formatting element values of numeric computed attributes.
|
|
68
|
+
*/
|
|
69
|
+
separators?: ISeparators;
|
|
61
70
|
};
|
|
62
71
|
originalFilter?: IAttributeFilter;
|
|
63
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/store/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,MAAM,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC;IAChC,cAAc,EAAE;QACZ,MAAM,EAAE,oBAAoB,CAAC;QAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC;KAC5B,CAAC;IACF,SAAS,EAAE;QACP,IAAI,CAAC,EAAE,wBAAwB,CAAC;QAChC,MAAM,EAAE,oBAAoB,CAAC;QAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC;KAC5B,CAAC;IACF,QAAQ,EAAE;QACN,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,wBAAwB,EAAE;YACtB,MAAM,EAAE,oBAAoB,CAAC;YAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC;SAC5B,CAAC;QACF,6BAA6B,CAAC,EAAE,MAAM,CAAC;QACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACzC,eAAe,EAAE;YACb,MAAM,EAAE,oBAAoB,CAAC;YAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC;SAC5B,CAAC;QACF,YAAY,EAAE;YACV,MAAM,EAAE,oBAAoB,CAAC;YAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC;SAC5B,CAAC;QACF,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;QACzC,cAAc,EAAE,oBAAoB,CAAC;QACrC,kCAAkC,EAAE,wBAAwB,EAAE,CAAC;QAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACP,QAAQ,EAAE;YACN,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;YAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;SAC1C,CAAC;QACF,OAAO,EAAE;YACL,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;YAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;SAC1C,CAAC;KACL,CAAC;IACF,MAAM,EAAE;QACJ,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC;QACrC,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/store/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Action, type AnyAction } from "@reduxjs/toolkit";
|
|
2
2
|
import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
|
|
3
|
-
import { type IAttributeElement, type IAttributeFilter, type ObjRef } from "@gooddata/sdk-model";
|
|
3
|
+
import { type IAttributeElement, type IAttributeFilter, type ISeparators, type ObjRef } from "@gooddata/sdk-model";
|
|
4
4
|
import { type IAttributeFilterState } from "./state.js";
|
|
5
5
|
/**
|
|
6
6
|
* Event listener that can be used to listen dispatched AttributeFilterHandlerStore actions.
|
|
@@ -34,5 +34,9 @@ export interface IAttributeFilterHandlerStoreContext {
|
|
|
34
34
|
staticElements?: IAttributeElement[];
|
|
35
35
|
eventListener: AttributeFilterHandlerEventListener;
|
|
36
36
|
withoutApply?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Number separators used when formatting element values of numeric computed attributes.
|
|
39
|
+
*/
|
|
40
|
+
separators?: ISeparators;
|
|
37
41
|
}
|
|
38
42
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/store/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/AttributeFilterHandler/internal/redux/store/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,MAAM,EACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,mCAAmC,GAAG,CAC9C,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,CAAC,KAAK,CAAC,KAC3E,IAAI,CAAC;AAEV;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IACzC,OAAO,EAAE,mCAAmC,CAAC;IAC7C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,CAAC,KAAK,CAAC,CAAC;CACnE;AAED;;;;GAIG;AACH,MAAM,WAAW,mCAAmC;IAChD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,gBAAgB,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACrC,aAAa,EAAE,mCAAmC,CAAC;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC;CAC5B"}
|