@adaptabletools/adaptable 23.0.0-canary.3 → 23.0.0-canary.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -4
- package/src/AdaptableOptions/FilterOptions.d.ts +0 -7
- package/src/AdaptableState/Common/AdaptableForm.d.ts +18 -1
- package/src/AdaptableState/Common/AdaptableForm.js +31 -0
- package/src/AdaptableState/Common/CellDataChangedInfo.d.ts +3 -2
- package/src/AdaptableState/Common/Enums.d.ts +0 -5
- package/src/AdaptableState/Common/Enums.js +0 -6
- package/src/Api/Implementation/LayoutHelpers.js +12 -0
- package/src/Strategy/CalculatedColumnModule.js +3 -1
- package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +1 -0
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +7 -0
- package/src/Utilities/Services/CalculatedColumnSyntheticChange.d.ts +4 -0
- package/src/Utilities/Services/CalculatedColumnSyntheticChange.js +115 -0
- package/src/Utilities/Services/Interface/ICalculatedColumnExpressionService.d.ts +1 -0
- package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +8 -16
- package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +1 -1
- package/src/View/Components/Selectors/ColumnSelector.js +5 -0
- package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +3 -1
- package/src/View/Layout/LayoutViewPanel.js +23 -21
- package/src/View/renderWithAdaptableContext.js +2 -3
- package/src/agGrid/AdaptableAgGrid.d.ts +0 -1
- package/src/agGrid/AdaptableAgGrid.js +3 -18
- package/src/agGrid/AgGridColumnAdapter.js +1 -4
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +11 -6
- package/src/components/Combobox/VirtualizedList.js +5 -5
- package/src/components/Combobox/comboboxUtils.d.ts +4 -1
- package/src/components/Combobox/comboboxUtils.js +2 -0
- package/src/components/Combobox/index.d.ts +1 -0
- package/src/components/Combobox/index.js +35 -15
- package/src/components/Tree/TreeDropdown/index.js +2 -6
- package/src/env.js +2 -2
- package/src/layout-manager/src/LayoutManagerModel.d.ts +5 -1
- package/src/metamodel/adaptable.metamodel.d.ts +0 -17
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +0 -1
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/AdaptableState/Common/FilterActionOnDataChange.d.ts +0 -17
- package/src/AdaptableState/Common/FilterActionOnDataChange.js +0 -4
- package/src/View/AdaptableComputedCSSVarsContext.d.ts +0 -12
- package/src/View/AdaptableComputedCSSVarsContext.js +0 -29
- package/src/components/Select/CSSNumericVariableWatch.d.ts +0 -11
- package/src/components/Select/CSSNumericVariableWatch.js +0 -45
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { flattenAdaptableFormFields, isAdaptableFormFieldDisabled, isAdaptableFormFieldGroup, isAdaptableFormFieldGroupHidden, isAdaptableFormFieldHidden, validateAdaptableForm, } from '../../AdaptableState/Common/AdaptableForm';
|
|
3
|
+
import { flattenAdaptableFormFields, isAdaptableFormFieldDisabled, isAdaptableFormFieldGroup, isAdaptableFormFieldGroupHidden, isAdaptableFormFieldHidden, resolveSelectPlaceholder, resolveSelectValueAfterClear, validateAdaptableForm, } from '../../AdaptableState/Common/AdaptableForm';
|
|
4
4
|
import FormLayout, { FormRow } from '../FormLayout';
|
|
5
5
|
import Input from '../Input';
|
|
6
6
|
import { AdaptableButtonView, } from '../../View/Components/AdaptableButton';
|
|
@@ -204,10 +204,12 @@ export function AdaptableFormComponent({ formDef, data, onChange, onButtonClick,
|
|
|
204
204
|
break;
|
|
205
205
|
}
|
|
206
206
|
case 'select': {
|
|
207
|
-
const
|
|
207
|
+
const optionItems = resolveOptions(field);
|
|
208
|
+
const items = optionItems.map((item) => ({
|
|
208
209
|
value: item.value,
|
|
209
210
|
label: item.label,
|
|
210
211
|
}));
|
|
212
|
+
const selectPlaceholder = resolveSelectPlaceholder(field, optionItems);
|
|
211
213
|
// The underlying SingleCombobox / MultiCombobox manage their own
|
|
212
214
|
// popup-based focus; we wrap them in a labelled `role="group"` so
|
|
213
215
|
// assistive tech announces "<label> group" when focus enters and
|
|
@@ -225,10 +227,10 @@ export function AdaptableFormComponent({ formDef, data, onChange, onButtonClick,
|
|
|
225
227
|
// anything else (e.g. legacy string defaults) to [] so the
|
|
226
228
|
// underlying combobox never receives a non-array value.
|
|
227
229
|
const selected = Array.isArray(value) ? value : [];
|
|
228
|
-
control = (_jsx(Box, { ...groupProps, children: _jsx(MultiCombobox, { items: items, onValueChange: (newValues) => setFieldValue(field.name, newValues), value: selected, disabled: isDisabled, placeholder:
|
|
230
|
+
control = (_jsx(Box, { ...groupProps, children: _jsx(MultiCombobox, { items: items, onValueChange: (newValues) => setFieldValue(field.name, newValues), value: selected, disabled: isDisabled, placeholder: selectPlaceholder }) }));
|
|
229
231
|
}
|
|
230
232
|
else {
|
|
231
|
-
control = (_jsx(Box, { ...groupProps, children: _jsx(SingleCombobox, { items: items, onValueChange: (newValue) => setFieldValue(field.name, newValue), value: value, disabled: isDisabled, placeholder:
|
|
233
|
+
control = (_jsx(Box, { ...groupProps, children: _jsx(SingleCombobox, { items: items, onValueChange: (newValue) => setFieldValue(field.name, resolveSelectValueAfterClear(field, newValue)), value: value, disabled: isDisabled, placeholder: selectPlaceholder }) }));
|
|
232
234
|
}
|
|
233
235
|
break;
|
|
234
236
|
}
|
|
@@ -354,10 +356,13 @@ export function AdaptableFormComponent({ formDef, data, onChange, onButtonClick,
|
|
|
354
356
|
}
|
|
355
357
|
return items
|
|
356
358
|
.filter((field) => !isAdaptableFormFieldHidden(field, data, context))
|
|
357
|
-
.map((field) => {
|
|
359
|
+
.map((field, index) => {
|
|
358
360
|
const useFor = field.fieldType !== 'radio' && field.fieldType !== 'textOutput';
|
|
359
361
|
const requiredMarker = field.required ? (_jsx("span", { className: "ab-Form_required-marker", "aria-hidden": "true", children: ' *' })) : null;
|
|
360
|
-
return (_jsxs(Flex, { flexDirection: "row", alignItems: "center", style: {
|
|
362
|
+
return (_jsxs(Flex, { flexDirection: "row", alignItems: "center", style: {
|
|
363
|
+
columnGap: 'var(--ab-base-space)',
|
|
364
|
+
marginLeft: index > 0 ? 'var(--ab-base-space)' : undefined,
|
|
365
|
+
}, children: [field.label ? (useFor ? (_jsxs("label", { id: fieldLabelId(field), htmlFor: fieldDomId(field), className: "ab-FormLayout--inline_field-label", title: field.tooltip, children: [field.label, requiredMarker] })) : (_jsxs(Box, { id: fieldLabelId(field), className: "ab-FormLayout--inline_field-label", title: field.tooltip, children: [field.label, requiredMarker] }))) : null, renderField(field)] }, field.name));
|
|
361
366
|
});
|
|
362
367
|
};
|
|
363
368
|
const renderRowsEntry = (entry, index) => {
|
|
@@ -36,16 +36,16 @@ export function VirtualizedList({ open, virtualizerRef, showItemTooltip, renderC
|
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
38
|
const isUncreatedCreatable = item.creatable && !item.created;
|
|
39
|
-
const
|
|
40
|
-
const tooltipText =
|
|
39
|
+
const itemText = getItemTextLabel(item);
|
|
40
|
+
const tooltipText = showItemTooltip && itemText != null
|
|
41
41
|
? isUncreatedCreatable
|
|
42
|
-
? `Create "${
|
|
43
|
-
:
|
|
42
|
+
? `Create "${itemText}"`
|
|
43
|
+
: itemText
|
|
44
44
|
: undefined;
|
|
45
45
|
const label = isUncreatedCreatable ? `Create "${item.label}"` : item.label;
|
|
46
46
|
const itemLabel = renderItemLabel ? (renderItemLabel(label, item)) : (_jsx("span", { className: "twa:min-w-0 twa:flex-1 twa:truncate", children: label }));
|
|
47
47
|
const itemContent = isUncreatedCreatable ? (_jsxs(_Fragment, { children: [_jsx(PlusIcon, {}), itemLabel] })) : (itemLabel);
|
|
48
|
-
const itemElement = (_jsx(ComboboxItem, { index: virtualItem.index, "data-index": virtualItem.index, ref: virtualizer.measureElement, value: item, renderCheckboxIndicator: renderCheckboxIndicator, "aria-setsize": filteredItems.length, "aria-posinset": virtualItem.index + 1, style: {
|
|
48
|
+
const itemElement = (_jsx(ComboboxItem, { index: virtualItem.index, "data-index": virtualItem.index, ref: virtualizer.measureElement, value: item, renderCheckboxIndicator: renderCheckboxIndicator, "aria-setsize": filteredItems.length, "aria-posinset": virtualItem.index + 1, "aria-label": itemText ?? undefined, style: {
|
|
49
49
|
position: 'absolute',
|
|
50
50
|
left: `var(--ab-base-space)`,
|
|
51
51
|
right: `var(--ab-base-space)`,
|
|
@@ -9,7 +9,9 @@ export type ComboboxItemType = {
|
|
|
9
9
|
value: any;
|
|
10
10
|
disabled?: boolean;
|
|
11
11
|
};
|
|
12
|
-
export declare function getItemTextLabel<T extends ComboboxItemType>(item: T
|
|
12
|
+
export declare function getItemTextLabel<T extends ComboboxItemType>(item: T & {
|
|
13
|
+
tooltip?: string;
|
|
14
|
+
}): string;
|
|
13
15
|
export type ComboboxGroupType<T extends ComboboxItemType> = {
|
|
14
16
|
label: React.ReactNode;
|
|
15
17
|
items: T[];
|
|
@@ -45,6 +47,7 @@ export type ComboboxCommonProps<T extends ComboboxItemType> = {
|
|
|
45
47
|
renderItemLabel?: (defaultLabel: React.ReactNode, item: T) => React.ReactNode;
|
|
46
48
|
multiple?: boolean;
|
|
47
49
|
showClear?: boolean;
|
|
50
|
+
clearOnEscape?: boolean;
|
|
48
51
|
searchable?: boolean | 'inline' | 'menulist';
|
|
49
52
|
/**
|
|
50
53
|
* Custom filter function, or `null` to disable built-in filtering
|
|
@@ -5,6 +5,8 @@ export function getItemTextLabel(item) {
|
|
|
5
5
|
return item.label;
|
|
6
6
|
if (typeof item.label === 'number')
|
|
7
7
|
return String(item.label);
|
|
8
|
+
if (typeof item.tooltip === 'string')
|
|
9
|
+
return String(item.tooltip);
|
|
8
10
|
return String(item.value);
|
|
9
11
|
}
|
|
10
12
|
export function valueToItem(stringValue, lookup) {
|
|
@@ -35,4 +35,5 @@ export declare const MultiCombobox: <T extends ComboboxItemType>(props: MultiCom
|
|
|
35
35
|
export type GridFilterComboboxProps<T extends ComboboxItemType> = Omit<MultiComboboxProps<T>, 'showSelectAllCheckbox' | 'searchable' | 'renderInput' | 'renderInputValues'> & {
|
|
36
36
|
showSelectedCount?: boolean;
|
|
37
37
|
};
|
|
38
|
+
export declare const GRID_FILTER_COMBBOX_ADJUSTMENTS_CLASSNAME: string;
|
|
38
39
|
export declare const GridFilterCombobox: <T extends ComboboxItemType>(props: GridFilterComboboxProps<T>) => React.JSX.Element;
|
|
@@ -31,9 +31,13 @@ const AdaptableComboboxList = (props) => {
|
|
|
31
31
|
const label = isUncreatedCreatable ? `Create "${item.label}"` : item.label;
|
|
32
32
|
const itemLabel = props.renderItemLabel ? props.renderItemLabel(label, item) : label;
|
|
33
33
|
const itemContent = isUncreatedCreatable ? (_jsxs(_Fragment, { children: [_jsx(PlusIcon, {}), " ", itemLabel] })) : (itemLabel);
|
|
34
|
-
const
|
|
35
|
-
const tooltipText =
|
|
36
|
-
|
|
34
|
+
const itemText = getItemTextLabel(item);
|
|
35
|
+
const tooltipText = props.showItemTooltip && itemText != null
|
|
36
|
+
? isUncreatedCreatable
|
|
37
|
+
? `Create "${itemText}"`
|
|
38
|
+
: itemText
|
|
39
|
+
: undefined;
|
|
40
|
+
const itemElement = (_jsx(ComboboxItem, { value: item, "aria-label": itemText ?? undefined, className: 'ab-Combobox-Row', disabled: item.disabled, renderCheckboxIndicator: props.renderCheckboxIndicator, children: itemContent }, item.value));
|
|
37
41
|
if (tooltipText != null) {
|
|
38
42
|
return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { render: itemElement, children: itemContent }), _jsx(TooltipContent, { side: "right", children: tooltipText })] }, item.value));
|
|
39
43
|
}
|
|
@@ -88,9 +92,15 @@ const AdaptableCombobox_Root = (props) => {
|
|
|
88
92
|
const internalDefaultValue = props.multiple
|
|
89
93
|
? valueToItems(props.defaultValue, itemByValue)
|
|
90
94
|
: valueToItem(props.defaultValue, itemByValue);
|
|
91
|
-
const handleValueChange = (next) => {
|
|
95
|
+
const handleValueChange = (next, eventDetails) => {
|
|
92
96
|
if (!props.onValueChange)
|
|
93
97
|
return;
|
|
98
|
+
// base-ui clears the selected value when Escape is pressed
|
|
99
|
+
// we only want to allow this if the clearOnEscape prop is true
|
|
100
|
+
if (eventDetails?.reason === 'escape-key' && !props.clearOnEscape) {
|
|
101
|
+
eventDetails.cancel?.();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
94
104
|
if (Array.isArray(next)) {
|
|
95
105
|
props.onValueChange(toStringValues(next), next);
|
|
96
106
|
}
|
|
@@ -98,6 +108,15 @@ const AdaptableCombobox_Root = (props) => {
|
|
|
98
108
|
props.onValueChange(toStringValue(next), next);
|
|
99
109
|
}
|
|
100
110
|
};
|
|
111
|
+
const handleInputValueChange = (next, eventDetails) => {
|
|
112
|
+
// base-ui blanks the input text (and then the selected value) when Escape is pressed
|
|
113
|
+
// we only want to allow this if the clearOnEscape prop is true
|
|
114
|
+
if (eventDetails?.reason === 'escape-key' && !props.clearOnEscape) {
|
|
115
|
+
eventDetails.cancel?.();
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
props.onInputValueChange?.(next);
|
|
119
|
+
};
|
|
101
120
|
let comboboxItems = props.groups ?? props.items;
|
|
102
121
|
if (props.isCreatable && allItems[allItems.length - 1]?.creatable) {
|
|
103
122
|
// let's detect all "creatable" items and add them to the combobox items
|
|
@@ -113,7 +132,7 @@ const AdaptableCombobox_Root = (props) => {
|
|
|
113
132
|
}
|
|
114
133
|
comboboxItems = [...comboboxItems, ...creatableItems];
|
|
115
134
|
}
|
|
116
|
-
return (_jsx(Combobox, { ...props, items: comboboxItems, isItemEqualToValue: isItemEqualToValue, itemToStringLabel: getItemTextLabel, value: internalValue, defaultValue: internalDefaultValue, onValueChange: handleValueChange, "aria-label": props.ariaLabel || props['aria-label'], "data-name": props['data-name'], disabled: props.disabled, open: props.open, onOpenChange: props.onOpenChange, multiple: props.multiple, filter: props.filter, autoHighlight: true, children: props.children }));
|
|
135
|
+
return (_jsx(Combobox, { ...props, items: comboboxItems, isItemEqualToValue: isItemEqualToValue, itemToStringLabel: getItemTextLabel, value: internalValue, defaultValue: internalDefaultValue, onValueChange: handleValueChange, onInputValueChange: handleInputValueChange, "aria-label": props.ariaLabel || props['aria-label'], "data-name": props['data-name'], disabled: props.disabled, open: props.open, onOpenChange: props.onOpenChange, multiple: props.multiple, filter: props.filter, autoHighlight: true, children: props.children }));
|
|
117
136
|
};
|
|
118
137
|
const useGetAllItems = (props) => {
|
|
119
138
|
const allItems = props.groups
|
|
@@ -495,6 +514,16 @@ export const MultiCombobox = (props) => {
|
|
|
495
514
|
const showItemTooltip = props.showItemTooltip ?? !!props.virtualized;
|
|
496
515
|
return searchable === 'menulist' ? (_jsx(MultiCombobox_MenuListSearchable, { renderInput: false, ...props, multiple: true, open: open, onOpenChange: onOpenChange, searchable: searchable, showItemTooltip: showItemTooltip })) : (_jsx(MultiCombobox_SimpleSearchable, { ...props, open: open, multiple: true, onOpenChange: onOpenChange, searchable: searchable, showItemTooltip: showItemTooltip }));
|
|
497
516
|
};
|
|
517
|
+
export const GRID_FILTER_COMBBOX_ADJUSTMENTS_CLASSNAME = cn(
|
|
518
|
+
// remove the border/shadow and position it properly
|
|
519
|
+
// to adjust for outline on the input
|
|
520
|
+
'twa:[.ab-FloatingFilter_&]:border-none twa:[.ab-FloatingFilter_&]:inset-y-0.5 twa:[.ab-FloatingFilter_&]:inset-x-0 twa:[.ab-FloatingFilter_&]:absolute twa:[.ab-FloatingFilter_&]:shadow-none twa:[.ab-FloatingFilter_&]:min-h-auto!',
|
|
521
|
+
// more adjustments for very compact ag grid themes
|
|
522
|
+
'twa:[.ab-FloatingFilter_&]:[line-height:1]', 'twa:[.ab-FloatingFilter_[data-slot=combobox-trigger]]:py-0',
|
|
523
|
+
// also for very compact ag grid themes
|
|
524
|
+
// make the floating-filter combobox a size container so the toggle can
|
|
525
|
+
// shrink purely via CSS when the control is small in height (see ColumnFilter/base.css)
|
|
526
|
+
'twa:[.ab-FloatingFilter_&]:[container-type:size]');
|
|
498
527
|
export const GridFilterCombobox = (props) => {
|
|
499
528
|
const { showSelectedCount = false, placeholder = 'Select...', ...comboboxProps } = props;
|
|
500
529
|
const sharedProps = {
|
|
@@ -514,16 +543,7 @@ export const GridFilterCombobox = (props) => {
|
|
|
514
543
|
return (_jsx(_Fragment, { children: _jsxs("div", { className: "twa:text-ellipsis twa:overflow-hidden twa:whitespace-nowrap twa:flex-1000", "data-slot": "combobox-selected-values", children: [showSelectedCount && items.length > 0 && (_jsxs("span", { "data-name": "multiple-values-count", className: "twa:mr-0.5", children: ["(", items.length, ")"] })), children] }) }));
|
|
515
544
|
},
|
|
516
545
|
};
|
|
517
|
-
const className = cn(
|
|
518
|
-
// remove the border/shadow and position it properly
|
|
519
|
-
// to adjust for outline on the input
|
|
520
|
-
'twa:[.ab-FloatingFilter_&]:border-none twa:[.ab-FloatingFilter_&]:inset-y-0.5 twa:[.ab-FloatingFilter_&]:inset-x-0 twa:[.ab-FloatingFilter_&]:absolute twa:[.ab-FloatingFilter_&]:shadow-none twa:[.ab-FloatingFilter_&]:min-h-auto!',
|
|
521
|
-
// more adjustments for very compact ag grid themes
|
|
522
|
-
'twa:[.ab-FloatingFilter_&]:[line-height:1]', 'twa:[.ab-FloatingFilter_[data-slot=combobox-trigger]]:py-0',
|
|
523
|
-
// also for very compact ag grid themes
|
|
524
|
-
// make the floating-filter combobox a size container so the toggle can
|
|
525
|
-
// shrink purely via CSS when the control is small in height (see ColumnFilter/base.css)
|
|
526
|
-
'twa:[.ab-FloatingFilter_&]:[container-type:size]', comboboxProps.className);
|
|
546
|
+
const className = cn(GRID_FILTER_COMBBOX_ADJUSTMENTS_CLASSNAME, comboboxProps.className);
|
|
527
547
|
const mergedProps = {
|
|
528
548
|
...sharedProps,
|
|
529
549
|
...comboboxProps,
|
|
@@ -3,7 +3,7 @@ import { useCallback, useMemo, useState } from 'react';
|
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { ChevronRightIcon, ChevronDownIcon, ChevronsDownUpIcon, ChevronsUpDownIcon, } from 'lucide-react';
|
|
5
5
|
import { TreeExpandState, TreeSelectionState } from '../../InfiniteTable';
|
|
6
|
-
import { MultiCombobox } from '../../Combobox';
|
|
6
|
+
import { GRID_FILTER_COMBBOX_ADJUSTMENTS_CLASSNAME, MultiCombobox, } from '../../Combobox';
|
|
7
7
|
import { ComboboxChip } from '../../ui/combobox';
|
|
8
8
|
import { toDisplayValueDefault, toDisplayValueFromOptionTree } from '../treeUtils';
|
|
9
9
|
import { cn } from '../../../lib/utils';
|
|
@@ -516,10 +516,6 @@ export function GridFilterTreeDropdown(props) {
|
|
|
516
516
|
}
|
|
517
517
|
return (_jsxs("div", { className: "twa:text-ellipsis twa:overflow-hidden twa:whitespace-nowrap twa:flex-1000", "data-slot": "combobox-selected-values", children: [showSelectedCount && selectedLeafPaths.length > 0 && (_jsxs("span", { "data-name": "multiple-values-count", className: "twa:mr-0.5", children: ["(", selectedLeafPaths.length, ")"] })), children] }));
|
|
518
518
|
}, [placeholder, showSelectedCount]);
|
|
519
|
-
const mergedClassName = cn(
|
|
520
|
-
// Match the restyling GridFilterCombobox uses: remove the field border,
|
|
521
|
-
// flatten the shadow and absolutely position so the component fits the
|
|
522
|
-
// grid's floating-filter input box.
|
|
523
|
-
'twa:[.ab-FloatingFilter_&]:border-none twa:[.ab-FloatingFilter_&]:inset-y-0.5 twa:[.ab-FloatingFilter_&]:inset-x-0 twa:[.ab-FloatingFilter_&]:absolute twa:[.ab-FloatingFilter_&]:shadow-none twa:[.ab-FloatingFilter_&]:min-h-auto!', className);
|
|
519
|
+
const mergedClassName = cn(GRID_FILTER_COMBBOX_ADJUSTMENTS_CLASSNAME, className);
|
|
524
520
|
return (_jsx(TreeDropdown, { ...rest, placeholder: placeholder, className: mergedClassName, showClear: rest.showClear ?? false, resizable: rest.resizable ?? true, renderSelectedValues: renderSelectedValues }));
|
|
525
521
|
}
|
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: "23.0.0-canary.
|
|
3
|
+
PUBLISH_TIMESTAMP: 1780948198125 || Date.now(),
|
|
4
|
+
VERSION: "23.0.0-canary.4" || '--current-version--',
|
|
5
5
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ColumnSizingMap, LayoutRowSelection, RowGroupDisplayType } from '../../AdaptableState/LayoutState';
|
|
1
|
+
import { ColumnSizingMap, LayoutOpenChart, LayoutRowSelection, RowGroupDisplayType } from '../../AdaptableState/LayoutState';
|
|
2
2
|
import { XOR } from '../../Utilities/Extensions/TypeExtensions';
|
|
3
3
|
/**
|
|
4
4
|
* Defines how a Column is sorted
|
|
@@ -53,6 +53,10 @@ export interface BaseLayoutModel {
|
|
|
53
53
|
Ignore_AdaptableVersion?: string;
|
|
54
54
|
Ignore_Uuid?: string;
|
|
55
55
|
Ignore_Metadata?: any;
|
|
56
|
+
/**
|
|
57
|
+
* AG Grid charts to open when this layout is selected (not used by LayoutManager)
|
|
58
|
+
*/
|
|
59
|
+
Ignore_OpenCharts?: LayoutOpenChart[];
|
|
56
60
|
/**
|
|
57
61
|
* The Layout Name
|
|
58
62
|
*/
|
|
@@ -1113,9 +1113,6 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
1113
1113
|
o: boolean;
|
|
1114
1114
|
}[];
|
|
1115
1115
|
};
|
|
1116
|
-
ApplyFilterAction: {
|
|
1117
|
-
k: string;
|
|
1118
|
-
};
|
|
1119
1116
|
AutoGenerateTagsForLayoutsContext: {
|
|
1120
1117
|
k: string;
|
|
1121
1118
|
p: {
|
|
@@ -2965,20 +2962,6 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
2965
2962
|
r?: undefined;
|
|
2966
2963
|
})[];
|
|
2967
2964
|
};
|
|
2968
|
-
FilterActionOnDataChange: {
|
|
2969
|
-
k: string;
|
|
2970
|
-
p: ({
|
|
2971
|
-
n: string;
|
|
2972
|
-
k: string;
|
|
2973
|
-
r: string;
|
|
2974
|
-
o?: undefined;
|
|
2975
|
-
} | {
|
|
2976
|
-
n: string;
|
|
2977
|
-
k: string;
|
|
2978
|
-
o: boolean;
|
|
2979
|
-
r?: undefined;
|
|
2980
|
-
})[];
|
|
2981
|
-
};
|
|
2982
2965
|
FilterApi: {
|
|
2983
2966
|
k: string;
|
|
2984
2967
|
p: ({
|