@adaptabletools/adaptable 21.0.0-canary.5 → 21.0.0-canary.6
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/package.json +1 -1
- package/src/AdaptableOptions/DefaultAdaptableOptions.js +1 -1
- package/src/AdaptableOptions/FilterOptions.d.ts +4 -4
- package/src/AdaptableState/LayoutState.d.ts +1 -1
- package/src/Api/Internal/ColumnFilterInternalApi.d.ts +1 -1
- package/src/Api/Internal/ColumnFilterInternalApi.js +7 -7
- package/src/View/Components/ColumnFilter/ColumnFilter.js +5 -5
- package/src/View/Components/ColumnFilter/FloatingFilter.js +1 -1
- package/src/env.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +5 -5
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/tsconfig.esm.tsbuildinfo +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaptabletools/adaptable",
|
|
3
|
-
"version": "21.0.0-canary.
|
|
3
|
+
"version": "21.0.0-canary.6",
|
|
4
4
|
"description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components",
|
|
@@ -149,7 +149,7 @@ const DefaultAdaptableOptions = {
|
|
|
149
149
|
showDatePicker: true,
|
|
150
150
|
columnFilterOptions: {
|
|
151
151
|
indicateFilteredColumns: true,
|
|
152
|
-
|
|
152
|
+
manuallyApplyColumnFilter: false,
|
|
153
153
|
defaultNumericColumnFilter: 'Equals',
|
|
154
154
|
defaultTextColumnFilter: 'Contains',
|
|
155
155
|
defaultDateColumnFilter: 'On',
|
|
@@ -79,13 +79,13 @@ export interface ColumnFilterOptions<TData = any> {
|
|
|
79
79
|
*/
|
|
80
80
|
indicateFilteredColumns?: boolean;
|
|
81
81
|
/**
|
|
82
|
-
*
|
|
82
|
+
* Manually apply Column Filters; an Apply Filter button is displayed and Quick Filter is disabled
|
|
83
83
|
*
|
|
84
|
-
* @defaultValue
|
|
84
|
+
* @defaultValue false
|
|
85
85
|
* @gridInfoItem
|
|
86
86
|
* @noCodeItem
|
|
87
87
|
*/
|
|
88
|
-
|
|
88
|
+
manuallyApplyColumnFilter?: boolean | ((context: AdaptableColumnContext) => boolean);
|
|
89
89
|
/**
|
|
90
90
|
* Default filter type for numeric Columns
|
|
91
91
|
*
|
|
@@ -260,7 +260,7 @@ export interface CustomInFilterValuesContext<TData = any> extends AdaptableColum
|
|
|
260
260
|
*/
|
|
261
261
|
currentSearchValue: string;
|
|
262
262
|
/**
|
|
263
|
-
*
|
|
263
|
+
* Last filter result; avoids expensive recomputations (eg if async or server-side filtering)
|
|
264
264
|
*/
|
|
265
265
|
previousFilterResult?: InFilterValueResult;
|
|
266
266
|
}
|
|
@@ -258,7 +258,7 @@ export type ColumnDirectionMap = {
|
|
|
258
258
|
[columnId: string]: 'left' | 'right';
|
|
259
259
|
};
|
|
260
260
|
/**
|
|
261
|
-
* State & behaviour for sizing
|
|
261
|
+
* State & behaviour for column sizing (must set `width` or `flex` but not both); all other props optional
|
|
262
262
|
*/
|
|
263
263
|
export type ColumnSizingDefinition = ({
|
|
264
264
|
Width?: number;
|
|
@@ -54,7 +54,7 @@ export declare class ColumnFilterInternalApi extends ApiBase {
|
|
|
54
54
|
columnId: string;
|
|
55
55
|
currentSearchValue: string;
|
|
56
56
|
}): Promise<InFilterValueResult>;
|
|
57
|
-
|
|
57
|
+
shouldManuallyApplyColumnFilter(columnId: string): boolean;
|
|
58
58
|
getAdaptableFilterHandler(columnId: string): AdaptableFilterHandler | undefined;
|
|
59
59
|
getAllAdaptableFilterHandlers(): AdaptableFilterHandler[];
|
|
60
60
|
}
|
|
@@ -263,21 +263,21 @@ export class ColumnFilterInternalApi extends ApiBase {
|
|
|
263
263
|
}
|
|
264
264
|
return columnFilterHandler.getFromCacheOrFetchFilterDisplayValues(newOptions);
|
|
265
265
|
}
|
|
266
|
-
|
|
267
|
-
const
|
|
268
|
-
if (typeof
|
|
269
|
-
return
|
|
266
|
+
shouldManuallyApplyColumnFilter(columnId) {
|
|
267
|
+
const manuallyApplyColumnFilterOpt = this.getOptionsApi().getFilterOptions().columnFilterOptions?.manuallyApplyColumnFilter;
|
|
268
|
+
if (typeof manuallyApplyColumnFilterOpt === 'boolean') {
|
|
269
|
+
return manuallyApplyColumnFilterOpt;
|
|
270
270
|
}
|
|
271
|
-
if (typeof
|
|
271
|
+
if (typeof manuallyApplyColumnFilterOpt === 'function') {
|
|
272
272
|
const column = this.getColumnApi().getColumnWithColumnId(columnId);
|
|
273
273
|
const context = {
|
|
274
274
|
column,
|
|
275
275
|
...this.getAdaptableApi().internalApi.buildBaseContext(),
|
|
276
276
|
};
|
|
277
|
-
return
|
|
277
|
+
return manuallyApplyColumnFilterOpt(context);
|
|
278
278
|
}
|
|
279
279
|
// fallback, should never happen
|
|
280
|
-
return
|
|
280
|
+
return false;
|
|
281
281
|
}
|
|
282
282
|
getAdaptableFilterHandler(columnId) {
|
|
283
283
|
return this.getAgGridApi().getColumnFilterHandler(columnId);
|
|
@@ -62,16 +62,16 @@ const AndOrInput = (props) => {
|
|
|
62
62
|
};
|
|
63
63
|
export const ColumnFilterComponent = (props) => {
|
|
64
64
|
const adaptable = useAdaptable();
|
|
65
|
-
const
|
|
65
|
+
const manuallyApplyColumnFilter = adaptable.api.filterApi.columnFilterApi.internalApi.shouldManuallyApplyColumnFilter(props.columnId);
|
|
66
66
|
const [predicateNotYetApplied, setPredicateNotYetApplied] = React.useState(props.predicate);
|
|
67
67
|
const applyFilter = () => {
|
|
68
68
|
props.onPredicateChange(currentPredicateRef.current);
|
|
69
69
|
setPredicateNotYetApplied(undefined);
|
|
70
70
|
};
|
|
71
71
|
const onPredicateChange = (predicate) => {
|
|
72
|
-
// even if
|
|
72
|
+
// even if manuallyApplyColumnFilter is false, when we explicitly clear the filter
|
|
73
73
|
// we want to apply the filter immediately
|
|
74
|
-
if (
|
|
74
|
+
if (!manuallyApplyColumnFilter || !predicate) {
|
|
75
75
|
props.onPredicateChange(predicate);
|
|
76
76
|
}
|
|
77
77
|
else {
|
|
@@ -95,7 +95,7 @@ export const ColumnFilterComponent = (props) => {
|
|
|
95
95
|
};
|
|
96
96
|
onPredicateChange(newPredicate);
|
|
97
97
|
};
|
|
98
|
-
const currentPredicate =
|
|
98
|
+
const currentPredicate = !manuallyApplyColumnFilter
|
|
99
99
|
? props.predicate
|
|
100
100
|
: predicateNotYetApplied ?? props.predicate;
|
|
101
101
|
const currentPredicateRef = React.useRef(currentPredicate);
|
|
@@ -141,7 +141,7 @@ export const ColumnFilterComponent = (props) => {
|
|
|
141
141
|
} }));
|
|
142
142
|
}),
|
|
143
143
|
isLastPredicateValid && filterPredicateDropdown),
|
|
144
|
-
|
|
144
|
+
manuallyApplyColumnFilter ? (React.createElement(React.Fragment, null,
|
|
145
145
|
React.createElement(Box, { flex: 1, "data-name": "spacer" }),
|
|
146
146
|
React.createElement(Flex, { pt: 2, className: "ab-ColumnFilter-actions", justifyContent: "space-between" },
|
|
147
147
|
React.createElement(Box, { className: "ab-ColumnFilter-action-apply" },
|
|
@@ -14,7 +14,7 @@ export const FloatingFilter = (props) => {
|
|
|
14
14
|
* The wrapper is in charge of constructing the correct column filter.
|
|
15
15
|
*/
|
|
16
16
|
const isMultiple = props.predicate?.args?.length > 1;
|
|
17
|
-
const isManualApply =
|
|
17
|
+
const isManualApply = adaptable.api.filterApi.columnFilterApi.internalApi.shouldManuallyApplyColumnFilter(props.columnId);
|
|
18
18
|
const isInlineEditable = !isMultiple && !isManualApply;
|
|
19
19
|
// only used when there is only one filter selected
|
|
20
20
|
let singleFilterPredicateDef = null;
|
package/src/env.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
NEXT_PUBLIC_INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
|
|
3
|
-
PUBLISH_TIMESTAMP:
|
|
4
|
-
VERSION: "21.0.0-canary.
|
|
3
|
+
PUBLISH_TIMESTAMP: 1757310399525 || Date.now(),
|
|
4
|
+
VERSION: "21.0.0-canary.6" || '--current-version--',
|
|
5
5
|
};
|
|
@@ -1953,32 +1953,32 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
1953
1953
|
desc: string;
|
|
1954
1954
|
isOpt: boolean;
|
|
1955
1955
|
gridInfo: string;
|
|
1956
|
-
noCode: string;
|
|
1957
1956
|
defVal: string;
|
|
1957
|
+
noCode?: undefined;
|
|
1958
1958
|
} | {
|
|
1959
1959
|
name: string;
|
|
1960
1960
|
kind: string;
|
|
1961
1961
|
desc: string;
|
|
1962
1962
|
isOpt: boolean;
|
|
1963
|
-
gridInfo: string;
|
|
1964
1963
|
defVal: string;
|
|
1964
|
+
gridInfo?: undefined;
|
|
1965
1965
|
noCode?: undefined;
|
|
1966
1966
|
} | {
|
|
1967
1967
|
name: string;
|
|
1968
1968
|
kind: string;
|
|
1969
1969
|
desc: string;
|
|
1970
1970
|
isOpt: boolean;
|
|
1971
|
+
gridInfo: string;
|
|
1972
|
+
noCode: string;
|
|
1971
1973
|
defVal: string;
|
|
1972
|
-
gridInfo?: undefined;
|
|
1973
|
-
noCode?: undefined;
|
|
1974
1974
|
} | {
|
|
1975
1975
|
name: string;
|
|
1976
1976
|
kind: string;
|
|
1977
1977
|
desc: string;
|
|
1978
1978
|
isOpt: boolean;
|
|
1979
1979
|
gridInfo?: undefined;
|
|
1980
|
-
noCode?: undefined;
|
|
1981
1980
|
defVal?: undefined;
|
|
1981
|
+
noCode?: undefined;
|
|
1982
1982
|
} | {
|
|
1983
1983
|
name: string;
|
|
1984
1984
|
kind: string;
|