@adaptabletools/adaptable 23.0.0-canary.6 → 23.0.0-canary.7
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/icons/sort-asc.svg +1 -1
- package/index.css +755 -256
- package/package.json +1 -1
- package/src/AdaptableOptions/DataSetOptions.d.ts +26 -2
- package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -1
- package/src/AdaptableOptions/SettingsPanelOptions.d.ts +42 -10
- package/src/AdaptableState/Common/AdaptableFormat.d.ts +7 -0
- package/src/AdaptableState/Common/AdaptableMessageType.d.ts +1 -1
- package/src/AdaptableState/Common/Enums.d.ts +1 -1
- package/src/AdaptableState/Common/Enums.js +1 -1
- package/src/AdaptableState/StyledColumnState.d.ts +2 -2
- package/src/Api/Internal/AlertInternalApi.js +1 -1
- package/src/Api/Internal/DataSetInternalApi.d.ts +3 -0
- package/src/Api/Internal/DataSetInternalApi.js +73 -13
- package/src/Redux/Store/AdaptableStore.js +6 -4
- package/src/Strategy/CalculatedColumnModule.js +1 -0
- package/src/Strategy/ColumnFilterModule.js +1 -0
- package/src/Strategy/FlashingCellModule.js +6 -2
- package/src/Strategy/FormatColumnModule.js +2 -2
- package/src/Strategy/FreeTextColumnModule.js +38 -28
- package/src/Strategy/Interface/IModule.d.ts +3 -1
- package/src/Strategy/LayoutModule.js +15 -66
- package/src/Strategy/StyledColumnModule.js +12 -29
- package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.d.ts +1 -0
- package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.js +1 -0
- package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +2 -0
- package/src/Strategy/Utilities/Export/getExportColumnsViewItems.js +14 -0
- package/src/Strategy/Utilities/Export/getExportRowsViewItems.d.ts +1 -0
- package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +3 -0
- package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.d.ts +11 -0
- package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.js +105 -0
- package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.d.ts +48 -0
- package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +166 -0
- package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.d.ts +1 -0
- package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +1 -0
- package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.d.ts +26 -0
- package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.js +85 -0
- package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +3 -5
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +46 -41
- package/src/Utilities/Helpers/FormatHelper.js +3 -0
- package/src/Utilities/Helpers/ScheduleHelper.js +2 -0
- package/src/Utilities/Helpers/StyleHelper.d.ts +18 -0
- package/src/Utilities/Helpers/StyleHelper.js +27 -0
- package/src/Utilities/Helpers/StyledColumnGradientHelper.js +7 -5
- package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +3 -0
- package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +15 -0
- package/src/Utilities/getScopeViewItems.js +2 -0
- package/src/Utilities/wizardSelection.d.ts +10 -0
- package/src/Utilities/wizardSelection.js +15 -0
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +3 -3
- package/src/View/Alert/AlertViewPanel.js +2 -2
- package/src/View/Alert/Utilities/getAlertButtonStyle.js +7 -4
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.d.ts +0 -1
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +0 -4
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +2 -1
- package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertMessageWizardSection.js +1 -2
- package/src/View/Alert/Wizard/AlertNotificationWizardSection.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +3 -4
- package/src/View/Alert/Wizard/AlertScheduledWizardSection.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -2
- package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertTypeWizardSection.js +31 -7
- package/src/View/Alert/Wizard/AlertWizard.js +4 -4
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +2 -1
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +4 -14
- package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
- package/src/View/BulkUpdate/BulkUpdateViewPanel.js +4 -6
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +1 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +1 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +30 -4
- package/src/View/CellSummary/CellSummaryViewPanel.js +4 -4
- package/src/View/Charting/ShowChartButton.js +8 -8
- package/src/View/ColumnInfo/ColumnInfo.js +21 -1
- package/src/View/Components/AdaptableObjectCollection/index.js +2 -2
- package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +1 -1
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +4 -4
- package/src/View/Components/AdaptableObjectRow/index.js +2 -2
- package/src/View/Components/Buttons/ButtonBase/index.js +2 -3
- package/src/View/Components/Buttons/ButtonNew.d.ts +2 -0
- package/src/View/Components/Buttons/ButtonNew.js +1 -1
- package/src/View/Components/Buttons/EntityListActionButtons.js +3 -3
- package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +2 -2
- package/src/View/Components/ColumnFilter/ColumnFilter.js +2 -3
- package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +2 -2
- package/src/View/Components/ColumnSelector/index.d.ts +12 -0
- package/src/View/Components/ColumnSelector/index.js +30 -6
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +2 -2
- package/src/View/Components/ModuleValueSelector/index.js +2 -1
- package/src/View/Components/NewScopeComponent.js +4 -9
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +5 -4
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +4 -4
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +1 -1
- package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +3 -2
- package/src/View/Components/Popups/AdaptablePopup/Navigation.js +38 -28
- package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +3 -3
- package/src/View/Components/Popups/AdaptablePopup/TopBar.js +2 -2
- package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.d.ts +11 -0
- package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.js +1 -0
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +3 -1
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +25 -27
- package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -1
- package/src/View/Components/RangesComponent.d.ts +2 -4
- package/src/View/Components/RangesComponent.js +95 -66
- package/src/View/Components/ReorderDraggable/index.js +2 -2
- package/src/View/Components/Selectors/BulkUpdateValueSelector.d.ts +0 -2
- package/src/View/Components/Selectors/BulkUpdateValueSelector.js +3 -3
- package/src/View/Components/StyleComponent.js +32 -65
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +10 -7
- package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +3 -13
- package/src/View/Components/ToolPanel/ToolPanelPopup.js +5 -81
- package/src/View/Components/ToolPanel/ToolPanelPopupSections.d.ts +17 -0
- package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +76 -0
- package/src/View/Components/ValueSelector/index.d.ts +29 -0
- package/src/View/Components/ValueSelector/index.js +113 -30
- package/src/View/Components/wizardColumnListStyles.d.ts +10 -0
- package/src/View/Components/wizardColumnListStyles.js +10 -0
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +5 -7
- package/src/View/CustomSort/Wizard/CustomSortWizard.js +2 -2
- package/src/View/Dashboard/DashboardPopup.d.ts +1 -11
- package/src/View/Dashboard/DashboardPopup.js +3 -67
- package/src/View/Dashboard/DashboardPopupSections.d.ts +20 -0
- package/src/View/Dashboard/DashboardPopupSections.js +68 -0
- package/src/View/Dashboard/PinnedToolbarsSelector.js +2 -2
- package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +1 -6
- package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +8 -20
- package/src/View/DataChangeHistory/DataChangeHistoryTable.d.ts +8 -0
- package/src/View/DataChangeHistory/DataChangeHistoryTable.js +94 -0
- package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +5 -3
- package/src/View/DataChangeHistory/buildActionColumnButton.js +30 -39
- package/src/View/DataChangeHistory/dataChangeHistoryHelpers.d.ts +15 -0
- package/src/View/DataChangeHistory/dataChangeHistoryHelpers.js +37 -0
- package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
- package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +32 -19
- package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
- package/src/View/DataSet/DataSetViewPanel.d.ts +2 -2
- package/src/View/Export/ExportDestinationPicker.js +3 -3
- package/src/View/Export/ExportViewPanel.js +2 -2
- package/src/View/Export/Wizard/ReportColumnsWizardSection.d.ts +2 -1
- package/src/View/Export/Wizard/ReportColumnsWizardSection.js +4 -9
- package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +2 -1
- package/src/View/Export/Wizard/ReportRowsWizardSection.js +3 -6
- package/src/View/FlashingCell/FlashingCellStyle.d.ts +4 -2
- package/src/View/FlashingCell/FlashingCellStyle.js +4 -2
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.d.ts +2 -1
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +7 -11
- package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.d.ts +9 -0
- package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.js +5 -0
- package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
- package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +1 -0
- package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +0 -5
- package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +1 -5
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +2 -3
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +99 -42
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +0 -1
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +0 -4
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +56 -15
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +2 -3
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +5 -8
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +8 -13
- package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +3 -2
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -2
- package/src/View/GridFilter/GridFilterPopupUI/index.js +3 -2
- package/src/View/GridFilter/GridFilterViewPanel.js +5 -5
- package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +2 -2
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
- package/src/View/Layout/LayoutViewPanel.js +1 -1
- package/src/View/Layout/Wizard/LayoutWizard.js +24 -28
- package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +13 -1
- package/src/View/Layout/Wizard/sections/AggregationsSection.js +73 -33
- package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +4 -1
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +155 -276
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +4 -1
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +148 -145
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +5 -2
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +24 -12
- package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.d.ts +4 -1
- package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +23 -12
- package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +5 -2
- package/src/View/Layout/Wizard/sections/RowGroupingSection.js +19 -12
- package/src/View/Layout/Wizard/sections/RowSelectionSection.js +8 -4
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +11 -11
- package/src/View/Layout/Wizard/sections/SortSection.d.ts +12 -2
- package/src/View/Layout/Wizard/sections/SortSection.js +41 -17
- package/src/View/Layout/Wizard/sections/columnLayoutCards.d.ts +20 -0
- package/src/View/Layout/Wizard/sections/columnLayoutCards.js +159 -0
- package/src/View/Layout/Wizard/sections/columnLayoutHelpers.d.ts +30 -0
- package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +201 -0
- package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.d.ts +8 -0
- package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.js +63 -0
- package/src/View/Layout/Wizard/sections/layoutWizardColumns.d.ts +11 -0
- package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +52 -0
- package/src/View/License/LicenseWatermark.js +1 -1
- package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.d.ts +1 -1
- package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -2
- package/src/View/Note/NoteEditor.js +2 -2
- package/src/View/QuickSearch/QuickSearchPopup.js +2 -3
- package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
- package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +1 -1
- package/src/View/SmartEdit/SmartEditPopup.js +2 -2
- package/src/View/SmartEdit/SmartEditViewPanel.js +2 -2
- package/src/View/StateManagement/StateManagementPopup.js +1 -1
- package/src/View/StateManagement/components/ExportDropdown.d.ts +2 -2
- package/src/View/StateManagement/components/ExportDropdown.js +12 -12
- package/src/View/StatusBar/StatusBarPanel.js +2 -2
- package/src/View/StatusBar/StatusBarPopup.js +33 -5
- package/src/View/StatusBar/statusBarPanelHelpers.d.ts +2 -0
- package/src/View/StatusBar/statusBarPanelHelpers.js +7 -0
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +2 -0
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +14 -11
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +2 -2
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +137 -119
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +8 -14
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.js +50 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +2 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +26 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +8 -17
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +46 -28
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +98 -43
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.d.ts +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +32 -46
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +11 -6
- package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +94 -7
- package/src/View/UIHelper.d.ts +0 -2
- package/src/View/UIHelper.js +8 -23
- package/src/View/Wizard/CollapsibleWizardCard.d.ts +68 -0
- package/src/View/Wizard/CollapsibleWizardCard.js +81 -0
- package/src/View/Wizard/OnePageWizards.js +6 -6
- package/src/View/Wizard/SummaryColorTag.d.ts +24 -0
- package/src/View/Wizard/SummaryColorTag.js +67 -0
- package/src/View/Wizard/WizardTypeSelection.d.ts +34 -0
- package/src/View/Wizard/WizardTypeSelection.js +31 -0
- package/src/View/Wizard/rowGroupSummaryTags.d.ts +18 -0
- package/src/View/Wizard/rowGroupSummaryTags.js +14 -0
- package/src/View/Wizard/scopeSummaryTags.d.ts +6 -0
- package/src/View/Wizard/scopeSummaryTags.js +33 -0
- package/src/agGrid/AgGridAdapter.js +0 -5
- package/src/agGrid/AgGridColumnAdapter.js +2 -2
- package/src/agGrid/cellRenderers/ActionColumnRenderer.js +4 -7
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -1
- package/src/components/Card/index.js +5 -6
- package/src/components/CheckBox/index.js +2 -3
- package/src/components/CodeBlock/index.js +2 -2
- package/src/components/ColorPicker/ColorPicker.d.ts +1 -0
- package/src/components/ColorPicker/ColorPicker.js +8 -6
- package/src/components/ColorPicker/OptionalColorPicker.d.ts +12 -0
- package/src/components/ColorPicker/OptionalColorPicker.js +26 -0
- package/src/components/ColorPicker/index.d.ts +1 -0
- package/src/components/ColorPicker/index.js +1 -0
- package/src/components/Combobox/comboboxUtils.d.ts +1 -0
- package/src/components/Combobox/index.js +19 -18
- package/src/components/Dashboard/DashboardManager.js +2 -4
- package/src/components/Dialog/index.js +4 -4
- package/src/components/DragAndDropContext/DragAndDropContext.d.ts +5 -0
- package/src/components/DragAndDropContext/DragAndDropContext.js +3 -0
- package/src/components/DragAndDropContext/ModuleManager.d.ts +15 -3
- package/src/components/DragAndDropContext/ModuleManager.js +47 -8
- package/src/components/DragAndDropContext/TabList.d.ts +11 -4
- package/src/components/DragAndDropContext/TabList.js +52 -38
- package/src/components/DragAndDropContext/UnusedPanel.d.ts +4 -3
- package/src/components/DragAndDropContext/UnusedPanel.js +15 -11
- package/src/components/DragAndDropContext/dragScope.d.ts +6 -0
- package/src/components/DragAndDropContext/dragScope.js +26 -0
- package/src/components/DragAndDropContext/types.d.ts +7 -0
- package/src/components/DropdownButton/index.d.ts +33 -25
- package/src/components/DropdownButton/index.js +24 -158
- package/src/components/EmptyContent/index.js +2 -2
- package/src/components/ErrorBox/index.js +2 -2
- package/src/components/ExpressionEditor/BaseEditorInput.js +3 -3
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +3 -3
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +6 -6
- package/src/components/FieldWrap/index.js +2 -2
- package/src/components/Flex.js +2 -2
- package/src/components/FormLayout/index.d.ts +1 -1
- package/src/components/HelpBlock/index.js +3 -3
- package/src/components/IconSelector/IconSelector.d.ts +8 -0
- package/src/components/IconSelector/IconSelector.js +11 -7
- package/src/components/IconSelector/index.d.ts +1 -0
- package/src/components/IconSelector/index.js +1 -0
- package/src/components/Modal/index.js +2 -2
- package/src/components/NewSelect/index.js +11 -1
- package/src/components/Panel/index.js +7 -7
- package/src/components/Radio/index.d.ts +1 -1
- package/src/components/Radio/index.js +8 -6
- package/src/components/SimpleButton/index.js +7 -7
- package/src/components/StylePreview.js +2 -2
- package/src/components/Tabs/index.js +4 -4
- package/src/components/Tag/Tag.d.ts +16 -0
- package/src/components/Tag/Tag.js +14 -4
- package/src/components/Tag/columnScopeTagHelpers.d.ts +8 -0
- package/src/components/Tag/columnScopeTagHelpers.js +6 -0
- package/src/components/Tag/index.d.ts +1 -1
- package/src/components/Tag/index.js +1 -1
- package/src/components/Textarea/index.js +2 -3
- package/src/components/Toggle/Toggle.d.ts +2 -0
- package/src/components/Toggle/Toggle.js +14 -7
- package/src/components/Toggle/ToggleGroup.js +2 -2
- package/src/components/ToggleButton/index.js +4 -4
- package/src/components/Tree/TreeDropdown/index.js +3 -4
- package/src/components/WarningBox/index.js +2 -2
- package/src/components/icons/sort-asc.js +1 -1
- package/src/components/ui/button.d.ts +2 -2
- package/src/components/ui/combobox.d.ts +3 -1
- package/src/components/ui/combobox.js +2 -2
- package/src/components/ui/input-group.d.ts +1 -1
- package/src/components/ui/select.js +3 -2
- package/src/components/ui/textarea.js +1 -1
- package/src/env.js +2 -2
- package/src/layout-manager/src/index.js +7 -3
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +1 -1
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +0 -17
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -290
- package/src/components/DropdownButton/DropdownButtonItem.d.ts +0 -12
- package/src/components/DropdownButton/DropdownButtonItem.js +0 -1
- package/src/components/DropdownButton/renderItem.d.ts +0 -14
- package/src/components/DropdownButton/renderItem.js +0 -11
- package/src/components/DropdownButton/useExpanded.d.ts +0 -24
- package/src/components/DropdownButton/useExpanded.js +0 -56
- package/src/components/NewDropdownButton/index.d.ts +0 -27
- package/src/components/NewDropdownButton/index.js +0 -24
|
@@ -1,42 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
'-',
|
|
35
|
-
'PlusMinus',
|
|
36
|
-
'Shortcut',
|
|
37
|
-
'DataChangeHistory',
|
|
38
|
-
'-',
|
|
39
|
-
'Charting',
|
|
40
|
-
'TeamSharing',
|
|
41
|
-
'StateManagement',
|
|
1
|
+
export const DEFAULT_SETTINGS_PANEL_NAVIGATION_GROUPS = [
|
|
2
|
+
{
|
|
3
|
+
label: 'Grid & UI',
|
|
4
|
+
items: ['GridInfo', 'ColumnInfo', 'Dashboard', 'ToolPanel', 'StatusBar', 'Theme'],
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
label: 'Layout',
|
|
8
|
+
items: ['Layout', 'CalculatedColumn', 'CustomSort', 'Charting'],
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
label: 'Formatting',
|
|
12
|
+
items: ['FormatColumn', 'StyledColumn', 'FlashingCell'],
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
label: 'Filtering & Search',
|
|
16
|
+
items: ['QuickSearch', 'GridFilter', 'ColumnFilter', 'DataSet', 'NamedQuery'],
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
label: 'Notes & Annotations',
|
|
20
|
+
items: ['Alert', 'Note', 'Comment', 'FreeTextColumn', 'SystemStatus'],
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
label: 'Export & Import',
|
|
24
|
+
items: ['Export', 'DataImport'],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
label: 'ֵEditing',
|
|
28
|
+
items: ['PlusMinus', 'Shortcut', 'DataChangeHistory'],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
label: 'Administration',
|
|
32
|
+
items: ['TeamSharing', 'StateManagement'],
|
|
33
|
+
},
|
|
42
34
|
];
|
|
35
|
+
export const buildDefaultSettingsPanelNavigation = (customPanelNames = []) => {
|
|
36
|
+
const groups = DEFAULT_SETTINGS_PANEL_NAVIGATION_GROUPS.map((group) => ({
|
|
37
|
+
label: group.label,
|
|
38
|
+
items: [...group.items],
|
|
39
|
+
}));
|
|
40
|
+
if (customPanelNames.length) {
|
|
41
|
+
groups.push({
|
|
42
|
+
label: 'Custom Panels',
|
|
43
|
+
items: [...customPanelNames],
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return { groups };
|
|
47
|
+
};
|
|
@@ -78,6 +78,9 @@ export function NumberFormatter(input, options = {}, rowNode, column, api) {
|
|
|
78
78
|
if (options.Empty) {
|
|
79
79
|
return ' ';
|
|
80
80
|
}
|
|
81
|
+
if (n === 0 && options.ZeroDisplay !== undefined && options.ZeroDisplay !== '0') {
|
|
82
|
+
return options.ZeroDisplay;
|
|
83
|
+
}
|
|
81
84
|
let s;
|
|
82
85
|
let digitsToUse;
|
|
83
86
|
const fractionsSepatator = options.FractionSeparator ?? '.';
|
|
@@ -187,6 +187,8 @@ export function getScheduleDescription(schedule) {
|
|
|
187
187
|
}
|
|
188
188
|
case 'monthly':
|
|
189
189
|
return `Monthly on day ${dayOfMonth} ${time}`;
|
|
190
|
+
case 'custom':
|
|
191
|
+
return schedule.CronExpression?.trim() || 'Custom Cron';
|
|
190
192
|
default:
|
|
191
193
|
return `${schedule.CronExpression ?? 'Custom'} ${time}`;
|
|
192
194
|
}
|
|
@@ -48,3 +48,21 @@ export declare const toStyle: (style?: AdaptableStyle) => {
|
|
|
48
48
|
borderStyle: string;
|
|
49
49
|
};
|
|
50
50
|
export declare const getVariableColor: (variable: string) => string;
|
|
51
|
+
/**
|
|
52
|
+
* Default surface colour assumed to sit *behind* a semi-transparent cell tint
|
|
53
|
+
* when computing auto-contrast text. Gradient cells paint a base colour at a
|
|
54
|
+
* value-driven alpha, so the colour the user actually perceives is that tint
|
|
55
|
+
* composited over the grid cell background (white in the default light theme).
|
|
56
|
+
*/
|
|
57
|
+
export declare const DEFAULT_CELL_SURFACE_COLOR = "#ffffff";
|
|
58
|
+
/**
|
|
59
|
+
* Picks a readable text colour (near-black or white) for a cell whose
|
|
60
|
+
* background is `baseColor` painted at `alpha` over `surfaceColor`.
|
|
61
|
+
*
|
|
62
|
+
* The tint must be composited over the surface *before* measuring luminance:
|
|
63
|
+
* `tinycolor.getLuminance()` ignores the alpha channel, so measuring the raw
|
|
64
|
+
* base colour would yield the same result for a faint cell and a fully-opaque
|
|
65
|
+
* one — making auto-contrast text identical on every row instead of adapting
|
|
66
|
+
* per cell.
|
|
67
|
+
*/
|
|
68
|
+
export declare const getAutoContrastTextColor: (baseColor: string, alpha: number, surfaceColor?: string) => string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import tinycolor from 'tinycolor2';
|
|
1
2
|
import { EnumExtensions } from '../Extensions/EnumExtensions';
|
|
2
3
|
/**
|
|
3
4
|
* Keys belonging to the "Font" slice (text rendering + alignment).
|
|
@@ -215,3 +216,29 @@ export const getVariableColor = (variable) => {
|
|
|
215
216
|
}
|
|
216
217
|
return getComputedStyle(document.documentElement).getPropertyValue(match[1]).trim();
|
|
217
218
|
};
|
|
219
|
+
/**
|
|
220
|
+
* Default surface colour assumed to sit *behind* a semi-transparent cell tint
|
|
221
|
+
* when computing auto-contrast text. Gradient cells paint a base colour at a
|
|
222
|
+
* value-driven alpha, so the colour the user actually perceives is that tint
|
|
223
|
+
* composited over the grid cell background (white in the default light theme).
|
|
224
|
+
*/
|
|
225
|
+
export const DEFAULT_CELL_SURFACE_COLOR = '#ffffff';
|
|
226
|
+
/**
|
|
227
|
+
* Luminance above which a (composited, opaque) background is considered "light"
|
|
228
|
+
* enough to need dark text.
|
|
229
|
+
*/
|
|
230
|
+
const AUTO_CONTRAST_LUMINANCE_THRESHOLD = 0.45;
|
|
231
|
+
/**
|
|
232
|
+
* Picks a readable text colour (near-black or white) for a cell whose
|
|
233
|
+
* background is `baseColor` painted at `alpha` over `surfaceColor`.
|
|
234
|
+
*
|
|
235
|
+
* The tint must be composited over the surface *before* measuring luminance:
|
|
236
|
+
* `tinycolor.getLuminance()` ignores the alpha channel, so measuring the raw
|
|
237
|
+
* base colour would yield the same result for a faint cell and a fully-opaque
|
|
238
|
+
* one — making auto-contrast text identical on every row instead of adapting
|
|
239
|
+
* per cell.
|
|
240
|
+
*/
|
|
241
|
+
export const getAutoContrastTextColor = (baseColor, alpha, surfaceColor = DEFAULT_CELL_SURFACE_COLOR) => {
|
|
242
|
+
const composited = tinycolor.mix(surfaceColor, baseColor, alpha * 100);
|
|
243
|
+
return composited.getLuminance() > AUTO_CONTRAST_LUMINANCE_THRESHOLD ? '#111111' : '#ffffff';
|
|
244
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import tinycolor from 'tinycolor2';
|
|
2
2
|
import { convertAdaptableStyleToCSS } from './StyleHelper';
|
|
3
|
-
import { getVariableColor } from './StyleHelper';
|
|
3
|
+
import { getAutoContrastTextColor, getVariableColor } from './StyleHelper';
|
|
4
4
|
import clamp from '../utils/clamp';
|
|
5
5
|
/**
|
|
6
6
|
* Default alpha at the **low** end of a Gradient range when `MinAlpha` is unset.
|
|
@@ -129,10 +129,11 @@ const getZeroCentredGradientPreviewCellStyle = (cellValue, gradientStyle) => {
|
|
|
129
129
|
}
|
|
130
130
|
const alpha = Number((lo + t * (hi - lo)).toPrecision(4));
|
|
131
131
|
let style = {};
|
|
132
|
-
const
|
|
132
|
+
const preparedColor = getVariableColor(matchingRange.Color);
|
|
133
|
+
const bg = tinycolor(preparedColor).setAlpha(alpha);
|
|
133
134
|
style.backgroundColor = bg.toRgbString();
|
|
134
135
|
if (gradientStyle.AutoContrastText) {
|
|
135
|
-
style.color =
|
|
136
|
+
style.color = getAutoContrastTextColor(preparedColor, alpha);
|
|
136
137
|
}
|
|
137
138
|
const autoContrastColor = gradientStyle.AutoContrastText && style.color ? style.color : undefined;
|
|
138
139
|
if (gradientStyle.Font) {
|
|
@@ -194,10 +195,11 @@ export const getGradientPreviewCellStyle = (cellValue, styledColumn, api, rowNod
|
|
|
194
195
|
}
|
|
195
196
|
const alpha = Number((lo + t * (hi - lo)).toPrecision(4));
|
|
196
197
|
if (cellBackColor) {
|
|
197
|
-
const
|
|
198
|
+
const preparedColor = getVariableColor(cellBackColor);
|
|
199
|
+
const bg = tinycolor(preparedColor).setAlpha(alpha);
|
|
198
200
|
style.backgroundColor = bg.toRgbString();
|
|
199
201
|
if (gradientStyle.AutoContrastText) {
|
|
200
|
-
style.color =
|
|
202
|
+
style.color = getAutoContrastTextColor(preparedColor, alpha);
|
|
201
203
|
}
|
|
202
204
|
}
|
|
203
205
|
const autoContrastColor = gradientStyle.AutoContrastText && style.color ? style.color : undefined;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AdaptableApi } from '../../Api/AdaptableApi';
|
|
2
|
+
import { SettingsPanelNavigation, SettingsPanelOptions } from '../../AdaptableOptions/SettingsPanelOptions';
|
|
3
|
+
export declare const resolveSettingsPanelNavigation: (api: AdaptableApi, settingsPanelOptions: SettingsPanelOptions) => SettingsPanelNavigation;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { buildDefaultSettingsPanelNavigation } from '../Defaults/DefaultSettingsPanel';
|
|
2
|
+
const cloneSettingsPanelNavigation = (navigation) => ({
|
|
3
|
+
groups: navigation.groups.map((group) => ({
|
|
4
|
+
label: group.label,
|
|
5
|
+
items: [...group.items],
|
|
6
|
+
})),
|
|
7
|
+
});
|
|
8
|
+
export const resolveSettingsPanelNavigation = (api, settingsPanelOptions) => {
|
|
9
|
+
const defaultNavigation = buildDefaultSettingsPanelNavigation(settingsPanelOptions.customSettingsPanels?.map((panel) => panel.name) ?? []);
|
|
10
|
+
if (!settingsPanelOptions.navigation) {
|
|
11
|
+
return defaultNavigation;
|
|
12
|
+
}
|
|
13
|
+
const context = api.internalApi.buildBaseContext();
|
|
14
|
+
return settingsPanelOptions.navigation(context, cloneSettingsPanelNavigation(defaultNavigation));
|
|
15
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import StringExtensions from './Extensions/StringExtensions';
|
|
2
|
+
import { getScopeViewItemsTagVariant } from '../components/Tag/columnScopeTagHelpers';
|
|
2
3
|
export const getScopeViewItems = (scope, api) => {
|
|
3
4
|
let values = [];
|
|
4
5
|
if ('ColumnIds' in scope && Array.isArray(scope.ColumnIds)) {
|
|
@@ -20,5 +21,6 @@ export const getScopeViewItems = (scope, api) => {
|
|
|
20
21
|
label: 'Columns',
|
|
21
22
|
name: 'Target',
|
|
22
23
|
values,
|
|
24
|
+
tagVariant: getScopeViewItemsTagVariant(scope),
|
|
23
25
|
};
|
|
24
26
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SimpleButtonProps } from '../components/SimpleButton';
|
|
2
|
+
/** Selected wizard option — Tailwind overrides SimpleButton outlined defaults. */
|
|
3
|
+
export declare const WIZARD_SELECTION_ACTIVE_CLASSES: string;
|
|
4
|
+
/** Unselected wizard option — muted so the active choice reads immediately. */
|
|
5
|
+
export declare const WIZARD_SELECTION_INACTIVE_CLASSES: string;
|
|
6
|
+
export type CollapsibleWizardCardSurface = 'popup' | 'panel';
|
|
7
|
+
export declare const getCollapsibleWizardCardCollapsedClasses: (surface?: CollapsibleWizardCardSurface) => string;
|
|
8
|
+
export declare const getCollapsibleWizardCardExpandedClasses: (surface?: CollapsibleWizardCardSurface) => string;
|
|
9
|
+
export declare const wizardSelectionButtonClassName: (selected: boolean, className?: string) => string;
|
|
10
|
+
export declare const wizardSelectionSimpleButtonProps: (selected: boolean, className?: string) => Pick<SimpleButtonProps, "variant" | "tone" | "className">;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { cn } from '../lib/utils';
|
|
2
|
+
/** Selected wizard option — Tailwind overrides SimpleButton outlined defaults. */
|
|
3
|
+
export const WIZARD_SELECTION_ACTIVE_CLASSES = cn('ab-WizardSelection--active', 'twa:!border-[var(--ab-cmp-wizard-selection__border)]', 'twa:!bg-[var(--ab-cmp-wizard-selection__background)]', 'twa:!text-accent', 'twa:font-medium');
|
|
4
|
+
/** Unselected wizard option — muted so the active choice reads immediately. */
|
|
5
|
+
export const WIZARD_SELECTION_INACTIVE_CLASSES = cn('twa:!border-[color-mix(in_srgb,var(--ab-color-primarydark)_40%,transparent)]', 'twa:!text-[color-mix(in_srgb,var(--ab-color-foreground)_55%,transparent)]');
|
|
6
|
+
export const getCollapsibleWizardCardCollapsedClasses = (surface = 'popup') => cn(surface === 'panel'
|
|
7
|
+
? 'twa:border-[var(--ab-cmp-collapsible-wizard-card__collapsed-border)] twa:bg-card'
|
|
8
|
+
: 'twa:border-[var(--ab-cmp-collapsible-wizard-card__collapsed-border-popup)]');
|
|
9
|
+
export const getCollapsibleWizardCardExpandedClasses = (surface = 'popup') => cn('ab-CollapsibleWizardCard--expanded', 'twa:border-[var(--ab-cmp-collapsible-wizard-card__expanded-border)]', surface === 'panel' && 'twa:bg-card', 'twa:p-0');
|
|
10
|
+
export const wizardSelectionButtonClassName = (selected, className) => cn('ab-WizardSelection', selected ? WIZARD_SELECTION_ACTIVE_CLASSES : WIZARD_SELECTION_INACTIVE_CLASSES, className);
|
|
11
|
+
export const wizardSelectionSimpleButtonProps = (selected, className) => ({
|
|
12
|
+
variant: 'outlined',
|
|
13
|
+
tone: 'none',
|
|
14
|
+
className: wizardSelectionButtonClassName(selected, className),
|
|
15
|
+
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { CheckBox } from '../../../components/CheckBox';
|
|
4
|
-
import
|
|
4
|
+
import { NewDropdownButton } from '../../../components/DropdownButton';
|
|
5
5
|
import HelpBlock from '../../../components/HelpBlock';
|
|
6
6
|
import Input from '../../../components/Input';
|
|
7
7
|
import StringExtensions from '../../../Utilities/Extensions/StringExtensions';
|
|
@@ -45,7 +45,7 @@ const OptionInput = (props) => {
|
|
|
45
45
|
label: StringExtensions.Humanize(str),
|
|
46
46
|
onClick: () => props.onChange({ ...option, value: str }),
|
|
47
47
|
}));
|
|
48
|
-
input = (_jsx(
|
|
48
|
+
input = (_jsx(NewDropdownButton, { className: "twa:min-w-[200px] twa:mr-2", items: options, children: StringExtensions.Humanize(value) }));
|
|
49
49
|
}
|
|
50
50
|
else {
|
|
51
51
|
switch (option.kind) {
|
package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { CheckBox } from '../../../../components/CheckBox';
|
|
3
|
-
import
|
|
3
|
+
import { NewDropdownButton } from '../../../../components/DropdownButton';
|
|
4
4
|
import FormLayout, { FormRow } from '../../../../components/FormLayout';
|
|
5
5
|
import HelpBlock from '../../../../components/HelpBlock';
|
|
6
6
|
import StringExtensions from '../../../../Utilities/Extensions/StringExtensions';
|
|
@@ -73,7 +73,7 @@ export const UIOptionsSidebarForm = (props) => {
|
|
|
73
73
|
};
|
|
74
74
|
props.onChange(newGridOptions);
|
|
75
75
|
};
|
|
76
|
-
return (_jsxs(Box, { children: [_jsx(HelpBlock, { children: "Tool Panels" }), _jsxs(Box, { className: "twa:m-2", children: [_jsx(Flex, { className: "twa:mb-2", children: ALL_SIDEBAR_OPTIONS.map(renderSidebarCheckbox) }), _jsx(FormLayout, { columns: [{ name: 'label' }, { name: 'children' }], children: _jsx(FormRow, { label: "Position", children: _jsx(
|
|
76
|
+
return (_jsxs(Box, { children: [_jsx(HelpBlock, { children: "Tool Panels" }), _jsxs(Box, { className: "twa:m-2", children: [_jsx(Flex, { className: "twa:mb-2", children: ALL_SIDEBAR_OPTIONS.map(renderSidebarCheckbox) }), _jsx(FormLayout, { columns: [{ name: 'label' }, { name: 'children' }], children: _jsx(FormRow, { label: "Position", children: _jsx(NewDropdownButton, { items: [
|
|
77
77
|
{ label: 'Left', onClick: () => handleSidebarPositionChange('left') },
|
|
78
78
|
{ label: 'Right', onClick: () => handleSidebarPositionChange('right') },
|
|
79
79
|
], children: sidebarPosition === 'left' ? 'Left' : 'Right' }) }) })] })] }));
|
|
@@ -4,8 +4,8 @@ import { ModuleManager } from '../../../../components/DragAndDropContext/ModuleM
|
|
|
4
4
|
import HelpBlock from '../../../../components/HelpBlock';
|
|
5
5
|
import FormLayout, { FormRow } from '../../../../components/FormLayout';
|
|
6
6
|
import Input from '../../../../components/Input';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
7
|
+
import { ButtonNew } from '../../../Components/Buttons/ButtonNew';
|
|
8
|
+
import { NewDropdownButton } from '../../../../components/DropdownButton';
|
|
9
9
|
import { NocodeWizardFormBox } from '../Components/FormBox';
|
|
10
10
|
import { Box } from '../../../../components/Flex';
|
|
11
11
|
export const UIOptionsStatusbarForm = (props) => {
|
|
@@ -91,7 +91,7 @@ export const UIOptionsStatusbarForm = (props) => {
|
|
|
91
91
|
},
|
|
92
92
|
});
|
|
93
93
|
};
|
|
94
|
-
return (_jsxs(Box, { children: [_jsx(HelpBlock, { children: "Status Bar" }), _jsxs(Box, { className: "twa:p-2", children: [_jsxs(NocodeWizardFormBox, { children: [_jsx(Box, { as: "b", children: "Create Adaptable Statusbar Panel" }), _jsxs(FormLayout, { className: "twa:mt-2", children: [_jsx(FormRow, { label: "Panel Name", children: _jsx(Input, { value: adaptablePanelTitle, placeholder: 'Adaptable Panel Name', onChange: (event) => setAdaptablePanelTitle(event.target.value) }) }), _jsx(FormRow, { label: "Align", children: _jsx(
|
|
94
|
+
return (_jsxs(Box, { children: [_jsx(HelpBlock, { children: "Status Bar" }), _jsxs(Box, { className: "twa:p-2", children: [_jsxs(NocodeWizardFormBox, { children: [_jsx(Box, { as: "b", children: "Create Adaptable Statusbar Panel" }), _jsxs(FormLayout, { className: "twa:mt-2", children: [_jsx(FormRow, { label: "Panel Name", children: _jsx(Input, { value: adaptablePanelTitle, placeholder: 'Adaptable Panel Name', onChange: (event) => setAdaptablePanelTitle(event.target.value) }) }), _jsx(FormRow, { label: "Align", children: _jsx(NewDropdownButton, { items: alignOptions, children: alignOptions.find((option) => option.value === adaptablePanelAlign)?.label }) }), _jsxs(FormRow, { label: "", children: [_jsx(ButtonNew, { disabled: !isAdaptablePanelTitleAvailable, onClick: handleNewAdaptablePanel, children: "Add" }), !isAdaptablePanelTitleAvailable && (_jsx(Box, { className: "twa:mt-2 twa:text-destructive", children: "Adaptable panel name must be unique." }))] })] })] }), _jsx(ModuleManager, { permittedActions: {
|
|
95
95
|
createTab: false,
|
|
96
96
|
dragAndDropTab: false,
|
|
97
97
|
deleteTab: false,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { cn } from '../../lib/utils';
|
|
3
4
|
import { connect } from 'react-redux';
|
|
4
5
|
import * as InternalRedux from '../../Redux/ActionsReducers/InternalRedux';
|
|
5
6
|
import { AdaptablePopover } from '../AdaptablePopover';
|
|
@@ -7,7 +8,6 @@ import { getAlertButtonStyle } from './Utilities/getAlertButtonStyle';
|
|
|
7
8
|
import { ActiveAlertsPanel } from './ActiveAlertsPanel';
|
|
8
9
|
import { Flex } from '../../components/Flex';
|
|
9
10
|
import { ButtonClear } from '../Components/Buttons/ButtonClear';
|
|
10
|
-
import clsx from 'clsx';
|
|
11
11
|
class AlertViewPanelComponent extends React.Component {
|
|
12
12
|
constructor(props) {
|
|
13
13
|
super(props);
|
|
@@ -31,7 +31,7 @@ class AlertViewPanelComponent extends React.Component {
|
|
|
31
31
|
const alertsPanel = _jsx(ActiveAlertsPanel, {});
|
|
32
32
|
const isToolbar = this.props.viewType === 'Toolbar';
|
|
33
33
|
const elementType = isToolbar ? 'DashboardToolbar' : 'ToolPanel';
|
|
34
|
-
return (_jsxs(Flex, { alignItems: "stretch", className:
|
|
34
|
+
return (_jsxs(Flex, { alignItems: "stretch", className: cn(`ab-${elementType}__Alert__wrap twa:gap-1`, {
|
|
35
35
|
'twa:min-w-[140px] twa:w-[140px]': isToolbar,
|
|
36
36
|
[`twa:flex-1`]: !isToolbar,
|
|
37
37
|
}), children: [_jsx(Flex, { className: `ab-${elementType}__Alert__text twa:flex-1 twa:rounded-standard twa:p-2 text-2 twa:items-center twa:justify-center twa:min-h-input`, style: { color: buttonTextColor, backgroundColor: buttonBackground }, children: collapsedText }, `${buttonTextColor}_${buttonBackground}_${collapsedText}`), this.props.AdaptableAlerts.length > 0 && (_jsxs(Flex, { className: 'twa:gap-1', children: [_jsx(Flex, { className: "twa:flex twa:box-border", children: _jsx(ButtonClear, { "aria-label": 'Clear All Alerts', variant: 'outlined', className: `ab-${elementType}__Alert__clear`, onClick: () => this.props.onDeleteAllAlert(this.state.Alerts), tooltip: "Clear All Alerts", showText: this.props.viewType === 'ToolPanel', children: 'Clear Alerts' }) }), _jsx(AdaptablePopover, { className: `ab-${elementType}__Alert__info`, headerText: "Alerts Details", bodyText: [alertsPanel], MessageType: 'Info', useButton: true, showEvent: 'focus', hideEvent: "blur", popoverMinWidth: 400 })] }))] }));
|
|
@@ -6,10 +6,13 @@ export const getAlertButtonStyle = (alerts) => {
|
|
|
6
6
|
const buttonTextColor = UIHelper.getButtonTextColourForArrayandMessageType(alerts, messageType);
|
|
7
7
|
let cssClasses = '';
|
|
8
8
|
if (alerts?.length) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
cssClasses =
|
|
10
|
+
{
|
|
11
|
+
Info: `twa:bg-info twa:text-info-foreground`,
|
|
12
|
+
Success: `twa:bg-success twa:text-success-foreground`,
|
|
13
|
+
Warning: `twa:bg-warning twa:text-warning-foreground`,
|
|
14
|
+
Error: `twa:bg-destructive twa:text-destructive-foreground`,
|
|
15
|
+
}[messageType] || '';
|
|
13
16
|
}
|
|
14
17
|
return {
|
|
15
18
|
color: buttonTextColor,
|
|
@@ -2,7 +2,6 @@ import * as React from 'react';
|
|
|
2
2
|
import { AlertDefinition } from '../../../AdaptableState/AlertState';
|
|
3
3
|
import { AdaptableApi } from '../../../types';
|
|
4
4
|
import { AlertType } from '../Utilities/getAlertType';
|
|
5
|
-
export declare const renderAlertBehaviourWizardSummary: (alertDefinition: AlertDefinition) => React.JSX.Element;
|
|
6
5
|
export declare const renderAlertBehaviourSummary: (alert: AlertDefinition, api: AdaptableApi, allowWrap?: boolean) => React.JSX.Element;
|
|
7
6
|
type AlertBehaviourWizardSectionProps = {
|
|
8
7
|
onChange: (data: AlertDefinition) => void;
|
|
@@ -39,10 +39,6 @@ const HighlightStyle = (props) => {
|
|
|
39
39
|
props.onChange(style);
|
|
40
40
|
} }) }) }))] }));
|
|
41
41
|
};
|
|
42
|
-
export const renderAlertBehaviourWizardSummary = (alertDefinition) => {
|
|
43
|
-
const { api } = useOnePageAdaptableWizardContext();
|
|
44
|
-
return renderAlertBehaviourSummary(alertDefinition, api);
|
|
45
|
-
};
|
|
46
42
|
export const renderAlertBehaviourSummary = (alert, api, allowWrap = false) => {
|
|
47
43
|
const { AlertProperties = {} } = alert;
|
|
48
44
|
const ruleProperties = isRuleBasedAlertDefinition(alert)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ButtonNew } from '../../Components/Buttons/ButtonNew';
|
|
2
3
|
import SimpleButton from '../../../components/SimpleButton';
|
|
3
4
|
import Input from '../../../components/Input';
|
|
4
5
|
import FormLayout, { FormRow } from '../../../components/FormLayout';
|
|
@@ -81,7 +82,7 @@ export const AlertButtonsEditor = (props) => {
|
|
|
81
82
|
buttonCommands.push(ch.name);
|
|
82
83
|
});
|
|
83
84
|
}
|
|
84
|
-
return (_jsxs(Box, { className: "twa:mt-3", children: [_jsxs(Flex, { flexDirection: "row", alignItems: "center", justifyContent: "space-between", className: "twa:mb-3", children: [_jsx(Box, { className: "twa:text-2 twa:max-w-[520px]", children: "Add buttons to the notification and set actions to perform when clicked" }), _jsx(
|
|
85
|
+
return (_jsxs(Box, { className: "twa:mt-3", children: [_jsxs(Flex, { flexDirection: "row", alignItems: "center", justifyContent: "space-between", className: "twa:mb-3", children: [_jsx(Box, { className: "twa:text-2 twa:max-w-[520px]", children: "Add buttons to the notification and set actions to perform when clicked" }), _jsx(ButtonNew, { onClick: () => {
|
|
85
86
|
onChange([
|
|
86
87
|
...(AlertButtons || []),
|
|
87
88
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { AlertDefinition } from '../../../AdaptableState/AlertState';
|
|
3
3
|
import { AlertType } from '../Utilities/getAlertType';
|
|
4
|
-
export declare const renderAlertMessageSummary: (alertType
|
|
4
|
+
export declare const renderAlertMessageSummary: (alertType: AlertType | undefined, data: AlertDefinition) => React.JSX.Element;
|
|
5
5
|
type AlertDisplayWizardSectionProps = {
|
|
6
6
|
onChange: (data: AlertDefinition) => void;
|
|
7
7
|
alertType: AlertType;
|
|
@@ -9,8 +9,7 @@ import Textarea from '../../../components/Textarea';
|
|
|
9
9
|
import HelpBlock from '../../../components/HelpBlock';
|
|
10
10
|
import { Box, Flex } from '../../../components/Flex';
|
|
11
11
|
import { Card } from '../../../components/Card';
|
|
12
|
-
export const renderAlertMessageSummary = (alertType) => {
|
|
13
|
-
const { data } = useOnePageAdaptableWizardContext();
|
|
12
|
+
export const renderAlertMessageSummary = (alertType, data) => {
|
|
14
13
|
if (alertType === AlertType.Scheduled) {
|
|
15
14
|
return (_jsxs(_Fragment, { children: [_jsxs(SummaryText, { children: ["Message Type: ", _jsx(Tag, { children: data.MessageType })] }), _jsxs(SummaryText, { children: ["Header: ", _jsx(Tag, { children: data.MessageHeader || 'Not specified' })] }), _jsxs(SummaryText, { children: ["Body: ", _jsx(Tag, { children: data.MessageText || 'Not specified' })] })] }));
|
|
16
15
|
}
|
|
@@ -3,7 +3,7 @@ import { AlertDefinition } from '../../../AdaptableState/AlertState';
|
|
|
3
3
|
import { AdaptableApi } from '../../../types';
|
|
4
4
|
import { AlertType } from '../Utilities/getAlertType';
|
|
5
5
|
import { BoxProps } from '../../../components/Flex';
|
|
6
|
-
export declare const renderAlertNotificationSummary: () => React.JSX.Element;
|
|
6
|
+
export declare const renderAlertNotificationSummary: (data: AlertDefinition, api: AdaptableApi) => React.JSX.Element;
|
|
7
7
|
interface AlertPreviewProps extends BoxProps {
|
|
8
8
|
className?: string;
|
|
9
9
|
style?: React.CSSProperties;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { cn } from '../../../lib/utils';
|
|
3
4
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
4
5
|
import { CheckBox } from '../../../components/CheckBox';
|
|
5
6
|
import { AdaptablePopupAlert } from '../../Components/Popups/AdaptablePopupAlert';
|
|
@@ -8,10 +9,8 @@ import { AlertType } from '../Utilities/getAlertType';
|
|
|
8
9
|
import { isScheduledAlertDefinition, scheduledAlertIncludeSuspendButton, } from '../../../Utilities/Helpers/ScheduledAlertHelper';
|
|
9
10
|
import { resolveAlertFormForDefinition } from '../../../Utilities/Helpers/alertFormHelper';
|
|
10
11
|
import { Box, Flex } from '../../../components/Flex';
|
|
11
|
-
import clsx from 'clsx';
|
|
12
12
|
import { Card } from '../../../components/Card';
|
|
13
|
-
export const renderAlertNotificationSummary = () => {
|
|
14
|
-
const { data, api } = useOnePageAdaptableWizardContext();
|
|
13
|
+
export const renderAlertNotificationSummary = (data, api) => {
|
|
15
14
|
if (!data.AlertProperties?.DisplayNotification) {
|
|
16
15
|
return _jsx(Box, { className: "twa:text-2", children: "No Alert Notification will be displayed" });
|
|
17
16
|
}
|
|
@@ -52,7 +51,7 @@ export const AlertPreview = ({ alertDefinition, api, focusFirstButton, ...boxPro
|
|
|
52
51
|
};
|
|
53
52
|
return result;
|
|
54
53
|
}, [alertDefinition, api, mapButtons]);
|
|
55
|
-
return (_jsx(Box, { ...boxProps, className:
|
|
54
|
+
return (_jsx(Box, { ...boxProps, className: cn('ab-AlertPreview', boxProps.className), style: {
|
|
56
55
|
border: '1px solid var(--ab-color-input-border)',
|
|
57
56
|
...boxProps.style,
|
|
58
57
|
}, children: _jsx(AdaptablePopupAlert, { headless: true, focusFirstButton: focusFirstButton, adaptableAlert: alertToPreview, onClose: () => { } }) }));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { AlertDefinition } from '../../../AdaptableState/AlertState';
|
|
3
3
|
export declare const isScheduledAlertTimeValid: (alert: AlertDefinition) => true | string;
|
|
4
|
-
export declare const renderAlertScheduledSummary: () => React.JSX.Element;
|
|
4
|
+
export declare const renderAlertScheduledSummary: (data: AlertDefinition) => React.JSX.Element;
|
|
5
5
|
type AlertScheduledWizardSectionProps = {
|
|
6
6
|
onChange: (alert: AlertDefinition) => void;
|
|
7
7
|
};
|
|
@@ -12,8 +12,7 @@ export const isScheduledAlertTimeValid = (alert) => {
|
|
|
12
12
|
}
|
|
13
13
|
return isScheduleValid({ Schedule: alert.Schedule });
|
|
14
14
|
};
|
|
15
|
-
export const renderAlertScheduledSummary = () => {
|
|
16
|
-
const { data } = useOnePageAdaptableWizardContext();
|
|
15
|
+
export const renderAlertScheduledSummary = (data) => {
|
|
17
16
|
if (!isScheduledAlertDefinition(data)) {
|
|
18
17
|
return null;
|
|
19
18
|
}
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { AlertType } from '../Utilities/getAlertType';
|
|
3
3
|
import { AdaptableApi, AlertDefinition } from '../../../types';
|
|
4
4
|
export declare const isSettingsValid: (data: AlertDefinition, api: AdaptableApi) => true | "Name is required" | "An Alert already exists with that name";
|
|
5
|
-
export declare const renderAlertTypeSummary: (alertType: AlertType) => React.JSX.Element;
|
|
5
|
+
export declare const renderAlertTypeSummary: (alertType: AlertType, data: AlertDefinition) => React.JSX.Element;
|
|
6
6
|
type AlertTypeWizardSectionProps = {
|
|
7
7
|
onAlertTypeChange: (alertType: AlertType) => void;
|
|
8
8
|
alertType: AlertType | null;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { AlertType, getAlertTypeText } from '../Utilities/getAlertType';
|
|
3
|
-
import { TypeRadio } from '../../Wizard/TypeRadio';
|
|
4
3
|
import { Tag } from '../../../components/Tag';
|
|
5
|
-
import {
|
|
4
|
+
import { Flex } from '../../../components/Flex';
|
|
6
5
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
7
|
-
import Input from '../../../components/Input';
|
|
8
6
|
import { SummaryText } from '../../Wizard/OnePageAdaptableWizard';
|
|
9
|
-
import {
|
|
7
|
+
import { getWizardTypeSelectionGridColumns, WizardNameFieldSection, WizardTypeSelectionCard, WizardTypeSelectionSection, } from '../../Wizard/WizardTypeSelection';
|
|
10
8
|
export const isSettingsValid = (data, api) => {
|
|
11
9
|
if (!data.Name?.trim()) {
|
|
12
10
|
return 'Name is required';
|
|
@@ -18,11 +16,37 @@ export const isSettingsValid = (data, api) => {
|
|
|
18
16
|
}
|
|
19
17
|
return true;
|
|
20
18
|
};
|
|
21
|
-
export const renderAlertTypeSummary = (alertType) => {
|
|
22
|
-
const { data } = useOnePageAdaptableWizardContext();
|
|
19
|
+
export const renderAlertTypeSummary = (alertType, data) => {
|
|
23
20
|
const text = getAlertTypeText(alertType);
|
|
24
21
|
return (_jsxs(_Fragment, { children: [_jsxs(SummaryText, { children: ["Name ", _jsx(Tag, { children: data.Name || 'Not specified' })] }), _jsxs(SummaryText, { children: ["Type ", _jsx(Tag, { children: text })] })] }));
|
|
25
22
|
};
|
|
23
|
+
const ALERT_TYPE_OPTIONS = [
|
|
24
|
+
{
|
|
25
|
+
type: AlertType.DataChange,
|
|
26
|
+
description: "A data change has been made to the Grid's data source",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
type: AlertType.RowChange,
|
|
30
|
+
description: 'A Row has been added or removed from the data source',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
type: AlertType.Aggregation,
|
|
34
|
+
description: 'A change has been made to aggregated data (i.e. from multiple Rows)',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
type: AlertType.Observable,
|
|
38
|
+
description: 'A specified change (or lack of change) over time has been observed in the Grid',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: AlertType.Validation,
|
|
42
|
+
description: "A change made to the Grid's data has broken a validation rule",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: AlertType.Scheduled,
|
|
46
|
+
description: 'A reminder is triggered to display at a specfied date and time',
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
const ALERT_TYPE_COUNT = ALERT_TYPE_OPTIONS.length;
|
|
26
50
|
export const AlertTypeWizardSection = (props) => {
|
|
27
51
|
const { data } = useOnePageAdaptableWizardContext();
|
|
28
52
|
const handleNameChange = (event) => {
|
|
@@ -31,5 +55,5 @@ export const AlertTypeWizardSection = (props) => {
|
|
|
31
55
|
Name: event.target.value,
|
|
32
56
|
});
|
|
33
57
|
};
|
|
34
|
-
return (_jsxs(Flex, { flexDirection: "column", className: "twa:
|
|
58
|
+
return (_jsxs(Flex, { flexDirection: "column", className: "twa:h-full twa:min-h-0 twa:p-2 twa:gap-2", children: [_jsx(WizardNameFieldSection, { value: data.Name ?? '', onChange: handleNameChange, inputDataName: "alert-name" }), _jsx(WizardTypeSelectionSection, { headingId: "alert-type-heading", title: "Alert Type", dataName: "alert-type", columns: getWizardTypeSelectionGridColumns(ALERT_TYPE_COUNT), intro: _jsxs(_Fragment, { children: ["Click a card to choose one of ", ALERT_TYPE_COUNT, " alert types for when the Alert should fire"] }), children: ALERT_TYPE_OPTIONS.map((option) => (_jsx(WizardTypeSelectionCard, { label: getAlertTypeText(option.type), description: option.description, selected: props.alertType === option.type, dataName: `alert-type-${option.type}`, onSelect: () => props.onAlertTypeChange(option.type) }, option.type))) })] }));
|
|
35
59
|
};
|
|
@@ -5,7 +5,7 @@ import { cloneObject } from '../../../Utilities/Helpers/Helper';
|
|
|
5
5
|
import { AlertScopeWizardSection } from './AlertScopeWizardSection';
|
|
6
6
|
import { AlertRulesWizardSection, getRuleStepDescription, renderAlertRulesSummary, } from './AlertRulesWizardSection';
|
|
7
7
|
import { isValidAlertRules } from './isValidAlertRules';
|
|
8
|
-
import { AlertBehaviourWizardSection,
|
|
8
|
+
import { AlertBehaviourWizardSection, renderAlertBehaviourSummary, } from './AlertBehaviourWizardSection';
|
|
9
9
|
import { ALERT_DEFAULT_MESSAGE_TYPE } from '../../../Utilities/Constants/ObjectDefaultConstants';
|
|
10
10
|
import { AlertMessageWizardSection, renderAlertMessageSummary } from './AlertMessageWizardSection';
|
|
11
11
|
import { isValidAlertMessage } from './isValidAlertMessage';
|
|
@@ -83,7 +83,7 @@ export const AlertWizard = (props) => {
|
|
|
83
83
|
isValid: isSettingsValid,
|
|
84
84
|
details: (_jsx(_Fragment, { children: "Enter Name and select and select an Alert Type" })),
|
|
85
85
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(AlertTypeWizardSection, { alertType: alertType, onAlertTypeChange: handleAlertTypeChange, onChange: setAlertDefinition }) })),
|
|
86
|
-
renderSummary: () => renderAlertTypeSummary(alertType),
|
|
86
|
+
renderSummary: (data) => renderAlertTypeSummary(alertType, data),
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
title: 'Schedule',
|
|
@@ -113,7 +113,7 @@ export const AlertWizard = (props) => {
|
|
|
113
113
|
details: "Select the Alert's Message Type and Text",
|
|
114
114
|
isValid: (data) => isValidAlertMessage(data, alertType),
|
|
115
115
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(AlertMessageWizardSection, { alertType: alertType, onChange: setAlertDefinition }) })),
|
|
116
|
-
renderSummary: () => renderAlertMessageSummary(alertType),
|
|
116
|
+
renderSummary: (data) => renderAlertMessageSummary(alertType, data),
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
title: 'Notification',
|
|
@@ -125,7 +125,7 @@ export const AlertWizard = (props) => {
|
|
|
125
125
|
title: behaviourSpelling,
|
|
126
126
|
details: 'Configure ' + behaviourSpelling + 's for the Alert',
|
|
127
127
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(AlertBehaviourWizardSection, { alertType: alertType, onChange: setAlertDefinition }) })),
|
|
128
|
-
renderSummary:
|
|
128
|
+
renderSummary: renderAlertBehaviourSummary,
|
|
129
129
|
},
|
|
130
130
|
{
|
|
131
131
|
details: 'Select Alert Tags',
|