@qrvey/utils 1.11.0-8 → 1.11.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/README.md +2876 -2083
- package/dist/cjs/filters/helpers/common/getMergeFiltersSettings.js +7 -4
- package/dist/cjs/filters/helpers/common/mergeFilters.d.ts +9 -6
- package/dist/cjs/filters/helpers/common/mergeFilters.js +82 -43
- package/dist/cjs/filters/helpers/common/resolveScopeConditions.d.ts +2 -2
- package/dist/cjs/filters/helpers/common/resolveScopeConditions.js +2 -2
- package/dist/cjs/filters/helpers/getTokensFromFilters.js +6 -0
- package/dist/cjs/filters/interfaces/IFTokensFromFiltersSettings.d.ts +2 -0
- package/dist/cjs/filters/interfaces/functions/IFFiltersMergeFilters.d.ts +21 -2
- package/dist/cjs/globalization/interfaces/formula_builder/II18nFormulaBuilderCreateModal.d.ts +1 -0
- package/dist/cjs/globalization/interfaces/formula_builder/II18nFormulaBuilderErrorMessage.d.ts +6 -0
- package/dist/cjs/globalization/interfaces/formula_builder/II18nFormulaBuilderFunctionAnd.d.ts +9 -0
- package/dist/cjs/globalization/interfaces/formula_builder/II18nFormulaBuilderFunctionAnd.js +2 -0
- package/dist/cjs/globalization/interfaces/formula_builder/index.d.ts +1 -0
- package/dist/cjs/globalization/interfaces/formula_builder/index.js +1 -0
- package/dist/cjs/globalization/interfaces/panel/II18nPanelErrors.d.ts +1 -0
- package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_GENERAL_OPTIONS.js +1 -1
- package/dist/cjs/globalization/labels/formula_builder/I18N_FORMULA_BUILDER.js +79 -1
- package/dist/cjs/globalization/labels/formula_builder/I18N_FORMULA_BUILDER_FUNCTION_AND.d.ts +2 -0
- package/dist/cjs/globalization/labels/formula_builder/I18N_FORMULA_BUILDER_FUNCTION_AND.js +13 -0
- package/dist/cjs/globalization/labels/formula_builder/index.d.ts +1 -0
- package/dist/cjs/globalization/labels/formula_builder/index.js +1 -0
- package/dist/cjs/globalization/labels/panel/I18N_PANEL.js +1 -0
- package/dist/filters/helpers/common/getMergeFiltersSettings.js +7 -4
- package/dist/filters/helpers/common/mergeFilters.d.ts +9 -6
- package/dist/filters/helpers/common/mergeFilters.js +82 -43
- package/dist/filters/helpers/common/resolveScopeConditions.d.ts +2 -2
- package/dist/filters/helpers/common/resolveScopeConditions.js +2 -2
- package/dist/filters/helpers/getTokensFromFilters.js +6 -0
- package/dist/filters/interfaces/IFTokensFromFiltersSettings.d.ts +2 -0
- package/dist/filters/interfaces/functions/IFFiltersMergeFilters.d.ts +21 -2
- package/dist/globalization/interfaces/formula_builder/II18nFormulaBuilderCreateModal.d.ts +1 -0
- package/dist/globalization/interfaces/formula_builder/II18nFormulaBuilderErrorMessage.d.ts +6 -0
- package/dist/globalization/interfaces/formula_builder/II18nFormulaBuilderFunctionAnd.d.ts +9 -0
- package/dist/globalization/interfaces/formula_builder/II18nFormulaBuilderFunctionAnd.js +1 -0
- package/dist/globalization/interfaces/formula_builder/index.d.ts +1 -0
- package/dist/globalization/interfaces/formula_builder/index.js +1 -0
- package/dist/globalization/interfaces/panel/II18nPanelErrors.d.ts +1 -0
- package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_GENERAL_OPTIONS.js +1 -1
- package/dist/globalization/labels/formula_builder/I18N_FORMULA_BUILDER.js +79 -1
- package/dist/globalization/labels/formula_builder/I18N_FORMULA_BUILDER_FUNCTION_AND.d.ts +2 -0
- package/dist/globalization/labels/formula_builder/I18N_FORMULA_BUILDER_FUNCTION_AND.js +10 -0
- package/dist/globalization/labels/formula_builder/index.d.ts +1 -0
- package/dist/globalization/labels/formula_builder/index.js +1 -0
- package/dist/globalization/labels/panel/I18N_PANEL.js +1 -0
- package/package.json +1 -1
|
@@ -7,11 +7,14 @@ exports.getMergeFiltersSettings = void 0;
|
|
|
7
7
|
* @returns a new MergeFilters settings object.
|
|
8
8
|
*/
|
|
9
9
|
function getMergeFiltersSettings(settings) {
|
|
10
|
-
var _a, _b, _c;
|
|
10
|
+
var _a, _b, _c, _d, _e;
|
|
11
11
|
return {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
mergeFilterDataProps: (_a = settings === null || settings === void 0 ? void 0 : settings.mergeFilterDataProps) !== null && _a !== void 0 ? _a : true,
|
|
13
|
+
mergeScopeProps: (_b = settings === null || settings === void 0 ? void 0 : settings.mergeScopeProps) !== null && _b !== void 0 ? _b : true,
|
|
14
|
+
mergeDatasetProps: (_c = settings === null || settings === void 0 ? void 0 : settings.mergeDatasetProps) !== null && _c !== void 0 ? _c : true,
|
|
15
|
+
mergeFilterProps: (_d = settings === null || settings === void 0 ? void 0 : settings.mergeFilterProps) !== null && _d !== void 0 ? _d : true,
|
|
16
|
+
overwriteValues: (_e = settings === null || settings === void 0 ? void 0 : settings.overwriteValues) !== null && _e !== void 0 ? _e : false,
|
|
17
|
+
setGroupedColumnOperator: settings === null || settings === void 0 ? void 0 : settings.setGroupedColumnOperator,
|
|
15
18
|
};
|
|
16
19
|
}
|
|
17
20
|
exports.getMergeFiltersSettings = getMergeFiltersSettings;
|
|
@@ -2,10 +2,13 @@ import { IFSData } from "../../interfaces/common/IFSData";
|
|
|
2
2
|
import { IFFiltersMergeFilters } from "../../interfaces/functions/IFFiltersMergeFilters";
|
|
3
3
|
import { IFUData } from "../../interfaces/ui/IFUData";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* @
|
|
5
|
+
* Merges the second filter data into the first one; the first Filter Data passed in the argument has the priority.
|
|
6
|
+
* Conditions:
|
|
7
|
+
* - If the info in the second filter data does not exist in the first one, the info will be added
|
|
8
|
+
* - If the info in the second filter data exists in the first one, the info will be merged
|
|
9
|
+
* @param {IFUData} filterData1 The target filter data
|
|
10
|
+
* @param {IFUData} filterData2 the filter data to be merged
|
|
11
|
+
* @param {IFFiltersMergeFilters} settings configuration of the mergeFilters
|
|
12
|
+
* @returns {IFUData} a new filter data structure
|
|
10
13
|
*/
|
|
11
|
-
export declare function mergeFilters(filterData1:
|
|
14
|
+
export declare function mergeFilters(filterData1: IFUData | IFSData, filterData2: IFUData | IFSData, settings?: IFFiltersMergeFilters): IFUData | IFSData;
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.mergeFilters = void 0;
|
|
4
4
|
const isEmpty_1 = require("../../../general/mix/isEmpty");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
5
|
+
const mergeDeep_1 = require("../../../general/object/mergeDeep");
|
|
6
|
+
const objectCopy_1 = require("../../../general/object/objectCopy");
|
|
7
7
|
const getFilterid_1 = require("./getFilterid");
|
|
8
8
|
const getMergeFiltersSettings_1 = require("./getMergeFiltersSettings");
|
|
9
9
|
const mergeValues_1 = require("./mergeValues");
|
|
@@ -11,13 +11,17 @@ const resolveDatasetConditions_1 = require("./resolveDatasetConditions");
|
|
|
11
11
|
const resolveFilterConditions_1 = require("./resolveFilterConditions");
|
|
12
12
|
const resolveScopeConditions_1 = require("./resolveScopeConditions");
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* @
|
|
14
|
+
* Merges the second filter data into the first one; the first Filter Data passed in the argument has the priority.
|
|
15
|
+
* Conditions:
|
|
16
|
+
* - If the info in the second filter data does not exist in the first one, the info will be added
|
|
17
|
+
* - If the info in the second filter data exists in the first one, the info will be merged
|
|
18
|
+
* @param {IFUData} filterData1 The target filter data
|
|
19
|
+
* @param {IFUData} filterData2 the filter data to be merged
|
|
20
|
+
* @param {IFFiltersMergeFilters} settings configuration of the mergeFilters
|
|
21
|
+
* @returns {IFUData} a new filter data structure
|
|
19
22
|
*/
|
|
20
23
|
function mergeFilters(filterData1, filterData2, settings) {
|
|
24
|
+
var _a;
|
|
21
25
|
if ((0, isEmpty_1.isEmpty)(filterData1) || (0, isEmpty_1.isEmpty)(filterData1.scopes)) {
|
|
22
26
|
if ((0, isEmpty_1.isEmpty)(filterData2) || (0, isEmpty_1.isEmpty)(filterData2.scopes))
|
|
23
27
|
return;
|
|
@@ -25,23 +29,29 @@ function mergeFilters(filterData1, filterData2, settings) {
|
|
|
25
29
|
}
|
|
26
30
|
if ((0, isEmpty_1.isEmpty)(filterData2) || (0, isEmpty_1.isEmpty)(filterData2.scopes))
|
|
27
31
|
return filterData1;
|
|
28
|
-
const
|
|
29
|
-
const
|
|
32
|
+
const newFilterData1 = (0, objectCopy_1.objectCopy)(filterData1);
|
|
33
|
+
const newFilterData2 = (0, objectCopy_1.objectCopy)(filterData2);
|
|
30
34
|
const defaultSettings = (0, getMergeFiltersSettings_1.getMergeFiltersSettings)(settings);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
const scopes = mergeScopes(newFilterData1.scopes, newFilterData2.scopes, defaultSettings);
|
|
36
|
+
if (defaultSettings.mergeFilterDataProps) {
|
|
37
|
+
return {
|
|
38
|
+
enabled: (_a = newFilterData2.enabled) !== null && _a !== void 0 ? _a : newFilterData1.enabled,
|
|
39
|
+
section: newFilterData2.section || newFilterData1.section,
|
|
40
|
+
scopes,
|
|
41
|
+
version: newFilterData2.version || newFilterData1.version,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return Object.assign(Object.assign({}, newFilterData1), { scopes });
|
|
37
45
|
}
|
|
38
46
|
exports.mergeFilters = mergeFilters;
|
|
39
47
|
/**
|
|
40
|
-
* Gets a new scope structure
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* @param
|
|
44
|
-
* @
|
|
48
|
+
* Gets a new scope array structure by merging both scope structures
|
|
49
|
+
* - If the info in the second scope does not exist in the first one, the scope will be added
|
|
50
|
+
* - If the info in the second scope exists in the first one, the scope will be merged
|
|
51
|
+
* @param {IFUScope[]} scopes1 the target scope structure
|
|
52
|
+
* @param {IFUScope[]} scopes2 the scope to be merged
|
|
53
|
+
* @param {IFFiltersMergeFilters} settings configuration of the mergeFilters
|
|
54
|
+
* @returns {IFUScope[]} a new scope array structure
|
|
45
55
|
*/
|
|
46
56
|
function mergeScopes(scopes1 = [], scopes2 = [], settings) {
|
|
47
57
|
let newScopes = scopes1.reduce((scopes, scope1) => {
|
|
@@ -51,7 +61,7 @@ function mergeScopes(scopes1 = [], scopes2 = [], settings) {
|
|
|
51
61
|
}));
|
|
52
62
|
let _scope1 = scope1;
|
|
53
63
|
if (scope2Index > -1) {
|
|
54
|
-
_scope1 = Object.assign(Object.assign({}, scopes2[scope2Index]), { datasets: mergeDatasets(scope1.datasets, scopes2[scope2Index].datasets, settings) });
|
|
64
|
+
_scope1 = Object.assign(Object.assign({}, mergeScopeProps(scope1, scopes2[scope2Index], settings)), { datasets: mergeDatasets(scope1.datasets, scopes2[scope2Index].datasets, settings) });
|
|
55
65
|
scopes2.splice(scope2Index, 1);
|
|
56
66
|
}
|
|
57
67
|
scopes.push(_scope1);
|
|
@@ -62,11 +72,13 @@ function mergeScopes(scopes1 = [], scopes2 = [], settings) {
|
|
|
62
72
|
return newScopes;
|
|
63
73
|
}
|
|
64
74
|
/**
|
|
65
|
-
* Gets a new dataset structure array by merging
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* @param
|
|
69
|
-
* @
|
|
75
|
+
* Gets a new dataset structure array by merging both dataset structures
|
|
76
|
+
* - If the info in the second dataset does not exist in the first one, the dataset will be added
|
|
77
|
+
* - If the info in the second dataset exists in the first one, the dataset will be merged
|
|
78
|
+
* @param {IFUDataset[]} datasets1 the target dataset structure
|
|
79
|
+
* @param {IFUDataset[]} datasets2 the dataset to be merged
|
|
80
|
+
* @param {IFFiltersMergeFilters} settings configuration of the mergeFilter
|
|
81
|
+
* @returns {IFUDataset[]} a new dataset structure array
|
|
70
82
|
*/
|
|
71
83
|
function mergeDatasets(datasets1 = [], datasets2 = [], settings) {
|
|
72
84
|
let newDatasets = datasets1.reduce((datasets, dataset1) => {
|
|
@@ -75,7 +87,7 @@ function mergeDatasets(datasets1 = [], datasets2 = [], settings) {
|
|
|
75
87
|
}));
|
|
76
88
|
let _dataset1 = dataset1;
|
|
77
89
|
if (dataset2Index > -1) {
|
|
78
|
-
_dataset1 = Object.assign(Object.assign({}, datasets2[dataset2Index]), { filters: mergeFilterss(dataset1.filters, datasets2[dataset2Index].filters, settings) });
|
|
90
|
+
_dataset1 = Object.assign(Object.assign({}, mergeDatasetProps(dataset1, datasets2[dataset2Index], settings)), { filters: mergeFilterss(dataset1.filters, datasets2[dataset2Index].filters, settings) });
|
|
79
91
|
datasets2.splice(dataset2Index, 1);
|
|
80
92
|
}
|
|
81
93
|
datasets.push(_dataset1);
|
|
@@ -87,10 +99,10 @@ function mergeDatasets(datasets1 = [], datasets2 = [], settings) {
|
|
|
87
99
|
}
|
|
88
100
|
/**
|
|
89
101
|
* Gets a new filter structure array by merging two filter structures
|
|
90
|
-
* @param filters1 the target filter structure
|
|
91
|
-
* @param filters2 the filter to be merged
|
|
92
|
-
* @param settings configuration of the
|
|
93
|
-
* @returns a new filter structure array
|
|
102
|
+
* @param {IFUFilter[]} filters1 the target filter structure
|
|
103
|
+
* @param {IFUFilter[]} filters2 the filter to be merged
|
|
104
|
+
* @param {IFFiltersMergeFilters} settings configuration of the mergeFilters
|
|
105
|
+
* @returns {IFUFilter[]} a new filter structure array
|
|
94
106
|
*/
|
|
95
107
|
function mergeFilterss(filters1 = [], filters2 = [], settings) {
|
|
96
108
|
let newFilters = filters1.reduce((filters, filter1) => {
|
|
@@ -103,14 +115,11 @@ function mergeFilterss(filters1 = [], filters2 = [], settings) {
|
|
|
103
115
|
}));
|
|
104
116
|
let _filter1 = filter1;
|
|
105
117
|
if (filter2Index > -1) {
|
|
106
|
-
_filter1 = Object.assign(Object.assign({}, _filter1), { values: (0, mergeValues_1.mergeValues)(_filter1, filters2[filter2Index], settings) });
|
|
107
|
-
_filter1 = mergeFilterProps(_filter1, filters2[filter2Index], settings);
|
|
118
|
+
_filter1 = Object.assign(Object.assign(Object.assign({}, _filter1), mergeFilterProps(_filter1, filters2[filter2Index], settings)), { values: (0, mergeValues_1.mergeValues)(_filter1, filters2[filter2Index], settings) });
|
|
108
119
|
filters2.splice(filter2Index, 1);
|
|
109
120
|
}
|
|
110
|
-
else {
|
|
111
|
-
_filter1 =
|
|
112
|
-
? FILTER_GROUPED_COLUMN_OPERATOR_1.FILTER_GROUPED_COLUMN_OPERATOR
|
|
113
|
-
: _filter1.operator });
|
|
121
|
+
else if (!(0, isEmpty_1.isEmpty)(settings.setGroupedColumnOperator)) {
|
|
122
|
+
_filter1.operator = settings.setGroupedColumnOperator;
|
|
114
123
|
}
|
|
115
124
|
_filter1.filterid = (0, getFilterid_1.getFilterid)(_filter1);
|
|
116
125
|
filters.push(_filter1);
|
|
@@ -121,17 +130,47 @@ function mergeFilterss(filters1 = [], filters2 = [], settings) {
|
|
|
121
130
|
return newFilters;
|
|
122
131
|
}
|
|
123
132
|
/**
|
|
124
|
-
* Gets a new
|
|
125
|
-
* @param
|
|
126
|
-
* @param
|
|
127
|
-
* @param settings configuration of the
|
|
133
|
+
* Gets a new scope structure for the configured settings
|
|
134
|
+
* @param {IFUScope} scope1 the target scope structure
|
|
135
|
+
* @param {IFUScope} scope2 the scope to be used to merge the values
|
|
136
|
+
* @param {IFFiltersMergeFilters} settings configuration of the mergeFilters
|
|
137
|
+
* @returns {IFUScope} a new filter structure with overwritted props
|
|
138
|
+
*/
|
|
139
|
+
function mergeScopeProps(scope1, scope2, settings) {
|
|
140
|
+
var _a, _b, _c;
|
|
141
|
+
let _scope1 = scope1;
|
|
142
|
+
if (settings.mergeScopeProps) {
|
|
143
|
+
_scope1 = Object.assign(Object.assign({}, scope1), { collapsed: (_a = scope2.collapsed) !== null && _a !== void 0 ? _a : scope1.collapsed, displayed: (_b = scope2.displayed) !== null && _b !== void 0 ? _b : scope1.displayed, enabled: (_c = scope2.enabled) !== null && _c !== void 0 ? _c : scope1.enabled, label: scope2.label || scope1.label, scope: scope2.scope || scope1.scope, scopeid: scope2.scopeid || scope1.scopeid });
|
|
144
|
+
}
|
|
145
|
+
return _scope1;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Gets a new dataset structure for the configured settings
|
|
149
|
+
* @param {IFUDataset} dataset1 the target dataset structure
|
|
150
|
+
* @param {IFUDataset} dataset2 the dataset to be used to merge the values
|
|
151
|
+
* @param {IFFiltersMergeFilters} settings configuration of the mergeFilters
|
|
152
|
+
* @returns {IFUDataset} a new filter structure with overwritted props
|
|
153
|
+
*/
|
|
154
|
+
function mergeDatasetProps(dataset1, dataset2, settings) {
|
|
155
|
+
var _a, _b, _c;
|
|
156
|
+
let _dataset1 = dataset1;
|
|
157
|
+
if (settings.mergeDatasetProps) {
|
|
158
|
+
_dataset1 = Object.assign(Object.assign({}, dataset1), { collapsed: (_a = dataset2.collapsed) !== null && _a !== void 0 ? _a : dataset1.collapsed, displayed: (_b = dataset2.displayed) !== null && _b !== void 0 ? _b : dataset1.displayed, enabled: (_c = dataset2.enabled) !== null && _c !== void 0 ? _c : dataset1.enabled, label: dataset2.label || dataset1.label, qrveyid: dataset2.qrveyid || dataset1.qrveyid });
|
|
159
|
+
}
|
|
160
|
+
return _dataset1;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Gets a new filter structure for the configured settings
|
|
164
|
+
* @param {IFUFilter} filter1 the target filter structure
|
|
165
|
+
* @param {IFUFilter} filter2 the filter to be used to merge the values
|
|
166
|
+
* @param {IFFiltersMergeFilters} settings configuration of the mergeFilters
|
|
128
167
|
* @returns a new filter structure with overwritted props
|
|
129
168
|
*/
|
|
130
169
|
function mergeFilterProps(filter1, filter2, settings) {
|
|
131
170
|
var _a, _b, _c;
|
|
132
171
|
let _filter1 = filter1;
|
|
133
|
-
if (settings.
|
|
134
|
-
_filter1 = Object.assign(Object.assign({}, filter1), { collapsed: (_a = filter2.collapsed) !== null && _a !== void 0 ? _a : filter1.collapsed, displayed: (_b = filter2.displayed) !== null && _b !== void 0 ? _b : filter1.displayed, dateSection: filter2.dateSection, extras: filter2.extras, enabled: (_c = filter2.enabled) !== null && _c !== void 0 ? _c : filter1.enabled,
|
|
172
|
+
if (settings.mergeFilterProps) {
|
|
173
|
+
_filter1 = Object.assign(Object.assign({}, filter1), { collapsed: (_a = filter2.collapsed) !== null && _a !== void 0 ? _a : filter1.collapsed, column: (0, mergeDeep_1.mergeDeep)(filter2.column, filter1.column), displayed: (_b = filter2.displayed) !== null && _b !== void 0 ? _b : filter1.displayed, dateSection: filter2.dateSection, extras: filter2.extras, enabled: (_c = filter2.enabled) !== null && _c !== void 0 ? _c : filter1.enabled, lookupDisplayIndex: filter2.lookupDisplayIndex, nullValues: filter2.nullValues, property: filter2.property || filter1.property, operator: filter2.operator || filter1.operator, selectAll: filter2.selectAll, validator: filter2.validator || filter1.validator });
|
|
135
174
|
}
|
|
136
175
|
return _filter1;
|
|
137
176
|
}
|
|
@@ -4,8 +4,8 @@ import { IFSScope } from "../../interfaces/common/IFSScope";
|
|
|
4
4
|
* Resolves the conditions by given params
|
|
5
5
|
* @param filter The filter scope structure
|
|
6
6
|
* @param params given parameters to validate the filter
|
|
7
|
-
* @param letPassUndefinedProperties Flag to avoid applying the condition when the
|
|
8
|
-
* @param letPassUndefinedParams Flag to avoid applying the condition when the
|
|
7
|
+
* @param letPassUndefinedProperties Flag to avoid applying the condition when the properties of the properties are undefined
|
|
8
|
+
* @param letPassUndefinedParams Flag to avoid applying the condition when the properties of the params are explicit undefined.
|
|
9
9
|
* @returns true: the condition is satisfied
|
|
10
10
|
*/
|
|
11
11
|
export declare function resolveScopeConditions(scope: IFSScope, params: IFSParamsToGetFilter, letPassUndefinedProperties?: boolean, letPassUndefinedParams?: boolean): boolean;
|
|
@@ -7,8 +7,8 @@ const hasProperty_1 = require("../../../general/object/hasProperty");
|
|
|
7
7
|
* Resolves the conditions by given params
|
|
8
8
|
* @param filter The filter scope structure
|
|
9
9
|
* @param params given parameters to validate the filter
|
|
10
|
-
* @param letPassUndefinedProperties Flag to avoid applying the condition when the
|
|
11
|
-
* @param letPassUndefinedParams Flag to avoid applying the condition when the
|
|
10
|
+
* @param letPassUndefinedProperties Flag to avoid applying the condition when the properties of the properties are undefined
|
|
11
|
+
* @param letPassUndefinedParams Flag to avoid applying the condition when the properties of the params are explicit undefined.
|
|
12
12
|
* @returns true: the condition is satisfied
|
|
13
13
|
*/
|
|
14
14
|
function resolveScopeConditions(scope, params, letPassUndefinedProperties = false, letPassUndefinedParams = true) {
|
|
@@ -6,6 +6,7 @@ const getFilterPropertyLabel_1 = require("./ui/getFilterPropertyLabel");
|
|
|
6
6
|
const FILTER_TOKENS_STRUCTURE_TYPE_1 = require("../constants/common/FILTER_TOKENS_STRUCTURE_TYPE");
|
|
7
7
|
const isEmpty_1 = require("../../general/mix/isEmpty");
|
|
8
8
|
const constants_1 = require("../constants");
|
|
9
|
+
const transformFilterValues_1 = require("./ui/transformFilterValues");
|
|
9
10
|
/**
|
|
10
11
|
* It takes a filter object and returns an array of tokens that represent the filter
|
|
11
12
|
* @param {IFUData} filters - The filters object.
|
|
@@ -20,6 +21,10 @@ function getTokensFromFilters(filters, options) {
|
|
|
20
21
|
translate: i18nService.translate.bind(i18nService),
|
|
21
22
|
addEnableds: true,
|
|
22
23
|
};
|
|
24
|
+
const settingsTransform = {
|
|
25
|
+
i18n: options === null || options === void 0 ? void 0 : options.i18n,
|
|
26
|
+
translate: i18nService.translate.bind(i18nService),
|
|
27
|
+
};
|
|
23
28
|
const getValue = (valueItem) => {
|
|
24
29
|
var _a, _b;
|
|
25
30
|
if (valueItem.value) {
|
|
@@ -59,6 +64,7 @@ function getTokensFromFilters(filters, options) {
|
|
|
59
64
|
}
|
|
60
65
|
continue;
|
|
61
66
|
}
|
|
67
|
+
filter.values = (0, transformFilterValues_1.transformFilterValues)(filter, settingsTransform);
|
|
62
68
|
const values = (0, getUIValues_1.getUIValues)(filter, settings);
|
|
63
69
|
if (!thereIsFiltersWithValues)
|
|
64
70
|
thereIsFiltersWithValues = true;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { II18nConfig } from "../../globalization";
|
|
1
2
|
import { I18nService } from "../../globalization/service/i18nextBuilder";
|
|
2
3
|
export interface IFTokensFromFiltersSettings {
|
|
3
4
|
showScope?: boolean;
|
|
4
5
|
showDatabaseName?: boolean;
|
|
5
6
|
showChartName?: boolean;
|
|
6
7
|
i18nService: I18nService;
|
|
8
|
+
i18n?: II18nConfig;
|
|
7
9
|
}
|
|
@@ -1,8 +1,27 @@
|
|
|
1
|
+
import { IFOperator } from "../IFOperator";
|
|
1
2
|
import { IFFiltersMergeValues } from "./IFFiltersMergeValues";
|
|
2
3
|
/**
|
|
3
4
|
* Structure for MergeFilters property settings
|
|
4
5
|
*/
|
|
5
6
|
export interface IFFiltersMergeFilters extends IFFiltersMergeValues {
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Flag to merge second filter data props to first one
|
|
9
|
+
*/
|
|
10
|
+
mergeFilterDataProps?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Flag to merge second scope props to first one
|
|
13
|
+
*/
|
|
14
|
+
mergeScopeProps?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Flag to merge second dataset props to first one
|
|
17
|
+
*/
|
|
18
|
+
mergeDatasetProps?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Flag to merge second filter props to first one
|
|
21
|
+
*/
|
|
22
|
+
mergeFilterProps?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Whet setting, the operator is overwritten on new added filters
|
|
25
|
+
*/
|
|
26
|
+
setGroupedColumnOperator?: IFOperator;
|
|
8
27
|
}
|
package/dist/cjs/globalization/interfaces/formula_builder/II18nFormulaBuilderErrorMessage.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface II18nFormulaBuilderErrorMessage {
|
|
|
13
13
|
UNKNOWN: string;
|
|
14
14
|
TOO_MANY_ARGUMENTS: string;
|
|
15
15
|
DATE_DIF_UNIT_PARAM: string;
|
|
16
|
+
INVALID_ALLOW_VALUE: string;
|
|
16
17
|
UNKNOWN_EXPRESSION: string;
|
|
17
18
|
NOT_ALLOWED_EXPRESSION: string;
|
|
18
19
|
OUT_OF_RANGE: string;
|
|
@@ -23,4 +24,9 @@ export interface II18nFormulaBuilderErrorMessage {
|
|
|
23
24
|
MISSING_COLUMN_EXPRESSION: string;
|
|
24
25
|
NO_COLUMN_EXPRESSION: string;
|
|
25
26
|
ARGUMENTS_DATATYPE_ERROR: string;
|
|
27
|
+
FUNCTION_ARGUMENTS_MISMATCH: string;
|
|
28
|
+
NOT_ALLOWED_OPERATION: string;
|
|
29
|
+
NOT_ALLOWED_OPERATION_DIFFERENT_TYPES: string;
|
|
30
|
+
NOT_ALLOWED_OPERATION_MISSING_OPERATOR: string;
|
|
31
|
+
GREATER_THAN: string;
|
|
26
32
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { II18nFormulaBuilderFunction } from "./II18nFormulaBuilderFunction";
|
|
2
|
+
export interface II18nFormulaBuilderFunctionAnd extends II18nFormulaBuilderFunction {
|
|
3
|
+
param_logicalTest1_name: string;
|
|
4
|
+
param_logicalTest1_description: string;
|
|
5
|
+
param_logicalTest2_name: string;
|
|
6
|
+
param_logicalTest2_description: string;
|
|
7
|
+
param_logicalTestn_name: string;
|
|
8
|
+
param_logicalTestn_description: string;
|
|
9
|
+
}
|
|
@@ -57,3 +57,4 @@ export * from "./II18nFormulaBuilderFunctionAggMax";
|
|
|
57
57
|
export * from "./II18nFormulaBuilderFunctionAggDistinctcount";
|
|
58
58
|
export * from "./II18nFormulaBuilderFunctionAggCount";
|
|
59
59
|
export * from "./II18nFormulaBuilderErrorMessage";
|
|
60
|
+
export * from "./II18nFormulaBuilderFunctionAnd";
|
|
@@ -73,3 +73,4 @@ __exportStar(require("./II18nFormulaBuilderFunctionAggMax"), exports);
|
|
|
73
73
|
__exportStar(require("./II18nFormulaBuilderFunctionAggDistinctcount"), exports);
|
|
74
74
|
__exportStar(require("./II18nFormulaBuilderFunctionAggCount"), exports);
|
|
75
75
|
__exportStar(require("./II18nFormulaBuilderErrorMessage"), exports);
|
|
76
|
+
__exportStar(require("./II18nFormulaBuilderFunctionAnd"), exports);
|
|
@@ -35,7 +35,7 @@ exports.I18N_CHART_BUILDER_GENERAL_OPTIONS = {
|
|
|
35
35
|
select_column_placeholder: "Select column",
|
|
36
36
|
display_values: "Display Values As",
|
|
37
37
|
display_values_placeholder: "Select aggregate",
|
|
38
|
-
display_values_multiples: "When
|
|
38
|
+
display_values_multiples: "When multiple values display",
|
|
39
39
|
display_values_multiples_placeholder: "Select display Type",
|
|
40
40
|
values_format: "Values Format",
|
|
41
41
|
remove: "Remove",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.I18N_FORMULA_BUILDER = void 0;
|
|
4
|
+
const I18N_FORMULA_BUILDER_FUNCTION_AND_1 = require("./I18N_FORMULA_BUILDER_FUNCTION_AND");
|
|
4
5
|
exports.I18N_FORMULA_BUILDER = {
|
|
5
6
|
list_modal: {
|
|
6
7
|
create_button: "Create Formula",
|
|
@@ -82,6 +83,7 @@ exports.I18N_FORMULA_BUILDER = {
|
|
|
82
83
|
output: "Output",
|
|
83
84
|
output_case: "Test Case",
|
|
84
85
|
output_result: "Result",
|
|
86
|
+
output_invalid_column: "Invalid column name.",
|
|
85
87
|
randomize_data: "Randomize data",
|
|
86
88
|
randomize_data_tooltip: "Refresh the testing data with random data from the dataset.",
|
|
87
89
|
console_output_title: "Console Output",
|
|
@@ -180,6 +182,76 @@ exports.I18N_FORMULA_BUILDER = {
|
|
|
180
182
|
param_replacement_name: "replacement",
|
|
181
183
|
param_replacement_description: "The value that will replace the null value. It must have the same data type as the column.",
|
|
182
184
|
},
|
|
185
|
+
dateadd: {
|
|
186
|
+
description: "Adds a specific date part value to a given date.",
|
|
187
|
+
function_placeholder: 'DATEADD(date_value1, "date_part", interval_value)',
|
|
188
|
+
param_date_value1_name: "date_value1",
|
|
189
|
+
param_date_value1_description: 'Date value for which you will get the weekday. It can be a column or a datetime value entered with a format of either "MM/DD/YYYY" or "MM/DD/YYYY HH:MM:SS".',
|
|
190
|
+
param_date_part_name: "date_part",
|
|
191
|
+
param_date_part_description: 'Date part allows: "Y" for years, "M" for months, "D" for days, "H" for hours, "MI" for minutes and "S" for seconds.',
|
|
192
|
+
param_interval_value_name: "interval_value",
|
|
193
|
+
param_interval_value_description: "Number of units of the selected date part that you want to add to the given date.",
|
|
194
|
+
},
|
|
195
|
+
dayofweek: {
|
|
196
|
+
description: "Returns a number or string representative of the weekday for a given date.",
|
|
197
|
+
function_placeholder: "DAYOFWEEK(date_value1, day_name)",
|
|
198
|
+
param_date_value1_name: "date_value1",
|
|
199
|
+
param_date_value1_description: 'Date value to which you will add the date part value. It can be a column or a datetime value entered with a format of either "MM/DD/YYYY" or "MM/DD/YYYY HH:MM:SS".',
|
|
200
|
+
param_day_name_name: "day_name",
|
|
201
|
+
param_day_name_description: 'If set equal to "Day" it will return the name of the day of the week, if set to "D" it will return a number from 1 to 7; if not set, it will also return a number from 1 to 7. 1=Sunday, 2=Monday, 3=Tuesday, 4=Wednesday, 5=Thursday, 6=Friday, 7=Saturday.',
|
|
202
|
+
},
|
|
203
|
+
trim: {
|
|
204
|
+
description: "Removes all leading and trailing spaces from text.",
|
|
205
|
+
function_placeholder: "TRIM(string1)",
|
|
206
|
+
param_string1_name: "string1",
|
|
207
|
+
param_string1_description: "Text to trim.",
|
|
208
|
+
},
|
|
209
|
+
concatenate: {
|
|
210
|
+
description: "Joins two or more strings into one string.",
|
|
211
|
+
function_placeholder: "CONCATENATE(string1,string2,...stringn)",
|
|
212
|
+
param_string1_name: "string1 (required)",
|
|
213
|
+
param_string1_description: "The first text to join.",
|
|
214
|
+
param_string2_name: "string2 (required)",
|
|
215
|
+
param_string2_description: "The second text to join.",
|
|
216
|
+
param_stringn_name: "stringn (optional)",
|
|
217
|
+
param_stringn_description: "Additional text items to join.",
|
|
218
|
+
},
|
|
219
|
+
left: {
|
|
220
|
+
description: "Returns the first character or characters in a text string, based on the number of characters you specify.",
|
|
221
|
+
function_placeholder: "LEFT(string1, num_chars)",
|
|
222
|
+
param_string1_name: "string1 (required)",
|
|
223
|
+
param_string1_description: "The text with characters to extract.",
|
|
224
|
+
param_num_chars_name: "num_chars (optional)",
|
|
225
|
+
param_num_chars_description: "Number of characters you want to extract. It has to be an integer greater than or equal to zero. If not defined, LEFT will return one character.",
|
|
226
|
+
},
|
|
227
|
+
right: {
|
|
228
|
+
description: "Returns the last character or characters in a text string, based on the number of characters you specify.",
|
|
229
|
+
function_placeholder: "RIGHT(string1, num_chars)",
|
|
230
|
+
param_string1_name: "string1 (required)",
|
|
231
|
+
param_string1_description: "The text with characters to extract.",
|
|
232
|
+
param_num_chars_name: "num_chars (optional)",
|
|
233
|
+
param_num_chars_description: "Number of characters you want to extract. It has to be an integer greater than or equal to zero. If not defined, RIGHT will return one character.",
|
|
234
|
+
},
|
|
235
|
+
upper: {
|
|
236
|
+
description: "Converts all the characters in a string to uppercase.",
|
|
237
|
+
function_placeholder: "UPPER(string1)",
|
|
238
|
+
param_string1_name: "string1",
|
|
239
|
+
param_string1_description: "The text you want converted to uppercase.",
|
|
240
|
+
},
|
|
241
|
+
lower: {
|
|
242
|
+
description: "Converts all the characters in a string to lowercase.",
|
|
243
|
+
function_placeholder: "LOWER(string1)",
|
|
244
|
+
param_string1_name: "string1",
|
|
245
|
+
param_string1_description: "The text you want converted to lowercase.",
|
|
246
|
+
},
|
|
247
|
+
proper: {
|
|
248
|
+
description: "Capitalizes the first letter in a string and any other letters in the text placed next to any character other than a letter or number. Converts the rest of the letters to lowercase.",
|
|
249
|
+
function_placeholder: "PROPER(string1)",
|
|
250
|
+
param_string1_name: "string1",
|
|
251
|
+
param_string1_description: "The text you want converted.",
|
|
252
|
+
},
|
|
253
|
+
and: Object.assign({}, I18N_FORMULA_BUILDER_FUNCTION_AND_1.I18N_FORMULA_BUILDER_FUNCTION_AND),
|
|
254
|
+
or: Object.assign(Object.assign({}, I18N_FORMULA_BUILDER_FUNCTION_AND_1.I18N_FORMULA_BUILDER_FUNCTION_AND), { description: "Evaluates different logical tests and returns false if all logical tests are false and true if at least one of the logical tests returns true.", function_placeholder: "OR(logicalTest1,logicalTest2,...logicalTestn)" }),
|
|
183
255
|
},
|
|
184
256
|
editor: {
|
|
185
257
|
error_messages: {
|
|
@@ -196,7 +268,7 @@ exports.I18N_FORMULA_BUILDER = {
|
|
|
196
268
|
UNKNOWN_FUNCTION: "Unknown function",
|
|
197
269
|
UNKNOWN: "Unknown error",
|
|
198
270
|
TOO_MANY_ARGUMENTS: "Too many arguments",
|
|
199
|
-
DATE_DIF_UNIT_PARAM:
|
|
271
|
+
DATE_DIF_UNIT_PARAM: "Argument {{i18n.function.argument.position}} has to be {{i18n.function.argument.datedif_unit}}",
|
|
200
272
|
UNKNOWN_EXPRESSION: "Unknown expression",
|
|
201
273
|
NOT_ALLOWED_EXPRESSION: "Expression not allowed",
|
|
202
274
|
OUT_OF_RANGE: "Expression out of range",
|
|
@@ -207,6 +279,12 @@ exports.I18N_FORMULA_BUILDER = {
|
|
|
207
279
|
MISSING_COLUMN_EXPRESSION: "Argument should be a column.",
|
|
208
280
|
NO_COLUMN_EXPRESSION: "Argument cannot be a column.",
|
|
209
281
|
ARGUMENTS_DATATYPE_ERROR: "Arguments should have the same data type.",
|
|
282
|
+
FUNCTION_ARGUMENTS_MISMATCH: "{{i18n.function.name}} function is expecting {{i18n.function.input}} and is receiving {{i18n.function.received}}",
|
|
283
|
+
NOT_ALLOWED_OPERATION: "Expression not allowed. Allowed operators between {{i18n.function.expression.types}}: {{i18n.function.expression.operators}}",
|
|
284
|
+
NOT_ALLOWED_OPERATION_DIFFERENT_TYPES: "Expression not allowed {{i18n.function.expression.value}}",
|
|
285
|
+
NOT_ALLOWED_OPERATION_MISSING_OPERATOR: "Expression not allowed. Missing operator",
|
|
286
|
+
GREATER_THAN: "Argument {{i18n.function.argument.position}} has to be greater or equal than {{i18n.function.argument.greater_than}}",
|
|
287
|
+
INVALID_ALLOW_VALUE: "Argument {{i18n.function.argument.position}} has to be {{i18n.function.argument.allow_value}}",
|
|
210
288
|
},
|
|
211
289
|
},
|
|
212
290
|
},
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.I18N_FORMULA_BUILDER_FUNCTION_AND = void 0;
|
|
4
|
+
exports.I18N_FORMULA_BUILDER_FUNCTION_AND = {
|
|
5
|
+
description: "Evaluates different logical tests and returns true if all logical tests are true and false if at least one of the logical tests returns false. ",
|
|
6
|
+
function_placeholder: "AND(logicalTest1,logicalTest2,...logicalTestn)",
|
|
7
|
+
param_logicalTest1_name: "logicalTest1 (required)",
|
|
8
|
+
param_logicalTest1_description: "Logical test between two values, it should include logical operators such as =, >, <, >=, <= or <>. This argument can also be anything that returns a boolean value.",
|
|
9
|
+
param_logicalTest2_name: "logicalTest2 (required)",
|
|
10
|
+
param_logicalTest2_description: "Logical test between two values, it should include logical operators such as =, >, <, >=, <= or <>. This argument can also be anything that returns a boolean value.",
|
|
11
|
+
param_logicalTestn_name: "logicalTestn (optional)",
|
|
12
|
+
param_logicalTestn_description: "Logical test between two values, it should include logical operators such as =, >, <, >=, <= or <>. This argument can also be anything that returns a boolean value.",
|
|
13
|
+
};
|
|
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./I18N_FORMULA_BUILDER"), exports);
|
|
18
|
+
__exportStar(require("./I18N_FORMULA_BUILDER_FUNCTION_AND"), exports);
|
|
@@ -16,6 +16,7 @@ exports.I18N_PANEL = {
|
|
|
16
16
|
continuous_time_limit: "The combination of data used in this chart exceeds the maximum number of data points that the system can return.<br><br>We recommend you try:<br>• Using a <i>Time Grouping</i> that returns less data<br>• Using another chart visualization<br>• Switching to Discrete Values",
|
|
17
17
|
drilldown_unavailable: "No data found with drilldown.",
|
|
18
18
|
invalid_data_for_chart: "No valid data for this chart.",
|
|
19
|
+
invalid_data_log_scale: "The data contains 0 or negative values and cannot be plotted in logarithmic scale.",
|
|
19
20
|
longer_available_panel: "This panel is no longer available.",
|
|
20
21
|
long_text: "long-text",
|
|
21
22
|
max_buckets_limit: "The combination of data used in this chart exceeds the maximum number of aggregation buckets allowed in a single response.<br><br>To fix this issue, try the following:<br>• <i>Filter</i> your data<br>• Apply a <i>Date Grouping</i> that returns less data<br>• Use another chart visualization",
|
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
* @returns a new MergeFilters settings object.
|
|
5
5
|
*/
|
|
6
6
|
export function getMergeFiltersSettings(settings) {
|
|
7
|
-
var _a, _b, _c;
|
|
7
|
+
var _a, _b, _c, _d, _e;
|
|
8
8
|
return {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
mergeFilterDataProps: (_a = settings === null || settings === void 0 ? void 0 : settings.mergeFilterDataProps) !== null && _a !== void 0 ? _a : true,
|
|
10
|
+
mergeScopeProps: (_b = settings === null || settings === void 0 ? void 0 : settings.mergeScopeProps) !== null && _b !== void 0 ? _b : true,
|
|
11
|
+
mergeDatasetProps: (_c = settings === null || settings === void 0 ? void 0 : settings.mergeDatasetProps) !== null && _c !== void 0 ? _c : true,
|
|
12
|
+
mergeFilterProps: (_d = settings === null || settings === void 0 ? void 0 : settings.mergeFilterProps) !== null && _d !== void 0 ? _d : true,
|
|
13
|
+
overwriteValues: (_e = settings === null || settings === void 0 ? void 0 : settings.overwriteValues) !== null && _e !== void 0 ? _e : false,
|
|
14
|
+
setGroupedColumnOperator: settings === null || settings === void 0 ? void 0 : settings.setGroupedColumnOperator,
|
|
12
15
|
};
|
|
13
16
|
}
|
|
@@ -2,10 +2,13 @@ import { IFSData } from "../../interfaces/common/IFSData";
|
|
|
2
2
|
import { IFFiltersMergeFilters } from "../../interfaces/functions/IFFiltersMergeFilters";
|
|
3
3
|
import { IFUData } from "../../interfaces/ui/IFUData";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* @
|
|
5
|
+
* Merges the second filter data into the first one; the first Filter Data passed in the argument has the priority.
|
|
6
|
+
* Conditions:
|
|
7
|
+
* - If the info in the second filter data does not exist in the first one, the info will be added
|
|
8
|
+
* - If the info in the second filter data exists in the first one, the info will be merged
|
|
9
|
+
* @param {IFUData} filterData1 The target filter data
|
|
10
|
+
* @param {IFUData} filterData2 the filter data to be merged
|
|
11
|
+
* @param {IFFiltersMergeFilters} settings configuration of the mergeFilters
|
|
12
|
+
* @returns {IFUData} a new filter data structure
|
|
10
13
|
*/
|
|
11
|
-
export declare function mergeFilters(filterData1:
|
|
14
|
+
export declare function mergeFilters(filterData1: IFUData | IFSData, filterData2: IFUData | IFSData, settings?: IFFiltersMergeFilters): IFUData | IFSData;
|