@adaptabletools/adaptable 23.0.0-canary.6 → 23.0.0-canary.8
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 +828 -263
- 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 +8 -850
- package/src/AdaptableState/StyledColumnState.js +1 -9
- package/src/AdaptableState/StyledColumns/BadgeStyle.d.ts +143 -0
- package/src/AdaptableState/StyledColumns/BadgeStyle.js +9 -0
- package/src/AdaptableState/StyledColumns/BulletChartStyle.d.ts +147 -0
- package/src/AdaptableState/StyledColumns/Common/BarChartCellText.d.ts +60 -0
- package/src/AdaptableState/StyledColumns/Common/BarChartCellText.js +6 -0
- package/src/AdaptableState/StyledColumns/Common/BarChartMarker.d.ts +24 -0
- package/src/AdaptableState/StyledColumns/Common/BarChartMarker.js +5 -0
- package/src/AdaptableState/StyledColumns/Common/CellTextOptions.d.ts +13 -0
- package/src/AdaptableState/StyledColumns/Common/CellTextOptions.js +6 -0
- package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.d.ts +79 -0
- package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.js +9 -0
- package/src/AdaptableState/StyledColumns/GradientStyle.d.ts +48 -0
- package/src/AdaptableState/StyledColumns/GradientStyle.js +1 -0
- package/src/AdaptableState/StyledColumns/IconStyle.d.ts +158 -0
- package/src/AdaptableState/StyledColumns/IconStyle.js +1 -0
- package/src/AdaptableState/StyledColumns/PercentBarStyle.d.ts +32 -0
- package/src/AdaptableState/StyledColumns/PercentBarStyle.js +1 -0
- package/src/AdaptableState/StyledColumns/RangeBarStyle.d.ts +155 -0
- package/src/AdaptableState/StyledColumns/RangeBarStyle.js +1 -0
- package/src/AdaptableState/StyledColumns/RatingStyle.d.ts +111 -0
- package/src/AdaptableState/StyledColumns/RatingStyle.js +1 -0
- package/src/AdaptableState/StyledColumns/SparklineStyle.d.ts +21 -0
- package/src/AdaptableState/StyledColumns/SparklineStyle.js +1 -0
- package/src/Api/ColumnScopeApi.d.ts +1 -1
- package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +1 -1
- 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/Api/Internal/StyledColumnInternalApi.d.ts +3 -1
- 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/IconStylePresets.d.ts +1 -1
- 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.d.ts +3 -1
- package/src/Utilities/Helpers/StyledColumnGradientHelper.js +7 -5
- package/src/Utilities/Helpers/barChartCellText.d.ts +63 -0
- package/src/Utilities/Helpers/barChartCellText.js +316 -0
- package/src/Utilities/Helpers/percentBarPreviewHelper.d.ts +2 -1
- package/src/Utilities/Helpers/percentBarPreviewHelper.js +3 -8
- 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 +160 -126
- 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 +4 -5
- 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 +13 -5
- 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 +3 -2
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +7 -6
- package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.d.ts +2 -0
- package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.js +2 -0
- 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.d.ts +1 -0
- package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +9 -9
- package/src/View/Components/ColumnFilter/ColumnFilter.js +16 -4
- 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 +2 -2
- 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 +4 -5
- 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/ExportSchedulesTab.js +3 -4
- 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/Filter/FilterViewPanel.js +1 -1
- 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 +132 -106
- 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 +3 -1
- 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 +143 -119
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +1 -3
- 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 +76 -70
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +83 -38
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +173 -76
- 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/Components/BarChartCellTextLayoutEditor.d.ts +9 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor.js +35 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextPreview.d.ts +23 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextPreview.js +57 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.d.ts +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +3 -2
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +13 -17
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.d.ts +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.js +5 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +2 -2
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +14 -7
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +11 -17
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +27 -58
- 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 +4 -3
- package/src/agGrid/cellRenderers/ActionColumnRenderer.js +4 -7
- package/src/agGrid/cellRenderers/BadgeRenderer.js +7 -5
- package/src/agGrid/cellRenderers/BulletChartRenderer.js +43 -42
- package/src/agGrid/cellRenderers/IconRenderer.d.ts +2 -1
- package/src/agGrid/cellRenderers/IconRenderer.js +13 -11
- package/src/agGrid/cellRenderers/PercentBarRenderer.js +24 -96
- package/src/agGrid/cellRenderers/RangeBarRenderer.js +49 -46
- 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.d.ts +80 -14
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/migration/VersionUpgrade23.d.ts +27 -31
- package/src/migration/VersionUpgrade23.js +110 -29
- package/src/types.d.ts +13 -2
- 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/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
- /package/src/{components/DropdownButton/DropdownButtonItem.js → AdaptableState/StyledColumns/BulletChartStyle.js} +0 -0
|
@@ -4,19 +4,21 @@ 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
|
-
import ArrayExtensions from '../../../Utilities/Extensions/ArrayExtensions';
|
|
14
13
|
import AdaptableInput from '../../Components/AdaptableInput';
|
|
15
14
|
import { Box, Flex } from '../../../components/Flex';
|
|
16
15
|
import { SingleSelect } from '../../../components/NewSelect';
|
|
17
16
|
import { RangeBarRangesSummaryPreview } from './StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview';
|
|
18
17
|
import { StyledColumnRangeBarPreviewCard } from './StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview';
|
|
19
18
|
import { Card } from '../../../components/Card';
|
|
19
|
+
import { renderSummaryStringTags } from '../../Wizard/SummaryColorTag';
|
|
20
|
+
import { formatBarChartCellTextLayoutSummary, getActiveBarChartCellTextTokens, hasBarChartCellTextConfigured, patchBarChartCellTextPlacement, resolveBarChartCellTextLayout, toggleBarChartCellTextToken, } from '../../../Utilities/Helpers/barChartCellText';
|
|
21
|
+
import { BarChartCellTextLayoutEditor } from './StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor';
|
|
20
22
|
const RANGE_STYLE_FORM_SIZES = ['200px', '1fr'];
|
|
21
23
|
const BOUND_MODE_LABELS = {
|
|
22
24
|
Number: 'Fixed Number',
|
|
@@ -46,6 +48,66 @@ const summarizeBound = (bound) => {
|
|
|
46
48
|
}
|
|
47
49
|
return bound;
|
|
48
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* A single joined bound control: a type selector (Fixed Number / Column /
|
|
53
|
+
* Column Min / Max / Average / Median, plus `None` for the optional Reference)
|
|
54
|
+
* joined inline with a contextual editor. Mirrors the Column Comparison bound
|
|
55
|
+
* input so the two read as one block: the select hard-codes `rounded-input`, so
|
|
56
|
+
* the touching corners are flattened directly (important, to beat it) and the
|
|
57
|
+
* shared border overlapped via `-ml-px`.
|
|
58
|
+
*
|
|
59
|
+
* - Fixed Number → editable number input
|
|
60
|
+
* - Column → numeric column selector (excluding the styled column)
|
|
61
|
+
* - Col-* (aggregate) → disabled input showing the resolved value (when a
|
|
62
|
+
* column is in scope), so the user sees the underlying number
|
|
63
|
+
* - None → no editor (selector only)
|
|
64
|
+
*/
|
|
65
|
+
const RangeBarBoundInput = ({ api, value, optional, fallbackNumber, excludeColumnId, resolved, disabled, onChange }) => {
|
|
66
|
+
const mode = getBoundMode(value);
|
|
67
|
+
const handleModeChange = (next) => {
|
|
68
|
+
if (next === mode)
|
|
69
|
+
return;
|
|
70
|
+
if (next === 'None')
|
|
71
|
+
return onChange(undefined);
|
|
72
|
+
if (next === 'Number')
|
|
73
|
+
return onChange(fallbackNumber);
|
|
74
|
+
if (next === 'Column') {
|
|
75
|
+
const candidate = api.columnApi
|
|
76
|
+
.getNumericColumns()
|
|
77
|
+
.find((c) => c.columnId !== excludeColumnId);
|
|
78
|
+
return onChange(candidate?.columnId ?? '');
|
|
79
|
+
}
|
|
80
|
+
// Col-Min / Col-Max / Col-Avg / Col-Median
|
|
81
|
+
return onChange(next);
|
|
82
|
+
};
|
|
83
|
+
const items = [
|
|
84
|
+
...(optional ? [{ value: 'None', label: 'None' }] : []),
|
|
85
|
+
{ value: 'Number', label: BOUND_MODE_LABELS.Number },
|
|
86
|
+
{ value: 'Column', label: BOUND_MODE_LABELS.Column },
|
|
87
|
+
{ value: 'Col-Min', label: BOUND_MODE_LABELS['Col-Min'] },
|
|
88
|
+
{ value: 'Col-Max', label: BOUND_MODE_LABELS['Col-Max'] },
|
|
89
|
+
{ value: 'Col-Avg', label: BOUND_MODE_LABELS['Col-Avg'] },
|
|
90
|
+
{ value: 'Col-Median', label: BOUND_MODE_LABELS['Col-Median'] },
|
|
91
|
+
];
|
|
92
|
+
const hasEditor = mode !== 'None';
|
|
93
|
+
let editor = null;
|
|
94
|
+
if (mode === 'Number') {
|
|
95
|
+
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)) }));
|
|
96
|
+
}
|
|
97
|
+
else if (mode === 'Column') {
|
|
98
|
+
editor = (_jsx(ColumnSelector, { type: "number", disabled: disabled, value: typeof value === 'string' ? value : '', onChange: (columnId) => onChange(columnId), filterColumn: (c) => c.columnId !== excludeColumnId, placeholder: "Select column" }));
|
|
99
|
+
}
|
|
100
|
+
else if (hasEditor) {
|
|
101
|
+
const resolvedValue = resolved[mode];
|
|
102
|
+
editor = (_jsx(AdaptableInput, { className: "twa:w-full", type: "number", disabled: true, readOnly: true, value: resolvedValue ?? '', title: "Computed across the column's visible rows" }));
|
|
103
|
+
}
|
|
104
|
+
const editorWrapperClassName = [
|
|
105
|
+
'twa:flex-1 twa:basis-0 twa:min-w-0 twa:-ml-px',
|
|
106
|
+
'twa:[&_.ab-Input]:w-full twa:[&_.ab-Input]:rounded-l-none!',
|
|
107
|
+
'twa:[&_[data-slot=input-group]]:w-full! twa:[&_[data-slot=input-group]]:rounded-l-none!',
|
|
108
|
+
].join(' ');
|
|
109
|
+
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 })] }));
|
|
110
|
+
};
|
|
49
111
|
const formatRangeBarCellTextSummary = (cellText) => cellText
|
|
50
112
|
?.map((t) => (t === 'CellValue' ? 'Cell Value' : 'Percent Value'))
|
|
51
113
|
.join(' + ') ?? '';
|
|
@@ -61,8 +123,8 @@ export const getStyledColumnRangeBarRangeViewValues = (data) => {
|
|
|
61
123
|
`Min: ${summarizeBound(range.Min)}`,
|
|
62
124
|
`Max: ${summarizeBound(range.Max)}`,
|
|
63
125
|
];
|
|
64
|
-
if (range.Reference != undefined) {
|
|
65
|
-
items.push(`Reference: ${summarizeBound(range.Reference)}`);
|
|
126
|
+
if (range.Reference?.Value != undefined) {
|
|
127
|
+
items.push(`Reference: ${summarizeBound(range.Reference.Value)}`);
|
|
66
128
|
}
|
|
67
129
|
const bandCount = range.CellRanges?.length ?? 0;
|
|
68
130
|
if (bandCount > 0) {
|
|
@@ -76,7 +138,8 @@ export const getStyledColumnRangeBarRangeViewValues = (data) => {
|
|
|
76
138
|
const buildStyledColumnRangeBarDisplaySummaryStrings = (range, options) => {
|
|
77
139
|
const items = [];
|
|
78
140
|
const valueMarker = range.Marker;
|
|
79
|
-
const
|
|
141
|
+
const referenceProperties = range.Reference;
|
|
142
|
+
const referenceMarker = referenceProperties?.Marker;
|
|
80
143
|
items.push(`Value Marker Shape: ${valueMarker?.Shape ?? 'Diamond'}`);
|
|
81
144
|
if (valueMarker?.Color) {
|
|
82
145
|
items.push(`Value Marker Colour: ${valueMarker.Color}`);
|
|
@@ -84,7 +147,7 @@ const buildStyledColumnRangeBarDisplaySummaryStrings = (range, options) => {
|
|
|
84
147
|
if (valueMarker?.Size != null) {
|
|
85
148
|
items.push(`Value Marker Size: ${valueMarker.Size}px`);
|
|
86
149
|
}
|
|
87
|
-
if (
|
|
150
|
+
if (referenceProperties?.Value != undefined) {
|
|
88
151
|
items.push(`Reference Marker Shape: ${referenceMarker?.Shape ?? 'Line'}`);
|
|
89
152
|
if (referenceMarker?.Color) {
|
|
90
153
|
items.push(`Reference Marker Colour: ${referenceMarker.Color}`);
|
|
@@ -96,25 +159,31 @@ const buildStyledColumnRangeBarDisplaySummaryStrings = (range, options) => {
|
|
|
96
159
|
if (range.Orientation === 'Vertical') {
|
|
97
160
|
items.push('Orientation: Vertical');
|
|
98
161
|
}
|
|
99
|
-
const
|
|
162
|
+
const outOfRangeProperties = range.OutOfRange;
|
|
163
|
+
const outOfRangeMode = outOfRangeProperties?.Mode ?? 'Clamp';
|
|
100
164
|
if (outOfRangeMode !== 'Clamp') {
|
|
101
165
|
items.push(`Out of Range: ${outOfRangeMode}`);
|
|
102
166
|
}
|
|
103
|
-
if (
|
|
104
|
-
items.push(`Out of Range Colour: ${
|
|
167
|
+
if (outOfRangeProperties?.Color) {
|
|
168
|
+
items.push(`Out of Range Colour: ${outOfRangeProperties.Color}`);
|
|
105
169
|
}
|
|
106
|
-
|
|
107
|
-
|
|
170
|
+
const trackProperties = range.Track;
|
|
171
|
+
if (trackProperties?.Color) {
|
|
172
|
+
items.push(`Track Colour: ${trackProperties.Color}`);
|
|
108
173
|
}
|
|
109
|
-
if (
|
|
110
|
-
items.push(`Track Height: ${
|
|
174
|
+
if (trackProperties?.Height != null) {
|
|
175
|
+
items.push(`Track Height: ${trackProperties.Height}px`);
|
|
111
176
|
}
|
|
112
177
|
if (range.BackColor) {
|
|
113
178
|
items.push(`Back Colour: ${range.BackColor}`);
|
|
114
179
|
}
|
|
115
|
-
if (range.
|
|
116
|
-
|
|
117
|
-
items.push(`Cell Text
|
|
180
|
+
if (hasBarChartCellTextConfigured(range.CellTextProperties)) {
|
|
181
|
+
const tokens = getActiveBarChartCellTextTokens(range.CellTextProperties);
|
|
182
|
+
items.push(`Cell Text: ${formatRangeBarCellTextSummary(tokens)}`);
|
|
183
|
+
const layoutSummary = formatBarChartCellTextLayoutSummary(resolveBarChartCellTextLayout(range.CellTextProperties));
|
|
184
|
+
if (layoutSummary) {
|
|
185
|
+
items.push(`Placement: ${layoutSummary}`);
|
|
186
|
+
}
|
|
118
187
|
}
|
|
119
188
|
else if (options.includeEmptyCellText) {
|
|
120
189
|
items.push('Cell Text: None');
|
|
@@ -144,7 +213,7 @@ export const renderStyledColumnRangeBarRangeStepSummary = (data) => {
|
|
|
144
213
|
return _jsx(Tag, { children: "No Styling Defined" });
|
|
145
214
|
}
|
|
146
215
|
const tagItems = getStyledColumnRangeBarRangeViewValues(data);
|
|
147
|
-
return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-2 twa:items-start", children: [
|
|
216
|
+
return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-2 twa:items-start", children: [renderSummaryStringTags(tagItems), _jsx(RangeBarRangesSummaryPreview, { rangeStyle: range })] }));
|
|
148
217
|
};
|
|
149
218
|
export const StyledColumnRangeBarRangeView = ({ data }) => renderStyledColumnRangeBarRangeStepSummary(data);
|
|
150
219
|
/** Summary for the Display wizard step (markers, track, text). */
|
|
@@ -160,7 +229,7 @@ export const renderStyledColumnRangeBarDisplayStepSummary = (data) => {
|
|
|
160
229
|
if (!items.length) {
|
|
161
230
|
return _jsx(Tag, { children: "No Display Defined" });
|
|
162
231
|
}
|
|
163
|
-
return (
|
|
232
|
+
return renderSummaryStringTags(items);
|
|
164
233
|
};
|
|
165
234
|
/**
|
|
166
235
|
* Combined summary for the Styled Columns list row (preview + key facts).
|
|
@@ -260,48 +329,79 @@ export const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
260
329
|
},
|
|
261
330
|
});
|
|
262
331
|
}, [data, range]);
|
|
332
|
+
const updateBackColor = (color) => {
|
|
333
|
+
if (color) {
|
|
334
|
+
update({ BackColor: color });
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
const next = { ...range };
|
|
338
|
+
delete next.BackColor;
|
|
339
|
+
props.onChange({ ...data, RangeBarStyle: next });
|
|
340
|
+
};
|
|
341
|
+
const updateTrackProperties = (patch) => {
|
|
342
|
+
const merged = {
|
|
343
|
+
...range.Track,
|
|
344
|
+
...patch,
|
|
345
|
+
};
|
|
346
|
+
const isEmpty = merged.Color == undefined && merged.Height == undefined;
|
|
347
|
+
update({ Track: isEmpty ? undefined : merged });
|
|
348
|
+
};
|
|
349
|
+
const updateOutOfRangeProperties = (patch) => {
|
|
350
|
+
const merged = {
|
|
351
|
+
...range.OutOfRange,
|
|
352
|
+
...patch,
|
|
353
|
+
};
|
|
354
|
+
// Default mode is `Clamp` with no override colour; drop the wrapper in
|
|
355
|
+
// that case so empty state serialises cleanly.
|
|
356
|
+
const isEmpty = (merged.Mode == undefined || merged.Mode === 'Clamp') && merged.Color == undefined;
|
|
357
|
+
update({ OutOfRange: isEmpty ? undefined : merged });
|
|
358
|
+
};
|
|
359
|
+
const updateReferenceProperties = (patch) => {
|
|
360
|
+
const merged = {
|
|
361
|
+
Value: range.Reference?.Value,
|
|
362
|
+
...range.Reference,
|
|
363
|
+
...patch,
|
|
364
|
+
};
|
|
365
|
+
update({ Reference: merged });
|
|
366
|
+
};
|
|
263
367
|
// -- Bound editors ---------------------------------------------------------
|
|
368
|
+
// Resolved values for the column-wide aggregate bound modes, shown read-only
|
|
369
|
+
// in the bound editor so the user sees the underlying number.
|
|
370
|
+
const resolvedBoundValues = {
|
|
371
|
+
'Col-Min': minMaxRangeValues?.min,
|
|
372
|
+
'Col-Max': minMaxRangeValues?.max,
|
|
373
|
+
'Col-Avg': column ? api.styledColumnApi.internalApi.getAvgValueForNumericColumn(column) : undefined,
|
|
374
|
+
'Col-Median': column
|
|
375
|
+
? api.styledColumnApi.internalApi.getMedianValueForNumericColumn(column)
|
|
376
|
+
: undefined,
|
|
377
|
+
};
|
|
264
378
|
/**
|
|
265
|
-
* Renders
|
|
266
|
-
* Centralised so the three controls stay
|
|
267
|
-
* identical (only the field name differs).
|
|
379
|
+
* Renders one of `Min` / `Max` / `Reference` as a single joined row (type
|
|
380
|
+
* selector + contextual editor). Centralised so the three controls stay
|
|
381
|
+
* visually and behaviourally identical (only the field name differs).
|
|
268
382
|
*/
|
|
269
383
|
const renderBoundEditor = (opts) => {
|
|
270
|
-
const
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
384
|
+
const setBound = (next) => {
|
|
385
|
+
if (opts.field === 'Reference') {
|
|
386
|
+
if (next === undefined) {
|
|
387
|
+
const cleaned = { ...range };
|
|
388
|
+
delete cleaned.Reference;
|
|
389
|
+
props.onChange({ ...data, RangeBarStyle: cleaned });
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
updateReferenceProperties({ Value: next });
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
if (next === undefined) {
|
|
274
396
|
const cleaned = { ...range };
|
|
275
397
|
delete cleaned[opts.field];
|
|
276
398
|
props.onChange({ ...data, RangeBarStyle: cleaned });
|
|
277
399
|
return;
|
|
278
400
|
}
|
|
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
401
|
update({ [opts.field]: next });
|
|
292
402
|
};
|
|
293
|
-
const
|
|
294
|
-
|
|
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" }) }) }))] }));
|
|
403
|
+
const value = opts.field === 'Reference' ? range.Reference?.Value : range[opts.field];
|
|
404
|
+
return (_jsx(FormRow, { label: `${opts.label}:`, children: _jsx(RangeBarBoundInput, { api: api, value: value, optional: opts.optional, fallbackNumber: opts.fallbackNumber, excludeColumnId: data.ColumnId, resolved: resolvedBoundValues, disabled: disabled, onChange: setBound }) }));
|
|
305
405
|
};
|
|
306
406
|
// -- Marker editors --------------------------------------------------------
|
|
307
407
|
const updateValueMarker = (patch) => {
|
|
@@ -314,10 +414,10 @@ export const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
314
414
|
});
|
|
315
415
|
};
|
|
316
416
|
const updateReferenceMarker = (patch) => {
|
|
317
|
-
|
|
318
|
-
|
|
417
|
+
updateReferenceProperties({
|
|
418
|
+
Marker: {
|
|
319
419
|
Shape: 'Line',
|
|
320
|
-
...range.
|
|
420
|
+
...range.Reference?.Marker,
|
|
321
421
|
...patch,
|
|
322
422
|
},
|
|
323
423
|
});
|
|
@@ -329,18 +429,20 @@ export const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
329
429
|
Color: range.Marker?.Color ?? '',
|
|
330
430
|
Size: range.Marker?.Size ?? (range.Marker?.Shape === 'Line' ? 2 : 10),
|
|
331
431
|
};
|
|
432
|
+
const referenceMarkerCfg = range.Reference?.Marker;
|
|
332
433
|
const referenceMarker = {
|
|
333
|
-
Shape:
|
|
334
|
-
Color:
|
|
335
|
-
Size:
|
|
434
|
+
Shape: referenceMarkerCfg?.Shape ?? 'Line',
|
|
435
|
+
Color: referenceMarkerCfg?.Color ?? '',
|
|
436
|
+
Size: referenceMarkerCfg?.Size ?? (referenceMarkerCfg?.Shape === 'Line' ? 2 : 8),
|
|
336
437
|
};
|
|
337
438
|
// -- Cell text -------------------------------------------------------------
|
|
338
|
-
const toggleCellText = (token,
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
439
|
+
const toggleCellText = (token, show) => {
|
|
440
|
+
update(toggleBarChartCellTextToken(range.CellTextProperties, token, show));
|
|
441
|
+
};
|
|
442
|
+
const onCellTextPlacementChange = (token, patch) => {
|
|
443
|
+
update({
|
|
444
|
+
CellTextProperties: patchBarChartCellTextPlacement(range.CellTextProperties, token, patch),
|
|
445
|
+
});
|
|
344
446
|
};
|
|
345
447
|
const toggleToolTipText = (token, checked) => {
|
|
346
448
|
const current = range.ToolTipText ?? [];
|
|
@@ -349,9 +451,6 @@ export const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
349
451
|
: current.filter((t) => t !== token);
|
|
350
452
|
update({ ToolTipText: next });
|
|
351
453
|
};
|
|
352
|
-
const handleCellTextPositionChange = (pos) => {
|
|
353
|
-
update({ CellTextPosition: pos });
|
|
354
|
-
};
|
|
355
454
|
// -------------------------------------------------------------------------
|
|
356
455
|
// Render
|
|
357
456
|
// -------------------------------------------------------------------------
|
|
@@ -360,10 +459,10 @@ export const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
360
459
|
? 'You need to select a column before styling.'
|
|
361
460
|
: `Column "${data.ColumnId}" was not found in the grid.` }) }));
|
|
362
461
|
}
|
|
363
|
-
const hasReference = range.Reference != undefined;
|
|
364
|
-
const outOfRangeMode = range.
|
|
462
|
+
const hasReference = range.Reference?.Value != undefined;
|
|
463
|
+
const outOfRangeMode = range.OutOfRange?.Mode ?? 'Clamp';
|
|
365
464
|
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
|
|
465
|
+
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
466
|
label: 'Min',
|
|
368
467
|
field: 'Min',
|
|
369
468
|
optional: false,
|
|
@@ -383,15 +482,13 @@ export const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
383
482
|
: '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
483
|
{ value: 'Horizontal', label: 'Horizontal' },
|
|
385
484
|
{ 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:
|
|
387
|
-
|
|
388
|
-
}), placeholder: "4" }) }) }), _jsx(FormRow, { label: `Back ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children:
|
|
485
|
+
] }) }) }), 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.Track?.Color, defaultColor: getGraySwatchColor(), onChange: (c) => updateTrackProperties({ Color: 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.Track?.Height ?? '', onChange: (e) => updateTrackProperties({
|
|
486
|
+
Height: e.target.value === '' ? undefined : Number(e.target.value),
|
|
487
|
+
}), 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) => updateBackColor(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) => updateOutOfRangeProperties({
|
|
488
|
+
Mode: v,
|
|
489
|
+
}), items: [
|
|
389
490
|
{ value: 'Clamp', label: 'Clamp to edge' },
|
|
390
491
|
{ value: 'Overflow', label: 'Show outside' },
|
|
391
492
|
{ value: 'Hide', label: 'Hide marker' },
|
|
392
|
-
] }) }) }), outOfRangeMode === 'Clamp' && (_jsx(FormRow, { label: `Out-of-range ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children:
|
|
393
|
-
{ label: 'Above Bar', onClick: () => handleCellTextPositionChange('Above') },
|
|
394
|
-
{ label: 'Below Bar', onClick: () => handleCellTextPositionChange('Below') },
|
|
395
|
-
{ label: 'Merged', onClick: () => handleCellTextPositionChange('Merged') },
|
|
396
|
-
], children: range.CellTextPosition ?? 'Below' }) }), _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 })] }))] }));
|
|
493
|
+
] }) }) }), outOfRangeMode === 'Clamp' && (_jsx(FormRow, { label: `Out-of-range ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: _jsx(OptionalColorPicker, { disabled: disabled, api: api, value: range.OutOfRange?.Color, defaultColor: "crimson", onChange: (c) => updateOutOfRangeProperties({ Color: 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: [_jsx(FormRow, { label: "Cell Text Layout:", children: _jsx(BarChartCellTextLayoutEditor, { disabled: disabled, cellTextProperties: range.CellTextProperties, onToggle: toggleCellText, onPlacementChange: onCellTextPlacementChange }) }), _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
494
|
};
|
|
@@ -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
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { BarChartCellTextPlacement, BarChartCellTextProperties } from '../../../../../AdaptableState/StyledColumns/Common/BarChartCellText';
|
|
3
|
+
import { CellTextOption } from '../../../../../AdaptableState/StyledColumns/Common/CellTextOptions';
|
|
4
|
+
export declare const BarChartCellTextLayoutEditor: React.FunctionComponent<{
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
cellTextProperties?: BarChartCellTextProperties;
|
|
7
|
+
onToggle: (token: CellTextOption, show: boolean) => void;
|
|
8
|
+
onPlacementChange: (token: CellTextOption, patch: Partial<BarChartCellTextPlacement>) => void;
|
|
9
|
+
}>;
|