@adaptabletools/adaptable 11.0.0-canary.3 → 11.0.0-canary.7
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/agGrid.d.ts +5 -4
- package/agGrid.js +9 -7
- package/base.css +135 -69
- package/bundle.cjs.js +104 -99
- package/index.css +136 -69
- package/package.json +3 -3
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableInterfaces/AdaptableNoCodeWizard.d.ts +7 -5
- package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -0
- package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +1 -3
- package/src/AdaptableOptions/AdaptableOptions.d.ts +14 -7
- package/src/AdaptableOptions/{QueryLanguageOptions.d.ts → AdaptableQLOptions.d.ts} +34 -9
- package/src/AdaptableOptions/{QueryLanguageOptions.js → AdaptableQLOptions.js} +0 -0
- package/src/AdaptableOptions/AlertOptions.d.ts +82 -0
- package/src/AdaptableOptions/AlertOptions.js +2 -0
- package/src/AdaptableOptions/ContainerOptions.d.ts +2 -2
- package/src/AdaptableOptions/FilterOptions.d.ts +1 -1
- package/src/AdaptableOptions/GeneralOptions.d.ts +0 -7
- package/src/AdaptableOptions/NotificationsOptions.d.ts +1 -78
- package/src/AdaptableOptions/SearchOptions.d.ts +0 -9
- package/src/AdaptableOptions/StateOptions.d.ts +9 -8
- package/src/AdaptableOptions/TeamSharingOptions.d.ts +2 -2
- package/src/AdaptableOptions/ToolPanelOptions.d.ts +0 -2
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +3 -3
- package/src/Api/AdaptableApi.d.ts +6 -0
- package/src/Api/AlertApi.d.ts +2 -3
- package/src/Api/CalculatedColumnApi.d.ts +2 -9
- package/src/Api/ColumnApi.d.ts +0 -4
- package/src/Api/EventApi.d.ts +8 -3
- package/src/Api/Events/GridDataChanged.d.ts +4 -2
- package/src/Api/Events/SystemStatusMessageDisplayed.d.ts +1 -1
- package/src/Api/FreeTextColumnApi.d.ts +0 -12
- package/src/Api/GridApi.d.ts +13 -2
- package/src/Api/IPushPullApi.d.ts +1 -1
- package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -1
- package/src/Api/Implementation/AdaptableApiImpl.js +2 -0
- package/src/Api/Implementation/AlertApiImpl.d.ts +1 -2
- package/src/Api/Implementation/AlertApiImpl.js +19 -10
- package/src/Api/Implementation/ApiBase.d.ts +5 -2
- package/src/Api/Implementation/ApiBase.js +8 -2
- package/src/Api/Implementation/CalculatedColumnApiImpl.js +3 -4
- package/src/Api/Implementation/ColumnApiImpl.d.ts +0 -1
- package/src/Api/Implementation/ColumnApiImpl.js +0 -5
- package/src/Api/Implementation/FreeTextColumnApiImpl.d.ts +0 -5
- package/src/Api/Implementation/FreeTextColumnApiImpl.js +0 -9
- package/src/Api/Implementation/GridApiImpl.d.ts +4 -1
- package/src/Api/Implementation/GridApiImpl.js +27 -4
- package/src/Api/Implementation/InternalApiImpl.d.ts +2 -3
- package/src/Api/Implementation/InternalApiImpl.js +7 -6
- package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -0
- package/src/Api/Implementation/LayoutApiImpl.js +11 -0
- package/src/Api/Implementation/QueryApiImpl.js +4 -1
- package/src/Api/Implementation/QueryLanguageApiImpl.d.ts +4 -1
- package/src/Api/Implementation/QueryLanguageApiImpl.js +20 -8
- package/src/Api/Implementation/SettingsPanelApiImpl.d.ts +7 -0
- package/src/Api/Implementation/SettingsPanelApiImpl.js +15 -0
- package/src/Api/InternalApi.d.ts +2 -3
- package/src/Api/LayoutApi.d.ts +7 -0
- package/src/Api/OpenFinApi.d.ts +5 -0
- package/src/Api/PluginsApi.d.ts +29 -0
- package/src/Api/QueryApi.d.ts +2 -2
- package/src/Api/QueryLanguageApi.d.ts +23 -10
- package/src/Api/SettingsPanelApi.d.ts +16 -0
- package/src/Api/SettingsPanelApi.js +2 -0
- package/src/Api/UserInterfaceApi.d.ts +5 -2
- package/src/PredefinedConfig/AlertState.d.ts +8 -6
- package/src/PredefinedConfig/CalculatedColumnState.d.ts +8 -4
- package/src/PredefinedConfig/Common/AdaptableQuery.d.ts +7 -5
- package/src/PredefinedConfig/Common/AdaptableQuery.js +2 -6
- package/src/PredefinedConfig/Common/CellHighlightInfo.d.ts +1 -12
- package/src/PredefinedConfig/Common/Enums.d.ts +0 -1
- package/src/PredefinedConfig/Common/Enums.js +0 -2
- package/src/PredefinedConfig/Common/FDC3Context.d.ts +4 -12
- package/src/PredefinedConfig/Common/RowHighlightInfo.d.ts +15 -0
- package/src/PredefinedConfig/Common/RowHighlightInfo.js +2 -0
- package/src/PredefinedConfig/Common/SpecialColumnSettings.d.ts +1 -1
- package/src/PredefinedConfig/Common/Types.d.ts +3 -1
- package/src/PredefinedConfig/Common/Types.js +1 -0
- package/src/PredefinedConfig/CustomSortState.d.ts +0 -1
- package/src/PredefinedConfig/FlashingCellState.d.ts +3 -1
- package/src/PredefinedConfig/FreeTextColumnState.d.ts +1 -1
- package/src/PredefinedConfig/LayoutState.d.ts +0 -2
- package/src/PredefinedConfig/PredefinedConfig.d.ts +5 -2
- package/src/PredefinedConfig/Selection/GridCellRange.d.ts +3 -1
- package/src/PredefinedConfig/SystemState.d.ts +2 -1
- package/src/Redux/ActionsReducers/ApplicationRedux.js +9 -3
- package/src/Redux/ActionsReducers/FlashingCellRedux.js +4 -8
- package/src/Redux/ActionsReducers/GridRedux.js +3 -1
- package/src/Redux/ActionsReducers/PopupRedux.js +13 -3
- package/src/Redux/ActionsReducers/QuickSearchRedux.js +3 -1
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +6 -5
- package/src/Redux/ActionsReducers/SystemRedux.js +16 -14
- package/src/Redux/ActionsReducers/ThemeRedux.js +3 -1
- package/src/Redux/Store/AdaptableReduxMerger.js +1 -1
- package/src/Redux/Store/AdaptableStore.js +34 -8
- package/src/Strategy/AlertModule.js +16 -6
- package/src/Strategy/CalculatedColumnModule.js +4 -4
- package/src/Strategy/ChartingModule.d.ts +3 -3
- package/src/Strategy/ChartingModule.js +2 -2
- package/src/Strategy/ConditionalStyleModule.js +4 -0
- package/src/Strategy/FlashingCellModule.js +4 -4
- package/src/Strategy/FreeTextColumnModule.d.ts +2 -2
- package/src/Strategy/FreeTextColumnModule.js +11 -0
- package/src/Strategy/LayoutModule.js +1 -6
- package/src/Strategy/{SetingsPanelModule.d.ts → SettingsPanelModule.d.ts} +0 -0
- package/src/Strategy/{SetingsPanelModule.js → SettingsPanelModule.js} +0 -0
- package/src/Strategy/ToolPanelModule.js +5 -3
- package/src/Strategy/Utilities/getAlertPreviewViewItems.js +1 -1
- package/src/Strategy/Utilities/getExpressionViewItems.d.ts +2 -2
- package/src/Strategy/Utilities/getExpressionViewItems.js +2 -1
- package/src/Strategy/Utilities/getFormatColumnSettingsViewItems.js +1 -1
- package/src/Strategy/Utilities/getRuleViewItems.d.ts +0 -1
- package/src/Strategy/Utilities/getRuleViewItems.js +1 -3
- package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +2 -1
- package/src/Utilities/Constants/DocumentationLinkConstants.js +3 -2
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +23 -17
- package/src/Utilities/ExpressionFunctions/{aggregationExpressionFunctions.d.ts → aggregatedBooleanExpressionFunctions.d.ts} +1 -1
- package/src/Utilities/ExpressionFunctions/{aggregationExpressionFunctions.js → aggregatedBooleanExpressionFunctions.js} +4 -4
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +24 -0
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +339 -0
- package/src/Utilities/ExpressionFunctions/dateUtils.d.ts +1 -0
- package/src/Utilities/ExpressionFunctions/dateUtils.js +13 -0
- package/src/Utilities/ExpressionFunctions/deepMap.d.ts +35 -0
- package/src/Utilities/ExpressionFunctions/deepMap.js +283 -0
- package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.d.ts +2 -2
- package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +8 -8
- package/src/Utilities/ExpressionFunctions/groupingMap.d.ts +35 -0
- package/src/Utilities/ExpressionFunctions/groupingMap.js +105 -0
- package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +2 -2
- package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.d.ts +33 -0
- package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +154 -0
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +13 -4
- package/src/Utilities/Helpers/AdaptableHelper.js +3 -1
- package/src/Utilities/Helpers/CalendarHelper.js +220 -55
- package/src/Utilities/Interface/MessagePopups.d.ts +6 -2
- package/src/Utilities/ObjectFactory.js +1 -0
- package/src/Utilities/Services/AlertService.js +8 -4
- package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +7 -3
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +143 -18
- package/src/Utilities/Services/DataService.js +6 -1
- package/src/Utilities/Services/Interface/IAdaptableService.d.ts +1 -1
- package/src/Utilities/Services/Interface/ICalculatedColumnExpressionService.d.ts +6 -3
- package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +9 -3
- package/src/Utilities/Services/LicenseService.js +1 -1
- package/src/Utilities/Services/QueryLanguageService.d.ts +11 -4
- package/src/Utilities/Services/QueryLanguageService.js +92 -28
- package/src/Utilities/Services/ReportService.js +6 -2
- package/src/Utilities/Services/TeamSharingService.js +5 -3
- package/src/View/AdaptablePopover/index.js +6 -1
- package/src/View/AdaptableView.js +1 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +5 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationForm.js +10 -5
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/index.js +4 -1
- package/src/View/AdaptableWizardView/helper.js +5 -3
- package/src/View/Alert/Wizard/AlertButtonsEditor.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +5 -1
- package/src/View/Alert/Wizard/AlertDisplayWizardSection.d.ts +1 -0
- package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +2 -2
- package/src/View/Alert/Wizard/AlertWizard.js +2 -2
- package/src/View/Alert/Wizard/BaseAlertRulesWizardSection.js +2 -2
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +3 -2
- package/src/View/Alert/Wizard/isValidAlertRules.js +3 -3
- package/src/View/CalculatedColumn/CalculatedColumnSharedEntity.js +3 -3
- package/src/View/CalculatedColumn/CalculatedColumnSummary.js +2 -4
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +43 -12
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +2 -2
- package/src/View/CellSummary/CellSummaryViewPanel.js +1 -2
- package/src/View/ColorPicker.d.ts +1 -1
- package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
- package/src/View/Components/AdaptableInput/index.d.ts +1 -1
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +5 -2
- package/src/View/Components/Buttons/ButtonDelete.d.ts +1 -1
- package/src/View/Components/EntityRulesEditor/index.js +11 -12
- package/src/View/Components/FilterForm/FilterForm.js +0 -2
- package/src/View/Components/FilterForm/QuickFilterForm.js +6 -5
- package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.d.ts +1 -1
- package/src/View/Components/Forms/AdaptableFormControlTextClear.d.ts +1 -1
- package/src/View/Components/Panels/PanelWithImage.d.ts +2 -2
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.d.ts +0 -3
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +45 -88
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.d.ts +11 -0
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +78 -0
- package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +1 -3
- package/src/View/Components/Popups/AdaptablePopup/Navigation.js +5 -13
- package/src/View/Components/Popups/AdaptablePopup/TopBar.js +5 -4
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +2 -0
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +44 -0
- package/src/View/Components/Popups/AdaptablePopupAlert.d.ts +1 -0
- package/src/View/Components/Popups/AdaptablePopupAlert.js +1 -1
- package/src/View/Components/Popups/AdaptablePopupConfirmation.js +3 -1
- package/src/View/Components/Popups/AdaptablePopupPrompt.d.ts +5 -12
- package/src/View/Components/Popups/AdaptablePopupPrompt.js +38 -37
- package/src/View/Components/Popups/AdaptablePopupTeamSharing.js +4 -1
- package/src/View/Components/ScopeComponent.js +4 -1
- package/src/View/Components/ToolPanel/CustomToolPanelContent.js +5 -1
- package/src/View/Components/ToolPanel/ToolPanelPopup.js +3 -1
- package/src/View/Components/ToolPanel/ToolPanelWrapper.js +1 -1
- package/src/View/Components/ValueSelector/index.js +1 -1
- package/src/View/ConditionalStyle/Wizard/ConditionalStyleRuleWizardSection.js +2 -2
- package/src/View/ConditionalStyle/Wizard/ConditionalStyleSettingsWizardSettings.d.ts +8 -0
- package/src/View/ConditionalStyle/Wizard/ConditionalStyleSettingsWizardSettings.js +27 -0
- package/src/View/ConditionalStyle/Wizard/ConditionalStyleWizard.js +7 -0
- package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +3 -1
- package/src/View/CustomSort/Wizard/CustomSortWizard.js +1 -1
- package/src/View/Dashboard/CustomToolbarWrapper.js +5 -1
- package/src/View/Dashboard/Dashboard.js +2 -3
- package/src/View/Dashboard/DashboardPopup.js +3 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +2 -1
- package/src/View/Export/Wizard/ReportColumnTypeWizard.js +3 -1
- package/src/View/Export/Wizard/ReportRowTypeWizard.js +3 -1
- package/src/View/Filter/FilterViewPanel.d.ts +1 -4
- package/src/View/Filter/FilterViewPanel.js +1 -3
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +2 -2
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +1 -1
- package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -2
- package/src/View/GridInfo/AdaptableOptionsComponent.js +4 -1
- package/src/View/Layout/Wizard/LayoutEditor/index.js +6 -2
- package/src/View/Layout/Wizard/LayoutEditorWizard.js +7 -1
- package/src/View/License/LicenseWatermark.js +1 -1
- package/src/View/Query/ExpandedQueryPopup.js +9 -2
- package/src/View/Query/QueryViewPanel.js +3 -1
- package/src/View/Query/Wizard/NamedQueryWizard.js +3 -3
- package/src/View/QuickSearch/QuickSearchPopup.js +3 -3
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsSummary.js +12 -2
- package/src/View/SpecialColumnSettingsWizardStep.js +1 -2
- package/src/View/UIHelper.js +4 -1
- package/src/View/Wizard/AdaptableWizard.js +12 -3
- package/src/View/Wizard/OnePageAdaptableWizard.js +5 -1
- package/src/agGrid/Adaptable.d.ts +3 -3
- package/src/agGrid/Adaptable.js +117 -77
- package/src/agGrid/agGridHelper.js +4 -9
- package/src/agGrid/agGridMenuHelper.js +4 -8
- package/src/agGrid/editors/AdaptableDateEditor/index.js +1 -1
- package/src/agGrid/editors/AdaptableNumberEditor/index.js +1 -1
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.d.ts +4 -2
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +4 -4
- package/src/components/ApplicationIcon.d.ts +1 -0
- package/src/components/ApplicationIcon.js +2 -2
- package/src/components/Dashboard/Dashboard.js +4 -1
- package/src/components/Datepicker/index.d.ts +1 -1
- package/src/components/Dropdown/index.js +8 -1
- package/src/components/ExpressionEditor/EditorInput.d.ts +1 -1
- package/src/components/ExpressionEditor/EditorInput.js +5 -2
- package/src/components/ExpressionEditor/EditorInputReactive.d.ts +1 -1
- package/src/components/ExpressionEditor/EditorInputReactive.js +4 -2
- package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +5 -2
- package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.d.ts +2 -0
- package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.js +45 -0
- package/src/components/ExpressionEditor/editorButtonsReactive.js +8 -13
- package/src/components/ExpressionEditor/index.d.ts +2 -1
- package/src/components/ExpressionEditor/index.js +20 -6
- package/src/components/Input/index.d.ts +1 -1
- package/src/components/List/ListGroupItem/index.d.ts +1 -1
- package/src/components/Logo/index.js +8 -7
- package/src/components/PopupWithFooter.d.ts +1 -1
- package/src/components/SizedContainer/index.js +7 -1
- package/src/components/Textarea/index.d.ts +1 -1
- package/src/components/WindowModal/WindowModal.js +4 -1
- package/src/metamodel/adaptable.metamodel.d.ts +114 -59
- package/src/metamodel/adaptable.metamodel.js +373 -242
- package/src/types.d.ts +9 -6
- package/themes/dark.css +4 -4
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LicenseDocsLink = exports.PrimaryKeyDocsLink = exports.PredicateDocsLink = exports.
|
|
3
|
+
exports.LicenseDocsLink = exports.PrimaryKeyDocsLink = exports.PredicateDocsLink = exports.AggregatedScalarQueryDocsLink = exports.AggregatedBooleanQueryDocsLink = exports.ObservableQueryDocsLink = exports.ScalarQueryDocsLink = exports.BooleanQueryDocsLink = exports.ExpressionEditorDocsLink = exports.HOST_URL_DOCS = void 0;
|
|
4
4
|
exports.HOST_URL_DOCS = 'https://docs.adaptabletools.com/docs';
|
|
5
5
|
exports.ExpressionEditorDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/expression-editor`;
|
|
6
6
|
exports.BooleanQueryDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/expression/#boolean-expressions`;
|
|
7
7
|
exports.ScalarQueryDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/expression/#scalar-expressions`;
|
|
8
8
|
exports.ObservableQueryDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/expression/#observable-expressions`;
|
|
9
|
-
exports.
|
|
9
|
+
exports.AggregatedBooleanQueryDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/expression/#aggregation-expressions`;
|
|
10
|
+
exports.AggregatedScalarQueryDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/expression/#aggregation-expressions`;
|
|
10
11
|
exports.PredicateDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/predicate`;
|
|
11
12
|
exports.PrimaryKeyDocsLink = `${exports.HOST_URL_DOCS}/key-topics/primary-key`;
|
|
12
13
|
exports.LicenseDocsLink = `${exports.HOST_URL_DOCS}/getting-started/licence`;
|
|
@@ -8,9 +8,10 @@ const UIHelper_1 = tslib_1.__importStar(require("../../View/UIHelper"));
|
|
|
8
8
|
const booleanExpressionFunctions_1 = require("../ExpressionFunctions/booleanExpressionFunctions");
|
|
9
9
|
const scalarExpressionFunctions_1 = require("../ExpressionFunctions/scalarExpressionFunctions");
|
|
10
10
|
const observableExpressionFunctions_1 = require("../ExpressionFunctions/observableExpressionFunctions");
|
|
11
|
-
const
|
|
11
|
+
const aggregatedBooleanExpressionFunctions_1 = require("../ExpressionFunctions/aggregatedBooleanExpressionFunctions");
|
|
12
12
|
const AdaptablePredicate_1 = require("../../PredefinedConfig/Common/AdaptablePredicate");
|
|
13
13
|
const Enums_1 = require("../../PredefinedConfig/Common/Enums");
|
|
14
|
+
const aggregatedScalarExpressionFunctions_1 = require("../ExpressionFunctions/aggregatedScalarExpressionFunctions");
|
|
14
15
|
exports.DefaultAdaptableOptions = {
|
|
15
16
|
adaptableId: GeneralConstants.ADAPTABLE_ID,
|
|
16
17
|
adaptableStateKey: undefined,
|
|
@@ -19,20 +20,22 @@ exports.DefaultAdaptableOptions = {
|
|
|
19
20
|
autogeneratePrimaryKey: false,
|
|
20
21
|
userName: GeneralConstants.USER_NAME,
|
|
21
22
|
predefinedConfig: undefined,
|
|
22
|
-
|
|
23
|
+
alertOptions: {
|
|
23
24
|
alertForms: undefined,
|
|
24
25
|
maxAlertsInStore: 20,
|
|
26
|
+
cellHighlightDuration: 3000,
|
|
27
|
+
dataChangeDetectionPolicy: 'rawValue',
|
|
28
|
+
actionHandlers: undefined,
|
|
29
|
+
},
|
|
30
|
+
notificationsOptions: {
|
|
25
31
|
maxNotifications: 3,
|
|
26
32
|
position: 'BottomRight',
|
|
27
33
|
duration: 3000,
|
|
28
|
-
cellHighlightDuration: 3000,
|
|
29
|
-
dataChangeDetectionPolicy: 'rawValue',
|
|
30
34
|
showProgressBar: false,
|
|
31
35
|
closeWhenClicked: false,
|
|
32
36
|
pauseWhenHovering: false,
|
|
33
37
|
isDraggable: false,
|
|
34
38
|
transition: 'Slide',
|
|
35
|
-
actionHandlers: undefined,
|
|
36
39
|
showApplicationIcon: false,
|
|
37
40
|
showSystemStatusMessageNotifications: false,
|
|
38
41
|
maxSystemMessagesInStore: 100,
|
|
@@ -50,6 +53,21 @@ exports.DefaultAdaptableOptions = {
|
|
|
50
53
|
BackColor: UIHelper_1.getHexForName(UIHelper_1.GRAY),
|
|
51
54
|
},
|
|
52
55
|
},
|
|
56
|
+
adaptableQLOptions: {
|
|
57
|
+
caseSensitiveTextComparisons: false,
|
|
58
|
+
externallyEvaluatedModules: [],
|
|
59
|
+
expressionOptions: {
|
|
60
|
+
defaultBooleanFunctions: booleanExpressionFunctions_1.booleanExpressionFunctions,
|
|
61
|
+
defaultScalarFunctions: scalarExpressionFunctions_1.scalarExpressionFunctions,
|
|
62
|
+
defaultObservableFunctions: observableExpressionFunctions_1.observableExpressionFunctions,
|
|
63
|
+
defaultAggregatedBooleanFunctions: aggregatedBooleanExpressionFunctions_1.aggregatedBooleanExpressionFunctions,
|
|
64
|
+
defaultAggregatedScalarFunctions: aggregatedScalarExpressionFunctions_1.aggregatedScalarExpressionFunctions,
|
|
65
|
+
moduleExpressionFunctions: undefined,
|
|
66
|
+
queryableColumns: undefined,
|
|
67
|
+
performExpressionValidation: true,
|
|
68
|
+
maxTimeframeSize: 28800000,
|
|
69
|
+
},
|
|
70
|
+
},
|
|
53
71
|
containerOptions: {
|
|
54
72
|
adaptableContainer: 'adaptable',
|
|
55
73
|
agGridContainer: 'grid',
|
|
@@ -105,7 +123,6 @@ exports.DefaultAdaptableOptions = {
|
|
|
105
123
|
currentCalendar: 'United Kingdom',
|
|
106
124
|
cellSummaryOperations: undefined,
|
|
107
125
|
customSortComparers: undefined,
|
|
108
|
-
caseSensitiveTextComparisons: false,
|
|
109
126
|
},
|
|
110
127
|
layoutOptions: {
|
|
111
128
|
includeExpandedRowGroups: false,
|
|
@@ -153,7 +170,6 @@ exports.DefaultAdaptableOptions = {
|
|
|
153
170
|
},
|
|
154
171
|
searchOptions: {
|
|
155
172
|
excludeColumnFromQuickSearch: undefined,
|
|
156
|
-
serverSearchOptions: undefined,
|
|
157
173
|
clearSearchesOnStartUp: false,
|
|
158
174
|
quickSearchPlaceholder: 'Search',
|
|
159
175
|
filterResultsAfterQuickSearch: false,
|
|
@@ -206,16 +222,6 @@ exports.DefaultAdaptableOptions = {
|
|
|
206
222
|
maxWidth: undefined,
|
|
207
223
|
toolPanelOrder: ['filters', 'columns', 'adaptable'],
|
|
208
224
|
},
|
|
209
|
-
queryLanguageOptions: {
|
|
210
|
-
defaultBooleanFunctions: booleanExpressionFunctions_1.booleanExpressionFunctions,
|
|
211
|
-
defaultScalarFunctions: scalarExpressionFunctions_1.scalarExpressionFunctions,
|
|
212
|
-
defaultObservableFunctions: observableExpressionFunctions_1.observableExpressionFunctions,
|
|
213
|
-
defaultAggregationFunctions: aggregationExpressionFunctions_1.aggregationExpressionFunctions,
|
|
214
|
-
moduleExpressionFunctions: undefined,
|
|
215
|
-
queryableColumns: undefined,
|
|
216
|
-
performExpressionValidation: true,
|
|
217
|
-
maxTimeframeSize: 28800000,
|
|
218
|
-
},
|
|
219
225
|
dataChangeHistoryOptions: {
|
|
220
226
|
activeByDefault: false,
|
|
221
227
|
showDataChange: undefined,
|
|
@@ -2,5 +2,5 @@ import { ExpressionFunction } from '../../parser/src/types';
|
|
|
2
2
|
declare type AggregationFunctionName = 'WHERE' | 'COL' | AggregationFunction | ComparisonFunction;
|
|
3
3
|
declare type AggregationFunction = 'SUM';
|
|
4
4
|
declare type ComparisonFunction = 'EQ' | 'NEQ' | 'LT' | 'GT' | 'LTE' | 'GTE';
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const aggregatedBooleanExpressionFunctions: Record<AggregationFunctionName, ExpressionFunction>;
|
|
6
6
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.aggregatedBooleanExpressionFunctions = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const rxjs_1 = require("rxjs");
|
|
6
6
|
const parseInt_1 = tslib_1.__importDefault(require("lodash/parseInt"));
|
|
@@ -14,7 +14,7 @@ const aggregationScalarOperandMap = {
|
|
|
14
14
|
// 1. block containing a numeric value (any digits) (required)
|
|
15
15
|
// 2. block containing a single 'K', 'M' or 'B' letter (optional) (case insensitive)
|
|
16
16
|
const CRITERIA_REGEX = /^(?:\s*)(\d+)(K|M|B)?$/i;
|
|
17
|
-
exports.
|
|
17
|
+
exports.aggregatedBooleanExpressionFunctions = {
|
|
18
18
|
WHERE: {
|
|
19
19
|
handler(args, context) {
|
|
20
20
|
return expressionFunctionUtils_1.handleWhereFunction(args, context);
|
|
@@ -46,7 +46,7 @@ exports.aggregationExpressionFunctions = {
|
|
|
46
46
|
handler(args, context) {
|
|
47
47
|
return expressionFunctionUtils_1.handleColumnFunction(args, context);
|
|
48
48
|
},
|
|
49
|
-
description: 'References a
|
|
49
|
+
description: 'References a column by its unique identifier',
|
|
50
50
|
signatures: ['[colName]', 'COL(name: string)'],
|
|
51
51
|
examples: ['[col1]', "COL('col1')"],
|
|
52
52
|
},
|
|
@@ -55,7 +55,7 @@ exports.aggregationExpressionFunctions = {
|
|
|
55
55
|
return handleAggregationCondition(args, context, '=', (aggregatedValue, conditionValue) => aggregatedValue === conditionValue);
|
|
56
56
|
},
|
|
57
57
|
isHiddenFromMenu: true,
|
|
58
|
-
description: 'Evaluates if the aggregation result
|
|
58
|
+
description: 'Evaluates if the aggregation result equals a numerical value defined either as a number or a string abbreviation for thousands(K), millions(M) or billions(B)',
|
|
59
59
|
signatures: [
|
|
60
60
|
'SUM() = number',
|
|
61
61
|
`SUM() = '%number%(K|M|B)'`,
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ExpressionFunction } from '../../parser/src/types';
|
|
2
|
+
import { BaseParameter } from './expressionFunctionUtils';
|
|
3
|
+
import { RowNode } from '@ag-grid-community/all-modules';
|
|
4
|
+
import { AggregateParams } from './scalarAggregationHelper';
|
|
5
|
+
export declare type AggregatedScalarFunctionName = AggregationFunction | OperandFunction;
|
|
6
|
+
declare type AggregationFunction = 'SUM' | 'PERCENTAGE' | 'AVG' | 'MIN' | 'MAX' | 'CUMUL';
|
|
7
|
+
declare type OperandFunction = 'COL' | 'OVER' | 'GROUP_BY';
|
|
8
|
+
export interface AggregationParameter extends BaseParameter<'aggregation', AggregationFunction> {
|
|
9
|
+
value: AggregatedScalarExpressionEvaluation;
|
|
10
|
+
}
|
|
11
|
+
export interface OverParameter extends BaseParameter<'operand', 'OVER'> {
|
|
12
|
+
value: string;
|
|
13
|
+
}
|
|
14
|
+
export interface GroupByParameter extends BaseParameter<'operand', 'GROUP_BY'> {
|
|
15
|
+
value: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AggregatedScalarExpressionEvaluation {
|
|
18
|
+
aggregationParams: AggregateParams<any, string | number>;
|
|
19
|
+
rowValueGetter?: (rowNode: RowNode, aggregationValue: number) => string | number | Date | boolean;
|
|
20
|
+
columnDependencies: string[];
|
|
21
|
+
cumulateOver?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const aggregatedScalarExpressionFunctions: Record<AggregatedScalarFunctionName, ExpressionFunction>;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.aggregatedScalarExpressionFunctions = void 0;
|
|
4
|
+
const expressionFunctionUtils_1 = require("./expressionFunctionUtils");
|
|
5
|
+
const ExpressionEvaluationError_1 = require("../../parser/src/ExpressionEvaluationError");
|
|
6
|
+
exports.aggregatedScalarExpressionFunctions = {
|
|
7
|
+
SUM: {
|
|
8
|
+
handler(args, context) {
|
|
9
|
+
const sumColumnParameter = expressionFunctionUtils_1.extractColumnParameter('SUM', args);
|
|
10
|
+
const sumColumnName = sumColumnParameter.value;
|
|
11
|
+
expressionFunctionUtils_1.validateColumnType(sumColumnName, ['Number'], 'SUM', context.api);
|
|
12
|
+
const groupByParameter = expressionFunctionUtils_1.extractParameter('SUM', 'operand', ['GROUP_BY'], args, true);
|
|
13
|
+
const aggregationExpressionEvaluation = {
|
|
14
|
+
aggregationParams: {
|
|
15
|
+
reducers: {
|
|
16
|
+
SUM: {
|
|
17
|
+
name: 'SUM',
|
|
18
|
+
field: sumColumnName,
|
|
19
|
+
initialValue: 0,
|
|
20
|
+
reducer: (totalSum, rowValue) => {
|
|
21
|
+
if (!rowValue) {
|
|
22
|
+
return totalSum;
|
|
23
|
+
}
|
|
24
|
+
return totalSum + rowValue;
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
columnDependencies: [sumColumnName],
|
|
30
|
+
};
|
|
31
|
+
if (groupByParameter) {
|
|
32
|
+
const groupByColumnName = groupByParameter.value;
|
|
33
|
+
aggregationExpressionEvaluation.aggregationParams.groupBy = [
|
|
34
|
+
{
|
|
35
|
+
field: groupByColumnName,
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
aggregationExpressionEvaluation.columnDependencies.push(groupByColumnName);
|
|
39
|
+
}
|
|
40
|
+
const result = {
|
|
41
|
+
name: 'SUM',
|
|
42
|
+
type: 'aggregation',
|
|
43
|
+
value: aggregationExpressionEvaluation,
|
|
44
|
+
};
|
|
45
|
+
return result;
|
|
46
|
+
},
|
|
47
|
+
description: 'Aggregates a column over multiple rows by summing up the column values\nOptionally the aggregation may be computed within provided individual groups',
|
|
48
|
+
signatures: [
|
|
49
|
+
'SUM( [colName] )',
|
|
50
|
+
'SUM( COL(name: string))',
|
|
51
|
+
'SUM( [colNameA], GROUP_BY( [colNameB] ))',
|
|
52
|
+
'SUM( COL(nameA: string), GROUP_BY( COL(nameB: string)))',
|
|
53
|
+
],
|
|
54
|
+
examples: ['SUM([colA])', 'SUM([colA], GROUP_BY([colB]))'],
|
|
55
|
+
},
|
|
56
|
+
PERCENTAGE: {
|
|
57
|
+
handler(args, context) {
|
|
58
|
+
var _a;
|
|
59
|
+
const percentageColumnParameter = expressionFunctionUtils_1.extractColumnParameter('PERCENTAGE', args);
|
|
60
|
+
const percentageColumnName = percentageColumnParameter.value;
|
|
61
|
+
expressionFunctionUtils_1.validateColumnType(percentageColumnName, ['Number'], 'PERCENTAGE', context.api);
|
|
62
|
+
const sumOperand = expressionFunctionUtils_1.extractParameter('PERCENTAGE', 'aggregation', ['SUM'], args, true);
|
|
63
|
+
const groupByOperand = expressionFunctionUtils_1.extractParameter('PERCENTAGE', 'operand', ['GROUP_BY'], args, true);
|
|
64
|
+
if (sumOperand && groupByOperand) {
|
|
65
|
+
throw new ExpressionEvaluationError_1.ExpressionEvaluationError('PERCENTAGE', `expects either a SUM or a GROUP_BY argument`);
|
|
66
|
+
}
|
|
67
|
+
const sumAggregationColumnName = sumOperand
|
|
68
|
+
? sumOperand.value.aggregationParams.reducers['SUM'].field
|
|
69
|
+
: percentageColumnName;
|
|
70
|
+
const groupByColumnName = groupByOperand
|
|
71
|
+
? groupByOperand.value
|
|
72
|
+
: (_a = sumOperand === null || sumOperand === void 0 ? void 0 : sumOperand.value.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a[0].field;
|
|
73
|
+
const aggregationExpressionEvaluation = {
|
|
74
|
+
aggregationParams: {
|
|
75
|
+
reducers: {
|
|
76
|
+
PERCENTAGE: {
|
|
77
|
+
name: 'PERCENTAGE',
|
|
78
|
+
field: sumAggregationColumnName,
|
|
79
|
+
initialValue: 0,
|
|
80
|
+
reducer: (totalSum, rowValue) => {
|
|
81
|
+
if (!rowValue) {
|
|
82
|
+
return totalSum;
|
|
83
|
+
}
|
|
84
|
+
return totalSum + rowValue;
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
rowValueGetter: (rowNode, aggregationValue) => {
|
|
90
|
+
return ((context.api.gridApi.getRawValueFromRowNode(rowNode, percentageColumnName) /
|
|
91
|
+
aggregationValue) *
|
|
92
|
+
100);
|
|
93
|
+
},
|
|
94
|
+
columnDependencies: [...new Set([percentageColumnName, sumAggregationColumnName])],
|
|
95
|
+
};
|
|
96
|
+
if (groupByColumnName) {
|
|
97
|
+
aggregationExpressionEvaluation.aggregationParams.groupBy = [
|
|
98
|
+
{
|
|
99
|
+
field: groupByColumnName,
|
|
100
|
+
},
|
|
101
|
+
];
|
|
102
|
+
aggregationExpressionEvaluation.columnDependencies.push(groupByColumnName);
|
|
103
|
+
}
|
|
104
|
+
const result = {
|
|
105
|
+
name: 'PERCENTAGE',
|
|
106
|
+
type: 'aggregation',
|
|
107
|
+
value: aggregationExpressionEvaluation,
|
|
108
|
+
};
|
|
109
|
+
return result;
|
|
110
|
+
},
|
|
111
|
+
description: 'Divides each column value by the aggregated sum of a column\nThe column with the aggregated value and the column with the percentage value do not necessarily have to be identical',
|
|
112
|
+
signatures: [
|
|
113
|
+
'PERCENTAGE( [colName] )',
|
|
114
|
+
'PERCENTAGE( [colNameA], GROUP_BY( [colNameB] ))',
|
|
115
|
+
'PERCENTAGE( [colNameA], SUM ( [colNameB] ))',
|
|
116
|
+
'PERCENTAGE( [colNameA], SUM ( [colNameB], GROUP_BY( [colNameC] )))',
|
|
117
|
+
],
|
|
118
|
+
examples: [
|
|
119
|
+
'PERCENTAGE( [colName] )',
|
|
120
|
+
'PERCENTAGE( [colNameA], GROUP_BY( [colNameB] ))',
|
|
121
|
+
'PERCENTAGE( [colNameA], SUM ( [colNameB] ))',
|
|
122
|
+
'PERCENTAGE( [colNameA], SUM ( [colNameB], GROUP_BY( [colNameC] )))',
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
AVG: {
|
|
126
|
+
handler(args, context) {
|
|
127
|
+
const avgColumnParameter = expressionFunctionUtils_1.extractColumnParameter('AVG', args);
|
|
128
|
+
const avgColumnName = avgColumnParameter.value;
|
|
129
|
+
expressionFunctionUtils_1.validateColumnType(avgColumnName, ['Number'], 'AVG', context.api);
|
|
130
|
+
const groupByParameter = expressionFunctionUtils_1.extractParameter('AVG', 'operand', ['GROUP_BY'], args, true);
|
|
131
|
+
const aggregationExpressionEvaluation = {
|
|
132
|
+
aggregationParams: {
|
|
133
|
+
reducers: {
|
|
134
|
+
SUM: {
|
|
135
|
+
name: 'AVG',
|
|
136
|
+
field: avgColumnName,
|
|
137
|
+
initialValue: 0,
|
|
138
|
+
reducer: (totalSum, rowValue) => {
|
|
139
|
+
if (!rowValue) {
|
|
140
|
+
return totalSum;
|
|
141
|
+
}
|
|
142
|
+
return totalSum + rowValue;
|
|
143
|
+
},
|
|
144
|
+
done: (value, dataArray) => {
|
|
145
|
+
return dataArray.length ? value / dataArray.length : 0;
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
columnDependencies: [avgColumnName],
|
|
151
|
+
};
|
|
152
|
+
if (groupByParameter) {
|
|
153
|
+
const groupByColumnName = groupByParameter.value;
|
|
154
|
+
aggregationExpressionEvaluation.aggregationParams.groupBy = [
|
|
155
|
+
{
|
|
156
|
+
field: groupByColumnName,
|
|
157
|
+
},
|
|
158
|
+
];
|
|
159
|
+
aggregationExpressionEvaluation.columnDependencies.push(groupByColumnName);
|
|
160
|
+
}
|
|
161
|
+
const result = {
|
|
162
|
+
name: 'AVG',
|
|
163
|
+
type: 'aggregation',
|
|
164
|
+
value: aggregationExpressionEvaluation,
|
|
165
|
+
};
|
|
166
|
+
return result;
|
|
167
|
+
},
|
|
168
|
+
description: 'Aggregates a column over multiple rows by computing the average value (arithmetic mean) of the column values\nOptionally the aggregation may be computed within provided individual groups',
|
|
169
|
+
signatures: [
|
|
170
|
+
'AVG( [colName] )',
|
|
171
|
+
'AVG( COL(name: string))',
|
|
172
|
+
'AVG( [colNameA], GROUP_BY( [colNameB] ))',
|
|
173
|
+
'AVG( COL(nameA: string), GROUP_BY( COL(nameB: string)))',
|
|
174
|
+
],
|
|
175
|
+
examples: ['AVG([colA])', 'AVG([colA], GROUP_BY([colB]))'],
|
|
176
|
+
},
|
|
177
|
+
MIN: {
|
|
178
|
+
handler(args, context) {
|
|
179
|
+
const minColumnParameter = expressionFunctionUtils_1.extractColumnParameter('MIN', args);
|
|
180
|
+
const minColumnName = minColumnParameter.value;
|
|
181
|
+
expressionFunctionUtils_1.validateColumnType(minColumnName, ['Number'], 'MIN', context.api);
|
|
182
|
+
const groupByParameter = expressionFunctionUtils_1.extractParameter('MIN', 'operand', ['GROUP_BY'], args, true);
|
|
183
|
+
const aggregationExpressionEvaluation = {
|
|
184
|
+
aggregationParams: {
|
|
185
|
+
reducers: {
|
|
186
|
+
SUM: {
|
|
187
|
+
name: 'MIN',
|
|
188
|
+
field: minColumnName,
|
|
189
|
+
initialValue: Number.MAX_VALUE,
|
|
190
|
+
reducer: (minValue, rowValue) => {
|
|
191
|
+
if (!rowValue) {
|
|
192
|
+
return minValue;
|
|
193
|
+
}
|
|
194
|
+
return rowValue < minValue ? rowValue : minValue;
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
columnDependencies: [minColumnName],
|
|
200
|
+
};
|
|
201
|
+
if (groupByParameter) {
|
|
202
|
+
const groupByColumnName = groupByParameter.value;
|
|
203
|
+
aggregationExpressionEvaluation.aggregationParams.groupBy = [
|
|
204
|
+
{
|
|
205
|
+
field: groupByColumnName,
|
|
206
|
+
},
|
|
207
|
+
];
|
|
208
|
+
aggregationExpressionEvaluation.columnDependencies.push(groupByColumnName);
|
|
209
|
+
}
|
|
210
|
+
const result = {
|
|
211
|
+
name: 'MIN',
|
|
212
|
+
type: 'aggregation',
|
|
213
|
+
value: aggregationExpressionEvaluation,
|
|
214
|
+
};
|
|
215
|
+
return result;
|
|
216
|
+
},
|
|
217
|
+
description: 'Aggregates a column over multiple rows by computing the minimum of the column values\nOptionally the aggregation may be computed within provided individual groups',
|
|
218
|
+
signatures: [
|
|
219
|
+
'MIN( [colName] )',
|
|
220
|
+
'MIN( COL(name: string))',
|
|
221
|
+
'MIN( [colNameA], GROUP_BY( [colNameB] ))',
|
|
222
|
+
'MIN( COL(nameA: string), GROUP_BY( COL(nameB: string)))',
|
|
223
|
+
],
|
|
224
|
+
examples: ['MIN([colA])', 'MIN([colA], GROUP_BY([colB]))'],
|
|
225
|
+
},
|
|
226
|
+
MAX: {
|
|
227
|
+
handler(args, context) {
|
|
228
|
+
const maxColumnParameter = expressionFunctionUtils_1.extractColumnParameter('MAX', args);
|
|
229
|
+
const maxColumnName = maxColumnParameter.value;
|
|
230
|
+
expressionFunctionUtils_1.validateColumnType(maxColumnName, ['Number'], 'MAX', context.api);
|
|
231
|
+
const groupByParameter = expressionFunctionUtils_1.extractParameter('MAX', 'operand', ['GROUP_BY'], args, true);
|
|
232
|
+
const aggregationExpressionEvaluation = {
|
|
233
|
+
aggregationParams: {
|
|
234
|
+
reducers: {
|
|
235
|
+
SUM: {
|
|
236
|
+
name: 'MAX',
|
|
237
|
+
field: maxColumnName,
|
|
238
|
+
initialValue: Number.MIN_VALUE,
|
|
239
|
+
reducer: (maxValue, rowValue) => {
|
|
240
|
+
if (!rowValue) {
|
|
241
|
+
return maxValue;
|
|
242
|
+
}
|
|
243
|
+
return rowValue > maxValue ? rowValue : maxValue;
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
},
|
|
248
|
+
columnDependencies: [maxColumnName],
|
|
249
|
+
};
|
|
250
|
+
if (groupByParameter) {
|
|
251
|
+
const groupByColumnName = groupByParameter.value;
|
|
252
|
+
aggregationExpressionEvaluation.aggregationParams.groupBy = [
|
|
253
|
+
{
|
|
254
|
+
field: groupByColumnName,
|
|
255
|
+
},
|
|
256
|
+
];
|
|
257
|
+
aggregationExpressionEvaluation.columnDependencies.push(groupByColumnName);
|
|
258
|
+
}
|
|
259
|
+
const result = {
|
|
260
|
+
name: 'MAX',
|
|
261
|
+
type: 'aggregation',
|
|
262
|
+
value: aggregationExpressionEvaluation,
|
|
263
|
+
};
|
|
264
|
+
return result;
|
|
265
|
+
},
|
|
266
|
+
description: 'Aggregates a column over multiple rows by computing the maximum of the column values\nOptionally the aggregation may be computed within provided individual groups',
|
|
267
|
+
signatures: [
|
|
268
|
+
'MAX( [colName] )',
|
|
269
|
+
'MAX( COL(name: string))',
|
|
270
|
+
'MAX( [colNameA], GROUP_BY( [colNameB] ))',
|
|
271
|
+
'MAX( COL(nameA: string), GROUP_BY( COL(nameB: string)))',
|
|
272
|
+
],
|
|
273
|
+
examples: ['MIN([colA])', 'MIN([colA], GROUP_BY([colB]))'],
|
|
274
|
+
},
|
|
275
|
+
GROUP_BY: {
|
|
276
|
+
handler(args, context) {
|
|
277
|
+
const columnParameter = expressionFunctionUtils_1.extractColumnParameter('GROUP_BY', args);
|
|
278
|
+
const result = {
|
|
279
|
+
type: 'operand',
|
|
280
|
+
name: 'GROUP_BY',
|
|
281
|
+
value: columnParameter.value,
|
|
282
|
+
};
|
|
283
|
+
return result;
|
|
284
|
+
},
|
|
285
|
+
description: 'Groups an aggregation operation within the rows that have the same value in the specified column',
|
|
286
|
+
signatures: ['GROUP_BY( [colName] )', 'GROUP_BY( COL(name: string))'],
|
|
287
|
+
examples: ['GROUP_BY( [colName] )', `GROUP_BY( COL('colName'))`],
|
|
288
|
+
},
|
|
289
|
+
CUMUL: {
|
|
290
|
+
handler(args, context) {
|
|
291
|
+
var _a;
|
|
292
|
+
const aggregationParameter = expressionFunctionUtils_1.extractParameter('CUMUL', 'aggregation', ['SUM', 'MIN', 'MAX', 'PERCENTAGE', 'AVG'], args);
|
|
293
|
+
if (aggregationParameter.name === 'AVG' || aggregationParameter.name === 'PERCENTAGE') {
|
|
294
|
+
throw new ExpressionEvaluationError_1.ExpressionEvaluationError('CUMUL', `supports only following aggregations: SUM, MIN, MAX`);
|
|
295
|
+
}
|
|
296
|
+
if ((_a = aggregationParameter.value.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a.length) {
|
|
297
|
+
throw new ExpressionEvaluationError_1.ExpressionEvaluationError('CUMUL', `supports only aggregations without any grouping (GROUP_BY clauses)`);
|
|
298
|
+
}
|
|
299
|
+
const overColumnParameter = expressionFunctionUtils_1.extractParameter('CUMUL', 'operand', ['OVER'], args);
|
|
300
|
+
aggregationParameter.value.cumulateOver = overColumnParameter.value;
|
|
301
|
+
const result = {
|
|
302
|
+
name: 'CUMUL',
|
|
303
|
+
type: 'aggregation',
|
|
304
|
+
value: aggregationParameter.value,
|
|
305
|
+
};
|
|
306
|
+
return result;
|
|
307
|
+
},
|
|
308
|
+
description: 'Performs a cumulative aggregation (running total) with the given aggregation operation over a provided column',
|
|
309
|
+
signatures: ['CUMUL( aggregationOp: SUM|MIN|MAX, OVER( [colNameB] ))'],
|
|
310
|
+
examples: [
|
|
311
|
+
'CUMUL( SUM([colNameA]), OVER( [colNameB] ))',
|
|
312
|
+
'CUMUL( MIN([colNameA]), OVER( [colNameB] ))',
|
|
313
|
+
'CUMUL( MAX([colNameA]), OVER( [colNameB] ))',
|
|
314
|
+
],
|
|
315
|
+
},
|
|
316
|
+
OVER: {
|
|
317
|
+
handler(args, context) {
|
|
318
|
+
const columnParameter = expressionFunctionUtils_1.extractColumnParameter('OVER', args);
|
|
319
|
+
expressionFunctionUtils_1.validateColumnType(columnParameter.value, ['Number', 'Date'], 'OVER', context.api);
|
|
320
|
+
const result = {
|
|
321
|
+
type: 'operand',
|
|
322
|
+
name: 'OVER',
|
|
323
|
+
value: columnParameter.value,
|
|
324
|
+
};
|
|
325
|
+
return result;
|
|
326
|
+
},
|
|
327
|
+
description: 'Defines an accumulative dimension (order) for the enclosing cumulative aggregation',
|
|
328
|
+
signatures: ['OVER( [colName] )', 'OVER( COL(name: string))'],
|
|
329
|
+
examples: ['OVER( [colName] )', `OVER( COL('colName'))`],
|
|
330
|
+
},
|
|
331
|
+
COL: {
|
|
332
|
+
handler(args, context) {
|
|
333
|
+
return expressionFunctionUtils_1.handleColumnFunction(args, context);
|
|
334
|
+
},
|
|
335
|
+
description: 'References a column by its unique identifier',
|
|
336
|
+
signatures: ['[colName]', 'COL(name: string)'],
|
|
337
|
+
examples: ['[col1]', 'COL("col1")'],
|
|
338
|
+
},
|
|
339
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const normalizeDateParams: (args: [string | number | Date, string | number | Date]) => [number | Date, number | Date];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeDateParams = void 0;
|
|
4
|
+
exports.normalizeDateParams = (args) => {
|
|
5
|
+
let [first, second] = args;
|
|
6
|
+
if (typeof first === 'string') {
|
|
7
|
+
first = new Date(first);
|
|
8
|
+
}
|
|
9
|
+
if (typeof second === 'string') {
|
|
10
|
+
second = new Date(second);
|
|
11
|
+
}
|
|
12
|
+
return [first, second];
|
|
13
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
declare type VoidFn = () => void;
|
|
2
|
+
declare type Pair<KeyType, ValueType> = {
|
|
3
|
+
value?: ValueType;
|
|
4
|
+
map?: Map<KeyType, Pair<KeyType, ValueType>>;
|
|
5
|
+
revision?: number;
|
|
6
|
+
};
|
|
7
|
+
export declare type DeepMapVisitFn<KeyType, ValueType> = (pair: Pair<KeyType, ValueType>, keys: KeyType[], next: VoidFn) => void;
|
|
8
|
+
export declare class DeepMap<KeyType, ValueType> {
|
|
9
|
+
private map;
|
|
10
|
+
private length;
|
|
11
|
+
private revision;
|
|
12
|
+
static clone<KeyType, ValueType>(map: DeepMap<KeyType, ValueType>): DeepMap<KeyType, ValueType>;
|
|
13
|
+
constructor(initial?: [KeyType[], ValueType][]);
|
|
14
|
+
set(keys: KeyType[] & {
|
|
15
|
+
length: Omit<number, 0>;
|
|
16
|
+
}, value: ValueType): this;
|
|
17
|
+
get(keys: KeyType[]): ValueType | undefined;
|
|
18
|
+
get size(): number;
|
|
19
|
+
clear(): void;
|
|
20
|
+
delete(keys: KeyType[]): boolean;
|
|
21
|
+
has(keys: KeyType[]): boolean;
|
|
22
|
+
private visitKey;
|
|
23
|
+
visit: (fn: DeepMapVisitFn<KeyType, ValueType>) => void;
|
|
24
|
+
visitDepthFirst: (fn: (value: ValueType, keys: KeyType[], indexInGroup: number, next?: VoidFn) => void) => void;
|
|
25
|
+
private visitWithNext;
|
|
26
|
+
private getArray;
|
|
27
|
+
values(): Generator<ValueType, void, unknown>;
|
|
28
|
+
keys(): Generator<KeyType[], void, unknown>;
|
|
29
|
+
entries(): Generator<[KeyType[], ValueType], void, unknown>;
|
|
30
|
+
topDownEntries(): [KeyType[], ValueType][];
|
|
31
|
+
topDownKeys(): KeyType[][];
|
|
32
|
+
topDownValues(): ValueType[];
|
|
33
|
+
private sortedIterator;
|
|
34
|
+
}
|
|
35
|
+
export {};
|