@adaptabletools/adaptable-cjs 22.0.0-canary.6 → 22.0.0-canary.8
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/index.css +63 -74
- package/index.css.map +1 -1
- package/package.json +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +6 -6
- package/src/AdaptableOptions/ContainerOptions.d.ts +55 -15
- package/src/AdaptableState/AdaptableState.d.ts +2 -0
- package/src/AdaptableState/AlertState.d.ts +1 -2
- package/src/AdaptableState/Common/AdaptableColumnContext.d.ts +9 -0
- package/src/AdaptableState/Common/AdaptableObject.d.ts +4 -0
- package/src/AdaptableState/Common/AdaptableRowContext.d.ts +11 -0
- package/src/AdaptableState/Common/AdaptableRowContext.js +2 -0
- package/src/AdaptableState/Common/BaseContext.d.ts +2 -0
- package/src/AdaptableState/Common/DataUpdateConfig.d.ts +7 -0
- package/src/AdaptableState/Common/NamedObject.d.ts +10 -0
- package/src/AdaptableState/Common/NamedObject.js +2 -0
- package/src/AdaptableState/Common/RowSummary.d.ts +1 -1
- package/src/AdaptableState/Common/Schedule.d.ts +2 -2
- package/src/AdaptableState/Common/SuspendableObject.d.ts +10 -0
- package/src/AdaptableState/Common/SuspendableObject.js +2 -0
- package/src/AdaptableState/Common/TransposeConfig.d.ts +11 -9
- package/src/AdaptableState/CustomSortState.d.ts +1 -1
- package/src/AdaptableState/FormatColumnState.d.ts +1 -1
- package/src/AdaptableState/InitialState.d.ts +9 -0
- package/src/AdaptableState/LayoutState.d.ts +2 -3
- package/src/AdaptableState/PlusMinusState.d.ts +1 -1
- package/src/AdaptableState/ShortcutState.d.ts +1 -1
- package/src/AdaptableState/StyledColumnState.d.ts +1 -1
- package/src/AdaptableState/UserInterfaceState.d.ts +14 -0
- package/src/AdaptableState/UserInterfaceState.js +2 -0
- package/src/Api/AlertApi.d.ts +6 -0
- package/src/Api/CustomSortApi.d.ts +6 -0
- package/src/Api/FlashingCellApi.d.ts +6 -0
- package/src/Api/FormatColumnApi.d.ts +10 -4
- package/src/Api/GridApi.d.ts +5 -9
- package/src/Api/Implementation/AlertApiImpl.d.ts +1 -0
- package/src/Api/Implementation/AlertApiImpl.js +5 -6
- package/src/Api/Implementation/ChartingApiImpl.js +2 -2
- package/src/Api/Implementation/CustomSortApiImpl.d.ts +1 -0
- package/src/Api/Implementation/CustomSortApiImpl.js +3 -0
- package/src/Api/Implementation/FlashingCellApiImpl.d.ts +1 -0
- package/src/Api/Implementation/FlashingCellApiImpl.js +3 -0
- package/src/Api/Implementation/FormatColumnApiImpl.d.ts +6 -5
- package/src/Api/Implementation/FormatColumnApiImpl.js +6 -5
- package/src/Api/Implementation/GridApiImpl.d.ts +2 -6
- package/src/Api/Implementation/GridApiImpl.js +9 -9
- package/src/Api/Implementation/LayoutApiImpl.d.ts +1 -0
- package/src/Api/Implementation/LayoutApiImpl.js +4 -1
- package/src/Api/Implementation/NamedQueryApiImpl.js +2 -2
- package/src/Api/Implementation/PlusMinusApiImpl.d.ts +1 -0
- package/src/Api/Implementation/PlusMinusApiImpl.js +3 -0
- package/src/Api/Implementation/ScheduleApiImpl.d.ts +1 -0
- package/src/Api/Implementation/ScheduleApiImpl.js +3 -0
- package/src/Api/Implementation/ShortcutApiImpl.d.ts +1 -0
- package/src/Api/Implementation/ShortcutApiImpl.js +3 -0
- package/src/Api/Implementation/SystemStatusApiImpl.js +6 -9
- package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +5 -0
- package/src/Api/Implementation/UserInterfaceApiImpl.js +13 -0
- package/src/Api/Internal/CalculatedColumnInternalApi.js +2 -2
- package/src/Api/Internal/FreeTextColumnInternalApi.js +2 -2
- package/src/Api/Internal/LayoutInternalApi.js +1 -1
- package/src/Api/Internal/NamedQueryInternalApi.js +4 -4
- package/src/Api/LayoutApi.d.ts +6 -0
- package/src/Api/PlusMinusApi.d.ts +6 -0
- package/src/Api/ScheduleApi.d.ts +6 -0
- package/src/Api/ShortcutApi.d.ts +6 -0
- package/src/Api/UserInterfaceApi.d.ts +17 -0
- package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +8 -0
- package/src/Redux/ActionsReducers/FormatColumnRedux.js +17 -1
- package/src/Redux/ActionsReducers/UserInterfaceRedux.d.ts +11 -0
- package/src/Redux/ActionsReducers/UserInterfaceRedux.js +26 -0
- package/src/Redux/Store/AdaptableStore.js +45 -16
- package/src/Strategy/BulkUpdateModule.js +8 -8
- package/src/Strategy/PlusMinusModule.js +1 -1
- package/src/Strategy/QuickSearchModule.js +1 -1
- package/src/Strategy/SettingsPanelModule.js +11 -7
- package/src/Strategy/SmartEditModule.js +10 -10
- package/src/Utilities/Services/DataService.js +1 -1
- package/src/Utilities/Services/Fdc3Service.js +4 -4
- package/src/Utilities/Services/ModuleService.js +1 -3
- package/src/Utilities/Services/ThemeService.js +2 -6
- package/src/Utilities/Services/ValidationService.js +1 -1
- package/src/Utilities/logDeprecation.js +3 -4
- package/src/Utilities/resolveContainerElement.d.ts +23 -0
- package/src/Utilities/resolveContainerElement.js +47 -0
- package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +2 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
- package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +2 -2
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +2 -2
- package/src/View/Components/CellPopup/index.js +1 -1
- package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +1 -1
- package/src/View/Components/EntityRulesEditor/Utilities.js +5 -5
- package/src/View/Components/NewScopeComponent.js +3 -3
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +2 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +1 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.d.ts +1 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +1 -8
- package/src/View/Components/Popups/AdaptablePopupConfirmation.js +1 -1
- package/src/View/Components/Popups/WindowPopups/WindowPopups.js +35 -0
- package/src/View/Components/WizardSummaryPage.js +1 -1
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +3 -3
- package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +1 -1
- package/src/View/Dashboard/CustomToolbar.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +1 -1
- package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +1 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +3 -3
- package/src/View/Layout/LayoutViewPanel.js +1 -1
- package/src/View/Layout/TransposedPopup.js +144 -138
- package/src/View/Layout/Wizard/sections/AggregationsSection.js +1 -1
- package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
- package/src/View/Layout/Wizard/sections/GridFilterSection.js +1 -1
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +3 -3
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +1 -1
- package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +2 -2
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +5 -5
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +1 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.d.ts +1 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.js +11 -11
- package/src/View/StateManagement/handleExportState.js +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
- package/src/View/UIHelper.d.ts +2 -1
- package/src/View/UIHelper.js +8 -14
- package/src/agGrid/Adaptable.js +11 -11
- package/src/agGrid/AdaptableAgGrid.d.ts +12 -8
- package/src/agGrid/AdaptableAgGrid.js +150 -82
- package/src/agGrid/AgGridAdapter.js +8 -8
- package/src/agGrid/AgGridColumnAdapter.js +1 -1
- package/src/agGrid/AgGridExportAdapter.js +5 -5
- package/src/agGrid/AgGridFloatingFilterAdapter.js +1 -1
- package/src/agGrid/AgGridMenuAdapter.js +9 -1
- package/src/agGrid/AgGridThemeAdapter.js +2 -2
- package/src/components/CheckBox/index.js +1 -1
- package/src/components/Dropdown/Arrows.js +1 -1
- package/src/components/ExpressionEditor/DataTableEditor.js +3 -3
- package/src/components/FormLayout/index.js +1 -1
- package/src/components/OverlayTrigger/index.js +1 -1
- package/src/components/Select/Select.js +1 -1
- package/src/components/Tree/TreeDropdown/index.js +1 -1
- package/src/env.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +62 -0
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/migration/AdaptableUpgradeHelper.js +2 -2
- package/src/migration/VersionUpgrade17.js +4 -4
- package/src/migration/VersionUpgrade20.js +4 -4
- package/src/types.d.ts +5 -2
- package/themes/dark.css +30 -29
- package/themes/light.css +4 -2
- package/tsconfig.cjs.tsbuildinfo +1 -1
|
@@ -83,7 +83,7 @@ function mapDispatchToProps(dispatch) {
|
|
|
83
83
|
showMissingLayoutsError: () => {
|
|
84
84
|
dispatch(PopupRedux.PopupShowConfirmation({
|
|
85
85
|
Header: 'Missing Layouts',
|
|
86
|
-
Msg: '
|
|
86
|
+
Msg: 'No Layouts have been defined. Please check the console for details.',
|
|
87
87
|
ConfirmAction: null,
|
|
88
88
|
ConfirmButtonText: 'OK',
|
|
89
89
|
CancelButtonText: null,
|
|
@@ -9,72 +9,153 @@ const AdaptableContext_1 = require("../AdaptableContext");
|
|
|
9
9
|
const ColumnSelector_1 = require("../Components/Selectors/ColumnSelector");
|
|
10
10
|
const AdaptableAgGrid_1 = require("../../agGrid/AdaptableAgGrid");
|
|
11
11
|
const Flex_1 = require("../../components/Flex");
|
|
12
|
-
const
|
|
13
|
-
const
|
|
12
|
+
const ModuleConstants_1 = require("../../Utilities/Constants/ModuleConstants");
|
|
13
|
+
const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
|
|
14
|
+
const ADAPTABLE_CONTAINER_ID = 'transposed-adaptable-container';
|
|
15
|
+
const AG_GRID_CONTAINER_ID = 'transposed-adaptable-ag-grid-container';
|
|
16
|
+
/** Field used for the first column in transposed grid (hidden, holds column id). */
|
|
17
|
+
const TRANSPOSED_FIRST_COLUMN_FIELD = '_transposed_column_value';
|
|
18
|
+
/** Header used for the first visible column in transposed grid (shows friendly name). */
|
|
19
|
+
const TRANSPOSED_FIRST_COLUMN_HEADER = '_transposed_column_header';
|
|
20
|
+
function buildTransposedAdaptableOptions({ hostOptions, transposedRowsAndColumns, currentTheme, }) {
|
|
21
|
+
return {
|
|
22
|
+
primaryKey: TRANSPOSED_FIRST_COLUMN_FIELD,
|
|
23
|
+
licenseKey: hostOptions.licenseKey,
|
|
24
|
+
userName: `${hostOptions.userName}`,
|
|
25
|
+
adaptableId: `${hostOptions.adaptableId}::TransposedView`,
|
|
26
|
+
containerOptions: {
|
|
27
|
+
adaptableContainer: ADAPTABLE_CONTAINER_ID,
|
|
28
|
+
agGridContainer: AG_GRID_CONTAINER_ID,
|
|
29
|
+
},
|
|
30
|
+
entitlementOptions: { defaultAccessLevel: 'Hidden' },
|
|
31
|
+
initialState: {
|
|
32
|
+
Layout: {
|
|
33
|
+
Revision: Date.now(),
|
|
34
|
+
CurrentLayout: 'TransposedView',
|
|
35
|
+
Layouts: [
|
|
36
|
+
{
|
|
37
|
+
Name: 'TransposedView',
|
|
38
|
+
TableColumns: [
|
|
39
|
+
TRANSPOSED_FIRST_COLUMN_HEADER,
|
|
40
|
+
...transposedRowsAndColumns.transposedColumns.map((c) => c.colId),
|
|
41
|
+
],
|
|
42
|
+
ColumnPinning: { [TRANSPOSED_FIRST_COLUMN_HEADER]: 'left' },
|
|
43
|
+
AutoSizeColumns: true,
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
Theme: { CurrentTheme: currentTheme },
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function buildTransposedGridOptions({ transposedRowsAndColumns, elevatedColumnId, adaptableApi, }) {
|
|
52
|
+
const firstColumn = {
|
|
53
|
+
field: TRANSPOSED_FIRST_COLUMN_HEADER,
|
|
54
|
+
headerName: adaptableApi.columnApi.getFriendlyNameForColumnId(elevatedColumnId),
|
|
55
|
+
};
|
|
56
|
+
return {
|
|
57
|
+
loading: false,
|
|
58
|
+
defaultColDef: {
|
|
59
|
+
floatingFilter: false,
|
|
60
|
+
filter: false,
|
|
61
|
+
sortable: true,
|
|
62
|
+
resizable: true,
|
|
63
|
+
enableRowGroup: false,
|
|
64
|
+
editable: false,
|
|
65
|
+
enablePivot: false,
|
|
66
|
+
enableValue: false,
|
|
67
|
+
lockPinned: true,
|
|
68
|
+
menuTabs: [],
|
|
69
|
+
width: 120,
|
|
70
|
+
},
|
|
71
|
+
columnDefs: [
|
|
72
|
+
{ field: TRANSPOSED_FIRST_COLUMN_FIELD, hide: true },
|
|
73
|
+
firstColumn,
|
|
74
|
+
...transposedRowsAndColumns.transposedColumns.map((col) => ({ field: col.colId, headerName: col.header })),
|
|
75
|
+
],
|
|
76
|
+
rowData: transposedRowsAndColumns.transposedRows,
|
|
77
|
+
sideBar: false,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
14
80
|
const TransposedPopup = (props) => {
|
|
15
81
|
const adaptable = (0, AdaptableContext_1.useAdaptable)();
|
|
16
|
-
const { transposedColumnId, hideTransposedColumn, visibleColumns, visibleRows, autosize } = props.popupProps;
|
|
17
|
-
const rowNodes = React.useMemo(() => {
|
|
18
|
-
return props.popupProps.visibleRows
|
|
19
|
-
? adaptable.api.gridApi.getVisibleRowNodes()
|
|
20
|
-
: adaptable.api.gridApi.getAllRowNodes();
|
|
21
|
-
}, [
|
|
22
|
-
// can be later triggered by tickng data
|
|
23
|
-
]);
|
|
24
82
|
const primaryKey = adaptable.api.optionsApi.getPrimaryKey();
|
|
25
|
-
const
|
|
26
|
-
const
|
|
83
|
+
const rawConfig = (props.popupProps ?? {});
|
|
84
|
+
const transposeConfig = {
|
|
85
|
+
transposedColumnId: rawConfig.transposedColumnId ?? primaryKey,
|
|
86
|
+
hideTransposedColumn: rawConfig.hideTransposedColumn ?? true,
|
|
87
|
+
autosize: rawConfig.autosize ?? true,
|
|
88
|
+
columnsToTranspose: rawConfig.columnsToTranspose,
|
|
89
|
+
rowsToTranspose: rawConfig.rowsToTranspose,
|
|
90
|
+
};
|
|
91
|
+
const rowNodes = React.useMemo(() => {
|
|
92
|
+
let transposableRowNodes = [];
|
|
93
|
+
const rowsToTranspose = transposeConfig.rowsToTranspose;
|
|
94
|
+
if (rowsToTranspose === 'VisibleOnly') {
|
|
95
|
+
return adaptable.api.gridApi.getVisibleRowNodes();
|
|
96
|
+
}
|
|
97
|
+
if (rowsToTranspose === 'All') {
|
|
98
|
+
return adaptable.api.gridApi.getAllRowNodes();
|
|
99
|
+
}
|
|
100
|
+
if (StringExtensions_1.default.IsNotNullOrEmpty(rowsToTranspose)) {
|
|
101
|
+
adaptable.api.gridApi.getAllRowNodes().forEach((rn) => {
|
|
102
|
+
const shouldTransposeRow = adaptable.api.internalApi
|
|
103
|
+
.getQueryLanguageService()
|
|
104
|
+
.evaluateBooleanExpression(rowsToTranspose, ModuleConstants_1.ExportModuleId, rn);
|
|
105
|
+
if (shouldTransposeRow) {
|
|
106
|
+
transposableRowNodes.push(rn);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return transposableRowNodes;
|
|
110
|
+
}
|
|
111
|
+
return adaptable.api.gridApi.getAllRowNodes();
|
|
112
|
+
}, [transposeConfig.rowsToTranspose, adaptable.api]);
|
|
113
|
+
const [elevatedColumnId, setElevatedColumnIdState] = React.useState(() => transposeConfig.transposedColumnId ?? primaryKey);
|
|
114
|
+
const setElevatedColumnId = (newElevatedColumnId) => {
|
|
27
115
|
transposedAdaptableApiRef.current?.destroy({ unmount: true, destroyAgGrid: true });
|
|
28
|
-
|
|
116
|
+
setElevatedColumnIdState(newElevatedColumnId);
|
|
29
117
|
};
|
|
30
118
|
const transposedAdaptableApiRef = React.useRef(null);
|
|
31
119
|
const columns = React.useMemo(() => {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
120
|
+
const allUIColumns = adaptable.api.columnApi.getUIAvailableColumns();
|
|
121
|
+
const columnsToTranspose = transposeConfig.columnsToTranspose;
|
|
122
|
+
if (!columnsToTranspose) {
|
|
123
|
+
return allUIColumns;
|
|
124
|
+
}
|
|
125
|
+
const columnIds = typeof columnsToTranspose === 'function'
|
|
126
|
+
? columnsToTranspose({
|
|
127
|
+
...adaptable.api.internalApi.buildBaseContext(),
|
|
128
|
+
columns: allUIColumns,
|
|
129
|
+
})
|
|
130
|
+
: columnsToTranspose;
|
|
131
|
+
return columnIds
|
|
132
|
+
.map((c) => adaptable.api.columnApi.getColumnWithColumnId(c))
|
|
133
|
+
.filter((col) => col != null);
|
|
134
|
+
}, [transposeConfig.columnsToTranspose, adaptable.api]);
|
|
37
135
|
/**
|
|
38
|
-
*
|
|
136
|
+
* Build transposed structure: original rows become columns (colId = primaryKey value),
|
|
137
|
+
* original columns become rows. Each transposed row has the column id/header plus
|
|
138
|
+
* one cell per original row keyed by primaryKey value.
|
|
39
139
|
*/
|
|
40
|
-
const transposedFirstColumnField = '_transposed_column_value';
|
|
41
|
-
const transposedFirstColumnHeader = '_transposed_column_header';
|
|
42
140
|
const transposedRowsAndColumns = React.useMemo(() => {
|
|
43
|
-
/**
|
|
44
|
-
* transposed column values become primaryKey of the new tarnsposed rows
|
|
45
|
-
* we build row by row, might be easer
|
|
46
|
-
*/
|
|
47
141
|
const transposedColumns = [];
|
|
48
142
|
const transposedRows = [];
|
|
49
143
|
for (const row of rowNodes) {
|
|
50
|
-
// we force the col-ids to be strings, easer to work with
|
|
51
|
-
//row[transposeByColumnId] + '';
|
|
52
144
|
const colId = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, primaryKey) + '';
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
'';
|
|
56
|
-
transposedColumns.push({
|
|
57
|
-
colId,
|
|
58
|
-
header,
|
|
59
|
-
});
|
|
145
|
+
const header = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, elevatedColumnId) + '';
|
|
146
|
+
transposedColumns.push({ colId, header });
|
|
60
147
|
}
|
|
61
148
|
for (const column of columns) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
*/
|
|
65
|
-
if (hideTransposedColumn && column.columnId === syntheticTransposedByColumnId) {
|
|
149
|
+
if (transposeConfig.hideTransposedColumn &&
|
|
150
|
+
column.columnId === elevatedColumnId) {
|
|
66
151
|
continue;
|
|
67
152
|
}
|
|
68
153
|
const transposedRow = {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
[transposedFirstColumnField]: column.columnId,
|
|
72
|
-
[transposedFirstColumnHeader]: column.friendlyName,
|
|
154
|
+
[TRANSPOSED_FIRST_COLUMN_FIELD]: column.columnId,
|
|
155
|
+
[TRANSPOSED_FIRST_COLUMN_HEADER]: column.friendlyName,
|
|
73
156
|
};
|
|
74
|
-
for (
|
|
75
|
-
// [transposed-by-column-value[n]]: [other column value[n]]
|
|
157
|
+
for (const row of rowNodes) {
|
|
76
158
|
const key = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, primaryKey);
|
|
77
|
-
// row[column.field]
|
|
78
159
|
let value = adaptable.api.gridApi.getDisplayValueFromRowNode(row, column.columnId);
|
|
79
160
|
if (value instanceof Date) {
|
|
80
161
|
value = value.toLocaleString();
|
|
@@ -83,90 +164,25 @@ const TransposedPopup = (props) => {
|
|
|
83
164
|
}
|
|
84
165
|
transposedRows.push(transposedRow);
|
|
85
166
|
}
|
|
86
|
-
return {
|
|
87
|
-
|
|
88
|
-
transposedRows,
|
|
89
|
-
};
|
|
90
|
-
}, [rowNodes, primaryKey, syntheticTransposedByColumnId]);
|
|
167
|
+
return { transposedColumns, transposedRows };
|
|
168
|
+
}, [rowNodes, primaryKey, elevatedColumnId, columns, transposeConfig.hideTransposedColumn, adaptable.api]);
|
|
91
169
|
React.useEffect(() => {
|
|
92
|
-
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
entitlementOptions: {
|
|
104
|
-
defaultAccessLevel: 'Hidden',
|
|
105
|
-
},
|
|
106
|
-
initialState: {
|
|
107
|
-
Layout: {
|
|
108
|
-
Revision: Date.now(),
|
|
109
|
-
CurrentLayout: 'TransposedView',
|
|
110
|
-
Layouts: [
|
|
111
|
-
{
|
|
112
|
-
Name: 'TransposedView',
|
|
113
|
-
TableColumns: [
|
|
114
|
-
transposedFirstColumnHeader,
|
|
115
|
-
...transposedRowsAndColumns.transposedColumns.map((c) => c.colId),
|
|
116
|
-
],
|
|
117
|
-
ColumnPinning: {
|
|
118
|
-
[transposedFirstColumnHeader]: 'left',
|
|
119
|
-
},
|
|
120
|
-
AutoSizeColumns: true,
|
|
121
|
-
},
|
|
122
|
-
],
|
|
123
|
-
},
|
|
124
|
-
Theme: {
|
|
125
|
-
CurrentTheme: adaptable.api.themeApi.getCurrentTheme(),
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
};
|
|
129
|
-
const firstColumn = {
|
|
130
|
-
field: transposedFirstColumnHeader, // use the column friendly name
|
|
131
|
-
headerName: adaptable.api.columnApi.getFriendlyNameForColumnId(syntheticTransposedByColumnId),
|
|
132
|
-
};
|
|
133
|
-
const agGridOptions = {
|
|
134
|
-
loading: false,
|
|
135
|
-
defaultColDef: {
|
|
136
|
-
floatingFilter: false,
|
|
137
|
-
filter: false,
|
|
138
|
-
sortable: true,
|
|
139
|
-
resizable: true,
|
|
140
|
-
enableRowGroup: false,
|
|
141
|
-
editable: false,
|
|
142
|
-
enablePivot: false,
|
|
143
|
-
enableValue: false,
|
|
144
|
-
lockPinned: true,
|
|
145
|
-
menuTabs: [],
|
|
146
|
-
width: 120,
|
|
147
|
-
},
|
|
148
|
-
columnDefs: [
|
|
149
|
-
{
|
|
150
|
-
field: transposedFirstColumnField,
|
|
151
|
-
hide: true,
|
|
152
|
-
},
|
|
153
|
-
firstColumn,
|
|
154
|
-
...transposedRowsAndColumns.transposedColumns.map((col) => {
|
|
155
|
-
return {
|
|
156
|
-
field: col.colId,
|
|
157
|
-
type: null,
|
|
158
|
-
headerName: col.header,
|
|
159
|
-
};
|
|
160
|
-
}),
|
|
161
|
-
],
|
|
162
|
-
rowData: transposedRowsAndColumns.transposedRows,
|
|
163
|
-
sideBar: false,
|
|
164
|
-
};
|
|
170
|
+
const hostOptions = adaptable.adaptableOptions;
|
|
171
|
+
const adaptableOptions = buildTransposedAdaptableOptions({
|
|
172
|
+
hostOptions,
|
|
173
|
+
transposedRowsAndColumns,
|
|
174
|
+
currentTheme: adaptable.api.themeApi.getCurrentTheme(),
|
|
175
|
+
});
|
|
176
|
+
const gridOptions = buildTransposedGridOptions({
|
|
177
|
+
transposedRowsAndColumns,
|
|
178
|
+
elevatedColumnId,
|
|
179
|
+
adaptableApi: adaptable.api,
|
|
180
|
+
});
|
|
165
181
|
const modules = adaptable.agGridModulesAdapter.getAgGridRegisteredModules();
|
|
166
182
|
AdaptableAgGrid_1.AdaptableAgGrid._initInternal({
|
|
167
183
|
variant: 'vanilla',
|
|
168
184
|
adaptableOptions,
|
|
169
|
-
gridOptions
|
|
185
|
+
gridOptions,
|
|
170
186
|
modules,
|
|
171
187
|
}).then((adaptableApi) => {
|
|
172
188
|
transposedAdaptableApiRef.current = adaptableApi;
|
|
@@ -174,31 +190,21 @@ const TransposedPopup = (props) => {
|
|
|
174
190
|
transposedAdaptableApiRef.current?.themeApi.loadTheme(typeof event.theme === 'object' ? event.theme.Name : event.theme);
|
|
175
191
|
});
|
|
176
192
|
});
|
|
177
|
-
}, [
|
|
193
|
+
}, [elevatedColumnId, adaptable]);
|
|
178
194
|
React.useEffect(() => {
|
|
179
|
-
// destroy when closing the popup
|
|
180
195
|
return () => {
|
|
181
196
|
requestAnimationFrame(() => {
|
|
182
197
|
transposedAdaptableApiRef.current?.destroy({ unmount: true, destroyAgGrid: true });
|
|
183
198
|
});
|
|
184
199
|
};
|
|
185
200
|
}, []);
|
|
186
|
-
/**
|
|
187
|
-
* Need to get all data, manualy pivot the grid using the primary key.
|
|
188
|
-
*
|
|
189
|
-
* 1. get the data, and pivot using the primary key
|
|
190
|
-
* 2. create the col definitios, a col definition for each row
|
|
191
|
-
* 3. create the grid
|
|
192
|
-
*/
|
|
193
201
|
return (React.createElement(Flex_1.Flex, { flexDirection: "column", className: "twa:w-full twa:h-full" },
|
|
194
202
|
React.createElement(Panel_1.default, null,
|
|
195
203
|
React.createElement(FormLayout_1.default, null,
|
|
196
204
|
React.createElement(FormLayout_1.FormRow, { label: "Elevated Column" },
|
|
197
|
-
React.createElement(ColumnSelector_1.ColumnSelector, { value:
|
|
198
|
-
setSyntheticTransposedByColumnId(colId);
|
|
199
|
-
} })))),
|
|
205
|
+
React.createElement(ColumnSelector_1.ColumnSelector, { value: elevatedColumnId, onChange: setElevatedColumnId })))),
|
|
200
206
|
React.createElement(Flex_1.Flex, { className: "twa:h-full" },
|
|
201
|
-
React.createElement(Flex_1.Box, { id:
|
|
202
|
-
React.createElement(Flex_1.Box, { className: "twa:h-full twa:w-full", id:
|
|
207
|
+
React.createElement(Flex_1.Box, { id: ADAPTABLE_CONTAINER_ID }),
|
|
208
|
+
React.createElement(Flex_1.Box, { className: "twa:h-full twa:w-full", id: AG_GRID_CONTAINER_ID }))));
|
|
203
209
|
};
|
|
204
210
|
exports.TransposedPopup = TransposedPopup;
|
|
@@ -23,7 +23,7 @@ const isAggregationsSectionValid = (data) => {
|
|
|
23
23
|
AggFunc.type === 'weightedAverage')?.AggFunc
|
|
24
24
|
: null;
|
|
25
25
|
if (weightedAvg && !weightedAvg.weightedColumnId) {
|
|
26
|
-
return '
|
|
26
|
+
return 'Weighted Average requires a weight column to be selected.';
|
|
27
27
|
}
|
|
28
28
|
return true;
|
|
29
29
|
};
|
|
@@ -17,7 +17,7 @@ const Flex_1 = require("../../../../components/Flex");
|
|
|
17
17
|
const isColumnFiltersValid = (layout) => {
|
|
18
18
|
const invalidColumnFilters = (layout.ColumnFilters ?? [])?.filter((columnFilter) => !columnFilter?.Predicates[0]?.PredicateId);
|
|
19
19
|
if (invalidColumnFilters.length > 0) {
|
|
20
|
-
return 'Please select a
|
|
20
|
+
return 'Please select a predicate for each column filter.';
|
|
21
21
|
}
|
|
22
22
|
return true;
|
|
23
23
|
};
|
|
@@ -17,7 +17,7 @@ const isGridFiltersValid = (layout, api) => {
|
|
|
17
17
|
return true;
|
|
18
18
|
}
|
|
19
19
|
return (api.internalApi.getQueryLanguageService().validateBoolean(expression, ModuleConstants_1.GridFilterModuleId)
|
|
20
|
-
.isValid || '
|
|
20
|
+
.isValid || 'The expression is not valid.');
|
|
21
21
|
};
|
|
22
22
|
exports.isGridFiltersValid = isGridFiltersValid;
|
|
23
23
|
const GridFilterSectionSummary = () => {
|
|
@@ -220,7 +220,7 @@ const isPivotAggregationsSectionValid = (data) => {
|
|
|
220
220
|
.find((agg) => typeof agg === 'object' && agg.type === 'weightedAverage')
|
|
221
221
|
: null;
|
|
222
222
|
if (weightedAvg && !weightedAvg.weightedColumnId) {
|
|
223
|
-
return '
|
|
223
|
+
return 'Weighted Average requires a weight column to be selected.';
|
|
224
224
|
}
|
|
225
225
|
return true;
|
|
226
226
|
};
|
|
@@ -309,12 +309,12 @@ const PivotAggregationsSection = (props) => {
|
|
|
309
309
|
}
|
|
310
310
|
const firstAggFuncName = (0, AggregationColumns_1.getAggFuncName)(aggregationColumns[0].AggFunc);
|
|
311
311
|
if (layout.PivotAggregationColumns?.some((aggCol) => (0, AggregationColumns_1.getAggFuncName)(aggCol.AggFunc) !== firstAggFuncName)) {
|
|
312
|
-
return '
|
|
312
|
+
return 'All columns must use the same aggregation function.';
|
|
313
313
|
}
|
|
314
314
|
// check that no Aggregation Total Column is enabled
|
|
315
315
|
const hasAggregationTotalColumn = aggregationColumns.some((aggCol) => aggCol.Total !== false && aggCol.Total != null);
|
|
316
316
|
if (hasAggregationTotalColumn) {
|
|
317
|
-
return '
|
|
317
|
+
return 'This option is not available when an Aggregation Total Column is present.';
|
|
318
318
|
}
|
|
319
319
|
return true;
|
|
320
320
|
};
|
|
@@ -28,7 +28,7 @@ const areSummaryRowsValid = (layout) => {
|
|
|
28
28
|
layout.RowSummaries?.find((rowSummary) => {
|
|
29
29
|
for (const [_, fn] of Object.entries(rowSummary.ColumnsMap ?? {})) {
|
|
30
30
|
if (!fn) {
|
|
31
|
-
valid = '
|
|
31
|
+
valid = 'Each row summary column requires an aggregation function.';
|
|
32
32
|
return true;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -11,11 +11,11 @@ const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
|
|
|
11
11
|
const Flex_1 = require("../../../components/Flex");
|
|
12
12
|
const isValidNamedQueryExpression = (data, api) => {
|
|
13
13
|
if (!data.BooleanExpression) {
|
|
14
|
-
return '
|
|
14
|
+
return 'An expression is required.';
|
|
15
15
|
}
|
|
16
16
|
const valid = api.expressionApi.isValidBooleanExpression(data.BooleanExpression, ModuleConstants_1.NamedQueryModuleId);
|
|
17
17
|
if (!valid) {
|
|
18
|
-
return '
|
|
18
|
+
return 'The query is not a valid Boolean expression.';
|
|
19
19
|
}
|
|
20
20
|
return valid;
|
|
21
21
|
};
|
|
@@ -29,16 +29,16 @@ const PlusMinusSettingsSummary = (props) => {
|
|
|
29
29
|
exports.PlusMinusSettingsSummary = PlusMinusSettingsSummary;
|
|
30
30
|
const isSettingsValid = (hasCondition) => (data, api, context) => {
|
|
31
31
|
if (!data.Name?.trim()) {
|
|
32
|
-
return '
|
|
32
|
+
return 'A name is required.';
|
|
33
33
|
}
|
|
34
34
|
const allPlusMinusNudges = api.plusMinusApi.getAllPlusMinus();
|
|
35
35
|
const isDuplicateName = allPlusMinusNudges.some((nudge) => nudge.Name === data.Name && nudge.Uuid !== data.Uuid);
|
|
36
36
|
if (isDuplicateName) {
|
|
37
|
-
return 'A Plus
|
|
37
|
+
return 'A Plus/Minus Nudge with this name already exists.';
|
|
38
38
|
}
|
|
39
39
|
if (hasCondition) {
|
|
40
40
|
if (!data?.Rule?.BooleanExpression) {
|
|
41
|
-
return '
|
|
41
|
+
return 'A valid rule is required.';
|
|
42
42
|
}
|
|
43
43
|
const ruleValidation = (0, Utilities_1.isAdaptableRuleValid)(data, api, context);
|
|
44
44
|
if (typeof ruleValidation === 'string') {
|
|
@@ -46,10 +46,10 @@ const isSettingsValid = (hasCondition) => (data, api, context) => {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
if (typeof data.NudgeValue !== 'number') {
|
|
49
|
-
return '
|
|
49
|
+
return 'A nudge value is required.';
|
|
50
50
|
}
|
|
51
51
|
if (data.NudgeValue === 0) {
|
|
52
|
-
return 'Nudge value must be
|
|
52
|
+
return 'Nudge value must not be zero.';
|
|
53
53
|
}
|
|
54
54
|
return true;
|
|
55
55
|
};
|
|
@@ -57,7 +57,7 @@ const ScheduleSettingsReminder = (props) => {
|
|
|
57
57
|
React.createElement(Tabs_1.Tabs.Content, null,
|
|
58
58
|
React.createElement(FormLayout_1.default, null,
|
|
59
59
|
React.createElement(FormLayout_1.FormRow, { label: "Name" },
|
|
60
|
-
React.createElement(Input_1.default, { "data-name": "schedule-name", className: "twa:w-[300px]", onChange: handleNameChange, placeholder: "Enter
|
|
60
|
+
React.createElement(Input_1.default, { "data-name": "schedule-name", className: "twa:w-[300px]", onChange: handleNameChange, placeholder: "Enter Reminder Name", type: "string", value: props.reminderSchedule?.Name ?? '' })),
|
|
61
61
|
React.createElement(FormLayout_1.FormRow, { label: "" },
|
|
62
62
|
React.createElement(Flex_1.Box, { className: "twa:h-2" })),
|
|
63
63
|
React.createElement(FormLayout_1.FormRow, { label: "Header" },
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { AdaptableApi } from '../../../../Api/AdaptableApi';
|
|
2
2
|
import { BaseSchedule } from '../../../../AdaptableState/Common/Schedule';
|
|
3
|
-
export declare const isSettingsValid: (schedule: BaseSchedule, api: AdaptableApi) => true | "
|
|
3
|
+
export declare const isSettingsValid: (schedule: BaseSchedule, api: AdaptableApi) => true | "A name is required." | "A Schedule with this name already exists." | "Please select a message type." | "A reminder header is required." | "A reminder message is required." | "Please select a report." | "Please select a report format." | "Please select a report folder." | "Please select a report page.";
|
|
@@ -7,50 +7,50 @@ const StringExtensions_1 = tslib_1.__importDefault(require("../../../../Utilitie
|
|
|
7
7
|
const isSettingsValid = (schedule, api) => {
|
|
8
8
|
// Validate Name - mandatory and unique
|
|
9
9
|
if (!schedule.Name?.trim()) {
|
|
10
|
-
return '
|
|
10
|
+
return 'A name is required.';
|
|
11
11
|
}
|
|
12
12
|
const allSchedules = api.scheduleApi.getSchedules();
|
|
13
13
|
const isDuplicateName = allSchedules.some((s) => s.Name === schedule.Name && s.Uuid !== schedule.Uuid);
|
|
14
14
|
if (isDuplicateName) {
|
|
15
|
-
return 'A Schedule with this name already exists';
|
|
15
|
+
return 'A Schedule with this name already exists.';
|
|
16
16
|
}
|
|
17
17
|
if (schedule.ScheduleType === Enums_1.ScheduleType.Reminder) {
|
|
18
18
|
const reminder = schedule;
|
|
19
19
|
if (!reminder.MessageType) {
|
|
20
|
-
return '
|
|
20
|
+
return 'Please select a message type.';
|
|
21
21
|
}
|
|
22
22
|
if (StringExtensions_1.default.IsNullOrEmpty(reminder?.Header)) {
|
|
23
|
-
return '
|
|
23
|
+
return 'A reminder header is required.';
|
|
24
24
|
}
|
|
25
25
|
if (StringExtensions_1.default.IsNullOrEmpty(reminder?.Message)) {
|
|
26
|
-
return '
|
|
26
|
+
return 'A reminder message is required.';
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
if (schedule.ScheduleType === Enums_1.ScheduleType.Report) {
|
|
30
30
|
const report = schedule;
|
|
31
31
|
if (StringExtensions_1.default.IsNullOrEmpty(report?.ReportName)) {
|
|
32
|
-
return '
|
|
32
|
+
return 'Please select a report.';
|
|
33
33
|
}
|
|
34
34
|
if (StringExtensions_1.default.IsNullOrEmpty(report?.ReportFormat)) {
|
|
35
|
-
return '
|
|
35
|
+
return 'Please select a report format.';
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
if (schedule.ScheduleType === Enums_1.ScheduleType.ipushpull) {
|
|
39
39
|
const ipushpull = schedule;
|
|
40
40
|
if (StringExtensions_1.default.IsNullOrEmpty(ipushpull?.IPushPullReport?.ReportName)) {
|
|
41
|
-
return '
|
|
41
|
+
return 'Please select a report.';
|
|
42
42
|
}
|
|
43
43
|
if (StringExtensions_1.default.IsNullOrEmpty(ipushpull?.IPushPullReport?.Folder)) {
|
|
44
|
-
return '
|
|
44
|
+
return 'Please select a report folder.';
|
|
45
45
|
}
|
|
46
46
|
if (StringExtensions_1.default.IsNullOrEmpty(ipushpull?.IPushPullReport?.Page)) {
|
|
47
|
-
return '
|
|
47
|
+
return 'Please select a report page.';
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
if (schedule.ScheduleType === Enums_1.ScheduleType.OpenFin) {
|
|
51
51
|
const openfin = schedule;
|
|
52
52
|
if (StringExtensions_1.default.IsNullOrEmpty(openfin?.OpenFinReport?.ReportName)) {
|
|
53
|
-
return '
|
|
53
|
+
return 'Please select a report.';
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
return true;
|
|
@@ -10,7 +10,7 @@ const handleExportState = (type, name, state, api) => {
|
|
|
10
10
|
Helper_1.default.copyToClipboard(stringifiedState);
|
|
11
11
|
break;
|
|
12
12
|
case 'Console':
|
|
13
|
-
api.consoleLog('Adaptable
|
|
13
|
+
api.consoleLog('Adaptable state:', state);
|
|
14
14
|
break;
|
|
15
15
|
case 'JSON':
|
|
16
16
|
const jsonFileName = name + '.json';
|
|
@@ -20,7 +20,7 @@ const renderStyledColumnColumnSummary = (data) => {
|
|
|
20
20
|
exports.renderStyledColumnColumnSummary = renderStyledColumnColumnSummary;
|
|
21
21
|
const isValidStyledColumnColumn = (data) => {
|
|
22
22
|
if (!data.ColumnId) {
|
|
23
|
-
return '
|
|
23
|
+
return 'Please select a column for the Styled Column.';
|
|
24
24
|
}
|
|
25
25
|
return true;
|
|
26
26
|
};
|
package/src/View/UIHelper.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { Schedule, Weekday } from '../AdaptableState/Common/Schedule';
|
|
|
6
6
|
import { AdaptableColumnDataType, AdaptableSystemIconName, AdaptableOptions } from '../types';
|
|
7
7
|
import { AdaptableAlert } from '../AdaptableState/Common/AdaptableAlert';
|
|
8
8
|
import { AdaptableMessageType } from '../AdaptableState/Common/AdaptableMessageType';
|
|
9
|
+
import type { ContainerContext } from '../AdaptableOptions/ContainerOptions';
|
|
9
10
|
export declare const BLACK: string;
|
|
10
11
|
export declare const WHITE: string;
|
|
11
12
|
export declare const LIGHT_GRAY: string;
|
|
@@ -31,7 +32,7 @@ export declare function getDefaultColors(): string[];
|
|
|
31
32
|
export declare function getEmptyConfigState(): EditableConfigEntityState;
|
|
32
33
|
export declare function getDescriptionForDataType(dataType: AdaptableColumnDataType): "text" | "number" | "date";
|
|
33
34
|
export declare function getPlaceholderForDataType(dataType: AdaptableColumnDataType): "Enter Value" | "Enter Number" | "Enter Date";
|
|
34
|
-
export declare function getModalContainer(adaptableOptions: AdaptableOptions, document: Document): HTMLElement;
|
|
35
|
+
export declare function getModalContainer(adaptableOptions: AdaptableOptions, document: Document, context?: ContainerContext): HTMLElement;
|
|
35
36
|
export declare function IsEmptyStyle(style: AdaptableStyle): boolean;
|
|
36
37
|
export declare function IsNotEmptyStyle(style: AdaptableStyle): boolean;
|
|
37
38
|
export declare function getMessageTypeByStatusColour(statusColour: StatusColour): AdaptableMessageType;
|
package/src/View/UIHelper.js
CHANGED
|
@@ -35,6 +35,7 @@ const EditableConfigEntityState_1 = require("./Components/SharedProps/EditableCo
|
|
|
35
35
|
const Enums_1 = require("../AdaptableState/Common/Enums");
|
|
36
36
|
const StringExtensions_1 = require("../Utilities/Extensions/StringExtensions");
|
|
37
37
|
const ArrayExtensions_1 = tslib_1.__importDefault(require("../Utilities/Extensions/ArrayExtensions"));
|
|
38
|
+
const resolveContainerElement_1 = require("../Utilities/resolveContainerElement");
|
|
38
39
|
exports.BLACK = 'Black';
|
|
39
40
|
exports.WHITE = 'White';
|
|
40
41
|
exports.LIGHT_GRAY = 'LightGray';
|
|
@@ -153,19 +154,12 @@ function getPlaceholderForDataType(dataType) {
|
|
|
153
154
|
return 'Enter Date';
|
|
154
155
|
}
|
|
155
156
|
}
|
|
156
|
-
function getModalContainer(adaptableOptions, document) {
|
|
157
|
-
let modalContainer;
|
|
158
|
-
if (
|
|
159
|
-
|
|
160
|
-
modalContainer
|
|
161
|
-
|
|
162
|
-
? document.getElementById(adaptableOptions.containerOptions.modalContainer)
|
|
163
|
-
: adaptableOptions.containerOptions.modalContainer;
|
|
164
|
-
if (modalContainer) {
|
|
165
|
-
const modalContainerClassName = ' modal-container';
|
|
166
|
-
if (!modalContainer.className.includes(modalContainerClassName)) {
|
|
167
|
-
modalContainer.className += modalContainerClassName;
|
|
168
|
-
}
|
|
157
|
+
function getModalContainer(adaptableOptions, document, context) {
|
|
158
|
+
let modalContainer = (0, resolveContainerElement_1.resolveContainerElement)(adaptableOptions.containerOptions.modalContainer, context, document);
|
|
159
|
+
if (modalContainer) {
|
|
160
|
+
const modalContainerClassName = ' modal-container';
|
|
161
|
+
if (!modalContainer.className.includes(modalContainerClassName)) {
|
|
162
|
+
modalContainer.className += modalContainerClassName;
|
|
169
163
|
}
|
|
170
164
|
}
|
|
171
165
|
if (!modalContainer) {
|
|
@@ -456,7 +450,7 @@ function getAdaptableToolPanelWidth() {
|
|
|
456
450
|
return getNumericCSSVariableValue(getCSSVariableValue('--ab-cmp-toolpanel__width'), 200);
|
|
457
451
|
}
|
|
458
452
|
function getSimpleButtonPaddingWidth() {
|
|
459
|
-
return getNumericCSSVariableValue(getCSSVariableValue('--ab-space
|
|
453
|
+
return getNumericCSSVariableValue(getCSSVariableValue('--ab-base-space'), 4);
|
|
460
454
|
}
|
|
461
455
|
function getCSSVariableValue(cssVariable) {
|
|
462
456
|
if (!isBrowserDocumentAvailable()) {
|