@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
|
@@ -4,12 +4,12 @@ import { CheckBox } from '../../../components/CheckBox';
|
|
|
4
4
|
import ErrorBox from '../../../components/ErrorBox';
|
|
5
5
|
import FormLayout, { FormRow } from '../../../components/FormLayout';
|
|
6
6
|
import { Tag } from '../../../components/Tag';
|
|
7
|
-
import {
|
|
7
|
+
import { InputGroup } from '../../../components/InputGroup';
|
|
8
|
+
import { ColorPicker, OptionalColorPicker } from '../../../components/ColorPicker';
|
|
8
9
|
import { RangesComponent } from '../../Components/RangesComponent';
|
|
9
10
|
import { ColumnSelector } from '../../Components/Selectors/ColumnSelector';
|
|
10
11
|
import { getGraySwatchColor } from '../../UIHelper';
|
|
11
12
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
12
|
-
import DropdownButton from '../../../components/DropdownButton';
|
|
13
13
|
import ArrayExtensions from '../../../Utilities/Extensions/ArrayExtensions';
|
|
14
14
|
import AdaptableInput from '../../Components/AdaptableInput';
|
|
15
15
|
import { Box, Flex } from '../../../components/Flex';
|
|
@@ -17,6 +17,7 @@ import { SingleSelect } from '../../../components/NewSelect';
|
|
|
17
17
|
import { RangeBarRangesSummaryPreview } from './StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview';
|
|
18
18
|
import { StyledColumnRangeBarPreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview';
|
|
19
19
|
import { Card } from '../../../components/Card';
|
|
20
|
+
import { renderSummaryStringTags } from '../../Wizard/SummaryColorTag';
|
|
20
21
|
const RANGE_STYLE_FORM_SIZES = ['200px', '1fr'];
|
|
21
22
|
const BOUND_MODE_LABELS = {
|
|
22
23
|
Number: 'Fixed Number',
|
|
@@ -46,6 +47,66 @@ const summarizeBound = (bound) => {
|
|
|
46
47
|
}
|
|
47
48
|
return bound;
|
|
48
49
|
};
|
|
50
|
+
/**
|
|
51
|
+
* A single joined bound control: a type selector (Fixed Number / Column /
|
|
52
|
+
* Column Min / Max / Average / Median, plus `None` for the optional Reference)
|
|
53
|
+
* joined inline with a contextual editor. Mirrors the Column Comparison bound
|
|
54
|
+
* input so the two read as one block: the select hard-codes `rounded-input`, so
|
|
55
|
+
* the touching corners are flattened directly (important, to beat it) and the
|
|
56
|
+
* shared border overlapped via `-ml-px`.
|
|
57
|
+
*
|
|
58
|
+
* - Fixed Number → editable number input
|
|
59
|
+
* - Column → numeric column selector (excluding the styled column)
|
|
60
|
+
* - Col-* (aggregate) → disabled input showing the resolved value (when a
|
|
61
|
+
* column is in scope), so the user sees the underlying number
|
|
62
|
+
* - None → no editor (selector only)
|
|
63
|
+
*/
|
|
64
|
+
const RangeBarBoundInput = ({ api, value, optional, fallbackNumber, excludeColumnId, resolved, disabled, onChange }) => {
|
|
65
|
+
const mode = getBoundMode(value);
|
|
66
|
+
const handleModeChange = (next) => {
|
|
67
|
+
if (next === mode)
|
|
68
|
+
return;
|
|
69
|
+
if (next === 'None')
|
|
70
|
+
return onChange(undefined);
|
|
71
|
+
if (next === 'Number')
|
|
72
|
+
return onChange(fallbackNumber);
|
|
73
|
+
if (next === 'Column') {
|
|
74
|
+
const candidate = api.columnApi
|
|
75
|
+
.getNumericColumns()
|
|
76
|
+
.find((c) => c.columnId !== excludeColumnId);
|
|
77
|
+
return onChange(candidate?.columnId ?? '');
|
|
78
|
+
}
|
|
79
|
+
// Col-Min / Col-Max / Col-Avg / Col-Median
|
|
80
|
+
return onChange(next);
|
|
81
|
+
};
|
|
82
|
+
const items = [
|
|
83
|
+
...(optional ? [{ value: 'None', label: 'None' }] : []),
|
|
84
|
+
{ value: 'Number', label: BOUND_MODE_LABELS.Number },
|
|
85
|
+
{ value: 'Column', label: BOUND_MODE_LABELS.Column },
|
|
86
|
+
{ value: 'Col-Min', label: BOUND_MODE_LABELS['Col-Min'] },
|
|
87
|
+
{ value: 'Col-Max', label: BOUND_MODE_LABELS['Col-Max'] },
|
|
88
|
+
{ value: 'Col-Avg', label: BOUND_MODE_LABELS['Col-Avg'] },
|
|
89
|
+
{ value: 'Col-Median', label: BOUND_MODE_LABELS['Col-Median'] },
|
|
90
|
+
];
|
|
91
|
+
const hasEditor = mode !== 'None';
|
|
92
|
+
let editor = null;
|
|
93
|
+
if (mode === 'Number') {
|
|
94
|
+
editor = (_jsx(AdaptableInput, { className: "twa:w-full", type: "number", disabled: disabled, value: typeof value === 'number' ? value : '', onChange: (e) => onChange(e.target.value === '' ? 0 : Number(e.target.value)) }));
|
|
95
|
+
}
|
|
96
|
+
else if (mode === 'Column') {
|
|
97
|
+
editor = (_jsx(ColumnSelector, { type: "number", disabled: disabled, value: typeof value === 'string' ? value : '', onChange: (columnId) => onChange(columnId), filterColumn: (c) => c.columnId !== excludeColumnId, placeholder: "Select column" }));
|
|
98
|
+
}
|
|
99
|
+
else if (hasEditor) {
|
|
100
|
+
const resolvedValue = resolved[mode];
|
|
101
|
+
editor = (_jsx(AdaptableInput, { className: "twa:w-full", type: "number", disabled: true, readOnly: true, value: resolvedValue ?? '', title: "Computed across the column's visible rows" }));
|
|
102
|
+
}
|
|
103
|
+
const editorWrapperClassName = [
|
|
104
|
+
'twa:flex-1 twa:basis-0 twa:min-w-0 twa:-ml-px',
|
|
105
|
+
'twa:[&_.ab-Input]:w-full twa:[&_.ab-Input]:rounded-l-none!',
|
|
106
|
+
'twa:[&_[data-slot=input-group]]:w-full! twa:[&_[data-slot=input-group]]:rounded-l-none!',
|
|
107
|
+
].join(' ');
|
|
108
|
+
return (_jsxs(InputGroup, { Component: Flex, className: "twa:items-stretch twa:max-w-[22rem]", children: [_jsx(SingleSelect, { className: `twa:w-[150px] twa:max-w-none twa:shrink-0 twa:box-border${hasEditor ? ' twa:rounded-r-none!' : ''}`, disabled: disabled, value: mode, items: items, onValueChange: (v) => handleModeChange(v) }), hasEditor && _jsx(Box, { className: editorWrapperClassName, children: editor })] }));
|
|
109
|
+
};
|
|
49
110
|
const formatRangeBarCellTextSummary = (cellText) => cellText
|
|
50
111
|
?.map((t) => (t === 'CellValue' ? 'Cell Value' : 'Percent Value'))
|
|
51
112
|
.join(' + ') ?? '';
|
|
@@ -144,7 +205,7 @@ export const renderStyledColumnRangeBarRangeStepSummary = (data) => {
|
|
|
144
205
|
return _jsx(Tag, { children: "No Styling Defined" });
|
|
145
206
|
}
|
|
146
207
|
const tagItems = getStyledColumnRangeBarRangeViewValues(data);
|
|
147
|
-
return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-2 twa:items-start", children: [
|
|
208
|
+
return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-2 twa:items-start", children: [renderSummaryStringTags(tagItems), _jsx(RangeBarRangesSummaryPreview, { rangeStyle: range })] }));
|
|
148
209
|
};
|
|
149
210
|
export const StyledColumnRangeBarRangeView = ({ data }) => renderStyledColumnRangeBarRangeStepSummary(data);
|
|
150
211
|
/** Summary for the Display wizard step (markers, track, text). */
|
|
@@ -160,7 +221,7 @@ export const renderStyledColumnRangeBarDisplayStepSummary = (data) => {
|
|
|
160
221
|
if (!items.length) {
|
|
161
222
|
return _jsx(Tag, { children: "No Display Defined" });
|
|
162
223
|
}
|
|
163
|
-
return (
|
|
224
|
+
return renderSummaryStringTags(items);
|
|
164
225
|
};
|
|
165
226
|
/**
|
|
166
227
|
* Combined summary for the Styled Columns list row (preview + key facts).
|
|
@@ -260,48 +321,42 @@ export const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
260
321
|
},
|
|
261
322
|
});
|
|
262
323
|
}, [data, range]);
|
|
324
|
+
const updateOptionalColor = (key, color) => {
|
|
325
|
+
if (color) {
|
|
326
|
+
update({ [key]: color });
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
const next = { ...range };
|
|
330
|
+
delete next[key];
|
|
331
|
+
props.onChange({ ...data, RangeBarStyle: next });
|
|
332
|
+
};
|
|
263
333
|
// -- Bound editors ---------------------------------------------------------
|
|
334
|
+
// Resolved values for the column-wide aggregate bound modes, shown read-only
|
|
335
|
+
// in the bound editor so the user sees the underlying number.
|
|
336
|
+
const resolvedBoundValues = {
|
|
337
|
+
'Col-Min': minMaxRangeValues?.min,
|
|
338
|
+
'Col-Max': minMaxRangeValues?.max,
|
|
339
|
+
'Col-Avg': column ? api.styledColumnApi.internalApi.getAvgValueForNumericColumn(column) : undefined,
|
|
340
|
+
'Col-Median': column
|
|
341
|
+
? api.styledColumnApi.internalApi.getMedianValueForNumericColumn(column)
|
|
342
|
+
: undefined,
|
|
343
|
+
};
|
|
264
344
|
/**
|
|
265
|
-
* Renders
|
|
266
|
-
* Centralised so the three controls stay
|
|
267
|
-
* identical (only the field name differs).
|
|
345
|
+
* Renders one of `Min` / `Max` / `Reference` as a single joined row (type
|
|
346
|
+
* selector + contextual editor). Centralised so the three controls stay
|
|
347
|
+
* visually and behaviourally identical (only the field name differs).
|
|
268
348
|
*/
|
|
269
349
|
const renderBoundEditor = (opts) => {
|
|
270
|
-
const
|
|
271
|
-
|
|
272
|
-
const handleModeChange = (next) => {
|
|
273
|
-
if (next === 'None') {
|
|
350
|
+
const setBound = (next) => {
|
|
351
|
+
if (next === undefined) {
|
|
274
352
|
const cleaned = { ...range };
|
|
275
353
|
delete cleaned[opts.field];
|
|
276
354
|
props.onChange({ ...data, RangeBarStyle: cleaned });
|
|
277
355
|
return;
|
|
278
356
|
}
|
|
279
|
-
if (next === 'Number') {
|
|
280
|
-
update({ [opts.field]: opts.fallbackNumber });
|
|
281
|
-
return;
|
|
282
|
-
}
|
|
283
|
-
if (next === 'Column') {
|
|
284
|
-
const candidate = api.columnApi
|
|
285
|
-
.getNumericColumns()
|
|
286
|
-
.find((c) => c.columnId !== data.ColumnId);
|
|
287
|
-
update({ [opts.field]: candidate?.columnId ?? '' });
|
|
288
|
-
return;
|
|
289
|
-
}
|
|
290
|
-
// Col-Min / Col-Max / Col-Avg / Col-Median
|
|
291
357
|
update({ [opts.field]: next });
|
|
292
358
|
};
|
|
293
|
-
|
|
294
|
-
...(opts.optional ? [{ value: 'None', label: 'None' }] : []),
|
|
295
|
-
{ value: 'Number', label: BOUND_MODE_LABELS.Number },
|
|
296
|
-
{ value: 'Column', label: BOUND_MODE_LABELS.Column },
|
|
297
|
-
{ value: 'Col-Min', label: BOUND_MODE_LABELS['Col-Min'] },
|
|
298
|
-
{ value: 'Col-Max', label: BOUND_MODE_LABELS['Col-Max'] },
|
|
299
|
-
{ value: 'Col-Avg', label: BOUND_MODE_LABELS['Col-Avg'] },
|
|
300
|
-
{ value: 'Col-Median', label: BOUND_MODE_LABELS['Col-Median'] },
|
|
301
|
-
];
|
|
302
|
-
return (_jsxs(_Fragment, { children: [_jsx(FormRow, { label: `${opts.label}:`, children: _jsx(Box, { className: "twa:max-w-[180px]", children: _jsx(SingleSelect, { className: "twa:w-full", value: mode, onValueChange: (v) => handleModeChange(v), items: items }) }) }), mode === 'Number' && (_jsx(FormRow, { label: `${opts.label} Value:`, children: _jsx(Box, { className: "twa:max-w-[160px]", children: _jsx(AdaptableInput, { type: "number", value: typeof value === 'number' ? value : '', onChange: (e) => update({
|
|
303
|
-
[opts.field]: e.target.value === '' ? 0 : Number(e.target.value),
|
|
304
|
-
}) }) }) })), mode === 'Column' && (_jsx(FormRow, { label: `${opts.label} Column:`, children: _jsx(Box, { className: "twa:max-w-[220px]", children: _jsx(ColumnSelector, { type: "number", value: typeof value === 'string' ? value : '', onChange: (columnId) => update({ [opts.field]: columnId }), filterColumn: (c) => c.columnId !== data.ColumnId, placeholder: "Select numeric column" }) }) }))] }));
|
|
359
|
+
return (_jsx(FormRow, { label: `${opts.label}:`, children: _jsx(RangeBarBoundInput, { api: api, value: range[opts.field], optional: opts.optional, fallbackNumber: opts.fallbackNumber, excludeColumnId: data.ColumnId, resolved: resolvedBoundValues, disabled: disabled, onChange: setBound }) }));
|
|
305
360
|
};
|
|
306
361
|
// -- Marker editors --------------------------------------------------------
|
|
307
362
|
const updateValueMarker = (patch) => {
|
|
@@ -363,7 +418,7 @@ export const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
363
418
|
const hasReference = range.Reference != undefined;
|
|
364
419
|
const outOfRangeMode = range.OutOfRangeMode ?? 'Clamp';
|
|
365
420
|
const isRangeVariant = props.variant === 'range';
|
|
366
|
-
return (_jsxs(Box, { children: [isRangeVariant && (_jsxs(_Fragment, { children: [_jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Bounds" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Set
|
|
421
|
+
return (_jsxs(Box, { children: [isRangeVariant && (_jsxs(_Fragment, { children: [_jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Bounds" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Set each row's track scale. A bound can be a fixed number, another column's value (read per row), or a column-wide aggregate (min, max, average, median). Reference is an optional second marker." })] }), _jsx(Card.Body, { children: _jsxs(FormLayout, { sizes: [...RANGE_STYLE_FORM_SIZES], children: [renderBoundEditor({
|
|
367
422
|
label: 'Min',
|
|
368
423
|
field: 'Min',
|
|
369
424
|
optional: false,
|
|
@@ -383,15 +438,15 @@ export const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
383
438
|
: 'Optional second marker when a Reference bound is set on the Style step.' })] }), _jsx(Card.Body, { children: hasReference ? (_jsxs(FormLayout, { sizes: [...RANGE_STYLE_FORM_SIZES], children: [_jsx(FormRow, { label: "Shape:", children: _jsx(Box, { className: "twa:max-w-[160px]", children: _jsx(SingleSelect, { className: "twa:w-full", value: referenceMarker.Shape, onValueChange: (s) => updateReferenceMarker({ Shape: s }), items: MARKER_SHAPES.map((s) => ({ value: s.value, label: s.label })) }) }) }), _jsx(FormRow, { label: `${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: _jsx(ColorPicker, { disabled: disabled, api: api, value: referenceMarker.Color || undefined, onChange: (c) => updateReferenceMarker({ Color: c }) }) }), _jsx(FormRow, { label: "Size:", children: _jsx(Box, { className: "twa:max-w-[100px]", children: _jsx(AdaptableInput, { type: "number", min: 1, value: referenceMarker.Size, onChange: (e) => updateReferenceMarker({ Size: Number(e.target.value) }) }) }) })] })) : (_jsx(Box, { className: "twa:text-xs twa:opacity-60 twa:max-w-[520px]", children: "Add a Reference value on the Style step (Bounds section) to enable this marker (e.g. previous close, target, midpoint)." })) })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Track" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "The line representing the [Min, Max] interval, plus optional cell background." })] }), _jsx(Card.Body, { children: _jsxs(FormLayout, { sizes: [...RANGE_STYLE_FORM_SIZES], children: [_jsx(FormRow, { label: "Orientation:", children: _jsx(Box, { className: "twa:max-w-[160px]", children: _jsx(SingleSelect, { className: "twa:w-full", value: range.Orientation ?? 'Horizontal', onValueChange: (v) => update({ Orientation: v }), items: [
|
|
384
439
|
{ value: 'Horizontal', label: 'Horizontal' },
|
|
385
440
|
{ value: 'Vertical', label: 'Vertical' },
|
|
386
|
-
] }) }) }), range.Orientation === 'Vertical' && (_jsx(FormRow, { label: "", children: _jsxs(Box, { className: "twa:text-xs twa:text-neutral-500 twa:max-w-[520px]", children: ["Tip: vertical Range Bars need a tall row height to be readable (we recommend at least 60px). Set ", _jsx("code", { children: "rowHeight" }), " on ", _jsx("code", { children: " gridOptions " }), " or use ", _jsx("code", { children: "getRowHeight" }), "."] }) })), _jsx(FormRow, { label: `Track ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children:
|
|
441
|
+
] }) }) }), range.Orientation === 'Vertical' && (_jsx(FormRow, { label: "", children: _jsxs(Box, { className: "twa:text-xs twa:text-neutral-500 twa:max-w-[520px]", children: ["Tip: vertical Range Bars need a tall row height to be readable (we recommend at least 60px). Set ", _jsx("code", { children: "rowHeight" }), " on ", _jsx("code", { children: " gridOptions " }), " or use ", _jsx("code", { children: "getRowHeight" }), "."] }) })), _jsx(FormRow, { label: `Track ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: _jsx(OptionalColorPicker, { disabled: disabled, api: api, value: range.TrackColor, defaultColor: getGraySwatchColor(), onChange: (c) => updateOptionalColor('TrackColor', c) }) }), _jsx(FormRow, { label: range.Orientation === 'Vertical' ? 'Track Width (px):' : 'Track Height (px):', children: _jsx(Box, { className: "twa:max-w-[100px]", children: _jsx(AdaptableInput, { type: "number", min: 1, value: range.TrackHeight ?? '', onChange: (e) => update({
|
|
387
442
|
TrackHeight: e.target.value === '' ? undefined : Number(e.target.value),
|
|
388
|
-
}), placeholder: "4" }) }) }), _jsx(FormRow, { label: `Back ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children:
|
|
443
|
+
}), placeholder: "4" }) }) }), _jsx(FormRow, { label: `Back ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: _jsx(OptionalColorPicker, { disabled: disabled, api: api, value: range.BackColor ?? undefined, defaultColor: getGraySwatchColor(), onChange: (c) => updateOptionalColor('BackColor', c) }) })] }) })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Out of Range" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "How to draw the value marker when the cell value falls outside [Min, Max]." })] }), _jsx(Card.Body, { children: _jsxs(FormLayout, { sizes: [...RANGE_STYLE_FORM_SIZES], children: [_jsx(FormRow, { label: "Behaviour:", children: _jsx(Box, { className: "twa:max-w-[160px]", children: _jsx(SingleSelect, { className: "twa:w-full", value: outOfRangeMode, onValueChange: (v) => update({ OutOfRangeMode: v }), items: [
|
|
389
444
|
{ value: 'Clamp', label: 'Clamp to edge' },
|
|
390
445
|
{ value: 'Overflow', label: 'Show outside' },
|
|
391
446
|
{ value: 'Hide', label: 'Hide marker' },
|
|
392
|
-
] }) }) }), outOfRangeMode === 'Clamp' && (_jsx(FormRow, { label: `Out-of-range ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children:
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
447
|
+
] }) }) }), outOfRangeMode === 'Clamp' && (_jsx(FormRow, { label: `Out-of-range ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: _jsx(OptionalColorPicker, { disabled: disabled, api: api, value: range.OutOfRangeColor, defaultColor: "crimson", onChange: (c) => updateOptionalColor('OutOfRangeColor', c) }) }))] }) })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Text & Tooltip" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Optional cell-text overlay and AG Grid tooltip content." })] }), _jsx(Card.Body, { children: _jsxs(FormLayout, { sizes: [...RANGE_STYLE_FORM_SIZES], children: [_jsxs(FormRow, { label: "Cell Display:", children: [_jsx(CheckBox, { disabled: disabled, checked: range.CellText?.includes('CellValue'), onChange: (checked) => toggleCellText('CellValue', checked), children: "Cell Value" }), ' ', _jsx(CheckBox, { disabled: disabled, className: "twa:ml-3", checked: range.CellText?.includes('PercentageValue'), onChange: (checked) => toggleCellText('PercentageValue', checked), children: "Percent Value" })] }), _jsx(FormRow, { label: "Cell Display Position:", children: _jsx(Box, { className: "twa:max-w-[160px]", children: _jsx(SingleSelect, { className: "twa:w-full", disabled: ArrayExtensions.IsNullOrEmpty(range.CellText) || disabled, value: range.CellTextPosition ?? 'Below', onValueChange: (v) => handleCellTextPositionChange(v), items: [
|
|
448
|
+
{ value: 'Above', label: 'Above Bar' },
|
|
449
|
+
{ value: 'Below', label: 'Below Bar' },
|
|
450
|
+
{ value: 'Merged', label: 'Merged' },
|
|
451
|
+
] }) }) }), _jsxs(FormRow, { label: "Tooltip Display:", children: [_jsx(CheckBox, { disabled: disabled, checked: range.ToolTipText?.includes('CellValue'), onChange: (checked) => toggleToolTipText('CellValue', checked), children: "Cell Value" }), ' ', _jsx(CheckBox, { disabled: disabled, className: "twa:ml-3", checked: range.ToolTipText?.includes('PercentageValue'), onChange: (checked) => toggleToolTipText('PercentageValue', checked), children: "Percent Value" })] })] }) })] }), _jsx(StyledColumnRangeBarPreviewCard, { data: data })] }))] }));
|
|
397
452
|
};
|
|
@@ -10,6 +10,7 @@ import { SingleSelect } from '../../../components/NewSelect';
|
|
|
10
10
|
import Input from '../../../components/Input';
|
|
11
11
|
import { getCellBoxStyleSummaryItems, StyledColumnCellStyleEditor, } from './StyledColumnSliceStyleEditors';
|
|
12
12
|
import { Card } from '../../../components/Card';
|
|
13
|
+
import { renderSummaryStringTags } from '../../Wizard/SummaryColorTag';
|
|
13
14
|
import { DEFAULT_RATING_GAP, DEFAULT_RATING_ICON, DEFAULT_RATING_MAX, DEFAULT_RATING_SIZE, StyledColumnRatingPreviewCard, } from './StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview';
|
|
14
15
|
const STYLE_FORM_SIZES = ['200px', '1fr'];
|
|
15
16
|
const ICON_CHOICES = [
|
|
@@ -113,7 +114,7 @@ export const renderStyledColumnRatingSummary = (data) => {
|
|
|
113
114
|
const items = buildStyledColumnRatingStyleSummaryStrings(rating, {
|
|
114
115
|
includeEmptyTooltip: true,
|
|
115
116
|
});
|
|
116
|
-
return (
|
|
117
|
+
return renderSummaryStringTags(items);
|
|
117
118
|
};
|
|
118
119
|
export const isValidRatingStyle = (data) => {
|
|
119
120
|
const rating = data.RatingStyle;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { StyledColumn } from '../../../AdaptableState/StyledColumnState';
|
|
3
3
|
import type { AdaptableApi } from '../../../types';
|
|
4
|
-
export declare const renderStyledColumnScopeSummary: (data: StyledColumn) => React.JSX.Element;
|
|
4
|
+
export declare const renderStyledColumnScopeSummary: (data: StyledColumn, api: AdaptableApi) => React.JSX.Element;
|
|
5
5
|
/** Used by the styled column list view (one-line "Rows: Data, Group, …"). */
|
|
6
6
|
export declare const collectIncludedRowKindLabels: (styledColumn: StyledColumn) => string[];
|
|
7
7
|
export declare const isValidStyledColumnScope: (data: StyledColumn, api: AdaptableApi) => true | string;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { Tag } from '../../../components/Tag';
|
|
3
|
+
import { ColumnTag, Tag } from '../../../components/Tag';
|
|
4
4
|
import { NewColumnSelector } from '../../Components/ColumnSelector';
|
|
5
5
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
6
6
|
import { Box, Flex } from '../../../components/Flex';
|
|
7
|
-
import { AdaptableFormControlTextClear } from '../../Components/Forms/AdaptableFormControlTextClear';
|
|
8
|
-
import FormLayout, { FormRow } from '../../../components/FormLayout';
|
|
9
7
|
import { CheckBox } from '../../../components/CheckBox';
|
|
8
|
+
import { cn } from '../../../lib/utils';
|
|
10
9
|
import { getStyledColumnRowKindDisabledReason, isStyledColumnRowKindSupported, sanitizeStyledColumnRowScope, STYLED_COLUMN_ROW_KIND_EXCLUDE_KEY, STYLED_COLUMN_ROW_KINDS, } from '../../../Utilities/Helpers/styledColumnRowKindSupport';
|
|
11
10
|
import { isUnsupportedColumnDataTypeForIconStyle } from '../../../Utilities/Helpers/iconStyledColumnColumnSupport';
|
|
11
|
+
import { CollapsibleWizardCard, CollapsibleWizardValueSummary, getWizardAccordionSectionClassName, renderCompactColumnTags, useWizardCardAccordion, } from '../../Wizard/CollapsibleWizardCard';
|
|
12
12
|
// ---------------------------------------------------------------------------
|
|
13
13
|
// Row-kind helpers
|
|
14
14
|
// ---------------------------------------------------------------------------
|
|
@@ -24,10 +24,10 @@ import { isUnsupportedColumnDataTypeForIconStyle } from '../../../Utilities/Help
|
|
|
24
24
|
* (e.g. Sparkline → data rows only).
|
|
25
25
|
*/
|
|
26
26
|
const ROW_KIND_LABELS = {
|
|
27
|
-
Data: 'Data (leaf)
|
|
28
|
-
Group: 'Group
|
|
29
|
-
Summary: 'Summary
|
|
30
|
-
Total: 'Total
|
|
27
|
+
Data: 'Data (leaf) Rows',
|
|
28
|
+
Group: 'Group Rows',
|
|
29
|
+
Summary: 'Summary Rows',
|
|
30
|
+
Total: 'Total Rows',
|
|
31
31
|
};
|
|
32
32
|
const defaultRowKindIncluded = (styledColumn, kind) => {
|
|
33
33
|
if (styledColumn.BadgeStyle) {
|
|
@@ -36,22 +36,14 @@ const defaultRowKindIncluded = (styledColumn, kind) => {
|
|
|
36
36
|
if (!isStyledColumnRowKindSupported(styledColumn, kind)) {
|
|
37
37
|
return false;
|
|
38
38
|
}
|
|
39
|
-
// Non-Badge default: leaf rows only.
|
|
40
39
|
return kind !== 'Group';
|
|
41
40
|
};
|
|
42
|
-
/**
|
|
43
|
-
* Resolve "is this row kind included?" using:
|
|
44
|
-
* - Type capabilities (unsupported kinds are never included).
|
|
45
|
-
* - Explicit `RowScope[Exclude*]` flag when set.
|
|
46
|
-
* - Per-type default otherwise.
|
|
47
|
-
*/
|
|
48
41
|
const isRowKindIncluded = (styledColumn, kind) => {
|
|
49
42
|
if (!isStyledColumnRowKindSupported(styledColumn, kind)) {
|
|
50
43
|
return false;
|
|
51
44
|
}
|
|
52
45
|
const scope = styledColumn.RowScope;
|
|
53
46
|
if (scope) {
|
|
54
|
-
// Missing flags default to "include" — same semantics as FormatColumn.
|
|
55
47
|
return !scope[STYLED_COLUMN_ROW_KIND_EXCLUDE_KEY[kind]];
|
|
56
48
|
}
|
|
57
49
|
return defaultRowKindIncluded(styledColumn, kind);
|
|
@@ -62,8 +54,7 @@ const collectIncludedRowKinds = (styledColumn) => {
|
|
|
62
54
|
// ---------------------------------------------------------------------------
|
|
63
55
|
// Summary
|
|
64
56
|
// ---------------------------------------------------------------------------
|
|
65
|
-
export const renderStyledColumnScopeSummary = (data) => {
|
|
66
|
-
const { api } = useOnePageAdaptableWizardContext();
|
|
57
|
+
export const renderStyledColumnScopeSummary = (data, api) => {
|
|
67
58
|
const includedKinds = collectIncludedRowKinds(data);
|
|
68
59
|
const allKinds = includedKinds.length === 4;
|
|
69
60
|
return (_jsxs(Box, { className: "twa:pr-2 twa:py-2", children: [_jsxs(Box, { className: "twa:mt-1", children: ["Column:", ' ', _jsx(Tag, { children: data.ColumnId
|
|
@@ -72,6 +63,15 @@ export const renderStyledColumnScopeSummary = (data) => {
|
|
|
72
63
|
};
|
|
73
64
|
/** Used by the styled column list view (one-line "Rows: Data, Group, …"). */
|
|
74
65
|
export const collectIncludedRowKindLabels = (styledColumn) => collectIncludedRowKinds(styledColumn);
|
|
66
|
+
const StyledColumnColumnScopeSummary = ({ data, }) => {
|
|
67
|
+
const { api } = useOnePageAdaptableWizardContext();
|
|
68
|
+
return (_jsx(CollapsibleWizardValueSummary, { value: data.ColumnId ? (_jsx(ColumnTag, { children: api.columnApi.getFriendlyNameForColumnId(data.ColumnId) })) : (_jsx(Tag, { children: "No column selected" })) }));
|
|
69
|
+
};
|
|
70
|
+
const StyledColumnRowsScopeSummary = ({ data, }) => {
|
|
71
|
+
const includedKinds = collectIncludedRowKinds(data);
|
|
72
|
+
const allKinds = includedKinds.length === 4;
|
|
73
|
+
return (_jsx(CollapsibleWizardValueSummary, { value: allKinds ? (_jsx(Tag, { children: "All" })) : includedKinds.length === 0 ? (_jsx(Tag, { children: "None" })) : (_jsx(Flex, { flexWrap: "wrap", className: "twa:gap-1", children: includedKinds.map((kind) => (_jsx(Tag, { children: ROW_KIND_LABELS[kind] }, kind))) })) }));
|
|
74
|
+
};
|
|
75
75
|
// ---------------------------------------------------------------------------
|
|
76
76
|
// Validity
|
|
77
77
|
// ---------------------------------------------------------------------------
|
|
@@ -88,10 +88,13 @@ export const isValidStyledColumnScope = (data, api) => {
|
|
|
88
88
|
}
|
|
89
89
|
return true;
|
|
90
90
|
};
|
|
91
|
+
const StyledColumnRowScopePanel = ({ data, onRowKindChange, }) => (_jsx(Flex, { flexDirection: "column", className: "twa:items-start twa:px-1 twa:py-1", style: { rowGap: 'calc(var(--ab-base-space) * 2)' }, children: STYLED_COLUMN_ROW_KINDS.map((kind) => {
|
|
92
|
+
const supported = isStyledColumnRowKindSupported(data, kind);
|
|
93
|
+
const disabledReason = getStyledColumnRowKindDisabledReason(data, kind);
|
|
94
|
+
return (_jsx(CheckBox, { "data-name": `include-${kind.toLowerCase()}-rows-checkbox`, disabled: !supported, title: disabledReason, checked: isRowKindIncluded(data, kind), onChange: (checked) => onRowKindChange(kind, checked), children: ROW_KIND_LABELS[kind] }, kind));
|
|
95
|
+
}) }));
|
|
91
96
|
export const StyledColumnWizardScopeSection = (props) => {
|
|
92
97
|
const { data, api } = useOnePageAdaptableWizardContext();
|
|
93
|
-
// Strip impossible `RowScope` flags when the styled column type cannot
|
|
94
|
-
// ever target a row kind (e.g. Sparkline → data rows only).
|
|
95
98
|
React.useEffect(() => {
|
|
96
99
|
const next = sanitizeStyledColumnRowScope(data);
|
|
97
100
|
if (!next) {
|
|
@@ -116,8 +119,6 @@ export const StyledColumnWizardScopeSection = (props) => {
|
|
|
116
119
|
data.RowScope?.ExcludeSummaryRows,
|
|
117
120
|
data.RowScope?.ExcludeTotalRows,
|
|
118
121
|
]);
|
|
119
|
-
// Icon Style must not retain an array-typed ColumnId when the user swaps
|
|
120
|
-
// type (or loads invalid state): clear so the picker and validation align.
|
|
121
122
|
React.useEffect(() => {
|
|
122
123
|
if (!data.IconStyle || !data.ColumnId) {
|
|
123
124
|
return;
|
|
@@ -130,9 +131,6 @@ export const StyledColumnWizardScopeSection = (props) => {
|
|
|
130
131
|
});
|
|
131
132
|
}
|
|
132
133
|
}, [data.Uuid, data.IconStyle, data.ColumnId]);
|
|
133
|
-
// -------------------------------------------------------------------------
|
|
134
|
-
// Column picker
|
|
135
|
-
// -------------------------------------------------------------------------
|
|
136
134
|
const sortableCols = React.useMemo(() => {
|
|
137
135
|
let sortableColumns = [];
|
|
138
136
|
if (data.SparklineStyle) {
|
|
@@ -153,7 +151,6 @@ export const StyledColumnWizardScopeSection = (props) => {
|
|
|
153
151
|
];
|
|
154
152
|
}
|
|
155
153
|
else {
|
|
156
|
-
// Gradient / PercentBar / BulletChart / Rating / RangeBar - numeric only.
|
|
157
154
|
sortableColumns = api.columnApi.getNumericColumns();
|
|
158
155
|
}
|
|
159
156
|
const styledColumns = api.styledColumnApi.getStyledColumns();
|
|
@@ -166,7 +163,7 @@ export const StyledColumnWizardScopeSection = (props) => {
|
|
|
166
163
|
})
|
|
167
164
|
.filter(Boolean);
|
|
168
165
|
return sortableColumns.filter((column) => usedColumnIds.every((usedColumnId) => column.columnId !== usedColumnId));
|
|
169
|
-
}, [data]);
|
|
166
|
+
}, [data, api]);
|
|
170
167
|
const handleColumnsChange = (columnIds) => {
|
|
171
168
|
const columnId = columnIds[0];
|
|
172
169
|
const emptyRanges = api.columnScopeApi.createCellColorRangesForScope({
|
|
@@ -196,19 +193,10 @@ export const StyledColumnWizardScopeSection = (props) => {
|
|
|
196
193
|
}
|
|
197
194
|
props.onChange(newStyledColumn);
|
|
198
195
|
};
|
|
199
|
-
const [columnsSearchText, setColumnsSearchText] = React.useState('');
|
|
200
|
-
// -------------------------------------------------------------------------
|
|
201
|
-
// Row-kind toggles
|
|
202
|
-
// -------------------------------------------------------------------------
|
|
203
196
|
const handleRowKindChange = (kind, include) => {
|
|
204
197
|
if (!isStyledColumnRowKindSupported(data, kind)) {
|
|
205
198
|
return;
|
|
206
199
|
}
|
|
207
|
-
// Materialise an explicit RowScope as soon as the user touches a
|
|
208
|
-
// checkbox. We start from the per-type default so any kinds the user
|
|
209
|
-
// didn't touch carry over their historical value (e.g. group rows
|
|
210
|
-
// stay excluded for a Gradient column even after the user toggles
|
|
211
|
-
// summary rows).
|
|
212
200
|
const baseScope = data.RowScope ?? {
|
|
213
201
|
ExcludeDataRows: !defaultRowKindIncluded(data, 'Data'),
|
|
214
202
|
ExcludeGroupRows: !defaultRowKindIncluded(data, 'Group'),
|
|
@@ -224,15 +212,13 @@ export const StyledColumnWizardScopeSection = (props) => {
|
|
|
224
212
|
RowScope: nextScope,
|
|
225
213
|
});
|
|
226
214
|
};
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
return (_jsx(FormRow, { label: `${ROW_KIND_LABELS[kind]}:`, children: _jsx(Flex, { alignItems: "center", className: "twa:ml-2", children: _jsx(CheckBox, { "data-name": `include-${kind.toLowerCase()}-rows-checkbox`, className: "twa:mr-2", disabled: !supported, title: disabledReason, checked: isRowKindIncluded(data, kind), onChange: (checked) => handleRowKindChange(kind, checked) }) }) }, kind));
|
|
237
|
-
}) }) }, groupIndex))) })] })] }));
|
|
215
|
+
const includedRowKinds = collectIncludedRowKinds(data);
|
|
216
|
+
const allRowKindsIncluded = includedRowKinds.length === 4;
|
|
217
|
+
const initialExpandedCardId = data.ColumnId ? null : 'column';
|
|
218
|
+
const { bindCard, hasExpandedCard, expandedFillsSpace } = useWizardCardAccordion(initialExpandedCardId, { fillExpandedCard: true });
|
|
219
|
+
const columnCompactSummary = data.ColumnId
|
|
220
|
+
? renderCompactColumnTags([data.ColumnId], (columnId) => api.columnApi.getFriendlyNameForColumnId(columnId), { emptyLabel: 'No column' })
|
|
221
|
+
: _jsx(Tag, { children: "No column" });
|
|
222
|
+
const rowsCompactSummary = allRowKindsIncluded ? (_jsx(Tag, { children: "All" })) : includedRowKinds.length === 0 ? (_jsx(Tag, { children: "None" })) : (_jsx(Flex, { alignItems: "center", className: "twa:gap-1 twa:min-w-0 twa:overflow-hidden", children: includedRowKinds.map((kind) => (_jsx(Tag, { className: "twa:shrink-0", children: kind }, kind))) }));
|
|
223
|
+
return (_jsxs(Box, { className: cn(getWizardAccordionSectionClassName(hasExpandedCard, expandedFillsSpace), 'twa:p-2'), children: [_jsx(CollapsibleWizardCard, { ...bindCard('column', { fillAvailable: true }), surface: "panel", "data-name": "styled-column-scope-column", title: "Column", help: "Select Column the Style is applied to", collapsedHelp: "Column the Style is applied to", compactSummary: columnCompactSummary, summary: _jsx(StyledColumnColumnScopeSummary, { data: data }), className: "twa:overflow-hidden twa:flex twa:flex-col", bodyClassName: "twa:min-h-[200px] twa:max-h-[420px] twa:overflow-hidden twa:flex twa:flex-col twa:!pt-0 twa:!pb-0 twa:px-1", children: _jsx(Box, { className: "twa:flex-1 twa:min-h-0 twa:overflow-hidden twa:h-full twa:px-1 twa:pb-1 twa:flex twa:flex-col", children: _jsx(NewColumnSelector, { compactColumnList: true, availableColumns: sortableCols, selected: data.ColumnId ? [data.ColumnId] : [], singleSelect: true, onChange: handleColumnsChange, allowReorder: false }) }) }), _jsx(CollapsibleWizardCard, { ...bindCard('rows'), surface: "panel", "data-name": "styled-column-scope-rows", title: "Rows", help: "Select which kinds of Rows the Styled Column will render on", collapsedHelp: "Row kinds the Styled Column renders on", compactSummary: rowsCompactSummary, summary: _jsx(StyledColumnRowsScopeSummary, { data: data }), children: _jsx(StyledColumnRowScopePanel, { data: data, onRowKindChange: handleRowKindChange }) })] }));
|
|
238
224
|
};
|
|
@@ -3,7 +3,7 @@ import { CheckBox } from '../../../../components/CheckBox';
|
|
|
3
3
|
import ErrorBox from '../../../../components/ErrorBox';
|
|
4
4
|
import FormLayout, { FormRow } from '../../../../components/FormLayout';
|
|
5
5
|
import { Tag } from '../../../../components/Tag';
|
|
6
|
-
import {
|
|
6
|
+
import { OptionalColorPicker } from '../../../../components/ColorPicker';
|
|
7
7
|
import { getGraySwatchColor } from '../../../UIHelper';
|
|
8
8
|
import { useOnePageAdaptableWizardContext } from '../../../Wizard/OnePageAdaptableWizard';
|
|
9
9
|
import ArrayExtensions from '../../../../Utilities/Extensions/ArrayExtensions';
|
|
@@ -12,6 +12,7 @@ import Radio, { RadioGroup } from '../../../../components/Radio';
|
|
|
12
12
|
import { Toggle, ToggleGroup } from '../../../../components/Toggle';
|
|
13
13
|
import { getCellFontStyleSummaryItems, StyledColumnFontStyleEditor, } from '../StyledColumnSliceStyleEditors';
|
|
14
14
|
import { Card } from '../../../../components/Card';
|
|
15
|
+
import { renderSummaryStringTags } from '../../../Wizard/SummaryColorTag';
|
|
15
16
|
import { StyledColumnPercentBarPreviewCard } from './Components/StyledColumnPercentBarPreview';
|
|
16
17
|
// Re-export the Ranges section + summary for legacy import paths.
|
|
17
18
|
export { renderStyledColumnRangesSummary, StyledColumnWizardRangesSection, } from './StyledColumnWizardRangesSection';
|
|
@@ -81,7 +82,7 @@ export const renderStyledColumnStyleSummary = (data, _api) => {
|
|
|
81
82
|
includeEmptyCellText: true,
|
|
82
83
|
includeEmptyTooltip: true,
|
|
83
84
|
});
|
|
84
|
-
return (
|
|
85
|
+
return renderSummaryStringTags(items);
|
|
85
86
|
};
|
|
86
87
|
// Legacy wrapper kept for any external consumers; safe no-op here.
|
|
87
88
|
export const renderFormatColumnStyleWizardSummary = (data) => {
|
|
@@ -173,10 +174,14 @@ export const StyledColumnWizardStyleSection = (props) => {
|
|
|
173
174
|
},
|
|
174
175
|
});
|
|
175
176
|
};
|
|
176
|
-
const
|
|
177
|
-
|
|
177
|
+
const onBackColorChange = (color) => {
|
|
178
|
+
if (color) {
|
|
179
|
+
update({ BackColor: color });
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const { BackColor: _removed, ...rest } = pb;
|
|
183
|
+
props.onChange({ ...data, PercentBarStyle: rest });
|
|
178
184
|
};
|
|
179
|
-
const onBackColorChange = (color) => update({ BackColor: color });
|
|
180
185
|
const cellTextDisabled = ArrayExtensions.IsNullOrEmpty(pb.CellText) || disabled;
|
|
181
186
|
const currentAlignment = pb.CellTextAlignment ?? 'Inherit';
|
|
182
187
|
const currentOrigin = typeof pb.Origin === 'number'
|
|
@@ -193,5 +198,5 @@ export const StyledColumnWizardStyleSection = (props) => {
|
|
|
193
198
|
delete cleaned.Font;
|
|
194
199
|
props.onChange({ ...data, PercentBarStyle: cleaned });
|
|
195
200
|
}
|
|
196
|
-
} }) })] })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Cell Style" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Configure Tooltip and Background Colour" })] }), _jsx(Card.Body, { children: _jsxs(FormLayout, { sizes: [...STYLE_FORM_SIZES], children: [_jsxs(FormRow, { label: "Tooltip Display:", children: [_jsx(CheckBox, { disabled: disabled, checked: pb.ToolTipText?.includes('CellValue'), onChange: (checked) => onToolTipTextChanged('CellValue', checked), children: "Cell Value" }), ' ', _jsx(CheckBox, { disabled: disabled, className: "twa:ml-3", checked: pb.ToolTipText?.includes('PercentageValue'), onChange: (checked) => onToolTipTextChanged('PercentageValue', checked), children: "Percent Value" })] }), _jsx(FormRow, { label: `Back ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children:
|
|
201
|
+
} }) })] })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Cell Style" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Configure Tooltip and Background Colour" })] }), _jsx(Card.Body, { children: _jsxs(FormLayout, { sizes: [...STYLE_FORM_SIZES], children: [_jsxs(FormRow, { label: "Tooltip Display:", children: [_jsx(CheckBox, { disabled: disabled, checked: pb.ToolTipText?.includes('CellValue'), onChange: (checked) => onToolTipTextChanged('CellValue', checked), children: "Cell Value" }), ' ', _jsx(CheckBox, { disabled: disabled, className: "twa:ml-3", checked: pb.ToolTipText?.includes('PercentageValue'), onChange: (checked) => onToolTipTextChanged('PercentageValue', checked), children: "Percent Value" })] }), _jsx(FormRow, { label: `Back ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: _jsx(OptionalColorPicker, { disabled: disabled, api: api, value: pb.BackColor ?? undefined, defaultColor: getGraySwatchColor(), onChange: onBackColorChange }) })] }) })] }), _jsx(StyledColumnPercentBarPreviewCard, { data: data })] }));
|
|
197
202
|
};
|