@adaptabletools/adaptable 23.0.0-canary.3 → 23.0.0-canary.5
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/index.css +116 -61
- package/package.json +9 -4
- package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -4
- package/src/AdaptableOptions/EditOptions.d.ts +2 -2
- package/src/AdaptableOptions/FilterOptions.d.ts +0 -7
- package/src/AdaptableState/Common/AdaptableForm.d.ts +18 -1
- package/src/AdaptableState/Common/AdaptableForm.js +31 -0
- package/src/AdaptableState/Common/AggregationColumns.d.ts +14 -6
- package/src/AdaptableState/Common/AggregationColumns.js +27 -2
- package/src/AdaptableState/Common/CellDataChangedInfo.d.ts +3 -2
- package/src/AdaptableState/Common/ColumnScope.d.ts +4 -0
- package/src/AdaptableState/Common/Enums.d.ts +5 -10
- package/src/AdaptableState/Common/Enums.js +4 -10
- package/src/AdaptableState/PlusMinusState.d.ts +3 -3
- package/src/AdaptableState/ShortcutState.d.ts +2 -6
- package/src/AdaptableState/StyledColumnState.d.ts +3 -5
- package/src/AdaptableState/ThemeState.d.ts +33 -28
- package/src/Api/EventApi.d.ts +14 -1
- package/src/Api/Events/ThemeChanged.d.ts +6 -0
- package/src/Api/Events/ThemeSelected.d.ts +11 -0
- package/src/Api/Events/ThemeSelected.js +1 -0
- package/src/Api/Implementation/EventApiImpl.js +4 -0
- package/src/Api/Implementation/LayoutApiImpl.d.ts +0 -2
- package/src/Api/Implementation/LayoutApiImpl.js +0 -14
- package/src/Api/Implementation/LayoutHelpers.d.ts +2 -0
- package/src/Api/Implementation/LayoutHelpers.js +29 -7
- package/src/Api/Implementation/ThemeApiImpl.d.ts +3 -2
- package/src/Api/Implementation/ThemeApiImpl.js +19 -15
- package/src/Api/Internal/EventInternalApi.d.ts +2 -0
- package/src/Api/Internal/EventInternalApi.js +8 -1
- package/src/Api/Internal/StyledColumnInternalApi.d.ts +4 -4
- package/src/Api/Internal/StyledColumnInternalApi.js +4 -4
- package/src/Api/Internal/ThemeInternalApi.d.ts +0 -1
- package/src/Api/Internal/ThemeInternalApi.js +0 -10
- package/src/Api/LayoutApi.d.ts +1 -8
- package/src/Api/ThemeApi.d.ts +6 -2
- package/src/Redux/ActionsReducers/ThemeRedux.d.ts +3 -3
- package/src/Strategy/CalculatedColumnModule.js +3 -1
- package/src/Strategy/FormatColumnModule.js +14 -7
- package/src/Strategy/LayoutModule.js +13 -8
- package/src/Strategy/StyledColumnModule.js +64 -36
- package/src/Utilities/Constants/ReduxConstants.d.ts +2 -2
- package/src/Utilities/Constants/ReduxConstants.js +1 -14
- package/src/Utilities/Helpers/FormatHelper.js +20 -1
- package/src/Utilities/Helpers/SparklineOptionsHelper.d.ts +7 -0
- package/src/Utilities/Helpers/SparklineOptionsHelper.js +65 -0
- package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +23 -1
- package/src/Utilities/Helpers/StyledColumnGradientHelper.js +204 -0
- package/src/Utilities/Helpers/ThemeHelpers.d.ts +5 -0
- package/src/Utilities/Helpers/ThemeHelpers.js +38 -0
- package/src/Utilities/Helpers/percentBarPreviewHelper.d.ts +19 -0
- package/src/Utilities/Helpers/percentBarPreviewHelper.js +143 -0
- package/src/Utilities/ObjectFactory.d.ts +1 -3
- package/src/Utilities/ObjectFactory.js +0 -8
- package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +1 -0
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +7 -0
- package/src/Utilities/Services/CalculatedColumnSyntheticChange.d.ts +4 -0
- package/src/Utilities/Services/CalculatedColumnSyntheticChange.js +115 -0
- package/src/Utilities/Services/Interface/ICalculatedColumnExpressionService.d.ts +1 -0
- package/src/Utilities/Services/ThemeService.js +1 -1
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +17 -16
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +114 -103
- package/src/View/Alert/Wizard/AlertMessageWizardSection.js +13 -14
- package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +55 -55
- package/src/View/Alert/Wizard/AlertRulesWizardSection.js +3 -2
- package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +2 -2
- package/src/View/Alert/Wizard/AlertScopeWizardSection.js +31 -39
- package/src/View/Alert/Wizard/AlertTypeWizardSection.js +3 -4
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +9 -13
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +30 -17
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +7 -9
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +3 -3
- package/src/View/CellSummary/CellSummaryViewPanel.js +1 -1
- package/src/View/Charting/ChartingWizard/AgChargingWizard/AgChargingWizard.js +3 -10
- package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +1 -1
- package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +35 -52
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/ExternalChartingWizard.js +4 -31
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/PreviewChartSection.d.ts +5 -0
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/PreviewChartSection.js +21 -0
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.d.ts +1 -0
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +10 -7
- package/src/View/Comments/CommentsEditor.js +1 -1
- package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +1 -1
- package/src/View/Components/ModuleProfile.js +1 -1
- package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +0 -1
- package/src/View/Components/Popups/WindowPopups/windowFactory.js +0 -1
- package/src/View/Components/RangesComponent.d.ts +7 -2
- package/src/View/Components/RangesComponent.js +94 -22
- package/src/View/Components/Selectors/ColumnSelector.js +5 -0
- package/src/View/Components/StyleComponent.d.ts +1 -0
- package/src/View/Components/StyleComponent.js +1 -1
- package/src/View/Components/ValueSelector/index.js +70 -57
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +8 -13
- package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +8 -8
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
- package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +11 -12
- package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadSection.js +6 -4
- package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadTextSection.js +3 -2
- package/src/View/DataImport/DataImportWizard/sections/ValidationSection.js +5 -15
- package/src/View/Export/Wizard/ReportColumnsWizardSection.js +24 -26
- package/src/View/Export/Wizard/ReportNameWizardSection.js +10 -13
- package/src/View/Export/Wizard/ReportRowsWizardSection.js +20 -22
- package/src/View/Export/Wizard/ScheduledReportSettings.d.ts +2 -0
- package/src/View/Export/Wizard/ScheduledReportSettings.js +13 -13
- package/src/View/Export/Wizard/ScheduledReportWizard.js +4 -5
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +8 -6
- package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +24 -23
- package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +20 -11
- package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +21 -5
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +4 -4
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +7 -0
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +117 -12
- package/src/View/FormatColumn/Wizard/FormatColumnPreview.d.ts +15 -0
- package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +66 -0
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +4 -0
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +30 -0
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +13 -8
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +3 -1
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +62 -13
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +5 -3
- package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.d.ts +2 -0
- package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +15 -0
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.d.ts +10 -0
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.js +53 -0
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +2 -3
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +33 -68
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +15 -11
- package/src/View/Layout/LayoutViewPanel.js +23 -21
- package/src/View/Layout/TransposedPopup.js +2 -2
- package/src/View/Layout/Wizard/LayoutWizard.js +3 -3
- package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +2 -3
- package/src/View/Layout/Wizard/sections/AggregationsSection.js +115 -26
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +79 -79
- package/src/View/Layout/Wizard/sections/FilterSection.js +31 -32
- package/src/View/Layout/Wizard/sections/GridFilterSection.js +11 -11
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +1 -2
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +101 -52
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +9 -8
- package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +4 -4
- package/src/View/Layout/Wizard/sections/RowGroupingSection.js +36 -33
- package/src/View/Layout/Wizard/sections/RowSelectionSection.js +2 -2
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +95 -73
- package/src/View/Layout/Wizard/sections/SettingsSection.js +4 -5
- package/src/View/Layout/Wizard/sections/SortSection.js +2 -2
- package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -1
- package/src/View/NamedQuery/Wizard/NamedQuerySettingsWizardSection.js +9 -14
- package/src/View/NamedQuery/Wizard/NamedQueryWizard.js +1 -3
- package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.d.ts +4 -0
- package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.js +43 -13
- package/src/View/PlusMinus/Wizard/PlusMinusScopeWizardSection.js +11 -18
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.d.ts +2 -6
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +6 -22
- package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +15 -21
- package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +2 -2
- package/src/View/Shortcut/Wizard/ShortcutScopeWizardSection.js +11 -18
- package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +17 -6
- package/src/View/Shortcut/Wizard/ShortcutWizard.js +3 -3
- package/src/View/Shortcut/shortcutOperations.d.ts +3 -0
- package/src/View/Shortcut/shortcutOperations.js +28 -0
- package/src/View/SpecialColumnSettingsWizardStep.js +9 -8
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +24 -15
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +10 -2
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +96 -16
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +14 -0
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +45 -24
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +2 -3
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +108 -33
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +21 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +121 -23
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.d.ts +1 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +34 -11
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +86 -12
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +121 -34
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.d.ts +1 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +55 -75
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.js +16 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +7 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +5 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +4 -3
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.d.ts +5 -4
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +12 -14
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.js +16 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.d.ts +3 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +31 -3
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +9 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +58 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.d.ts +10 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.js +30 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.d.ts +10 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +91 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.d.ts +8 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +52 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.d.ts +8 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +53 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +18 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.js +58 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.d.ts +10 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +126 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.js +12 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.d.ts +1 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +52 -29
- package/src/View/SystemStatus/Utilities/getStatusItemStyle.js +1 -1
- package/src/View/Theme/ThemePopup.d.ts +2 -14
- package/src/View/Theme/ThemePopup.js +1 -36
- package/src/View/UIHelper.js +1 -1
- package/src/View/Wizard/OnePageAdaptableWizard.js +7 -21
- package/src/View/renderWithAdaptableContext.js +2 -3
- package/src/agGrid/AdaptableAgGrid.d.ts +1 -1
- package/src/agGrid/AdaptableAgGrid.js +38 -43
- package/src/agGrid/AgGridAdapter.d.ts +1 -1
- package/src/agGrid/AgGridAdapter.js +27 -17
- package/src/agGrid/AgGridColumnAdapter.js +10 -19
- package/src/agGrid/AgGridMenuAdapter.d.ts +0 -1
- package/src/agGrid/AgGridMenuAdapter.js +20 -37
- package/src/agGrid/buildValueAggregationMenuItem.d.ts +19 -0
- package/src/agGrid/buildValueAggregationMenuItem.js +111 -0
- package/src/agGrid/cellRenderers/IconRenderer.d.ts +6 -0
- package/src/agGrid/cellRenderers/IconRenderer.js +43 -15
- package/src/agGrid/createAgGridIcon.d.ts +10 -0
- package/src/agGrid/createAgGridIcon.js +16 -0
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +11 -6
- package/src/components/Combobox/VirtualizedList.js +5 -5
- package/src/components/Combobox/comboboxUtils.d.ts +4 -1
- package/src/components/Combobox/comboboxUtils.js +2 -0
- package/src/components/Combobox/index.d.ts +1 -0
- package/src/components/Combobox/index.js +35 -15
- package/src/components/DragAndDropContext/UnusedPanel.js +1 -1
- package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
- package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
- package/src/components/Input/NumberInput.js +1 -1
- package/src/components/Panel/index.js +1 -1
- package/src/components/SimpleButton/index.js +4 -4
- package/src/components/Toggle/Toggle.js +1 -1
- package/src/components/Toggle/ToggleGroup.js +1 -1
- package/src/components/Tree/TreeDropdown/index.js +2 -6
- package/src/env.js +2 -2
- package/src/layout-manager/src/LayoutManagerModel.d.ts +5 -1
- package/src/layout-manager/src/index.js +2 -9
- package/src/metamodel/adaptable.metamodel.d.ts +39 -46
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +5 -5
- package/themes/dark.css +1 -68
- package/themes/light.css +1 -5
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/AdaptableState/Common/FilterActionOnDataChange.d.ts +0 -17
- package/src/AdaptableState/Common/FilterActionOnDataChange.js +0 -4
- package/src/Aggregation/ParameterizedAggregationRegistry.d.ts +0 -35
- package/src/Aggregation/ParameterizedAggregationRegistry.js +0 -63
- package/src/Aggregation/definitions/weightedAverageAggregationDefinition.d.ts +0 -3
- package/src/Aggregation/definitions/weightedAverageAggregationDefinition.js +0 -55
- package/src/Aggregation/parameterizedAggregationColumnMenu.d.ts +0 -8
- package/src/Aggregation/parameterizedAggregationColumnMenu.js +0 -137
- package/src/Aggregation/parameterizedAggregationHeader.d.ts +0 -13
- package/src/Aggregation/parameterizedAggregationHeader.js +0 -60
- package/src/Aggregation/parameterizedAggregationHelpers.d.ts +0 -23
- package/src/Aggregation/parameterizedAggregationHelpers.js +0 -111
- package/src/Aggregation/parameterizedAggregationWizardHelpers.d.ts +0 -9
- package/src/Aggregation/parameterizedAggregationWizardHelpers.js +0 -66
- package/src/Aggregation/validateParameterizedAggregations.d.ts +0 -4
- package/src/Aggregation/validateParameterizedAggregations.js +0 -20
- package/src/View/AdaptableComputedCSSVarsContext.d.ts +0 -12
- package/src/View/AdaptableComputedCSSVarsContext.js +0 -29
- package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.d.ts +0 -12
- package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.js +0 -43
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.d.ts +0 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.js +0 -28
- package/src/View/Theme/VariantSelector.d.ts +0 -8
- package/src/View/Theme/VariantSelector.js +0 -20
- package/src/components/Select/CSSNumericVariableWatch.d.ts +0 -11
- package/src/components/Select/CSSNumericVariableWatch.js +0 -45
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { isRuleBasedAlertDefinition } from '../../../Utilities/Helpers/ScheduledAlertHelper';
|
|
3
3
|
import { NewScopeComponent } from '../../Components/NewScopeComponent';
|
|
4
4
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
5
|
-
import { Flex } from '../../../components/Flex';
|
|
5
|
+
import { Box, Flex } from '../../../components/Flex';
|
|
6
6
|
import { isScopeColumnIds } from '../../../AdaptableState/Common/ColumnScope';
|
|
7
7
|
export const AlertScopeWizardSection = (props) => {
|
|
8
8
|
const { data: alertData, api } = useOnePageAdaptableWizardContext();
|
|
@@ -16,41 +16,33 @@ export const AlertScopeWizardSection = (props) => {
|
|
|
16
16
|
disableDataTypes = false;
|
|
17
17
|
disableColumns = false;
|
|
18
18
|
}
|
|
19
|
-
return (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
// if it had aggregation expression and the scope is changed to partial
|
|
49
|
-
// we need to reset to not be an aggregation expression, as aggregation is not supported
|
|
50
|
-
// for partial scope
|
|
51
|
-
delete newData.Rule.AggregatedBooleanExpression;
|
|
52
|
-
newData.Rule.BooleanExpression = '';
|
|
53
|
-
}
|
|
54
|
-
props.onChange(newData);
|
|
55
|
-
} }) }));
|
|
19
|
+
return (_jsxs(Flex, { flexDirection: "column", className: "twa:h-full", children: [_jsxs(Flex, { flexDirection: "row", alignItems: "center", className: "twa:p-2 twa:gap-3 twa:border-b twa:mb-2 twa:border-b-foreground/20", children: [_jsx(Box, { className: "twa:text-5 twa:font-medium", children: "Columns" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:max-w-[520px]", children: "Specify which columns should trigger the Alert" })] }), _jsx(Box, { className: "twa:flex-1 twa:min-h-0 twa:overflow-auto twa:p-2", children: _jsx(NewScopeComponent, { disableColumns: disableColumns, disableDataTypes: disableDataTypes, descriptions: {
|
|
20
|
+
rowScope: 'Changes in any Column in the row will trigger an Alert',
|
|
21
|
+
columnScope: 'Changes in selected Columns will trigger an Alert',
|
|
22
|
+
dataTypeScope: 'Changes in any Column which is of the selected Data Type(s) will trigger an Alert',
|
|
23
|
+
}, scope: data.Scope, updateScope: (Scope) => {
|
|
24
|
+
const newData = { ...data, Scope };
|
|
25
|
+
if (newData.Rule.Predicates) {
|
|
26
|
+
const validPredicateIds = new Set(api.alertApi.internalApi.getAlertPredicateDefsForScope(Scope).map((def) => def.id));
|
|
27
|
+
newData.Rule = {
|
|
28
|
+
Predicates: newData.Rule.Predicates.filter((p) => validPredicateIds.has(p.PredicateId)).filter((predicate) => {
|
|
29
|
+
if (isScopeColumnIds(Scope) && Scope.ColumnIds.length > 1) {
|
|
30
|
+
return predicate.PredicateId !== 'In' && predicate.PredicateId !== 'NotIn';
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
33
|
+
}),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
if (newData.Rule.ObservableExpression !== undefined &&
|
|
37
|
+
!api.columnScopeApi.scopeIsAll(Scope)) {
|
|
38
|
+
delete newData.Rule.ObservableExpression;
|
|
39
|
+
newData.Rule.BooleanExpression = '';
|
|
40
|
+
}
|
|
41
|
+
if (newData.Rule.AggregatedBooleanExpression !== undefined &&
|
|
42
|
+
!api.columnScopeApi.scopeIsAll(Scope)) {
|
|
43
|
+
delete newData.Rule.AggregatedBooleanExpression;
|
|
44
|
+
newData.Rule.BooleanExpression = '';
|
|
45
|
+
}
|
|
46
|
+
props.onChange(newData);
|
|
47
|
+
} }) })] }));
|
|
56
48
|
};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Tabs } from '../../../components/Tabs';
|
|
3
2
|
import { AlertType, getAlertTypeText } from '../Utilities/getAlertType';
|
|
4
3
|
import { TypeRadio } from '../../Wizard/TypeRadio';
|
|
5
4
|
import { Tag } from '../../../components/Tag';
|
|
6
|
-
import { Flex } from '../../../components/Flex';
|
|
5
|
+
import { Box, Flex } from '../../../components/Flex';
|
|
7
6
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
8
|
-
import FormLayout, { FormRow } from '../../../components/FormLayout';
|
|
9
7
|
import Input from '../../../components/Input';
|
|
10
8
|
import { SummaryText } from '../../Wizard/OnePageAdaptableWizard';
|
|
9
|
+
import { Card } from '../../../components/Card';
|
|
11
10
|
export const isSettingsValid = (data, api) => {
|
|
12
11
|
if (!data.Name?.trim()) {
|
|
13
12
|
return 'Name is required';
|
|
@@ -32,5 +31,5 @@ export const AlertTypeWizardSection = (props) => {
|
|
|
32
31
|
Name: event.target.value,
|
|
33
32
|
});
|
|
34
33
|
};
|
|
35
|
-
return (_jsxs(Flex, { flexDirection: "column", children: [_jsxs(
|
|
34
|
+
return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Name" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Provide a unique name for the Alert" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "alert-name", className: "twa:max-w-[300px] twa:w-full", onChange: handleNameChange, placeholder: "Enter Name", value: data.Name ?? '' }) })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Alert Type" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose when the Alert should fire" })] }), _jsx(Card.Body, { children: _jsxs(Flex, { flexDirection: "column", children: [_jsx(TypeRadio, { text: getAlertTypeText(AlertType.DataChange), description: "A change has been made to the Grid's underlying data", checked: props.alertType === AlertType.DataChange, onClick: () => props.onAlertTypeChange(AlertType.DataChange) }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.RowChange), description: "A Row was added or removed from the data source", checked: props.alertType === AlertType.RowChange, onClick: () => props.onAlertTypeChange(AlertType.RowChange) }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Aggregation), description: "A change has been made to aggregated data (i.e. from multiple Rows)", onClick: () => props.onAlertTypeChange(AlertType.Aggregation), checked: props.alertType === AlertType.Aggregation }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Observable), description: "A specified change (or lack of change) over time has been observed in the Grid", onClick: () => props.onAlertTypeChange(AlertType.Observable), checked: props.alertType === AlertType.Observable }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Validation), description: "A change has broken a data validation rule", checked: props.alertType === AlertType.Validation, onClick: () => props.onAlertTypeChange(AlertType.Validation) }), _jsx(TypeRadio, { text: getAlertTypeText(AlertType.Scheduled), description: "A reminder fires at a date and time you choose", checked: props.alertType === AlertType.Scheduled, onClick: () => props.onAlertTypeChange(AlertType.Scheduled) })] }) })] })] }));
|
|
36
35
|
};
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
4
|
-
import FormLayout, { FormRow } from '../../../components/FormLayout';
|
|
5
4
|
import Input from '../../../components/Input';
|
|
6
5
|
import { CheckBox } from '../../../components/CheckBox';
|
|
7
|
-
import ErrorBox from '../../../components/ErrorBox';
|
|
8
|
-
import { Tabs } from '../../../components/Tabs';
|
|
9
6
|
import { Tag } from '../../../components/Tag';
|
|
10
7
|
import { Box, Flex } from '../../../components/Flex';
|
|
8
|
+
import { Card } from '../../../components/Card';
|
|
11
9
|
export const renderCalculatedColumnDefinitionSummary = (data) => {
|
|
12
10
|
return (_jsxs(Box, { className: "twa:text-2 twa:grid twa:items-center twa:grid-cols-[auto_1fr] twa:gap-2", children: [_jsx(Box, { children: "Column Identifier:" }), _jsx(Box, { children: _jsx(Tag, { children: data.ColumnId }) }), data.FriendlyName ? (_jsxs(_Fragment, { children: [_jsx(Box, { children: "Column Name:" }), _jsx(Box, { children: _jsx(Tag, { children: data.FriendlyName ?? data.ColumnId }) })] })) : null] }));
|
|
13
11
|
};
|
|
@@ -21,7 +19,7 @@ export const isValidCalculatedColumnDefinition = (data, api) => {
|
|
|
21
19
|
return hasAlreadyExistingId ? 'A column with this Name already exists' : true;
|
|
22
20
|
};
|
|
23
21
|
export const CalculatedColumnDefinitionWizardSection = (props) => {
|
|
24
|
-
const { data
|
|
22
|
+
const { data } = useOnePageAdaptableWizardContext();
|
|
25
23
|
const handleColumnIdChange = (event) => {
|
|
26
24
|
let e = event.target;
|
|
27
25
|
props.onChange({
|
|
@@ -37,8 +35,6 @@ export const CalculatedColumnDefinitionWizardSection = (props) => {
|
|
|
37
35
|
});
|
|
38
36
|
};
|
|
39
37
|
const inEdit = props.isEdit;
|
|
40
|
-
const validCheck = isValidCalculatedColumnDefinition(data, api);
|
|
41
|
-
const ErrorMessage = validCheck === true ? null : validCheck;
|
|
42
38
|
const [ColumnNameFocused, setColumnNameFocused] = useState(false);
|
|
43
39
|
const ColumnName = data.FriendlyName;
|
|
44
40
|
const ColumnId = data.ColumnId;
|
|
@@ -52,11 +48,11 @@ export const CalculatedColumnDefinitionWizardSection = (props) => {
|
|
|
52
48
|
},
|
|
53
49
|
});
|
|
54
50
|
};
|
|
55
|
-
return (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
return (_jsx(Box, { "data-name": 'calculated-column-definition', children: _jsxs(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Column Name" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Unique identifier for the Calculated Column" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "column-id", value: data.ColumnId || '', className: "twa:max-w-[500px] twa:w-full", autoFocus: !inEdit, disabled: inEdit, type: "text", placeholder: "Enter a Column Name", onChange: handleColumnIdChange }) })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Column Header" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Display name shown in the Column Header (Name used if not provided)" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "column-name", autoFocus: inEdit, onFocus: () => {
|
|
52
|
+
setColumnNameFocused(true);
|
|
53
|
+
}, onBlur: () => {
|
|
54
|
+
setColumnNameFocused(false);
|
|
55
|
+
}, value: ColumnNameFocused ? ColumnName || '' : ColumnName || ColumnId || '', className: "twa:max-w-[500px] twa:w-full", type: "text", placeholder: "Enter a Column Header (optional)", onChange: handleColumnNameChange }) })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Column Header Tooltip" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Optional text shown when hovering over the Column Header" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "header-tooltip", type: "text", className: "twa:max-w-[500px] twa:w-full", value: HeaderToolTip, onChange: (e) => handleSpecialColumnSettingsChange({
|
|
56
|
+
HeaderToolTip: e.target.value,
|
|
57
|
+
}) }) })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Cell Tooltip" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Show the Expression as a tooltip when hovering over each cell" })] }), _jsx(Card.Body, { children: _jsx(CheckBox, { "data-name": "column-show-tooltip", onChange: (checked) => handleSpecialColumnSettingsChange({ ShowToolTip: checked }), checked: ShowToolTip, children: "Show Expression as Cell Tooltip" }) })] })] }) }));
|
|
62
58
|
};
|
|
@@ -1,11 +1,25 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
4
4
|
import { ExpressionEditor } from '../../../components/ExpressionEditor';
|
|
5
|
-
import { Tabs } from '../../../components/Tabs';
|
|
6
5
|
import { CodeBlock } from '../../../components/CodeBlock';
|
|
7
6
|
import { Humanize } from '../../../Utilities/Extensions/StringExtensions';
|
|
8
|
-
import { Box } from '../../../components/Flex';
|
|
7
|
+
import { Box, Flex } from '../../../components/Flex';
|
|
8
|
+
import { Card } from '../../../components/Card';
|
|
9
|
+
const getExpressionTypeDescription = (expressionType) => {
|
|
10
|
+
switch (expressionType) {
|
|
11
|
+
case 'ScalarExpression':
|
|
12
|
+
return 'Define an expression using values from other cells in each row';
|
|
13
|
+
case 'AggregatedScalarExpression':
|
|
14
|
+
return 'Define an expression using aggregated values from other rows';
|
|
15
|
+
case 'CumulativeAggregatedExpression':
|
|
16
|
+
return 'Define a cumulative expression using values from other rows';
|
|
17
|
+
case 'QuantileAggregatedExpression':
|
|
18
|
+
return 'Define a quantile expression using values from other rows';
|
|
19
|
+
default:
|
|
20
|
+
return '';
|
|
21
|
+
}
|
|
22
|
+
};
|
|
9
23
|
export const renderCalculatedColumnExpressionSummary = (data) => {
|
|
10
24
|
const { api } = useOnePageAdaptableWizardContext();
|
|
11
25
|
return (_jsxs(Box, { className: "twa:text-2", children: ["Column scalar expression:", ' ', _jsx(CodeBlock, { children: api.internalApi.getAdaptableQueryExpressionText(data.Query) })] }));
|
|
@@ -34,8 +48,6 @@ export const CalculatedColumnExpressionWizardSection = (props) => {
|
|
|
34
48
|
CalculatedColumnSettings: {
|
|
35
49
|
...data.CalculatedColumnSettings,
|
|
36
50
|
DataType: dataType,
|
|
37
|
-
// Pivotable,
|
|
38
|
-
// Aggregatable,
|
|
39
51
|
},
|
|
40
52
|
});
|
|
41
53
|
};
|
|
@@ -50,16 +62,17 @@ export const CalculatedColumnExpressionWizardSection = (props) => {
|
|
|
50
62
|
}
|
|
51
63
|
};
|
|
52
64
|
const columns = api.columnApi.internalApi.getQueryableColumnsForUIEditor();
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
const expressionEditor = (() => {
|
|
66
|
+
switch (props.expressionType) {
|
|
67
|
+
case 'ScalarExpression':
|
|
68
|
+
return (_jsx(ExpressionEditor, { type: 'scalar', module: moduleInfo.ModuleName, className: "twa:pl-0", value: data.Query.ScalarExpression, onChange: (ScalarExpression) => setCalculatedColumnExpression({ ScalarExpression }), initialData: initialData, columns: columns, fields: api.expressionApi.internalApi.getAvailableFields(), namedQueries: api.namedQueryApi.getNamedQueries(), isFullExpression: true, api: api }));
|
|
69
|
+
case 'AggregatedScalarExpression':
|
|
70
|
+
case 'CumulativeAggregatedExpression':
|
|
71
|
+
case 'QuantileAggregatedExpression':
|
|
72
|
+
return (_jsx(ExpressionEditor, { type: getEditorType(props.expressionType), module: moduleInfo.ModuleName, className: "twa:pl-0", value: data.Query.AggregatedScalarExpression, onChange: (AggregatedScalarExpression) => setCalculatedColumnExpression({ AggregatedScalarExpression }), initialData: initialData, columns: columns, namedQueries: api.namedQueryApi.getNamedQueries(), isFullExpression: true, api: api }));
|
|
73
|
+
default:
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
})();
|
|
77
|
+
return (_jsx(Flex, { flexDirection: "column", className: "twa:h-full twa:gap-3 twa:p-3", children: _jsxs(Card, { shadow: false, className: "twa:flex-1 twa:min-h-0", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: Humanize(props.expressionType) }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: getExpressionTypeDescription(props.expressionType) })] }), _jsx(Card.Body, { className: "twa:flex-1 twa:min-h-0", children: expressionEditor })] }) }));
|
|
65
78
|
};
|
|
@@ -2,22 +2,20 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
5
|
-
import FormLayout, { FormRow } from '../../../components/FormLayout';
|
|
6
5
|
import Input from '../../../components/Input';
|
|
7
|
-
import ErrorBox from '../../../components/ErrorBox';
|
|
8
|
-
import { Tabs } from '../../../components/Tabs';
|
|
9
6
|
import { SpecialColumnSettingsWizardStep } from '../../SpecialColumnSettingsWizardStep';
|
|
10
7
|
import { getCalculatedColumnSettingsTags } from '../Utilities/getCalculatedColumnSettingsTags';
|
|
11
8
|
import { Box, Flex } from '../../../components/Flex';
|
|
12
9
|
import { TagList } from '../../../components/Tag/Tag';
|
|
13
10
|
import { SingleSelect } from '../../../components/NewSelect';
|
|
11
|
+
import { Card } from '../../../components/Card';
|
|
14
12
|
export const renderCalculatedColumnSettingsSummary = (data) => {
|
|
15
13
|
const options = getCalculatedColumnSettingsTags(data.CalculatedColumnSettings);
|
|
16
14
|
return _jsx(TagList, { tags: options });
|
|
17
15
|
};
|
|
18
16
|
export const isValidCalculatedColumnSettings = (data) => {
|
|
19
17
|
if (!data.CalculatedColumnSettings?.DataType) {
|
|
20
|
-
return '
|
|
18
|
+
return 'Please select a data type (could not be inferred from the expression)';
|
|
21
19
|
}
|
|
22
20
|
return true;
|
|
23
21
|
};
|
|
@@ -64,9 +62,9 @@ export const CalculatedColumnSettingsWizardSection = (props) => {
|
|
|
64
62
|
{ value: 'boolean', label: 'Boolean' },
|
|
65
63
|
{ value: 'numberArray', label: 'NumberArray' },
|
|
66
64
|
];
|
|
67
|
-
return (
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
return (_jsx(Box, { "data-name": 'calculated-column-settings', children: _jsxs(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Data Type" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose the data type for the Calculated Column values" })] }), _jsxs(Card.Body, { className: "twa:p-1 twa:gap-1", children: [_jsx(SingleSelect, { "data-name": "column-type", placeholder: "Select Data Type", items: options, value: dataType, onValueChange: (value) => handleDataTypeChange(value), className: "twa:max-w-[300px]" }), ErrorMessage ? (_jsx(Box, { className: "twa:text-2 twa:text-error", children: ErrorMessage })) : null] })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Width" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Optional Column Width in pixels" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "column-width", type: "number", className: "twa:max-w-[300px]", value: Width || '', onChange: (e) => handleSpecialColumnSettingsChange({
|
|
66
|
+
Width: Number(e.target.value),
|
|
67
|
+
}) }) })] }), _jsx(SpecialColumnSettingsWizardStep, { isEditable: false,
|
|
68
|
+
// @ts-ignore CalculatedColumn has a broader DataType
|
|
69
|
+
settings: data.CalculatedColumnSettings, onChange: handleSpecialColumnSettingsChange })] }) }));
|
|
72
70
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Tabs } from '../../../components/Tabs';
|
|
3
2
|
import { TypeRadio } from '../../Wizard/TypeRadio';
|
|
4
|
-
import { Flex } from '../../../components/Flex';
|
|
3
|
+
import { Box, Flex } from '../../../components/Flex';
|
|
4
|
+
import { Card } from '../../../components/Card';
|
|
5
5
|
export const CalculatedColumnTypeWizardSection = (props) => {
|
|
6
|
-
return (_jsxs(
|
|
6
|
+
return (_jsx(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: _jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Calculated Column Type" }) }), _jsx(Card.Body, { children: _jsxs(Flex, { flexDirection: "column", children: [_jsx(TypeRadio, { text: 'Standard', description: "The calculated value is derived from other cells in the row", checked: props.type === 'ScalarExpression', onClick: () => props.onTypeChange('ScalarExpression') }), _jsx(TypeRadio, { text: 'Aggregated', description: "The calculated value is derived from other rows", checked: props.type === 'AggregatedScalarExpression', onClick: () => props.onTypeChange('AggregatedScalarExpression') }), _jsx(TypeRadio, { text: 'Cumulative', description: "The calculated value is derived cumulatively from other rows", checked: props.type === 'CumulativeAggregatedExpression', onClick: () => props.onTypeChange('CumulativeAggregatedExpression') }), _jsx(TypeRadio, { text: 'Quantile', description: "The calculated value is derived from other rows using quantile aggregations", checked: props.type === 'QuantileAggregatedExpression', onClick: () => props.onTypeChange('QuantileAggregatedExpression') })] }) })] }) }));
|
|
7
7
|
};
|
|
@@ -55,7 +55,7 @@ class CellSummaryViewPanelComponent extends React.Component {
|
|
|
55
55
|
'twa:flex-1 twa:flex-wrap': !isToolbar,
|
|
56
56
|
}), children: [_jsx(Flex, { className: "twa:flex-1", children: _jsx(SingleSelect, { ariaLabel: "Cell Summary Operation Selector", className: `ab-${elementType}__CellSummary__select twa:w-full`, disabled: shouldDisable, items: [...operationMenuItems, ...operationDefinitions], onValueChange: (x) => this.props.onCellSummaryOperationChange(x), value: this.props.CellSummaryOperation }) }), _jsx(Flex, { className: "twa:items-center twa:gap-1", children: _jsxs(_Fragment, { children: [_jsx(Flex, { className: clsx(`ab-${elementType}__CellSummary__value twa:min-w-[50px]`, {
|
|
57
57
|
'twa:rounded-standard twa:text-color-text-on-info twa:bg-color-info twa:text-2': !isToolbar,
|
|
58
|
-
'twa:flex-1 twa:text-
|
|
58
|
+
'twa:flex-1 twa:text-primary-foreground twa:justify-center': isToolbar,
|
|
59
59
|
}), children: operationValue }), _jsx(AdaptablePopover, { popoverMaxWidth: 360, className: "ab-ToolPanel__CellSummary__info", bodyText: [cellSummaryPopover], useButton: true, showEvent: 'focus', hideEvent: "blur", tooltipText: 'Show Cell Summaries', disabled: !this.props.CellSummary?.Count })] }) })] }));
|
|
60
60
|
}
|
|
61
61
|
checkSelectedCells() {
|
|
@@ -2,7 +2,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useAdaptable } from '../../../AdaptableContext';
|
|
4
4
|
import { OnePageAdaptableWizard } from '../../../Wizard/OnePageAdaptableWizard';
|
|
5
|
-
import { PreviewChartSection } from './PreviewChartSection';
|
|
6
5
|
import { isSettingsValid, SettingsSection } from './SettingsSection';
|
|
7
6
|
import { ObjectTagsWizardSection, renderObjectTagsSummary, } from '../../../Wizard/ObjectTagsWizardSection';
|
|
8
7
|
import { Box } from '../../../../components/Flex';
|
|
@@ -17,10 +16,10 @@ export const AgChargingWizard = (props) => {
|
|
|
17
16
|
}, [chartDefinition]);
|
|
18
17
|
return (_jsx(OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: chartDefinition, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
|
|
19
18
|
{
|
|
20
|
-
title: '
|
|
21
|
-
details: '
|
|
19
|
+
title: 'Chart',
|
|
20
|
+
details: 'Configure chart properties and preview the result',
|
|
22
21
|
isValid: isSettingsValid,
|
|
23
|
-
render: () => (_jsx(
|
|
22
|
+
render: () => (_jsx(SettingsSection, { chartDefinition: chartDefinition, onChange: setChartDefinition })),
|
|
24
23
|
},
|
|
25
24
|
{
|
|
26
25
|
details: 'Select Chart Tags',
|
|
@@ -29,11 +28,5 @@ export const AgChargingWizard = (props) => {
|
|
|
29
28
|
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(ObjectTagsWizardSection, { onChange: setChartDefinition }) })),
|
|
30
29
|
renderSummary: renderObjectTagsSummary,
|
|
31
30
|
},
|
|
32
|
-
'-',
|
|
33
|
-
{
|
|
34
|
-
title: 'Preview Chart',
|
|
35
|
-
details: 'Chart Preview',
|
|
36
|
-
render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(PreviewChartSection, { chartDefinition: chartDefinition, onChange: setChartDefinition }) })),
|
|
37
|
-
},
|
|
38
31
|
] }));
|
|
39
32
|
};
|
|
@@ -1,61 +1,44 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import * as React from 'react';
|
|
3
2
|
import { CheckBox } from '../../../../components/CheckBox';
|
|
4
|
-
import
|
|
5
|
-
import FormLayout, { FormRow } from '../../../../components/FormLayout';
|
|
3
|
+
import { SingleSelect } from '../../../../components/NewSelect';
|
|
6
4
|
import { validateChartName } from '../../../../Utilities/Helpers/chartingHelper';
|
|
7
|
-
import
|
|
5
|
+
import { Box, Flex } from '../../../../components/Flex';
|
|
6
|
+
import { Card } from '../../../../components/Card';
|
|
7
|
+
import Input from '../../../../components/Input';
|
|
8
|
+
import { PreviewChartSection } from './PreviewChartSection';
|
|
8
9
|
export const isSettingsValid = (chartDefinition, api) => {
|
|
9
10
|
return validateChartName(api, chartDefinition.Name, chartDefinition.Uuid);
|
|
10
11
|
};
|
|
12
|
+
const AGG_FUNCS = ['sum', 'min', 'max', 'count', 'avg', 'first', 'last'];
|
|
11
13
|
export const SettingsSection = (props) => {
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}, [props.chartDefinition]);
|
|
19
|
-
const handleUnLinkChange = React.useCallback(() => {
|
|
20
|
-
props.onChange({
|
|
21
|
-
...props.chartDefinition,
|
|
22
|
-
Model: {
|
|
23
|
-
...props.chartDefinition.Model,
|
|
24
|
-
unlinkChart: !props.chartDefinition.Model.unlinkChart,
|
|
25
|
-
},
|
|
26
|
-
});
|
|
27
|
-
}, [props.chartDefinition]);
|
|
28
|
-
const handleSuppressChartRanges = React.useCallback(() => {
|
|
29
|
-
props.onChange({
|
|
30
|
-
...props.chartDefinition,
|
|
31
|
-
Model: {
|
|
32
|
-
...props.chartDefinition.Model,
|
|
33
|
-
suppressChartRanges: !props.chartDefinition.Model.suppressChartRanges,
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
}, [props.chartDefinition]);
|
|
37
|
-
const aggFuncs = ['sum', 'min', 'max', 'count', 'avg', 'first', 'last'];
|
|
38
|
-
const aggFuncsOptions = aggFuncs.map((aggFunc) => ({
|
|
39
|
-
label: aggFunc,
|
|
40
|
-
onClick: () => {
|
|
41
|
-
props.onChange({
|
|
42
|
-
...props.chartDefinition,
|
|
43
|
-
Model: {
|
|
44
|
-
...props.chartDefinition.Model,
|
|
45
|
-
aggFunc,
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
},
|
|
14
|
+
const { chartDefinition, onChange } = props;
|
|
15
|
+
const aggFunc = chartDefinition.Model.aggFunc;
|
|
16
|
+
const showAggFunc = chartDefinition.Model.modelType === 'range' && typeof aggFunc !== 'function';
|
|
17
|
+
const aggFuncsOptions = AGG_FUNCS.map((option) => ({
|
|
18
|
+
label: option,
|
|
19
|
+
value: option,
|
|
49
20
|
}));
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
21
|
+
return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3 twa:h-full twa:min-h-0", children: [_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Name" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Provide a unique name for the chart" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "chart-name", className: "twa:max-w-[300px] twa:w-full", onChange: (event) => onChange({
|
|
22
|
+
...chartDefinition,
|
|
23
|
+
Name: event.target.value,
|
|
24
|
+
Model: chartDefinition.Model,
|
|
25
|
+
}), value: chartDefinition.Name ?? '', placeholder: "Enter chart name" }) })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Unlink Chart" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "When enabled, the chart is not linked to the grid data range" })] }), _jsx(Card.Body, { children: _jsx(CheckBox, { "data-name": "unlink-chart", checked: chartDefinition.Model.unlinkChart, onChange: (checked) => onChange({
|
|
26
|
+
...chartDefinition,
|
|
27
|
+
Model: {
|
|
28
|
+
...chartDefinition.Model,
|
|
29
|
+
unlinkChart: checked,
|
|
30
|
+
},
|
|
31
|
+
}), children: "Unlink from data" }) })] }), _jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Suppress Chart Ranges" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Hide chart range highlights on the grid while the chart is open" })] }), _jsx(Card.Body, { children: _jsx(CheckBox, { "data-name": "suppress-chart-ranges", checked: chartDefinition.Model.suppressChartRanges, onChange: (checked) => onChange({
|
|
32
|
+
...chartDefinition,
|
|
33
|
+
Model: {
|
|
34
|
+
...chartDefinition.Model,
|
|
35
|
+
suppressChartRanges: checked,
|
|
36
|
+
},
|
|
37
|
+
}), children: "Suppress chart ranges" }) })] }), showAggFunc ? (_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Aggregation" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Aggregation function used for range charts" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(SingleSelect, { "data-name": "chart-agg-func", placeholder: "Select", className: "twa:max-w-[300px]", items: aggFuncsOptions, value: aggFunc || undefined, onValueChange: (value) => onChange({
|
|
38
|
+
...chartDefinition,
|
|
39
|
+
Model: {
|
|
40
|
+
...chartDefinition.Model,
|
|
41
|
+
aggFunc: value,
|
|
42
|
+
},
|
|
43
|
+
}) }) })] })) : null, _jsxs(Card, { shadow: false, className: "twa:flex-1 twa:min-h-0", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Preview" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Live preview of the chart \u2014 changes here are reflected in the chart model" })] }), _jsx(Card.Body, { className: "twa:flex-1 twa:min-h-[280px]", children: _jsx(PreviewChartSection, { chartDefinition: chartDefinition, onChange: onChange }) })] })] }));
|
|
61
44
|
};
|
|
@@ -3,25 +3,6 @@ import * as React from 'react';
|
|
|
3
3
|
import { useAdaptable } from '../../../AdaptableContext';
|
|
4
4
|
import { OnePageAdaptableWizard } from '../../../Wizard/OnePageAdaptableWizard';
|
|
5
5
|
import { isSettingsValid, SettingsSection } from './SettingsSection';
|
|
6
|
-
import { Box } from '../../../../components/Flex';
|
|
7
|
-
const PreviewChartSection = ({ chartDefinition }) => {
|
|
8
|
-
const adaptable = useAdaptable();
|
|
9
|
-
const divRef = React.useRef(null);
|
|
10
|
-
React.useEffect(() => {
|
|
11
|
-
if (!divRef.current) {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
const container = {
|
|
15
|
-
name: 'Preview Chart',
|
|
16
|
-
element: divRef.current,
|
|
17
|
-
};
|
|
18
|
-
const transientChartDefinition = adaptable.api.chartingApi.internalApi.onPreviewExternalChart(chartDefinition, container);
|
|
19
|
-
return () => {
|
|
20
|
-
adaptable.api.chartingApi.internalApi.onHideExternalChart(transientChartDefinition);
|
|
21
|
-
};
|
|
22
|
-
}, [divRef]);
|
|
23
|
-
return _jsx("div", { ref: divRef });
|
|
24
|
-
};
|
|
25
6
|
export const ExternalChartingWizard = (props) => {
|
|
26
7
|
const adaptable = useAdaptable();
|
|
27
8
|
const onPreviewChart = adaptable.api.optionsApi.getChartingOptions().externalChartingOptions?.onPreviewChart;
|
|
@@ -34,18 +15,10 @@ export const ExternalChartingWizard = (props) => {
|
|
|
34
15
|
};
|
|
35
16
|
return (_jsx(OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: chartDefinition, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
|
|
36
17
|
{
|
|
37
|
-
title: '
|
|
38
|
-
details: '
|
|
18
|
+
title: 'Chart',
|
|
19
|
+
details: 'Configure chart properties and preview the result',
|
|
39
20
|
isValid: isSettingsValid,
|
|
40
|
-
render: () => (_jsx(
|
|
21
|
+
render: () => (_jsx(SettingsSection, { chartDefinition: chartDefinition, onChange: setChartDefinition, showPreview: Boolean(onPreviewChart) })),
|
|
41
22
|
},
|
|
42
|
-
|
|
43
|
-
? {
|
|
44
|
-
title: 'Preview Chart',
|
|
45
|
-
render: () => {
|
|
46
|
-
return (_jsx(Box, { className: "twa:p-2", children: _jsx(PreviewChartSection, { chartDefinition: chartDefinition }) }));
|
|
47
|
-
},
|
|
48
|
-
}
|
|
49
|
-
: null,
|
|
50
|
-
].filter(Boolean) }));
|
|
23
|
+
] }));
|
|
51
24
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { useAdaptable } from '../../../AdaptableContext';
|
|
4
|
+
export const PreviewChartSection = (props) => {
|
|
5
|
+
const adaptable = useAdaptable();
|
|
6
|
+
const divRef = React.useRef(null);
|
|
7
|
+
React.useEffect(() => {
|
|
8
|
+
if (!divRef.current) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const container = {
|
|
12
|
+
name: 'Preview Chart',
|
|
13
|
+
element: divRef.current,
|
|
14
|
+
};
|
|
15
|
+
const transientChartDefinition = adaptable.api.chartingApi.internalApi.onPreviewExternalChart(props.chartDefinition, container);
|
|
16
|
+
return () => {
|
|
17
|
+
adaptable.api.chartingApi.internalApi.onHideExternalChart(transientChartDefinition);
|
|
18
|
+
};
|
|
19
|
+
}, [divRef]);
|
|
20
|
+
return _jsx("div", { ref: divRef, className: "twa:min-h-[280px] twa:h-full twa:w-full" });
|
|
21
|
+
};
|
|
@@ -5,5 +5,6 @@ export declare const isSettingsValid: (chartDefinition: ExternalChartDefinition,
|
|
|
5
5
|
export interface SettingsSectionProps {
|
|
6
6
|
chartDefinition: ExternalChartDefinition;
|
|
7
7
|
onChange: (chartDefinition: ExternalChartDefinition) => void;
|
|
8
|
+
showPreview?: boolean;
|
|
8
9
|
}
|
|
9
10
|
export declare const SettingsSection: React.FunctionComponent<SettingsSectionProps>;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import FormLayout, { FormRow } from '../../../../components/FormLayout';
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
2
|
import { validateChartName } from '../../../../Utilities/Helpers/chartingHelper';
|
|
4
|
-
import
|
|
3
|
+
import { Box, Flex } from '../../../../components/Flex';
|
|
4
|
+
import { Card } from '../../../../components/Card';
|
|
5
|
+
import Input from '../../../../components/Input';
|
|
6
|
+
import { PreviewChartSection } from './PreviewChartSection';
|
|
5
7
|
export const isSettingsValid = (chartDefinition, api) => {
|
|
6
8
|
return validateChartName(api, chartDefinition.Name, chartDefinition.Uuid);
|
|
7
9
|
};
|
|
8
10
|
export const SettingsSection = (props) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
const { chartDefinition, onChange, showPreview } = props;
|
|
12
|
+
return (_jsxs(Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3 twa:h-full twa:min-h-0", children: [_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Name" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Provide a unique name for the chart" })] }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(Input, { "data-name": "chart-name", className: "twa:max-w-[300px] twa:w-full", value: chartDefinition.Name ?? '', placeholder: "Enter chart name", onChange: (event) => onChange({
|
|
13
|
+
...chartDefinition,
|
|
14
|
+
Name: event.target.value,
|
|
15
|
+
}) }) })] }), showPreview ? (_jsxs(Card, { shadow: false, className: "twa:flex-1 twa:min-h-0", children: [_jsxs(Card.Title, { children: [_jsx(Box, { className: "twa:font-medium", children: "Preview" }), _jsx(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Live preview of the external chart" })] }), _jsx(Card.Body, { className: "twa:flex-1 twa:min-h-[280px]", children: _jsx(PreviewChartSection, { chartDefinition: chartDefinition }) })] })) : null] }));
|
|
13
16
|
};
|
|
@@ -53,7 +53,7 @@ export const CommentsEditor = (props) => {
|
|
|
53
53
|
const formatDate = (date, format) => {
|
|
54
54
|
return FormatHelper.DateFormatter(date, { Pattern: format });
|
|
55
55
|
};
|
|
56
|
-
return (_jsxs(Panel, { color: "var(--ab-color-
|
|
56
|
+
return (_jsxs(Panel, { color: "var(--ab-color-primary-foreground)", onClick: () => props.enableEditMode(), className: "ab-CommentPopup twa:min-w-[250px]", onKeyDown: (event) => {
|
|
57
57
|
if (event.key === 'Escape') {
|
|
58
58
|
api.commentApi.hideCommentsPopup();
|
|
59
59
|
}
|
|
@@ -28,5 +28,5 @@ export const ColumnFilterWindow = (props) => {
|
|
|
28
28
|
return (_jsxs(Flex, { children: [label, _jsx(Box, { className: "twa:flex-1" }), _jsx(AdaptableIconComponent, { icon: { name: 'filter' } })] }));
|
|
29
29
|
}
|
|
30
30
|
return label;
|
|
31
|
-
}, onChange: (column) => setColumnId(column), filterColumn: (column) => column.queryable,
|
|
31
|
+
}, onChange: (column) => setColumnId(column), filterColumn: (column) => column.queryable, value: columnId }) }) }) }), _jsx(AdaptableColumnFilter, { columnId: columnId, location: 'filterForm' })] }));
|
|
32
32
|
};
|