@adaptabletools/adaptable-cjs 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.
Files changed (42) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -1
  3. package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +5 -13
  4. package/src/AdaptableOptions/CommentOptions.d.ts +5 -0
  5. package/src/AdaptableOptions/NoteOptions.d.ts +6 -0
  6. package/src/Api/CommentApi.d.ts +4 -0
  7. package/src/Api/Implementation/CommentsApiImpl.d.ts +1 -0
  8. package/src/Api/Implementation/CommentsApiImpl.js +3 -0
  9. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +3 -8
  10. package/src/Api/Internal/AlertInternalApi.d.ts +1 -0
  11. package/src/Api/Internal/AlertInternalApi.js +9 -8
  12. package/src/Api/UserInterfaceApi.d.ts +4 -8
  13. package/src/PredefinedConfig/Common/CustomWindowConfig.d.ts +13 -0
  14. package/src/PredefinedConfig/Common/CustomWindowConfig.js +2 -0
  15. package/src/PredefinedConfig/Common/ProgressIndicatorConfig.d.ts +23 -0
  16. package/src/PredefinedConfig/Common/ProgressIndicatorConfig.js +2 -0
  17. package/src/PredefinedConfig/Common/RowSummary.d.ts +8 -1
  18. package/src/PredefinedConfig/SystemState.d.ts +3 -5
  19. package/src/Redux/ActionsReducers/SystemRedux.d.ts +4 -9
  20. package/src/Redux/ActionsReducers/SystemRedux.js +5 -7
  21. package/src/Strategy/LayoutModule.js +4 -2
  22. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +1 -1
  23. package/src/Utilities/Extensions/ObjectExtensions.d.ts +3 -0
  24. package/src/Utilities/Extensions/ObjectExtensions.js +11 -1
  25. package/src/Utilities/Services/QueryLanguageService.js +1 -0
  26. package/src/Utilities/Services/RowSummaryService.js +12 -3
  27. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +9 -1
  28. package/src/View/Comments/CommentsEditor.js +13 -1
  29. package/src/View/Layout/Wizard/sections/RowSummarySection.js +39 -11
  30. package/src/View/Note/NoteEditor.js +12 -5
  31. package/src/agGrid/AdaptableAgGrid.d.ts +3 -3
  32. package/src/agGrid/AdaptableAgGrid.js +8 -4
  33. package/src/agGrid/AgGridColumnAdapter.d.ts +1 -1
  34. package/src/agGrid/defaultAdaptableOptions.js +6 -0
  35. package/src/components/ExpressionEditor/ExpressionPreview.js +12 -6
  36. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +17 -5
  37. package/src/env.js +2 -2
  38. package/src/metamodel/adaptable.metamodel.d.ts +24 -0
  39. package/src/metamodel/adaptable.metamodel.js +1 -1
  40. package/src/parser/src/types.d.ts +12 -8
  41. package/src/types.d.ts +3 -1
  42. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -4,6 +4,7 @@ exports.RowSummarySection = exports.RowGroupingSectionSummary = exports.areSumma
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const rebass_1 = require("rebass");
7
+ const CheckBox_1 = require("../../../../components/CheckBox");
7
8
  const FormLayout_1 = tslib_1.__importStar(require("../../../../components/FormLayout"));
8
9
  const Panel_1 = tslib_1.__importDefault(require("../../../../components/Panel"));
9
10
  const Select_1 = require("../../../../components/Select");
@@ -13,12 +14,13 @@ const Tag_1 = require("../../../../components/Tag");
13
14
  const RowSummary_1 = require("../../../../PredefinedConfig/Common/RowSummary");
14
15
  const adaptableQlUtils_1 = require("../../../../Utilities/adaptableQlUtils");
15
16
  const ModuleConstants_1 = require("../../../../Utilities/Constants/ModuleConstants");
17
+ const aggregatedScalarExpressionFunctions_1 = require("../../../../Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions");
16
18
  const sortWithOrder_1 = require("../../../../Utilities/sortWithOrder");
17
19
  const AdaptableContext_1 = require("../../../AdaptableContext");
20
+ const SuspendToggleButton_1 = require("../../../Components/Buttons/SuspendToggleButton");
18
21
  const ValueSelector_1 = require("../../../Components/ValueSelector");
19
22
  const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
20
23
  const Utilities_1 = require("./Utilities");
21
- const SuspendToggleButton_1 = require("../../../Components/Buttons/SuspendToggleButton");
22
24
  const areSummaryRowsValid = (layout) => {
23
25
  var _a;
24
26
  if (!layout.RowSummaries)
@@ -36,22 +38,37 @@ const areSummaryRowsValid = (layout) => {
36
38
  return valid;
37
39
  };
38
40
  exports.areSummaryRowsValid = areSummaryRowsValid;
41
+ const availableExpressionsForColumnTypeCache = new Map();
39
42
  const getAvailableExpressionsForColumnType = (columnType, availableScalarExpressions) => {
40
- const inputType = (0, adaptableQlUtils_1.mapColumnDataTypeToExpressionFunctionType)(columnType);
41
- return RowSummary_1.summarySupportedExpressions
42
- .filter((expression) => availableScalarExpressions[expression])
43
+ const key = columnType;
44
+ if (availableExpressionsForColumnTypeCache.has(key)) {
45
+ return availableExpressionsForColumnTypeCache.get(key);
46
+ }
47
+ const columnInputType = (0, adaptableQlUtils_1.mapColumnDataTypeToExpressionFunctionType)(columnType);
48
+ const expressions = Object.keys(availableScalarExpressions)
49
+ .filter((availableExpression) => {
50
+ if (!aggregatedScalarExpressionFunctions_1.aggregatedExpressionFunctions.includes(availableExpression)) {
51
+ // is custom
52
+ return true;
53
+ }
54
+ return Boolean(RowSummary_1.summarySupportedExpressions.includes(availableExpression));
55
+ })
43
56
  .map((expression) => {
44
57
  var _a, _b;
45
58
  const expressionDef = availableScalarExpressions[expression];
46
59
  let firstArg = null;
60
+ // filter out expressions without inputs defined
61
+ if (!(expressionDef === null || expressionDef === void 0 ? void 0 : expressionDef.inputs)) {
62
+ return null;
63
+ }
47
64
  if (Array.isArray((_a = expressionDef === null || expressionDef === void 0 ? void 0 : expressionDef.inputs) === null || _a === void 0 ? void 0 : _a[0])) {
48
65
  // @ts-ignore
49
- firstArg = (_b = expressionDef.inputs.find((input) => input.includes(inputType))) === null || _b === void 0 ? void 0 : _b[0];
66
+ firstArg = (_b = expressionDef.inputs.find((input) => input.includes(columnInputType))) === null || _b === void 0 ? void 0 : _b[0];
50
67
  }
51
68
  else {
52
69
  firstArg = expressionDef.inputs[0];
53
70
  }
54
- if (inputType === firstArg) {
71
+ if (columnInputType === firstArg) {
55
72
  return expression;
56
73
  }
57
74
  else {
@@ -59,6 +76,8 @@ const getAvailableExpressionsForColumnType = (columnType, availableScalarExpress
59
76
  }
60
77
  })
61
78
  .filter(Boolean);
79
+ availableExpressionsForColumnTypeCache.set(key, expressions);
80
+ return expressions;
62
81
  };
63
82
  const RowGroupingSectionSummary = () => {
64
83
  var _a;
@@ -67,7 +86,8 @@ const RowGroupingSectionSummary = () => {
67
86
  return (React.createElement(rebass_1.Box, null, ((_a = layout.RowGroupedColumns) === null || _a === void 0 ? void 0 : _a.length) ? (layout.RowGroupedColumns.map((columnId) => (React.createElement(Tag_1.Tag, { mr: 1, key: columnId }, adaptable.api.columnApi.getFriendlyNameForColumnId(columnId))))) : (React.createElement(Tag_1.Tag, null, "No Row Grouping"))));
68
87
  };
69
88
  exports.RowGroupingSectionSummary = RowGroupingSectionSummary;
70
- const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, onDelete, }) => {
89
+ const RowSummaryEditor = React.memo(({ rowSummary, onChange, availableScalarExpressions, onDelete, }) => {
90
+ var _a;
71
91
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
72
92
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
73
93
  const columns = React.useMemo(() => {
@@ -108,7 +128,11 @@ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, on
108
128
  },
109
129
  ], value: rowSummary.Position, onChange: (position) => {
110
130
  onChange(Object.assign(Object.assign({}, rowSummary), { Position: position }));
111
- } }))),
131
+ } })),
132
+ React.createElement(FormLayout_1.FormRow, { label: "" },
133
+ React.createElement(CheckBox_1.CheckBox, { checked: (_a = rowSummary.IncludeOnlyFilteredRows) !== null && _a !== void 0 ? _a : true, onChange: (IncludeOnlyFilteredRows) => {
134
+ onChange(Object.assign(Object.assign({}, rowSummary), { IncludeOnlyFilteredRows }));
135
+ } }, "Include Only Filtered Rows"))),
112
136
  React.createElement(rebass_1.Flex, { flexDirection: 'column', mt: 2, mb: 1 },
113
137
  React.createElement(rebass_1.Flex, { alignItems: "center", flex: 1, mb: 2 }, "Column Aggregations"),
114
138
  React.createElement(Panel_1.default, { bodyProps: { maxHeight: '100%' }, style: { height: 360 } },
@@ -126,7 +150,9 @@ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, on
126
150
  }));
127
151
  // check out if this layout has a aggregation with wighted column
128
152
  const aggregation = (_c = layout.AggregationColumns) === null || _c === void 0 ? void 0 : _c[column.columnId];
129
- if (aggregation && typeof aggregation === 'object' && aggregation.weightedColumnId) {
153
+ if (aggregation &&
154
+ typeof aggregation === 'object' &&
155
+ aggregation.weightedColumnId) {
130
156
  expressionOptions.push({
131
157
  label: 'WEIGHTERD_AVG',
132
158
  value: RowSummary_1.WEIGHTED_AVERAGE_AGGREATED_FUNCTION,
@@ -146,15 +172,16 @@ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, on
146
172
  });
147
173
  onChange(Object.assign(Object.assign({}, rowSummary), { ColumnsMap: newColumnsMap }));
148
174
  } })))));
149
- };
175
+ });
150
176
  const RowSummarySection = (props) => {
151
177
  var _a;
152
178
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
153
179
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
154
180
  const availableScalarExpressions = React.useMemo(() => {
155
- return adaptable.api.internalApi
181
+ const sytemExpressions = adaptable.api.internalApi
156
182
  .getQueryLanguageService()
157
183
  .getModuleExpressionFunctionsMap(ModuleConstants_1.LayoutModuleId).aggregatedScalarFunctions;
184
+ return sytemExpressions;
158
185
  }, []);
159
186
  return (React.createElement(Tabs_1.Tabs, { style: { height: '100%' } },
160
187
  React.createElement(Tabs_1.Tabs.Tab, null, "Row Summaries"),
@@ -169,6 +196,7 @@ const RowSummarySection = (props) => {
169
196
  {
170
197
  Position: 'Top',
171
198
  ColumnsMap: {},
199
+ IncludeOnlyFilteredRows: true,
172
200
  },
173
201
  ] }));
174
202
  }, icon: "plus" }, "Add Row Summary")),
@@ -5,7 +5,12 @@ const tslib_1 = require("tslib");
5
5
  const throttle_1 = tslib_1.__importDefault(require("lodash/throttle"));
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const Textarea_1 = tslib_1.__importDefault(require("../../components/Textarea"));
8
+ const SimpleButton_1 = tslib_1.__importDefault(require("../../components/SimpleButton"));
9
+ const AdaptableContext_1 = require("../AdaptableContext");
8
10
  const NoteEditor = ({ note, onNoteChange, onClose, editMode, isReadonly }) => {
11
+ var _a, _b;
12
+ const { api } = (0, AdaptableContext_1.useAdaptable)();
13
+ const showPopupCloseButton = (_b = (_a = api.optionsApi.getNoteOptions()) === null || _a === void 0 ? void 0 : _a.showPopupCloseButton) !== null && _b !== void 0 ? _b : true;
9
14
  const textAreaRef = React.useRef(null);
10
15
  const [liveValue, setLiveValue] = React.useState(note || '');
11
16
  const throttledOnChange = React.useMemo(() => {
@@ -24,10 +29,12 @@ const NoteEditor = ({ note, onNoteChange, onClose, editMode, isReadonly }) => {
24
29
  if (note === undefined || note === null) {
25
30
  return null;
26
31
  }
27
- return (React.createElement(Textarea_1.default, { readOnly: isReadonly, ref: textAreaRef, width: "100%", minWidth: 180, minHeight: 120, value: liveValue, onBlur: () => onClose(), onKeyDown: (event) => {
28
- if (event.key === 'Escape') {
29
- onClose();
30
- }
31
- }, onChange: (event) => throttledOnChange(event.target.value) }));
32
+ return (React.createElement(React.Fragment, null,
33
+ React.createElement(Textarea_1.default, { readOnly: isReadonly, ref: textAreaRef, width: "100%", minWidth: 180, minHeight: 120, style: { paddingRight: showPopupCloseButton ? 30 : 0 }, value: liveValue, onBlur: () => onClose(), onKeyDown: (event) => {
34
+ if (event.key === 'Escape') {
35
+ onClose();
36
+ }
37
+ }, onChange: (event) => throttledOnChange(event.target.value) }),
38
+ showPopupCloseButton && (React.createElement(SimpleButton_1.default, { variant: "text", style: { position: 'absolute', right: 5, top: 5 }, icon: "close" }))));
32
39
  };
33
40
  exports.NoteEditor = NoteEditor;
@@ -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 { AdaptableVariant, AgGridColumnAdapter } from './AgGridColumnAdapter';
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;
@@ -723,7 +723,8 @@ class AdaptableAgGrid {
723
723
  */
724
724
  // Build the default group sort comparator - will get custom sort values (but not functions) in real time
725
725
  // TODO: if a custom 'aggFunc' property is defined (see setupColumnAggFunc()), it won't be evaluated
726
- if (this.adaptableOptions.groupingOptions.autoOrderGroupedColumns) {
726
+ if (this.getAgGridRowModelType(gridOptions) === 'clientSide' &&
727
+ this.adaptableOptions.groupingOptions.autoOrderGroupedColumns) {
727
728
  this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'initialGroupOrderComparator', (original_initialGroupOrderComparator) => {
728
729
  if (original_initialGroupOrderComparator) {
729
730
  return original_initialGroupOrderComparator;
@@ -2471,11 +2472,14 @@ class AdaptableAgGrid {
2471
2472
  }
2472
2473
  });
2473
2474
  }
2474
- getAgGridRowModelType() {
2475
- var _a;
2475
+ getAgGridRowModelType(gridOptions) {
2476
2476
  // it seems that this can be null so we need explicitly to return "clientSide" in this case
2477
2477
  // need to check that for ServerSideRowModel it is ALWAYS returned...
2478
- return (_a = this.agGridAdapter.getAgGridApi().getGridOption('rowModelType')) !== null && _a !== void 0 ? _a : 'clientSide';
2478
+ var _a, _b;
2479
+ if (gridOptions) {
2480
+ return (_a = gridOptions.rowModelType) !== null && _a !== void 0 ? _a : 'clientSide';
2481
+ }
2482
+ return (_b = this.agGridAdapter.getAgGridApi().getGridOption('rowModelType')) !== null && _b !== void 0 ? _b : 'clientSide';
2479
2483
  }
2480
2484
  getAllRowNodes(config) {
2481
2485
  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
- export type AdaptableVariant = 'vanilla' | 'react' | 'angular';
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;
@@ -326,6 +326,12 @@ const DefaultAdaptableOptions = {
326
326
  intents: {},
327
327
  },
328
328
  },
329
+ commentOptions: {
330
+ showPopupCloseButton: true,
331
+ },
332
+ noteOptions: {
333
+ showPopupCloseButton: true,
334
+ },
329
335
  };
330
336
  function applyDefaultAdaptableOptions(adaptableOptions) {
331
337
  var _a;
@@ -15,11 +15,17 @@ const ExpressionPreview = (props) => {
15
15
  // '[Column Name] > 2' => ['[Column Name]', '>', '2']
16
16
  // not the prettiest
17
17
  const strWithMarkedGroupes = expressionWithFriendlyNames.replace(/\]/gi, '],').split(',');
18
- return (React.createElement(React.Fragment, null, strWithMarkedGroupes.map((part, index) => {
19
- const partEl = part.includes('[') ? React.createElement("i", null, part.replace(/[\[\]]/g, '')) : part;
20
- return React.createElement(React.Fragment, { key: index },
21
- "\u00A0",
22
- partEl);
23
- })));
18
+ return (
19
+ /**
20
+ * The etra wrapper is neede because the tag has display inline-flex and makes the content inside <i> to be displayed on
21
+ * multiple lines when the expression is too long.
22
+ *
23
+ * The div allows the text to flow normally.
24
+ */
25
+ (React.createElement("div", null, strWithMarkedGroupes.map((part, index) => {
26
+ const partEl = part.includes('[') ? React.createElement("i", null, part.replace(/[\[\]]/g, '')) : part;
27
+ return React.createElement(React.Fragment, { key: index }, partEl);
28
+ })))
29
+ );
24
30
  };
25
31
  exports.ExpressionPreview = ExpressionPreview;
@@ -43,8 +43,20 @@ const PrimitiveColumnOrFieldSelector = (props) => {
43
43
  } }));
44
44
  }
45
45
  const typeOptions = [
46
- { label: 'Column', value: 'column', icon: 'grid' },
47
- { label: 'Field', value: 'field', icon: 'column-outline' },
46
+ {
47
+ label: (react_1.default.createElement(rebass_1.Flex, { alignItems: "center" },
48
+ react_1.default.createElement(icons_1.Icon, { name: "grid" }),
49
+ react_1.default.createElement(rebass_1.Text, { ml: 2 }, "Column"))),
50
+ value: 'column',
51
+ icon: 'grid',
52
+ },
53
+ {
54
+ label: (react_1.default.createElement(rebass_1.Flex, { alignItems: "center" },
55
+ react_1.default.createElement(icons_1.Icon, { name: "column-outline" }),
56
+ react_1.default.createElement(rebass_1.Text, { ml: 2 }, "Field"))),
57
+ value: 'field',
58
+ icon: 'column-outline',
59
+ },
48
60
  ];
49
61
  return !hasFieldsOrValueIsField || props.hideFields ? (react_1.default.createElement(rebass_1.Box, null, input)) : (react_1.default.createElement(InputGroup_1.InputGroup, { Component: rebass_1.Flex, "data-id": "query-first-arg-wrapper" },
50
62
  react_1.default.createElement(Select_1.Select, { renderSingleValue: (value) => {
@@ -135,14 +147,14 @@ const PrimiteValueInput = (props) => {
135
147
  }
136
148
  const options = [
137
149
  {
138
- label: (react_1.default.createElement(rebass_1.Flex, null,
150
+ label: (react_1.default.createElement(rebass_1.Flex, { alignItems: "center" },
139
151
  react_1.default.createElement(icons_1.Icon, { name: "columns" }),
140
152
  react_1.default.createElement(rebass_1.Text, { ml: 2 }, "Column"))),
141
153
  icon: 'columns',
142
154
  value: 'column-name',
143
155
  },
144
156
  {
145
- label: (react_1.default.createElement(rebass_1.Flex, null,
157
+ label: (react_1.default.createElement(rebass_1.Flex, { alignItems: "center" },
146
158
  react_1.default.createElement(icons_1.Icon, { name: "edit" }),
147
159
  react_1.default.createElement(rebass_1.Text, { ml: 2 }, "Value"))),
148
160
  icon: 'edit',
@@ -151,7 +163,7 @@ const PrimiteValueInput = (props) => {
151
163
  ];
152
164
  if (hasFieldsOrValueIsField || type === 'field') {
153
165
  options.push({
154
- label: (react_1.default.createElement(rebass_1.Flex, null,
166
+ label: (react_1.default.createElement(rebass_1.Flex, { alignItems: "center" },
155
167
  react_1.default.createElement(icons_1.Icon, { name: "column-outline" }),
156
168
  react_1.default.createElement(rebass_1.Text, { ml: 2 }, "Field"))),
157
169
  icon: 'column-outline',
package/src/env.js CHANGED
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
4
  INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
5
- PUBLISH_TIMESTAMP: 1718367380027 || Date.now(),
6
- VERSION: "18.1.2" || '--current-version--',
5
+ PUBLISH_TIMESTAMP: 1718815683104 || Date.now(),
6
+ VERSION: "18.1.4-canary.0" || '--current-version--',
7
7
  };
@@ -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;