@adaptabletools/adaptable 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.esm.tsbuildinfo +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
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
  /**
@@ -342,7 +342,7 @@ export class GridApiImpl extends ApiBase {
342
342
  this.adaptable.expandAllRowGroups();
343
343
  }
344
344
  collapseAllRowGroups() {
345
- this.adaptable.closeAllRowGroups();
345
+ this.adaptable.collapseAllRowGroups();
346
346
  }
347
347
  getExpandRowGroupsKeys() {
348
348
  return this.adaptable.getExpandRowGroupsKeys();
@@ -1,14 +1,10 @@
1
1
  import { ApiBase } from '../Implementation/ApiBase';
2
2
  export class CommentsInternalApi extends ApiBase {
3
3
  areCommentsSupported() {
4
- var _a;
5
4
  const currentLayout = this.getLayoutApi().getCurrentLayout();
6
5
  if (currentLayout.EnablePivot) {
7
6
  return false;
8
7
  }
9
- if ((_a = currentLayout === null || currentLayout === void 0 ? void 0 : currentLayout.RowGroupedColumns) === null || _a === void 0 ? void 0 : _a.length) {
10
- return false;
11
- }
12
8
  return true;
13
9
  }
14
10
  }
@@ -1,14 +1,10 @@
1
1
  import { ApiBase } from '../Implementation/ApiBase';
2
2
  export class NoteInternalApi extends ApiBase {
3
3
  areNotesSupported() {
4
- var _a;
5
4
  const currentLayout = this.getLayoutApi().getCurrentLayout();
6
5
  if (currentLayout.EnablePivot) {
7
6
  return false;
8
7
  }
9
- if ((_a = currentLayout === null || currentLayout === void 0 ? void 0 : currentLayout.RowGroupedColumns) === null || _a === void 0 ? void 0 : _a.length) {
10
- return false;
11
- }
12
8
  return true;
13
9
  }
14
10
  }
@@ -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
@@ -9,7 +9,7 @@ import { getCalculatedColumnSettingsTags } from '../View/CalculatedColumn/Utilit
9
9
  import Helper from '../Utilities/Helpers/Helper';
10
10
  export class CalculatedColumnModule extends AdaptableModuleBase {
11
11
  constructor(api) {
12
- super(ModuleConstants.CalculatedColumnModuleId, ModuleConstants.CalculatedColumnFriendlyName, 'chart-and-grid', 'CalculatedColumnPopup', 'Create bespoke columns whose cell value is derived dynamically from an Expression', api);
12
+ super(ModuleConstants.CalculatedColumnModuleId, ModuleConstants.CalculatedColumnFriendlyName, 'calculated-column', 'CalculatedColumnPopup', 'Create bespoke columns whose cell value is derived dynamically from an Expression', api);
13
13
  }
14
14
  onAdaptableReady() {
15
15
  this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
@@ -71,17 +71,19 @@ export class ColumnFilterModule extends AdaptableModuleBase {
71
71
  this.api.optionsApi.getColumnFilterOptions().useAdaptableColumnFiltering) {
72
72
  const existingColumnFilter = this.getExistingColumnFilter(menuContext.adaptableColumn);
73
73
  if (!existingColumnFilter) {
74
- let isMultiple = menuContext.selectedCellInfo.gridCells.length > 1;
75
- let clickFunction = isMultiple
76
- ? () => {
77
- this.api.columnFilterApi.internalApi.createValuesColumnFilterForCells(menuContext.selectedCellInfo.gridCells);
78
- }
79
- : () => {
80
- this.api.columnFilterApi.internalApi.createEqualityColumnFilterForCell(menuContext.selectedCellInfo.gridCells[0]);
81
- };
82
- return [
83
- this.createMenuItemClickFunction('column-filter-on-cell-value', isMultiple ? 'Filter on Cell Values' : 'Filter on Cell Value', this.moduleInfo.Glyph, clickFunction),
84
- ];
74
+ if (!menuContext.isRowGroupColumn && !menuContext.isGroupedNode) {
75
+ let isMultiple = menuContext.selectedCellInfo.gridCells.length > 1;
76
+ let clickFunction = isMultiple
77
+ ? () => {
78
+ this.api.columnFilterApi.internalApi.createValuesColumnFilterForCells(menuContext.selectedCellInfo.gridCells);
79
+ }
80
+ : () => {
81
+ this.api.columnFilterApi.internalApi.createEqualityColumnFilterForCell(menuContext.selectedCellInfo.gridCells[0]);
82
+ };
83
+ return [
84
+ this.createMenuItemClickFunction('column-filter-on-cell-value', isMultiple ? 'Filter on Cell Values' : 'Filter on Cell Value', this.moduleInfo.Glyph, clickFunction),
85
+ ];
86
+ }
85
87
  }
86
88
  else {
87
89
  return [
@@ -32,6 +32,9 @@ export class CommentModule extends AdaptableModuleBase {
32
32
  if (!this.api.commentApi.internalApi.areCommentsSupported()) {
33
33
  return;
34
34
  }
35
+ if (menuContext.isRowGroupColumn || menuContext.isGroupedNode) {
36
+ return;
37
+ }
35
38
  const items = [];
36
39
  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'
37
40
  ? (_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 }, createBaseContext(this.api)))
@@ -18,6 +18,9 @@ export class NoteModule extends AdaptableModuleBase {
18
18
  if (!this.api.noteApi.internalApi.areNotesSupported()) {
19
19
  return;
20
20
  }
21
+ if (menuContext.isRowGroupColumn || menuContext.isGroupedNode) {
22
+ return;
23
+ }
21
24
  const isReadOnly = this.adaptable.api.entitlementApi.getEntitlementAccessLevelForModule(this.moduleInfo.ModuleName) === 'ReadOnly';
22
25
  if (isReadOnly) {
23
26
  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;
@@ -2037,8 +2037,10 @@ export class AdaptableAgGrid {
2037
2037
  let firstRowNode = this.getFirstDisplayedRowNode();
2038
2038
  if (firstRowNode === null || firstRowNode === void 0 ? void 0 : firstRowNode.group) {
2039
2039
  // all groups may be closed so it is safer to get first leaf node
2040
- // all groups must have at least one leafe node
2041
- firstRowNode = firstRowNode.allLeafChildren[0];
2040
+ // all groups should have at least one leafe node (though not necessarily if using SSRM)
2041
+ if (ArrayExtensions.IsNotNullOrEmpty(firstRowNode.allLeafChildren)) {
2042
+ firstRowNode = firstRowNode.allLeafChildren[0];
2043
+ }
2042
2044
  }
2043
2045
  return firstRowNode;
2044
2046
  }
@@ -2828,20 +2830,10 @@ export class AdaptableAgGrid {
2828
2830
  .removeRowGroupColumns(this.agGridAdapter.getAgGridApi().getRowGroupColumns());
2829
2831
  }
2830
2832
  expandAllRowGroups() {
2831
- this.agGridAdapter.getAgGridApi().forEachNode((node) => {
2832
- if (node.group) {
2833
- node.expanded = true;
2834
- }
2835
- });
2836
- this.agGridAdapter.getAgGridApi().onGroupExpandedOrCollapsed();
2833
+ this.agGridAdapter.getAgGridApi().expandAll();
2837
2834
  }
2838
- closeAllRowGroups() {
2839
- this.agGridAdapter.getAgGridApi().forEachNode((node) => {
2840
- if (node.group) {
2841
- node.expanded = false;
2842
- }
2843
- });
2844
- this.agGridAdapter.getAgGridApi().onGroupExpandedOrCollapsed();
2835
+ collapseAllRowGroups() {
2836
+ this.agGridAdapter.getAgGridApi().collapseAll();
2845
2837
  }
2846
2838
  expandRowGroupsForValues(columnValues) {
2847
2839
  if (ArrayExtensions.IsNotNullOrEmpty(columnValues)) {
@@ -3759,6 +3751,7 @@ export class AdaptableAgGrid {
3759
3751
  // same grid column state as a previous,
3760
3752
  // so no need to update, as the layout has already been updated
3761
3753
  // for this grid column state
3754
+ console.log('same state as before');
3762
3755
  return;
3763
3756
  }
3764
3757
  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;
@@ -69,6 +69,11 @@ export const Select = function (props) {
69
69
  return (React.createElement(components.ValueContainer, Object.assign({}, inputProps, { innerProps: Object.assign({ 'data-name': 'value-container' }, inputProps.innerProps) })));
70
70
  };
71
71
  }, []);
72
+ const MenuComponent = React.useMemo(() => {
73
+ return (inputProps) => {
74
+ return (React.createElement(components.Menu, Object.assign({}, inputProps, { innerProps: Object.assign({ 'data-name': 'menu-container' }, inputProps.innerProps) })));
75
+ };
76
+ }, []);
72
77
  const SelectComponent = props.isCreatable ? CreatableSelect : ReactSelect;
73
78
  const ClearIndicator = React.useMemo(() => {
74
79
  return (clearIndicatorProps) => {
@@ -84,16 +89,17 @@ export const Select = function (props) {
84
89
  }, []);
85
90
  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',
86
91
  // This needed so the menu is not clipped by overflow: hidden
87
- menuPortalTarget: document.body, isClearable: props.isClearable, onChange: (option) => {
92
+ menuPortalTarget: props.menuPortalTarget === undefined ? document.body : null, isClearable: props.isClearable, onChange: (option) => {
88
93
  if (props.isMulti) {
89
94
  props.onChange(option.map((x) => x === null || x === void 0 ? void 0 : x.value));
90
95
  }
91
96
  else {
92
97
  props.onChange(option === null || option === void 0 ? void 0 : option.value);
93
98
  }
94
- }, placeholder: props.placeholder, components: {
99
+ }, placeholder: props.placeholder, createOptionPosition: 'first', components: {
95
100
  SelectContainer,
96
101
  ValueContainer,
102
+ Menu: MenuComponent,
97
103
  SingleValue: (singleValueProps) => {
98
104
  return (React.createElement(components.SingleValue, Object.assign({}, singleValueProps), props.renderSingleValue
99
105
  ? props.renderSingleValue(selectedOption)
@@ -177,7 +177,7 @@ export const allIcons = {
177
177
  cells: CellSummary,
178
178
  columns: ColumnChooser,
179
179
  copy: Copy,
180
- 'chart-and-grid': CalculatedColumn,
180
+ 'calculated-column': CalculatedColumn,
181
181
  laptop: Application,
182
182
  alert: Alert,
183
183
  building: Analysis,
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: 1719402008840 || Date.now(),
4
- VERSION: "18.1.6" || '--current-version--',
3
+ PUBLISH_TIMESTAMP: 1720099744173 || Date.now(),
4
+ VERSION: "18.1.7" || '--current-version--',
5
5
  };
@@ -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;