@provoly/dashboard 1.1.4 → 1.1.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.
@@ -7,59 +7,65 @@ export class CqlUtils {
7
7
  const attributesReference = classes.map((clazz) => clazz.attributes).flat();
8
8
  return filters[datasourceId]
9
9
  .map((cond) => {
10
- const conditions = [];
11
10
  const attribute = attributesReference.find((attr) => attr.id === cond.attribute);
12
11
  const field = fields.find((f) => f.id === attribute?.field);
13
12
  const attributeName = attribute?.technicalName;
14
- if (attributeName && cond.value && (typeof cond.value !== 'string' || cond.value.length > 0)) {
15
- const quoteSafeValue = `${cond.value}`.replace(/'/g, "''");
16
- switch (cond.operator) {
17
- case 'EQUALS':
18
- if (!field || TextFieldTypes.includes(field?.type)) {
19
- conditions.push(`${attributeName}='${quoteSafeValue}'`);
20
- }
21
- else {
22
- conditions.push(`${attributeName}=${cond.value}`);
23
- }
24
- break;
25
- case 'CONTAINS':
26
- conditions.push(`${attributeName} LIKE '%${quoteSafeValue}%'`);
27
- break;
28
- case 'START_WITH':
29
- conditions.push(`${attributeName} LIKE '${quoteSafeValue}%'`);
30
- break;
31
- case 'END_WITH':
32
- conditions.push(`${attributeName} LIKE '%${quoteSafeValue}'`);
33
- break;
34
- case 'GREATER_THAN':
35
- conditions.push(`${attributeName}>${cond.value}`);
36
- break;
37
- case 'LOWER_THAN':
38
- conditions.push(`${attributeName}<${cond.value}`);
39
- break;
40
- case 'INSIDE':
41
- const splitI = cond.value?.split(',');
42
- if (splitI && splitI.length > 1) {
43
- conditions.push(`${attributeName}<${splitI[0]}`);
44
- conditions.push(`${attributeName}>${splitI[1]}`);
45
- }
46
- break;
47
- case 'OUTSIDE':
48
- const splitO = cond.value?.split(',');
49
- if (splitO && splitO.length > 1) {
50
- conditions.push(`${attributeName}>${splitO[0]}`);
51
- conditions.push(`${attributeName}<${splitO[1]}`);
52
- }
53
- break;
54
- }
55
- }
56
- else {
57
- console.warn(`Cannot add cql filter on datasource ${datasourceId} because ${cond.attribute} attribute not found in classes`);
58
- }
59
- return conditions;
13
+ return this.getConditionsForValue(attributeName, cond, field, datasourceId);
60
14
  })
61
15
  .filter((conds) => conds.length > 0)
62
16
  .join(' AND ');
63
17
  }
18
+ static getConditionsForValue(attributeName, cond, field, datasourceId) {
19
+ let conditions = [];
20
+ const values = (Array.isArray(cond.value) ? cond.value : [cond.value]);
21
+ if (attributeName) {
22
+ values.forEach((value) => {
23
+ if (value && (typeof value !== 'string' || value.length > 0)) {
24
+ const quoteSafeValue = `${value}`.replace(/'/g, "''");
25
+ switch (cond.operator) {
26
+ case 'EQUALS':
27
+ if (!field || TextFieldTypes.includes(field?.type)) {
28
+ conditions.push(`${attributeName}='${quoteSafeValue}'`);
29
+ }
30
+ else {
31
+ conditions.push(`${attributeName}=${value}`);
32
+ }
33
+ break;
34
+ case 'CONTAINS':
35
+ conditions.push(`${attributeName} LIKE '%${quoteSafeValue}%'`);
36
+ break;
37
+ case 'START_WITH':
38
+ conditions.push(`${attributeName} LIKE '${quoteSafeValue}%'`);
39
+ break;
40
+ case 'END_WITH':
41
+ conditions.push(`${attributeName} LIKE '%${quoteSafeValue}'`);
42
+ break;
43
+ case 'GREATER_THAN':
44
+ conditions.push(`${attributeName}>${value}`);
45
+ break;
46
+ case 'LOWER_THAN':
47
+ conditions.push(`${attributeName}<${value}`);
48
+ break;
49
+ case 'OUTSIDE':
50
+ const splitI = value?.split(',');
51
+ if (splitI && splitI.length > 1) {
52
+ conditions.push(`( ${attributeName}<${splitI[0]} AND ${attributeName}>${splitI[1]} )`);
53
+ }
54
+ break;
55
+ case 'INSIDE':
56
+ const splitO = value?.split(',');
57
+ if (splitO && splitO.length > 1) {
58
+ conditions.push(`( ${attributeName}>${splitO[0]} AND ${attributeName}<${splitO[1]} )`);
59
+ }
60
+ break;
61
+ }
62
+ }
63
+ });
64
+ }
65
+ else {
66
+ console.warn(`Cannot add cql filter on datasource ${datasourceId} because ${cond.attribute} attribute not found in classes`);
67
+ }
68
+ return conditions.length > 1 ? '( ' + conditions.join(' OR ') + ' )' : conditions[0];
69
+ }
64
70
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3FsLXV0aWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL3V0aWxzL2NxbC11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpGLE1BQU0sT0FBTyxRQUFRO0lBQ25CLE1BQU0sQ0FBQyxlQUFlLENBQ3BCLFlBQW9CLEVBQ3BCLE9BQXlDLEVBQ3pDLE9BQWdCLEVBQ2hCLE1BQWU7UUFFZixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUYsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFNUUsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDO2FBQ3pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBRXRCLE1BQU0sU0FBUyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakYsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFD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QUM7UUFDcEIsQ0FBQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzthQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xhc3MsIEZpZWxkLCBGaWx0ZXJDb250ZXh0LCBUZXh0RmllbGRUeXBlcyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5cbmV4cG9ydCBjbGFzcyBDcWxVdGlscyB7XG4gIHN0YXRpYyBnZXRDUUxQYXJhbXNGb3IoXG4gICAgZGF0YXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgZmlsdGVyczogeyBbcDogc3RyaW5nXTogRmlsdGVyQ29udGV4dFtdIH0sXG4gICAgY2xhc3NlczogQ2xhc3NbXSxcbiAgICBmaWVsZHM6IEZpZWxkW11cbiAgKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFmaWx0ZXJzIHx8ICFkYXRhc291cmNlSWQgfHwgIWZpbHRlcnNbZGF0YXNvdXJjZUlkXSB8fCBmaWx0ZXJzW2RhdGFzb3VyY2VJZF0ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVzUmVmZXJlbmNlID0gY2xhc3Nlcy5tYXAoKGNsYXp6KSA9PiBjbGF6ei5hdHRyaWJ1dGVzKS5mbGF0KCk7XG5cbiAgICByZXR1cm4gZmlsdGVyc1tkYXRhc291cmNlSWRdXG4gICAgICAubWFwKChjb25kKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBbXTtcblxuICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzUmVmZXJlbmNlLmZpbmQoKGF0dHIpID0+IGF0dHIuaWQgPT09IGNvbmQuYXR0cmlidXRlKTtcbiAgICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZikgPT4gZi5pZCA9PT0gYXR0cmlidXRlPy5maWVsZCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZU5hbWUgPSBhdHRyaWJ1dGU/LnRlY2huaWNhbE5hbWU7XG5cbiAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgJiYgY29uZC52YWx1ZSAmJiAodHlwZW9mIGNvbmQudmFsdWUgIT09ICdzdHJpbmcnIHx8IGNvbmQudmFsdWUubGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICBjb25zdCBxdW90ZVNhZmVWYWx1ZSA9IGAke2NvbmQudmFsdWV9YC5yZXBsYWNlKC8nL2csIFwiJydcIik7XG4gICAgICAgICAgc3dpdGNoIChjb25kLm9wZXJhdG9yKSB7XG4gICAgICAgICAgICBjYXNlICdFUVVBTFMnOlxuICAgICAgICAgICAgICBpZiAoIWZpZWxkIHx8IFRleHRGaWVsZFR5cGVzLmluY2x1ZGVzKGZpZWxkPy50eXBlKSkge1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfT0nJHtxdW90ZVNhZmVWYWx1ZX0nYCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAke2F0dHJpYnV0ZU5hbWV9PSR7Y29uZC52YWx1ZX1gKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0NPTlRBSU5TJzpcbiAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAke2F0dHJpYnV0ZU5hbWV9IExJS0UgJyUke3F1b3RlU2FmZVZhbHVlfSUnYCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnU1RBUlRfV0lUSCc6XG4gICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfSBMSUtFICcke3F1b3RlU2FmZVZhbHVlfSUnYCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRU5EX1dJVEgnOlxuICAgICAgICAgICAgICBjb25kaXRpb25zLnB1c2goYCR7YXR0cmlidXRlTmFtZX0gTElLRSAnJSR7cXVvdGVTYWZlVmFsdWV9J2ApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0dSRUFURVJfVEhBTic6XG4gICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfT4ke2NvbmQudmFsdWV9YCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnTE9XRVJfVEhBTic6XG4gICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfTwke2NvbmQudmFsdWV9YCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSU5TSURFJzpcbiAgICAgICAgICAgICAgY29uc3Qgc3BsaXRJID0gKGNvbmQudmFsdWUgYXMgc3RyaW5nKT8uc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgaWYgKHNwbGl0SSAmJiBzcGxpdEkubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfTwke3NwbGl0SVswXX1gKTtcbiAgICAgICAgICAgICAgICBjb25kaXRpb25zLnB1c2goYCR7YXR0cmlidXRlTmFtZX0+JHtzcGxpdElbMV19YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdPVVRTSURFJzpcbiAgICAgICAgICAgICAgY29uc3Qgc3BsaXRPID0gKGNvbmQudmFsdWUgYXMgc3RyaW5nKT8uc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgaWYgKHNwbGl0TyAmJiBzcGxpdE8ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfT4ke3NwbGl0T1swXX1gKTtcbiAgICAgICAgICAgICAgICBjb25kaXRpb25zLnB1c2goYCR7YXR0cmlidXRlTmFtZX08JHtzcGxpdE9bMV19YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBDYW5ub3QgYWRkIGNxbCBmaWx0ZXIgb24gZGF0YXNvdXJjZSAke2RhdGFzb3VyY2VJZH0gYmVjYXVzZSAke2NvbmQuYXR0cmlidXRlfSBhdHRyaWJ1dGUgbm90IGZvdW5kIGluIGNsYXNzZXNgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25kaXRpb25zO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKGNvbmRzKSA9PiBjb25kcy5sZW5ndGggPiAwKVxuICAgICAgLmpvaW4oJyBBTkQgJyk7XG4gIH1cbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3FsLXV0aWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL3V0aWxzL2NxbC11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpGLE1BQU0sT0FBTyxRQUFRO0lBQ25CLE1BQU0sQ0FBQyxlQUFlLENBQ3BCLFlBQW9CLEVBQ3BCLE9BQXlDLEVBQ3pDLE9BQWdCLEVBQ2hCLE1BQWU7UUFFZixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUYsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFNUUsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDO2FBQ3pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1RCxNQUFNLGFBQWEsR0FBRyxTQUFTLEVBQUUsYUFB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TSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0NBQ2hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxhQUFhLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLGFBQWEsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUN6RixDQUFDOzRCQUNELE1BQU07b0JBQ1YsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxJQUFJLENBQ1YsdUNBQXVDLFlBQVksWUFBWSxJQUFJLENBQUMsU0FBUyxpQ0FBaUMsQ0FDL0csQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGFzcywgRmllbGQsIEZpbHRlckNvbnRleHQsIFRleHRGaWVsZFR5cGVzIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcblxuZXhwb3J0IGNsYXNzIENxbFV0aWxzIHtcbiAgc3RhdGljIGdldENRTFBhcmFtc0ZvcihcbiAgICBkYXRhc291cmNlSWQ6IHN0cmluZyxcbiAgICBmaWx0ZXJzOiB7IFtwOiBzdHJpbmddOiBGaWx0ZXJDb250ZXh0W10gfSxcbiAgICBjbGFzc2VzOiBDbGFzc1tdLFxuICAgIGZpZWxkczogRmllbGRbXVxuICApOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIWZpbHRlcnMgfHwgIWRhdGFzb3VyY2VJZCB8fCAhZmlsdGVyc1tkYXRhc291cmNlSWRdIHx8IGZpbHRlcnNbZGF0YXNvdXJjZUlkXS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGF0dHJpYnV0ZXNSZWZlcmVuY2UgPSBjbGFzc2VzLm1hcCgoY2xhenopID0+IGNsYXp6LmF0dHJpYnV0ZXMpLmZsYXQoKTtcblxuICAgIHJldHVybiBmaWx0ZXJzW2RhdGFzb3VyY2VJZF1cbiAgICAgIC5tYXAoKGNvbmQpID0+IHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1JlZmVyZW5jZS5maW5kKChhdHRyKSA9PiBhdHRyLmlkID09PSBjb25kLmF0dHJpYnV0ZSk7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gZmllbGRzLmZpbmQoKGYpID0+IGYuaWQgPT09IGF0dHJpYnV0ZT8uZmllbGQpO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVOYW1lID0gYXR0cmlidXRlPy50ZWNobmljYWxOYW1lO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbmRpdGlvbnNGb3JWYWx1ZShhdHRyaWJ1dGVOYW1lLCBjb25kLCBmaWVsZCwgZGF0YXNvdXJjZUlkKTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChjb25kcykgPT4gY29uZHMubGVuZ3RoID4gMClcbiAgICAgIC5qb2luKCcgQU5EICcpO1xuICB9XG5cbiAgc3RhdGljIGdldENvbmRpdGlvbnNGb3JWYWx1ZShcbiAgICBhdHRyaWJ1dGVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgY29uZDogRmlsdGVyQ29udGV4dCxcbiAgICBmaWVsZDogRmllbGQgfCB1bmRlZmluZWQsXG4gICAgZGF0YXNvdXJjZUlkOiBzdHJpbmdcbiAgKSB7XG4gICAgbGV0IGNvbmRpdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBjb25zdCB2YWx1ZXMgPSAoQXJyYXkuaXNBcnJheShjb25kLnZhbHVlKSA/IGNvbmQudmFsdWUgOiBbY29uZC52YWx1ZV0pIGFzIHN0cmluZ1tdIHwgbnVtYmVyW107XG5cbiAgICBpZiAoYXR0cmlidXRlTmFtZSkge1xuICAgICAgdmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCB2YWx1ZS5sZW5ndGggPiAwKSkge1xuICAgICAgICAgIGNvbnN0IHF1b3RlU2FmZVZhbHVlID0gYCR7dmFsdWV9YC5yZXBsYWNlKC8nL2csIFwiJydcIik7XG4gICAgICAgICAgc3dpdGNoIChjb25kLm9wZXJhdG9yKSB7XG4gICAgICAgICAgICBjYXNlICdFUVVBTFMnOlxuICAgICAgICAgICAgICBpZiAoIWZpZWxkIHx8IFRleHRGaWVsZFR5cGVzLmluY2x1ZGVzKGZpZWxkPy50eXBlKSkge1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfT0nJHtxdW90ZVNhZmVWYWx1ZX0nYCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAke2F0dHJpYnV0ZU5hbWV9PSR7dmFsdWV9YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdDT05UQUlOUyc6XG4gICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfSBMSUtFICclJHtxdW90ZVNhZmVWYWx1ZX0lJ2ApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1NUQVJUX1dJVEgnOlxuICAgICAgICAgICAgICBjb25kaXRpb25zLnB1c2goYCR7YXR0cmlidXRlTmFtZX0gTElLRSAnJHtxdW90ZVNhZmVWYWx1ZX0lJ2ApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VORF9XSVRIJzpcbiAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAke2F0dHJpYnV0ZU5hbWV9IExJS0UgJyUke3F1b3RlU2FmZVZhbHVlfSdgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdHUkVBVEVSX1RIQU4nOlxuICAgICAgICAgICAgICBjb25kaXRpb25zLnB1c2goYCR7YXR0cmlidXRlTmFtZX0+JHt2YWx1ZX1gKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdMT1dFUl9USEFOJzpcbiAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAke2F0dHJpYnV0ZU5hbWV9PCR7dmFsdWV9YCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnT1VUU0lERSc6XG4gICAgICAgICAgICAgIGNvbnN0IHNwbGl0SSA9ICh2YWx1ZSBhcyBzdHJpbmcpPy5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgICBpZiAoc3BsaXRJICYmIHNwbGl0SS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAoICR7YXR0cmlidXRlTmFtZX08JHtzcGxpdElbMF19IEFORCAke2F0dHJpYnV0ZU5hbWV9PiR7c3BsaXRJWzFdfSApYCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdJTlNJREUnOlxuICAgICAgICAgICAgICBjb25zdCBzcGxpdE8gPSAodmFsdWUgYXMgc3RyaW5nKT8uc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgaWYgKHNwbGl0TyAmJiBzcGxpdE8ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgKCAke2F0dHJpYnV0ZU5hbWV9PiR7c3BsaXRPWzBdfSBBTkQgJHthdHRyaWJ1dGVOYW1lfTwke3NwbGl0T1sxXX0gKWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYENhbm5vdCBhZGQgY3FsIGZpbHRlciBvbiBkYXRhc291cmNlICR7ZGF0YXNvdXJjZUlkfSBiZWNhdXNlICR7Y29uZC5hdHRyaWJ1dGV9IGF0dHJpYnV0ZSBub3QgZm91bmQgaW4gY2xhc3Nlc2BcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmRpdGlvbnMubGVuZ3RoID4gMSA/ICcoICcgKyBjb25kaXRpb25zLmpvaW4oJyBPUiAnKSArICcgKScgOiBjb25kaXRpb25zWzBdO1xuICB9XG59XG4iXX0=
@@ -278,60 +278,66 @@ class CqlUtils {
278
278
  const attributesReference = classes.map((clazz) => clazz.attributes).flat();
279
279
  return filters[datasourceId]
280
280
  .map((cond) => {
281
- const conditions = [];
282
281
  const attribute = attributesReference.find((attr) => attr.id === cond.attribute);
283
282
  const field = fields.find((f) => f.id === attribute?.field);
284
283
  const attributeName = attribute?.technicalName;
285
- if (attributeName && cond.value && (typeof cond.value !== 'string' || cond.value.length > 0)) {
286
- const quoteSafeValue = `${cond.value}`.replace(/'/g, "''");
287
- switch (cond.operator) {
288
- case 'EQUALS':
289
- if (!field || TextFieldTypes.includes(field?.type)) {
290
- conditions.push(`${attributeName}='${quoteSafeValue}'`);
291
- }
292
- else {
293
- conditions.push(`${attributeName}=${cond.value}`);
294
- }
295
- break;
296
- case 'CONTAINS':
297
- conditions.push(`${attributeName} LIKE '%${quoteSafeValue}%'`);
298
- break;
299
- case 'START_WITH':
300
- conditions.push(`${attributeName} LIKE '${quoteSafeValue}%'`);
301
- break;
302
- case 'END_WITH':
303
- conditions.push(`${attributeName} LIKE '%${quoteSafeValue}'`);
304
- break;
305
- case 'GREATER_THAN':
306
- conditions.push(`${attributeName}>${cond.value}`);
307
- break;
308
- case 'LOWER_THAN':
309
- conditions.push(`${attributeName}<${cond.value}`);
310
- break;
311
- case 'INSIDE':
312
- const splitI = cond.value?.split(',');
313
- if (splitI && splitI.length > 1) {
314
- conditions.push(`${attributeName}<${splitI[0]}`);
315
- conditions.push(`${attributeName}>${splitI[1]}`);
316
- }
317
- break;
318
- case 'OUTSIDE':
319
- const splitO = cond.value?.split(',');
320
- if (splitO && splitO.length > 1) {
321
- conditions.push(`${attributeName}>${splitO[0]}`);
322
- conditions.push(`${attributeName}<${splitO[1]}`);
323
- }
324
- break;
325
- }
326
- }
327
- else {
328
- console.warn(`Cannot add cql filter on datasource ${datasourceId} because ${cond.attribute} attribute not found in classes`);
329
- }
330
- return conditions;
284
+ return this.getConditionsForValue(attributeName, cond, field, datasourceId);
331
285
  })
332
286
  .filter((conds) => conds.length > 0)
333
287
  .join(' AND ');
334
288
  }
289
+ static getConditionsForValue(attributeName, cond, field, datasourceId) {
290
+ let conditions = [];
291
+ const values = (Array.isArray(cond.value) ? cond.value : [cond.value]);
292
+ if (attributeName) {
293
+ values.forEach((value) => {
294
+ if (value && (typeof value !== 'string' || value.length > 0)) {
295
+ const quoteSafeValue = `${value}`.replace(/'/g, "''");
296
+ switch (cond.operator) {
297
+ case 'EQUALS':
298
+ if (!field || TextFieldTypes.includes(field?.type)) {
299
+ conditions.push(`${attributeName}='${quoteSafeValue}'`);
300
+ }
301
+ else {
302
+ conditions.push(`${attributeName}=${value}`);
303
+ }
304
+ break;
305
+ case 'CONTAINS':
306
+ conditions.push(`${attributeName} LIKE '%${quoteSafeValue}%'`);
307
+ break;
308
+ case 'START_WITH':
309
+ conditions.push(`${attributeName} LIKE '${quoteSafeValue}%'`);
310
+ break;
311
+ case 'END_WITH':
312
+ conditions.push(`${attributeName} LIKE '%${quoteSafeValue}'`);
313
+ break;
314
+ case 'GREATER_THAN':
315
+ conditions.push(`${attributeName}>${value}`);
316
+ break;
317
+ case 'LOWER_THAN':
318
+ conditions.push(`${attributeName}<${value}`);
319
+ break;
320
+ case 'OUTSIDE':
321
+ const splitI = value?.split(',');
322
+ if (splitI && splitI.length > 1) {
323
+ conditions.push(`( ${attributeName}<${splitI[0]} AND ${attributeName}>${splitI[1]} )`);
324
+ }
325
+ break;
326
+ case 'INSIDE':
327
+ const splitO = value?.split(',');
328
+ if (splitO && splitO.length > 1) {
329
+ conditions.push(`( ${attributeName}>${splitO[0]} AND ${attributeName}<${splitO[1]} )`);
330
+ }
331
+ break;
332
+ }
333
+ }
334
+ });
335
+ }
336
+ else {
337
+ console.warn(`Cannot add cql filter on datasource ${datasourceId} because ${cond.attribute} attribute not found in classes`);
338
+ }
339
+ return conditions.length > 1 ? '( ' + conditions.join(' OR ') + ' )' : conditions[0];
340
+ }
335
341
  }
336
342
 
337
343
  class XMLUtils {
@@ -2050,6 +2056,9 @@ class WidgetMapComponent extends DataWidgetComponent {
2050
2056
  }
2051
2057
  }
2052
2058
  }
2059
+ else {
2060
+ layer.title = geoLayer.paramLayer;
2061
+ }
2053
2062
  }
2054
2063
  else {
2055
2064
  layer.title = this.translateService.instant(`@pry.widget.map.layerType.${layer.type}`, { ...layer });