@adaptabletools/adaptable 23.0.0-canary.4 → 23.0.0-canary.6
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 +117 -62
- package/package.json +9 -4
- package/src/AdaptableOptions/EditOptions.d.ts +2 -2
- package/src/AdaptableState/Common/AggregationColumns.d.ts +14 -6
- package/src/AdaptableState/Common/AggregationColumns.js +27 -2
- package/src/AdaptableState/Common/ColumnScope.d.ts +4 -0
- package/src/AdaptableState/Common/Enums.d.ts +5 -5
- package/src/AdaptableState/Common/Enums.js +4 -4
- 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 +17 -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/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/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 +32 -41
- 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/components/ColumnFilterInput.js +0 -1
- package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +3 -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/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 +21 -22
- 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/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/agGrid/AdaptableAgGrid.d.ts +1 -0
- package/src/agGrid/AdaptableAgGrid.js +36 -26
- package/src/agGrid/AgGridAdapter.d.ts +1 -1
- package/src/agGrid/AgGridAdapter.js +27 -17
- package/src/agGrid/AgGridColumnAdapter.js +9 -15
- 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/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/env.js +2 -2
- package/src/layout-manager/src/index.js +2 -9
- package/src/metamodel/adaptable.metamodel.d.ts +39 -29
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +5 -4
- package/themes/dark.css +1 -68
- package/themes/light.css +1 -5
- package/tsconfig.esm.tsbuildinfo +1 -1
- 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/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
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AdaptableTheme, SystemThemeEntry } from '../../AdaptableState/ThemeState';
|
|
2
|
+
import { AdaptableLogger } from '../../agGrid/AdaptableLogger';
|
|
3
|
+
export declare function isLegacySystemThemeObject(theme: SystemThemeEntry | AdaptableTheme): theme is AdaptableTheme;
|
|
4
|
+
export declare function resolveSystemThemeDescription(name: string): string;
|
|
5
|
+
export declare function systemThemeEntryToAdaptableTheme(theme: SystemThemeEntry | AdaptableTheme, logger?: AdaptableLogger): AdaptableTheme;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { StaticThemes } from '../../themes';
|
|
2
|
+
import { logDeprecation } from '../logDeprecation';
|
|
3
|
+
const LEGACY_SYSTEM_THEME_PROPS = ['Description', 'CSSVariables', 'Variant'];
|
|
4
|
+
export function isLegacySystemThemeObject(theme) {
|
|
5
|
+
if (typeof theme === 'string') {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
return LEGACY_SYSTEM_THEME_PROPS.some((prop) => prop in theme && theme[prop] !== undefined);
|
|
9
|
+
}
|
|
10
|
+
export function resolveSystemThemeDescription(name) {
|
|
11
|
+
return StaticThemes.find((staticTheme) => staticTheme.Name === name)?.Description ?? name;
|
|
12
|
+
}
|
|
13
|
+
export function systemThemeEntryToAdaptableTheme(theme, logger) {
|
|
14
|
+
if (typeof theme === 'string') {
|
|
15
|
+
return {
|
|
16
|
+
Name: theme,
|
|
17
|
+
Description: resolveSystemThemeDescription(theme),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
if (isLegacySystemThemeObject(theme)) {
|
|
21
|
+
if (logger) {
|
|
22
|
+
logDeprecation(logger, 'ThemeState', 'SystemThemes', undefined, 'Passing a full AdaptableTheme object in SystemThemes is deprecated. Use a theme name string or SystemThemeOptions (Name with AgThemeMode / AgGridClassName only).');
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
Name: theme.Name,
|
|
26
|
+
Description: theme.Description ?? resolveSystemThemeDescription(theme.Name),
|
|
27
|
+
AgThemeMode: theme.AgThemeMode,
|
|
28
|
+
AgGridClassName: theme.AgGridClassName,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const options = theme;
|
|
32
|
+
return {
|
|
33
|
+
Name: options.Name,
|
|
34
|
+
Description: resolveSystemThemeDescription(options.Name),
|
|
35
|
+
AgThemeMode: options.AgThemeMode,
|
|
36
|
+
AgGridClassName: options.AgGridClassName,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PercentBarStyle, StyledColumn } from '../../AdaptableState/StyledColumnState';
|
|
2
|
+
export declare const hasPercentBarRangesConfigured: (pb: PercentBarStyle | undefined) => boolean;
|
|
3
|
+
/** Illustrative scale for preview — shows negatives when origin is Auto or Zero. */
|
|
4
|
+
export declare const getPercentBarPreviewScale: (pb: PercentBarStyle) => {
|
|
5
|
+
min: number;
|
|
6
|
+
max: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const getPercentBarPreviewSampleValues: (pb: PercentBarStyle) => number[];
|
|
9
|
+
export type PercentBarPreviewGeometry = {
|
|
10
|
+
barLeftPercent: number;
|
|
11
|
+
barWidthPercent: number;
|
|
12
|
+
percentageValue: number;
|
|
13
|
+
barColor?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare const getPercentBarPreviewGeometry: (numericValue: number, pb: PercentBarStyle, min: number, max: number) => PercentBarPreviewGeometry;
|
|
16
|
+
export declare const formatPercentBarPreviewCellText: (numericValue: number, percentageValue: number, pb: PercentBarStyle) => string;
|
|
17
|
+
export declare const getPercentBarPreviewTrackColor: (pb: PercentBarStyle) => string | undefined;
|
|
18
|
+
export declare const getPercentBarPreviewResolvedBarColor: (color: string | undefined) => string | undefined;
|
|
19
|
+
export declare const hasPercentBarStylePreview: (styledColumn: StyledColumn) => boolean;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { getVariableColor } from './StyleHelper';
|
|
2
|
+
import clamp from '../utils/clamp';
|
|
3
|
+
import { STYLED_COLUMN_PREVIEW_SAMPLE_COUNT, ZERO_CENTRED_PREVIEW_SCALE_MAX, ZERO_CENTRED_PREVIEW_SCALE_MIN, } from './StyledColumnGradientHelper';
|
|
4
|
+
const evenlySpacedValues = (min, max, count) => {
|
|
5
|
+
if (count <= 1) {
|
|
6
|
+
return [min];
|
|
7
|
+
}
|
|
8
|
+
const step = (max - min) / (count - 1);
|
|
9
|
+
return Array.from({ length: count }, (_, i) => min + step * i);
|
|
10
|
+
};
|
|
11
|
+
const toFraction = (value, min, max) => {
|
|
12
|
+
if (max === min) {
|
|
13
|
+
return 0;
|
|
14
|
+
}
|
|
15
|
+
return clamp((value - min) / (max - min), 0, 1);
|
|
16
|
+
};
|
|
17
|
+
const resolveOrigin = (percentBarStyle, cellValue, min, max) => {
|
|
18
|
+
const origin = percentBarStyle.Origin ?? 'Auto';
|
|
19
|
+
if (typeof origin === 'number') {
|
|
20
|
+
return origin;
|
|
21
|
+
}
|
|
22
|
+
if (origin === 'Zero') {
|
|
23
|
+
return 0;
|
|
24
|
+
}
|
|
25
|
+
if (origin === 'Min') {
|
|
26
|
+
return min;
|
|
27
|
+
}
|
|
28
|
+
if (min < 0 || max < 0 || cellValue < 0) {
|
|
29
|
+
return 0;
|
|
30
|
+
}
|
|
31
|
+
return min;
|
|
32
|
+
};
|
|
33
|
+
const columnComparisonUsesCentredAxis = (origin) => {
|
|
34
|
+
const o = origin ?? 'Auto';
|
|
35
|
+
if (typeof o === 'number') {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return o === 'Zero' || o === 'Auto';
|
|
39
|
+
};
|
|
40
|
+
const resolveRangeEndpoint = (endpoint, scaleMin, scaleMax) => {
|
|
41
|
+
if (endpoint === 'Col-Min') {
|
|
42
|
+
return scaleMin;
|
|
43
|
+
}
|
|
44
|
+
if (endpoint === 'Col-Max') {
|
|
45
|
+
return scaleMax;
|
|
46
|
+
}
|
|
47
|
+
if (typeof endpoint === 'number') {
|
|
48
|
+
return endpoint;
|
|
49
|
+
}
|
|
50
|
+
return scaleMin;
|
|
51
|
+
};
|
|
52
|
+
const getPreviewBarColor = (value, pb, scaleMin, scaleMax) => {
|
|
53
|
+
if (pb.ColumnComparison) {
|
|
54
|
+
return pb.ColumnComparison.Color;
|
|
55
|
+
}
|
|
56
|
+
for (const range of pb.CellRanges ?? []) {
|
|
57
|
+
const rMin = resolveRangeEndpoint(range.Min, scaleMin, scaleMax);
|
|
58
|
+
const rMax = resolveRangeEndpoint(range.Max, scaleMin, scaleMax);
|
|
59
|
+
if (value >= Math.min(rMin, rMax) && value <= Math.max(rMin, rMax)) {
|
|
60
|
+
return range.Color;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return pb.CellRanges?.[0]?.Color;
|
|
64
|
+
};
|
|
65
|
+
export const hasPercentBarRangesConfigured = (pb) => !!(pb?.CellRanges?.length || pb?.ColumnComparison);
|
|
66
|
+
/** Illustrative scale for preview — shows negatives when origin is Auto or Zero. */
|
|
67
|
+
export const getPercentBarPreviewScale = (pb) => {
|
|
68
|
+
const origin = pb.Origin ?? 'Auto';
|
|
69
|
+
if (origin === 'Zero' || origin === 'Auto') {
|
|
70
|
+
return { min: ZERO_CENTRED_PREVIEW_SCALE_MIN, max: ZERO_CENTRED_PREVIEW_SCALE_MAX };
|
|
71
|
+
}
|
|
72
|
+
return { min: 0, max: 100 };
|
|
73
|
+
};
|
|
74
|
+
export const getPercentBarPreviewSampleValues = (pb) => {
|
|
75
|
+
const { min, max } = getPercentBarPreviewScale(pb);
|
|
76
|
+
return evenlySpacedValues(min, max, STYLED_COLUMN_PREVIEW_SAMPLE_COUNT);
|
|
77
|
+
};
|
|
78
|
+
export const getPercentBarPreviewGeometry = (numericValue, pb, min, max) => {
|
|
79
|
+
let percentageValue = 0;
|
|
80
|
+
let barLeftPercent = 0;
|
|
81
|
+
let barWidthPercent = 0;
|
|
82
|
+
if (pb.ColumnComparison) {
|
|
83
|
+
const absMax = Math.abs(max);
|
|
84
|
+
percentageValue = absMax === 0 ? 0 : (numericValue / absMax) * 100;
|
|
85
|
+
const magnitude = Math.min(100, Math.abs(percentageValue));
|
|
86
|
+
const origin = pb.Origin ?? 'Auto';
|
|
87
|
+
const isCentred = columnComparisonUsesCentredAxis(origin);
|
|
88
|
+
if (isCentred) {
|
|
89
|
+
const halfWidth = magnitude / 2;
|
|
90
|
+
if (percentageValue >= 0) {
|
|
91
|
+
barLeftPercent = 50;
|
|
92
|
+
barWidthPercent = halfWidth;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
barLeftPercent = 50 - halfWidth;
|
|
96
|
+
barWidthPercent = halfWidth;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
barLeftPercent = 0;
|
|
101
|
+
barWidthPercent = magnitude;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else if (max === min) {
|
|
105
|
+
percentageValue = 0;
|
|
106
|
+
barLeftPercent = 0;
|
|
107
|
+
barWidthPercent = 0;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
percentageValue = ((clamp(numericValue, min, max) - min) / (max - min)) * 100;
|
|
111
|
+
const origin = resolveOrigin(pb, numericValue, min, max);
|
|
112
|
+
const valueFrac = toFraction(numericValue, min, max);
|
|
113
|
+
const originFrac = toFraction(origin, min, max);
|
|
114
|
+
const start = Math.min(valueFrac, originFrac);
|
|
115
|
+
const end = Math.max(valueFrac, originFrac);
|
|
116
|
+
barLeftPercent = start * 100;
|
|
117
|
+
barWidthPercent = (end - start) * 100;
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
barLeftPercent,
|
|
121
|
+
barWidthPercent,
|
|
122
|
+
percentageValue,
|
|
123
|
+
barColor: getPreviewBarColor(numericValue, pb, min, max),
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
export const formatPercentBarPreviewCellText = (numericValue, percentageValue, pb) => {
|
|
127
|
+
const parts = [];
|
|
128
|
+
if (pb.CellText?.includes('CellValue')) {
|
|
129
|
+
parts.push(Number.isInteger(numericValue) ? String(numericValue) : numericValue.toFixed(1));
|
|
130
|
+
}
|
|
131
|
+
if (pb.CellText?.includes('PercentageValue')) {
|
|
132
|
+
parts.push(`${percentageValue.toFixed(0)}%`);
|
|
133
|
+
}
|
|
134
|
+
return parts.join(' ');
|
|
135
|
+
};
|
|
136
|
+
export const getPercentBarPreviewTrackColor = (pb) => {
|
|
137
|
+
if (pb.ColumnComparison) {
|
|
138
|
+
return pb.BackColor ?? undefined;
|
|
139
|
+
}
|
|
140
|
+
return pb.BackColor ?? undefined;
|
|
141
|
+
};
|
|
142
|
+
export const getPercentBarPreviewResolvedBarColor = (color) => color ? getVariableColor(color) : undefined;
|
|
143
|
+
export const hasPercentBarStylePreview = (styledColumn) => hasPercentBarRangesConfigured(styledColumn.PercentBarStyle);
|
|
@@ -16,7 +16,7 @@ import { PlusMinusNudge } from '../AdaptableState/PlusMinusState';
|
|
|
16
16
|
import { Shortcut } from '../AdaptableState/ShortcutState';
|
|
17
17
|
import { NotificationsOptions } from '../AdaptableOptions/NotificationsOptions';
|
|
18
18
|
import { CellSummmaryInfo } from '../AdaptableState/Common/CellSummary';
|
|
19
|
-
import {
|
|
19
|
+
import { ChartDefinition, ColumnFilter, CommentThread, CustomDisplayFormatterContext, FlashingCellDefinition, RowDataChangedInfo, SpecialColumnSettings, SystemFilterPredicateId } from '../types';
|
|
20
20
|
import { IRowNode } from 'ag-grid-enterprise';
|
|
21
21
|
import { AdaptableApi, AdaptableComment, BadgeStyleDefinition, CellAddress, NamedQuery, PivotLayout, TableLayout } from '../../types';
|
|
22
22
|
import { ToastOptions } from '../components/Toastify';
|
|
@@ -54,7 +54,6 @@ export declare function CreateEmptyStyledColumn(): StyledColumn;
|
|
|
54
54
|
export declare function CreateDefaultStyledColumnBadge(): BadgeStyleDefinition;
|
|
55
55
|
export declare function CreateEmptyChartDefinition(chartDefinition?: ChartDefinition): ChartDefinition;
|
|
56
56
|
export declare function CreateCustomDisplayFormatterContext(value: any, node: IRowNode, abColumn: AdaptableColumn, api: AdaptableApi): CustomDisplayFormatterContext;
|
|
57
|
-
export declare function CreateEmptyTheme(name?: string): AdaptableTheme;
|
|
58
57
|
export declare function CreateEmptyCommentThread(cellAddress: CellAddress): CommentThread;
|
|
59
58
|
export declare function CreateToastOptions(notificationsOptions: NotificationsOptions, { onClose, containerId }: {
|
|
60
59
|
onClose?: VoidFunction;
|
|
@@ -91,7 +90,6 @@ export declare const ObjectFactory: {
|
|
|
91
90
|
CreateEmptyStyledColumn: typeof CreateEmptyStyledColumn;
|
|
92
91
|
CreateDefaultStyledColumnBadge: typeof CreateDefaultStyledColumnBadge;
|
|
93
92
|
CreateEmptyChartDefinition: typeof CreateEmptyChartDefinition;
|
|
94
|
-
CreateEmptyTheme: typeof CreateEmptyTheme;
|
|
95
93
|
CreateEmptyCommentThread: typeof CreateEmptyCommentThread;
|
|
96
94
|
CreateAdaptableComment: typeof CreateAdaptableComment;
|
|
97
95
|
CreateDefaultSchedule: typeof CreateDefaultSchedule;
|
|
@@ -288,13 +288,6 @@ export function CreateCustomDisplayFormatterContext(value, node, abColumn, api)
|
|
|
288
288
|
...api.internalApi.buildBaseContext(),
|
|
289
289
|
};
|
|
290
290
|
}
|
|
291
|
-
export function CreateEmptyTheme(name) {
|
|
292
|
-
return {
|
|
293
|
-
Uuid: createUuid(),
|
|
294
|
-
Name: name || 'Custom Theme',
|
|
295
|
-
Description: name || 'Custom Theme',
|
|
296
|
-
};
|
|
297
|
-
}
|
|
298
291
|
export function CreateEmptyCommentThread(cellAddress) {
|
|
299
292
|
return {
|
|
300
293
|
...cellAddress,
|
|
@@ -389,7 +382,6 @@ export const ObjectFactory = {
|
|
|
389
382
|
CreateEmptyStyledColumn,
|
|
390
383
|
CreateDefaultStyledColumnBadge,
|
|
391
384
|
CreateEmptyChartDefinition,
|
|
392
|
-
CreateEmptyTheme,
|
|
393
385
|
CreateEmptyCommentThread,
|
|
394
386
|
CreateAdaptableComment,
|
|
395
387
|
CreateDefaultSchedule,
|
|
@@ -20,7 +20,7 @@ export class ThemeService {
|
|
|
20
20
|
document.adoptedStyleSheets = [...document.adoptedStyleSheets].filter((sheet) => sheet !== this.styleSheetObject);
|
|
21
21
|
}
|
|
22
22
|
subscribe() {
|
|
23
|
-
const themeChangedUnsubscribe = this.api.eventApi.on('
|
|
23
|
+
const themeChangedUnsubscribe = this.api.eventApi.on('ThemeSelected', this.onThemeChanged);
|
|
24
24
|
const prefferedColorSchemeUnsubscribe = this.attachPrefferedColorSchemeListener();
|
|
25
25
|
this.unsubscribe = () => {
|
|
26
26
|
themeChangedUnsubscribe();
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { isRuleBasedAlertDefinition } from '../../../Utilities/Helpers/ScheduledAlertHelper';
|
|
3
|
-
import { Tabs } from '../../../components/Tabs';
|
|
4
3
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
5
4
|
import { CheckBox } from '../../../components/CheckBox';
|
|
6
5
|
import { CodeBlock } from '../../../components/CodeBlock';
|
|
@@ -13,6 +12,7 @@ import { AlertType } from '../Utilities/getAlertType';
|
|
|
13
12
|
import { Box, Flex } from '../../../components/Flex';
|
|
14
13
|
import { Tag, TagBox } from '../../../components/Tag/Tag';
|
|
15
14
|
import { SingleSelect } from '../../../components/NewSelect';
|
|
15
|
+
import { Card } from '../../../components/Card';
|
|
16
16
|
const HighlightStyle = (props) => {
|
|
17
17
|
const adaptable = useAdaptable();
|
|
18
18
|
const options = [
|
|
@@ -84,6 +84,7 @@ export const renderAlertBehaviourSummary = (alert, api, allowWrap = false) => {
|
|
|
84
84
|
};
|
|
85
85
|
export const AlertBehaviourWizardSection = (props) => {
|
|
86
86
|
const { data, api } = useOnePageAdaptableWizardContext();
|
|
87
|
+
const behaviourSpellingVariant = api.internalApi.getCorrectEnglishVariant('Behaviour');
|
|
87
88
|
const presentationProperties = data.AlertProperties ?? {};
|
|
88
89
|
const ruleProperties = isRuleBasedAlertDefinition(data)
|
|
89
90
|
? (data.AlertProperties ?? {})
|
|
@@ -107,19 +108,19 @@ export const AlertBehaviourWizardSection = (props) => {
|
|
|
107
108
|
},
|
|
108
109
|
});
|
|
109
110
|
};
|
|
110
|
-
return (_jsxs(
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
111
|
+
return (_jsx(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: behaviourSpellingVariant }), _jsxs(Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: ["Configure ", behaviourSpellingVariant.toLowerCase(), "s for the Alert when it fires"] })] }), _jsxs(Card.Body, { className: "twa:gap-1", children: [hasPreventCellEdit && (_jsxs(CheckBox, { "data-name": "prevent-cell-edit", style: { alignItems: 'flex-start' }, checked: ruleProperties.PreventEdit, disabled: true, children: ["Prevent Cell Edit", _jsx(Box, { className: "twa:text-2 twa:mt-1", children: "(automatically undo data change which triggered Alert)" })] })), hasHighlightCell && (_jsx(HighlightStyle, { dataName: "highlight-cell", highlight: ruleProperties.HighlightCell, label: "Highlight Cell", onChange: (HighlightCell) => {
|
|
112
|
+
onChange({ HighlightCell });
|
|
113
|
+
} })), hasHighlightRow && (_jsx(HighlightStyle, { dataName: "highlight-row", highlight: ruleProperties.HighlightRow, label: "Highlight Row", onChange: (HighlightRow) => {
|
|
114
|
+
onChange({ HighlightRow });
|
|
115
|
+
} })), hasJumpToCell && (_jsx(CheckBox, { "data-name": "jump-to-cell", checked: ruleProperties.JumpToCell, onChange: (JumpToCell) => {
|
|
116
|
+
onChange({ JumpToCell });
|
|
117
|
+
}, children: "Jump To Cell" })), hasJumpToRow && (_jsx(CheckBox, { "data-name": "jump-to-row", checked: ruleProperties.JumpToRow, onChange: (JumpToRow) => {
|
|
118
|
+
onChange({ JumpToRow });
|
|
119
|
+
}, children: "Jump To Row" })), showInSeparateDiv && (_jsxs(CheckBox, { "data-name": "show-in-div", checked: presentationProperties.ShowInDiv, onChange: (ShowInDiv) => {
|
|
120
|
+
onChange({ ShowInDiv });
|
|
121
|
+
}, children: ["Show in separate ", _jsx(CodeBlock, { children: `<div />` }), " element"] })), logToConsole && (_jsx(CheckBox, { "data-name": "log-to-console", checked: presentationProperties.LogToConsole, onChange: (LogToConsole) => {
|
|
122
|
+
onChange({ LogToConsole });
|
|
123
|
+
}, children: "Log To Console" })), showSystemStatusMessage && (_jsx(CheckBox, { "data-name": "system-status-message", checked: presentationProperties.DisplaySystemStatusMessage, onChange: (DisplaySystemStatusMessage) => {
|
|
124
|
+
onChange({ DisplaySystemStatusMessage });
|
|
125
|
+
}, children: "Show as System Status Message" }))] })] }) }));
|
|
125
126
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import SimpleButton from '../../../components/SimpleButton';
|
|
3
3
|
import Input from '../../../components/Input';
|
|
4
4
|
import FormLayout, { FormRow } from '../../../components/FormLayout';
|
|
@@ -9,6 +9,7 @@ import { AdaptableIconSelector } from '../../Components/AdaptableIconSelector';
|
|
|
9
9
|
import { Box, Flex } from '../../../components/Flex';
|
|
10
10
|
import sentenceCase from '../../../Utilities/utils/sentenceCase';
|
|
11
11
|
import { SingleSelect } from '../../../components/NewSelect';
|
|
12
|
+
import { Card } from '../../../components/Card';
|
|
12
13
|
const TONE_OPTIONS = [
|
|
13
14
|
{
|
|
14
15
|
label: 'Tone: Use Alert Tone',
|
|
@@ -21,6 +22,14 @@ const TONE_OPTIONS = [
|
|
|
21
22
|
};
|
|
22
23
|
}),
|
|
23
24
|
];
|
|
25
|
+
const AlertButtonPreview = ({ button, messageType }) => {
|
|
26
|
+
const buttonStyle = button.ButtonStyle ?? {};
|
|
27
|
+
const variant = (buttonStyle.variant ?? 'raised');
|
|
28
|
+
const tone = (buttonStyle.tone ??
|
|
29
|
+
messageType.toLowerCase());
|
|
30
|
+
const icon = button.icon && 'name' in button.icon && button.icon.name ? button.icon : undefined;
|
|
31
|
+
return (_jsx(SimpleButton, { variant: variant, tone: tone, icon: icon, className: "twa:cursor-default twa:pointer-events-none", tabIndex: -1, children: button.Label || 'Untitled' }));
|
|
32
|
+
};
|
|
24
33
|
function renderTone(option) {
|
|
25
34
|
return (_jsxs(Flex, { flexDirection: "row", alignItems: "center", children: [_jsx(SimpleButton, { className: "twa:mr-2 twa:w-[10px] twa:h-[10px] twa:line-height-0 twa:rounded-[100%] twa:bg-current", tone: option.value, variant: "text" }), option.label] }));
|
|
26
35
|
}
|
|
@@ -30,6 +39,7 @@ export const AlertButtonsEditor = (props) => {
|
|
|
30
39
|
props.onChange(newButtons);
|
|
31
40
|
};
|
|
32
41
|
const alertDefinition = adaptableAlert.alertDefinition;
|
|
42
|
+
const messageType = alertDefinition?.MessageType ?? 'Info';
|
|
33
43
|
// const rowAddedAlert =
|
|
34
44
|
// api.alertApi.internalApi.isAlertDefinitionForAddedRowChangeEvent(alertDefinition);
|
|
35
45
|
const isRowRemovedAlert = api.alertApi.internalApi.isAlertDefinitionForRemovedRowChangeEvent(alertDefinition);
|
|
@@ -71,7 +81,7 @@ export const AlertButtonsEditor = (props) => {
|
|
|
71
81
|
buttonCommands.push(ch.name);
|
|
72
82
|
});
|
|
73
83
|
}
|
|
74
|
-
return (_jsxs(
|
|
84
|
+
return (_jsxs(Box, { className: "twa:mt-3", children: [_jsxs(Flex, { flexDirection: "row", alignItems: "center", justifyContent: "space-between", className: "twa:mb-3", children: [_jsx(Box, { className: "twa:text-2 twa:max-w-[520px]", children: "Add buttons to the notification and set actions to perform when clicked" }), _jsx(SimpleButton, { icon: "plus", onClick: () => {
|
|
75
85
|
onChange([
|
|
76
86
|
...(AlertButtons || []),
|
|
77
87
|
{
|
|
@@ -81,109 +91,110 @@ export const AlertButtonsEditor = (props) => {
|
|
|
81
91
|
},
|
|
82
92
|
},
|
|
83
93
|
]);
|
|
84
|
-
}, children: "Add" })] }), AlertButtons.map((button, index) => {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
return btn;
|
|
107
|
-
}));
|
|
108
|
-
};
|
|
109
|
-
const setTone = (tone) => {
|
|
110
|
-
onChange(AlertButtons.map((btn, i) => {
|
|
111
|
-
if (i === index) {
|
|
112
|
-
const buttonStyle = { ...btn.ButtonStyle };
|
|
113
|
-
if (tone == null) {
|
|
114
|
-
delete buttonStyle.tone;
|
|
94
|
+
}, children: "Add" })] }), _jsx(Flex, { flexDirection: "column", className: "twa:gap-3", children: AlertButtons.map((button, index) => {
|
|
95
|
+
let buttonStyle = button.ButtonStyle;
|
|
96
|
+
let buttonLabel = button.Label;
|
|
97
|
+
let btnCommands = [];
|
|
98
|
+
if (button.Command && typeof button.Command === 'string') {
|
|
99
|
+
btnCommands = [button.Command];
|
|
100
|
+
}
|
|
101
|
+
else if (button.Command && Array.isArray(button.Command)) {
|
|
102
|
+
btnCommands = button.Command;
|
|
103
|
+
}
|
|
104
|
+
// filter out the adaptable standard commands
|
|
105
|
+
const btnUserFunctions = btnCommands.filter((command) => !buttonCommands.includes(command));
|
|
106
|
+
const setVariant = (variant) => {
|
|
107
|
+
onChange(AlertButtons.map((btn, i) => {
|
|
108
|
+
if (i === index) {
|
|
109
|
+
const buttonStyle = { ...btn.ButtonStyle };
|
|
110
|
+
buttonStyle.variant = variant;
|
|
111
|
+
return {
|
|
112
|
+
...btn,
|
|
113
|
+
ButtonStyle: buttonStyle,
|
|
114
|
+
};
|
|
115
115
|
}
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
return btn;
|
|
117
|
+
}));
|
|
118
|
+
};
|
|
119
|
+
const setTone = (tone) => {
|
|
120
|
+
onChange(AlertButtons.map((btn, i) => {
|
|
121
|
+
if (i === index) {
|
|
122
|
+
const buttonStyle = { ...btn.ButtonStyle };
|
|
123
|
+
if (tone == null) {
|
|
124
|
+
delete buttonStyle.tone;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
buttonStyle.tone = tone;
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
...btn,
|
|
131
|
+
ButtonStyle: buttonStyle,
|
|
132
|
+
};
|
|
118
133
|
}
|
|
119
|
-
return
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
134
|
+
return btn;
|
|
135
|
+
}));
|
|
136
|
+
};
|
|
137
|
+
const handleCommandChange = (checked, commandName) => {
|
|
138
|
+
let commands = btnCommands;
|
|
139
|
+
if (!checked) {
|
|
140
|
+
// remove current Command
|
|
141
|
+
commands = commands.filter((a) => a !== commandName);
|
|
123
142
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
};
|
|
127
|
-
const handleCommandChange = (checked, commandName) => {
|
|
128
|
-
let commands = btnCommands;
|
|
129
|
-
if (!checked) {
|
|
130
|
-
// remove current Command
|
|
131
|
-
commands = commands.filter((a) => a !== commandName);
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
commands = [...commands, commandName];
|
|
135
|
-
}
|
|
136
|
-
onChange(AlertButtons.map((btn, i) => {
|
|
137
|
-
if (i === index) {
|
|
138
|
-
return {
|
|
139
|
-
...btn,
|
|
140
|
-
Command: commands.length ? commands : undefined,
|
|
141
|
-
};
|
|
143
|
+
else {
|
|
144
|
+
commands = [...commands, commandName];
|
|
142
145
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
146
|
+
onChange(AlertButtons.map((btn, i) => {
|
|
147
|
+
if (i === index) {
|
|
148
|
+
return {
|
|
149
|
+
...btn,
|
|
150
|
+
Command: commands.length ? commands : undefined,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
return btn;
|
|
154
|
+
}));
|
|
155
|
+
};
|
|
156
|
+
let iconSelector = null;
|
|
157
|
+
if (!button.icon || (button.icon && 'name' in button.icon)) {
|
|
158
|
+
iconSelector = (_jsx(AdaptableIconSelector, { value: button.icon && 'name' in button.icon ? button?.icon?.name : '', onChange: (iconName) => {
|
|
159
|
+
onChange(AlertButtons.map((btn) => {
|
|
160
|
+
if (btn === button) {
|
|
161
|
+
return {
|
|
162
|
+
...btn,
|
|
163
|
+
icon: {
|
|
164
|
+
name: iconName,
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
return btn;
|
|
169
|
+
}));
|
|
170
|
+
} }));
|
|
171
|
+
}
|
|
172
|
+
return (_jsxs(Card, { shadow: false, children: [_jsxs(Card.Title, { className: "twa:justify-between twa:gap-3", children: [_jsxs(Box, { className: "twa:font-medium twa:shrink-0", children: ["Button ", index + 1] }), _jsx(Flex, { justifyContent: "center", className: "twa:flex-1 twa:min-w-0", children: _jsx(AlertButtonPreview, { button: button, messageType: messageType }) }), _jsx(SimpleButton, { icon: "close", tone: "error", disabled: AlertButtons.length <= 1, variant: "text", tooltip: AlertButtons.length <= 1 ? 'Cannot remove last button' : 'Remove button', onClick: () => {
|
|
173
|
+
onChange(AlertButtons.filter((btn) => btn !== button));
|
|
174
|
+
} })] }), _jsx(Card.Body, { children: _jsxs(FormLayout, { children: [_jsx(FormRow, { label: _jsx(Box, { className: "twa:text-2", children: "Button Text" }), children: _jsx(Input, { value: buttonLabel, className: "twa:max-w-[200px]", onChange: (e) => {
|
|
175
|
+
onChange(AlertButtons.map((btn, i) => {
|
|
176
|
+
if (i === index) {
|
|
177
|
+
return { ...btn, Label: e.target.value };
|
|
178
|
+
}
|
|
179
|
+
return btn;
|
|
180
|
+
}));
|
|
181
|
+
} }) }), _jsx(FormRow, { label: _jsx(Box, { className: "twa:text-2", children: "Style" }), children: _jsxs(Flex, { flexDirection: "row", className: "twa:gap-2 twa:flex-wrap", children: [_jsx(SingleSelect, { items: ['text', 'outlined', 'raised'].map((variant) => {
|
|
182
|
+
return {
|
|
183
|
+
label: StringExtensions.CapitaliseFirstLetter(variant),
|
|
184
|
+
value: variant,
|
|
185
|
+
};
|
|
186
|
+
}), renderValue: (option) => `Variant: ${option.label}`, value: buttonStyle?.variant, onValueChange: (value) => {
|
|
187
|
+
setVariant(value);
|
|
188
|
+
} }), _jsx(SingleSelect, { items: TONE_OPTIONS, onValueChange: (value) => {
|
|
189
|
+
if (value === 'text') {
|
|
190
|
+
setTone(null);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
setTone(value);
|
|
194
|
+
}, value: buttonStyle?.tone ?? 'text' })] }) }), _jsx(FormRow, { label: _jsx(Box, { className: "twa:text-2", children: "Actions" }), children: _jsxs(Flex, { flexDirection: "row", className: "twa:gap-3 twa:flex-wrap", children: [buttonCommands.map((commandName) => {
|
|
195
|
+
return (_jsx(CheckBox, { onChange: (checked) => handleCommandChange(checked, commandName), checked: button.Command === commandName ||
|
|
196
|
+
(Array.isArray(button.Command) &&
|
|
197
|
+
button.Command.includes(commandName)), children: _jsx(Box, { className: "twa:text-2", children: sentenceCase(commandName) }) }, commandName));
|
|
198
|
+
}), btnUserFunctions.length ? (_jsx(CheckBox, { checked: true, disabled: true, children: _jsxs(Box, { className: "twa:text-2", children: ["User function", btnUserFunctions.length > 1 ? 's' : '', ":", ' ', btnUserFunctions.join(', ')] }) })) : null] }) }), iconSelector && (_jsx(FormRow, { label: _jsx(Box, { className: "twa:text-2", children: "Icon" }), children: _jsx(Box, { children: iconSelector }) }))] }) })] }, index));
|
|
199
|
+
}) })] }));
|
|
189
200
|
};
|