@adaptabletools/adaptable-cjs 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 +0 -10
- package/src/AdaptableState/StyledColumns/BadgeStyle.d.ts +143 -0
- package/src/AdaptableState/StyledColumns/BadgeStyle.js +12 -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 +7 -0
- package/src/AdaptableState/StyledColumns/Common/BarChartMarker.d.ts +24 -0
- package/src/AdaptableState/StyledColumns/Common/BarChartMarker.js +6 -0
- package/src/AdaptableState/StyledColumns/Common/CellTextOptions.d.ts +13 -0
- package/src/AdaptableState/StyledColumns/Common/CellTextOptions.js +7 -0
- package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.d.ts +79 -0
- package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.js +10 -0
- package/src/AdaptableState/StyledColumns/GradientStyle.d.ts +48 -0
- package/src/AdaptableState/StyledColumns/GradientStyle.js +2 -0
- package/src/AdaptableState/StyledColumns/IconStyle.d.ts +158 -0
- package/src/AdaptableState/StyledColumns/IconStyle.js +2 -0
- package/src/AdaptableState/StyledColumns/PercentBarStyle.d.ts +32 -0
- package/src/AdaptableState/StyledColumns/PercentBarStyle.js +2 -0
- package/src/AdaptableState/StyledColumns/RangeBarStyle.d.ts +155 -0
- package/src/AdaptableState/StyledColumns/RangeBarStyle.js +2 -0
- package/src/AdaptableState/StyledColumns/RatingStyle.d.ts +111 -0
- package/src/AdaptableState/StyledColumns/RatingStyle.js +2 -0
- package/src/AdaptableState/StyledColumns/SparklineStyle.d.ts +21 -0
- package/src/AdaptableState/StyledColumns/SparklineStyle.js +2 -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 +1 -1
- 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 +11 -28
- 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 +17 -1
- package/src/Strategy/Utilities/Export/getExportRowsViewItems.d.ts +1 -0
- package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +5 -1
- package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.d.ts +11 -0
- package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.js +111 -0
- package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.d.ts +48 -0
- package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +177 -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 +97 -0
- package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +3 -5
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +48 -42
- 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 +30 -1
- package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +3 -1
- package/src/Utilities/Helpers/StyledColumnGradientHelper.js +6 -4
- package/src/Utilities/Helpers/barChartCellText.d.ts +63 -0
- package/src/Utilities/Helpers/barChartCellText.js +333 -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 +19 -0
- package/src/Utilities/getScopeViewItems.js +2 -0
- package/src/Utilities/wizardSelection.d.ts +10 -0
- package/src/Utilities/wizardSelection.js +22 -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 +1 -6
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +159 -125
- 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 +30 -7
- package/src/View/Alert/Wizard/AlertWizard.js +12 -4
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +2 -1
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +3 -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 +29 -3
- 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 -3
- 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 +6 -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 +15 -3
- package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +2 -2
- package/src/View/Components/ColumnSelector/index.d.ts +12 -0
- package/src/View/Components/ColumnSelector/index.js +30 -6
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +2 -2
- package/src/View/Components/ModuleValueSelector/index.js +2 -1
- package/src/View/Components/NewScopeComponent.js +3 -8
- 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 +3 -3
- 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 -4
- package/src/View/Components/Popups/AdaptablePopup/TopBar.js +2 -3
- package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.d.ts +11 -0
- package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.js +5 -0
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +3 -1
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +27 -28
- 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 -3
- 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 +30 -63
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +9 -6
- package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +3 -13
- package/src/View/Components/ToolPanel/ToolPanelPopup.js +5 -80
- package/src/View/Components/ToolPanel/ToolPanelPopupSections.d.ts +17 -0
- package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +81 -0
- package/src/View/Components/ValueSelector/index.d.ts +29 -0
- package/src/View/Components/ValueSelector/index.js +112 -29
- package/src/View/Components/wizardColumnListStyles.d.ts +10 -0
- package/src/View/Components/wizardColumnListStyles.js +13 -0
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +4 -6
- 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 +73 -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 +99 -0
- package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +5 -3
- package/src/View/DataChangeHistory/buildActionColumnButton.js +33 -41
- package/src/View/DataChangeHistory/dataChangeHistoryHelpers.d.ts +15 -0
- package/src/View/DataChangeHistory/dataChangeHistoryHelpers.js +46 -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 +4 -5
- 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 +2 -7
- package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +2 -1
- package/src/View/Export/Wizard/ReportRowsWizardSection.js +2 -5
- package/src/View/Filter/FilterViewPanel.js +1 -1
- package/src/View/FlashingCell/FlashingCellStyle.d.ts +4 -2
- package/src/View/FlashingCell/FlashingCellStyle.js +5 -3
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.d.ts +2 -1
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +5 -9
- package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.d.ts +9 -0
- package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.js +10 -0
- package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
- package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +5 -1
- package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +0 -5
- package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +3 -8
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +1 -2
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +101 -44
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +0 -1
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -6
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +55 -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 -9
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +4 -9
- 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 -3
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
- package/src/View/Layout/LayoutViewPanel.js +2 -2
- 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 +77 -33
- package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +4 -1
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +154 -275
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +4 -1
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +146 -143
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +5 -2
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +22 -10
- package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.d.ts +4 -1
- package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +21 -10
- package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +5 -2
- package/src/View/Layout/Wizard/sections/RowGroupingSection.js +23 -12
- package/src/View/Layout/Wizard/sections/RowSelectionSection.js +7 -3
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +130 -104
- package/src/View/Layout/Wizard/sections/SortSection.d.ts +12 -2
- package/src/View/Layout/Wizard/sections/SortSection.js +43 -18
- package/src/View/Layout/Wizard/sections/columnLayoutCards.d.ts +20 -0
- package/src/View/Layout/Wizard/sections/columnLayoutCards.js +167 -0
- package/src/View/Layout/Wizard/sections/columnLayoutHelpers.d.ts +30 -0
- package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +216 -0
- package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.d.ts +8 -0
- package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.js +72 -0
- package/src/View/Layout/Wizard/sections/layoutWizardColumns.d.ts +11 -0
- package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +57 -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 -13
- 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 +11 -0
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +3 -1
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +13 -10
- 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 +7 -13
- 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 +54 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +2 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +28 -6
- 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 +172 -75
- 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 +31 -45
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor.d.ts +9 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor.js +40 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextPreview.d.ts +23 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextPreview.js +62 -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 +13 -6
- 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 +26 -57
- package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +93 -6
- package/src/View/UIHelper.d.ts +0 -2
- package/src/View/UIHelper.js +8 -24
- package/src/View/Wizard/CollapsibleWizardCard.d.ts +68 -0
- package/src/View/Wizard/CollapsibleWizardCard.js +90 -0
- package/src/View/Wizard/OnePageWizards.js +6 -6
- package/src/View/Wizard/SummaryColorTag.d.ts +24 -0
- package/src/View/Wizard/SummaryColorTag.js +79 -0
- package/src/View/Wizard/WizardTypeSelection.d.ts +34 -0
- package/src/View/Wizard/WizardTypeSelection.js +40 -0
- package/src/View/Wizard/rowGroupSummaryTags.d.ts +18 -0
- package/src/View/Wizard/rowGroupSummaryTags.js +21 -0
- package/src/View/Wizard/scopeSummaryTags.d.ts +6 -0
- package/src/View/Wizard/scopeSummaryTags.js +38 -0
- package/src/agGrid/AgGridAdapter.js +0 -5
- package/src/agGrid/AgGridColumnAdapter.js +3 -2
- 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 -7
- package/src/components/CheckBox/index.js +2 -3
- package/src/components/CodeBlock/index.js +2 -3
- 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 +31 -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 +4 -1
- package/src/components/DragAndDropContext/ModuleManager.d.ts +15 -3
- package/src/components/DragAndDropContext/ModuleManager.js +43 -4
- 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 +13 -9
- package/src/components/DragAndDropContext/dragScope.d.ts +6 -0
- package/src/components/DragAndDropContext/dragScope.js +34 -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 -3
- package/src/components/ErrorBox/index.js +2 -3
- package/src/components/ExpressionEditor/BaseEditorInput.js +3 -3
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +3 -3
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +9 -9
- package/src/components/FieldWrap/index.js +2 -3
- package/src/components/Flex.js +2 -2
- package/src/components/FormLayout/index.d.ts +1 -1
- package/src/components/HelpBlock/index.js +3 -4
- package/src/components/IconSelector/IconSelector.d.ts +8 -0
- package/src/components/IconSelector/IconSelector.js +13 -8
- package/src/components/IconSelector/index.d.ts +1 -0
- package/src/components/IconSelector/index.js +3 -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 -3
- package/src/components/Tabs/index.js +4 -4
- package/src/components/Tag/Tag.d.ts +16 -0
- package/src/components/Tag/Tag.js +16 -5
- package/src/components/Tag/columnScopeTagHelpers.d.ts +8 -0
- package/src/components/Tag/columnScopeTagHelpers.js +12 -0
- package/src/components/Tag/index.d.ts +1 -1
- package/src/components/Tag/index.js +3 -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 -5
- package/src/components/Tree/TreeDropdown/index.js +3 -5
- package/src/components/WarningBox/index.js +2 -3
- 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.cjs.tsbuildinfo +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +0 -17
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -295
- 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 -14
- package/src/components/DropdownButton/useExpanded.d.ts +0 -24
- package/src/components/DropdownButton/useExpanded.js +0 -59
- package/src/components/NewDropdownButton/index.d.ts +0 -27
- package/src/components/NewDropdownButton/index.js +0 -28
- /package/src/{components/DropdownButton/DropdownButtonItem.js → AdaptableState/StyledColumns/BulletChartStyle.js} +0 -0
|
@@ -8,19 +8,21 @@ const CheckBox_1 = require("../../../components/CheckBox");
|
|
|
8
8
|
const ErrorBox_1 = tslib_1.__importDefault(require("../../../components/ErrorBox"));
|
|
9
9
|
const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayout"));
|
|
10
10
|
const Tag_1 = require("../../../components/Tag");
|
|
11
|
+
const InputGroup_1 = require("../../../components/InputGroup");
|
|
11
12
|
const ColorPicker_1 = require("../../../components/ColorPicker");
|
|
12
13
|
const RangesComponent_1 = require("../../Components/RangesComponent");
|
|
13
14
|
const ColumnSelector_1 = require("../../Components/Selectors/ColumnSelector");
|
|
14
15
|
const UIHelper_1 = require("../../UIHelper");
|
|
15
16
|
const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
|
|
16
|
-
const DropdownButton_1 = tslib_1.__importDefault(require("../../../components/DropdownButton"));
|
|
17
|
-
const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/Extensions/ArrayExtensions"));
|
|
18
17
|
const AdaptableInput_1 = tslib_1.__importDefault(require("../../Components/AdaptableInput"));
|
|
19
18
|
const Flex_1 = require("../../../components/Flex");
|
|
20
19
|
const NewSelect_1 = require("../../../components/NewSelect");
|
|
21
20
|
const RangeBarRangesSummaryPreview_1 = require("./StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview");
|
|
22
21
|
const StyledColumnRangeBarPreview_1 = require("./StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview");
|
|
23
22
|
const Card_1 = require("../../../components/Card");
|
|
23
|
+
const SummaryColorTag_1 = require("../../Wizard/SummaryColorTag");
|
|
24
|
+
const barChartCellText_1 = require("../../../Utilities/Helpers/barChartCellText");
|
|
25
|
+
const BarChartCellTextLayoutEditor_1 = require("./StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor");
|
|
24
26
|
const RANGE_STYLE_FORM_SIZES = ['200px', '1fr'];
|
|
25
27
|
const BOUND_MODE_LABELS = {
|
|
26
28
|
Number: 'Fixed Number',
|
|
@@ -50,6 +52,66 @@ const summarizeBound = (bound) => {
|
|
|
50
52
|
}
|
|
51
53
|
return bound;
|
|
52
54
|
};
|
|
55
|
+
/**
|
|
56
|
+
* A single joined bound control: a type selector (Fixed Number / Column /
|
|
57
|
+
* Column Min / Max / Average / Median, plus `None` for the optional Reference)
|
|
58
|
+
* joined inline with a contextual editor. Mirrors the Column Comparison bound
|
|
59
|
+
* input so the two read as one block: the select hard-codes `rounded-input`, so
|
|
60
|
+
* the touching corners are flattened directly (important, to beat it) and the
|
|
61
|
+
* shared border overlapped via `-ml-px`.
|
|
62
|
+
*
|
|
63
|
+
* - Fixed Number → editable number input
|
|
64
|
+
* - Column → numeric column selector (excluding the styled column)
|
|
65
|
+
* - Col-* (aggregate) → disabled input showing the resolved value (when a
|
|
66
|
+
* column is in scope), so the user sees the underlying number
|
|
67
|
+
* - None → no editor (selector only)
|
|
68
|
+
*/
|
|
69
|
+
const RangeBarBoundInput = ({ api, value, optional, fallbackNumber, excludeColumnId, resolved, disabled, onChange }) => {
|
|
70
|
+
const mode = getBoundMode(value);
|
|
71
|
+
const handleModeChange = (next) => {
|
|
72
|
+
if (next === mode)
|
|
73
|
+
return;
|
|
74
|
+
if (next === 'None')
|
|
75
|
+
return onChange(undefined);
|
|
76
|
+
if (next === 'Number')
|
|
77
|
+
return onChange(fallbackNumber);
|
|
78
|
+
if (next === 'Column') {
|
|
79
|
+
const candidate = api.columnApi
|
|
80
|
+
.getNumericColumns()
|
|
81
|
+
.find((c) => c.columnId !== excludeColumnId);
|
|
82
|
+
return onChange(candidate?.columnId ?? '');
|
|
83
|
+
}
|
|
84
|
+
// Col-Min / Col-Max / Col-Avg / Col-Median
|
|
85
|
+
return onChange(next);
|
|
86
|
+
};
|
|
87
|
+
const items = [
|
|
88
|
+
...(optional ? [{ value: 'None', label: 'None' }] : []),
|
|
89
|
+
{ value: 'Number', label: BOUND_MODE_LABELS.Number },
|
|
90
|
+
{ value: 'Column', label: BOUND_MODE_LABELS.Column },
|
|
91
|
+
{ value: 'Col-Min', label: BOUND_MODE_LABELS['Col-Min'] },
|
|
92
|
+
{ value: 'Col-Max', label: BOUND_MODE_LABELS['Col-Max'] },
|
|
93
|
+
{ value: 'Col-Avg', label: BOUND_MODE_LABELS['Col-Avg'] },
|
|
94
|
+
{ value: 'Col-Median', label: BOUND_MODE_LABELS['Col-Median'] },
|
|
95
|
+
];
|
|
96
|
+
const hasEditor = mode !== 'None';
|
|
97
|
+
let editor = null;
|
|
98
|
+
if (mode === 'Number') {
|
|
99
|
+
editor = ((0, jsx_runtime_1.jsx)(AdaptableInput_1.default, { className: "twa:w-full", type: "number", disabled: disabled, value: typeof value === 'number' ? value : '', onChange: (e) => onChange(e.target.value === '' ? 0 : Number(e.target.value)) }));
|
|
100
|
+
}
|
|
101
|
+
else if (mode === 'Column') {
|
|
102
|
+
editor = ((0, jsx_runtime_1.jsx)(ColumnSelector_1.ColumnSelector, { type: "number", disabled: disabled, value: typeof value === 'string' ? value : '', onChange: (columnId) => onChange(columnId), filterColumn: (c) => c.columnId !== excludeColumnId, placeholder: "Select column" }));
|
|
103
|
+
}
|
|
104
|
+
else if (hasEditor) {
|
|
105
|
+
const resolvedValue = resolved[mode];
|
|
106
|
+
editor = ((0, jsx_runtime_1.jsx)(AdaptableInput_1.default, { className: "twa:w-full", type: "number", disabled: true, readOnly: true, value: resolvedValue ?? '', title: "Computed across the column's visible rows" }));
|
|
107
|
+
}
|
|
108
|
+
const editorWrapperClassName = [
|
|
109
|
+
'twa:flex-1 twa:basis-0 twa:min-w-0 twa:-ml-px',
|
|
110
|
+
'twa:[&_.ab-Input]:w-full twa:[&_.ab-Input]:rounded-l-none!',
|
|
111
|
+
'twa:[&_[data-slot=input-group]]:w-full! twa:[&_[data-slot=input-group]]:rounded-l-none!',
|
|
112
|
+
].join(' ');
|
|
113
|
+
return ((0, jsx_runtime_1.jsxs)(InputGroup_1.InputGroup, { Component: Flex_1.Flex, className: "twa:items-stretch twa:max-w-[22rem]", children: [(0, jsx_runtime_1.jsx)(NewSelect_1.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 && (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: editorWrapperClassName, children: editor })] }));
|
|
114
|
+
};
|
|
53
115
|
const formatRangeBarCellTextSummary = (cellText) => cellText
|
|
54
116
|
?.map((t) => (t === 'CellValue' ? 'Cell Value' : 'Percent Value'))
|
|
55
117
|
.join(' + ') ?? '';
|
|
@@ -65,8 +127,8 @@ const getStyledColumnRangeBarRangeViewValues = (data) => {
|
|
|
65
127
|
`Min: ${summarizeBound(range.Min)}`,
|
|
66
128
|
`Max: ${summarizeBound(range.Max)}`,
|
|
67
129
|
];
|
|
68
|
-
if (range.Reference != undefined) {
|
|
69
|
-
items.push(`Reference: ${summarizeBound(range.Reference)}`);
|
|
130
|
+
if (range.Reference?.Value != undefined) {
|
|
131
|
+
items.push(`Reference: ${summarizeBound(range.Reference.Value)}`);
|
|
70
132
|
}
|
|
71
133
|
const bandCount = range.CellRanges?.length ?? 0;
|
|
72
134
|
if (bandCount > 0) {
|
|
@@ -81,7 +143,8 @@ exports.getStyledColumnRangeBarRangeViewValues = getStyledColumnRangeBarRangeVie
|
|
|
81
143
|
const buildStyledColumnRangeBarDisplaySummaryStrings = (range, options) => {
|
|
82
144
|
const items = [];
|
|
83
145
|
const valueMarker = range.Marker;
|
|
84
|
-
const
|
|
146
|
+
const referenceProperties = range.Reference;
|
|
147
|
+
const referenceMarker = referenceProperties?.Marker;
|
|
85
148
|
items.push(`Value Marker Shape: ${valueMarker?.Shape ?? 'Diamond'}`);
|
|
86
149
|
if (valueMarker?.Color) {
|
|
87
150
|
items.push(`Value Marker Colour: ${valueMarker.Color}`);
|
|
@@ -89,7 +152,7 @@ const buildStyledColumnRangeBarDisplaySummaryStrings = (range, options) => {
|
|
|
89
152
|
if (valueMarker?.Size != null) {
|
|
90
153
|
items.push(`Value Marker Size: ${valueMarker.Size}px`);
|
|
91
154
|
}
|
|
92
|
-
if (
|
|
155
|
+
if (referenceProperties?.Value != undefined) {
|
|
93
156
|
items.push(`Reference Marker Shape: ${referenceMarker?.Shape ?? 'Line'}`);
|
|
94
157
|
if (referenceMarker?.Color) {
|
|
95
158
|
items.push(`Reference Marker Colour: ${referenceMarker.Color}`);
|
|
@@ -101,25 +164,31 @@ const buildStyledColumnRangeBarDisplaySummaryStrings = (range, options) => {
|
|
|
101
164
|
if (range.Orientation === 'Vertical') {
|
|
102
165
|
items.push('Orientation: Vertical');
|
|
103
166
|
}
|
|
104
|
-
const
|
|
167
|
+
const outOfRangeProperties = range.OutOfRange;
|
|
168
|
+
const outOfRangeMode = outOfRangeProperties?.Mode ?? 'Clamp';
|
|
105
169
|
if (outOfRangeMode !== 'Clamp') {
|
|
106
170
|
items.push(`Out of Range: ${outOfRangeMode}`);
|
|
107
171
|
}
|
|
108
|
-
if (
|
|
109
|
-
items.push(`Out of Range Colour: ${
|
|
172
|
+
if (outOfRangeProperties?.Color) {
|
|
173
|
+
items.push(`Out of Range Colour: ${outOfRangeProperties.Color}`);
|
|
110
174
|
}
|
|
111
|
-
|
|
112
|
-
|
|
175
|
+
const trackProperties = range.Track;
|
|
176
|
+
if (trackProperties?.Color) {
|
|
177
|
+
items.push(`Track Colour: ${trackProperties.Color}`);
|
|
113
178
|
}
|
|
114
|
-
if (
|
|
115
|
-
items.push(`Track Height: ${
|
|
179
|
+
if (trackProperties?.Height != null) {
|
|
180
|
+
items.push(`Track Height: ${trackProperties.Height}px`);
|
|
116
181
|
}
|
|
117
182
|
if (range.BackColor) {
|
|
118
183
|
items.push(`Back Colour: ${range.BackColor}`);
|
|
119
184
|
}
|
|
120
|
-
if (range.
|
|
121
|
-
|
|
122
|
-
items.push(`Cell Text
|
|
185
|
+
if ((0, barChartCellText_1.hasBarChartCellTextConfigured)(range.CellTextProperties)) {
|
|
186
|
+
const tokens = (0, barChartCellText_1.getActiveBarChartCellTextTokens)(range.CellTextProperties);
|
|
187
|
+
items.push(`Cell Text: ${formatRangeBarCellTextSummary(tokens)}`);
|
|
188
|
+
const layoutSummary = (0, barChartCellText_1.formatBarChartCellTextLayoutSummary)((0, barChartCellText_1.resolveBarChartCellTextLayout)(range.CellTextProperties));
|
|
189
|
+
if (layoutSummary) {
|
|
190
|
+
items.push(`Placement: ${layoutSummary}`);
|
|
191
|
+
}
|
|
123
192
|
}
|
|
124
193
|
else if (options.includeEmptyCellText) {
|
|
125
194
|
items.push('Cell Text: None');
|
|
@@ -150,7 +219,7 @@ const renderStyledColumnRangeBarRangeStepSummary = (data) => {
|
|
|
150
219
|
return (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Styling Defined" });
|
|
151
220
|
}
|
|
152
221
|
const tagItems = (0, exports.getStyledColumnRangeBarRangeViewValues)(data);
|
|
153
|
-
return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-2 twa:items-start", children: [(0,
|
|
222
|
+
return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-2 twa:items-start", children: [(0, SummaryColorTag_1.renderSummaryStringTags)(tagItems), (0, jsx_runtime_1.jsx)(RangeBarRangesSummaryPreview_1.RangeBarRangesSummaryPreview, { rangeStyle: range })] }));
|
|
154
223
|
};
|
|
155
224
|
exports.renderStyledColumnRangeBarRangeStepSummary = renderStyledColumnRangeBarRangeStepSummary;
|
|
156
225
|
const StyledColumnRangeBarRangeView = ({ data }) => (0, exports.renderStyledColumnRangeBarRangeStepSummary)(data);
|
|
@@ -168,7 +237,7 @@ const renderStyledColumnRangeBarDisplayStepSummary = (data) => {
|
|
|
168
237
|
if (!items.length) {
|
|
169
238
|
return (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Display Defined" });
|
|
170
239
|
}
|
|
171
|
-
return (
|
|
240
|
+
return (0, SummaryColorTag_1.renderSummaryStringTags)(items);
|
|
172
241
|
};
|
|
173
242
|
exports.renderStyledColumnRangeBarDisplayStepSummary = renderStyledColumnRangeBarDisplayStepSummary;
|
|
174
243
|
/**
|
|
@@ -271,48 +340,79 @@ const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
271
340
|
},
|
|
272
341
|
});
|
|
273
342
|
}, [data, range]);
|
|
343
|
+
const updateBackColor = (color) => {
|
|
344
|
+
if (color) {
|
|
345
|
+
update({ BackColor: color });
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
const next = { ...range };
|
|
349
|
+
delete next.BackColor;
|
|
350
|
+
props.onChange({ ...data, RangeBarStyle: next });
|
|
351
|
+
};
|
|
352
|
+
const updateTrackProperties = (patch) => {
|
|
353
|
+
const merged = {
|
|
354
|
+
...range.Track,
|
|
355
|
+
...patch,
|
|
356
|
+
};
|
|
357
|
+
const isEmpty = merged.Color == undefined && merged.Height == undefined;
|
|
358
|
+
update({ Track: isEmpty ? undefined : merged });
|
|
359
|
+
};
|
|
360
|
+
const updateOutOfRangeProperties = (patch) => {
|
|
361
|
+
const merged = {
|
|
362
|
+
...range.OutOfRange,
|
|
363
|
+
...patch,
|
|
364
|
+
};
|
|
365
|
+
// Default mode is `Clamp` with no override colour; drop the wrapper in
|
|
366
|
+
// that case so empty state serialises cleanly.
|
|
367
|
+
const isEmpty = (merged.Mode == undefined || merged.Mode === 'Clamp') && merged.Color == undefined;
|
|
368
|
+
update({ OutOfRange: isEmpty ? undefined : merged });
|
|
369
|
+
};
|
|
370
|
+
const updateReferenceProperties = (patch) => {
|
|
371
|
+
const merged = {
|
|
372
|
+
Value: range.Reference?.Value,
|
|
373
|
+
...range.Reference,
|
|
374
|
+
...patch,
|
|
375
|
+
};
|
|
376
|
+
update({ Reference: merged });
|
|
377
|
+
};
|
|
274
378
|
// -- Bound editors ---------------------------------------------------------
|
|
379
|
+
// Resolved values for the column-wide aggregate bound modes, shown read-only
|
|
380
|
+
// in the bound editor so the user sees the underlying number.
|
|
381
|
+
const resolvedBoundValues = {
|
|
382
|
+
'Col-Min': minMaxRangeValues?.min,
|
|
383
|
+
'Col-Max': minMaxRangeValues?.max,
|
|
384
|
+
'Col-Avg': column ? api.styledColumnApi.internalApi.getAvgValueForNumericColumn(column) : undefined,
|
|
385
|
+
'Col-Median': column
|
|
386
|
+
? api.styledColumnApi.internalApi.getMedianValueForNumericColumn(column)
|
|
387
|
+
: undefined,
|
|
388
|
+
};
|
|
275
389
|
/**
|
|
276
|
-
* Renders
|
|
277
|
-
* Centralised so the three controls stay
|
|
278
|
-
* identical (only the field name differs).
|
|
390
|
+
* Renders one of `Min` / `Max` / `Reference` as a single joined row (type
|
|
391
|
+
* selector + contextual editor). Centralised so the three controls stay
|
|
392
|
+
* visually and behaviourally identical (only the field name differs).
|
|
279
393
|
*/
|
|
280
394
|
const renderBoundEditor = (opts) => {
|
|
281
|
-
const
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
395
|
+
const setBound = (next) => {
|
|
396
|
+
if (opts.field === 'Reference') {
|
|
397
|
+
if (next === undefined) {
|
|
398
|
+
const cleaned = { ...range };
|
|
399
|
+
delete cleaned.Reference;
|
|
400
|
+
props.onChange({ ...data, RangeBarStyle: cleaned });
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
updateReferenceProperties({ Value: next });
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
if (next === undefined) {
|
|
285
407
|
const cleaned = { ...range };
|
|
286
408
|
delete cleaned[opts.field];
|
|
287
409
|
props.onChange({ ...data, RangeBarStyle: cleaned });
|
|
288
410
|
return;
|
|
289
411
|
}
|
|
290
|
-
if (next === 'Number') {
|
|
291
|
-
update({ [opts.field]: opts.fallbackNumber });
|
|
292
|
-
return;
|
|
293
|
-
}
|
|
294
|
-
if (next === 'Column') {
|
|
295
|
-
const candidate = api.columnApi
|
|
296
|
-
.getNumericColumns()
|
|
297
|
-
.find((c) => c.columnId !== data.ColumnId);
|
|
298
|
-
update({ [opts.field]: candidate?.columnId ?? '' });
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
// Col-Min / Col-Max / Col-Avg / Col-Median
|
|
302
412
|
update({ [opts.field]: next });
|
|
303
413
|
};
|
|
304
|
-
const
|
|
305
|
-
|
|
306
|
-
{ value: 'Number', label: BOUND_MODE_LABELS.Number },
|
|
307
|
-
{ value: 'Column', label: BOUND_MODE_LABELS.Column },
|
|
308
|
-
{ value: 'Col-Min', label: BOUND_MODE_LABELS['Col-Min'] },
|
|
309
|
-
{ value: 'Col-Max', label: BOUND_MODE_LABELS['Col-Max'] },
|
|
310
|
-
{ value: 'Col-Avg', label: BOUND_MODE_LABELS['Col-Avg'] },
|
|
311
|
-
{ value: 'Col-Median', label: BOUND_MODE_LABELS['Col-Median'] },
|
|
312
|
-
];
|
|
313
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `${opts.label}:`, children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[180px]", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-full", value: mode, onValueChange: (v) => handleModeChange(v), items: items }) }) }), mode === 'Number' && ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `${opts.label} Value:`, children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[160px]", children: (0, jsx_runtime_1.jsx)(AdaptableInput_1.default, { type: "number", value: typeof value === 'number' ? value : '', onChange: (e) => update({
|
|
314
|
-
[opts.field]: e.target.value === '' ? 0 : Number(e.target.value),
|
|
315
|
-
}) }) }) })), mode === 'Column' && ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `${opts.label} Column:`, children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[220px]", children: (0, jsx_runtime_1.jsx)(ColumnSelector_1.ColumnSelector, { type: "number", value: typeof value === 'string' ? value : '', onChange: (columnId) => update({ [opts.field]: columnId }), filterColumn: (c) => c.columnId !== data.ColumnId, placeholder: "Select numeric column" }) }) }))] }));
|
|
414
|
+
const value = opts.field === 'Reference' ? range.Reference?.Value : range[opts.field];
|
|
415
|
+
return ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `${opts.label}:`, children: (0, jsx_runtime_1.jsx)(RangeBarBoundInput, { api: api, value: value, optional: opts.optional, fallbackNumber: opts.fallbackNumber, excludeColumnId: data.ColumnId, resolved: resolvedBoundValues, disabled: disabled, onChange: setBound }) }));
|
|
316
416
|
};
|
|
317
417
|
// -- Marker editors --------------------------------------------------------
|
|
318
418
|
const updateValueMarker = (patch) => {
|
|
@@ -325,10 +425,10 @@ const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
325
425
|
});
|
|
326
426
|
};
|
|
327
427
|
const updateReferenceMarker = (patch) => {
|
|
328
|
-
|
|
329
|
-
|
|
428
|
+
updateReferenceProperties({
|
|
429
|
+
Marker: {
|
|
330
430
|
Shape: 'Line',
|
|
331
|
-
...range.
|
|
431
|
+
...range.Reference?.Marker,
|
|
332
432
|
...patch,
|
|
333
433
|
},
|
|
334
434
|
});
|
|
@@ -340,18 +440,20 @@ const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
340
440
|
Color: range.Marker?.Color ?? '',
|
|
341
441
|
Size: range.Marker?.Size ?? (range.Marker?.Shape === 'Line' ? 2 : 10),
|
|
342
442
|
};
|
|
443
|
+
const referenceMarkerCfg = range.Reference?.Marker;
|
|
343
444
|
const referenceMarker = {
|
|
344
|
-
Shape:
|
|
345
|
-
Color:
|
|
346
|
-
Size:
|
|
445
|
+
Shape: referenceMarkerCfg?.Shape ?? 'Line',
|
|
446
|
+
Color: referenceMarkerCfg?.Color ?? '',
|
|
447
|
+
Size: referenceMarkerCfg?.Size ?? (referenceMarkerCfg?.Shape === 'Line' ? 2 : 8),
|
|
347
448
|
};
|
|
348
449
|
// -- Cell text -------------------------------------------------------------
|
|
349
|
-
const toggleCellText = (token,
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
450
|
+
const toggleCellText = (token, show) => {
|
|
451
|
+
update((0, barChartCellText_1.toggleBarChartCellTextToken)(range.CellTextProperties, token, show));
|
|
452
|
+
};
|
|
453
|
+
const onCellTextPlacementChange = (token, patch) => {
|
|
454
|
+
update({
|
|
455
|
+
CellTextProperties: (0, barChartCellText_1.patchBarChartCellTextPlacement)(range.CellTextProperties, token, patch),
|
|
456
|
+
});
|
|
355
457
|
};
|
|
356
458
|
const toggleToolTipText = (token, checked) => {
|
|
357
459
|
const current = range.ToolTipText ?? [];
|
|
@@ -360,9 +462,6 @@ const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
360
462
|
: current.filter((t) => t !== token);
|
|
361
463
|
update({ ToolTipText: next });
|
|
362
464
|
};
|
|
363
|
-
const handleCellTextPositionChange = (pos) => {
|
|
364
|
-
update({ CellTextPosition: pos });
|
|
365
|
-
};
|
|
366
465
|
// -------------------------------------------------------------------------
|
|
367
466
|
// Render
|
|
368
467
|
// -------------------------------------------------------------------------
|
|
@@ -371,10 +470,10 @@ const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
371
470
|
? 'You need to select a column before styling.'
|
|
372
471
|
: `Column "${data.ColumnId}" was not found in the grid.` }) }));
|
|
373
472
|
}
|
|
374
|
-
const hasReference = range.Reference != undefined;
|
|
375
|
-
const outOfRangeMode = range.
|
|
473
|
+
const hasReference = range.Reference?.Value != undefined;
|
|
474
|
+
const outOfRangeMode = range.OutOfRange?.Mode ?? 'Clamp';
|
|
376
475
|
const isRangeVariant = props.variant === 'range';
|
|
377
|
-
return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { children: [isRangeVariant && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, className: "twa:mb-3", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Bounds" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Set
|
|
476
|
+
return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { children: [isRangeVariant && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, className: "twa:mb-3", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Bounds" }), (0, jsx_runtime_1.jsx)(Flex_1.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." })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsxs)(FormLayout_1.default, { sizes: [...RANGE_STYLE_FORM_SIZES], children: [renderBoundEditor({
|
|
378
477
|
label: 'Min',
|
|
379
478
|
field: 'Min',
|
|
380
479
|
optional: false,
|
|
@@ -394,16 +493,14 @@ const StyledColumnWizardRangeBarSection = (props) => {
|
|
|
394
493
|
: 'Optional second marker when a Reference bound is set on the Style step.' })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: hasReference ? ((0, jsx_runtime_1.jsxs)(FormLayout_1.default, { sizes: [...RANGE_STYLE_FORM_SIZES], children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Shape:", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[160px]", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-full", value: referenceMarker.Shape, onValueChange: (s) => updateReferenceMarker({ Shape: s }), items: MARKER_SHAPES.map((s) => ({ value: s.value, label: s.label })) }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: (0, jsx_runtime_1.jsx)(ColorPicker_1.ColorPicker, { disabled: disabled, api: api, value: referenceMarker.Color || undefined, onChange: (c) => updateReferenceMarker({ Color: c }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Size:", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[100px]", children: (0, jsx_runtime_1.jsx)(AdaptableInput_1.default, { type: "number", min: 1, value: referenceMarker.Size, onChange: (e) => updateReferenceMarker({ Size: Number(e.target.value) }) }) }) })] })) : ((0, jsx_runtime_1.jsx)(Flex_1.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)." })) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, className: "twa:mb-3", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Track" }), (0, jsx_runtime_1.jsx)(Flex_1.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." })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsxs)(FormLayout_1.default, { sizes: [...RANGE_STYLE_FORM_SIZES], children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Orientation:", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[160px]", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-full", value: range.Orientation ?? 'Horizontal', onValueChange: (v) => update({ Orientation: v }), items: [
|
|
395
494
|
{ value: 'Horizontal', label: 'Horizontal' },
|
|
396
495
|
{ value: 'Vertical', label: 'Vertical' },
|
|
397
|
-
] }) }) }), range.Orientation === 'Vertical' && ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "", children: (0, jsx_runtime_1.jsxs)(Flex_1.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 ", (0, jsx_runtime_1.jsx)("code", { children: "rowHeight" }), " on ", (0, jsx_runtime_1.jsx)("code", { children: " gridOptions " }), " or use ", (0, jsx_runtime_1.jsx)("code", { children: "getRowHeight" }), "."] }) })), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `Track ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: (0, jsx_runtime_1.
|
|
398
|
-
|
|
399
|
-
}), placeholder: "4" }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `Back ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: (0, jsx_runtime_1.
|
|
496
|
+
] }) }) }), range.Orientation === 'Vertical' && ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "", children: (0, jsx_runtime_1.jsxs)(Flex_1.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 ", (0, jsx_runtime_1.jsx)("code", { children: "rowHeight" }), " on ", (0, jsx_runtime_1.jsx)("code", { children: " gridOptions " }), " or use ", (0, jsx_runtime_1.jsx)("code", { children: "getRowHeight" }), "."] }) })), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `Track ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: (0, jsx_runtime_1.jsx)(ColorPicker_1.OptionalColorPicker, { disabled: disabled, api: api, value: range.Track?.Color, defaultColor: (0, UIHelper_1.getGraySwatchColor)(), onChange: (c) => updateTrackProperties({ Color: c }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: range.Orientation === 'Vertical' ? 'Track Width (px):' : 'Track Height (px):', children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[100px]", children: (0, jsx_runtime_1.jsx)(AdaptableInput_1.default, { type: "number", min: 1, value: range.Track?.Height ?? '', onChange: (e) => updateTrackProperties({
|
|
497
|
+
Height: e.target.value === '' ? undefined : Number(e.target.value),
|
|
498
|
+
}), placeholder: "4" }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `Back ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: (0, jsx_runtime_1.jsx)(ColorPicker_1.OptionalColorPicker, { disabled: disabled, api: api, value: range.BackColor ?? undefined, defaultColor: (0, UIHelper_1.getGraySwatchColor)(), onChange: (c) => updateBackColor(c) }) })] }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, className: "twa:mb-3", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Out of Range" }), (0, jsx_runtime_1.jsx)(Flex_1.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]." })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsxs)(FormLayout_1.default, { sizes: [...RANGE_STYLE_FORM_SIZES], children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Behaviour:", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[160px]", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-full", value: outOfRangeMode, onValueChange: (v) => updateOutOfRangeProperties({
|
|
499
|
+
Mode: v,
|
|
500
|
+
}), items: [
|
|
400
501
|
{ value: 'Clamp', label: 'Clamp to edge' },
|
|
401
502
|
{ value: 'Overflow', label: 'Show outside' },
|
|
402
503
|
{ value: 'Hide', label: 'Hide marker' },
|
|
403
|
-
] }) }) }), outOfRangeMode === 'Clamp' && ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `Out-of-range ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: (0, jsx_runtime_1.
|
|
404
|
-
{ label: 'Above Bar', onClick: () => handleCellTextPositionChange('Above') },
|
|
405
|
-
{ label: 'Below Bar', onClick: () => handleCellTextPositionChange('Below') },
|
|
406
|
-
{ label: 'Merged', onClick: () => handleCellTextPositionChange('Merged') },
|
|
407
|
-
], children: range.CellTextPosition ?? 'Below' }) }), (0, jsx_runtime_1.jsxs)(FormLayout_1.FormRow, { label: "Tooltip Display:", children: [(0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { disabled: disabled, checked: range.ToolTipText?.includes('CellValue'), onChange: (checked) => toggleToolTipText('CellValue', checked), children: "Cell Value" }), ' ', (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { disabled: disabled, className: "twa:ml-3", checked: range.ToolTipText?.includes('PercentageValue'), onChange: (checked) => toggleToolTipText('PercentageValue', checked), children: "Percent Value" })] })] }) })] }), (0, jsx_runtime_1.jsx)(StyledColumnRangeBarPreview_1.StyledColumnRangeBarPreviewCard, { data: data })] }))] }));
|
|
504
|
+
] }) }) }), outOfRangeMode === 'Clamp' && ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `Out-of-range ${api.internalApi.getCorrectEnglishVariant('Colour')}:`, children: (0, jsx_runtime_1.jsx)(ColorPicker_1.OptionalColorPicker, { disabled: disabled, api: api, value: range.OutOfRange?.Color, defaultColor: "crimson", onChange: (c) => updateOutOfRangeProperties({ Color: c }) }) }))] }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Text & Tooltip" }), (0, jsx_runtime_1.jsx)(Flex_1.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." })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsxs)(FormLayout_1.default, { sizes: [...RANGE_STYLE_FORM_SIZES], children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Cell Text Layout:", children: (0, jsx_runtime_1.jsx)(BarChartCellTextLayoutEditor_1.BarChartCellTextLayoutEditor, { disabled: disabled, cellTextProperties: range.CellTextProperties, onToggle: toggleCellText, onPlacementChange: onCellTextPlacementChange }) }), (0, jsx_runtime_1.jsxs)(FormLayout_1.FormRow, { label: "Tooltip Display:", children: [(0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { disabled: disabled, checked: range.ToolTipText?.includes('CellValue'), onChange: (checked) => toggleToolTipText('CellValue', checked), children: "Cell Value" }), ' ', (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { disabled: disabled, className: "twa:ml-3", checked: range.ToolTipText?.includes('PercentageValue'), onChange: (checked) => toggleToolTipText('PercentageValue', checked), children: "Percent Value" })] })] }) })] }), (0, jsx_runtime_1.jsx)(StyledColumnRangeBarPreview_1.StyledColumnRangeBarPreviewCard, { data: data })] }))] }));
|
|
408
505
|
};
|
|
409
506
|
exports.StyledColumnWizardRangeBarSection = StyledColumnWizardRangeBarSection;
|
|
@@ -14,6 +14,7 @@ const NewSelect_1 = require("../../../components/NewSelect");
|
|
|
14
14
|
const Input_1 = tslib_1.__importDefault(require("../../../components/Input"));
|
|
15
15
|
const StyledColumnSliceStyleEditors_1 = require("./StyledColumnSliceStyleEditors");
|
|
16
16
|
const Card_1 = require("../../../components/Card");
|
|
17
|
+
const SummaryColorTag_1 = require("../../Wizard/SummaryColorTag");
|
|
17
18
|
const StyledColumnRatingPreview_1 = require("./StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview");
|
|
18
19
|
const STYLE_FORM_SIZES = ['200px', '1fr'];
|
|
19
20
|
const ICON_CHOICES = [
|
|
@@ -118,7 +119,7 @@ const renderStyledColumnRatingSummary = (data) => {
|
|
|
118
119
|
const items = buildStyledColumnRatingStyleSummaryStrings(rating, {
|
|
119
120
|
includeEmptyTooltip: true,
|
|
120
121
|
});
|
|
121
|
-
return (
|
|
122
|
+
return (0, SummaryColorTag_1.renderSummaryStringTags)(items);
|
|
122
123
|
};
|
|
123
124
|
exports.renderStyledColumnRatingSummary = renderStyledColumnRatingSummary;
|
|
124
125
|
const isValidRatingStyle = (data) => {
|
|
@@ -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;
|
|
@@ -8,11 +8,11 @@ const Tag_1 = require("../../../components/Tag");
|
|
|
8
8
|
const ColumnSelector_1 = require("../../Components/ColumnSelector");
|
|
9
9
|
const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
|
|
10
10
|
const Flex_1 = require("../../../components/Flex");
|
|
11
|
-
const AdaptableFormControlTextClear_1 = require("../../Components/Forms/AdaptableFormControlTextClear");
|
|
12
|
-
const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayout"));
|
|
13
11
|
const CheckBox_1 = require("../../../components/CheckBox");
|
|
12
|
+
const utils_1 = require("../../../lib/utils");
|
|
14
13
|
const styledColumnRowKindSupport_1 = require("../../../Utilities/Helpers/styledColumnRowKindSupport");
|
|
15
14
|
const iconStyledColumnColumnSupport_1 = require("../../../Utilities/Helpers/iconStyledColumnColumnSupport");
|
|
15
|
+
const CollapsibleWizardCard_1 = require("../../Wizard/CollapsibleWizardCard");
|
|
16
16
|
// ---------------------------------------------------------------------------
|
|
17
17
|
// Row-kind helpers
|
|
18
18
|
// ---------------------------------------------------------------------------
|
|
@@ -28,10 +28,10 @@ const iconStyledColumnColumnSupport_1 = require("../../../Utilities/Helpers/icon
|
|
|
28
28
|
* (e.g. Sparkline → data rows only).
|
|
29
29
|
*/
|
|
30
30
|
const ROW_KIND_LABELS = {
|
|
31
|
-
Data: 'Data (leaf)
|
|
32
|
-
Group: 'Group
|
|
33
|
-
Summary: 'Summary
|
|
34
|
-
Total: 'Total
|
|
31
|
+
Data: 'Data (leaf) Rows',
|
|
32
|
+
Group: 'Group Rows',
|
|
33
|
+
Summary: 'Summary Rows',
|
|
34
|
+
Total: 'Total Rows',
|
|
35
35
|
};
|
|
36
36
|
const defaultRowKindIncluded = (styledColumn, kind) => {
|
|
37
37
|
if (styledColumn.BadgeStyle) {
|
|
@@ -40,22 +40,14 @@ const defaultRowKindIncluded = (styledColumn, kind) => {
|
|
|
40
40
|
if (!(0, styledColumnRowKindSupport_1.isStyledColumnRowKindSupported)(styledColumn, kind)) {
|
|
41
41
|
return false;
|
|
42
42
|
}
|
|
43
|
-
// Non-Badge default: leaf rows only.
|
|
44
43
|
return kind !== 'Group';
|
|
45
44
|
};
|
|
46
|
-
/**
|
|
47
|
-
* Resolve "is this row kind included?" using:
|
|
48
|
-
* - Type capabilities (unsupported kinds are never included).
|
|
49
|
-
* - Explicit `RowScope[Exclude*]` flag when set.
|
|
50
|
-
* - Per-type default otherwise.
|
|
51
|
-
*/
|
|
52
45
|
const isRowKindIncluded = (styledColumn, kind) => {
|
|
53
46
|
if (!(0, styledColumnRowKindSupport_1.isStyledColumnRowKindSupported)(styledColumn, kind)) {
|
|
54
47
|
return false;
|
|
55
48
|
}
|
|
56
49
|
const scope = styledColumn.RowScope;
|
|
57
50
|
if (scope) {
|
|
58
|
-
// Missing flags default to "include" — same semantics as FormatColumn.
|
|
59
51
|
return !scope[styledColumnRowKindSupport_1.STYLED_COLUMN_ROW_KIND_EXCLUDE_KEY[kind]];
|
|
60
52
|
}
|
|
61
53
|
return defaultRowKindIncluded(styledColumn, kind);
|
|
@@ -66,8 +58,7 @@ const collectIncludedRowKinds = (styledColumn) => {
|
|
|
66
58
|
// ---------------------------------------------------------------------------
|
|
67
59
|
// Summary
|
|
68
60
|
// ---------------------------------------------------------------------------
|
|
69
|
-
const renderStyledColumnScopeSummary = (data) => {
|
|
70
|
-
const { api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
|
|
61
|
+
const renderStyledColumnScopeSummary = (data, api) => {
|
|
71
62
|
const includedKinds = collectIncludedRowKinds(data);
|
|
72
63
|
const allKinds = includedKinds.length === 4;
|
|
73
64
|
return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:pr-2 twa:py-2", children: [(0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:mt-1", children: ["Column:", ' ', (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: data.ColumnId
|
|
@@ -78,6 +69,15 @@ exports.renderStyledColumnScopeSummary = renderStyledColumnScopeSummary;
|
|
|
78
69
|
/** Used by the styled column list view (one-line "Rows: Data, Group, …"). */
|
|
79
70
|
const collectIncludedRowKindLabels = (styledColumn) => collectIncludedRowKinds(styledColumn);
|
|
80
71
|
exports.collectIncludedRowKindLabels = collectIncludedRowKindLabels;
|
|
72
|
+
const StyledColumnColumnScopeSummary = ({ data, }) => {
|
|
73
|
+
const { api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
|
|
74
|
+
return ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardValueSummary, { value: data.ColumnId ? ((0, jsx_runtime_1.jsx)(Tag_1.ColumnTag, { children: api.columnApi.getFriendlyNameForColumnId(data.ColumnId) })) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No column selected" })) }));
|
|
75
|
+
};
|
|
76
|
+
const StyledColumnRowsScopeSummary = ({ data, }) => {
|
|
77
|
+
const includedKinds = collectIncludedRowKinds(data);
|
|
78
|
+
const allKinds = includedKinds.length === 4;
|
|
79
|
+
return ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardValueSummary, { value: allKinds ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "All" })) : includedKinds.length === 0 ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" })) : ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexWrap: "wrap", className: "twa:gap-1", children: includedKinds.map((kind) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: ROW_KIND_LABELS[kind] }, kind))) })) }));
|
|
80
|
+
};
|
|
81
81
|
// ---------------------------------------------------------------------------
|
|
82
82
|
// Validity
|
|
83
83
|
// ---------------------------------------------------------------------------
|
|
@@ -95,10 +95,13 @@ const isValidStyledColumnScope = (data, api) => {
|
|
|
95
95
|
return true;
|
|
96
96
|
};
|
|
97
97
|
exports.isValidStyledColumnScope = isValidStyledColumnScope;
|
|
98
|
+
const StyledColumnRowScopePanel = ({ data, onRowKindChange, }) => ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:items-start twa:px-1 twa:py-1", style: { rowGap: 'calc(var(--ab-base-space) * 2)' }, children: styledColumnRowKindSupport_1.STYLED_COLUMN_ROW_KINDS.map((kind) => {
|
|
99
|
+
const supported = (0, styledColumnRowKindSupport_1.isStyledColumnRowKindSupported)(data, kind);
|
|
100
|
+
const disabledReason = (0, styledColumnRowKindSupport_1.getStyledColumnRowKindDisabledReason)(data, kind);
|
|
101
|
+
return ((0, jsx_runtime_1.jsx)(CheckBox_1.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));
|
|
102
|
+
}) }));
|
|
98
103
|
const StyledColumnWizardScopeSection = (props) => {
|
|
99
104
|
const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
|
|
100
|
-
// Strip impossible `RowScope` flags when the styled column type cannot
|
|
101
|
-
// ever target a row kind (e.g. Sparkline → data rows only).
|
|
102
105
|
React.useEffect(() => {
|
|
103
106
|
const next = (0, styledColumnRowKindSupport_1.sanitizeStyledColumnRowScope)(data);
|
|
104
107
|
if (!next) {
|
|
@@ -123,8 +126,6 @@ const StyledColumnWizardScopeSection = (props) => {
|
|
|
123
126
|
data.RowScope?.ExcludeSummaryRows,
|
|
124
127
|
data.RowScope?.ExcludeTotalRows,
|
|
125
128
|
]);
|
|
126
|
-
// Icon Style must not retain an array-typed ColumnId when the user swaps
|
|
127
|
-
// type (or loads invalid state): clear so the picker and validation align.
|
|
128
129
|
React.useEffect(() => {
|
|
129
130
|
if (!data.IconStyle || !data.ColumnId) {
|
|
130
131
|
return;
|
|
@@ -137,9 +138,6 @@ const StyledColumnWizardScopeSection = (props) => {
|
|
|
137
138
|
});
|
|
138
139
|
}
|
|
139
140
|
}, [data.Uuid, data.IconStyle, data.ColumnId]);
|
|
140
|
-
// -------------------------------------------------------------------------
|
|
141
|
-
// Column picker
|
|
142
|
-
// -------------------------------------------------------------------------
|
|
143
141
|
const sortableCols = React.useMemo(() => {
|
|
144
142
|
let sortableColumns = [];
|
|
145
143
|
if (data.SparklineStyle) {
|
|
@@ -160,7 +158,6 @@ const StyledColumnWizardScopeSection = (props) => {
|
|
|
160
158
|
];
|
|
161
159
|
}
|
|
162
160
|
else {
|
|
163
|
-
// Gradient / PercentBar / BulletChart / Rating / RangeBar - numeric only.
|
|
164
161
|
sortableColumns = api.columnApi.getNumericColumns();
|
|
165
162
|
}
|
|
166
163
|
const styledColumns = api.styledColumnApi.getStyledColumns();
|
|
@@ -173,7 +170,7 @@ const StyledColumnWizardScopeSection = (props) => {
|
|
|
173
170
|
})
|
|
174
171
|
.filter(Boolean);
|
|
175
172
|
return sortableColumns.filter((column) => usedColumnIds.every((usedColumnId) => column.columnId !== usedColumnId));
|
|
176
|
-
}, [data]);
|
|
173
|
+
}, [data, api]);
|
|
177
174
|
const handleColumnsChange = (columnIds) => {
|
|
178
175
|
const columnId = columnIds[0];
|
|
179
176
|
const emptyRanges = api.columnScopeApi.createCellColorRangesForScope({
|
|
@@ -203,19 +200,10 @@ const StyledColumnWizardScopeSection = (props) => {
|
|
|
203
200
|
}
|
|
204
201
|
props.onChange(newStyledColumn);
|
|
205
202
|
};
|
|
206
|
-
const [columnsSearchText, setColumnsSearchText] = React.useState('');
|
|
207
|
-
// -------------------------------------------------------------------------
|
|
208
|
-
// Row-kind toggles
|
|
209
|
-
// -------------------------------------------------------------------------
|
|
210
203
|
const handleRowKindChange = (kind, include) => {
|
|
211
204
|
if (!(0, styledColumnRowKindSupport_1.isStyledColumnRowKindSupported)(data, kind)) {
|
|
212
205
|
return;
|
|
213
206
|
}
|
|
214
|
-
// Materialise an explicit RowScope as soon as the user touches a
|
|
215
|
-
// checkbox. We start from the per-type default so any kinds the user
|
|
216
|
-
// didn't touch carry over their historical value (e.g. group rows
|
|
217
|
-
// stay excluded for a Gradient column even after the user toggles
|
|
218
|
-
// summary rows).
|
|
219
207
|
const baseScope = data.RowScope ?? {
|
|
220
208
|
ExcludeDataRows: !defaultRowKindIncluded(data, 'Data'),
|
|
221
209
|
ExcludeGroupRows: !defaultRowKindIncluded(data, 'Group'),
|
|
@@ -231,16 +219,14 @@ const StyledColumnWizardScopeSection = (props) => {
|
|
|
231
219
|
RowScope: nextScope,
|
|
232
220
|
});
|
|
233
221
|
};
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
return ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: `${ROW_KIND_LABELS[kind]}:`, children: (0, jsx_runtime_1.jsx)(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2", children: (0, jsx_runtime_1.jsx)(CheckBox_1.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));
|
|
244
|
-
}) }) }, groupIndex))) })] })] }));
|
|
222
|
+
const includedRowKinds = collectIncludedRowKinds(data);
|
|
223
|
+
const allRowKindsIncluded = includedRowKinds.length === 4;
|
|
224
|
+
const initialExpandedCardId = data.ColumnId ? null : 'column';
|
|
225
|
+
const { bindCard, hasExpandedCard, expandedFillsSpace } = (0, CollapsibleWizardCard_1.useWizardCardAccordion)(initialExpandedCardId, { fillExpandedCard: true });
|
|
226
|
+
const columnCompactSummary = data.ColumnId
|
|
227
|
+
? (0, CollapsibleWizardCard_1.renderCompactColumnTags)([data.ColumnId], (columnId) => api.columnApi.getFriendlyNameForColumnId(columnId), { emptyLabel: 'No column' })
|
|
228
|
+
: (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No column" });
|
|
229
|
+
const rowsCompactSummary = allRowKindsIncluded ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "All" })) : includedRowKinds.length === 0 ? ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "None" })) : ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-1 twa:min-w-0 twa:overflow-hidden", children: includedRowKinds.map((kind) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { className: "twa:shrink-0", children: kind }, kind))) }));
|
|
230
|
+
return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: (0, utils_1.cn)((0, CollapsibleWizardCard_1.getWizardAccordionSectionClassName)(hasExpandedCard, expandedFillsSpace), 'twa:p-2'), children: [(0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.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: (0, jsx_runtime_1.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: (0, jsx_runtime_1.jsx)(Flex_1.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: (0, jsx_runtime_1.jsx)(ColumnSelector_1.NewColumnSelector, { compactColumnList: true, availableColumns: sortableCols, selected: data.ColumnId ? [data.ColumnId] : [], singleSelect: true, onChange: handleColumnsChange, allowReorder: false }) }) }), (0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.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: (0, jsx_runtime_1.jsx)(StyledColumnRowsScopeSummary, { data: data }), children: (0, jsx_runtime_1.jsx)(StyledColumnRowScopePanel, { data: data, onRowKindChange: handleRowKindChange }) })] }));
|
|
245
231
|
};
|
|
246
232
|
exports.StyledColumnWizardScopeSection = StyledColumnWizardScopeSection;
|