@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
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { resolveBarChartCellTextLayout } from '../../../../../Utilities/Helpers/barChartCellText';
|
|
4
|
+
import { CheckBox } from '../../../../../components/CheckBox';
|
|
5
|
+
import { Box, Flex } from '../../../../../components/Flex';
|
|
6
|
+
import { SingleSelect } from '../../../../../components/NewSelect';
|
|
7
|
+
const TOKEN_LABELS = {
|
|
8
|
+
CellValue: 'Cell Value',
|
|
9
|
+
PercentageValue: 'Percent Value',
|
|
10
|
+
};
|
|
11
|
+
const TOKENS = ['CellValue', 'PercentageValue'];
|
|
12
|
+
const HORIZONTAL_CHOICES = [
|
|
13
|
+
{ value: 'Left', label: 'Left' },
|
|
14
|
+
{ value: 'Center', label: 'Center' },
|
|
15
|
+
{ value: 'Right', label: 'Right' },
|
|
16
|
+
];
|
|
17
|
+
const VERTICAL_CHOICES = [
|
|
18
|
+
{ value: 'Above', label: 'Above Bar' },
|
|
19
|
+
{ value: 'Below', label: 'Below Bar' },
|
|
20
|
+
{ value: 'Merged', label: 'Merged' },
|
|
21
|
+
];
|
|
22
|
+
const tokenKey = (token) => token === 'CellValue' ? 'CellValue' : 'PercentValue';
|
|
23
|
+
export const BarChartCellTextLayoutEditor = ({ disabled, cellTextProperties, onToggle, onPlacementChange }) => {
|
|
24
|
+
const layout = resolveBarChartCellTextLayout(cellTextProperties);
|
|
25
|
+
return (_jsxs(Box, { className: "twa:inline-grid twa:grid-cols-[160px_140px_140px] twa:gap-x-4 twa:gap-y-2 twa:items-center", children: [_jsx(Box, { className: "twa:text-xs twa:font-medium twa:opacity-80", children: "Value" }), _jsx(Box, { className: "twa:text-xs twa:font-medium twa:opacity-80", children: "Horizontal" }), _jsx(Box, { className: "twa:text-xs twa:font-medium twa:opacity-80", children: "Vertical" }), TOKENS.map((token) => {
|
|
26
|
+
const placement = layout[tokenKey(token)];
|
|
27
|
+
const isShown = Boolean(placement);
|
|
28
|
+
const rowDisabled = disabled || !isShown;
|
|
29
|
+
return (_jsxs(React.Fragment, { children: [_jsx(Flex, { alignItems: "center", children: _jsx(CheckBox, { disabled: disabled, checked: isShown, onChange: (checked) => onToggle(token, checked), children: TOKEN_LABELS[token] }) }), _jsx(Box, { children: _jsx(SingleSelect, { className: "twa:w-full", disabled: rowDisabled, value: placement?.Horizontal ?? 'Left', onValueChange: (v) => onPlacementChange(token, {
|
|
30
|
+
Horizontal: v,
|
|
31
|
+
}), items: HORIZONTAL_CHOICES }) }), _jsx(Box, { children: _jsx(SingleSelect, { className: "twa:w-full", disabled: rowDisabled, value: placement?.Vertical ?? 'Below', onValueChange: (v) => onPlacementChange(token, {
|
|
32
|
+
Vertical: v,
|
|
33
|
+
}), items: VERTICAL_CHOICES }) })] }, token));
|
|
34
|
+
})] }));
|
|
35
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { BarChartCellTextProperties } from '../../../../../AdaptableState/StyledColumns/Common/BarChartCellText';
|
|
3
|
+
import { BarChartCellTextLabels } from '../../../../../Utilities/Helpers/barChartCellText';
|
|
4
|
+
/**
|
|
5
|
+
* Preview of the per-value cell-text layout. Renders three potential bands:
|
|
6
|
+
* - `Above` slots (above the bar)
|
|
7
|
+
* - `Merged` slots (overlay on top of the bar — uses `mergedOverlayClassName`)
|
|
8
|
+
* - `Below` slots (below the bar)
|
|
9
|
+
*
|
|
10
|
+
* Each band has three horizontal slots (Left/Center/Right) so the spacing is
|
|
11
|
+
* stable. When `vertical` is provided, only the band matching that value is
|
|
12
|
+
* rendered (used by the preview cards to position bands around the bar).
|
|
13
|
+
*/
|
|
14
|
+
export declare const BarChartCellTextPreview: React.FunctionComponent<{
|
|
15
|
+
className?: string;
|
|
16
|
+
style?: React.CSSProperties;
|
|
17
|
+
cellTextProperties?: BarChartCellTextProperties;
|
|
18
|
+
labels: BarChartCellTextLabels;
|
|
19
|
+
mergedOverlayClassName?: string;
|
|
20
|
+
/** Render only the band matching this vertical position. */
|
|
21
|
+
vertical?: 'Above' | 'Below' | 'Merged';
|
|
22
|
+
}>;
|
|
23
|
+
export declare const shouldShowBarChartCellTextOutsideBar: (cellTextProperties: BarChartCellTextProperties | undefined, hasCellText: boolean) => boolean;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { getBarChartCellTextSlotPresence, hasBarChartCellTextConfigured, resolveBarChartCellTextSlots, } from '../../../../../Utilities/Helpers/barChartCellText';
|
|
3
|
+
import { Box, Flex } from '../../../../../components/Flex';
|
|
4
|
+
const HORIZONTAL_ORDER = ['Left', 'Center', 'Right'];
|
|
5
|
+
const HORIZONTAL_JUSTIFY = {
|
|
6
|
+
Left: 'flex-start',
|
|
7
|
+
Center: 'center',
|
|
8
|
+
Right: 'flex-end',
|
|
9
|
+
};
|
|
10
|
+
const HORIZONTAL_TEXT_ALIGN = {
|
|
11
|
+
Left: 'left',
|
|
12
|
+
Center: 'center',
|
|
13
|
+
Right: 'right',
|
|
14
|
+
};
|
|
15
|
+
const CellTextRow = ({ className, style, slots }) => (_jsx(Flex, { className: className, alignItems: "center", style: { ...style, width: '100%', gap: 4 }, children: HORIZONTAL_ORDER.map((horizontal) => {
|
|
16
|
+
const slot = slots.find((s) => s.horizontal === horizontal);
|
|
17
|
+
return (_jsx(Box, { className: "twa:truncate", style: {
|
|
18
|
+
flex: 1,
|
|
19
|
+
minWidth: 0,
|
|
20
|
+
display: 'flex',
|
|
21
|
+
justifyContent: HORIZONTAL_JUSTIFY[horizontal],
|
|
22
|
+
alignItems: 'center',
|
|
23
|
+
textAlign: HORIZONTAL_TEXT_ALIGN[horizontal],
|
|
24
|
+
}, children: slot?.text ?? '' }, horizontal));
|
|
25
|
+
}) }));
|
|
26
|
+
/**
|
|
27
|
+
* Preview of the per-value cell-text layout. Renders three potential bands:
|
|
28
|
+
* - `Above` slots (above the bar)
|
|
29
|
+
* - `Merged` slots (overlay on top of the bar — uses `mergedOverlayClassName`)
|
|
30
|
+
* - `Below` slots (below the bar)
|
|
31
|
+
*
|
|
32
|
+
* Each band has three horizontal slots (Left/Center/Right) so the spacing is
|
|
33
|
+
* stable. When `vertical` is provided, only the band matching that value is
|
|
34
|
+
* rendered (used by the preview cards to position bands around the bar).
|
|
35
|
+
*/
|
|
36
|
+
export const BarChartCellTextPreview = ({ className, style, cellTextProperties, labels, mergedOverlayClassName, vertical }) => {
|
|
37
|
+
if (!labels.cellValue && !labels.percentage) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const slots = resolveBarChartCellTextSlots(cellTextProperties, labels);
|
|
41
|
+
if (!slots.length) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const bandSlots = vertical ? slots.filter((s) => s.vertical === vertical) : slots;
|
|
45
|
+
if (!bandSlots.length) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
const usedClassName = vertical === 'Merged' ? mergedOverlayClassName ?? className : className;
|
|
49
|
+
return (_jsx(CellTextRow, { className: usedClassName, style: style, slots: bandSlots.map((s) => ({ horizontal: s.horizontal, text: s.text })) }));
|
|
50
|
+
};
|
|
51
|
+
export const shouldShowBarChartCellTextOutsideBar = (cellTextProperties, hasCellText) => {
|
|
52
|
+
if (!hasCellText || !hasBarChartCellTextConfigured(cellTextProperties)) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
const { hasAbove, hasBelow } = getBarChartCellTextSlotPresence(cellTextProperties);
|
|
56
|
+
return hasAbove || hasBelow;
|
|
57
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { BulletChartStyle } from '../../../../../AdaptableState/
|
|
2
|
+
import { BulletChartStyle } from '../../../../../AdaptableState/StyledColumns/BulletChartStyle';
|
|
3
3
|
export declare const BulletRangesSummaryPreview: React.FunctionComponent<{
|
|
4
4
|
bulletStyle: BulletChartStyle;
|
|
5
5
|
}>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { CellColorRange, ColumnComparison,
|
|
2
|
+
import { CellColorRange, ColumnComparison, NumericStyledColumn } from '../../../../../AdaptableState/StyledColumns/Common/NumericStyledColumn';
|
|
3
|
+
import { GradientStyle, GradientZeroCentredColors } from '../../../../../AdaptableState/StyledColumns/GradientStyle';
|
|
3
4
|
import { AdaptableApi } from '../../../../../types';
|
|
4
5
|
export declare function gradientRangeStripCss(color: string, reverseGradient: boolean, minAlpha: number, maxAlpha: number): string;
|
|
5
6
|
export interface GradientRangesSummaryPreviewProps {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { RangeBarStyle } from '../../../../../AdaptableState/
|
|
2
|
+
import { RangeBarStyle } from '../../../../../AdaptableState/StyledColumns/RangeBarStyle';
|
|
3
3
|
export declare const RangeBarRangesSummaryPreview: React.FunctionComponent<{
|
|
4
4
|
rangeStyle: RangeBarStyle;
|
|
5
5
|
}>;
|
|
@@ -51,12 +51,13 @@ export const StyledColumnBadgePreview = ({ data }) => {
|
|
|
51
51
|
: {}),
|
|
52
52
|
};
|
|
53
53
|
return (_jsx(Box, { className: PREVIEW_CELL_CLASS, style: cellStyle, children: _jsx("div", { className: wrapperClassName, style: wrapperStyle, children: badgeStyle.Badges.map((badge, index) => {
|
|
54
|
-
const
|
|
54
|
+
const iconProps = badge.IconProperties;
|
|
55
|
+
const badgeValue = iconProps?.IconOnly
|
|
55
56
|
? ''
|
|
56
57
|
: dataType === 'number'
|
|
57
58
|
? DEFAULT_INTEGER_DISPLAY_VALUE
|
|
58
59
|
: DEFAULT_STRING_DISPLAY_VALUE;
|
|
59
|
-
return (_jsx(Badge, { icon:
|
|
60
|
+
return (_jsx(Badge, { icon: iconProps?.Icon, pillStyle: badge.PillStyle, iconPosition: iconProps?.Position, shape: badge.Shape, density: badgeStyle.Density ?? 'Normal', iconGap: iconProps?.Gap, children: badgeValue }, index));
|
|
60
61
|
}) }) }));
|
|
61
62
|
};
|
|
62
63
|
export const StyledColumnBadgePreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnBadgePreview, { data: data }) })] }));
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
|
|
3
|
+
import { BulletChartStyle } from '../../../../../AdaptableState/StyledColumns/BulletChartStyle';
|
|
3
4
|
export declare const StyledColumnBulletPreview: React.FunctionComponent<React.PropsWithChildren<{
|
|
4
5
|
data: StyledColumn;
|
|
5
6
|
}>>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { convertAdaptableStyleToCSS } from '../../../../../Utilities/Helpers/StyleHelper';
|
|
3
|
+
import { buildBarChartCellTextLabels, getBarChartCellTextSlotPresence, hasBarChartCellTextConfigured, } from '../../../../../Utilities/Helpers/barChartCellText';
|
|
3
4
|
import { Box, Flex } from '../../../../../components/Flex';
|
|
4
5
|
import { Card } from '../../../../../components/Card';
|
|
5
6
|
import { Tag } from '../../../../../components/Tag';
|
|
6
7
|
import { StyledColumnBulletChartListPreview } from './StyledColumnChartListPreviews';
|
|
8
|
+
import { BarChartCellTextPreview } from './BarChartCellTextPreview';
|
|
7
9
|
const PREVIEW_CELL_CLASS = 'ab-BulletPreviewCell twa:inline-flex twa:items-center twa:min-w-[180px] twa:min-h-[36px] twa:px-2 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
|
|
8
10
|
const getBulletPreviewSample = (bullet) => {
|
|
9
11
|
const ranges = bullet.CellRanges ?? [];
|
|
@@ -23,29 +25,23 @@ const getBulletPreviewSample = (bullet) => {
|
|
|
23
25
|
valueFraction: Math.max(0, Math.min(1, valueFraction)),
|
|
24
26
|
};
|
|
25
27
|
};
|
|
26
|
-
const formatBulletPreviewCellText = (sampleValue, valueFraction, bullet) => {
|
|
27
|
-
const parts = [];
|
|
28
|
-
if (bullet.CellText?.includes('CellValue')) {
|
|
29
|
-
parts.push(Number.isInteger(sampleValue) ? String(sampleValue) : sampleValue.toFixed(1));
|
|
30
|
-
}
|
|
31
|
-
if (bullet.CellText?.includes('PercentageValue')) {
|
|
32
|
-
parts.push(`${(valueFraction * 100).toFixed(0)}%`);
|
|
33
|
-
}
|
|
34
|
-
return parts.join(' ');
|
|
35
|
-
};
|
|
36
28
|
const BulletChartPreviewContent = ({ bullet, }) => {
|
|
37
29
|
const { sampleValue, valueFraction } = getBulletPreviewSample(bullet);
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
const
|
|
30
|
+
const cellTextProperties = bullet.CellTextProperties;
|
|
31
|
+
const labels = buildBarChartCellTextLabels(cellTextProperties, Number.isInteger(sampleValue) ? String(sampleValue) : sampleValue.toFixed(1), `${(valueFraction * 100).toFixed(0)}%`);
|
|
32
|
+
const hasCellText = hasBarChartCellTextConfigured(cellTextProperties) &&
|
|
33
|
+
Boolean(labels.cellValue || labels.percentage);
|
|
34
|
+
const presence = getBarChartCellTextSlotPresence(cellTextProperties);
|
|
41
35
|
const fontStyle = bullet.Font ? convertAdaptableStyleToCSS(bullet.Font) : undefined;
|
|
42
36
|
const isVertical = bullet.Orientation === 'Vertical';
|
|
37
|
+
const cellTextClassName = 'ab-BulletChart__text twa:text-2 twa:leading-tight twa:truncate twa:max-w-full';
|
|
43
38
|
const chartEl = _jsx(StyledColumnBulletChartListPreview, { bullet: bullet });
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
// Merged-only with no outside bands → relative container so the overlay sits
|
|
40
|
+
// on top of the chart, matching the runtime renderer's behaviour.
|
|
41
|
+
if (hasCellText && presence.hasMerged && !presence.hasAbove && !presence.hasBelow) {
|
|
42
|
+
return (_jsxs(Box, { className: "ab-BulletChart__wrapper twa:relative twa:inline-flex", children: [chartEl, _jsx(BarChartCellTextPreview, { mergedOverlayClassName: "ab-BulletChart__text twa:absolute twa:inset-x-0 twa:top-1/2 twa:-translate-y-1/2 twa:px-1 twa:text-2 twa:truncate twa:pointer-events-none", style: fontStyle, cellTextProperties: cellTextProperties, labels: labels, vertical: "Merged" })] }));
|
|
47
43
|
}
|
|
48
|
-
return (_jsxs(Flex, { className: "ab-BulletChart__wrapper", flexDirection: "column", alignItems: isVertical ? 'center' : 'stretch', style: { justifyContent: 'center', gap: hasCellText ? 2 : 0 }, children: [hasCellText &&
|
|
44
|
+
return (_jsxs(Flex, { className: "ab-BulletChart__wrapper twa:relative", flexDirection: "column", alignItems: isVertical ? 'center' : 'stretch', style: { justifyContent: 'center', gap: hasCellText ? 2 : 0 }, children: [hasCellText && presence.hasAbove && (_jsx(BarChartCellTextPreview, { className: cellTextClassName, style: fontStyle, cellTextProperties: cellTextProperties, labels: labels, vertical: "Above" })), _jsxs(Box, { className: "twa:relative twa:w-full", style: { display: 'inline-flex' }, children: [chartEl, hasCellText && presence.hasMerged && (_jsx(BarChartCellTextPreview, { mergedOverlayClassName: "ab-BulletChart__text twa:absolute twa:inset-x-0 twa:top-1/2 twa:-translate-y-1/2 twa:px-1 twa:text-2 twa:truncate twa:pointer-events-none", style: fontStyle, cellTextProperties: cellTextProperties, labels: labels, vertical: "Merged" }))] }), hasCellText && presence.hasBelow && (_jsx(BarChartCellTextPreview, { className: cellTextClassName, style: fontStyle, cellTextProperties: cellTextProperties, labels: labels, vertical: "Below" }))] }));
|
|
49
45
|
};
|
|
50
46
|
export const StyledColumnBulletPreview = ({ data }) => {
|
|
51
47
|
const bullet = data.BulletChartStyle;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { BulletChartStyle
|
|
2
|
+
import { BulletChartStyle } from '../../../../../AdaptableState/StyledColumns/BulletChartStyle';
|
|
3
|
+
import { RangeBarStyle } from '../../../../../AdaptableState/StyledColumns/RangeBarStyle';
|
|
3
4
|
/**
|
|
4
5
|
* Compact schematic of a Range Bar (bands + track + value / reference markers)
|
|
5
6
|
* for the Styled Columns object list and wizard step summaries.
|
|
@@ -41,10 +41,10 @@ const DEFAULT_MARKER = 'var(--ab-color-foreground, #333)';
|
|
|
41
41
|
export const StyledColumnRangeBarListPreview = (props) => {
|
|
42
42
|
const { range } = props;
|
|
43
43
|
const segments = bandSegmentsForPreview(range.CellRanges);
|
|
44
|
-
const trackFill = range.
|
|
44
|
+
const trackFill = range.Track?.Color ?? DEFAULT_TRACK;
|
|
45
45
|
const valueColor = range.Marker?.Color || DEFAULT_BAR;
|
|
46
|
-
const refColor = range.
|
|
47
|
-
const hasRef = range.Reference != undefined;
|
|
46
|
+
const refColor = range.Reference?.Marker?.Color || DEFAULT_MARKER;
|
|
47
|
+
const hasRef = range.Reference?.Value != undefined;
|
|
48
48
|
const isVertical = range.Orientation === 'Vertical';
|
|
49
49
|
return (_jsx(Box, { className: "twa:rounded twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_12%,transparent)] twa:bg-[color-mix(in_srgb,var(--ab-color-primary)_40%,transparent)] twa:px-1 twa:py-0.5", style: { width: PREVIEW_WIDTH, height: PREVIEW_HEIGHT }, children: _jsxs("svg", { width: "100%", height: "100%", viewBox: `0 0 ${VB_W} ${VB_H}`, preserveAspectRatio: "none", "aria-hidden": true, children: [segments.length === 0 ? (_jsx("rect", { x: "0", y: "0", width: VB_W, height: VB_H, fill: range.BackColor ?? 'transparent' })) : (segments.map((s, i) => (_jsx("rect", { x: s.x0 * VB_W, y: "0", width: (s.x1 - s.x0) * VB_W, height: VB_H, fill: s.color, opacity: 0.55 }, i)))), isVertical ? (_jsxs(_Fragment, { children: [_jsx("rect", { x: VB_W * 0.42, y: "2", width: "5", height: VB_H - 4, rx: "1", fill: trackFill }), hasRef && (_jsx("line", { x1: VB_W * 0.46, y1: "3", x2: VB_W * 0.46, y2: VB_H - 3, stroke: refColor, strokeWidth: "2", vectorEffect: "non-scaling-stroke" })), _jsx("polygon", { points: `${VB_W * 0.52},${VB_H * 0.35} ${VB_W * 0.62},${VB_H * 0.5} ${VB_W * 0.52},${VB_H * 0.65}`, fill: valueColor })] })) : (_jsxs(_Fragment, { children: [_jsx("rect", { x: "2", y: VB_H * 0.38, width: VB_W - 4, height: "5", rx: "1", fill: trackFill }), hasRef && (_jsx("line", { x1: VB_W * 0.38, y1: VB_H * 0.2, x2: VB_W * 0.38, y2: VB_H * 0.8, stroke: refColor, strokeWidth: "2", vectorEffect: "non-scaling-stroke" })), _jsx("polygon", { points: `${VB_W * 0.72},${VB_H * 0.2} ${VB_W * 0.82},${VB_H * 0.5} ${VB_W * 0.72},${VB_H * 0.8}`, fill: valueColor })] }))] }) }));
|
|
50
50
|
};
|
|
@@ -55,7 +55,7 @@ export const StyledColumnRangeBarListPreview = (props) => {
|
|
|
55
55
|
export const StyledColumnBulletChartListPreview = (props) => {
|
|
56
56
|
const { bullet } = props;
|
|
57
57
|
const segments = bandSegmentsForPreview(bullet.CellRanges);
|
|
58
|
-
const barColor = bullet.
|
|
59
|
-
const markerColor = bullet.
|
|
58
|
+
const barColor = bullet.Bar?.Color ?? DEFAULT_BAR;
|
|
59
|
+
const markerColor = bullet.TargetProperties?.Marker?.Color || DEFAULT_MARKER;
|
|
60
60
|
return (_jsx(Box, { className: "twa:rounded twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_12%,transparent)] twa:bg-[color-mix(in_srgb,var(--ab-color-primary)_40%,transparent)] twa:px-1 twa:py-0.5", style: { width: PREVIEW_WIDTH, height: PREVIEW_HEIGHT }, children: _jsxs("svg", { width: "100%", height: "100%", viewBox: `0 0 ${VB_W} ${VB_H}`, preserveAspectRatio: "none", "aria-hidden": true, children: [segments.length === 0 ? (_jsx("rect", { x: "0", y: "0", width: VB_W, height: VB_H, fill: bullet.BackColor ?? 'transparent' })) : (segments.map((s, i) => (_jsx("rect", { x: s.x0 * VB_W, y: "2", width: (s.x1 - s.x0) * VB_W, height: VB_H - 4, fill: s.color, opacity: 0.5 }, i)))), _jsx("rect", { x: VB_W * 0.04, y: VB_H * 0.35, width: VB_W * 0.58, height: VB_H * 0.3, rx: "1", fill: barColor }), _jsx("line", { x1: VB_W * 0.78, y1: VB_H * 0.12, x2: VB_W * 0.78, y2: VB_H * 0.88, stroke: markerColor, strokeWidth: "2.5", vectorEffect: "non-scaling-stroke" })] }) }));
|
|
61
61
|
};
|
|
@@ -36,7 +36,7 @@ const renderIconSpecForPreview = (spec, size) => {
|
|
|
36
36
|
return null;
|
|
37
37
|
};
|
|
38
38
|
const buildPreviewText = (mapping, iconStyle) => {
|
|
39
|
-
const cellTextTokens = iconStyle.CellText ?? [];
|
|
39
|
+
const cellTextTokens = iconStyle.CellTextProperties?.CellText ?? [];
|
|
40
40
|
const formatted = String(mapping.Key);
|
|
41
41
|
const textParts = [];
|
|
42
42
|
if (cellTextTokens.includes('CellValue') && formatted) {
|
|
@@ -50,7 +50,7 @@ const buildPreviewText = (mapping, iconStyle) => {
|
|
|
50
50
|
const IconCellPreviewTree = ({ iconStyle, mapping }) => {
|
|
51
51
|
const size = iconStyle.Size ?? DEFAULT_ICON_STYLE_SIZE;
|
|
52
52
|
const gap = iconStyle.Gap ?? DEFAULT_ICON_STYLE_GAP;
|
|
53
|
-
const textPosition = iconStyle.CellTextPosition ?? 'After';
|
|
53
|
+
const textPosition = iconStyle.CellTextProperties?.CellTextPosition ?? 'After';
|
|
54
54
|
const text = buildPreviewText(mapping, iconStyle);
|
|
55
55
|
const fontStyle = iconStyle.Font ? convertAdaptableStyleToCSS(iconStyle.Font) : undefined;
|
|
56
56
|
const iconNode = renderIconSpecForPreview(mapping.Icon, size);
|
|
@@ -1,26 +1,33 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { convertAdaptableStyleToCSS } from '../../../../../Utilities/Helpers/StyleHelper';
|
|
3
|
-
import {
|
|
3
|
+
import { getPercentBarPreviewGeometry, getPercentBarPreviewResolvedBarColor, getPercentBarPreviewSampleValues, getPercentBarPreviewScale, getPercentBarPreviewTrackColor, hasPercentBarRangesConfigured, } from '../../../../../Utilities/Helpers/percentBarPreviewHelper';
|
|
4
|
+
import { buildBarChartCellTextLabels, getBarChartCellTextSlotPresence, hasBarChartCellTextConfigured, } from '../../../../../Utilities/Helpers/barChartCellText';
|
|
4
5
|
import { Box, Flex } from '../../../../../components/Flex';
|
|
5
6
|
import { Card } from '../../../../../components/Card';
|
|
6
7
|
import { Tag } from '../../../../../components/Tag';
|
|
8
|
+
import { BarChartCellTextPreview, shouldShowBarChartCellTextOutsideBar, } from './BarChartCellTextPreview';
|
|
7
9
|
const PREVIEW_CELL_CLASS = 'ab-PercentBarPreviewCell twa:w-[72px] twa:min-h-[32px] twa:px-1 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
|
|
8
10
|
const PercentBarPreviewCell = ({ styledColumn, value, min, max }) => {
|
|
9
11
|
const pb = styledColumn.PercentBarStyle;
|
|
10
12
|
const { barLeftPercent, barWidthPercent, percentageValue, barColor } = getPercentBarPreviewGeometry(value, pb, min, max);
|
|
11
13
|
const trackColor = getPercentBarPreviewTrackColor(pb);
|
|
12
14
|
const fillColor = getPercentBarPreviewResolvedBarColor(barColor);
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
15
|
+
const cellTextProperties = pb.CellTextProperties;
|
|
16
|
+
const labels = buildBarChartCellTextLabels(cellTextProperties, Number.isInteger(value) ? String(value) : value.toFixed(1), `${percentageValue.toFixed(0)}%`);
|
|
17
|
+
const hasCellText = hasBarChartCellTextConfigured(cellTextProperties) &&
|
|
18
|
+
Boolean(labels.cellValue || labels.percentage);
|
|
19
|
+
const presence = getBarChartCellTextSlotPresence(cellTextProperties);
|
|
16
20
|
const fontStyle = pb.Font ? convertAdaptableStyleToCSS(pb.Font) : undefined;
|
|
17
|
-
const
|
|
21
|
+
const cellTextClassName = 'ab-PercentBar__text twa:text-2 twa:leading-tight twa:truncate';
|
|
18
22
|
const barEl = (_jsxs(Box, { className: "ab-PercentBar__bar twa:relative twa:flex-1 twa:min-h-[6px]", style: trackColor ? { background: getPercentBarPreviewResolvedBarColor(trackColor) } : undefined, children: [fillColor && (_jsx(Box, { className: "ab-PercentBar__barInside twa:absolute twa:top-0 twa:h-full", style: {
|
|
19
23
|
background: fillColor,
|
|
20
24
|
left: `${barLeftPercent.toFixed(2)}%`,
|
|
21
25
|
width: `${barWidthPercent.toFixed(2)}%`,
|
|
22
|
-
} })), hasCellText &&
|
|
23
|
-
return (_jsxs(Flex, { className: `ab-PercentBar__wrapper ${PREVIEW_CELL_CLASS}`, flexDirection: "column", style: {
|
|
26
|
+
} })), hasCellText && presence.hasMerged && (_jsx(BarChartCellTextPreview, { mergedOverlayClassName: "ab-PercentBar__text twa:absolute twa:inset-x-0 twa:top-1/2 twa:-translate-y-1/2 twa:px-1 twa:text-2 twa:truncate", style: fontStyle, cellTextProperties: cellTextProperties, labels: labels, vertical: "Merged" }))] }));
|
|
27
|
+
return (_jsxs(Flex, { className: `ab-PercentBar__wrapper ${PREVIEW_CELL_CLASS}`, flexDirection: "column", style: {
|
|
28
|
+
justifyContent: 'center',
|
|
29
|
+
height: shouldShowBarChartCellTextOutsideBar(cellTextProperties, hasCellText) ? '100%' : undefined,
|
|
30
|
+
}, children: [hasCellText && presence.hasAbove && (_jsx(BarChartCellTextPreview, { className: cellTextClassName, style: fontStyle, cellTextProperties: cellTextProperties, labels: labels, vertical: "Above" })), barEl, hasCellText && presence.hasBelow && (_jsx(BarChartCellTextPreview, { className: cellTextClassName, style: fontStyle, cellTextProperties: cellTextProperties, labels: labels, vertical: "Below" }))] }));
|
|
24
31
|
};
|
|
25
32
|
export const StyledColumnPercentBarPreview = ({ data }) => {
|
|
26
33
|
const pb = data.PercentBarStyle;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { buildBarChartCellTextLabels, getBarChartCellTextSlotPresence, hasBarChartCellTextConfigured, } from '../../../../../Utilities/Helpers/barChartCellText';
|
|
2
3
|
import { Box, Flex } from '../../../../../components/Flex';
|
|
3
4
|
import { Card } from '../../../../../components/Card';
|
|
4
5
|
import { Tag } from '../../../../../components/Tag';
|
|
5
6
|
import { StyledColumnRangeBarListPreview } from './StyledColumnChartListPreviews';
|
|
7
|
+
import { BarChartCellTextPreview } from './BarChartCellTextPreview';
|
|
6
8
|
const PREVIEW_CELL_CLASS = 'ab-RangeBarPreviewCell twa:inline-flex twa:items-center twa:min-w-[180px] twa:min-h-[36px] twa:px-2 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
|
|
7
9
|
const getRangeBarPreviewSample = (range) => {
|
|
8
10
|
let min = 0;
|
|
@@ -20,28 +22,20 @@ const getRangeBarPreviewSample = (range) => {
|
|
|
20
22
|
valueFraction: Math.max(0, Math.min(1, valueFraction)),
|
|
21
23
|
};
|
|
22
24
|
};
|
|
23
|
-
const formatRangeBarPreviewCellText = (sampleValue, valueFraction, range) => {
|
|
24
|
-
const parts = [];
|
|
25
|
-
if (range.CellText?.includes('CellValue')) {
|
|
26
|
-
parts.push(Number.isInteger(sampleValue) ? String(sampleValue) : sampleValue.toFixed(1));
|
|
27
|
-
}
|
|
28
|
-
if (range.CellText?.includes('PercentageValue')) {
|
|
29
|
-
parts.push(`${(valueFraction * 100).toFixed(0)}%`);
|
|
30
|
-
}
|
|
31
|
-
return parts.join(' ');
|
|
32
|
-
};
|
|
33
25
|
const RangeBarPreviewContent = ({ range }) => {
|
|
34
26
|
const { sampleValue, valueFraction } = getRangeBarPreviewSample(range);
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
const
|
|
27
|
+
const cellTextProperties = range.CellTextProperties;
|
|
28
|
+
const labels = buildBarChartCellTextLabels(cellTextProperties, Number.isInteger(sampleValue) ? String(sampleValue) : sampleValue.toFixed(1), `${(valueFraction * 100).toFixed(0)}%`);
|
|
29
|
+
const hasCellText = hasBarChartCellTextConfigured(cellTextProperties) &&
|
|
30
|
+
Boolean(labels.cellValue || labels.percentage);
|
|
31
|
+
const presence = getBarChartCellTextSlotPresence(cellTextProperties);
|
|
38
32
|
const isVertical = range.Orientation === 'Vertical';
|
|
33
|
+
const cellTextClassName = 'ab-RangeBar__text twa:text-2 twa:leading-tight twa:truncate twa:max-w-full';
|
|
39
34
|
const chartEl = _jsx(StyledColumnRangeBarListPreview, { range: range });
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return (_jsxs(Box, { className: "ab-RangeBar__wrapper twa:relative twa:inline-flex", children: [chartEl, _jsx(Box, { className: "ab-RangeBar__text twa:absolute twa:inset-x-0 twa:top-1/2 twa:-translate-y-1/2 twa:px-1 twa:text-2 twa:truncate twa:pointer-events-none", children: cellText })] }));
|
|
35
|
+
if (hasCellText && presence.hasMerged && !presence.hasAbove && !presence.hasBelow) {
|
|
36
|
+
return (_jsxs(Box, { className: "ab-RangeBar__wrapper twa:relative twa:inline-flex", children: [chartEl, _jsx(BarChartCellTextPreview, { mergedOverlayClassName: "ab-RangeBar__text twa:absolute twa:inset-x-0 twa:top-1/2 twa:-translate-y-1/2 twa:px-1 twa:text-2 twa:truncate twa:pointer-events-none", cellTextProperties: cellTextProperties, labels: labels, vertical: "Merged" })] }));
|
|
43
37
|
}
|
|
44
|
-
return (_jsxs(Flex, { className: "ab-RangeBar__wrapper", flexDirection: "column", alignItems: isVertical ? 'center' : 'stretch', style: { justifyContent: 'center', gap: hasCellText ? 2 : 0 }, children: [hasCellText &&
|
|
38
|
+
return (_jsxs(Flex, { className: "ab-RangeBar__wrapper twa:relative", flexDirection: "column", alignItems: isVertical ? 'center' : 'stretch', style: { justifyContent: 'center', gap: hasCellText ? 2 : 0 }, children: [hasCellText && presence.hasAbove && (_jsx(BarChartCellTextPreview, { className: cellTextClassName, cellTextProperties: cellTextProperties, labels: labels, vertical: "Above" })), _jsxs(Box, { className: "twa:relative twa:w-full", style: { display: 'inline-flex' }, children: [chartEl, hasCellText && presence.hasMerged && (_jsx(BarChartCellTextPreview, { mergedOverlayClassName: "ab-RangeBar__text twa:absolute twa:inset-x-0 twa:top-1/2 twa:-translate-y-1/2 twa:px-1 twa:text-2 twa:truncate twa:pointer-events-none", cellTextProperties: cellTextProperties, labels: labels, vertical: "Merged" }))] }), hasCellText && presence.hasBelow && (_jsx(BarChartCellTextPreview, { className: cellTextClassName, cellTextProperties: cellTextProperties, labels: labels, vertical: "Below" }))] }));
|
|
45
39
|
};
|
|
46
40
|
export const StyledColumnRangeBarPreview = ({ data }) => {
|
|
47
41
|
const range = data.RangeBarStyle;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { CellBoxStyle } from '../../../../../AdaptableState/Common/AdaptableStyle';
|
|
3
|
-
import {
|
|
3
|
+
import { StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
|
|
4
|
+
import { RatingIconShape, RatingStyle } from '../../../../../AdaptableState/StyledColumns/RatingStyle';
|
|
4
5
|
export declare const DEFAULT_RATING_MAX = 5;
|
|
5
6
|
export declare const DEFAULT_RATING_SIZE = 14;
|
|
6
7
|
export declare const DEFAULT_RATING_GAP = 2;
|
|
@@ -3,15 +3,16 @@ 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 { formatBarChartCellTextLayoutSummary, getActiveBarChartCellTextTokens, hasBarChartCellTextConfigured, patchBarChartCellTextPlacement, resolveBarChartCellTextLayout, toggleBarChartCellTextToken, } from '../../../../Utilities/Helpers/barChartCellText';
|
|
7
|
+
import { BarChartCellTextLayoutEditor } from './Components/BarChartCellTextLayoutEditor';
|
|
8
|
+
import { OptionalColorPicker } from '../../../../components/ColorPicker';
|
|
7
9
|
import { getGraySwatchColor } from '../../../UIHelper';
|
|
8
10
|
import { useOnePageAdaptableWizardContext } from '../../../Wizard/OnePageAdaptableWizard';
|
|
9
|
-
import ArrayExtensions from '../../../../Utilities/Extensions/ArrayExtensions';
|
|
10
11
|
import { Box, Flex } from '../../../../components/Flex';
|
|
11
12
|
import Radio, { RadioGroup } from '../../../../components/Radio';
|
|
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';
|
|
@@ -35,11 +36,12 @@ const formatPercentBarToolTipSummary = (toolTipText) => toolTipText
|
|
|
35
36
|
.join(' + ') ?? '';
|
|
36
37
|
const buildStyledColumnPercentBarStyleSummaryStrings = (pb, options) => {
|
|
37
38
|
const items = [`Origin: ${formatOriginLabel(pb.Origin)}`];
|
|
38
|
-
if (pb.
|
|
39
|
-
|
|
40
|
-
items.push(`Cell Text
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
if (hasBarChartCellTextConfigured(pb.CellTextProperties)) {
|
|
40
|
+
const tokens = getActiveBarChartCellTextTokens(pb.CellTextProperties);
|
|
41
|
+
items.push(`Cell Text: ${formatPercentBarCellTextSummary(tokens)}`);
|
|
42
|
+
const layoutSummary = formatBarChartCellTextLayoutSummary(resolveBarChartCellTextLayout(pb.CellTextProperties));
|
|
43
|
+
if (layoutSummary) {
|
|
44
|
+
items.push(`Placement: ${layoutSummary}`);
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
else if (options.includeEmptyCellText) {
|
|
@@ -81,7 +83,7 @@ export const renderStyledColumnStyleSummary = (data, _api) => {
|
|
|
81
83
|
includeEmptyCellText: true,
|
|
82
84
|
includeEmptyTooltip: true,
|
|
83
85
|
});
|
|
84
|
-
return (
|
|
86
|
+
return renderSummaryStringTags(items);
|
|
85
87
|
};
|
|
86
88
|
// Legacy wrapper kept for any external consumers; safe no-op here.
|
|
87
89
|
export const renderFormatColumnStyleWizardSummary = (data) => {
|
|
@@ -91,11 +93,6 @@ export const renderFormatColumnStyleWizardSummary = (data) => {
|
|
|
91
93
|
// Pinning the width forces colons to line up vertically across cards rather than
|
|
92
94
|
// each FormLayout sizing its label column independently from its own longest label.
|
|
93
95
|
const STYLE_FORM_SIZES = ['200px', '1fr'];
|
|
94
|
-
const CELL_TEXT_POSITION_CHOICES = [
|
|
95
|
-
{ value: 'Above', label: 'Above Bar' },
|
|
96
|
-
{ value: 'Below', label: 'Below Bar' },
|
|
97
|
-
{ value: 'Merged', label: 'Merged' },
|
|
98
|
-
];
|
|
99
96
|
const ORIGIN_CHOICES = [
|
|
100
97
|
{
|
|
101
98
|
value: 'Auto',
|
|
@@ -120,6 +117,7 @@ export const StyledColumnWizardStyleSection = (props) => {
|
|
|
120
117
|
return (_jsx(Box, { children: !data.ColumnId && (_jsx(ErrorBox, { className: "twa:mt-2", children: "You need to select a column before styling." })) }));
|
|
121
118
|
}
|
|
122
119
|
const pb = data.PercentBarStyle;
|
|
120
|
+
const cellTextProperties = pb.CellTextProperties;
|
|
123
121
|
// ---- updaters -----------------------------------------------------------
|
|
124
122
|
const update = (patch) => {
|
|
125
123
|
props.onChange({
|
|
@@ -127,12 +125,13 @@ export const StyledColumnWizardStyleSection = (props) => {
|
|
|
127
125
|
PercentBarStyle: { ...pb, ...patch },
|
|
128
126
|
});
|
|
129
127
|
};
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
128
|
+
const onCellTextLayoutToggle = (token, show) => {
|
|
129
|
+
update(toggleBarChartCellTextToken(cellTextProperties, token, show));
|
|
130
|
+
};
|
|
131
|
+
const onCellTextPlacementChange = (token, patch) => {
|
|
132
|
+
update({
|
|
133
|
+
CellTextProperties: patchBarChartCellTextPlacement(cellTextProperties, token, patch),
|
|
134
|
+
});
|
|
136
135
|
};
|
|
137
136
|
const onToolTipTextChanged = (token, checked) => {
|
|
138
137
|
const current = pb.ToolTipText ?? [];
|
|
@@ -141,50 +140,20 @@ export const StyledColumnWizardStyleSection = (props) => {
|
|
|
141
140
|
: current.filter((t) => t !== token);
|
|
142
141
|
update({ ToolTipText: next });
|
|
143
142
|
};
|
|
144
|
-
const handleCellTextPositionChange = (pos) => update({ CellTextPosition: pos });
|
|
145
143
|
const handleOriginChange = (origin) => update({ Origin: origin });
|
|
146
|
-
const
|
|
147
|
-
if (
|
|
148
|
-
|
|
149
|
-
delete next.CellTextAlignment;
|
|
150
|
-
props.onChange({ ...data, PercentBarStyle: next });
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
update({ CellTextAlignment: choice });
|
|
154
|
-
};
|
|
155
|
-
const onAutoCellTextAlignmentChecked = (checked) => {
|
|
156
|
-
if (!checked) {
|
|
157
|
-
handleCellTextAlignmentChange('Inherit');
|
|
144
|
+
const onBackColorChange = (color) => {
|
|
145
|
+
if (color) {
|
|
146
|
+
update({ BackColor: color });
|
|
158
147
|
return;
|
|
159
148
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
delete nextFont.Alignment;
|
|
163
|
-
if (Object.keys(nextFont).length === 0) {
|
|
164
|
-
nextFont = undefined;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
props.onChange({
|
|
168
|
-
...data,
|
|
169
|
-
PercentBarStyle: {
|
|
170
|
-
...pb,
|
|
171
|
-
CellTextAlignment: 'Auto',
|
|
172
|
-
Font: nextFont,
|
|
173
|
-
},
|
|
174
|
-
});
|
|
175
|
-
};
|
|
176
|
-
const onUseBackColorChanged = (checked) => {
|
|
177
|
-
update({ BackColor: checked ? getGraySwatchColor() : null });
|
|
149
|
+
const { BackColor: _removed, ...rest } = pb;
|
|
150
|
+
props.onChange({ ...data, PercentBarStyle: rest });
|
|
178
151
|
};
|
|
179
|
-
const
|
|
180
|
-
const cellTextDisabled = ArrayExtensions.IsNullOrEmpty(pb.CellText) || disabled;
|
|
181
|
-
const currentAlignment = pb.CellTextAlignment ?? 'Inherit';
|
|
152
|
+
const cellTextDisabled = !hasBarChartCellTextConfigured(cellTextProperties) || disabled;
|
|
182
153
|
const currentOrigin = typeof pb.Origin === 'number'
|
|
183
154
|
? 'Min' // numeric origin doesn't fit the radio set; treat as Min for selection state
|
|
184
155
|
: pb.Origin ?? 'Auto';
|
|
185
|
-
return (_jsxs(Box, { children: [_jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Bar Position" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Set the position of the cell text relative to the bar" })] }), _jsx(Card.Body, { children: _jsx(RadioGroup, { orientation: "vertical", name: "ab-percentbar-origin", value: currentOrigin, onRadioChange: handleOriginChange, children: ORIGIN_CHOICES.map((choice) => (_jsx(Radio, { value: choice.value, disabled: disabled, children: _jsxs(Flex, { alignItems: "center", children: [_jsx(Box, { className: "twa:min-w-[60px]", children: choice.label }), _jsx(Box, { className: "twa:text-xs twa:opacity-70", children: choice.hint })] }) }, choice.value))) }) })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Cell Text" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[540px]", children: "
|
|
186
|
-
? 'twa:opacity-50 twa:pointer-events-none'
|
|
187
|
-
: '', children: _jsx(Flex, { alignItems: "center", className: "twa:gap-2", children: _jsxs(ToggleGroup, { children: [_jsx(Toggle, { icon: "align-left", pressed: currentAlignment === 'Left', onPressedChange: (pressed) => handleCellTextAlignmentChange(pressed ? 'Left' : 'Inherit') }), _jsx(Toggle, { icon: "align-center", pressed: currentAlignment === 'Center', onPressedChange: (pressed) => handleCellTextAlignmentChange(pressed ? 'Center' : 'Inherit') }), _jsx(Toggle, { icon: "align-right", pressed: currentAlignment === 'Right', onPressedChange: (pressed) => handleCellTextAlignmentChange(pressed ? 'Right' : 'Inherit') })] }) }) }) }) })] }), _jsx(Box, { className: `twa:mt-3 twa:pt-3 twa:border-t twa:border-foreground/15 ${cellTextDisabled ? 'twa:opacity-50' : ''}`, children: _jsx(StyledColumnFontStyleEditor, { api: api, disabled: cellTextDisabled, hideAlignment: true, value: pb.Font, onChange: (next) => {
|
|
156
|
+
return (_jsxs(Box, { children: [_jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Bar Position" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Set the position of the cell text relative to the bar" })] }), _jsx(Card.Body, { children: _jsx(RadioGroup, { orientation: "vertical", name: "ab-percentbar-origin", value: currentOrigin, onRadioChange: handleOriginChange, children: ORIGIN_CHOICES.map((choice) => (_jsx(Radio, { value: choice.value, disabled: disabled, children: _jsxs(Flex, { alignItems: "center", children: [_jsx(Box, { className: "twa:min-w-[60px]", children: choice.label }), _jsx(Box, { className: "twa:text-xs twa:opacity-70", children: choice.hint })] }) }, choice.value))) }) })] }), _jsxs(Card, { shadow: false, className: "twa:mb-3", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Cell Text" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[540px]", children: "Pick which values to display and where each one sits around the bar (font properties take precedence over Format Column)" })] }), _jsxs(Card.Body, { children: [_jsx(FormLayout, { sizes: [...STYLE_FORM_SIZES], children: _jsx(FormRow, { label: "Cell Text Layout:", children: _jsx(BarChartCellTextLayoutEditor, { disabled: disabled, cellTextProperties: cellTextProperties, onToggle: onCellTextLayoutToggle, onPlacementChange: onCellTextPlacementChange }) }) }), _jsx(Box, { className: `twa:mt-3 twa:pt-3 twa:border-t twa:border-foreground/15 ${cellTextDisabled ? 'twa:opacity-50' : ''}`, children: _jsx(StyledColumnFontStyleEditor, { api: api, disabled: cellTextDisabled, value: pb.Font, onChange: (next) => {
|
|
188
157
|
if (next) {
|
|
189
158
|
update({ Font: next });
|
|
190
159
|
}
|
|
@@ -193,5 +162,5 @@ export const StyledColumnWizardStyleSection = (props) => {
|
|
|
193
162
|
delete cleaned.Font;
|
|
194
163
|
props.onChange({ ...data, PercentBarStyle: cleaned });
|
|
195
164
|
}
|
|
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:
|
|
165
|
+
} }) })] })] }), _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
166
|
};
|