@qrvey/utils 1.4.0-3 → 1.4.0-6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/column_format/helpers/defineTableChartFormat.js +3 -3
- package/dist/cjs/column_format/helpers/defineXYChartFormat.js +30 -20
- package/dist/cjs/columns/helpers/getDatasetColumn.js +1 -3
- package/dist/cjs/dates/adapters/mdyDateToDate.d.ts +1 -1
- package/dist/cjs/dates/adapters/mdyDateToDate.js +12 -5
- package/dist/cjs/dates/adapters/monthYearToDate.d.ts +1 -1
- package/dist/cjs/dates/adapters/monthYearToDate.js +8 -7
- package/dist/cjs/dates/adapters/quarterYearToDate.d.ts +1 -1
- package/dist/cjs/dates/adapters/quarterYearToDate.js +8 -7
- package/dist/cjs/dates/adapters/weekYearToDate.d.ts +1 -1
- package/dist/cjs/dates/adapters/weekYearToDate.js +20 -19
- package/dist/cjs/dates/adapters/yearToDate.d.ts +1 -1
- package/dist/cjs/dates/adapters/yearToDate.js +7 -6
- package/dist/cjs/dates/constants/DATE_FORMAT_BY_PROPERTY.d.ts +16 -0
- package/dist/cjs/dates/constants/DATE_FORMAT_BY_PROPERTY.js +21 -0
- package/dist/cjs/dates/helpers/getDateFormatByProperty.js +2 -31
- package/dist/cjs/dates/helpers/getDateFormatRegularExpressionInArray.d.ts +2 -1
- package/dist/cjs/dates/helpers/getDateFormatRegularExpressionInArray.js +2 -7
- package/dist/cjs/dates/helpers/getDatePickerPickLevel.js +7 -1
- package/dist/cjs/dates/helpers/getSeparatorByDateFormat.js +1 -18
- package/dist/cjs/dates/helpers/index.d.ts +0 -1
- package/dist/cjs/dates/helpers/index.js +0 -1
- package/dist/cjs/dates/helpers/validateDate.js +14 -3
- package/dist/cjs/dates/range/getDateRange.js +15 -25
- package/dist/cjs/dates/relative/RelativeStatementAdapter.js +15 -10
- package/dist/cjs/dates/relative/helpers/getStatementCase.js +10 -7
- package/dist/cjs/filters/adapters/adaptDateGroupingProperty.js +9 -13
- package/dist/cjs/filters/adapters/logicToUI.js +1 -2
- package/dist/cjs/filters/adapters/transformFilters.js +1 -3
- package/dist/cjs/filters/helpers/OLD_getAggFilters.js +1 -3
- package/dist/cjs/filters/helpers/backend/buildFilters.js +5 -2
- package/dist/cjs/filters/helpers/backend/getBackendGroupValue.js +1 -2
- package/dist/cjs/filters/helpers/backend/getBackendValues.js +53 -31
- package/dist/cjs/filters/helpers/backend/getLogicByDatasetsColumns.d.ts +2 -2
- package/dist/cjs/filters/helpers/backend/getLogicByDatasetsColumns.js +57 -20
- package/dist/cjs/filters/helpers/common/excludeFiltersByParams.js +1 -2
- package/dist/cjs/filters/helpers/common/getFiltersByDatasetsColumns.js +28 -18
- package/dist/cjs/filters/helpers/common/getFiltersByParams.js +1 -2
- package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.js +0 -1
- package/dist/cjs/filters/helpers/getScopesByHierarchy.js +7 -5
- package/dist/cjs/filters/helpers/ui/getUIValues.js +76 -85
- package/dist/cjs/filters/interfaces/functions/IFFGetLogicByDatasetsColumns.d.ts +3 -0
- package/dist/cjs/filters/services/UChartApi.d.ts +17 -3
- package/dist/cjs/filters/services/UChartApi.js +49 -26
- package/dist/cjs/filters/services/UChartPaginationApi.d.ts +17 -3
- package/dist/cjs/filters/services/UChartPaginationApi.js +45 -24
- package/dist/cjs/format/localization.js +1 -1
- package/dist/cjs/general/mix/isNaNV2.d.ts +10 -3
- package/dist/cjs/general/mix/isNaNV2.js +11 -4
- package/dist/cjs/general/string/parseUrl.js +2 -2
- package/dist/cjs/globalization/helpers/getI18nCalendar.js +10 -7
- package/dist/cjs/globalization/interfaces/formula_builder/II18nFormulaBuilderListModal.d.ts +2 -1
- package/dist/cjs/globalization/labels/formula_builder/I18N_FORMULA_BUILDER.js +2 -1
- package/dist/cjs/globalization/service/i18nextBuilder.js +1 -3
- package/dist/cjs/globalization/service/initI18n.js +1 -12
- package/dist/cjs/qrvey/helpers/getDataAnswersByColumn.js +6 -5
- package/dist/cjs/qrvey/helpers/getExpressionAnswers.js +15 -11
- package/dist/cjs/tokens/isTokenLabel.js +1 -2
- package/dist/column_format/helpers/defineTableChartFormat.js +3 -3
- package/dist/column_format/helpers/defineXYChartFormat.js +15 -5
- package/dist/columns/helpers/getDatasetColumn.js +1 -3
- package/dist/dates/adapters/mdyDateToDate.d.ts +1 -1
- package/dist/dates/adapters/mdyDateToDate.js +12 -5
- package/dist/dates/adapters/monthYearToDate.d.ts +1 -1
- package/dist/dates/adapters/monthYearToDate.js +8 -7
- package/dist/dates/adapters/quarterYearToDate.d.ts +1 -1
- package/dist/dates/adapters/quarterYearToDate.js +8 -7
- package/dist/dates/adapters/weekYearToDate.d.ts +1 -1
- package/dist/dates/adapters/weekYearToDate.js +20 -19
- package/dist/dates/adapters/yearToDate.d.ts +1 -1
- package/dist/dates/adapters/yearToDate.js +7 -6
- package/dist/dates/constants/DATE_FORMAT_BY_PROPERTY.d.ts +16 -0
- package/dist/dates/constants/DATE_FORMAT_BY_PROPERTY.js +18 -0
- package/dist/dates/helpers/getDateFormatByProperty.js +2 -31
- package/dist/dates/helpers/getDateFormatRegularExpressionInArray.d.ts +2 -1
- package/dist/dates/helpers/getDateFormatRegularExpressionInArray.js +2 -7
- package/dist/dates/helpers/getDatePickerPickLevel.js +7 -1
- package/dist/dates/helpers/getSeparatorByDateFormat.js +1 -18
- package/dist/dates/helpers/index.d.ts +0 -1
- package/dist/dates/helpers/index.js +0 -1
- package/dist/dates/helpers/validateDate.js +14 -3
- package/dist/dates/range/getDateRange.js +15 -25
- package/dist/dates/relative/RelativeStatementAdapter.js +15 -10
- package/dist/dates/relative/helpers/getStatementCase.js +10 -7
- package/dist/filters/adapters/adaptDateGroupingProperty.js +9 -13
- package/dist/filters/adapters/logicToUI.js +1 -2
- package/dist/filters/adapters/transformFilters.js +1 -3
- package/dist/filters/helpers/OLD_getAggFilters.js +1 -3
- package/dist/filters/helpers/backend/buildFilters.js +5 -2
- package/dist/filters/helpers/backend/getBackendGroupValue.js +1 -2
- package/dist/filters/helpers/backend/getBackendValues.js +53 -31
- package/dist/filters/helpers/backend/getLogicByDatasetsColumns.d.ts +2 -2
- package/dist/filters/helpers/backend/getLogicByDatasetsColumns.js +56 -19
- package/dist/filters/helpers/common/excludeFiltersByParams.js +1 -2
- package/dist/filters/helpers/common/getFiltersByDatasetsColumns.js +28 -18
- package/dist/filters/helpers/common/getFiltersByParams.js +1 -2
- package/dist/filters/helpers/getAggFiltersFromFilterData.js +0 -1
- package/dist/filters/helpers/getScopesByHierarchy.js +7 -5
- package/dist/filters/helpers/ui/getUIValues.js +76 -85
- package/dist/filters/interfaces/functions/IFFGetLogicByDatasetsColumns.d.ts +3 -0
- package/dist/filters/services/UChartApi.d.ts +17 -3
- package/dist/filters/services/UChartApi.js +49 -26
- package/dist/filters/services/UChartPaginationApi.d.ts +17 -3
- package/dist/filters/services/UChartPaginationApi.js +45 -24
- package/dist/format/localization.js +1 -1
- package/dist/general/mix/isNaNV2.d.ts +10 -3
- package/dist/general/mix/isNaNV2.js +11 -4
- package/dist/general/string/parseUrl.js +2 -2
- package/dist/globalization/helpers/getI18nCalendar.js +10 -7
- package/dist/globalization/interfaces/formula_builder/II18nFormulaBuilderListModal.d.ts +2 -1
- package/dist/globalization/labels/formula_builder/I18N_FORMULA_BUILDER.js +2 -1
- package/dist/globalization/service/i18nextBuilder.js +1 -3
- package/dist/globalization/service/initI18n.js +1 -12
- package/dist/qrvey/helpers/getDataAnswersByColumn.js +6 -5
- package/dist/qrvey/helpers/getExpressionAnswers.js +14 -10
- package/dist/tokens/isTokenLabel.js +1 -2
- package/package.json +4 -4
- package/dist/cjs/dates/helpers/validateDateByDateFormat.d.ts +0 -8
- package/dist/cjs/dates/helpers/validateDateByDateFormat.js +0 -27
- package/dist/dates/helpers/validateDateByDateFormat.d.ts +0 -8
- package/dist/dates/helpers/validateDateByDateFormat.js +0 -23
|
@@ -54,11 +54,13 @@ class RelativeStatementAdapter {
|
|
|
54
54
|
if (typeof this.statement === "string")
|
|
55
55
|
return RelativeStatementAdapter.replaceNowToken(this.statement, this.now);
|
|
56
56
|
const value = this._statementToRange();
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
let path = "";
|
|
58
|
+
if (this.cursor === RELATIVE_CURSOR_1.RELATIVE_CURSOR.LAST) {
|
|
59
|
+
path = "gte";
|
|
60
|
+
}
|
|
61
|
+
else if (this.cursor === RELATIVE_CURSOR_1.RELATIVE_CURSOR.NEXT) {
|
|
62
|
+
path = "lte";
|
|
63
|
+
}
|
|
62
64
|
return (0, get_1._get)(value, path, new Date());
|
|
63
65
|
}
|
|
64
66
|
/**
|
|
@@ -194,11 +196,14 @@ class RelativeStatementAdapter {
|
|
|
194
196
|
const startOrEndOf = resolveAsCalendar
|
|
195
197
|
? loweredUnit
|
|
196
198
|
: DATE_GROUPING_PROPERTY_1.DATE_GROUPING_PROPERTY.DAY;
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
199
|
+
let absoluteDate = date;
|
|
200
|
+
if (setTo === COMMON_1.COMMON_CONSTANTS.START) {
|
|
201
|
+
absoluteDate = date.startOf(startOrEndOf);
|
|
202
|
+
}
|
|
203
|
+
else if (setTo === COMMON_1.COMMON_CONSTANTS.END) {
|
|
204
|
+
absoluteDate = date.endOf(startOrEndOf);
|
|
205
|
+
}
|
|
206
|
+
return absoluteDate.format(DATE_FORMATS_1.DATETIME_FORMAT);
|
|
202
207
|
}
|
|
203
208
|
}
|
|
204
209
|
exports.default = RelativeStatementAdapter;
|
|
@@ -9,12 +9,15 @@ const COMMON_1 = require("../constants/COMMON");
|
|
|
9
9
|
* @returns {number}
|
|
10
10
|
*/
|
|
11
11
|
function getStatementCase(includeCurrent, isCalendarDate) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
if (includeCurrent && isCalendarDate) {
|
|
13
|
+
return COMMON_1.COMMON_CONSTANTS.INCLUSIVE_AND_CALENDAR;
|
|
14
|
+
}
|
|
15
|
+
else if (!includeCurrent && isCalendarDate) {
|
|
16
|
+
return COMMON_1.COMMON_CONSTANTS.EXCLUSIVE_AND_CALENDAR;
|
|
17
|
+
}
|
|
18
|
+
else if (!includeCurrent && !isCalendarDate) {
|
|
19
|
+
return COMMON_1.COMMON_CONSTANTS.EXCLUSIVE_AND_ROLLING;
|
|
20
|
+
}
|
|
21
|
+
return COMMON_1.COMMON_CONSTANTS.INCLUSIVE_AND_ROLLING;
|
|
19
22
|
}
|
|
20
23
|
exports.getStatementCase = getStatementCase;
|
|
@@ -10,18 +10,14 @@ const DATE_DISTINCT_TIME_PROPERTY_1 = require("../../dates/constants/DATE_DISTIN
|
|
|
10
10
|
* @returns a adapted property
|
|
11
11
|
*/
|
|
12
12
|
function adaptDateGroupingProperty(property) {
|
|
13
|
-
return property
|
|
14
|
-
? DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.YEAR_QUARTER
|
|
15
|
-
: property === "p&month"
|
|
16
|
-
? DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.YEAR_MONTH
|
|
17
|
-
: property === "p&day"
|
|
18
|
-
? DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.MONTH_DAY
|
|
19
|
-
: property === "p&hour"
|
|
20
|
-
? DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.DAY_HOUR
|
|
21
|
-
: property === "p&minute"
|
|
22
|
-
? DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.HOUR_MINUTE
|
|
23
|
-
: property === "p&second"
|
|
24
|
-
? DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.MINUTE_SECOND
|
|
25
|
-
: property;
|
|
13
|
+
return ODD_PROPERTY[property];
|
|
26
14
|
}
|
|
27
15
|
exports.adaptDateGroupingProperty = adaptDateGroupingProperty;
|
|
16
|
+
const ODD_PROPERTY = {
|
|
17
|
+
"p&quarter": DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.YEAR_QUARTER,
|
|
18
|
+
"p&month": DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.YEAR_MONTH,
|
|
19
|
+
"p&day": DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.MONTH_DAY,
|
|
20
|
+
"p&hour": DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.DAY_HOUR,
|
|
21
|
+
"p&minute": DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.HOUR_MINUTE,
|
|
22
|
+
"p&second": DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.MINUTE_SECOND,
|
|
23
|
+
};
|
|
@@ -13,7 +13,6 @@ const logicToFlatUI_1 = require("./logicToFlatUI");
|
|
|
13
13
|
*/
|
|
14
14
|
function logicToUI(logics = [], section = FILTER_SECTION_1.FILTER_SECTION.ANYWHERE, enabled = true, version = FILTER_STRUCTURE_VERSION_1.FILTER_STRUCTURE_VERSION) {
|
|
15
15
|
const flatUiFilters = (0, logicToFlatUI_1.logicToFlatUI)(logics);
|
|
16
|
-
|
|
17
|
-
return uiFilters;
|
|
16
|
+
return (0, flatUIToUI_1.flatUIToUI)(flatUiFilters, section, enabled, version);
|
|
18
17
|
}
|
|
19
18
|
exports.logicToUI = logicToUI;
|
|
@@ -343,7 +343,7 @@ function getFilterEqualValues(values, columnType, destination = "value", formula
|
|
|
343
343
|
}))
|
|
344
344
|
: getRankingFBvalues(values);
|
|
345
345
|
}
|
|
346
|
-
|
|
346
|
+
return destination === "value"
|
|
347
347
|
? values.map((item) => {
|
|
348
348
|
let value = item.value;
|
|
349
349
|
if ([columnType, formulaType].includes("DATE") &&
|
|
@@ -370,7 +370,6 @@ function getFilterEqualValues(values, columnType, destination = "value", formula
|
|
|
370
370
|
valueid: columnType === "EXPRESSION" ? undefined : item.id || item.answerid,
|
|
371
371
|
enabled: item.enabled || true,
|
|
372
372
|
}));
|
|
373
|
-
return formattedValues;
|
|
374
373
|
}
|
|
375
374
|
function getFormulaType(oldFiltersItem) {
|
|
376
375
|
if (oldFiltersItem.formulaType)
|
|
@@ -381,7 +380,6 @@ function getFormulaType(oldFiltersItem) {
|
|
|
381
380
|
: oldFiltersItem.type === "DATE"
|
|
382
381
|
? "date"
|
|
383
382
|
: "string";
|
|
384
|
-
return;
|
|
385
383
|
}
|
|
386
384
|
function getExpressions(oldFiltersItem, validations, scopeLabel, scopeid, section) {
|
|
387
385
|
const expressions = [];
|
|
@@ -36,7 +36,6 @@ function getAggFilters(logics = [], summaries = []) {
|
|
|
36
36
|
value: expression.value,
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
-
return;
|
|
40
39
|
})
|
|
41
40
|
.filter(Boolean),
|
|
42
41
|
});
|
|
@@ -53,7 +52,7 @@ exports.getAggFilters = getAggFilters;
|
|
|
53
52
|
*/
|
|
54
53
|
function getAggregateFilters(logics = []) {
|
|
55
54
|
logics = (0, cloneDeep_1.cloneDeep)(logics);
|
|
56
|
-
|
|
55
|
+
return logics.reduce((newLogics, logic) => {
|
|
57
56
|
if (!logic)
|
|
58
57
|
return newLogics;
|
|
59
58
|
logic.filters.forEach((filter, index) => {
|
|
@@ -70,7 +69,6 @@ function getAggregateFilters(logics = []) {
|
|
|
70
69
|
newLogics.push(logic);
|
|
71
70
|
return newLogics;
|
|
72
71
|
}, []);
|
|
73
|
-
return aggregateLogics;
|
|
74
72
|
}
|
|
75
73
|
function concatAggFilters(aggFilters, operator = FILTER_OPERATOR_1.FILTER_OPERATOR.AND) {
|
|
76
74
|
const expressions = aggFilters.filter(Boolean);
|
|
@@ -65,7 +65,10 @@ function getColumnExpressions(group, getFilter) {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
function logicToNumeric(operator, priority = false) {
|
|
68
|
-
|
|
68
|
+
if (operator === FILTER_OPERATOR_1.FILTER_OPERATOR.AND) {
|
|
69
|
+
return "*";
|
|
70
|
+
}
|
|
71
|
+
return priority ? "/" : "+";
|
|
69
72
|
}
|
|
70
73
|
function numericExpression(filters, groupColumns = false) {
|
|
71
74
|
let expression = "";
|
|
@@ -75,5 +78,5 @@ function numericExpression(filters, groupColumns = false) {
|
|
|
75
78
|
const operator = logicToNumeric(item.operator, groupColumns && ((_a = item.column) === null || _a === void 0 ? void 0 : _a.id) === (nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.id));
|
|
76
79
|
expression += `${item.filterid}${operator}`;
|
|
77
80
|
});
|
|
78
|
-
return expression.
|
|
81
|
+
return expression.substring(0, expression.length - 1);
|
|
79
82
|
}
|
|
@@ -13,8 +13,7 @@ function getBackendGroupValue(filter) {
|
|
|
13
13
|
if ((0, isEmpty_1.isEmpty)(filter.column.aggregate) &&
|
|
14
14
|
(0, isDateColumn_1.isDateColumn)(filter.column) &&
|
|
15
15
|
filter.property != null) {
|
|
16
|
-
|
|
17
|
-
return property;
|
|
16
|
+
return (0, adaptDateGroupingProperty_1.adaptDateGroupingProperty)(filter.property);
|
|
18
17
|
}
|
|
19
18
|
}
|
|
20
19
|
exports.getBackendGroupValue = getBackendGroupValue;
|
|
@@ -16,60 +16,82 @@ function getBackendValues(filter) {
|
|
|
16
16
|
switch (filter.validator) {
|
|
17
17
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.EQUALS:
|
|
18
18
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.NOT_EQUAL:
|
|
19
|
-
if (filter.column.type === COLUMN_1.COLUMN.RANKING &&
|
|
20
|
-
(0, isEmpty_1.isEmpty)(filter.column.aggregate))
|
|
21
|
-
return getRankingValues(values);
|
|
22
|
-
return getResultValues(values, filter);
|
|
23
19
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.CONTAINS:
|
|
24
20
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.NOT_CONTAIN:
|
|
25
21
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.STARTS_WITH:
|
|
26
22
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.NOT_START_WITH:
|
|
27
23
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.ENDS_WITH:
|
|
28
24
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.NOT_END_WITH:
|
|
29
|
-
|
|
25
|
+
if (filter.column.type === COLUMN_1.COLUMN.RANKING &&
|
|
26
|
+
(0, isEmpty_1.isEmpty)(filter.column.aggregate))
|
|
27
|
+
return getRankingValues(values);
|
|
28
|
+
return getResultValues(values, filter);
|
|
30
29
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.BETWEEN_INCLUSIVE:
|
|
31
|
-
return values
|
|
32
|
-
.map((value) => value.enabled ? { lte: value.max, gte: value.min } : undefined)
|
|
33
|
-
.filter(Boolean);
|
|
30
|
+
return getExclusiveRange(values);
|
|
34
31
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.BETWEEN_EXCLUSIVE:
|
|
35
|
-
return values
|
|
36
|
-
.map((value) => value.enabled ? { lt: value.max, gt: value.min } : undefined)
|
|
37
|
-
.filter(Boolean);
|
|
32
|
+
return getInclusiveRange(values);
|
|
38
33
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.BEFORE:
|
|
39
34
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.LESS_THAN:
|
|
40
|
-
return values
|
|
41
|
-
.map((value) => (value.enabled ? { lt: value.max } : undefined))
|
|
42
|
-
.filter(Boolean);
|
|
35
|
+
return getBeforeValues(values);
|
|
43
36
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.BEFORE_ON:
|
|
44
37
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.LESS_THAN_EQUAL:
|
|
45
|
-
return values
|
|
46
|
-
.map((value) => (value.enabled ? { lte: value.max } : undefined))
|
|
47
|
-
.filter(Boolean);
|
|
38
|
+
return getBeforeOnValues(values);
|
|
48
39
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.AFTER:
|
|
49
40
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.GREATER_THAN:
|
|
50
|
-
return values
|
|
51
|
-
.map((value) => (value.enabled ? { gt: value.min } : undefined))
|
|
52
|
-
.filter(Boolean);
|
|
41
|
+
return getAfterValues(values);
|
|
53
42
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.AFTER_ON:
|
|
54
43
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.GREATER_THAN_EQUAL:
|
|
55
|
-
return values
|
|
56
|
-
.map((value) => (value.enabled ? { gte: value.min } : undefined))
|
|
57
|
-
.filter(Boolean);
|
|
44
|
+
return getAfterOnValues(values);
|
|
58
45
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.IS_NULL:
|
|
59
|
-
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.IS_NOT_NULL:
|
|
60
|
-
|
|
61
|
-
values.every((value) => value.enabled);
|
|
62
|
-
return addValue ? [FILTER_VALIDATOR_INFO_1.FILTER_VALIDATOR_INFO[filter.validator].label] : [];
|
|
63
|
-
}
|
|
46
|
+
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.IS_NOT_NULL:
|
|
47
|
+
return getNullValues(values, filter);
|
|
64
48
|
case FILTER_VALIDATOR_1.FILTER_VALIDATOR.IN:
|
|
65
|
-
return values
|
|
66
|
-
.map((value) => (value.enabled ? value : undefined))
|
|
67
|
-
.filter(Boolean);
|
|
49
|
+
return getInValues(values);
|
|
68
50
|
default:
|
|
69
51
|
return [];
|
|
70
52
|
}
|
|
71
53
|
}
|
|
72
54
|
exports.getBackendValues = getBackendValues;
|
|
55
|
+
function getExclusiveRange(values) {
|
|
56
|
+
return values
|
|
57
|
+
.map((value) => getValue(value, { lte: value.max, gte: value.min }))
|
|
58
|
+
.filter(Boolean);
|
|
59
|
+
}
|
|
60
|
+
function getInclusiveRange(values) {
|
|
61
|
+
return values
|
|
62
|
+
.map((value) => getValue(value, { lt: value.max, gt: value.min }))
|
|
63
|
+
.filter(Boolean);
|
|
64
|
+
}
|
|
65
|
+
function getBeforeValues(values) {
|
|
66
|
+
return values
|
|
67
|
+
.map((value) => getValue(value, { lt: value.max }))
|
|
68
|
+
.filter(Boolean);
|
|
69
|
+
}
|
|
70
|
+
function getBeforeOnValues(values) {
|
|
71
|
+
return values
|
|
72
|
+
.map((value) => getValue(value, { lte: value.max }))
|
|
73
|
+
.filter(Boolean);
|
|
74
|
+
}
|
|
75
|
+
function getAfterValues(values) {
|
|
76
|
+
return values
|
|
77
|
+
.map((value) => getValue(value, { gt: value.min }))
|
|
78
|
+
.filter(Boolean);
|
|
79
|
+
}
|
|
80
|
+
function getAfterOnValues(values) {
|
|
81
|
+
return values
|
|
82
|
+
.map((value) => getValue(value, { gte: value.min }))
|
|
83
|
+
.filter(Boolean);
|
|
84
|
+
}
|
|
85
|
+
function getNullValues(values, filter) {
|
|
86
|
+
const addValue = values.length > 0 && values.every((value) => value.enabled);
|
|
87
|
+
return addValue ? [FILTER_VALIDATOR_INFO_1.FILTER_VALIDATOR_INFO[filter.validator].label] : [];
|
|
88
|
+
}
|
|
89
|
+
function getInValues(values) {
|
|
90
|
+
return values.map((value) => getValue(value, value)).filter(Boolean);
|
|
91
|
+
}
|
|
92
|
+
function getValue(objectValue, value) {
|
|
93
|
+
return objectValue.enabled ? value : undefined;
|
|
94
|
+
}
|
|
73
95
|
/**
|
|
74
96
|
* Gets the expression values. Depending on the column type
|
|
75
97
|
* @private
|
|
@@ -5,8 +5,8 @@ import { IFFGetLogicByDatasetsColumns } from "../../interfaces/functions/IFFGetL
|
|
|
5
5
|
* @todo MODULE NO READY
|
|
6
6
|
* Filters the logic by a datasets array
|
|
7
7
|
* If an qrveyid is not provided in the expression a the filter passes normally
|
|
8
|
-
* @param logic The logic of the
|
|
9
|
-
* @param datasets The collection of datasets
|
|
8
|
+
* @param {IFBLogic[]} logic The logic of the filters
|
|
9
|
+
* @param {IDataset[]} datasets The collection of datasets
|
|
10
10
|
* @returns a new filtered logic
|
|
11
11
|
*/
|
|
12
12
|
export declare function getLogicByDatasetsColumns(logic: IFBLogic[], datasets?: IDataset[], settings?: IFFGetLogicByDatasetsColumns): IFBLogic[];
|
|
@@ -8,8 +8,8 @@ const hasProperty_1 = require("../../../general/object/hasProperty");
|
|
|
8
8
|
* @todo MODULE NO READY
|
|
9
9
|
* Filters the logic by a datasets array
|
|
10
10
|
* If an qrveyid is not provided in the expression a the filter passes normally
|
|
11
|
-
* @param logic The logic of the
|
|
12
|
-
* @param datasets The collection of datasets
|
|
11
|
+
* @param {IFBLogic[]} logic The logic of the filters
|
|
12
|
+
* @param {IDataset[]} datasets The collection of datasets
|
|
13
13
|
* @returns a new filtered logic
|
|
14
14
|
*/
|
|
15
15
|
function getLogicByDatasetsColumns(logic, datasets = [], settings) {
|
|
@@ -18,28 +18,65 @@ function getLogicByDatasetsColumns(logic, datasets = [], settings) {
|
|
|
18
18
|
if ((0, isEmpty_1.isEmpty)(datasets))
|
|
19
19
|
return logic;
|
|
20
20
|
settings = getGetLogicByDatasetsSettings(settings);
|
|
21
|
-
return logic.map((_l) => (Object.assign(Object.assign({}, _l), { filters: (0, filterNestedTree_1.filterNestedTree)(_l.filters, "expressions", (
|
|
22
|
-
const letQrveyidPass = settings.letPassUndefinedProperties.qrveyid ||
|
|
23
|
-
(0, hasProperty_1._hasProperty)(expression, "qrveyid");
|
|
24
|
-
let letQuestionidPass = settings.letPassUndefinedProperties.questionid ||
|
|
25
|
-
(0, hasProperty_1._hasProperty)(expression, "questionid");
|
|
26
|
-
const dataset = letQrveyidPass
|
|
27
|
-
? datasets.find((_data) => _data.qrveyid === expression.qrveyid)
|
|
28
|
-
: undefined;
|
|
29
|
-
if (!(0, isEmpty_1.isEmpty)(dataset)) {
|
|
30
|
-
const column = letQuestionidPass
|
|
31
|
-
? (dataset.options || []).find((option) => option.id === expression.questionid)
|
|
32
|
-
: undefined;
|
|
33
|
-
letQuestionidPass = letQuestionidPass || !(0, isEmpty_1.isEmpty)(column);
|
|
34
|
-
}
|
|
35
|
-
return letQrveyidPass && !(0, isEmpty_1.isEmpty)(dataset) && letQuestionidPass;
|
|
36
|
-
}) })));
|
|
21
|
+
return logic.map((_l) => (Object.assign(Object.assign({}, _l), { filters: (0, filterNestedTree_1.filterNestedTree)(_l.filters, "expressions", filterCallback(settings, datasets)) })));
|
|
37
22
|
}
|
|
38
23
|
exports.getLogicByDatasetsColumns = getLogicByDatasetsColumns;
|
|
24
|
+
/**
|
|
25
|
+
* Runs the function for the callback
|
|
26
|
+
* @param {IFFGetLogicByDatasetsColumns} settings the settings for the helper
|
|
27
|
+
* @param {IDataset[]} datasets The dataset collection
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
function filterCallback(settings, datasets = []) {
|
|
31
|
+
return (expression) => {
|
|
32
|
+
const letQrveyidPass = getLetQrveyidPass(expression, settings);
|
|
33
|
+
let letQuestionidPass = getLetQuestionidPass(expression, settings);
|
|
34
|
+
const dataset = getDataset(expression, letQrveyidPass, datasets);
|
|
35
|
+
if (!(0, isEmpty_1.isEmpty)(dataset)) {
|
|
36
|
+
const column = letQuestionidPass
|
|
37
|
+
? (dataset.options || []).find((option) => option.id === expression.questionid)
|
|
38
|
+
: undefined;
|
|
39
|
+
letQuestionidPass = letQuestionidPass || !(0, isEmpty_1.isEmpty)(column);
|
|
40
|
+
}
|
|
41
|
+
return letQrveyidPass && !(0, isEmpty_1.isEmpty)(dataset) && letQuestionidPass;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Gets the letQrveyidPass flag
|
|
46
|
+
* @param {IFBExpression} expression the logic expression of the filter
|
|
47
|
+
* @param {IFFGetLogicByDatasetsColumns} settings the settings for the helper
|
|
48
|
+
* @returns {boolean} true: the qrveyid will be passed
|
|
49
|
+
*/
|
|
50
|
+
function getLetQrveyidPass(expression, settings) {
|
|
51
|
+
return (settings.letPassUndefinedProperties.qrveyid ||
|
|
52
|
+
(0, hasProperty_1._hasProperty)(expression, "qrveyid"));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Gets the letQuestionidPass flag
|
|
56
|
+
* @param {IFBExpression} expression the logic expression of the filter
|
|
57
|
+
* @param {IFFGetLogicByDatasetsColumns} settings the settings for the helper
|
|
58
|
+
* @returns {boolean} true: the questionid will be passed
|
|
59
|
+
*/
|
|
60
|
+
function getLetQuestionidPass(expression, settings) {
|
|
61
|
+
return (settings.letPassUndefinedProperties.questionid ||
|
|
62
|
+
(0, hasProperty_1._hasProperty)(expression, "questionid"));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Gets the dataset related to the expression
|
|
66
|
+
* @param {IFBExpression} expression the logic expression of the filter
|
|
67
|
+
* @param {boolean} letQrveyidPass flag that allows perform the condition to compare the qrveyid with the datasets
|
|
68
|
+
* @param {IDataset[]} datasets The dataset collection
|
|
69
|
+
* @returns {IDataset} the dataset object
|
|
70
|
+
*/
|
|
71
|
+
function getDataset(expression, letQrveyidPass, datasets = []) {
|
|
72
|
+
return letQrveyidPass
|
|
73
|
+
? datasets.find((_data) => _data.qrveyid === expression.qrveyid)
|
|
74
|
+
: undefined;
|
|
75
|
+
}
|
|
39
76
|
/**
|
|
40
77
|
* Gets the default settings for the getLogicByDatasetsColumn function
|
|
41
|
-
* @param settings the settings given by the implementer
|
|
42
|
-
* @returns an object with all properties set
|
|
78
|
+
* @param {IFFGetLogicByDatasetsColumns} settings the settings for the helper given by the implementer
|
|
79
|
+
* @returns {IFFGetLogicByDatasetsColumns} an object with all properties set
|
|
43
80
|
*/
|
|
44
81
|
function getGetLogicByDatasetsSettings(settings) {
|
|
45
82
|
var _a, _b, _c, _d, _e;
|
|
@@ -34,8 +34,7 @@ function excludeFiltersByParams(filterData, params) {
|
|
|
34
34
|
return Object.assign(Object.assign({}, filter), { values: (filter.values || [])
|
|
35
35
|
.map((value) => {
|
|
36
36
|
if (Array.isArray(value) && value.length > 0) {
|
|
37
|
-
|
|
38
|
-
return rankingValues
|
|
37
|
+
return value
|
|
39
38
|
.map((rValue) => {
|
|
40
39
|
if (params.enableds == null ||
|
|
41
40
|
params.enableds === rValue.enabled)
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getFiltersByDatasetsColumns = void 0;
|
|
4
|
+
const getDatasetColumn_1 = require("../../../columns/helpers/getDatasetColumn");
|
|
4
5
|
const isEmpty_1 = require("../../../general/mix/isEmpty");
|
|
6
|
+
const getDatasetByColumn_1 = require("../../../qrvey/helpers/getDatasetByColumn");
|
|
5
7
|
/**
|
|
6
8
|
* Filtering the filters by the columns of datasets.
|
|
7
9
|
* Module specially for CLS.
|
|
@@ -14,26 +16,34 @@ function getFiltersByDatasetsColumns(data, datasets = []) {
|
|
|
14
16
|
return;
|
|
15
17
|
if ((0, isEmpty_1.isEmpty)(datasets))
|
|
16
18
|
return data;
|
|
17
|
-
const newData = Object.assign(Object.assign({}, data), { scopes: data.scopes
|
|
18
|
-
.map((scope) => (Object.assign(Object.assign({}, scope), { datasets: scope.datasets
|
|
19
|
-
.map((filterDataset) => {
|
|
20
|
-
const dataset = datasets.find((_data) => _data.qrveyid === filterDataset.qrveyid);
|
|
21
|
-
if (!(0, isEmpty_1.isEmpty)(dataset)) {
|
|
22
|
-
return Object.assign(Object.assign({}, filterDataset), { filters: filterDataset.filters
|
|
23
|
-
.map((filter) => {
|
|
24
|
-
const column = (dataset.options || []).find((cInfo) => cInfo.id === filter.column.id &&
|
|
25
|
-
cInfo.qrveyid === filter.column.qrveyid);
|
|
26
|
-
if (!(0, isEmpty_1.isEmpty)(column)) {
|
|
27
|
-
return Object.assign({}, filter);
|
|
28
|
-
}
|
|
29
|
-
})
|
|
30
|
-
.filter(Boolean) });
|
|
31
|
-
}
|
|
32
|
-
})
|
|
33
|
-
.filter((dataset) => !(0, isEmpty_1.isEmpty)(dataset) && dataset.filters.length > 0) })))
|
|
34
|
-
.filter((scope) => !(0, isEmpty_1.isEmpty)(scope) && scope.datasets.length > 0) });
|
|
19
|
+
const newData = Object.assign(Object.assign({}, data), { scopes: getScopes(data.scopes, datasets) });
|
|
35
20
|
if (!(0, isEmpty_1.isEmpty)(newData) && newData.scopes.length > 0) {
|
|
36
21
|
return newData;
|
|
37
22
|
}
|
|
38
23
|
}
|
|
39
24
|
exports.getFiltersByDatasetsColumns = getFiltersByDatasetsColumns;
|
|
25
|
+
function getScopes(scopes, datasets = []) {
|
|
26
|
+
return scopes
|
|
27
|
+
.map((scope) => (Object.assign(Object.assign({}, scope), { datasets: getDatasets(scope.datasets, datasets) })))
|
|
28
|
+
.filter((scope) => !(0, isEmpty_1.isEmpty)(scope) && scope.datasets.length > 0);
|
|
29
|
+
}
|
|
30
|
+
function getDatasets(scopeDatasets, datasets) {
|
|
31
|
+
return scopeDatasets
|
|
32
|
+
.map((scopeDataset) => {
|
|
33
|
+
const dataset = (0, getDatasetByColumn_1.getDatasetByColumn)({ qrveyid: scopeDataset.qrveyid }, datasets);
|
|
34
|
+
if (!(0, isEmpty_1.isEmpty)(dataset)) {
|
|
35
|
+
return Object.assign(Object.assign({}, scopeDataset), { filters: getFilters(scopeDataset.filters, dataset) });
|
|
36
|
+
}
|
|
37
|
+
})
|
|
38
|
+
.filter((dataset) => !(0, isEmpty_1.isEmpty)(dataset) && dataset.filters.length > 0);
|
|
39
|
+
}
|
|
40
|
+
function getFilters(filters, dataset) {
|
|
41
|
+
return filters
|
|
42
|
+
.map((filter) => {
|
|
43
|
+
const column = (0, getDatasetColumn_1.getDatasetColumn)(filter.column, dataset);
|
|
44
|
+
if (!(0, isEmpty_1.isEmpty)(column)) {
|
|
45
|
+
return Object.assign({}, filter);
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
.filter(Boolean);
|
|
49
|
+
}
|
|
@@ -42,8 +42,7 @@ function getFiltersByParams(filterData, params, settings) {
|
|
|
42
42
|
return Object.assign(Object.assign({}, filter), { values: (filter.values || [])
|
|
43
43
|
.map((value) => {
|
|
44
44
|
if (Array.isArray(value) && value.length > 0) {
|
|
45
|
-
|
|
46
|
-
return rankingValues
|
|
45
|
+
return value
|
|
47
46
|
.map((rValue) => {
|
|
48
47
|
if (!(0, hasProperty_1._hasProperty)(params, "enableds") ||
|
|
49
48
|
!(0, hasProperty_1._hasProperty)(params.enableds, "values") ||
|
|
@@ -14,6 +14,5 @@ function getAggFiltersFromFilterData(filterData, _summaries) {
|
|
|
14
14
|
filterData = Object.assign({}, (0, getFiltersByAggregateColumn_1.getFiltersByAggregateColumn)(filterData));
|
|
15
15
|
if ((0, isEmpty_1.isEmpty)(filterData))
|
|
16
16
|
return;
|
|
17
|
-
return;
|
|
18
17
|
}
|
|
19
18
|
exports.getAggFiltersFromFilterData = getAggFiltersFromFilterData;
|
|
@@ -11,10 +11,12 @@ const FILTER_SCOPE_1 = require("../constants/common/FILTER_SCOPE");
|
|
|
11
11
|
function getScopesByHierarchy(scopes = [], currentScope = FILTER_SCOPE_1.FILTER_SCOPE.GLOBAL) {
|
|
12
12
|
const scopeIndex = scopes.findIndex((s) => s.label === currentScope);
|
|
13
13
|
const chartScopeIndex = scopes.findIndex((s) => s.label === FILTER_SCOPE_1.FILTER_SCOPE.CHART);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
if (scopeIndex !== -1) {
|
|
15
|
+
return scopes.slice(0, scopeIndex);
|
|
16
|
+
}
|
|
17
|
+
else if (chartScopeIndex !== -1) {
|
|
18
|
+
return scopes.slice(0, chartScopeIndex);
|
|
19
|
+
}
|
|
20
|
+
return [];
|
|
19
21
|
}
|
|
20
22
|
exports.getScopesByHierarchy = getScopesByHierarchy;
|