@adaptabletools/adaptable 22.0.0-canary.0 → 22.0.0-canary.10
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/README.md +4 -6
- package/agGrid.d.ts +9 -9
- package/agGrid.js +1 -0
- package/index.css +1280 -1400
- package/index.css.map +1 -1
- package/index.d.ts +66 -0
- package/index.js +73 -0
- package/package.json +3 -3
- package/src/AdaptableInterfaces/IAdaptable.d.ts +10 -1
- package/src/AdaptableOptions/ActionColumnOptions.d.ts +2 -2
- package/src/AdaptableOptions/AdaptablePlugin.js +6 -1
- package/src/AdaptableOptions/ColumnOptions.d.ts +2 -2
- package/src/AdaptableOptions/ContainerOptions.d.ts +55 -15
- package/src/AdaptableOptions/CustomSortOptions.d.ts +4 -0
- package/src/AdaptableOptions/DashboardOptions.d.ts +1 -2
- package/src/AdaptableOptions/ExportOptions.d.ts +1 -2
- package/src/AdaptableOptions/FilterOptions.d.ts +3 -0
- package/src/AdaptableOptions/ToolPanelOptions.d.ts +1 -2
- package/src/AdaptableState/AdaptableState.d.ts +2 -0
- package/src/AdaptableState/AlertState.d.ts +5 -2
- package/src/AdaptableState/ChartingState.d.ts +2 -2
- package/src/AdaptableState/Common/AdaptableAlert.d.ts +2 -2
- package/src/AdaptableState/Common/AdaptableButton.d.ts +2 -2
- package/src/AdaptableState/Common/AdaptableColumn.d.ts +16 -10
- package/src/AdaptableState/Common/AdaptableColumnContext.d.ts +9 -0
- package/src/AdaptableState/Common/AdaptableFlashingCell.d.ts +2 -2
- package/src/AdaptableState/Common/AdaptableObject.d.ts +20 -2
- package/src/AdaptableState/Common/AdaptableRowContext.d.ts +11 -0
- package/src/AdaptableState/Common/AdaptableStyle.d.ts +8 -0
- package/src/AdaptableState/Common/BaseContext.d.ts +2 -0
- package/src/AdaptableState/Common/ColumnHighlightInfo.d.ts +18 -0
- package/src/AdaptableState/Common/DataUpdateConfig.d.ts +17 -0
- package/src/AdaptableState/Common/NamedObject.d.ts +10 -0
- package/src/AdaptableState/Common/NamedObject.js +1 -0
- package/src/AdaptableState/Common/RowDataChangedInfo.d.ts +3 -0
- package/src/AdaptableState/Common/RowSummary.d.ts +1 -1
- package/src/AdaptableState/Common/Schedule.d.ts +8 -5
- package/src/AdaptableState/Common/SystemStatusMessageInfo.d.ts +2 -2
- package/src/AdaptableState/Common/TransposeConfig.d.ts +12 -10
- package/src/AdaptableState/CustomSortState.d.ts +5 -1
- package/src/AdaptableState/DashboardState.d.ts +1 -1
- package/src/AdaptableState/ExportState.d.ts +1 -1
- package/src/AdaptableState/FlashingCellState.d.ts +6 -2
- package/src/AdaptableState/FormatColumnState.d.ts +5 -9
- package/src/AdaptableState/InitialState.d.ts +10 -1
- package/src/AdaptableState/InternalState.d.ts +2 -0
- package/src/AdaptableState/LayoutState.d.ts +7 -3
- package/src/AdaptableState/NamedQueryState.d.ts +1 -1
- package/src/AdaptableState/PlusMinusState.d.ts +5 -1
- package/src/AdaptableState/Selection/GridCell.d.ts +9 -0
- package/src/AdaptableState/ShortcutState.d.ts +5 -1
- package/src/AdaptableState/StyledColumnState.d.ts +1 -1
- package/src/AdaptableState/ThemeState.d.ts +1 -1
- package/src/AdaptableState/UserInterfaceState.d.ts +14 -0
- package/src/AdaptableState/UserInterfaceState.js +1 -0
- package/src/Api/AlertApi.d.ts +6 -0
- package/src/Api/CustomSortApi.d.ts +12 -3
- package/src/Api/DataSetApi.d.ts +1 -1
- package/src/Api/FlashingCellApi.d.ts +6 -0
- package/src/Api/FormatColumnApi.d.ts +10 -4
- package/src/Api/GridApi.d.ts +29 -4
- package/src/Api/Implementation/ActionColumnApiImpl.js +1 -0
- package/src/Api/Implementation/AdaptableApiImpl.js +52 -0
- package/src/Api/Implementation/AlertApiImpl.d.ts +1 -0
- package/src/Api/Implementation/AlertApiImpl.js +6 -6
- package/src/Api/Implementation/ApiBase.d.ts +1 -1
- package/src/Api/Implementation/ApiBase.js +2 -1
- package/src/Api/Implementation/CalculatedColumnApiImpl.js +1 -0
- package/src/Api/Implementation/ChartingApiImpl.js +6 -2
- package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -1
- package/src/Api/Implementation/ColumnApiImpl.js +1 -0
- package/src/Api/Implementation/ColumnFilterApiImpl.js +1 -0
- package/src/Api/Implementation/CommentsApiImpl.js +1 -0
- package/src/Api/Implementation/CustomSortApiImpl.d.ts +6 -1
- package/src/Api/Implementation/CustomSortApiImpl.js +6 -2
- package/src/Api/Implementation/DashboardApiImpl.js +1 -0
- package/src/Api/Implementation/DataChangeHistoryApiImpl.js +12 -15
- package/src/Api/Implementation/DataImportApiImpl.js +1 -0
- package/src/Api/Implementation/DataSetApiImpl.js +1 -0
- package/src/Api/Implementation/EntitlementApiImpl.js +1 -0
- package/src/Api/Implementation/EventApiImpl.js +16 -14
- package/src/Api/Implementation/ExportApiImpl.js +1 -0
- package/src/Api/Implementation/ExpressionApiImpl.js +1 -0
- package/src/Api/Implementation/Fdc3ApiImpl.js +1 -0
- package/src/Api/Implementation/FilterApiImpl.js +3 -0
- package/src/Api/Implementation/FlashingCellApiImpl.d.ts +1 -0
- package/src/Api/Implementation/FlashingCellApiImpl.js +4 -0
- package/src/Api/Implementation/FormatColumnApiImpl.d.ts +6 -5
- package/src/Api/Implementation/FormatColumnApiImpl.js +7 -5
- package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -0
- package/src/Api/Implementation/GridApiImpl.d.ts +10 -1
- package/src/Api/Implementation/GridApiImpl.js +36 -5
- package/src/Api/Implementation/GridFilterApiImpl.js +1 -0
- package/src/Api/Implementation/LayoutApiImpl.d.ts +1 -0
- package/src/Api/Implementation/LayoutApiImpl.js +5 -1
- package/src/Api/Implementation/LayoutHelpers.js +7 -0
- package/src/Api/Implementation/NamedQueryApiImpl.js +3 -2
- package/src/Api/Implementation/NoteApiImpl.js +1 -0
- package/src/Api/Implementation/PlusMinusApiImpl.d.ts +1 -0
- package/src/Api/Implementation/PlusMinusApiImpl.js +3 -0
- package/src/Api/Implementation/PredicateApiImpl.js +1 -0
- package/src/Api/Implementation/RowFormApiImpl.js +1 -0
- package/src/Api/Implementation/ScheduleApiImpl.d.ts +1 -0
- package/src/Api/Implementation/ScheduleApiImpl.js +4 -0
- package/src/Api/Implementation/ShortcutApiImpl.d.ts +1 -0
- package/src/Api/Implementation/ShortcutApiImpl.js +3 -0
- package/src/Api/Implementation/StyledColumnApiImpl.js +1 -0
- package/src/Api/Implementation/SystemStatusApiImpl.js +8 -9
- package/src/Api/Implementation/TeamSharingApiImpl.js +1 -0
- package/src/Api/Implementation/ThemeApiImpl.js +1 -0
- package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +5 -0
- package/src/Api/Implementation/UserInterfaceApiImpl.js +15 -1
- package/src/Api/Internal/CalculatedColumnInternalApi.js +2 -2
- package/src/Api/Internal/ColumnInternalApi.js +1 -1
- package/src/Api/Internal/FormatColumnInternalApi.d.ts +0 -10
- package/src/Api/Internal/FormatColumnInternalApi.js +1 -19
- package/src/Api/Internal/FreeTextColumnInternalApi.js +2 -2
- package/src/Api/Internal/LayoutInternalApi.js +1 -1
- package/src/Api/Internal/NamedQueryInternalApi.js +4 -4
- package/src/Api/LayoutApi.d.ts +6 -0
- package/src/Api/PlusMinusApi.d.ts +6 -0
- package/src/Api/ScheduleApi.d.ts +6 -0
- package/src/Api/ShortcutApi.d.ts +6 -0
- package/src/Api/UserInterfaceApi.d.ts +17 -0
- package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +8 -0
- package/src/Redux/ActionsReducers/FormatColumnRedux.js +15 -0
- package/src/Redux/ActionsReducers/InternalRedux.d.ts +15 -0
- package/src/Redux/ActionsReducers/InternalRedux.js +36 -0
- package/src/Redux/ActionsReducers/LayoutRedux.d.ts +1 -1
- package/src/Redux/ActionsReducers/NoteRedux.js +1 -1
- package/src/Redux/ActionsReducers/UserInterfaceRedux.d.ts +11 -0
- package/src/Redux/ActionsReducers/UserInterfaceRedux.js +21 -0
- package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +6 -0
- package/src/Redux/Store/AdaptableStore.js +121 -64
- package/src/Strategy/AdaptableModuleBase.js +4 -0
- package/src/Strategy/AlertModule.js +5 -0
- package/src/Strategy/BulkUpdateModule.js +8 -8
- package/src/Strategy/CalculatedColumnModule.js +1 -0
- package/src/Strategy/CellSummaryModule.js +1 -1
- package/src/Strategy/CustomSortModule.js +4 -0
- package/src/Strategy/DataChangeHistoryModule.js +1 -0
- package/src/Strategy/FlashingCellModule.js +6 -0
- package/src/Strategy/FormatColumnModule.js +4 -0
- package/src/Strategy/FreeTextColumnModule.js +1 -0
- package/src/Strategy/LayoutModule.js +6 -5
- package/src/Strategy/PlusMinusModule.js +7 -1
- package/src/Strategy/QuickSearchModule.js +1 -1
- package/src/Strategy/ScheduleModule.js +5 -0
- package/src/Strategy/SettingsPanelModule.js +11 -7
- package/src/Strategy/ShortcutModule.js +6 -0
- package/src/Strategy/SmartEditModule.js +10 -10
- package/src/Strategy/TeamSharingModule.js +10 -10
- package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +0 -3
- package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +18 -17
- package/src/Utilities/Constants/DocumentationLinkConstants.js +18 -17
- package/src/Utilities/ExpressionFunctions/deepMap.js +31 -31
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +3 -3
- package/src/Utilities/Extensions/StringExtensions.d.ts +2 -0
- package/src/Utilities/Extensions/StringExtensions.js +16 -0
- package/src/Utilities/Helpers/FormatHelper.js +9 -2
- package/src/Utilities/Helpers/StyleHelper.js +14 -0
- package/src/Utilities/MenuItem.js +18 -0
- package/src/Utilities/ObjectFactory.js +16 -3
- package/src/Utilities/Services/AggregatedScalarLiveValue.js +8 -0
- package/src/Utilities/Services/AlertService.js +6 -4
- package/src/Utilities/Services/AnnotationsService.js +4 -1
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +2 -1
- package/src/Utilities/Services/ChartingService.js +1 -0
- package/src/Utilities/Services/DataService.js +11 -3
- package/src/Utilities/Services/Fdc3Service.js +9 -7
- package/src/Utilities/Services/FlashingCellService.js +5 -0
- package/src/Utilities/Services/LicenseService/index.js +1 -1
- package/src/Utilities/Services/MetamodelService.js +2 -2
- package/src/Utilities/Services/ModuleService.js +39 -41
- package/src/Utilities/Services/QueryLanguageService.js +6 -5
- package/src/Utilities/Services/RowFormService.js +1 -0
- package/src/Utilities/Services/RowSummaryService.js +10 -7
- package/src/Utilities/Services/TeamSharingService.js +3 -1
- package/src/Utilities/Services/ThemeService.js +13 -15
- package/src/Utilities/Services/ValidationService.js +2 -1
- package/src/Utilities/createAgStatusPanelComponent.js +3 -0
- package/src/Utilities/logDeprecation.js +3 -4
- package/src/Utilities/resolveContainerElement.d.ts +23 -0
- package/src/Utilities/resolveContainerElement.js +44 -0
- package/src/View/AdaptablePopover/index.d.ts +1 -0
- package/src/View/AdaptablePopover/index.js +1 -1
- package/src/View/Alert/ActiveAlertsPanel.js +8 -0
- package/src/View/Alert/AlertViewPanel.js +13 -9
- package/src/View/Alert/Utilities/getAlertButtonStyle.d.ts +1 -0
- package/src/View/Alert/Utilities/getAlertButtonStyle.js +8 -0
- package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +1 -0
- package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +5 -2
- package/src/View/Alert/Wizard/AlertTypeWizardSection.js +47 -12
- package/src/View/Alert/Wizard/AlertWizard.js +14 -10
- package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
- package/src/View/BulkUpdate/BulkUpdateViewPanel.js +24 -11
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +2 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
- package/src/View/CellSummary/CellSummaryViewPanel.js +16 -17
- package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +2 -2
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +2 -2
- package/src/View/Components/AdaptableDateInput/index.js +1 -1
- package/src/View/Components/Buttons/ButtonApply.js +1 -1
- package/src/View/Components/Buttons/ButtonBase/index.js +9 -9
- package/src/View/Components/Buttons/ButtonClear.d.ts +1 -0
- package/src/View/Components/Buttons/EntityListActionButtons.d.ts +1 -2
- package/src/View/Components/Buttons/EntityListActionButtons.js +18 -18
- package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -2
- package/src/View/Components/CellPopup/index.js +1 -1
- package/src/View/Components/ColumnFilter/FloatingFilter.js +41 -3
- package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +1 -1
- package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +54 -2
- package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +1 -1
- package/src/View/Components/EntityRulesEditor/Utilities.js +5 -5
- package/src/View/Components/NewScopeComponent.js +3 -3
- package/src/View/Components/Panels/PanelDashboard/index.js +8 -8
- package/src/View/Components/Panels/PanelToolPanel/index.js +7 -7
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +2 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +1 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.d.ts +1 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +1 -8
- package/src/View/Components/Popups/AdaptablePopupConfirmation.js +1 -1
- package/src/View/Components/Popups/WindowPopups/WindowPopups.js +36 -1
- package/src/View/Components/Selectors/BulkUpdateValueSelector.js +19 -18
- package/src/View/Components/StyleComponent.d.ts +1 -0
- package/src/View/Components/StyleComponent.js +94 -24
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +2 -0
- package/src/View/Components/WizardSummaryPage.js +1 -1
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +41 -15
- package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +1 -1
- package/src/View/CustomSort/Wizard/CustomSortWizard.js +4 -4
- package/src/View/Dashboard/CustomToolbar.js +1 -1
- package/src/View/Dashboard/DashboardPopup.js +4 -5
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -0
- package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +1 -1
- package/src/View/Export/ExportDestinationPicker.js +1 -1
- package/src/View/Export/ExportStatusBar.js +4 -2
- package/src/View/Export/ExportViewPanel.js +25 -18
- package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.d.ts +2 -1
- package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +34 -14
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +14 -10
- package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +46 -51
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +2 -2
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +20 -9
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +3 -3
- package/src/View/GridFilter/GridFilterExpressionEditor.js +6 -1
- package/src/View/GridFilter/GridFilterViewPanel.js +33 -70
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +57 -65
- package/src/View/Layout/LayoutViewPanel.js +1 -1
- package/src/View/Layout/TransposedPopup.js +144 -138
- package/src/View/Layout/Wizard/sections/AggregationsSection.js +1 -1
- package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
- package/src/View/Layout/Wizard/sections/GridFilterSection.js +1 -1
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +3 -3
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +8 -0
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +1 -1
- package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +2 -2
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +35 -12
- package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +20 -15
- package/src/View/QuickSearch/QuickSearchPopup.js +4 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +12 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +12 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +14 -4
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +12 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.d.ts +2 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.js +19 -10
- package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.d.ts +2 -1
- package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +25 -4
- package/src/View/Shortcut/Wizard/ShortcutWizard.js +18 -14
- package/src/View/SmartEdit/SmartEditViewPanel.js +1 -0
- package/src/View/StateManagement/handleExportState.js +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
- package/src/View/Theme/ThemePopup.js +13 -16
- package/src/View/UIHelper.d.ts +4 -1
- package/src/View/UIHelper.js +23 -14
- package/src/agGrid/Adaptable.js +15 -11
- package/src/agGrid/AdaptableAgGrid.d.ts +16 -3
- package/src/agGrid/AdaptableAgGrid.js +306 -103
- package/src/agGrid/AdaptableFilterHandler.js +4 -0
- package/src/agGrid/AdaptableLogger.d.ts +3 -0
- package/src/agGrid/AdaptableLogger.js +10 -0
- package/src/agGrid/AgGridAdapter.js +19 -9
- package/src/agGrid/AgGridColumnAdapter.d.ts +1 -0
- package/src/agGrid/AgGridColumnAdapter.js +20 -22
- package/src/agGrid/AgGridExportAdapter.js +15 -14
- package/src/agGrid/AgGridFilterAdapter.js +4 -0
- package/src/agGrid/AgGridFloatingFilterAdapter.js +4 -1
- package/src/agGrid/AgGridMenuAdapter.js +10 -1
- package/src/agGrid/AgGridModulesAdapter.js +2 -1
- package/src/agGrid/AgGridOptionsService.js +3 -0
- package/src/agGrid/AgGridThemeAdapter.js +4 -2
- package/src/agGrid/cellRenderers/ActionColumnRenderer.js +5 -0
- package/src/agGrid/cellRenderers/BadgeRenderer.js +2 -0
- package/src/agGrid/cellRenderers/PercentBarRenderer.js +1 -0
- package/src/agGrid/editors/AdaptableDateEditor/index.js +6 -3
- package/src/agGrid/editors/AdaptableNumberEditor/index.js +16 -12
- package/src/agGrid/editors/AdaptablePercentageEditor/index.js +17 -13
- package/src/agGrid/index.d.ts +6 -0
- package/src/agGrid/index.js +6 -0
- package/src/components/CheckBox/index.js +1 -1
- package/src/components/ColorPicker/ColorPicker.js +5 -4
- package/src/components/Dashboard/DashboardToolbar.js +1 -1
- package/src/components/Datepicker/index.js +1 -1
- package/src/components/Dropdown/Arrows.js +1 -1
- package/src/components/ExpressionEditor/DataTableEditor.js +3 -3
- package/src/components/ExpressionEditor/EditorInput.js +19 -3
- package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
- package/src/components/FormLayout/index.js +1 -1
- package/src/components/OverlayTrigger/index.js +1 -1
- package/src/components/Select/Select.js +79 -16
- package/src/components/Tree/TreeDropdown/index.js +2 -2
- package/src/components/overlayBaseZIndex.js +1 -1
- package/src/components/utils/useContainerScrollObserver/index.js +17 -14
- package/src/devTools/index.js +54 -53
- package/src/env.js +2 -2
- package/src/layout-manager/src/LMEmitter.js +11 -11
- package/src/layout-manager/src/LMLogger.js +7 -0
- package/src/layout-manager/src/LayoutManagerModel.d.ts +1 -0
- package/src/layout-manager/src/index.js +81 -58
- package/src/layout-manager/src/normalizeLayoutModel.js +3 -0
- package/src/metamodel/adaptable.metamodel.d.ts +177 -8
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/migration/AdaptableUpgradeHelper.js +8 -3
- package/src/migration/VersionUpgrade.js +1 -0
- package/src/migration/VersionUpgrade17.js +5 -6
- package/src/migration/VersionUpgrade20.js +4 -4
- package/src/migration/VersionUpgrade22.d.ts +21 -0
- package/src/migration/VersionUpgrade22.js +187 -0
- package/src/parser/src/ExpressionEvaluationError.js +1 -0
- package/src/types.d.ts +9 -7
- package/themes/dark.css +30 -30
- package/themes/light.css +4 -2
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.js +0 -632
- package/src/View/Alert/AlertEntityRow.d.ts +0 -11
- package/src/View/Alert/AlertEntityRow.js +0 -28
- package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +0 -21
- package/src/View/CalculatedColumn/CalculatedColumnSummary.js +0 -58
- package/src/View/Components/Buttons/ButtonFunction.d.ts +0 -7
- package/src/View/Components/Buttons/ButtonFunction.js +0 -8
- package/src/View/Components/Buttons/ButtonGeneral.d.ts +0 -5
- package/src/View/Components/Buttons/ButtonGeneral.js +0 -7
- package/src/View/Components/Buttons/ButtonPreviewDelete.d.ts +0 -4
- package/src/View/Components/Buttons/ButtonPreviewDelete.js +0 -5
- package/src/View/Components/Buttons/ButtonShow.d.ts +0 -5
- package/src/View/Components/Buttons/ButtonShow.js +0 -7
- package/src/View/Components/Buttons/ButtonShowChart.d.ts +0 -5
- package/src/View/Components/Buttons/ButtonShowChart.js +0 -7
- package/src/View/Components/Buttons/ButtonUndo.d.ts +0 -5
- package/src/View/Components/Buttons/ButtonUndo.js +0 -7
- package/src/View/Components/ExpressionWizard.d.ts +0 -24
- package/src/View/Components/ExpressionWizard.js +0 -77
- package/src/View/Components/FilterForm/Waiting.d.ts +0 -10
- package/src/View/Components/FilterForm/Waiting.js +0 -14
- package/src/View/Components/Panels/PanelFooter.d.ts +0 -10
- package/src/View/Components/Panels/PanelFooter.js +0 -9
- package/src/View/Components/Panels/PanelWithTwoButtons.d.ts +0 -12
- package/src/View/Components/Panels/PanelWithTwoButtons.js +0 -15
- package/src/View/Components/Panels/ToolPanelSettingsPanel.d.ts +0 -8
- package/src/View/Components/Panels/ToolPanelSettingsPanel.js +0 -26
- package/src/View/Components/Selectors/ColumnSelectorOld.d.ts +0 -18
- package/src/View/Components/Selectors/ColumnSelectorOld.js +0 -45
- package/src/View/Components/SharedProps/WizardScopeState.d.ts +0 -4
- package/src/View/Components/WizardSummaryRow.d.ts +0 -9
- package/src/View/Components/WizardSummaryRow.js +0 -11
- package/src/View/CustomSort/CustomSortSummary.d.ts +0 -23
- package/src/View/CustomSort/CustomSortSummary.js +0 -105
- package/src/View/DataImport/DataImportWizard/sections/ImportSection.d.ts +0 -9
- package/src/View/DataImport/DataImportWizard/sections/ImportSection.js +0 -19
- package/src/View/Export/Wizard/ReportColumnTypeWizard.d.ts +0 -19
- package/src/View/Export/Wizard/ReportColumnTypeWizard.js +0 -68
- package/src/View/Export/Wizard/ReportRowTypeWizard.d.ts +0 -19
- package/src/View/Export/Wizard/ReportRowTypeWizard.js +0 -68
- package/src/View/Export/Wizard/ReportSettingsWizard.d.ts +0 -21
- package/src/View/Export/Wizard/ReportSettingsWizard.js +0 -56
- package/src/View/Export/Wizard/ReportSummaryWizard.d.ts +0 -15
- package/src/View/Export/Wizard/ReportSummaryWizard.js +0 -35
- package/src/View/Filter/FilterSummary.d.ts +0 -18
- package/src/View/Filter/FilterSummary.js +0 -48
- package/src/View/FormatColumn/FormatColumnSummary.d.ts +0 -22
- package/src/View/FormatColumn/FormatColumnSummary.js +0 -90
- package/src/View/FreeTextColumn/FreeTextColumnSummary.d.ts +0 -22
- package/src/View/FreeTextColumn/FreeTextColumnSummary.js +0 -88
- package/src/View/GridInfo/GridInfoPopup/AdaptableOptionsComponent.d.ts +0 -7
- package/src/View/GridInfo/GridInfoPopup/AdaptableOptionsComponent.js +0 -94
- package/src/View/PlusMinus/PlusMinusSummary.d.ts +0 -22
- package/src/View/PlusMinus/PlusMinusSummary.js +0 -95
- package/src/View/Wizard/WizardLegend.d.ts +0 -12
- package/src/View/Wizard/WizardLegend.js +0 -23
- /package/src/{View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.d.ts → AdaptableState/Common/AdaptableRowContext.js} +0 -0
- /package/src/{View/Components/SharedProps/WizardScopeState.js → AdaptableState/Common/ColumnHighlightInfo.js} +0 -0
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Tabs } from '../../../../components/Tabs';
|
|
3
3
|
import FormLayout, { FormRow } from '../../../../components/FormLayout';
|
|
4
|
+
import Input from '../../../../components/Input';
|
|
4
5
|
import DropdownButton from '../../../../components/DropdownButton';
|
|
5
6
|
import { Box } from '../../../../components/Flex';
|
|
6
7
|
export const ScheduleSettingsOpenFin = (props) => {
|
|
8
|
+
const handleNameChange = (event) => {
|
|
9
|
+
props.onChange({
|
|
10
|
+
...props.openFin,
|
|
11
|
+
Name: event.target.value,
|
|
12
|
+
});
|
|
13
|
+
};
|
|
7
14
|
const reportOptions = props.allReports.map((report) => ({
|
|
8
15
|
label: report.Name,
|
|
9
16
|
value: report.Name,
|
|
@@ -17,9 +24,13 @@ export const ScheduleSettingsOpenFin = (props) => {
|
|
|
17
24
|
}));
|
|
18
25
|
return (React.createElement(Box, { "data-name": "schedule-settings-openfin" },
|
|
19
26
|
React.createElement(Tabs, { autoFocus: false },
|
|
20
|
-
React.createElement(Tabs.Tab, null, "
|
|
27
|
+
React.createElement(Tabs.Tab, null, "Settings"),
|
|
21
28
|
React.createElement(Tabs.Content, null,
|
|
22
29
|
React.createElement(FormLayout, null,
|
|
30
|
+
React.createElement(FormRow, { label: "Name" },
|
|
31
|
+
React.createElement(Input, { "data-name": "schedule-name", className: "twa:w-[300px]", onChange: handleNameChange, placeholder: "Enter Schedule Name", type: "string", value: props.openFin?.Name ?? '' })),
|
|
32
|
+
React.createElement(FormRow, { label: "" },
|
|
33
|
+
React.createElement(Box, { className: "twa:h-2" })),
|
|
23
34
|
React.createElement(FormRow, { label: "Select Report" },
|
|
24
35
|
React.createElement(DropdownButton, { "data-name": "select-report", columns: ['label'], className: "twa:w-[300px]", disabled: props.allReports.length == 0, items: reportOptions }, props?.openFin?.OpenFinReport?.ReportName || 'Select Report')))))));
|
|
25
36
|
};
|
|
@@ -17,16 +17,22 @@ export const ScheduleSettingsReminder = (props) => {
|
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
19
|
}));
|
|
20
|
+
const handleNameChange = (event) => {
|
|
21
|
+
props.onChange({
|
|
22
|
+
...props.reminderSchedule,
|
|
23
|
+
Name: event.target.value,
|
|
24
|
+
});
|
|
25
|
+
};
|
|
20
26
|
const handleHeaderChange = (event) => {
|
|
21
27
|
props.onChange({
|
|
22
28
|
...props.reminderSchedule,
|
|
23
|
-
Header: event.target
|
|
29
|
+
Header: event.target.value,
|
|
24
30
|
});
|
|
25
31
|
};
|
|
26
32
|
const handleMessageChange = (event) => {
|
|
27
33
|
props.onChange({
|
|
28
34
|
...props.reminderSchedule,
|
|
29
|
-
Message: event.target
|
|
35
|
+
Message: event.target.value,
|
|
30
36
|
});
|
|
31
37
|
};
|
|
32
38
|
const handleDisplayNotificationChange = (checked) => {
|
|
@@ -41,11 +47,15 @@ export const ScheduleSettingsReminder = (props) => {
|
|
|
41
47
|
DisplaySystemStatusMessage: checked,
|
|
42
48
|
});
|
|
43
49
|
};
|
|
44
|
-
return (React.createElement(Box, { "data-name": "schedule-settings-
|
|
50
|
+
return (React.createElement(Box, { "data-name": "schedule-settings-reminder" },
|
|
45
51
|
React.createElement(Tabs, { autoFocus: false },
|
|
46
|
-
React.createElement(Tabs.Tab, null, "
|
|
52
|
+
React.createElement(Tabs.Tab, null, "Settings"),
|
|
47
53
|
React.createElement(Tabs.Content, null,
|
|
48
54
|
React.createElement(FormLayout, null,
|
|
55
|
+
React.createElement(FormRow, { label: "Name" },
|
|
56
|
+
React.createElement(Input, { "data-name": "schedule-name", className: "twa:w-[300px]", onChange: handleNameChange, placeholder: "Enter Reminder Name", type: "string", value: props.reminderSchedule?.Name ?? '' })),
|
|
57
|
+
React.createElement(FormRow, { label: "" },
|
|
58
|
+
React.createElement(Box, { className: "twa:h-2" })),
|
|
49
59
|
React.createElement(FormRow, { label: "Header" },
|
|
50
60
|
React.createElement(Input, { "data-name": "header", className: "twa:w-[300px]", onChange: handleHeaderChange, placeholder: "Enter Reminder Header", type: "string", value: props.reminderSchedule?.Header })),
|
|
51
61
|
React.createElement(FormRow, { label: "Message" },
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import FormLayout, { FormRow } from '../../../../components/FormLayout';
|
|
3
|
+
import Input from '../../../../components/Input';
|
|
3
4
|
import { Select } from '../../../../components/Select';
|
|
4
5
|
import { Tabs } from '../../../../components/Tabs';
|
|
5
6
|
import { Box } from '../../../../components/Flex';
|
|
6
7
|
export const ScheduleSettingsReport = (props) => {
|
|
8
|
+
const handleNameChange = (event) => {
|
|
9
|
+
props.onChange({
|
|
10
|
+
...props.report,
|
|
11
|
+
Name: event.target.value,
|
|
12
|
+
});
|
|
13
|
+
};
|
|
7
14
|
const reportOptions = props.allReports.map((report) => ({
|
|
8
15
|
label: report.Name,
|
|
9
16
|
value: report.Name,
|
|
@@ -30,9 +37,13 @@ export const ScheduleSettingsReport = (props) => {
|
|
|
30
37
|
}));
|
|
31
38
|
return (React.createElement(Box, { "data-name": "schedule-settings-report" },
|
|
32
39
|
React.createElement(Tabs, { autoFocus: false, className: "twa:mb-3" },
|
|
33
|
-
React.createElement(Tabs.Tab, null, "
|
|
40
|
+
React.createElement(Tabs.Tab, null, "Settings"),
|
|
34
41
|
React.createElement(Tabs.Content, null,
|
|
35
42
|
React.createElement(FormLayout, null,
|
|
43
|
+
React.createElement(FormRow, { label: "Name" },
|
|
44
|
+
React.createElement(Input, { "data-name": "schedule-name", className: "twa:w-[300px]", onChange: handleNameChange, placeholder: "Enter Schedule Name", type: "string", value: props.report?.Name ?? '' })),
|
|
45
|
+
React.createElement(FormRow, { label: "" },
|
|
46
|
+
React.createElement(Box, { className: "twa:h-2" })),
|
|
36
47
|
React.createElement(FormRow, { label: "Export" },
|
|
37
48
|
React.createElement(Box, { className: "twa:max-w-[300px]" },
|
|
38
49
|
React.createElement(Select, { "data-name": "select-report", options: reportOptions, value: props?.report?.ReportName, placeholder: "Select Export", onChange: (value) => props.onChange({
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import { AdaptableApi } from '../../../../Api/AdaptableApi';
|
|
1
2
|
import { BaseSchedule } from '../../../../AdaptableState/Common/Schedule';
|
|
2
|
-
export declare const isSettingsValid: (schedule: BaseSchedule) => true | "
|
|
3
|
+
export declare const isSettingsValid: (schedule: BaseSchedule, api: AdaptableApi) => true | "A name is required." | "A Schedule with this name already exists." | "Please select a message type." | "A reminder header is required." | "A reminder message is required." | "Please select a report." | "Please select a report format." | "Please select a report folder." | "Please select a report page.";
|
|
@@ -1,43 +1,52 @@
|
|
|
1
1
|
import { ScheduleType } from '../../../../AdaptableState/Common/Enums';
|
|
2
2
|
import StringExtensions from '../../../../Utilities/Extensions/StringExtensions';
|
|
3
|
-
export const isSettingsValid = (schedule) => {
|
|
3
|
+
export const isSettingsValid = (schedule, api) => {
|
|
4
|
+
// Validate Name - mandatory and unique
|
|
5
|
+
if (!schedule.Name?.trim()) {
|
|
6
|
+
return 'A name is required.';
|
|
7
|
+
}
|
|
8
|
+
const allSchedules = api.scheduleApi.getSchedules();
|
|
9
|
+
const isDuplicateName = allSchedules.some((s) => s.Name === schedule.Name && s.Uuid !== schedule.Uuid);
|
|
10
|
+
if (isDuplicateName) {
|
|
11
|
+
return 'A Schedule with this name already exists.';
|
|
12
|
+
}
|
|
4
13
|
if (schedule.ScheduleType === ScheduleType.Reminder) {
|
|
5
14
|
const reminder = schedule;
|
|
6
15
|
if (!reminder.MessageType) {
|
|
7
|
-
return '
|
|
16
|
+
return 'Please select a message type.';
|
|
8
17
|
}
|
|
9
18
|
if (StringExtensions.IsNullOrEmpty(reminder?.Header)) {
|
|
10
|
-
return '
|
|
19
|
+
return 'A reminder header is required.';
|
|
11
20
|
}
|
|
12
21
|
if (StringExtensions.IsNullOrEmpty(reminder?.Message)) {
|
|
13
|
-
return '
|
|
22
|
+
return 'A reminder message is required.';
|
|
14
23
|
}
|
|
15
24
|
}
|
|
16
25
|
if (schedule.ScheduleType === ScheduleType.Report) {
|
|
17
26
|
const report = schedule;
|
|
18
27
|
if (StringExtensions.IsNullOrEmpty(report?.ReportName)) {
|
|
19
|
-
return '
|
|
28
|
+
return 'Please select a report.';
|
|
20
29
|
}
|
|
21
30
|
if (StringExtensions.IsNullOrEmpty(report?.ReportFormat)) {
|
|
22
|
-
return '
|
|
31
|
+
return 'Please select a report format.';
|
|
23
32
|
}
|
|
24
33
|
}
|
|
25
34
|
if (schedule.ScheduleType === ScheduleType.ipushpull) {
|
|
26
35
|
const ipushpull = schedule;
|
|
27
36
|
if (StringExtensions.IsNullOrEmpty(ipushpull?.IPushPullReport?.ReportName)) {
|
|
28
|
-
return '
|
|
37
|
+
return 'Please select a report.';
|
|
29
38
|
}
|
|
30
39
|
if (StringExtensions.IsNullOrEmpty(ipushpull?.IPushPullReport?.Folder)) {
|
|
31
|
-
return '
|
|
40
|
+
return 'Please select a report folder.';
|
|
32
41
|
}
|
|
33
42
|
if (StringExtensions.IsNullOrEmpty(ipushpull?.IPushPullReport?.Page)) {
|
|
34
|
-
return '
|
|
43
|
+
return 'Please select a report page.';
|
|
35
44
|
}
|
|
36
45
|
}
|
|
37
46
|
if (schedule.ScheduleType === ScheduleType.OpenFin) {
|
|
38
47
|
const openfin = schedule;
|
|
39
48
|
if (StringExtensions.IsNullOrEmpty(openfin?.OpenFinReport?.ReportName)) {
|
|
40
|
-
return '
|
|
49
|
+
return 'Please select a report.';
|
|
41
50
|
}
|
|
42
51
|
}
|
|
43
52
|
return true;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Shortcut } from '../../../AdaptableState/ShortcutState';
|
|
3
|
-
|
|
3
|
+
import { AdaptableApi } from '../../../types';
|
|
4
|
+
export declare const isSettingsValid: (data: Shortcut, api: AdaptableApi) => string | true;
|
|
4
5
|
export declare const ShortcutSettingsSummary: React.FunctionComponent;
|
|
5
6
|
interface ShortcutSettingsWizardProps {
|
|
6
7
|
availableKeys: Array<string>;
|
|
@@ -9,7 +9,15 @@ import { Tag } from '../../../components/Tag';
|
|
|
9
9
|
import HelpBlock from '../../../components/HelpBlock';
|
|
10
10
|
import { Select } from '../../../components/Select';
|
|
11
11
|
import { Box, Flex } from '../../../components/Flex';
|
|
12
|
-
export const isSettingsValid = (data) => {
|
|
12
|
+
export const isSettingsValid = (data, api) => {
|
|
13
|
+
if (!data.Name?.trim()) {
|
|
14
|
+
return 'Name is required';
|
|
15
|
+
}
|
|
16
|
+
const allShortcuts = api.shortcutApi.getShortcuts();
|
|
17
|
+
const isDuplicateName = allShortcuts.some((s) => s.Name === data.Name && s.Uuid !== data.Uuid);
|
|
18
|
+
if (isDuplicateName) {
|
|
19
|
+
return 'A Shortcut already exists with that name';
|
|
20
|
+
}
|
|
13
21
|
const shortcutKey = data.ShortcutKey && typeof data.ShortcutKey === 'string' ? '' : 'Shortcut key is not selected';
|
|
14
22
|
const shortcutValue = typeof data.ShortcutValue === 'number' ? '' : 'Shortcut value is not specified';
|
|
15
23
|
const shortcutOperation = data.ShortcutOperation && typeof data.ShortcutOperation === 'string'
|
|
@@ -21,6 +29,9 @@ export const isSettingsValid = (data) => {
|
|
|
21
29
|
export const ShortcutSettingsSummary = () => {
|
|
22
30
|
const { data: shortcut } = useOnePageAdaptableWizardContext();
|
|
23
31
|
return (React.createElement(React.Fragment, null,
|
|
32
|
+
React.createElement(SummaryText, null,
|
|
33
|
+
"Name ",
|
|
34
|
+
React.createElement(Tag, null, shortcut.Name || 'Not specified')),
|
|
24
35
|
React.createElement(SummaryText, null,
|
|
25
36
|
"Shortcut Key ",
|
|
26
37
|
React.createElement(Tag, null, shortcut.ShortcutKey || 'Not selected')),
|
|
@@ -33,6 +44,12 @@ export const ShortcutSettingsSummary = () => {
|
|
|
33
44
|
};
|
|
34
45
|
export const ShortcutSettingsWizard = (props) => {
|
|
35
46
|
const { data: shortcut } = useOnePageAdaptableWizardContext();
|
|
47
|
+
const handleNameChange = (event) => {
|
|
48
|
+
props.onChange({
|
|
49
|
+
...shortcut,
|
|
50
|
+
Name: event.target.value,
|
|
51
|
+
});
|
|
52
|
+
};
|
|
36
53
|
const handleKeyChange = React.useCallback((ShortcutKey) => {
|
|
37
54
|
props.onChange({
|
|
38
55
|
...shortcut,
|
|
@@ -63,17 +80,21 @@ export const ShortcutSettingsWizard = (props) => {
|
|
|
63
80
|
React.createElement(Tabs.Tab, null, "Shortcut Settings"),
|
|
64
81
|
React.createElement(Tabs.Content, null,
|
|
65
82
|
React.createElement(FormLayout, null,
|
|
66
|
-
React.createElement(FormRow,
|
|
83
|
+
React.createElement(FormRow, { label: "Name" },
|
|
84
|
+
React.createElement(Input, { "data-name": "shortcut-name", className: "twa:flex-1 twa:max-w-[200px] twa:mr-3", onChange: handleNameChange, placeholder: "Enter Name", value: shortcut.Name ?? '' })),
|
|
85
|
+
React.createElement(FormRow, { label: "" },
|
|
86
|
+
React.createElement(Box, { className: "twa:h-2" })),
|
|
87
|
+
React.createElement(FormRow, { label: "" },
|
|
67
88
|
React.createElement(HelpBlock, { className: "twa:text-2 twa:mb-0" }, "Keyboard key that, when pressed, triggers the Shortcut")),
|
|
68
89
|
React.createElement(FormRow, { label: "Key" },
|
|
69
90
|
React.createElement(Flex, { flexDirection: "row" },
|
|
70
91
|
React.createElement(Select, { "data-name": "shortcut-key", placeholder: "Select Key", options: optionKeys, onChange: (key) => handleKeyChange(key), value: shortcut.ShortcutKey || 'Select Key' }))),
|
|
71
|
-
React.createElement(FormRow,
|
|
92
|
+
React.createElement(FormRow, { label: "" },
|
|
72
93
|
React.createElement(HelpBlock, { className: "twa:text-2 twa:mb-0" }, "Mathematical operation performed on Cell's current value (using the Shortcut's 'value') - used to calculate the Cell's new total")),
|
|
73
94
|
React.createElement(FormRow, { label: "Operation" },
|
|
74
95
|
React.createElement(Flex, { flexDirection: "row" },
|
|
75
96
|
React.createElement(Select, { "data-name": "shortcut-operation", placeholder: "Select Operation", options: optionActions, onChange: (operation) => handleOperationChange(operation), value: shortcut.ShortcutOperation }))),
|
|
76
|
-
React.createElement(FormRow,
|
|
97
|
+
React.createElement(FormRow, { label: "" },
|
|
77
98
|
React.createElement(HelpBlock, { className: "twa:text-2 twa:mb-0" }, "Number that is used - together with the 'Operation' and the current cell value - to calculate the new total for the cell")),
|
|
78
99
|
React.createElement(FormRow, { label: "Value" },
|
|
79
100
|
React.createElement(Flex, { flexDirection: "row" },
|
|
@@ -11,8 +11,9 @@ import { shortcutKeys } from '../shortcutKeys';
|
|
|
11
11
|
import { useAdaptable } from '../../AdaptableContext';
|
|
12
12
|
import { ObjectTagsWizardSection, renderObjectTagsSummary, } from '../../Wizard/ObjectTagsWizardSection';
|
|
13
13
|
import { Box } from '../../../components/Flex';
|
|
14
|
+
import StringExtensions from '../../../Utilities/Extensions/StringExtensions';
|
|
14
15
|
export const ShortcutWizard = (props) => {
|
|
15
|
-
const [shortcut,
|
|
16
|
+
const [shortcut, doSetShortcut] = React.useState(() => {
|
|
16
17
|
const shortcut = props.data ? cloneObject(props.data) : ObjectFactory.CreateEmptyShortcut();
|
|
17
18
|
shortcut.Scope = shortcut.Scope ?? { All: true };
|
|
18
19
|
if (props.popupParams?.column && props.popupParams?.action === 'New') {
|
|
@@ -22,10 +23,13 @@ export const ShortcutWizard = (props) => {
|
|
|
22
23
|
}
|
|
23
24
|
return shortcut;
|
|
24
25
|
});
|
|
26
|
+
const setShortcut = React.useCallback((data) => {
|
|
27
|
+
doSetShortcut(data);
|
|
28
|
+
}, []);
|
|
25
29
|
const adaptable = useAdaptable();
|
|
26
30
|
const availableKeys = React.useMemo(() => {
|
|
27
31
|
const availableKeys = shortcutKeys.filter((key) => adaptable.api.shortcutApi.getShortcuts().every((shortcut) => shortcut.ShortcutKey !== key));
|
|
28
|
-
if (shortcut) {
|
|
32
|
+
if (shortcut && StringExtensions.IsNotNullOrEmptyOrWhiteSpace(shortcut.ShortcutKey)) {
|
|
29
33
|
availableKeys.push(shortcut.ShortcutKey);
|
|
30
34
|
}
|
|
31
35
|
availableKeys.sort();
|
|
@@ -42,18 +46,6 @@ export const ShortcutWizard = (props) => {
|
|
|
42
46
|
props.onFinishWizard(shortcut);
|
|
43
47
|
};
|
|
44
48
|
return (React.createElement(OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: shortcut, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
|
|
45
|
-
{
|
|
46
|
-
title: 'Target',
|
|
47
|
-
isValid: isScopeValid,
|
|
48
|
-
details: 'Specify where Shortcut should be applied',
|
|
49
|
-
renderSummary: () => renderScopeSummary(shortcut.Scope, {
|
|
50
|
-
scopeWholeRow: 'Shortcut is triggered for all numeric cells',
|
|
51
|
-
scopeColumns: 'Shortcut is triggered for cells in selected columns',
|
|
52
|
-
scopeDataTypes: 'Shortcut is triggered for all numeric cells',
|
|
53
|
-
}),
|
|
54
|
-
render: () => (React.createElement(Box, { className: "twa:p-2" },
|
|
55
|
-
React.createElement(ShortcutScopeWizardSection, { onChange: setShortcut }))),
|
|
56
|
-
},
|
|
57
49
|
{
|
|
58
50
|
title: 'Settings',
|
|
59
51
|
isValid: isSettingsValid,
|
|
@@ -69,6 +61,18 @@ export const ShortcutWizard = (props) => {
|
|
|
69
61
|
render: () => (React.createElement(Box, { className: "twa:p-2" },
|
|
70
62
|
React.createElement(ShortcutSettingsWizard, { availableKeys: props.availableKeys ?? availableKeys, onChange: setShortcut }))),
|
|
71
63
|
},
|
|
64
|
+
{
|
|
65
|
+
title: 'Target',
|
|
66
|
+
isValid: isScopeValid,
|
|
67
|
+
details: 'Specify where Shortcut should be applied',
|
|
68
|
+
renderSummary: () => renderScopeSummary(shortcut.Scope, {
|
|
69
|
+
scopeWholeRow: 'Shortcut is triggered for all numeric cells',
|
|
70
|
+
scopeColumns: 'Shortcut is triggered for cells in selected columns',
|
|
71
|
+
scopeDataTypes: 'Shortcut is triggered for all numeric cells',
|
|
72
|
+
}),
|
|
73
|
+
render: () => (React.createElement(Box, { className: "twa:p-2" },
|
|
74
|
+
React.createElement(ShortcutScopeWizardSection, { onChange: setShortcut }))),
|
|
75
|
+
},
|
|
72
76
|
{
|
|
73
77
|
details: 'Select Shortcut Tags',
|
|
74
78
|
title: 'Tags',
|
|
@@ -13,6 +13,7 @@ import { connect } from 'react-redux';
|
|
|
13
13
|
import { Select } from '../../components/Select';
|
|
14
14
|
import { Flex } from '../../components/Flex';
|
|
15
15
|
class SmartEditViewPanelComponent extends React.Component {
|
|
16
|
+
cleanupEvent;
|
|
16
17
|
constructor(props) {
|
|
17
18
|
super(props);
|
|
18
19
|
this.state = {
|
|
@@ -6,7 +6,7 @@ export const handleExportState = (type, name, state, api) => {
|
|
|
6
6
|
Helper.copyToClipboard(stringifiedState);
|
|
7
7
|
break;
|
|
8
8
|
case 'Console':
|
|
9
|
-
api.consoleLog('Adaptable
|
|
9
|
+
api.consoleLog('Adaptable state:', state);
|
|
10
10
|
break;
|
|
11
11
|
case 'JSON':
|
|
12
12
|
const jsonFileName = name + '.json';
|
|
@@ -15,7 +15,7 @@ export const renderStyledColumnColumnSummary = (data) => {
|
|
|
15
15
|
};
|
|
16
16
|
export const isValidStyledColumnColumn = (data) => {
|
|
17
17
|
if (!data.ColumnId) {
|
|
18
|
-
return '
|
|
18
|
+
return 'Please select a column for the Styled Column.';
|
|
19
19
|
}
|
|
20
20
|
return true;
|
|
21
21
|
};
|
|
@@ -11,22 +11,6 @@ import { Icon } from '../../components/icons';
|
|
|
11
11
|
import { ThemeSelector } from './ThemeSelector';
|
|
12
12
|
import { Box } from '../../components/Flex';
|
|
13
13
|
class ThemePopupComponent extends React.Component {
|
|
14
|
-
constructor() {
|
|
15
|
-
super(...arguments);
|
|
16
|
-
this.handleCreateNewTheme = (variant) => {
|
|
17
|
-
let nthItem = this.props.UserThemes.length + 1;
|
|
18
|
-
let name = 'Custom-Theme-' + nthItem;
|
|
19
|
-
// make sure it is unique
|
|
20
|
-
while (this.props.UserThemes.some((theme) => theme.Name === name)) {
|
|
21
|
-
nthItem++;
|
|
22
|
-
name = 'Custom-Theme-' + nthItem;
|
|
23
|
-
}
|
|
24
|
-
const newTheme = ObjectFactory.CreateEmptyTheme(name);
|
|
25
|
-
newTheme.Variant = variant;
|
|
26
|
-
this.props.api.themeApi.addUserTheme(newTheme);
|
|
27
|
-
this.props.api.themeApi.loadTheme(newTheme.Name);
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
14
|
render() {
|
|
31
15
|
const isCustomTheme = this.props.api.themeApi
|
|
32
16
|
.getUserThemes()
|
|
@@ -59,6 +43,19 @@ class ThemePopupComponent extends React.Component {
|
|
|
59
43
|
onChangeTheme(value) {
|
|
60
44
|
this.props.SelectTheme(value);
|
|
61
45
|
}
|
|
46
|
+
handleCreateNewTheme = (variant) => {
|
|
47
|
+
let nthItem = this.props.UserThemes.length + 1;
|
|
48
|
+
let name = 'Custom-Theme-' + nthItem;
|
|
49
|
+
// make sure it is unique
|
|
50
|
+
while (this.props.UserThemes.some((theme) => theme.Name === name)) {
|
|
51
|
+
nthItem++;
|
|
52
|
+
name = 'Custom-Theme-' + nthItem;
|
|
53
|
+
}
|
|
54
|
+
const newTheme = ObjectFactory.CreateEmptyTheme(name);
|
|
55
|
+
newTheme.Variant = variant;
|
|
56
|
+
this.props.api.themeApi.addUserTheme(newTheme);
|
|
57
|
+
this.props.api.themeApi.loadTheme(newTheme.Name);
|
|
58
|
+
};
|
|
62
59
|
}
|
|
63
60
|
function mapStateToProps(state, ownProps) {
|
|
64
61
|
return {
|
package/src/View/UIHelper.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { Schedule, Weekday } from '../AdaptableState/Common/Schedule';
|
|
|
6
6
|
import { AdaptableColumnDataType, AdaptableSystemIconName, AdaptableOptions } from '../types';
|
|
7
7
|
import { AdaptableAlert } from '../AdaptableState/Common/AdaptableAlert';
|
|
8
8
|
import { AdaptableMessageType } from '../AdaptableState/Common/AdaptableMessageType';
|
|
9
|
+
import type { ContainerContext } from '../AdaptableOptions/ContainerOptions';
|
|
9
10
|
export declare const BLACK: string;
|
|
10
11
|
export declare const WHITE: string;
|
|
11
12
|
export declare const LIGHT_GRAY: string;
|
|
@@ -31,13 +32,14 @@ export declare function getDefaultColors(): string[];
|
|
|
31
32
|
export declare function getEmptyConfigState(): EditableConfigEntityState;
|
|
32
33
|
export declare function getDescriptionForDataType(dataType: AdaptableColumnDataType): "text" | "number" | "date";
|
|
33
34
|
export declare function getPlaceholderForDataType(dataType: AdaptableColumnDataType): "Enter Value" | "Enter Number" | "Enter Date";
|
|
34
|
-
export declare function getModalContainer(adaptableOptions: AdaptableOptions, document: Document): HTMLElement;
|
|
35
|
+
export declare function getModalContainer(adaptableOptions: AdaptableOptions, document: Document, context?: ContainerContext): HTMLElement;
|
|
35
36
|
export declare function IsEmptyStyle(style: AdaptableStyle): boolean;
|
|
36
37
|
export declare function IsNotEmptyStyle(style: AdaptableStyle): boolean;
|
|
37
38
|
export declare function getMessageTypeByStatusColour(statusColour: StatusColour): AdaptableMessageType;
|
|
38
39
|
export declare function getButtonToneByMessageType(messageType: AdaptableMessageType): 'success' | 'error' | 'neutral' | 'none' | 'warning' | 'info' | 'accent';
|
|
39
40
|
export declare function getGlyphByMessageType(messageType: AdaptableMessageType): AdaptableSystemIconName;
|
|
40
41
|
export declare function getColorByMessageType(messageType: AdaptableMessageType): string;
|
|
42
|
+
export declare function getCSSColorByMessageType(messageType: AdaptableMessageType): string;
|
|
41
43
|
export declare function getStyleForStatusColour(statusColour: StatusColour): CSSProperties;
|
|
42
44
|
export declare function getStyleForMessageType(messageType: AdaptableMessageType): CSSProperties;
|
|
43
45
|
export declare function getGlyphForStatusColour(statusColour: StatusColour): string;
|
|
@@ -75,6 +77,7 @@ export declare const UIHelper: {
|
|
|
75
77
|
getGlyphForMessageType: typeof getGlyphForMessageType;
|
|
76
78
|
getStyleForMessageType: typeof getStyleForMessageType;
|
|
77
79
|
getMessageTypeFromAdaptableAlerts: typeof getMessageTypeFromAdaptableAlerts;
|
|
80
|
+
getCSSColorByMessageType: typeof getCSSColorByMessageType;
|
|
78
81
|
getButtonColourForAdaptableAlerts: typeof getButtonColourForAdaptableAlerts;
|
|
79
82
|
getButtonTextColourForArrayandMessageType: typeof getButtonTextColourForArrayandMessageType;
|
|
80
83
|
getButtonTextColourForMessageType: typeof getButtonTextColourForMessageType;
|
package/src/View/UIHelper.js
CHANGED
|
@@ -2,6 +2,7 @@ import { WizardStatus, } from './Components/SharedProps/EditableConfigEntityStat
|
|
|
2
2
|
import { FontWeight, FontStyle, StatusColour } from '../AdaptableState/Common/Enums';
|
|
3
3
|
import { StringExtensions } from '../Utilities/Extensions/StringExtensions';
|
|
4
4
|
import ArrayExtensions from '../Utilities/Extensions/ArrayExtensions';
|
|
5
|
+
import { resolveContainerElement } from '../Utilities/resolveContainerElement';
|
|
5
6
|
export const BLACK = 'Black';
|
|
6
7
|
export const WHITE = 'White';
|
|
7
8
|
export const LIGHT_GRAY = 'LightGray';
|
|
@@ -120,19 +121,12 @@ export function getPlaceholderForDataType(dataType) {
|
|
|
120
121
|
return 'Enter Date';
|
|
121
122
|
}
|
|
122
123
|
}
|
|
123
|
-
export function getModalContainer(adaptableOptions, document) {
|
|
124
|
-
let modalContainer;
|
|
125
|
-
if (
|
|
126
|
-
|
|
127
|
-
modalContainer
|
|
128
|
-
|
|
129
|
-
? document.getElementById(adaptableOptions.containerOptions.modalContainer)
|
|
130
|
-
: adaptableOptions.containerOptions.modalContainer;
|
|
131
|
-
if (modalContainer) {
|
|
132
|
-
const modalContainerClassName = ' modal-container';
|
|
133
|
-
if (!modalContainer.className.includes(modalContainerClassName)) {
|
|
134
|
-
modalContainer.className += modalContainerClassName;
|
|
135
|
-
}
|
|
124
|
+
export function getModalContainer(adaptableOptions, document, context) {
|
|
125
|
+
let modalContainer = resolveContainerElement(adaptableOptions.containerOptions.modalContainer, context, document);
|
|
126
|
+
if (modalContainer) {
|
|
127
|
+
const modalContainerClassName = ' modal-container';
|
|
128
|
+
if (!modalContainer.className.includes(modalContainerClassName)) {
|
|
129
|
+
modalContainer.className += modalContainerClassName;
|
|
136
130
|
}
|
|
137
131
|
}
|
|
138
132
|
if (!modalContainer) {
|
|
@@ -202,6 +196,20 @@ export function getColorByMessageType(messageType) {
|
|
|
202
196
|
return 'var(--ab-color-info)';
|
|
203
197
|
}
|
|
204
198
|
}
|
|
199
|
+
export function getCSSColorByMessageType(messageType) {
|
|
200
|
+
switch (messageType) {
|
|
201
|
+
case 'Error':
|
|
202
|
+
return 'error';
|
|
203
|
+
case 'Warning':
|
|
204
|
+
return 'warn';
|
|
205
|
+
case 'Success':
|
|
206
|
+
return 'success';
|
|
207
|
+
case 'Info':
|
|
208
|
+
return 'info';
|
|
209
|
+
default:
|
|
210
|
+
return '';
|
|
211
|
+
}
|
|
212
|
+
}
|
|
205
213
|
export function getStyleForStatusColour(statusColour) {
|
|
206
214
|
let result;
|
|
207
215
|
switch (statusColour) {
|
|
@@ -409,7 +417,7 @@ export function getAdaptableToolPanelWidth() {
|
|
|
409
417
|
return getNumericCSSVariableValue(getCSSVariableValue('--ab-cmp-toolpanel__width'), 200);
|
|
410
418
|
}
|
|
411
419
|
export function getSimpleButtonPaddingWidth() {
|
|
412
|
-
return getNumericCSSVariableValue(getCSSVariableValue('--ab-space
|
|
420
|
+
return getNumericCSSVariableValue(getCSSVariableValue('--ab-base-space'), 4);
|
|
413
421
|
}
|
|
414
422
|
export function getCSSVariableValue(cssVariable) {
|
|
415
423
|
if (!isBrowserDocumentAvailable()) {
|
|
@@ -449,6 +457,7 @@ export const UIHelper = {
|
|
|
449
457
|
getGlyphForMessageType,
|
|
450
458
|
getStyleForMessageType,
|
|
451
459
|
getMessageTypeFromAdaptableAlerts,
|
|
460
|
+
getCSSColorByMessageType,
|
|
452
461
|
getButtonColourForAdaptableAlerts,
|
|
453
462
|
getButtonTextColourForArrayandMessageType,
|
|
454
463
|
getButtonTextColourForMessageType,
|
package/src/agGrid/Adaptable.js
CHANGED
|
@@ -5,6 +5,7 @@ import { AdaptableAgGrid } from './AdaptableAgGrid';
|
|
|
5
5
|
import { getDefaultAdaptableOptions } from '../AdaptableOptions/DefaultAdaptableOptions';
|
|
6
6
|
import { renderReactRoot as defaultRenderReactRoot } from '../renderReactRoot';
|
|
7
7
|
import AdaptableWizardView from '../View/AdaptableWizardView';
|
|
8
|
+
import { resolveContainerElement } from '../Utilities/resolveContainerElement';
|
|
8
9
|
export class Adaptable {
|
|
9
10
|
/**
|
|
10
11
|
* Initializer for Adaptable
|
|
@@ -21,6 +22,10 @@ export class Adaptable {
|
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
export class AdaptableNoCodeWizard {
|
|
25
|
+
init;
|
|
26
|
+
adaptableOptions;
|
|
27
|
+
extraOptions;
|
|
28
|
+
agGridModules;
|
|
24
29
|
/**
|
|
25
30
|
* @param adaptableOptions
|
|
26
31
|
*/
|
|
@@ -35,19 +40,18 @@ export class AdaptableNoCodeWizard {
|
|
|
35
40
|
this.render();
|
|
36
41
|
}
|
|
37
42
|
render(container) {
|
|
38
|
-
let id = getDefaultAdaptableOptions().containerOptions.adaptableContainer || 'adaptable';
|
|
39
43
|
if (!container) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
const initContext = {
|
|
45
|
+
adaptableId: this.adaptableOptions?.adaptableId ?? '',
|
|
46
|
+
adaptableStateKey: this.adaptableOptions?.adaptableStateKey ?? '',
|
|
47
|
+
adaptableContext: this.adaptableOptions?.adaptableContext,
|
|
48
|
+
};
|
|
49
|
+
container = resolveContainerElement(this.adaptableOptions.containerOptions?.adaptableContainer, initContext);
|
|
50
|
+
}
|
|
51
|
+
if (!container) {
|
|
52
|
+
const defaultId = getDefaultAdaptableOptions().containerOptions.adaptableContainer || 'adaptable';
|
|
53
|
+
container = document.getElementById(defaultId);
|
|
49
54
|
}
|
|
50
|
-
container = container || document.getElementById(id);
|
|
51
55
|
if (!container) {
|
|
52
56
|
throw new Error('Cannot find container in which to render Adaptable No Code Wizard');
|
|
53
57
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AdaptableOptions } from '../AdaptableOptions/AdaptableOptions';
|
|
2
|
-
import { ChartRef, Column, GridApi, GridOptions, IRowNode, Module, RowModelType } from 'ag-grid-enterprise';
|
|
2
|
+
import { ChartRef, Column, GridApi, GridOptions, IRowNode, Module, RowModelType, StatusPanelDef } from 'ag-grid-enterprise';
|
|
3
3
|
import { AdaptableLogger } from './AdaptableLogger';
|
|
4
4
|
import { AdaptableApi, DestroyConfig } from '../Api/AdaptableApi';
|
|
5
5
|
import { AdaptableVariant, IAdaptable, NormalizeAdaptableStateOptions } from '../AdaptableInterfaces/IAdaptable';
|
|
@@ -20,7 +20,7 @@ import { Fdc3Service } from '../Utilities/Services/Fdc3Service';
|
|
|
20
20
|
import { AnnotationsService } from '../Utilities/Services/AnnotationsService';
|
|
21
21
|
import { IModuleCollection } from '../Strategy/Interface/IModule';
|
|
22
22
|
import { AgGridMenuAdapter } from './AgGridMenuAdapter';
|
|
23
|
-
import { AdaptableColumn, AdaptableTheme, ChartDefinition, ColumnSort, DataUpdateConfig, GridCell, InFilterValueResult, Layout, SelectedCellInfo, SelectedRowInfo } from '../types';
|
|
23
|
+
import { AdaptableColumn, AdaptableTheme, ChartDefinition, ColumnSort, DataRowConfig, DataUpdateConfig, GridCell, InFilterValueResult, Layout, SelectedCellInfo, SelectedRowInfo } from '../types';
|
|
24
24
|
import { RenderReactRootFn } from '../renderReactRoot';
|
|
25
25
|
import { AgGridOptionsService } from './AgGridOptionsService';
|
|
26
26
|
import { AgGridColumnAdapter } from './AgGridColumnAdapter';
|
|
@@ -119,6 +119,8 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
119
119
|
* Temporary, these are MIGRATION technical debts, and should be removed as soon as possible
|
|
120
120
|
*/
|
|
121
121
|
private adaptableStatusPanelKeys;
|
|
122
|
+
private adaptableStatusPanelDefs;
|
|
123
|
+
hasAdaptableStatusBar: boolean;
|
|
122
124
|
_PRIVATE_adaptableJSXElement: React.JSX.Element;
|
|
123
125
|
private _prevLayout;
|
|
124
126
|
private __prevLayoutForRefresh;
|
|
@@ -163,6 +165,11 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
163
165
|
private refreshInitialSortIfNeeded;
|
|
164
166
|
showQuickFilter(): void;
|
|
165
167
|
hideQuickFilter(): void;
|
|
168
|
+
showAdaptableToolPanel(): void;
|
|
169
|
+
hideAdaptableToolPanel(): void;
|
|
170
|
+
private buildAdaptableToolPanelDef;
|
|
171
|
+
showAdaptableStatusBar(): void;
|
|
172
|
+
hideAdaptableStatusBar(): void;
|
|
166
173
|
private normalizeAdaptableOptions;
|
|
167
174
|
private setInitialGridOptions;
|
|
168
175
|
/**
|
|
@@ -170,6 +177,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
170
177
|
*/
|
|
171
178
|
private initializeAgGrid;
|
|
172
179
|
useRowNodeLookUp(): boolean;
|
|
180
|
+
private buildInitContainerContext;
|
|
173
181
|
getAgGridContainerElement(): HTMLElement | null;
|
|
174
182
|
getAdaptableContainerElement(): HTMLElement;
|
|
175
183
|
refreshSelectedCellsState(): SelectedCellInfo | undefined;
|
|
@@ -257,6 +265,11 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
257
265
|
added: IRowNode[];
|
|
258
266
|
updated: IRowNode[];
|
|
259
267
|
}>;
|
|
268
|
+
manageGridRows(dataRowConfig: DataRowConfig, dataUpdateConfig?: DataUpdateConfig): Promise<{
|
|
269
|
+
addedRows: IRowNode[];
|
|
270
|
+
updatedRows: IRowNode[];
|
|
271
|
+
removedRows: IRowNode[];
|
|
272
|
+
}>;
|
|
260
273
|
deleteRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): Promise<IRowNode[]>;
|
|
261
274
|
getRowNodeForPrimaryKey(primaryKeyValue: any): any;
|
|
262
275
|
hideColumn(columnId: string): void;
|
|
@@ -283,7 +296,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
283
296
|
getGridCellsForColumn(columnId: string, onlyVisibleRows?: boolean): GridCell[] | undefined;
|
|
284
297
|
getRowNodesForPrimaryKeys(primaryKeyValues: any[]): any[];
|
|
285
298
|
getRowNodeByIndex(index: number): IRowNode;
|
|
286
|
-
getAgGridStatusPanels():
|
|
299
|
+
getAgGridStatusPanels(): StatusPanelDef[];
|
|
287
300
|
setDataValue(value: any, column: AdaptableColumn, primaryKeyValue: any, rowNode?: IRowNode): void;
|
|
288
301
|
forAllRowNodesDo(func: (rowNode: IRowNode, rowIndex: number) => void, config?: {
|
|
289
302
|
includeGroupRows?: boolean;
|