@adaptabletools/adaptable-cjs 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 +3 -1
- package/base.css +36 -15
- package/base.css.map +1 -1
- package/icons/add-circle.svg +1 -0
- package/icons/add.svg +1 -0
- package/icons/alert.svg +1 -0
- package/icons/align-center.svg +1 -0
- package/icons/align-justify.svg +1 -0
- package/icons/align-left.svg +1 -0
- package/icons/align-right.svg +1 -0
- package/icons/arrow-down-long.svg +1 -0
- package/icons/arrow-down.svg +1 -0
- package/icons/arrow-expand.svg +1 -0
- package/icons/arrow-left.svg +1 -0
- package/icons/arrow-right.svg +1 -0
- package/icons/arrow-up-long.svg +1 -0
- package/icons/arrow-up.svg +1 -0
- package/icons/assignment.svg +1 -0
- package/icons/badge.svg +1 -0
- package/icons/bold.svg +1 -0
- package/icons/boolean-list.svg +1 -0
- package/icons/brain.svg +1 -0
- package/icons/broadcast.svg +1 -0
- package/icons/brush.svg +1 -0
- package/icons/building.svg +1 -0
- package/icons/calculated-column.svg +1 -0
- package/icons/calendar.svg +1 -0
- package/icons/call.svg +1 -0
- package/icons/case-lower.svg +1 -0
- package/icons/case-sentence.svg +1 -0
- package/icons/case-upper.svg +1 -0
- package/icons/cells.svg +1 -0
- package/icons/chart.svg +1 -0
- package/icons/chat.svg +1 -0
- package/icons/check-circle.svg +1 -0
- package/icons/check.svg +1 -0
- package/icons/checked.svg +1 -0
- package/icons/clipboard.svg +1 -0
- package/icons/clone.svg +1 -0
- package/icons/close.svg +1 -0
- package/icons/cloud-upload.svg +1 -0
- package/icons/collapse-all.svg +1 -0
- package/icons/collapse.svg +1 -0
- package/icons/color-palette.svg +1 -0
- package/icons/column-add.svg +1 -0
- package/icons/column-outline.svg +1 -0
- package/icons/columns.svg +1 -0
- package/icons/comment.svg +1 -0
- package/icons/comments.svg +1 -0
- package/icons/contact.svg +1 -0
- package/icons/contains.svg +1 -0
- package/icons/copy.svg +1 -0
- package/icons/csv.svg +1 -0
- package/icons/dashboard.svg +1 -0
- package/icons/data-set.svg +1 -0
- package/icons/date-range.svg +1 -0
- package/icons/delete.svg +1 -0
- package/icons/division.svg +1 -0
- package/icons/dock.svg +1 -0
- package/icons/dollar.svg +1 -0
- package/icons/download.svg +1 -0
- package/icons/downloaded.svg +1 -0
- package/icons/drag.svg +1 -0
- package/icons/edit-table.svg +1 -0
- package/icons/edit.svg +1 -0
- package/icons/ends-with.svg +1 -0
- package/icons/equals.svg +1 -0
- package/icons/equation.svg +1 -0
- package/icons/error.svg +1 -0
- package/icons/excel.svg +1 -0
- package/icons/expand-all.svg +1 -0
- package/icons/expand.svg +1 -0
- package/icons/exponent.svg +1 -0
- package/icons/export-data.svg +1 -0
- package/icons/export.svg +1 -0
- package/icons/fast-backward.svg +1 -0
- package/icons/fast-forward.svg +1 -0
- package/icons/fdc3.svg +1 -0
- package/icons/filled-circle.svg +1 -0
- package/icons/filter-list.svg +1 -0
- package/icons/filter-off.svg +1 -0
- package/icons/filter.svg +1 -0
- package/icons/flag.svg +1 -0
- package/icons/folder-open.svg +1 -0
- package/icons/folder-shared.svg +1 -0
- package/icons/folder.svg +1 -0
- package/icons/function.svg +1 -0
- package/icons/gradient.svg +1 -0
- package/icons/greater-than-or-equal.svg +1 -0
- package/icons/greater-than.svg +1 -0
- package/icons/grid-filter.svg +1 -0
- package/icons/grid-info.svg +1 -0
- package/icons/grid.svg +1 -0
- package/icons/history.svg +1 -0
- package/icons/home.svg +1 -0
- package/icons/horizontal-lines.svg +1 -0
- package/icons/import-export.svg +1 -0
- package/icons/import.svg +1 -0
- package/icons/info.svg +1 -0
- package/icons/interactions.svg +1 -0
- package/icons/italic.svg +1 -0
- package/icons/json.svg +1 -0
- package/icons/laptop.svg +1 -0
- package/icons/less-than-or-equal.svg +1 -0
- package/icons/less-than.svg +1 -0
- package/icons/lightning.svg +1 -0
- package/icons/link.svg +1 -0
- package/icons/list.svg +1 -0
- package/icons/logout.svg +1 -0
- package/icons/mail.svg +1 -0
- package/icons/menu.svg +1 -0
- package/icons/minus.svg +1 -0
- package/icons/money.svg +1 -0
- package/icons/multiplication.svg +1 -0
- package/icons/newpage.svg +1 -0
- package/icons/news.svg +1 -0
- package/icons/not-contains.svg +1 -0
- package/icons/not-equal.svg +1 -0
- package/icons/note.svg +1 -0
- package/icons/open-in-new.svg +1 -0
- package/icons/order.svg +1 -0
- package/icons/organisation.svg +1 -0
- package/icons/overline.svg +1 -0
- package/icons/paperclip.svg +1 -0
- package/icons/pause.svg +1 -0
- package/icons/percent-tag.svg +1 -0
- package/icons/percent.svg +1 -0
- package/icons/person.svg +1 -0
- package/icons/pie-chart.svg +1 -0
- package/icons/play.svg +1 -0
- package/icons/plus.svg +1 -0
- package/icons/quote.svg +1 -0
- package/icons/refresh.svg +1 -0
- package/icons/regex.svg +1 -0
- package/icons/reminder.svg +1 -0
- package/icons/resume.svg +1 -0
- package/icons/rows.svg +1 -0
- package/icons/save.svg +1 -0
- package/icons/schedule.svg +1 -0
- package/icons/science.svg +1 -0
- package/icons/search-table.svg +1 -0
- package/icons/search.svg +1 -0
- package/icons/select-all.svg +1 -0
- package/icons/select-fwd.svg +1 -0
- package/icons/select-off.svg +1 -0
- package/icons/settings.svg +1 -0
- package/icons/sort-asc.svg +1 -0
- package/icons/sort-desc.svg +1 -0
- package/icons/spanner.svg +1 -0
- package/icons/spark-line.svg +1 -0
- package/icons/starts-with.svg +1 -0
- package/icons/statusbar.svg +1 -0
- package/icons/stop.svg +1 -0
- package/icons/strikethrough.svg +1 -0
- package/icons/styled-grid.svg +1 -0
- package/icons/sync.svg +1 -0
- package/icons/tab-unselected.svg +1 -0
- package/icons/target.svg +1 -0
- package/icons/theme.svg +1 -0
- package/icons/traffic-lights.svg +1 -0
- package/icons/triangle-down.svg +1 -0
- package/icons/triangle-up.svg +1 -0
- package/icons/unchecked.svg +1 -0
- package/icons/underline.svg +1 -0
- package/icons/undo.svg +1 -0
- package/icons/unfilled-circle.svg +1 -0
- package/icons/upload.svg +1 -0
- package/icons/visibility-off-bold.svg +1 -0
- package/icons/visibility-off.svg +1 -0
- package/icons/visibility-on-bold.svg +1 -0
- package/icons/visibility-on.svg +1 -0
- package/icons/warning.svg +1 -0
- package/index.css +32 -15
- package/index.css.map +1 -1
- package/package.json +2 -2
- package/src/AdaptableInterfaces/IAdaptable.d.ts +10 -5
- package/src/AdaptableOptions/ColumnOptions.d.ts +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 +25 -5
- package/src/Api/Implementation/PlusMinusApiImpl.d.ts +7 -5
- package/src/Api/Implementation/PlusMinusApiImpl.js +10 -7
- package/src/Api/Implementation/ScheduleApiImpl.d.ts +9 -16
- package/src/Api/Implementation/ScheduleApiImpl.js +15 -17
- package/src/Api/Implementation/ShortcutApiImpl.d.ts +5 -6
- package/src/Api/Implementation/ShortcutApiImpl.js +7 -8
- package/src/Api/Implementation/StyledColumnApiImpl.d.ts +7 -8
- package/src/Api/Implementation/StyledColumnApiImpl.js +12 -9
- package/src/Api/Implementation/TeamSharingApiImpl.js +1 -4
- package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +2 -1
- package/src/Api/Implementation/UserInterfaceApiImpl.js +10 -9
- package/src/Api/Internal/AdaptableInternalApi.d.ts +2 -0
- package/src/Api/Internal/AdaptableInternalApi.js +3 -0
- package/src/Api/Internal/AlertInternalApi.d.ts +6 -6
- package/src/Api/Internal/AlertInternalApi.js +10 -10
- package/src/Api/Internal/ColumnFilterInternalApi.d.ts +13 -0
- package/src/Api/Internal/ColumnFilterInternalApi.js +93 -1
- package/src/Api/Internal/ColumnInternalApi.d.ts +2 -1
- package/src/Api/Internal/ColumnInternalApi.js +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 +10 -10
- package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +7 -0
- package/src/Redux/ActionsReducers/StyledColumnRedux.js +15 -1
- package/src/Redux/Store/AdaptableStore.js +10 -10
- package/src/Strategy/AdaptableModuleBase.d.ts +14 -4
- package/src/Strategy/AdaptableModuleBase.js +46 -9
- package/src/Strategy/AlertModule.d.ts +3 -4
- package/src/Strategy/AlertModule.js +7 -4
- package/src/Strategy/CalculatedColumnModule.js +2 -2
- package/src/Strategy/CellSummaryModule.js +2 -2
- package/src/Strategy/ChartingModule.d.ts +3 -1
- package/src/Strategy/ChartingModule.js +9 -3
- package/src/Strategy/ColumnFilterModule.d.ts +1 -1
- package/src/Strategy/ColumnFilterModule.js +31 -15
- package/src/Strategy/ColumnInfoModule.js +2 -2
- package/src/Strategy/CommentModule.d.ts +1 -1
- package/src/Strategy/CommentModule.js +3 -3
- package/src/Strategy/CustomSortModule.d.ts +3 -4
- package/src/Strategy/CustomSortModule.js +2 -2
- package/src/Strategy/DashboardModule.js +1 -1
- package/src/Strategy/DataChangeHistoryModule.d.ts +2 -1
- package/src/Strategy/DataChangeHistoryModule.js +3 -10
- package/src/Strategy/DataImportModule.js +3 -3
- package/src/Strategy/ExportModule.js +1 -1
- package/src/Strategy/Fdc3Module.js +1 -1
- package/src/Strategy/FlashingCellModule.d.ts +3 -5
- package/src/Strategy/FlashingCellModule.js +3 -3
- package/src/Strategy/FormatColumnModule.d.ts +3 -4
- package/src/Strategy/FormatColumnModule.js +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 +16 -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 +2 -1
- package/src/Utilities/Extensions/ArrayExtensions.d.ts +15 -2
- package/src/Utilities/Extensions/ArrayExtensions.js +68 -15
- package/src/Utilities/ObjectFactory.js +3 -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 +18 -6
- package/src/Utilities/getScopeViewItems.js +6 -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 +5 -5
- package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -2
- package/src/View/Components/Selectors/BulkUpdateValueSelector.js +1 -1
- package/src/View/Components/Selectors/ColumnSelector.js +1 -1
- package/src/View/Components/Selectors/FieldSelector.js +1 -1
- package/src/View/Components/Selectors/PermittedValuesSelector.d.ts +1 -0
- package/src/View/Components/Selectors/PermittedValuesSelector.js +2 -2
- package/src/View/Dashboard/Dashboard.js +2 -2
- package/src/View/Dashboard/DashboardPopup.js +3 -1
- package/src/View/Dashboard/PinnedDashboard.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +9 -21
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +59 -22
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +4 -0
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +0 -39
- 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 +37 -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 +2 -2
- package/src/View/Layout/TransposedPopup.js +2 -2
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +64 -9
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +5 -5
- package/src/View/StatusBar/AdaptableStatusBar.js +1 -4
- package/src/View/StatusBar/StatusBarPopup.js +1 -1
- package/src/View/Theme/ThemeSelector.js +1 -1
- package/src/agGrid/AdaptableAgGrid.d.ts +11 -7
- package/src/agGrid/AdaptableAgGrid.js +256 -218
- package/src/agGrid/AdaptableFilterHandler.d.ts +18 -0
- package/src/agGrid/AdaptableFilterHandler.js +65 -0
- package/src/agGrid/AgGridAdapter.d.ts +3 -7
- package/src/agGrid/AgGridAdapter.js +13 -46
- package/src/agGrid/AgGridColumnAdapter.d.ts +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 +53 -0
- package/src/agGrid/AgGridFloatingFilterAdapter.d.ts +2 -0
- package/src/agGrid/{FloatingFilterWrapper.js → AgGridFloatingFilterAdapter.js} +26 -37
- package/src/agGrid/AgGridModulesAdapter.d.ts +15 -0
- package/src/agGrid/AgGridModulesAdapter.js +70 -0
- package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +1 -1
- package/src/agGrid/editors/AdaptablePercentageEditor/InternalAdaptablePercentageEditor.js +1 -1
- package/src/components/Dialog/index.js +1 -1
- package/src/components/Dropdown/Arrows.js +2 -2
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.d.ts +1 -1
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +4 -4
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +1 -1
- package/src/components/FileDroppable/index.js +1 -1
- package/src/components/IconSelector/IconSelector.d.ts +2 -2
- package/src/components/OverlayTrigger/index.js +1 -1
- package/src/components/Select/Select.d.ts +1 -1
- package/src/components/Select/Select.js +114 -22
- package/src/components/icons/DefaultIcon.d.ts +0 -1
- package/src/components/icons/DefaultIcon.js +0 -8
- package/src/env.js +2 -2
- package/src/layout-manager/src/LayoutManagerModel.d.ts +6 -10
- package/src/layout-manager/src/index.d.ts +11 -3
- package/src/layout-manager/src/index.js +302 -87
- package/src/layout-manager/src/normalizeLayoutModel.js +7 -4
- package/src/layout-manager/src/simplifyLayoutModel.js +4 -4
- package/src/metamodel/adaptable.metamodel.d.ts +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 +28 -0
- package/src/types.d.ts +8 -9
- package/tsconfig.cjs.tsbuildinfo +1 -1
- package/src/AdaptableState/Common/ExtendedLayoutInfo.d.ts +0 -27
- package/src/agGrid/FilterWrapper.d.ts +0 -2
- package/src/agGrid/FilterWrapper.js +0 -136
- package/src/agGrid/FloatingFilterWrapper.d.ts +0 -2
- package/src/agGrid/agGridModules.d.ts +0 -3
- package/src/agGrid/agGridModules.js +0 -18
- package/src/agGrid/getAgGridFilterNotifyModelFn.d.ts +0 -2
- package/src/agGrid/getAgGridFilterNotifyModelFn.js +0 -21
- /package/src/AdaptableState/Common/{ExtendedLayoutInfo.js → ExtendedLayout.js} +0 -0
|
@@ -125,53 +125,90 @@ const getFormatDisplayTypeForScope = (scope, api) => {
|
|
|
125
125
|
if ('All' in scope) {
|
|
126
126
|
return undefined;
|
|
127
127
|
}
|
|
128
|
-
//
|
|
128
|
+
// Date-related data types that should all be treated as 'date'
|
|
129
|
+
const dateTypes = api.columnApi.internalApi.getColumnDateTypes();
|
|
130
|
+
// Check for ColumnIds in scope
|
|
129
131
|
if ('ColumnIds' in scope) {
|
|
130
132
|
const columns = scope.ColumnIds.map((c) => api.columnApi.getColumnWithColumnId(c)).filter(Boolean);
|
|
131
133
|
const columnDataTypes = (0, uniq_1.default)(columns.map((c) => c.dataType));
|
|
132
|
-
|
|
134
|
+
// If there's only one data type
|
|
135
|
+
if (columnDataTypes.length === 1) {
|
|
136
|
+
const dataType = columnDataTypes[0];
|
|
137
|
+
if (dataType === 'number') {
|
|
138
|
+
return 'number';
|
|
139
|
+
}
|
|
140
|
+
if (dateTypes.includes(dataType)) {
|
|
141
|
+
return 'date';
|
|
142
|
+
}
|
|
143
|
+
if (dataType === 'text') {
|
|
144
|
+
return 'text';
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// If there are multiple data types but they're all date types
|
|
148
|
+
else if (columnDataTypes.length > 0 &&
|
|
149
|
+
columnDataTypes.every((type) => dateTypes.includes(type))) {
|
|
150
|
+
return 'date';
|
|
151
|
+
}
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
// Check for DataTypes in scope
|
|
155
|
+
if ('DataTypes' in scope && scope.DataTypes.length === 1) {
|
|
156
|
+
const dataType = scope.DataTypes[0];
|
|
157
|
+
if (dataType === 'number') {
|
|
133
158
|
return 'number';
|
|
134
159
|
}
|
|
135
|
-
if (
|
|
160
|
+
if (dateTypes.includes(dataType)) {
|
|
136
161
|
return 'date';
|
|
137
162
|
}
|
|
138
|
-
if (
|
|
163
|
+
if (dataType === 'text') {
|
|
139
164
|
return 'text';
|
|
140
165
|
}
|
|
141
|
-
return undefined;
|
|
142
|
-
}
|
|
143
|
-
if ('DataTypes' in scope && scope.DataTypes.length == 1 && scope.DataTypes[0] == 'number') {
|
|
144
|
-
return 'number';
|
|
145
166
|
}
|
|
146
|
-
|
|
167
|
+
// If there are multiple data types but they're all date types
|
|
168
|
+
else if ('DataTypes' in scope &&
|
|
169
|
+
scope.DataTypes.length > 0 &&
|
|
170
|
+
scope.DataTypes.every((type) => dateTypes.includes(type))) {
|
|
147
171
|
return 'date';
|
|
148
172
|
}
|
|
149
|
-
|
|
150
|
-
return 'text';
|
|
151
|
-
}
|
|
173
|
+
// Check for ColumnTypes in scope
|
|
152
174
|
if ('ColumnTypes' in scope && scope.ColumnTypes.length) {
|
|
153
|
-
//
|
|
175
|
+
// If a Pivot Total Column Type is specified, we can safely assume that the data type is number
|
|
154
176
|
const pivotTotalTypes = [
|
|
155
177
|
AdaptableColumn_1.PIVOT_ANY_TOTAL_COLUMN_TYPE,
|
|
156
178
|
AdaptableColumn_1.PIVOT_GRAND_TOTAL_COLUMN_TYPE,
|
|
157
179
|
AdaptableColumn_1.PIVOT_COLUMN_TOTAL_COLUMN_TYPE,
|
|
158
180
|
AdaptableColumn_1.PIVOT_AGGREGATION_TOTAL_COLUMN_TYPE,
|
|
159
181
|
];
|
|
160
|
-
//
|
|
182
|
+
// If all column types are pivot total types, we can safely assume that the data type is number
|
|
161
183
|
if (scope.ColumnTypes.length > 0 &&
|
|
162
184
|
scope.ColumnTypes.every((type) => pivotTotalTypes.includes(type))) {
|
|
163
185
|
return 'number';
|
|
164
186
|
}
|
|
165
|
-
//
|
|
187
|
+
// Check if all columns with this column type have the same data type
|
|
166
188
|
const columns = scope.ColumnTypes.flatMap((columnType) => {
|
|
167
189
|
return api.columnApi.getColumnsByColumnType(columnType);
|
|
168
190
|
});
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
columns.every((column) => column.dataType === columns[0].dataType)
|
|
172
|
-
//
|
|
173
|
-
|
|
174
|
-
|
|
191
|
+
if (columns.length) {
|
|
192
|
+
// Check if all columns have the same type
|
|
193
|
+
const allSameType = columns.every((column) => column.dataType === columns[0].dataType);
|
|
194
|
+
// Handle specific data types
|
|
195
|
+
if (allSameType) {
|
|
196
|
+
const dataType = columns[0].dataType;
|
|
197
|
+
if (dataType === 'number') {
|
|
198
|
+
return 'number';
|
|
199
|
+
}
|
|
200
|
+
if (dateTypes.includes(dataType)) {
|
|
201
|
+
return 'date';
|
|
202
|
+
}
|
|
203
|
+
if (dataType === 'text') {
|
|
204
|
+
return 'text';
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Check if all columns are date types (even if they're different date types)
|
|
208
|
+
const allDateTypes = columns.every((column) => dateTypes.includes(column.dataType));
|
|
209
|
+
if (allDateTypes) {
|
|
210
|
+
return 'date';
|
|
211
|
+
}
|
|
175
212
|
}
|
|
176
213
|
}
|
|
177
214
|
return undefined;
|
|
@@ -460,6 +497,6 @@ const FormatColumnFormatWizardSection = (props) => {
|
|
|
460
497
|
return (React.createElement(HelpBlock_1.default, { margin: 3 },
|
|
461
498
|
"Setting a Display Format is only possible if ",
|
|
462
499
|
React.createElement("b", null, "all"),
|
|
463
|
-
" the columns in Scope are Numeric, String or Date
|
|
500
|
+
" the columns in Scope are Numeric, String or Date"));
|
|
464
501
|
};
|
|
465
502
|
exports.FormatColumnFormatWizardSection = FormatColumnFormatWizardSection;
|
|
@@ -5,8 +5,12 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
6
|
const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
|
|
7
7
|
const EntityRulesEditor_1 = require("../../Components/EntityRulesEditor");
|
|
8
|
+
const HelpBlock_1 = tslib_1.__importDefault(require("../../../components/HelpBlock"));
|
|
8
9
|
function FormatColumnRuleWizardSection(props) {
|
|
9
10
|
const { data, api, moduleInfo } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
|
|
11
|
+
if (data.Target && data.Target === 'columnHeader') {
|
|
12
|
+
return (React.createElement(HelpBlock_1.default, { margin: 3 }, "Conditions cannot be applied if the Target of the Format Column is Column Header"));
|
|
13
|
+
}
|
|
10
14
|
return (React.createElement(EntityRulesEditor_1.EntityRulesEditor, { module: moduleInfo.ModuleName, defaultPredicateId: props.defaultPredicateId,
|
|
11
15
|
// TODO see what is this
|
|
12
16
|
predicateDefs: api.formatColumnApi.internalApi.getFormatColumnDefsForScope(data.Scope), getPredicateDefsForColId: (colId) => api.formatColumnApi.internalApi.getFormatColumnDefsForScope({ ColumnIds: [colId] }), showNoRule: true, showBoolean: true, showAggregation: false, showObservable: false, showQueryBuilder: true, showPredicate: !api.columnScopeApi.scopeIsAll(data.Scope), data: data, onChange: (formatColumn) => props.onChange(formatColumn), descriptions: {
|
|
@@ -6,11 +6,7 @@ const React = tslib_1.__importStar(require("react"));
|
|
|
6
6
|
const NewScopeComponent_1 = require("../../Components/NewScopeComponent");
|
|
7
7
|
const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
|
|
8
8
|
const constants_1 = require("./constants");
|
|
9
|
-
const Tabs_1 = require("../../../components/Tabs");
|
|
10
9
|
const rebass_1 = require("rebass");
|
|
11
|
-
const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayout"));
|
|
12
|
-
const CheckBox_1 = require("../../../components/CheckBox");
|
|
13
|
-
const HelpBlock_1 = tslib_1.__importDefault(require("../../../components/HelpBlock"));
|
|
14
10
|
const renderFormatColumnScopeSummary = (data) => {
|
|
15
11
|
return (0, NewScopeComponent_1.renderScopeSummary)(data.Scope, {
|
|
16
12
|
scopeWholeRow: 'Matching rows will be formatted',
|
|
@@ -21,42 +17,7 @@ const renderFormatColumnScopeSummary = (data) => {
|
|
|
21
17
|
exports.renderFormatColumnScopeSummary = renderFormatColumnScopeSummary;
|
|
22
18
|
const FormatColumnScopeWizardSection = (props) => {
|
|
23
19
|
const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
|
|
24
|
-
const currentTargets = data.Target?.length ? data.Target : ['cell'];
|
|
25
|
-
const handleTargetChange = (target, checked) => {
|
|
26
|
-
let newTargets;
|
|
27
|
-
if (checked) {
|
|
28
|
-
// Add the target if it's not already included
|
|
29
|
-
newTargets = [...new Set([...currentTargets, target])];
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
// Remove the target
|
|
33
|
-
newTargets = currentTargets.filter((t) => t !== target);
|
|
34
|
-
}
|
|
35
|
-
// If all checkboxes are unchecked, default to ['cell']
|
|
36
|
-
if (newTargets.length === 0) {
|
|
37
|
-
newTargets = ['cell'];
|
|
38
|
-
}
|
|
39
|
-
// Update the formatColumn object
|
|
40
|
-
props.onChange({
|
|
41
|
-
...data,
|
|
42
|
-
Target: newTargets,
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
20
|
return (React.createElement(React.Fragment, null,
|
|
46
|
-
React.createElement(Tabs_1.Tabs, { mb: 3 },
|
|
47
|
-
React.createElement(Tabs_1.Tabs.Tab, null, "Target"),
|
|
48
|
-
React.createElement(Tabs_1.Tabs.Content, null,
|
|
49
|
-
React.createElement(rebass_1.Flex, { flexDirection: "column" },
|
|
50
|
-
React.createElement(FormLayout_1.default, { width: "100%" },
|
|
51
|
-
React.createElement(FormLayout_1.FormRow, { label: "Target Column Elements: ", tooltip: "The visual elements where formatting will be applied" },
|
|
52
|
-
React.createElement(CheckBox_1.CheckBox, { "data-name": "target-cell", checked: currentTargets.includes('cell'), onChange: (target) => {
|
|
53
|
-
handleTargetChange('cell', target);
|
|
54
|
-
}, ml: 2 }, "Data Cells"),
|
|
55
|
-
React.createElement(CheckBox_1.CheckBox, { "data-name": "target-column-header", checked: currentTargets.includes('columnHeader'), onChange: (target) => {
|
|
56
|
-
handleTargetChange('columnHeader', target);
|
|
57
|
-
}, ml: 4 }, "Column Headers"))),
|
|
58
|
-
React.createElement(HelpBlock_1.default, { fontSize: 2 }, 'At least one target element must be selected (defaults to Data Cells).' +
|
|
59
|
-
' Conditional formatting rules only apply to Data Cells, not to Headers.')))),
|
|
60
21
|
React.createElement(rebass_1.Box, { "data-name": 'scope-heading', style: {
|
|
61
22
|
borderRadius: `var(--ab__border-radius)`,
|
|
62
23
|
}, padding: 2, backgroundColor: `var(--ab-color-primarylight)` }, "Scope"),
|
|
@@ -99,18 +99,19 @@ const FormatColumnSettingsWizardSection = (props) => {
|
|
|
99
99
|
React.createElement(Toggle_1.Toggle, { icon: "align-right", pressed: data.CellAlignment === 'Right', onPressedChange: (pressed) => pressed
|
|
100
100
|
? onCellAlignmentSelectChanged('Right')
|
|
101
101
|
: onCellAlignmentSelectChanged(null) }))),
|
|
102
|
-
React.createElement(
|
|
103
|
-
React.createElement(
|
|
104
|
-
React.createElement(
|
|
105
|
-
|
|
106
|
-
React.createElement(
|
|
107
|
-
React.createElement(
|
|
108
|
-
|
|
109
|
-
React.createElement(
|
|
110
|
-
React.createElement(
|
|
111
|
-
|
|
112
|
-
React.createElement(
|
|
113
|
-
React.createElement(
|
|
102
|
+
data.Target === 'cell' && (React.createElement(React.Fragment, null,
|
|
103
|
+
React.createElement(FormLayout_1.FormRow, { label: "Exclude Data Rows:" },
|
|
104
|
+
React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
|
|
105
|
+
React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-data-rows-checkbox", checked: data.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged, mr: 2 }))),
|
|
106
|
+
React.createElement(FormLayout_1.FormRow, { label: "Exclude Group Rows:" },
|
|
107
|
+
React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
|
|
108
|
+
React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked: data.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, mr: 2 }))),
|
|
109
|
+
React.createElement(FormLayout_1.FormRow, { label: "Exclude Row Summaries:" },
|
|
110
|
+
React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
|
|
111
|
+
React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked: data.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, mr: 2 }))),
|
|
112
|
+
React.createElement(FormLayout_1.FormRow, { label: "Exclude Total Rows:" },
|
|
113
|
+
React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
|
|
114
|
+
React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-total-rows-checkbox", checked: data.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged, mr: 2 }))))),
|
|
114
115
|
React.createElement(FormLayout_1.FormRow, { label: "Apply on Column Group:" },
|
|
115
116
|
React.createElement(Radio_1.RadioGroup, { value: data.ColumnGroupScope || 'Both', name: "columnGroupScope", orientation: "horizontal", onRadioChange: (columnGroupScope) => {
|
|
116
117
|
props.onChange({
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { FormatColumn } from '../../../AdaptableState/FormatColumnState';
|
|
3
|
+
type FormatColumnScopeWizardSectionProps = {
|
|
4
|
+
onChange: (data: FormatColumn) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const renderFormatColumnTargetSummary: (data: FormatColumn) => "Column Header" | "Column Cells";
|
|
7
|
+
export declare const FormatColumnTargetWizardSection: (props: FormatColumnScopeWizardSectionProps) => React.JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormatColumnTargetWizardSection = exports.renderFormatColumnTargetSummary = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
|
|
7
|
+
const Tabs_1 = require("../../../components/Tabs");
|
|
8
|
+
const rebass_1 = require("rebass");
|
|
9
|
+
const TypeRadio_1 = require("../../Wizard/TypeRadio");
|
|
10
|
+
const renderFormatColumnTargetSummary = (data) => {
|
|
11
|
+
if (!data.Target || data.Target === 'cell') {
|
|
12
|
+
return 'Column Cells';
|
|
13
|
+
}
|
|
14
|
+
if (data.Target === 'columnHeader') {
|
|
15
|
+
return 'Column Header';
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.renderFormatColumnTargetSummary = renderFormatColumnTargetSummary;
|
|
19
|
+
const FormatColumnTargetWizardSection = (props) => {
|
|
20
|
+
const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
|
|
21
|
+
const currentTarget = data.Target ? data.Target : 'cell';
|
|
22
|
+
const handleTargetChange = (target) => {
|
|
23
|
+
// Update the formatColumn object
|
|
24
|
+
props.onChange({
|
|
25
|
+
...data,
|
|
26
|
+
Target: target,
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
return (React.createElement(React.Fragment, null,
|
|
30
|
+
React.createElement(Tabs_1.Tabs, { mb: 3 },
|
|
31
|
+
React.createElement(Tabs_1.Tabs.Tab, null, "Target"),
|
|
32
|
+
React.createElement(Tabs_1.Tabs.Content, null,
|
|
33
|
+
React.createElement(rebass_1.Flex, { flexDirection: "column" },
|
|
34
|
+
React.createElement(TypeRadio_1.TypeRadio, { "data-name": "target-column-cell", text: 'Column Cells', description: "Column Cells are styled and formatted", checked: currentTarget === 'cell', onClick: () => handleTargetChange('cell') }),
|
|
35
|
+
React.createElement(TypeRadio_1.TypeRadio, { "data-name": "target-column-header", text: 'Column Header', description: "The Column Header is styled (Note: Conditions are not available for Column Headers)", checked: currentTarget === 'columnHeader', onClick: () => handleTargetChange('columnHeader') }))))));
|
|
36
|
+
};
|
|
37
|
+
exports.FormatColumnTargetWizardSection = FormatColumnTargetWizardSection;
|
|
@@ -21,9 +21,14 @@ const Utilities_1 = require("../../Components/EntityRulesEditor/Utilities");
|
|
|
21
21
|
const FormatColumnRuleWizardSection_1 = require("./FormatColumnRuleWizardSection");
|
|
22
22
|
const constants_1 = require("./constants");
|
|
23
23
|
const ObjectExtensions_1 = require("../../../Utilities/Extensions/ObjectExtensions");
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
const
|
|
24
|
+
const FormatColumnTargetWizardSection_1 = require("./FormatColumnTargetWizardSection");
|
|
25
|
+
const adjustDisplayFormat = (fc, api) => {
|
|
26
|
+
const formatColumn = { ...fc };
|
|
27
|
+
let formatDataType = (0, FormatColumnFormatWizardSection_1.getFormatDisplayTypeForScope)(formatColumn.Scope, api);
|
|
28
|
+
if (formatColumn.Target === 'columnHeader') {
|
|
29
|
+
// Column Headers are always text
|
|
30
|
+
formatDataType = 'text';
|
|
31
|
+
}
|
|
27
32
|
if (!formatDataType && formatColumn.DisplayFormat) {
|
|
28
33
|
formatColumn.DisplayFormat = undefined;
|
|
29
34
|
}
|
|
@@ -92,7 +97,7 @@ function FormatColumnWizard(props) {
|
|
|
92
97
|
};
|
|
93
98
|
return (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: formatColumn, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
|
|
94
99
|
{
|
|
95
|
-
title: 'Scope
|
|
100
|
+
title: 'Scope',
|
|
96
101
|
details: 'Select which Columns will be formatted',
|
|
97
102
|
isValid: NewScopeComponent_1.isScopeValid,
|
|
98
103
|
renderSummary: FormatColumnScopeWizardSection_1.renderFormatColumnScopeSummary,
|
|
@@ -101,6 +106,15 @@ function FormatColumnWizard(props) {
|
|
|
101
106
|
React.createElement(FormatColumnScopeWizardSection_1.FormatColumnScopeWizardSection, { onChange: setFormatColumn })));
|
|
102
107
|
},
|
|
103
108
|
},
|
|
109
|
+
{
|
|
110
|
+
title: 'Target',
|
|
111
|
+
details: 'Select which Columns Elements will be formatted',
|
|
112
|
+
renderSummary: FormatColumnTargetWizardSection_1.renderFormatColumnTargetSummary,
|
|
113
|
+
render: () => {
|
|
114
|
+
return (React.createElement(rebass_1.Flex, { flexDirection: "column", style: { height: '100%' }, padding: 2 },
|
|
115
|
+
React.createElement(FormatColumnTargetWizardSection_1.FormatColumnTargetWizardSection, { onChange: setFormatColumn })));
|
|
116
|
+
},
|
|
117
|
+
},
|
|
104
118
|
{
|
|
105
119
|
isValid: (abObject, api, context) => {
|
|
106
120
|
if (!abObject.Rule) {
|
|
@@ -17,7 +17,7 @@ const AdaptableObjectsSummary = () => {
|
|
|
17
17
|
const modules = adaptable.ModuleService.getModuleCollection();
|
|
18
18
|
const baseClassName = 'ab-AdaptableObjectsSummary';
|
|
19
19
|
return (React.createElement(rebass_1.Box, { className: baseClassName }, [...modules].map(([moduleName, module]) => {
|
|
20
|
-
if (!module.
|
|
20
|
+
if (!module.isModuleVisible()) {
|
|
21
21
|
return null;
|
|
22
22
|
}
|
|
23
23
|
const items = module?.toViewAll?.();
|
|
@@ -14,9 +14,9 @@ const AdaptableObjectRow_1 = require("../../Components/AdaptableObjectRow");
|
|
|
14
14
|
const PopupPanel_1 = require("../../Components/Popups/AdaptablePopup/PopupPanel");
|
|
15
15
|
const AdaptableObjectsSummary_1 = require("./AdaptableObjectsSummary");
|
|
16
16
|
const EnvVars_1 = require("../../../EnvVars");
|
|
17
|
-
const
|
|
17
|
+
const AgGridModulesAdapter_1 = require("../../../agGrid/AgGridModulesAdapter");
|
|
18
18
|
const adaptableVersion = EnvVars_1.ADAPTABLE_VERSION;
|
|
19
|
-
const agGridVersion =
|
|
19
|
+
const agGridVersion = AgGridModulesAdapter_1.AG_GRID_VERSION;
|
|
20
20
|
const GridInfoPopup = (props) => {
|
|
21
21
|
const api = props.api;
|
|
22
22
|
const CreateGridSummaries = (colItems) => {
|
|
@@ -32,7 +32,7 @@ const TransposedPopup = (props) => {
|
|
|
32
32
|
// customisable
|
|
33
33
|
return visibleColumns
|
|
34
34
|
? adaptable.api.columnApi.getVisibleColumns()
|
|
35
|
-
: adaptable.api.columnApi.
|
|
35
|
+
: adaptable.api.columnApi.getUIAvailableColumns();
|
|
36
36
|
}, []);
|
|
37
37
|
/**
|
|
38
38
|
* This is used as first field
|
|
@@ -162,7 +162,7 @@ const TransposedPopup = (props) => {
|
|
|
162
162
|
rowData: transposedRowsAndColumns.transposedRows,
|
|
163
163
|
sideBar: false,
|
|
164
164
|
};
|
|
165
|
-
const modules = adaptable.getAgGridRegisteredModules();
|
|
165
|
+
const modules = adaptable.agGridModulesAdapter.getAgGridRegisteredModules();
|
|
166
166
|
AdaptableAgGrid_1.AdaptableAgGrid._initInternal({
|
|
167
167
|
variant: 'vanilla',
|
|
168
168
|
adaptableOptions,
|
|
@@ -49,7 +49,7 @@ const ColumnsSectionSummary = () => {
|
|
|
49
49
|
}
|
|
50
50
|
const friendlyName = adaptable.api.columnApi.getFriendlyNameForColumnId(columnId, layout);
|
|
51
51
|
const header = layout.ColumnHeaders?.[columnId] ?? '';
|
|
52
|
-
const columnWidth = layout.
|
|
52
|
+
const columnWidth = layout.ColumnSizing?.[columnId]?.Width;
|
|
53
53
|
const columnPinning = layout.ColumnPinning?.[columnId];
|
|
54
54
|
let agg = (layout.TableAggregationColumns || []).find((agg) => agg.ColumnId === columnId)?.AggFunc;
|
|
55
55
|
agg = typeof agg === 'object' ? agg.type : agg;
|
|
@@ -161,7 +161,11 @@ const ColumnRow = (props) => {
|
|
|
161
161
|
];
|
|
162
162
|
const { column } = props;
|
|
163
163
|
// width
|
|
164
|
-
const columnWidth = props.layout.
|
|
164
|
+
const columnWidth = props.layout.ColumnSizing?.[column.columnId]?.Width;
|
|
165
|
+
const columnFlex = props.layout.ColumnSizing?.[column.columnId]?.Flex;
|
|
166
|
+
const minWidth = props.layout.ColumnSizing?.[column.columnId]?.MinWidth;
|
|
167
|
+
const maxWidth = props.layout.ColumnSizing?.[column.columnId]?.MaxWidth;
|
|
168
|
+
const resizable = column.resizable !== false;
|
|
165
169
|
const visible = (!(0, isPivotLayout_1.isPivotLayout)(props.layout) &&
|
|
166
170
|
props.layout.TableColumns.includes(column.columnId) &&
|
|
167
171
|
props.layout.ColumnVisibility?.[column.columnId] !== false) ||
|
|
@@ -191,11 +195,29 @@ const ColumnRow = (props) => {
|
|
|
191
195
|
props.onColumnNameChange(props.column.columnId, event.target.value);
|
|
192
196
|
}, value: customHeader })),
|
|
193
197
|
React.createElement(FormLayout_1.FormRow, { label: "Width" },
|
|
194
|
-
React.createElement(Input_1.default, { "data-name": "column-width", className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column width", disabled:
|
|
198
|
+
React.createElement(Input_1.default, { "data-name": "column-width", className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column width", disabled: resizable === false, onChange: (event) => {
|
|
195
199
|
let value = parseFloat(event.target.value);
|
|
196
200
|
value = typeof value === 'number' && !isNaN(value) ? value : void 0;
|
|
197
201
|
props.onColumnWidthChange(props.column.columnId, value);
|
|
198
|
-
}, value: columnWidth })),
|
|
202
|
+
}, value: columnWidth ?? '' })),
|
|
203
|
+
React.createElement(FormLayout_1.FormRow, { label: "Flex" },
|
|
204
|
+
React.createElement(Input_1.default, { "data-name": "column-flex", className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column flex", disabled: resizable === false, onChange: (event) => {
|
|
205
|
+
let value = parseFloat(event.target.value);
|
|
206
|
+
value = typeof value === 'number' && !isNaN(value) ? value : void 0;
|
|
207
|
+
props.onColumnFlexChange(props.column.columnId, value);
|
|
208
|
+
}, value: columnFlex ?? '' })),
|
|
209
|
+
React.createElement(FormLayout_1.FormRow, { label: "Min Width" },
|
|
210
|
+
React.createElement(Input_1.default, { "data-name": "column-min-width", className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column min width", disabled: resizable === false, onChange: (event) => {
|
|
211
|
+
let value = parseFloat(event.target.value);
|
|
212
|
+
value = typeof value === 'number' && !isNaN(value) ? value : void 0;
|
|
213
|
+
props.onColumnMinWidthChange(props.column.columnId, value);
|
|
214
|
+
}, value: minWidth ?? '' })),
|
|
215
|
+
React.createElement(FormLayout_1.FormRow, { label: "Max Width" },
|
|
216
|
+
React.createElement(Input_1.default, { "data-name": "column-max-width", className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column max width", disabled: resizable === false, onChange: (event) => {
|
|
217
|
+
let value = parseFloat(event.target.value);
|
|
218
|
+
value = typeof value === 'number' && !isNaN(value) ? value : void 0;
|
|
219
|
+
props.onColumnMaxWidthChange(props.column.columnId, value);
|
|
220
|
+
}, value: maxWidth ?? '' })),
|
|
199
221
|
React.createElement(FormLayout_1.FormRow, { label: "Pinning" },
|
|
200
222
|
React.createElement(DropdownButton_1.default, { "data-name": "column-pinning", columns: ['label'], items: pinningOptions }, pinningOptions.find((option) => option.value === columnPinning).label))))))));
|
|
201
223
|
};
|
|
@@ -350,12 +372,45 @@ const ColumnsSection = (props) => {
|
|
|
350
372
|
});
|
|
351
373
|
};
|
|
352
374
|
const handleColumnWidthChange = (columnId, width) => {
|
|
375
|
+
const ColumnSizing = { ...layout.ColumnSizing };
|
|
376
|
+
const colSizingForCol = { ...ColumnSizing[columnId] };
|
|
377
|
+
delete colSizingForCol.Flex;
|
|
378
|
+
colSizingForCol.Width = width;
|
|
379
|
+
ColumnSizing[columnId] = colSizingForCol;
|
|
353
380
|
onChange({
|
|
354
381
|
...layout,
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
382
|
+
ColumnSizing,
|
|
383
|
+
});
|
|
384
|
+
};
|
|
385
|
+
const handleColumnFlexChange = (columnId, flex) => {
|
|
386
|
+
const ColumnSizing = { ...layout.ColumnSizing };
|
|
387
|
+
const colSizingForCol = { ...ColumnSizing[columnId] };
|
|
388
|
+
delete colSizingForCol.Width;
|
|
389
|
+
colSizingForCol.Flex = flex;
|
|
390
|
+
ColumnSizing[columnId] = colSizingForCol;
|
|
391
|
+
onChange({
|
|
392
|
+
...layout,
|
|
393
|
+
ColumnSizing,
|
|
394
|
+
});
|
|
395
|
+
};
|
|
396
|
+
const handleColumnMinWidthChange = (columnId, minWidth) => {
|
|
397
|
+
const ColumnSizing = { ...layout.ColumnSizing };
|
|
398
|
+
const colSizingForCol = { ...ColumnSizing[columnId] };
|
|
399
|
+
colSizingForCol.MinWidth = minWidth;
|
|
400
|
+
ColumnSizing[columnId] = colSizingForCol;
|
|
401
|
+
onChange({
|
|
402
|
+
...layout,
|
|
403
|
+
ColumnSizing,
|
|
404
|
+
});
|
|
405
|
+
};
|
|
406
|
+
const handleColumnMaxWidthChange = (columnId, maxWidth) => {
|
|
407
|
+
const ColumnSizing = { ...layout.ColumnSizing };
|
|
408
|
+
const colSizingForCol = { ...ColumnSizing[columnId] };
|
|
409
|
+
colSizingForCol.MaxWidth = maxWidth;
|
|
410
|
+
ColumnSizing[columnId] = colSizingForCol;
|
|
411
|
+
onChange({
|
|
412
|
+
...layout,
|
|
413
|
+
ColumnSizing,
|
|
359
414
|
});
|
|
360
415
|
};
|
|
361
416
|
const visibleIds = layout.TableColumns.filter((colId) => {
|
|
@@ -387,7 +442,7 @@ const ColumnsSection = (props) => {
|
|
|
387
442
|
React.createElement(ReorderDraggable_1.ReorderDraggable, { toIdentifier: (option) => `${option.columnId}`, isOptionDraggable: (option) => {
|
|
388
443
|
return option.moveable;
|
|
389
444
|
}, order: currentOrder, renderOption: (option) => {
|
|
390
|
-
return (React.createElement(ColumnRow, { onColumnNameChange: handleColumnNameChange, onColumnWidthChange: handleColumnWidthChange, onColumnVisibilityChange: handleColumnVisibilityChange, onPinChange: handlePinChange, layout: layout, column: option }));
|
|
445
|
+
return (React.createElement(ColumnRow, { onColumnNameChange: handleColumnNameChange, onColumnWidthChange: handleColumnWidthChange, onColumnFlexChange: handleColumnFlexChange, onColumnMinWidthChange: handleColumnMinWidthChange, onColumnMaxWidthChange: handleColumnMaxWidthChange, onColumnVisibilityChange: handleColumnVisibilityChange, onPinChange: handlePinChange, layout: layout, column: option }));
|
|
391
446
|
}, onChange: handleColumnsChange }),
|
|
392
447
|
(0, ValueSelector_1.renderSelectionSection)({
|
|
393
448
|
options: visibleIds,
|
|
@@ -333,30 +333,30 @@ const PivotAggregationsSection = (props) => {
|
|
|
333
333
|
label: StringExtensions_1.default.CamelCaseToHumanText(position),
|
|
334
334
|
value: position,
|
|
335
335
|
};
|
|
336
|
-
}), placeholder: "
|
|
336
|
+
}), placeholder: "[none]", value: layout.GrandTotalRow, onChange: (value) => {
|
|
337
337
|
props.onChange({
|
|
338
338
|
...layout,
|
|
339
339
|
GrandTotalRow: value,
|
|
340
340
|
});
|
|
341
341
|
}, isClearable: true })),
|
|
342
342
|
React.createElement(FormLayout_1.FormRow, { label: 'Pivot Grand Total' },
|
|
343
|
-
React.createElement(Select_1.Select, { style: { width:
|
|
343
|
+
React.createElement(Select_1.Select, { style: { width: 160 }, options: ['before', 'after'].map((position) => {
|
|
344
344
|
return {
|
|
345
345
|
label: StringExtensions_1.default.CapitaliseFirstLetter(position),
|
|
346
346
|
value: position,
|
|
347
347
|
};
|
|
348
|
-
}), placeholder: "
|
|
348
|
+
}), placeholder: "[none]", value: layout.PivotGrandTotal, onChange: (value) => {
|
|
349
349
|
props.onChange({
|
|
350
350
|
...layout,
|
|
351
351
|
PivotGrandTotal: value,
|
|
352
352
|
});
|
|
353
353
|
}, isClearable: true })),
|
|
354
|
-
React.createElement(FormLayout_1.FormRow, { label: 'Pivot Column Total' }, isPivotColumnTotalEnabled === true ? (React.createElement(Select_1.Select, { style: { width:
|
|
354
|
+
React.createElement(FormLayout_1.FormRow, { label: 'Pivot Column Total' }, isPivotColumnTotalEnabled === true ? (React.createElement(Select_1.Select, { style: { width: 160 }, options: ['before', 'after'].map((position) => {
|
|
355
355
|
return {
|
|
356
356
|
label: StringExtensions_1.default.CapitaliseFirstLetter(position),
|
|
357
357
|
value: position,
|
|
358
358
|
};
|
|
359
|
-
}), placeholder: "
|
|
359
|
+
}), placeholder: "[none]", value: layout.PivotColumnTotal, onChange: (value) => {
|
|
360
360
|
props.onChange({
|
|
361
361
|
...layout,
|
|
362
362
|
PivotColumnTotal: value,
|
|
@@ -22,10 +22,7 @@ const AdaptableStatusBar = (props) => {
|
|
|
22
22
|
const allMenuItems = (0, react_redux_1.useSelector)((state) => state?.Internal?.SettingsPanelModuleEntries);
|
|
23
23
|
return (React.createElement(rebass_1.Flex, { className: "ab-StatusBar-Panel", "data-id": props.context.Key }, statusSubPanels?.StatusBarPanels?.map((subPanel) => {
|
|
24
24
|
const module = adaptable.ModuleService.getModuleById(subPanel);
|
|
25
|
-
if (!module) {
|
|
26
|
-
return React.createElement(React.Fragment, { key: subPanel });
|
|
27
|
-
}
|
|
28
|
-
if (!module.isModuleAvailable()) {
|
|
25
|
+
if (!module?.isModuleVisible()) {
|
|
29
26
|
return React.createElement(React.Fragment, { key: subPanel });
|
|
30
27
|
}
|
|
31
28
|
/**
|
|
@@ -31,7 +31,7 @@ const StatusBarPopup = (props) => {
|
|
|
31
31
|
}, [statusPanels]);
|
|
32
32
|
const availableItems = Types_1.ALL_STATUS_SUB_PANELS.filter((panel) => {
|
|
33
33
|
const module = adaptable.ModuleService.getModuleById(panel);
|
|
34
|
-
return module
|
|
34
|
+
return module?.isModuleVisible();
|
|
35
35
|
}).map((panel) => {
|
|
36
36
|
const module = adaptable.ModuleService.getModuleById(panel);
|
|
37
37
|
return { Id: panel, Title: module.moduleInfo.FriendlyName };
|
|
@@ -27,7 +27,7 @@ const ThemeSelector = (props) => {
|
|
|
27
27
|
label: theme.Description,
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
|
-
return (React.createElement(Select_1.Select, { "aria-label": "Select Theme", "data-name": "select-theme-dropdown",
|
|
30
|
+
return (React.createElement(Select_1.Select, { "aria-label": "Select Theme", "data-name": "select-theme-dropdown", options: optionThemes, value: currentTheme, disabled: disabled, size: props.size, onChange: (themeName) => {
|
|
31
31
|
dispatch(ThemeRedux.ThemeSelect(themeName));
|
|
32
32
|
} }));
|
|
33
33
|
};
|
|
@@ -21,7 +21,7 @@ import { Fdc3Service } from '../Utilities/Services/Fdc3Service';
|
|
|
21
21
|
import { AnnotationsService } from '../Utilities/Services/AnnotationsService';
|
|
22
22
|
import { IModuleCollection } from '../Strategy/Interface/IModule';
|
|
23
23
|
import { AgGridMenuAdapter } from './AgGridMenuAdapter';
|
|
24
|
-
import { AdaptableColumn, AdaptableTheme, ChartDefinition, ColumnSort, DataUpdateConfig, GridCell, Layout, SelectedCellInfo, SelectedRowInfo } from '../types';
|
|
24
|
+
import { AdaptableColumn, AdaptableTheme, ChartDefinition, ColumnSort, DataUpdateConfig, GridCell, InFilterValue, Layout, SelectedCellInfo, SelectedRowInfo } from '../types';
|
|
25
25
|
import { RenderReactRootFn } from '../renderReactRoot';
|
|
26
26
|
import { AgGridOptionsService } from './AgGridOptionsService';
|
|
27
27
|
import { AgGridColumnAdapter } from './AgGridColumnAdapter';
|
|
@@ -31,6 +31,8 @@ import { FlashingCellService } from '../Utilities/Services/FlashingCellService';
|
|
|
31
31
|
import { AgGridExportAdapter } from './AgGridExportAdapter';
|
|
32
32
|
import { PivotLayoutModel, TableLayoutModel } from '../layout-manager/src/LayoutManagerModel';
|
|
33
33
|
import { AgGridThemeAdapter } from './AgGridThemeAdapter';
|
|
34
|
+
import { AgGridModulesAdapter } from './AgGridModulesAdapter';
|
|
35
|
+
import { EditColumnValueInfo } from '../AdaptableOptions/EditOptions';
|
|
34
36
|
export type AdaptableLifecycleState = 'initial' | 'preprocessOptions' | 'initAdaptableState' | 'setupAgGrid' | 'initAgGrid' | 'agGridReady' | 'available' | 'ready' | 'preDestroyed';
|
|
35
37
|
type RenderAgGridFrameworkComponentResult = false | GridApi;
|
|
36
38
|
interface AdaptableInitInternalConfig<TData = any> {
|
|
@@ -73,6 +75,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
73
75
|
agGridMenuAdapter: AgGridMenuAdapter;
|
|
74
76
|
agGridExportAdapter: AgGridExportAdapter;
|
|
75
77
|
agGridThemeAdapter: AgGridThemeAdapter;
|
|
78
|
+
agGridModulesAdapter: AgGridModulesAdapter;
|
|
76
79
|
private DANGER_USE_GETTER_adaptableContainerElement;
|
|
77
80
|
private DANGER_USE_GETTER_agGridContainerElement;
|
|
78
81
|
api: AdaptableApi;
|
|
@@ -146,7 +149,9 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
146
149
|
private normaliseToolPanelState;
|
|
147
150
|
private getCurrentLayoutModel;
|
|
148
151
|
silentUpdateCurrentLayoutModel(layoutModel?: TableLayoutModel | PivotLayoutModel): void;
|
|
149
|
-
applyFiltering(
|
|
152
|
+
applyFiltering(config?: {
|
|
153
|
+
updateColumnFilterModel?: boolean;
|
|
154
|
+
}): void;
|
|
150
155
|
showQuickFilter(): void;
|
|
151
156
|
hideQuickFilter(): void;
|
|
152
157
|
private normalizeAdaptableOptions;
|
|
@@ -156,7 +161,6 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
156
161
|
*/
|
|
157
162
|
private initializeAgGrid;
|
|
158
163
|
useRowNodeLookUp(): boolean;
|
|
159
|
-
getAgGridRegisteredModules(): Module[];
|
|
160
164
|
getAgGridContainerElement(): HTMLElement | null;
|
|
161
165
|
getAdaptableContainerElement(): HTMLElement;
|
|
162
166
|
refreshSelectedCellsState(): SelectedCellInfo | undefined;
|
|
@@ -181,6 +185,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
181
185
|
*/
|
|
182
186
|
private temporaryAdaptableStateUpdates;
|
|
183
187
|
private validatePrimaryKey;
|
|
188
|
+
isInPivotMode(): boolean;
|
|
184
189
|
private deriveAdaptableColumnStateFromAgGrid;
|
|
185
190
|
private checkShouldClearExistingFiltersOrSearches;
|
|
186
191
|
getGridCellFromRowNode(rowNode: IRowNode, columnId: string): GridCell | undefined;
|
|
@@ -252,14 +257,13 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
252
257
|
getDistinctFilterValuesForColumn(options: {
|
|
253
258
|
column: AdaptableColumn;
|
|
254
259
|
currentSearchValue: string;
|
|
255
|
-
}): Promise<
|
|
260
|
+
}): Promise<InFilterValue[]>;
|
|
256
261
|
getDistinctEditValuesForColumn(options: {
|
|
257
262
|
column: AdaptableColumn;
|
|
258
263
|
currentSearchValue: string;
|
|
259
264
|
gridCell?: GridCell;
|
|
260
|
-
}): Promise<
|
|
261
|
-
getDistinctGridCellsForColumn(column: AdaptableColumn): GridCellWithCount[];
|
|
262
|
-
private getGridCellsForCustomColumnValues;
|
|
265
|
+
}): Promise<EditColumnValueInfo[]>;
|
|
266
|
+
getDistinctGridCellsForColumn(column: AdaptableColumn, rowNodes?: IRowNode[]): GridCellWithCount[];
|
|
263
267
|
private addDistinctColumnValue;
|
|
264
268
|
private getUniqueGridCells;
|
|
265
269
|
getGridCellsForColumn(columnId: string, onlyVisibleRows?: boolean): GridCell[] | undefined;
|