@adaptabletools/adaptable 11.2.1-canary.0 → 11.2.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 +24 -1
- package/bundle.cjs.js +94 -94
- package/index.css +28 -1
- package/package.json +1 -1
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +3 -0
- package/src/AdaptableOptions/LayoutOptions.d.ts +36 -11
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +0 -1
- package/src/Api/GridApi.d.ts +8 -1
- package/src/Api/Implementation/ColumnApiImpl.js +2 -1
- package/src/Api/Implementation/FreeTextColumnApiImpl.js +3 -3
- package/src/Api/Implementation/GridApiImpl.d.ts +3 -0
- package/src/Api/Implementation/GridApiImpl.js +3 -0
- package/src/Api/Implementation/InternalApiImpl.d.ts +2 -0
- package/src/Api/Implementation/InternalApiImpl.js +49 -28
- package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -0
- package/src/Api/Implementation/LayoutApiImpl.js +6 -0
- package/src/Api/Implementation/SystemStatusApiImpl.js +1 -1
- package/src/Api/Implementation/TeamSharingApiImpl.d.ts +2 -1
- package/src/Api/Implementation/TeamSharingApiImpl.js +11 -2
- package/src/Api/Implementation/ThemeApiImpl.js +1 -1
- package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +2 -1
- package/src/Api/Implementation/UserInterfaceApiImpl.js +16 -4
- package/src/Api/InternalApi.d.ts +2 -0
- package/src/Api/LayoutApi.d.ts +6 -1
- package/src/Api/TeamSharingApi.d.ts +10 -1
- package/src/Api/UserInterfaceApi.d.ts +6 -1
- package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +4 -0
- package/src/PredefinedConfig/Common/AdaptableObject.d.ts +5 -5
- package/src/Redux/ActionsReducers/TeamSharingRedux.d.ts +1 -1
- package/src/Redux/ActionsReducers/TeamSharingRedux.js +4 -4
- package/src/Strategy/FilterModule.d.ts +7 -0
- package/src/Strategy/FilterModule.js +11 -2
- package/src/Strategy/Interface/IModule.d.ts +5 -0
- package/src/Strategy/LayoutModule.js +4 -4
- package/src/Strategy/Utilities/getObjectTagsViewItems.js +1 -1
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +4 -1
- package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +4 -3
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +16 -36
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +24 -14
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +32 -9
- package/src/View/AdaptablePopover/index.d.ts +1 -0
- package/src/View/AdaptablePopover/index.js +2 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
- package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.d.ts +13 -0
- package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +41 -0
- package/src/View/Components/EntityRulesEditor/index.js +2 -1
- package/src/View/Components/ExpressionWizard.js +2 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +1 -1
- package/src/View/Components/TagValueSelector/index.js +4 -3
- package/src/View/ConditionalStyle/Wizard/ConditionalStyleWizard.js +2 -2
- package/src/View/Export/ReportExportDropdown.js +1 -1
- package/src/View/Filter/ActiveFiltersPanel.d.ts +1 -13
- package/src/View/Filter/ActiveFiltersPanel.js +8 -31
- package/src/View/Filter/FilterStatusBarSubPanelPopover.js +1 -10
- package/src/View/Filter/FilterViewPanel.js +2 -2
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +2 -2
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -1
- package/src/View/Layout/Wizard/LayoutEditorWizard.d.ts +1 -1
- package/src/View/Schedule/Wizard/ScheduleWizard.js +4 -4
- package/src/agGrid/Adaptable.d.ts +3 -0
- package/src/agGrid/Adaptable.js +10 -2
- package/src/agGrid/agGridHelper.js +1 -0
- package/src/components/ExpressionEditor/BaseEditorInput.js +8 -1
- package/src/components/ExpressionEditor/index.js +54 -5
- package/src/metamodel/adaptable.metamodel.d.ts +32 -18
- package/src/metamodel/adaptable.metamodel.js +96 -25
- package/src/parser/src/types.d.ts +1 -1
- package/src/types.d.ts +3 -3
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -1,14 +1,2 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import { ColumnFilter } from '../../PredefinedConfig/FilterState';
|
|
4
|
-
import { AccessLevel } from '../../PredefinedConfig/Common/Entitlement';
|
|
5
|
-
export interface ActiveFiltersPanelProps extends React.ClassAttributes<ActiveFiltersPanel> {
|
|
6
|
-
columnFilters: ColumnFilter[];
|
|
7
|
-
api: AdaptableApi;
|
|
8
|
-
accessLevel: AccessLevel;
|
|
9
|
-
onClear: (columnFilter: ColumnFilter) => void;
|
|
10
|
-
}
|
|
11
|
-
export declare class ActiveFiltersPanel extends React.Component<ActiveFiltersPanelProps, {}> {
|
|
12
|
-
render(): any;
|
|
13
|
-
private createRow;
|
|
14
|
-
}
|
|
2
|
+
export declare const ActiveFiltersPanel: React.FunctionComponent;
|
|
@@ -3,35 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ActiveFiltersPanel = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
6
|
+
const AdaptableContext_1 = require("../AdaptableContext");
|
|
7
|
+
const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
|
|
8
|
+
const AdaptableObjectCompactList_1 = require("../Components/AdaptableObjectList/AdaptableObjectCompactList");
|
|
9
|
+
exports.ActiveFiltersPanel = () => {
|
|
10
|
+
const adaptable = AdaptableContext_1.useAdaptable();
|
|
11
|
+
const filterModule = adaptable.ModuleService.getModuleById(ModuleConstants.FilterModuleId);
|
|
12
|
+
const columnFilters = adaptable.api.filterApi.getAllColumnFilter();
|
|
13
|
+
return React.createElement(AdaptableObjectCompactList_1.AdaptableObjectCompactList, { abObjects: columnFilters, module: filterModule });
|
|
13
14
|
};
|
|
14
|
-
class ActiveFiltersPanel extends React.Component {
|
|
15
|
-
render() {
|
|
16
|
-
let colItems = [
|
|
17
|
-
{ Content: 'Column Filter', Size: 9 },
|
|
18
|
-
{ Content: '', Size: 3 },
|
|
19
|
-
];
|
|
20
|
-
let rowElements = [];
|
|
21
|
-
this.props.columnFilters.forEach((columnFilter) => {
|
|
22
|
-
rowElements.push(this.createRow(colItems, columnFilter));
|
|
23
|
-
});
|
|
24
|
-
return (React.createElement("div", null,
|
|
25
|
-
React.createElement(PanelWithRow_1.PanelWithRow, { colItems: colItems }),
|
|
26
|
-
React.createElement("div", null, rowElements)));
|
|
27
|
-
}
|
|
28
|
-
createRow(colItems, columnFilter) {
|
|
29
|
-
let rowColItems = Helper_1.Helper.cloneObject(colItems);
|
|
30
|
-
rowColItems[0].Content = this.props.api.filterApi.columnFilterToString(columnFilter);
|
|
31
|
-
rowColItems[1].Content = (React.createElement(rebass_1.Flex, { justifyContent: "center", margin: 0, padding: 0, onClick: stopPropagation },
|
|
32
|
-
React.createElement(ButtonClear_1.ButtonClear, { onClick: () => this.props.onClear(columnFilter), tooltip: "Clear Filter", disabled: columnFilter == null, accessLevel: this.props.accessLevel })));
|
|
33
|
-
let rowElement = React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { key: columnFilter.ColumnId, colItems: rowColItems });
|
|
34
|
-
return rowElement;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.ActiveFiltersPanel = ActiveFiltersPanel;
|
|
@@ -3,16 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FilterStatusBarSubPanelPopover = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
|
-
const react_redux_1 = require("react-redux");
|
|
7
|
-
const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
|
|
8
|
-
const AdaptableContext_1 = require("../AdaptableContext");
|
|
9
6
|
const ActiveFiltersPanel_1 = require("./ActiveFiltersPanel");
|
|
10
7
|
exports.FilterStatusBarSubPanelPopover = () => {
|
|
11
|
-
|
|
12
|
-
const columnFilters = react_redux_1.useSelector((state) => state.Filter.ColumnFilters);
|
|
13
|
-
const accessLevel = adaptable.api.internalApi
|
|
14
|
-
.getEntitlementService()
|
|
15
|
-
.getEntitlementAccessLevelForModule(ModuleConstants.FilterModuleId);
|
|
16
|
-
const handleClear = React.useCallback((columnFilter) => adaptable.api.filterApi.clearColumnFilterByColumn(columnFilter.ColumnId), []);
|
|
17
|
-
return (React.createElement(ActiveFiltersPanel_1.ActiveFiltersPanel, { columnFilters: columnFilters, api: adaptable.api, accessLevel: accessLevel, onClear: handleClear }));
|
|
8
|
+
return React.createElement(ActiveFiltersPanel_1.ActiveFiltersPanel, null);
|
|
18
9
|
};
|
|
@@ -16,11 +16,11 @@ class FilterViewPanelComponent extends React.Component {
|
|
|
16
16
|
super(props);
|
|
17
17
|
}
|
|
18
18
|
render() {
|
|
19
|
-
const activeFiltersPanel =
|
|
19
|
+
const activeFiltersPanel = React.createElement(ActiveFiltersPanel_1.ActiveFiltersPanel, null);
|
|
20
20
|
const elementType = this.props.viewType === 'Toolbar' ? 'DashboardToolbar' : 'ToolPanel';
|
|
21
21
|
return (React.createElement(rebass_1.Flex, { flexDirection: "row", className: `ab-${elementType}__Filter__wrap`, flexWrap: this.props.viewType === 'ToolPanel' ? 'wrap' : 'nowrap' },
|
|
22
22
|
React.createElement(rebass_1.Flex, null, ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(this.props.ColumnFilters) && (React.createElement(React.Fragment, null,
|
|
23
|
-
React.createElement(AdaptablePopover_1.AdaptablePopover, { className: `ab-${elementType}__Filter__info`, headerText: "", bodyText: [activeFiltersPanel],
|
|
23
|
+
React.createElement(AdaptablePopover_1.AdaptablePopover, { popupPadding: 0, className: `ab-${elementType}__Filter__info`, headerText: "", bodyText: [activeFiltersPanel],
|
|
24
24
|
// tooltipText={'Show Filter Details'}
|
|
25
25
|
useButton: true, showEvent: 'focus', hideEvent: "blur", popoverMinWidth: 400 }),
|
|
26
26
|
React.createElement(ButtonClear_1.ButtonClear, { marginLeft: 1, marginBottom: 0, marginRight: 1, className: `ab-${elementType}__Filter__clear`, onClick: () => this.onClearFilters(), tooltip: "Clear Filters", disabled: this.props.ColumnFilters.length == 0, showText: this.props.viewType === 'ToolPanel' }, this.props.viewType === 'ToolPanel' && 'Clear')))),
|
|
@@ -72,9 +72,9 @@ const adjustFormatColumn = (formatColumn, api) => {
|
|
|
72
72
|
return formatColumn;
|
|
73
73
|
};
|
|
74
74
|
function FormatColumnWizard(props) {
|
|
75
|
-
var _a;
|
|
75
|
+
var _a, _b;
|
|
76
76
|
const { api } = AdaptableContext_1.useAdaptable();
|
|
77
|
-
const data = (_a = props.data) !== null && _a !== void 0 ? _a : props.popupParams.value;
|
|
77
|
+
const data = (_a = props.data) !== null && _a !== void 0 ? _a : (_b = props.popupParams) === null || _b === void 0 ? void 0 : _b.value;
|
|
78
78
|
const [formatColumn, doSetFormatColumn] = react_1.useState(() => {
|
|
79
79
|
var _a, _b, _c, _d;
|
|
80
80
|
let formatColumn = data ? Helper_1.cloneObject(data) : ObjectFactory_1.default.CreateEmptyFormatColumn();
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { FreeTextColumn } from '../../../PredefinedConfig/FreeTextColumnState';
|
|
3
3
|
import { AdaptableApi } from '../../../Api/AdaptableApi';
|
|
4
4
|
export declare const renderFreeTextColumnSummary: (data: FreeTextColumn) => JSX.Element;
|
|
5
|
-
export declare const isValidFreeTextColumn: (data: FreeTextColumn, api: AdaptableApi) => true | "Column
|
|
5
|
+
export declare const isValidFreeTextColumn: (data: FreeTextColumn, api: AdaptableApi) => true | "Column Id cannot be empty" | "No data type specified for column" | "A Column already exists with that id";
|
|
6
6
|
export declare type FreeTextColumnSettingsWizardSectionProps = {
|
|
7
7
|
onChange: (data: FreeTextColumn) => void;
|
|
8
8
|
isEdit: boolean;
|
|
@@ -46,7 +46,7 @@ exports.renderFreeTextColumnSummary = (data) => {
|
|
|
46
46
|
exports.isValidFreeTextColumn = (data, api) => {
|
|
47
47
|
const columns = api.columnApi.getColumns();
|
|
48
48
|
if (!data.ColumnId) {
|
|
49
|
-
return 'Column
|
|
49
|
+
return 'Column Id cannot be empty';
|
|
50
50
|
}
|
|
51
51
|
const columnsWithSameIdCount = columns.filter((c) => c.columnId === data.ColumnId).length;
|
|
52
52
|
const hasAlreadyExistingId = data.Uuid ? columnsWithSameIdCount > 1 : columnsWithSameIdCount > 0;
|
|
@@ -43,7 +43,7 @@ export declare class LayoutEditorWizard extends React.Component<LayoutEditorWiza
|
|
|
43
43
|
Uuid?: string;
|
|
44
44
|
Source?: "Config" | "User";
|
|
45
45
|
IsReadOnly?: boolean;
|
|
46
|
-
Tags?: import("../../../
|
|
46
|
+
Tags?: import("../../../types").AdaptableObjectTag[];
|
|
47
47
|
};
|
|
48
48
|
canNext(): boolean;
|
|
49
49
|
canBack(): boolean;
|
|
@@ -14,10 +14,10 @@ const react_redux_1 = require("react-redux");
|
|
|
14
14
|
const ScheduleRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/ScheduleRedux"));
|
|
15
15
|
const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
|
|
16
16
|
exports.ScheduleWizard = (props) => {
|
|
17
|
-
var _a, _b, _c;
|
|
18
|
-
const data = (_a = props.data) !== null && _a !== void 0 ? _a : props.popupParams.value;
|
|
19
|
-
const isNew = ((
|
|
20
|
-
const scheduleType = data ? data.ScheduleType : (
|
|
17
|
+
var _a, _b, _c, _d;
|
|
18
|
+
const data = (_a = props.data) !== null && _a !== void 0 ? _a : (_b = props.popupParams) === null || _b === void 0 ? void 0 : _b.value;
|
|
19
|
+
const isNew = ((_c = props.popupParams) === null || _c === void 0 ? void 0 : _c.action) ? props.popupParams.action === 'New' : !props.data;
|
|
20
|
+
const scheduleType = data ? data.ScheduleType : (_d = props === null || props === void 0 ? void 0 : props.abObjectType) === null || _d === void 0 ? void 0 : _d.name;
|
|
21
21
|
const [schedule, setSchedule] = React.useState(() => {
|
|
22
22
|
if (data) {
|
|
23
23
|
return data;
|
|
@@ -195,6 +195,9 @@ export declare class Adaptable implements IAdaptable {
|
|
|
195
195
|
forAllRowNodesDo(func: (rowNode: RowNode) => void): void;
|
|
196
196
|
forAllVisibleRowNodesDo(func: (rowNode: RowNode, rowIndex: number) => void): void;
|
|
197
197
|
getVisibleRowNodes(): RowNode[];
|
|
198
|
+
getAllRowNodes(config?: {
|
|
199
|
+
includeGroupRows?: boolean;
|
|
200
|
+
}): RowNode[];
|
|
198
201
|
getRowsInViewport(): RowNode[];
|
|
199
202
|
selectNodes(rowNodes: RowNode[], clearSelection: boolean): void;
|
|
200
203
|
deSelectNodes(rowNodes: RowNode[], clearSelection: boolean): void;
|
package/src/agGrid/Adaptable.js
CHANGED
|
@@ -114,7 +114,6 @@ RowNodeProto.dispatchLocalEvent = function (event) {
|
|
|
114
114
|
//@ts-ignore
|
|
115
115
|
const fn = adaptable.rowListeners ? adaptable.rowListeners[event.type] : null;
|
|
116
116
|
if (fn) {
|
|
117
|
-
console.log('fire event', event);
|
|
118
117
|
fn(event);
|
|
119
118
|
}
|
|
120
119
|
});
|
|
@@ -1951,7 +1950,7 @@ class Adaptable {
|
|
|
1951
1950
|
return rowNodes;
|
|
1952
1951
|
}
|
|
1953
1952
|
forAllRowNodesDo(func) {
|
|
1954
|
-
this.gridOptions.api.
|
|
1953
|
+
this.gridOptions.api.forEachNode((rowNode) => {
|
|
1955
1954
|
func(rowNode);
|
|
1956
1955
|
});
|
|
1957
1956
|
}
|
|
@@ -1967,6 +1966,15 @@ class Adaptable {
|
|
|
1967
1966
|
});
|
|
1968
1967
|
return rowNodes;
|
|
1969
1968
|
}
|
|
1969
|
+
getAllRowNodes(config) {
|
|
1970
|
+
let rowNodes = [];
|
|
1971
|
+
this.gridOptions.api.forEachNode((rowNode, rowIndex) => {
|
|
1972
|
+
if (!this.isGroupRowNode(rowNode) || (config === null || config === void 0 ? void 0 : config.includeGroupRows)) {
|
|
1973
|
+
rowNodes.push(rowNode);
|
|
1974
|
+
}
|
|
1975
|
+
});
|
|
1976
|
+
return rowNodes;
|
|
1977
|
+
}
|
|
1970
1978
|
getRowsInViewport() {
|
|
1971
1979
|
return this.gridOptions.api.getRenderedNodes();
|
|
1972
1980
|
}
|
|
@@ -165,6 +165,7 @@ class agGridHelper {
|
|
|
165
165
|
const abColumn = {
|
|
166
166
|
Uuid: Uuid_1.createUuid(),
|
|
167
167
|
columnId: ColumnId,
|
|
168
|
+
field: colDef.field,
|
|
168
169
|
friendlyName: FriendlyName,
|
|
169
170
|
isPrimaryKey: ColumnId === pkColumn,
|
|
170
171
|
dataType: this.getColumnDataType(agGridColumn, false),
|
|
@@ -38,12 +38,19 @@ function BaseEditorInput(props) {
|
|
|
38
38
|
React.createElement("i", null, " (click for more details)")),
|
|
39
39
|
React.createElement(rebass_1.Text, { marginLeft: 3, style: { fontStyle: 'italic' } }, parserExceptionDetails)));
|
|
40
40
|
};
|
|
41
|
+
const testRowNode = react_1.useMemo(() => {
|
|
42
|
+
const firstRowNode = props.api.gridApi.getFirstRowNode();
|
|
43
|
+
// clone the class instance to still keep the prototype methods
|
|
44
|
+
return Object.assign(Object.create(Object.getPrototypeOf(firstRowNode)), firstRowNode);
|
|
45
|
+
}, []);
|
|
41
46
|
try {
|
|
42
47
|
// explicitly parsing & evaluating the expression because we need full control of the resulted AST
|
|
43
48
|
const expr = parser.parse(props.value || '');
|
|
44
49
|
try {
|
|
50
|
+
testRowNode.data = testData;
|
|
45
51
|
result = expr.evaluate({
|
|
46
|
-
|
|
52
|
+
// we need a fully-fledged rowNode as Adaptable accesses internal methods of it
|
|
53
|
+
node: testRowNode,
|
|
47
54
|
api: props.api,
|
|
48
55
|
functions: expressionFunctions,
|
|
49
56
|
});
|
|
@@ -48,6 +48,57 @@ function ExpressionEditor(props) {
|
|
|
48
48
|
const queryableColumns = type === 'scalar' || type === 'boolean'
|
|
49
49
|
? props.columns
|
|
50
50
|
: props.columns.filter((c) => !props.api.columnApi.isCalculatedColumn(c.columnId));
|
|
51
|
+
// borrowed from https://github.com/ag-grid/ag-grid/blob/v27.2.1/community-modules/core/src/ts/utils/object.ts#L205
|
|
52
|
+
const getColValue = (column) => {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
const columnValueKey = (_a = column.field) !== null && _a !== void 0 ? _a : column.columnId;
|
|
55
|
+
const isColumnValueContainsDots = (_b = column.field) === null || _b === void 0 ? void 0 : _b.includes('.');
|
|
56
|
+
// if no '.', then it's not a deep value
|
|
57
|
+
if (!isColumnValueContainsDots) {
|
|
58
|
+
return data[columnValueKey];
|
|
59
|
+
}
|
|
60
|
+
// otherwise it is a deep value, so need to dig for it
|
|
61
|
+
const fields = columnValueKey.split('.');
|
|
62
|
+
let currentObject = data;
|
|
63
|
+
for (let i = 0; i < fields.length; i++) {
|
|
64
|
+
if (currentObject == null) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
currentObject = currentObject[fields[i]];
|
|
68
|
+
}
|
|
69
|
+
return currentObject;
|
|
70
|
+
};
|
|
71
|
+
// borrowed from https://github.com/ag-grid/ag-grid/blob/v27.2.1/community-modules/core/src/ts/valueService/valueService.ts#L217
|
|
72
|
+
const updateColValue = (rowData, column, newValue) => {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
const columnValueKey = (_a = column.field) !== null && _a !== void 0 ? _a : column.columnId;
|
|
75
|
+
const isColumnValueContainsDots = (_b = column.field) === null || _b === void 0 ? void 0 : _b.includes('.');
|
|
76
|
+
// if no '.', then it's not a deep value
|
|
77
|
+
if (!isColumnValueContainsDots) {
|
|
78
|
+
rowData[columnValueKey] = newValue;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// otherwise it is a deep value, so need to dig for it
|
|
82
|
+
const fieldPieces = columnValueKey.split('.');
|
|
83
|
+
let currentObject = rowData;
|
|
84
|
+
while (fieldPieces.length > 0 && currentObject) {
|
|
85
|
+
const fieldPiece = fieldPieces.shift();
|
|
86
|
+
if (fieldPieces.length === 0) {
|
|
87
|
+
currentObject[fieldPiece] = newValue;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
currentObject = currentObject[fieldPiece];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return Object.assign({}, rowData);
|
|
95
|
+
};
|
|
96
|
+
const getColDateValue = (column) => {
|
|
97
|
+
const colValue = getColValue(column);
|
|
98
|
+
return colValue && DateHelper_1.isValueValidDate(colValue)
|
|
99
|
+
? new Date(colValue).toISOString().substr(0, 10)
|
|
100
|
+
: '';
|
|
101
|
+
};
|
|
51
102
|
const dataTableEditor = (React.createElement(React.Fragment, null,
|
|
52
103
|
React.createElement(rebass_1.Flex, { flexDirection: "column", alignItems: "start", style: { marginTop: 2 } },
|
|
53
104
|
React.createElement(CheckBox_1.CheckBox, { checked: showColumnIds, onChange: (checked) => setShowColumnIds(checked), style: {
|
|
@@ -61,11 +112,9 @@ function ExpressionEditor(props) {
|
|
|
61
112
|
cursor: 'grab',
|
|
62
113
|
marginRight: 'var(--ab-space-1)',
|
|
63
114
|
}, data: `[${column.columnId}]`, "data-name": "column", icon: "drag" },
|
|
64
|
-
React.createElement(rebass_1.Flex, { flexDirection: "column", alignItems: "start" }, showColumnIds ? `[${column.columnId}]` : column.friendlyName)) }, column.dataType === 'Number' ? (React.createElement(Input_1.default, { type: "number", "data-name": "column-input", value:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
setData(Object.assign(Object.assign({}, data), { [column.columnId]: new Date(e.target.value) }));
|
|
68
|
-
}, style: { width: '100%' }, disabled: column.readOnly })) : column.dataType === 'Boolean' ? (React.createElement(CheckBox_1.CheckBox, { "data-name": "column-input", checked: data[column.columnId], onChange: (checked) => setData(Object.assign(Object.assign({}, data), { [column.columnId]: checked })), disabled: column.readOnly })) : null))))));
|
|
115
|
+
React.createElement(rebass_1.Flex, { flexDirection: "column", alignItems: "start" }, showColumnIds ? `[${column.columnId}]` : column.friendlyName)) }, column.dataType === 'Number' ? (React.createElement(Input_1.default, { type: "number", "data-name": "column-input", value: getColValue(column), onChange: (e) => setData(updateColValue(data, column, Number(e.target.value))), width: "100%", disabled: column.readOnly })) : column.dataType === 'String' ? (React.createElement(Input_1.default, { type: "text", "data-name": "column-input", value: getColValue(column), onChange: (e) => setData(updateColValue(data, column, e.target.value)), width: "100%", disabled: column.readOnly })) : column.dataType === 'Date' ? (React.createElement(AdaptableInput_1.default, { type: "date", "data-name": "column-input", value: getColDateValue(column), onChange: (e) => {
|
|
116
|
+
setData(updateColValue(data, column, new Date(e.target.value)));
|
|
117
|
+
}, style: { width: '100%' }, disabled: column.readOnly })) : column.dataType === 'Boolean' ? (React.createElement(CheckBox_1.CheckBox, { "data-name": "column-input", checked: getColValue(column), onChange: (checked) => setData(updateColValue(data, column, checked)), disabled: column.readOnly })) : null))))));
|
|
69
118
|
const namedQueries = (React.createElement("div", null, props.namedQueries.map((namedQuery) => (React.createElement(rebass_1.Flex, { key: namedQuery.Uuid, flexDirection: "column", alignItems: "start", style: {
|
|
70
119
|
padding: 3,
|
|
71
120
|
marginTop: 'var(--ab-space-2)',
|
|
@@ -385,6 +385,11 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
385
385
|
reference: string;
|
|
386
386
|
})[];
|
|
387
387
|
};
|
|
388
|
+
AdaptableObjectTag: {
|
|
389
|
+
name: string;
|
|
390
|
+
kind: string;
|
|
391
|
+
description: string;
|
|
392
|
+
};
|
|
388
393
|
AdaptableOptions: {
|
|
389
394
|
name: string;
|
|
390
395
|
kind: string;
|
|
@@ -897,6 +902,17 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
897
902
|
isOptional: boolean;
|
|
898
903
|
}[];
|
|
899
904
|
};
|
|
905
|
+
AutoGenerateTagsForLayoutsContext: {
|
|
906
|
+
name: string;
|
|
907
|
+
kind: string;
|
|
908
|
+
description: string;
|
|
909
|
+
properties: {
|
|
910
|
+
name: string;
|
|
911
|
+
kind: string;
|
|
912
|
+
description: string;
|
|
913
|
+
uiLabel: string;
|
|
914
|
+
}[];
|
|
915
|
+
};
|
|
900
916
|
BaseContext: {
|
|
901
917
|
name: string;
|
|
902
918
|
kind: string;
|
|
@@ -2037,8 +2053,8 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
2037
2053
|
kind: string;
|
|
2038
2054
|
description: string;
|
|
2039
2055
|
uiLabel: string;
|
|
2040
|
-
isOptional: boolean;
|
|
2041
2056
|
reference: string;
|
|
2057
|
+
isOptional?: undefined;
|
|
2042
2058
|
} | {
|
|
2043
2059
|
name: string;
|
|
2044
2060
|
kind: string;
|
|
@@ -2051,15 +2067,15 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
2051
2067
|
kind: string;
|
|
2052
2068
|
description: string;
|
|
2053
2069
|
uiLabel: string;
|
|
2054
|
-
reference
|
|
2070
|
+
reference?: undefined;
|
|
2055
2071
|
isOptional?: undefined;
|
|
2056
2072
|
} | {
|
|
2057
2073
|
name: string;
|
|
2058
2074
|
kind: string;
|
|
2059
2075
|
description: string;
|
|
2060
2076
|
uiLabel: string;
|
|
2061
|
-
isOptional
|
|
2062
|
-
reference
|
|
2077
|
+
isOptional: boolean;
|
|
2078
|
+
reference: string;
|
|
2063
2079
|
})[];
|
|
2064
2080
|
};
|
|
2065
2081
|
ExpressionFunction: {
|
|
@@ -2845,11 +2861,6 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
2845
2861
|
kind: string;
|
|
2846
2862
|
description: string;
|
|
2847
2863
|
};
|
|
2848
|
-
IsObjectAvailableInLayoutContext: {
|
|
2849
|
-
name: string;
|
|
2850
|
-
kind: string;
|
|
2851
|
-
description: string;
|
|
2852
|
-
};
|
|
2853
2864
|
Layout: {
|
|
2854
2865
|
name: string;
|
|
2855
2866
|
kind: string;
|
|
@@ -2884,6 +2895,18 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
2884
2895
|
kind: string;
|
|
2885
2896
|
description: string;
|
|
2886
2897
|
};
|
|
2898
|
+
LayoutAvailableContext: {
|
|
2899
|
+
name: string;
|
|
2900
|
+
kind: string;
|
|
2901
|
+
description: string;
|
|
2902
|
+
properties: {
|
|
2903
|
+
name: string;
|
|
2904
|
+
kind: string;
|
|
2905
|
+
description: string;
|
|
2906
|
+
uiLabel: string;
|
|
2907
|
+
reference: string;
|
|
2908
|
+
}[];
|
|
2909
|
+
};
|
|
2887
2910
|
LayoutChangedInfo: {
|
|
2888
2911
|
name: string;
|
|
2889
2912
|
kind: string;
|
|
@@ -2907,15 +2930,6 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
2907
2930
|
kind: string;
|
|
2908
2931
|
description: string;
|
|
2909
2932
|
properties: ({
|
|
2910
|
-
name: string;
|
|
2911
|
-
kind: string;
|
|
2912
|
-
description: string;
|
|
2913
|
-
uiLabel: string;
|
|
2914
|
-
isOptional: boolean;
|
|
2915
|
-
gridInfo?: undefined;
|
|
2916
|
-
defaultValue?: undefined;
|
|
2917
|
-
reference?: undefined;
|
|
2918
|
-
} | {
|
|
2919
2933
|
name: string;
|
|
2920
2934
|
kind: string;
|
|
2921
2935
|
description: string;
|
|
@@ -554,6 +554,13 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
554
554
|
"isOptional": true,
|
|
555
555
|
"reference": "unknown"
|
|
556
556
|
},
|
|
557
|
+
{
|
|
558
|
+
"name": "field",
|
|
559
|
+
"kind": "string",
|
|
560
|
+
"description": "Is the field of the row to get the cell data from",
|
|
561
|
+
"uiLabel": "Field",
|
|
562
|
+
"isOptional": true
|
|
563
|
+
},
|
|
557
564
|
{
|
|
558
565
|
"name": "filterable",
|
|
559
566
|
"kind": "boolean",
|
|
@@ -986,7 +993,7 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
986
993
|
{
|
|
987
994
|
"name": "Tags",
|
|
988
995
|
"kind": "unknown",
|
|
989
|
-
"description": "List of
|
|
996
|
+
"description": "List of Tags associated with the Object; often used for (but not limited to) managing Layout object scope",
|
|
990
997
|
"uiLabel": "Tags",
|
|
991
998
|
"isOptional": true
|
|
992
999
|
},
|
|
@@ -1000,6 +1007,11 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
1000
1007
|
}
|
|
1001
1008
|
]
|
|
1002
1009
|
},
|
|
1010
|
+
"AdaptableObjectTag": {
|
|
1011
|
+
"name": "AdaptableObjectTag",
|
|
1012
|
+
"kind": "TypeAlias",
|
|
1013
|
+
"description": "Object Tag - defined as a label and a value"
|
|
1014
|
+
},
|
|
1003
1015
|
"AdaptableOptions": {
|
|
1004
1016
|
"name": "AdaptableOptions",
|
|
1005
1017
|
"kind": "Interface",
|
|
@@ -2245,6 +2257,25 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
2245
2257
|
}
|
|
2246
2258
|
]
|
|
2247
2259
|
},
|
|
2260
|
+
"AutoGenerateTagsForLayoutsContext": {
|
|
2261
|
+
"name": "AutoGenerateTagsForLayoutsContext",
|
|
2262
|
+
"kind": "Interface",
|
|
2263
|
+
"description": "Context for `LayoutOptions.autoGenerateTagsForLayouts` method",
|
|
2264
|
+
"properties": [
|
|
2265
|
+
{
|
|
2266
|
+
"name": "layouts",
|
|
2267
|
+
"kind": "unknown",
|
|
2268
|
+
"description": "Layouts currently in Adaptable State",
|
|
2269
|
+
"uiLabel": "Layouts"
|
|
2270
|
+
},
|
|
2271
|
+
{
|
|
2272
|
+
"name": "objectTags",
|
|
2273
|
+
"kind": "unknown",
|
|
2274
|
+
"description": "Object Tags provided in User Interface Options",
|
|
2275
|
+
"uiLabel": "Object Tags"
|
|
2276
|
+
}
|
|
2277
|
+
]
|
|
2278
|
+
},
|
|
2248
2279
|
"BaseContext": {
|
|
2249
2280
|
"name": "BaseContext",
|
|
2250
2281
|
"kind": "Interface",
|
|
@@ -5554,7 +5585,6 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
5554
5585
|
"kind": "REFERENCE",
|
|
5555
5586
|
"description": "Main Adaptable Api object",
|
|
5556
5587
|
"uiLabel": "Api",
|
|
5557
|
-
"isOptional": true,
|
|
5558
5588
|
"reference": "AdaptableApi"
|
|
5559
5589
|
},
|
|
5560
5590
|
{
|
|
@@ -7523,6 +7553,12 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
7523
7553
|
"description": "Returns Ag Grid instance (passed into Adaptable Options at start-up)",
|
|
7524
7554
|
"uiLabel": "Get Ag Grid Instance"
|
|
7525
7555
|
},
|
|
7556
|
+
{
|
|
7557
|
+
"name": "getAllRowNodes",
|
|
7558
|
+
"kind": "function",
|
|
7559
|
+
"description": "Retrieves all Row Nodes currently in the Grid (by default excluding the group rows)",
|
|
7560
|
+
"uiLabel": "Get All Row Nodes"
|
|
7561
|
+
},
|
|
7526
7562
|
{
|
|
7527
7563
|
"name": "getCellDisplayValue",
|
|
7528
7564
|
"kind": "function",
|
|
@@ -7694,7 +7730,7 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
7694
7730
|
{
|
|
7695
7731
|
"name": "getVisibleRowNodes",
|
|
7696
7732
|
"kind": "function",
|
|
7697
|
-
"description": "Retrieves all Row Nodes currently in the Grid (i.e.
|
|
7733
|
+
"description": "Retrieves all filtered Row Nodes currently in the Grid (i.e. after applying the current filter)",
|
|
7698
7734
|
"uiLabel": "Get Visible Row Nodes"
|
|
7699
7735
|
},
|
|
7700
7736
|
{
|
|
@@ -8508,11 +8544,6 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
8508
8544
|
"kind": "Interface",
|
|
8509
8545
|
"description": "Internal State used by AdapTable for managing the ipushpull plugin"
|
|
8510
8546
|
},
|
|
8511
|
-
"IsObjectAvailableInLayoutContext": {
|
|
8512
|
-
"name": "IsObjectAvailableInLayoutContext",
|
|
8513
|
-
"kind": "Interface",
|
|
8514
|
-
"description": "Context for `LayoutOptions.isObjectAvailableInLayout` method"
|
|
8515
|
-
},
|
|
8516
8547
|
"Layout": {
|
|
8517
8548
|
"name": "Layout",
|
|
8518
8549
|
"kind": "Interface",
|
|
@@ -8764,6 +8795,12 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
8764
8795
|
"description": "Checks if the given Layout is Default Layout",
|
|
8765
8796
|
"uiLabel": "Is Default Layout"
|
|
8766
8797
|
},
|
|
8798
|
+
{
|
|
8799
|
+
"name": "isObjectAvailableInCurrentLayout",
|
|
8800
|
+
"kind": "function",
|
|
8801
|
+
"description": "Does an object's Tags include the Current Layout",
|
|
8802
|
+
"uiLabel": "Is Object Available In Current Layout"
|
|
8803
|
+
},
|
|
8767
8804
|
{
|
|
8768
8805
|
"name": "saveCurrentLayout",
|
|
8769
8806
|
"kind": "function",
|
|
@@ -8817,7 +8854,35 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
8817
8854
|
"LayoutAssociatedObject": {
|
|
8818
8855
|
"name": "LayoutAssociatedObject",
|
|
8819
8856
|
"kind": "TypeAlias",
|
|
8820
|
-
"description": "Types of
|
|
8857
|
+
"description": "Types of Adaptable Objects that can be associated with a Layout"
|
|
8858
|
+
},
|
|
8859
|
+
"LayoutAvailableContext": {
|
|
8860
|
+
"name": "LayoutAvailableContext",
|
|
8861
|
+
"kind": "Interface",
|
|
8862
|
+
"description": "Context for `LayoutOptions.isObjectAvailableInLayout` functions",
|
|
8863
|
+
"properties": [
|
|
8864
|
+
{
|
|
8865
|
+
"name": "adaptableObject",
|
|
8866
|
+
"kind": "REFERENCE",
|
|
8867
|
+
"description": "Object being checked",
|
|
8868
|
+
"uiLabel": "Adaptable Object",
|
|
8869
|
+
"reference": "LayoutAssociatedObject"
|
|
8870
|
+
},
|
|
8871
|
+
{
|
|
8872
|
+
"name": "layout",
|
|
8873
|
+
"kind": "REFERENCE",
|
|
8874
|
+
"description": "Current Layout",
|
|
8875
|
+
"uiLabel": "Layout",
|
|
8876
|
+
"reference": "Layout"
|
|
8877
|
+
},
|
|
8878
|
+
{
|
|
8879
|
+
"name": "module",
|
|
8880
|
+
"kind": "REFERENCE",
|
|
8881
|
+
"description": "Current Adaptable Module",
|
|
8882
|
+
"uiLabel": "Module",
|
|
8883
|
+
"reference": "AdaptableModule"
|
|
8884
|
+
}
|
|
8885
|
+
]
|
|
8821
8886
|
},
|
|
8822
8887
|
"LayoutChangedInfo": {
|
|
8823
8888
|
"name": "LayoutChangedInfo",
|
|
@@ -8850,13 +8915,6 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
8850
8915
|
"kind": "Interface",
|
|
8851
8916
|
"description": "Options for configuring Layouts; these manage Column visibility, order, sorting, grouping and width",
|
|
8852
8917
|
"properties": [
|
|
8853
|
-
{
|
|
8854
|
-
"name": "autoGenerateTagsForLayouts",
|
|
8855
|
-
"kind": "unknown",
|
|
8856
|
-
"description": "Automatically generate a tag for each existing layout",
|
|
8857
|
-
"uiLabel": "Auto Generate Tags For Layouts",
|
|
8858
|
-
"isOptional": true
|
|
8859
|
-
},
|
|
8860
8918
|
{
|
|
8861
8919
|
"name": "autoSaveLayouts",
|
|
8862
8920
|
"kind": "boolean",
|
|
@@ -8912,17 +8970,18 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
8912
8970
|
"defaultValue": "false"
|
|
8913
8971
|
},
|
|
8914
8972
|
{
|
|
8915
|
-
"name": "
|
|
8916
|
-
"kind": "
|
|
8917
|
-
"description": "
|
|
8918
|
-
"uiLabel": "
|
|
8919
|
-
"isOptional": true
|
|
8973
|
+
"name": "layoutTagOptions",
|
|
8974
|
+
"kind": "REFERENCE",
|
|
8975
|
+
"description": "Options for leveraging Object Tags to extend Layouts",
|
|
8976
|
+
"uiLabel": "Layout Tag Options",
|
|
8977
|
+
"isOptional": true,
|
|
8978
|
+
"reference": "unknown"
|
|
8920
8979
|
},
|
|
8921
8980
|
{
|
|
8922
|
-
"name": "
|
|
8981
|
+
"name": "layoutViewOptions",
|
|
8923
8982
|
"kind": "REFERENCE",
|
|
8924
8983
|
"description": "Customize how Layouts are displayed in Settings Panel",
|
|
8925
|
-
"uiLabel": "View Options",
|
|
8984
|
+
"uiLabel": "Layout View Options",
|
|
8926
8985
|
"isOptional": true,
|
|
8927
8986
|
"reference": "LayoutViewOptions"
|
|
8928
8987
|
}
|
|
@@ -8957,7 +9016,7 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
8957
9016
|
{
|
|
8958
9017
|
"name": "maxColumnsToDisplay",
|
|
8959
9018
|
"kind": "number",
|
|
8960
|
-
"description": "How many
|
|
9019
|
+
"description": "How many Column Names to display in inline Layout preview",
|
|
8961
9020
|
"uiLabel": "Max Columns To Display",
|
|
8962
9021
|
"isOptional": true,
|
|
8963
9022
|
"defaultValue": "10"
|
|
@@ -11773,6 +11832,12 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
11773
11832
|
"description": "Whether Team Sharing is Activated",
|
|
11774
11833
|
"uiLabel": "Is Team Sharing Activated"
|
|
11775
11834
|
},
|
|
11835
|
+
{
|
|
11836
|
+
"name": "shareEntity",
|
|
11837
|
+
"kind": "function",
|
|
11838
|
+
"description": "Puts an Adaptable Object into Team Share",
|
|
11839
|
+
"uiLabel": "Share Entity"
|
|
11840
|
+
},
|
|
11776
11841
|
{
|
|
11777
11842
|
"name": "showTeamSharingPopup",
|
|
11778
11843
|
"kind": "function",
|
|
@@ -12208,10 +12273,16 @@ exports.ADAPTABLE_METAMODEL = {
|
|
|
12208
12273
|
"description": "Adds menu item to Context Menu",
|
|
12209
12274
|
"uiLabel": "Add Context Menu Item"
|
|
12210
12275
|
},
|
|
12276
|
+
{
|
|
12277
|
+
"name": "getAdaptableObjectTags",
|
|
12278
|
+
"kind": "function",
|
|
12279
|
+
"description": "Retrieves any Object Tags (provided in User Interface Options)",
|
|
12280
|
+
"uiLabel": "Get Adaptable Object Tags"
|
|
12281
|
+
},
|
|
12211
12282
|
{
|
|
12212
12283
|
"name": "getAllActionColumn",
|
|
12213
12284
|
"kind": "function",
|
|
12214
|
-
"description": "Retrieves any Action Columns in User Interface Options",
|
|
12285
|
+
"description": "Retrieves any Action Columns (provided in User Interface Options)",
|
|
12215
12286
|
"uiLabel": "Get All Action Column"
|
|
12216
12287
|
},
|
|
12217
12288
|
{
|