@adaptabletools/adaptable 18.1.2 → 18.1.4-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -1
- package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +5 -13
- package/src/AdaptableOptions/CommentOptions.d.ts +5 -0
- package/src/AdaptableOptions/NoteOptions.d.ts +6 -0
- package/src/Api/CommentApi.d.ts +4 -0
- package/src/Api/Implementation/CommentsApiImpl.d.ts +1 -0
- package/src/Api/Implementation/CommentsApiImpl.js +3 -0
- package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +3 -8
- package/src/Api/Internal/AlertInternalApi.d.ts +1 -0
- package/src/Api/Internal/AlertInternalApi.js +9 -8
- package/src/Api/UserInterfaceApi.d.ts +4 -8
- package/src/PredefinedConfig/Common/CustomWindowConfig.d.ts +13 -0
- package/src/PredefinedConfig/Common/CustomWindowConfig.js +1 -0
- package/src/PredefinedConfig/Common/ProgressIndicatorConfig.d.ts +23 -0
- package/src/PredefinedConfig/Common/ProgressIndicatorConfig.js +1 -0
- package/src/PredefinedConfig/Common/RowSummary.d.ts +8 -1
- package/src/PredefinedConfig/SystemState.d.ts +3 -5
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +4 -9
- package/src/Redux/ActionsReducers/SystemRedux.js +5 -7
- package/src/Strategy/LayoutModule.js +4 -2
- package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +1 -1
- package/src/Utilities/Extensions/ObjectExtensions.d.ts +3 -0
- package/src/Utilities/Extensions/ObjectExtensions.js +9 -0
- package/src/Utilities/Services/QueryLanguageService.js +1 -0
- package/src/Utilities/Services/RowSummaryService.js +12 -3
- package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +9 -1
- package/src/View/Comments/CommentsEditor.js +13 -1
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +39 -11
- package/src/View/Note/NoteEditor.js +12 -5
- package/src/agGrid/AdaptableAgGrid.d.ts +3 -3
- package/src/agGrid/AdaptableAgGrid.js +9 -5
- package/src/agGrid/AgGridColumnAdapter.d.ts +1 -1
- package/src/agGrid/defaultAdaptableOptions.js +6 -0
- package/src/components/ExpressionEditor/ExpressionPreview.js +12 -6
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +17 -5
- package/src/env.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +24 -0
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/parser/src/types.d.ts +12 -8
- package/src/types.d.ts +3 -1
- package/tsconfig.esm.tsbuildinfo +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Box, Flex } from 'rebass';
|
|
3
|
+
import { CheckBox } from '../../../../components/CheckBox';
|
|
3
4
|
import FormLayout, { FormRow } from '../../../../components/FormLayout';
|
|
4
5
|
import Panel from '../../../../components/Panel';
|
|
5
6
|
import { Select } from '../../../../components/Select';
|
|
@@ -9,12 +10,13 @@ import { Tag } from '../../../../components/Tag';
|
|
|
9
10
|
import { summarySupportedExpressions, WEIGHTED_AVERAGE_AGGREATED_FUNCTION, } from '../../../../PredefinedConfig/Common/RowSummary';
|
|
10
11
|
import { mapColumnDataTypeToExpressionFunctionType } from '../../../../Utilities/adaptableQlUtils';
|
|
11
12
|
import { LayoutModuleId } from '../../../../Utilities/Constants/ModuleConstants';
|
|
13
|
+
import { aggregatedExpressionFunctions } from '../../../../Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions';
|
|
12
14
|
import { sortWithOrderArray } from '../../../../Utilities/sortWithOrder';
|
|
13
15
|
import { useAdaptable } from '../../../AdaptableContext';
|
|
16
|
+
import { SuspendToggleButton } from '../../../Components/Buttons/SuspendToggleButton';
|
|
14
17
|
import { ValueSelector } from '../../../Components/ValueSelector';
|
|
15
18
|
import { useOnePageAdaptableWizardContext } from '../../../Wizard/OnePageAdaptableWizard';
|
|
16
19
|
import { columnFilter } from './Utilities';
|
|
17
|
-
import { SuspendToggleButton } from '../../../Components/Buttons/SuspendToggleButton';
|
|
18
20
|
export const areSummaryRowsValid = (layout) => {
|
|
19
21
|
var _a;
|
|
20
22
|
if (!layout.RowSummaries)
|
|
@@ -31,22 +33,37 @@ export const areSummaryRowsValid = (layout) => {
|
|
|
31
33
|
});
|
|
32
34
|
return valid;
|
|
33
35
|
};
|
|
36
|
+
const availableExpressionsForColumnTypeCache = new Map();
|
|
34
37
|
const getAvailableExpressionsForColumnType = (columnType, availableScalarExpressions) => {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
.
|
|
38
|
+
const key = columnType;
|
|
39
|
+
if (availableExpressionsForColumnTypeCache.has(key)) {
|
|
40
|
+
return availableExpressionsForColumnTypeCache.get(key);
|
|
41
|
+
}
|
|
42
|
+
const columnInputType = mapColumnDataTypeToExpressionFunctionType(columnType);
|
|
43
|
+
const expressions = Object.keys(availableScalarExpressions)
|
|
44
|
+
.filter((availableExpression) => {
|
|
45
|
+
if (!aggregatedExpressionFunctions.includes(availableExpression)) {
|
|
46
|
+
// is custom
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return Boolean(summarySupportedExpressions.includes(availableExpression));
|
|
50
|
+
})
|
|
38
51
|
.map((expression) => {
|
|
39
52
|
var _a, _b;
|
|
40
53
|
const expressionDef = availableScalarExpressions[expression];
|
|
41
54
|
let firstArg = null;
|
|
55
|
+
// filter out expressions without inputs defined
|
|
56
|
+
if (!(expressionDef === null || expressionDef === void 0 ? void 0 : expressionDef.inputs)) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
42
59
|
if (Array.isArray((_a = expressionDef === null || expressionDef === void 0 ? void 0 : expressionDef.inputs) === null || _a === void 0 ? void 0 : _a[0])) {
|
|
43
60
|
// @ts-ignore
|
|
44
|
-
firstArg = (_b = expressionDef.inputs.find((input) => input.includes(
|
|
61
|
+
firstArg = (_b = expressionDef.inputs.find((input) => input.includes(columnInputType))) === null || _b === void 0 ? void 0 : _b[0];
|
|
45
62
|
}
|
|
46
63
|
else {
|
|
47
64
|
firstArg = expressionDef.inputs[0];
|
|
48
65
|
}
|
|
49
|
-
if (
|
|
66
|
+
if (columnInputType === firstArg) {
|
|
50
67
|
return expression;
|
|
51
68
|
}
|
|
52
69
|
else {
|
|
@@ -54,6 +71,8 @@ const getAvailableExpressionsForColumnType = (columnType, availableScalarExpress
|
|
|
54
71
|
}
|
|
55
72
|
})
|
|
56
73
|
.filter(Boolean);
|
|
74
|
+
availableExpressionsForColumnTypeCache.set(key, expressions);
|
|
75
|
+
return expressions;
|
|
57
76
|
};
|
|
58
77
|
export const RowGroupingSectionSummary = () => {
|
|
59
78
|
var _a;
|
|
@@ -61,7 +80,8 @@ export const RowGroupingSectionSummary = () => {
|
|
|
61
80
|
const { data: layout } = useOnePageAdaptableWizardContext();
|
|
62
81
|
return (React.createElement(Box, null, ((_a = layout.RowGroupedColumns) === null || _a === void 0 ? void 0 : _a.length) ? (layout.RowGroupedColumns.map((columnId) => (React.createElement(Tag, { mr: 1, key: columnId }, adaptable.api.columnApi.getFriendlyNameForColumnId(columnId))))) : (React.createElement(Tag, null, "No Row Grouping"))));
|
|
63
82
|
};
|
|
64
|
-
const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, onDelete, }) => {
|
|
83
|
+
const RowSummaryEditor = React.memo(({ rowSummary, onChange, availableScalarExpressions, onDelete, }) => {
|
|
84
|
+
var _a;
|
|
65
85
|
const { data: layout } = useOnePageAdaptableWizardContext();
|
|
66
86
|
const adaptable = useAdaptable();
|
|
67
87
|
const columns = React.useMemo(() => {
|
|
@@ -102,7 +122,11 @@ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, on
|
|
|
102
122
|
},
|
|
103
123
|
], value: rowSummary.Position, onChange: (position) => {
|
|
104
124
|
onChange(Object.assign(Object.assign({}, rowSummary), { Position: position }));
|
|
105
|
-
} }))
|
|
125
|
+
} })),
|
|
126
|
+
React.createElement(FormRow, { label: "" },
|
|
127
|
+
React.createElement(CheckBox, { checked: (_a = rowSummary.IncludeOnlyFilteredRows) !== null && _a !== void 0 ? _a : true, onChange: (IncludeOnlyFilteredRows) => {
|
|
128
|
+
onChange(Object.assign(Object.assign({}, rowSummary), { IncludeOnlyFilteredRows }));
|
|
129
|
+
} }, "Include Only Filtered Rows"))),
|
|
106
130
|
React.createElement(Flex, { flexDirection: 'column', mt: 2, mb: 1 },
|
|
107
131
|
React.createElement(Flex, { alignItems: "center", flex: 1, mb: 2 }, "Column Aggregations"),
|
|
108
132
|
React.createElement(Panel, { bodyProps: { maxHeight: '100%' }, style: { height: 360 } },
|
|
@@ -120,7 +144,9 @@ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, on
|
|
|
120
144
|
}));
|
|
121
145
|
// check out if this layout has a aggregation with wighted column
|
|
122
146
|
const aggregation = (_c = layout.AggregationColumns) === null || _c === void 0 ? void 0 : _c[column.columnId];
|
|
123
|
-
if (aggregation &&
|
|
147
|
+
if (aggregation &&
|
|
148
|
+
typeof aggregation === 'object' &&
|
|
149
|
+
aggregation.weightedColumnId) {
|
|
124
150
|
expressionOptions.push({
|
|
125
151
|
label: 'WEIGHTERD_AVG',
|
|
126
152
|
value: WEIGHTED_AVERAGE_AGGREATED_FUNCTION,
|
|
@@ -140,15 +166,16 @@ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, on
|
|
|
140
166
|
});
|
|
141
167
|
onChange(Object.assign(Object.assign({}, rowSummary), { ColumnsMap: newColumnsMap }));
|
|
142
168
|
} })))));
|
|
143
|
-
};
|
|
169
|
+
});
|
|
144
170
|
export const RowSummarySection = (props) => {
|
|
145
171
|
var _a;
|
|
146
172
|
const adaptable = useAdaptable();
|
|
147
173
|
const { data: layout } = useOnePageAdaptableWizardContext();
|
|
148
174
|
const availableScalarExpressions = React.useMemo(() => {
|
|
149
|
-
|
|
175
|
+
const sytemExpressions = adaptable.api.internalApi
|
|
150
176
|
.getQueryLanguageService()
|
|
151
177
|
.getModuleExpressionFunctionsMap(LayoutModuleId).aggregatedScalarFunctions;
|
|
178
|
+
return sytemExpressions;
|
|
152
179
|
}, []);
|
|
153
180
|
return (React.createElement(Tabs, { style: { height: '100%' } },
|
|
154
181
|
React.createElement(Tabs.Tab, null, "Row Summaries"),
|
|
@@ -163,6 +190,7 @@ export const RowSummarySection = (props) => {
|
|
|
163
190
|
{
|
|
164
191
|
Position: 'Top',
|
|
165
192
|
ColumnsMap: {},
|
|
193
|
+
IncludeOnlyFilteredRows: true,
|
|
166
194
|
},
|
|
167
195
|
] }));
|
|
168
196
|
}, icon: "plus" }, "Add Row Summary")),
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import throttle from 'lodash/throttle';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import Textarea from '../../components/Textarea';
|
|
4
|
+
import SimpleButton from '../../components/SimpleButton';
|
|
5
|
+
import { useAdaptable } from '../AdaptableContext';
|
|
4
6
|
export const NoteEditor = ({ note, onNoteChange, onClose, editMode, isReadonly }) => {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const { api } = useAdaptable();
|
|
9
|
+
const showPopupCloseButton = (_b = (_a = api.optionsApi.getNoteOptions()) === null || _a === void 0 ? void 0 : _a.showPopupCloseButton) !== null && _b !== void 0 ? _b : true;
|
|
5
10
|
const textAreaRef = React.useRef(null);
|
|
6
11
|
const [liveValue, setLiveValue] = React.useState(note || '');
|
|
7
12
|
const throttledOnChange = React.useMemo(() => {
|
|
@@ -20,9 +25,11 @@ export const NoteEditor = ({ note, onNoteChange, onClose, editMode, isReadonly }
|
|
|
20
25
|
if (note === undefined || note === null) {
|
|
21
26
|
return null;
|
|
22
27
|
}
|
|
23
|
-
return (React.createElement(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
return (React.createElement(React.Fragment, null,
|
|
29
|
+
React.createElement(Textarea, { readOnly: isReadonly, ref: textAreaRef, width: "100%", minWidth: 180, minHeight: 120, style: { paddingRight: showPopupCloseButton ? 30 : 0 }, value: liveValue, onBlur: () => onClose(), onKeyDown: (event) => {
|
|
30
|
+
if (event.key === 'Escape') {
|
|
31
|
+
onClose();
|
|
32
|
+
}
|
|
33
|
+
}, onChange: (event) => throttledOnChange(event.target.value) }),
|
|
34
|
+
showPopupCloseButton && (React.createElement(SimpleButton, { variant: "text", style: { position: 'absolute', right: 5, top: 5 }, icon: "close" }))));
|
|
28
35
|
};
|
|
@@ -2,7 +2,7 @@ import { AdaptableOptions } from '../AdaptableOptions/AdaptableOptions';
|
|
|
2
2
|
import { ChartRef, Column, GridApi, GridOptions, IRowNode, Module, RowModelType } from '@ag-grid-community/core';
|
|
3
3
|
import { AdaptableLogger } from './AdaptableLogger';
|
|
4
4
|
import { AdaptableApi } from '../Api/AdaptableApi';
|
|
5
|
-
import { DistinctColumnValuesParams, IAdaptable } from '../AdaptableInterfaces/IAdaptable';
|
|
5
|
+
import { AdaptableVariant, DistinctColumnValuesParams, IAdaptable } from '../AdaptableInterfaces/IAdaptable';
|
|
6
6
|
import { EmitterCallback } from '../Utilities/Emitter';
|
|
7
7
|
import { AdaptablePlugin } from '../AdaptableOptions/AdaptablePlugin';
|
|
8
8
|
import { AgGridAdapter } from './AgGridAdapter';
|
|
@@ -25,7 +25,7 @@ import { AgGridMenuAdapter } from './AgGridMenuAdapter';
|
|
|
25
25
|
import { AdaptableColumn, AdaptableTheme, ChartDefinition, ColumnSort, DataUpdateConfig, GridCell, Layout, ReportData, SelectedCellInfo, SelectedRowInfo } from '../types';
|
|
26
26
|
import { RenderReactRootFn } from '../renderReactRoot';
|
|
27
27
|
import { AgGridOptionsService } from './AgGridOptionsService';
|
|
28
|
-
import {
|
|
28
|
+
import { AgGridColumnAdapter } from './AgGridColumnAdapter';
|
|
29
29
|
import { RowEditService } from '../Utilities/Services/RowEditService';
|
|
30
30
|
export type AdaptableLifecycleState = 'initial' | 'preprocessOptions' | 'initAdaptableState' | 'setupAgGrid' | 'initAgGrid' | 'available' | 'ready' | 'preDestroyed';
|
|
31
31
|
type RenderAgGridFrameworkComponentResult = false | GridApi;
|
|
@@ -257,7 +257,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
257
257
|
includeGroupRows?: boolean;
|
|
258
258
|
filterFn?: (rowNode: IRowNode) => boolean;
|
|
259
259
|
}): void;
|
|
260
|
-
getAgGridRowModelType(): RowModelType;
|
|
260
|
+
getAgGridRowModelType(gridOptions?: GridOptions): RowModelType;
|
|
261
261
|
getAllRowNodes(config?: {
|
|
262
262
|
includeGroupRows?: boolean;
|
|
263
263
|
filterFn?: (rowNode: IRowNode) => boolean;
|
|
@@ -78,7 +78,7 @@ import { AdaptableApp } from '../View/AdaptableView';
|
|
|
78
78
|
import { renderReactRoot as defaultRenderReactRoot } from '../renderReactRoot';
|
|
79
79
|
import { AgGridOptionsService } from './AgGridOptionsService';
|
|
80
80
|
import { parseDateValue } from '../Utilities/Helpers/DateHelper';
|
|
81
|
-
import { AgGridColumnAdapter, getEditorsForColumnTypes
|
|
81
|
+
import { AgGridColumnAdapter, getEditorsForColumnTypes } from './AgGridColumnAdapter';
|
|
82
82
|
import uniqBy from 'lodash/uniqBy';
|
|
83
83
|
import getScrollbarSize from '../Utilities/getScrollbarSize';
|
|
84
84
|
import { isWeightedAverageAggregation, WEIGHTED_AVERAGE_AGG_FN_NAME, } from '../PredefinedConfig/Common/AggregationColumns';
|
|
@@ -719,7 +719,8 @@ export class AdaptableAgGrid {
|
|
|
719
719
|
*/
|
|
720
720
|
// Build the default group sort comparator - will get custom sort values (but not functions) in real time
|
|
721
721
|
// TODO: if a custom 'aggFunc' property is defined (see setupColumnAggFunc()), it won't be evaluated
|
|
722
|
-
if (this.
|
|
722
|
+
if (this.getAgGridRowModelType(gridOptions) === 'clientSide' &&
|
|
723
|
+
this.adaptableOptions.groupingOptions.autoOrderGroupedColumns) {
|
|
723
724
|
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'initialGroupOrderComparator', (original_initialGroupOrderComparator) => {
|
|
724
725
|
if (original_initialGroupOrderComparator) {
|
|
725
726
|
return original_initialGroupOrderComparator;
|
|
@@ -2467,11 +2468,14 @@ export class AdaptableAgGrid {
|
|
|
2467
2468
|
}
|
|
2468
2469
|
});
|
|
2469
2470
|
}
|
|
2470
|
-
getAgGridRowModelType() {
|
|
2471
|
-
var _a;
|
|
2471
|
+
getAgGridRowModelType(gridOptions) {
|
|
2472
2472
|
// it seems that this can be null so we need explicitly to return "clientSide" in this case
|
|
2473
2473
|
// need to check that for ServerSideRowModel it is ALWAYS returned...
|
|
2474
|
-
|
|
2474
|
+
var _a, _b;
|
|
2475
|
+
if (gridOptions) {
|
|
2476
|
+
return (_a = gridOptions.rowModelType) !== null && _a !== void 0 ? _a : 'clientSide';
|
|
2477
|
+
}
|
|
2478
|
+
return (_b = this.agGridAdapter.getAgGridApi().getGridOption('rowModelType')) !== null && _b !== void 0 ? _b : 'clientSide';
|
|
2475
2479
|
}
|
|
2476
2480
|
getAllRowNodes(config) {
|
|
2477
2481
|
let rowNodes = [];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AdaptableAgGrid } from './AdaptableAgGrid';
|
|
2
2
|
import { ColumnSetupInfo } from './ColumnSetupInfo';
|
|
3
3
|
import { ColDef, Column } from '@ag-grid-community/core';
|
|
4
|
-
|
|
4
|
+
import { AdaptableVariant } from '../AdaptableInterfaces/IAdaptable';
|
|
5
5
|
export declare function getEditorsForColumnTypes(variant: AdaptableVariant): Record<string, ColDef['cellEditor']>;
|
|
6
6
|
export declare class AgGridColumnAdapter {
|
|
7
7
|
private adaptableInstance;
|
|
@@ -322,6 +322,12 @@ const DefaultAdaptableOptions = {
|
|
|
322
322
|
intents: {},
|
|
323
323
|
},
|
|
324
324
|
},
|
|
325
|
+
commentOptions: {
|
|
326
|
+
showPopupCloseButton: true,
|
|
327
|
+
},
|
|
328
|
+
noteOptions: {
|
|
329
|
+
showPopupCloseButton: true,
|
|
330
|
+
},
|
|
325
331
|
};
|
|
326
332
|
export function applyDefaultAdaptableOptions(adaptableOptions) {
|
|
327
333
|
var _a;
|
|
@@ -11,10 +11,16 @@ export const ExpressionPreview = (props) => {
|
|
|
11
11
|
// '[Column Name] > 2' => ['[Column Name]', '>', '2']
|
|
12
12
|
// not the prettiest
|
|
13
13
|
const strWithMarkedGroupes = expressionWithFriendlyNames.replace(/\]/gi, '],').split(',');
|
|
14
|
-
return (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
return (
|
|
15
|
+
/**
|
|
16
|
+
* The etra wrapper is neede because the tag has display inline-flex and makes the content inside <i> to be displayed on
|
|
17
|
+
* multiple lines when the expression is too long.
|
|
18
|
+
*
|
|
19
|
+
* The div allows the text to flow normally.
|
|
20
|
+
*/
|
|
21
|
+
(React.createElement("div", null, strWithMarkedGroupes.map((part, index) => {
|
|
22
|
+
const partEl = part.includes('[') ? React.createElement("i", null, part.replace(/[\[\]]/g, '')) : part;
|
|
23
|
+
return React.createElement(React.Fragment, { key: index }, partEl);
|
|
24
|
+
})))
|
|
25
|
+
);
|
|
20
26
|
};
|
|
@@ -39,8 +39,20 @@ export const PrimitiveColumnOrFieldSelector = (props) => {
|
|
|
39
39
|
} }));
|
|
40
40
|
}
|
|
41
41
|
const typeOptions = [
|
|
42
|
-
{
|
|
43
|
-
|
|
42
|
+
{
|
|
43
|
+
label: (React.createElement(Flex, { alignItems: "center" },
|
|
44
|
+
React.createElement(Icon, { name: "grid" }),
|
|
45
|
+
React.createElement(Text, { ml: 2 }, "Column"))),
|
|
46
|
+
value: 'column',
|
|
47
|
+
icon: 'grid',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
label: (React.createElement(Flex, { alignItems: "center" },
|
|
51
|
+
React.createElement(Icon, { name: "column-outline" }),
|
|
52
|
+
React.createElement(Text, { ml: 2 }, "Field"))),
|
|
53
|
+
value: 'field',
|
|
54
|
+
icon: 'column-outline',
|
|
55
|
+
},
|
|
44
56
|
];
|
|
45
57
|
return !hasFieldsOrValueIsField || props.hideFields ? (React.createElement(Box, null, input)) : (React.createElement(InputGroup, { Component: Flex, "data-id": "query-first-arg-wrapper" },
|
|
46
58
|
React.createElement(Select, { renderSingleValue: (value) => {
|
|
@@ -130,14 +142,14 @@ export const PrimiteValueInput = (props) => {
|
|
|
130
142
|
}
|
|
131
143
|
const options = [
|
|
132
144
|
{
|
|
133
|
-
label: (React.createElement(Flex,
|
|
145
|
+
label: (React.createElement(Flex, { alignItems: "center" },
|
|
134
146
|
React.createElement(Icon, { name: "columns" }),
|
|
135
147
|
React.createElement(Text, { ml: 2 }, "Column"))),
|
|
136
148
|
icon: 'columns',
|
|
137
149
|
value: 'column-name',
|
|
138
150
|
},
|
|
139
151
|
{
|
|
140
|
-
label: (React.createElement(Flex,
|
|
152
|
+
label: (React.createElement(Flex, { alignItems: "center" },
|
|
141
153
|
React.createElement(Icon, { name: "edit" }),
|
|
142
154
|
React.createElement(Text, { ml: 2 }, "Value"))),
|
|
143
155
|
icon: 'edit',
|
|
@@ -146,7 +158,7 @@ export const PrimiteValueInput = (props) => {
|
|
|
146
158
|
];
|
|
147
159
|
if (hasFieldsOrValueIsField || type === 'field') {
|
|
148
160
|
options.push({
|
|
149
|
-
label: (React.createElement(Flex,
|
|
161
|
+
label: (React.createElement(Flex, { alignItems: "center" },
|
|
150
162
|
React.createElement(Icon, { name: "column-outline" }),
|
|
151
163
|
React.createElement(Text, { ml: 2 }, "Field"))),
|
|
152
164
|
icon: 'column-outline',
|
package/src/env.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
|
|
3
|
-
PUBLISH_TIMESTAMP:
|
|
4
|
-
VERSION: "18.1.
|
|
3
|
+
PUBLISH_TIMESTAMP: 1718815651314 || Date.now(),
|
|
4
|
+
VERSION: "18.1.4-canary.0" || '--current-version--',
|
|
5
5
|
};
|
|
@@ -4354,6 +4354,24 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
4354
4354
|
desc: string;
|
|
4355
4355
|
}[];
|
|
4356
4356
|
};
|
|
4357
|
+
ProgressIndicatorConfig: {
|
|
4358
|
+
name: string;
|
|
4359
|
+
kind: string;
|
|
4360
|
+
desc: string;
|
|
4361
|
+
props: ({
|
|
4362
|
+
name: string;
|
|
4363
|
+
kind: string;
|
|
4364
|
+
desc: string;
|
|
4365
|
+
isOpt: boolean;
|
|
4366
|
+
ref?: undefined;
|
|
4367
|
+
} | {
|
|
4368
|
+
name: string;
|
|
4369
|
+
kind: string;
|
|
4370
|
+
desc: string;
|
|
4371
|
+
isOpt: boolean;
|
|
4372
|
+
ref: string;
|
|
4373
|
+
})[];
|
|
4374
|
+
};
|
|
4357
4375
|
QueryableColumnContext: {
|
|
4358
4376
|
name: string;
|
|
4359
4377
|
kind: string;
|
|
@@ -4727,6 +4745,12 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
4727
4745
|
desc: string;
|
|
4728
4746
|
isOpt?: undefined;
|
|
4729
4747
|
ref?: undefined;
|
|
4748
|
+
} | {
|
|
4749
|
+
name: string;
|
|
4750
|
+
kind: string;
|
|
4751
|
+
desc: string;
|
|
4752
|
+
isOpt: boolean;
|
|
4753
|
+
ref?: undefined;
|
|
4730
4754
|
} | {
|
|
4731
4755
|
name: string;
|
|
4732
4756
|
kind: string;
|