@adaptabletools/adaptable 10.0.2 → 10.0.3
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 +68 -26
- package/index.css +80 -28
- package/package.json +1 -1
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +12 -2
- package/src/AdaptableOptions/FilterOptions.d.ts +14 -7
- package/src/AdaptableOptions/LayoutOptions.d.ts +1 -1
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +89 -4
- package/src/Api/AlertApi.d.ts +1 -1
- package/src/Api/ColumnApi.d.ts +33 -0
- package/src/Api/ConfigApi.d.ts +8 -0
- package/src/Api/GridApi.d.ts +34 -8
- package/src/Api/Implementation/AlertApiImpl.d.ts +1 -1
- package/src/Api/Implementation/AlertApiImpl.js +11 -4
- package/src/Api/Implementation/ColumnApiImpl.d.ts +7 -0
- package/src/Api/Implementation/ColumnApiImpl.js +37 -1
- package/src/Api/Implementation/ConfigApiImpl.d.ts +1 -1
- package/src/Api/Implementation/ConfigApiImpl.js +28 -17
- package/src/Api/Implementation/FreeTextColumnApiImpl.js +2 -1
- package/src/Api/Implementation/GridApiImpl.d.ts +9 -0
- package/src/Api/Implementation/GridApiImpl.js +17 -1
- package/src/Api/Implementation/InternalApiImpl.d.ts +2 -0
- package/src/Api/Implementation/InternalApiImpl.js +16 -0
- package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +11 -8
- package/src/Api/Implementation/UserInterfaceApiImpl.js +57 -80
- package/src/Api/InternalApi.d.ts +2 -0
- package/src/Api/UserInterfaceApi.d.ts +14 -5
- package/src/PredefinedConfig/AlertState.d.ts +5 -0
- package/src/PredefinedConfig/CalculatedColumnState.d.ts +4 -37
- package/src/PredefinedConfig/Common/AdaptablePredicate.js +16 -15
- package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +5 -1
- package/src/PredefinedConfig/Common/SpecialColumnSettings.d.ts +49 -0
- package/src/{Utilities/Interface/ProgressIndicator.js → PredefinedConfig/Common/SpecialColumnSettings.js} +0 -0
- package/src/PredefinedConfig/FilterState.d.ts +1 -1
- package/src/PredefinedConfig/FreeTextColumnState.d.ts +10 -0
- package/src/PredefinedConfig/Selection/GridRow.d.ts +12 -4
- package/src/PredefinedConfig/SystemState.d.ts +4 -1
- package/src/Redux/Store/AdaptableStore.js +4 -0
- package/src/Strategy/AlertModule.js +1 -1
- package/src/Strategy/ExportModule.d.ts +0 -2
- package/src/Strategy/ExportModule.js +58 -61
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
- package/src/Utilities/Helpers/DateHelper.d.ts +2 -2
- package/src/Utilities/Helpers/DateHelper.js +30 -20
- package/src/Utilities/ObjectFactory.d.ts +1 -1
- package/src/Utilities/ObjectFactory.js +13 -1
- package/src/Utilities/Services/MetamodelService.js +1 -0
- package/src/Utilities/Services/ReportService.js +1 -1
- package/src/Utilities/runIfNotResolvedIn.d.ts +8 -0
- package/src/Utilities/runIfNotResolvedIn.js +23 -0
- package/src/View/AdaptableView.js +1 -1
- package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +19 -5
- package/src/View/BulkUpdate/BulkUpdatePopup.d.ts +2 -0
- package/src/View/BulkUpdate/BulkUpdatePopup.js +4 -2
- package/src/View/BulkUpdate/BulkUpdateViewPanel.d.ts +2 -0
- package/src/View/BulkUpdate/BulkUpdateViewPanel.js +3 -1
- package/src/View/Components/FilterForm/FilterForm.d.ts +3 -51
- package/src/View/Components/FilterForm/FilterForm.js +44 -23
- package/src/View/Components/FilterForm/ListBoxFilterForm.d.ts +3 -0
- package/src/View/Components/FilterForm/ListBoxFilterForm.js +14 -5
- package/src/View/Components/FilterForm/QuickFilterForm.d.ts +3 -43
- package/src/View/Components/FilterForm/QuickFilterForm.js +64 -23
- package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.d.ts +3 -0
- package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.js +8 -0
- package/src/View/Components/Popups/AdaptablePopup.d.ts +1 -1
- package/src/View/Components/Selectors/ColumnValueSelector.d.ts +10 -2
- package/src/View/Components/Selectors/ColumnValueSelector.js +45 -13
- package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +24 -6
- package/src/View/FreeTextColumn/FreeTextColumnPopup.js +3 -1
- package/src/View/FreeTextColumn/FreeTextColumnSummary.js +3 -1
- package/src/View/GridInfo/GridInfoPopup.js +4 -1
- package/src/View/UIHelper.d.ts +2 -0
- package/src/View/UIHelper.js +10 -1
- package/src/agGrid/ActionColumnRenderer.d.ts +2 -1
- package/src/agGrid/ActionColumnRenderer.js +20 -3
- package/src/agGrid/Adaptable.d.ts +20 -4
- package/src/agGrid/Adaptable.js +166 -50
- package/src/components/Dashboard/Dashboard.js +1 -1
- package/src/components/DropdownButton/index.js +1 -1
- package/src/components/Loader/Loader.d.ts +7 -0
- package/src/components/Loader/Loader.js +13 -0
- package/src/components/Loader/index.d.ts +2 -0
- package/src/components/Loader/index.js +7 -0
- package/src/components/ProgressIndicator/ProgressIndicator.d.ts +2 -0
- package/src/components/ProgressIndicator/ProgressIndicator.js +54 -0
- package/src/metamodel/adaptable.metamodel.d.ts +72 -2
- package/src/metamodel/adaptable.metamodel.js +304 -69
- package/src/types.d.ts +4 -3
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/src/Utilities/Interface/ProgressIndicator.d.ts +0 -4
- package/src/View/Export/ProgressIndicator.d.ts +0 -6
- package/src/View/Export/ProgressIndicator.js +0 -25
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.QuickFilterFormReact =
|
|
3
|
+
exports.QuickFilterFormReact = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
6
|
const debounce_1 = tslib_1.__importDefault(require("lodash-es/debounce"));
|
|
@@ -16,47 +16,74 @@ const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/Ex
|
|
|
16
16
|
const AdaptableInput_1 = tslib_1.__importDefault(require("../AdaptableInput"));
|
|
17
17
|
const renderWithAdaptableContext_1 = require("../../renderWithAdaptableContext");
|
|
18
18
|
const CheckBox_1 = require("../../../components/CheckBox");
|
|
19
|
+
const isEqual_1 = tslib_1.__importDefault(require("lodash-es/isEqual"));
|
|
20
|
+
const runIfNotResolvedIn_1 = require("../../../Utilities/runIfNotResolvedIn");
|
|
21
|
+
const getDefaultColumnFilterPredicate_1 = require("./getDefaultColumnFilterPredicate");
|
|
19
22
|
class QuickFilterFormComponent extends React.Component {
|
|
20
23
|
constructor(props) {
|
|
21
24
|
super(props);
|
|
22
|
-
this.
|
|
23
|
-
|
|
25
|
+
this._isMounted = false;
|
|
26
|
+
this.handleFilterChange = (filter) => {
|
|
27
|
+
if (this.state.suppressClientSideFilter) {
|
|
28
|
+
this.loadPermittedValues(filter);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
this.loadPermittedValues = async (filter = '') => {
|
|
32
|
+
const { values, suppressClientSideFilter } = await runIfNotResolvedIn_1.runIfNotResolvedIn(this.props.api.columnApi.getDistinctFilterDisplayValuesForColumn(this.props.currentColumn.ColumnId, filter), () => this._isMounted && this.setState({ isDistinctColumnValuesLoading: true }));
|
|
33
|
+
if (!this._isMounted) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.setState({
|
|
37
|
+
distinctColumnValues: values,
|
|
38
|
+
suppressClientSideFilter,
|
|
39
|
+
isDistinctColumnValuesLoading: false,
|
|
40
|
+
});
|
|
24
41
|
};
|
|
25
42
|
this.debouncedAddFilter = debounce_1.default(() => this.props.onAddColumnFilter(this.state.filter), 250);
|
|
26
43
|
this.debouncedEditFilter = debounce_1.default(() => this.props.onEditColumnFilter(this.state.filter), 250);
|
|
27
|
-
const filter = this.getFilterFromProps(
|
|
28
|
-
|
|
44
|
+
const filter = this.getFilterFromProps();
|
|
45
|
+
this._isMounted = true;
|
|
29
46
|
this.state = {
|
|
30
47
|
filter,
|
|
31
|
-
|
|
48
|
+
suppressClientSideFilter: false,
|
|
49
|
+
isDistinctColumnValuesLoading: false,
|
|
50
|
+
distinctColumnValues: [],
|
|
32
51
|
};
|
|
33
52
|
}
|
|
34
|
-
|
|
35
|
-
|
|
53
|
+
componentDidMount() {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
if (((_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.Predicate.PredicateId) === 'Values') {
|
|
56
|
+
this.loadPermittedValues();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
componentWillUnmount() {
|
|
60
|
+
this._isMounted = false;
|
|
36
61
|
}
|
|
37
62
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
38
63
|
const filter = this.getFilterFromProps(nextProps);
|
|
39
|
-
this.
|
|
40
|
-
|
|
41
|
-
}
|
|
64
|
+
if (isEqual_1.default(filter, this.state.filter)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
this.setState({ filter });
|
|
42
68
|
if ((filter === null || filter === void 0 ? void 0 : filter.Predicate) && filter.Predicate.PredicateId === 'Values') {
|
|
43
|
-
this.
|
|
69
|
+
this.setState({ isDistinctColumnValuesLoading: true });
|
|
70
|
+
this.loadPermittedValues();
|
|
44
71
|
}
|
|
45
72
|
}
|
|
46
|
-
getFilterFromProps(props) {
|
|
73
|
+
getFilterFromProps(props = this.props) {
|
|
47
74
|
const filter = props.columnFilters.find((cf) => cf.ColumnId == props.currentColumn.ColumnId);
|
|
48
75
|
const filterOptions = props.api.internalApi.getAdaptableOptions().filterOptions;
|
|
49
76
|
if (filter) {
|
|
50
77
|
return filter;
|
|
51
78
|
}
|
|
52
79
|
if (!filter && props.currentColumn.DataType === 'Number') {
|
|
53
|
-
return ObjectFactory_1.ObjectFactory.CreateColumnFilter(
|
|
80
|
+
return ObjectFactory_1.ObjectFactory.CreateColumnFilter(props.currentColumn.ColumnId, getDefaultColumnFilterPredicate_1.getDefaultColumnFilterPredicate(props.currentColumn, filterOptions.defaultNumericColumnFilter), ['']);
|
|
54
81
|
}
|
|
55
82
|
if (!filter && props.currentColumn.DataType === 'String') {
|
|
56
|
-
return ObjectFactory_1.ObjectFactory.CreateColumnFilter(
|
|
83
|
+
return ObjectFactory_1.ObjectFactory.CreateColumnFilter(props.currentColumn.ColumnId, getDefaultColumnFilterPredicate_1.getDefaultColumnFilterPredicate(props.currentColumn, filterOptions.defaultStringColumnFilter), ['']);
|
|
57
84
|
}
|
|
58
85
|
if (!filter && props.currentColumn.DataType === 'Date') {
|
|
59
|
-
return ObjectFactory_1.ObjectFactory.CreateColumnFilter(
|
|
86
|
+
return ObjectFactory_1.ObjectFactory.CreateColumnFilter(props.currentColumn.ColumnId, getDefaultColumnFilterPredicate_1.getDefaultColumnFilterPredicate(props.currentColumn, filterOptions.defaultDateColumnFilter), ['']);
|
|
60
87
|
}
|
|
61
88
|
if (!filter && props.currentColumn.DataType === 'Boolean') {
|
|
62
89
|
return ObjectFactory_1.ObjectFactory.CreateColumnFilter(this.props.currentColumn.ColumnId, 'BooleanToggle', [
|
|
@@ -179,11 +206,25 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
179
206
|
} }, 'No Column Values'));
|
|
180
207
|
}
|
|
181
208
|
renderValuesDropdown(filter) {
|
|
182
|
-
|
|
209
|
+
let showEvent = 'mouseenter';
|
|
210
|
+
if (this.props.quickFilterValuesTrigger === 'click') {
|
|
211
|
+
showEvent = 'click';
|
|
212
|
+
}
|
|
213
|
+
return (React.createElement(OverlayTrigger_1.default, { alignHorizontal: "left", showEvent: showEvent,
|
|
214
|
+
// cannot hide on blur, because the form input receives the input when this is opened
|
|
215
|
+
hideEvent: "mouseleave", hideDelay: 300, ref: (api) => {
|
|
183
216
|
this.valuesDropdown = api;
|
|
184
217
|
}, render: () => {
|
|
185
218
|
var _a;
|
|
186
|
-
return (React.createElement(rebass_1.Flex, {
|
|
219
|
+
return (React.createElement(rebass_1.Flex, { onMouseEnter: () => {
|
|
220
|
+
var _a;
|
|
221
|
+
if (showEvent === 'click') {
|
|
222
|
+
// For showEvent=mouseneter this is not needed.
|
|
223
|
+
// When mouseenter is triggered on the overlay, onShowFn is called, the overlay is no longer hidden.
|
|
224
|
+
// But in this case because the trigger is click, another show is not triggered.
|
|
225
|
+
(_a = this.valuesDropdown) === null || _a === void 0 ? void 0 : _a.show();
|
|
226
|
+
}
|
|
227
|
+
}, "data-name": "quick-filter-form", flexDirection: "column", style: {
|
|
187
228
|
fontSize: 'var(--ab-font-size-2)',
|
|
188
229
|
border: '1px solid var(--ab-color-primarydark)',
|
|
189
230
|
background: 'var(--ab-color-defaultbackground)',
|
|
@@ -193,7 +234,7 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
193
234
|
React.createElement(SimpleButton_1.default, { onClick: () => this.clearFilter() }, "Clear Filter"),
|
|
194
235
|
((_a = this.props.api.internalApi.getAdaptableOptions().filterOptions) === null || _a === void 0 ? void 0 : _a.autoApplyFilter) ==
|
|
195
236
|
false && (React.createElement(SimpleButton_1.default, { ml: 2, onClick: () => this.updateFilter(this.state.filter) }, "Apply Filter"))),
|
|
196
|
-
React.createElement(ListBoxFilterForm_1.ListBoxFilterForm, { currentColumn: this.props.currentColumn, columns: [], columnDistinctValues: this.state.distinctColumnValues, dataType: this.props.currentColumn.DataType, uiSelectedColumnValues: this.state.filter.Predicate.Inputs, useVendorStyle: true, onColumnValueSelectedChange: (list) => this.onColumnValuesChange(list) })));
|
|
237
|
+
React.createElement(ListBoxFilterForm_1.ListBoxFilterForm, { suppressClientSideFilter: this.state.suppressClientSideFilter, isLoading: this.state.isDistinctColumnValuesLoading, onFilterChange: this.handleFilterChange, currentColumn: this.props.currentColumn, columns: [], columnDistinctValues: this.state.distinctColumnValues, dataType: this.props.currentColumn.DataType, uiSelectedColumnValues: this.state.filter.Predicate.Inputs, useVendorStyle: true, onColumnValueSelectedChange: (list) => this.onColumnValuesChange(list) })));
|
|
197
238
|
} },
|
|
198
239
|
React.createElement(SimpleButton_1.default, { style: {
|
|
199
240
|
flex: 1,
|
|
@@ -226,7 +267,7 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
226
267
|
};
|
|
227
268
|
this.updateFilter(filter);
|
|
228
269
|
if (predicateId === 'Values') {
|
|
229
|
-
this.
|
|
270
|
+
this.loadPermittedValues();
|
|
230
271
|
requestAnimationFrame(() => {
|
|
231
272
|
if (this.valuesDropdown) {
|
|
232
273
|
this.valuesDropdown.show();
|
|
@@ -276,8 +317,8 @@ function mapDispatchToProps(dispatch) {
|
|
|
276
317
|
onEditColumnFilter: (columnFilter) => dispatch(FilterRedux.ColumnFilterEdit(columnFilter)),
|
|
277
318
|
};
|
|
278
319
|
}
|
|
279
|
-
|
|
320
|
+
const QuickFilterForm = react_redux_1.connect(mapStateToProps, mapDispatchToProps)(QuickFilterFormComponent);
|
|
280
321
|
exports.QuickFilterFormReact = (FilterContext) => {
|
|
281
|
-
var _a;
|
|
282
|
-
return renderWithAdaptableContext_1.renderWithAdaptableContext(React.createElement(
|
|
322
|
+
var _a, _b;
|
|
323
|
+
return renderWithAdaptableContext_1.renderWithAdaptableContext(React.createElement(QuickFilterForm, { api: FilterContext.Adaptable.api, quickFilterTrigger: (_a = FilterContext.Adaptable.adaptableOptions.filterOptions) === null || _a === void 0 ? void 0 : _a.quickFilterTrigger, quickFilterValuesTrigger: (_b = FilterContext.Adaptable.adaptableOptions.filterOptions) === null || _b === void 0 ? void 0 : _b.quickFilterValuesTrigger, currentColumn: FilterContext.Column, teamSharingActivated: false, embedColumnMenu: FilterContext.Adaptable.embedColumnMenu }), FilterContext.Adaptable);
|
|
283
324
|
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AdaptableColumn } from '../../../PredefinedConfig/Common/AdaptableColumn';
|
|
2
|
+
import { SystemFilterPredicateId } from '../../../PredefinedConfig/FilterState';
|
|
3
|
+
export declare const getDefaultColumnFilterPredicate: (column: AdaptableColumn, defaultColumnFilter: "After" | "Before" | "Blanks" | "NonBlanks" | "Equals" | "NotEquals" | "GreaterThan" | "LessThan" | "Positive" | "Negative" | "Zero" | "Between" | "NotBetween" | "Is" | "IsNot" | "Contains" | "NotContains" | "StartsWith" | "EndsWith" | "Regex" | "Today" | "Yesterday" | "Tomorrow" | "ThisWeek" | "ThisMonth" | "ThisQuarter" | "ThisYear" | "InPast" | "InFuture" | "On" | "NotOn" | "NextWorkDay" | "LastWorkDay" | "True" | "False" | "Values" | "InRange" | "BooleanToggle" | ((column: AdaptableColumn) => SystemFilterPredicateId)) => SystemFilterPredicateId;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDefaultColumnFilterPredicate = void 0;
|
|
4
|
+
exports.getDefaultColumnFilterPredicate = (column, defaultColumnFilter) => {
|
|
5
|
+
return typeof defaultColumnFilter === 'function'
|
|
6
|
+
? defaultColumnFilter(column)
|
|
7
|
+
: defaultColumnFilter;
|
|
8
|
+
};
|
|
@@ -4,7 +4,7 @@ import { ModuleParams } from '../SharedProps/ModuleViewPopupProps';
|
|
|
4
4
|
import { AdaptableModule } from '../../../PredefinedConfig/Common/Types';
|
|
5
5
|
import { AdaptableApi } from '../../../Api/AdaptableApi';
|
|
6
6
|
/**
|
|
7
|
-
* This is the main popup that we use - so all
|
|
7
|
+
* This is the main popup that we use - so all Module popups will appear here.
|
|
8
8
|
*/
|
|
9
9
|
export interface AdaptablePopupProps extends React.ClassAttributes<AdaptablePopup> {
|
|
10
10
|
showModal: boolean;
|
|
@@ -2,6 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { AdaptableColumn } from '../../../PredefinedConfig/Common/AdaptableColumn';
|
|
3
3
|
import { DropdownButtonProps } from '../../../components/DropdownButton';
|
|
4
4
|
import { AdaptableApi } from '../../../Api/AdaptableApi';
|
|
5
|
+
import { GridCell } from '../../../types';
|
|
5
6
|
export interface ColumnValueSelectorProps extends React.HTMLProps<ColumnValueSelector> {
|
|
6
7
|
selectedColumn: AdaptableColumn;
|
|
7
8
|
selectedColumnValue: string;
|
|
@@ -12,19 +13,26 @@ export interface ColumnValueSelectorProps extends React.HTMLProps<ColumnValueSel
|
|
|
12
13
|
newLabel?: string;
|
|
13
14
|
existingLabel?: string;
|
|
14
15
|
dropdownButtonProps?: DropdownButtonProps;
|
|
16
|
+
selectedGridCells: GridCell[];
|
|
15
17
|
}
|
|
16
18
|
declare enum NEW_OR_EXISTING {
|
|
17
19
|
existing = "Existing value",
|
|
18
20
|
new = "New value"
|
|
19
21
|
}
|
|
20
|
-
|
|
22
|
+
interface ColumnValueSelectorState {
|
|
21
23
|
newOrExisting: NEW_OR_EXISTING;
|
|
22
|
-
|
|
24
|
+
distinctColumnValues: any[];
|
|
25
|
+
isDistinctColumnValuesLoading: boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare class ColumnValueSelector extends React.Component<ColumnValueSelectorProps, ColumnValueSelectorState> {
|
|
23
28
|
static defaultProps: {
|
|
24
29
|
newLabel: string;
|
|
25
30
|
existingLabel: string;
|
|
26
31
|
};
|
|
27
32
|
constructor(props: ColumnValueSelectorProps);
|
|
33
|
+
componentDidUpdate(prevProps: ColumnValueSelectorProps): void;
|
|
34
|
+
loadPermittedValues: () => Promise<void>;
|
|
35
|
+
handleSelectedValueExpand: () => void;
|
|
28
36
|
render(): JSX.Element;
|
|
29
37
|
onSelectedValueChange(selected: any[]): void;
|
|
30
38
|
}
|
|
@@ -10,6 +10,8 @@ const FieldWrap_1 = tslib_1.__importDefault(require("../../../components/FieldWr
|
|
|
10
10
|
const DropdownButton_1 = tslib_1.__importDefault(require("../../../components/DropdownButton"));
|
|
11
11
|
const UIHelper_1 = tslib_1.__importDefault(require("../../UIHelper"));
|
|
12
12
|
const AdaptableInput_1 = tslib_1.__importDefault(require("../AdaptableInput"));
|
|
13
|
+
const runIfNotResolvedIn_1 = require("../../../Utilities/runIfNotResolvedIn");
|
|
14
|
+
const join_1 = tslib_1.__importDefault(require("../../../components/utils/join"));
|
|
13
15
|
var NEW_OR_EXISTING;
|
|
14
16
|
(function (NEW_OR_EXISTING) {
|
|
15
17
|
NEW_OR_EXISTING["existing"] = "Existing value";
|
|
@@ -18,31 +20,61 @@ var NEW_OR_EXISTING;
|
|
|
18
20
|
class ColumnValueSelector extends React.Component {
|
|
19
21
|
constructor(props) {
|
|
20
22
|
super(props);
|
|
23
|
+
this.loadPermittedValues = async () => {
|
|
24
|
+
var _a;
|
|
25
|
+
if (!((_a = this.props.selectedColumn) === null || _a === void 0 ? void 0 : _a.ColumnId)) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// JW "fixed" this by replacing display values with raw values but really we should do it nicer in some way
|
|
29
|
+
// so that you we show the display value but we work on the raw value
|
|
30
|
+
const columnDisplayValuePairs = await runIfNotResolvedIn_1.runIfNotResolvedIn(this.props.api.columnApi.getDistinctBulkUpdateDisplayValuesForColumn(this.props.selectedColumn.ColumnId, this.props.selectedGridCells), () => this.setState({ isDistinctColumnValuesLoading: true }));
|
|
31
|
+
this.setState({ isDistinctColumnValuesLoading: false });
|
|
32
|
+
const newSortedColumnValues = ArrayExtensions_1.ArrayExtensions.sortArray(columnDisplayValuePairs, Enums_1.SortOrder.Asc).map((v) => ({
|
|
33
|
+
label: v,
|
|
34
|
+
value: v,
|
|
35
|
+
onClick: () => this.onSelectedValueChange([{ DisplayValue: v }]),
|
|
36
|
+
}));
|
|
37
|
+
this.setState({
|
|
38
|
+
distinctColumnValues: newSortedColumnValues,
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
this.handleSelectedValueExpand = () => {
|
|
42
|
+
// load only if not loaded
|
|
43
|
+
if (!this.state.distinctColumnValues.length) {
|
|
44
|
+
this.loadPermittedValues();
|
|
45
|
+
}
|
|
46
|
+
};
|
|
21
47
|
this.state = {
|
|
22
48
|
newOrExisting: NEW_OR_EXISTING.existing,
|
|
49
|
+
distinctColumnValues: [],
|
|
50
|
+
isDistinctColumnValuesLoading: false,
|
|
23
51
|
};
|
|
24
52
|
}
|
|
53
|
+
componentDidUpdate(prevProps) {
|
|
54
|
+
if (this.props.selectedColumn !== prevProps.selectedColumn ||
|
|
55
|
+
this.props.selectedGridCells !== prevProps.selectedGridCells) {
|
|
56
|
+
this.loadPermittedValues();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
25
59
|
render() {
|
|
26
60
|
let placeholderText = 'Select';
|
|
27
|
-
let sortedColumnValues = [];
|
|
28
61
|
let allowNew = this.props.allowNew != null ? this.props.allowNew : true;
|
|
29
62
|
if (allowNew) {
|
|
30
63
|
// placeholderText += ' or enter free text';
|
|
31
64
|
}
|
|
65
|
+
const baseClassName = 'ab-column-value-selector';
|
|
66
|
+
const className = join_1.default('ab-column-value-selector', this.state.isDistinctColumnValuesLoading && `${baseClassName}--loading`);
|
|
32
67
|
const fieldWidth = 150;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
onClick: () => this.onSelectedValueChange([{ DisplayValue: v }]),
|
|
42
|
-
}));
|
|
43
|
-
}
|
|
68
|
+
const items = this.state.isDistinctColumnValuesLoading
|
|
69
|
+
? [
|
|
70
|
+
{
|
|
71
|
+
label: 'Loading',
|
|
72
|
+
disabled: true,
|
|
73
|
+
},
|
|
74
|
+
]
|
|
75
|
+
: this.state.distinctColumnValues;
|
|
44
76
|
const dd = (React.createElement("div", null,
|
|
45
|
-
React.createElement(DropdownButton_1.default, { className:
|
|
77
|
+
React.createElement(DropdownButton_1.default, { className: className, columns: ['label'], variant: "text", showClearButton: true, onClear: () => this.onSelectedValueChange([]), style: { fontSize: 'small' }, disabled: this.props.disabled, items: items, onExpand: this.handleSelectedValueExpand }, this.props.selectedColumnValue ? this.props.selectedColumnValue : placeholderText)));
|
|
46
78
|
const input = (React.createElement(AdaptableInput_1.default, { type: this.props.selectedColumn
|
|
47
79
|
? UIHelper_1.default.getDescriptionForDataType(this.props.selectedColumn.DataType)
|
|
48
80
|
: 'text', placeholder: this.props.selectedColumn
|
|
@@ -5,7 +5,10 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const rebass_1 = require("rebass");
|
|
8
|
+
const Loader_1 = require("../../../components/Loader");
|
|
8
9
|
const Tabs_1 = require("../../../components/Tabs");
|
|
10
|
+
const join_1 = tslib_1.__importDefault(require("../../../components/utils/join"));
|
|
11
|
+
const runIfNotResolvedIn_1 = require("../../../Utilities/runIfNotResolvedIn");
|
|
9
12
|
const sortWithOrder_1 = require("../../../Utilities/sortWithOrder");
|
|
10
13
|
const ValueSelector_1 = require("../../Components/ValueSelector");
|
|
11
14
|
const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
|
|
@@ -21,8 +24,23 @@ exports.renderCustomSortValuesSummary = (data) => {
|
|
|
21
24
|
};
|
|
22
25
|
exports.CustomSortValuesWizardSection = (props) => {
|
|
23
26
|
const { data, api } = OnePageAdaptableWizard_1.useOnePageWizardContext();
|
|
24
|
-
const distinctValues = react_1.
|
|
25
|
-
|
|
27
|
+
const [distinctValues, setDistinctValues] = react_1.useState([]);
|
|
28
|
+
const [isDistinctValuesLoading, setIsDistinctValuesLoading] = react_1.useState(false);
|
|
29
|
+
react_1.useEffect(() => {
|
|
30
|
+
let isMounted = true;
|
|
31
|
+
(async () => {
|
|
32
|
+
// for sync and very fast resolving promises does not make sense to show a loader
|
|
33
|
+
setDistinctValues([]);
|
|
34
|
+
const newValues = await runIfNotResolvedIn_1.runIfNotResolvedIn(api.columnApi.getDistinctCustomSortDisplayValuesForColumn(data.ColumnId), () => isMounted && setIsDistinctValuesLoading(true));
|
|
35
|
+
if (!isMounted) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
setIsDistinctValuesLoading(false);
|
|
39
|
+
setDistinctValues(newValues);
|
|
40
|
+
})();
|
|
41
|
+
return () => {
|
|
42
|
+
isMounted = false;
|
|
43
|
+
};
|
|
26
44
|
}, [data.ColumnId]);
|
|
27
45
|
const sortedValuesMap = react_1.useMemo(() => {
|
|
28
46
|
if (!data.SortedValues || !data.SortedValues.length) {
|
|
@@ -37,14 +55,14 @@ exports.CustomSortValuesWizardSection = (props) => {
|
|
|
37
55
|
return sortedValuesMap.has(option);
|
|
38
56
|
}, [sortedValuesMap]);
|
|
39
57
|
const options = react_1.useMemo(() => {
|
|
40
|
-
// if (!allowReorder) {
|
|
41
|
-
// return distinctValues;
|
|
42
|
-
// }
|
|
43
58
|
return sortWithOrder_1.sortWithOrderArray(distinctValues, data.SortedValues, { sortUnorderedItems: false });
|
|
44
59
|
}, [allowReorder, distinctValues, data.SortedValues]);
|
|
45
|
-
|
|
60
|
+
const baseClassName = 'ab-CustomSortWizard__SortOrder';
|
|
61
|
+
const className = join_1.default(baseClassName, isDistinctValuesLoading && `${baseClassName}--loading`);
|
|
62
|
+
return (React.createElement(Tabs_1.Tabs, { style: { height: '100%' }, className: className },
|
|
46
63
|
React.createElement(Tabs_1.Tabs.Tab, null, "Sort Order"),
|
|
47
64
|
React.createElement(Tabs_1.Tabs.Content, null,
|
|
65
|
+
isDistinctValuesLoading && React.createElement(Loader_1.Loader, null, "Loading"),
|
|
48
66
|
React.createElement(ValueSelector_1.ValueSelector, { toIdentifier: (x) => `${x}`, toLabel: (x) => `${x}`, options: options, value: data.SortedValues, allowReorder: allowReorder, xSelectedLabel: () => {
|
|
49
67
|
return `Your Sort Order:`;
|
|
50
68
|
}, onChange: (SortedValues) => {
|
|
@@ -74,7 +74,9 @@ class FreeTextColumnPopupComponent extends React.Component {
|
|
|
74
74
|
this.state.editedAdaptableObject != null && (React.createElement(FreeTextColumnWizard_1.FreeTextColumnWizard, { moduleInfo: this.props.moduleInfo, data: this.state.editedAdaptableObject, configEntities: this.props.FreeTextColumns, wizardStartIndex: this.state.wizardStartIndex, onCloseWizard: () => this.onCloseWizard(), onFinishWizard: this.onFinishWizard })))));
|
|
75
75
|
}
|
|
76
76
|
onNew() {
|
|
77
|
-
const
|
|
77
|
+
const specialColumnsAreFilterable = this.props.api.internalApi.getAdaptableOptions()
|
|
78
|
+
.filterOptions.enableFilterOnSpecialColumns;
|
|
79
|
+
const editedAdaptableObject = ObjectFactory_1.ObjectFactory.CreateEmptyFreeTextColumn(specialColumnsAreFilterable);
|
|
78
80
|
// we want to do this here, as we need a way to differentiate in the wizard
|
|
79
81
|
// if it's a new or existing column
|
|
80
82
|
delete editedAdaptableObject.Uuid;
|
|
@@ -49,7 +49,9 @@ class FreeTextColumnSummaryComponent extends React.Component {
|
|
|
49
49
|
this.state.editedAdaptableObject && (React.createElement(FreeTextColumnWizard_1.FreeTextColumnWizard, { moduleInfo: this.props.moduleInfo, data: this.state.editedAdaptableObject, configEntities: this.props.FreeTextColumns, onCloseWizard: () => this.onCloseWizard(), onFinishWizard: this.onFinishWizard }))));
|
|
50
50
|
}
|
|
51
51
|
onNew() {
|
|
52
|
-
|
|
52
|
+
const specialColumnsAreFilterable = this.props.api.internalApi.getAdaptableOptions()
|
|
53
|
+
.filterOptions.enableFilterOnSpecialColumns;
|
|
54
|
+
let configEntity = ObjectFactory_1.ObjectFactory.CreateEmptyFreeTextColumn(specialColumnsAreFilterable);
|
|
53
55
|
configEntity.ColumnId = this.props.summarisedColumn.ColumnId;
|
|
54
56
|
this.setState({
|
|
55
57
|
editedAdaptableObject: configEntity,
|
|
@@ -48,13 +48,16 @@ exports.GridInfoPopup = (props) => {
|
|
|
48
48
|
return props.api.columnApi.getFriendlyNameFromColumnId(gs.ColumnId) + ': ' + gs.SortOrder;
|
|
49
49
|
})
|
|
50
50
|
: null;
|
|
51
|
+
const selectedRowInfo = props.api.gridApi.getSelectedRowInfo();
|
|
51
52
|
returnRows.push(createReadOnlyColItem(colItems, 'AdapTable Version', version_1.default));
|
|
52
53
|
returnRows.push(createReadOnlyColItem(colItems, 'Sorted Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(sorts) ? sorts.join('; ') : 'None'));
|
|
53
54
|
returnRows.push(createReadOnlyColItem(colItems, 'Column Filters', columnFilterDescription));
|
|
54
55
|
returnRows.push(createReadOnlyColItem(colItems, 'All Rows', props.api.gridApi.getRowCount()));
|
|
55
56
|
returnRows.push(createReadOnlyColItem(colItems, 'Visible Rows', props.api.gridApi.getVisibleRowCount()));
|
|
57
|
+
returnRows.push(createReadOnlyColItem(colItems, 'Selected Rows', selectedRowInfo === null || selectedRowInfo === void 0 ? void 0 : selectedRowInfo.gridRows.length));
|
|
58
|
+
returnRows.push(createReadOnlyColItem(colItems, 'Visible Selected Rows', selectedRowInfo === null || selectedRowInfo === void 0 ? void 0 : selectedRowInfo.gridRows.filter((gr) => { var _a; return ((_a = gr.rowNode) === null || _a === void 0 ? void 0 : _a.displayed) == true; }).length));
|
|
56
59
|
returnRows.push(createReadOnlyColItem(colItems, 'All Columns', props.api.gridApi.getColumnCount()));
|
|
57
|
-
returnRows.push(createReadOnlyColItem(colItems, 'Visible
|
|
60
|
+
returnRows.push(createReadOnlyColItem(colItems, 'Visible Columns', props.api.gridApi.getVisibleColumnCount()));
|
|
58
61
|
returnRows.push(createReadOnlyColItem(colItems, 'Calculated Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(calcColumns) ? calcColumns : 'None'));
|
|
59
62
|
returnRows.push(createReadOnlyColItem(colItems, 'Free Text Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(freeTextColumns) ? freeTextColumns : 'None'));
|
|
60
63
|
returnRows.push(createReadOnlyColItem(colItems, 'Action Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(actionColumns) ? actionColumns : 'None'));
|
package/src/View/UIHelper.d.ts
CHANGED
|
@@ -52,6 +52,7 @@ export declare function getButtonTextColourForArrayandMessageType(adaptableAlert
|
|
|
52
52
|
export declare function getButtonTextColourForMessageType(messageType: AdaptableMessageType): string;
|
|
53
53
|
export declare function getAdaptableToolPanelWidth(): number;
|
|
54
54
|
export declare function getCSSVariableValue(cssVariable: string): string | undefined;
|
|
55
|
+
export declare function setCSSVariableValue(cssVariable: string, value: string): void;
|
|
55
56
|
export declare function isBrowserDocumentAvailable(): boolean;
|
|
56
57
|
export declare const UIHelper: {
|
|
57
58
|
getHexForName: typeof getHexForName;
|
|
@@ -79,6 +80,7 @@ export declare const UIHelper: {
|
|
|
79
80
|
getButtonTextColourForArrayandMessageType: typeof getButtonTextColourForArrayandMessageType;
|
|
80
81
|
getButtonTextColourForMessageType: typeof getButtonTextColourForMessageType;
|
|
81
82
|
getCSSVariableValue: typeof getCSSVariableValue;
|
|
83
|
+
setCSSVariableValue: typeof setCSSVariableValue;
|
|
82
84
|
getAdaptableToolPanelWidth: typeof getAdaptableToolPanelWidth;
|
|
83
85
|
isBrowserDocumentAvailable: typeof isBrowserDocumentAvailable;
|
|
84
86
|
};
|
package/src/View/UIHelper.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UIHelper = exports.isBrowserDocumentAvailable = exports.getCSSVariableValue = exports.getAdaptableToolPanelWidth = exports.getButtonTextColourForMessageType = exports.getButtonTextColourForArrayandMessageType = exports.getButtonColourForAdaptableAlerts = exports.getMessageTypeFromAdaptableAlerts = exports.getScheduleDescription = exports.getButtonToneForMessageType = exports.getGlyphForMessageType = exports.getGlyphForStatusColour = exports.getStyleForMessageType = exports.getStyleForStatusColour = exports.getColorByMessageType = exports.getGlyphByMessageType = exports.getButtonToneByMessageType = exports.getMessageTypeByStatusColour = exports.IsNotEmptyStyle = exports.IsEmptyStyle = exports.isValidUserChartContainer = exports.getChartContainer = exports.getModalContainer = exports.getPlaceHolderforDataType = exports.getDescriptionForDataType = exports.getEmptyConfigState = exports.getDefaultColors = exports.getHexForName = exports.ORANGE = exports.LIGHT_RED = exports.RED = exports.DARK_RED = exports.PURPLE = exports.MAGENTA = exports.CYAN = exports.LIGHT_BLUE = exports.BLUE = exports.DARK_BLUE = exports.LIGHT_YELLOW = exports.YELLOW = exports.LIME_GREEN = exports.GREEN = exports.DARK_GREEN = exports.BROWN = exports.GRAY = exports.LIGHT_GRAY = exports.WHITE = exports.BLACK = void 0;
|
|
3
|
+
exports.UIHelper = exports.isBrowserDocumentAvailable = exports.setCSSVariableValue = exports.getCSSVariableValue = exports.getAdaptableToolPanelWidth = exports.getButtonTextColourForMessageType = exports.getButtonTextColourForArrayandMessageType = exports.getButtonColourForAdaptableAlerts = exports.getMessageTypeFromAdaptableAlerts = exports.getScheduleDescription = exports.getButtonToneForMessageType = exports.getGlyphForMessageType = exports.getGlyphForStatusColour = exports.getStyleForMessageType = exports.getStyleForStatusColour = exports.getColorByMessageType = exports.getGlyphByMessageType = exports.getButtonToneByMessageType = exports.getMessageTypeByStatusColour = exports.IsNotEmptyStyle = exports.IsEmptyStyle = exports.isValidUserChartContainer = exports.getChartContainer = exports.getModalContainer = exports.getPlaceHolderforDataType = exports.getDescriptionForDataType = exports.getEmptyConfigState = exports.getDefaultColors = exports.getHexForName = exports.ORANGE = exports.LIGHT_RED = exports.RED = exports.DARK_RED = exports.PURPLE = exports.MAGENTA = exports.CYAN = exports.LIGHT_BLUE = exports.BLUE = exports.DARK_BLUE = exports.LIGHT_YELLOW = exports.YELLOW = exports.LIME_GREEN = exports.GREEN = exports.DARK_GREEN = exports.BROWN = exports.GRAY = exports.LIGHT_GRAY = exports.WHITE = exports.BLACK = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const EditableConfigEntityState_1 = require("./Components/SharedProps/EditableConfigEntityState");
|
|
6
6
|
const Enums_1 = require("../PredefinedConfig/Common/Enums");
|
|
@@ -459,6 +459,14 @@ function getCSSVariableValue(cssVariable) {
|
|
|
459
459
|
return getComputedStyle(document.documentElement).getPropertyValue(cssVariable);
|
|
460
460
|
}
|
|
461
461
|
exports.getCSSVariableValue = getCSSVariableValue;
|
|
462
|
+
function setCSSVariableValue(cssVariable, value) {
|
|
463
|
+
if (!isBrowserDocumentAvailable()) {
|
|
464
|
+
// possible during static/server-side rendering (should happen only in test cases)
|
|
465
|
+
return undefined;
|
|
466
|
+
}
|
|
467
|
+
document.documentElement.style.setProperty(cssVariable, value);
|
|
468
|
+
}
|
|
469
|
+
exports.setCSSVariableValue = setCSSVariableValue;
|
|
462
470
|
function isBrowserDocumentAvailable() {
|
|
463
471
|
return typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
464
472
|
}
|
|
@@ -489,6 +497,7 @@ exports.UIHelper = {
|
|
|
489
497
|
getButtonTextColourForArrayandMessageType,
|
|
490
498
|
getButtonTextColourForMessageType,
|
|
491
499
|
getCSSVariableValue,
|
|
500
|
+
setCSSVariableValue,
|
|
492
501
|
getAdaptableToolPanelWidth,
|
|
493
502
|
isBrowserDocumentAvailable,
|
|
494
503
|
};
|
|
@@ -8,7 +8,8 @@ export declare class ActionColumnRenderer implements ICellRendererComp {
|
|
|
8
8
|
private eGui;
|
|
9
9
|
private eventListener;
|
|
10
10
|
init(params: ICellRendererParams): void;
|
|
11
|
+
render(): void;
|
|
11
12
|
getGui(): HTMLElement;
|
|
12
|
-
refresh(params:
|
|
13
|
+
refresh(params: ICellRendererParams): boolean;
|
|
13
14
|
destroy(): void;
|
|
14
15
|
}
|
|
@@ -64,14 +64,30 @@ class ActionColumnRenderer {
|
|
|
64
64
|
let buttonStyle = adaptableApi.internalApi.getStyleForButton(button, context);
|
|
65
65
|
let buttonLabel = adaptableApi.internalApi.getLabelForButton(button, context);
|
|
66
66
|
let buttonTooltip = adaptableApi.internalApi.getTooltipForButton(button, context);
|
|
67
|
-
|
|
67
|
+
const handleClick = () => {
|
|
68
|
+
button.onClick(button, context);
|
|
69
|
+
// Timeout to let any updates to be done before re-rendering the component
|
|
70
|
+
setTimeout(() => {
|
|
71
|
+
// when called again it triggers a re-render
|
|
72
|
+
// https:reactjs.org/docs/react-dom.html#render
|
|
73
|
+
doRender();
|
|
74
|
+
}, 16);
|
|
75
|
+
};
|
|
76
|
+
return (React.createElement(SimpleButton_1.default, { key: button.Uuid, variant: (_a = buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.variant) !== null && _a !== void 0 ? _a : 'text', disabled: disabled, tooltip: buttonTooltip, tone: (_b = buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.tone) !== null && _b !== void 0 ? _b : 'none', onClick: handleClick, className: buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className, accessLevel: 'Full' },
|
|
68
77
|
button.icon ? React.createElement("img", Object.assign({}, iconProps)) : null,
|
|
69
78
|
buttonLabel));
|
|
70
79
|
};
|
|
71
|
-
|
|
72
|
-
|
|
80
|
+
const eGui = this.eGui;
|
|
81
|
+
function doRender() {
|
|
82
|
+
react_dom_1.render(renderButton(adaptable.api, context), eGui);
|
|
83
|
+
}
|
|
84
|
+
this.render = doRender;
|
|
85
|
+
doRender();
|
|
73
86
|
}
|
|
74
87
|
}
|
|
88
|
+
// defined on init
|
|
89
|
+
// used to re-render in refresh
|
|
90
|
+
render() { }
|
|
75
91
|
// gets called once when grid ready to insert the element
|
|
76
92
|
getGui() {
|
|
77
93
|
return this.eGui;
|
|
@@ -79,6 +95,7 @@ class ActionColumnRenderer {
|
|
|
79
95
|
// gets called whenever the user gets the cell to refresh
|
|
80
96
|
refresh(params) {
|
|
81
97
|
// return true to tell the grid we refreshed successfully
|
|
98
|
+
this.render();
|
|
82
99
|
return true;
|
|
83
100
|
}
|
|
84
101
|
// gets called when the cell is removed from the grid
|
|
@@ -132,6 +132,8 @@ export declare class Adaptable implements IAdaptable {
|
|
|
132
132
|
private getReadOnlyCellStyle;
|
|
133
133
|
private getConditionalStyleCellStyle;
|
|
134
134
|
private getConditionalStyleCellClass;
|
|
135
|
+
private getEditableCellClass;
|
|
136
|
+
private getReadonlyCellClass;
|
|
135
137
|
private isQuickSearchActive;
|
|
136
138
|
getPrimaryKeyValueFromRowNode(rowNode: RowNode): any;
|
|
137
139
|
private getSortedColumnStateForVisibleColumns;
|
|
@@ -143,7 +145,13 @@ export declare class Adaptable implements IAdaptable {
|
|
|
143
145
|
setSelectedRows(): SelectedRowInfo | undefined;
|
|
144
146
|
setValue(dataChangedInfo: DataChangedInfo): void;
|
|
145
147
|
cancelEdit(): void;
|
|
146
|
-
getDistinctValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, skipRowNode?: RowNode): GridCell[];
|
|
148
|
+
getDistinctValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, skipRowNode?: RowNode, permittedValues?: any[]): GridCell[];
|
|
149
|
+
getDistinctFilterValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, filter: string, skipRowNode?: RowNode): Promise<{
|
|
150
|
+
suppressClientSideFilter?: boolean;
|
|
151
|
+
gridCells: GridCell[];
|
|
152
|
+
}>;
|
|
153
|
+
getDistinctCustomSortValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, skipRowNode?: RowNode): Promise<GridCell[]>;
|
|
154
|
+
getDistinctBulkUpdateValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, selectedGridCells: GridCell[], skipRowNode?: RowNode): Promise<GridCell[]>;
|
|
147
155
|
getColumnValueDisplayValuePairList(columnId: string, visibleRowsOnly: boolean, onlyIncludeIds?: {
|
|
148
156
|
[key: string]: boolean;
|
|
149
157
|
}): GridCell[];
|
|
@@ -187,10 +195,16 @@ export declare class Adaptable implements IAdaptable {
|
|
|
187
195
|
colId: string;
|
|
188
196
|
editable: boolean;
|
|
189
197
|
hide: boolean;
|
|
198
|
+
width: number;
|
|
199
|
+
enableValue: boolean;
|
|
190
200
|
filter: boolean;
|
|
191
|
-
|
|
201
|
+
floatingFilter: boolean;
|
|
192
202
|
resizable: boolean;
|
|
193
203
|
enableRowGroup: boolean;
|
|
204
|
+
sortable: boolean;
|
|
205
|
+
enablePivot: boolean;
|
|
206
|
+
suppressMenu: boolean;
|
|
207
|
+
suppressMovable: boolean;
|
|
194
208
|
cellEditor: string | typeof AdaptableNumberEditor | typeof AdaptableDateEditor;
|
|
195
209
|
type: string[];
|
|
196
210
|
valueSetter: (params: ValueSetterParams) => any;
|
|
@@ -215,8 +229,8 @@ export declare class Adaptable implements IAdaptable {
|
|
|
215
229
|
}): void;
|
|
216
230
|
getDefaultIPPStyle(): IPPStyle;
|
|
217
231
|
getCurrentIPPStyle(): IPPStyle;
|
|
218
|
-
|
|
219
|
-
|
|
232
|
+
getAdaptableContainerElement(): HTMLElement | null;
|
|
233
|
+
getGridContainerElement(): HTMLElement | null;
|
|
220
234
|
private initInternalGridLogic;
|
|
221
235
|
buildStandaloneColumnHeader(adaptableColumn: AdaptableColumn): AdaptableMenuItem[];
|
|
222
236
|
prepareGrid(): void;
|
|
@@ -278,6 +292,8 @@ export declare class Adaptable implements IAdaptable {
|
|
|
278
292
|
setColumnSort(columnSorts: ColumnSort[]): void;
|
|
279
293
|
clearColumnSort(): void;
|
|
280
294
|
setDataSource(dataSource: any[]): void;
|
|
295
|
+
getGridData(): any[];
|
|
296
|
+
getFilteredData(): any[];
|
|
281
297
|
loadDataSource(dataSource: any[]): void;
|
|
282
298
|
updateRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): void;
|
|
283
299
|
addRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): void;
|