@adaptabletools/adaptable-cjs 20.0.0 → 20.0.2-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 (59) hide show
  1. package/README.md +1 -1
  2. package/agGrid.d.ts +1 -0
  3. package/agGrid.js +2 -1
  4. package/base.css +50 -33
  5. package/base.css.map +1 -1
  6. package/index.css +47 -32
  7. package/index.css.map +1 -1
  8. package/package.json +1 -1
  9. package/src/AdaptableOptions/ColumnMenuOptions.d.ts +3 -0
  10. package/src/AdaptableOptions/ContextMenuOptions.d.ts +9 -0
  11. package/src/AdaptableOptions/ExportOptions.d.ts +6 -0
  12. package/src/AdaptableOptions/FilterOptions.d.ts +5 -5
  13. package/src/AdaptableOptions/RowFormOptions.d.ts +7 -1
  14. package/src/AdaptableState/Common/AdaptableColumn.d.ts +3 -0
  15. package/src/AdaptableState/Common/AdaptableObject.d.ts +6 -0
  16. package/src/AdaptableState/Common/AggregationColumns.d.ts +6 -0
  17. package/src/AdaptableState/Common/Menu.d.ts +6 -0
  18. package/src/AdaptableState/ExportState.d.ts +9 -0
  19. package/src/AdaptableState/FlashingCellState.d.ts +5 -2
  20. package/src/AdaptableState/InitialState.d.ts +4 -3
  21. package/src/AdaptableState/LayoutState.d.ts +2 -2
  22. package/src/AdaptableState/ThemeState.d.ts +14 -2
  23. package/src/Api/ColumnFilterApi.d.ts +1 -1
  24. package/src/Api/StateApi.d.ts +2 -2
  25. package/src/Redux/ActionsReducers/PluginsRedux.d.ts +0 -93
  26. package/src/Redux/ActionsReducers/PluginsRedux.js +0 -93
  27. package/src/Redux/ActionsReducers/ScheduleRedux.d.ts +0 -42
  28. package/src/Redux/ActionsReducers/ScheduleRedux.js +0 -42
  29. package/src/Utilities/Defaults/DefaultSettingsPanel.js +1 -1
  30. package/src/Utilities/Services/ThemeService.js +3 -3
  31. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +1 -2
  32. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +11 -9
  33. package/src/View/ColumnInfo/ColumnInfo.js +12 -10
  34. package/src/View/Comments/CommentsPopup.js +11 -9
  35. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +7 -0
  36. package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -1
  37. package/src/View/Layout/PivotDetailsPopoup.js +6 -5
  38. package/src/View/Layout/Wizard/sections/ColumnsSection.js +6 -5
  39. package/src/View/Note/NotePopup.js +12 -10
  40. package/src/View/StateManagement/StateManagementViewPanel.d.ts +2 -2
  41. package/src/View/Theme/ThemeEditor.js +9 -7
  42. package/src/View/Theme/VariantSelector.d.ts +1 -0
  43. package/src/View/Theme/VariantSelector.js +6 -3
  44. package/src/agGrid/AdaptableAgGrid.js +6 -2
  45. package/src/agGrid/AgGridAdapter.js +5 -0
  46. package/src/agGrid/AgGridColumnAdapter.js +0 -7
  47. package/src/agGrid/AgGridThemeAdapter.js +2 -2
  48. package/src/agGrid/FloatingFilterWrapper.js +1 -0
  49. package/src/agGrid/index.d.ts +2 -0
  50. package/src/agGrid/index.js +3 -2
  51. package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
  52. package/src/components/Select/Select.js +2 -3
  53. package/src/env.js +2 -2
  54. package/src/layout-manager/src/LayoutManagerModel.d.ts +1 -1
  55. package/src/metamodel/adaptable.metamodel.d.ts +104 -2
  56. package/src/metamodel/adaptable.metamodel.js +1 -1
  57. package/src/migration/AdaptableUpgradeHelper.d.ts +3 -3
  58. package/src/types.d.ts +1 -0
  59. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -27,6 +27,11 @@ const AdaptableFormControlTextClear_1 = require("../../../Components/Forms/Adapt
27
27
  const sortColumnIdsByOrder_1 = require("../../../../layout-manager/src/sortColumnIdsByOrder");
28
28
  const HelpBlock_1 = tslib_1.__importDefault(require("../../../../components/HelpBlock"));
29
29
  const PropertyOrderText = (props) => (React.createElement(rebass_1.Text, { fontWeight: 600, fontSize: 2 }, props.children));
30
+ const columnTypes = {
31
+ default: {
32
+ defaultFlex: 1,
33
+ },
34
+ };
30
35
  const ColumnsSectionSummary = () => {
31
36
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
32
37
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
@@ -128,11 +133,7 @@ const ColumnsSectionSummary = () => {
128
133
  },
129
134
  };
130
135
  return (React.createElement(InfiniteTable_1.DataSource, { data: data, primaryKey: "columnId" },
131
- React.createElement(InfiniteTable_1.InfiniteTable, { columnTypes: {
132
- default: {
133
- defaultFlex: 1,
134
- },
135
- }, rowHeight: rowHeight, domProps: tableDOMProps, columns: columns })));
136
+ React.createElement(InfiniteTable_1.InfiniteTable, { columnTypes: columnTypes, rowHeight: rowHeight, columnHeaderHeight: headerHeight, domProps: tableDOMProps, columns: columns })));
136
137
  };
137
138
  exports.ColumnsSectionSummary = ColumnsSectionSummary;
138
139
  const ColumnRow = (props) => {
@@ -18,6 +18,17 @@ const tableDOMProps = {
18
18
  // minHeight: 600,
19
19
  },
20
20
  };
21
+ const columnTypes = {
22
+ default: {
23
+ align: 'start',
24
+ defaultFlex: 1,
25
+ defaultSortable: false,
26
+ style: { fontSize: 'var(--ab-font-size-3)' },
27
+ },
28
+ };
29
+ const headerOptions = {
30
+ alwaysReserveSpaceForSortIcon: false,
31
+ };
21
32
  const NotePopup = (props) => {
22
33
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
23
34
  const primaryKeyHeader = adaptable.api.columnApi.getPrimaryKeyColumn()
@@ -80,15 +91,6 @@ const NotePopup = (props) => {
80
91
  }
81
92
  }
82
93
  } },
83
- React.createElement(InfiniteTable_1.InfiniteTable, { columnTypes: {
84
- default: {
85
- align: 'start',
86
- defaultFlex: 1,
87
- defaultSortable: false,
88
- style: { fontSize: 'var(--ab-font-size-3)' },
89
- },
90
- }, headerOptions: {
91
- alwaysReserveSpaceForSortIcon: false,
92
- }, rowHeight: 40, columnHeaderHeight: 65, domProps: tableDOMProps, columns: columnsMap }))));
94
+ React.createElement(InfiniteTable_1.InfiniteTable, { columnTypes: columnTypes, headerOptions: headerOptions, domProps: tableDOMProps, columns: columnsMap }))));
93
95
  };
94
96
  exports.NotePopup = NotePopup;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
2
  import { ViewPanelProps } from '../Components/SharedProps/ViewPanelProps';
3
- export interface ThemeViewPanelComponentProps extends ViewPanelProps {
3
+ export interface StateManagementViewPanelComponentProps extends ViewPanelProps {
4
4
  }
5
- export declare const StateManagementViewPanel: React.FunctionComponent<ThemeViewPanelComponentProps>;
5
+ export declare const StateManagementViewPanel: React.FunctionComponent<StateManagementViewPanelComponentProps>;
@@ -12,6 +12,7 @@ const rebass_1 = require("rebass");
12
12
  const Panel_1 = tslib_1.__importDefault(require("../../components/Panel"));
13
13
  const ThemeField_1 = require("./ThemeField");
14
14
  const VariantSelector_1 = require("./VariantSelector");
15
+ const AdaptableHelper_1 = require("../../Utilities/Helpers/AdaptableHelper");
15
16
  const fields = [
16
17
  {
17
18
  name: 'Primary Color',
@@ -77,10 +78,11 @@ const fields = [
77
78
  const ThemeEditor = (props) => {
78
79
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
79
80
  const allThemes = adaptable.api.themeApi.getUserThemes();
80
- const disabled = props.accessLevel === 'ReadOnly';
81
81
  const [currentThemeObject, setCurrentThemeObject] = React.useState(() => {
82
82
  return adaptable.api.themeApi.getCurrentThemeObject();
83
83
  });
84
+ const currentThemeAccessLevel = (0, AdaptableHelper_1.getAccessLevelForObject)(currentThemeObject, props.accessLevel);
85
+ const currentThemeIsReadOnly = currentThemeAccessLevel !== 'Full';
84
86
  // THEME variables
85
87
  const themeVariables = currentThemeObject?.CSSVariables;
86
88
  const valuesFromTheme = fields.reduce((acc, field) => {
@@ -142,22 +144,22 @@ const ThemeEditor = (props) => {
142
144
  const saveNameDisabled = !nameHasChanged || nameIsNotUnique || currentThemeObject.Name === '';
143
145
  return (React.createElement(Panel_1.default, { header: React.createElement(rebass_1.Flex, { alignItems: "center", width: "100%" },
144
146
  React.createElement(rebass_1.Box, { flex: 1 }, " Edit Custom Theme"),
145
- React.createElement(SimpleButton_1.default, { "data-name": "delete", disabled: props.accessLevel !== 'Full', icon: "delete", onClick: handleDeleteTheme, variant: "text" })) },
147
+ React.createElement(SimpleButton_1.default, { "data-name": "delete", accessLevel: currentThemeAccessLevel, icon: "delete", onClick: handleDeleteTheme, variant: "text" })) },
146
148
  React.createElement(FormLayout_1.default, null,
147
149
  React.createElement(FormLayout_1.FormRow, { label: "Theme Name" },
148
- React.createElement(AdaptableInput_1.default, { mr: 2, onChange: (event) => setCurrentThemeObject({
150
+ React.createElement(AdaptableInput_1.default, { disabled: currentThemeIsReadOnly, mr: 2, onChange: (event) => setCurrentThemeObject({
149
151
  ...currentThemeObject,
150
152
  Name: event.target.value.replace(/ /g, '-'),
151
153
  }), value: currentThemeObject.Name ?? '' }),
152
- React.createElement(SimpleButton_1.default, { onClick: handleSaveName, disabled: saveNameDisabled, icon: "save" }),
154
+ React.createElement(SimpleButton_1.default, { onClick: handleSaveName, disabled: saveNameDisabled || currentThemeIsReadOnly, icon: "save", hidden: currentThemeIsReadOnly }),
153
155
  React.createElement(rebass_1.Text, { fontSize: 2, marginTop: 1 }, "The name cannot contain spaces."),
154
156
  nameIsNotUnique && (React.createElement(rebass_1.Text, { fontSize: 2, color: "var(--ab-color-error)" }, "Name must be unique."))),
155
157
  React.createElement(FormLayout_1.FormRow, { label: "Description" },
156
- React.createElement(AdaptableInput_1.default, { onChange: (event) => handleDescriptionChange('Description', event.target.value), value: currentThemeObject?.Description ?? '' })),
158
+ React.createElement(AdaptableInput_1.default, { disabled: currentThemeIsReadOnly, onChange: (event) => handleDescriptionChange('Description', event.target.value), value: currentThemeObject?.Description ?? '' })),
157
159
  React.createElement(FormLayout_1.FormRow, { label: "Variant" },
158
- React.createElement(VariantSelector_1.VariantSelector, { onChange: handleVariantChange, theme: currentThemeObject })),
160
+ React.createElement(VariantSelector_1.VariantSelector, { onChange: handleVariantChange, theme: currentThemeObject, disabled: currentThemeIsReadOnly })),
159
161
  fields.map((field) => {
160
- return (React.createElement(ThemeField_1.Field, { disabled: disabled, key: field.name, type: field.type, name: field.name, value: valuesFromTheme[field.variable], variable: field.variable, onChange: (val) => {
162
+ return (React.createElement(ThemeField_1.Field, { disabled: currentThemeIsReadOnly, key: field.name, type: field.type, name: field.name, value: valuesFromTheme[field.variable], variable: field.variable, onChange: (val) => {
161
163
  // needs a fresh copy
162
164
  const currentThemeObject = adaptable.api.themeApi.getCurrentThemeObject();
163
165
  let newTheme = null;
@@ -3,5 +3,6 @@ import { AdaptableTheme } from '../../types';
3
3
  export interface VariantSelectorProps {
4
4
  theme: AdaptableTheme;
5
5
  onChange: (variant: AdaptableTheme['Variant'] | null) => void;
6
+ disabled?: boolean;
6
7
  }
7
8
  export declare const VariantSelector: React.FunctionComponent<VariantSelectorProps>;
@@ -6,9 +6,12 @@ const React = tslib_1.__importStar(require("react"));
6
6
  const DropdownButton_1 = tslib_1.__importDefault(require("../../components/DropdownButton"));
7
7
  const SimpleButton_1 = tslib_1.__importDefault(require("../../components/SimpleButton"));
8
8
  const AdaptableContext_1 = require("../AdaptableContext");
9
+ const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
9
10
  const VariantSelector = (props) => {
10
11
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
11
- const systemTemes = adaptable.api.themeApi.getSystemThemes();
12
+ const systemTemes = adaptable.api.themeApi
13
+ .getSystemThemes()
14
+ .filter((theme) => theme.Name !== GeneralConstants_1.OS_THEME);
12
15
  const options = systemTemes.map((theme) => ({
13
16
  label: theme.Description,
14
17
  value: theme.Name,
@@ -18,7 +21,7 @@ const VariantSelector = (props) => {
18
21
  ? options.find((theme) => theme.value === props.theme.Variant)?.label
19
22
  : 'Select a theme';
20
23
  return (React.createElement(React.Fragment, null,
21
- React.createElement(DropdownButton_1.default, { mr: 2, columns: ['label'], items: options }, label),
22
- React.createElement(SimpleButton_1.default, { onClick: () => props.onChange(null), disabled: !props.theme.Variant, icon: "delete" })));
24
+ React.createElement(DropdownButton_1.default, { mr: 2, columns: ['label'], items: options, disabled: props.disabled }, label),
25
+ React.createElement(SimpleButton_1.default, { onClick: () => props.onChange(null), disabled: !props.theme.Variant || props.disabled, hidden: props.disabled, icon: "delete" })));
23
26
  };
24
27
  exports.VariantSelector = VariantSelector;
@@ -323,11 +323,13 @@ class AdaptableAgGrid {
323
323
  */
324
324
  postLoadHook: (state) => {
325
325
  if (this.adaptableOptions.stateOptions.autoMigrateState) {
326
- state = AdaptableUpgradeHelper_1.AdaptableUpgradeHelper.migrateAdaptableState(state, {
326
+ this.api.logError;
327
+ const config = {
327
328
  // version 16 actually includes all versions up until 16
328
329
  fromVersion: 16,
329
330
  logger: this.logger,
330
- });
331
+ };
332
+ state = AdaptableUpgradeHelper_1.AdaptableUpgradeHelper.migrateAdaptableState(state, config);
331
333
  }
332
334
  state = this.normalizeAdaptableState(state, config.gridOptions);
333
335
  return state;
@@ -2639,6 +2641,7 @@ You need to define at least one Layout!`);
2639
2641
  themesToRemove.forEach((theme) => {
2640
2642
  el.classList.remove(`infinite-theme-mode--${theme.Name}`);
2641
2643
  });
2644
+ el.classList.remove(`infinite-theme-name--default`);
2642
2645
  // VARIANT
2643
2646
  let variantTheme = '';
2644
2647
  if (!isSystemTheme && themeObject.Variant) {
@@ -2658,6 +2661,7 @@ You need to define at least one Layout!`);
2658
2661
  else if (variantTheme) {
2659
2662
  el.classList.add(`infinite-theme-mode--${variantTheme}`);
2660
2663
  }
2664
+ el.classList.add(`infinite-theme-name--default`);
2661
2665
  // Update AG THEME
2662
2666
  this.agGridThemeAdapter.applyAgGridThemeOnAdaptableThemeChange(newTheme, variantTheme, container, themesToRemove);
2663
2667
  // MAC LIKE SCROLLBARS
@@ -452,6 +452,11 @@ class AgGridAdapter {
452
452
  this.logger.warn(`Column is undefined, returning 'text' for Type`);
453
453
  return 'text';
454
454
  }
455
+ const colDefType = [].concat(agColumn.getColDef()?.type || []).filter(Boolean);
456
+ const skippedSpecialCols = ['actionColumn', 'fdc3Column'];
457
+ if (skippedSpecialCols.some((specialColType) => colDefType.includes(specialColType))) {
458
+ return 'unknown';
459
+ }
455
460
  let dataType = 'unknown';
456
461
  // get the column type if already in store (and not unknown)
457
462
  const existingColumn = this.adaptableApi.columnApi.getColumnWithColumnId(agColumn.getId(), logWarning);
@@ -243,13 +243,6 @@ class AgGridColumnAdapter {
243
243
  return cellDataTypeEditor;
244
244
  }
245
245
  });
246
- this.setColDefProperty(col, 'cellEditorPopup', () => {
247
- // as specified in https://www.ag-grid.com/react-data-grid/provided-cell-editors/#rich-select-cell-editor
248
- // agRichSelectCellEditor should always set cellEditorPopup=true. Otherwise the editor will be clipped to the cell contents
249
- if (shouldShowSelectCellEditor && hasRichSelectCellEditor) {
250
- return true;
251
- }
252
- });
253
246
  this.setColDefProperty(col, 'cellEditorParams', (params) => {
254
247
  if (shouldShowSelectCellEditor) {
255
248
  return (params) => {
@@ -27,10 +27,10 @@ class AgGridThemeAdapter {
27
27
  const isSystemTheme = this.api.themeApi.internalApi.isSystemTheme(themeName);
28
28
  if (adaptableTheme && (isSystemTheme || variantTheme)) {
29
29
  if ((variantTheme || themeName) === GeneralConstants_1.LIGHT_THEME) {
30
- document.body.dataset.agThemeMode = 'light';
30
+ document.body.dataset.agThemeMode = adaptableTheme.AgThemeMode ?? 'light';
31
31
  }
32
32
  if ((variantTheme || themeName) === GeneralConstants_1.DARK_THEME) {
33
- document.body.dataset.agThemeMode = 'dark';
33
+ document.body.dataset.agThemeMode = adaptableTheme.AgThemeMode ?? 'dark';
34
34
  }
35
35
  }
36
36
  }
@@ -14,6 +14,7 @@ const filterContainerStyle = {
14
14
  display: 'flex',
15
15
  alignItems: 'stretch',
16
16
  position: 'relative',
17
+ flex: '1 1 auto',
17
18
  };
18
19
  const FloatingFilterWrapperFactory = (adaptable) => {
19
20
  const adaptableApi = adaptable.api;
@@ -1,4 +1,6 @@
1
1
  import { Adaptable, AdaptableNoCodeWizard as ABWizard } from './Adaptable';
2
+ import { AdaptableLogger as ABLogger } from './AdaptableLogger';
2
3
  export { default as AdaptableWizardView } from '../View/AdaptableWizardView';
3
4
  export default Adaptable;
4
5
  export declare const AdaptableNoCodeWizard: typeof ABWizard;
6
+ export declare const AdaptableLogger: typeof ABLogger;
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AdaptableNoCodeWizard = exports.AdaptableWizardView = void 0;
6
+ exports.AdaptableLogger = exports.AdaptableNoCodeWizard = exports.AdaptableWizardView = void 0;
7
7
  const Adaptable_1 = require("./Adaptable");
8
+ const AdaptableLogger_1 = require("./AdaptableLogger");
8
9
  var AdaptableWizardView_1 = require("../View/AdaptableWizardView");
9
10
  Object.defineProperty(exports, "AdaptableWizardView", { enumerable: true, get: function () { return __importDefault(AdaptableWizardView_1).default; } });
10
11
  exports.default = Adaptable_1.Adaptable;
11
12
  exports.AdaptableNoCodeWizard = Adaptable_1.AdaptableNoCodeWizard;
12
- //export const init = initFn;
13
+ exports.AdaptableLogger = AdaptableLogger_1.AdaptableLogger;
@@ -122,7 +122,7 @@ const FunctionsDropdown = ({ expressionFunctions, baseClassName }) => {
122
122
  }, onClick: handleFunctionCategoryChange(option.value), checked: currentFunctionCategory === option.value }, option.label));
123
123
  })),
124
124
  React.createElement(rebass_1.Flex, null,
125
- React.createElement(rebass_1.Flex, { className: `${baseClassName}__dropdown-functions-list`, "data-name": "expression-dropdown-fuctions-list", flexDirection: "column", p: 2, maxHeight: '50vh' }, orderedGroupNames
125
+ React.createElement(rebass_1.Flex, { className: `${baseClassName}__dropdown-functions-list`, "data-name": "expression-dropdown-functions-list", flexDirection: "column", p: 2, maxHeight: '50vh' }, orderedGroupNames
126
126
  .filter((groupName) => !!groupedFunctions[groupName])
127
127
  .map((groupName) => {
128
128
  const functionsInGroup = Object.keys(groupedFunctions[groupName]);
@@ -11,7 +11,6 @@ const rebass_1 = require("rebass");
11
11
  const infinite_react_1 = require("@infinite-table/infinite-react");
12
12
  const react_1 = require("react");
13
13
  const join_1 = tslib_1.__importDefault(require("../utils/join"));
14
- const ROW_HEIGHT = 40;
15
14
  const checkboxStyle = {
16
15
  position: 'relative',
17
16
  top: 1,
@@ -334,7 +333,7 @@ const Select = function (props) {
334
333
  data: filteredOptions, primaryKey: "value", selectionMode: isMulti ? 'multi-row' : 'single-row',
335
334
  // @ts-ignore
336
335
  onRowSelectionChange: isLoading ? null : isMulti ? onRowSelectionChange : onSingleRowSelectionChange, rowSelection: rowSelection, isRowDisabled: isRowDisabled },
337
- React.createElement(infinite_react_1.InfiniteTable, { header: isMulti && showHeaderSelectionCheckbox ? true : false, rowClassName: rowClassName, showZebraRows: false, onCellClick: isLoading ? null : onCellClick, keyboardNavigation: isLoading ? false : 'row', activeRowIndex: focusedOptionIndex, keyboardSelection: true, rowHeight: ROW_HEIGHT, columns: isMulti ? INFINITE_COLUMNS_WITH_CHECKBOX : INFINITE_COLUMNS_WITH_RADIO, domProps: INFINITE_DOM_PROPS })));
336
+ React.createElement(infinite_react_1.InfiniteTable, { header: isMulti && showHeaderSelectionCheckbox ? true : false, rowClassName: rowClassName, showZebraRows: false, rowHeight: '--ab-grid-row-height', onCellClick: isLoading ? null : onCellClick, keyboardNavigation: isLoading ? false : 'row', activeRowIndex: focusedOptionIndex, keyboardSelection: true, columns: isMulti ? INFINITE_COLUMNS_WITH_CHECKBOX : INFINITE_COLUMNS_WITH_RADIO, domProps: INFINITE_DOM_PROPS })));
338
337
  };
339
338
  }, [isMulti, showHeaderSelectionCheckbox]);
340
339
  const DropdownIndicator = React.useMemo(() => {
@@ -421,7 +420,7 @@ const Select = function (props) {
421
420
  zIndex: 999999,
422
421
  boxShadow: 'var(--ab-cmp-select-menu__box-shadow)',
423
422
  minWidth: `var(--ab-cmp-select-menu__min-width)`,
424
- '--ab-cmp-select-menu__min-height': `min(${((props.options || []).length + (showHeaderSelectionCheckbox ? 1 : 0)) * ROW_HEIGHT}px, 20rem)`,
423
+ '--ab-cmp-select-menu__min-height': `min(${(props.options || []).length + (showHeaderSelectionCheckbox ? 1 : 0)} * var(--ab-grid-row-height), 20rem)`,
425
424
  ...commonStyles(state),
426
425
  ...props.menuStyle,
427
426
  };
package/src/env.js CHANGED
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
4
  NEXT_PUBLIC_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: 1742808214514 || Date.now(),
6
- VERSION: "20.0.0" || '--current-version--',
5
+ PUBLISH_TIMESTAMP: 1743597219451 || Date.now(),
6
+ VERSION: "20.0.2-canary.0" || '--current-version--',
7
7
  };
@@ -36,7 +36,7 @@ export interface BaseLayoutModel {
36
36
  Values: any[][];
37
37
  };
38
38
  /**
39
- * Whether to include the aggFunc name in the column header: e.g. 'sum(Bank Balance)' will just be 'Bank Balance'
39
+ * Hides aggFunc name in the column header: e.g. 'sum(Bank Balance)' will just be 'Bank Balance'
40
40
  */
41
41
  SuppressAggFuncInHeader?: boolean;
42
42
  /**
@@ -278,6 +278,11 @@ export declare const ADAPTABLE_METAMODEL: {
278
278
  desc: string;
279
279
  }[];
280
280
  };
281
+ AdaptableColumnDataType: {
282
+ name: string;
283
+ kind: string;
284
+ desc: string;
285
+ };
281
286
  AdaptableColumnGroup: {
282
287
  name: string;
283
288
  kind: string;
@@ -618,13 +623,13 @@ export declare const ADAPTABLE_METAMODEL: {
618
623
  kind: string;
619
624
  desc: string;
620
625
  isOpt: boolean;
621
- ref?: undefined;
626
+ ref: string;
622
627
  } | {
623
628
  name: string;
624
629
  kind: string;
625
630
  desc: string;
626
631
  isOpt: boolean;
627
- ref: string;
632
+ ref?: undefined;
628
633
  })[];
629
634
  };
630
635
  AdaptableObjectLookupCriteria: {
@@ -1047,6 +1052,11 @@ export declare const ADAPTABLE_METAMODEL: {
1047
1052
  defVal: string;
1048
1053
  })[];
1049
1054
  };
1055
+ AdaptableVersion: {
1056
+ name: string;
1057
+ kind: string;
1058
+ desc: string;
1059
+ };
1050
1060
  AggregatedExpressionFilterRowContext: {
1051
1061
  name: string;
1052
1062
  kind: string;
@@ -2323,6 +2333,16 @@ export declare const ADAPTABLE_METAMODEL: {
2323
2333
  ref: string;
2324
2334
  })[];
2325
2335
  };
2336
+ CustomGroupColumnMenuItem: {
2337
+ name: string;
2338
+ kind: string;
2339
+ desc: string;
2340
+ };
2341
+ CustomGroupContextMenuItem: {
2342
+ name: string;
2343
+ kind: string;
2344
+ desc: string;
2345
+ };
2326
2346
  CustomIcon: {
2327
2347
  name: string;
2328
2348
  kind: string;
@@ -2863,6 +2883,16 @@ export declare const ADAPTABLE_METAMODEL: {
2863
2883
  kind: string;
2864
2884
  desc: string;
2865
2885
  };
2886
+ DefaultAdaptableMenuStructure: {
2887
+ name: string;
2888
+ kind: string;
2889
+ desc: string;
2890
+ };
2891
+ DefaultAgGridMenuStructure: {
2892
+ name: string;
2893
+ kind: string;
2894
+ desc: string;
2895
+ };
2866
2896
  DetailInitContext: {
2867
2897
  name: string;
2868
2898
  kind: string;
@@ -2975,6 +3005,11 @@ export declare const ADAPTABLE_METAMODEL: {
2975
3005
  ref: string;
2976
3006
  })[];
2977
3007
  };
3008
+ ExportDestinationType: {
3009
+ name: string;
3010
+ kind: string;
3011
+ desc: string;
3012
+ };
2978
3013
  ExportFormContext: {
2979
3014
  name: string;
2980
3015
  kind: string;
@@ -4071,6 +4106,16 @@ export declare const ADAPTABLE_METAMODEL: {
4071
4106
  ref?: undefined;
4072
4107
  })[];
4073
4108
  };
4109
+ MenuCategory: {
4110
+ name: string;
4111
+ kind: string;
4112
+ desc: string;
4113
+ };
4114
+ MenuSeparator: {
4115
+ name: string;
4116
+ kind: string;
4117
+ desc: string;
4118
+ };
4074
4119
  ModuleExpressionFunctions: {
4075
4120
  name: string;
4076
4121
  kind: string;
@@ -4309,6 +4354,11 @@ export declare const ADAPTABLE_METAMODEL: {
4309
4354
  defVal?: undefined;
4310
4355
  })[];
4311
4356
  };
4357
+ PivotAggregationColumns: {
4358
+ name: string;
4359
+ kind: string;
4360
+ desc: string;
4361
+ };
4312
4362
  PivotLayout: {
4313
4363
  name: string;
4314
4364
  kind: string;
@@ -4491,6 +4541,16 @@ export declare const ADAPTABLE_METAMODEL: {
4491
4541
  desc: string;
4492
4542
  }[];
4493
4543
  };
4544
+ ProcessExportContext: {
4545
+ name: string;
4546
+ kind: string;
4547
+ desc: string;
4548
+ props: {
4549
+ name: string;
4550
+ kind: string;
4551
+ desc: string;
4552
+ }[];
4553
+ };
4494
4554
  ProgressIndicatorConfig: {
4495
4555
  name: string;
4496
4556
  kind: string;
@@ -4659,6 +4719,17 @@ export declare const ADAPTABLE_METAMODEL: {
4659
4719
  ref: string;
4660
4720
  })[];
4661
4721
  };
4722
+ ReportColumn: {
4723
+ name: string;
4724
+ kind: string;
4725
+ desc: string;
4726
+ props: {
4727
+ name: string;
4728
+ kind: string;
4729
+ desc: string;
4730
+ isOpt: boolean;
4731
+ }[];
4732
+ };
4662
4733
  ReportColumnScope: {
4663
4734
  name: string;
4664
4735
  kind: string;
@@ -4701,6 +4772,16 @@ export declare const ADAPTABLE_METAMODEL: {
4701
4772
  desc: string;
4702
4773
  }[];
4703
4774
  };
4775
+ ReportFormatType: {
4776
+ name: string;
4777
+ kind: string;
4778
+ desc: string;
4779
+ };
4780
+ ReportNameType: {
4781
+ name: string;
4782
+ kind: string;
4783
+ desc: string;
4784
+ };
4704
4785
  ReportRowScope: {
4705
4786
  name: string;
4706
4787
  kind: string;
@@ -4759,6 +4840,17 @@ export declare const ADAPTABLE_METAMODEL: {
4759
4840
  kind: string;
4760
4841
  desc: string;
4761
4842
  };
4843
+ RowFormColumnContext: {
4844
+ name: string;
4845
+ kind: string;
4846
+ desc: string;
4847
+ props: {
4848
+ name: string;
4849
+ kind: string;
4850
+ desc: string;
4851
+ ref: string;
4852
+ }[];
4853
+ };
4762
4854
  RowFormContext: {
4763
4855
  name: string;
4764
4856
  kind: string;
@@ -4792,6 +4884,11 @@ export declare const ADAPTABLE_METAMODEL: {
4792
4884
  kind: string;
4793
4885
  desc: string;
4794
4886
  };
4887
+ RowFormType: {
4888
+ name: string;
4889
+ kind: string;
4890
+ desc: string;
4891
+ };
4795
4892
  RowGroupValues: {
4796
4893
  name: string;
4797
4894
  kind: string;
@@ -5362,6 +5459,11 @@ export declare const ADAPTABLE_METAMODEL: {
5362
5459
  isOpt?: undefined;
5363
5460
  })[];
5364
5461
  };
5462
+ TableAggregationColumns: {
5463
+ name: string;
5464
+ kind: string;
5465
+ desc: string;
5466
+ };
5365
5467
  TableLayout: {
5366
5468
  name: string;
5367
5469
  kind: string;