@qrvey/utils 1.2.10-6 → 1.2.10-9
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 +5933 -1
- package/bitbucket-pipelines.yml +1 -1
- package/dist/cjs/filters/helpers/common/getMergeValuesSettings.d.ts +7 -0
- package/dist/cjs/filters/helpers/common/getMergeValuesSettings.js +15 -0
- package/dist/cjs/filters/helpers/common/index.d.ts +1 -0
- package/dist/cjs/filters/helpers/common/index.js +1 -0
- package/dist/cjs/filters/helpers/common/mergeFilters.js +4 -58
- package/dist/cjs/filters/helpers/common/mergeValues.d.ts +11 -0
- package/dist/cjs/filters/helpers/common/mergeValues.js +92 -0
- package/dist/cjs/filters/interfaces/functions/IFFiltersMergeFilters.d.ts +2 -2
- package/dist/cjs/filters/interfaces/functions/IFFiltersMergeValues.d.ts +3 -0
- package/dist/cjs/filters/interfaces/functions/IFFiltersMergeValues.js +2 -0
- package/dist/cjs/filters/interfaces/functions/index.d.ts +1 -0
- package/dist/cjs/filters/interfaces/functions/index.js +1 -0
- package/dist/cjs/format/localization.js +16 -2
- package/dist/cjs/globalization/interfaces/dashboard/II18nDashboardToast.d.ts +1 -0
- package/dist/cjs/globalization/interfaces/filters/II18nFilterPanel.d.ts +1 -0
- package/dist/cjs/globalization/interfaces/filters/II18nValueContainer.d.ts +3 -2
- package/dist/cjs/globalization/labels/dashboard/I18N_DASHBOARD.js +1 -0
- package/dist/cjs/globalization/labels/filters/I18N_FILTER_PANEL.js +1 -0
- package/dist/cjs/globalization/labels/filters/I18N_VALUE_CONTAINER.js +2 -1
- package/dist/filters/helpers/common/getMergeValuesSettings.d.ts +7 -0
- package/dist/filters/helpers/common/getMergeValuesSettings.js +11 -0
- package/dist/filters/helpers/common/index.d.ts +1 -0
- package/dist/filters/helpers/common/index.js +1 -0
- package/dist/filters/helpers/common/mergeFilters.js +3 -57
- package/dist/filters/helpers/common/mergeValues.d.ts +11 -0
- package/dist/filters/helpers/common/mergeValues.js +88 -0
- package/dist/filters/interfaces/functions/IFFiltersMergeFilters.d.ts +2 -2
- package/dist/filters/interfaces/functions/IFFiltersMergeValues.d.ts +3 -0
- package/dist/filters/interfaces/functions/IFFiltersMergeValues.js +1 -0
- package/dist/filters/interfaces/functions/index.d.ts +1 -0
- package/dist/filters/interfaces/functions/index.js +1 -0
- package/dist/format/localization.js +16 -2
- package/dist/globalization/interfaces/dashboard/II18nDashboardToast.d.ts +1 -0
- package/dist/globalization/interfaces/filters/II18nFilterPanel.d.ts +1 -0
- package/dist/globalization/interfaces/filters/II18nValueContainer.d.ts +3 -2
- package/dist/globalization/labels/dashboard/I18N_DASHBOARD.js +1 -0
- package/dist/globalization/labels/filters/I18N_FILTER_PANEL.js +1 -0
- package/dist/globalization/labels/filters/I18N_VALUE_CONTAINER.js +2 -1
- package/package.json +5 -4
- package/publishing.js +10 -2
- package/src/filters/helpers/common/getMergeValuesSettings.ts +12 -0
- package/src/filters/helpers/common/index.ts +1 -0
- package/src/filters/helpers/common/mergeFilters.ts +5 -59
- package/src/filters/helpers/common/mergeValues.ts +87 -0
- package/src/filters/interfaces/functions/IFFiltersMergeFilters.ts +2 -2
- package/src/filters/interfaces/functions/IFFiltersMergeValues.ts +3 -0
- package/src/filters/interfaces/functions/index.ts +1 -0
- package/src/format/localization.ts +16 -2
- package/src/globalization/interfaces/dashboard/II18nDashboardToast.ts +1 -0
- package/src/globalization/interfaces/filters/II18nFilterPanel.ts +1 -0
- package/src/globalization/interfaces/filters/II18nValueContainer.ts +3 -2
- package/src/globalization/labels/dashboard/I18N_DASHBOARD.ts +1 -0
- package/src/globalization/labels/filters/I18N_FILTER_PANEL.ts +1 -0
- package/src/globalization/labels/filters/I18N_VALUE_CONTAINER.ts +2 -1
package/bitbucket-pipelines.yml
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IFFiltersMergeValues } from "../../interfaces/functions/IFFiltersMergeValues";
|
|
2
|
+
/**
|
|
3
|
+
* Transforms the given MergeFilters settings object. Adds the missing properties if they do not exist.
|
|
4
|
+
* @param settings an object to the MergeFilters settings
|
|
5
|
+
* @returns a new MergeFilters settings object.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getMergeValuesSettings(settings?: IFFiltersMergeValues): IFFiltersMergeValues;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMergeValuesSettings = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Transforms the given MergeFilters settings object. Adds the missing properties if they do not exist.
|
|
6
|
+
* @param settings an object to the MergeFilters settings
|
|
7
|
+
* @returns a new MergeFilters settings object.
|
|
8
|
+
*/
|
|
9
|
+
function getMergeValuesSettings(settings) {
|
|
10
|
+
var _a;
|
|
11
|
+
return {
|
|
12
|
+
overwriteValues: (_a = settings === null || settings === void 0 ? void 0 : settings.overwriteValues) !== null && _a !== void 0 ? _a : false,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
exports.getMergeValuesSettings = getMergeValuesSettings;
|
|
@@ -22,6 +22,7 @@ export * from './isNullValidator';
|
|
|
22
22
|
export * from './isRangeValidator';
|
|
23
23
|
export * from './isRegularValidator';
|
|
24
24
|
export * from './mergeFilters';
|
|
25
|
+
export * from './mergeValues';
|
|
25
26
|
export * from './resolveDatasetConditions';
|
|
26
27
|
export * from './resolveFilterConditions';
|
|
27
28
|
export * from './resolveScopeConditions';
|
|
@@ -38,6 +38,7 @@ __exportStar(require("./isNullValidator"), exports);
|
|
|
38
38
|
__exportStar(require("./isRangeValidator"), exports);
|
|
39
39
|
__exportStar(require("./isRegularValidator"), exports);
|
|
40
40
|
__exportStar(require("./mergeFilters"), exports);
|
|
41
|
+
__exportStar(require("./mergeValues"), exports);
|
|
41
42
|
__exportStar(require("./resolveDatasetConditions"), exports);
|
|
42
43
|
__exportStar(require("./resolveFilterConditions"), exports);
|
|
43
44
|
__exportStar(require("./resolveScopeConditions"), exports);
|
|
@@ -6,10 +6,7 @@ const cloneDeep_1 = require("../../../general/object/cloneDeep");
|
|
|
6
6
|
const FILTER_GROUPED_COLUMN_OPERATOR_1 = require("../../constants/common/FILTER_GROUPED_COLUMN_OPERATOR");
|
|
7
7
|
const getFilterid_1 = require("./getFilterid");
|
|
8
8
|
const getMergeFiltersSettings_1 = require("./getMergeFiltersSettings");
|
|
9
|
-
const
|
|
10
|
-
const isNullValidator_1 = require("./isNullValidator");
|
|
11
|
-
const isRangeValidator_1 = require("./isRangeValidator");
|
|
12
|
-
const isRegularValidator_1 = require("./isRegularValidator");
|
|
9
|
+
const mergeValues_1 = require("./mergeValues");
|
|
13
10
|
const resolveDatasetConditions_1 = require("./resolveDatasetConditions");
|
|
14
11
|
const resolveFilterConditions_1 = require("./resolveFilterConditions");
|
|
15
12
|
const resolveScopeConditions_1 = require("./resolveScopeConditions");
|
|
@@ -92,7 +89,7 @@ function mergeFilterss(filters1 = [], filters2 = [], settings) {
|
|
|
92
89
|
let newFilters = filters1.reduce((filters, filter1) => {
|
|
93
90
|
const filter2Index = filters2.findIndex(filter2 => (0, resolveFilterConditions_1.resolveFilterConditions)(filter2, { column: filter1.column, dateSection: filter1.dateSection, panelid: filter1.extras.panelid, property: filter1.property, validator: filter1.validator }));
|
|
94
91
|
if (filter2Index > -1) {
|
|
95
|
-
filter1 = Object.assign(Object.assign({}, filter1), { values: mergeValues(filter1, filters2[filter2Index], settings) });
|
|
92
|
+
filter1 = Object.assign(Object.assign({}, filter1), { values: (0, mergeValues_1.mergeValues)(filter1, filters2[filter2Index], settings) });
|
|
96
93
|
filter1 = mergeFilterProps(filter1, filters2[filter2Index], settings);
|
|
97
94
|
filters2.splice(filter2Index, 1);
|
|
98
95
|
}
|
|
@@ -115,60 +112,9 @@ function mergeFilterss(filters1 = [], filters2 = [], settings) {
|
|
|
115
112
|
* @returns a new filter structure with overwritted props
|
|
116
113
|
*/
|
|
117
114
|
function mergeFilterProps(filter1, filter2, settings) {
|
|
115
|
+
var _a, _b, _c;
|
|
118
116
|
if (settings.overwriteFilterProps) {
|
|
119
|
-
filter1 = Object.assign(Object.assign({}, filter1), { extras: filter2.extras, enabled: filter2.enabled
|
|
117
|
+
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, filterid: filter2.filterid, lookupDisplayIndex: filter2.lookupDisplayIndex, nullValues: filter2.nullValues, selectAll: filter2.selectAll });
|
|
120
118
|
}
|
|
121
119
|
return filter1;
|
|
122
120
|
}
|
|
123
|
-
/**
|
|
124
|
-
* Gets a new value structure array by merging two value structures
|
|
125
|
-
* @param filter1 the target filter structure
|
|
126
|
-
* @param filter2 the filter to be used to merge the values
|
|
127
|
-
* @param settings configuration of the mergeFilter
|
|
128
|
-
* @returns a new value structure array
|
|
129
|
-
*/
|
|
130
|
-
function mergeValues(filter1, filter2, settings) {
|
|
131
|
-
if ((0, isEmpty_1.isEmpty)(filter1) && (0, isEmpty_1.isEmpty)(filter2))
|
|
132
|
-
return [];
|
|
133
|
-
let newValues = [];
|
|
134
|
-
let filter1Values = filter1.values || [];
|
|
135
|
-
const filter2Values = filter2.values || [];
|
|
136
|
-
if (!settings.overwriteValues) {
|
|
137
|
-
if ((0, isInValidator_1.isInValidator)(filter1.validator)) {
|
|
138
|
-
newValues = filter2Values.reduce((values, value2) => {
|
|
139
|
-
const value1Index = filter1Values.findIndex(value1 => value2.anchor === value1.anchor && value2.cursor === value1.cursor && value2.includeCurrent === value1.includeCurrent && value2.isCalendarDate === value1.isCalendarDate && value2.number === value1.number && value2.unit === value1.unit);
|
|
140
|
-
if (value1Index === -1) {
|
|
141
|
-
values.push(value2);
|
|
142
|
-
}
|
|
143
|
-
return values;
|
|
144
|
-
}, filter1Values);
|
|
145
|
-
}
|
|
146
|
-
else if ((0, isRangeValidator_1.isRangeValidator)(filter1.validator)) {
|
|
147
|
-
newValues = filter2Values.reduce((values, value2) => {
|
|
148
|
-
const value1Index = filter1Values.findIndex(value1 => value2.max === value1.max && value2.min === value1.min);
|
|
149
|
-
if (value1Index === -1) {
|
|
150
|
-
values.push(value2);
|
|
151
|
-
}
|
|
152
|
-
return values;
|
|
153
|
-
}, filter1Values);
|
|
154
|
-
}
|
|
155
|
-
else if ((0, isRegularValidator_1.isRegularValidator)(filter1.validator) || (0, isNullValidator_1.isNullValidator)(filter1.validator)) {
|
|
156
|
-
newValues = filter2Values.reduce((values, value2) => {
|
|
157
|
-
const value1Index = filter1Values.findIndex(value1 => value2.imageUrl === value1.imageUrl && value2.value === value1.value);
|
|
158
|
-
if (value1Index === -1) {
|
|
159
|
-
values.push(value2);
|
|
160
|
-
}
|
|
161
|
-
return values;
|
|
162
|
-
}, filter1Values);
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
filter1Values = filter1Values.concat(filter2Values);
|
|
166
|
-
newValues = filter1Values;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
filter1Values = filter2Values;
|
|
171
|
-
newValues = filter1Values;
|
|
172
|
-
}
|
|
173
|
-
return newValues;
|
|
174
|
-
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IFSFilter } from "../../interfaces/common/IFSFilter";
|
|
2
|
+
import { IFFiltersMergeValues } from "../../interfaces/functions/IFFiltersMergeValues";
|
|
3
|
+
import { IFValue } from "../../interfaces/IFValue";
|
|
4
|
+
/**
|
|
5
|
+
* Gets a new value structure array by merging two value structures
|
|
6
|
+
* @param filter1 the target filter structure
|
|
7
|
+
* @param filter2 the filter to be used to merge the values
|
|
8
|
+
* @param settings configuration of the mergeFilter
|
|
9
|
+
* @returns a new value structure array
|
|
10
|
+
*/
|
|
11
|
+
export declare function mergeValues(filter1: IFSFilter, filter2: IFSFilter, settings?: IFFiltersMergeValues): IFValue[];
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mergeValues = void 0;
|
|
4
|
+
const isEmpty_1 = require("../../../general/mix/isEmpty");
|
|
5
|
+
const getMergeValuesSettings_1 = require("./getMergeValuesSettings");
|
|
6
|
+
const isInValidator_1 = require("./isInValidator");
|
|
7
|
+
const isNullValidator_1 = require("./isNullValidator");
|
|
8
|
+
const isRangeValidator_1 = require("./isRangeValidator");
|
|
9
|
+
const isRegularValidator_1 = require("./isRegularValidator");
|
|
10
|
+
/**
|
|
11
|
+
* Gets a new value structure array by merging two value structures
|
|
12
|
+
* @param filter1 the target filter structure
|
|
13
|
+
* @param filter2 the filter to be used to merge the values
|
|
14
|
+
* @param settings configuration of the mergeFilter
|
|
15
|
+
* @returns a new value structure array
|
|
16
|
+
*/
|
|
17
|
+
function mergeValues(filter1, filter2, settings) {
|
|
18
|
+
if ((0, isEmpty_1.isEmpty)(filter1) && (0, isEmpty_1.isEmpty)(filter2))
|
|
19
|
+
return [];
|
|
20
|
+
settings = (0, getMergeValuesSettings_1.getMergeValuesSettings)(settings);
|
|
21
|
+
let newValues = [];
|
|
22
|
+
let filter1Values = filter1.values || [];
|
|
23
|
+
const filter2Values = filter2.values || [];
|
|
24
|
+
if (settings.overwriteValues) {
|
|
25
|
+
filter1Values = filter2Values;
|
|
26
|
+
newValues = filter1Values;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
if ((0, isInValidator_1.isInValidator)(filter1.validator)) {
|
|
30
|
+
newValues = filter2Values.reduce((values, value2) => {
|
|
31
|
+
var _a;
|
|
32
|
+
const value1Index = filter1Values.findIndex(value1 => value2.anchor === value1.anchor && value2.cursor === value1.cursor && value2.includeCurrent === value1.includeCurrent && value2.isCalendarDate === value1.isCalendarDate && value2.number === value1.number && value2.unit === value1.unit);
|
|
33
|
+
if (value1Index === -1) {
|
|
34
|
+
values.push(value2);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
values[value1Index] = {
|
|
38
|
+
anchor: value2.anchor,
|
|
39
|
+
cursor: value2.cursor,
|
|
40
|
+
enabled: (_a = value2.enabled) !== null && _a !== void 0 ? _a : values[value1Index].enabled,
|
|
41
|
+
includeCurrent: value2.includeCurrent,
|
|
42
|
+
isCalendarDate: value2.isCalendarDate,
|
|
43
|
+
number: value2.number,
|
|
44
|
+
unit: value2.unit,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return values;
|
|
48
|
+
}, filter1Values);
|
|
49
|
+
}
|
|
50
|
+
else if ((0, isRangeValidator_1.isRangeValidator)(filter1.validator)) {
|
|
51
|
+
newValues = filter2Values.reduce((values, value2) => {
|
|
52
|
+
var _a;
|
|
53
|
+
const value1Index = filter1Values.findIndex(value1 => value2.max === value1.max && value2.min === value1.min);
|
|
54
|
+
if (value1Index === -1) {
|
|
55
|
+
values.push(value2);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
values[value1Index] = {
|
|
59
|
+
enabled: (_a = value2.enabled) !== null && _a !== void 0 ? _a : values[value1Index].enabled,
|
|
60
|
+
max: value2.max,
|
|
61
|
+
min: value2.min,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return values;
|
|
65
|
+
}, filter1Values);
|
|
66
|
+
}
|
|
67
|
+
else if ((0, isRegularValidator_1.isRegularValidator)(filter1.validator) || (0, isNullValidator_1.isNullValidator)(filter1.validator)) {
|
|
68
|
+
newValues = filter2Values.reduce((values, value2) => {
|
|
69
|
+
var _a;
|
|
70
|
+
const value1Index = filter1Values.findIndex(value1 => value2.imageUrl === value1.imageUrl && value2.value === value1.value);
|
|
71
|
+
if (value1Index === -1) {
|
|
72
|
+
values.push(value2);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
values[value1Index] = {
|
|
76
|
+
enabled: (_a = value2.enabled) !== null && _a !== void 0 ? _a : values[value1Index].enabled,
|
|
77
|
+
imageUrl: value2.imageUrl,
|
|
78
|
+
value: value2.value,
|
|
79
|
+
valueid: value2.valueid,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
return values;
|
|
83
|
+
}, filter1Values);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
filter1Values = filter1Values.concat(filter2Values);
|
|
87
|
+
newValues = filter1Values;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return newValues;
|
|
91
|
+
}
|
|
92
|
+
exports.mergeValues = mergeValues;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { IFFiltersMergeValues } from "./IFFiltersMergeValues";
|
|
1
2
|
/**
|
|
2
3
|
* Structure for MergeFilters property settings
|
|
3
4
|
*/
|
|
4
|
-
export interface IFFiltersMergeFilters {
|
|
5
|
+
export interface IFFiltersMergeFilters extends IFFiltersMergeValues {
|
|
5
6
|
overwriteFilterProps?: boolean;
|
|
6
|
-
overwriteValues?: boolean;
|
|
7
7
|
setGroupedColumnOperator?: boolean;
|
|
8
8
|
}
|
|
@@ -18,4 +18,5 @@ __exportStar(require("./IFFiltersGetData"), exports);
|
|
|
18
18
|
__exportStar(require("./IFFiltersGetValuesFromDataset"), exports);
|
|
19
19
|
__exportStar(require("./IFFiltersGetValuesFromModel"), exports);
|
|
20
20
|
__exportStar(require("./IFFiltersMergeFilters"), exports);
|
|
21
|
+
__exportStar(require("./IFFiltersMergeValues"), exports);
|
|
21
22
|
__exportStar(require("./IFFiltersParamsToGetFilter"), exports);
|
|
@@ -30,6 +30,7 @@ const formatWithLocale = (value, outputFormat, config = {}) => {
|
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
exports.formatWithLocale = formatWithLocale;
|
|
33
|
+
const DATE_FORMAT_CACHE = [];
|
|
33
34
|
function formatLocaleDate(value, outputFormat, config) {
|
|
34
35
|
const { lang = definition_1.LANG_DEFAULT, options } = config;
|
|
35
36
|
const dateValue = value === null || value === void 0 ? void 0 : value.replace(/Z$/i, '');
|
|
@@ -41,18 +42,31 @@ function formatLocaleDate(value, outputFormat, config) {
|
|
|
41
42
|
langOpts = definition_1.DATETIME_OPTIONS;
|
|
42
43
|
}
|
|
43
44
|
try {
|
|
44
|
-
|
|
45
|
+
const key = lang + JSON.stringify(langOpts);
|
|
46
|
+
let formatter = DATE_FORMAT_CACHE[key];
|
|
47
|
+
if (!formatter) {
|
|
48
|
+
formatter = new Intl.DateTimeFormat([lang, definition_1.LANG_DEFAULT], langOpts);
|
|
49
|
+
DATE_FORMAT_CACHE[key] = formatter;
|
|
50
|
+
}
|
|
51
|
+
return formatter.format(dateParam);
|
|
45
52
|
}
|
|
46
53
|
catch (error) {
|
|
47
54
|
return (0, isEmpty_1.isEmpty)(dateParam) ? value : new Intl.DateTimeFormat(definition_1.LANG_DEFAULT, langOpts).format(dateParam);
|
|
48
55
|
}
|
|
49
56
|
}
|
|
57
|
+
const NUMBER_FORMAT_CACHE = [];
|
|
50
58
|
function formatLocaleNumber(value, outputFormat, config) {
|
|
51
59
|
const { lang = definition_1.LANG_DEFAULT, options } = config;
|
|
52
60
|
const langOpts = options || getLocaleOptions(outputFormat);
|
|
53
61
|
const valueToFormat = (outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format) === "Percentage" /* PERCENTAGE */ ? value / 100 : value;
|
|
54
62
|
try {
|
|
55
|
-
|
|
63
|
+
const key = lang + JSON.stringify(langOpts);
|
|
64
|
+
let formatter = NUMBER_FORMAT_CACHE[key];
|
|
65
|
+
if (!formatter) {
|
|
66
|
+
formatter = new Intl.NumberFormat([lang, definition_1.LANG_DEFAULT], langOpts);
|
|
67
|
+
NUMBER_FORMAT_CACHE[key] = formatter;
|
|
68
|
+
}
|
|
69
|
+
return formatter.format(valueToFormat);
|
|
56
70
|
}
|
|
57
71
|
catch (e) {
|
|
58
72
|
return new Intl.NumberFormat(definition_1.LANG_DEFAULT, langOpts).format(valueToFormat);
|
|
@@ -8,6 +8,7 @@ export interface II18nFilterPanel {
|
|
|
8
8
|
aggregated_filters_label: string;
|
|
9
9
|
aggregated_filters_tooltip: string;
|
|
10
10
|
card_action: II18nFilterPanelCardAction;
|
|
11
|
+
card_all_except: string;
|
|
11
12
|
card_all_selected: string;
|
|
12
13
|
card_none_selected: string;
|
|
13
14
|
collapsed_title: string;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { II18nValueContainerSearchInput } from "./II18nValueContainerSearchInput";
|
|
2
2
|
export interface II18nValueContainer {
|
|
3
|
-
|
|
3
|
+
all_except: string;
|
|
4
|
+
all_selected: string;
|
|
4
5
|
no_label: string;
|
|
5
6
|
no_records_message: string;
|
|
6
|
-
|
|
7
|
+
search_input: II18nValueContainerSearchInput;
|
|
7
8
|
}
|
|
@@ -26,6 +26,7 @@ exports.I18N_DASHBOARD = {
|
|
|
26
26
|
data_views_updated_message: 'Data views updated successfully.',
|
|
27
27
|
delete_record_message: 'Record Successfully Deleted.',
|
|
28
28
|
refresh_table_message: 'Record Successfully Edited.',
|
|
29
|
+
failed_download: 'The file(s) could not be exported at this time.',
|
|
29
30
|
},
|
|
30
31
|
tooltips: {
|
|
31
32
|
buckets: "Buckets",
|
|
@@ -5,6 +5,7 @@ exports.I18N_FILTER_PANEL = {
|
|
|
5
5
|
collapsed_title: 'Filters',
|
|
6
6
|
aggregated_filters_label: 'Aggregated Filters',
|
|
7
7
|
aggregated_filters_tooltip: 'Logic is not editable for aggregated filters',
|
|
8
|
+
card_all_except: 'All Except:',
|
|
8
9
|
card_all_selected: 'All Selected',
|
|
9
10
|
card_none_selected: 'None',
|
|
10
11
|
empty_state: {
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.I18N_VALUE_CONTAINER = void 0;
|
|
4
4
|
exports.I18N_VALUE_CONTAINER = {
|
|
5
|
+
all_except: 'All Except:',
|
|
6
|
+
all_selected: 'All Selected',
|
|
5
7
|
no_label: 'No Label',
|
|
6
8
|
no_records_message: 'No records found',
|
|
7
9
|
search_input: {
|
|
@@ -10,5 +12,4 @@ exports.I18N_VALUE_CONTAINER = {
|
|
|
10
12
|
enter_value_third_label: "to Insert",
|
|
11
13
|
placeholder: 'Search or type values separated by commas. Use {{ for tokens.',
|
|
12
14
|
},
|
|
13
|
-
all_selected: 'All Selected',
|
|
14
15
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IFFiltersMergeValues } from "../../interfaces/functions/IFFiltersMergeValues";
|
|
2
|
+
/**
|
|
3
|
+
* Transforms the given MergeFilters settings object. Adds the missing properties if they do not exist.
|
|
4
|
+
* @param settings an object to the MergeFilters settings
|
|
5
|
+
* @returns a new MergeFilters settings object.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getMergeValuesSettings(settings?: IFFiltersMergeValues): IFFiltersMergeValues;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transforms the given MergeFilters settings object. Adds the missing properties if they do not exist.
|
|
3
|
+
* @param settings an object to the MergeFilters settings
|
|
4
|
+
* @returns a new MergeFilters settings object.
|
|
5
|
+
*/
|
|
6
|
+
export function getMergeValuesSettings(settings) {
|
|
7
|
+
var _a;
|
|
8
|
+
return {
|
|
9
|
+
overwriteValues: (_a = settings === null || settings === void 0 ? void 0 : settings.overwriteValues) !== null && _a !== void 0 ? _a : false,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -22,6 +22,7 @@ export * from './isNullValidator';
|
|
|
22
22
|
export * from './isRangeValidator';
|
|
23
23
|
export * from './isRegularValidator';
|
|
24
24
|
export * from './mergeFilters';
|
|
25
|
+
export * from './mergeValues';
|
|
25
26
|
export * from './resolveDatasetConditions';
|
|
26
27
|
export * from './resolveFilterConditions';
|
|
27
28
|
export * from './resolveScopeConditions';
|
|
@@ -22,6 +22,7 @@ export * from './isNullValidator';
|
|
|
22
22
|
export * from './isRangeValidator';
|
|
23
23
|
export * from './isRegularValidator';
|
|
24
24
|
export * from './mergeFilters';
|
|
25
|
+
export * from './mergeValues';
|
|
25
26
|
export * from './resolveDatasetConditions';
|
|
26
27
|
export * from './resolveFilterConditions';
|
|
27
28
|
export * from './resolveScopeConditions';
|
|
@@ -3,10 +3,7 @@ import { cloneDeep } from "../../../general/object/cloneDeep";
|
|
|
3
3
|
import { FILTER_GROUPED_COLUMN_OPERATOR } from "../../constants/common/FILTER_GROUPED_COLUMN_OPERATOR";
|
|
4
4
|
import { getFilterid } from "./getFilterid";
|
|
5
5
|
import { getMergeFiltersSettings } from "./getMergeFiltersSettings";
|
|
6
|
-
import {
|
|
7
|
-
import { isNullValidator } from "./isNullValidator";
|
|
8
|
-
import { isRangeValidator } from "./isRangeValidator";
|
|
9
|
-
import { isRegularValidator } from "./isRegularValidator";
|
|
6
|
+
import { mergeValues } from "./mergeValues";
|
|
10
7
|
import { resolveDatasetConditions } from "./resolveDatasetConditions";
|
|
11
8
|
import { resolveFilterConditions } from "./resolveFilterConditions";
|
|
12
9
|
import { resolveScopeConditions } from "./resolveScopeConditions";
|
|
@@ -111,60 +108,9 @@ function mergeFilterss(filters1 = [], filters2 = [], settings) {
|
|
|
111
108
|
* @returns a new filter structure with overwritted props
|
|
112
109
|
*/
|
|
113
110
|
function mergeFilterProps(filter1, filter2, settings) {
|
|
111
|
+
var _a, _b, _c;
|
|
114
112
|
if (settings.overwriteFilterProps) {
|
|
115
|
-
filter1 = Object.assign(Object.assign({}, filter1), { extras: filter2.extras, enabled: filter2.enabled
|
|
113
|
+
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, filterid: filter2.filterid, lookupDisplayIndex: filter2.lookupDisplayIndex, nullValues: filter2.nullValues, selectAll: filter2.selectAll });
|
|
116
114
|
}
|
|
117
115
|
return filter1;
|
|
118
116
|
}
|
|
119
|
-
/**
|
|
120
|
-
* Gets a new value structure array by merging two value structures
|
|
121
|
-
* @param filter1 the target filter structure
|
|
122
|
-
* @param filter2 the filter to be used to merge the values
|
|
123
|
-
* @param settings configuration of the mergeFilter
|
|
124
|
-
* @returns a new value structure array
|
|
125
|
-
*/
|
|
126
|
-
function mergeValues(filter1, filter2, settings) {
|
|
127
|
-
if (isEmpty(filter1) && isEmpty(filter2))
|
|
128
|
-
return [];
|
|
129
|
-
let newValues = [];
|
|
130
|
-
let filter1Values = filter1.values || [];
|
|
131
|
-
const filter2Values = filter2.values || [];
|
|
132
|
-
if (!settings.overwriteValues) {
|
|
133
|
-
if (isInValidator(filter1.validator)) {
|
|
134
|
-
newValues = filter2Values.reduce((values, value2) => {
|
|
135
|
-
const value1Index = filter1Values.findIndex(value1 => value2.anchor === value1.anchor && value2.cursor === value1.cursor && value2.includeCurrent === value1.includeCurrent && value2.isCalendarDate === value1.isCalendarDate && value2.number === value1.number && value2.unit === value1.unit);
|
|
136
|
-
if (value1Index === -1) {
|
|
137
|
-
values.push(value2);
|
|
138
|
-
}
|
|
139
|
-
return values;
|
|
140
|
-
}, filter1Values);
|
|
141
|
-
}
|
|
142
|
-
else if (isRangeValidator(filter1.validator)) {
|
|
143
|
-
newValues = filter2Values.reduce((values, value2) => {
|
|
144
|
-
const value1Index = filter1Values.findIndex(value1 => value2.max === value1.max && value2.min === value1.min);
|
|
145
|
-
if (value1Index === -1) {
|
|
146
|
-
values.push(value2);
|
|
147
|
-
}
|
|
148
|
-
return values;
|
|
149
|
-
}, filter1Values);
|
|
150
|
-
}
|
|
151
|
-
else if (isRegularValidator(filter1.validator) || isNullValidator(filter1.validator)) {
|
|
152
|
-
newValues = filter2Values.reduce((values, value2) => {
|
|
153
|
-
const value1Index = filter1Values.findIndex(value1 => value2.imageUrl === value1.imageUrl && value2.value === value1.value);
|
|
154
|
-
if (value1Index === -1) {
|
|
155
|
-
values.push(value2);
|
|
156
|
-
}
|
|
157
|
-
return values;
|
|
158
|
-
}, filter1Values);
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
filter1Values = filter1Values.concat(filter2Values);
|
|
162
|
-
newValues = filter1Values;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
filter1Values = filter2Values;
|
|
167
|
-
newValues = filter1Values;
|
|
168
|
-
}
|
|
169
|
-
return newValues;
|
|
170
|
-
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IFSFilter } from "../../interfaces/common/IFSFilter";
|
|
2
|
+
import { IFFiltersMergeValues } from "../../interfaces/functions/IFFiltersMergeValues";
|
|
3
|
+
import { IFValue } from "../../interfaces/IFValue";
|
|
4
|
+
/**
|
|
5
|
+
* Gets a new value structure array by merging two value structures
|
|
6
|
+
* @param filter1 the target filter structure
|
|
7
|
+
* @param filter2 the filter to be used to merge the values
|
|
8
|
+
* @param settings configuration of the mergeFilter
|
|
9
|
+
* @returns a new value structure array
|
|
10
|
+
*/
|
|
11
|
+
export declare function mergeValues(filter1: IFSFilter, filter2: IFSFilter, settings?: IFFiltersMergeValues): IFValue[];
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { isEmpty } from "../../../general/mix/isEmpty";
|
|
2
|
+
import { getMergeValuesSettings } from "./getMergeValuesSettings";
|
|
3
|
+
import { isInValidator } from "./isInValidator";
|
|
4
|
+
import { isNullValidator } from "./isNullValidator";
|
|
5
|
+
import { isRangeValidator } from "./isRangeValidator";
|
|
6
|
+
import { isRegularValidator } from "./isRegularValidator";
|
|
7
|
+
/**
|
|
8
|
+
* Gets a new value structure array by merging two value structures
|
|
9
|
+
* @param filter1 the target filter structure
|
|
10
|
+
* @param filter2 the filter to be used to merge the values
|
|
11
|
+
* @param settings configuration of the mergeFilter
|
|
12
|
+
* @returns a new value structure array
|
|
13
|
+
*/
|
|
14
|
+
export function mergeValues(filter1, filter2, settings) {
|
|
15
|
+
if (isEmpty(filter1) && isEmpty(filter2))
|
|
16
|
+
return [];
|
|
17
|
+
settings = getMergeValuesSettings(settings);
|
|
18
|
+
let newValues = [];
|
|
19
|
+
let filter1Values = filter1.values || [];
|
|
20
|
+
const filter2Values = filter2.values || [];
|
|
21
|
+
if (settings.overwriteValues) {
|
|
22
|
+
filter1Values = filter2Values;
|
|
23
|
+
newValues = filter1Values;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
if (isInValidator(filter1.validator)) {
|
|
27
|
+
newValues = filter2Values.reduce((values, value2) => {
|
|
28
|
+
var _a;
|
|
29
|
+
const value1Index = filter1Values.findIndex(value1 => value2.anchor === value1.anchor && value2.cursor === value1.cursor && value2.includeCurrent === value1.includeCurrent && value2.isCalendarDate === value1.isCalendarDate && value2.number === value1.number && value2.unit === value1.unit);
|
|
30
|
+
if (value1Index === -1) {
|
|
31
|
+
values.push(value2);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
values[value1Index] = {
|
|
35
|
+
anchor: value2.anchor,
|
|
36
|
+
cursor: value2.cursor,
|
|
37
|
+
enabled: (_a = value2.enabled) !== null && _a !== void 0 ? _a : values[value1Index].enabled,
|
|
38
|
+
includeCurrent: value2.includeCurrent,
|
|
39
|
+
isCalendarDate: value2.isCalendarDate,
|
|
40
|
+
number: value2.number,
|
|
41
|
+
unit: value2.unit,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return values;
|
|
45
|
+
}, filter1Values);
|
|
46
|
+
}
|
|
47
|
+
else if (isRangeValidator(filter1.validator)) {
|
|
48
|
+
newValues = filter2Values.reduce((values, value2) => {
|
|
49
|
+
var _a;
|
|
50
|
+
const value1Index = filter1Values.findIndex(value1 => value2.max === value1.max && value2.min === value1.min);
|
|
51
|
+
if (value1Index === -1) {
|
|
52
|
+
values.push(value2);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
values[value1Index] = {
|
|
56
|
+
enabled: (_a = value2.enabled) !== null && _a !== void 0 ? _a : values[value1Index].enabled,
|
|
57
|
+
max: value2.max,
|
|
58
|
+
min: value2.min,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return values;
|
|
62
|
+
}, filter1Values);
|
|
63
|
+
}
|
|
64
|
+
else if (isRegularValidator(filter1.validator) || isNullValidator(filter1.validator)) {
|
|
65
|
+
newValues = filter2Values.reduce((values, value2) => {
|
|
66
|
+
var _a;
|
|
67
|
+
const value1Index = filter1Values.findIndex(value1 => value2.imageUrl === value1.imageUrl && value2.value === value1.value);
|
|
68
|
+
if (value1Index === -1) {
|
|
69
|
+
values.push(value2);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
values[value1Index] = {
|
|
73
|
+
enabled: (_a = value2.enabled) !== null && _a !== void 0 ? _a : values[value1Index].enabled,
|
|
74
|
+
imageUrl: value2.imageUrl,
|
|
75
|
+
value: value2.value,
|
|
76
|
+
valueid: value2.valueid,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
return values;
|
|
80
|
+
}, filter1Values);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
filter1Values = filter1Values.concat(filter2Values);
|
|
84
|
+
newValues = filter1Values;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return newValues;
|
|
88
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { IFFiltersMergeValues } from "./IFFiltersMergeValues";
|
|
1
2
|
/**
|
|
2
3
|
* Structure for MergeFilters property settings
|
|
3
4
|
*/
|
|
4
|
-
export interface IFFiltersMergeFilters {
|
|
5
|
+
export interface IFFiltersMergeFilters extends IFFiltersMergeValues {
|
|
5
6
|
overwriteFilterProps?: boolean;
|
|
6
|
-
overwriteValues?: boolean;
|
|
7
7
|
setGroupedColumnOperator?: boolean;
|
|
8
8
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|