@adaptabletools/adaptable 14.0.0-canary.2 → 14.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.
- package/bundle.cjs.js +197 -197
- package/package.json +1 -1
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -1
- package/src/Api/AdaptableApi.d.ts +12 -12
- package/src/Api/ColumnApi.d.ts +2 -10
- package/src/Api/EventApi.d.ts +8 -8
- package/src/Api/Implementation/ColumnApiImpl.d.ts +0 -2
- package/src/Api/Implementation/ColumnApiImpl.js +0 -8
- package/src/Api/Internal/AdaptableInternalApi.d.ts +1 -1
- package/src/Api/Internal/AdaptableInternalApi.js +4 -3
- package/src/Api/Internal/ExportInternalApi.d.ts +8 -0
- package/src/Api/Internal/ExportInternalApi.js +51 -0
- package/src/Api/Internal/FormatColumnInternalApi.d.ts +11 -0
- package/src/Api/Internal/FormatColumnInternalApi.js +10 -0
- package/src/Api/OptionsApi.d.ts +1 -1
- package/src/PredefinedConfig/Common/FDC3Context.d.ts +4 -0
- package/src/PredefinedConfig/SystemState.d.ts +3 -0
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +8 -0
- package/src/Redux/ActionsReducers/SystemRedux.js +26 -2
- package/src/Redux/Store/AdaptableStore.js +6 -0
- package/src/Strategy/AdaptableModuleBase.js +1 -1
- package/src/Strategy/AlertModule.js +1 -2
- package/src/Strategy/DashboardModule.js +1 -1
- package/src/Strategy/DataChangeHistoryModule.js +2 -4
- package/src/Strategy/DataSetModule.js +1 -1
- package/src/Strategy/ExportModule.js +8 -1
- package/src/Strategy/FilterModule.js +1 -1
- package/src/Strategy/FlashingCellModule.js +1 -2
- package/src/Strategy/FreeTextColumnModule.js +1 -2
- package/src/Strategy/LayoutModule.js +6 -6
- package/src/Strategy/SettingsPanelModule.js +1 -1
- package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +1 -2
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +2 -4
- package/src/Utilities/Services/ChartingService.js +1 -1
- package/src/Utilities/Services/EntitlementService.js +4 -4
- package/src/Utilities/Services/Interface/IReportService.d.ts +7 -1
- package/src/Utilities/Services/QueryLanguageService.js +3 -3
- package/src/Utilities/Services/ReportService.d.ts +10 -2
- package/src/Utilities/Services/ReportService.js +40 -31
- package/src/Utilities/Services/TeamSharingService.js +3 -3
- package/src/Utilities/Services/ValidationService.js +6 -6
- package/src/View/AdaptableView.js +1 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +11 -2
- package/src/View/Alert/Wizard/isValidAlertRules.js +6 -27
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +1 -1
- package/src/View/Components/EntityRulesEditor/Utilities.d.ts +2 -2
- package/src/View/Components/EntityRulesEditor/Utilities.js +19 -12
- package/src/View/Components/FilterForm/FilterForm.js +6 -7
- package/src/View/Components/FilterForm/QuickFilterForm.js +7 -9
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +1 -1
- package/src/View/Components/Popups/AdaptablePopup/TopBar.js +1 -1
- package/src/View/Components/Popups/AdaptableToaster.js +1 -1
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -1
- package/src/View/Components/ToolPanel/ToolPanelPopup.js +1 -2
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +1 -2
- package/src/View/Dashboard/CustomToolbarWrapper.js +7 -1
- package/src/View/Dashboard/Dashboard.js +5 -5
- package/src/View/Dashboard/DashboardPopup.js +2 -3
- package/src/View/Dashboard/DashboardViewPanel.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +1 -2
- package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +1 -1
- package/src/View/Filter/FilterViewPanel.js +3 -3
- package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +5 -14
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +4 -2
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +4 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -1
- package/src/View/GridInfo/GridInfoPopup.js +1 -1
- package/src/View/Layout/PivotDetailsPopoup.js +3 -3
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.d.ts +2 -2
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +9 -3
- package/src/View/QuickSearch/QuickSearchPopup.js +3 -3
- package/src/View/QuickSearch/QuickSearchStatusBarContent.js +1 -1
- package/src/View/QuickSearch/QuickSearchViewPanel.js +1 -1
- package/src/View/SpecialColumnSettingsWizardStep.js +2 -3
- package/src/agGrid/Adaptable.d.ts +1 -1
- package/src/agGrid/Adaptable.js +123 -39
- package/src/agGrid/PercentBarRenderer.js +1 -1
- package/src/agGrid/agGridHelper.js +3 -0
- package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
- package/src/metamodel/adaptable.metamodel.d.ts +7 -0
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -311,8 +311,8 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
311
311
|
return this.getModuleAdaptableObjects().map((layout) => this.toView(layout));
|
|
312
312
|
}
|
|
313
313
|
toView(layout) {
|
|
314
|
-
var _a, _b, _c, _d, _e, _f
|
|
315
|
-
const maxColumnsToDisplay = (
|
|
314
|
+
var _a, _b, _c, _d, _e, _f;
|
|
315
|
+
const maxColumnsToDisplay = (_b = (_a = this.api.optionsApi.getLayoutOptions().layoutViewOptions) === null || _a === void 0 ? void 0 : _a.maxColumnsToDisplay) !== null && _b !== void 0 ? _b : 10;
|
|
316
316
|
const columnIdToFriendlyName = (columnId) => {
|
|
317
317
|
return this.api.columnApi.getFriendlyNameForColumnId(columnId);
|
|
318
318
|
};
|
|
@@ -348,13 +348,13 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
348
348
|
name: 'Columns',
|
|
349
349
|
values: columns,
|
|
350
350
|
},
|
|
351
|
-
((
|
|
352
|
-
((
|
|
353
|
-
((
|
|
351
|
+
((_c = layout.ColumnSorts) === null || _c === void 0 ? void 0 : _c.length) && (0, getLayoutSortViewItems_1.getLayoutSortViewItems)(layout, this.api),
|
|
352
|
+
((_d = layout === null || layout === void 0 ? void 0 : layout.ColumnFilters) === null || _d === void 0 ? void 0 : _d.length) && (0, getLayoutFilterViewItems_1.getLayoutFilterViewItems)(layout, this.api),
|
|
353
|
+
((_e = layout === null || layout === void 0 ? void 0 : layout.RowGroupedColumns) === null || _e === void 0 ? void 0 : _e.length) && {
|
|
354
354
|
name: 'Grouped Columns',
|
|
355
355
|
values: layout.RowGroupedColumns.map((colId) => columnIdToFriendlyName(colId)),
|
|
356
356
|
},
|
|
357
|
-
((
|
|
357
|
+
((_f = layout === null || layout === void 0 ? void 0 : layout.PivotColumns) === null || _f === void 0 ? void 0 : _f.length) && {
|
|
358
358
|
name: 'Pivot Columns',
|
|
359
359
|
values: layout.PivotColumns.map((colId) => columnIdToFriendlyName(colId)),
|
|
360
360
|
},
|
|
@@ -7,7 +7,7 @@ const AdaptableModuleBase_1 = require("./AdaptableModuleBase");
|
|
|
7
7
|
const PopupRedux = tslib_1.__importStar(require("../Redux/ActionsReducers/PopupRedux"));
|
|
8
8
|
class SettingsPanelModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
9
9
|
constructor(api) {
|
|
10
|
-
const friendlyName = api.
|
|
10
|
+
const friendlyName = api.optionsApi.getSettingsPanelOptions().title;
|
|
11
11
|
super(ModuleConstants.SettingsPanelModuleId, friendlyName, 'settings', null, 'Manage all Adaptable Settings', api);
|
|
12
12
|
}
|
|
13
13
|
addColumnMenuItems(column) {
|
|
@@ -428,8 +428,7 @@ const getSlidingTimeframe$ = (source$, timeframeDuration, onTimeframeEnter, onTi
|
|
|
428
428
|
}));
|
|
429
429
|
};
|
|
430
430
|
const getMaxTimeframeSize = (expressionValue, context) => {
|
|
431
|
-
let maxTimeframeSize = context.adaptableApi.
|
|
432
|
-
.maxTimeframeSize;
|
|
431
|
+
let maxTimeframeSize = context.adaptableApi.optionsApi.getAdaptableQLOptions().expressionOptions.maxTimeframeSize;
|
|
433
432
|
if (maxTimeframeSize > SYSTEM_MAX_TIMEFRAME_SIZE) {
|
|
434
433
|
maxTimeframeSize = SYSTEM_MAX_TIMEFRAME_SIZE;
|
|
435
434
|
}
|
|
@@ -91,10 +91,8 @@ class CalculatedColumnExpressionService {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
if (calculatedColumnQuery.AggregatedScalarExpression) {
|
|
94
|
-
const validationResult = this.adaptableApi.
|
|
95
|
-
|
|
96
|
-
.validateAggregatedScalar(calculatedColumnQuery.AggregatedScalarExpression, ModuleConstants_1.CalculatedColumnModuleId);
|
|
97
|
-
return validationResult.isValid;
|
|
94
|
+
const validationResult = this.adaptableApi.queryLanguageApi.isValidAggregatedScalarExpression(calculatedColumnQuery.AggregatedScalarExpression, ModuleConstants_1.CalculatedColumnModuleId);
|
|
95
|
+
return validationResult;
|
|
98
96
|
}
|
|
99
97
|
// if query has neither a ScalarExpression nor an AggregatedScalarExpression => it can only be false
|
|
100
98
|
return false;
|
|
@@ -38,7 +38,7 @@ class ChartingService {
|
|
|
38
38
|
}
|
|
39
39
|
saveNewChart(chartModel) {
|
|
40
40
|
var _a, _b;
|
|
41
|
-
const chartingOptions = (_a = this.api.
|
|
41
|
+
const chartingOptions = (_a = this.api.optionsApi.getChartingOptions()) !== null && _a !== void 0 ? _a : {};
|
|
42
42
|
const saveStragegy = (_b = chartingOptions.saveStrategy) !== null && _b !== void 0 ? _b : 'manual';
|
|
43
43
|
if (saveStragegy === 'none') {
|
|
44
44
|
return;
|
|
@@ -24,7 +24,7 @@ class EntitlementService {
|
|
|
24
24
|
return this.getEntitlementAccessLevelForModule(adaptableModule) == 'ReadOnly';
|
|
25
25
|
}
|
|
26
26
|
getEntitlementAccessLevelForModule(adaptableModule) {
|
|
27
|
-
let adaptableOptions = this.adaptableApi.
|
|
27
|
+
let adaptableOptions = this.adaptableApi.optionsApi.getAdaptableOptions();
|
|
28
28
|
let entitlementOptions = adaptableOptions.entitlementOptions;
|
|
29
29
|
if (entitlementOptions) {
|
|
30
30
|
const defaultAccessLevel = typeof entitlementOptions.defaultAccessLevel === 'function'
|
|
@@ -61,9 +61,9 @@ class EntitlementService {
|
|
|
61
61
|
if (this.isModuleHiddenEntitlement('GridInfo')) {
|
|
62
62
|
return false;
|
|
63
63
|
}
|
|
64
|
-
return this.adaptableApi.
|
|
65
|
-
.
|
|
66
|
-
.
|
|
64
|
+
return this.adaptableApi.optionsApi
|
|
65
|
+
.getUserInterfaceOptions()
|
|
66
|
+
.gridInfoSections.includes(section);
|
|
67
67
|
}
|
|
68
68
|
destroy() {
|
|
69
69
|
// TO DO
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { Report, ReportData, SystemReportName } from '../../../PredefinedConfig/ExportState';
|
|
2
2
|
import { AdaptableColumn } from '../../../PredefinedConfig/Common/AdaptableColumn';
|
|
3
3
|
import { IAdaptableService } from './IAdaptableService';
|
|
4
|
-
import { RowNode } from '@ag-grid-community/core';
|
|
4
|
+
import { ExcelStyle, RowNode } from '@ag-grid-community/core';
|
|
5
5
|
import { SystemExportDestination } from '../../../types';
|
|
6
6
|
export interface IReportService extends IAdaptableService {
|
|
7
|
+
resetExcelStyleMemoization(): void;
|
|
8
|
+
registerExcelStyle(excelStyle: Partial<ExcelStyle>, cellClassKey: string): void;
|
|
9
|
+
getRegisteredExcelStyles(): ExcelStyle[];
|
|
10
|
+
getExcelStyleIdForCellClassKey(cellClassKey: string): string;
|
|
11
|
+
registerExcelStyleWithFormattedDate(cellClassId: string, isoFormattedValue: string): void;
|
|
12
|
+
getExcelStyleWithFormattedDate(cellClassId: string): string;
|
|
7
13
|
CreateSystemReport(systemReportName: SystemReportName): Report;
|
|
8
14
|
IsSystemReport(reportName: string): boolean;
|
|
9
15
|
IsSystemReportActive(reportName: SystemReportName): boolean;
|
|
@@ -86,7 +86,7 @@ class QueryLanguageService {
|
|
|
86
86
|
}
|
|
87
87
|
const force = (_a = config === null || config === void 0 ? void 0 : config.force) !== null && _a !== void 0 ? _a : false;
|
|
88
88
|
// get searchOptions to see if validation should be performed
|
|
89
|
-
if (!this.adaptableApi.
|
|
89
|
+
if (!this.adaptableApi.optionsApi.getAdaptableQLOptions().expressionOptions
|
|
90
90
|
.performExpressionValidation &&
|
|
91
91
|
!force) {
|
|
92
92
|
const result = { isValid: true, errorMessage: '' };
|
|
@@ -276,7 +276,7 @@ class QueryLanguageService {
|
|
|
276
276
|
// if there are no specific functions defined, it falls back to the default values
|
|
277
277
|
getModuleExpressionFunctionsMap(module) {
|
|
278
278
|
var _a, _b, _c;
|
|
279
|
-
const expressionOptions = this.adaptableApi.
|
|
279
|
+
const expressionOptions = this.adaptableApi.optionsApi.getAdaptableQLOptions().expressionOptions;
|
|
280
280
|
if (module) {
|
|
281
281
|
let cachedResult = this.cacheModuleSpecificExpressionFunctions.get(module);
|
|
282
282
|
if (cachedResult) {
|
|
@@ -361,7 +361,7 @@ class QueryLanguageService {
|
|
|
361
361
|
adaptableApi: this.adaptableApi,
|
|
362
362
|
args,
|
|
363
363
|
};
|
|
364
|
-
const customQueryVariableDefinition = (_c = (_b = (_a = this.adaptableApi.
|
|
364
|
+
const customQueryVariableDefinition = (_c = (_b = (_a = this.adaptableApi.optionsApi.getAdaptableQLOptions()) === null || _a === void 0 ? void 0 : _a.expressionOptions) === null || _b === void 0 ? void 0 : _b.customQueryVariables) === null || _c === void 0 ? void 0 : _c[functionName];
|
|
365
365
|
return typeof customQueryVariableDefinition === 'function'
|
|
366
366
|
? customQueryVariableDefinition(context)
|
|
367
367
|
: customQueryVariableDefinition;
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
|
|
2
2
|
import { Report, ReportData, SystemReportName } from '../../PredefinedConfig/ExportState';
|
|
3
3
|
import { IReportService } from './Interface/IReportService';
|
|
4
|
-
import { RowNode } from '@ag-grid-community/core';
|
|
4
|
+
import { ExcelStyle, RowNode } from '@ag-grid-community/core';
|
|
5
5
|
import { SystemExportDestination } from '../../AdaptableOptions/ExportOptions';
|
|
6
6
|
import { AdaptableApi } from '../../../types';
|
|
7
7
|
export declare class ReportService implements IReportService {
|
|
8
8
|
private adaptableApi;
|
|
9
|
+
private excelStylesCache;
|
|
10
|
+
private cellClassKey2excelStyleIdMap;
|
|
11
|
+
private excelStylesWithFormattedDate;
|
|
9
12
|
constructor(adaptableApi: AdaptableApi);
|
|
13
|
+
resetExcelStyleMemoization(): void;
|
|
14
|
+
registerExcelStyle(excelStyle: Partial<ExcelStyle>, cellClassKey: string): void;
|
|
15
|
+
getRegisteredExcelStyles(): ExcelStyle[];
|
|
16
|
+
getExcelStyleIdForCellClassKey(cellClassKey: string): string;
|
|
17
|
+
registerExcelStyleWithFormattedDate(cellClassId: string, isoFormattedValue: string): void;
|
|
18
|
+
getExcelStyleWithFormattedDate(cellClassId: string): string;
|
|
10
19
|
CreateSystemReport(systemReportName: SystemReportName): Report;
|
|
11
20
|
IsSystemReport(reportName: string): boolean;
|
|
12
21
|
IsSystemReportActive(reportName: SystemReportName): boolean;
|
|
@@ -26,5 +35,4 @@ export declare class ReportService implements IReportService {
|
|
|
26
35
|
destroy(): void;
|
|
27
36
|
private getCustomExportDateFormat;
|
|
28
37
|
private getCellExportValueFromRawValueByType;
|
|
29
|
-
private computeCellExportValueFormat;
|
|
30
38
|
}
|
|
@@ -4,22 +4,51 @@ exports.ReportService = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const groupBy_1 = tslib_1.__importDefault(require("lodash/groupBy"));
|
|
6
6
|
const Enums_1 = require("../../PredefinedConfig/Common/Enums");
|
|
7
|
-
const Uuid_1 = require("../../PredefinedConfig/Uuid");
|
|
8
7
|
const GeneralConstants_1 = require("../Constants/GeneralConstants");
|
|
9
8
|
const ArrayExtensions_1 = tslib_1.__importDefault(require("../Extensions/ArrayExtensions"));
|
|
10
9
|
const FormatHelper_1 = tslib_1.__importStar(require("../Helpers/FormatHelper"));
|
|
11
10
|
const StringExtensions_1 = tslib_1.__importDefault(require("../Extensions/StringExtensions"));
|
|
12
11
|
const ModuleConstants_1 = require("../Constants/ModuleConstants");
|
|
12
|
+
const uuid_1 = require("../../components/utils/uuid");
|
|
13
13
|
class ReportService {
|
|
14
14
|
constructor(adaptableApi) {
|
|
15
15
|
this.adaptableApi = adaptableApi;
|
|
16
|
+
this.excelStylesCache = {};
|
|
17
|
+
this.cellClassKey2excelStyleIdMap = {};
|
|
18
|
+
this.excelStylesWithFormattedDate = {};
|
|
16
19
|
this.adaptableApi = adaptableApi;
|
|
17
20
|
}
|
|
21
|
+
resetExcelStyleMemoization() {
|
|
22
|
+
this.excelStylesCache = {};
|
|
23
|
+
this.cellClassKey2excelStyleIdMap = {};
|
|
24
|
+
this.excelStylesWithFormattedDate = {};
|
|
25
|
+
}
|
|
26
|
+
registerExcelStyle(excelStyle, cellClassKey) {
|
|
27
|
+
const excelStyleKey = JSON.stringify(excelStyle);
|
|
28
|
+
if (!this.excelStylesCache[excelStyleKey]) {
|
|
29
|
+
const excelStyleId = (0, uuid_1.createUuid)();
|
|
30
|
+
const excelStyleWithId = Object.assign(Object.assign({}, excelStyle), { id: excelStyleId });
|
|
31
|
+
this.excelStylesCache[excelStyleKey] = excelStyleWithId;
|
|
32
|
+
}
|
|
33
|
+
this.cellClassKey2excelStyleIdMap[cellClassKey] = this.excelStylesCache[excelStyleKey].id;
|
|
34
|
+
}
|
|
35
|
+
getRegisteredExcelStyles() {
|
|
36
|
+
return Object.values(this.excelStylesCache);
|
|
37
|
+
}
|
|
38
|
+
getExcelStyleIdForCellClassKey(cellClassKey) {
|
|
39
|
+
return this.cellClassKey2excelStyleIdMap[cellClassKey];
|
|
40
|
+
}
|
|
41
|
+
registerExcelStyleWithFormattedDate(cellClassId, isoFormattedValue) {
|
|
42
|
+
this.excelStylesWithFormattedDate[cellClassId] = isoFormattedValue;
|
|
43
|
+
}
|
|
44
|
+
getExcelStyleWithFormattedDate(cellClassId) {
|
|
45
|
+
return this.excelStylesWithFormattedDate[cellClassId];
|
|
46
|
+
}
|
|
18
47
|
CreateSystemReport(systemReportName) {
|
|
19
48
|
switch (systemReportName) {
|
|
20
49
|
case GeneralConstants_1.VISUAL_DATA_REPORT:
|
|
21
50
|
return {
|
|
22
|
-
Uuid: (0,
|
|
51
|
+
Uuid: (0, uuid_1.createUuid)(),
|
|
23
52
|
Name: GeneralConstants_1.VISUAL_DATA_REPORT,
|
|
24
53
|
ReportColumnScope: 'VisibleColumns',
|
|
25
54
|
ReportRowScope: 'VisibleRows',
|
|
@@ -28,7 +57,7 @@ class ReportService {
|
|
|
28
57
|
};
|
|
29
58
|
case GeneralConstants_1.ALL_DATA_REPORT:
|
|
30
59
|
return {
|
|
31
|
-
Uuid: (0,
|
|
60
|
+
Uuid: (0, uuid_1.createUuid)(),
|
|
32
61
|
Name: GeneralConstants_1.ALL_DATA_REPORT,
|
|
33
62
|
ReportColumnScope: 'AllColumns',
|
|
34
63
|
ReportRowScope: 'AllRows',
|
|
@@ -37,7 +66,7 @@ class ReportService {
|
|
|
37
66
|
};
|
|
38
67
|
case GeneralConstants_1.CURRENT_DATA_REPORT:
|
|
39
68
|
return {
|
|
40
|
-
Uuid: (0,
|
|
69
|
+
Uuid: (0, uuid_1.createUuid)(),
|
|
41
70
|
Name: GeneralConstants_1.CURRENT_DATA_REPORT,
|
|
42
71
|
ReportColumnScope: 'VisibleColumns',
|
|
43
72
|
ReportRowScope: 'VisibleRows',
|
|
@@ -46,7 +75,7 @@ class ReportService {
|
|
|
46
75
|
};
|
|
47
76
|
case GeneralConstants_1.SELECTED_CELLS_REPORT:
|
|
48
77
|
return {
|
|
49
|
-
Uuid: (0,
|
|
78
|
+
Uuid: (0, uuid_1.createUuid)(),
|
|
50
79
|
Name: GeneralConstants_1.SELECTED_CELLS_REPORT,
|
|
51
80
|
ReportColumnScope: 'SelectedColumns',
|
|
52
81
|
ReportRowScope: 'SelectedCellRows',
|
|
@@ -55,7 +84,7 @@ class ReportService {
|
|
|
55
84
|
};
|
|
56
85
|
case GeneralConstants_1.SELECTED_ROWS_REPORT:
|
|
57
86
|
return {
|
|
58
|
-
Uuid: (0,
|
|
87
|
+
Uuid: (0, uuid_1.createUuid)(),
|
|
59
88
|
Name: GeneralConstants_1.SELECTED_ROWS_REPORT,
|
|
60
89
|
ReportColumnScope: 'VisibleColumns',
|
|
61
90
|
ReportRowScope: 'SelectedRows',
|
|
@@ -188,7 +217,7 @@ class ReportService {
|
|
|
188
217
|
break;
|
|
189
218
|
}
|
|
190
219
|
if (includePrimaryKey) {
|
|
191
|
-
const pkColumn = reportColumns.find((column) => column.columnId === this.adaptableApi.
|
|
220
|
+
const pkColumn = reportColumns.find((column) => column.columnId === this.adaptableApi.optionsApi.getPrimaryKey());
|
|
192
221
|
// TODO simplify after we fix the IsPrimaryKey bug
|
|
193
222
|
// const pkColumn = reportColumns.find(column => column.IsPrimaryKey);
|
|
194
223
|
if (!pkColumn && !!this.adaptableApi.columnApi.getPrimaryKeyColumn()) {
|
|
@@ -252,8 +281,7 @@ class ReportService {
|
|
|
252
281
|
const selectedColumnIds = columnIds.filter((columnId) => selectedRowColumnIds.includes(columnId));
|
|
253
282
|
const row = this.getRowObjectForColumnIds(rowNode, selectedColumnIds);
|
|
254
283
|
if (includePrimaryKey) {
|
|
255
|
-
row[this.adaptableApi.
|
|
256
|
-
rowPrimaryKeyValue;
|
|
284
|
+
row[this.adaptableApi.optionsApi.getPrimaryKey()] = rowPrimaryKeyValue;
|
|
257
285
|
}
|
|
258
286
|
data.rows.push(row);
|
|
259
287
|
}
|
|
@@ -315,12 +343,12 @@ class ReportService {
|
|
|
315
343
|
});
|
|
316
344
|
}
|
|
317
345
|
// otherwise check the general export format types
|
|
318
|
-
let cellExportFormat = this.
|
|
346
|
+
let cellExportFormat = this.adaptableApi.exportApi.internalApi.getCellExportFormatType(columnType);
|
|
319
347
|
return this.getCellExportValueFromRawValueByType(rowNode, cellRawValue, columnId, cellExportFormat);
|
|
320
348
|
}
|
|
321
349
|
getReportFileName(reportName) {
|
|
322
350
|
let fileName = StringExtensions_1.default.ReplaceEmptySpacesWithUnderscore(reportName);
|
|
323
|
-
if (this.adaptableApi.
|
|
351
|
+
if (this.adaptableApi.optionsApi.getExportOptions().appendFileTimestamp) {
|
|
324
352
|
fileName = `${fileName}_${(0, FormatHelper_1.DateFormatter)(new Date(), {
|
|
325
353
|
Pattern: 'yyyyMMdd_HHmmss',
|
|
326
354
|
})}`;
|
|
@@ -331,7 +359,7 @@ class ReportService {
|
|
|
331
359
|
// TO DO
|
|
332
360
|
}
|
|
333
361
|
getCustomExportDateFormat() {
|
|
334
|
-
return this.adaptableApi.
|
|
362
|
+
return this.adaptableApi.optionsApi.getExportOptions().exportDateFormat;
|
|
335
363
|
}
|
|
336
364
|
getCellExportValueFromRawValueByType(rowNode, cellRawValue, columnId,
|
|
337
365
|
// default to rawValue if, for some reason, the configs provide invalid values
|
|
@@ -341,24 +369,5 @@ class ReportService {
|
|
|
341
369
|
: // type === formattedValue
|
|
342
370
|
this.adaptableApi.gridApi.getDisplayValueFromRawValue(rowNode, columnId, cellRawValue);
|
|
343
371
|
}
|
|
344
|
-
computeCellExportValueFormat(columnDataType) {
|
|
345
|
-
const exportOptions = this.adaptableApi.internalApi.getAdaptableOptions().exportOptions;
|
|
346
|
-
if (exportOptions.exportFormatType === 'rawValue' ||
|
|
347
|
-
exportOptions.exportFormatType === 'formattedValue') {
|
|
348
|
-
return exportOptions.exportFormatType;
|
|
349
|
-
}
|
|
350
|
-
// format is customized based on column data type
|
|
351
|
-
switch (columnDataType) {
|
|
352
|
-
case 'String':
|
|
353
|
-
return exportOptions.exportFormatType.string;
|
|
354
|
-
case 'Number':
|
|
355
|
-
return exportOptions.exportFormatType.number;
|
|
356
|
-
case 'Date':
|
|
357
|
-
return exportOptions.exportFormatType.date;
|
|
358
|
-
default:
|
|
359
|
-
// default to rawValue for all other column types
|
|
360
|
-
return 'rawValue';
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
372
|
}
|
|
364
373
|
exports.ReportService = ReportService;
|
|
@@ -5,7 +5,7 @@ const Uuid_1 = require("../../PredefinedConfig/Uuid");
|
|
|
5
5
|
class TeamSharingService {
|
|
6
6
|
constructor(adaptableApi) {
|
|
7
7
|
this.adaptableApi = adaptableApi;
|
|
8
|
-
const teamSharingOptions = adaptableApi.
|
|
8
|
+
const teamSharingOptions = adaptableApi.optionsApi.getTeamSharingOptions();
|
|
9
9
|
if (teamSharingOptions.updateInterval > 0) {
|
|
10
10
|
// convert minutes to millis
|
|
11
11
|
const updateInterval = teamSharingOptions.updateInterval * 60000;
|
|
@@ -15,7 +15,7 @@ class TeamSharingService {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
buildSharedEntityWithDependencies(adaptableObject, module, configuration) {
|
|
18
|
-
const sharingUserName = this.adaptableApi.
|
|
18
|
+
const sharingUserName = this.adaptableApi.optionsApi.getUserName();
|
|
19
19
|
const sharingTimestamp = new Date().getTime();
|
|
20
20
|
const createdSharedEntities = [];
|
|
21
21
|
this.createSharedEntity(adaptableObject, module, configuration, sharingUserName, sharingTimestamp, createdSharedEntities);
|
|
@@ -108,7 +108,7 @@ class TeamSharingService {
|
|
|
108
108
|
return result;
|
|
109
109
|
}
|
|
110
110
|
showUpdateNotifications() {
|
|
111
|
-
const { updateNotification } = this.adaptableApi.
|
|
111
|
+
const { updateNotification } = this.adaptableApi.optionsApi.getTeamSharingOptions();
|
|
112
112
|
if (!updateNotification) {
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
@@ -62,19 +62,20 @@ class ValidationService {
|
|
|
62
62
|
}
|
|
63
63
|
IsAlertDefinitionTriggered(alertDefinition, dataChangedEvent) {
|
|
64
64
|
var _a;
|
|
65
|
+
const displayValue = this.adaptableApi.gridApi.getDisplayValueFromRowNode(dataChangedEvent.rowNode, dataChangedEvent.column.columnId);
|
|
65
66
|
return this.adaptableApi.predicateApi.handlePredicates((_a = alertDefinition.Rule) === null || _a === void 0 ? void 0 : _a.Predicates, {
|
|
66
67
|
value: dataChangedEvent.newValue,
|
|
67
68
|
oldValue: dataChangedEvent.oldValue,
|
|
68
|
-
displayValue
|
|
69
|
+
displayValue,
|
|
69
70
|
node: dataChangedEvent.rowNode,
|
|
70
71
|
column: dataChangedEvent.column,
|
|
71
72
|
}, false);
|
|
72
73
|
}
|
|
73
74
|
performServerValidation(cellDataChangedInfo, config) {
|
|
74
75
|
return () => {
|
|
75
|
-
this.adaptableApi.
|
|
76
|
-
.
|
|
77
|
-
.
|
|
76
|
+
this.adaptableApi.optionsApi
|
|
77
|
+
.getEditOptions()
|
|
78
|
+
.validateOnServer(cellDataChangedInfo)
|
|
78
79
|
.then((validationResult) => {
|
|
79
80
|
var _a, _b;
|
|
80
81
|
if (validationResult.NewValue === undefined) {
|
|
@@ -92,8 +93,7 @@ class ValidationService {
|
|
|
92
93
|
row[(_b = this.adaptableApi.columnApi.internalApi.getAgGridColumnFieldForAdaptableColumn(cellDataChangedInfo.column.columnId)) !== null && _b !== void 0 ? _b : cellDataChangedInfo.column.columnId] = validationResult.NewValue;
|
|
93
94
|
this.adaptableApi.gridApi.updateGridData([row]);
|
|
94
95
|
if (StringExtensions_1.default.IsNotNullOrEmpty(validationResult.ValidationMessage) &&
|
|
95
|
-
this.adaptableApi.
|
|
96
|
-
.displayServerValidationMessages) {
|
|
96
|
+
this.adaptableApi.optionsApi.getEditOptions().displayServerValidationMessages) {
|
|
97
97
|
this.adaptableApi.alertApi.showAlertInfo('Server Validation Message', validationResult.ValidationMessage);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
@@ -20,7 +20,7 @@ class AdaptableView extends React.Component {
|
|
|
20
20
|
render() {
|
|
21
21
|
var _a, _b, _c, _d;
|
|
22
22
|
const watermark = (_d = (_c = (_b = (_a = this.props.AdaptableApi) === null || _a === void 0 ? void 0 : _a.internalApi) === null || _b === void 0 ? void 0 : _b.getSystemState()) === null || _c === void 0 ? void 0 : _c.License) === null || _d === void 0 ? void 0 : _d.watermark;
|
|
23
|
-
const adaptableOptions = this.props.AdaptableApi.
|
|
23
|
+
const adaptableOptions = this.props.AdaptableApi.optionsApi.getAdaptableOptions();
|
|
24
24
|
return (React.createElement("div", null,
|
|
25
25
|
this.props.AdaptableApi.internalApi.getModuleService().isModuleAvailable('Dashboard') && (React.createElement(Dashboard_1.Dashboard, { api: this.props.AdaptableApi })),
|
|
26
26
|
React.createElement(AdaptableLoadingScreen_1.AdaptableLoadingScreen, { onClose: this.props.onCloseLoadingPopup, showLoadingScreen: this.props.PopupState.LoadingPopup.ShowLoadingPopup }),
|
|
@@ -173,6 +173,7 @@ const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSele
|
|
|
173
173
|
header: () => React.createElement(HeaderCellWrapper, null, "Primary Key"),
|
|
174
174
|
maxWidth: 80,
|
|
175
175
|
sortable: false,
|
|
176
|
+
renderMenuIcon: false,
|
|
176
177
|
render: (params) => {
|
|
177
178
|
const { data } = params;
|
|
178
179
|
const column = data;
|
|
@@ -187,6 +188,7 @@ const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSele
|
|
|
187
188
|
included: {
|
|
188
189
|
maxWidth: 80,
|
|
189
190
|
resizable: true,
|
|
191
|
+
renderMenuIcon: false,
|
|
190
192
|
header: () => (React.createElement(HeaderWithCheckbox, { label: "Included", checked: allIncluded ? true : allExcluded ? false : null, onChange: (allIncluded) => {
|
|
191
193
|
if (allIncluded) {
|
|
192
194
|
includeAllColumns();
|
|
@@ -212,6 +214,7 @@ const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSele
|
|
|
212
214
|
header: React.createElement(HeaderCellWrapper, null, "Field"),
|
|
213
215
|
field: 'field',
|
|
214
216
|
minWidth: 150,
|
|
217
|
+
renderMenuIcon: false,
|
|
215
218
|
render: (params) => {
|
|
216
219
|
const column = params.data;
|
|
217
220
|
const humanized = StringExtensions_1.default.Humanize(column.field);
|
|
@@ -224,6 +227,7 @@ const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSele
|
|
|
224
227
|
type: {
|
|
225
228
|
header: React.createElement(HeaderCellWrapper, null, "Type"),
|
|
226
229
|
maxWidth: 140,
|
|
230
|
+
renderMenuIcon: false,
|
|
227
231
|
render: (params) => {
|
|
228
232
|
var _a;
|
|
229
233
|
const column = params.data;
|
|
@@ -232,6 +236,7 @@ const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSele
|
|
|
232
236
|
},
|
|
233
237
|
},
|
|
234
238
|
sortable: {
|
|
239
|
+
renderMenuIcon: false,
|
|
235
240
|
header: (React.createElement(HeaderWithCheckbox, { label: "Sortable", checked: isAllSortableColumns() ? true : isNoneSortableColumns() ? false : null, onChange: (allSortable) => {
|
|
236
241
|
if (allSortable) {
|
|
237
242
|
setAllSortable();
|
|
@@ -248,6 +253,7 @@ const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSele
|
|
|
248
253
|
},
|
|
249
254
|
},
|
|
250
255
|
editable: {
|
|
256
|
+
renderMenuIcon: false,
|
|
251
257
|
header: (React.createElement(HeaderWithCheckbox, { label: "Editable", checked: isAllEditableColumns() ? true : isNoneEditableColumns() ? false : null, onChange: (allEditable) => {
|
|
252
258
|
if (allEditable) {
|
|
253
259
|
setAllEditable();
|
|
@@ -265,6 +271,7 @@ const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSele
|
|
|
265
271
|
},
|
|
266
272
|
},
|
|
267
273
|
resizable: {
|
|
274
|
+
renderMenuIcon: false,
|
|
268
275
|
header: (React.createElement(HeaderWithCheckbox, { label: "Resizable", checked: isAllResizableColumns() ? true : isNoneResizableColumns() ? false : null, onChange: (allResizable) => {
|
|
269
276
|
if (allResizable) {
|
|
270
277
|
setAllResizable();
|
|
@@ -282,6 +289,7 @@ const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSele
|
|
|
282
289
|
},
|
|
283
290
|
},
|
|
284
291
|
groupable: {
|
|
292
|
+
renderMenuIcon: false,
|
|
285
293
|
header: (React.createElement(HeaderWithCheckbox, { label: "Groupable", checked: isAllGroupableColumns() ? true : isNoneGroupableColumns() ? false : null, onChange: (allGroupable) => {
|
|
286
294
|
if (allGroupable) {
|
|
287
295
|
setAllGroupable();
|
|
@@ -298,8 +306,9 @@ const ColumnsList = ({ columns: cols, handle, onValidityChange, onChange, onSele
|
|
|
298
306
|
} })));
|
|
299
307
|
},
|
|
300
308
|
},
|
|
301
|
-
|
|
302
|
-
|
|
309
|
+
filterable: {
|
|
310
|
+
renderMenuIcon: false,
|
|
311
|
+
header: (React.createElement(HeaderWithCheckbox, { label: "Filterable", checked: isAllFilterableColumns() ? true : isNoneFilterableColumns() ? false : null, onChange: (allFilterable) => {
|
|
303
312
|
if (allFilterable) {
|
|
304
313
|
setAllFilterable();
|
|
305
314
|
}
|
|
@@ -1,27 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isValidAlertRules = void 0;
|
|
4
|
-
const
|
|
4
|
+
const Utilities_1 = require("../../Components/EntityRulesEditor/Utilities");
|
|
5
5
|
const isValidAlertRules = (alert, api, context) => {
|
|
6
6
|
var _a;
|
|
7
|
-
|
|
8
|
-
if (!alert.Rule.Predicates &&
|
|
7
|
+
if (!((_a = alert.Rule.Predicates) === null || _a === void 0 ? void 0 : _a.length) &&
|
|
9
8
|
!alert.Rule.BooleanExpression &&
|
|
10
9
|
!alert.Rule.ObservableExpression &&
|
|
11
10
|
!alert.Rule.AggregatedBooleanExpression) {
|
|
12
|
-
return 'No
|
|
11
|
+
return 'No Rule defined for Alert';
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return 'Predicate is not valid';
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
if (valid && alert.Rule.BooleanExpression) {
|
|
21
|
-
valid = api.queryLanguageApi.isValidBooleanExpression(alert.Rule.BooleanExpression, ModuleConstants_1.AlertModuleId);
|
|
22
|
-
if (!valid) {
|
|
23
|
-
return 'The Expression is not a valid Boolean Expression';
|
|
24
|
-
}
|
|
13
|
+
const isRuleValid = (0, Utilities_1.isAdaptableRuleValid)(alert, api, context);
|
|
14
|
+
if (typeof isRuleValid === 'string') {
|
|
15
|
+
return isRuleValid;
|
|
25
16
|
}
|
|
26
17
|
// boolean expressions may also be saved as named queries
|
|
27
18
|
if (context.namedQuery != false) {
|
|
@@ -30,18 +21,6 @@ const isValidAlertRules = (alert, api, context) => {
|
|
|
30
21
|
return isValidName.message;
|
|
31
22
|
}
|
|
32
23
|
}
|
|
33
|
-
if (valid && alert.Rule.ObservableExpression) {
|
|
34
|
-
valid = api.queryLanguageApi.isValidObservableExpression(alert.Rule.ObservableExpression, ModuleConstants_1.AlertModuleId);
|
|
35
|
-
if (!valid) {
|
|
36
|
-
return 'The Expression is not a valid Observable Expression';
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
if (valid && alert.Rule.AggregatedBooleanExpression) {
|
|
40
|
-
valid = api.queryLanguageApi.isValidAggregatedBooleanExpression(alert.Rule.AggregatedBooleanExpression, ModuleConstants_1.AlertModuleId);
|
|
41
|
-
if (!valid) {
|
|
42
|
-
return 'The Expression is not a valid AggregatedBoolean Expression';
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
24
|
return true;
|
|
46
25
|
};
|
|
47
26
|
exports.isValidAlertRules = isValidAlertRules;
|
|
@@ -117,7 +117,7 @@ const AdaptableObjectListItem = (props) => {
|
|
|
117
117
|
const isEditDisabled = !Boolean(EditWizard || viewOptions.onOpenEditPopup);
|
|
118
118
|
const showActions = !props.hideControls;
|
|
119
119
|
const showEditButton = Boolean(EditWizard);
|
|
120
|
-
const adaptableOpttions = adaptable.api.
|
|
120
|
+
const adaptableOpttions = adaptable.api.optionsApi.getAdaptableOptions();
|
|
121
121
|
const disableDeleteConfirmationState = (0, react_redux_1.useSelector)((adaptableState) => SystemRedux.SystemDisableDeleteConfirmationSelector(adaptableState.System));
|
|
122
122
|
const disableDeleteConfirmation = disableDeleteConfirmationState || ((_h = adaptableOpttions === null || adaptableOpttions === void 0 ? void 0 : adaptableOpttions.generalOptions) === null || _h === void 0 ? void 0 : _h.disableDeleteConfirmation);
|
|
123
123
|
return (React.createElement(React.Fragment, null,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AdaptableApi } from '../../../types';
|
|
2
2
|
import { OnePageAdaptableWizardContextType } from '../../Wizard/OnePageAdaptableWizard';
|
|
3
3
|
import { RuleType } from './index';
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const isAdaptableRuleValid: (abObject: {
|
|
5
5
|
Rule?: RuleType;
|
|
6
|
-
}, api: AdaptableApi, context: OnePageAdaptableWizardContextType<unknown>) =>
|
|
6
|
+
}, api: AdaptableApi, context: OnePageAdaptableWizardContextType<unknown>) => string | true;
|
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
5
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
6
|
-
if (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if ((_e = (_d = abObject === null || abObject === void 0 ? void 0 : abObject.Rule) === null || _d === void 0 ? void 0 : _d.Predicates) === null || _e === void 0 ? void 0 : _e.length) {
|
|
10
|
-
if (!api.predicateApi.isEveryPredicateValid((_f = abObject === null || abObject === void 0 ? void 0 : abObject.Rule) === null || _f === void 0 ? void 0 : _f.Predicates)) {
|
|
11
|
-
return 'The Predicates are not valid';
|
|
3
|
+
exports.isAdaptableRuleValid = void 0;
|
|
4
|
+
const isAdaptableRuleValid = (abObject, api, context) => {
|
|
5
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
6
|
+
if ((_b = (_a = abObject === null || abObject === void 0 ? void 0 : abObject.Rule) === null || _a === void 0 ? void 0 : _a.Predicates) === null || _b === void 0 ? void 0 : _b.length) {
|
|
7
|
+
if (!api.predicateApi.isEveryPredicateValid((_c = abObject === null || abObject === void 0 ? void 0 : abObject.Rule) === null || _c === void 0 ? void 0 : _c.Predicates)) {
|
|
8
|
+
return `The Predicate${((_e = (_d = abObject === null || abObject === void 0 ? void 0 : abObject.Rule) === null || _d === void 0 ? void 0 : _d.Predicates) === null || _e === void 0 ? void 0 : _e.length) === 1 ? ' is' : 's are'} not valid`;
|
|
12
9
|
}
|
|
13
10
|
}
|
|
14
|
-
if ((
|
|
15
|
-
if (!api.queryLanguageApi.isValidBooleanExpression((
|
|
11
|
+
if ((_f = abObject === null || abObject === void 0 ? void 0 : abObject.Rule) === null || _f === void 0 ? void 0 : _f.BooleanExpression) {
|
|
12
|
+
if (!api.queryLanguageApi.isValidBooleanExpression((_g = abObject === null || abObject === void 0 ? void 0 : abObject.Rule) === null || _g === void 0 ? void 0 : _g.BooleanExpression, context.moduleInfo.ModuleName)) {
|
|
16
13
|
return 'The Expression is not a valid Boolean Expression';
|
|
17
14
|
}
|
|
18
15
|
}
|
|
16
|
+
if ((_h = abObject === null || abObject === void 0 ? void 0 : abObject.Rule) === null || _h === void 0 ? void 0 : _h.ObservableExpression) {
|
|
17
|
+
if (!api.queryLanguageApi.isValidObservableExpression((_j = abObject === null || abObject === void 0 ? void 0 : abObject.Rule) === null || _j === void 0 ? void 0 : _j.ObservableExpression, context.moduleInfo.ModuleName)) {
|
|
18
|
+
return 'The Expression is not a valid Observable Expression';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if ((_k = abObject === null || abObject === void 0 ? void 0 : abObject.Rule) === null || _k === void 0 ? void 0 : _k.AggregatedBooleanExpression) {
|
|
22
|
+
if (!api.queryLanguageApi.isValidAggregatedBooleanExpression((_l = abObject === null || abObject === void 0 ? void 0 : abObject.Rule) === null || _l === void 0 ? void 0 : _l.AggregatedBooleanExpression, context.moduleInfo.ModuleName)) {
|
|
23
|
+
return 'The Expression is not a valid Aggregated Boolean Expression';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
19
26
|
return true;
|
|
20
27
|
};
|
|
21
|
-
exports.
|
|
28
|
+
exports.isAdaptableRuleValid = isAdaptableRuleValid;
|