@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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AdaptableModuleBase } from './AdaptableModuleBase';
|
|
2
2
|
import { AdaptableModuleView, AdaptableObjectView } from './Interface/IModule';
|
|
3
3
|
import { AdaptableApi } from '../Api/AdaptableApi';
|
|
4
|
+
import { LayoutExtendedConfig } from '../types';
|
|
4
5
|
import { BaseSchedule } from '../AdaptableState/Common/Schedule';
|
|
5
6
|
import { IScheduleModule } from './Interface/IScheduleModule';
|
|
6
7
|
export declare class ScheduleModule extends AdaptableModuleBase implements IScheduleModule {
|
|
@@ -12,11 +13,9 @@ export declare class ScheduleModule extends AdaptableModuleBase implements ISche
|
|
|
12
13
|
private addMidnightRefreshSchedule;
|
|
13
14
|
private getDateFromSchedule;
|
|
14
15
|
private clearAllJobs;
|
|
15
|
-
getModuleAdaptableObjects(config?:
|
|
16
|
-
includeLayoutNotAssociatedObjects?: boolean;
|
|
17
|
-
}): BaseSchedule[];
|
|
16
|
+
getModuleAdaptableObjects(config?: LayoutExtendedConfig): BaseSchedule[];
|
|
18
17
|
toView(schedule: BaseSchedule): AdaptableObjectView;
|
|
19
18
|
toViewAll(): AdaptableObjectView[];
|
|
20
19
|
getViewProperties(): AdaptableModuleView;
|
|
21
|
-
|
|
20
|
+
containsLayoutExtensions(): boolean;
|
|
22
21
|
}
|
|
@@ -145,7 +145,7 @@ export class ScheduleModule extends AdaptableModuleBase {
|
|
|
145
145
|
}
|
|
146
146
|
toViewAll() {
|
|
147
147
|
return this.getModuleAdaptableObjects({
|
|
148
|
-
|
|
148
|
+
includeLayoutNotExtendedObjects: this.showLayoutNonExtendedObjects(),
|
|
149
149
|
}).map((schedule) => this.toView(schedule));
|
|
150
150
|
}
|
|
151
151
|
getViewProperties() {
|
|
@@ -257,7 +257,7 @@ export class ScheduleModule extends AdaptableModuleBase {
|
|
|
257
257
|
},
|
|
258
258
|
};
|
|
259
259
|
}
|
|
260
|
-
|
|
260
|
+
containsLayoutExtensions() {
|
|
261
261
|
return true;
|
|
262
262
|
}
|
|
263
263
|
}
|
|
@@ -18,7 +18,7 @@ export class SettingsPanelModule extends AdaptableModuleBase {
|
|
|
18
18
|
];
|
|
19
19
|
}
|
|
20
20
|
createModuleMenuItem(source) {
|
|
21
|
-
if (this.
|
|
21
|
+
if (this.isModuleVisible()) {
|
|
22
22
|
return this.createMenuItemReduxAction('settings-panel-open', 'Open ' + this.moduleInfo.FriendlyName, this.moduleInfo.Glyph, PopupRedux.PopupShowScreen());
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -5,13 +5,12 @@ import { AdaptableApi } from '../Api/AdaptableApi';
|
|
|
5
5
|
import { AdaptableObject } from '../AdaptableState/Common/AdaptableObject';
|
|
6
6
|
import { AdaptableModuleView, AdaptableObjectView } from './Interface/IModule';
|
|
7
7
|
import { IKeyDownListenerModule } from './Interface/IKeyDownListenerModule';
|
|
8
|
+
import { LayoutExtendedConfig } from '../types';
|
|
8
9
|
export declare class ShortcutModule extends AdaptableModuleBase implements IKeyDownListenerModule {
|
|
9
10
|
private shouldHandleKeyDown;
|
|
10
11
|
private adaptable;
|
|
11
12
|
constructor(api: AdaptableApi);
|
|
12
|
-
getModuleAdaptableObjects(config?:
|
|
13
|
-
includeLayoutNotAssociatedObjects?: boolean;
|
|
14
|
-
}): AdaptableObject[];
|
|
13
|
+
getModuleAdaptableObjects(config?: LayoutExtendedConfig): AdaptableObject[];
|
|
15
14
|
hasNamedQueryReferences(): boolean;
|
|
16
15
|
getTeamSharingAction(): TeamSharingImportInfo<Shortcut>;
|
|
17
16
|
onAdaptableReady(): void;
|
|
@@ -22,5 +21,5 @@ export declare class ShortcutModule extends AdaptableModuleBase implements IKeyD
|
|
|
22
21
|
toView(shortcut: Shortcut): AdaptableObjectView;
|
|
23
22
|
toViewAll(): AdaptableObjectView[];
|
|
24
23
|
getViewProperties(): AdaptableModuleView;
|
|
25
|
-
|
|
24
|
+
containsLayoutExtensions(): boolean;
|
|
26
25
|
}
|
|
@@ -88,7 +88,7 @@ export class ShortcutModule extends AdaptableModuleBase {
|
|
|
88
88
|
}
|
|
89
89
|
toViewAll() {
|
|
90
90
|
return this.getModuleAdaptableObjects({
|
|
91
|
-
|
|
91
|
+
includeLayoutNotExtendedObjects: this.showLayoutNonExtendedObjects(),
|
|
92
92
|
}).map((shortcut) => this.toView(shortcut));
|
|
93
93
|
}
|
|
94
94
|
getViewProperties() {
|
|
@@ -104,7 +104,7 @@ export class ShortcutModule extends AdaptableModuleBase {
|
|
|
104
104
|
},
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
|
-
|
|
107
|
+
containsLayoutExtensions() {
|
|
108
108
|
return true;
|
|
109
109
|
}
|
|
110
110
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { AdaptableModuleBase } from './AdaptableModuleBase';
|
|
2
2
|
import { IModule } from './Interface/IModule';
|
|
3
3
|
import { AdaptableApi } from '../Api/AdaptableApi';
|
|
4
|
-
import { GridOptions } from 'ag-grid-enterprise';
|
|
4
|
+
import { AgModuleName, GridOptions } from 'ag-grid-enterprise';
|
|
5
5
|
export declare class StatusBarModule extends AdaptableModuleBase implements IModule {
|
|
6
6
|
constructor(api: AdaptableApi);
|
|
7
|
+
protected getAgGridModuleDependencies(): AgModuleName[];
|
|
8
|
+
isModuleEnabled(): boolean;
|
|
7
9
|
syncStateWithOptions(agGridAdaptablePanels: GridOptions['statusBar']['statusPanels']): void;
|
|
8
|
-
isModuleAvailable(): boolean;
|
|
9
10
|
}
|
|
@@ -4,6 +4,12 @@ export class StatusBarModule extends AdaptableModuleBase {
|
|
|
4
4
|
constructor(api) {
|
|
5
5
|
super(ModuleConstants.StatusBarModuleId, ModuleConstants.StatusBarFriendlyName, 'statusbar', 'StatusBarPopup', 'Configure AdapTable Status Bar', api);
|
|
6
6
|
}
|
|
7
|
+
getAgGridModuleDependencies() {
|
|
8
|
+
return ['StatusBarModule'];
|
|
9
|
+
}
|
|
10
|
+
isModuleEnabled() {
|
|
11
|
+
return this.api.statusBarApi.getAgGridStatusPanels().length > 0;
|
|
12
|
+
}
|
|
7
13
|
syncStateWithOptions(agGridAdaptablePanels) {
|
|
8
14
|
const statusPanelsState = this.api.statusBarApi.getAdaptableStatusBars();
|
|
9
15
|
/**
|
|
@@ -25,7 +31,4 @@ export class StatusBarModule extends AdaptableModuleBase {
|
|
|
25
31
|
});
|
|
26
32
|
this.api.statusBarApi.setStatusBarPanels(newStatusPanelsState);
|
|
27
33
|
}
|
|
28
|
-
isModuleAvailable() {
|
|
29
|
-
return super.isModuleAvailable() && this.api.statusBarApi.getAgGridStatusPanels().length > 0;
|
|
30
|
-
}
|
|
31
34
|
}
|
|
@@ -6,11 +6,10 @@ import { AdaptableModuleView, AdaptableObjectView, IModule } from './Interface/I
|
|
|
6
6
|
import { AdaptableApi } from '../Api/AdaptableApi';
|
|
7
7
|
import { AdaptableObject } from '../AdaptableState/Common/AdaptableObject';
|
|
8
8
|
import { StyledColumn } from '../AdaptableState/StyledColumnState';
|
|
9
|
+
import { LayoutExtendedConfig } from '../types';
|
|
9
10
|
export declare class StyledColumnModule extends AdaptableModuleBase implements IModule {
|
|
10
11
|
constructor(api: AdaptableApi);
|
|
11
|
-
getModuleAdaptableObjects(config?:
|
|
12
|
-
includeLayoutNotAssociatedObjects?: boolean;
|
|
13
|
-
}): AdaptableObject[];
|
|
12
|
+
getModuleAdaptableObjects(config?: LayoutExtendedConfig): AdaptableObject[];
|
|
14
13
|
getExplicitlyReferencedColumnIds(styledColumn: StyledColumn): string[];
|
|
15
14
|
hasNamedQueryReferences(): boolean;
|
|
16
15
|
createColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem<"separator" | "calculated-column-edit" | "cell-summary-show" | "chart-show" | "column-group" | "column-filter-group" | "column-filter-bar-hide" | "column-filter-bar-show" | "column-filter-clear" | "column-filter-suspend" | "column-filter-unsuspend" | "column-info-show" | "custom-sort-add" | "custom-sort-edit" | "dashboard-group" | "dashboard-collapse" | "dashboard-configure" | "dashboard-dock" | "dashboard-expand" | "dashboard-float" | "dashboard-hide" | "dashboard-show" | "data-import" | "flashing-cell-add" | "flashing-cell-delete" | "format-column-add" | "format-column-edit" | "free-text-column-edit" | "grid-group" | "grid-info-show" | "layout-column-caption-change" | "layout-column-hide" | "layout-edit" | "layout-column-select" | "layout-column-select-preserve" | "layout-column-select-reset" | "layout-grid-select" | "plus-minus-add" | "settings-panel-open" | "styling-group" | "styled-column-badge-add" | "styled-column-badge-edit" | "styled-column-gradient-add" | "styled-column-gradient-edit" | "styled-column-percent-bar-add" | "styled-column-percent-bar-edit" | "styled-column-sparkline-add" | "styled-column-sparkline-edit" | "system-status-show" | "_navbar">[];
|
|
@@ -19,7 +18,7 @@ export declare class StyledColumnModule extends AdaptableModuleBase implements I
|
|
|
19
18
|
toView(styledColumn: StyledColumn): AdaptableObjectView;
|
|
20
19
|
toViewAll(): AdaptableObjectView[];
|
|
21
20
|
getViewProperties(): AdaptableModuleView;
|
|
22
|
-
|
|
21
|
+
containsLayoutExtensions(): boolean;
|
|
23
22
|
private getTypeLabel;
|
|
24
23
|
private getTypeName;
|
|
25
24
|
}
|
|
@@ -226,7 +226,7 @@ export class StyledColumnModule extends AdaptableModuleBase {
|
|
|
226
226
|
}
|
|
227
227
|
toViewAll() {
|
|
228
228
|
return this.getModuleAdaptableObjects({
|
|
229
|
-
|
|
229
|
+
includeLayoutNotExtendedObjects: this.showLayoutNonExtendedObjects(),
|
|
230
230
|
}).map((styledColumn) => this.toView(styledColumn));
|
|
231
231
|
}
|
|
232
232
|
getViewProperties() {
|
|
@@ -242,7 +242,7 @@ export class StyledColumnModule extends AdaptableModuleBase {
|
|
|
242
242
|
},
|
|
243
243
|
};
|
|
244
244
|
}
|
|
245
|
-
|
|
245
|
+
containsLayoutExtensions() {
|
|
246
246
|
return true;
|
|
247
247
|
}
|
|
248
248
|
getTypeLabel(styledColumn) {
|
|
@@ -6,7 +6,7 @@ export class SystemStatusModule extends AdaptableModuleBase {
|
|
|
6
6
|
super(ModuleConstants.SystemStatusModuleId, ModuleConstants.SystemStatusFriendlyName, 'traffic-lights', 'SystemStatusPopup', 'Provide messages about the Status of your application', api);
|
|
7
7
|
}
|
|
8
8
|
createColumnMenuItems(column) {
|
|
9
|
-
if (this.
|
|
9
|
+
if (this.isModuleVisible()) {
|
|
10
10
|
return [
|
|
11
11
|
this.createMenuItemShowPopup('system-status-show', 'Show System Status', this.moduleInfo.Popup, this.moduleInfo.Glyph, {
|
|
12
12
|
source: 'ColumnMenu',
|
|
@@ -15,7 +15,7 @@ export class SystemStatusModule extends AdaptableModuleBase {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
createContextMenuItems(menuContext) {
|
|
18
|
-
if (this.
|
|
18
|
+
if (this.isModuleVisible()) {
|
|
19
19
|
let popUpParams = {
|
|
20
20
|
source: 'ContextMenu',
|
|
21
21
|
};
|
|
@@ -6,7 +6,7 @@ export declare class TeamSharingModule extends AdaptableModuleBase implements IM
|
|
|
6
6
|
private SKIP_TEAMSHARING_UPDATE_ACTIONS;
|
|
7
7
|
constructor(api: AdaptableApi);
|
|
8
8
|
onAdaptableReady(): void;
|
|
9
|
-
|
|
9
|
+
isModuleEnabled(): boolean;
|
|
10
10
|
isModuleObjectsShareable(): boolean;
|
|
11
11
|
getPopupMaxWidth(): number | undefined;
|
|
12
12
|
private handleStateChanged;
|
|
@@ -32,8 +32,11 @@ export class TeamSharingModule extends AdaptableModuleBase {
|
|
|
32
32
|
}
|
|
33
33
|
this.api.eventApi.on('AdaptableStateChanged', (adaptableStateChangedInfo) => this.handleStateChanged(adaptableStateChangedInfo));
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
isModuleEnabled() {
|
|
36
|
+
const teamSharingOptions = this.api.optionsApi.getTeamSharingOptions();
|
|
37
|
+
return (teamSharingOptions?.enableTeamSharing &&
|
|
38
|
+
typeof teamSharingOptions?.loadSharedEntities === 'function' &&
|
|
39
|
+
typeof teamSharingOptions?.persistSharedEntities === 'function');
|
|
37
40
|
}
|
|
38
41
|
isModuleObjectsShareable() {
|
|
39
42
|
return false;
|
|
@@ -3,5 +3,5 @@ import { IModule } from './Interface/IModule';
|
|
|
3
3
|
import { AdaptableApi } from '../Api/AdaptableApi';
|
|
4
4
|
export declare class ToolPanelModule extends AdaptableModuleBase implements IModule {
|
|
5
5
|
constructor(api: AdaptableApi);
|
|
6
|
-
|
|
6
|
+
isModuleEnabled(): boolean;
|
|
7
7
|
}
|
|
@@ -4,10 +4,7 @@ export class ToolPanelModule extends AdaptableModuleBase {
|
|
|
4
4
|
constructor(api) {
|
|
5
5
|
super(ModuleConstants.ToolPanelModuleId, ModuleConstants.ToolPanelFriendlyName, 'clipboard', 'ToolPanelPopup', 'An alternative to using the Dashboard is the AdapTable Tool Panel, the Tool Panel is the collapsible area to the right of the Grid.', api);
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
if (!super.isModuleAvailable()) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
7
|
+
isModuleEnabled() {
|
|
11
8
|
return this.api.internalApi.getAdaptableInstance().hasAdaptableToolPanel;
|
|
12
9
|
}
|
|
13
10
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const getFormatColumnSettingsTargetItems = (formatColumn) => {
|
|
2
|
+
if (!formatColumn.Target || formatColumn.Target === 'cell') {
|
|
3
|
+
return {
|
|
4
|
+
name: 'Target',
|
|
5
|
+
values: ['Column Cells'],
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
name: 'Target',
|
|
10
|
+
values: ['Column Header'],
|
|
11
|
+
};
|
|
12
|
+
};
|
|
@@ -7,7 +7,7 @@ export const getFilterPreview = (columnFilter, api) => {
|
|
|
7
7
|
const columnType = api.columnApi.getColumnDataTypeForColumnId(columnFilter.ColumnId);
|
|
8
8
|
const qlDataType = mapColumnDataTypeToExpressionFunctionType(columnType);
|
|
9
9
|
const qlPredicateDefs = predicateDefs.map((pd) => mapAdaptablePredicateDefToQlPredicateDef(pd, qlDataType));
|
|
10
|
-
const qlPredicate = mapColumnFilterToQlPredicate(columnFilter, column, qlPredicateDefs, columnFilterOptions, api);
|
|
10
|
+
const qlPredicate = mapColumnFilterToQlPredicate(columnFilter, column, qlPredicateDefs, columnFilterOptions, 'FilterForm', api);
|
|
11
11
|
return `[${qlPredicateToString(qlPredicate, qlPredicateDefs)}]`;
|
|
12
12
|
};
|
|
13
13
|
export const getLayoutFilterViewItems = (layout, api) => {
|
|
@@ -14,3 +14,4 @@ export declare const AdaptableOptionsDocsLink = "https://docs.adaptabletools.com
|
|
|
14
14
|
export declare const AgGridModulesDocsLink = "https://docs.adaptabletools.com/guide/dev-guide-aggrid-modules-overview";
|
|
15
15
|
export declare const AlertMessageDocsLink = "https://docs.adaptabletools.com/guide/handbook-alerting-message";
|
|
16
16
|
export declare const FormatColumnPlaceholderDocsLink = "https://docs.adaptabletools.com/guide/handbook-column-formatting-display-format-placeholder";
|
|
17
|
+
export declare const AgGridRequiredModulesDocsLink = "https://docs.adaptabletools.com/guide/dev-guide-aggrid-modules-overview#mandatory-modules";
|
|
@@ -15,3 +15,4 @@ export const AdaptableOptionsDocsLink = `${HOST_URL_DOCS}/guide/reference-option
|
|
|
15
15
|
export const AgGridModulesDocsLink = `${HOST_URL_DOCS}/guide/dev-guide-aggrid-modules-overview`;
|
|
16
16
|
export const AlertMessageDocsLink = `${HOST_URL_DOCS}/guide/handbook-alerting-message`;
|
|
17
17
|
export const FormatColumnPlaceholderDocsLink = `${HOST_URL_DOCS}/guide/handbook-column-formatting-display-format-placeholder`;
|
|
18
|
+
export const AgGridRequiredModulesDocsLink = `${HOST_URL_DOCS}/guide/dev-guide-aggrid-modules-overview#mandatory-modules`;
|
|
@@ -25,11 +25,23 @@ export declare function moveArray(array: any[], from: number, to: number): void;
|
|
|
25
25
|
export declare function areArraysEqual(arr1: any[], arr2: any[]): boolean;
|
|
26
26
|
export declare function areArraysNotEqual(arr1: any[], arr2: any[]): boolean;
|
|
27
27
|
export declare function areArraysEqualWithOrder(arr1: any[], arr2: any[]): boolean;
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Checks if two arrays contain the same elements (order-independent).
|
|
30
|
+
*
|
|
31
|
+
* @param arr1 First array to compare
|
|
32
|
+
* @param arr2 Second array to compare
|
|
33
|
+
* @param equalityFn Optional function to determine if two elements are equal
|
|
34
|
+
* @returns True if arrays contain the same elements, false otherwise
|
|
35
|
+
*/
|
|
36
|
+
export declare function areArraysEqualWithCustomComparator<T>(arr1: T[] | null | undefined, arr2: T[] | null | undefined, equalityFn?: (a: T, b: T) => boolean): boolean;
|
|
37
|
+
export declare function areArraysEqualWithOrderAndProperties(value: any[], other: any[]): boolean;
|
|
29
38
|
export declare function sortArrayWithProperty(sortOrder: SortOrder, values: any[], sortProperty?: string): any[];
|
|
30
39
|
export declare function sortArray(values: any[], sortOrder?: SortOrder): any[];
|
|
40
|
+
export declare const getGenericComparatorForGridCell: (sortOrder: SortOrder) => (a: GridCell, b: GridCell) => number;
|
|
31
41
|
export declare function sortCellValueArray<T extends GridCell>(cellValues: T[], sortOrder?: SortOrder): T[];
|
|
42
|
+
export declare const getNumericComparatorForGridCell: (sortOrder: SortOrder) => (a: GridCell, b: GridCell) => number;
|
|
32
43
|
export declare function sortCellValueArrayNumeric<T extends GridCell>(cellValues: T[], sortOrder?: SortOrder): T[];
|
|
44
|
+
export declare const getDateComparatorForGridCell: (sortOrder: SortOrder) => (a: GridCell, b: GridCell) => number;
|
|
33
45
|
export declare function sortCellValueArrayDates<T extends GridCell>(cellValues: T[], sortOrder?: SortOrder): T[];
|
|
34
46
|
export declare function groupArrayBy(array: Array<any>, prop: string): Array<any>;
|
|
35
47
|
export declare function createCommaSeparatedString(values: any[]): string;
|
|
@@ -72,7 +84,8 @@ export declare const ArrayExtensions: {
|
|
|
72
84
|
areArraysEqual: typeof areArraysEqual;
|
|
73
85
|
areArraysNotEqual: typeof areArraysNotEqual;
|
|
74
86
|
areArraysEqualWithOrder: typeof areArraysEqualWithOrder;
|
|
75
|
-
|
|
87
|
+
areArraysEqualWithOrderAndProperties: typeof areArraysEqualWithOrderAndProperties;
|
|
88
|
+
areArraysEqualWithCustomComparator: typeof areArraysEqualWithCustomComparator;
|
|
76
89
|
sortArray: typeof sortArray;
|
|
77
90
|
sortCellValueArray: typeof sortCellValueArray;
|
|
78
91
|
sortCellValueArrayNumeric: typeof sortCellValueArrayNumeric;
|
|
@@ -114,7 +114,42 @@ export function areArraysEqualWithOrder(arr1, arr2) {
|
|
|
114
114
|
}
|
|
115
115
|
return arr1.every((x, index) => arr2.indexOf(x) == index);
|
|
116
116
|
}
|
|
117
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Checks if two arrays contain the same elements (order-independent).
|
|
119
|
+
*
|
|
120
|
+
* @param arr1 First array to compare
|
|
121
|
+
* @param arr2 Second array to compare
|
|
122
|
+
* @param equalityFn Optional function to determine if two elements are equal
|
|
123
|
+
* @returns True if arrays contain the same elements, false otherwise
|
|
124
|
+
*/
|
|
125
|
+
export function areArraysEqualWithCustomComparator(arr1, arr2, equalityFn) {
|
|
126
|
+
// Handle null/undefined cases
|
|
127
|
+
if (!arr1 && !arr2) {
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
if (!arr1 || !arr2) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
// Check length
|
|
134
|
+
if (arr1.length !== arr2.length) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
// Use default equality comparison if no custom function provided
|
|
138
|
+
const compareElements = equalityFn || ((a, b) => a === b);
|
|
139
|
+
// For each element in arr1, find a matching element in arr2
|
|
140
|
+
const arr2Copy = [...arr2];
|
|
141
|
+
for (let i = 0; i < arr1.length; i++) {
|
|
142
|
+
const element = arr1[i];
|
|
143
|
+
const matchIndex = arr2Copy.findIndex((el) => compareElements(element, el));
|
|
144
|
+
if (matchIndex === -1) {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
// Remove the matched element to prevent duplicate matches
|
|
148
|
+
arr2Copy.splice(matchIndex, 1);
|
|
149
|
+
}
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
export function areArraysEqualWithOrderAndProperties(value, other) {
|
|
118
153
|
const type = Object.prototype.toString.call(value);
|
|
119
154
|
// If the two objects are not the same type, return false
|
|
120
155
|
if (type !== Object.prototype.toString.call(other)) {
|
|
@@ -136,7 +171,7 @@ export function areArraysEqualWithOrderandProperties(value, other) {
|
|
|
136
171
|
const itemType = Object.prototype.toString.call(item1);
|
|
137
172
|
// If an object or array, compare recursively
|
|
138
173
|
if (['[object Array]', '[object Object]'].indexOf(itemType) >= 0) {
|
|
139
|
-
if (!
|
|
174
|
+
if (!areArraysEqualWithOrderAndProperties(item1, item2)) {
|
|
140
175
|
return false;
|
|
141
176
|
}
|
|
142
177
|
}
|
|
@@ -211,15 +246,20 @@ export function sortArray(values, sortOrder = SortOrder.Asc) {
|
|
|
211
246
|
const direction = sortOrder == SortOrder.Asc ? 1 : -1;
|
|
212
247
|
return newValues.sort((a, b) => (a < b ? -1 * direction : a > b ? 1 * direction : 0));
|
|
213
248
|
}
|
|
249
|
+
export const getGenericComparatorForGridCell = (sortOrder) => {
|
|
250
|
+
const direction = sortOrder == SortOrder.Asc ? 1 : -1;
|
|
251
|
+
return (a, b) => {
|
|
252
|
+
return a.rawValue < b.rawValue ? -1 * direction : a.rawValue > b.rawValue ? 1 * direction : 0;
|
|
253
|
+
};
|
|
254
|
+
};
|
|
214
255
|
export function sortCellValueArray(cellValues, sortOrder = SortOrder.Asc) {
|
|
215
256
|
const newValues = [].concat(cellValues);
|
|
216
|
-
const
|
|
217
|
-
return newValues.sort(
|
|
257
|
+
const comparator = getGenericComparatorForGridCell(sortOrder);
|
|
258
|
+
return newValues.sort(comparator);
|
|
218
259
|
}
|
|
219
|
-
export
|
|
260
|
+
export const getNumericComparatorForGridCell = (sortOrder) => {
|
|
220
261
|
const direction = sortOrder == SortOrder.Asc ? 1 : -1;
|
|
221
|
-
|
|
222
|
-
return newValues.sort((a, b) => {
|
|
262
|
+
return (a, b) => {
|
|
223
263
|
const valueAAsNumber = Number(a.rawValue);
|
|
224
264
|
const valueBAsNumber = Number(b.rawValue);
|
|
225
265
|
if (isNaN(valueAAsNumber)) {
|
|
@@ -233,15 +273,23 @@ export function sortCellValueArrayNumeric(cellValues, sortOrder = SortOrder.Asc)
|
|
|
233
273
|
: valueAAsNumber > valueBAsNumber
|
|
234
274
|
? 1 * direction
|
|
235
275
|
: 0;
|
|
236
|
-
}
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
export function sortCellValueArrayNumeric(cellValues, sortOrder = SortOrder.Asc) {
|
|
279
|
+
const newValues = [].concat(cellValues);
|
|
280
|
+
const comparator = getNumericComparatorForGridCell(sortOrder);
|
|
281
|
+
return newValues.sort(comparator);
|
|
237
282
|
}
|
|
238
|
-
export
|
|
239
|
-
|
|
283
|
+
export const getDateComparatorForGridCell = (sortOrder) => {
|
|
284
|
+
return (a, b) => {
|
|
240
285
|
return sortOrder == SortOrder.Asc
|
|
241
286
|
? +new Date(a.rawValue) - +new Date(b.rawValue)
|
|
242
287
|
: +new Date(b.rawValue) - +new Date(a.rawValue);
|
|
243
|
-
}
|
|
244
|
-
|
|
288
|
+
};
|
|
289
|
+
};
|
|
290
|
+
export function sortCellValueArrayDates(cellValues, sortOrder = SortOrder.Asc) {
|
|
291
|
+
const comparator = getDateComparatorForGridCell(sortOrder);
|
|
292
|
+
return [].concat(cellValues).sort(comparator);
|
|
245
293
|
}
|
|
246
294
|
export function groupArrayBy(array, prop) {
|
|
247
295
|
return array.reduce((acc, item) => {
|
|
@@ -346,7 +394,8 @@ export const ArrayExtensions = {
|
|
|
346
394
|
areArraysEqual,
|
|
347
395
|
areArraysNotEqual,
|
|
348
396
|
areArraysEqualWithOrder,
|
|
349
|
-
|
|
397
|
+
areArraysEqualWithOrderAndProperties,
|
|
398
|
+
areArraysEqualWithCustomComparator,
|
|
350
399
|
sortArray,
|
|
351
400
|
sortCellValueArray,
|
|
352
401
|
sortCellValueArrayNumeric,
|
|
@@ -230,6 +230,7 @@ export function CreateEmptyFormatColumn() {
|
|
|
230
230
|
DisplayFormat: undefined,
|
|
231
231
|
CellAlignment: undefined,
|
|
232
232
|
RowScope: undefined,
|
|
233
|
+
Target: 'cell',
|
|
233
234
|
};
|
|
234
235
|
}
|
|
235
236
|
export function CreateEmptyFreeTextColumn(defaultSpecialColumnSettings) {
|
|
@@ -254,7 +255,7 @@ export function CreateEmptyPivotLayout(layout) {
|
|
|
254
255
|
PivotColumns: layout.PivotColumns || [],
|
|
255
256
|
PivotAggregationColumns: layout.PivotAggregationColumns || [],
|
|
256
257
|
PivotGroupedColumns: layout.PivotGroupedColumns || [],
|
|
257
|
-
|
|
258
|
+
ColumnSizing: layout.ColumnSizing || {},
|
|
258
259
|
};
|
|
259
260
|
return result;
|
|
260
261
|
}
|
|
@@ -269,7 +270,7 @@ export function CreateEmptyLayout(layout, adaptableColumns) {
|
|
|
269
270
|
TableColumns: tableLayout.TableColumns || [],
|
|
270
271
|
ColumnSorts: tableLayout.ColumnSorts || [],
|
|
271
272
|
ColumnFilters: tableLayout.ColumnFilters || [],
|
|
272
|
-
|
|
273
|
+
ColumnSizing: tableLayout.ColumnSizing || {},
|
|
273
274
|
RowGroupedColumns: tableLayout.RowGroupedColumns ||
|
|
274
275
|
(adaptableColumns ? adaptableColumns.filter((c) => c.isGrouped).map((c) => c.columnId) : []),
|
|
275
276
|
};
|
|
@@ -41,7 +41,7 @@ export class AnnotationsService {
|
|
|
41
41
|
shouldListenToEvents() {
|
|
42
42
|
// Listen to events if we either have Notes in state or if Comments have been set up
|
|
43
43
|
return (ArrayExtensions.IsNotNullOrEmpty(this.api.noteApi.getAllNotes()) ||
|
|
44
|
-
this.api.internalApi.getModuleService().
|
|
44
|
+
this.api.internalApi.getModuleService().isAdapTableModulePresent('Comment'));
|
|
45
45
|
}
|
|
46
46
|
setUpEventListeners() {
|
|
47
47
|
this.adaptable._on('MouseEnter', (event) => this.handleMouseEnter(event));
|
|
@@ -4,7 +4,8 @@ import { AdaptableObject } from '../../../AdaptableState/Common/AdaptableObject'
|
|
|
4
4
|
import { IAdaptableService } from './IAdaptableService';
|
|
5
5
|
import { AdaptableModule } from '../../../AdaptableState/Common/Types';
|
|
6
6
|
export interface IModuleService extends IAdaptableService {
|
|
7
|
-
|
|
7
|
+
logMissingAgGridDepsInfos(): void;
|
|
8
|
+
isAdapTableModulePresent(adaptableModule: AdaptableModule): boolean;
|
|
8
9
|
isModuleEditable(adaptableModule: AdaptableModule): boolean;
|
|
9
10
|
createModuleUIItems(): void;
|
|
10
11
|
getTeamSharingAction(adaptableModule: AdaptableModule): TeamSharingImportInfo<AdaptableObject> | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AdaptableModule } from '../../types';
|
|
2
|
-
import { IModule,
|
|
2
|
+
import { IModule, IModuleCollection, ModuleInfo } from '../../Strategy/Interface/IModule';
|
|
3
3
|
import { TeamSharingImportInfo } from '../../AdaptableState/TeamSharingState';
|
|
4
4
|
import { AdaptableObject } from '../../AdaptableState/Common/AdaptableObject';
|
|
5
5
|
import { IModuleService } from './Interface/IModuleService';
|
|
@@ -7,9 +7,9 @@ import { AdaptableApi } from '../../../types';
|
|
|
7
7
|
export declare class ModuleService implements IModuleService {
|
|
8
8
|
private adaptableApi;
|
|
9
9
|
constructor(adaptableApi: AdaptableApi);
|
|
10
|
-
|
|
11
|
-
isModuleName(adaptableModule: string): adaptableModule is AdaptableModule;
|
|
10
|
+
isAdapTableModulePresent(adaptableModule: AdaptableModule): boolean;
|
|
12
11
|
isModuleEditable(adaptableModule: AdaptableModule): boolean;
|
|
12
|
+
logMissingAgGridDepsInfos(): void;
|
|
13
13
|
getModuleFriendlyName(adaptableModule: AdaptableModule): string;
|
|
14
14
|
createModuleUIItems(): void;
|
|
15
15
|
private createSettingsPanelItems;
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import Helper from '../Helpers/Helper';
|
|
2
|
-
import { HOST_URL_DOCS } from '../Constants/DocumentationLinkConstants';
|
|
3
|
-
import { ALL_MODULES } from '../../AdaptableState/Common/Types';
|
|
2
|
+
import { AgGridRequiredModulesDocsLink, HOST_URL_DOCS, } from '../Constants/DocumentationLinkConstants';
|
|
4
3
|
export class ModuleService {
|
|
5
4
|
constructor(adaptableApi) {
|
|
6
5
|
this.adaptableApi = adaptableApi;
|
|
7
6
|
this.adaptableApi = adaptableApi;
|
|
8
7
|
}
|
|
9
|
-
|
|
8
|
+
isAdapTableModulePresent(adaptableModule) {
|
|
10
9
|
let module = this.getModuleCollection().get(adaptableModule);
|
|
11
10
|
if (!module) {
|
|
12
11
|
return false;
|
|
13
12
|
}
|
|
14
|
-
return module.
|
|
15
|
-
}
|
|
16
|
-
isModuleName(adaptableModule) {
|
|
17
|
-
return ALL_MODULES.includes(adaptableModule);
|
|
13
|
+
return module.isModuleVisible();
|
|
18
14
|
}
|
|
19
15
|
isModuleEditable(adaptableModule) {
|
|
20
16
|
let module = this.getModuleCollection().get(adaptableModule);
|
|
@@ -23,6 +19,22 @@ export class ModuleService {
|
|
|
23
19
|
}
|
|
24
20
|
return module.isModuleEditable();
|
|
25
21
|
}
|
|
22
|
+
logMissingAgGridDepsInfos() {
|
|
23
|
+
// log missing core (required) AG Grid dependencies
|
|
24
|
+
const agGridModulesAdapter = this.adaptableApi.internalApi.getAgGridModulesAdapter();
|
|
25
|
+
const mandatoryAgGridModuleNames = agGridModulesAdapter.getMandatoryAgGridModuleNames();
|
|
26
|
+
const registeredAgGridModuleNames = agGridModulesAdapter.getAgGridRegisteredModuleNames();
|
|
27
|
+
const missingAgGridModuleNames = mandatoryAgGridModuleNames.filter((moduleName) => !registeredAgGridModuleNames.includes(moduleName));
|
|
28
|
+
if (missingAgGridModuleNames.length) {
|
|
29
|
+
this.adaptableApi.consoleError(`AdapTable requires the following AG Grid modules to be registered: ${missingAgGridModuleNames.join(', ')}.
|
|
30
|
+
|
|
31
|
+
See for more information: ${AgGridRequiredModulesDocsLink}`);
|
|
32
|
+
}
|
|
33
|
+
// log optional missing AG Grid dependencies for all modules
|
|
34
|
+
this.getModuleCollection().forEach((adaptableModule) => {
|
|
35
|
+
adaptableModule.logMissingAgGridDepsInfos();
|
|
36
|
+
});
|
|
37
|
+
}
|
|
26
38
|
getModuleFriendlyName(adaptableModule) {
|
|
27
39
|
return this.getModuleInfoByModule(adaptableModule)?.FriendlyName ?? adaptableModule;
|
|
28
40
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import StringExtensions from './Extensions/StringExtensions';
|
|
1
2
|
export const getScopeViewItems = (scope, api) => {
|
|
2
3
|
let values = [];
|
|
3
4
|
if ('ColumnIds' in scope && Array.isArray(scope.ColumnIds)) {
|
|
@@ -5,7 +6,9 @@ export const getScopeViewItems = (scope, api) => {
|
|
|
5
6
|
values = scope.ColumnIds.map((columnId) => api.columnApi.getFriendlyNameForColumnId(columnId)).filter(Boolean);
|
|
6
7
|
}
|
|
7
8
|
if ('DataTypes' in scope) {
|
|
8
|
-
values = scope.DataTypes
|
|
9
|
+
values = scope.DataTypes.map((d) => {
|
|
10
|
+
return 'Data Type: ' + StringExtensions.CapitaliseFirstLetter(d);
|
|
11
|
+
});
|
|
9
12
|
}
|
|
10
13
|
if ('All' in scope) {
|
|
11
14
|
values = ['All Columns'];
|
|
@@ -14,7 +17,7 @@ export const getScopeViewItems = (scope, api) => {
|
|
|
14
17
|
values = scope.ColumnTypes;
|
|
15
18
|
}
|
|
16
19
|
return {
|
|
17
|
-
label: 'Scope
|
|
20
|
+
label: 'Scope',
|
|
18
21
|
name: 'Target',
|
|
19
22
|
values,
|
|
20
23
|
};
|
|
@@ -20,7 +20,9 @@ class AdaptableView extends React.Component {
|
|
|
20
20
|
return (React.createElement("div", null,
|
|
21
21
|
React.createElement(GridCellPopup, null),
|
|
22
22
|
React.createElement(QuickSearchDrawer, null),
|
|
23
|
-
this.props.AdaptableApi.internalApi
|
|
23
|
+
this.props.AdaptableApi.internalApi
|
|
24
|
+
.getModuleService()
|
|
25
|
+
.isAdapTableModulePresent('Dashboard') && React.createElement(Dashboard, { api: this.props.AdaptableApi }),
|
|
24
26
|
this.props.PopupState.PromptPopup.ShowPromptPopup && (React.createElement(AdaptablePopupPrompt, { message: this.props.PopupState.PromptPopup.Message, header: this.props.PopupState.PromptPopup.Header, onClose: this.props.onClosePromptPopup, onConfirm: this.props.onConfirmPromptPopup, onConfirmActionCreator: this.props.PopupState.PromptPopup.ConfirmActionCreator, defaultValue: this.props.PopupState.PromptPopup.DefaultValue })),
|
|
25
27
|
Boolean(this.props.PopupState.ConfirmationPopup.ShowConfirmationPopup) && (React.createElement(AdaptablePopupConfirmation, { header: this.props.PopupState.ConfirmationPopup.Header, messsage: this.props.PopupState.ConfirmationPopup.Msg, showPopup: this.props.PopupState.ConfirmationPopup.ShowConfirmationPopup, cancelButtonText: this.props.PopupState.ConfirmationPopup.CancelButtonText, confirmButtonText: this.props.PopupState.ConfirmationPopup.ConfirmButtonText, onCancel: this.props.onCancelConfirmationPopup, onConfirm: this.props.onConfirmConfirmationPopup, showInputBox: this.props.PopupState.ConfirmationPopup.ShowInputBox, messageType: this.props.PopupState.ConfirmationPopup.MessageType, api: this.props.AdaptableApi })),
|
|
26
28
|
Boolean(this.props.PopupState.ScreenPopup.ShowScreenPopup) && (React.createElement(AdaptablePopup, { componentName: this.props.PopupState.ScreenPopup.ComponentName, componentModule: this.props.PopupState.ScreenPopup.ComponentModule, onHide: this.props.onCloseScreenPopup, api: this.props.AdaptableApi, onClearParams: () => this.props.onClearPopupParams(), moduleParams: this.props.PopupState.ScreenPopup.Params, moduleProps: this.props.PopupState.ScreenPopup.PopupProps })),
|
|
@@ -40,6 +40,8 @@ const MODULES_WITH_SCOPE = [
|
|
|
40
40
|
const ColumnDefPreview = (props) => {
|
|
41
41
|
const adaptable = useAdaptable();
|
|
42
42
|
if (props.column) {
|
|
43
|
+
const api = adaptable.api;
|
|
44
|
+
const summary = api.columnApi.getColumnSummaryForColumnId(props.column.columnId);
|
|
43
45
|
const keyValuePairs = [
|
|
44
46
|
{
|
|
45
47
|
Key: 'Column Id',
|
|
@@ -112,7 +114,7 @@ const ColumnDefPreview = (props) => {
|
|
|
112
114
|
{
|
|
113
115
|
Key: 'Column Filter',
|
|
114
116
|
Value: props.column.filterable
|
|
115
|
-
?
|
|
117
|
+
? api.filterApi.columnFilterApi.columnFilterToString(summary.columnFilter)
|
|
116
118
|
: 'Ignore',
|
|
117
119
|
},
|
|
118
120
|
{
|
|
@@ -143,6 +145,10 @@ const ColumnDefPreview = (props) => {
|
|
|
143
145
|
Key: 'Sortable',
|
|
144
146
|
Value: props.column.sortable ? 'Yes' : 'No',
|
|
145
147
|
},
|
|
148
|
+
{
|
|
149
|
+
Key: 'No. Distinct Values',
|
|
150
|
+
Value: summary.uniqueGridCells.length,
|
|
151
|
+
},
|
|
146
152
|
]
|
|
147
153
|
.map((keyValuePair) => {
|
|
148
154
|
return {
|
|
@@ -162,7 +168,7 @@ const ColumnDefPreview = (props) => {
|
|
|
162
168
|
const ModuleView = (props) => {
|
|
163
169
|
const adaptable = useAdaptable();
|
|
164
170
|
const module = adaptable.ModuleService.getModuleById(props.moduleName);
|
|
165
|
-
if (!module
|
|
171
|
+
if (!module?.isModuleVisible()) {
|
|
166
172
|
return null;
|
|
167
173
|
}
|
|
168
174
|
const moduleInfo = module.moduleInfo;
|
|
@@ -213,7 +219,7 @@ export const ColumnInfo = (props) => {
|
|
|
213
219
|
React.createElement(Box, { mb: 3 },
|
|
214
220
|
React.createElement(FormLayout, null,
|
|
215
221
|
React.createElement(FormRow, { label: "Select Column" },
|
|
216
|
-
React.createElement(ColumnSelector, {
|
|
222
|
+
React.createElement(ColumnSelector, { value: selectedColumnId, onChange: (columnId) => setSelectedColumnId(columnId) })))),
|
|
217
223
|
selectedColumnId && (React.createElement(Tabs, { mb: 3 },
|
|
218
224
|
React.createElement(Tabs.Tab, null, "Column Summary"),
|
|
219
225
|
React.createElement(Tabs.Tab, null, "Column State"),
|