@adaptabletools/adaptable-cjs 18.1.6 → 18.1.7

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 (32) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -1
  3. package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +3 -4
  4. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +3 -0
  5. package/src/AdaptableOptions/ExpressionOptions.d.ts +3 -0
  6. package/src/AdaptableOptions/GridFilterOptions.d.ts +4 -1
  7. package/src/AdaptableOptions/StateOptions.d.ts +1 -1
  8. package/src/Api/AdaptableApi.d.ts +1 -4
  9. package/src/Api/ColumnScopeApi.d.ts +1 -1
  10. package/src/Api/Events/SystemStatusMessageDisplayed.d.ts +1 -1
  11. package/src/Api/Implementation/GridApiImpl.js +1 -1
  12. package/src/Api/Internal/CommentsInternalApi.js +0 -4
  13. package/src/Api/Internal/NoteInternalApi.js +0 -4
  14. package/src/Api/StatusBarApi.d.ts +5 -5
  15. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  16. package/src/PredefinedConfig/Common/Menu.d.ts +6 -0
  17. package/src/Strategy/CalculatedColumnModule.js +1 -1
  18. package/src/Strategy/ColumnFilterModule.js +13 -11
  19. package/src/Strategy/CommentModule.js +3 -0
  20. package/src/Strategy/NoteModule.js +3 -0
  21. package/src/agGrid/AdaptableAgGrid.d.ts +1 -1
  22. package/src/agGrid/AdaptableAgGrid.js +8 -15
  23. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +3 -0
  24. package/src/components/Select/Select.d.ts +1 -0
  25. package/src/components/Select/Select.js +8 -2
  26. package/src/components/icons/index.js +1 -1
  27. package/src/env.js +2 -2
  28. package/src/metamodel/adaptable.metamodel.d.ts +149 -0
  29. package/src/metamodel/adaptable.metamodel.js +1 -1
  30. package/src/parser/src/types.d.ts +25 -4
  31. package/src/types.d.ts +1 -1
  32. package/tsconfig.cjs.tsbuildinfo +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable-cjs",
3
- "version": "18.1.6",
3
+ "version": "18.1.7",
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",
@@ -247,7 +247,7 @@ export interface IAdaptable {
247
247
  getAllGridColumns(): Column<any>[];
248
248
  clearRowGroupColumns(): void;
249
249
  expandAllRowGroups(): void;
250
- closeAllRowGroups(): void;
250
+ collapseAllRowGroups(): void;
251
251
  expandRowGroupsForValues(columnValues: any[]): void;
252
252
  getExpandRowGroupsKeys(): any[];
253
253
  getAdaptableContainerElement(): HTMLElement | null;
@@ -23,14 +23,13 @@ export type AngularFrameworkComponent<T = unknown> = {
23
23
  /**
24
24
  *
25
25
  * A function that returns a ReactNode
26
- * @example
27
- * ```
28
- * () => <MyCustomToolbar />
29
- * ```
30
26
  */
31
27
  export type ReactFrameworkComponent = ({ adaptableApi, }: {
32
28
  adaptableApi: AdaptableApi;
33
29
  }) => ReactElement;
30
+ /**
31
+ * Creates a Vue Component to be used in AdapTable UI controls
32
+ */
34
33
  export type VueFrameworkComponent<Component extends unknown = unknown> = ({ adaptableApi, }: {
35
34
  adaptableApi: AdaptableApi;
36
35
  }) => Component;
@@ -301,4 +301,7 @@ export interface ValuesFilterPredicateContext<TData = any> extends BaseContext {
301
301
  */
302
302
  predicate: ColumnValuesFilterPredicate;
303
303
  }
304
+ /**
305
+ * Predicate used in Column Values Filter
306
+ */
304
307
  export type ColumnValuesFilterPredicate = TypeHint<string, SystemFilterPredicateIds>;
@@ -197,6 +197,9 @@ export interface ModuleExpressionFunctions {
197
197
  */
198
198
  systemAggregatedScalarFunctions?: AggregatedScalarFunctionName[] | ((context: GlobalExpressionFunctionsContext<AggregatedScalarFunctionName>) => AggregatedScalarFunctionName[]);
199
199
  }
200
+ /**
201
+ * Context used when providing Fields programatically
202
+ */
200
203
  export interface AdaptableFieldContext extends BaseContext {
201
204
  }
202
205
  /**
@@ -16,8 +16,11 @@ export interface GridFilterOptions<TData = any> {
16
16
  */
17
17
  clearGridFilterOnStartUp?: boolean;
18
18
  }
19
+ /**
20
+ * List of Editors that can create a Grid Filter
21
+ */
19
22
  export type GridFilterEditors = GridFilterEditor[];
20
23
  /**
21
- * List of all the Module buttons Adaptable provides - each Module has a popup for which this is a shortcut button
24
+ * Editor to use for Grid Filter: 'ExpressionEditor' or 'QueryBuilder'
22
25
  */
23
26
  export type GridFilterEditor = 'ExpressionEditor' | 'QueryBuilder';
@@ -1,6 +1,6 @@
1
1
  import { AdaptableState } from '../PredefinedConfig/AdaptableState';
2
2
  /**
3
- * Options related to Adaptable State hydration/dehydration - allows users to intercept state persistence and state loading with custom functionality
3
+ * Options related to Adaptable State hydration / dehydration; allows users to intercept state persistence and loading with custom functionality
4
4
  */
5
5
  export interface StateOptions {
6
6
  /**
@@ -50,10 +50,7 @@ import { CommentApi } from './CommentApi';
50
50
  import { ColumnMenuApi } from './ColumnMenuApi';
51
51
  import { ContextMenuApi } from './ContextMenuApi';
52
52
  /**
53
- *
54
- * The `AdaptableApi` provides developers with run-time access to AdapTable.
55
- *
56
- * Has a huge number of classes each dedicated to a specific AdapTable Module or functionality
53
+ * Provides developers with run-time access to AdapTable. Contains many classes each dedicated to a specific AdapTable Module or functionality
57
54
  */
58
55
  export interface AdaptableApi {
59
56
  /**
@@ -37,7 +37,7 @@ export interface ColumnScopeApi {
37
37
  */
38
38
  scopeHasColumnType(scope: ColumnScope): boolean;
39
39
  /**
40
- * True if the Scope is DataTypes and contains only Boolean
40
+ * True if Scope is DataTypes and contains just 'Boolean'
41
41
  * @param scope Scope to check
42
42
  */
43
43
  scopeHasOnlyBooleanDataType(scope: ColumnScope): boolean;
@@ -1,7 +1,7 @@
1
1
  import { SystemStatusMessageInfo } from '../../PredefinedConfig/Common/SystemStatusMessageInfo';
2
2
  import { BaseEventInfo } from './BaseEventInfo';
3
3
  /**
4
- * Object returned by the `SystemStatusMessageDisplayed` event
4
+ * Object returned by SystemStatusMessageDisplayed Event
5
5
  */
6
6
  export interface SystemStatusMessageDisplayedInfo extends BaseEventInfo {
7
7
  /**
@@ -346,7 +346,7 @@ class GridApiImpl extends ApiBase_1.ApiBase {
346
346
  this.adaptable.expandAllRowGroups();
347
347
  }
348
348
  collapseAllRowGroups() {
349
- this.adaptable.closeAllRowGroups();
349
+ this.adaptable.collapseAllRowGroups();
350
350
  }
351
351
  getExpandRowGroupsKeys() {
352
352
  return this.adaptable.getExpandRowGroupsKeys();
@@ -4,14 +4,10 @@ exports.CommentsInternalApi = void 0;
4
4
  const ApiBase_1 = require("../Implementation/ApiBase");
5
5
  class CommentsInternalApi extends ApiBase_1.ApiBase {
6
6
  areCommentsSupported() {
7
- var _a;
8
7
  const currentLayout = this.getLayoutApi().getCurrentLayout();
9
8
  if (currentLayout.EnablePivot) {
10
9
  return false;
11
10
  }
12
- if ((_a = currentLayout === null || currentLayout === void 0 ? void 0 : currentLayout.RowGroupedColumns) === null || _a === void 0 ? void 0 : _a.length) {
13
- return false;
14
- }
15
11
  return true;
16
12
  }
17
13
  }
@@ -4,14 +4,10 @@ exports.NoteInternalApi = void 0;
4
4
  const ApiBase_1 = require("../Implementation/ApiBase");
5
5
  class NoteInternalApi extends ApiBase_1.ApiBase {
6
6
  areNotesSupported() {
7
- var _a;
8
7
  const currentLayout = this.getLayoutApi().getCurrentLayout();
9
8
  if (currentLayout.EnablePivot) {
10
9
  return false;
11
10
  }
12
- if ((_a = currentLayout === null || currentLayout === void 0 ? void 0 : currentLayout.RowGroupedColumns) === null || _a === void 0 ? void 0 : _a.length) {
13
- return false;
14
- }
15
11
  return true;
16
12
  }
17
13
  }
@@ -1,20 +1,20 @@
1
1
  import { StatusPanelDef } from '@ag-grid-community/core';
2
2
  import { AdaptableStatusBar } from '../PredefinedConfig/StatusBarState';
3
3
  /**
4
- * Methods for managaing the Adaptable Status Bar
4
+ * Methods for managing the AdapTable Status Bar
5
5
  */
6
6
  export interface StatusBarApi {
7
7
  /**
8
- * Retrieves the current AG Grid Status Bar Panels
8
+ * Retrieves current AG Grid Status Bar Panels
9
9
  */
10
10
  getAgGridStatusPanels(): StatusPanelDef[];
11
11
  /**
12
- * Retrieves the current Adaptable Status Bar Panels
12
+ * Retrieves current AdapTable Status Bar Panels
13
13
  */
14
14
  getAdaptableStatusBars: () => AdaptableStatusBar[];
15
15
  /**
16
- * Sets the current Adaptable Status Bar Panels
17
- * @param statusPanels the Adaptable Status Bar Panels
16
+ * Sets Adaptable Status Bar Panels
17
+ * @param statusPanels Adaptable Status Bar Panels
18
18
  */
19
19
  setStatusBarPanels: (statusPanels: AdaptableStatusBar[]) => void;
20
20
  }
@@ -54,4 +54,4 @@ export interface AdaptableBaseIcon {
54
54
  /**
55
55
  * All AdapTable System Icon names
56
56
  */
57
- export type AdaptableSystemIconName = 'add' | 'alert' | 'building' | 'laptop' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | 'arrow-expand' | 'paperclip' | 'unfilled-circle' | 'boolean-list' | 'broadcast' | 'brush' | 'spanner' | 'edit-table' | 'chart-and-grid' | 'calendar' | 'call' | 'cells' | 'fdc3' | 'flag' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'columns' | 'filter-list' | 'copy' | 'comment' | 'comments' | 'contains' | 'dashboard' | 'json' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'dollar' | 'drag' | 'edit' | 'ends-with' | 'equals' | 'equation' | 'error' | 'excel' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'filter-off' | 'lightning' | 'folder' | 'folder-open' | 'folder-shared' | 'color-palette' | 'horizontal-lines' | 'function' | 'greater-than' | 'greater-than-or-equal' | 'history' | 'home' | 'import-export' | 'info' | 'brain' | 'download' | 'grid' | 'interactions' | 'less-than' | 'less-than-or-equal' | 'list' | 'logout' | 'mail' | 'menu' | 'minus' | 'multiplication' | 'money' | 'newpage' | 'news' | 'filled-circle' | 'not-contains' | 'not-equal' | 'open-in-new' | 'order' | 'organisation' | 'pause' | 'percent' | 'percent-tag' | 'person' | 'contact' | 'pie-chart' | 'play' | 'plus' | 'add-circle' | 'search' | 'search-table' | 'select-all' | 'select-off' | 'select-fwd' | 'sync' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'science' | 'settings' | 'link' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'resume' | 'starts-with' | 'assignment' | 'statusbar' | 'stop' | 'traffic-lights' | 'tab-unselected' | 'theme' | 'clipboard' | 'target' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'downloaded' | 'upload' | 'warning' | 'gradient' | 'badge' | 'italic' | 'bold' | 'align-left' | 'align-right' | 'align-center' | 'align-justify' | 'underline' | 'strikethrough' | 'overline' | 'case-upper' | 'case-lower' | 'case-sentence' | 'visibility-on' | 'visibility-off' | 'visibility-off-bold' | 'visibility-on-bold' | 'note' | 'import' | 'grid-filter' | 'grid-info' | 'csv' | 'rows' | 'expand-all' | 'collapse-all' | 'column-outline';
57
+ export type AdaptableSystemIconName = 'add' | 'alert' | 'building' | 'laptop' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | 'arrow-expand' | 'paperclip' | 'unfilled-circle' | 'boolean-list' | 'broadcast' | 'brush' | 'spanner' | 'edit-table' | 'calculated-column' | 'calendar' | 'call' | 'cells' | 'fdc3' | 'flag' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'columns' | 'filter-list' | 'copy' | 'comment' | 'comments' | 'contains' | 'dashboard' | 'json' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'dollar' | 'drag' | 'edit' | 'ends-with' | 'equals' | 'equation' | 'error' | 'excel' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'filter-off' | 'lightning' | 'folder' | 'folder-open' | 'folder-shared' | 'color-palette' | 'horizontal-lines' | 'function' | 'greater-than' | 'greater-than-or-equal' | 'history' | 'home' | 'import-export' | 'info' | 'brain' | 'download' | 'grid' | 'interactions' | 'less-than' | 'less-than-or-equal' | 'list' | 'logout' | 'mail' | 'menu' | 'minus' | 'multiplication' | 'money' | 'newpage' | 'news' | 'filled-circle' | 'not-contains' | 'not-equal' | 'open-in-new' | 'order' | 'organisation' | 'pause' | 'percent' | 'percent-tag' | 'person' | 'contact' | 'pie-chart' | 'play' | 'plus' | 'add-circle' | 'search' | 'search-table' | 'select-all' | 'select-off' | 'select-fwd' | 'sync' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'science' | 'settings' | 'link' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'resume' | 'starts-with' | 'assignment' | 'statusbar' | 'stop' | 'traffic-lights' | 'tab-unselected' | 'theme' | 'clipboard' | 'target' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'downloaded' | 'upload' | 'warning' | 'gradient' | 'badge' | 'italic' | 'bold' | 'align-left' | 'align-right' | 'align-center' | 'align-justify' | 'underline' | 'strikethrough' | 'overline' | 'case-upper' | 'case-lower' | 'case-sentence' | 'visibility-on' | 'visibility-off' | 'visibility-off-bold' | 'visibility-on-bold' | 'note' | 'import' | 'grid-filter' | 'grid-info' | 'csv' | 'rows' | 'expand-all' | 'collapse-all' | 'column-outline';
@@ -5,7 +5,13 @@ import { SelectedCellInfo } from '../Selection/SelectedCellInfo';
5
5
  import { SelectedRowInfo } from '../Selection/SelectedRowInfo';
6
6
  import { Column, IRowNode } from '@ag-grid-community/core';
7
7
  import { AdaptableIcon, BaseContext } from '../../types';
8
+ /**
9
+ * Name of Column Menu Item provided by AdapTable
10
+ */
8
11
  export type AdaptableColumnMenuItemName = (typeof ADAPTABLE_COLUMN_MENU_ITEMS)[number];
12
+ /**
13
+ * Name of Context Menu Item provided by AdapTable
14
+ */
9
15
  export type AdaptableContextMenuItemName = (typeof ADAPTABLE_CONTEXT_MENU_ITEMS)[number];
10
16
  /**
11
17
  * List of Shipped Adaptable Column Menu Items
@@ -13,7 +13,7 @@ const getCalculatedColumnSettingsTags_1 = require("../View/CalculatedColumn/Util
13
13
  const Helper_1 = tslib_1.__importDefault(require("../Utilities/Helpers/Helper"));
14
14
  class CalculatedColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
15
15
  constructor(api) {
16
- super(ModuleConstants.CalculatedColumnModuleId, ModuleConstants.CalculatedColumnFriendlyName, 'chart-and-grid', 'CalculatedColumnPopup', 'Create bespoke columns whose cell value is derived dynamically from an Expression', api);
16
+ super(ModuleConstants.CalculatedColumnModuleId, ModuleConstants.CalculatedColumnFriendlyName, 'calculated-column', 'CalculatedColumnPopup', 'Create bespoke columns whose cell value is derived dynamically from an Expression', api);
17
17
  }
18
18
  onAdaptableReady() {
19
19
  this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
@@ -75,17 +75,19 @@ class ColumnFilterModule extends AdaptableModuleBase_1.AdaptableModuleBase {
75
75
  this.api.optionsApi.getColumnFilterOptions().useAdaptableColumnFiltering) {
76
76
  const existingColumnFilter = this.getExistingColumnFilter(menuContext.adaptableColumn);
77
77
  if (!existingColumnFilter) {
78
- let isMultiple = menuContext.selectedCellInfo.gridCells.length > 1;
79
- let clickFunction = isMultiple
80
- ? () => {
81
- this.api.columnFilterApi.internalApi.createValuesColumnFilterForCells(menuContext.selectedCellInfo.gridCells);
82
- }
83
- : () => {
84
- this.api.columnFilterApi.internalApi.createEqualityColumnFilterForCell(menuContext.selectedCellInfo.gridCells[0]);
85
- };
86
- return [
87
- this.createMenuItemClickFunction('column-filter-on-cell-value', isMultiple ? 'Filter on Cell Values' : 'Filter on Cell Value', this.moduleInfo.Glyph, clickFunction),
88
- ];
78
+ if (!menuContext.isRowGroupColumn && !menuContext.isGroupedNode) {
79
+ let isMultiple = menuContext.selectedCellInfo.gridCells.length > 1;
80
+ let clickFunction = isMultiple
81
+ ? () => {
82
+ this.api.columnFilterApi.internalApi.createValuesColumnFilterForCells(menuContext.selectedCellInfo.gridCells);
83
+ }
84
+ : () => {
85
+ this.api.columnFilterApi.internalApi.createEqualityColumnFilterForCell(menuContext.selectedCellInfo.gridCells[0]);
86
+ };
87
+ return [
88
+ this.createMenuItemClickFunction('column-filter-on-cell-value', isMultiple ? 'Filter on Cell Values' : 'Filter on Cell Value', this.moduleInfo.Glyph, clickFunction),
89
+ ];
90
+ }
89
91
  }
90
92
  else {
91
93
  return [
@@ -36,6 +36,9 @@ class CommentModule extends AdaptableModuleBase_1.AdaptableModuleBase {
36
36
  if (!this.api.commentApi.internalApi.areCommentsSupported()) {
37
37
  return;
38
38
  }
39
+ if (menuContext.isRowGroupColumn || menuContext.isGroupedNode) {
40
+ return;
41
+ }
39
42
  const items = [];
40
43
  const isCellCommentable = typeof ((_b = (_a = this.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getCommentOptions()) === null || _b === void 0 ? void 0 : _b.isCellCommentable) === 'function'
41
44
  ? (_d = (_c = this.api.optionsApi) === null || _c === void 0 ? void 0 : _c.getCommentOptions()) === null || _d === void 0 ? void 0 : _d.isCellCommentable(Object.assign({ gridCell: menuContext.gridCell }, (0, ObjectFactory_1.createBaseContext)(this.api)))
@@ -22,6 +22,9 @@ class NoteModule extends AdaptableModuleBase_1.AdaptableModuleBase {
22
22
  if (!this.api.noteApi.internalApi.areNotesSupported()) {
23
23
  return;
24
24
  }
25
+ if (menuContext.isRowGroupColumn || menuContext.isGroupedNode) {
26
+ return;
27
+ }
25
28
  const isReadOnly = this.adaptable.api.entitlementApi.getEntitlementAccessLevelForModule(this.moduleInfo.ModuleName) === 'ReadOnly';
26
29
  if (isReadOnly) {
27
30
  return undefined;
@@ -296,7 +296,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
296
296
  getAllGridColumns(): Column<any>[];
297
297
  clearRowGroupColumns(): void;
298
298
  expandAllRowGroups(): void;
299
- closeAllRowGroups(): void;
299
+ collapseAllRowGroups(): void;
300
300
  expandRowGroupsForValues(columnValues: any[]): void;
301
301
  getExpandRowGroupsKeys(): any[];
302
302
  getAgGridColumnForColumnId(columnId: string): Column;
@@ -2041,8 +2041,10 @@ class AdaptableAgGrid {
2041
2041
  let firstRowNode = this.getFirstDisplayedRowNode();
2042
2042
  if (firstRowNode === null || firstRowNode === void 0 ? void 0 : firstRowNode.group) {
2043
2043
  // all groups may be closed so it is safer to get first leaf node
2044
- // all groups must have at least one leafe node
2045
- firstRowNode = firstRowNode.allLeafChildren[0];
2044
+ // all groups should have at least one leafe node (though not necessarily if using SSRM)
2045
+ if (ArrayExtensions_1.default.IsNotNullOrEmpty(firstRowNode.allLeafChildren)) {
2046
+ firstRowNode = firstRowNode.allLeafChildren[0];
2047
+ }
2046
2048
  }
2047
2049
  return firstRowNode;
2048
2050
  }
@@ -2832,20 +2834,10 @@ class AdaptableAgGrid {
2832
2834
  .removeRowGroupColumns(this.agGridAdapter.getAgGridApi().getRowGroupColumns());
2833
2835
  }
2834
2836
  expandAllRowGroups() {
2835
- this.agGridAdapter.getAgGridApi().forEachNode((node) => {
2836
- if (node.group) {
2837
- node.expanded = true;
2838
- }
2839
- });
2840
- this.agGridAdapter.getAgGridApi().onGroupExpandedOrCollapsed();
2837
+ this.agGridAdapter.getAgGridApi().expandAll();
2841
2838
  }
2842
- closeAllRowGroups() {
2843
- this.agGridAdapter.getAgGridApi().forEachNode((node) => {
2844
- if (node.group) {
2845
- node.expanded = false;
2846
- }
2847
- });
2848
- this.agGridAdapter.getAgGridApi().onGroupExpandedOrCollapsed();
2839
+ collapseAllRowGroups() {
2840
+ this.agGridAdapter.getAgGridApi().collapseAll();
2849
2841
  }
2850
2842
  expandRowGroupsForValues(columnValues) {
2851
2843
  if (ArrayExtensions_1.default.IsNotNullOrEmpty(columnValues)) {
@@ -3763,6 +3755,7 @@ class AdaptableAgGrid {
3763
3755
  // same grid column state as a previous,
3764
3756
  // so no need to update, as the layout has already been updated
3765
3757
  // for this grid column state
3758
+ console.log('same state as before');
3766
3759
  return;
3767
3760
  }
3768
3761
  this.previousAgGridLayoutState = stringifiedLayoutState;
@@ -1,6 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import { ICellEditorComp, ICellEditorParams } from '@ag-grid-community/core';
3
3
  import { IAdaptable } from '../../../AdaptableInterfaces/IAdaptable';
4
+ /**
5
+ * Params used by the AdapTable Date Editor
6
+ */
4
7
  export interface AdaptableDateEditorParams extends ICellEditorParams {
5
8
  onValueChange?: (value: any) => void;
6
9
  }
@@ -28,5 +28,6 @@ export type SelectProps<SelectValue extends unknown, IsMulti extends boolean = f
28
28
  onInputChange?: (value: string) => void;
29
29
  size?: 'small' | 'normal';
30
30
  isCreatable?: boolean;
31
+ menuPortalTarget?: HTMLElement;
31
32
  };
32
33
  export declare const Select: <SelectValue extends unknown, IsMulti extends boolean = false>(props: SelectProps<SelectValue, IsMulti>) => JSX.Element;
@@ -73,6 +73,11 @@ const Select = function (props) {
73
73
  return (React.createElement(react_select_1.components.ValueContainer, Object.assign({}, inputProps, { innerProps: Object.assign({ 'data-name': 'value-container' }, inputProps.innerProps) })));
74
74
  };
75
75
  }, []);
76
+ const MenuComponent = React.useMemo(() => {
77
+ return (inputProps) => {
78
+ return (React.createElement(react_select_1.components.Menu, Object.assign({}, inputProps, { innerProps: Object.assign({ 'data-name': 'menu-container' }, inputProps.innerProps) })));
79
+ };
80
+ }, []);
76
81
  const SelectComponent = props.isCreatable ? creatable_1.default : react_select_1.default;
77
82
  const ClearIndicator = React.useMemo(() => {
78
83
  return (clearIndicatorProps) => {
@@ -88,16 +93,17 @@ const Select = function (props) {
88
93
  }, []);
89
94
  return (React.createElement(SelectComponent, { onInputChange: props.onInputChange, onFocus: props.onFocus, isLoading: props.isLoading, options: props.options, className: props.className, isDisabled: disabled, menuPlacement: (_g = props.menuPlacement) !== null && _g !== void 0 ? _g : 'auto', isSearchable: props.searchable, isMulti: props.isMulti, value: selectedOption, menuPosition: (_h = props.menuPosition) !== null && _h !== void 0 ? _h : 'absolute',
90
95
  // This needed so the menu is not clipped by overflow: hidden
91
- menuPortalTarget: document.body, isClearable: props.isClearable, onChange: (option) => {
96
+ menuPortalTarget: props.menuPortalTarget === undefined ? document.body : null, isClearable: props.isClearable, onChange: (option) => {
92
97
  if (props.isMulti) {
93
98
  props.onChange(option.map((x) => x === null || x === void 0 ? void 0 : x.value));
94
99
  }
95
100
  else {
96
101
  props.onChange(option === null || option === void 0 ? void 0 : option.value);
97
102
  }
98
- }, placeholder: props.placeholder, components: {
103
+ }, placeholder: props.placeholder, createOptionPosition: 'first', components: {
99
104
  SelectContainer,
100
105
  ValueContainer,
106
+ Menu: MenuComponent,
101
107
  SingleValue: (singleValueProps) => {
102
108
  return (React.createElement(react_select_1.components.SingleValue, Object.assign({}, singleValueProps), props.renderSingleValue
103
109
  ? props.renderSingleValue(selectedOption)
@@ -180,7 +180,7 @@ exports.allIcons = {
180
180
  cells: cell_summary_1.default,
181
181
  columns: column_chooser_1.default,
182
182
  copy: copy_1.default,
183
- 'chart-and-grid': calculated_column_1.default,
183
+ 'calculated-column': calculated_column_1.default,
184
184
  laptop: application_1.default,
185
185
  alert: alert_1.default,
186
186
  building: analysis_1.default,
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: 1719402039268 || Date.now(),
6
- VERSION: "18.1.6" || '--current-version--',
5
+ PUBLISH_TIMESTAMP: 1720099774827 || Date.now(),
6
+ VERSION: "18.1.7" || '--current-version--',
7
7
  };
@@ -362,6 +362,11 @@ export declare const ADAPTABLE_METAMODEL: {
362
362
  kind: string;
363
363
  desc: string;
364
364
  };
365
+ AdaptableColumnMenuItemName: {
366
+ name: string;
367
+ kind: string;
368
+ desc: string;
369
+ };
365
370
  AdaptableColumnPredicate: {
366
371
  name: string;
367
372
  kind: string;
@@ -423,6 +428,11 @@ export declare const ADAPTABLE_METAMODEL: {
423
428
  kind: string;
424
429
  desc: string;
425
430
  };
431
+ AdaptableContextMenuItemName: {
432
+ name: string;
433
+ kind: string;
434
+ desc: string;
435
+ };
426
436
  AdaptableCoordinate: {
427
437
  name: string;
428
438
  kind: string;
@@ -453,6 +463,11 @@ export declare const ADAPTABLE_METAMODEL: {
453
463
  kind: string;
454
464
  desc: string;
455
465
  };
466
+ AdaptableDateEditorParams: {
467
+ name: string;
468
+ kind: string;
469
+ desc: string;
470
+ };
456
471
  AdaptableElementIcon: {
457
472
  name: string;
458
473
  kind: string;
@@ -487,6 +502,11 @@ export declare const ADAPTABLE_METAMODEL: {
487
502
  isOpt?: undefined;
488
503
  })[];
489
504
  };
505
+ AdaptableFieldContext: {
506
+ name: string;
507
+ kind: string;
508
+ desc: string;
509
+ };
490
510
  AdaptableFlashingCell: {
491
511
  name: string;
492
512
  kind: string;
@@ -1100,6 +1120,110 @@ export declare const ADAPTABLE_METAMODEL: {
1100
1120
  defVal: string;
1101
1121
  })[];
1102
1122
  };
1123
+ AggregatedExpressionFilterRowContext: {
1124
+ name: string;
1125
+ kind: string;
1126
+ desc: string;
1127
+ props: ({
1128
+ name: string;
1129
+ kind: string;
1130
+ desc: string;
1131
+ isOpt?: undefined;
1132
+ ref?: undefined;
1133
+ } | {
1134
+ name: string;
1135
+ kind: string;
1136
+ desc: string;
1137
+ isOpt: boolean;
1138
+ ref?: undefined;
1139
+ } | {
1140
+ name: string;
1141
+ kind: string;
1142
+ desc: string;
1143
+ ref: string;
1144
+ isOpt?: undefined;
1145
+ })[];
1146
+ };
1147
+ AggregatedExpressionFunction: {
1148
+ name: string;
1149
+ kind: string;
1150
+ desc: string;
1151
+ props: ({
1152
+ name: string;
1153
+ kind: string;
1154
+ desc: string;
1155
+ isOpt: boolean;
1156
+ } | {
1157
+ name: string;
1158
+ kind: string;
1159
+ desc: string;
1160
+ isOpt?: undefined;
1161
+ })[];
1162
+ };
1163
+ AggregatedExpressionPrepareRowValueContext: {
1164
+ name: string;
1165
+ kind: string;
1166
+ desc: string;
1167
+ props: ({
1168
+ name: string;
1169
+ kind: string;
1170
+ desc: string;
1171
+ isOpt?: undefined;
1172
+ ref?: undefined;
1173
+ } | {
1174
+ name: string;
1175
+ kind: string;
1176
+ desc: string;
1177
+ isOpt: boolean;
1178
+ ref?: undefined;
1179
+ } | {
1180
+ name: string;
1181
+ kind: string;
1182
+ desc: string;
1183
+ ref: string;
1184
+ isOpt?: undefined;
1185
+ })[];
1186
+ };
1187
+ AggregatedExpressionProcessAggValueContext: {
1188
+ name: string;
1189
+ kind: string;
1190
+ desc: string;
1191
+ props: ({
1192
+ name: string;
1193
+ kind: string;
1194
+ desc: string;
1195
+ isOpt?: undefined;
1196
+ } | {
1197
+ name: string;
1198
+ kind: string;
1199
+ desc: string;
1200
+ isOpt: boolean;
1201
+ })[];
1202
+ };
1203
+ AggregatedExpressionReducerContext: {
1204
+ name: string;
1205
+ kind: string;
1206
+ desc: string;
1207
+ props: ({
1208
+ name: string;
1209
+ kind: string;
1210
+ desc: string;
1211
+ isOpt?: undefined;
1212
+ ref?: undefined;
1213
+ } | {
1214
+ name: string;
1215
+ kind: string;
1216
+ desc: string;
1217
+ isOpt: boolean;
1218
+ ref?: undefined;
1219
+ } | {
1220
+ name: string;
1221
+ kind: string;
1222
+ desc: string;
1223
+ ref: string;
1224
+ isOpt?: undefined;
1225
+ })[];
1226
+ };
1103
1227
  AggregationColumns: {
1104
1228
  name: string;
1105
1229
  kind: string;
@@ -1369,6 +1493,11 @@ export declare const ADAPTABLE_METAMODEL: {
1369
1493
  kind: string;
1370
1494
  desc: string;
1371
1495
  };
1496
+ AST: {
1497
+ name: string;
1498
+ kind: string;
1499
+ desc: string;
1500
+ };
1372
1501
  AutoGenerateTagsForLayoutsContext: {
1373
1502
  name: string;
1374
1503
  kind: string;
@@ -2017,6 +2146,11 @@ export declare const ADAPTABLE_METAMODEL: {
2017
2146
  ref: string;
2018
2147
  })[];
2019
2148
  };
2149
+ ColumnValuesFilterPredicate: {
2150
+ name: string;
2151
+ kind: string;
2152
+ desc: string;
2153
+ };
2020
2154
  CommentableCellContext: {
2021
2155
  name: string;
2022
2156
  kind: string;
@@ -3590,6 +3724,11 @@ export declare const ADAPTABLE_METAMODEL: {
3590
3724
  kind: string;
3591
3725
  desc: string;
3592
3726
  };
3727
+ GridFilterEditors: {
3728
+ name: string;
3729
+ kind: string;
3730
+ desc: string;
3731
+ };
3593
3732
  GridFilterOptions: {
3594
3733
  name: string;
3595
3734
  kind: string;
@@ -5271,6 +5410,11 @@ export declare const ADAPTABLE_METAMODEL: {
5271
5410
  kind: string;
5272
5411
  desc: string;
5273
5412
  };
5413
+ Token: {
5414
+ name: string;
5415
+ kind: string;
5416
+ desc: string;
5417
+ };
5274
5418
  ToolPanelButtonContext: {
5275
5419
  name: string;
5276
5420
  kind: string;
@@ -5589,6 +5733,11 @@ export declare const ADAPTABLE_METAMODEL: {
5589
5733
  defVal: string;
5590
5734
  })[];
5591
5735
  };
5736
+ VueFrameworkComponent: {
5737
+ name: string;
5738
+ kind: string;
5739
+ desc: string;
5740
+ };
5592
5741
  WeightedAverageAggregation: {
5593
5742
  name: string;
5594
5743
  kind: string;