@adaptabletools/adaptable-cjs 18.1.0-canary.0 → 18.1.0
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/base.css +5 -0
- package/base.css.map +1 -1
- package/index.css +7 -0
- package/index.css.map +1 -1
- package/package.json +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +4 -4
- package/src/AdaptableOptions/ColumnFilterOptions.d.ts +39 -24
- package/src/Api/ColumnApi.d.ts +5 -0
- package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -0
- package/src/Api/Implementation/ColumnApiImpl.js +3 -0
- package/src/Api/Implementation/ConfigApiImpl.js +3 -1
- package/src/Api/Internal/ColumnFilterInternalApi.js +6 -6
- package/src/Api/Internal/GridInternalApi.d.ts +29 -13
- package/src/Api/Internal/GridInternalApi.js +129 -39
- package/src/PredefinedConfig/Common/AdaptableField.d.ts +1 -1
- package/src/PredefinedConfig/Common/AdaptablePredicate.js +5 -1
- package/src/Utilities/Constants/DocumentationLinkConstants.js +4 -4
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +5 -5
- package/src/View/Components/FilterForm/FilterForm.js +2 -2
- package/src/View/Components/FilterForm/ListBoxFilterForm.js +2 -1
- package/src/View/Components/FilterForm/QuickFilterValues.d.ts +1 -1
- package/src/View/Components/FilterForm/QuickFilterValues.js +20 -43
- package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -1
- package/src/agGrid/AdaptableAgGrid.d.ts +4 -4
- package/src/agGrid/AdaptableAgGrid.js +20 -15
- package/src/agGrid/FilterWrapper.js +12 -7
- package/src/agGrid/defaultAdaptableOptions.js +2 -2
- package/src/components/ExpressionEditor/EditorInput.js +1 -1
- package/src/components/ExpressionEditor/index.js +1 -3
- package/src/env.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +45 -2
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -0
- package/src/types.d.ts +1 -1
- package/tsconfig.cjs.tsbuildinfo +1 -1
|
@@ -2,44 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.QuickFilterValues = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const date_fns_1 = require("date-fns");
|
|
6
|
+
const re_resizable_1 = require("re-resizable");
|
|
5
7
|
const React = tslib_1.__importStar(require("react"));
|
|
6
8
|
const react_1 = require("react");
|
|
9
|
+
const rebass_1 = require("rebass");
|
|
7
10
|
const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/Extensions/ArrayExtensions"));
|
|
8
|
-
const SimpleButton_1 = tslib_1.__importDefault(require("../../../components/SimpleButton"));
|
|
9
|
-
const date_fns_1 = require("date-fns");
|
|
10
11
|
const OverlayTrigger_1 = tslib_1.__importDefault(require("../../../components/OverlayTrigger"));
|
|
11
|
-
const
|
|
12
|
+
const SimpleButton_1 = tslib_1.__importDefault(require("../../../components/SimpleButton"));
|
|
12
13
|
const ListBoxFilterForm_1 = require("./ListBoxFilterForm");
|
|
13
|
-
const re_resizable_1 = require("re-resizable");
|
|
14
14
|
const QuickFilterValues = (props) => {
|
|
15
15
|
const { api } = props;
|
|
16
16
|
const currentOverlayVisible = (0, react_1.useRef)(false);
|
|
17
17
|
const valuesDropdownRef = React.useRef(null);
|
|
18
18
|
const [quickFilterValues, setQuickFilterValues] = React.useState({ values: [], suppressClientSideFilter: false, dataLoadIsComplete: false });
|
|
19
|
-
const quickFilterValuesWithPredicates = React.useMemo(() => {
|
|
20
|
-
var _a, _b, _c;
|
|
21
|
-
let values = quickFilterValues.values;
|
|
22
|
-
const predicateIds = api.columnFilterApi.internalApi.getValuesFitlerPredicateIds(props.currentColumn);
|
|
23
|
-
if (ArrayExtensions_1.default.IsNullOrEmpty(predicateIds)) {
|
|
24
|
-
return values;
|
|
25
|
-
}
|
|
26
|
-
const predicatesPosition = (_c = (_b = (_a = api.optionsApi.getColumnFilterOptions()) === null || _a === void 0 ? void 0 : _a.valuesFilterOptions) === null || _b === void 0 ? void 0 : _b.predicatesPosition) !== null && _c !== void 0 ? _c : 'End';
|
|
27
|
-
const predicateValues = predicateIds.map(predicateId => {
|
|
28
|
-
var _a;
|
|
29
|
-
const predicateDef = api.predicateApi.getPredicateDefById(predicateId);
|
|
30
|
-
return {
|
|
31
|
-
value: predicateId,
|
|
32
|
-
label: ((_a = predicateDef.label) !== null && _a !== void 0 ? _a : predicateId),
|
|
33
|
-
};
|
|
34
|
-
});
|
|
35
|
-
if (predicatesPosition === 'End') {
|
|
36
|
-
values = [...values, ...predicateValues];
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
values = [...predicateValues, ...values];
|
|
40
|
-
}
|
|
41
|
-
return values;
|
|
42
|
-
}, [quickFilterValues.values]);
|
|
43
19
|
const [isDistinctColumnValuesLoading, setIsDistinctColumnValuesLoading] = React.useState(false);
|
|
44
20
|
const [textFilterValue, setTextFilterValue] = React.useState('');
|
|
45
21
|
const [valuesLoadTrigger, setValuesLoadTrigger] = React.useState({
|
|
@@ -76,7 +52,7 @@ const QuickFilterValues = (props) => {
|
|
|
76
52
|
let ignore = false;
|
|
77
53
|
setIsDistinctColumnValuesLoading(true);
|
|
78
54
|
api.gridApi.internalApi
|
|
79
|
-
.
|
|
55
|
+
.getDistinctFilterDisplayValuesForColumnForFiltersUI(props.columnFilter.ColumnId, textFilterValue, api.optionsApi.getColumnFilterOptions().valuesFilterOptions.showCurrentlyFilteredValuesOnly)
|
|
80
56
|
.then((distinctFilterDisplayValues) => {
|
|
81
57
|
if (ignore) {
|
|
82
58
|
return;
|
|
@@ -130,13 +106,13 @@ const QuickFilterValues = (props) => {
|
|
|
130
106
|
let selectedValues = props.columnFilter.Predicate.PredicateId === 'Values' ? 'Select Values' : 'Exclude Values';
|
|
131
107
|
if (props.columnFilter.Predicate.Inputs.length) {
|
|
132
108
|
selectedValues = props.columnFilter.Predicate.Inputs.map((input) => {
|
|
133
|
-
var _a;
|
|
134
|
-
const label = (_a =
|
|
109
|
+
var _a, _b;
|
|
110
|
+
const label = (_b = (_a = quickFilterValues.values) === null || _a === void 0 ? void 0 : _a.find((distinctValue) => {
|
|
135
111
|
if (input instanceof Date) {
|
|
136
112
|
return (0, date_fns_1.isSameDay)(input, distinctValue.value);
|
|
137
113
|
}
|
|
138
114
|
return distinctValue.value === input;
|
|
139
|
-
})) === null ||
|
|
115
|
+
})) === null || _b === void 0 ? void 0 : _b.label;
|
|
140
116
|
return label !== null && label !== void 0 ? label : input;
|
|
141
117
|
}).join(', ');
|
|
142
118
|
}
|
|
@@ -151,6 +127,7 @@ const QuickFilterValues = (props) => {
|
|
|
151
127
|
}
|
|
152
128
|
return null;
|
|
153
129
|
};
|
|
130
|
+
const [defaultSize, setDefaultSize] = React.useState(undefined);
|
|
154
131
|
return (React.createElement(OverlayTrigger_1.default, { showEvent: showEvent,
|
|
155
132
|
// cannot hide on blur, because the form input receives the input when this is opened
|
|
156
133
|
hideEvent: "mouseleave", hideDelay: 50, ref: (api) => {
|
|
@@ -164,18 +141,24 @@ const QuickFilterValues = (props) => {
|
|
|
164
141
|
}
|
|
165
142
|
}, render: ({ targetWidth }) => {
|
|
166
143
|
var _a;
|
|
167
|
-
return (React.createElement(re_resizable_1.Resizable, {
|
|
144
|
+
return (React.createElement(re_resizable_1.Resizable, { onResizeStop: (_e, _direction, element, _delta) => {
|
|
145
|
+
const { width, height } = element.getBoundingClientRect();
|
|
146
|
+
setDefaultSize({ width, height });
|
|
147
|
+
}, defaultSize: defaultSize, style: {
|
|
168
148
|
fontSize: 'var(--ab-font-size-2)',
|
|
169
149
|
border: '1px solid var(--ab-color-primarydark)',
|
|
170
150
|
background: 'var(--ab-color-defaultbackground)',
|
|
171
151
|
zIndex: 1000,
|
|
152
|
+
display: 'flex',
|
|
153
|
+
flexFlow: 'column',
|
|
154
|
+
flexWrap: 'nowrap',
|
|
172
155
|
}, enable: {
|
|
173
156
|
top: false,
|
|
174
157
|
right: true,
|
|
175
|
-
bottom:
|
|
158
|
+
bottom: true,
|
|
176
159
|
left: false,
|
|
177
160
|
topRight: false,
|
|
178
|
-
bottomRight:
|
|
161
|
+
bottomRight: true,
|
|
179
162
|
bottomLeft: false,
|
|
180
163
|
topLeft: false,
|
|
181
164
|
}, minWidth: getPopoverWidth(targetWidth) },
|
|
@@ -191,13 +174,7 @@ const QuickFilterValues = (props) => {
|
|
|
191
174
|
(_a = valuesDropdownRef.current) === null || _a === void 0 ? void 0 : _a.show();
|
|
192
175
|
});
|
|
193
176
|
}
|
|
194
|
-
}, "data-name": "quick-filter-form", flexDirection: "column",
|
|
195
|
-
// fontSize: 'var(--ab-font-size-2)',
|
|
196
|
-
// border: '1px solid var(--ab-color-primarydark)',
|
|
197
|
-
// background: 'var(--ab-color-defaultbackground)',
|
|
198
|
-
// zIndex: 1000,
|
|
199
|
-
// width: getPopoverWidth(targetWidth),
|
|
200
|
-
} },
|
|
177
|
+
}, "data-name": "quick-filter-form", flexDirection: "column", flex: 1, display: 'flex' },
|
|
201
178
|
React.createElement(rebass_1.Flex, { m: 2 },
|
|
202
179
|
React.createElement(SimpleButton_1.default, { onClick: () => clearColumnFilter() }, "Clear Filter"),
|
|
203
180
|
((_a = api.optionsApi.getColumnFilterOptions()) === null || _a === void 0 ? void 0 : _a.autoApplyFilter) == false && (React.createElement(SimpleButton_1.default, { ml: 2, onClick: () => {
|
|
@@ -205,7 +182,7 @@ const QuickFilterValues = (props) => {
|
|
|
205
182
|
props.updateColumnFilter(transientColumnFilter);
|
|
206
183
|
}
|
|
207
184
|
} }, "Apply Filter"))),
|
|
208
|
-
React.createElement(ListBoxFilterForm_1.ListBoxFilterForm, { disabled: props.isFilterDisabled, suppressClientSideFilter: quickFilterValues.suppressClientSideFilter, isLoading: isDistinctColumnValuesLoading, onFilterChange: handleFilterChange, currentColumn: props.currentColumn, columns: [], columnDistinctValues:
|
|
185
|
+
React.createElement(ListBoxFilterForm_1.ListBoxFilterForm, { disabled: props.isFilterDisabled, suppressClientSideFilter: quickFilterValues.suppressClientSideFilter, isLoading: isDistinctColumnValuesLoading, onFilterChange: handleFilterChange, currentColumn: props.currentColumn, columns: [], columnDistinctValues: quickFilterValues.values, dataType: props.currentColumn.dataType, uiSelectedColumnValues: props.columnFilter.Predicate.Inputs.filter((input) => input !== ''), useAgGridStyle: true, onColumnValueSelectedChange: (list) => onColumnValueSelectedChange(list) }))));
|
|
209
186
|
} },
|
|
210
187
|
React.createElement(SimpleButton_1.default, { "data-name": 'Select Values', style: {
|
|
211
188
|
flex: 1,
|
|
@@ -22,7 +22,7 @@ const PermittedValuesSelector = function (props) {
|
|
|
22
22
|
setIsLoading(true);
|
|
23
23
|
(async () => {
|
|
24
24
|
const { values: distinctColumnValues } = await (0, runIfNotResolvedIn_1.runIfNotResolvedIn)(adaptable.api.gridApi.internalApi.getDistinctFilterDisplayValuesForColumn(props.columnId, filter, adaptable.api.optionsApi.getColumnFilterOptions().valuesFilterOptions
|
|
25
|
-
.
|
|
25
|
+
.showCurrentlyFilteredValuesOnly), () => {
|
|
26
26
|
setIsLoading(true);
|
|
27
27
|
});
|
|
28
28
|
setIsLoading(false);
|
|
@@ -2,7 +2,7 @@ import { AdaptableOptions } from '../AdaptableOptions/AdaptableOptions';
|
|
|
2
2
|
import { ChartRef, Column, GridApi, GridOptions, IRowNode, Module, RowModelType } from '@ag-grid-community/core';
|
|
3
3
|
import { AdaptableLogger } from './AdaptableLogger';
|
|
4
4
|
import { AdaptableApi } from '../Api/AdaptableApi';
|
|
5
|
-
import {
|
|
5
|
+
import { DistinctColumnValuesParams, IAdaptable } from '../AdaptableInterfaces/IAdaptable';
|
|
6
6
|
import { EmitterCallback } from '../Utilities/Emitter';
|
|
7
7
|
import { AdaptablePlugin } from '../AdaptableOptions/AdaptablePlugin';
|
|
8
8
|
import { AgGridAdapter } from './AgGridAdapter';
|
|
@@ -195,6 +195,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
195
195
|
getNormalisedValueFromRawValue(rawValue: any, column: AdaptableColumn): string | number | boolean | Date | unknown;
|
|
196
196
|
updateColumnModelAndRefreshGrid(config?: {
|
|
197
197
|
skipColDefsRefresh?: boolean;
|
|
198
|
+
preemptiveColumnStateRefresh?: boolean;
|
|
198
199
|
}): void;
|
|
199
200
|
redrawBody(): void;
|
|
200
201
|
refreshHeader(): void;
|
|
@@ -237,13 +238,12 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
237
238
|
autoSizeAllColumns(): void;
|
|
238
239
|
setColumnOrder(VisibleColumnList: string[]): void;
|
|
239
240
|
private getSortedColumnStateForVisibleColumns;
|
|
240
|
-
getDistinctValuesForColumn(column: AdaptableColumn, distinctValuesParams:
|
|
241
|
+
getDistinctValuesForColumn(column: AdaptableColumn, distinctValuesParams: DistinctColumnValuesParams): GridCell[];
|
|
241
242
|
private getGridCellsForPermittedValues;
|
|
242
243
|
private getDistinctGridCellsForColumn;
|
|
243
|
-
addBlankValueToGridCell(gridCell: GridCell): void;
|
|
244
244
|
private addDistinctColumnValue;
|
|
245
245
|
private getUniqueGridCells;
|
|
246
|
-
getGridCellsForColumn(columnId: string, includeBlanks?: boolean): GridCell[] | undefined;
|
|
246
|
+
getGridCellsForColumn(columnId: string, includeBlanks?: boolean, onlyVisibleRows?: boolean): GridCell[] | undefined;
|
|
247
247
|
getRowNodesForPrimaryKeys(primaryKeyValues: any[]): any[];
|
|
248
248
|
getRowNodeByIndex(index: number): IRowNode;
|
|
249
249
|
getAgGridStatusPanels(): import("@ag-grid-community/core").StatusPanelDef[];
|
|
@@ -1819,6 +1819,12 @@ class AdaptableAgGrid {
|
|
|
1819
1819
|
if (result == undefined && rowNode.data) {
|
|
1820
1820
|
result = rowNode.data[this.adaptableOptions.primaryKey];
|
|
1821
1821
|
}
|
|
1822
|
+
if (result == undefined && rowNode.id != undefined) {
|
|
1823
|
+
// when getPrimaryKeyValueFromRowNode is called for group rows,
|
|
1824
|
+
// which don't have a rowNode.data object, the result is undefined
|
|
1825
|
+
// but we do have an id property on the rowNode object, so we'll use that
|
|
1826
|
+
result = rowNode.id;
|
|
1827
|
+
}
|
|
1822
1828
|
return result;
|
|
1823
1829
|
}
|
|
1824
1830
|
getRawValueFromRowNode(rowNode, columnId) {
|
|
@@ -1896,6 +1902,9 @@ class AdaptableAgGrid {
|
|
|
1896
1902
|
return rawValue;
|
|
1897
1903
|
}
|
|
1898
1904
|
updateColumnModelAndRefreshGrid(config) {
|
|
1905
|
+
if (config === null || config === void 0 ? void 0 : config.preemptiveColumnStateRefresh) {
|
|
1906
|
+
this.deriveAdaptableColumnStateFromAgGrid();
|
|
1907
|
+
}
|
|
1899
1908
|
if (!(config === null || config === void 0 ? void 0 : config.skipColDefsRefresh)) {
|
|
1900
1909
|
this.refreshColDefs();
|
|
1901
1910
|
}
|
|
@@ -2304,13 +2313,10 @@ class AdaptableAgGrid {
|
|
|
2304
2313
|
}
|
|
2305
2314
|
getDistinctGridCellsForColumn(column, distinctValuesParams) {
|
|
2306
2315
|
let gridCells = [];
|
|
2307
|
-
if (distinctValuesParams.visibleRowsOnly) {
|
|
2316
|
+
if (distinctValuesParams.visibleRowsOnly === true) {
|
|
2308
2317
|
this.agGridAdapter.getAgGridApi().forEachNodeAfterFilter((rowNode) => {
|
|
2309
2318
|
const gridCell = this.addDistinctColumnValue(rowNode, column.columnId);
|
|
2310
2319
|
if (gridCell && gridCell.rowNode !== distinctValuesParams.skipRowNode) {
|
|
2311
|
-
if (gridCell.rawValue == undefined && distinctValuesParams.addBlankValue) {
|
|
2312
|
-
this.addBlankValueToGridCell(gridCell);
|
|
2313
|
-
}
|
|
2314
2320
|
gridCells.push(gridCell);
|
|
2315
2321
|
}
|
|
2316
2322
|
});
|
|
@@ -2319,20 +2325,12 @@ class AdaptableAgGrid {
|
|
|
2319
2325
|
this.agGridAdapter.getAgGridApi().forEachNode((rowNode) => {
|
|
2320
2326
|
const gridCell = this.addDistinctColumnValue(rowNode, column.columnId);
|
|
2321
2327
|
if (gridCell && gridCell.rowNode !== distinctValuesParams.skipRowNode) {
|
|
2322
|
-
if (gridCell.rawValue == undefined && distinctValuesParams.addBlankValue) {
|
|
2323
|
-
this.addBlankValueToGridCell(gridCell);
|
|
2324
|
-
}
|
|
2325
2328
|
gridCells.push(gridCell);
|
|
2326
2329
|
}
|
|
2327
2330
|
});
|
|
2328
2331
|
}
|
|
2329
2332
|
return gridCells;
|
|
2330
2333
|
}
|
|
2331
|
-
addBlankValueToGridCell(gridCell) {
|
|
2332
|
-
gridCell.rawValue = GeneralConstants_1.BLANK_DISTINCT_COLUMN_VALUE;
|
|
2333
|
-
gridCell.displayValue = GeneralConstants_1.BLANK_DISTINCT_COLUMN_VALUE;
|
|
2334
|
-
gridCell.normalisedValue = GeneralConstants_1.BLANK_DISTINCT_COLUMN_VALUE;
|
|
2335
|
-
}
|
|
2336
2334
|
addDistinctColumnValue(rowNode, columnId) {
|
|
2337
2335
|
// we do not return the values of the aggregates when in grouping mode
|
|
2338
2336
|
// otherwise they would appear in the filter dropdown etc....
|
|
@@ -2359,9 +2357,9 @@ class AdaptableAgGrid {
|
|
|
2359
2357
|
}
|
|
2360
2358
|
return uniqueVals.slice(0, this.api.columnFilterApi.internalApi.getFilterValuesMaxNumberOfItems(column));
|
|
2361
2359
|
}
|
|
2362
|
-
getGridCellsForColumn(columnId, includeBlanks = false) {
|
|
2360
|
+
getGridCellsForColumn(columnId, includeBlanks = false, onlyVisibleRows = false) {
|
|
2363
2361
|
let returnValues = [];
|
|
2364
|
-
|
|
2362
|
+
const handler = (rowNode) => {
|
|
2365
2363
|
const gridCell = this.getGridCellFromRowNode(rowNode, columnId);
|
|
2366
2364
|
if (gridCell) {
|
|
2367
2365
|
if (gridCell.rawValue == undefined || gridCell.rawValue == null) {
|
|
@@ -2373,7 +2371,13 @@ class AdaptableAgGrid {
|
|
|
2373
2371
|
returnValues.push(gridCell);
|
|
2374
2372
|
}
|
|
2375
2373
|
}
|
|
2376
|
-
}
|
|
2374
|
+
};
|
|
2375
|
+
if (onlyVisibleRows) {
|
|
2376
|
+
this.agGridAdapter.getAgGridApi().forEachNodeAfterFilter(handler);
|
|
2377
|
+
}
|
|
2378
|
+
else {
|
|
2379
|
+
this.agGridAdapter.getAgGridApi().forEachNode(handler);
|
|
2380
|
+
}
|
|
2377
2381
|
return returnValues;
|
|
2378
2382
|
}
|
|
2379
2383
|
getRowNodesForPrimaryKeys(primaryKeyValues) {
|
|
@@ -3743,6 +3747,7 @@ class AdaptableAgGrid {
|
|
|
3743
3747
|
*/
|
|
3744
3748
|
updateLayoutFromGrid() {
|
|
3745
3749
|
var _a, _b;
|
|
3750
|
+
this.logger.info('updateLayoutFromGrid()');
|
|
3746
3751
|
const agGridApi = this.agGridAdapter.getAgGridApi();
|
|
3747
3752
|
const columnState = agGridApi.getColumnState();
|
|
3748
3753
|
const expandedState = agGridApi.getState().rowGroupExpansion || { expandedRowGroupIds: [] };
|
|
@@ -31,16 +31,21 @@ const FilterWrapperFactory = (adaptable) => {
|
|
|
31
31
|
const [filterProps, setFilterProps] = (0, react_1.useState)(null);
|
|
32
32
|
const colId = props.column.getId();
|
|
33
33
|
const column = adaptable.api.columnApi.getColumnWithColumnId(colId);
|
|
34
|
+
const afterGuidAttached = React.useCallback((params) => {
|
|
35
|
+
var _a;
|
|
36
|
+
const hidePopup = (_a = params === null || params === void 0 ? void 0 : params.hidePopup) !== null && _a !== void 0 ? _a : null;
|
|
37
|
+
const filterProps = getFilterProps(colId, !!hidePopup);
|
|
38
|
+
adaptable.hideFilterFormPopup = hidePopup;
|
|
39
|
+
setFilterProps(filterProps);
|
|
40
|
+
}, [colId]);
|
|
41
|
+
React.useEffect(() => {
|
|
42
|
+
afterGuidAttached();
|
|
43
|
+
}, []);
|
|
34
44
|
(0, react_1.useImperativeHandle)(ref, () => {
|
|
35
45
|
return {
|
|
36
46
|
isFilterActive: () => isFilterActive(colId),
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const hidePopup = (_a = params === null || params === void 0 ? void 0 : params.hidePopup) !== null && _a !== void 0 ? _a : null;
|
|
40
|
-
const filterProps = getFilterProps(colId, !!hidePopup);
|
|
41
|
-
adaptable.hideFilterFormPopup = hidePopup;
|
|
42
|
-
setFilterProps(filterProps);
|
|
43
|
-
},
|
|
47
|
+
// left here for backward compatibility
|
|
48
|
+
afterGuidAttached,
|
|
44
49
|
getModel: () => { },
|
|
45
50
|
setModel: () => { },
|
|
46
51
|
//we do not filter here.... we filter using the doesExternalFilterPass. Not sure there is a difference....
|
|
@@ -193,10 +193,10 @@ const DefaultAdaptableOptions = {
|
|
|
193
193
|
valuesFilterTrigger: 'mouseenter',
|
|
194
194
|
sortValuesFilter: false,
|
|
195
195
|
filterValuesUsingTime: false,
|
|
196
|
-
|
|
196
|
+
showCurrentlyFilteredValuesOnly: false,
|
|
197
197
|
maxFilterValuesToDisplay: undefined,
|
|
198
|
-
includeBlankFilterValues: false,
|
|
199
198
|
showValuesCount: undefined,
|
|
199
|
+
valuesFilterPredicateOptions: undefined,
|
|
200
200
|
},
|
|
201
201
|
indicateFilteredColumns: true,
|
|
202
202
|
useAdaptableColumnFiltering: true,
|
|
@@ -20,7 +20,7 @@ function EditorInput(props) {
|
|
|
20
20
|
if (type === 'aggregatedScalar') {
|
|
21
21
|
const excludeSet = new Set([
|
|
22
22
|
// we cannot have a hardcodede set of functions,
|
|
23
|
-
// we need to allow custom
|
|
23
|
+
// we need to allow custom expressions
|
|
24
24
|
...aggregatedScalarExpressionFunctions_1.cumulativeAggregatedExpressionFunctions,
|
|
25
25
|
...aggregatedScalarExpressionFunctions_1.quantileAggregatedExpressionFunctions,
|
|
26
26
|
]);
|
|
@@ -91,9 +91,7 @@ function ExpressionEditor(props) {
|
|
|
91
91
|
StringExtensions_1.default.IsNullOrEmpty(expressionText === null || expressionText === void 0 ? void 0 : expressionText.trim()) && renderQueryHints(type),
|
|
92
92
|
showDocumentationLinks && (React.createElement(HelpBlock_1.default, { "data-name": "query-documentation", mt: 2, mb: 2, fontSize: 3 },
|
|
93
93
|
React.createElement(ButtonInfo_1.ButtonInfo, { mr: 2, onClick: () => window.open(queryDocumentationLink, '_blank') }),
|
|
94
|
-
"See ",
|
|
95
|
-
StringExtensions_1.default.CapitaliseFirstLetter(type),
|
|
96
|
-
" Query documentation for more details and examples")),
|
|
94
|
+
"See documentation for more details and examples")),
|
|
97
95
|
React.createElement(rebass_1.Box, { flex: 1 }),
|
|
98
96
|
showNamedQueryStuff && saveAsNamedQueryElement),
|
|
99
97
|
React.createElement(rebass_1.Box, { className: `${exports.baseClassName}__sidebar`, "data-name": "expression-sidebar", pb: 2, paddingLeft: 2, pr: 2 },
|
package/src/env.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = {
|
|
4
4
|
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" || '',
|
|
5
|
-
PUBLISH_TIMESTAMP:
|
|
6
|
-
VERSION: "18.1.0
|
|
5
|
+
PUBLISH_TIMESTAMP: 1717156632230 || Date.now(),
|
|
6
|
+
VERSION: "18.1.0" || '--current-version--',
|
|
7
7
|
};
|
|
@@ -3787,6 +3787,11 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
3787
3787
|
kind: string;
|
|
3788
3788
|
desc: string;
|
|
3789
3789
|
};
|
|
3790
|
+
IsRowFilterableContext: {
|
|
3791
|
+
name: string;
|
|
3792
|
+
kind: string;
|
|
3793
|
+
desc: string;
|
|
3794
|
+
};
|
|
3790
3795
|
Layout: {
|
|
3791
3796
|
name: string;
|
|
3792
3797
|
kind: string;
|
|
@@ -5475,6 +5480,7 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
5475
5480
|
noCode: string;
|
|
5476
5481
|
defVal: string;
|
|
5477
5482
|
gridInfo?: undefined;
|
|
5483
|
+
ref?: undefined;
|
|
5478
5484
|
} | {
|
|
5479
5485
|
name: string;
|
|
5480
5486
|
kind: string;
|
|
@@ -5483,22 +5489,59 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
5483
5489
|
gridInfo: string;
|
|
5484
5490
|
noCode: string;
|
|
5485
5491
|
defVal: string;
|
|
5492
|
+
ref?: undefined;
|
|
5493
|
+
} | {
|
|
5494
|
+
name: string;
|
|
5495
|
+
kind: string;
|
|
5496
|
+
desc: string;
|
|
5497
|
+
isOpt: boolean;
|
|
5498
|
+
gridInfo: string;
|
|
5499
|
+
defVal: string;
|
|
5500
|
+
noCode?: undefined;
|
|
5501
|
+
ref?: undefined;
|
|
5486
5502
|
} | {
|
|
5487
5503
|
name: string;
|
|
5488
5504
|
kind: string;
|
|
5489
5505
|
desc: string;
|
|
5490
5506
|
isOpt: boolean;
|
|
5507
|
+
ref: string;
|
|
5491
5508
|
noCode?: undefined;
|
|
5492
5509
|
defVal?: undefined;
|
|
5493
5510
|
gridInfo?: undefined;
|
|
5511
|
+
})[];
|
|
5512
|
+
};
|
|
5513
|
+
ValuesFilterPredicateContext: {
|
|
5514
|
+
name: string;
|
|
5515
|
+
kind: string;
|
|
5516
|
+
desc: string;
|
|
5517
|
+
props: ({
|
|
5518
|
+
name: string;
|
|
5519
|
+
kind: string;
|
|
5520
|
+
desc: string;
|
|
5521
|
+
ref?: undefined;
|
|
5522
|
+
} | {
|
|
5523
|
+
name: string;
|
|
5524
|
+
kind: string;
|
|
5525
|
+
desc: string;
|
|
5526
|
+
ref: string;
|
|
5527
|
+
})[];
|
|
5528
|
+
};
|
|
5529
|
+
ValuesFilterPredicateOptions: {
|
|
5530
|
+
name: string;
|
|
5531
|
+
kind: string;
|
|
5532
|
+
desc: string;
|
|
5533
|
+
props: ({
|
|
5534
|
+
name: string;
|
|
5535
|
+
kind: string;
|
|
5536
|
+
desc: string;
|
|
5537
|
+
isOpt?: undefined;
|
|
5538
|
+
defVal?: undefined;
|
|
5494
5539
|
} | {
|
|
5495
5540
|
name: string;
|
|
5496
5541
|
kind: string;
|
|
5497
5542
|
desc: string;
|
|
5498
5543
|
isOpt: boolean;
|
|
5499
|
-
gridInfo: string;
|
|
5500
5544
|
defVal: string;
|
|
5501
|
-
noCode?: undefined;
|
|
5502
5545
|
})[];
|
|
5503
5546
|
};
|
|
5504
5547
|
WeightedAverageAggregation: {
|