@adaptabletools/adaptable-cjs 20.3.0 → 21.0.0-canary.1
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 +40 -22
- 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 +107 -13
- 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 +10 -5
- package/src/Api/Internal/LayoutInternalApi.js +85 -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/Helpers/AdaptableHelper.d.ts +1 -0
- package/src/Utilities/Helpers/AdaptableHelper.js +1 -0
- package/src/Utilities/ObjectFactory.d.ts +7 -3
- package/src/Utilities/ObjectFactory.js +28 -19
- 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/LayoutWizard.js +5 -7
- 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 +103 -40
- 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
|
@@ -102,6 +102,7 @@ const agGridDataTypeDefinitions_1 = require("./agGridDataTypeDefinitions");
|
|
|
102
102
|
const AgGridThemeAdapter_1 = require("./AgGridThemeAdapter");
|
|
103
103
|
const VersionUpgrade20_1 = require("../migration/VersionUpgrade20");
|
|
104
104
|
const adaptableOverrideCheck_1 = require("../Utilities/adaptableOverrideCheck");
|
|
105
|
+
const AgGridModulesAdapter_1 = require("./AgGridModulesAdapter");
|
|
105
106
|
const LocalEventService_Prototype = ag_grid_enterprise_1.LocalEventService.prototype;
|
|
106
107
|
const LocalEventService_dispatchEvent = LocalEventService_Prototype.dispatchEvent;
|
|
107
108
|
LocalEventService_Prototype.dispatchEvent = function (event) {
|
|
@@ -112,7 +113,12 @@ LocalEventService_Prototype.dispatchEvent = function (event) {
|
|
|
112
113
|
}
|
|
113
114
|
LocalEventService_dispatchEvent.apply(this, arguments);
|
|
114
115
|
if (event.type === 'cellChanged' || event.type === 'dataChanged') {
|
|
116
|
+
// @ts-ignore
|
|
115
117
|
const eventRowNode = event.node;
|
|
118
|
+
if (!eventRowNode) {
|
|
119
|
+
AdaptableLogger_1.AdaptableLogger.consoleErrorBase(`No RowNode found in passed event, this should never happen!`, event);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
116
122
|
const extractGridApiFromRowNode = (rowNode) => {
|
|
117
123
|
const rowNodeApi = rowNode?.beans?.gridApi;
|
|
118
124
|
if (!rowNodeApi) {
|
|
@@ -185,6 +191,7 @@ class AdaptableAgGrid {
|
|
|
185
191
|
this.agGridColumnAdapter = new AgGridColumnAdapter_1.AgGridColumnAdapter(this);
|
|
186
192
|
this.agGridExportAdapter = new AgGridExportAdapter_1.AgGridExportAdapter(this);
|
|
187
193
|
this.agGridThemeAdapter = new AgGridThemeAdapter_1.AgGridThemeAdapter(this);
|
|
194
|
+
this.agGridModulesAdapter = new AgGridModulesAdapter_1.AgGridModulesAdapter(this);
|
|
188
195
|
this.DataService = new DataService_1.DataService(this);
|
|
189
196
|
}
|
|
190
197
|
static forEachAdaptable(fn) {
|
|
@@ -352,26 +359,29 @@ class AdaptableAgGrid {
|
|
|
352
359
|
this.lifecycleState = 'setupAgGrid';
|
|
353
360
|
const gridOptions = config.gridOptions;
|
|
354
361
|
// Needed here because special column defs are required for deriving the adaptable column state
|
|
355
|
-
|
|
362
|
+
let columnDefs = this.agGridAdapter.getColumnDefinitionsInclSpecialColumns(gridOptions.columnDefs || []);
|
|
356
363
|
gridOptions.columnDefs = columnDefs;
|
|
357
364
|
this.setInitialGridOptions(gridOptions, config.variant);
|
|
358
|
-
const { gridState: initialGridState, layoutModel } = this.mapAdaptableStateToAgGridState(this.adaptableStore.TheStore.getState(), gridOptions.columnDefs, {
|
|
365
|
+
const { gridState: initialGridState, layoutModel } = this.mapAdaptableStateToAgGridState(this.adaptableStore.TheStore.getState(), gridOptions.columnDefs, {
|
|
366
|
+
isTree: !!gridOptions.treeData,
|
|
367
|
+
colTypes: gridOptions.columnTypes,
|
|
368
|
+
defaultColDef: gridOptions.defaultColDef,
|
|
369
|
+
});
|
|
370
|
+
columnDefs = src_1.LayoutManager.getColumnDefsChangesForLayout(layoutModel, columnDefs) ?? columnDefs;
|
|
371
|
+
gridOptions.columnDefs = columnDefs;
|
|
359
372
|
gridOptions.initialState = initialGridState;
|
|
360
373
|
if (layoutModel) {
|
|
361
374
|
if ((0, isPivotLayoutModel_1.isPivotLayoutModel)(layoutModel)) {
|
|
362
375
|
gridOptions.pivotDefaultExpanded = layoutModel.PivotExpandLevel;
|
|
363
376
|
}
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
377
|
+
gridOptions.groupDisplayType =
|
|
378
|
+
layoutModel.RowGroupDisplayType === 'multi' ? 'multipleColumns' : 'singleColumn';
|
|
379
|
+
// fixes issue #3053
|
|
380
|
+
gridOptions.suppressAggFuncInHeader = !!layoutModel.SuppressAggFuncInHeader;
|
|
368
381
|
}
|
|
369
382
|
this.lifecycleState = 'initAgGrid';
|
|
370
383
|
this.agGridAdapter.initialGridOptions = gridOptions;
|
|
371
384
|
const perfInitAgGrid = this.logger.beginPerf(`initAgGrid()`);
|
|
372
|
-
// AG Grid evaluates early on the floatingFilter params, so we need to "suppress" the floating filter temporarily
|
|
373
|
-
// we will reset it once Adaptable is ready
|
|
374
|
-
this.agGridColumnAdapter.setupColumnFloatingFilterTemporarily(gridOptions);
|
|
375
385
|
this.validateColumnDefTypes(gridOptions.columnDefs);
|
|
376
386
|
const agGridApi = await this.initializeAgGrid(gridOptions, config.modules, config.renderAgGridFrameworkComponent);
|
|
377
387
|
if (agGridApi === false) {
|
|
@@ -410,7 +420,9 @@ class AdaptableAgGrid {
|
|
|
410
420
|
this.agGridAdapter.monkeyPatchingGridOptionsUpdates();
|
|
411
421
|
this.agGridAdapter.monkeyPatchingAggColumnFilters();
|
|
412
422
|
this.lifecycleState = 'agGridReady';
|
|
413
|
-
this.
|
|
423
|
+
this.api.entitlementApi.internalApi.setModulesAgGridDepsInfos();
|
|
424
|
+
this.ModuleService.logMissingAgGridDepsInfos();
|
|
425
|
+
this.logger.info(`Registered AG Grid modules (incl. dependent modules): `, this.agGridModulesAdapter.getAgGridRegisteredModuleNames().sort());
|
|
414
426
|
/**
|
|
415
427
|
* At this point AG Grid is initialized!
|
|
416
428
|
*/
|
|
@@ -422,6 +434,9 @@ class AdaptableAgGrid {
|
|
|
422
434
|
this.validatePrimaryKey();
|
|
423
435
|
// TODO AFL MIG: we could just patch the defautl Layout on init? instead
|
|
424
436
|
this.checkShouldClearExistingFiltersOrSearches();
|
|
437
|
+
// FIXME AFL FILTER: talk with Radu: should ColumnFilters still be ignored?!
|
|
438
|
+
// see layoutModel.Ignore_ColumnFilters
|
|
439
|
+
// initial filter model
|
|
425
440
|
this.applyFiltering();
|
|
426
441
|
// apply quick search if there is one
|
|
427
442
|
// yes, we could have put this on the gridOptions.findSearchValue
|
|
@@ -440,19 +455,6 @@ class AdaptableAgGrid {
|
|
|
440
455
|
(0, LayoutHelpers_1.checkForDuplicateColumns)(currentLayout);
|
|
441
456
|
this._prevLayout = currentLayout;
|
|
442
457
|
this.__prevLayoutForRefresh = currentLayout;
|
|
443
|
-
if ((0, LayoutHelpers_1.isPivotLayout)(currentLayout)) {
|
|
444
|
-
// this is very very strange!
|
|
445
|
-
// for some projects, if the initial layout is pivot, the columnDefs of the pivot resutl columns are NOT derived correctly from the main colDefs
|
|
446
|
-
// doing the following line fixes the issue because it foces the pivot columns to be created again
|
|
447
|
-
// this proj works without the hack: /tests/pages/format-column/initial-pivot-layout.page.tsx
|
|
448
|
-
// but this proj needs the hack: /tests/pages/format-column/initial-pivot-layout-docs.page.tsx
|
|
449
|
-
this.agGridAdapter.setGridOption('pivotMode', false);
|
|
450
|
-
this.agGridAdapter.setGridOption('pivotMode', true);
|
|
451
|
-
// also quick search is not working initially, although the setupColumns is called correctly
|
|
452
|
-
// so we need to do this to make it work
|
|
453
|
-
// see test /tests/pages/quick-search/pivot-search.spec.ts
|
|
454
|
-
this.updateColumnModelAndRefreshGrid();
|
|
455
|
-
}
|
|
456
458
|
const layoutModelForApply = (0, LayoutHelpers_1.layoutStateToLayoutModel)(currentLayout);
|
|
457
459
|
this.layoutManager.applyRowGroupValues(layoutModelForApply.RowGroupValues, layoutModelForApply.RowGroupedColumns);
|
|
458
460
|
this.layoutManager.applyColumnGroupCollapseExpandState(layoutModelForApply);
|
|
@@ -576,21 +578,27 @@ You need to define at least one Layout!`);
|
|
|
576
578
|
normalize: true,
|
|
577
579
|
});
|
|
578
580
|
}
|
|
579
|
-
applyFiltering() {
|
|
581
|
+
applyFiltering(config) {
|
|
582
|
+
// default updateColumnFilterModel to TRUE, if not provided
|
|
583
|
+
const updateColumnFilterModel = config?.updateColumnFilterModel ?? true;
|
|
580
584
|
const agGridApi = this.agGridAdapter.getAgGridApi();
|
|
581
|
-
|
|
585
|
+
if (updateColumnFilterModel) {
|
|
586
|
+
const columnFilters = this.api.filterApi.columnFilterApi
|
|
587
|
+
.getActiveColumnFilters()
|
|
588
|
+
// FIXME AFL: we need this additional filter because 'getActiveColumnFilters' checks only for suspended while 'isColumnFilterActive' also checkss for COMPLETE filters
|
|
589
|
+
.filter((columnFilter) => this.api.filterApi.columnFilterApi.isColumnFilterActive(columnFilter));
|
|
590
|
+
const filterModel = {};
|
|
591
|
+
columnFilters.forEach((columnFilter) => {
|
|
592
|
+
filterModel[columnFilter.ColumnId] = columnFilter;
|
|
593
|
+
});
|
|
594
|
+
agGridApi.setFilterModel(filterModel);
|
|
595
|
+
}
|
|
596
|
+
// FIXME AFL FILTER why is this needed???
|
|
582
597
|
this.refreshSelectedCellsState();
|
|
583
598
|
this.refreshSelectedRowsState();
|
|
584
|
-
this.agGridAdapter.updateColumnFilterActiveState();
|
|
585
599
|
agGridApi.onFilterChanged();
|
|
600
|
+
this._emit('AdapTableFiltersApplied');
|
|
586
601
|
}
|
|
587
|
-
// refreshAgGridWithAdaptableState() {
|
|
588
|
-
// this.refreshColDefs();
|
|
589
|
-
// this.api.themeApi.applyCurrentTheme();
|
|
590
|
-
// this.api.internalApi.setTreeMode(this.agGridAdapter.initialGridOptions.treeData);
|
|
591
|
-
// this.checkShouldClearExistingFiltersOrSearches();
|
|
592
|
-
// this.applyColumnFiltering();
|
|
593
|
-
// }
|
|
594
602
|
showQuickFilter() {
|
|
595
603
|
const height = this.api.optionsApi.getFilterOptions().columnFilterOptions.quickFilterHeight;
|
|
596
604
|
this.agGridAdapter.getAgGridApi().setGridOption('floatingFiltersHeight', height);
|
|
@@ -774,22 +782,36 @@ You need to define at least one Layout!`);
|
|
|
774
782
|
? true
|
|
775
783
|
: original_allowContextMenuWithControlKey;
|
|
776
784
|
});
|
|
785
|
+
/**
|
|
786
|
+
* `enableFilterHandlers`
|
|
787
|
+
*/
|
|
788
|
+
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'enableFilterHandlers', (original_enableFilterHandlers) => {
|
|
789
|
+
const useAdaptableFiltering = this.api.optionsApi.getFilterOptions().useAdaptableFiltering;
|
|
790
|
+
if (useAdaptableFiltering) {
|
|
791
|
+
return true;
|
|
792
|
+
}
|
|
793
|
+
return original_enableFilterHandlers;
|
|
794
|
+
});
|
|
795
|
+
/**
|
|
796
|
+
* `suppressSetFilterByDefault`
|
|
797
|
+
*/
|
|
798
|
+
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'suppressSetFilterByDefault', (original_suppressSetFilterByDefault) => {
|
|
799
|
+
const useAdaptableFiltering = this.api.optionsApi.getFilterOptions().useAdaptableFiltering;
|
|
800
|
+
if (useAdaptableFiltering) {
|
|
801
|
+
return true;
|
|
802
|
+
}
|
|
803
|
+
return original_suppressSetFilterByDefault;
|
|
804
|
+
});
|
|
777
805
|
/**
|
|
778
806
|
* `isExternalFilterPresent`
|
|
779
807
|
*/
|
|
780
808
|
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'isExternalFilterPresent', (original_isExternalFilterPresent) => {
|
|
781
809
|
return (params) => {
|
|
782
810
|
if (!this.isAvailable) {
|
|
783
|
-
return
|
|
811
|
+
return false;
|
|
784
812
|
}
|
|
785
813
|
const isGridFilterActive = StringExtensions_1.default.IsNotNullOrEmpty(this.api.filterApi.gridFilterApi.getCurrentGridFilterExpression());
|
|
786
|
-
const isTableColumnFiltersActive = ArrayExtensions_1.default.IsNotNullOrEmpty(this.api.filterApi.columnFilterApi
|
|
787
|
-
.getActiveColumnFilters()
|
|
788
|
-
.filter((columnFilter) => !this.api.columnApi.isPivotResultColumn(columnFilter.ColumnId)));
|
|
789
814
|
return (isGridFilterActive ||
|
|
790
|
-
// only Table ColumnFilters are handled here
|
|
791
|
-
// see #doAggregateFiltersPassMonkeyPatcher for filtering Pivot Columns
|
|
792
|
-
isTableColumnFiltersActive ||
|
|
793
815
|
// it means that userPropertyValue will be called so we re-init that collection
|
|
794
816
|
(original_isExternalFilterPresent ? original_isExternalFilterPresent(params) : false));
|
|
795
817
|
};
|
|
@@ -817,20 +839,11 @@ You need to define at least one Layout!`);
|
|
|
817
839
|
return true;
|
|
818
840
|
}
|
|
819
841
|
}
|
|
820
|
-
// first assess if the Row
|
|
821
|
-
const isRowFilterable = this.api.
|
|
822
|
-
if (
|
|
823
|
-
|
|
824
|
-
...this.api.internalApi.buildBaseContext(),
|
|
825
|
-
rowNode: node,
|
|
826
|
-
data: node.data,
|
|
827
|
-
};
|
|
828
|
-
if (!isRowFilterable(rowFilterableContext)) {
|
|
829
|
-
return true;
|
|
830
|
-
}
|
|
842
|
+
// first assess if the Row is filterable - if not, then return true so it always appears in Grid
|
|
843
|
+
const isRowFilterable = this.api.gridApi.internalApi.isRowFilterable(node);
|
|
844
|
+
if (!isRowFilterable) {
|
|
845
|
+
return true;
|
|
831
846
|
}
|
|
832
|
-
// get the Primary Key Value for the Row Node being evaluated
|
|
833
|
-
const primaryKey = this.getPrimaryKeyValueFromRowNode(node);
|
|
834
847
|
// next we assess a Grid Filter (if its running locally)
|
|
835
848
|
const currentGridFilterExpression = this.api.filterApi.gridFilterApi.getCurrentGridFilterExpression();
|
|
836
849
|
if (StringExtensions_1.default.IsNotNullOrEmpty(currentGridFilterExpression)) {
|
|
@@ -850,29 +863,6 @@ You need to define at least one Layout!`);
|
|
|
850
863
|
}
|
|
851
864
|
}
|
|
852
865
|
}
|
|
853
|
-
// finally we evaluate column filters
|
|
854
|
-
const tableColumnFilters = this.api.filterApi.columnFilterApi
|
|
855
|
-
.getActiveColumnFilters()
|
|
856
|
-
.filter((columnFilter) => !this.api.columnApi.isPivotResultColumn(columnFilter.ColumnId));
|
|
857
|
-
try {
|
|
858
|
-
// only Table ColumnFilters are handled here
|
|
859
|
-
// see #doAggregateFiltersPassMonkeyPatcher for filtering Pivot Columns
|
|
860
|
-
if (tableColumnFilters.length > 0) {
|
|
861
|
-
for (const columnFilter of tableColumnFilters) {
|
|
862
|
-
const evaluateColumnFilterOnClient = this.api.expressionApi.internalApi.shouldEvaluatePredicatesInAdaptableQL('ColumnFilter', columnFilter, columnFilter.Predicates);
|
|
863
|
-
if (evaluateColumnFilterOnClient) {
|
|
864
|
-
const columnFilterEvaluationResult = this.api.filterApi.columnFilterApi.internalApi.evaluateColumnFilter(columnFilter, node);
|
|
865
|
-
if (!columnFilterEvaluationResult) {
|
|
866
|
-
return false;
|
|
867
|
-
}
|
|
868
|
-
}
|
|
869
|
-
}
|
|
870
|
-
}
|
|
871
|
-
}
|
|
872
|
-
catch (ex) {
|
|
873
|
-
this.logger.error(ex);
|
|
874
|
-
return false;
|
|
875
|
-
}
|
|
876
866
|
const result = original_doesExternalFilterPass
|
|
877
867
|
? original_doesExternalFilterPass(node)
|
|
878
868
|
: true;
|
|
@@ -920,107 +910,111 @@ You need to define at least one Layout!`);
|
|
|
920
910
|
/**
|
|
921
911
|
* `sidebar`
|
|
922
912
|
*/
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
const isAdaptableToolPanelHidden = this.api.entitlementApi.isModuleHiddenEntitlement('ToolPanel');
|
|
929
|
-
const adaptableToolPanelDef = {
|
|
930
|
-
id: GeneralConstants.ADAPTABLE_TOOLPANEL_ID,
|
|
931
|
-
toolPanel: GeneralConstants.ADAPTABLE_TOOLPANEL_COMPONENT,
|
|
932
|
-
labelDefault: GeneralConstants.ADAPTABLE,
|
|
933
|
-
labelKey: 'adaptable',
|
|
934
|
-
iconKey: 'menu',
|
|
935
|
-
width: UIHelper_1.default.getAdaptableToolPanelWidth(),
|
|
936
|
-
minWidth: UIHelper_1.default.getAdaptableToolPanelWidth(),
|
|
937
|
-
// maxWidth = undefined,
|
|
938
|
-
};
|
|
939
|
-
const mapToolPanelDefs = (toolPanelDefs = []) => {
|
|
940
|
-
// if it's an alias for the adaptable tool panel, map it to a ToolPanelDef, otherwise return it as it is
|
|
941
|
-
return toolPanelDefs.map((toolPanelDef) => toolPanelDef === GeneralConstants.ADAPTABLE_TOOLPANEL_ID
|
|
942
|
-
? adaptableToolPanelDef
|
|
943
|
-
: toolPanelDef);
|
|
944
|
-
};
|
|
945
|
-
const isSideBarDefObject = (sidebarDef) => {
|
|
946
|
-
return Array.isArray(sidebarDef?.toolPanels);
|
|
947
|
-
};
|
|
948
|
-
let result;
|
|
949
|
-
if (original_sideBar === true) {
|
|
950
|
-
// create all tool panels with default settings
|
|
951
|
-
const toolPanels = [];
|
|
952
|
-
toolPanels.push(GeneralConstants.AGGRID_TOOLPANEL_FILTERS);
|
|
953
|
-
toolPanels.push(GeneralConstants.AGGRID_TOOLPANEL_COLUMNS);
|
|
954
|
-
if (!isAdaptableToolPanelHidden) {
|
|
955
|
-
toolPanels.push(adaptableToolPanelDef);
|
|
913
|
+
if (gridOptions.sideBar != undefined) {
|
|
914
|
+
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'sideBar', (original_sideBar) => {
|
|
915
|
+
if (!original_sideBar) {
|
|
916
|
+
// lucky us, no sideBar is defined, so we don't have to do anything
|
|
917
|
+
return original_sideBar;
|
|
956
918
|
}
|
|
957
|
-
|
|
958
|
-
|
|
919
|
+
const isAdaptableToolPanelHidden = this.api.entitlementApi.isModuleHiddenEntitlement('ToolPanel');
|
|
920
|
+
const adaptableToolPanelDef = {
|
|
921
|
+
id: GeneralConstants.ADAPTABLE_TOOLPANEL_ID,
|
|
922
|
+
toolPanel: GeneralConstants.ADAPTABLE_TOOLPANEL_COMPONENT,
|
|
923
|
+
labelDefault: GeneralConstants.ADAPTABLE,
|
|
924
|
+
labelKey: 'adaptable',
|
|
925
|
+
iconKey: 'menu',
|
|
926
|
+
width: UIHelper_1.default.getAdaptableToolPanelWidth(),
|
|
927
|
+
minWidth: UIHelper_1.default.getAdaptableToolPanelWidth(),
|
|
928
|
+
// maxWidth = undefined,
|
|
959
929
|
};
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
}
|
|
969
|
-
|
|
970
|
-
|
|
930
|
+
const mapToolPanelDefs = (toolPanelDefs = []) => {
|
|
931
|
+
// if it's an alias for the adaptable tool panel, map it to a ToolPanelDef, otherwise return it as it is
|
|
932
|
+
return toolPanelDefs.map((toolPanelDef) => toolPanelDef === GeneralConstants.ADAPTABLE_TOOLPANEL_ID
|
|
933
|
+
? adaptableToolPanelDef
|
|
934
|
+
: toolPanelDef);
|
|
935
|
+
};
|
|
936
|
+
const isSideBarDefObject = (sidebarDef) => {
|
|
937
|
+
return Array.isArray(sidebarDef?.toolPanels);
|
|
938
|
+
};
|
|
939
|
+
let result;
|
|
940
|
+
if (original_sideBar === true) {
|
|
941
|
+
// create all tool panels with default settings
|
|
942
|
+
const toolPanels = [];
|
|
943
|
+
toolPanels.push(GeneralConstants.AGGRID_TOOLPANEL_FILTERS);
|
|
944
|
+
toolPanels.push(GeneralConstants.AGGRID_TOOLPANEL_COLUMNS);
|
|
945
|
+
if (!isAdaptableToolPanelHidden) {
|
|
946
|
+
toolPanels.push(adaptableToolPanelDef);
|
|
947
|
+
}
|
|
948
|
+
result = {
|
|
949
|
+
toolPanels: toolPanels,
|
|
950
|
+
};
|
|
971
951
|
}
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
952
|
+
// if there is only one tool panel, and it's the adaptable one => we have to handle it
|
|
953
|
+
else if (typeof original_sideBar === 'string') {
|
|
954
|
+
if (gridOptions.sideBar === GeneralConstants.ADAPTABLE_TOOLPANEL_ID) {
|
|
955
|
+
if (!isAdaptableToolPanelHidden)
|
|
956
|
+
result = {
|
|
957
|
+
toolPanels: [adaptableToolPanelDef],
|
|
958
|
+
};
|
|
959
|
+
}
|
|
960
|
+
else {
|
|
961
|
+
result = original_sideBar;
|
|
962
|
+
}
|
|
978
963
|
}
|
|
979
964
|
// if it's an array, process the tool panel definitions
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
// if there is an Adaptable SideBarDef, don't touch it as it may contain user-defined properties
|
|
990
|
-
result = original_sideBar;
|
|
991
|
-
}
|
|
992
|
-
else {
|
|
993
|
-
result = {
|
|
994
|
-
...original_sideBar,
|
|
995
|
-
toolPanels: mapToolPanelDefs(original_sideBar.toolPanels),
|
|
996
|
-
};
|
|
965
|
+
else if (Array.isArray(original_sideBar)) {
|
|
966
|
+
if (!original_sideBar.includes(GeneralConstants.ADAPTABLE_TOOLPANEL_ID) ||
|
|
967
|
+
isAdaptableToolPanelHidden) {
|
|
968
|
+
result = original_sideBar;
|
|
969
|
+
}
|
|
970
|
+
// if it's an array, process the tool panel definitions
|
|
971
|
+
const sidebarDef = {};
|
|
972
|
+
sidebarDef.toolPanels = mapToolPanelDefs(original_sideBar);
|
|
973
|
+
result = sidebarDef;
|
|
997
974
|
}
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
const context = {
|
|
1013
|
-
Key: statusPanel.key,
|
|
1014
|
-
};
|
|
1015
|
-
return {
|
|
1016
|
-
...statusPanel,
|
|
1017
|
-
statusPanel: (0, createAgStatusPanelComponent_1.createAgStatusPanelComponent)(AdaptableStatusBar_1.AdaptableStatusBar, this, context),
|
|
1018
|
-
};
|
|
975
|
+
// if it's fully-fledged SideBarDef, process its tool panel definitions
|
|
976
|
+
else if (isSideBarDefObject(original_sideBar)) {
|
|
977
|
+
if (original_sideBar.toolPanels?.some((toolpanelDef) => typeof toolpanelDef !== 'string' &&
|
|
978
|
+
toolpanelDef.id === GeneralConstants.ADAPTABLE_TOOLPANEL_ID &&
|
|
979
|
+
!isAdaptableToolPanelHidden)) {
|
|
980
|
+
// if there is an Adaptable SideBarDef, don't touch it as it may contain user-defined properties
|
|
981
|
+
result = original_sideBar;
|
|
982
|
+
}
|
|
983
|
+
else {
|
|
984
|
+
result = {
|
|
985
|
+
...original_sideBar,
|
|
986
|
+
toolPanels: mapToolPanelDefs(original_sideBar.toolPanels),
|
|
987
|
+
};
|
|
988
|
+
}
|
|
1019
989
|
}
|
|
1020
|
-
|
|
990
|
+
this.hasAdaptableToolPanel =
|
|
991
|
+
isSideBarDefObject(result) &&
|
|
992
|
+
result.toolPanels?.some((toolPanelDef) => typeof toolPanelDef !== 'string' &&
|
|
993
|
+
toolPanelDef.id === GeneralConstants.ADAPTABLE_TOOLPANEL_ID);
|
|
994
|
+
return result;
|
|
1021
995
|
});
|
|
1022
|
-
|
|
1023
|
-
|
|
996
|
+
}
|
|
997
|
+
if (gridOptions.statusBar != undefined) {
|
|
998
|
+
/**
|
|
999
|
+
* `statusBar`
|
|
1000
|
+
*/
|
|
1001
|
+
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'statusBar', (original_statusBar) => {
|
|
1002
|
+
const statusPanels = (original_statusBar?.statusPanels ?? [])?.map((statusPanel) => {
|
|
1003
|
+
if (statusPanel.statusPanel === StatusBarState_1.ADAPTABLE_STATUS_PANEL) {
|
|
1004
|
+
this.adaptableStatusPanelKeys.push(statusPanel.key);
|
|
1005
|
+
const context = {
|
|
1006
|
+
Key: statusPanel.key,
|
|
1007
|
+
};
|
|
1008
|
+
return {
|
|
1009
|
+
...statusPanel,
|
|
1010
|
+
statusPanel: (0, createAgStatusPanelComponent_1.createAgStatusPanelComponent)(AdaptableStatusBar_1.AdaptableStatusBar, this, context),
|
|
1011
|
+
};
|
|
1012
|
+
}
|
|
1013
|
+
return statusPanel;
|
|
1014
|
+
});
|
|
1015
|
+
return { ...original_statusBar, statusPanels };
|
|
1016
|
+
});
|
|
1017
|
+
}
|
|
1024
1018
|
/**
|
|
1025
1019
|
* `getRowStyle`
|
|
1026
1020
|
*/
|
|
@@ -1140,7 +1134,6 @@ You need to define at least one Layout!`);
|
|
|
1140
1134
|
result = await renderAgGridFrameworkComponent(gridOptions);
|
|
1141
1135
|
}
|
|
1142
1136
|
catch (err) {
|
|
1143
|
-
console.log('Failed to get AG Grid API');
|
|
1144
1137
|
result = false;
|
|
1145
1138
|
}
|
|
1146
1139
|
if (result === false) {
|
|
@@ -1151,7 +1144,6 @@ You need to define at least one Layout!`);
|
|
|
1151
1144
|
// in that case, we have to re-populate it with the Adaptable context values
|
|
1152
1145
|
const agGridContext = agGridApi.getGridOption('context');
|
|
1153
1146
|
if (!agGridContext) {
|
|
1154
|
-
console.log('Failed to get AG Grid context');
|
|
1155
1147
|
return false;
|
|
1156
1148
|
}
|
|
1157
1149
|
if (!agGridContext.__adaptable) {
|
|
@@ -1191,9 +1183,6 @@ You need to define at least one Layout!`);
|
|
|
1191
1183
|
useRowNodeLookUp() {
|
|
1192
1184
|
return this.agGridAdapter.getAgGridApi().getGridOption('getRowId') != undefined;
|
|
1193
1185
|
}
|
|
1194
|
-
getAgGridRegisteredModules() {
|
|
1195
|
-
return this.agGridAdapter.getAgGridRegisteredModules();
|
|
1196
|
-
}
|
|
1197
1186
|
getAgGridContainerElement() {
|
|
1198
1187
|
if (!this.DANGER_USE_GETTER_agGridContainerElement) {
|
|
1199
1188
|
this.DANGER_USE_GETTER_agGridContainerElement =
|
|
@@ -1242,6 +1231,9 @@ You need to define at least one Layout!`);
|
|
|
1242
1231
|
return selectedRowInfo;
|
|
1243
1232
|
}
|
|
1244
1233
|
isGridRowSelectable() {
|
|
1234
|
+
if (!this.agGridModulesAdapter.isAgGridModuleRegistered('RowSelectionModule')) {
|
|
1235
|
+
return false;
|
|
1236
|
+
}
|
|
1245
1237
|
const rowSelection = this.agGridAdapter.getAgGridApi().getGridOption('rowSelection');
|
|
1246
1238
|
if (rowSelection == undefined) {
|
|
1247
1239
|
return false;
|
|
@@ -1255,9 +1247,11 @@ You need to define at least one Layout!`);
|
|
|
1255
1247
|
return false;
|
|
1256
1248
|
}
|
|
1257
1249
|
isGridRangeSelectable() {
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1250
|
+
if (!this.agGridModulesAdapter.isAgGridModuleRegistered('CellSelectionModule')) {
|
|
1251
|
+
return false;
|
|
1252
|
+
}
|
|
1253
|
+
return (this.agGridAdapter.getGridOption('enableRangeSelection') ||
|
|
1254
|
+
!!this.agGridAdapter.getGridOption('cellSelection'));
|
|
1261
1255
|
}
|
|
1262
1256
|
initAdaptableStore() {
|
|
1263
1257
|
const perfNewAdaptableStore = this.logger.beginPerf(`initAdaptableStore()`);
|
|
@@ -1409,8 +1403,7 @@ You need to define at least one Layout!`);
|
|
|
1409
1403
|
'chartOptionsChanged',
|
|
1410
1404
|
'chartDestroyed',
|
|
1411
1405
|
];
|
|
1412
|
-
|
|
1413
|
-
if (chartingModule.isModuleAvailable()) {
|
|
1406
|
+
if (this.ModuleService.isAdapTableModulePresent('Charting')) {
|
|
1414
1407
|
// We need to break the loop of charting changes for 'chartOptionsChanged', which is triggered by the subsequent agGridApi.updateChart(...)
|
|
1415
1408
|
// see #ag_grid_update_chart_loop
|
|
1416
1409
|
let lastChartOptionsChangePayload = '';
|
|
@@ -1458,7 +1451,7 @@ You need to define at least one Layout!`);
|
|
|
1458
1451
|
shouldAutoSizeLayout() {
|
|
1459
1452
|
const { layoutApi } = this.api;
|
|
1460
1453
|
const currentLayout = layoutApi.getCurrentLayout();
|
|
1461
|
-
if (currentLayout.
|
|
1454
|
+
if (currentLayout.ColumnSizing && Object.keys(currentLayout.ColumnSizing).length > 0) {
|
|
1462
1455
|
return;
|
|
1463
1456
|
}
|
|
1464
1457
|
return currentLayout.AutoSizeColumns;
|
|
@@ -1572,7 +1565,7 @@ You need to define at least one Layout!`);
|
|
|
1572
1565
|
const adaptableStatusPanels = this.agGridAdapter
|
|
1573
1566
|
.getAgGridApi()
|
|
1574
1567
|
.getGridOption('statusBar')
|
|
1575
|
-
?.statusPanels?.filter((statusPanel) => this.adaptableStatusPanelKeys.includes(statusPanel.key));
|
|
1568
|
+
?.statusPanels?.filter((statusPanel) => this.adaptableStatusPanelKeys.includes(statusPanel.key)) ?? [];
|
|
1576
1569
|
const statusBarModule = this.ModuleService.getModuleById(ModuleConstants.StatusBarModuleId);
|
|
1577
1570
|
// need to add only the adaptable panels
|
|
1578
1571
|
statusBarModule.syncStateWithOptions(adaptableStatusPanels);
|
|
@@ -1603,10 +1596,14 @@ You need to define at least one Layout!`);
|
|
|
1603
1596
|
}
|
|
1604
1597
|
}
|
|
1605
1598
|
}
|
|
1599
|
+
isInPivotMode() {
|
|
1600
|
+
return (this.agGridModulesAdapter.isAgGridModuleRegistered('PivotModule') &&
|
|
1601
|
+
this.agGridAdapter.getAgGridApi().isPivotMode());
|
|
1602
|
+
}
|
|
1606
1603
|
deriveAdaptableColumnStateFromAgGrid() {
|
|
1607
1604
|
const allColumns = [];
|
|
1608
1605
|
const gridApi = this.agGridAdapter.getAgGridApi();
|
|
1609
|
-
const isPivot =
|
|
1606
|
+
const isPivot = this.isInPivotMode();
|
|
1610
1607
|
let agGridCols = isPivot
|
|
1611
1608
|
? gridApi.getColumns()
|
|
1612
1609
|
: // we call getAllGridColumns because we want to also have the generated group columns
|
|
@@ -2241,9 +2238,17 @@ You need to define at least one Layout!`);
|
|
|
2241
2238
|
this.autoSizeColumns([columnId]);
|
|
2242
2239
|
}
|
|
2243
2240
|
autoSizeColumns(columnIds) {
|
|
2241
|
+
if (!this.agGridModulesAdapter.isAgGridModuleRegistered('ColumnAutoSizeModule')) {
|
|
2242
|
+
this.logger.consoleError(`Could not auto-size columns [${columnIds}] - missing required AG Grid module 'ColumnAutoSizeModule'`);
|
|
2243
|
+
return;
|
|
2244
|
+
}
|
|
2244
2245
|
this.layoutManager.autoSizeColumns(columnIds);
|
|
2245
2246
|
}
|
|
2246
2247
|
autoSizeAllColumns() {
|
|
2248
|
+
if (!this.agGridModulesAdapter.isAgGridModuleRegistered('ColumnAutoSizeModule')) {
|
|
2249
|
+
this.logger.consoleError(`Could not auto-size all columns - missing required AG Grid module 'ColumnAutoSizeModule'`);
|
|
2250
|
+
return;
|
|
2251
|
+
}
|
|
2247
2252
|
const agGridApi = this.agGridAdapter.getAgGridApi();
|
|
2248
2253
|
if (agGridApi) {
|
|
2249
2254
|
agGridApi.autoSizeAllColumns();
|
|
@@ -2254,6 +2259,7 @@ You need to define at least one Layout!`);
|
|
|
2254
2259
|
}
|
|
2255
2260
|
async getDistinctFilterValuesForColumn(options) {
|
|
2256
2261
|
const { column } = options;
|
|
2262
|
+
const self = this;
|
|
2257
2263
|
// First get the Grid Cells in the Column
|
|
2258
2264
|
const currentGridCells = this.getDistinctGridCellsForColumn(column);
|
|
2259
2265
|
// If there are custom distinct value, return them; otherwise return the Grids Cells just retrieved
|
|
@@ -2275,6 +2281,7 @@ You need to define at least one Layout!`);
|
|
|
2275
2281
|
value: gridCell.rawValue,
|
|
2276
2282
|
isSelected: gridCell.rowNode.displayed,
|
|
2277
2283
|
count: gridCell.count,
|
|
2284
|
+
tooltip: false,
|
|
2278
2285
|
get visible() {
|
|
2279
2286
|
return gridCell.visible;
|
|
2280
2287
|
},
|
|
@@ -2292,6 +2299,27 @@ You need to define at least one Layout!`);
|
|
|
2292
2299
|
value: gridCell.rawValue,
|
|
2293
2300
|
isSelected: gridCell.rowNode.displayed,
|
|
2294
2301
|
count: gridCell.count,
|
|
2302
|
+
tooltip: false,
|
|
2303
|
+
get visible() {
|
|
2304
|
+
return gridCell.visible;
|
|
2305
|
+
},
|
|
2306
|
+
get visibleCount() {
|
|
2307
|
+
return gridCell.visibleCount;
|
|
2308
|
+
},
|
|
2309
|
+
};
|
|
2310
|
+
});
|
|
2311
|
+
return result;
|
|
2312
|
+
},
|
|
2313
|
+
get orderedValues() {
|
|
2314
|
+
const rowNodes = gridApiInternal.getSortedRowNodesWithCurrentLayoutSortOrder();
|
|
2315
|
+
const currentGridCells = self.getDistinctGridCellsForColumn(column, rowNodes);
|
|
2316
|
+
const result = currentGridCells.map((gridCell) => {
|
|
2317
|
+
return {
|
|
2318
|
+
label: gridCell.displayValue,
|
|
2319
|
+
value: gridCell.rawValue,
|
|
2320
|
+
isSelected: gridCell.rowNode.displayed,
|
|
2321
|
+
count: gridCell.count,
|
|
2322
|
+
tooltip: false,
|
|
2295
2323
|
get visible() {
|
|
2296
2324
|
return gridCell.visible;
|
|
2297
2325
|
},
|
|
@@ -2310,12 +2338,16 @@ You need to define at least one Layout!`);
|
|
|
2310
2338
|
catch (error) {
|
|
2311
2339
|
this.logger.consoleError(`Failed to fetch custom filter values`, column, error);
|
|
2312
2340
|
}
|
|
2313
|
-
|
|
2314
|
-
return this.getGridCellsForCustomColumnValues(customDistinctValues, column);
|
|
2315
|
-
}
|
|
2341
|
+
return customDistinctValues ?? [];
|
|
2316
2342
|
}
|
|
2317
2343
|
// No distinct values so lets return unique grid cells
|
|
2318
|
-
return currentGridCells
|
|
2344
|
+
return currentGridCells.map((gridCell) => {
|
|
2345
|
+
const inFilterValue = {
|
|
2346
|
+
value: gridCell.rawValue,
|
|
2347
|
+
label: gridCell.displayValue,
|
|
2348
|
+
};
|
|
2349
|
+
return inFilterValue;
|
|
2350
|
+
});
|
|
2319
2351
|
}
|
|
2320
2352
|
async getDistinctEditValuesForColumn(options) {
|
|
2321
2353
|
const { column, gridCell } = options;
|
|
@@ -2352,42 +2384,34 @@ You need to define at least one Layout!`);
|
|
|
2352
2384
|
catch (error) {
|
|
2353
2385
|
this.logger.consoleError(`Failed to fetch custom edit values`, column, error);
|
|
2354
2386
|
}
|
|
2355
|
-
|
|
2356
|
-
return this.getGridCellsForCustomColumnValues(customDistinctValues, column);
|
|
2357
|
-
}
|
|
2387
|
+
return customDistinctValues ?? [];
|
|
2358
2388
|
}
|
|
2359
2389
|
}
|
|
2360
2390
|
// No distinct values so lets return unique grid cells
|
|
2361
|
-
return currentGridCells
|
|
2391
|
+
return currentGridCells.map((gridCell) => {
|
|
2392
|
+
const result = {
|
|
2393
|
+
value: gridCell.rawValue,
|
|
2394
|
+
label: gridCell.displayValue,
|
|
2395
|
+
};
|
|
2396
|
+
return result;
|
|
2397
|
+
});
|
|
2362
2398
|
}
|
|
2363
|
-
getDistinctGridCellsForColumn(column) {
|
|
2399
|
+
getDistinctGridCellsForColumn(column, rowNodes) {
|
|
2364
2400
|
let gridCells = [];
|
|
2365
2401
|
const isPivotResultColumn = column.isGeneratedPivotResultColumn;
|
|
2366
|
-
|
|
2402
|
+
const rowNodeCallback = (rowNode) => {
|
|
2367
2403
|
const gridCell = this.addDistinctColumnValue(rowNode, column.columnId, isPivotResultColumn);
|
|
2368
2404
|
if (gridCell) {
|
|
2369
2405
|
gridCells.push(gridCell);
|
|
2370
2406
|
}
|
|
2371
|
-
}
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
getGridCellsForCustomColumnValues(customColumnValues, column) {
|
|
2375
|
-
let gridCells = [];
|
|
2376
|
-
if (ArrayExtensions_1.default.IsNotNullOrEmpty(customColumnValues)) {
|
|
2377
|
-
gridCells = customColumnValues.map((pv) => {
|
|
2378
|
-
return {
|
|
2379
|
-
rawValue: pv.value,
|
|
2380
|
-
displayValue: pv.label ?? pv.value,
|
|
2381
|
-
normalisedValue: pv.value,
|
|
2382
|
-
columnId: column.columnId,
|
|
2383
|
-
column: column,
|
|
2384
|
-
rowNode: undefined,
|
|
2385
|
-
isPivotCell: false,
|
|
2386
|
-
isRowGroupCell: false,
|
|
2387
|
-
};
|
|
2388
|
-
});
|
|
2389
|
-
return gridCells;
|
|
2407
|
+
};
|
|
2408
|
+
if (rowNodes) {
|
|
2409
|
+
rowNodes.forEach(rowNodeCallback);
|
|
2390
2410
|
}
|
|
2411
|
+
else {
|
|
2412
|
+
this.agGridAdapter.getAgGridApi().forEachNode(rowNodeCallback);
|
|
2413
|
+
}
|
|
2414
|
+
return this.getUniqueGridCells(column, gridCells);
|
|
2391
2415
|
}
|
|
2392
2416
|
addDistinctColumnValue(rowNode, columnId, isPivotResultColumn) {
|
|
2393
2417
|
if (!rowNode) {
|
|
@@ -2724,11 +2748,11 @@ You need to define at least one Layout!`);
|
|
|
2724
2748
|
});
|
|
2725
2749
|
}
|
|
2726
2750
|
canGenerateCharts() {
|
|
2727
|
-
|
|
2728
|
-
|
|
2751
|
+
const chartingModule = this.ModuleService.getModuleById('Charting');
|
|
2752
|
+
return chartingModule.isModuleEnabled() && chartingModule.isModuleAvailable();
|
|
2729
2753
|
}
|
|
2730
2754
|
canDisplaySparklines() {
|
|
2731
|
-
return this.
|
|
2755
|
+
return this.agGridModulesAdapter.isAgGridModuleRegistered('SparklinesModule');
|
|
2732
2756
|
}
|
|
2733
2757
|
showCharts(chartsDefinitions, chartContainer) {
|
|
2734
2758
|
return chartsDefinitions.map((chartDefinition) => this.showChart(chartDefinition, chartContainer));
|
|
@@ -2806,12 +2830,20 @@ You need to define at least one Layout!`);
|
|
|
2806
2830
|
return isGroupedActive;
|
|
2807
2831
|
}
|
|
2808
2832
|
setAgGridQuickSearch(searchText) {
|
|
2833
|
+
if (!this.agGridModulesAdapter.isAgGridModuleRegistered('QuickFilterModule')) {
|
|
2834
|
+
this.logger.consoleError(`Can NOT set Quick Search text - missing required AG Grid module 'QuickFilterModule'`);
|
|
2835
|
+
return;
|
|
2836
|
+
}
|
|
2809
2837
|
this.agGridAdapter.setGridOption('quickFilterText', searchText);
|
|
2810
2838
|
}
|
|
2811
2839
|
clearAgGridQuickSearch() {
|
|
2812
2840
|
this.setAgGridQuickSearch('');
|
|
2813
2841
|
}
|
|
2814
2842
|
setAgGridFindSearchValue(searchText) {
|
|
2843
|
+
if (!this.agGridModulesAdapter.isAgGridModuleRegistered('FindModule')) {
|
|
2844
|
+
this.logger.consoleError(`Can NOT set Find Search text - missing required AG Grid module 'FindModule'`);
|
|
2845
|
+
return;
|
|
2846
|
+
}
|
|
2815
2847
|
this.agGridAdapter.setGridOption('findSearchValue', searchText);
|
|
2816
2848
|
}
|
|
2817
2849
|
applyAdaptableTheme(theme) {
|
|
@@ -3017,6 +3049,7 @@ You need to define at least one Layout!`);
|
|
|
3017
3049
|
'sideBar',
|
|
3018
3050
|
'statusBar',
|
|
3019
3051
|
'suppressAggFuncInHeader',
|
|
3052
|
+
'defaultColDef',
|
|
3020
3053
|
]);
|
|
3021
3054
|
if (liveGridOptions.components) {
|
|
3022
3055
|
liveGridOptions.components.AdaptableToolPanel = null;
|
|
@@ -3048,6 +3081,8 @@ You need to define at least one Layout!`);
|
|
|
3048
3081
|
this.agGridExportAdapter = null;
|
|
3049
3082
|
this.agGridThemeAdapter?.destroy();
|
|
3050
3083
|
this.agGridThemeAdapter = null;
|
|
3084
|
+
this.agGridModulesAdapter?.destroy();
|
|
3085
|
+
this.agGridModulesAdapter = null;
|
|
3051
3086
|
this.rowListeners = null;
|
|
3052
3087
|
this.emitter.destroy();
|
|
3053
3088
|
this.emitter = null;
|
|
@@ -3109,10 +3144,10 @@ You need to define at least one Layout!`);
|
|
|
3109
3144
|
this.unmountLoadingScreen = null;
|
|
3110
3145
|
}
|
|
3111
3146
|
canExportToExcel() {
|
|
3112
|
-
return this.
|
|
3147
|
+
return this.agGridModulesAdapter.isAgGridModuleRegistered('ExcelExportModule');
|
|
3113
3148
|
}
|
|
3114
3149
|
canExportToCsv() {
|
|
3115
|
-
return this.
|
|
3150
|
+
return this.agGridModulesAdapter.isAgGridModuleRegistered('CsvExportModule');
|
|
3116
3151
|
}
|
|
3117
3152
|
isQuickFilterAvailable() {
|
|
3118
3153
|
if (this.api.layoutApi.isCurrentLayoutPivot() &&
|