@adaptabletools/adaptable 11.0.0-canary.5 → 11.0.0

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.
Files changed (159) hide show
  1. package/agGrid.d.ts +5 -4
  2. package/agGrid.js +9 -7
  3. package/base.css +2 -2
  4. package/bundle.cjs.js +103 -98
  5. package/index.css +2 -2
  6. package/package.json +1 -1
  7. package/publishTimestamp.d.ts +1 -1
  8. package/publishTimestamp.js +1 -1
  9. package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -0
  10. package/src/AdaptableOptions/AdaptableOptions.d.ts +4 -6
  11. package/src/AdaptableOptions/{QueryLanguageOptions.d.ts → AdaptableQLOptions.d.ts} +37 -5
  12. package/src/AdaptableOptions/{QueryLanguageOptions.js → AdaptableQLOptions.js} +0 -0
  13. package/src/AdaptableOptions/ContainerOptions.d.ts +1 -1
  14. package/src/AdaptableOptions/GeneralOptions.d.ts +0 -7
  15. package/src/AdaptableOptions/SearchOptions.d.ts +0 -9
  16. package/src/AdaptableOptions/SettingsPanelOptions.d.ts +4 -3
  17. package/src/AdaptableOptions/StateOptions.d.ts +7 -7
  18. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +1 -1
  19. package/src/Api/AdaptableApi.d.ts +5 -0
  20. package/src/Api/CalculatedColumnApi.d.ts +2 -9
  21. package/src/Api/ColumnApi.d.ts +0 -4
  22. package/src/Api/GridApi.d.ts +11 -1
  23. package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -1
  24. package/src/Api/Implementation/AdaptableApiImpl.js +2 -0
  25. package/src/Api/Implementation/AlertApiImpl.js +4 -1
  26. package/src/Api/Implementation/ApiBase.d.ts +3 -2
  27. package/src/Api/Implementation/ApiBase.js +5 -2
  28. package/src/Api/Implementation/CalculatedColumnApiImpl.js +3 -4
  29. package/src/Api/Implementation/ColumnApiImpl.d.ts +0 -1
  30. package/src/Api/Implementation/ColumnApiImpl.js +0 -5
  31. package/src/Api/Implementation/GridApiImpl.d.ts +2 -0
  32. package/src/Api/Implementation/GridApiImpl.js +27 -4
  33. package/src/Api/Implementation/InternalApiImpl.d.ts +2 -3
  34. package/src/Api/Implementation/InternalApiImpl.js +5 -4
  35. package/src/Api/Implementation/QueryLanguageApiImpl.d.ts +4 -1
  36. package/src/Api/Implementation/QueryLanguageApiImpl.js +17 -4
  37. package/src/Api/Implementation/SettingsPanelApiImpl.d.ts +7 -0
  38. package/src/Api/Implementation/SettingsPanelApiImpl.js +15 -0
  39. package/src/Api/InternalApi.d.ts +2 -3
  40. package/src/Api/QueryApi.d.ts +2 -2
  41. package/src/Api/QueryLanguageApi.d.ts +23 -10
  42. package/src/Api/SettingsPanelApi.d.ts +16 -0
  43. package/src/Api/SettingsPanelApi.js +2 -0
  44. package/src/PredefinedConfig/AlertState.d.ts +6 -2
  45. package/src/PredefinedConfig/CalculatedColumnState.d.ts +8 -3
  46. package/src/PredefinedConfig/Common/AdaptableFormat.d.ts +3 -0
  47. package/src/PredefinedConfig/Common/AdaptableQuery.d.ts +7 -5
  48. package/src/PredefinedConfig/Common/AdaptableQuery.js +2 -6
  49. package/src/PredefinedConfig/Common/Enums.d.ts +0 -1
  50. package/src/PredefinedConfig/Common/Enums.js +0 -2
  51. package/src/PredefinedConfig/Common/SpecialColumnSettings.d.ts +1 -1
  52. package/src/PredefinedConfig/Common/Types.d.ts +6 -1
  53. package/src/PredefinedConfig/Common/Types.js +1 -0
  54. package/src/PredefinedConfig/ConditionalStyleState.d.ts +2 -2
  55. package/src/PredefinedConfig/FormatColumnState.d.ts +15 -0
  56. package/src/PredefinedConfig/Selection/GridCellRange.d.ts +3 -1
  57. package/src/PredefinedConfig/ToolPanelState.d.ts +3 -0
  58. package/src/Redux/Store/AdaptableReduxMerger.js +1 -1
  59. package/src/Redux/Store/AdaptableStore.js +27 -2
  60. package/src/Strategy/AlertModule.js +12 -3
  61. package/src/Strategy/CalculatedColumnModule.js +4 -4
  62. package/src/Strategy/ChartingModule.d.ts +3 -3
  63. package/src/Strategy/ChartingModule.js +2 -2
  64. package/src/Strategy/FlashingCellModule.js +2 -2
  65. package/src/Strategy/FreeTextColumnModule.js +1 -0
  66. package/src/Strategy/{SetingsPanelModule.d.ts → SettingsPanelModule.d.ts} +0 -0
  67. package/src/Strategy/{SetingsPanelModule.js → SettingsPanelModule.js} +0 -0
  68. package/src/Strategy/Utilities/getAlertPreviewViewItems.js +1 -1
  69. package/src/Strategy/Utilities/getExpressionViewItems.d.ts +2 -2
  70. package/src/Strategy/Utilities/getExpressionViewItems.js +2 -1
  71. package/src/Strategy/Utilities/getRuleViewItems.js +1 -2
  72. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +3 -2
  73. package/src/Utilities/Constants/DocumentationLinkConstants.js +12 -10
  74. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +17 -13
  75. package/src/Utilities/ExpressionFunctions/{aggregationExpressionFunctions.d.ts → aggregatedBooleanExpressionFunctions.d.ts} +1 -1
  76. package/src/Utilities/ExpressionFunctions/{aggregationExpressionFunctions.js → aggregatedBooleanExpressionFunctions.js} +4 -4
  77. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +24 -0
  78. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +339 -0
  79. package/src/Utilities/ExpressionFunctions/deepMap.d.ts +35 -0
  80. package/src/Utilities/ExpressionFunctions/deepMap.js +283 -0
  81. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.d.ts +2 -2
  82. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +8 -8
  83. package/src/Utilities/ExpressionFunctions/groupingMap.d.ts +35 -0
  84. package/src/Utilities/ExpressionFunctions/groupingMap.js +105 -0
  85. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -2
  86. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.d.ts +33 -0
  87. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +154 -0
  88. package/src/Utilities/Helpers/AdaptableHelper.js +2 -1
  89. package/src/Utilities/Services/AlertService.js +8 -4
  90. package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +7 -3
  91. package/src/Utilities/Services/CalculatedColumnExpressionService.js +143 -18
  92. package/src/Utilities/Services/Interface/IAdaptableService.d.ts +1 -1
  93. package/src/Utilities/Services/Interface/ICalculatedColumnExpressionService.d.ts +6 -3
  94. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +9 -3
  95. package/src/Utilities/Services/LicenseService.js +1 -1
  96. package/src/Utilities/Services/ModuleService.js +33 -40
  97. package/src/Utilities/Services/QueryLanguageService.d.ts +11 -4
  98. package/src/Utilities/Services/QueryLanguageService.js +84 -25
  99. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationForm.js +5 -3
  100. package/src/View/AdaptableWizardView/helper.js +2 -2
  101. package/src/View/Alert/Wizard/AlertDisplayWizardSection.d.ts +1 -0
  102. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +2 -2
  103. package/src/View/Alert/Wizard/AlertWizard.js +2 -2
  104. package/src/View/Alert/Wizard/BaseAlertRulesWizardSection.js +2 -2
  105. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +3 -2
  106. package/src/View/Alert/Wizard/isValidAlertRules.js +3 -3
  107. package/src/View/CalculatedColumn/CalculatedColumnSharedEntity.js +3 -3
  108. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +2 -4
  109. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +43 -12
  110. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -2
  111. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +2 -2
  112. package/src/View/ColorPicker.d.ts +1 -1
  113. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  114. package/src/View/Components/AdaptableInput/index.d.ts +1 -1
  115. package/src/View/Components/Buttons/ButtonDelete.d.ts +1 -1
  116. package/src/View/Components/EntityRulesEditor/index.js +11 -12
  117. package/src/View/Components/Forms/AdaptableFormControlTextClear.d.ts +1 -1
  118. package/src/View/Components/Panels/PanelWithImage.d.ts +1 -1
  119. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +4 -8
  120. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +1 -2
  121. package/src/View/Components/Popups/AdaptablePopupAlert.d.ts +1 -0
  122. package/src/View/Components/Popups/AdaptablePopupAlert.js +1 -1
  123. package/src/View/Components/ValueSelector/index.js +1 -1
  124. package/src/View/ConditionalStyle/Wizard/ConditionalStyleRuleWizardSection.js +2 -2
  125. package/src/View/CustomSort/Wizard/CustomSortWizard.js +1 -1
  126. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +2 -2
  127. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +1 -1
  128. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +1 -1
  129. package/src/View/Layout/Wizard/LayoutEditor/index.js +1 -1
  130. package/src/View/License/LicenseWatermark.js +1 -1
  131. package/src/View/Query/Wizard/NamedQueryWizard.js +3 -3
  132. package/src/View/Schedule/Wizard/ScheduleWizard.js +3 -3
  133. package/src/agGrid/Adaptable.d.ts +1 -0
  134. package/src/agGrid/Adaptable.js +13 -14
  135. package/src/agGrid/agGridHelper.js +3 -7
  136. package/src/components/AdaptableFormComponent/AdaptableFormComponent.d.ts +4 -2
  137. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +4 -4
  138. package/src/components/Datepicker/index.d.ts +1 -1
  139. package/src/components/ExpressionEditor/EditorInput.d.ts +1 -1
  140. package/src/components/ExpressionEditor/EditorInput.js +5 -2
  141. package/src/components/ExpressionEditor/EditorInputReactive.d.ts +1 -1
  142. package/src/components/ExpressionEditor/EditorInputReactive.js +1 -1
  143. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
  144. package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.d.ts +2 -0
  145. package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.js +45 -0
  146. package/src/components/ExpressionEditor/editorButtonsReactive.js +8 -13
  147. package/src/components/ExpressionEditor/index.d.ts +2 -1
  148. package/src/components/ExpressionEditor/index.js +11 -4
  149. package/src/components/Input/index.d.ts +1 -1
  150. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  151. package/src/components/Logo/index.js +8 -7
  152. package/src/components/PopupWithFooter.d.ts +1 -1
  153. package/src/components/Textarea/index.d.ts +1 -1
  154. package/src/components/icons/calculated-column.js +2 -1
  155. package/src/metamodel/adaptable.metamodel.d.ts +233 -37
  156. package/src/metamodel/adaptable.metamodel.js +448 -149
  157. package/src/types.d.ts +5 -4
  158. package/version.d.ts +1 -1
  159. package/version.js +1 -1
@@ -25,10 +25,19 @@ class QueryLanguageApiImpl extends ApiBase_1.ApiBase {
25
25
  }
26
26
  return isValid;
27
27
  }
28
- isValidAggregationExpression(expression, module, validationErrorMessage) {
28
+ isValidAggregatedBooleanExpression(expression, module, validationErrorMessage) {
29
29
  const { isValid, errorMessage } = this.adaptable.api.internalApi
30
30
  .getQueryLanguageService()
31
- .validateAggregation(expression, module);
31
+ .validateAggregatedBoolean(expression, module);
32
+ if (!isValid && validationErrorMessage) {
33
+ LoggingHelper_1.LogAdaptableWarning(`${validationErrorMessage} :: ${errorMessage}`);
34
+ }
35
+ return isValid;
36
+ }
37
+ isValidAggregatedScalarExpression(expression, module, validationErrorMessage) {
38
+ const { isValid, errorMessage } = this.adaptable.api.internalApi
39
+ .getQueryLanguageService()
40
+ .validateAggregatedScalar(expression, module);
32
41
  if (!isValid && validationErrorMessage) {
33
42
  LoggingHelper_1.LogAdaptableWarning(`${validationErrorMessage} :: ${errorMessage}`);
34
43
  }
@@ -51,7 +60,7 @@ class QueryLanguageApiImpl extends ApiBase_1.ApiBase {
51
60
  }
52
61
  }
53
62
  getQueryableColumnIds() {
54
- let queryableColumns = this.getQueryLanguageOptions().queryableColumns;
63
+ let queryableColumns = this.getExpressionOptions().queryableColumns;
55
64
  if (!queryableColumns) {
56
65
  return undefined;
57
66
  }
@@ -67,7 +76,11 @@ class QueryLanguageApiImpl extends ApiBase_1.ApiBase {
67
76
  }
68
77
  }
69
78
  getModuleExpressionFunctionMap() {
70
- return this.getQueryLanguageOptions().moduleExpressionFunctions;
79
+ return this.getExpressionOptions().moduleExpressionFunctions;
80
+ }
81
+ getAdaptableQueryExpression(query) {
82
+ var _a, _b, _c, _d;
83
+ return ((_d = (_c = (_b = (_a = query.BooleanExpression) !== null && _a !== void 0 ? _a : query.ScalarExpression) !== null && _b !== void 0 ? _b : query.ObservableExpression) !== null && _c !== void 0 ? _c : query.AggregatedBooleanExpression) !== null && _d !== void 0 ? _d : query.AggregatedScalarExpression);
71
84
  }
72
85
  }
73
86
  exports.QueryLanguageApiImpl = QueryLanguageApiImpl;
@@ -0,0 +1,7 @@
1
+ import { SettingsPanelApi } from '../SettingsPanelApi';
2
+ import { ApiBase } from './ApiBase';
3
+ import { AdaptableModule } from '../../../types';
4
+ export declare class SettingsPanelApiImpl extends ApiBase implements SettingsPanelApi {
5
+ showSettingsPanel(moduleName?: AdaptableModule): void;
6
+ showCustomSettingsPanel(name: string): void;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SettingsPanelApiImpl = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ApiBase_1 = require("./ApiBase");
6
+ const PopupRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/PopupRedux"));
7
+ class SettingsPanelApiImpl extends ApiBase_1.ApiBase {
8
+ showSettingsPanel(moduleName) {
9
+ this.dispatchAction(PopupRedux.PopupShowScreen(moduleName));
10
+ }
11
+ showCustomSettingsPanel(name) {
12
+ this.dispatchAction(PopupRedux.PopupShowScreen(null, name));
13
+ }
14
+ }
15
+ exports.SettingsPanelApiImpl = SettingsPanelApiImpl;
@@ -6,7 +6,7 @@ import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
6
6
  import { AdaptableMenuItem } from '../PredefinedConfig/Common/Menu';
7
7
  import { SelectedCellInfo } from '../PredefinedConfig/Selection/SelectedCellInfo';
8
8
  import { SelectedRowInfo } from '../PredefinedConfig/Selection/SelectedRowInfo';
9
- import { AdaptableModule } from '../PredefinedConfig/Common/Types';
9
+ import { AdaptableModule, AdaptableQLModule } from '../PredefinedConfig/Common/Types';
10
10
  import { GridCell } from '../PredefinedConfig/Selection/GridCell';
11
11
  import { IAdaptable } from '../AdaptableInterfaces/IAdaptable';
12
12
  import { IValidationService } from '../Utilities/Services/Interface/IValidationService';
@@ -15,7 +15,6 @@ import { IReportService } from '../Utilities/Services/Interface/IReportService';
15
15
  import { ICalculatedColumnExpressionService } from '../Utilities/Services/Interface/ICalculatedColumnExpressionService';
16
16
  import { AdaptableOptions } from '../AdaptableOptions/AdaptableOptions';
17
17
  import { Layout } from '../PredefinedConfig/LayoutState';
18
- import { ServerSearchOption } from '../AdaptableOptions/SearchOptions';
19
18
  import { AdaptableAlert } from '../PredefinedConfig/Common/AdaptableAlert';
20
19
  import { IDataService } from '../Utilities/Services/Interface/IDataService';
21
20
  import { AdaptableMessageType, DataChangedInfo, SystemStatusMessageInfo } from '../types';
@@ -94,7 +93,7 @@ export interface InternalApi {
94
93
  getTeamSharingService(): ITeamSharingService;
95
94
  getMetamodelService(): IMetamodelService;
96
95
  getModuleFriendlyName(adaptableModule: AdaptableModule): string;
97
- isServerSearchOptionSet(serverSearchOption: ServerSearchOption): boolean;
96
+ runModuleInAdaptableQL(adaptableQLModule: AdaptableQLModule): boolean;
98
97
  buildStandaloneColumnHeader(column: AdaptableColumn): AdaptableMenuItem[];
99
98
  getCustomSortComparer(column: AdaptableColumn): ColumnValuesComparer | undefined;
100
99
  clearFlashingCellState(): void;
@@ -45,7 +45,7 @@ export interface QueryApi {
45
45
  showExpandedQueryPopup(): void;
46
46
  /**
47
47
  * Set a Query as Current Query
48
- * @param query Query to set
48
+ * @param query - Query to set
49
49
  */
50
50
  setCurrentQuery(query: string): void;
51
51
  /**
@@ -53,7 +53,7 @@ export interface QueryApi {
53
53
  */
54
54
  clearCurrentQuery(): void;
55
55
  /**
56
- * Retuns the Current Query
56
+ * Returns the Current Query
57
57
  */
58
58
  getCurrentQuery(): string | undefined;
59
59
  }
@@ -1,5 +1,6 @@
1
1
  import { AdaptableModule } from '../PredefinedConfig/Common/Types';
2
2
  import { ExpressionFunctionMap } from '../types';
3
+ import { AdaptableQuery } from '../PredefinedConfig/Common/AdaptableQuery';
3
4
  /**
4
5
  * Manages AdapTableQL (Query Language)
5
6
  */
@@ -13,21 +14,28 @@ export interface QueryLanguageApi {
13
14
  isValidBooleanExpression(query: string, module: AdaptableModule, validationErrorMessage?: string): boolean;
14
15
  /**
15
16
  * Whether the given ObservableExpression is valid
16
- * @param query query to Check
17
- * @param module module specific query
18
- * @param validationErrorMessage optional validation error message; if provided, the error will be logged
17
+ * @param expression - ObservableExpression to check
18
+ * @param module - module specific query
19
+ * @param validationErrorMessage - optional validation error message; if provided, the error will be logged
19
20
  */
20
21
  isValidObservableExpression(expression: string, module: AdaptableModule, validationErrorMessage?: string): boolean;
21
22
  /**
22
- * Whether the given AggregationExpression is valid
23
- * @param query query to Check
24
- * @param module module specific query
25
- * @param validationErrorMessage optional validation error message; if provided, the error will be logged
23
+ * Whether the given AggregatedBooleanExpression is valid
24
+ * @param expression - AggregatedBooleanExpression to check
25
+ * @param module - module specific query
26
+ * @param validationErrorMessage - optional validation error message; if provided, the error will be logged
27
+ */
28
+ isValidAggregatedBooleanExpression(expression: string, module: AdaptableModule, validationErrorMessage?: string): boolean;
29
+ /**
30
+ * Whether the given AggregatedScalarExpression is valid
31
+ * @param expression - AggregatedScalarExpression to check
32
+ * @param module - module specific query
33
+ * @param validationErrorMessage - optional validation error message; if provided, the error will be logged
26
34
  */
27
- isValidAggregationExpression(expression: string, module: AdaptableModule, validationErrorMessage?: string): boolean;
35
+ isValidAggregatedScalarExpression(expression: string, module: AdaptableModule, validationErrorMessage?: string): boolean;
28
36
  /**
29
- * Returns all Columns referenced in a Query
30
- * @param adaptableQuery Query to check
37
+ * Returns all Columns referenced in a QueryExpression
38
+ * @param expression - expression to check
31
39
  */
32
40
  getColumnsFromExpression(expression: string): string[];
33
41
  /**
@@ -43,4 +51,9 @@ export interface QueryLanguageApi {
43
51
  * @param expression expression to be run
44
52
  */
45
53
  getASTForExpression(expression: string): any;
54
+ /**
55
+ * Returns the Expression string of the given AdaptableQuery, which may be either a Boolean, an AggregatedBoolean, a Scalar, an AggregatedScalar or an ObservableExpression expression
56
+ * @param query - the AdaptableQuery
57
+ */
58
+ getAdaptableQueryExpression(query: Partial<AdaptableQuery>): string | undefined;
46
59
  }
@@ -0,0 +1,16 @@
1
+ import { AdaptableModule } from '../../types';
2
+ /**
3
+ * Provides run-time access to the Settings Panel
4
+ **/
5
+ export interface SettingsPanelApi {
6
+ /**
7
+ * Opens Settings Panel and displays specified Module (if provided) or first available one
8
+ * @param moduleName name of Module to display
9
+ */
10
+ showSettingsPanel(moduleName?: AdaptableModule): void;
11
+ /**
12
+ * Opens Settings Panel with the Custom Settings Panel, provided by name, displayed
13
+ * @param name name of Custom Settings Panel to display
14
+ */
15
+ showCustomSettingsPanel(name: string): void;
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -8,7 +8,7 @@ import { AdaptableButton, ButtonContext } from './Common/AdaptableButton';
8
8
  import { SuspendableObject } from './Common/SuspendableObject';
9
9
  import { AdaptableStyle } from './Common/AdaptableStyle';
10
10
  import { XOR } from '../Utilities/Extensions/TypeExtensions';
11
- import { AdaptableAggregationQuery, AdaptableBooleanQuery, AdaptableObservableQuery } from './Common/AdaptableQuery';
11
+ import { AdaptableAggregatedBooleanQuery, AdaptableBooleanQuery, AdaptableObservableQuery } from './Common/AdaptableQuery';
12
12
  import { ButtonStyle } from './Common/ButtonStyle';
13
13
  import { AlertButtonContext } from '../types';
14
14
  /**
@@ -60,7 +60,11 @@ export interface AlertDefinitionPredicate extends AdaptablePredicate {
60
60
  */
61
61
  export declare type AlertRule = XOR<{
62
62
  Predicate: AlertDefinitionPredicate;
63
- }, XOR<AdaptableBooleanQuery, XOR<AdaptableObservableQuery, AdaptableAggregationQuery>>>;
63
+ }, AdaptableAlertQuery>;
64
+ /**
65
+ * Alert Query which may be either a Boolean, Observable or AggregatedBoolean Expression
66
+ */
67
+ export declare type AdaptableAlertQuery = XOR<AdaptableBooleanQuery, XOR<AdaptableObservableQuery, AdaptableAggregatedBooleanQuery>>;
64
68
  export declare type AdaptableAlertAction = 'highlight-cell' | 'jump-to-cell' | 'jump-to-row' | 'jump-to-column' | 'suspend' | 'undo';
65
69
  /**
66
70
  * Defines a button that appears in an Alert Form
@@ -1,7 +1,8 @@
1
1
  import { ConfigState } from './ConfigState';
2
2
  import { AdaptableObject } from './Common/AdaptableObject';
3
- import { AdaptableScalarQuery } from './Common/AdaptableQuery';
3
+ import { AdaptableAggregatedScalarQuery, AdaptableScalarQuery } from './Common/AdaptableQuery';
4
4
  import { SpecialColumnSettings } from './Common/SpecialColumnSettings';
5
+ import { XOR } from '../Utilities/Extensions/TypeExtensions';
5
6
  /**
6
7
  * Predefined Configuration for Calculated Column Module
7
8
  **/
@@ -28,9 +29,9 @@ export interface CalculatedColumn extends AdaptableObject {
28
29
  */
29
30
  CalculatedColumnSettings?: CalculatedColumnSettings;
30
31
  /**
31
- * Scalar Expression used by AdapTableQL to evaluate Column's value
32
+ * Scalar/AggregatedScalar Query used by AdapTableQL to evaluate Column's value
32
33
  */
33
- Query?: AdaptableScalarQuery;
34
+ Query?: AdaptableCalculatedColumnQuery;
34
35
  }
35
36
  /**
36
37
  * Set of optional properties that define a Calculated Column's behaviour
@@ -46,3 +47,7 @@ export interface CalculatedColumnSettings extends SpecialColumnSettings {
46
47
  */
47
48
  ShowToolTip?: boolean;
48
49
  }
50
+ /**
51
+ * Calculated Column Query which may be a Scalar or an AggregatedScalar Expression
52
+ */
53
+ export declare type AdaptableCalculatedColumnQuery = XOR<AdaptableScalarQuery, AdaptableAggregatedScalarQuery>;
@@ -61,6 +61,9 @@ export interface DateFormatterOptions {
61
61
  */
62
62
  Pattern?: string;
63
63
  }
64
+ /**
65
+ * Formatter Options for String Columns
66
+ */
64
67
  export interface StringFormatterOptions {
65
68
  /**
66
69
  * Sets text to Upper or Lower case
@@ -8,12 +8,14 @@ export interface AdaptableScalarQuery {
8
8
  export interface AdaptableObservableQuery {
9
9
  ObservableExpression: string;
10
10
  }
11
- export interface AdaptableAggregationQuery {
12
- AggregationExpression: string;
11
+ export interface AdaptableAggregatedBooleanQuery {
12
+ AggregatedBooleanExpression: string;
13
+ }
14
+ export interface AdaptableAggregatedScalarQuery {
15
+ AggregatedScalarExpression: string;
13
16
  }
14
17
  /**
15
- * An AdaptableQuery can be either a Boolean, Scalar, Observable or Aggregation expression
18
+ * An AdaptableQuery can be either a Boolean, Scalar, Observable, AggregatedBoolean, or AggregatedScalar expression
16
19
  */
17
- export declare type AdaptableQuery = XOR<AdaptableBooleanQuery, XOR<AdaptableScalarQuery, XOR<AdaptableObservableQuery, AdaptableAggregationQuery>>>;
18
- export declare const getAdaptableQueryExpression: (query: Partial<AdaptableQuery>) => string | undefined;
20
+ export declare type AdaptableQuery = XOR<AdaptableBooleanQuery, XOR<AdaptableScalarQuery, XOR<AdaptableObservableQuery, XOR<AdaptableAggregatedBooleanQuery, AdaptableAggregatedScalarQuery>>>>;
19
21
  export declare const isReactiveQuery: (query: Partial<AdaptableQuery>) => boolean;
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isReactiveQuery = exports.getAdaptableQueryExpression = void 0;
4
- exports.getAdaptableQueryExpression = (query) => {
5
- var _a, _b, _c;
6
- return ((_c = (_b = (_a = query.BooleanExpression) !== null && _a !== void 0 ? _a : query.ScalarExpression) !== null && _b !== void 0 ? _b : query.ObservableExpression) !== null && _c !== void 0 ? _c : query.AggregationExpression);
7
- };
3
+ exports.isReactiveQuery = void 0;
8
4
  exports.isReactiveQuery = (query) => {
9
- return !!query.ObservableExpression || !!query.AggregationExpression;
5
+ return !!query.ObservableExpression || !!query.AggregatedBooleanExpression;
10
6
  };
@@ -1,7 +1,6 @@
1
1
  export declare enum DataType {
2
2
  String = "String",
3
3
  Number = "Number",
4
- NumberArray = "NumberArray",
5
4
  Boolean = "Boolean",
6
5
  Date = "Date",
7
6
  Object = "Object",
@@ -6,8 +6,6 @@ var DataType;
6
6
  (function (DataType) {
7
7
  DataType["String"] = "String";
8
8
  DataType["Number"] = "Number";
9
- // FIXME AFL keep it or extend it to support https://www.ag-grid.com/javascript-data-grid/sparklines-data/ ?
10
- DataType["NumberArray"] = "NumberArray";
11
9
  DataType["Boolean"] = "Boolean";
12
10
  DataType["Date"] = "Date";
13
11
  DataType["Object"] = "Object";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Base Settings for SpecialColumns
2
+ * Base Settings for Calculated Columns and FreeText Columns
3
3
  */
4
4
  export interface SpecialColumnSettings {
5
5
  /**
@@ -22,8 +22,13 @@ export declare type AdaptableModuleButtons = AdaptableModuleButton[];
22
22
  export declare type AdaptableModuleButton = 'Alert' | 'FlashingCell' | 'BulkUpdate' | 'CalculatedColumn' | 'CellSummary' | 'ConditionalStyle' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSource' | 'Export' | 'Filter' | 'FormatColumn' | 'FreeTextColumn' | 'Glue42' | 'GridInfo' | 'Layout' | 'OpenFin' | 'PlusMinus' | 'Query' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'Shortcut' | 'SmartEdit' | 'StateManagement' | 'SystemStatus' | 'TeamSharing' | 'Theme';
23
23
  export declare type AdaptableStateKeys = AdaptableStateKey[];
24
24
  export declare type AdaptableStateKey = 'Alert' | 'FlashingCell' | 'Application' | 'CalculatedColumn' | 'Charting' | 'ConditionalStyle' | 'CustomSort' | 'Dashboard' | 'DataSource' | 'Export' | 'Filter' | 'FormatColumn' | 'FreeTextColumn' | 'Glue42' | 'IPushPull' | 'Layout' | 'OpenFin' | 'PlusMinus' | 'Query' | 'QuickSearch' | 'Schedule' | 'Shortcut' | 'Theme' | 'ToolPanel';
25
- export declare type AdaptableModule = 'Alert' | 'BulkUpdate' | 'CalculatedColumn' | 'CellSummary' | 'Charting' | 'ConditionalStyle' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSource' | 'Export' | 'Filter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'Glue42' | 'GridInfo' | 'IPushPull' | 'Layout' | 'OpenFin' | 'PlusMinus' | 'Query' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'Shortcut' | 'SmartEdit' | 'StateManagement' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel' | 'CustomSettingsPanelModule';
25
+ /**
26
+ * Modules provided by AdapTable, subject to Entitlements and usually have Predefined Config
27
+ */
28
+ export declare type AdaptableModule = 'Alert' | 'BulkUpdate' | 'CalculatedColumn' | 'CellSummary' | 'Charting' | 'ConditionalStyle' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSource' | 'Export' | 'Filter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'Glue42' | 'GridInfo' | 'IPushPull' | 'Layout' | 'OpenFin' | 'PlusMinus' | 'Query' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'Shortcut' | 'SmartEdit' | 'StateManagement' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel';
26
29
  export declare type AdaptableSettingsPanel = 'Alert' | 'CalculatedColumn' | 'ConditionalStyle' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSource' | 'Export' | 'Filter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'GridInfo' | 'Layout' | 'PlusMinus' | 'Query' | 'QuickSearch' | 'Schedule' | 'Shortcut' | 'StateManagement' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel';
27
30
  export declare type TypeHint<Base, Literals> = (Base & {
28
31
  __subType?: true;
29
32
  }) | Literals;
33
+ export declare type AdaptableQLModules = AdaptableQLModule[];
34
+ export declare type AdaptableQLModule = 'Filter' | 'Query';
@@ -41,3 +41,4 @@ exports.ALL_TOOL_PANELS = [
41
41
  'SystemStatus',
42
42
  'Theme',
43
43
  ];
44
+ // | 'QuickSearch'
@@ -11,7 +11,7 @@ import { SuspendableObject } from './Common/SuspendableObject';
11
11
  **/
12
12
  export interface ConditionalStyleState extends ConfigState {
13
13
  /**
14
- * Array of Conditional Styles to ship with Adaptable
14
+ * Array of Conditional Styles to ship with AdapTable
15
15
  */
16
16
  ConditionalStyles?: ConditionalStyle[];
17
17
  }
@@ -32,7 +32,7 @@ export interface ConditionalStyle extends SuspendableObject {
32
32
  */
33
33
  Style: AdaptableStyle;
34
34
  /**
35
- * Whether to apply Style in Grouped Rows
35
+ * Whether to apply Style in Grouped Rows and when Pivoting
36
36
  * @defaultValue false
37
37
  */
38
38
  IncludeGroupedRows?: boolean;
@@ -48,6 +48,9 @@ export interface FormatColumn extends SuspendableObject {
48
48
  */
49
49
  IncludeGroupedRows?: boolean;
50
50
  }
51
+ /**
52
+ * Special Style used when Formatting Columns: Gradient, PercentBar or CheckBox
53
+ */
51
54
  export interface ColumnStyle {
52
55
  /**
53
56
  * Style a numeric column so each cell value shows a gradient shade
@@ -62,6 +65,9 @@ export interface ColumnStyle {
62
65
  */
63
66
  CheckBoxStyle?: boolean;
64
67
  }
68
+ /**
69
+ * Style used to display Percent Bars in Format Column
70
+ */
65
71
  export interface PercentBarStyle {
66
72
  /**
67
73
  * Ranges (e.g. to allow a traffic light effect)
@@ -85,6 +91,9 @@ export interface PercentBarStyle {
85
91
  */
86
92
  BackColor?: string;
87
93
  }
94
+ /**
95
+ * Used to display Gradient Styles in Format Column
96
+ */
88
97
  export interface GradientStyle {
89
98
  /**
90
99
  * Ranges (e.g. to allow a traffic light effect)
@@ -95,6 +104,9 @@ export interface GradientStyle {
95
104
  */
96
105
  ColumnComparison?: ColumnComparison;
97
106
  }
107
+ /**
108
+ * Defines which Colours to show in Gradient and Percent Bar Styles
109
+ */
98
110
  export interface CellColorRange {
99
111
  /**
100
112
  * Start number of Range
@@ -113,6 +125,9 @@ export interface CellColorRange {
113
125
  */
114
126
  ReverseGradient?: boolean;
115
127
  }
128
+ /**
129
+ * Enables a Percent Bar or Gradient Style to use another column in its calculations
130
+ */
116
131
  export interface ColumnComparison {
117
132
  /**
118
133
  * Start value - either numeric or Column name
@@ -1,5 +1,7 @@
1
1
  export interface GridCellRange {
2
2
  columnIds: string[];
3
- primaryKeyValueStart: any;
3
+ primaryKeyValueStart?: any;
4
4
  primaryKeyValueEnd?: any;
5
+ rowIndexStart?: any;
6
+ rowIndexEnd?: any;
5
7
  }
@@ -29,4 +29,7 @@ export interface AdaptableToolPanelDefinition {
29
29
  */
30
30
  VisibilityMode?: 'expanded' | 'collapsed';
31
31
  }
32
+ /**
33
+ * Whether a ToolPanel displays as expanded or collapsed
34
+ */
32
35
  export declare type ToolPanelVisibilityMode = 'expanded' | 'collapsed';
@@ -64,7 +64,7 @@ function MergeStateFunction(oldState, newState) {
64
64
  }
65
65
  // any Module in config that doesn't exist in state will be added
66
66
  for (const configModuleName in config) {
67
- (_a = state[configModuleName]) !== null && _a !== void 0 ? _a : (state[configModuleName] = config[configModuleName]);
67
+ state[configModuleName] = (_a = state[configModuleName]) !== null && _a !== void 0 ? _a : config[configModuleName];
68
68
  }
69
69
  // any Module in state that has an older revision then the config will be replaced
70
70
  for (const stateModuleName in state) {
@@ -496,6 +496,21 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
496
496
  /*******************
497
497
  * SPECIAL COLUMN ACTIONS
498
498
  *******************/
499
+ case CalculatedColumnRedux.CALCULATED_COLUMN_READY: {
500
+ // create aggregated scalar columns at grid startup
501
+ const aggregatedCalculatedColumns = adaptable.api.calculatedColumnApi
502
+ .getAllCalculatedColumn()
503
+ .filter((calculatedColumn) => { var _a; return (_a = calculatedColumn.Query) === null || _a === void 0 ? void 0 : _a.AggregatedScalarExpression; });
504
+ aggregatedCalculatedColumns.forEach((calculatedColumn) => {
505
+ adaptable.api.internalApi
506
+ .getCalculatedColumnExpressionService()
507
+ .createAggregatedScalarCalculatedColumn(calculatedColumn);
508
+ });
509
+ // refresh calcualted columns
510
+ const aggCalculatedColumnIds = aggregatedCalculatedColumns.map((calculatedColumn) => calculatedColumn.ColumnId);
511
+ adaptable.refreshCells(null, aggCalculatedColumnIds, true);
512
+ return;
513
+ }
499
514
  /**
500
515
  * Use Case: We have added / edited / deleted a Special Column (i.e. one not in initial ColumnDefs)
501
516
  * Action: We update the Special ColumnDefs
@@ -504,7 +519,14 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
504
519
  case FreeTextColumnRedux.FREE_TEXT_COLUMN_EDIT:
505
520
  case CalculatedColumnRedux.CALCULATED_COLUMN_ADD:
506
521
  case CalculatedColumnRedux.CALCULATED_COLUMN_EDIT: {
507
- const returnAction = next(action);
522
+ const actionTyped = action;
523
+ const returnAction = next(actionTyped);
524
+ if (returnAction.type === CalculatedColumnRedux.CALCULATED_COLUMN_ADD ||
525
+ returnAction.type === CalculatedColumnRedux.CALCULATED_COLUMN_EDIT) {
526
+ adaptable.api.internalApi
527
+ .getCalculatedColumnExpressionService()
528
+ .createAggregatedScalarCalculatedColumn(returnAction.calculatedColumn);
529
+ }
508
530
  adaptable.updateColDefsForSpecialColumns();
509
531
  return returnAction;
510
532
  }
@@ -524,7 +546,10 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
524
546
  }));
525
547
  return;
526
548
  }
527
- const returnAction = next(action);
549
+ const returnAction = next(actionTyped);
550
+ adaptable.api.internalApi
551
+ .getCalculatedColumnExpressionService()
552
+ .destroyAggregatedScalarCalculatedColumn(returnAction.calculatedColumn);
528
553
  adaptable.updateColDefsForSpecialColumns();
529
554
  return returnAction;
530
555
  }
@@ -20,7 +20,7 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
20
20
  super(ModuleConstants.AlertModuleId, 'Alert', 'alert', 'AlertPopup', 'Get notified when things happen in Adaptable that you need to know about', api);
21
21
  this.api.internalApi.getDataService().on('DataChanged', (dataChangedInfo) => {
22
22
  if (dataChangedInfo.trigger === 'undo' || dataChangedInfo.trigger === 'aggChange') {
23
- // do NOT handle reverted changes
23
+ // do NOT handle reverted or aggregated changes
24
24
  return;
25
25
  }
26
26
  if (this.api.internalApi.getAdaptableOptions().alertOptions.dataChangeDetectionPolicy ===
@@ -44,7 +44,7 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
44
44
  return this.api.alertApi.getAlertDefinitions();
45
45
  }
46
46
  getExplicitlyReferencedColumnIds(alertDefinition) {
47
- const queryExpression = AdaptableQuery_1.getAdaptableQueryExpression(alertDefinition.Rule);
47
+ const queryExpression = this.api.queryLanguageApi.getAdaptableQueryExpression(alertDefinition.Rule);
48
48
  if (queryExpression) {
49
49
  return this.api.queryLanguageApi.getColumnsFromExpression(queryExpression);
50
50
  }
@@ -56,13 +56,14 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
56
56
  return [];
57
57
  }
58
58
  getReferencedNamedQueryNames(alertDefinition) {
59
- const queryExpression = AdaptableQuery_1.getAdaptableQueryExpression(alertDefinition.Rule);
59
+ const queryExpression = this.api.queryLanguageApi.getAdaptableQueryExpression(alertDefinition.Rule);
60
60
  if (!queryExpression) {
61
61
  return [];
62
62
  }
63
63
  return this.api.queryApi.getReferencedNamedQueryNames(queryExpression);
64
64
  }
65
65
  updateOldConfig() {
66
+ var _a;
66
67
  // 1. Make all (new) Flashing Alerts have a Predicate if none exists
67
68
  const alertState = this.api.alertApi.getAlertState();
68
69
  const flashingAlertDefinitions = alertState.FlashingAlertDefinitions;
@@ -73,6 +74,14 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
73
74
  // TODO: state does not clear
74
75
  this.api.internalApi.clearFlashingCellState();
75
76
  }
77
+ //migrate alert definitions with `AggregationExpression` (now `AggregatedBooleanExpression`)
78
+ (_a = alertState.AlertDefinitions) === null || _a === void 0 ? void 0 : _a.forEach((alertDefinition) => {
79
+ // @ts-ignore
80
+ const obsoleteAggregationExpression = alertDefinition.Rule['AggregationExpression'];
81
+ if (obsoleteAggregationExpression) {
82
+ alertDefinition.Rule.AggregatedBooleanExpression = obsoleteAggregationExpression;
83
+ }
84
+ });
76
85
  }
77
86
  addContextMenuItems(menuContext) {
78
87
  const items = [];
@@ -33,12 +33,12 @@ class CalculatedColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
33
33
  this.api.calculatedColumnApi.editCalculatedColumns(oldCalculatedColumns);
34
34
  }
35
35
  getExplicitlyReferencedColumnIds(calculatedColumn) {
36
- var _a, _b;
37
- return ((_b = this.api.queryLanguageApi.getColumnsFromExpression((_a = calculatedColumn.Query) === null || _a === void 0 ? void 0 : _a.ScalarExpression)) !== null && _b !== void 0 ? _b : []);
36
+ var _a;
37
+ return ((_a = this.api.queryLanguageApi.getColumnsFromExpression(this.api.queryLanguageApi.getAdaptableQueryExpression(calculatedColumn.Query))) !== null && _a !== void 0 ? _a : []);
38
38
  }
39
39
  getReferencedNamedQueryNames(calculatedColumn) {
40
- var _a, _b;
41
- return ((_b = this.api.queryApi.getReferencedNamedQueryNames((_a = calculatedColumn.Query) === null || _a === void 0 ? void 0 : _a.ScalarExpression)) !== null && _b !== void 0 ? _b : []);
40
+ var _a;
41
+ return ((_a = this.api.queryApi.getReferencedNamedQueryNames(this.api.queryLanguageApi.getAdaptableQueryExpression(calculatedColumn.Query))) !== null && _a !== void 0 ? _a : []);
42
42
  }
43
43
  addColumnMenuItems(column) {
44
44
  if (column && this.isModuleEditable()) {
@@ -1,6 +1,6 @@
1
- import { AdaptableModuleBase } from '@adaptabletools/adaptable/src/Strategy/AdaptableModuleBase';
2
- import { IModule } from '@adaptabletools/adaptable/src/Strategy/Interface/IModule';
3
- import { AdaptableApi } from '@adaptabletools/adaptable/src/Api/AdaptableApi';
1
+ import { IModule } from './Interface/IModule';
2
+ import { AdaptableModuleBase } from './AdaptableModuleBase';
3
+ import { AdaptableApi } from '../Api/AdaptableApi';
4
4
  export declare class ChartingModule extends AdaptableModuleBase implements IModule {
5
5
  constructor(api: AdaptableApi);
6
6
  isModuleAvailable(): boolean;
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChartingModule = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const AdaptableModuleBase_1 = require("@adaptabletools/adaptable/src/Strategy/AdaptableModuleBase");
6
- const ModuleConstants = tslib_1.__importStar(require("@adaptabletools/adaptable/src/Utilities/Constants/ModuleConstants"));
5
+ const AdaptableModuleBase_1 = require("./AdaptableModuleBase");
6
+ const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants"));
7
7
  class ChartingModule extends AdaptableModuleBase_1.AdaptableModuleBase {
8
8
  constructor(api) {
9
9
  super(ModuleConstants.ChartingModuleId, 'Charts', 'chart', 'ChartPopup', 'Create Charts in order to see Adaptable Data visually', api);
@@ -42,7 +42,7 @@ class FlashingCellModule extends AdaptableModuleBase_1.AdaptableModuleBase {
42
42
  return this.api.flashingCellApi.getFlashingCellDefinitions();
43
43
  }
44
44
  getExplicitlyReferencedColumnIds(alertDefinition) {
45
- const queryExpression = AdaptableQuery_1.getAdaptableQueryExpression(alertDefinition.Rule);
45
+ const queryExpression = this.api.queryLanguageApi.getAdaptableQueryExpression(alertDefinition.Rule);
46
46
  if (queryExpression) {
47
47
  return this.api.queryLanguageApi.getColumnsFromExpression(queryExpression);
48
48
  }
@@ -54,7 +54,7 @@ class FlashingCellModule extends AdaptableModuleBase_1.AdaptableModuleBase {
54
54
  return [];
55
55
  }
56
56
  getReferencedNamedQueryNames(alertDefinition) {
57
- const queryExpression = AdaptableQuery_1.getAdaptableQueryExpression(alertDefinition.Rule);
57
+ const queryExpression = this.api.queryLanguageApi.getAdaptableQueryExpression(alertDefinition.Rule);
58
58
  if (!queryExpression) {
59
59
  return [];
60
60
  }
@@ -27,6 +27,7 @@ class FreeTextColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
27
27
  for (const freeTextColumn of allFreeTextColumns) {
28
28
  if (!freeTextColumn.DataType) {
29
29
  const updatedFreeTextColumn = Object.assign(Object.assign({}, freeTextColumn), { DataType: 'String' });
30
+ // FIXME AFL add api method to edit multiple columns in one run
30
31
  this.api.freeTextColumnApi.editFreeTextColumn(updatedFreeTextColumn);
31
32
  }
32
33
  }
@@ -13,7 +13,7 @@ exports.getAlertPreviewViewItems = (alert, api) => {
13
13
  if (!((_a = alert === null || alert === void 0 ? void 0 : alert.AlertProperties) === null || _a === void 0 ? void 0 : _a.DisplayNotification)) {
14
14
  return React.createElement(Tag_1.Tag, null, alert.MessageType);
15
15
  }
16
- return React.createElement(AlertDisplayWizardSection_1.AlertPreview, { style: { maxWidth: 400 }, mt: 2, api: api, alertDefinition: alert });
16
+ return (React.createElement(AlertDisplayWizardSection_1.AlertPreview, { focusFirstButton: false, style: { maxWidth: 400 }, mt: 2, api: api, alertDefinition: alert }));
17
17
  },
18
18
  };
19
19
  };