@adaptabletools/adaptable-cjs 20.3.0 → 21.0.0-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/agGrid.d.ts +2 -1
- package/agGrid.js +3 -1
- package/base.css +36 -15
- package/base.css.map +1 -1
- package/icons/add-circle.svg +1 -0
- package/icons/add.svg +1 -0
- package/icons/alert.svg +1 -0
- package/icons/align-center.svg +1 -0
- package/icons/align-justify.svg +1 -0
- package/icons/align-left.svg +1 -0
- package/icons/align-right.svg +1 -0
- package/icons/arrow-down-long.svg +1 -0
- package/icons/arrow-down.svg +1 -0
- package/icons/arrow-expand.svg +1 -0
- package/icons/arrow-left.svg +1 -0
- package/icons/arrow-right.svg +1 -0
- package/icons/arrow-up-long.svg +1 -0
- package/icons/arrow-up.svg +1 -0
- package/icons/assignment.svg +1 -0
- package/icons/badge.svg +1 -0
- package/icons/bold.svg +1 -0
- package/icons/boolean-list.svg +1 -0
- package/icons/brain.svg +1 -0
- package/icons/broadcast.svg +1 -0
- package/icons/brush.svg +1 -0
- package/icons/building.svg +1 -0
- package/icons/calculated-column.svg +1 -0
- package/icons/calendar.svg +1 -0
- package/icons/call.svg +1 -0
- package/icons/case-lower.svg +1 -0
- package/icons/case-sentence.svg +1 -0
- package/icons/case-upper.svg +1 -0
- package/icons/cells.svg +1 -0
- package/icons/chart.svg +1 -0
- package/icons/chat.svg +1 -0
- package/icons/check-circle.svg +1 -0
- package/icons/check.svg +1 -0
- package/icons/checked.svg +1 -0
- package/icons/clipboard.svg +1 -0
- package/icons/clone.svg +1 -0
- package/icons/close.svg +1 -0
- package/icons/cloud-upload.svg +1 -0
- package/icons/collapse-all.svg +1 -0
- package/icons/collapse.svg +1 -0
- package/icons/color-palette.svg +1 -0
- package/icons/column-add.svg +1 -0
- package/icons/column-outline.svg +1 -0
- package/icons/columns.svg +1 -0
- package/icons/comment.svg +1 -0
- package/icons/comments.svg +1 -0
- package/icons/contact.svg +1 -0
- package/icons/contains.svg +1 -0
- package/icons/copy.svg +1 -0
- package/icons/csv.svg +1 -0
- package/icons/dashboard.svg +1 -0
- package/icons/data-set.svg +1 -0
- package/icons/date-range.svg +1 -0
- package/icons/delete.svg +1 -0
- package/icons/division.svg +1 -0
- package/icons/dock.svg +1 -0
- package/icons/dollar.svg +1 -0
- package/icons/download.svg +1 -0
- package/icons/downloaded.svg +1 -0
- package/icons/drag.svg +1 -0
- package/icons/edit-table.svg +1 -0
- package/icons/edit.svg +1 -0
- package/icons/ends-with.svg +1 -0
- package/icons/equals.svg +1 -0
- package/icons/equation.svg +1 -0
- package/icons/error.svg +1 -0
- package/icons/excel.svg +1 -0
- package/icons/expand-all.svg +1 -0
- package/icons/expand.svg +1 -0
- package/icons/exponent.svg +1 -0
- package/icons/export-data.svg +1 -0
- package/icons/export.svg +1 -0
- package/icons/fast-backward.svg +1 -0
- package/icons/fast-forward.svg +1 -0
- package/icons/fdc3.svg +1 -0
- package/icons/filled-circle.svg +1 -0
- package/icons/filter-list.svg +1 -0
- package/icons/filter-off.svg +1 -0
- package/icons/filter.svg +1 -0
- package/icons/flag.svg +1 -0
- package/icons/folder-open.svg +1 -0
- package/icons/folder-shared.svg +1 -0
- package/icons/folder.svg +1 -0
- package/icons/function.svg +1 -0
- package/icons/gradient.svg +1 -0
- package/icons/greater-than-or-equal.svg +1 -0
- package/icons/greater-than.svg +1 -0
- package/icons/grid-filter.svg +1 -0
- package/icons/grid-info.svg +1 -0
- package/icons/grid.svg +1 -0
- package/icons/history.svg +1 -0
- package/icons/home.svg +1 -0
- package/icons/horizontal-lines.svg +1 -0
- package/icons/import-export.svg +1 -0
- package/icons/import.svg +1 -0
- package/icons/info.svg +1 -0
- package/icons/interactions.svg +1 -0
- package/icons/italic.svg +1 -0
- package/icons/json.svg +1 -0
- package/icons/laptop.svg +1 -0
- package/icons/less-than-or-equal.svg +1 -0
- package/icons/less-than.svg +1 -0
- package/icons/lightning.svg +1 -0
- package/icons/link.svg +1 -0
- package/icons/list.svg +1 -0
- package/icons/logout.svg +1 -0
- package/icons/mail.svg +1 -0
- package/icons/menu.svg +1 -0
- package/icons/minus.svg +1 -0
- package/icons/money.svg +1 -0
- package/icons/multiplication.svg +1 -0
- package/icons/newpage.svg +1 -0
- package/icons/news.svg +1 -0
- package/icons/not-contains.svg +1 -0
- package/icons/not-equal.svg +1 -0
- package/icons/note.svg +1 -0
- package/icons/open-in-new.svg +1 -0
- package/icons/order.svg +1 -0
- package/icons/organisation.svg +1 -0
- package/icons/overline.svg +1 -0
- package/icons/paperclip.svg +1 -0
- package/icons/pause.svg +1 -0
- package/icons/percent-tag.svg +1 -0
- package/icons/percent.svg +1 -0
- package/icons/person.svg +1 -0
- package/icons/pie-chart.svg +1 -0
- package/icons/play.svg +1 -0
- package/icons/plus.svg +1 -0
- package/icons/quote.svg +1 -0
- package/icons/refresh.svg +1 -0
- package/icons/regex.svg +1 -0
- package/icons/reminder.svg +1 -0
- package/icons/resume.svg +1 -0
- package/icons/rows.svg +1 -0
- package/icons/save.svg +1 -0
- package/icons/schedule.svg +1 -0
- package/icons/science.svg +1 -0
- package/icons/search-table.svg +1 -0
- package/icons/search.svg +1 -0
- package/icons/select-all.svg +1 -0
- package/icons/select-fwd.svg +1 -0
- package/icons/select-off.svg +1 -0
- package/icons/settings.svg +1 -0
- package/icons/sort-asc.svg +1 -0
- package/icons/sort-desc.svg +1 -0
- package/icons/spanner.svg +1 -0
- package/icons/spark-line.svg +1 -0
- package/icons/starts-with.svg +1 -0
- package/icons/statusbar.svg +1 -0
- package/icons/stop.svg +1 -0
- package/icons/strikethrough.svg +1 -0
- package/icons/styled-grid.svg +1 -0
- package/icons/sync.svg +1 -0
- package/icons/tab-unselected.svg +1 -0
- package/icons/target.svg +1 -0
- package/icons/theme.svg +1 -0
- package/icons/traffic-lights.svg +1 -0
- package/icons/triangle-down.svg +1 -0
- package/icons/triangle-up.svg +1 -0
- package/icons/unchecked.svg +1 -0
- package/icons/underline.svg +1 -0
- package/icons/undo.svg +1 -0
- package/icons/unfilled-circle.svg +1 -0
- package/icons/upload.svg +1 -0
- package/icons/visibility-off-bold.svg +1 -0
- package/icons/visibility-off.svg +1 -0
- package/icons/visibility-on-bold.svg +1 -0
- package/icons/visibility-on.svg +1 -0
- package/icons/warning.svg +1 -0
- package/index.css +32 -15
- package/index.css.map +1 -1
- package/package.json +2 -2
- package/src/AdaptableInterfaces/IAdaptable.d.ts +10 -5
- package/src/AdaptableOptions/ColumnOptions.d.ts +38 -38
- package/src/AdaptableOptions/DefaultAdaptableOptions.js +3 -2
- package/src/AdaptableOptions/EditOptions.d.ts +4 -7
- package/src/AdaptableOptions/FilterOptions.d.ts +50 -15
- package/src/AdaptableOptions/LayoutOptions.d.ts +8 -21
- package/src/AdaptableOptions/PredicateOptions.d.ts +1 -1
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +1 -1
- package/src/AdaptableState/Common/AdaptableColumn.d.ts +7 -0
- package/src/AdaptableState/Common/AdaptablePredicate.js +2 -2
- package/src/AdaptableState/Common/CustomWindowConfig.d.ts +2 -2
- package/src/AdaptableState/Common/ExtendedLayout.d.ts +50 -0
- package/src/AdaptableState/FormatColumnState.d.ts +8 -1
- package/src/AdaptableState/InternalState.d.ts +1 -1
- package/src/AdaptableState/LayoutState.d.ts +26 -6
- package/src/AdaptableState/Selection/GridCell.d.ts +32 -0
- package/src/AdaptableState/StyledColumnState.d.ts +2 -2
- package/src/Api/AlertApi.d.ts +5 -11
- package/src/Api/ColumnApi.d.ts +17 -1
- package/src/Api/ColumnFilterApi.d.ts +32 -2
- package/src/Api/CustomSortApi.d.ts +5 -10
- package/src/Api/FlashingCellApi.d.ts +10 -6
- package/src/Api/FormatColumnApi.d.ts +8 -18
- package/src/Api/Implementation/AlertApiImpl.d.ts +6 -9
- package/src/Api/Implementation/AlertApiImpl.js +7 -6
- package/src/Api/Implementation/ApiBase.d.ts +2 -12
- package/src/Api/Implementation/ApiBase.js +5 -5
- package/src/Api/Implementation/ColumnApiImpl.d.ts +5 -2
- package/src/Api/Implementation/ColumnApiImpl.js +59 -23
- package/src/Api/Implementation/ColumnFilterApiImpl.d.ts +7 -1
- package/src/Api/Implementation/ColumnFilterApiImpl.js +76 -3
- package/src/Api/Implementation/ColumnScopeApiImpl.js +10 -2
- package/src/Api/Implementation/CustomSortApiImpl.d.ts +5 -10
- package/src/Api/Implementation/CustomSortApiImpl.js +6 -4
- package/src/Api/Implementation/FlashingCellApiImpl.d.ts +7 -6
- package/src/Api/Implementation/FlashingCellApiImpl.js +11 -8
- package/src/Api/Implementation/FormatColumnApiImpl.d.ts +8 -18
- package/src/Api/Implementation/FormatColumnApiImpl.js +10 -9
- package/src/Api/Implementation/LayoutApiImpl.d.ts +3 -2
- package/src/Api/Implementation/LayoutApiImpl.js +101 -7
- package/src/Api/Implementation/LayoutHelpers.d.ts +1 -0
- package/src/Api/Implementation/LayoutHelpers.js +25 -5
- package/src/Api/Implementation/PlusMinusApiImpl.d.ts +7 -5
- package/src/Api/Implementation/PlusMinusApiImpl.js +10 -7
- package/src/Api/Implementation/ScheduleApiImpl.d.ts +9 -16
- package/src/Api/Implementation/ScheduleApiImpl.js +15 -17
- package/src/Api/Implementation/ShortcutApiImpl.d.ts +5 -6
- package/src/Api/Implementation/ShortcutApiImpl.js +7 -8
- package/src/Api/Implementation/StyledColumnApiImpl.d.ts +7 -8
- package/src/Api/Implementation/StyledColumnApiImpl.js +12 -9
- package/src/Api/Implementation/TeamSharingApiImpl.js +1 -4
- package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +2 -1
- package/src/Api/Implementation/UserInterfaceApiImpl.js +10 -9
- package/src/Api/Internal/AdaptableInternalApi.d.ts +2 -0
- package/src/Api/Internal/AdaptableInternalApi.js +3 -0
- package/src/Api/Internal/AlertInternalApi.d.ts +6 -6
- package/src/Api/Internal/AlertInternalApi.js +10 -10
- package/src/Api/Internal/ColumnFilterInternalApi.d.ts +13 -0
- package/src/Api/Internal/ColumnFilterInternalApi.js +93 -1
- package/src/Api/Internal/ColumnInternalApi.d.ts +2 -1
- package/src/Api/Internal/ColumnInternalApi.js +4 -0
- package/src/Api/Internal/DashboardInternalApi.js +1 -1
- package/src/Api/Internal/EntitlementInternalApi.d.ts +1 -0
- package/src/Api/Internal/EntitlementInternalApi.js +8 -0
- package/src/Api/Internal/ExportInternalApi.js +1 -1
- package/src/Api/Internal/FlashingCellInternalApi.js +1 -1
- package/src/Api/Internal/FormatColumnInternalApi.d.ts +8 -11
- package/src/Api/Internal/FormatColumnInternalApi.js +13 -13
- package/src/Api/Internal/GridInternalApi.d.ts +7 -10
- package/src/Api/Internal/GridInternalApi.js +76 -27
- package/src/Api/Internal/LayoutInternalApi.d.ts +5 -5
- package/src/Api/Internal/LayoutInternalApi.js +42 -5
- package/src/Api/Internal/PredicateInternalApi.d.ts +2 -6
- package/src/Api/Internal/PredicateInternalApi.js +4 -6
- package/src/Api/Internal/UserInterfaceInternalApi.d.ts +1 -0
- package/src/Api/Internal/UserInterfaceInternalApi.js +10 -3
- package/src/Api/LayoutApi.d.ts +7 -2
- package/src/Api/PlusMinusApi.d.ts +11 -7
- package/src/Api/ScheduleApi.d.ts +9 -16
- package/src/Api/ShortcutApi.d.ts +5 -6
- package/src/Api/StyledColumnApi.d.ts +10 -7
- package/src/Api/UserInterfaceApi.d.ts +5 -6
- package/src/Redux/ActionsReducers/InternalRedux.d.ts +4 -4
- package/src/Redux/ActionsReducers/InternalRedux.js +10 -10
- package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +7 -0
- package/src/Redux/ActionsReducers/StyledColumnRedux.js +15 -1
- package/src/Redux/Store/AdaptableStore.js +10 -10
- package/src/Strategy/AdaptableModuleBase.d.ts +14 -4
- package/src/Strategy/AdaptableModuleBase.js +46 -9
- package/src/Strategy/AlertModule.d.ts +3 -4
- package/src/Strategy/AlertModule.js +7 -4
- package/src/Strategy/CalculatedColumnModule.js +2 -2
- package/src/Strategy/CellSummaryModule.js +2 -2
- package/src/Strategy/ChartingModule.d.ts +3 -1
- package/src/Strategy/ChartingModule.js +9 -3
- package/src/Strategy/ColumnFilterModule.d.ts +1 -1
- package/src/Strategy/ColumnFilterModule.js +31 -15
- package/src/Strategy/ColumnInfoModule.js +2 -2
- package/src/Strategy/CommentModule.d.ts +1 -1
- package/src/Strategy/CommentModule.js +3 -3
- package/src/Strategy/CustomSortModule.d.ts +3 -4
- package/src/Strategy/CustomSortModule.js +2 -2
- package/src/Strategy/DashboardModule.js +1 -1
- package/src/Strategy/DataChangeHistoryModule.d.ts +2 -1
- package/src/Strategy/DataChangeHistoryModule.js +3 -10
- package/src/Strategy/DataImportModule.js +3 -3
- package/src/Strategy/ExportModule.js +1 -1
- package/src/Strategy/Fdc3Module.js +1 -1
- package/src/Strategy/FlashingCellModule.d.ts +3 -5
- package/src/Strategy/FlashingCellModule.js +3 -3
- package/src/Strategy/FormatColumnModule.d.ts +3 -4
- package/src/Strategy/FormatColumnModule.js +2 -2
- package/src/Strategy/FreeTextColumnModule.d.ts +1 -1
- package/src/Strategy/FreeTextColumnModule.js +2 -2
- package/src/Strategy/GridInfoModule.js +2 -2
- package/src/Strategy/Interface/IModule.d.ts +7 -3
- package/src/Strategy/LayoutModule.js +11 -11
- package/src/Strategy/NoteModule.d.ts +1 -1
- package/src/Strategy/NoteModule.js +3 -3
- package/src/Strategy/PlusMinusModule.d.ts +3 -4
- package/src/Strategy/PlusMinusModule.js +2 -2
- package/src/Strategy/QuickSearchModule.d.ts +2 -0
- package/src/Strategy/QuickSearchModule.js +9 -0
- package/src/Strategy/ScheduleModule.d.ts +3 -4
- package/src/Strategy/ScheduleModule.js +2 -2
- package/src/Strategy/SettingsPanelModule.js +1 -1
- package/src/Strategy/ShortcutModule.d.ts +3 -4
- package/src/Strategy/ShortcutModule.js +2 -2
- package/src/Strategy/StatusBarModule.d.ts +3 -2
- package/src/Strategy/StatusBarModule.js +6 -3
- package/src/Strategy/StyledColumnModule.d.ts +3 -4
- package/src/Strategy/StyledColumnModule.js +2 -2
- package/src/Strategy/SystemStatusModule.js +2 -2
- package/src/Strategy/TeamSharingModule.d.ts +1 -1
- package/src/Strategy/TeamSharingModule.js +5 -2
- package/src/Strategy/ToolPanelModule.d.ts +1 -1
- package/src/Strategy/ToolPanelModule.js +1 -4
- package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +1 -1
- package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +1 -0
- package/src/Utilities/Constants/DocumentationLinkConstants.js +2 -1
- package/src/Utilities/Extensions/ArrayExtensions.d.ts +15 -2
- package/src/Utilities/Extensions/ArrayExtensions.js +68 -15
- package/src/Utilities/ObjectFactory.js +3 -3
- package/src/Utilities/Services/AnnotationsService.js +1 -1
- package/src/Utilities/Services/Interface/IModuleService.d.ts +2 -1
- package/src/Utilities/Services/ModuleService.d.ts +3 -3
- package/src/Utilities/Services/ModuleService.js +18 -6
- package/src/View/AdaptableView.js +3 -1
- package/src/View/ColumnInfo/ColumnInfo.js +9 -3
- package/src/View/Components/AdaptableIconSelector/index.js +2 -3
- package/src/View/Components/ColumnFilter/AdaptableColumnFilter.d.ts +0 -1
- package/src/View/Components/ColumnFilter/AdaptableColumnFilter.js +2 -3
- package/src/View/Components/ColumnFilter/AdaptableFloatingFilter.d.ts +0 -2
- package/src/View/Components/ColumnFilter/AdaptableFloatingFilter.js +4 -7
- package/src/View/Components/ColumnFilter/ColumnFilter.js +11 -4
- package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +1 -1
- package/src/View/Components/ColumnFilter/FloatingFilter.js +1 -2
- package/src/View/Components/ColumnFilter/LayoutColumnFilter.js +1 -1
- package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +2 -2
- package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +2 -2
- package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.d.ts +1 -1
- package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.js +2 -2
- package/src/View/Components/ColumnFilter/utils.d.ts +2 -2
- package/src/View/Components/ColumnFilter/utils.js +6 -1
- package/src/View/Components/EntityRulesEditor/index.js +1 -2
- package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +5 -5
- package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -2
- package/src/View/Components/Selectors/BulkUpdateValueSelector.js +1 -1
- package/src/View/Components/Selectors/ColumnSelector.js +1 -1
- package/src/View/Components/Selectors/FieldSelector.js +1 -1
- package/src/View/Components/Selectors/PermittedValuesSelector.d.ts +1 -0
- package/src/View/Components/Selectors/PermittedValuesSelector.js +2 -2
- package/src/View/Dashboard/Dashboard.js +2 -2
- package/src/View/Dashboard/DashboardPopup.js +3 -1
- package/src/View/Dashboard/PinnedDashboard.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +9 -21
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +58 -21
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +11 -11
- package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +1 -1
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
- package/src/View/Layout/TransposedPopup.js +2 -2
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +64 -9
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +5 -5
- package/src/View/StatusBar/AdaptableStatusBar.js +1 -4
- package/src/View/StatusBar/StatusBarPopup.js +1 -1
- package/src/View/Theme/ThemeSelector.js +1 -1
- package/src/agGrid/AdaptableAgGrid.d.ts +11 -7
- package/src/agGrid/AdaptableAgGrid.js +251 -216
- package/src/agGrid/AdaptableFilterHandler.d.ts +18 -0
- package/src/agGrid/AdaptableFilterHandler.js +65 -0
- package/src/agGrid/AgGridAdapter.d.ts +3 -7
- package/src/agGrid/AgGridAdapter.js +13 -46
- package/src/agGrid/AgGridColumnAdapter.d.ts +2 -2
- package/src/agGrid/AgGridColumnAdapter.js +81 -36
- package/src/agGrid/AgGridFilterAdapter.d.ts +2 -0
- package/src/agGrid/AgGridFilterAdapter.js +53 -0
- package/src/agGrid/AgGridFloatingFilterAdapter.d.ts +2 -0
- package/src/agGrid/{FloatingFilterWrapper.js → AgGridFloatingFilterAdapter.js} +26 -37
- package/src/agGrid/AgGridModulesAdapter.d.ts +15 -0
- package/src/agGrid/AgGridModulesAdapter.js +70 -0
- package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +1 -1
- package/src/agGrid/editors/AdaptablePercentageEditor/InternalAdaptablePercentageEditor.js +1 -1
- package/src/components/Dialog/index.js +1 -1
- package/src/components/Dropdown/Arrows.js +2 -2
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.d.ts +1 -1
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +4 -4
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +1 -1
- package/src/components/FileDroppable/index.js +1 -1
- package/src/components/IconSelector/IconSelector.d.ts +2 -2
- package/src/components/OverlayTrigger/index.js +1 -1
- package/src/components/Select/Select.d.ts +1 -1
- package/src/components/Select/Select.js +114 -22
- package/src/components/icons/DefaultIcon.d.ts +0 -1
- package/src/components/icons/DefaultIcon.js +0 -8
- package/src/env.js +2 -2
- package/src/layout-manager/src/LayoutManagerModel.d.ts +6 -10
- package/src/layout-manager/src/index.d.ts +11 -3
- package/src/layout-manager/src/index.js +302 -87
- package/src/layout-manager/src/normalizeLayoutModel.js +7 -4
- package/src/layout-manager/src/simplifyLayoutModel.js +4 -4
- package/src/metamodel/adaptable.metamodel.d.ts +70 -19
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/migration/AdaptableUpgradeHelper.js +2 -0
- package/src/migration/VersionUpgrade17.js +1 -1
- package/src/migration/VersionUpgrade20.js +1 -0
- package/src/migration/VersionUpgrade21.d.ts +6 -0
- package/src/migration/VersionUpgrade21.js +28 -0
- package/src/types.d.ts +7 -8
- package/tsconfig.cjs.tsbuildinfo +1 -1
- package/src/AdaptableState/Common/ExtendedLayoutInfo.d.ts +0 -27
- package/src/agGrid/FilterWrapper.d.ts +0 -2
- package/src/agGrid/FilterWrapper.js +0 -136
- package/src/agGrid/FloatingFilterWrapper.d.ts +0 -2
- package/src/agGrid/agGridModules.d.ts +0 -3
- package/src/agGrid/agGridModules.js +0 -18
- package/src/agGrid/getAgGridFilterNotifyModelFn.d.ts +0 -2
- package/src/agGrid/getAgGridFilterNotifyModelFn.js +0 -21
- /package/src/AdaptableState/Common/{ExtendedLayoutInfo.js → ExtendedLayout.js} +0 -0
|
@@ -16,6 +16,16 @@ exports.PIVOT_ANY_TOTAL_COL_TYPE = 'pivotAnyTotal';
|
|
|
16
16
|
exports.PIVOT_GRAND_TOTAL_COL_TYPE = 'pivotGrandTotal';
|
|
17
17
|
exports.PIVOT_COLUMN_TOTAL_COL_TYPE = 'pivotColumnTotal';
|
|
18
18
|
exports.PIVOT_AGGREGATION_TOTAL_COL_TYPE = 'pivotAggregationTotal';
|
|
19
|
+
function mapColDefs(colDefs, mapFn) {
|
|
20
|
+
const iteration = (c) => {
|
|
21
|
+
if (c.children) {
|
|
22
|
+
return { ...c, children: mapColDefs(c.children, mapFn) };
|
|
23
|
+
}
|
|
24
|
+
const colDef = c;
|
|
25
|
+
return mapFn(colDef);
|
|
26
|
+
};
|
|
27
|
+
return colDefs.map(iteration);
|
|
28
|
+
}
|
|
19
29
|
function flattenColDefs(colDefs) {
|
|
20
30
|
const res = [];
|
|
21
31
|
const iteration = (c) => {
|
|
@@ -29,6 +39,25 @@ function flattenColDefs(colDefs) {
|
|
|
29
39
|
colDefs.forEach(iteration);
|
|
30
40
|
return res;
|
|
31
41
|
}
|
|
42
|
+
function findInColDefs(colDefs, callback) {
|
|
43
|
+
function iteration(colDefs) {
|
|
44
|
+
for (const c of colDefs) {
|
|
45
|
+
if (c.children) {
|
|
46
|
+
const res = iteration(c.children);
|
|
47
|
+
if (res) {
|
|
48
|
+
return res;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
const colDef = c;
|
|
53
|
+
if (callback(colDef)) {
|
|
54
|
+
return colDef;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return iteration(colDefs);
|
|
60
|
+
}
|
|
32
61
|
const DEFAULT_COLUMN_WIDTH = 200;
|
|
33
62
|
const DEFAULT_AGG_FUNC = 'sum';
|
|
34
63
|
/**
|
|
@@ -70,6 +99,47 @@ function isGridLayoutSame(options) {
|
|
|
70
99
|
}
|
|
71
100
|
return (0, isLayoutEqual_1.isLayoutEqual)(gridLayout, layout);
|
|
72
101
|
}
|
|
102
|
+
function getDefaultColumnSizeStateForColDef(colId, colDef, options) {
|
|
103
|
+
if (!colDef) {
|
|
104
|
+
colDef = findInColDefs(options?.columnDefs || [], (colDef) => colDef.colId ? colDef.colId === colId : colDef.field === colId);
|
|
105
|
+
if (!colDef) {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
let propsFromColType = {
|
|
110
|
+
...options?.defaultColDef,
|
|
111
|
+
};
|
|
112
|
+
if (options?.colTypes) {
|
|
113
|
+
// for col sizing, we want the columns sized as flex via col.type and defaultColDef
|
|
114
|
+
// to be sized as flex, even if they are not in the layout.ColumnSizing object
|
|
115
|
+
let colType = colDef?.type;
|
|
116
|
+
if (colType && !Array.isArray(colType)) {
|
|
117
|
+
colType = colType.split(',');
|
|
118
|
+
}
|
|
119
|
+
if (Array.isArray(colType) && colType.length) {
|
|
120
|
+
propsFromColType = colType.reduce((acc, type) => {
|
|
121
|
+
const props = options.colTypes[type];
|
|
122
|
+
if (props) {
|
|
123
|
+
return { ...acc, ...props };
|
|
124
|
+
}
|
|
125
|
+
return acc;
|
|
126
|
+
}, {});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (propsFromColType.flex) {
|
|
130
|
+
return {
|
|
131
|
+
colId,
|
|
132
|
+
flex: propsFromColType.flex,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
if (propsFromColType.width) {
|
|
136
|
+
return {
|
|
137
|
+
colId,
|
|
138
|
+
width: propsFromColType.width,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
73
143
|
class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
74
144
|
constructor(options) {
|
|
75
145
|
super({ debugId: options.debugId });
|
|
@@ -114,6 +184,9 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
114
184
|
}
|
|
115
185
|
};
|
|
116
186
|
this.columnDefsChanged = (colDefs) => {
|
|
187
|
+
if (this.suppressGlobalAgGridEventListener) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
117
190
|
this.warn('onColumnDefsChanged');
|
|
118
191
|
this.indexColumns();
|
|
119
192
|
if (this.currentLayout) {
|
|
@@ -197,7 +270,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
197
270
|
// this.initialColumnWidths[colId] = colDef.width ?? colDef.initialWidth ?? DEFAULT_COLUMN_WIDTH; // this.gridApi.getColumn(colId).getActualWidth();
|
|
198
271
|
// this.initialColumnWidths[colId] = col.getActualWidth();
|
|
199
272
|
this.initialColumnWidths[colId] = this.getDefaultColumnWidthForCol(colId, colDef);
|
|
200
|
-
const rowGroupColumns = this.gridApi.getRowGroupColumns();
|
|
273
|
+
const rowGroupColumns = this.gridApi.getRowGroupColumns() ?? [];
|
|
201
274
|
rowGroupColumns.forEach((column) => {
|
|
202
275
|
const colId = column.getColId();
|
|
203
276
|
// const col = this.gridApi.getColumn(colId);
|
|
@@ -256,7 +329,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
256
329
|
this.gridApi = options.gridApi;
|
|
257
330
|
}
|
|
258
331
|
getLayoutModelFromGrid() {
|
|
259
|
-
return this.
|
|
332
|
+
return this.isInPivotMode()
|
|
260
333
|
? this.getPivotLayoutModelFromGrid()
|
|
261
334
|
: this.getTableLayoutModelFromGrid();
|
|
262
335
|
}
|
|
@@ -269,13 +342,15 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
269
342
|
.filter((col) => !pivotResultColumnsSet.has(col.colId));
|
|
270
343
|
let PivotColumns = this.gridApi.getPivotColumns().map((col) => col.getColId());
|
|
271
344
|
const layout = this.getUndecidedLayoutModelFromGrid(columnState);
|
|
272
|
-
let
|
|
345
|
+
let ColumnSizing = layout.ColumnSizing || {};
|
|
273
346
|
//let's also include the column widths of the pivotResult columns
|
|
274
347
|
pivotResultColumns.forEach((col) => {
|
|
275
|
-
|
|
348
|
+
ColumnSizing[col.getColId()] = {
|
|
349
|
+
Width: col.getActualWidth(),
|
|
350
|
+
};
|
|
276
351
|
});
|
|
277
|
-
if (!Object.keys(
|
|
278
|
-
|
|
352
|
+
if (!Object.keys(ColumnSizing).length) {
|
|
353
|
+
ColumnSizing = undefined;
|
|
279
354
|
}
|
|
280
355
|
delete layout.TableColumns;
|
|
281
356
|
const pivotLayout = {
|
|
@@ -293,7 +368,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
293
368
|
PivotColumns,
|
|
294
369
|
ColumnPinning: layout.ColumnPinning,
|
|
295
370
|
ColumnSorts: layout.ColumnSorts,
|
|
296
|
-
|
|
371
|
+
ColumnSizing,
|
|
297
372
|
ColumnVisibility: layout.ColumnVisibility,
|
|
298
373
|
RowGroupValues: layout.RowGroupValues,
|
|
299
374
|
ColumnGroupValues: layout.ColumnGroupValues,
|
|
@@ -324,7 +399,6 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
324
399
|
getUndecidedLayoutModelFromGrid(columnState) {
|
|
325
400
|
let TableColumns = columnState.map((c) => c.colId);
|
|
326
401
|
// .filter((colId) => colId !== 'ag-Grid-SelectionColumn');
|
|
327
|
-
let ColumnWidths = {};
|
|
328
402
|
let ColumnSorts = [];
|
|
329
403
|
let RowGroupedColumns = [];
|
|
330
404
|
let RowGroupValues = undefined;
|
|
@@ -334,6 +408,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
334
408
|
const gridState = this.gridApi.getState();
|
|
335
409
|
const prevLayout = this.currentLayout;
|
|
336
410
|
const prevAggColumns = prevLayout?.TableAggregationColumns ?? prevLayout?.PivotAggregationColumns;
|
|
411
|
+
let ColumnSizing = { ...prevLayout?.ColumnSizing };
|
|
337
412
|
const prevAggColumnsMap = prevAggColumns?.reduce((acc, agg) => {
|
|
338
413
|
acc[agg.ColumnId] = agg;
|
|
339
414
|
return acc;
|
|
@@ -356,10 +431,19 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
356
431
|
this.initialColumnWidths[colId.replace(normalizeLayoutModel_1.AUTO_GROUP_COLUMN_ID__MULTI_PREFIX, '')];
|
|
357
432
|
}
|
|
358
433
|
}
|
|
359
|
-
|
|
434
|
+
if (colState.flex != undefined) {
|
|
435
|
+
const colSizing = { ...ColumnSizing[colId] };
|
|
436
|
+
delete colSizing.Width;
|
|
437
|
+
colSizing.Flex = colState.flex;
|
|
438
|
+
ColumnSizing[colId] = colSizing;
|
|
439
|
+
}
|
|
440
|
+
// and only add the col width to the layout ColumnSizing
|
|
360
441
|
// if it's different from the initial default column width
|
|
361
|
-
if (colState.width && initialWidth != colState.width) {
|
|
362
|
-
|
|
442
|
+
else if (colState.width && initialWidth != colState.width) {
|
|
443
|
+
const colSizing = { ...ColumnSizing[colId] };
|
|
444
|
+
delete colSizing.Flex;
|
|
445
|
+
colSizing.Width = colState.width;
|
|
446
|
+
ColumnSizing[colId] = colSizing;
|
|
363
447
|
}
|
|
364
448
|
if (colState.hide) {
|
|
365
449
|
acc[colId] = false;
|
|
@@ -441,9 +525,9 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
441
525
|
return col.isVisible();
|
|
442
526
|
});
|
|
443
527
|
const columnOrderSet = new Set(TableColumns);
|
|
444
|
-
Object.keys(
|
|
528
|
+
Object.keys(ColumnSizing).forEach((colId) => {
|
|
445
529
|
if (!columnOrderSet.has(colId)) {
|
|
446
|
-
delete
|
|
530
|
+
delete ColumnSizing[colId];
|
|
447
531
|
}
|
|
448
532
|
});
|
|
449
533
|
Object.keys(ColumnVisibility).forEach((colId) => {
|
|
@@ -611,7 +695,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
611
695
|
Ignore_Uuid: this.currentLayout?.Ignore_Uuid,
|
|
612
696
|
TableColumns: TableColumns,
|
|
613
697
|
ColumnVisibility,
|
|
614
|
-
|
|
698
|
+
ColumnSizing,
|
|
615
699
|
ColumnSorts,
|
|
616
700
|
RowGroupedColumns,
|
|
617
701
|
TableAggregationColumns,
|
|
@@ -623,6 +707,54 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
623
707
|
});
|
|
624
708
|
return layout;
|
|
625
709
|
}
|
|
710
|
+
static getColumnDefsChangesForLayout(layout, colDefs) {
|
|
711
|
+
const columnSizing = layout.ColumnSizing || {};
|
|
712
|
+
const flatColDefs = flattenColDefs(colDefs);
|
|
713
|
+
const changedColDefs = new Map();
|
|
714
|
+
flatColDefs.forEach((colDef) => {
|
|
715
|
+
const colId = colDef.colId ?? colDef.field;
|
|
716
|
+
const colSizing = columnSizing[colId] || {};
|
|
717
|
+
if (colDef) {
|
|
718
|
+
let changed = false;
|
|
719
|
+
if (colSizing.MinWidth != undefined && colSizing.MinWidth != colDef.minWidth) {
|
|
720
|
+
colDef = { ...colDef, minWidth: colSizing.MinWidth };
|
|
721
|
+
changed = true;
|
|
722
|
+
}
|
|
723
|
+
if (colSizing.MaxWidth != undefined && colSizing.MaxWidth != colDef.maxWidth) {
|
|
724
|
+
colDef = { ...colDef, maxWidth: colSizing.MaxWidth };
|
|
725
|
+
changed = true;
|
|
726
|
+
}
|
|
727
|
+
// this (width and flex) shouldn't be needed theoretically, as applyColumnState will apply sizing
|
|
728
|
+
// using the newly computed column state
|
|
729
|
+
// but for whatever reason, this is needed here, for some edge cases
|
|
730
|
+
// eg: when a layout has a column width a width and minWidth
|
|
731
|
+
// and then we create a new layout with a different width and different min width
|
|
732
|
+
// then if we don't have this code, the new layout might wrongly apply the previous
|
|
733
|
+
// minWidth as the current column width
|
|
734
|
+
// see #edge-case-min-width-width-mismatch
|
|
735
|
+
if (colSizing.Width !== undefined && colSizing.Width !== colDef.width) {
|
|
736
|
+
colDef = { ...colDef, width: colSizing.Width };
|
|
737
|
+
}
|
|
738
|
+
if (colSizing.Flex !== undefined && colSizing.Flex !== colDef.flex) {
|
|
739
|
+
colDef = { ...colDef, flex: colSizing.Flex };
|
|
740
|
+
changed = true;
|
|
741
|
+
}
|
|
742
|
+
if (changed) {
|
|
743
|
+
changedColDefs.set(colId, colDef);
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
});
|
|
747
|
+
if (changedColDefs.size) {
|
|
748
|
+
return mapColDefs(colDefs, (colDef) => {
|
|
749
|
+
const changedColDef = changedColDefs.get(colDef.colId);
|
|
750
|
+
if (changedColDef) {
|
|
751
|
+
return changedColDef;
|
|
752
|
+
}
|
|
753
|
+
return colDef;
|
|
754
|
+
});
|
|
755
|
+
}
|
|
756
|
+
return null;
|
|
757
|
+
}
|
|
626
758
|
static getAGGridInitialStateForLayout(layout, colDefs, options) {
|
|
627
759
|
if ((0, isPivotLayoutModel_1.isPivotLayoutModel)(layout)) {
|
|
628
760
|
return LayoutManager.getAGGridInitialStateForPivotLayout(layout, colDefs);
|
|
@@ -637,14 +769,15 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
637
769
|
}
|
|
638
770
|
// just in case the enduser provided falsy colIds, it will crash AG Grid internals
|
|
639
771
|
layout.TableColumns = layout.TableColumns.filter((colId) => colId != undefined);
|
|
640
|
-
layout = (0, normalizeLayoutModel_1.normalizeTableLayoutModel)(layout, _options);
|
|
772
|
+
layout = (0, normalizeLayoutModel_1.normalizeTableLayoutModel)(layout, { isTree: _options?.isTree ?? false });
|
|
641
773
|
const agGridState = {};
|
|
642
774
|
const columnIds = getColumnOrderIdsForAllColDefs(layout.TableColumns, colDefs);
|
|
643
775
|
agGridState.columnOrder = {
|
|
644
776
|
orderedColIds: columnIds,
|
|
645
777
|
};
|
|
646
778
|
const flatColDefs = flattenColDefs(colDefs);
|
|
647
|
-
const
|
|
779
|
+
const colDefsById = new Map(flatColDefs.map((colDef) => [colDef.colId ?? colDef.field, colDef]));
|
|
780
|
+
const getColDef = (colId) => colDefsById.get(colId);
|
|
648
781
|
agGridState.columnVisibility = {
|
|
649
782
|
hiddenColIds: flatColDefs
|
|
650
783
|
.filter((colDef) => {
|
|
@@ -656,15 +789,42 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
656
789
|
})
|
|
657
790
|
.map((colDef) => colDef.colId ?? colDef.field),
|
|
658
791
|
};
|
|
659
|
-
if (layout.
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
792
|
+
if (layout.ColumnSizing) {
|
|
793
|
+
const colsInColumnSizingModel = new Set();
|
|
794
|
+
const columnSizingModel = Object.keys(layout.ColumnSizing)
|
|
795
|
+
.map((colId) => {
|
|
796
|
+
const colSizing = layout.ColumnSizing[colId];
|
|
797
|
+
if (colSizing.Flex != undefined) {
|
|
798
|
+
colsInColumnSizingModel.add(colId);
|
|
663
799
|
return {
|
|
664
800
|
colId,
|
|
665
|
-
|
|
801
|
+
flex: colSizing.Flex,
|
|
666
802
|
};
|
|
667
|
-
}
|
|
803
|
+
}
|
|
804
|
+
if (colSizing.Width != undefined) {
|
|
805
|
+
colsInColumnSizingModel.add(colId);
|
|
806
|
+
return {
|
|
807
|
+
colId,
|
|
808
|
+
width: colSizing.Width ?? DEFAULT_COLUMN_WIDTH,
|
|
809
|
+
};
|
|
810
|
+
}
|
|
811
|
+
})
|
|
812
|
+
.filter(Boolean);
|
|
813
|
+
const options = {
|
|
814
|
+
..._options,
|
|
815
|
+
columnDefs: colDefs,
|
|
816
|
+
};
|
|
817
|
+
columnIds.forEach((colId) => {
|
|
818
|
+
if (!colsInColumnSizingModel.has(colId)) {
|
|
819
|
+
const colDef = getColDef(colId);
|
|
820
|
+
const colSizeState = getDefaultColumnSizeStateForColDef(colId, colDef, options);
|
|
821
|
+
if (colSizeState) {
|
|
822
|
+
columnSizingModel.push(colSizeState);
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
});
|
|
826
|
+
agGridState.columnSizing = {
|
|
827
|
+
columnSizingModel,
|
|
668
828
|
};
|
|
669
829
|
}
|
|
670
830
|
if (layout.ColumnSorts) {
|
|
@@ -727,7 +887,8 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
727
887
|
// orderedColIds: columnIds,
|
|
728
888
|
// };
|
|
729
889
|
const flatColDefs = flattenColDefs(colDefs);
|
|
730
|
-
const
|
|
890
|
+
const colDefsById = new Map(flatColDefs.map((colDef) => [colDef.colId ?? colDef.field, colDef]));
|
|
891
|
+
const getColDef = (colId) => colDefsById.get(colId);
|
|
731
892
|
// agGridState.columnVisibility = {
|
|
732
893
|
// hiddenColIds: flatColDefs
|
|
733
894
|
// .filter((colDef) => {
|
|
@@ -745,15 +906,24 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
745
906
|
pivotMode: true,
|
|
746
907
|
pivotColIds: layout.PivotColumns,
|
|
747
908
|
};
|
|
748
|
-
if (layout.
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
909
|
+
if (layout.ColumnSizing) {
|
|
910
|
+
const columnSizingModel = Object.keys(layout.ColumnSizing)
|
|
911
|
+
.map((colId) => {
|
|
912
|
+
const colSizing = layout.ColumnSizing[colId];
|
|
913
|
+
if (colSizing.Flex != undefined) {
|
|
752
914
|
return {
|
|
753
915
|
colId,
|
|
754
|
-
|
|
916
|
+
flex: colSizing.Flex,
|
|
755
917
|
};
|
|
756
|
-
}
|
|
918
|
+
}
|
|
919
|
+
return {
|
|
920
|
+
colId,
|
|
921
|
+
width: colSizing.Width ?? DEFAULT_COLUMN_WIDTH,
|
|
922
|
+
};
|
|
923
|
+
})
|
|
924
|
+
.filter(Boolean);
|
|
925
|
+
agGridState.columnSizing = {
|
|
926
|
+
columnSizingModel,
|
|
757
927
|
};
|
|
758
928
|
}
|
|
759
929
|
if (layout.ColumnSorts) {
|
|
@@ -864,7 +1034,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
864
1034
|
// but we still want to avoid this unnecessary initial loop
|
|
865
1035
|
// which may cause more adaptable work
|
|
866
1036
|
const resume = this.suspendAgGridListener();
|
|
867
|
-
const pivotMode = this.
|
|
1037
|
+
const pivotMode = this.isInPivotMode();
|
|
868
1038
|
if (!!layout.SuppressAggFuncInHeader !== !!this.gridApi.getGridOption('suppressAggFuncInHeader')) {
|
|
869
1039
|
this.gridApi.setGridOption('suppressAggFuncInHeader', !!layout.SuppressAggFuncInHeader);
|
|
870
1040
|
}
|
|
@@ -890,6 +1060,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
890
1060
|
else {
|
|
891
1061
|
this.gridApi.setGridOption('grandTotalRow', null);
|
|
892
1062
|
}
|
|
1063
|
+
this.applyColumnDefsChanges(layout);
|
|
893
1064
|
if ((0, isPivotLayoutModel_1.isPivotLayoutModel)(layout)) {
|
|
894
1065
|
try {
|
|
895
1066
|
const perfApplyPivot = this.beginPerf('applyLayout:pivot');
|
|
@@ -914,6 +1085,17 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
914
1085
|
resume();
|
|
915
1086
|
}
|
|
916
1087
|
}
|
|
1088
|
+
applyColumnDefsChanges(layout) {
|
|
1089
|
+
return this.applyColumnSizingColumnDefsChanges(layout);
|
|
1090
|
+
}
|
|
1091
|
+
applyColumnSizingColumnDefsChanges(layout) {
|
|
1092
|
+
const newColDefs = LayoutManager.getColumnDefsChangesForLayout(layout, this.gridApi.getColumnDefs());
|
|
1093
|
+
if (newColDefs) {
|
|
1094
|
+
this.gridApi.setGridOption('columnDefs', newColDefs);
|
|
1095
|
+
return true;
|
|
1096
|
+
}
|
|
1097
|
+
return false;
|
|
1098
|
+
}
|
|
917
1099
|
applyTableLayout(layout, options) {
|
|
918
1100
|
this.withSuppressColumnAnimation(() => {
|
|
919
1101
|
// if we apply the state here, before calling setGridOption for groupDisplayType
|
|
@@ -1037,7 +1219,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
1037
1219
|
rowGroup: rowGroupIndex != null,
|
|
1038
1220
|
};
|
|
1039
1221
|
});
|
|
1040
|
-
this.
|
|
1222
|
+
this.computeColumnSizing(layout, columnState);
|
|
1041
1223
|
this.computeColumnSorts(layout, columnState);
|
|
1042
1224
|
this.computePinnedColumns(layout, columnState);
|
|
1043
1225
|
this.computePivotAggregations(layout, columnState);
|
|
@@ -1062,7 +1244,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
1062
1244
|
computeColumnStateForTableLayout(layout) {
|
|
1063
1245
|
const columnState = {};
|
|
1064
1246
|
this.computeColumnOrderAndVisibility(layout, columnState);
|
|
1065
|
-
this.
|
|
1247
|
+
this.computeColumnSizing(layout, columnState);
|
|
1066
1248
|
this.computeColumnSorts(layout, columnState);
|
|
1067
1249
|
this.computeRowGrouping(layout, columnState);
|
|
1068
1250
|
this.computeAggregations(layout, columnState);
|
|
@@ -1177,20 +1359,38 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
1177
1359
|
colDef = colDef ?? this.gridApi.getColumnDef(colId);
|
|
1178
1360
|
return colDef?.width ?? DEFAULT_COLUMN_WIDTH;
|
|
1179
1361
|
}
|
|
1180
|
-
|
|
1181
|
-
const
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
}
|
|
1362
|
+
computeColumnSizing(layout, columnState) {
|
|
1363
|
+
const ColumnSizing = layout.ColumnSizing || {};
|
|
1364
|
+
const colDefs = this.gridApi.getColumnDefs();
|
|
1365
|
+
const options = {
|
|
1366
|
+
columnDefs: colDefs,
|
|
1367
|
+
colTypes: this.gridApi.getGridOption('columnTypes'),
|
|
1368
|
+
defaultColDef: this.gridApi.getGridOption('defaultColDef'),
|
|
1369
|
+
};
|
|
1188
1370
|
columnState.state.forEach((colState) => {
|
|
1189
|
-
|
|
1190
|
-
|
|
1371
|
+
const colSizing = ColumnSizing[colState.colId];
|
|
1372
|
+
if (colSizing) {
|
|
1373
|
+
if (colSizing.Width != undefined) {
|
|
1374
|
+
colState.width = colSizing.Width;
|
|
1375
|
+
}
|
|
1376
|
+
else if (colSizing.Flex != undefined) {
|
|
1377
|
+
colState.flex = colSizing.Flex;
|
|
1378
|
+
}
|
|
1191
1379
|
}
|
|
1192
1380
|
else {
|
|
1193
|
-
|
|
1381
|
+
let defaultColState;
|
|
1382
|
+
if (!colState.flex) {
|
|
1383
|
+
defaultColState = getDefaultColumnSizeStateForColDef(colState.colId, undefined, options);
|
|
1384
|
+
if (defaultColState?.flex) {
|
|
1385
|
+
colState.flex = defaultColState.flex;
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
1388
|
+
if (!colState.flex) {
|
|
1389
|
+
colState.width =
|
|
1390
|
+
colState.width ??
|
|
1391
|
+
defaultColState?.width ??
|
|
1392
|
+
this.getDefaultColumnWidthForCol(colState.colId);
|
|
1393
|
+
}
|
|
1194
1394
|
}
|
|
1195
1395
|
});
|
|
1196
1396
|
}
|
|
@@ -1221,9 +1421,9 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
1221
1421
|
// dont auto size hidden columns
|
|
1222
1422
|
tableColumns = tableColumns.filter((colId) => !currentLayout.ColumnVisibility[colId]);
|
|
1223
1423
|
}
|
|
1224
|
-
if (currentLayout.
|
|
1225
|
-
// dont auto size columns with a set
|
|
1226
|
-
tableColumns = tableColumns.filter((colId) => !currentLayout.
|
|
1424
|
+
if (currentLayout.ColumnSizing) {
|
|
1425
|
+
// dont auto size columns with a set sizing
|
|
1426
|
+
tableColumns = tableColumns.filter((colId) => !currentLayout.ColumnSizing[colId]);
|
|
1227
1427
|
}
|
|
1228
1428
|
}
|
|
1229
1429
|
columnIds = columnIds ?? tableColumns;
|
|
@@ -1234,50 +1434,62 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
1234
1434
|
return columnIds;
|
|
1235
1435
|
}
|
|
1236
1436
|
applyPivotLayout(layout, options) {
|
|
1237
|
-
this.
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
// fourth: ...etc
|
|
1246
|
-
// so we apply the states for all aggregations except the last one
|
|
1247
|
-
//
|
|
1248
|
-
const aggregationsMapForOrder = (layout.PivotAggregationColumns || []).map((_, index) => layout.PivotAggregationColumns.slice(0, index));
|
|
1249
|
-
aggregationsMapForOrder.forEach((agg) => {
|
|
1250
|
-
// we're mutating the columnState here
|
|
1251
|
-
this.computePivotAggregations({ ...layout, PivotAggregationColumns: agg }, columnState);
|
|
1252
|
-
// and apply the state
|
|
1253
|
-
this.gridApi.applyColumnState(columnState);
|
|
1254
|
-
});
|
|
1255
|
-
// now recompute and apply the last one
|
|
1256
|
-
this.computePivotAggregations(layout, columnState);
|
|
1257
|
-
this.gridApi.applyColumnState(columnState);
|
|
1258
|
-
// let's also include the column widths of the pivotResult columns
|
|
1259
|
-
// we can't simply include those in the columnState because the columnState will also apply order
|
|
1260
|
-
// but we don't want to affect the order of the pivotResult columns
|
|
1261
|
-
// so we'll do it manually, and apply the widths after the columnState
|
|
1262
|
-
// by using the gridApi.setColumnWidths method
|
|
1263
|
-
if (layout.ColumnWidths) {
|
|
1264
|
-
const colWidthForPivotResultColumns = [];
|
|
1265
|
-
(this.gridApi.getPivotResultColumns() || []).forEach((col) => {
|
|
1266
|
-
const colId = col.getColId();
|
|
1267
|
-
if (layout.ColumnWidths[colId]) {
|
|
1268
|
-
colWidthForPivotResultColumns.push({ key: colId, newWidth: layout.ColumnWidths[colId] });
|
|
1437
|
+
this.withSuppressColumnAnimation(() => {
|
|
1438
|
+
this.applyPivotTotals(layout);
|
|
1439
|
+
const hasGroupedColumns = layout.PivotGroupedColumns && !!layout.PivotGroupedColumns.length;
|
|
1440
|
+
if (hasGroupedColumns) {
|
|
1441
|
+
const displayTypeFromLayout = layout.RowGroupDisplayType === 'multi' ? 'multipleColumns' : 'singleColumn';
|
|
1442
|
+
const groupDisplayType = this.gridApi.getGridOption('groupDisplayType');
|
|
1443
|
+
if (groupDisplayType !== displayTypeFromLayout) {
|
|
1444
|
+
this.gridApi.setGridOption('groupDisplayType', displayTypeFromLayout);
|
|
1269
1445
|
}
|
|
1446
|
+
}
|
|
1447
|
+
const columnState = this.computeColumnStateForPivotLayout(layout);
|
|
1448
|
+
// by simply calling this.gridApi.applyColumnState(columnState)
|
|
1449
|
+
// the order of aggregations is not preserved/guaranteed by ag-grid
|
|
1450
|
+
// so we want to apply multiple states - adding aggregations one by one
|
|
1451
|
+
// first: no aggregation
|
|
1452
|
+
// second: [agg[0]]
|
|
1453
|
+
// third: [agg[0], agg[1]]
|
|
1454
|
+
// fourth: ...etc
|
|
1455
|
+
// so we apply the states for all aggregations except the last one
|
|
1456
|
+
//
|
|
1457
|
+
const aggregationsMapForOrder = (layout.PivotAggregationColumns || []).map((_, index) => layout.PivotAggregationColumns.slice(0, index));
|
|
1458
|
+
aggregationsMapForOrder.forEach((agg) => {
|
|
1459
|
+
// we're mutating the columnState here
|
|
1460
|
+
this.computePivotAggregations({ ...layout, PivotAggregationColumns: agg }, columnState);
|
|
1461
|
+
// and apply the state
|
|
1462
|
+
this.gridApi.applyColumnState(columnState);
|
|
1270
1463
|
});
|
|
1271
|
-
|
|
1272
|
-
|
|
1464
|
+
// now recompute and apply the last one
|
|
1465
|
+
this.computePivotAggregations(layout, columnState);
|
|
1466
|
+
this.gridApi.applyColumnState(columnState);
|
|
1467
|
+
// let's also include the column widths of the pivotResult columns
|
|
1468
|
+
// we can't simply include those in the columnState because the columnState will also apply order
|
|
1469
|
+
// but we don't want to affect the order of the pivotResult columns
|
|
1470
|
+
// so we'll do it manually, and apply the widths after the columnState
|
|
1471
|
+
// by using the gridApi.setColumnWidths method
|
|
1472
|
+
if (layout.ColumnSizing) {
|
|
1473
|
+
const colWidthForPivotResultColumns = [];
|
|
1474
|
+
(this.gridApi.getPivotResultColumns() || []).forEach((col) => {
|
|
1475
|
+
const colId = col.getColId();
|
|
1476
|
+
if (layout.ColumnSizing[colId]?.Width != undefined) {
|
|
1477
|
+
colWidthForPivotResultColumns.push({
|
|
1478
|
+
key: colId,
|
|
1479
|
+
newWidth: layout.ColumnSizing[colId].Width ?? DEFAULT_COLUMN_WIDTH,
|
|
1480
|
+
});
|
|
1481
|
+
}
|
|
1482
|
+
});
|
|
1483
|
+
if (colWidthForPivotResultColumns.length) {
|
|
1484
|
+
this.gridApi.setColumnWidths(colWidthForPivotResultColumns);
|
|
1485
|
+
}
|
|
1273
1486
|
}
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
}
|
|
1487
|
+
this.applyColumnGroupCollapseExpandState(layout);
|
|
1488
|
+
// but also let's not forget to apply the row group values
|
|
1489
|
+
if (hasGroupedColumns && layout.RowGroupValues && !options?.skipApplyRowGroupsExpandedState) {
|
|
1490
|
+
this.applyRowGroupValues(layout.RowGroupValues, layout.PivotGroupedColumns);
|
|
1491
|
+
}
|
|
1492
|
+
});
|
|
1281
1493
|
}
|
|
1282
1494
|
applyPivotTotals(layout) {
|
|
1283
1495
|
/**
|
|
@@ -1497,5 +1709,8 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
|
|
|
1497
1709
|
};
|
|
1498
1710
|
}
|
|
1499
1711
|
}
|
|
1712
|
+
isInPivotMode() {
|
|
1713
|
+
return this.gridApi.isModuleRegistered('PivotModule') && this.gridApi.isPivotMode();
|
|
1714
|
+
}
|
|
1500
1715
|
}
|
|
1501
1716
|
exports.LayoutManager = LayoutManager;
|
|
@@ -21,8 +21,8 @@ function normalizeTableLayoutModel(layout, options) {
|
|
|
21
21
|
if (!layout.ColumnPinning) {
|
|
22
22
|
layout.ColumnPinning = {};
|
|
23
23
|
}
|
|
24
|
-
if (!layout.
|
|
25
|
-
layout.
|
|
24
|
+
if (!layout.ColumnSizing) {
|
|
25
|
+
layout.ColumnSizing = {};
|
|
26
26
|
}
|
|
27
27
|
if (!layout.RowGroupedColumns) {
|
|
28
28
|
layout.RowGroupedColumns = [];
|
|
@@ -128,8 +128,8 @@ function normalizePivotLayoutModel(layout) {
|
|
|
128
128
|
if (!layout.ColumnPinning) {
|
|
129
129
|
layout.ColumnPinning = {};
|
|
130
130
|
}
|
|
131
|
-
if (!layout.
|
|
132
|
-
layout.
|
|
131
|
+
if (!layout.ColumnSizing) {
|
|
132
|
+
layout.ColumnSizing = {};
|
|
133
133
|
}
|
|
134
134
|
if (!layout.PivotGroupedColumns) {
|
|
135
135
|
layout.PivotGroupedColumns = [];
|
|
@@ -161,6 +161,9 @@ function normalizePivotLayoutModel(layout) {
|
|
|
161
161
|
// make it an own property
|
|
162
162
|
layout.PivotColumnTotal = undefined;
|
|
163
163
|
}
|
|
164
|
+
if (layout.PivotGroupedColumns && layout.PivotGroupedColumns.length) {
|
|
165
|
+
layout.RowGroupDisplayType = layout.RowGroupDisplayType || 'single';
|
|
166
|
+
}
|
|
164
167
|
return layout;
|
|
165
168
|
}
|
|
166
169
|
exports.normalizePivotLayoutModel = normalizePivotLayoutModel;
|
|
@@ -8,8 +8,8 @@ function simplifyTableLayoutModel(layout) {
|
|
|
8
8
|
if (layout.ColumnVisibility && !Object.keys(layout.ColumnVisibility).length) {
|
|
9
9
|
delete layout.ColumnVisibility;
|
|
10
10
|
}
|
|
11
|
-
if (layout.
|
|
12
|
-
delete layout.
|
|
11
|
+
if (layout.ColumnSizing && !Object.keys(layout.ColumnSizing).length) {
|
|
12
|
+
delete layout.ColumnSizing;
|
|
13
13
|
}
|
|
14
14
|
if (layout.ColumnSorts && !layout.ColumnSorts.length) {
|
|
15
15
|
delete layout.ColumnSorts;
|
|
@@ -73,8 +73,8 @@ function simplifyTableLayoutModel(layout) {
|
|
|
73
73
|
exports.simplifyTableLayoutModel = simplifyTableLayoutModel;
|
|
74
74
|
function simplifyPivotLayoutModel(layout) {
|
|
75
75
|
layout = structuredClone(layout);
|
|
76
|
-
if (layout.
|
|
77
|
-
delete layout.
|
|
76
|
+
if (layout.ColumnSizing && !Object.keys(layout.ColumnSizing).length) {
|
|
77
|
+
delete layout.ColumnSizing;
|
|
78
78
|
}
|
|
79
79
|
if (!layout.SuppressAggFuncInHeader) {
|
|
80
80
|
delete layout.SuppressAggFuncInHeader;
|