@adaptabletools/adaptable 20.3.0-canary.2 → 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 +2 -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 +71 -187
- 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 +11 -11
- package/src/AdaptableState/Common/ExtendedLayout.d.ts +50 -0
- package/src/AdaptableState/Common/ProgressIndicatorConfig.d.ts +1 -4
- package/src/AdaptableState/Common/RowScope.d.ts +1 -1
- package/src/AdaptableState/FormatColumnState.d.ts +16 -9
- 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 +23 -4
- 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 +6 -2
- 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 +12 -13
- package/src/Api/Internal/FormatColumnInternalApi.js +45 -16
- 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 +7 -7
- package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +7 -0
- package/src/Redux/ActionsReducers/StyledColumnRedux.js +13 -0
- 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 +4 -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/FormatColumn/getFormatColumnSettingsTargetItems.d.ts +5 -0
- package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsTargetItems.js +12 -0
- package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +1 -1
- package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +1 -0
- package/src/Utilities/Constants/DocumentationLinkConstants.js +1 -0
- package/src/Utilities/Extensions/ArrayExtensions.d.ts +15 -2
- package/src/Utilities/Extensions/ArrayExtensions.js +62 -13
- package/src/Utilities/ObjectFactory.js +3 -2
- 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 +19 -7
- package/src/Utilities/getScopeViewItems.js +5 -2
- 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/NewScopeComponent.js +5 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +6 -6
- 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 +59 -22
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +4 -0
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +1 -40
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +13 -12
- package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.d.ts +8 -0
- package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.js +31 -0
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +18 -4
- package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +1 -1
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +1 -1
- 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 +256 -218
- package/src/agGrid/AdaptableFilterHandler.d.ts +18 -0
- package/src/agGrid/AdaptableFilterHandler.js +61 -0
- package/src/agGrid/AgGridAdapter.d.ts +3 -7
- package/src/agGrid/AgGridAdapter.js +13 -46
- package/src/agGrid/AgGridColumnAdapter.d.ts +3 -3
- package/src/agGrid/AgGridColumnAdapter.js +86 -40
- package/src/agGrid/AgGridExportAdapter.js +1 -1
- package/src/agGrid/AgGridFilterAdapter.d.ts +2 -0
- package/src/agGrid/AgGridFilterAdapter.js +48 -0
- package/src/agGrid/AgGridFloatingFilterAdapter.d.ts +2 -0
- package/src/agGrid/{FloatingFilterWrapper.js → AgGridFloatingFilterAdapter.js} +24 -35
- package/src/agGrid/AgGridModulesAdapter.d.ts +15 -0
- package/src/agGrid/AgGridModulesAdapter.js +66 -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 +2 -2
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -2
- 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 +116 -24
- package/src/components/icons/DefaultIcon.d.ts +0 -1
- package/src/components/icons/DefaultIcon.js +0 -6
- 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 +172 -20
- 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 +24 -0
- package/src/types.d.ts +8 -9
- package/tsconfig.esm.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 -131
- package/src/agGrid/FloatingFilterWrapper.d.ts +0 -2
- package/src/agGrid/agGridModules.d.ts +0 -3
- package/src/agGrid/agGridModules.js +0 -15
- package/src/agGrid/getAgGridFilterNotifyModelFn.d.ts +0 -2
- package/src/agGrid/getAgGridFilterNotifyModelFn.js +0 -16
- /package/src/AdaptableState/Common/{ExtendedLayoutInfo.js → ExtendedLayout.js} +0 -0
|
@@ -36,36 +36,36 @@ export class FormatColumnInternalApi extends ApiBase {
|
|
|
36
36
|
* Retrieves all Format Columns in Adaptable State with the `Style` property set
|
|
37
37
|
* @returns format columns
|
|
38
38
|
*/
|
|
39
|
-
getAllFormatColumnWithStyle() {
|
|
39
|
+
getAllFormatColumnWithStyle(config) {
|
|
40
40
|
return this.getFormatColumnApi()
|
|
41
|
-
.getFormatColumns()
|
|
41
|
+
.getFormatColumns(config)
|
|
42
42
|
.filter((fc) => fc.Style);
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Retrieves all Format Columns in Adaptable State with the `Style` or the `CellAlignment` property set
|
|
46
46
|
* @returns format columns
|
|
47
47
|
*/
|
|
48
|
-
getAllFormatColumnWithStyleAndCellAlignment() {
|
|
48
|
+
getAllFormatColumnWithStyleAndCellAlignment(config) {
|
|
49
49
|
return this.getFormatColumnApi()
|
|
50
|
-
.getFormatColumns()
|
|
50
|
+
.getFormatColumns(config)
|
|
51
51
|
.filter((fc) => fc.Style || fc.CellAlignment);
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* Retrieves all Format Columns in Adaptable State with `DisplayFormat` property set
|
|
55
55
|
* @returns format columns
|
|
56
56
|
*/
|
|
57
|
-
getAllFormatColumnWithDisplayFormat() {
|
|
57
|
+
getAllFormatColumnWithDisplayFormat(config) {
|
|
58
58
|
return this.getFormatColumnApi()
|
|
59
|
-
.getFormatColumns()
|
|
59
|
+
.getFormatColumns(config)
|
|
60
60
|
.filter((fc) => fc.DisplayFormat);
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
63
|
* Retrieves all Format Columns in Adaptable State with `CellAlignment` property set
|
|
64
64
|
* @returns format columns
|
|
65
65
|
*/
|
|
66
|
-
getAllFormatColumnWithCellAlignment() {
|
|
66
|
+
getAllFormatColumnWithCellAlignment(config) {
|
|
67
67
|
return this.getFormatColumnApi()
|
|
68
|
-
.getFormatColumns()
|
|
68
|
+
.getFormatColumns(config)
|
|
69
69
|
.filter((fc) => fc.CellAlignment);
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
@@ -78,8 +78,8 @@ export class FormatColumnInternalApi extends ApiBase {
|
|
|
78
78
|
const formatColumns = this.getAllFormatColumnWithStyleAndCellAlignment()
|
|
79
79
|
.filter((formatColumn) => {
|
|
80
80
|
// FormatColumn default target is 'cell', so if no target is specified, we assume 'cell'
|
|
81
|
-
const fcTarget = formatColumn.Target ??
|
|
82
|
-
return fcTarget
|
|
81
|
+
const fcTarget = formatColumn.Target ?? 'cell';
|
|
82
|
+
return fcTarget === config.target;
|
|
83
83
|
})
|
|
84
84
|
.filter((formatColumn) => config?.includeSuspended || !formatColumn.IsSuspended);
|
|
85
85
|
return this.getFormatColumnWithColumnInScope(formatColumns, column);
|
|
@@ -116,7 +116,13 @@ export class FormatColumnInternalApi extends ApiBase {
|
|
|
116
116
|
* @returns list of FormatColumn
|
|
117
117
|
*/
|
|
118
118
|
getFormatColumnsWithDisplayFormatForColumn(column, config) {
|
|
119
|
-
const formatColumns = this.getAllFormatColumnWithDisplayFormat()
|
|
119
|
+
const formatColumns = this.getAllFormatColumnWithDisplayFormat()
|
|
120
|
+
.filter((formatColumn) => {
|
|
121
|
+
// FormatColumn default target is 'cell', so if no target is specified, we assume 'cell'
|
|
122
|
+
const fcTarget = formatColumn.Target ?? 'cell';
|
|
123
|
+
return fcTarget === config.target;
|
|
124
|
+
})
|
|
125
|
+
.filter((formatColumn) => config?.includeSuspended || !formatColumn.IsSuspended);
|
|
120
126
|
return this.getFormatColumnWithColumnInScope(formatColumns, column);
|
|
121
127
|
}
|
|
122
128
|
/**
|
|
@@ -183,7 +189,7 @@ export class FormatColumnInternalApi extends ApiBase {
|
|
|
183
189
|
return true;
|
|
184
190
|
}
|
|
185
191
|
const agGridApi = this.getAdaptableApi().agGridApi;
|
|
186
|
-
const agGridColumn =
|
|
192
|
+
const agGridColumn = this._adaptable.isInPivotMode()
|
|
187
193
|
? agGridApi.getPivotResultColumns().find((col) => col.getColId() === column.columnId)
|
|
188
194
|
: agGridApi.getColumn(column.columnId);
|
|
189
195
|
if (!agGridColumn) {
|
|
@@ -325,14 +331,14 @@ export class FormatColumnInternalApi extends ApiBase {
|
|
|
325
331
|
* Retrieves all Format Columns which have an Expression
|
|
326
332
|
* @returns Format Columns with Expression
|
|
327
333
|
*/
|
|
328
|
-
getFormatColumnsWithExpression() {
|
|
334
|
+
getFormatColumnsWithExpression(config) {
|
|
329
335
|
return this.getFormatColumnApi()
|
|
330
|
-
.getFormatColumns()
|
|
336
|
+
.getFormatColumns(config)
|
|
331
337
|
.filter((fc) => !!fc.Rule?.BooleanExpression);
|
|
332
338
|
}
|
|
333
|
-
getFormatColumnsDependentOnColumns(columnSet) {
|
|
339
|
+
getFormatColumnsDependentOnColumns(columnSet, config) {
|
|
334
340
|
return this.getFormatColumnApi()
|
|
335
|
-
.getFormatColumns()
|
|
341
|
+
.getFormatColumns(config)
|
|
336
342
|
.filter((fc) => fc.Rule?.Predicates?.some((p) => columnSet.has(p.ColumnId)));
|
|
337
343
|
}
|
|
338
344
|
/**
|
|
@@ -356,4 +362,27 @@ export class FormatColumnInternalApi extends ApiBase {
|
|
|
356
362
|
});
|
|
357
363
|
return [...columnsThatNeedRefresh];
|
|
358
364
|
}
|
|
365
|
+
formatColumnHeaderName(headerName, params) {
|
|
366
|
+
// currently we only format the header name for normal columns (NOT column groups)
|
|
367
|
+
if (!params.column) {
|
|
368
|
+
return headerName;
|
|
369
|
+
}
|
|
370
|
+
const abColumn = this.getColumnApi().getColumnWithColumnId(params.column.getColId());
|
|
371
|
+
const activeFormatColumnsWithDisplayFormat = this.getFormatColumnApi().internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn, {
|
|
372
|
+
target: 'columnHeader',
|
|
373
|
+
});
|
|
374
|
+
if (!activeFormatColumnsWithDisplayFormat.length) {
|
|
375
|
+
return headerName;
|
|
376
|
+
}
|
|
377
|
+
const mostRelevantFormatColumn = activeFormatColumnsWithDisplayFormat.find((formatColumn) => this.formatColumnShouldRenderInHeader(formatColumn, abColumn));
|
|
378
|
+
if (!mostRelevantFormatColumn) {
|
|
379
|
+
return headerName;
|
|
380
|
+
}
|
|
381
|
+
if (mostRelevantFormatColumn.DisplayFormat?.Formatter !== 'StringFormatter') {
|
|
382
|
+
// headers are always strings, so we can only use StringFormatter
|
|
383
|
+
return headerName;
|
|
384
|
+
}
|
|
385
|
+
const formattedHeaderName = this.getFormatColumnApi().internalApi.getStringFormattedValue(headerName, null, abColumn, mostRelevantFormatColumn.DisplayFormat.Options);
|
|
386
|
+
return formattedHeaderName;
|
|
387
|
+
}
|
|
359
388
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { RowClassParams } from 'ag-grid-enterprise';
|
|
1
|
+
import { IRowNode, RowClassParams } from 'ag-grid-enterprise';
|
|
2
2
|
import { AdaptableColumn } from '../../AdaptableState/Common/AdaptableColumn';
|
|
3
3
|
import { AdaptableMenuItem } from '../../AdaptableState/Common/Menu';
|
|
4
4
|
import { SpecialColumnSettings } from '../../AdaptableState/Common/SpecialColumnSettings';
|
|
5
5
|
import { GridCell } from '../../AdaptableState/Selection/GridCell';
|
|
6
6
|
import { SelectedCellInfo } from '../../AdaptableState/Selection/SelectedCellInfo';
|
|
7
7
|
import { SelectedRowInfo } from '../../AdaptableState/Selection/SelectedRowInfo';
|
|
8
|
+
import { InFilterValue } from '../../types';
|
|
8
9
|
import { ApiBase } from '../Implementation/ApiBase';
|
|
10
|
+
import { EditColumnValueInfo } from '../../AdaptableOptions/EditOptions';
|
|
9
11
|
export declare class GridInternalApi extends ApiBase {
|
|
10
12
|
/**
|
|
11
13
|
* Gets all distinct display values in the Column for given ColumnId
|
|
@@ -27,20 +29,13 @@ export declare class GridInternalApi extends ApiBase {
|
|
|
27
29
|
getDistinctFilterDisplayValuesForColumn(options: {
|
|
28
30
|
columnId: string;
|
|
29
31
|
currentSearchValue: string;
|
|
30
|
-
}): Promise<
|
|
31
|
-
value: any;
|
|
32
|
-
label: string;
|
|
33
|
-
}[]>;
|
|
32
|
+
}): Promise<InFilterValue[]>;
|
|
34
33
|
getDistinctValuesForColumn(columnId: string): Promise<GridCell[]> | undefined;
|
|
35
|
-
getDistinctDisplayValuesForColumn(columnId: string): Promise<any[]> | undefined;
|
|
36
34
|
getDistinctEditDisplayValuesForColumn(options: {
|
|
37
35
|
columnId: string;
|
|
38
36
|
gridCell: GridCell;
|
|
39
37
|
currentSearchValue: string;
|
|
40
|
-
}): Promise<
|
|
41
|
-
value: any;
|
|
42
|
-
label: string;
|
|
43
|
-
}[]> | undefined;
|
|
38
|
+
}): Promise<EditColumnValueInfo[]> | undefined;
|
|
44
39
|
/**
|
|
45
40
|
* Gets all distinct raw values in Column. Values are sorted.
|
|
46
41
|
* @param columnId Column to check
|
|
@@ -51,6 +46,7 @@ export declare class GridInternalApi extends ApiBase {
|
|
|
51
46
|
* @param columnId Column to check
|
|
52
47
|
*/
|
|
53
48
|
getUnsortedDistinctRawValuesForColumn(columnId: string): any[];
|
|
49
|
+
getSortedRowNodesWithCurrentLayoutSortOrder(rowNodes?: IRowNode[]): IRowNode[];
|
|
54
50
|
sortDistinctValues<T extends GridCell>(returnValues: T[], column: AdaptableColumn): T[];
|
|
55
51
|
setColumns(columns: AdaptableColumn[]): void;
|
|
56
52
|
setSelectedCells(selectedCellInfo: SelectedCellInfo): void;
|
|
@@ -72,4 +68,5 @@ export declare class GridInternalApi extends ApiBase {
|
|
|
72
68
|
* DO NOT USE THIS METHOD DIRECTLY - use `GridApi.isCellEditable` instead
|
|
73
69
|
*/
|
|
74
70
|
isCellEditableAccordingToEditOptions(gridCell: GridCell, defaultColDefinitionEditableValue: boolean): boolean | undefined;
|
|
71
|
+
isRowFilterable(rowNode: IRowNode): boolean;
|
|
75
72
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SortOrder } from '../../AdaptableState/Common/Enums';
|
|
2
2
|
import * as InternalRedux from '../../Redux/ActionsReducers/InternalRedux';
|
|
3
|
-
import
|
|
3
|
+
import { getDateComparatorForGridCell, getGenericComparatorForGridCell, getNumericComparatorForGridCell, sortCellValueArrayNumeric, sortCellValueArrayDates, sortCellValueArray, } from '../../Utilities/Extensions/ArrayExtensions';
|
|
4
|
+
import { multisort } from '@infinite-table/infinite-react';
|
|
4
5
|
import { convertAdaptableStyleToCSS } from '../../Utilities/Helpers/StyleHelper';
|
|
5
6
|
import UIHelper from '../../View/UIHelper';
|
|
6
7
|
import { ApiBase } from '../Implementation/ApiBase';
|
|
@@ -36,20 +37,13 @@ export class GridInternalApi extends ApiBase {
|
|
|
36
37
|
if (abColumn == undefined) {
|
|
37
38
|
return [];
|
|
38
39
|
}
|
|
39
|
-
|
|
40
|
+
const inFilterValues = await this._adaptable.getDistinctFilterValuesForColumn({
|
|
40
41
|
column: abColumn,
|
|
41
42
|
get currentSearchValue() {
|
|
42
43
|
return options.currentSearchValue;
|
|
43
44
|
},
|
|
44
45
|
});
|
|
45
|
-
|
|
46
|
-
const valueOptions = gridCells.map((cv) => {
|
|
47
|
-
return {
|
|
48
|
-
label: cv.displayValue,
|
|
49
|
-
value: cv.normalisedValue,
|
|
50
|
-
};
|
|
51
|
-
});
|
|
52
|
-
return valueOptions;
|
|
46
|
+
return inFilterValues || [];
|
|
53
47
|
}
|
|
54
48
|
async getDistinctValuesForColumn(columnId) {
|
|
55
49
|
const abColumn = this.getColumnApi().getColumnWithColumnId(columnId);
|
|
@@ -59,31 +53,19 @@ export class GridInternalApi extends ApiBase {
|
|
|
59
53
|
const gridCells = await this._adaptable.getDistinctValuesForColumn(abColumn);
|
|
60
54
|
return gridCells;
|
|
61
55
|
}
|
|
62
|
-
async getDistinctDisplayValuesForColumn(columnId) {
|
|
63
|
-
const distinctValues = await this.getDistinctValuesForColumn(columnId);
|
|
64
|
-
return distinctValues.map((gc) => {
|
|
65
|
-
return gc.displayValue;
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
56
|
async getDistinctEditDisplayValuesForColumn(options) {
|
|
69
57
|
const abColumn = this.getColumnApi().getColumnWithColumnId(options.columnId);
|
|
70
58
|
if (!abColumn) {
|
|
71
59
|
return undefined;
|
|
72
60
|
}
|
|
73
|
-
|
|
61
|
+
const valueOptions = await this._adaptable.getDistinctEditValuesForColumn({
|
|
74
62
|
column: abColumn,
|
|
75
63
|
gridCell: options.gridCell,
|
|
76
64
|
get currentSearchValue() {
|
|
77
65
|
return options.currentSearchValue;
|
|
78
66
|
},
|
|
79
67
|
});
|
|
80
|
-
|
|
81
|
-
return gridCells.map((gc) => {
|
|
82
|
-
return {
|
|
83
|
-
label: gc.displayValue,
|
|
84
|
-
value: gc.normalisedValue,
|
|
85
|
-
};
|
|
86
|
-
});
|
|
68
|
+
return valueOptions || [];
|
|
87
69
|
}
|
|
88
70
|
/**
|
|
89
71
|
* Gets all distinct raw values in Column. Values are sorted.
|
|
@@ -109,6 +91,58 @@ export class GridInternalApi extends ApiBase {
|
|
|
109
91
|
}
|
|
110
92
|
return this._adaptable.getDistinctGridCellsForColumn(abColumn);
|
|
111
93
|
}
|
|
94
|
+
getSortedRowNodesWithCurrentLayoutSortOrder(rowNodes) {
|
|
95
|
+
const currentLayout = this.getLayoutApi().getCurrentLayout();
|
|
96
|
+
const columnSorts = currentLayout.ColumnSorts || [];
|
|
97
|
+
const columnApi = this.getColumnApi();
|
|
98
|
+
const rowNodesMapToCells = new Map();
|
|
99
|
+
const allRowNodes = [];
|
|
100
|
+
// for each row node,let's create an object
|
|
101
|
+
// with only those gridcells that are needed - meaning
|
|
102
|
+
// for those column that are in the current sort
|
|
103
|
+
const rowNodeCallback = (node) => {
|
|
104
|
+
allRowNodes.push(node);
|
|
105
|
+
const rowNodeCells = {};
|
|
106
|
+
rowNodesMapToCells.set(node, rowNodeCells);
|
|
107
|
+
columnSorts.forEach((columnSort, i) => {
|
|
108
|
+
const { ColumnId } = columnSort;
|
|
109
|
+
const gridCell = this._adaptable.getGridCellFromRowNode(node, ColumnId);
|
|
110
|
+
rowNodeCells[ColumnId] = gridCell;
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
if (rowNodes) {
|
|
114
|
+
rowNodes.forEach(rowNodeCallback);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this.getAgGridApi().forEachNode(rowNodeCallback);
|
|
118
|
+
}
|
|
119
|
+
if (!columnSorts.length) {
|
|
120
|
+
return allRowNodes;
|
|
121
|
+
}
|
|
122
|
+
const sortInfo = columnSorts.map((columnSort) => {
|
|
123
|
+
const { ColumnId } = columnSort;
|
|
124
|
+
// NOTE: the comparator we pass to multisort should always sort in ascending order
|
|
125
|
+
// that's why we pass SortOrder.Asc to the comparators
|
|
126
|
+
const comparator = columnApi.hasNumberDataType(ColumnId)
|
|
127
|
+
? getNumericComparatorForGridCell(SortOrder.Asc)
|
|
128
|
+
: columnApi.hasDateDataType(ColumnId)
|
|
129
|
+
? getDateComparatorForGridCell(SortOrder.Asc)
|
|
130
|
+
: getGenericComparatorForGridCell(SortOrder.Asc);
|
|
131
|
+
return {
|
|
132
|
+
// but here we pass the actual direction of the column sort
|
|
133
|
+
dir: columnSort.SortOrder === 'Asc' ? 1 : -1,
|
|
134
|
+
fn: (rowNodeA, rowNodeB) => {
|
|
135
|
+
const gridCellA = rowNodesMapToCells.get(rowNodeA)?.[ColumnId];
|
|
136
|
+
const gridCellB = rowNodesMapToCells.get(rowNodeB)?.[ColumnId];
|
|
137
|
+
if (!gridCellA || !gridCellB) {
|
|
138
|
+
return 0;
|
|
139
|
+
}
|
|
140
|
+
return comparator(gridCellA, gridCellB);
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
});
|
|
144
|
+
return multisort(sortInfo, allRowNodes);
|
|
145
|
+
}
|
|
112
146
|
sortDistinctValues(returnValues, column) {
|
|
113
147
|
// this does NOT into account Custom Sort - far too hard for now...
|
|
114
148
|
let sortOrder = undefined;
|
|
@@ -123,13 +157,13 @@ export class GridInternalApi extends ApiBase {
|
|
|
123
157
|
}
|
|
124
158
|
if (sortOrder) {
|
|
125
159
|
if (this.getColumnApi().hasNumberDataType(column?.columnId)) {
|
|
126
|
-
returnValues =
|
|
160
|
+
returnValues = sortCellValueArrayNumeric(returnValues, sortOrder);
|
|
127
161
|
}
|
|
128
162
|
else if (this.getColumnApi().hasDateDataType(column?.columnId)) {
|
|
129
|
-
returnValues =
|
|
163
|
+
returnValues = sortCellValueArrayDates(returnValues, sortOrder);
|
|
130
164
|
}
|
|
131
165
|
else {
|
|
132
|
-
returnValues =
|
|
166
|
+
returnValues = sortCellValueArray(returnValues, sortOrder);
|
|
133
167
|
}
|
|
134
168
|
}
|
|
135
169
|
return returnValues;
|
|
@@ -222,4 +256,19 @@ export class GridInternalApi extends ApiBase {
|
|
|
222
256
|
}
|
|
223
257
|
return undefined;
|
|
224
258
|
}
|
|
259
|
+
isRowFilterable(rowNode) {
|
|
260
|
+
// first assess if the Row is filterable - if not, then return true so it appears in Grid
|
|
261
|
+
const isRowFilterable = this.getOptionsApi().getFilterOptions().isRowFilterable;
|
|
262
|
+
if (typeof isRowFilterable === 'function') {
|
|
263
|
+
const rowFilterableContext = {
|
|
264
|
+
...this.getAdaptableApi().internalApi.buildBaseContext(),
|
|
265
|
+
rowNode,
|
|
266
|
+
data: rowNode.data,
|
|
267
|
+
};
|
|
268
|
+
if (!isRowFilterable(rowFilterableContext)) {
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
return true;
|
|
273
|
+
}
|
|
225
274
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AdaptableModule } from '../../AdaptableState/Common/Types';
|
|
3
|
-
import { Layout, PivotLayout, TableLayout } from '../../AdaptableState/LayoutState';
|
|
1
|
+
import { Layout, LayoutBase, PivotLayout, TableLayout } from '../../AdaptableState/LayoutState';
|
|
4
2
|
import { ApiBase } from '../Implementation/ApiBase';
|
|
5
3
|
import { ColDef, ColGroupDef } from 'ag-grid-enterprise';
|
|
4
|
+
import { LayoutExtensionObject, LayoutExtensionModule } from '../../types';
|
|
6
5
|
export declare class LayoutInternalApi extends ApiBase {
|
|
7
6
|
getNormalizedLayout(layout: TableLayout | PivotLayout): TableLayout | PivotLayout;
|
|
8
7
|
sortColumnDefsByPivotAggregationOrder(columnDefs: (ColDef | ColGroupDef)[], pivotAggregationColumns: PivotLayout['PivotAggregationColumns']): (ColDef | ColGroupDef)[];
|
|
@@ -27,9 +26,10 @@ export declare class LayoutInternalApi extends ApiBase {
|
|
|
27
26
|
RowSummaries: boolean;
|
|
28
27
|
};
|
|
29
28
|
hasLayoutSpecificObjects(): boolean;
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
isObjectExtendedInLayout(object: LayoutExtensionObject, module: LayoutExtensionModule, layout: Layout): boolean;
|
|
30
|
+
showLayoutNonExtendedObjects(): boolean;
|
|
32
31
|
isLayoutGrouped(layout?: Layout): boolean;
|
|
33
32
|
setupRowSummaries(): void;
|
|
34
33
|
refreshLayout(): void;
|
|
34
|
+
getChangedColumnSorts(oldSorts: LayoutBase['ColumnSorts'], newSorts: LayoutBase['ColumnSorts']): string[];
|
|
35
35
|
}
|
|
@@ -120,12 +120,12 @@ export class LayoutInternalApi extends ApiBase {
|
|
|
120
120
|
return false;
|
|
121
121
|
}
|
|
122
122
|
if (layoutTagOptions.autoCheckTagsForLayouts == true ||
|
|
123
|
-
typeof layoutTagOptions?.
|
|
123
|
+
typeof layoutTagOptions?.isObjectExtendedInLayout === 'function') {
|
|
124
124
|
return true;
|
|
125
125
|
}
|
|
126
126
|
return false;
|
|
127
127
|
}
|
|
128
|
-
|
|
128
|
+
isObjectExtendedInLayout(object, module, layout) {
|
|
129
129
|
if (!this.hasLayoutSpecificObjects()) {
|
|
130
130
|
return true;
|
|
131
131
|
}
|
|
@@ -139,10 +139,10 @@ export class LayoutInternalApi extends ApiBase {
|
|
|
139
139
|
layout,
|
|
140
140
|
...this.getAdaptableInternalApi().buildBaseContext(),
|
|
141
141
|
};
|
|
142
|
-
return layoutTagOptions?.
|
|
142
|
+
return layoutTagOptions?.isObjectExtendedInLayout(context);
|
|
143
143
|
}
|
|
144
|
-
|
|
145
|
-
return this.getAdaptableState().Internal.Layout.
|
|
144
|
+
showLayoutNonExtendedObjects() {
|
|
145
|
+
return this.getAdaptableState().Internal.Layout.showLayoutNonExtendedObjects;
|
|
146
146
|
}
|
|
147
147
|
isLayoutGrouped(layout) {
|
|
148
148
|
if (!layout) {
|
|
@@ -151,6 +151,10 @@ export class LayoutInternalApi extends ApiBase {
|
|
|
151
151
|
return (layout?.RowGroupedColumns?.length || layout?.PivotGroupedColumns?.length) > 0;
|
|
152
152
|
}
|
|
153
153
|
setupRowSummaries() {
|
|
154
|
+
if (!this._adaptable.agGridModulesAdapter.isAgGridModuleRegistered('PinnedRowModule')) {
|
|
155
|
+
this.getAdaptableApi().consoleError(`Can NOT set Layout Row Summaries - missing required AG Grid module 'PinnedRowModule'`);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
154
158
|
const rowSummaries = this.getAdaptableState().Internal?.RowSummary?.rowSummaries ?? [];
|
|
155
159
|
const { top, bottom } = rowSummaries.reduce((acc, summaryRow) => {
|
|
156
160
|
const row = summaryRow.RowData;
|
|
@@ -169,4 +173,37 @@ export class LayoutInternalApi extends ApiBase {
|
|
|
169
173
|
refreshLayout() {
|
|
170
174
|
this._adaptable.refreshLayout();
|
|
171
175
|
}
|
|
176
|
+
getChangedColumnSorts(oldSorts, newSorts) {
|
|
177
|
+
if (ArrayExtensions.IsNullOrEmpty(oldSorts) && ArrayExtensions.IsNullOrEmpty(newSorts)) {
|
|
178
|
+
return [];
|
|
179
|
+
}
|
|
180
|
+
// If either one is empty but not both, all columns in the non-empty array have changed
|
|
181
|
+
if (ArrayExtensions.IsNullOrEmpty(oldSorts)) {
|
|
182
|
+
return newSorts.map((sort) => sort.ColumnId);
|
|
183
|
+
}
|
|
184
|
+
if (ArrayExtensions.IsNullOrEmpty(newSorts)) {
|
|
185
|
+
return oldSorts.map((sort) => sort.ColumnId);
|
|
186
|
+
}
|
|
187
|
+
const changedColumnIds = [];
|
|
188
|
+
// Create maps for quick lookup
|
|
189
|
+
const oldSortsMap = new Map();
|
|
190
|
+
oldSorts.forEach((sort) => {
|
|
191
|
+
oldSortsMap.set(sort.ColumnId, sort.SortOrder);
|
|
192
|
+
});
|
|
193
|
+
// Check columns in new sorts that changed from old sorts
|
|
194
|
+
newSorts.forEach((newSort) => {
|
|
195
|
+
const oldSortOrder = oldSortsMap.get(newSort.ColumnId);
|
|
196
|
+
// If column wasn't sorted before or sort order changed
|
|
197
|
+
if (oldSortOrder === undefined || oldSortOrder !== newSort.SortOrder) {
|
|
198
|
+
changedColumnIds.push(newSort.ColumnId);
|
|
199
|
+
}
|
|
200
|
+
// Remove processed columns from the map
|
|
201
|
+
oldSortsMap.delete(newSort.ColumnId);
|
|
202
|
+
});
|
|
203
|
+
// Add remaining columns from old sorts (these were removed in new sorts)
|
|
204
|
+
oldSortsMap.forEach((_, columnId) => {
|
|
205
|
+
changedColumnIds.push(columnId);
|
|
206
|
+
});
|
|
207
|
+
return changedColumnIds;
|
|
208
|
+
}
|
|
172
209
|
}
|
|
@@ -4,12 +4,8 @@ import { SystemFilterPredicateId } from '../../AdaptableState/Common/ColumnFilte
|
|
|
4
4
|
import { AdaptableColumnDataType } from '../../AdaptableState/Common/AdaptableColumn';
|
|
5
5
|
import { ColumnScope } from '../../types';
|
|
6
6
|
export declare class PredicateInternalApi extends ApiBase {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*
|
|
10
|
-
* @param predicate
|
|
11
|
-
*/
|
|
12
|
-
hasPredicateValues(predicate: AdaptablePredicate): boolean;
|
|
7
|
+
IsInOrNotInPredicate(predicate: AdaptablePredicate): boolean;
|
|
8
|
+
IsInorNotInPredicateDef(predicateDef: AdaptablePredicateDef): boolean;
|
|
13
9
|
/**
|
|
14
10
|
* Get all Filter Predicate Definitions - System and Custom
|
|
15
11
|
*/
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { ApiBase } from '../Implementation/ApiBase';
|
|
2
2
|
export class PredicateInternalApi extends ApiBase {
|
|
3
|
-
|
|
4
|
-
* Returns true if the predicate has a dropdown.
|
|
5
|
-
*
|
|
6
|
-
* @param predicate
|
|
7
|
-
*/
|
|
8
|
-
hasPredicateValues(predicate) {
|
|
3
|
+
IsInOrNotInPredicate(predicate) {
|
|
9
4
|
return predicate?.PredicateId === 'In' || predicate?.PredicateId === 'NotIn';
|
|
10
5
|
}
|
|
6
|
+
IsInorNotInPredicateDef(predicateDef) {
|
|
7
|
+
return predicateDef && ['In', 'NotIn'].includes(predicateDef.id);
|
|
8
|
+
}
|
|
11
9
|
/**
|
|
12
10
|
* Get all Filter Predicate Definitions - System and Custom
|
|
13
11
|
*/
|
|
@@ -2,5 +2,6 @@ import { AdaptableColumn, AdaptableIcon } from '../../types';
|
|
|
2
2
|
import { ApiBase } from '../Implementation/ApiBase';
|
|
3
3
|
export declare class UserInterfaceInternalApi extends ApiBase {
|
|
4
4
|
prepareAdaptableIconDef(icon: AdaptableIcon): AdaptableIcon;
|
|
5
|
+
getCustomIconDefinition(iconName: string): AdaptableIcon | import("../../types").CustomIcon;
|
|
5
6
|
shouldShowSelectCellEditor(column: AdaptableColumn): boolean;
|
|
6
7
|
}
|
|
@@ -2,15 +2,22 @@ import { ApiBase } from '../Implementation/ApiBase';
|
|
|
2
2
|
export class UserInterfaceInternalApi extends ApiBase {
|
|
3
3
|
prepareAdaptableIconDef(icon) {
|
|
4
4
|
if (icon && 'name' in icon) {
|
|
5
|
-
let customIcon = icon && 'name' in icon
|
|
6
|
-
? this.getUserInterfaceApi().getCustomIconDefinition(icon.name)
|
|
7
|
-
: null;
|
|
5
|
+
let customIcon = icon && 'name' in icon ? this.getCustomIconDefinition(icon.name) : null;
|
|
8
6
|
if (customIcon) {
|
|
9
7
|
icon = customIcon;
|
|
10
8
|
}
|
|
11
9
|
}
|
|
12
10
|
return icon;
|
|
13
11
|
}
|
|
12
|
+
getCustomIconDefinition(iconName) {
|
|
13
|
+
let customIcon = undefined;
|
|
14
|
+
const customIcons = this.getUserInterfaceApi().getCustomIcons();
|
|
15
|
+
customIcon = customIcons.find((icon) => icon.name === iconName);
|
|
16
|
+
if (customIcon) {
|
|
17
|
+
return customIcon.icon;
|
|
18
|
+
}
|
|
19
|
+
return customIcon;
|
|
20
|
+
}
|
|
14
21
|
shouldShowSelectCellEditor(column) {
|
|
15
22
|
const showSelectCellEditor = this.getEditOptions().showSelectCellEditor;
|
|
16
23
|
if (showSelectCellEditor) {
|
package/src/Api/LayoutApi.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AdaptableColumn, ColumnSort, PivotLayout, TableLayout } from '../../types';
|
|
2
|
-
import {
|
|
2
|
+
import { ExtendedLayout } from '../AdaptableState/Common/ExtendedLayout';
|
|
3
3
|
import { LayoutState, Layout } from '../AdaptableState/LayoutState';
|
|
4
4
|
/**
|
|
5
5
|
* Provides run-time access to the Layout Module and associated state
|
|
@@ -61,7 +61,12 @@ export interface LayoutApi {
|
|
|
61
61
|
* @param layoutName Layout to retrieve
|
|
62
62
|
* @returns layout
|
|
63
63
|
*/
|
|
64
|
-
getExtendedLayoutByName(layoutName: string):
|
|
64
|
+
getExtendedLayoutByName(layoutName: string): ExtendedLayout | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Creates (or Updates) an Extended Layout
|
|
67
|
+
* @param extendedLayoutInfo extendedLayout to Create
|
|
68
|
+
*/
|
|
69
|
+
createOrUpdateExtendedLayout(extendedLayoutInfo: ExtendedLayout): void;
|
|
65
70
|
/**
|
|
66
71
|
* Retrieves all Layouts in Adaptable State
|
|
67
72
|
* @returns layouts
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PlusMinusState, PlusMinusNudge } from '../AdaptableState/PlusMinusState';
|
|
2
2
|
import { CellUpdateRequest, GridCell } from '../AdaptableState/Selection/GridCell';
|
|
3
|
+
import { LayoutExtendedConfig } from '../types';
|
|
3
4
|
/**
|
|
4
5
|
* Provides run-time access to the Plus / Minus Module and associated state
|
|
5
6
|
*/
|
|
@@ -10,27 +11,25 @@ export interface PlusMinusApi {
|
|
|
10
11
|
getPlusMinusState(): PlusMinusState;
|
|
11
12
|
/**
|
|
12
13
|
* Retrieves all Plus Minus Rules in Adaptable State with those with expressions first
|
|
13
|
-
* @returns plus minus
|
|
14
|
+
* @returns all plus minus rules
|
|
14
15
|
*/
|
|
15
|
-
getAllPlusMinus(config?:
|
|
16
|
-
includeLayoutNotAssociatedObjects?: boolean;
|
|
17
|
-
}): PlusMinusNudge[];
|
|
16
|
+
getAllPlusMinus(config?: LayoutExtendedConfig): PlusMinusNudge[];
|
|
18
17
|
/**
|
|
19
18
|
* Retrieves Plus Minus Rule by the technical ID (from `PlusMinusState`)
|
|
20
19
|
* @param id Plus Minus id
|
|
21
20
|
* @returns plus minus rule
|
|
22
21
|
*/
|
|
23
|
-
getPlusMinusById(id: PlusMinusNudge['Uuid']): PlusMinusNudge;
|
|
22
|
+
getPlusMinusById(id: PlusMinusNudge['Uuid'], config?: LayoutExtendedConfig): PlusMinusNudge;
|
|
24
23
|
/**
|
|
25
24
|
* Retrieves all active (not-suspended) Plus Minus Rules in Adaptable State with those with expressions first
|
|
26
25
|
* @returns plus minus rules
|
|
27
26
|
*/
|
|
28
|
-
getAllActivePlusMinus(): PlusMinusNudge[];
|
|
27
|
+
getAllActivePlusMinus(config?: LayoutExtendedConfig): PlusMinusNudge[];
|
|
29
28
|
/**
|
|
30
29
|
* Retrieves all suspended Plus Minus Rules in Adaptable State with those with expressions first
|
|
31
30
|
* @returns plus minus rules
|
|
32
31
|
*/
|
|
33
|
-
getAllSuspendedPlusMinus(): PlusMinusNudge[];
|
|
32
|
+
getAllSuspendedPlusMinus(config?: LayoutExtendedConfig): PlusMinusNudge[];
|
|
34
33
|
/**
|
|
35
34
|
* Applies a Plus Minus Rule to given cells
|
|
36
35
|
* @param plusMinusNudge Plus Minus Rule to apply
|
|
@@ -53,6 +52,11 @@ export interface PlusMinusApi {
|
|
|
53
52
|
* @returns plus minus rule
|
|
54
53
|
*/
|
|
55
54
|
editPlusMinusNudge(plusMinusNudge: PlusMinusNudge): PlusMinusNudge;
|
|
55
|
+
/**
|
|
56
|
+
* Deletes a plus minus rule
|
|
57
|
+
* @param plusMinusNudge Plus Minus Rule to delete
|
|
58
|
+
*/
|
|
59
|
+
deletePlusMinusNudge(plusMinusNudge: PlusMinusNudge): void;
|
|
56
60
|
/**
|
|
57
61
|
* Adds new Plus Minus Rule to State
|
|
58
62
|
* @param plusMinusNudge Plus Minus Rule to add
|
package/src/Api/ScheduleApi.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { ReportSchedule } from '../AdaptableState/ExportState';
|
|
|
3
3
|
import { IPushPullSchedule } from '../AdaptableState/IPushPullState';
|
|
4
4
|
import { OpenFinSchedule } from '../AdaptableState/OpenFinState';
|
|
5
5
|
import { ReminderSchedule, ScheduleState } from '../AdaptableState/ScheduleState';
|
|
6
|
+
import { LayoutExtendedConfig } from '../types';
|
|
6
7
|
/**
|
|
7
8
|
* Provides run-time access to the Schedule Module and associated state
|
|
8
9
|
*/
|
|
@@ -15,30 +16,28 @@ export interface ScheduleApi {
|
|
|
15
16
|
* Retrieves the Schedule section from Adaptable State
|
|
16
17
|
* @returns schedules
|
|
17
18
|
*/
|
|
18
|
-
getSchedules(): BaseSchedule[];
|
|
19
|
+
getSchedules(config?: LayoutExtendedConfig): BaseSchedule[];
|
|
19
20
|
/**
|
|
20
21
|
* Retrieves Schedule by id
|
|
21
22
|
* @param id Schedule id
|
|
22
23
|
* @returns schedule
|
|
23
24
|
*/
|
|
24
|
-
getScheduleById(id: BaseSchedule['Uuid']): BaseSchedule;
|
|
25
|
+
getScheduleById(id: BaseSchedule['Uuid'], config?: LayoutExtendedConfig): BaseSchedule;
|
|
25
26
|
/**
|
|
26
27
|
* Retrieves all Reminder-based Schedules from Schedule State
|
|
27
28
|
* @returns reminder schedules
|
|
28
29
|
*/
|
|
29
|
-
getReminderSchedules(config?:
|
|
30
|
-
includeLayoutNotAssociatedObjects?: boolean;
|
|
31
|
-
}): ReminderSchedule[];
|
|
30
|
+
getReminderSchedules(config?: LayoutExtendedConfig): ReminderSchedule[];
|
|
32
31
|
/**
|
|
33
32
|
* Retrieves all active (not-suspended) Reminder-based Schedules from Schedule State
|
|
34
33
|
* @returns reminder schedules
|
|
35
34
|
*/
|
|
36
|
-
getActiveReminderSchedules(): ReminderSchedule[];
|
|
35
|
+
getActiveReminderSchedules(config?: LayoutExtendedConfig): ReminderSchedule[];
|
|
37
36
|
/**
|
|
38
37
|
* Retrieves all suspended Reminder-based Schedules from Schedule State
|
|
39
38
|
* @returns reminder schedules
|
|
40
39
|
*/
|
|
41
|
-
getSuspendedReminderSchedules(): ReminderSchedule[];
|
|
40
|
+
getSuspendedReminderSchedules(config?: LayoutExtendedConfig): ReminderSchedule[];
|
|
42
41
|
/**
|
|
43
42
|
* Adds Reminder-based Schedule
|
|
44
43
|
* @param ReminderSchedule Reminder Schedule to add
|
|
@@ -72,9 +71,7 @@ export interface ScheduleApi {
|
|
|
72
71
|
* Retrieves all Report / Export Schedules from Schedule State
|
|
73
72
|
* @returns report schedules
|
|
74
73
|
*/
|
|
75
|
-
getReportSchedules(config?:
|
|
76
|
-
includeLayoutNotAssociatedObjects?: boolean;
|
|
77
|
-
}): ReportSchedule[];
|
|
74
|
+
getReportSchedules(config?: LayoutExtendedConfig): ReportSchedule[];
|
|
78
75
|
/**
|
|
79
76
|
* Retrieves all active (not-suspended) Report / Export Schedules from Schedule State
|
|
80
77
|
* @returns report schedules
|
|
@@ -118,9 +115,7 @@ export interface ScheduleApi {
|
|
|
118
115
|
* Retrieves all ipushpull-based Schedules from Schedule State
|
|
119
116
|
* @returns IPushPull schedules
|
|
120
117
|
*/
|
|
121
|
-
getIPushPullSchedules(config?:
|
|
122
|
-
includeLayoutNotAssociatedObjects?: boolean;
|
|
123
|
-
}): IPushPullSchedule[];
|
|
118
|
+
getIPushPullSchedules(config?: LayoutExtendedConfig): IPushPullSchedule[];
|
|
124
119
|
/**
|
|
125
120
|
* Retrieves all active (not-suspended) ipushpull-based Schedules from Schedule State
|
|
126
121
|
* @returns IPushPull schedules
|
|
@@ -164,9 +159,7 @@ export interface ScheduleApi {
|
|
|
164
159
|
* Retrieves all OpenFin-based Schedules from Schedule State
|
|
165
160
|
* @returns OpenFin schedules
|
|
166
161
|
*/
|
|
167
|
-
getOpenFinSchedules(config?:
|
|
168
|
-
includeLayoutNotAssociatedObjects?: boolean;
|
|
169
|
-
}): OpenFinSchedule[];
|
|
162
|
+
getOpenFinSchedules(config?: LayoutExtendedConfig): OpenFinSchedule[];
|
|
170
163
|
/**
|
|
171
164
|
* Retrieves all active (not-suspended) OpenFin-based Schedules from Schedule State
|
|
172
165
|
* @returns OpenFin schedules
|