@adaptabletools/adaptable 18.1.15-canary.0 → 19.0.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "18.1.15-canary.0",
3
+ "version": "19.0.0",
4
4
  "description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
5
5
  "keywords": [
6
6
  "web-components",
@@ -26,7 +26,7 @@ export interface DataChangeHistoryOptions<TData = any> {
26
26
  */
27
27
  changeHistoryButton?: DataChangeHistoryButton<TData> | DataChangeHistoryButton<TData>[];
28
28
  /**
29
- * Whether to show all changes for each cell or just the last one
29
+ * Show all changes for each Cell or just the last one
30
30
  * @defaultValue true
31
31
  */
32
32
  showLastDataChangeOnly?: boolean;
@@ -33,14 +33,6 @@ export interface GridApi {
33
33
  * Retrieves visible data from the grid (filtered and sorted)
34
34
  */
35
35
  getVisibleData(): any[];
36
- /**
37
- * @deprecated use `loadGridData()` instead
38
- */
39
- resetGridData(data: any[]): void;
40
- /**
41
- * @deprecated use `loadGridData()` instead
42
- */
43
- setInitialGridData(data: any): void;
44
36
  /**
45
37
  * Loads data into grid and fire a `GridDataChanged.trigger='Load'` event
46
38
  * @param data data to load
@@ -360,12 +352,6 @@ export interface GridApi {
360
352
  * Whether AdapTable instance can be Row Grouped
361
353
  */
362
354
  isGridGroupable(): boolean;
363
- /**
364
- * Whether AdapTable instance offers row selection
365
- *
366
- * @deprecated use `isGridRowSelectable()` instead
367
- */
368
- isGridSelectable(): boolean;
369
355
  /**
370
356
  * Whether AdapTable instance offers row selection
371
357
  */
@@ -536,12 +522,6 @@ export interface GridApi {
536
522
  * Returns AG Grid Row Model Type
537
523
  */
538
524
  getAgGridRowModelType(): RowModelType;
539
- /**
540
- * Returns number of visible rows in Data Source
541
- *
542
- * @deprecated use `getRowCount()` instead
543
- */
544
- getVisibleRowCount(): number;
545
525
  /**
546
526
  * Opens a window with a transposed view of Grid
547
527
  */
@@ -21,8 +21,6 @@ export declare class GridApiImpl extends ApiBase implements GridApi {
21
21
  getVariant(): AdaptableVariant;
22
22
  getGridState(): GridState;
23
23
  loadGridData(dataSource: any): void;
24
- resetGridData(dataSource: any[]): void;
25
- setInitialGridData(data: any): void;
26
24
  getGridData(): any[];
27
25
  getFilteredData(): any[];
28
26
  getVisibleData(): any[];
@@ -94,7 +92,6 @@ export declare class GridApiImpl extends ApiBase implements GridApi {
94
92
  expandRowGroupsForValues(columnValues: any[]): void;
95
93
  isGridPivotable(): boolean;
96
94
  isGridGroupable(): boolean;
97
- isGridSelectable(): boolean;
98
95
  isGridRowSelectable(): boolean;
99
96
  isGridRangeSelectable(): boolean;
100
97
  isGridRowGrouped(): boolean;
@@ -136,7 +133,6 @@ export declare class GridApiImpl extends ApiBase implements GridApi {
136
133
  getGridContainerElement(): HTMLElement | null;
137
134
  openGridInfoSettingsPanel(): void;
138
135
  getAgGridRowModelType(): RowModelType;
139
- getVisibleRowCount(): number;
140
136
  showTransposedView(transposeConfig?: TransposeConfig): void;
141
137
  getAllAgGridColumns(): Column<any>[];
142
138
  }
@@ -4,7 +4,6 @@ import { SystemHighlightCellAdd, SystemHighlightCellDelete, SystemHighlightCellD
4
4
  import * as ModuleConstants from '../../Utilities/Constants/ModuleConstants';
5
5
  import { GridInternalApi } from '../Internal/GridInternalApi';
6
6
  import ArrayExtensions from '../../Utilities/Extensions/ArrayExtensions';
7
- import { logDeprecation } from '../../Utilities/logDeprecation';
8
7
  import { WINDOW_SHOW_TRANSPOSED_VIEW } from '../../View/Components/Popups/WindowPopups/windowFactory';
9
8
  import { ROW_SUMMARY_ROW_ID } from '../../PredefinedConfig/Common/RowSummary';
10
9
  export class GridApiImpl extends ApiBase {
@@ -28,14 +27,6 @@ export class GridApiImpl extends ApiBase {
28
27
  const allRowNodes = this.getAllRowNodes();
29
28
  this.internalApi.fireGridDataChangedEvent(dataSource, allRowNodes, 'Load');
30
29
  }
31
- resetGridData(dataSource) {
32
- logDeprecation(this.adaptable.logger, 'GridApi', 'resetGridData', 'loadGridData');
33
- this.loadGridData(dataSource);
34
- }
35
- setInitialGridData(data) {
36
- logDeprecation(this.adaptable.logger, 'GridApi', 'setInitialGridData', 'loadGridData');
37
- this.loadGridData(data);
38
- }
39
30
  getGridData() {
40
31
  return this.adaptable.getGridData();
41
32
  }
@@ -359,10 +350,6 @@ export class GridApiImpl extends ApiBase {
359
350
  isGridGroupable() {
360
351
  return !this.getAdaptableApi().internalApi.isGridInTreeMode();
361
352
  }
362
- isGridSelectable() {
363
- logDeprecation(this.adaptable.logger, 'GridApi', 'isGridSelectable', 'isGridRowSelectable');
364
- return this.isGridRowSelectable();
365
- }
366
353
  isGridRowSelectable() {
367
354
  return this.adaptable.isGridRowSelectable();
368
355
  }
@@ -544,10 +531,6 @@ export class GridApiImpl extends ApiBase {
544
531
  getAgGridRowModelType() {
545
532
  return this.adaptable.getAgGridRowModelType();
546
533
  }
547
- getVisibleRowCount() {
548
- logDeprecation(this.adaptable.logger, 'GridApi', 'getVisibleRowCount', 'getRowCount');
549
- return this.getRowCount();
550
- }
551
534
  showTransposedView(transposeConfig = {}) {
552
535
  var _a, _b, _c, _d, _e;
553
536
  const transposedColumnId = (_a = transposeConfig.transposedColumnId) !== null && _a !== void 0 ? _a : this.getAdaptableApi().optionsApi.getPrimaryKey();
@@ -6,6 +6,7 @@ import { ColumnSort } from '../../PredefinedConfig/Common/ColumnSort';
6
6
  import { ModuleParams } from '../../View/Components/SharedProps/ModuleViewPopupProps';
7
7
  import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
8
8
  import { LayoutInternalApi } from '../Internal/LayoutInternalApi';
9
+ import { ExtendedLayoutInfo } from '../../PredefinedConfig/Common/ExtendedLayoutInfo';
9
10
  export declare class LayoutApiImpl extends ApiBase implements LayoutApi {
10
11
  internalApi: LayoutInternalApi;
11
12
  constructor(adaptable: IAdaptable);
@@ -22,6 +23,7 @@ export declare class LayoutApiImpl extends ApiBase implements LayoutApi {
22
23
  getCurrentLayoutColumnSort(columnId: string): ColumnSort['SortOrder'] | null;
23
24
  getCurrentLayoutName(): string;
24
25
  getLayoutByName(layoutName: string): Layout | null;
26
+ getExtendedLayoutByName(layoutName: string): ExtendedLayoutInfo | undefined;
25
27
  getLayouts(): Layout[];
26
28
  getLayoutById(id: Layout['Uuid']): Layout;
27
29
  saveCurrentLayout(): void;
@@ -74,6 +74,67 @@ export class LayoutApiImpl extends ApiBase {
74
74
  }
75
75
  }
76
76
  }
77
+ getExtendedLayoutByName(layoutName) {
78
+ const layout = this.getLayoutByName(layoutName);
79
+ if (!layout) {
80
+ return undefined;
81
+ }
82
+ const config = {
83
+ includeLayoutNotAssociatedObjects: true,
84
+ associatedWithLayout: layoutName,
85
+ };
86
+ // cannot see a better way than to go through this module by module...
87
+ let extensions = [];
88
+ this.getAlertApi()
89
+ .getAlertDefinitions(config)
90
+ .forEach((obj) => {
91
+ extensions.push({ Module: 'Alert', Object: obj });
92
+ });
93
+ this.getCustomSortApi()
94
+ .getCustomSorts(config)
95
+ .forEach((obj) => {
96
+ extensions.push({ Module: 'CustomSort', Object: obj });
97
+ });
98
+ this.getFlashingCellApi()
99
+ .getFlashingCellDefinitions(config)
100
+ .forEach((obj) => {
101
+ extensions.push({ Module: 'FlashingCell', Object: obj });
102
+ });
103
+ this.getFormatColumnApi()
104
+ .getFormatColumns(config)
105
+ .forEach((obj) => {
106
+ extensions.push({ Module: 'FormatColumn', Object: obj });
107
+ });
108
+ this.getPlusMinusApi()
109
+ .getAllPlusMinus(config)
110
+ .forEach((obj) => {
111
+ extensions.push({ Module: 'PlusMinus', Object: obj });
112
+ });
113
+ this.getScheduleApi()
114
+ .getReminderSchedules(config)
115
+ .forEach((obj) => {
116
+ extensions.push({ Module: 'Schedule', Object: obj });
117
+ });
118
+ this.getScheduleApi()
119
+ .getReportSchedules(config)
120
+ .forEach((obj) => {
121
+ extensions.push({ Module: 'Schedule', Object: obj });
122
+ });
123
+ this.getShortcutApi()
124
+ .getShortcuts(config)
125
+ .forEach((obj) => {
126
+ extensions.push({ Module: 'Shortcut', Object: obj });
127
+ });
128
+ this.getStyledColumnApi()
129
+ .getStyledColumns(config)
130
+ .forEach((obj) => {
131
+ extensions.push({ Module: 'StyledColumn', Object: obj });
132
+ });
133
+ return {
134
+ Layout: layout,
135
+ Extensions: extensions,
136
+ };
137
+ }
77
138
  getLayouts() {
78
139
  var _a;
79
140
  return (_a = this.getAdaptableState().Layout.Layouts) !== null && _a !== void 0 ? _a : [];
@@ -29,8 +29,6 @@ export declare class UserInterfaceApiImpl extends ApiBase implements UserInterfa
29
29
  getReadOnlyCellStyle(): AdaptableStyle | undefined;
30
30
  getAdaptableObjectTags(): AdaptableObjectTag[] | undefined;
31
31
  getCustomIconDefinition(iconName: string): import("../../types").AdaptableIcon | import("../../types").CustomIcon;
32
- showLoadingScreen(): void;
33
- hideLoadingScreen(): void;
34
32
  showProgressIndicator(config: ProgressIndicatorConfig): void;
35
33
  hideProgressIndicator(): void;
36
34
  openCustomWindowPopup(config: CustomWindowConfig): {
@@ -1,7 +1,6 @@
1
1
  import * as PopupRedux from '../../Redux/ActionsReducers/PopupRedux';
2
2
  import { SystemProgressIndicatorHide, SystemProgressIndicatorShow, } from '../../Redux/ActionsReducers/SystemRedux';
3
3
  import { ArrayExtensions } from '../../Utilities/Extensions/ArrayExtensions';
4
- import { logDeprecation } from '../../Utilities/logDeprecation';
5
4
  import { CUSTOM_WINDOW_FACTORY_ID } from '../../View/Components/Popups/WindowPopups/WindowPopups';
6
5
  import { UserInterfaceInternalApi } from '../Internal/UserInterfaceInternalApi';
7
6
  import { ApiBase } from './ApiBase';
@@ -168,14 +167,6 @@ export class UserInterfaceApiImpl extends ApiBase {
168
167
  }
169
168
  return customIcon;
170
169
  }
171
- showLoadingScreen() {
172
- logDeprecation(this.adaptable.logger, 'UserInterfaceApi', 'showLoadingScreen', 'showProgressIndicator');
173
- this.showProgressIndicator({ text: 'Loading' });
174
- }
175
- hideLoadingScreen() {
176
- logDeprecation(this.adaptable.logger, 'UserInterfaceApi', 'hideLoadingScreen', 'hideProgressIndicator');
177
- this.hideProgressIndicator();
178
- }
179
170
  showProgressIndicator(config) {
180
171
  if (config.delay) {
181
172
  this.showProgressIndicatorTimeout = setTimeout(() => {
@@ -1,4 +1,5 @@
1
1
  import { AdaptableColumn, ColumnSort } from '../../types';
2
+ import { ExtendedLayoutInfo } from '../PredefinedConfig/Common/ExtendedLayoutInfo';
2
3
  import { LayoutState, Layout } from '../PredefinedConfig/LayoutState';
3
4
  /**
4
5
  * Provides run-time access to the Layout Module and associated state
@@ -56,6 +57,12 @@ export interface LayoutApi {
56
57
  * @returns layout
57
58
  */
58
59
  getLayoutByName(layoutName: string): Layout | null;
60
+ /**
61
+ * Retrieves Layout with the given name
62
+ * @param layoutName Layout to retrieve
63
+ * @returns layout
64
+ */
65
+ getExtendedLayoutByName(layoutName: string): ExtendedLayoutInfo | undefined;
59
66
  /**
60
67
  * Retrieves all Layouts in Adaptable State
61
68
  * @returns layouts
@@ -71,16 +71,6 @@ export interface UserInterfaceApi {
71
71
  * @param name name of Icon
72
72
  */
73
73
  getCustomIconDefinition(name: string): AdaptableIcon | undefined;
74
- /**
75
- * Displays the popup that says getting data and initialising grid
76
- * @deprecated use `showProgressIndicator()` instead
77
- */
78
- showLoadingScreen(): void;
79
- /**
80
- * Hides the popup that says getting data and initialising grid
81
- * @deprecated use `hideProgressIndicator()` instead
82
- */
83
- hideLoadingScreen(): void;
84
74
  /**
85
75
  * Displays a progress indicator
86
76
  * @param config.progressText - text to display in the progress indicator
@@ -0,0 +1,12 @@
1
+ import { AdaptableModule, AdaptableObject, Layout } from '../../types';
2
+ /**
3
+ * Defines an Extended Layout - provides a Layout and all objects that refer to it
4
+ */
5
+ export interface ExtendedLayoutInfo {
6
+ Layout: Layout;
7
+ Extensions: LayoutExtension[];
8
+ }
9
+ export interface LayoutExtension {
10
+ Module: AdaptableModule;
11
+ Object: AdaptableObject;
12
+ }
@@ -45,10 +45,6 @@ export interface FormatColumn extends SuspendableObject {
45
45
  * Which types of Rows should be formatted (data, grouped, summary)
46
46
  */
47
47
  RowScope?: RowScope;
48
- /**
49
- * @deprecated FormatColumns now apply to Group Rows by default; use RowScope for more control
50
- */
51
- IncludeGroupedRows?: never;
52
48
  }
53
49
  /**
54
50
  * The Format Column Rule - can be either a Predicate or a BooleanExpression
@@ -1,6 +1,7 @@
1
1
  import { AdaptableModuleBase } from './AdaptableModuleBase';
2
2
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
3
  import * as DashboardRedux from '../Redux/ActionsReducers/DashboardRedux';
4
+ import ArrayExtensions from '../Utilities/Extensions/ArrayExtensions';
4
5
  export class DashboardModule extends AdaptableModuleBase {
5
6
  constructor(api) {
6
7
  super(ModuleConstants.DashboardModuleId, ModuleConstants.DashboardFriendlyName, 'dashboard', 'DashboardPopup', 'The Dashboard - usually placed above the Grid - is designed to provide quick access to commonly required AdapTable functionalty', api);
@@ -26,22 +27,25 @@ export class DashboardModule extends AdaptableModuleBase {
26
27
  buildMenuItems() {
27
28
  if (this.isModuleAvailable()) {
28
29
  let menuItems = [];
30
+ const dashboardState = this.api.dashboardApi.getDashboardState();
29
31
  if (this.isModuleEditable()) {
30
32
  menuItems.push(this.createMenuItemClickFunction('dashboard-configure', 'Configure', 'settings', () => this.api.dashboardApi.openDashboardSettingsPanel()));
31
33
  }
32
- if (this.api.dashboardApi.getDashboardState().IsCollapsed) {
33
- menuItems.push(this.createMenuItemReduxAction('dashboard-expand', 'Expand', 'expand', DashboardRedux.DashboardSetIsCollapsed(false)));
34
+ if (ArrayExtensions.IsNotNullOrEmpty(dashboardState.Tabs)) {
35
+ if (dashboardState.IsCollapsed) {
36
+ menuItems.push(this.createMenuItemReduxAction('dashboard-expand', 'Expand', 'expand', DashboardRedux.DashboardSetIsCollapsed(false)));
37
+ }
38
+ else {
39
+ menuItems.push(this.createMenuItemReduxAction('dashboard-collapse', 'Collapse', 'collapse', DashboardRedux.DashboardSetIsCollapsed(true)));
40
+ }
34
41
  }
35
- else {
36
- menuItems.push(this.createMenuItemReduxAction('dashboard-collapse', 'Collapse', 'collapse', DashboardRedux.DashboardSetIsCollapsed(true)));
37
- }
38
- if (this.api.dashboardApi.getDashboardState().IsFloating) {
42
+ if (dashboardState.IsFloating) {
39
43
  menuItems.push(this.createMenuItemReduxAction('dashboard-dock', 'Dock', 'dock', DashboardRedux.DashboardSetIsFloating(false)));
40
44
  }
41
45
  else if (this.api.optionsApi.getDashboardOptions().canFloat) {
42
46
  menuItems.push(this.createMenuItemReduxAction('dashboard-float', 'Float', 'dock', DashboardRedux.DashboardSetIsFloating(true)));
43
47
  }
44
- if (this.api.dashboardApi.getDashboardState().IsHidden) {
48
+ if (dashboardState.IsHidden) {
45
49
  menuItems.push(this.createMenuItemReduxAction('dashboard-show', 'Show', 'visibility-on-bold', DashboardRedux.DashboardSetIsHidden(false)));
46
50
  }
47
51
  else {
@@ -3,6 +3,7 @@ import * as React from 'react';
3
3
  import { CheckBox } from '../../components/CheckBox';
4
4
  import { connect } from 'react-redux';
5
5
  import { Flex } from 'rebass';
6
+ import ArrayExtensions from '../../Utilities/Extensions/ArrayExtensions';
6
7
  class DashboardViewPanelComponent extends React.Component {
7
8
  constructor(props) {
8
9
  super(props);
@@ -11,7 +12,7 @@ class DashboardViewPanelComponent extends React.Component {
11
12
  const elementType = this.props.viewType === 'Toolbar' ? 'DashboardToolbar' : 'ToolPanel';
12
13
  return (React.createElement(Flex, { flexDirection: "row", className: `ab-${elementType}__Dashboard__wrap`, flexWrap: this.props.viewType === 'ToolPanel' ? 'wrap' : 'nowrap' },
13
14
  ' ',
14
- React.createElement(CheckBox, { className: `ab-${elementType}__Dashboard__collapsed-check`, marginTop: 0, fontSize: 2, padding: 1, checked: this.props.IsCollapsed, onChange: (checked) => this.props.onSetDashboardCollapsed(checked) }, "Collapse"),
15
+ ArrayExtensions.IsNotNullOrEmpty(this.props.api.dashboardApi.getDashboardState().Tabs) && (React.createElement(CheckBox, { className: `ab-${elementType}__Dashboard__collapsed-check`, marginTop: 0, fontSize: 2, padding: 1, checked: this.props.IsCollapsed, onChange: (checked) => this.props.onSetDashboardCollapsed(checked) }, "Collapse")),
15
16
  '',
16
17
  this.props.api.optionsApi.getDashboardOptions().canFloat && (React.createElement(CheckBox, { className: `ab-${elementType}__Dashboard__collapsed-check`, marginTop: 0, fontSize: 2, padding: 1, checked: this.props.IsFloating, onChange: (checked) => this.props.onSetDashboardFloating(checked) }, "Float")),
17
18
  ' ',
@@ -42,6 +42,7 @@ interface AdaptableInitInternalConfig<TData = any> {
42
42
  export declare class AdaptableAgGrid implements IAdaptable {
43
43
  logger: AdaptableLogger;
44
44
  private _id;
45
+ private _agGridId;
45
46
  lifecycleState: AdaptableLifecycleState;
46
47
  variant: AdaptableVariant;
47
48
  private emitter;
@@ -99,10 +99,15 @@ const GridOptionsService_updateGridOptions = GridOptionsService.prototype.update
99
99
  const EventService_Prototype = EventService.prototype;
100
100
  const EventService_wireBeans = EventService_Prototype.wireBeans;
101
101
  // AG GRID obfuscates its internals, this is (currently) the best way to get hold of its internal services
102
- let DANGER_AG_GRID_BEANS;
102
+ const DANGER_AG_GRID_BEANS_MAP = {};
103
103
  EventService_Prototype.wireBeans = function (beans) {
104
+ var _a;
104
105
  EventService_wireBeans.apply(this, arguments);
105
- DANGER_AG_GRID_BEANS = beans;
106
+ const gridId = (_a = beans === null || beans === void 0 ? void 0 : beans.context) === null || _a === void 0 ? void 0 : _a.getGridId();
107
+ if (!gridId) {
108
+ console.error('CRITICAL: No gridId found in beans, this should never happen!');
109
+ }
110
+ DANGER_AG_GRID_BEANS_MAP[gridId] = beans;
106
111
  };
107
112
  LocalEventService_Prototype.dispatchEvent = function (event) {
108
113
  LocalEventService_dispatchEvent.apply(this, arguments);
@@ -579,7 +584,9 @@ export class AdaptableAgGrid {
579
584
  * `gridId`
580
585
  */
581
586
  this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'gridId', (original_gridId) => {
582
- return original_gridId || this.adaptableOptions.adaptableId;
587
+ const agGridId = original_gridId || this.adaptableOptions.adaptableId;
588
+ this._agGridId = agGridId;
589
+ return agGridId;
583
590
  });
584
591
  /**
585
592
  * `getRowId`
@@ -3025,7 +3032,7 @@ export class AdaptableAgGrid {
3025
3032
  }
3026
3033
  }
3027
3034
  }
3028
- DANGER_AG_GRID_BEANS = null;
3035
+ DANGER_AG_GRID_BEANS_MAP[this._agGridId] = null;
3029
3036
  if ((config === null || config === void 0 ? void 0 : config.destroyApi) === true) {
3030
3037
  (_b = this.agGridAdapter.getAgGridApi()) === null || _b === void 0 ? void 0 : _b.destroy();
3031
3038
  }
@@ -4046,6 +4053,10 @@ export class AdaptableAgGrid {
4046
4053
  };
4047
4054
  }
4048
4055
  DANGER_getPrivateAgGridBeans() {
4049
- return DANGER_AG_GRID_BEANS;
4056
+ const beans = DANGER_AG_GRID_BEANS_MAP[this._agGridId];
4057
+ if (!beans) {
4058
+ this.logger.consoleError('Could not get hold of AgGridBeans! This is a critical error and will prevent Adaptable from working correctly.');
4059
+ }
4060
+ return beans;
4050
4061
  }
4051
4062
  }
@@ -376,11 +376,11 @@ export class AgGridMenuAdapter {
376
376
  icon: 'export-data',
377
377
  }));
378
378
  return this.normalizeMenuGroup(this.buildMenuGroupParent('Export', [
379
- ...visualDataExportItems,
380
379
  ...allDataExportItems,
381
380
  ...currentDataExportItems,
382
381
  ...selectedCellsExportItems,
383
382
  ...selectedRowsExportItems,
383
+ ...visualDataExportItems,
384
384
  ], {
385
385
  label: 'Export',
386
386
  icon: 'export',
@@ -471,19 +471,19 @@ export class AgGridMenuAdapter {
471
471
  ],
472
472
  };
473
473
  /*
474
- const calculatedColumnMenuItem: AdaptableMenuItem = {
475
- name: 'calculated-column-group',
476
- label: 'Calculated Column',
477
- module: 'CalculatedColumn',
478
- isVisible: true,
479
- icon: {
480
- name: 'columns',
481
- },
482
- subItems: [
483
- ...calculatedColumnMenuItems,
484
- ],
485
- };
486
- */
474
+ const calculatedColumnMenuItem: AdaptableMenuItem = {
475
+ name: 'calculated-column-group',
476
+ label: 'Calculated Column',
477
+ module: 'CalculatedColumn',
478
+ isVisible: true,
479
+ icon: {
480
+ name: 'columns',
481
+ },
482
+ subItems: [
483
+ ...calculatedColumnMenuItems,
484
+ ],
485
+ };
486
+ */
487
487
  const columnMenuItem = {
488
488
  name: 'column-group',
489
489
  label: 'Column',
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: 1724081698262 || Date.now(),
4
- VERSION: "18.1.15-canary.0" || '--current-version--',
3
+ PUBLISH_TIMESTAMP: 1724773387137 || Date.now(),
4
+ VERSION: "19.0.0" || '--current-version--',
5
5
  };
@@ -3251,6 +3251,11 @@ export declare const ADAPTABLE_METAMODEL: {
3251
3251
  noCode?: undefined;
3252
3252
  })[];
3253
3253
  };
3254
+ ExtendedLayoutInfo: {
3255
+ name: string;
3256
+ kind: string;
3257
+ desc: string;
3258
+ };
3254
3259
  ExternalChartingContext: {
3255
3260
  name: string;
3256
3261
  kind: string;