@adaptabletools/adaptable-cjs 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 +30 -3
- 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 +2 -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 +19 -8
- 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 +12 -5
- package/src/Strategy/LayoutModule.js +13 -8
- package/src/Strategy/StyledColumnModule.js +58 -30
- 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 +68 -0
- package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +23 -1
- package/src/Utilities/Helpers/StyledColumnGradientHelper.js +212 -1
- package/src/Utilities/Helpers/ThemeHelpers.d.ts +5 -0
- package/src/Utilities/Helpers/ThemeHelpers.js +43 -0
- package/src/Utilities/Helpers/percentBarPreviewHelper.d.ts +19 -0
- package/src/Utilities/Helpers/percentBarPreviewHelper.js +155 -0
- package/src/Utilities/ObjectFactory.d.ts +1 -3
- package/src/Utilities/ObjectFactory.js +0 -9
- package/src/Utilities/Services/ThemeService.js +1 -1
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +17 -16
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +113 -102
- package/src/View/Alert/Wizard/AlertMessageWizardSection.js +12 -13
- package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +54 -54
- package/src/View/Alert/Wizard/AlertRulesWizardSection.js +4 -3
- package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -1
- package/src/View/Alert/Wizard/AlertScopeWizardSection.js +29 -37
- package/src/View/Alert/Wizard/AlertTypeWizardSection.js +2 -3
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +9 -13
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +28 -15
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +7 -9
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +2 -2
- 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 +26 -0
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.d.ts +1 -0
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +9 -6
- 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 +1 -2
- 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 +5 -4
- package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadTextSection.js +2 -1
- package/src/View/DataImport/DataImportWizard/sections/ValidationSection.js +4 -15
- package/src/View/Export/Wizard/ReportColumnsWizardSection.js +24 -27
- package/src/View/Export/Wizard/ReportNameWizardSection.js +8 -11
- package/src/View/Export/Wizard/ReportRowsWizardSection.js +19 -22
- package/src/View/Export/Wizard/ScheduledReportSettings.d.ts +2 -0
- package/src/View/Export/Wizard/ScheduledReportSettings.js +12 -12
- package/src/View/Export/Wizard/ScheduledReportWizard.js +2 -3
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +8 -6
- package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +19 -20
- package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +20 -11
- package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +19 -3
- 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 +120 -13
- package/src/View/FormatColumn/Wizard/FormatColumnPreview.d.ts +15 -0
- package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +78 -0
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +4 -0
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +34 -0
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +11 -6
- 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 +64 -13
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +3 -1
- package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.d.ts +2 -0
- package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +19 -0
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.d.ts +10 -0
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.js +60 -0
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +2 -3
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +35 -70
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +14 -10
- 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 +116 -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 +10 -10
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +1 -2
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +101 -51
- 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 +3 -4
- 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 +7 -12
- 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 +45 -12
- package/src/View/PlusMinus/Wizard/PlusMinusScopeWizardSection.js +10 -17
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.d.ts +2 -6
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +5 -21
- 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 +10 -17
- package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +16 -5
- package/src/View/Shortcut/Wizard/ShortcutWizard.js +2 -2
- package/src/View/Shortcut/shortcutOperations.d.ts +3 -0
- package/src/View/Shortcut/shortcutOperations.js +32 -1
- package/src/View/SpecialColumnSettingsWizardStep.js +7 -6
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +26 -16
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +10 -2
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +100 -15
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +14 -0
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +48 -25
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +2 -3
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +109 -33
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +20 -12
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +124 -23
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.d.ts +1 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +35 -11
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +88 -11
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +125 -35
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.d.ts +1 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +55 -74
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.js +20 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +6 -12
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +5 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.d.ts +5 -4
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +11 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.js +20 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.d.ts +3 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +32 -3
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +9 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +64 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.d.ts +10 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.js +35 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.d.ts +10 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +96 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.d.ts +8 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +57 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.d.ts +8 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +58 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +18 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.js +66 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.d.ts +10 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +133 -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 +53 -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 +6 -20
- package/src/agGrid/AdaptableAgGrid.d.ts +1 -0
- package/src/agGrid/AdaptableAgGrid.js +34 -24
- 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 +114 -0
- package/src/agGrid/cellRenderers/IconRenderer.d.ts +6 -0
- package/src/agGrid/cellRenderers/IconRenderer.js +46 -17
- package/src/agGrid/createAgGridIcon.d.ts +10 -0
- package/src/agGrid/createAgGridIcon.js +19 -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.cjs.tsbuildinfo +1 -1
- package/src/Aggregation/ParameterizedAggregationRegistry.d.ts +0 -35
- package/src/Aggregation/ParameterizedAggregationRegistry.js +0 -74
- package/src/Aggregation/definitions/weightedAverageAggregationDefinition.d.ts +0 -3
- package/src/Aggregation/definitions/weightedAverageAggregationDefinition.js +0 -58
- package/src/Aggregation/parameterizedAggregationColumnMenu.d.ts +0 -8
- package/src/Aggregation/parameterizedAggregationColumnMenu.js +0 -143
- package/src/Aggregation/parameterizedAggregationHeader.d.ts +0 -13
- package/src/Aggregation/parameterizedAggregationHeader.js +0 -65
- package/src/Aggregation/parameterizedAggregationHelpers.d.ts +0 -23
- package/src/Aggregation/parameterizedAggregationHelpers.js +0 -121
- package/src/Aggregation/parameterizedAggregationWizardHelpers.d.ts +0 -9
- package/src/Aggregation/parameterizedAggregationWizardHelpers.js +0 -74
- package/src/Aggregation/validateParameterizedAggregations.d.ts +0 -4
- package/src/Aggregation/validateParameterizedAggregations.js +0 -25
- package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.d.ts +0 -12
- package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.js +0 -48
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.d.ts +0 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.js +0 -32
- package/src/View/Theme/VariantSelector.d.ts +0 -8
- package/src/View/Theme/VariantSelector.js +0 -25
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FreeTextColumnDefinitionWizardSection = exports.isValidFreeTextColumnDefinition = exports.renderFreeTextColumnDefinitionSummary = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const Input_1 = tslib_1.__importDefault(require("../../../components/Input"));
|
|
8
|
+
const Tag_1 = require("../../../components/Tag");
|
|
9
|
+
const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
|
|
10
|
+
const Flex_1 = require("../../../components/Flex");
|
|
11
|
+
const Card_1 = require("../../../components/Card");
|
|
12
|
+
const renderFreeTextColumnDefinitionSummary = (data) => {
|
|
13
|
+
return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:text-2 twa:grid twa:items-center twa:grid-cols-[auto_1fr] twa:gap-2", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { children: "Column Identifier:" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { children: (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: data.ColumnId }) }), data.FriendlyName ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { children: "Column Name:" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { children: (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: data.FriendlyName ?? data.ColumnId }) })] })) : null] }));
|
|
14
|
+
};
|
|
15
|
+
exports.renderFreeTextColumnDefinitionSummary = renderFreeTextColumnDefinitionSummary;
|
|
16
|
+
const isValidFreeTextColumnDefinition = (data, api) => {
|
|
17
|
+
const columns = api.columnApi.getUIAvailableColumns();
|
|
18
|
+
if (!data.ColumnId) {
|
|
19
|
+
return 'A Column Name is required';
|
|
20
|
+
}
|
|
21
|
+
const columnsWithSameIdCount = columns.filter((c) => c.columnId === data.ColumnId).length;
|
|
22
|
+
const hasAlreadyExistingId = data.Uuid ? columnsWithSameIdCount > 1 : columnsWithSameIdCount > 0;
|
|
23
|
+
return hasAlreadyExistingId ? 'A column with this Name already exists' : true;
|
|
24
|
+
};
|
|
25
|
+
exports.isValidFreeTextColumnDefinition = isValidFreeTextColumnDefinition;
|
|
26
|
+
const FreeTextColumnDefinitionWizardSection = (props) => {
|
|
27
|
+
const { data } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
|
|
28
|
+
const [ColumnNameFocused, setColumnNameFocused] = (0, react_1.useState)(false);
|
|
29
|
+
const inEdit = props.isEdit;
|
|
30
|
+
const handleColumnIdChange = (event) => {
|
|
31
|
+
let e = event.target;
|
|
32
|
+
props.onChange({
|
|
33
|
+
...data,
|
|
34
|
+
ColumnId: e.value,
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
const handleColumnNameChange = (event) => {
|
|
38
|
+
let e = event.target;
|
|
39
|
+
props.onChange({
|
|
40
|
+
...data,
|
|
41
|
+
FriendlyName: e.value,
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const handleSpecialColumnSettingsChange = (settings) => {
|
|
45
|
+
props.onChange({
|
|
46
|
+
...data,
|
|
47
|
+
FreeTextColumnSettings: {
|
|
48
|
+
...data.FreeTextColumnSettings,
|
|
49
|
+
...settings,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
const { HeaderToolTip } = data.FreeTextColumnSettings ?? {};
|
|
54
|
+
return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { "data-name": "free-text-column-definition", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Column Name" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Unique identifier for the Free Text Column" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(Input_1.default, { "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 }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Column Header" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Optional display name shown in the grid header" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(Input_1.default, { "data-name": "column-name", autoFocus: inEdit, onFocus: () => setColumnNameFocused(true), onBlur: () => setColumnNameFocused(false), value: ColumnNameFocused
|
|
55
|
+
? data.FriendlyName || ''
|
|
56
|
+
: data.FriendlyName || data.ColumnId || '', className: "twa:max-w-[500px] twa:w-full", type: "text", placeholder: "Enter a Column Header (optional)", onChange: handleColumnNameChange }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Column Header Tooltip" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Optional text shown when hovering over the column header" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(Input_1.default, { "data-name": "header-tooltip", type: "text", className: "twa:max-w-[500px] twa:w-full", value: HeaderToolTip, onChange: (e) => handleSpecialColumnSettingsChange({
|
|
57
|
+
HeaderToolTip: e.target.value,
|
|
58
|
+
}) }) })] })] }) }));
|
|
59
|
+
};
|
|
60
|
+
exports.FreeTextColumnDefinitionWizardSection = FreeTextColumnDefinitionWizardSection;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { FreeTextColumn } from '../../../AdaptableState/FreeTextColumnState';
|
|
3
|
-
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const isValidFreeTextColumn: (data: FreeTextColumn, api: AdaptableApi) => true | "A Column Name is required" | "A column with this Name already exists" | "A data type is required for the column";
|
|
3
|
+
export declare const renderFreeTextColumnSettingsSummary: (data: FreeTextColumn) => React.JSX.Element;
|
|
4
|
+
export declare const isValidFreeTextColumnSettings: (data: FreeTextColumn) => true | string;
|
|
6
5
|
export type FreeTextColumnSettingsWizardSectionProps = {
|
|
7
6
|
onChange: (data: FreeTextColumn) => void;
|
|
8
7
|
isEdit: boolean;
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FreeTextColumnSettingsWizardSection = exports.
|
|
3
|
+
exports.FreeTextColumnSettingsWizardSection = exports.isValidFreeTextColumnSettings = exports.renderFreeTextColumnSettingsSummary = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
-
const react_1 = require("react");
|
|
7
6
|
const Input_1 = tslib_1.__importDefault(require("../../../components/Input"));
|
|
8
|
-
const
|
|
9
|
-
const Radio_1 = tslib_1.__importDefault(require("../../../components/Radio"));
|
|
10
|
-
const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayout"));
|
|
7
|
+
const Radio_1 = tslib_1.__importStar(require("../../../components/Radio"));
|
|
11
8
|
const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
|
|
12
9
|
const AdaptableInput_1 = tslib_1.__importDefault(require("../../Components/AdaptableInput"));
|
|
13
10
|
const CheckBox_1 = require("../../../components/CheckBox");
|
|
@@ -17,55 +14,31 @@ const Tag_1 = require("../../../components/Tag");
|
|
|
17
14
|
const SpecialColumnSettingsWizardStep_1 = require("../../SpecialColumnSettingsWizardStep");
|
|
18
15
|
const Flex_1 = require("../../../components/Flex");
|
|
19
16
|
const NewSelect_1 = require("../../../components/NewSelect");
|
|
20
|
-
const
|
|
17
|
+
const Card_1 = require("../../../components/Card");
|
|
18
|
+
const Tag_2 = require("../../../components/Tag/Tag");
|
|
19
|
+
const getFreeTextColumnSettingsTags_1 = require("../Utilities/getFreeTextColumnSettingsTags");
|
|
20
|
+
const OnePageAdaptableWizard_2 = require("../../Wizard/OnePageAdaptableWizard");
|
|
21
|
+
const dataTypeOptions = [
|
|
21
22
|
{ value: 'number', label: 'Number' },
|
|
22
23
|
{ value: 'text', label: 'Text' },
|
|
23
24
|
{ value: 'date', label: 'Date' },
|
|
24
25
|
{ value: 'boolean', label: 'Boolean' },
|
|
25
26
|
];
|
|
26
|
-
const
|
|
27
|
-
|
|
27
|
+
const renderFreeTextColumnSettingsSummary = (data) => {
|
|
28
|
+
const propertyTags = (0, getFreeTextColumnSettingsTags_1.getFreeTextColumnSettingsTags)(data.FreeTextColumnSettings);
|
|
29
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_2.SummaryText, { children: ["Data Type: ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: data.FreeTextColumnSettings.DataType || 'Not specified' })] }), data.DefaultValue !== undefined ? ((0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_2.SummaryText, { children: ["Default Value: ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: String(data.DefaultValue) })] })) : null, data.TextEditor !== undefined ? ((0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_2.SummaryText, { children: ["Editor Type: ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: data.TextEditor })] })) : null, propertyTags.length ? ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:mt-2", children: (0, jsx_runtime_1.jsx)(Tag_2.TagList, { tags: propertyTags }) })) : null] }));
|
|
28
30
|
};
|
|
29
|
-
exports.
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
if (!data.ColumnId) {
|
|
33
|
-
return 'A Column Name is required';
|
|
34
|
-
}
|
|
35
|
-
const columnsWithSameIdCount = columns.filter((c) => c.columnId === data.ColumnId).length;
|
|
36
|
-
const hasAlreadyExistingId = data.Uuid ? columnsWithSameIdCount > 1 : columnsWithSameIdCount > 0;
|
|
37
|
-
if (hasAlreadyExistingId) {
|
|
38
|
-
return 'A column with this Name already exists';
|
|
39
|
-
}
|
|
40
|
-
if (!data.FreeTextColumnSettings.DataType) {
|
|
31
|
+
exports.renderFreeTextColumnSettingsSummary = renderFreeTextColumnSettingsSummary;
|
|
32
|
+
const isValidFreeTextColumnSettings = (data) => {
|
|
33
|
+
if (!data.FreeTextColumnSettings?.DataType) {
|
|
41
34
|
return 'A data type is required for the column';
|
|
42
35
|
}
|
|
43
36
|
return true;
|
|
44
37
|
};
|
|
45
|
-
exports.
|
|
38
|
+
exports.isValidFreeTextColumnSettings = isValidFreeTextColumnSettings;
|
|
46
39
|
const FreeTextColumnSettingsWizardSection = (props) => {
|
|
47
40
|
const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
|
|
48
41
|
const Pattern = api.optionsApi.getUserInterfaceOptions().dateInputOptions.dateFormat;
|
|
49
|
-
const [ColumnNameFocused, setColumnNameFocused] = (0, react_1.useState)(false);
|
|
50
|
-
const inEdit = props.isEdit;
|
|
51
|
-
const validCheck = (0, exports.isValidFreeTextColumn)(data, api);
|
|
52
|
-
const ErrorMessage = validCheck === true ? null : validCheck;
|
|
53
|
-
const handleColumnIdChange = (event) => {
|
|
54
|
-
let e = event.target;
|
|
55
|
-
const ColumnId = e.value;
|
|
56
|
-
props.onChange({
|
|
57
|
-
...data,
|
|
58
|
-
ColumnId,
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
const handleColumnNameChange = (event) => {
|
|
62
|
-
let e = event.target;
|
|
63
|
-
const ColumnName = e.value;
|
|
64
|
-
props.onChange({
|
|
65
|
-
...data,
|
|
66
|
-
FriendlyName: ColumnName,
|
|
67
|
-
});
|
|
68
|
-
};
|
|
69
42
|
const handleDataTypeChange = (DataType) => {
|
|
70
43
|
const newData = {
|
|
71
44
|
...data,
|
|
@@ -80,14 +53,6 @@ const FreeTextColumnSettingsWizardSection = (props) => {
|
|
|
80
53
|
}
|
|
81
54
|
props.onChange(newData);
|
|
82
55
|
};
|
|
83
|
-
const onDynamicSelectChanged = (event) => {
|
|
84
|
-
let e = event.target;
|
|
85
|
-
const TextEditor = e.value;
|
|
86
|
-
props.onChange({
|
|
87
|
-
...data,
|
|
88
|
-
TextEditor,
|
|
89
|
-
});
|
|
90
|
-
};
|
|
91
56
|
const handleDefaultValueChange = (event) => {
|
|
92
57
|
let e = event.target;
|
|
93
58
|
let DefaultValue = e.value;
|
|
@@ -101,9 +66,7 @@ const FreeTextColumnSettingsWizardSection = (props) => {
|
|
|
101
66
|
DefaultValue,
|
|
102
67
|
});
|
|
103
68
|
};
|
|
104
|
-
const handleSpecialColumnSettingsChange = (
|
|
105
|
-
// settings: SpecialColumnSettings
|
|
106
|
-
settings) => {
|
|
69
|
+
const handleSpecialColumnSettingsChange = (settings) => {
|
|
107
70
|
props.onChange({
|
|
108
71
|
...data,
|
|
109
72
|
FreeTextColumnSettings: {
|
|
@@ -112,23 +75,25 @@ const FreeTextColumnSettingsWizardSection = (props) => {
|
|
|
112
75
|
},
|
|
113
76
|
});
|
|
114
77
|
};
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
DefaultValue,
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
78
|
+
const { Width } = data.FreeTextColumnSettings ?? {};
|
|
79
|
+
return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { "data-name": "free-text-column-settings", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Data Type" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose the data type for values entered in this column" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { "data-name": "column-type-dropdown", className: "twa:max-w-[300px]", items: dataTypeOptions, placeholder: "Select Data Type", value: data.FreeTextColumnSettings.DataType, onValueChange: (value) => handleDataTypeChange(value) }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Default Value" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Optional initial value for each cell in the column" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: data.FreeTextColumnSettings.DataType === 'boolean' ? ((0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { "data-name": "column-default-value-checkbox", checked: !!data.DefaultValue, onChange: (DefaultValue) => {
|
|
80
|
+
props.onChange({
|
|
81
|
+
...data,
|
|
82
|
+
DefaultValue,
|
|
83
|
+
});
|
|
84
|
+
} })) : ((0, jsx_runtime_1.jsx)(AdaptableInput_1.default, { "data-name": "column-default-value", value: data.FreeTextColumnSettings.DataType === 'date' && data.DefaultValue
|
|
85
|
+
? (0, DateHelper_1.parseToISO)(data.DefaultValue, Pattern) || ''
|
|
86
|
+
: data.DefaultValue || '', className: "twa:max-w-[500px] twa:w-full", type: data.FreeTextColumnSettings.DataType === 'number'
|
|
87
|
+
? 'number'
|
|
88
|
+
: data.FreeTextColumnSettings.DataType === 'date'
|
|
89
|
+
? 'date'
|
|
90
|
+
: 'text', placeholder: "Enter a default value (optional)", onChange: handleDefaultValueChange })) })] }), data.FreeTextColumnSettings.DataType === 'text' ? ((0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Cell Editor" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Choose how text values are edited in the grid" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsxs)(Radio_1.RadioGroup, { value: data.TextEditor ?? 'Inline', name: "textEditor", orientation: "horizontal", onRadioChange: (TextEditor) => {
|
|
91
|
+
props.onChange({
|
|
92
|
+
...data,
|
|
93
|
+
TextEditor,
|
|
94
|
+
});
|
|
95
|
+
}, children: [(0, jsx_runtime_1.jsx)(Radio_1.default, { className: "twa:ml-1", "data-name": "inline-editor", value: "Inline", children: "Inline Editor" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { className: "twa:ml-4", "data-name": "large-editor", value: "Large", children: "Large Editor" })] }) })] })) : null, (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Width" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Optional column width in pixels" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(Input_1.default, { "data-name": "column-width", type: "number", className: "twa:max-w-[300px]", value: Width || '', onChange: (e) => handleSpecialColumnSettingsChange({
|
|
96
|
+
Width: Number(e.target.value),
|
|
97
|
+
}) }) })] }), (0, jsx_runtime_1.jsx)(SpecialColumnSettingsWizardStep_1.SpecialColumnSettingsWizardStep, { isEditable: true, settings: data.FreeTextColumnSettings, onChange: handleSpecialColumnSettingsChange })] }) }));
|
|
133
98
|
};
|
|
134
99
|
exports.FreeTextColumnSettingsWizardSection = FreeTextColumnSettingsWizardSection;
|
|
@@ -7,6 +7,7 @@ const react_1 = require("react");
|
|
|
7
7
|
const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
|
|
8
8
|
const Helper_1 = require("../../../Utilities/Helpers/Helper");
|
|
9
9
|
const FreeTextColumnSettingsWizardSection_1 = require("./FreeTextColumnSettingsWizardSection");
|
|
10
|
+
const FreeTextColumnDefinitionWizardSection_1 = require("./FreeTextColumnDefinitionWizardSection");
|
|
10
11
|
const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/ObjectFactory"));
|
|
11
12
|
const FreeTextColumnRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/FreeTextColumnRedux"));
|
|
12
13
|
const react_redux_1 = require("react-redux");
|
|
@@ -26,7 +27,7 @@ const FreeTextColumnWizard = (props) => {
|
|
|
26
27
|
return ObjectFactory_1.default.CreateEmptyFreeTextColumn(adaptable.api.gridApi.internalApi.deriveSpecialColumnSettingsFromAgGridDefaultColDef());
|
|
27
28
|
});
|
|
28
29
|
const dispatch = (0, react_redux_1.useDispatch)();
|
|
29
|
-
const isEdit = props.data || props.popupParams?.action === 'Edit';
|
|
30
|
+
const isEdit = Boolean(props.data) || props.popupParams?.action === 'Edit';
|
|
30
31
|
const handleFinish = () => {
|
|
31
32
|
if (isEdit) {
|
|
32
33
|
dispatch(FreeTextColumnRedux.FreeTextColumnEdit(freeTextColumn));
|
|
@@ -37,13 +38,19 @@ const FreeTextColumnWizard = (props) => {
|
|
|
37
38
|
props.onFinishWizard(freeTextColumn);
|
|
38
39
|
};
|
|
39
40
|
return ((0, jsx_runtime_1.jsx)(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: freeTextColumn, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
|
|
41
|
+
{
|
|
42
|
+
title: 'Details',
|
|
43
|
+
details: 'Provide Free Text Column Details',
|
|
44
|
+
isValid: FreeTextColumnDefinitionWizardSection_1.isValidFreeTextColumnDefinition,
|
|
45
|
+
renderSummary: FreeTextColumnDefinitionWizardSection_1.renderFreeTextColumnDefinitionSummary,
|
|
46
|
+
render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2", children: (0, jsx_runtime_1.jsx)(FreeTextColumnDefinitionWizardSection_1.FreeTextColumnDefinitionWizardSection, { isEdit: isEdit, onChange: setFreeTextColumn }) })),
|
|
47
|
+
},
|
|
40
48
|
{
|
|
41
49
|
title: 'Settings',
|
|
42
|
-
details: '
|
|
43
|
-
isValid: FreeTextColumnSettingsWizardSection_1.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
},
|
|
50
|
+
details: 'Specify Free Text Column Properties',
|
|
51
|
+
isValid: FreeTextColumnSettingsWizardSection_1.isValidFreeTextColumnSettings,
|
|
52
|
+
renderSummary: FreeTextColumnSettingsWizardSection_1.renderFreeTextColumnSettingsSummary,
|
|
53
|
+
render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2", children: (0, jsx_runtime_1.jsx)(FreeTextColumnSettingsWizardSection_1.FreeTextColumnSettingsWizardSection, { isEdit: isEdit, onChange: setFreeTextColumn }) })),
|
|
47
54
|
},
|
|
48
55
|
{
|
|
49
56
|
details: 'Select Free Text Column Tags',
|
|
@@ -55,10 +62,7 @@ const FreeTextColumnWizard = (props) => {
|
|
|
55
62
|
'-',
|
|
56
63
|
{
|
|
57
64
|
details: 'Review the Free Text Column',
|
|
58
|
-
|
|
59
|
-
render: () => {
|
|
60
|
-
return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2", children: (0, jsx_runtime_1.jsx)(OnePageAdaptableWizard_1.OnePageWizardSummary, {}) }));
|
|
61
|
-
},
|
|
65
|
+
render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2", children: (0, jsx_runtime_1.jsx)(OnePageAdaptableWizard_1.OnePageWizardSummary, {}) })),
|
|
62
66
|
title: 'Summary',
|
|
63
67
|
},
|
|
64
68
|
] }));
|
|
@@ -187,8 +187,8 @@ const TransposedPopup = (props) => {
|
|
|
187
187
|
modules,
|
|
188
188
|
}).then((adaptableApi) => {
|
|
189
189
|
transposedAdaptableApiRef.current = adaptableApi;
|
|
190
|
-
adaptableApi.eventApi.on('
|
|
191
|
-
transposedAdaptableApiRef.current?.themeApi.loadTheme(
|
|
190
|
+
adaptableApi.eventApi.on('ThemeSelected', (event) => {
|
|
191
|
+
transposedAdaptableApiRef.current?.themeApi.loadTheme(event.theme);
|
|
192
192
|
});
|
|
193
193
|
});
|
|
194
194
|
}, [elevatedColumnId, adaptable]);
|
|
@@ -179,8 +179,7 @@ const LayoutWizard = (props) => {
|
|
|
179
179
|
{
|
|
180
180
|
title: 'Row Groups',
|
|
181
181
|
isVisible: () => layoutSupportedFeatures.RowGroupedColumns,
|
|
182
|
-
|
|
183
|
-
details: 'Configure Row Grouping',
|
|
182
|
+
details: 'Configure Row Grouping and Display Behaviour',
|
|
184
183
|
renderSummary: () => (0, jsx_runtime_1.jsx)(RowGroupingSection_1.RowGroupingSectionSummary, {}),
|
|
185
184
|
render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(RowGroupingSection_1.RowGroupingSection, { onChange: setLayout }) })),
|
|
186
185
|
},
|
|
@@ -194,7 +193,7 @@ const LayoutWizard = (props) => {
|
|
|
194
193
|
{
|
|
195
194
|
title: 'Aggregations',
|
|
196
195
|
isVisible: () => layoutSupportedFeatures.TableAggregationColumns,
|
|
197
|
-
details: 'Select
|
|
196
|
+
details: 'Select Aggregation Columns and Behaviour',
|
|
198
197
|
renderSummary: () => (0, jsx_runtime_1.jsx)(AggregationsSection_1.AggregationsSectionSummary, {}),
|
|
199
198
|
isValid: (data) => (0, AggregationsSection_1.isAggregationsSectionValid)(data),
|
|
200
199
|
render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(AggregationsSection_1.AggregationsSection, { onChange: (layout) => {
|
|
@@ -233,6 +232,7 @@ const LayoutWizard = (props) => {
|
|
|
233
232
|
details: 'Configure Row Summaries',
|
|
234
233
|
renderSummary: () => (0, jsx_runtime_1.jsx)(RowSummarySection_1.RowSummarySectionSummary, {}),
|
|
235
234
|
isVisible: () => layoutSupportedFeatures.RowSummaries,
|
|
235
|
+
isValid: RowSummarySection_1.areSummaryRowsValid,
|
|
236
236
|
render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2 twa:h-full", children: (0, jsx_runtime_1.jsx)(RowSummarySection_1.RowSummarySection, { onChange: setLayout }) })),
|
|
237
237
|
},
|
|
238
238
|
{
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { TableLayout } from '../../../../../types';
|
|
3
|
-
|
|
4
|
-
export declare const isAggregationsSectionValid: typeof validateTableLayoutAggregations;
|
|
2
|
+
import { Layout, TableLayout } from '../../../../../types';
|
|
3
|
+
export declare const isAggregationsSectionValid: (data: Layout) => true | string;
|
|
5
4
|
export declare const AggregationsSectionSummary: React.FunctionComponent;
|
|
6
5
|
interface AggregationsSectionProps {
|
|
7
6
|
onChange: (data: TableLayout) => void;
|
|
@@ -6,11 +6,9 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
6
6
|
const React = tslib_1.__importStar(require("react"));
|
|
7
7
|
const CheckBox_1 = require("../../../../components/CheckBox");
|
|
8
8
|
const FormLayout_1 = tslib_1.__importStar(require("../../../../components/FormLayout"));
|
|
9
|
-
const
|
|
9
|
+
const Card_1 = require("../../../../components/Card");
|
|
10
10
|
const Tag_1 = require("../../../../components/Tag");
|
|
11
|
-
const
|
|
12
|
-
const parameterizedAggregationHeader_1 = require("../../../../Aggregation/parameterizedAggregationHeader");
|
|
13
|
-
const parameterizedAggregationWizardHelpers_1 = require("../../../../Aggregation/parameterizedAggregationWizardHelpers");
|
|
11
|
+
const AggregationColumns_1 = require("../../../../AdaptableState/Common/AggregationColumns");
|
|
14
12
|
const AdaptableContext_1 = require("../../../AdaptableContext");
|
|
15
13
|
const ValueSelector_1 = require("../../../Components/ValueSelector");
|
|
16
14
|
const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
|
|
@@ -20,15 +18,25 @@ const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities
|
|
|
20
18
|
const StringExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/StringExtensions"));
|
|
21
19
|
const Flex_1 = require("../../../../components/Flex");
|
|
22
20
|
const NewSelect_1 = require("../../../../components/NewSelect");
|
|
23
|
-
const
|
|
24
|
-
|
|
21
|
+
const WEIGHTED_AVERAGE_AGG_FN_NAME = 'weightedAvg';
|
|
22
|
+
const isAggregationsSectionValid = (data) => {
|
|
23
|
+
const weightedAvg = data.TableAggregationColumns
|
|
24
|
+
? (data.TableAggregationColumns || []).find(({ AggFunc }) => typeof AggFunc === 'object' &&
|
|
25
|
+
AggFunc.type === 'weightedAverage')?.AggFunc
|
|
26
|
+
: null;
|
|
27
|
+
if (weightedAvg && !weightedAvg.weightedColumnId) {
|
|
28
|
+
return 'Weighted Average requires a weight column to be selected.';
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
};
|
|
32
|
+
exports.isAggregationsSectionValid = isAggregationsSectionValid;
|
|
25
33
|
const AggregationsSectionSummary = () => {
|
|
26
34
|
const adaptable = (0, AdaptableContext_1.useAdaptable)();
|
|
27
35
|
const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
|
|
28
36
|
const entries = layout.TableAggregationColumns || [];
|
|
29
37
|
let content = null;
|
|
30
38
|
if (entries.length) {
|
|
31
|
-
content = ((0, jsx_runtime_1.jsx)(FormLayout_1.default, { children: entries.map(({ ColumnId, AggFunc }) => ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: adaptable.api.columnApi.getFriendlyNameForColumnId(ColumnId), children: (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children:
|
|
39
|
+
content = ((0, jsx_runtime_1.jsx)(FormLayout_1.default, { children: entries.map(({ ColumnId, AggFunc }) => ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: adaptable.api.columnApi.getFriendlyNameForColumnId(ColumnId), children: (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: typeof AggFunc === 'object' ? AggFunc.type : AggFunc }) }, ColumnId))) }));
|
|
32
40
|
}
|
|
33
41
|
else {
|
|
34
42
|
content = (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Aggregations" });
|
|
@@ -38,7 +46,73 @@ const AggregationsSectionSummary = () => {
|
|
|
38
46
|
exports.AggregationsSectionSummary = AggregationsSectionSummary;
|
|
39
47
|
const ColumnRow = (props) => {
|
|
40
48
|
const aggValue = props.layout?.TableAggregationColumns?.find((agg) => agg.ColumnId === props.column.columnId)?.AggFunc;
|
|
41
|
-
|
|
49
|
+
const aggFunctionNames = (0, AggregationColumns_1.getDisplayAggFuncNames)(props.column);
|
|
50
|
+
const currentAggFnName = props.aggregationColumnsMap[props.column.columnId];
|
|
51
|
+
const updateAggFunc = (fnName) => {
|
|
52
|
+
let aggCols = [...(props.layout.TableAggregationColumns || [])];
|
|
53
|
+
const AggFuncValue = fnName === WEIGHTED_AVERAGE_AGG_FN_NAME
|
|
54
|
+
? {
|
|
55
|
+
type: 'weightedAverage',
|
|
56
|
+
weightedColumnId: null,
|
|
57
|
+
}
|
|
58
|
+
: fnName;
|
|
59
|
+
let found = false;
|
|
60
|
+
aggCols = aggCols.map(({ ColumnId, AggFunc }) => {
|
|
61
|
+
if (ColumnId === props.column.columnId) {
|
|
62
|
+
found = true;
|
|
63
|
+
return {
|
|
64
|
+
ColumnId,
|
|
65
|
+
AggFunc: AggFuncValue,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return { ColumnId, AggFunc };
|
|
69
|
+
});
|
|
70
|
+
if (!found) {
|
|
71
|
+
aggCols.push({
|
|
72
|
+
ColumnId: props.column.columnId,
|
|
73
|
+
AggFunc: AggFuncValue,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
props.onChangeAggFunction(aggCols);
|
|
77
|
+
};
|
|
78
|
+
const updateWeightedColumn = (weightedColumnId) => {
|
|
79
|
+
let aggCols = [...(props.layout.TableAggregationColumns || [])];
|
|
80
|
+
const AggFuncValue = {
|
|
81
|
+
type: 'weightedAverage',
|
|
82
|
+
weightedColumnId: weightedColumnId,
|
|
83
|
+
};
|
|
84
|
+
let found = false;
|
|
85
|
+
aggCols = aggCols.map(({ ColumnId, AggFunc }) => {
|
|
86
|
+
if (ColumnId === props.column.columnId) {
|
|
87
|
+
found = true;
|
|
88
|
+
return {
|
|
89
|
+
ColumnId,
|
|
90
|
+
AggFunc: AggFuncValue,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return { ColumnId, AggFunc };
|
|
94
|
+
});
|
|
95
|
+
if (!found) {
|
|
96
|
+
aggCols.push({
|
|
97
|
+
ColumnId: props.column.columnId,
|
|
98
|
+
AggFunc: AggFuncValue,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
props.onChangeAggFunction(aggCols);
|
|
102
|
+
};
|
|
103
|
+
const weightColumnId = typeof aggValue === 'object' && aggValue.type === 'weightedAverage'
|
|
104
|
+
? aggValue.weightedColumnId
|
|
105
|
+
: null;
|
|
106
|
+
const weightColumnOptions = props.numberColumns
|
|
107
|
+
.filter((col) => col.columnId !== props.column.columnId)
|
|
108
|
+
.map((col) => ({
|
|
109
|
+
label: col.friendlyName,
|
|
110
|
+
value: col.columnId,
|
|
111
|
+
}));
|
|
112
|
+
return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", children: [props.column.friendlyName, (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: props.column }), aggValue && ((0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:min-w-[140px] twa:ml-2", value: currentAggFnName, items: aggFunctionNames.map((fnName) => ({
|
|
113
|
+
label: fnName,
|
|
114
|
+
value: fnName,
|
|
115
|
+
})), onValueChange: updateAggFunc })), currentAggFnName === WEIGHTED_AVERAGE_AGG_FN_NAME && ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "twa:bg-primary twa:ml-3", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { children: "Weight" }), (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:min-w-[140px] twa:ml-2", placeholder: "Select Weight", value: weightColumnId, items: weightColumnOptions, onValueChange: updateWeightedColumn })] }))] }));
|
|
42
116
|
};
|
|
43
117
|
const AggregationsSection = (props) => {
|
|
44
118
|
const adaptable = (0, AdaptableContext_1.useAdaptable)();
|
|
@@ -48,6 +122,8 @@ const AggregationsSection = (props) => {
|
|
|
48
122
|
const numberColumns = adaptable.api.columnApi.getNumericColumns();
|
|
49
123
|
const allAggregatableColumnIds = allAggregableColumns.map((col) => col.columnId);
|
|
50
124
|
(layout.TableAggregationColumns || []).forEach((agg) => {
|
|
125
|
+
// we need to also display the columns currently aggregated,
|
|
126
|
+
// even if they are not aggregatable
|
|
51
127
|
if (!allAggregatableColumnIds.includes(agg.ColumnId)) {
|
|
52
128
|
allAggregatableColumnIds.push(agg.ColumnId);
|
|
53
129
|
}
|
|
@@ -82,29 +158,43 @@ const AggregationsSection = (props) => {
|
|
|
82
158
|
acc[col.columnId] = col;
|
|
83
159
|
return acc;
|
|
84
160
|
}, {});
|
|
85
|
-
return (
|
|
86
|
-
|
|
161
|
+
return (layout.TableAggregationColumns || []).reduce((acc, { ColumnId: colId, AggFunc }) => {
|
|
162
|
+
let fn = AggFunc;
|
|
163
|
+
let fnName = '';
|
|
164
|
+
if (typeof fn === 'boolean') {
|
|
165
|
+
fnName = allColumnsMap[colId].aggregationFunction;
|
|
166
|
+
}
|
|
167
|
+
if (typeof fn === 'object' && fn.type === 'weightedAverage') {
|
|
168
|
+
fnName = WEIGHTED_AVERAGE_AGG_FN_NAME;
|
|
169
|
+
}
|
|
170
|
+
else if (typeof fn === 'string') {
|
|
171
|
+
fnName = fn;
|
|
172
|
+
}
|
|
173
|
+
acc[colId] = fnName;
|
|
174
|
+
return acc;
|
|
175
|
+
}, {});
|
|
176
|
+
}, [layout]);
|
|
87
177
|
const handleSuppressAggFuncInHeader = (checked) => {
|
|
88
178
|
props.onChange({
|
|
89
179
|
...layout,
|
|
90
180
|
SuppressAggFuncInHeader: checked,
|
|
91
181
|
});
|
|
92
182
|
};
|
|
93
|
-
return ((0, jsx_runtime_1.jsxs)(
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
183
|
+
return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:h-full twa:min-h-0 twa:p-2 twa:gap-2 twa:overflow-hidden twa:grid twa:grid-cols-2", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, className: "twa:h-full twa:overflow-hidden twa:flex twa:flex-col", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Aggregation Columns" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Select a column and an aggregation function" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:flex-1 twa:min-h-0 twa:overflow-hidden twa:p-1", children: (0, jsx_runtime_1.jsx)(ValueSelector_1.ValueSelector, { style: { minHeight: 0 }, showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, toListLabel: (column) => ((0, jsx_runtime_1.jsx)(ColumnRow, { onChangeAggFunction: handleAggregationChange, layout: layout, column: column, aggregationColumnsMap: aggregationColumnsMap, numberColumns: numberColumns })), options: sortedAggregableColumns, value: (layout.TableAggregationColumns || []).map((agg) => agg.ColumnId), allowReorder: () => true, onChange: handleColumnsSelectionChange }) })] }), (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:h-full twa:min-h-0 twa:overflow-y-auto twa:flex twa:flex-col twa:gap-2", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsx)(Card_1.Card.Title, { children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Omit Aggregation from Header" }) }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { checked: layout.SuppressAggFuncInHeader, onChange: handleSuppressAggFuncInHeader, children: "Do not show aggregation function names in column headers" }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Grand Total Row" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Set position of the grand total row in the grid" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-[180px]", items: [
|
|
184
|
+
{
|
|
185
|
+
label: 'Off',
|
|
186
|
+
value: null,
|
|
187
|
+
},
|
|
188
|
+
].concat(['top', 'bottom', 'pinnedTop', 'pinnedBottom'].map((position) => {
|
|
189
|
+
return {
|
|
190
|
+
label: StringExtensions_1.default.CamelCaseToHumanText(position),
|
|
191
|
+
value: position,
|
|
192
|
+
};
|
|
193
|
+
})), placeholder: "Off", value: layout.GrandTotalRow, onValueChange: (value) => {
|
|
194
|
+
props.onChange({
|
|
195
|
+
...layout,
|
|
196
|
+
GrandTotalRow: value,
|
|
197
|
+
});
|
|
198
|
+
} }) })] })] })] }));
|
|
109
199
|
};
|
|
110
200
|
exports.AggregationsSection = AggregationsSection;
|