@adaptabletools/adaptable 13.0.1 → 13.0.2
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/bundle.cjs.js +149 -143
- package/package.json +1 -1
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -0
- package/src/AdaptableOptions/ActionOptions.d.ts +15 -1
- package/src/AdaptableOptions/AdaptableOptions.d.ts +1 -0
- package/src/AdaptableOptions/AdaptableQLOptions.d.ts +1 -0
- package/src/AdaptableOptions/FilterOptions.d.ts +6 -0
- package/src/AdaptableOptions/GeneralOptions.d.ts +2 -0
- package/src/AdaptableOptions/LayoutOptions.d.ts +1 -0
- package/src/AdaptableOptions/NotificationsOptions.d.ts +2 -1
- package/src/Api/EventApi.d.ts +13 -22
- package/src/Api/Implementation/StyledColumnApiImpl.d.ts +1 -0
- package/src/Api/Implementation/StyledColumnApiImpl.js +17 -0
- package/src/Api/StyledColumnApi.d.ts +5 -0
- package/src/Strategy/FilterModule.js +1 -1
- package/src/Strategy/LayoutModule.js +7 -1
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
- package/src/Utilities/Extensions/StringExtensions.d.ts +2 -0
- package/src/Utilities/Extensions/StringExtensions.js +21 -1
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +1 -1
- package/src/Utilities/Services/Interface/IMetamodelService.d.ts +1 -0
- package/src/Utilities/Services/MetamodelService.js +6 -4
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.d.ts +3 -5
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +103 -92
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.d.ts +2 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +4 -3
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizardColumnsStep.js +8 -3
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +7 -34
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.js +7 -7
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/GridOptionsForm.js +2 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UiOptionsForm.js +2 -1
- package/src/View/Components/FilterForm/QuickFilterForm.js +2 -2
- package/src/agGrid/ActionColumnRenderer.js +2 -0
- package/src/agGrid/Adaptable.d.ts +2 -0
- package/src/agGrid/Adaptable.js +76 -52
- package/src/metamodel/adaptable.metamodel.d.ts +87 -0
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +2 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -5,10 +5,11 @@ export interface NocodeColumn extends Partial<ColDef> {
|
|
|
5
5
|
type?: string | string[];
|
|
6
6
|
caption?: string;
|
|
7
7
|
}
|
|
8
|
-
declare const _default: React.MemoExoticComponent<({ columns: cols, handle, onValidityChange, onChange, onSelectionChange, selectedColumns, }: {
|
|
8
|
+
declare const _default: React.MemoExoticComponent<({ columns: cols, handle, onValidityChange, onChange, onSelectionChange, selectedColumns, theme, }: {
|
|
9
9
|
onValidityChange: (valid: boolean) => any;
|
|
10
10
|
handle: React.MutableRefObject<any>;
|
|
11
11
|
columns: NocodeColumn[];
|
|
12
|
+
theme?: string;
|
|
12
13
|
onChange?: (columns: NocodeColumn[]) => void;
|
|
13
14
|
onSelectionChange?: (column: any, flag: boolean) => void;
|
|
14
15
|
selectedColumns?: {
|
|
@@ -58,7 +58,7 @@ const tableDOMProps = {
|
|
|
58
58
|
minHeight: 600,
|
|
59
59
|
},
|
|
60
60
|
};
|
|
61
|
-
const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSelectionChange, selectedColumns, }) => {
|
|
61
|
+
const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSelectionChange, selectedColumns, theme, }) => {
|
|
62
62
|
const rerender = useForceRender();
|
|
63
63
|
const columnsRef = (0, react_1.useRef)(cols);
|
|
64
64
|
const silentSetColumns = (columns) => {
|
|
@@ -316,7 +316,7 @@ const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSele
|
|
|
316
316
|
},
|
|
317
317
|
},
|
|
318
318
|
};
|
|
319
|
-
return (React.createElement(rebass_1.Box, { p: 2, style: { height: '100%' }, className:
|
|
319
|
+
return (React.createElement(rebass_1.Box, { p: 2, style: { height: '100%' }, className: theme },
|
|
320
320
|
React.createElement(InfiniteTable_1.DataSource, { data: data, primaryKey: "colId" },
|
|
321
321
|
React.createElement(InfiniteTable_1.InfiniteTable, { columnTypes: {
|
|
322
322
|
default: {
|
|
@@ -8,10 +8,11 @@ const StringExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/E
|
|
|
8
8
|
const OnePageWizards_1 = require("../../Wizard/OnePageWizards");
|
|
9
9
|
const ConfigurationWizardColumnsStep_1 = require("./ConfigurationWizardColumnsStep");
|
|
10
10
|
const GridOptionsForm_1 = tslib_1.__importDefault(require("./GridOptionsForm"));
|
|
11
|
-
const AdaptableOptionsForm_1 = tslib_1.__importDefault(require("./AdaptableOptionsForm"));
|
|
12
11
|
const EntitlementsForm_1 = tslib_1.__importDefault(require("./EntitlementsForm"));
|
|
13
12
|
const UiOptionsForm_1 = require("./UIOptions/UiOptionsForm");
|
|
14
13
|
const FinanceForm_1 = require("./FinanceForm");
|
|
14
|
+
const DefaultAdaptableOptions_1 = require("../../../Utilities/Defaults/DefaultAdaptableOptions");
|
|
15
|
+
const AdaptableOptionsForm_1 = require("./AdaptableOptionsForm");
|
|
15
16
|
const ConfigurationWizard = (props) => {
|
|
16
17
|
var _a, _b;
|
|
17
18
|
const [isPrimaryKeySelected, setIsValid] = React.useState(true);
|
|
@@ -22,7 +23,7 @@ const ConfigurationWizard = (props) => {
|
|
|
22
23
|
toolPanels: ['columns', 'filters', 'adaptable'],
|
|
23
24
|
},
|
|
24
25
|
};
|
|
25
|
-
return Object.assign(Object.assign({}, props.adaptableOptions), { gridOptions: Object.assign(Object.assign({}, gridOptionDefaults), (_a = props === null || props === void 0 ? void 0 : props.adaptableOptions) === null || _a === void 0 ? void 0 : _a.gridOptions) });
|
|
26
|
+
return Object.assign(Object.assign(Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions), props.adaptableOptions), { gridOptions: Object.assign(Object.assign({}, gridOptionDefaults), (_a = props === null || props === void 0 ? void 0 : props.adaptableOptions) === null || _a === void 0 ? void 0 : _a.gridOptions) });
|
|
26
27
|
});
|
|
27
28
|
const [selectedColumns, setSelectedColumns] = (0, react_1.useState)(() => {
|
|
28
29
|
return props.adaptableOptions.gridOptions.columnDefs.reduce((acc, col) => {
|
|
@@ -77,7 +78,7 @@ const ConfigurationWizard = (props) => {
|
|
|
77
78
|
title: 'Adaptable Options',
|
|
78
79
|
details: 'Configure Adaptable Options',
|
|
79
80
|
isValid: () => (adaptableOptions.adaptableId ? true : 'Adaptable ID is required'),
|
|
80
|
-
render: () => (React.createElement(AdaptableOptionsForm_1.
|
|
81
|
+
render: () => (React.createElement(AdaptableOptionsForm_1.AdaptableOptionsForm, { adaptableOptions: adaptableOptions, onChangeadAptableOptions: setAdaptableOptions })),
|
|
81
82
|
},
|
|
82
83
|
{
|
|
83
84
|
title: 'Grid Options',
|
package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizardColumnsStep.js
CHANGED
|
@@ -5,9 +5,14 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
6
|
const ColumnsList_1 = tslib_1.__importDefault(require("./ColumnsList"));
|
|
7
7
|
const ConfigurationWizardColumnsStep = (props) => {
|
|
8
|
-
var _a, _b;
|
|
9
|
-
|
|
8
|
+
var _a, _b, _c;
|
|
9
|
+
let theme = 'light';
|
|
10
|
+
if (typeof props.adaptableOptions.predefinedConfig === 'object' &&
|
|
11
|
+
((_a = props.adaptableOptions.predefinedConfig.Theme) === null || _a === void 0 ? void 0 : _a.CurrentTheme)) {
|
|
12
|
+
theme = props.adaptableOptions.predefinedConfig.Theme.CurrentTheme;
|
|
13
|
+
}
|
|
14
|
+
return (React.createElement(ColumnsList_1.default, { theme: theme, handle: props.columnsHandle, onValidityChange: (valid) => {
|
|
10
15
|
props.setPrimaryKeyIsNotSelected(valid);
|
|
11
|
-
}, selectedColumns: props.selectedColumns, onChange: props.onColumnChange, onSelectionChange: props.onSelectionChange, columns: (
|
|
16
|
+
}, selectedColumns: props.selectedColumns, onChange: props.onColumnChange, onSelectionChange: props.onSelectionChange, columns: (_c = (_b = props.adaptableOptions) === null || _b === void 0 ? void 0 : _b.gridOptions) === null || _c === void 0 ? void 0 : _c.columnDefs }));
|
|
12
17
|
};
|
|
13
18
|
exports.ConfigurationWizardColumnsStep = ConfigurationWizardColumnsStep;
|
|
@@ -4,7 +4,6 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const React = tslib_1.__importStar(require("react"));
|
|
5
5
|
const HelpBlock_1 = tslib_1.__importDefault(require("../../../components/HelpBlock"));
|
|
6
6
|
const Types_1 = require("../../../PredefinedConfig/Common/Types");
|
|
7
|
-
const AdaptableObjectRow_1 = require("../../Components/AdaptableObjectRow");
|
|
8
7
|
const rebass_1 = require("rebass");
|
|
9
8
|
const Radio_1 = tslib_1.__importDefault(require("../../../components/Radio"));
|
|
10
9
|
const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayout"));
|
|
@@ -19,7 +18,7 @@ const tableDOMProps = {
|
|
|
19
18
|
},
|
|
20
19
|
};
|
|
21
20
|
const EntitlementsListForm = (props) => {
|
|
22
|
-
var _a, _b;
|
|
21
|
+
var _a, _b, _c;
|
|
23
22
|
let abOptions = props.adaptableOptions;
|
|
24
23
|
const entitlements = (_b = (_a = abOptions === null || abOptions === void 0 ? void 0 : abOptions.entitlementOptions) === null || _a === void 0 ? void 0 : _a.moduleEntitlements) !== null && _b !== void 0 ? _b : [];
|
|
25
24
|
if (typeof entitlements === 'function') {
|
|
@@ -31,28 +30,6 @@ const EntitlementsListForm = (props) => {
|
|
|
31
30
|
return acc;
|
|
32
31
|
}, {});
|
|
33
32
|
}, [abOptions === null || abOptions === void 0 ? void 0 : abOptions.entitlementOptions]);
|
|
34
|
-
const colItems = [
|
|
35
|
-
{
|
|
36
|
-
Content: React.createElement(rebass_1.Box, { style: { textAlign: 'left' } }, "Entitlement"),
|
|
37
|
-
Size: 3,
|
|
38
|
-
key: 'name',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
Content: 'Visible',
|
|
42
|
-
Size: 3,
|
|
43
|
-
key: 'Visible',
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
Content: 'Read Only',
|
|
47
|
-
Size: 3,
|
|
48
|
-
key: 'ReadOnly',
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
Content: 'Hidden',
|
|
52
|
-
Size: 3,
|
|
53
|
-
key: 'Hidden',
|
|
54
|
-
},
|
|
55
|
-
];
|
|
56
33
|
const handleOnChange = React.useCallback((module, accessLevel) => {
|
|
57
34
|
let newEntitlements = entitlements;
|
|
58
35
|
// change
|
|
@@ -73,15 +50,6 @@ const EntitlementsListForm = (props) => {
|
|
|
73
50
|
}
|
|
74
51
|
props.onChangeadAptableOptions(Object.assign(Object.assign({}, abOptions), { entitlementOptions: Object.assign(Object.assign({}, abOptions.entitlementOptions), { moduleEntitlements: newEntitlements }) }));
|
|
75
52
|
}, [abOptions === null || abOptions === void 0 ? void 0 : abOptions.entitlementOptions]);
|
|
76
|
-
const items = ALL_ENTITLEMENTS_MODULES.map((module) => {
|
|
77
|
-
const cItems = colItems.map((item) => (Object.assign({}, item)));
|
|
78
|
-
const accessLevel = entitlementsMap[module];
|
|
79
|
-
cItems[0].Content = React.createElement(rebass_1.Box, { style: { textAlign: 'left' } }, ModuleConstants_1.ADAPTABLE_MODULE_MAP[module]);
|
|
80
|
-
cItems[1].Content = (React.createElement(Radio_1.default, { onClick: () => handleOnChange(module, 'Full'), checked: accessLevel === 'Full' }));
|
|
81
|
-
cItems[2].Content = (React.createElement(Radio_1.default, { onClick: () => handleOnChange(module, 'ReadOnly'), checked: accessLevel === 'ReadOnly' }));
|
|
82
|
-
cItems[3].Content = (React.createElement(Radio_1.default, { onClick: () => handleOnChange(module, 'Hidden'), checked: accessLevel === 'Hidden' }));
|
|
83
|
-
return React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { key: module, colItems: cItems, style: { cursor: 'pointer' } });
|
|
84
|
-
});
|
|
85
53
|
if (typeof entitlements === 'function') {
|
|
86
54
|
return (React.createElement(HelpBlock_1.default, { mb: 2 }, "Entitlements cannot be customized, they are handled by a custom function."));
|
|
87
55
|
}
|
|
@@ -119,7 +87,12 @@ const EntitlementsListForm = (props) => {
|
|
|
119
87
|
},
|
|
120
88
|
};
|
|
121
89
|
const data = ALL_ENTITLEMENTS_MODULES.map((module) => ({ name: ModuleConstants_1.ADAPTABLE_MODULE_MAP[module] }));
|
|
122
|
-
|
|
90
|
+
let theme = 'light';
|
|
91
|
+
if (typeof props.adaptableOptions.predefinedConfig === 'object' &&
|
|
92
|
+
((_c = props.adaptableOptions.predefinedConfig.Theme) === null || _c === void 0 ? void 0 : _c.CurrentTheme)) {
|
|
93
|
+
theme = props.adaptableOptions.predefinedConfig.Theme.CurrentTheme;
|
|
94
|
+
}
|
|
95
|
+
return (React.createElement(rebass_1.Box, { flex: 1, height: "100%", className: theme },
|
|
123
96
|
React.createElement(InfiniteTable_1.DataSource, { data: data, primaryKey: "name" },
|
|
124
97
|
React.createElement(InfiniteTable_1.InfiniteTable, { columnTypes: {
|
|
125
98
|
default: {
|
package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.js
CHANGED
|
@@ -71,11 +71,11 @@ const FDC3InstrumentColumnBuilder = (props) => {
|
|
|
71
71
|
return (React.createElement(rebass_1.Flex, null,
|
|
72
72
|
React.createElement(FormLayout_1.default, { mr: 2 }, fields.slice(0, 4).map((field) => {
|
|
73
73
|
var _a;
|
|
74
|
-
return (React.createElement(FDC3ColumnSelector, Object.assign({}, field, { value: (_a = props.column[field.id]) !== null && _a !== void 0 ? _a : 'Select Column', onChange: (columnId) => props.onColumnFieldChange(field.id, columnId), columnOptions: props.columnOptions })));
|
|
74
|
+
return (React.createElement(FDC3ColumnSelector, Object.assign({}, field, { key: field.id, value: (_a = props.column[field.id]) !== null && _a !== void 0 ? _a : 'Select Column', onChange: (columnId) => props.onColumnFieldChange(field.id, columnId), columnOptions: props.columnOptions })));
|
|
75
75
|
})),
|
|
76
76
|
React.createElement(FormLayout_1.default, null, fields.slice(4).map((field) => {
|
|
77
77
|
var _a;
|
|
78
|
-
return (React.createElement(FDC3ColumnSelector, Object.assign({}, field, { value: (_a = props.column[field.id]) !== null && _a !== void 0 ? _a : 'Select Column', onChange: (columnId) => props.onColumnFieldChange(field.id, columnId), columnOptions: props.columnOptions })));
|
|
78
|
+
return (React.createElement(FDC3ColumnSelector, Object.assign({}, field, { key: field.id, value: (_a = props.column[field.id]) !== null && _a !== void 0 ? _a : 'Select Column', onChange: (columnId) => props.onColumnFieldChange(field.id, columnId), columnOptions: props.columnOptions })));
|
|
79
79
|
})),
|
|
80
80
|
React.createElement(rebass_1.Flex, { ml: 3, flexDirection: "column" }, fdc3ColumnDefinitions.instrumentColumns.intents.map((intent) => {
|
|
81
81
|
var _a, _b;
|
|
@@ -89,7 +89,7 @@ const FDC3BaseColumnBuilder = (props) => {
|
|
|
89
89
|
React.createElement(FormLayout_1.default, null,
|
|
90
90
|
fields.map((field) => {
|
|
91
91
|
var _a, _b;
|
|
92
|
-
return (React.createElement(FDC3ColumnSelector, Object.assign({}, field, { columnOptions: props.columnOptions, onChange: (columnId) => props.onColumnFieldChange(field.id, columnId), value: (_b = (_a = props.column) === null || _a === void 0 ? void 0 : _a[field.id]) !== null && _b !== void 0 ? _b : '' })));
|
|
92
|
+
return (React.createElement(FDC3ColumnSelector, Object.assign({}, field, { key: field.id, columnOptions: props.columnOptions, onChange: (columnId) => props.onColumnFieldChange(field.id, columnId), value: (_b = (_a = props.column) === null || _a === void 0 ? void 0 : _a[field.id]) !== null && _b !== void 0 ? _b : '' })));
|
|
93
93
|
}),
|
|
94
94
|
React.createElement(FormLayout_1.FormRow, { label: "" },
|
|
95
95
|
React.createElement(rebass_1.Flex, { flexDirection: "column" }, intents.map((intent) => {
|
|
@@ -132,7 +132,7 @@ const FDC3ColumnBuilder = (props) => {
|
|
|
132
132
|
props.onChange(Object.assign(Object.assign({}, props.fdc3Column), { broadcastContextMenuLabel: (_a = event.target.value) !== null && _a !== void 0 ? _a : '' }));
|
|
133
133
|
}, [props.fdc3Column]);
|
|
134
134
|
return (React.createElement(FormBox_1.NocodeWizardFormBox, null,
|
|
135
|
-
React.createElement(rebass_1.Flex,
|
|
135
|
+
React.createElement(rebass_1.Flex, { flexWrap: "wrap" },
|
|
136
136
|
React.createElement(FormLayout_1.default, { mr: 3, mb: 3 },
|
|
137
137
|
props.beforeContent,
|
|
138
138
|
React.createElement(FormLayout_1.FormRow, { label: React.createElement(React.Fragment, null,
|
|
@@ -210,7 +210,7 @@ const FDC3ColumnCreator = (props) => {
|
|
|
210
210
|
}
|
|
211
211
|
return (React.createElement(FDC3ColumnBuilder, { disabled: fieldsDisabled, columnOptions: props.columnOptions, fdc3Column: fdc3Column, fdc3ColumnType: fdc3ColumnType, onChange: (newFDC3Column) => setFDC3Column(newFDC3Column), beforeContent: typeSelector, footer: React.createElement(rebass_1.Flex, null,
|
|
212
212
|
React.createElement(rebass_1.Box, { flex: 1 }),
|
|
213
|
-
React.createElement(rebass_1.Flex, { alignItems: "center", mr: 3 }, errors.slice(0, 1).map((error) => (React.createElement(AlertMessage, { ml: 2 }, error)))),
|
|
213
|
+
React.createElement(rebass_1.Flex, { alignItems: "center", mr: 3 }, errors.slice(0, 1).map((error) => (React.createElement(AlertMessage, { key: error, ml: 2 }, error)))),
|
|
214
214
|
React.createElement(SimpleButton_1.default, { disabled: fieldsDisabled || !fdc3Column.columnId, onClick: handleOnNew, icon: "plus", variant: "raised" }, "Add FDC3 Column")) }));
|
|
215
215
|
};
|
|
216
216
|
const FinanceFormSectionTitle = (props) => (React.createElement(rebass_1.Box, Object.assign({}, props, { mb: 2 }),
|
|
@@ -238,8 +238,8 @@ const FinanceForm = (props) => {
|
|
|
238
238
|
props.onChangeadAptableOptions(Object.assign(Object.assign({}, props.adaptableOptions), { plugins: [...props.adaptableOptions.plugins] }));
|
|
239
239
|
};
|
|
240
240
|
const renderEditor = (fdc3ColumnType, fdc3ColumnsItems) => {
|
|
241
|
-
return fdc3ColumnsItems.map((fdc3Column, currentFDCColumnId) => (React.createElement(rebass_1.Box, { mb: 3 },
|
|
242
|
-
React.createElement(FDC3ColumnEditor, {
|
|
241
|
+
return fdc3ColumnsItems.map((fdc3Column, currentFDCColumnId) => (React.createElement(rebass_1.Box, { key: currentFDCColumnId, mb: 3 },
|
|
242
|
+
React.createElement(FDC3ColumnEditor, { columnOptions: columnOptions, fdc3Column: fdc3Column, fdc3ColumnType: fdc3ColumnType, onChange: (editedFDC3Column) => {
|
|
243
243
|
const newFDC3Columns = fdc3ColumnsItems.map((fdc3Column, index) => {
|
|
244
244
|
if (index === currentFDCColumnId) {
|
|
245
245
|
return editedFDC3Column;
|
|
@@ -6,11 +6,12 @@ const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayou
|
|
|
6
6
|
const CheckBox_1 = require("../../../components/CheckBox");
|
|
7
7
|
const HelpBlock_1 = tslib_1.__importDefault(require("../../../components/HelpBlock"));
|
|
8
8
|
const DefaultAdaptableOptions_1 = require("../../../Utilities/Defaults/DefaultAdaptableOptions");
|
|
9
|
+
const rebass_1 = require("rebass");
|
|
9
10
|
const GridOptionsForm = (props) => {
|
|
10
11
|
var _a;
|
|
11
12
|
let abOptions = props.adaptableOptions;
|
|
12
13
|
const gridOptions = Object.assign(Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.gridOptions), abOptions.gridOptions);
|
|
13
|
-
return (React.createElement(
|
|
14
|
+
return (React.createElement(rebass_1.Box, { p: 2 },
|
|
14
15
|
React.createElement(HelpBlock_1.default, null, "Grid Options"),
|
|
15
16
|
React.createElement(FormLayout_1.default, { margin: 2, columns: [{ name: 'children' }, { name: 'label', style: { textAlign: 'start' } }] },
|
|
16
17
|
React.createElement(FormLayout_1.FormRow, { label: "Enable Range Selection" },
|
package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UiOptionsForm.js
CHANGED
|
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.UIElementsForm = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const rebass_1 = require("rebass");
|
|
6
7
|
const UIOptionsActionColumnsForm_1 = require("./UIOptionsActionColumnsForm");
|
|
7
8
|
const UIOptionsSidebarForm_1 = require("./UIOptionsSidebarForm");
|
|
8
9
|
const UIOptionsStatusbarForm_1 = require("./UIOptionsStatusbarForm");
|
|
9
10
|
const UIElementsForm = (props) => {
|
|
10
11
|
let abOptions = props.adaptableOptions;
|
|
11
|
-
return (React.createElement(
|
|
12
|
+
return (React.createElement(rebass_1.Box, { p: 2 },
|
|
12
13
|
React.createElement(UIOptionsActionColumnsForm_1.UIOptionsActionColumnsForm, { abOptions: abOptions, onChange: props.onChangeadAptableOptions }),
|
|
13
14
|
React.createElement(UIOptionsSidebarForm_1.UIOptionsSidebarForm, { abOptions: abOptions, onChange: props.onChangeadAptableOptions }),
|
|
14
15
|
React.createElement(UIOptionsStatusbarForm_1.UIOptionsStatusbarForm, { abOptions: abOptions, onChange: props.onChangeadAptableOptions })));
|
|
@@ -210,8 +210,8 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
210
210
|
e.nativeEvent.stopPropagation();
|
|
211
211
|
this.clearFilter();
|
|
212
212
|
}
|
|
213
|
-
},
|
|
214
|
-
|
|
213
|
+
}, style: {
|
|
214
|
+
width: '100%',
|
|
215
215
|
padding: 'var(--ab-space-1)',
|
|
216
216
|
borderRadius: 0,
|
|
217
217
|
borderLeftWidth: 0,
|
|
@@ -70,6 +70,7 @@ const ReactActionColumnRenderer = (props) => {
|
|
|
70
70
|
primaryKeyValue: pkValue,
|
|
71
71
|
rowNode: props.node,
|
|
72
72
|
adaptableApi: adaptable.api,
|
|
73
|
+
data: props.data,
|
|
73
74
|
};
|
|
74
75
|
return (React.createElement("div", { className: "ab-ActionColumn" }, renderActionButtons(actionButtons, adaptable.api, buttonContext, rerender)));
|
|
75
76
|
};
|
|
@@ -96,6 +97,7 @@ class ActionColumnRenderer {
|
|
|
96
97
|
primaryKeyValue: pkValue,
|
|
97
98
|
rowNode: params.node,
|
|
98
99
|
adaptableApi: adaptable.api,
|
|
100
|
+
data: params.data,
|
|
99
101
|
};
|
|
100
102
|
const eGui = this.eGui;
|
|
101
103
|
const doRender = () => {
|
|
@@ -233,6 +233,7 @@ export declare class Adaptable implements IAdaptable {
|
|
|
233
233
|
redrawRow(rowNode: RowNode): void;
|
|
234
234
|
redrawRows(rowNodes: RowNode[]): void;
|
|
235
235
|
refreshCells(rowNodes: RowNode[], columns: (string | Column)[], forceUpdate: boolean, suppressFlash?: boolean): void;
|
|
236
|
+
refreshColumns(columns: (string | Column)[], forceUpdate: boolean, suppressFlash?: boolean): void;
|
|
236
237
|
jumpToRow(rowNode: RowNode): void;
|
|
237
238
|
jumpToColumn(columnId: string): void;
|
|
238
239
|
jumpToCell(columnId: string, rowNode: RowNode): void;
|
|
@@ -305,6 +306,7 @@ export declare class Adaptable implements IAdaptable {
|
|
|
305
306
|
private getExpressionStylesChanges;
|
|
306
307
|
private getStyledColumnComparisonChanges;
|
|
307
308
|
private checkChangedCellCurrentlySelected;
|
|
309
|
+
refreshColumnForRelativeRangeStyledColumns(cellDataChangedInfos: CellDataChangedInfo[]): void;
|
|
308
310
|
private getColumnSorts;
|
|
309
311
|
private onSortChanged;
|
|
310
312
|
expandAllRowGroups(): void;
|
package/src/agGrid/Adaptable.js
CHANGED
|
@@ -2157,6 +2157,9 @@ class Adaptable {
|
|
|
2157
2157
|
};
|
|
2158
2158
|
api.refreshCells(refreshCellParams);
|
|
2159
2159
|
}
|
|
2160
|
+
refreshColumns(columns, forceUpdate, suppressFlash) {
|
|
2161
|
+
this.refreshCells(null, columns, forceUpdate, suppressFlash);
|
|
2162
|
+
}
|
|
2160
2163
|
jumpToRow(rowNode) {
|
|
2161
2164
|
this.gridOptions.api.ensureNodeVisible(rowNode, 'middle');
|
|
2162
2165
|
}
|
|
@@ -2247,57 +2250,64 @@ class Adaptable {
|
|
|
2247
2250
|
if (!(actionRowButtons === null || actionRowButtons === void 0 ? void 0 : actionRowButtons.length)) {
|
|
2248
2251
|
return [];
|
|
2249
2252
|
}
|
|
2253
|
+
const defaultEditButtonConfiguration = {
|
|
2254
|
+
create: {
|
|
2255
|
+
icon: {
|
|
2256
|
+
name: 'add-row',
|
|
2257
|
+
},
|
|
2258
|
+
tooltip: 'Create',
|
|
2259
|
+
onClick: () => {
|
|
2260
|
+
this.api.actionApi.displayCreateActionRow();
|
|
2261
|
+
},
|
|
2262
|
+
},
|
|
2263
|
+
edit: {
|
|
2264
|
+
icon: {
|
|
2265
|
+
name: 'edit',
|
|
2266
|
+
},
|
|
2267
|
+
tooltip: 'Edit',
|
|
2268
|
+
onClick: (button, context) => {
|
|
2269
|
+
this.api.actionApi.displayEditActionRow(context.primaryKeyValue);
|
|
2270
|
+
},
|
|
2271
|
+
},
|
|
2272
|
+
clone: {
|
|
2273
|
+
icon: {
|
|
2274
|
+
name: 'clone',
|
|
2275
|
+
},
|
|
2276
|
+
tooltip: 'Clone',
|
|
2277
|
+
onClick: (button, context) => {
|
|
2278
|
+
this.api.actionApi.displayCloneActionRow(context.primaryKeyValue);
|
|
2279
|
+
},
|
|
2280
|
+
},
|
|
2281
|
+
delete: {
|
|
2282
|
+
icon: {
|
|
2283
|
+
name: 'delete',
|
|
2284
|
+
},
|
|
2285
|
+
tooltip: 'Delete',
|
|
2286
|
+
onClick: (button, context) => {
|
|
2287
|
+
var _a, _b;
|
|
2288
|
+
const eventInfo = {
|
|
2289
|
+
type: 'rowDeleted',
|
|
2290
|
+
rowNode: context.rowNode,
|
|
2291
|
+
adaptableApi: context.adaptableApi,
|
|
2292
|
+
};
|
|
2293
|
+
this.api.eventApi.emit('ActionRowSubmitted', eventInfo);
|
|
2294
|
+
(_b = (_a = this.adaptableOptions.actionOptions.actionRowFormOptions).onFormSubmit) === null || _b === void 0 ? void 0 : _b.call(_a, eventInfo);
|
|
2295
|
+
},
|
|
2296
|
+
},
|
|
2297
|
+
};
|
|
2250
2298
|
const editButtons = actionRowButtons
|
|
2251
|
-
.map((
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
? {
|
|
2264
|
-
icon: {
|
|
2265
|
-
name: 'edit',
|
|
2266
|
-
},
|
|
2267
|
-
tooltip: 'Edit',
|
|
2268
|
-
onClick: (button, context) => {
|
|
2269
|
-
this.api.actionApi.displayEditActionRow(context.primaryKeyValue);
|
|
2270
|
-
},
|
|
2271
|
-
}
|
|
2272
|
-
: buttonName === 'clone'
|
|
2273
|
-
? {
|
|
2274
|
-
icon: {
|
|
2275
|
-
name: 'clone',
|
|
2276
|
-
},
|
|
2277
|
-
tooltip: 'Clone',
|
|
2278
|
-
onClick: (button, context) => {
|
|
2279
|
-
this.api.actionApi.displayCloneActionRow(context.primaryKeyValue);
|
|
2280
|
-
},
|
|
2281
|
-
}
|
|
2282
|
-
: buttonName === 'delete'
|
|
2283
|
-
? {
|
|
2284
|
-
icon: {
|
|
2285
|
-
name: 'delete',
|
|
2286
|
-
},
|
|
2287
|
-
tooltip: 'Delete',
|
|
2288
|
-
onClick: (button, context) => {
|
|
2289
|
-
var _a, _b;
|
|
2290
|
-
const eventInfo = {
|
|
2291
|
-
type: 'rowDeleted',
|
|
2292
|
-
rowNode: context.rowNode,
|
|
2293
|
-
adaptableApi: context.adaptableApi,
|
|
2294
|
-
};
|
|
2295
|
-
this.api.eventApi.emit('ActionRowSubmitted', eventInfo);
|
|
2296
|
-
(_b = (_a = this.adaptableOptions.actionOptions.actionRowFormOptions).onFormSubmit) === null || _b === void 0 ? void 0 : _b.call(_a, eventInfo);
|
|
2297
|
-
},
|
|
2298
|
-
}
|
|
2299
|
-
: undefined;
|
|
2300
|
-
return button;
|
|
2299
|
+
.map((actionRowButtonType) => {
|
|
2300
|
+
var _a, _b;
|
|
2301
|
+
const defaultButtonConfig = defaultEditButtonConfiguration[actionRowButtonType];
|
|
2302
|
+
if (!defaultButtonConfig) {
|
|
2303
|
+
// should NOT happen unless the user sent some invalid button type in the predefined config
|
|
2304
|
+
return;
|
|
2305
|
+
}
|
|
2306
|
+
const customButtonConfig = (_b = (_a = this.adaptableOptions.actionOptions).actionRowButtonCustomConfiguration) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
2307
|
+
adaptableApi: this.api,
|
|
2308
|
+
actionRowButtonType,
|
|
2309
|
+
});
|
|
2310
|
+
return Object.assign(Object.assign({}, defaultButtonConfig), customButtonConfig);
|
|
2301
2311
|
})
|
|
2302
2312
|
.filter(Boolean);
|
|
2303
2313
|
if (!editButtons.length) {
|
|
@@ -2313,8 +2323,8 @@ class Adaptable {
|
|
|
2313
2323
|
colId: GeneralConstants_1.ADAPTABLE_ROW_ACTION_BUTTONS,
|
|
2314
2324
|
hide: false,
|
|
2315
2325
|
editable: false,
|
|
2316
|
-
//
|
|
2317
|
-
width: editButtons.length * (UIHelper_1.default.getSimpleButtonPaddingWidth() * 2 +
|
|
2326
|
+
// 15px is the icon width + left&right padding + left&right border
|
|
2327
|
+
width: editButtons.length * (UIHelper_1.default.getSimpleButtonPaddingWidth() * 2 + 15) + 2,
|
|
2318
2328
|
resizable: false,
|
|
2319
2329
|
lockVisible: true,
|
|
2320
2330
|
suppressColumnsToolPanel: true,
|
|
@@ -3678,6 +3688,7 @@ class Adaptable {
|
|
|
3678
3688
|
}
|
|
3679
3689
|
}
|
|
3680
3690
|
}
|
|
3691
|
+
this.refreshColumnForRelativeRangeStyledColumns(cellDataChangedInfos);
|
|
3681
3692
|
firstInfo.trigger == 'tick' ? this.filterOnTickingDataChange() : this.filterOnEditDataChange();
|
|
3682
3693
|
}
|
|
3683
3694
|
getExpressionStylesChanges(dataChangedScope, cellDataChangedInfos) {
|
|
@@ -3742,6 +3753,19 @@ class Adaptable {
|
|
|
3742
3753
|
}
|
|
3743
3754
|
}
|
|
3744
3755
|
}
|
|
3756
|
+
refreshColumnForRelativeRangeStyledColumns(cellDataChangedInfos) {
|
|
3757
|
+
const columnIdMap = new Set();
|
|
3758
|
+
cellDataChangedInfos.forEach((cellDataChangeInfo) => {
|
|
3759
|
+
const styledColumn = this.api.styledColumnApi.getActiveStyledColumnForColumn(cellDataChangeInfo.column);
|
|
3760
|
+
if (styledColumn && this.api.styledColumnApi.hasStyledColumnRelativeCellRange(styledColumn)) {
|
|
3761
|
+
columnIdMap.add(styledColumn.ColumnId);
|
|
3762
|
+
}
|
|
3763
|
+
});
|
|
3764
|
+
const columnIdsToUpdate = [...columnIdMap];
|
|
3765
|
+
if (columnIdsToUpdate.length) {
|
|
3766
|
+
this.refreshColumns(columnIdsToUpdate, true);
|
|
3767
|
+
}
|
|
3768
|
+
}
|
|
3745
3769
|
getColumnSorts() {
|
|
3746
3770
|
const columnSorts = [];
|
|
3747
3771
|
const columnState = this.gridOptions.columnApi.getColumnState();
|