@adaptabletools/adaptable 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.
- package/README.md +1 -1
- package/agGrid.d.ts +1 -0
- package/agGrid.js +2 -1
- package/base.css +50 -33
- package/base.css.map +1 -1
- package/index.css +47 -32
- package/index.css.map +1 -1
- package/package.json +1 -1
- package/src/AdaptableOptions/ColumnMenuOptions.d.ts +3 -0
- package/src/AdaptableOptions/ContextMenuOptions.d.ts +9 -0
- package/src/AdaptableOptions/ExportOptions.d.ts +6 -0
- package/src/AdaptableOptions/FilterOptions.d.ts +5 -5
- package/src/AdaptableOptions/RowFormOptions.d.ts +7 -1
- package/src/AdaptableState/Common/AdaptableColumn.d.ts +3 -0
- package/src/AdaptableState/Common/AdaptableObject.d.ts +6 -0
- package/src/AdaptableState/Common/AggregationColumns.d.ts +6 -0
- package/src/AdaptableState/Common/Menu.d.ts +6 -0
- package/src/AdaptableState/ExportState.d.ts +9 -0
- package/src/AdaptableState/FlashingCellState.d.ts +5 -2
- package/src/AdaptableState/InitialState.d.ts +4 -3
- package/src/AdaptableState/LayoutState.d.ts +2 -2
- package/src/AdaptableState/ThemeState.d.ts +14 -2
- package/src/Api/ColumnFilterApi.d.ts +1 -1
- package/src/Api/StateApi.d.ts +2 -2
- package/src/Redux/ActionsReducers/PluginsRedux.d.ts +0 -93
- package/src/Redux/ActionsReducers/PluginsRedux.js +0 -93
- package/src/Redux/ActionsReducers/ScheduleRedux.d.ts +0 -42
- package/src/Redux/ActionsReducers/ScheduleRedux.js +0 -42
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +1 -1
- package/src/Utilities/Services/ThemeService.js +3 -3
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +1 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +11 -9
- package/src/View/ColumnInfo/ColumnInfo.js +12 -10
- package/src/View/Comments/CommentsPopup.js +11 -9
- package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +7 -0
- package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -1
- package/src/View/Layout/PivotDetailsPopoup.js +6 -5
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +6 -5
- package/src/View/Note/NotePopup.js +12 -10
- package/src/View/StateManagement/StateManagementViewPanel.d.ts +2 -2
- package/src/View/Theme/ThemeEditor.js +9 -7
- package/src/View/Theme/VariantSelector.d.ts +1 -0
- package/src/View/Theme/VariantSelector.js +6 -3
- package/src/agGrid/AdaptableAgGrid.js +6 -2
- package/src/agGrid/AgGridAdapter.js +5 -0
- package/src/agGrid/AgGridColumnAdapter.js +0 -7
- package/src/agGrid/AgGridThemeAdapter.js +2 -2
- package/src/agGrid/FloatingFilterWrapper.js +1 -0
- package/src/agGrid/index.d.ts +2 -0
- package/src/agGrid/index.js +2 -1
- package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
- package/src/components/Select/Select.js +2 -3
- package/src/env.js +2 -2
- package/src/layout-manager/src/LayoutManagerModel.d.ts +1 -1
- package/src/metamodel/adaptable.metamodel.d.ts +104 -2
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/migration/AdaptableUpgradeHelper.d.ts +3 -3
- package/src/types.d.ts +1 -0
- package/tsconfig.esm.tsbuildinfo +1 -1
|
@@ -23,6 +23,11 @@ import { AdaptableFormControlTextClear } from '../../../Components/Forms/Adaptab
|
|
|
23
23
|
import { sortColumnIdsByOrder } from '../../../../layout-manager/src/sortColumnIdsByOrder';
|
|
24
24
|
import HelpBlock from '../../../../components/HelpBlock';
|
|
25
25
|
const PropertyOrderText = (props) => (React.createElement(Text, { fontWeight: 600, fontSize: 2 }, props.children));
|
|
26
|
+
const columnTypes = {
|
|
27
|
+
default: {
|
|
28
|
+
defaultFlex: 1,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
26
31
|
export const ColumnsSectionSummary = () => {
|
|
27
32
|
const adaptable = useAdaptable();
|
|
28
33
|
const { data: layout } = useOnePageAdaptableWizardContext();
|
|
@@ -124,11 +129,7 @@ export const ColumnsSectionSummary = () => {
|
|
|
124
129
|
},
|
|
125
130
|
};
|
|
126
131
|
return (React.createElement(DataSource, { data: data, primaryKey: "columnId" },
|
|
127
|
-
React.createElement(InfiniteTable, { columnTypes:
|
|
128
|
-
default: {
|
|
129
|
-
defaultFlex: 1,
|
|
130
|
-
},
|
|
131
|
-
}, rowHeight: rowHeight, domProps: tableDOMProps, columns: columns })));
|
|
132
|
+
React.createElement(InfiniteTable, { columnTypes: columnTypes, rowHeight: rowHeight, columnHeaderHeight: headerHeight, domProps: tableDOMProps, columns: columns })));
|
|
132
133
|
};
|
|
133
134
|
const ColumnRow = (props) => {
|
|
134
135
|
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
@@ -14,6 +14,17 @@ const tableDOMProps = {
|
|
|
14
14
|
// minHeight: 600,
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
|
+
const columnTypes = {
|
|
18
|
+
default: {
|
|
19
|
+
align: 'start',
|
|
20
|
+
defaultFlex: 1,
|
|
21
|
+
defaultSortable: false,
|
|
22
|
+
style: { fontSize: 'var(--ab-font-size-3)' },
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
const headerOptions = {
|
|
26
|
+
alwaysReserveSpaceForSortIcon: false,
|
|
27
|
+
};
|
|
17
28
|
export const NotePopup = (props) => {
|
|
18
29
|
const adaptable = useAdaptable();
|
|
19
30
|
const primaryKeyHeader = adaptable.api.columnApi.getPrimaryKeyColumn()
|
|
@@ -76,14 +87,5 @@ export const NotePopup = (props) => {
|
|
|
76
87
|
}
|
|
77
88
|
}
|
|
78
89
|
} },
|
|
79
|
-
React.createElement(InfiniteTable, { columnTypes:
|
|
80
|
-
default: {
|
|
81
|
-
align: 'start',
|
|
82
|
-
defaultFlex: 1,
|
|
83
|
-
defaultSortable: false,
|
|
84
|
-
style: { fontSize: 'var(--ab-font-size-3)' },
|
|
85
|
-
},
|
|
86
|
-
}, headerOptions: {
|
|
87
|
-
alwaysReserveSpaceForSortIcon: false,
|
|
88
|
-
}, rowHeight: 40, columnHeaderHeight: 65, domProps: tableDOMProps, columns: columnsMap }))));
|
|
90
|
+
React.createElement(InfiniteTable, { columnTypes: columnTypes, headerOptions: headerOptions, domProps: tableDOMProps, columns: columnsMap }))));
|
|
89
91
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { ViewPanelProps } from '../Components/SharedProps/ViewPanelProps';
|
|
3
|
-
export interface
|
|
3
|
+
export interface StateManagementViewPanelComponentProps extends ViewPanelProps {
|
|
4
4
|
}
|
|
5
|
-
export declare const StateManagementViewPanel: React.FunctionComponent<
|
|
5
|
+
export declare const StateManagementViewPanel: React.FunctionComponent<StateManagementViewPanelComponentProps>;
|
|
@@ -8,6 +8,7 @@ import { Box, Flex, Text } from 'rebass';
|
|
|
8
8
|
import Panel from '../../components/Panel';
|
|
9
9
|
import { Field } from './ThemeField';
|
|
10
10
|
import { VariantSelector } from './VariantSelector';
|
|
11
|
+
import { getAccessLevelForObject } from '../../Utilities/Helpers/AdaptableHelper';
|
|
11
12
|
const fields = [
|
|
12
13
|
{
|
|
13
14
|
name: 'Primary Color',
|
|
@@ -73,10 +74,11 @@ const fields = [
|
|
|
73
74
|
export const ThemeEditor = (props) => {
|
|
74
75
|
const adaptable = useAdaptable();
|
|
75
76
|
const allThemes = adaptable.api.themeApi.getUserThemes();
|
|
76
|
-
const disabled = props.accessLevel === 'ReadOnly';
|
|
77
77
|
const [currentThemeObject, setCurrentThemeObject] = React.useState(() => {
|
|
78
78
|
return adaptable.api.themeApi.getCurrentThemeObject();
|
|
79
79
|
});
|
|
80
|
+
const currentThemeAccessLevel = getAccessLevelForObject(currentThemeObject, props.accessLevel);
|
|
81
|
+
const currentThemeIsReadOnly = currentThemeAccessLevel !== 'Full';
|
|
80
82
|
// THEME variables
|
|
81
83
|
const themeVariables = currentThemeObject?.CSSVariables;
|
|
82
84
|
const valuesFromTheme = fields.reduce((acc, field) => {
|
|
@@ -138,22 +140,22 @@ export const ThemeEditor = (props) => {
|
|
|
138
140
|
const saveNameDisabled = !nameHasChanged || nameIsNotUnique || currentThemeObject.Name === '';
|
|
139
141
|
return (React.createElement(Panel, { header: React.createElement(Flex, { alignItems: "center", width: "100%" },
|
|
140
142
|
React.createElement(Box, { flex: 1 }, " Edit Custom Theme"),
|
|
141
|
-
React.createElement(SimpleButton, { "data-name": "delete",
|
|
143
|
+
React.createElement(SimpleButton, { "data-name": "delete", accessLevel: currentThemeAccessLevel, icon: "delete", onClick: handleDeleteTheme, variant: "text" })) },
|
|
142
144
|
React.createElement(FormLayout, null,
|
|
143
145
|
React.createElement(FormRow, { label: "Theme Name" },
|
|
144
|
-
React.createElement(AdaptableInput, { mr: 2, onChange: (event) => setCurrentThemeObject({
|
|
146
|
+
React.createElement(AdaptableInput, { disabled: currentThemeIsReadOnly, mr: 2, onChange: (event) => setCurrentThemeObject({
|
|
145
147
|
...currentThemeObject,
|
|
146
148
|
Name: event.target.value.replace(/ /g, '-'),
|
|
147
149
|
}), value: currentThemeObject.Name ?? '' }),
|
|
148
|
-
React.createElement(SimpleButton, { onClick: handleSaveName, disabled: saveNameDisabled, icon: "save" }),
|
|
150
|
+
React.createElement(SimpleButton, { onClick: handleSaveName, disabled: saveNameDisabled || currentThemeIsReadOnly, icon: "save", hidden: currentThemeIsReadOnly }),
|
|
149
151
|
React.createElement(Text, { fontSize: 2, marginTop: 1 }, "The name cannot contain spaces."),
|
|
150
152
|
nameIsNotUnique && (React.createElement(Text, { fontSize: 2, color: "var(--ab-color-error)" }, "Name must be unique."))),
|
|
151
153
|
React.createElement(FormRow, { label: "Description" },
|
|
152
|
-
React.createElement(AdaptableInput, { onChange: (event) => handleDescriptionChange('Description', event.target.value), value: currentThemeObject?.Description ?? '' })),
|
|
154
|
+
React.createElement(AdaptableInput, { disabled: currentThemeIsReadOnly, onChange: (event) => handleDescriptionChange('Description', event.target.value), value: currentThemeObject?.Description ?? '' })),
|
|
153
155
|
React.createElement(FormRow, { label: "Variant" },
|
|
154
|
-
React.createElement(VariantSelector, { onChange: handleVariantChange, theme: currentThemeObject })),
|
|
156
|
+
React.createElement(VariantSelector, { onChange: handleVariantChange, theme: currentThemeObject, disabled: currentThemeIsReadOnly })),
|
|
155
157
|
fields.map((field) => {
|
|
156
|
-
return (React.createElement(Field, { disabled:
|
|
158
|
+
return (React.createElement(Field, { disabled: currentThemeIsReadOnly, key: field.name, type: field.type, name: field.name, value: valuesFromTheme[field.variable], variable: field.variable, onChange: (val) => {
|
|
157
159
|
// needs a fresh copy
|
|
158
160
|
const currentThemeObject = adaptable.api.themeApi.getCurrentThemeObject();
|
|
159
161
|
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>;
|
|
@@ -2,9 +2,12 @@ import * as React from 'react';
|
|
|
2
2
|
import DropdownButton from '../../components/DropdownButton';
|
|
3
3
|
import SimpleButton from '../../components/SimpleButton';
|
|
4
4
|
import { useAdaptable } from '../AdaptableContext';
|
|
5
|
+
import { OS_THEME } from '../../Utilities/Constants/GeneralConstants';
|
|
5
6
|
export const VariantSelector = (props) => {
|
|
6
7
|
const adaptable = useAdaptable();
|
|
7
|
-
const systemTemes = adaptable.api.themeApi
|
|
8
|
+
const systemTemes = adaptable.api.themeApi
|
|
9
|
+
.getSystemThemes()
|
|
10
|
+
.filter((theme) => theme.Name !== OS_THEME);
|
|
8
11
|
const options = systemTemes.map((theme) => ({
|
|
9
12
|
label: theme.Description,
|
|
10
13
|
value: theme.Name,
|
|
@@ -14,6 +17,6 @@ export const VariantSelector = (props) => {
|
|
|
14
17
|
? options.find((theme) => theme.value === props.theme.Variant)?.label
|
|
15
18
|
: 'Select a theme';
|
|
16
19
|
return (React.createElement(React.Fragment, null,
|
|
17
|
-
React.createElement(DropdownButton, { mr: 2, columns: ['label'], items: options }, label),
|
|
18
|
-
React.createElement(SimpleButton, { onClick: () => props.onChange(null), disabled: !props.theme.Variant, icon: "delete" })));
|
|
20
|
+
React.createElement(DropdownButton, { mr: 2, columns: ['label'], items: options, disabled: props.disabled }, label),
|
|
21
|
+
React.createElement(SimpleButton, { onClick: () => props.onChange(null), disabled: !props.theme.Variant || props.disabled, hidden: props.disabled, icon: "delete" })));
|
|
19
22
|
};
|
|
@@ -319,11 +319,13 @@ export class AdaptableAgGrid {
|
|
|
319
319
|
*/
|
|
320
320
|
postLoadHook: (state) => {
|
|
321
321
|
if (this.adaptableOptions.stateOptions.autoMigrateState) {
|
|
322
|
-
|
|
322
|
+
this.api.logError;
|
|
323
|
+
const config = {
|
|
323
324
|
// version 16 actually includes all versions up until 16
|
|
324
325
|
fromVersion: 16,
|
|
325
326
|
logger: this.logger,
|
|
326
|
-
}
|
|
327
|
+
};
|
|
328
|
+
state = AdaptableUpgradeHelper.migrateAdaptableState(state, config);
|
|
327
329
|
}
|
|
328
330
|
state = this.normalizeAdaptableState(state, config.gridOptions);
|
|
329
331
|
return state;
|
|
@@ -2635,6 +2637,7 @@ You need to define at least one Layout!`);
|
|
|
2635
2637
|
themesToRemove.forEach((theme) => {
|
|
2636
2638
|
el.classList.remove(`infinite-theme-mode--${theme.Name}`);
|
|
2637
2639
|
});
|
|
2640
|
+
el.classList.remove(`infinite-theme-name--default`);
|
|
2638
2641
|
// VARIANT
|
|
2639
2642
|
let variantTheme = '';
|
|
2640
2643
|
if (!isSystemTheme && themeObject.Variant) {
|
|
@@ -2654,6 +2657,7 @@ You need to define at least one Layout!`);
|
|
|
2654
2657
|
else if (variantTheme) {
|
|
2655
2658
|
el.classList.add(`infinite-theme-mode--${variantTheme}`);
|
|
2656
2659
|
}
|
|
2660
|
+
el.classList.add(`infinite-theme-name--default`);
|
|
2657
2661
|
// Update AG THEME
|
|
2658
2662
|
this.agGridThemeAdapter.applyAgGridThemeOnAdaptableThemeChange(newTheme, variantTheme, container, themesToRemove);
|
|
2659
2663
|
// MAC LIKE SCROLLBARS
|
|
@@ -448,6 +448,11 @@ export class AgGridAdapter {
|
|
|
448
448
|
this.logger.warn(`Column is undefined, returning 'text' for Type`);
|
|
449
449
|
return 'text';
|
|
450
450
|
}
|
|
451
|
+
const colDefType = [].concat(agColumn.getColDef()?.type || []).filter(Boolean);
|
|
452
|
+
const skippedSpecialCols = ['actionColumn', 'fdc3Column'];
|
|
453
|
+
if (skippedSpecialCols.some((specialColType) => colDefType.includes(specialColType))) {
|
|
454
|
+
return 'unknown';
|
|
455
|
+
}
|
|
451
456
|
let dataType = 'unknown';
|
|
452
457
|
// get the column type if already in store (and not unknown)
|
|
453
458
|
const existingColumn = this.adaptableApi.columnApi.getColumnWithColumnId(agColumn.getId(), logWarning);
|
|
@@ -238,13 +238,6 @@ export class AgGridColumnAdapter {
|
|
|
238
238
|
return cellDataTypeEditor;
|
|
239
239
|
}
|
|
240
240
|
});
|
|
241
|
-
this.setColDefProperty(col, 'cellEditorPopup', () => {
|
|
242
|
-
// as specified in https://www.ag-grid.com/react-data-grid/provided-cell-editors/#rich-select-cell-editor
|
|
243
|
-
// agRichSelectCellEditor should always set cellEditorPopup=true. Otherwise the editor will be clipped to the cell contents
|
|
244
|
-
if (shouldShowSelectCellEditor && hasRichSelectCellEditor) {
|
|
245
|
-
return true;
|
|
246
|
-
}
|
|
247
|
-
});
|
|
248
241
|
this.setColDefProperty(col, 'cellEditorParams', (params) => {
|
|
249
242
|
if (shouldShowSelectCellEditor) {
|
|
250
243
|
return (params) => {
|
|
@@ -24,10 +24,10 @@ export class AgGridThemeAdapter {
|
|
|
24
24
|
const isSystemTheme = this.api.themeApi.internalApi.isSystemTheme(themeName);
|
|
25
25
|
if (adaptableTheme && (isSystemTheme || variantTheme)) {
|
|
26
26
|
if ((variantTheme || themeName) === LIGHT_THEME) {
|
|
27
|
-
document.body.dataset.agThemeMode = 'light';
|
|
27
|
+
document.body.dataset.agThemeMode = adaptableTheme.AgThemeMode ?? 'light';
|
|
28
28
|
}
|
|
29
29
|
if ((variantTheme || themeName) === DARK_THEME) {
|
|
30
|
-
document.body.dataset.agThemeMode = 'dark';
|
|
30
|
+
document.body.dataset.agThemeMode = adaptableTheme.AgThemeMode ?? 'dark';
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
package/src/agGrid/index.d.ts
CHANGED
|
@@ -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;
|
package/src/agGrid/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Adaptable,
|
|
2
2
|
//init as initFn,
|
|
3
3
|
AdaptableNoCodeWizard as ABWizard, } from './Adaptable';
|
|
4
|
+
import { AdaptableLogger as ABLogger } from './AdaptableLogger';
|
|
4
5
|
export { default as AdaptableWizardView } from '../View/AdaptableWizardView';
|
|
5
6
|
export default Adaptable;
|
|
6
7
|
export const AdaptableNoCodeWizard = ABWizard;
|
|
7
|
-
|
|
8
|
+
export const AdaptableLogger = ABLogger;
|
|
@@ -118,7 +118,7 @@ const FunctionsDropdown = ({ expressionFunctions, baseClassName }) => {
|
|
|
118
118
|
}, onClick: handleFunctionCategoryChange(option.value), checked: currentFunctionCategory === option.value }, option.label));
|
|
119
119
|
})),
|
|
120
120
|
React.createElement(Flex, null,
|
|
121
|
-
React.createElement(Flex, { className: `${baseClassName}__dropdown-functions-list`, "data-name": "expression-dropdown-
|
|
121
|
+
React.createElement(Flex, { className: `${baseClassName}__dropdown-functions-list`, "data-name": "expression-dropdown-functions-list", flexDirection: "column", p: 2, maxHeight: '50vh' }, orderedGroupNames
|
|
122
122
|
.filter((groupName) => !!groupedFunctions[groupName])
|
|
123
123
|
.map((groupName) => {
|
|
124
124
|
const functionsInGroup = Object.keys(groupedFunctions[groupName]);
|
|
@@ -7,7 +7,6 @@ import { Box } from 'rebass';
|
|
|
7
7
|
import { DataSource, InfiniteTable, } from '@infinite-table/infinite-react';
|
|
8
8
|
import { useMemo } from 'react';
|
|
9
9
|
import join from '../utils/join';
|
|
10
|
-
const ROW_HEIGHT = 40;
|
|
11
10
|
const checkboxStyle = {
|
|
12
11
|
position: 'relative',
|
|
13
12
|
top: 1,
|
|
@@ -330,7 +329,7 @@ export const Select = function (props) {
|
|
|
330
329
|
data: filteredOptions, primaryKey: "value", selectionMode: isMulti ? 'multi-row' : 'single-row',
|
|
331
330
|
// @ts-ignore
|
|
332
331
|
onRowSelectionChange: isLoading ? null : isMulti ? onRowSelectionChange : onSingleRowSelectionChange, rowSelection: rowSelection, isRowDisabled: isRowDisabled },
|
|
333
|
-
React.createElement(InfiniteTable, { header: isMulti && showHeaderSelectionCheckbox ? true : false, rowClassName: rowClassName, showZebraRows: false, onCellClick: isLoading ? null : onCellClick, keyboardNavigation: isLoading ? false : 'row', activeRowIndex: focusedOptionIndex, keyboardSelection: true,
|
|
332
|
+
React.createElement(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 })));
|
|
334
333
|
};
|
|
335
334
|
}, [isMulti, showHeaderSelectionCheckbox]);
|
|
336
335
|
const DropdownIndicator = React.useMemo(() => {
|
|
@@ -417,7 +416,7 @@ export const Select = function (props) {
|
|
|
417
416
|
zIndex: 999999,
|
|
418
417
|
boxShadow: 'var(--ab-cmp-select-menu__box-shadow)',
|
|
419
418
|
minWidth: `var(--ab-cmp-select-menu__min-width)`,
|
|
420
|
-
'--ab-cmp-select-menu__min-height': `min(${(
|
|
419
|
+
'--ab-cmp-select-menu__min-height': `min(${(props.options || []).length + (showHeaderSelectionCheckbox ? 1 : 0)} * var(--ab-grid-row-height), 20rem)`,
|
|
421
420
|
...commonStyles(state),
|
|
422
421
|
...props.menuStyle,
|
|
423
422
|
};
|
package/src/env.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
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" || '',
|
|
3
|
-
PUBLISH_TIMESTAMP:
|
|
4
|
-
VERSION: "20.0.0" || '--current-version--',
|
|
3
|
+
PUBLISH_TIMESTAMP: 1743597189803 || Date.now(),
|
|
4
|
+
VERSION: "20.0.2-canary.0" || '--current-version--',
|
|
5
5
|
};
|
|
@@ -36,7 +36,7 @@ export interface BaseLayoutModel {
|
|
|
36
36
|
Values: any[][];
|
|
37
37
|
};
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
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
|
|
626
|
+
ref: string;
|
|
622
627
|
} | {
|
|
623
628
|
name: string;
|
|
624
629
|
kind: string;
|
|
625
630
|
desc: string;
|
|
626
631
|
isOpt: boolean;
|
|
627
|
-
ref
|
|
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;
|