@qrvey/filters 0.0.8 → 0.0.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/CHANGELOG.md +8 -0
- package/dist/cjs/classes/FilterBuilder.d.ts +2 -2
- package/dist/cjs/classes/FilterBuilder.d.ts.map +1 -1
- package/dist/cjs/classes/FilterBuilder.js +12 -10
- package/dist/cjs/helpers/filter-adapt.helpers.js +5 -5
- package/dist/cjs/helpers/getFilterId.d.ts +4 -6
- package/dist/cjs/helpers/getFilterId.d.ts.map +1 -1
- package/dist/cjs/helpers/getFilterId.js +4 -6
- package/dist/cjs/models/filter-builder.models.d.ts +2 -2
- package/dist/cjs/models/filter-builder.models.d.ts.map +1 -1
- package/dist/cjs/resources/filter-visual.resources.d.ts +3 -3
- package/dist/cjs/resources/filter-visual.resources.d.ts.map +1 -1
- package/dist/classes/FilterBuilder.d.ts +2 -2
- package/dist/classes/FilterBuilder.d.ts.map +1 -1
- package/dist/classes/FilterBuilder.js +12 -10
- package/dist/helpers/filter-adapt.helpers.js +5 -5
- package/dist/helpers/getFilterId.d.ts +4 -6
- package/dist/helpers/getFilterId.d.ts.map +1 -1
- package/dist/helpers/getFilterId.js +4 -6
- package/dist/models/filter-builder.models.d.ts +2 -2
- package/dist/models/filter-builder.models.d.ts.map +1 -1
- package/dist/resources/filter-visual.resources.d.ts +3 -3
- package/dist/resources/filter-visual.resources.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/classes/FilterBuilder.ts +23 -17
- package/src/helpers/filter-adapt.helpers.ts +5 -5
- package/src/helpers/getFilterId.ts +4 -6
- package/src/models/filter-builder.models.ts +2 -2
- package/src/resources/filter-visual.resources.ts +3 -3
- package/tests/classes/FilterBuilder.test.ts +138 -0
- package/tests/classes/FilterResources.test.ts +12 -0
- package/tests/mock/filters.mock.ts +38 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,8 +4,16 @@ All notable changes to this project will be documented in this file. Dates are d
|
|
|
4
4
|
|
|
5
5
|
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
6
6
|
|
|
7
|
+
#### [v0.0.9](https://bitbucket.org/qrvey/qrvey_filters/compare/v0.0.9..v0.0.8)
|
|
8
|
+
|
|
9
|
+
- test: added test for FilterBuilder and adjusted code to fulfill expected results [`58490ed`](https://bitbucket.org/qrvey/qrvey_filters/commits/58490edf77af562ad3e74afa55a41beceaed6cf4)
|
|
10
|
+
- refactor: changed some names for the UI_3 version filter structure [`e09a7d8`](https://bitbucket.org/qrvey/qrvey_filters/commits/e09a7d8e4fe0218a9853d758f4ca85ab95504b8a)
|
|
11
|
+
- test: added more test to cover 100 lines on filter resources [`530b1b3`](https://bitbucket.org/qrvey/qrvey_filters/commits/530b1b3e462e5dd19a3e140d5667559d62ebe787)
|
|
12
|
+
|
|
7
13
|
#### [v0.0.8](https://bitbucket.org/qrvey/qrvey_filters/compare/v0.0.8..v0.0.7)
|
|
8
14
|
|
|
15
|
+
> 25 April 2024
|
|
16
|
+
|
|
9
17
|
- test: created some unit tests for the Filter Builder [`aca85d3`](https://bitbucket.org/qrvey/qrvey_filters/commits/aca85d3e3e7f5aafd10be40937323d2474351dfd)
|
|
10
18
|
- test: added unit tests for Filter Resources [`fcf91fc`](https://bitbucket.org/qrvey/qrvey_filters/commits/fcf91fc9f755bdc6f7a624a870de93ec4b971b47)
|
|
11
19
|
- test: added unit tests for Filter Searcher [`d24ba73`](https://bitbucket.org/qrvey/qrvey_filters/commits/d24ba73aed877070c38d069a120d4c4efeecdef1)
|
|
@@ -88,7 +88,7 @@ export declare class FilterBuilder implements IFilterBuilderAdd, IFilterBuilderA
|
|
|
88
88
|
* @param indexes the index collection to search the value to remove
|
|
89
89
|
* @returns the new filter collection
|
|
90
90
|
*/
|
|
91
|
-
deleteValues(id: string, indexes: number[]):
|
|
91
|
+
deleteValues(id: string, indexes: number[]): IFilterBuilderSingleReturn;
|
|
92
92
|
/**
|
|
93
93
|
* **************************************************************************************************
|
|
94
94
|
****************************************** Editing *************************************************
|
|
@@ -125,7 +125,7 @@ export declare class FilterBuilder implements IFilterBuilderAdd, IFilterBuilderA
|
|
|
125
125
|
* @param indexes the index collection to edit
|
|
126
126
|
* @returns the new filter collection
|
|
127
127
|
*/
|
|
128
|
-
editValues(id: string, values: IFilterValue[], indexes: number[]):
|
|
128
|
+
editValues(id: string, values: IFilterValue[], indexes: number[]): IFilterBuilderSingleReturn;
|
|
129
129
|
/**
|
|
130
130
|
* **************************************************************************************************
|
|
131
131
|
****************************************** Others **************************************************
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBuilder.d.ts","sourceRoot":"","sources":["../../../src/classes/FilterBuilder.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,4BAA4B,EAC5B,iBAAiB,EACjB,0BAA0B,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAkB,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzE;;GAEG;AACH,qBAAa,aACX,YACE,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB;IAWP,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE;IATxC;;OAEG;IACH,OAAO,CAAC,YAAY,CAAiB;IAErC;;;OAGG;gBACmB,OAAO,GAAE,OAAO,EAAO;IAK7C;;;;OAIG;IAEH;;;;;;OAMG;IACI,UAAU,CACf,UAAU,EAAE,OAAO,EAAE,EACrB,WAAW,UAAO,GACjB,4BAA4B;IAmB/B;;;;;;OAMG;IACI,SAAS,CACd,MAAM,EAAE,OAAO,EACf,WAAW,UAAO,GACjB,0BAA0B;IA0B7B;;;;;OAKG;IACI,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,0BAA0B;IAW5E;;;;;OAKG;IACI,SAAS,CACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,YAAY,EAAE,GACrB,0BAA0B;
|
|
1
|
+
{"version":3,"file":"FilterBuilder.d.ts","sourceRoot":"","sources":["../../../src/classes/FilterBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -182,11 +182,13 @@ class FilterBuilder {
|
|
|
182
182
|
* @returns the new filter collection
|
|
183
183
|
*/
|
|
184
184
|
deleteValue(id, index) {
|
|
185
|
+
if (!Number.isInteger(index))
|
|
186
|
+
return { resulting: this.filters };
|
|
185
187
|
const filterIndex = this.searchEngine.findIndexByParams({ id });
|
|
186
188
|
let affectedValues;
|
|
187
|
-
let affectedFilter = this.filters[
|
|
189
|
+
let affectedFilter = this.filters[filterIndex];
|
|
188
190
|
if (filterIndex > -1) {
|
|
189
|
-
affectedValues = this.filters[
|
|
191
|
+
affectedValues = this.filters[filterIndex].values?.splice(index, 1);
|
|
190
192
|
affectedFilter = { ...affectedFilter, values: affectedValues };
|
|
191
193
|
}
|
|
192
194
|
this.sync();
|
|
@@ -201,12 +203,11 @@ class FilterBuilder {
|
|
|
201
203
|
deleteValues(id, indexes) {
|
|
202
204
|
if (!Array.isArray(indexes))
|
|
203
205
|
return { resulting: this.filters };
|
|
206
|
+
const sortedIndex = indexes.reverse();
|
|
204
207
|
const copiedFilters = (0, utils_1.objectCopy)(this.filters);
|
|
205
|
-
const affectedFilters = [];
|
|
206
208
|
try {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
affectedFilters.push(resultingFilter.affected);
|
|
209
|
+
sortedIndex.forEach((index) => {
|
|
210
|
+
this.deleteValue(id, index);
|
|
210
211
|
});
|
|
211
212
|
}
|
|
212
213
|
catch (_error) {
|
|
@@ -214,7 +215,8 @@ class FilterBuilder {
|
|
|
214
215
|
return { resulting: copiedFilters };
|
|
215
216
|
}
|
|
216
217
|
this.sync();
|
|
217
|
-
|
|
218
|
+
const affected = this.searchEngine.findByParams({ id });
|
|
219
|
+
return { resulting: this.filters, affected };
|
|
218
220
|
}
|
|
219
221
|
/**
|
|
220
222
|
* **************************************************************************************************
|
|
@@ -304,11 +306,11 @@ class FilterBuilder {
|
|
|
304
306
|
if ((0, utils_1.isEmpty)(values) || filterIndex < 0 || !Array.isArray(indexes))
|
|
305
307
|
return { resulting: this.filters };
|
|
306
308
|
const copiedFilters = (0, utils_1.objectCopy)(this.filters);
|
|
307
|
-
|
|
309
|
+
let finalAffectedFilter;
|
|
308
310
|
try {
|
|
309
311
|
values.forEach((value, index) => {
|
|
310
312
|
const affectedFilter = this.editValue(id, value, indexes[index]);
|
|
311
|
-
|
|
313
|
+
finalAffectedFilter = affectedFilter.affected;
|
|
312
314
|
});
|
|
313
315
|
}
|
|
314
316
|
catch (_error) {
|
|
@@ -316,7 +318,7 @@ class FilterBuilder {
|
|
|
316
318
|
return { resulting: copiedFilters };
|
|
317
319
|
}
|
|
318
320
|
this.sync();
|
|
319
|
-
return { resulting: this.filters, affected:
|
|
321
|
+
return { resulting: this.filters, affected: finalAffectedFilter };
|
|
320
322
|
}
|
|
321
323
|
/**
|
|
322
324
|
* **************************************************************************************************
|
|
@@ -103,9 +103,9 @@ function buildScopes(filters = [], datasets = [], interactiveTable) {
|
|
|
103
103
|
const uiFilter = buildFilter(filter, datasetInfo, interactiveTable);
|
|
104
104
|
const uiDataset = buildDataset(filter, datasetInfo, interactiveTable);
|
|
105
105
|
const uiScope = buildScope(filter, interactiveTable);
|
|
106
|
-
const scopeIndex = scopes.findIndex((sc) => sc.scope === filter.scope && sc.
|
|
106
|
+
const scopeIndex = scopes.findIndex((sc) => sc.scope === filter.scope && sc.id === filter.scopeId);
|
|
107
107
|
const datasetIndex = scopeIndex > -1
|
|
108
|
-
? scopes[scopeIndex].datasets.findIndex((dt) => dt.
|
|
108
|
+
? scopes[scopeIndex].datasets.findIndex((dt) => dt.id === filter.datasetId)
|
|
109
109
|
: -1;
|
|
110
110
|
if (scopeIndex === -1) {
|
|
111
111
|
scopes.push({
|
|
@@ -137,7 +137,7 @@ function buildScope(filter, interactiveTable) {
|
|
|
137
137
|
displayed: displayed ?? true,
|
|
138
138
|
enabled: enabled ?? true,
|
|
139
139
|
scope: filter.scope,
|
|
140
|
-
|
|
140
|
+
id: filter.scopeId,
|
|
141
141
|
section: filter.section,
|
|
142
142
|
};
|
|
143
143
|
}
|
|
@@ -152,8 +152,8 @@ function buildDataset(filter, dataset, interactiveTable) {
|
|
|
152
152
|
const { collapsed, displayed, enabled } = interactiveTable?.datasets.find((interactive) => interactive.datasetId === filter.datasetId) ?? {};
|
|
153
153
|
return {
|
|
154
154
|
collapsed: collapsed ?? false,
|
|
155
|
-
|
|
156
|
-
|
|
155
|
+
id: filter.datasetId,
|
|
156
|
+
label: dataset?.label || "",
|
|
157
157
|
displayed: displayed ?? true,
|
|
158
158
|
enabled: enabled ?? true,
|
|
159
159
|
filters: [],
|
|
@@ -3,14 +3,12 @@ import { IFilter } from "../resources/filters.resources";
|
|
|
3
3
|
* Get the Filter ID by the filter structure
|
|
4
4
|
* The order of the epression ID is:
|
|
5
5
|
* - Scope Type
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* - columnid
|
|
6
|
+
* - scope Id
|
|
7
|
+
* - dataset Id
|
|
8
|
+
* - column Id
|
|
10
9
|
* - validator
|
|
11
|
-
* -
|
|
10
|
+
* - grouping
|
|
12
11
|
* - Column Aggregate
|
|
13
|
-
* - Column Calculation
|
|
14
12
|
* - Optional Index
|
|
15
13
|
* @param filter the filter structure
|
|
16
14
|
* @param index an aditional number to add into the ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFilterId.d.ts","sourceRoot":"","sources":["../../../src/helpers/getFilterId.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"getFilterId.d.ts","sourceRoot":"","sources":["../../../src/helpers/getFilterId.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAenE"}
|
|
@@ -6,14 +6,12 @@ const utils_1 = require("@qrvey/utils");
|
|
|
6
6
|
* Get the Filter ID by the filter structure
|
|
7
7
|
* The order of the epression ID is:
|
|
8
8
|
* - Scope Type
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
12
|
-
* - columnid
|
|
9
|
+
* - scope Id
|
|
10
|
+
* - dataset Id
|
|
11
|
+
* - column Id
|
|
13
12
|
* - validator
|
|
14
|
-
* -
|
|
13
|
+
* - grouping
|
|
15
14
|
* - Column Aggregate
|
|
16
|
-
* - Column Calculation
|
|
17
15
|
* - Optional Index
|
|
18
16
|
* @param filter the filter structure
|
|
19
17
|
* @param index an aditional number to add into the ID
|
|
@@ -75,7 +75,7 @@ export interface IFilterBuilderDeleteValue {
|
|
|
75
75
|
* @param indexes the index collection to search the value to remove
|
|
76
76
|
* @returns the new filter collection
|
|
77
77
|
*/
|
|
78
|
-
deleteValues: (id: string, indexes: number[]) =>
|
|
78
|
+
deleteValues: (id: string, indexes: number[]) => IFilterBuilderSingleReturn;
|
|
79
79
|
}
|
|
80
80
|
/**
|
|
81
81
|
* Structure module for the editing filters
|
|
@@ -117,7 +117,7 @@ export interface IFilterBuilderEditValue {
|
|
|
117
117
|
* @param indexes the index collection to edit
|
|
118
118
|
* @returns the new filter collection
|
|
119
119
|
*/
|
|
120
|
-
editValues: (id: string, values: IFilterValue[], indexes: number[]) =>
|
|
120
|
+
editValues: (id: string, values: IFilterValue[], indexes: number[]) => IFilterBuilderSingleReturn;
|
|
121
121
|
}
|
|
122
122
|
/**
|
|
123
123
|
* Structure module for the setting filters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-builder.models.d.ts","sourceRoot":"","sources":["../../../src/models/filter-builder.models.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,SAAS,EAAE,CACT,MAAM,EAAE,OAAO,EACf,WAAW,CAAC,EAAE,OAAO,KAClB,0BAA0B,CAAC;IAChC;;;;;;OAMG;IACH,UAAU,EAAE,CACV,MAAM,EAAE,OAAO,EAAE,EACjB,WAAW,CAAC,EAAE,OAAO,KAClB,4BAA4B,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,0BAA0B,CAAC;IAC1E;;;;;OAKG;IACH,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,0BAA0B,CAAC;CAC/E;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,0BAA0B,CAAC;IACzD;;;;OAIG;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,4BAA4B,CAAC;CAChE;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,0BAA0B,CAAC;IACvE;;;;;OAKG;IACH,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"filter-builder.models.d.ts","sourceRoot":"","sources":["../../../src/models/filter-builder.models.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ export interface IFilterVisualScope extends IFilterVisualGeneral {
|
|
|
43
43
|
/**
|
|
44
44
|
* The scope ID
|
|
45
45
|
*/
|
|
46
|
-
|
|
46
|
+
id?: string;
|
|
47
47
|
/**
|
|
48
48
|
* The section of the filters
|
|
49
49
|
*/
|
|
@@ -60,11 +60,11 @@ export interface IFilterVisualDataset extends IFilterVisualGeneral {
|
|
|
60
60
|
/**
|
|
61
61
|
* Dataset ID
|
|
62
62
|
*/
|
|
63
|
-
|
|
63
|
+
id: string;
|
|
64
64
|
/**
|
|
65
65
|
* Dataset Label
|
|
66
66
|
*/
|
|
67
|
-
|
|
67
|
+
label: string;
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
70
|
* Structure for the visual filter items
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-visual.resources.d.ts","sourceRoot":"","sources":["../../../src/resources/filter-visual.resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAkB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,UAAU,oBAAoB;IAC5B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IACpB;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"filter-visual.resources.d.ts","sourceRoot":"","sources":["../../../src/resources/filter-visual.resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAkB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,UAAU,oBAAoB;IAC5B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IACpB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,EAAE,SAK/B,CAAC"}
|
|
@@ -88,7 +88,7 @@ export declare class FilterBuilder implements IFilterBuilderAdd, IFilterBuilderA
|
|
|
88
88
|
* @param indexes the index collection to search the value to remove
|
|
89
89
|
* @returns the new filter collection
|
|
90
90
|
*/
|
|
91
|
-
deleteValues(id: string, indexes: number[]):
|
|
91
|
+
deleteValues(id: string, indexes: number[]): IFilterBuilderSingleReturn;
|
|
92
92
|
/**
|
|
93
93
|
* **************************************************************************************************
|
|
94
94
|
****************************************** Editing *************************************************
|
|
@@ -125,7 +125,7 @@ export declare class FilterBuilder implements IFilterBuilderAdd, IFilterBuilderA
|
|
|
125
125
|
* @param indexes the index collection to edit
|
|
126
126
|
* @returns the new filter collection
|
|
127
127
|
*/
|
|
128
|
-
editValues(id: string, values: IFilterValue[], indexes: number[]):
|
|
128
|
+
editValues(id: string, values: IFilterValue[], indexes: number[]): IFilterBuilderSingleReturn;
|
|
129
129
|
/**
|
|
130
130
|
* **************************************************************************************************
|
|
131
131
|
****************************************** Others **************************************************
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBuilder.d.ts","sourceRoot":"","sources":["../../src/classes/FilterBuilder.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,4BAA4B,EAC5B,iBAAiB,EACjB,0BAA0B,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAkB,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzE;;GAEG;AACH,qBAAa,aACX,YACE,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB;IAWP,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE;IATxC;;OAEG;IACH,OAAO,CAAC,YAAY,CAAiB;IAErC;;;OAGG;gBACmB,OAAO,GAAE,OAAO,EAAO;IAK7C;;;;OAIG;IAEH;;;;;;OAMG;IACI,UAAU,CACf,UAAU,EAAE,OAAO,EAAE,EACrB,WAAW,UAAO,GACjB,4BAA4B;IAmB/B;;;;;;OAMG;IACI,SAAS,CACd,MAAM,EAAE,OAAO,EACf,WAAW,UAAO,GACjB,0BAA0B;IA0B7B;;;;;OAKG;IACI,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,0BAA0B;IAW5E;;;;;OAKG;IACI,SAAS,CACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,YAAY,EAAE,GACrB,0BAA0B;
|
|
1
|
+
{"version":3,"file":"FilterBuilder.d.ts","sourceRoot":"","sources":["../../src/classes/FilterBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -179,11 +179,13 @@ export class FilterBuilder {
|
|
|
179
179
|
* @returns the new filter collection
|
|
180
180
|
*/
|
|
181
181
|
deleteValue(id, index) {
|
|
182
|
+
if (!Number.isInteger(index))
|
|
183
|
+
return { resulting: this.filters };
|
|
182
184
|
const filterIndex = this.searchEngine.findIndexByParams({ id });
|
|
183
185
|
let affectedValues;
|
|
184
|
-
let affectedFilter = this.filters[
|
|
186
|
+
let affectedFilter = this.filters[filterIndex];
|
|
185
187
|
if (filterIndex > -1) {
|
|
186
|
-
affectedValues = this.filters[
|
|
188
|
+
affectedValues = this.filters[filterIndex].values?.splice(index, 1);
|
|
187
189
|
affectedFilter = { ...affectedFilter, values: affectedValues };
|
|
188
190
|
}
|
|
189
191
|
this.sync();
|
|
@@ -198,12 +200,11 @@ export class FilterBuilder {
|
|
|
198
200
|
deleteValues(id, indexes) {
|
|
199
201
|
if (!Array.isArray(indexes))
|
|
200
202
|
return { resulting: this.filters };
|
|
203
|
+
const sortedIndex = indexes.reverse();
|
|
201
204
|
const copiedFilters = objectCopy(this.filters);
|
|
202
|
-
const affectedFilters = [];
|
|
203
205
|
try {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
affectedFilters.push(resultingFilter.affected);
|
|
206
|
+
sortedIndex.forEach((index) => {
|
|
207
|
+
this.deleteValue(id, index);
|
|
207
208
|
});
|
|
208
209
|
}
|
|
209
210
|
catch (_error) {
|
|
@@ -211,7 +212,8 @@ export class FilterBuilder {
|
|
|
211
212
|
return { resulting: copiedFilters };
|
|
212
213
|
}
|
|
213
214
|
this.sync();
|
|
214
|
-
|
|
215
|
+
const affected = this.searchEngine.findByParams({ id });
|
|
216
|
+
return { resulting: this.filters, affected };
|
|
215
217
|
}
|
|
216
218
|
/**
|
|
217
219
|
* **************************************************************************************************
|
|
@@ -301,11 +303,11 @@ export class FilterBuilder {
|
|
|
301
303
|
if (isEmpty(values) || filterIndex < 0 || !Array.isArray(indexes))
|
|
302
304
|
return { resulting: this.filters };
|
|
303
305
|
const copiedFilters = objectCopy(this.filters);
|
|
304
|
-
|
|
306
|
+
let finalAffectedFilter;
|
|
305
307
|
try {
|
|
306
308
|
values.forEach((value, index) => {
|
|
307
309
|
const affectedFilter = this.editValue(id, value, indexes[index]);
|
|
308
|
-
|
|
310
|
+
finalAffectedFilter = affectedFilter.affected;
|
|
309
311
|
});
|
|
310
312
|
}
|
|
311
313
|
catch (_error) {
|
|
@@ -313,7 +315,7 @@ export class FilterBuilder {
|
|
|
313
315
|
return { resulting: copiedFilters };
|
|
314
316
|
}
|
|
315
317
|
this.sync();
|
|
316
|
-
return { resulting: this.filters, affected:
|
|
318
|
+
return { resulting: this.filters, affected: finalAffectedFilter };
|
|
317
319
|
}
|
|
318
320
|
/**
|
|
319
321
|
* **************************************************************************************************
|
|
@@ -97,9 +97,9 @@ function buildScopes(filters = [], datasets = [], interactiveTable) {
|
|
|
97
97
|
const uiFilter = buildFilter(filter, datasetInfo, interactiveTable);
|
|
98
98
|
const uiDataset = buildDataset(filter, datasetInfo, interactiveTable);
|
|
99
99
|
const uiScope = buildScope(filter, interactiveTable);
|
|
100
|
-
const scopeIndex = scopes.findIndex((sc) => sc.scope === filter.scope && sc.
|
|
100
|
+
const scopeIndex = scopes.findIndex((sc) => sc.scope === filter.scope && sc.id === filter.scopeId);
|
|
101
101
|
const datasetIndex = scopeIndex > -1
|
|
102
|
-
? scopes[scopeIndex].datasets.findIndex((dt) => dt.
|
|
102
|
+
? scopes[scopeIndex].datasets.findIndex((dt) => dt.id === filter.datasetId)
|
|
103
103
|
: -1;
|
|
104
104
|
if (scopeIndex === -1) {
|
|
105
105
|
scopes.push({
|
|
@@ -131,7 +131,7 @@ function buildScope(filter, interactiveTable) {
|
|
|
131
131
|
displayed: displayed ?? true,
|
|
132
132
|
enabled: enabled ?? true,
|
|
133
133
|
scope: filter.scope,
|
|
134
|
-
|
|
134
|
+
id: filter.scopeId,
|
|
135
135
|
section: filter.section,
|
|
136
136
|
};
|
|
137
137
|
}
|
|
@@ -146,8 +146,8 @@ function buildDataset(filter, dataset, interactiveTable) {
|
|
|
146
146
|
const { collapsed, displayed, enabled } = interactiveTable?.datasets.find((interactive) => interactive.datasetId === filter.datasetId) ?? {};
|
|
147
147
|
return {
|
|
148
148
|
collapsed: collapsed ?? false,
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
id: filter.datasetId,
|
|
150
|
+
label: dataset?.label || "",
|
|
151
151
|
displayed: displayed ?? true,
|
|
152
152
|
enabled: enabled ?? true,
|
|
153
153
|
filters: [],
|
|
@@ -3,14 +3,12 @@ import { IFilter } from "../resources/filters.resources";
|
|
|
3
3
|
* Get the Filter ID by the filter structure
|
|
4
4
|
* The order of the epression ID is:
|
|
5
5
|
* - Scope Type
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* - columnid
|
|
6
|
+
* - scope Id
|
|
7
|
+
* - dataset Id
|
|
8
|
+
* - column Id
|
|
10
9
|
* - validator
|
|
11
|
-
* -
|
|
10
|
+
* - grouping
|
|
12
11
|
* - Column Aggregate
|
|
13
|
-
* - Column Calculation
|
|
14
12
|
* - Optional Index
|
|
15
13
|
* @param filter the filter structure
|
|
16
14
|
* @param index an aditional number to add into the ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFilterId.d.ts","sourceRoot":"","sources":["../../src/helpers/getFilterId.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"getFilterId.d.ts","sourceRoot":"","sources":["../../src/helpers/getFilterId.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAenE"}
|
|
@@ -3,14 +3,12 @@ import { isEmpty, isObject } from "@qrvey/utils";
|
|
|
3
3
|
* Get the Filter ID by the filter structure
|
|
4
4
|
* The order of the epression ID is:
|
|
5
5
|
* - Scope Type
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* - columnid
|
|
6
|
+
* - scope Id
|
|
7
|
+
* - dataset Id
|
|
8
|
+
* - column Id
|
|
10
9
|
* - validator
|
|
11
|
-
* -
|
|
10
|
+
* - grouping
|
|
12
11
|
* - Column Aggregate
|
|
13
|
-
* - Column Calculation
|
|
14
12
|
* - Optional Index
|
|
15
13
|
* @param filter the filter structure
|
|
16
14
|
* @param index an aditional number to add into the ID
|
|
@@ -75,7 +75,7 @@ export interface IFilterBuilderDeleteValue {
|
|
|
75
75
|
* @param indexes the index collection to search the value to remove
|
|
76
76
|
* @returns the new filter collection
|
|
77
77
|
*/
|
|
78
|
-
deleteValues: (id: string, indexes: number[]) =>
|
|
78
|
+
deleteValues: (id: string, indexes: number[]) => IFilterBuilderSingleReturn;
|
|
79
79
|
}
|
|
80
80
|
/**
|
|
81
81
|
* Structure module for the editing filters
|
|
@@ -117,7 +117,7 @@ export interface IFilterBuilderEditValue {
|
|
|
117
117
|
* @param indexes the index collection to edit
|
|
118
118
|
* @returns the new filter collection
|
|
119
119
|
*/
|
|
120
|
-
editValues: (id: string, values: IFilterValue[], indexes: number[]) =>
|
|
120
|
+
editValues: (id: string, values: IFilterValue[], indexes: number[]) => IFilterBuilderSingleReturn;
|
|
121
121
|
}
|
|
122
122
|
/**
|
|
123
123
|
* Structure module for the setting filters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-builder.models.d.ts","sourceRoot":"","sources":["../../src/models/filter-builder.models.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,SAAS,EAAE,CACT,MAAM,EAAE,OAAO,EACf,WAAW,CAAC,EAAE,OAAO,KAClB,0BAA0B,CAAC;IAChC;;;;;;OAMG;IACH,UAAU,EAAE,CACV,MAAM,EAAE,OAAO,EAAE,EACjB,WAAW,CAAC,EAAE,OAAO,KAClB,4BAA4B,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,0BAA0B,CAAC;IAC1E;;;;;OAKG;IACH,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,0BAA0B,CAAC;CAC/E;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,0BAA0B,CAAC;IACzD;;;;OAIG;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,4BAA4B,CAAC;CAChE;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,0BAA0B,CAAC;IACvE;;;;;OAKG;IACH,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"filter-builder.models.d.ts","sourceRoot":"","sources":["../../src/models/filter-builder.models.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ export interface IFilterVisualScope extends IFilterVisualGeneral {
|
|
|
43
43
|
/**
|
|
44
44
|
* The scope ID
|
|
45
45
|
*/
|
|
46
|
-
|
|
46
|
+
id?: string;
|
|
47
47
|
/**
|
|
48
48
|
* The section of the filters
|
|
49
49
|
*/
|
|
@@ -60,11 +60,11 @@ export interface IFilterVisualDataset extends IFilterVisualGeneral {
|
|
|
60
60
|
/**
|
|
61
61
|
* Dataset ID
|
|
62
62
|
*/
|
|
63
|
-
|
|
63
|
+
id: string;
|
|
64
64
|
/**
|
|
65
65
|
* Dataset Label
|
|
66
66
|
*/
|
|
67
|
-
|
|
67
|
+
label: string;
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
70
|
* Structure for the visual filter items
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-visual.resources.d.ts","sourceRoot":"","sources":["../../src/resources/filter-visual.resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAkB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,UAAU,oBAAoB;IAC5B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IACpB;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"filter-visual.resources.d.ts","sourceRoot":"","sources":["../../src/resources/filter-visual.resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAkB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,UAAU,oBAAoB;IAC5B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IACpB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,EAAE,SAK/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -154,7 +154,10 @@ export class FilterBuilder
|
|
|
154
154
|
let finalAffectedFilter: IFilter;
|
|
155
155
|
try {
|
|
156
156
|
values.forEach((value: IFilterValue) => {
|
|
157
|
-
const affectedFilter = this.addValue(
|
|
157
|
+
const affectedFilter: IFilterBuilderSingleReturn = this.addValue(
|
|
158
|
+
id,
|
|
159
|
+
value,
|
|
160
|
+
);
|
|
158
161
|
finalAffectedFilter = affectedFilter.affected!;
|
|
159
162
|
});
|
|
160
163
|
} catch (_error) {
|
|
@@ -236,11 +239,13 @@ export class FilterBuilder
|
|
|
236
239
|
* @returns the new filter collection
|
|
237
240
|
*/
|
|
238
241
|
public deleteValue(id: string, index: number): IFilterBuilderSingleReturn {
|
|
242
|
+
if (!Number.isInteger(index)) return { resulting: this.filters };
|
|
243
|
+
|
|
239
244
|
const filterIndex = this.searchEngine.findIndexByParams({ id });
|
|
240
245
|
let affectedValues: IFilterValue[] | undefined;
|
|
241
|
-
let affectedFilter: IFilter = this.filters[
|
|
246
|
+
let affectedFilter: IFilter = this.filters[filterIndex];
|
|
242
247
|
if (filterIndex > -1) {
|
|
243
|
-
affectedValues = this.filters[
|
|
248
|
+
affectedValues = this.filters[filterIndex].values?.splice(index, 1);
|
|
244
249
|
affectedFilter = { ...affectedFilter, values: affectedValues };
|
|
245
250
|
}
|
|
246
251
|
|
|
@@ -257,18 +262,14 @@ export class FilterBuilder
|
|
|
257
262
|
public deleteValues(
|
|
258
263
|
id: string,
|
|
259
264
|
indexes: number[],
|
|
260
|
-
):
|
|
265
|
+
): IFilterBuilderSingleReturn {
|
|
261
266
|
if (!Array.isArray(indexes)) return { resulting: this.filters };
|
|
262
267
|
|
|
268
|
+
const sortedIndex = indexes.reverse();
|
|
263
269
|
const copiedFilters = objectCopy(this.filters);
|
|
264
|
-
const affectedFilters: IFilter[] = [];
|
|
265
270
|
try {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
id,
|
|
269
|
-
index,
|
|
270
|
-
);
|
|
271
|
-
affectedFilters.push(resultingFilter.affected!);
|
|
271
|
+
sortedIndex.forEach((index: number) => {
|
|
272
|
+
this.deleteValue(id, index);
|
|
272
273
|
});
|
|
273
274
|
} catch (_error) {
|
|
274
275
|
this.filters = copiedFilters;
|
|
@@ -276,7 +277,8 @@ export class FilterBuilder
|
|
|
276
277
|
}
|
|
277
278
|
|
|
278
279
|
this.sync();
|
|
279
|
-
|
|
280
|
+
const affected = this.searchEngine.findByParams({ id });
|
|
281
|
+
return { resulting: this.filters, affected };
|
|
280
282
|
}
|
|
281
283
|
|
|
282
284
|
/**
|
|
@@ -393,17 +395,21 @@ export class FilterBuilder
|
|
|
393
395
|
id: string,
|
|
394
396
|
values: IFilterValue[],
|
|
395
397
|
indexes: number[],
|
|
396
|
-
):
|
|
398
|
+
): IFilterBuilderSingleReturn {
|
|
397
399
|
const filterIndex = this.searchEngine.findIndexByParams({ id });
|
|
398
400
|
if (isEmpty(values) || filterIndex < 0 || !Array.isArray(indexes))
|
|
399
401
|
return { resulting: this.filters };
|
|
400
402
|
|
|
401
403
|
const copiedFilters = objectCopy(this.filters);
|
|
402
|
-
|
|
404
|
+
let finalAffectedFilter: IFilter;
|
|
403
405
|
try {
|
|
404
406
|
values.forEach((value: IFilterValue, index: number) => {
|
|
405
|
-
const affectedFilter = this.editValue(
|
|
406
|
-
|
|
407
|
+
const affectedFilter: IFilterBuilderSingleReturn = this.editValue(
|
|
408
|
+
id,
|
|
409
|
+
value,
|
|
410
|
+
indexes[index],
|
|
411
|
+
);
|
|
412
|
+
finalAffectedFilter = affectedFilter.affected!;
|
|
407
413
|
});
|
|
408
414
|
} catch (_error) {
|
|
409
415
|
this.filters = copiedFilters;
|
|
@@ -411,7 +417,7 @@ export class FilterBuilder
|
|
|
411
417
|
}
|
|
412
418
|
|
|
413
419
|
this.sync();
|
|
414
|
-
return { resulting: this.filters, affected:
|
|
420
|
+
return { resulting: this.filters, affected: finalAffectedFilter! };
|
|
415
421
|
}
|
|
416
422
|
|
|
417
423
|
/**
|
|
@@ -149,12 +149,12 @@ function buildScopes(
|
|
|
149
149
|
const uiScope: IFilterVisualScope = buildScope(filter, interactiveTable);
|
|
150
150
|
|
|
151
151
|
const scopeIndex = scopes.findIndex(
|
|
152
|
-
(sc) => sc.scope === filter.scope && sc.
|
|
152
|
+
(sc) => sc.scope === filter.scope && sc.id === filter.scopeId,
|
|
153
153
|
);
|
|
154
154
|
const datasetIndex =
|
|
155
155
|
scopeIndex > -1
|
|
156
156
|
? scopes[scopeIndex].datasets.findIndex(
|
|
157
|
-
(dt) => dt.
|
|
157
|
+
(dt) => dt.id === filter.datasetId,
|
|
158
158
|
)
|
|
159
159
|
: -1;
|
|
160
160
|
|
|
@@ -196,7 +196,7 @@ function buildScope(
|
|
|
196
196
|
displayed: displayed ?? true,
|
|
197
197
|
enabled: enabled ?? true,
|
|
198
198
|
scope: filter.scope,
|
|
199
|
-
|
|
199
|
+
id: filter.scopeId,
|
|
200
200
|
section: filter.section,
|
|
201
201
|
};
|
|
202
202
|
}
|
|
@@ -219,8 +219,8 @@ function buildDataset(
|
|
|
219
219
|
) ?? {};
|
|
220
220
|
return {
|
|
221
221
|
collapsed: collapsed ?? false,
|
|
222
|
-
|
|
223
|
-
|
|
222
|
+
id: filter.datasetId,
|
|
223
|
+
label: dataset?.label || "",
|
|
224
224
|
displayed: displayed ?? true,
|
|
225
225
|
enabled: enabled ?? true,
|
|
226
226
|
filters: [],
|
|
@@ -6,14 +6,12 @@ import { IFilter } from "../resources/filters.resources";
|
|
|
6
6
|
* Get the Filter ID by the filter structure
|
|
7
7
|
* The order of the epression ID is:
|
|
8
8
|
* - Scope Type
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
12
|
-
* - columnid
|
|
9
|
+
* - scope Id
|
|
10
|
+
* - dataset Id
|
|
11
|
+
* - column Id
|
|
13
12
|
* - validator
|
|
14
|
-
* -
|
|
13
|
+
* - grouping
|
|
15
14
|
* - Column Aggregate
|
|
16
|
-
* - Column Calculation
|
|
17
15
|
* - Optional Index
|
|
18
16
|
* @param filter the filter structure
|
|
19
17
|
* @param index an aditional number to add into the ID
|
|
@@ -88,7 +88,7 @@ export interface IFilterBuilderDeleteValue {
|
|
|
88
88
|
* @param indexes the index collection to search the value to remove
|
|
89
89
|
* @returns the new filter collection
|
|
90
90
|
*/
|
|
91
|
-
deleteValues: (id: string, indexes: number[]) =>
|
|
91
|
+
deleteValues: (id: string, indexes: number[]) => IFilterBuilderSingleReturn;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
/**
|
|
@@ -148,7 +148,7 @@ export interface IFilterBuilderEditValue {
|
|
|
148
148
|
id: string,
|
|
149
149
|
values: IFilterValue[],
|
|
150
150
|
indexes: number[],
|
|
151
|
-
) =>
|
|
151
|
+
) => IFilterBuilderSingleReturn;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
/**
|
|
@@ -46,7 +46,7 @@ export interface IFilterVisualScope extends IFilterVisualGeneral {
|
|
|
46
46
|
/**
|
|
47
47
|
* The scope ID
|
|
48
48
|
*/
|
|
49
|
-
|
|
49
|
+
id?: string;
|
|
50
50
|
/**
|
|
51
51
|
* The section of the filters
|
|
52
52
|
*/
|
|
@@ -64,11 +64,11 @@ export interface IFilterVisualDataset extends IFilterVisualGeneral {
|
|
|
64
64
|
/**
|
|
65
65
|
* Dataset ID
|
|
66
66
|
*/
|
|
67
|
-
|
|
67
|
+
id: string;
|
|
68
68
|
/**
|
|
69
69
|
* Dataset Label
|
|
70
70
|
*/
|
|
71
|
-
|
|
71
|
+
label: string;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
/**
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// import { AGGREGATE, COLUMN } from "@qrvey/utils";
|
|
2
2
|
|
|
3
3
|
import { FilterBuilder } from "../../src/classes/FilterBuilder";
|
|
4
|
+
import { FILTER_GROUPING } from "../../src/resources/filter-grouping.resources";
|
|
4
5
|
import { IFilterValueRegular } from "../../src/resources/filter-values.resources";
|
|
5
6
|
import { IFilter } from "../../src/resources/filters.resources";
|
|
6
7
|
import {
|
|
@@ -9,7 +10,9 @@ import {
|
|
|
9
10
|
__mockFilter3,
|
|
10
11
|
__mockFilter4,
|
|
11
12
|
__mockFilter5,
|
|
13
|
+
__mockFilter6,
|
|
12
14
|
__mockFilters1,
|
|
15
|
+
__mockFilters2,
|
|
13
16
|
} from "../mock/filters.mock";
|
|
14
17
|
|
|
15
18
|
describe("Testing wrong arguments", () => {
|
|
@@ -105,6 +108,28 @@ describe("Testing Adding Filters - With Filters", () => {
|
|
|
105
108
|
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
106
109
|
});
|
|
107
110
|
|
|
111
|
+
test("Adding single between items", () => {
|
|
112
|
+
const resulting = builder.addSingle(__mockFilter6);
|
|
113
|
+
const mockFilter6 = {
|
|
114
|
+
...__mockFilter6,
|
|
115
|
+
id: "global|D123|C456|equals|week",
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
const resultingFilters = [
|
|
119
|
+
__mockFilter1,
|
|
120
|
+
__mockFilter2,
|
|
121
|
+
mockFilter6,
|
|
122
|
+
__mockFilter3,
|
|
123
|
+
];
|
|
124
|
+
|
|
125
|
+
expect(resulting).toEqual({
|
|
126
|
+
resulting: resultingFilters,
|
|
127
|
+
affected: mockFilter6,
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
131
|
+
});
|
|
132
|
+
|
|
108
133
|
test("Adding Multiple", () => {
|
|
109
134
|
const resulting = builder.addMutiple([__mockFilter4, __mockFilter5]);
|
|
110
135
|
const mockFilter4 = { ...__mockFilter4, id: "page|D456|C134|greater_than" };
|
|
@@ -182,3 +207,116 @@ describe("Testing Adding Filters Values", () => {
|
|
|
182
207
|
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
183
208
|
});
|
|
184
209
|
});
|
|
210
|
+
|
|
211
|
+
describe("Testing Deleting Filters", () => {
|
|
212
|
+
let builder: FilterBuilder;
|
|
213
|
+
beforeEach(() => {
|
|
214
|
+
builder = new FilterBuilder(__mockFilters1);
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
test("Deleting by Params", () => {
|
|
218
|
+
const resulting = builder.deleteByParams({
|
|
219
|
+
columnId: "C456",
|
|
220
|
+
grouping: FILTER_GROUPING.DAY,
|
|
221
|
+
});
|
|
222
|
+
const resultingFilters = [__mockFilter1, __mockFilter3];
|
|
223
|
+
|
|
224
|
+
expect(resulting).toEqual({
|
|
225
|
+
resulting: resultingFilters,
|
|
226
|
+
affected: [__mockFilter2],
|
|
227
|
+
});
|
|
228
|
+
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
test("Deleting Single", () => {
|
|
232
|
+
const resulting = builder.deleteSingle("F123");
|
|
233
|
+
const resultingFilters = [__mockFilter2, __mockFilter3];
|
|
234
|
+
|
|
235
|
+
expect(resulting).toEqual({
|
|
236
|
+
resulting: resultingFilters,
|
|
237
|
+
affected: __mockFilter1,
|
|
238
|
+
});
|
|
239
|
+
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
test("Deleting Multiple", () => {
|
|
243
|
+
const resulting = builder.deleteMutiple(["F123", "F789"]);
|
|
244
|
+
const resultingFilters = [__mockFilter2];
|
|
245
|
+
|
|
246
|
+
expect(resulting).toEqual({
|
|
247
|
+
resulting: resultingFilters,
|
|
248
|
+
affected: [__mockFilter1, __mockFilter3],
|
|
249
|
+
});
|
|
250
|
+
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
describe("Testing Deleting Filters Values", () => {
|
|
255
|
+
test("Deleting Zero because of Empty values", () => {
|
|
256
|
+
const builder = new FilterBuilder(__mockFilters1);
|
|
257
|
+
|
|
258
|
+
const resulting = builder.deleteValue("F123", 1);
|
|
259
|
+
|
|
260
|
+
const resultingFilters: IFilter[] = [
|
|
261
|
+
__mockFilter1,
|
|
262
|
+
__mockFilter2,
|
|
263
|
+
__mockFilter3,
|
|
264
|
+
];
|
|
265
|
+
|
|
266
|
+
expect(resulting).toEqual({
|
|
267
|
+
resulting: resultingFilters,
|
|
268
|
+
affected: __mockFilter1,
|
|
269
|
+
});
|
|
270
|
+
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
test("Deleting One value", () => {
|
|
274
|
+
const builder = new FilterBuilder(__mockFilters1);
|
|
275
|
+
|
|
276
|
+
const resulting = builder.deleteValue("F789", 0);
|
|
277
|
+
const mockFilter3 = {
|
|
278
|
+
...__mockFilter3,
|
|
279
|
+
values: [__mockFilter3.values![1]],
|
|
280
|
+
};
|
|
281
|
+
const affectedMockFilter3 = {
|
|
282
|
+
...__mockFilter3,
|
|
283
|
+
values: [__mockFilter3.values![0]],
|
|
284
|
+
};
|
|
285
|
+
const resultingFilters: IFilter[] = [
|
|
286
|
+
__mockFilter1,
|
|
287
|
+
__mockFilter2,
|
|
288
|
+
mockFilter3,
|
|
289
|
+
];
|
|
290
|
+
|
|
291
|
+
expect(resulting).toEqual({
|
|
292
|
+
resulting: resultingFilters,
|
|
293
|
+
affected: affectedMockFilter3,
|
|
294
|
+
});
|
|
295
|
+
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
test("Deleting multiples values", () => {
|
|
299
|
+
const builder = new FilterBuilder(__mockFilters2);
|
|
300
|
+
|
|
301
|
+
const resulting = builder.deleteValues("F457", [0, 3]);
|
|
302
|
+
const resultingMockFilter6 = {
|
|
303
|
+
...__mockFilter6,
|
|
304
|
+
values: [__mockFilter6.values![1], __mockFilter6.values![2]],
|
|
305
|
+
};
|
|
306
|
+
const affectedMockFilter4 = {
|
|
307
|
+
...__mockFilter6,
|
|
308
|
+
values: [__mockFilter6.values![1], __mockFilter6.values![2]],
|
|
309
|
+
};
|
|
310
|
+
const resultingFilters: IFilter[] = [
|
|
311
|
+
__mockFilter4,
|
|
312
|
+
__mockFilter5,
|
|
313
|
+
resultingMockFilter6,
|
|
314
|
+
];
|
|
315
|
+
|
|
316
|
+
expect(resulting).toEqual({
|
|
317
|
+
resulting: resultingFilters,
|
|
318
|
+
affected: affectedMockFilter4,
|
|
319
|
+
});
|
|
320
|
+
expect(builder.getFilters()).toEqual(resultingFilters);
|
|
321
|
+
});
|
|
322
|
+
});
|
|
@@ -32,6 +32,18 @@ describe("Testing Filter Resources - Grouping", () => {
|
|
|
32
32
|
).toBeUndefined();
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
+
test("getGroupingInfoListByColumnType - Expression", () => {
|
|
36
|
+
expect(
|
|
37
|
+
FilterResources.getGroupingInfoListByColumnType(COLUMN.EXPRESSION),
|
|
38
|
+
).toEqual([]);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test("getGroupingInfoListByColumnType - Date", () => {
|
|
42
|
+
expect(
|
|
43
|
+
FilterResources.getGroupingInfoListByColumnType(COLUMN.DATE_FORMULA),
|
|
44
|
+
).toEqual(FILTER_GROUPING_INFO_BY_COLUMN_TYPE.DATE_FORMULA);
|
|
45
|
+
});
|
|
46
|
+
|
|
35
47
|
test("getGroupingInfoListByColumnType - Name", () => {
|
|
36
48
|
expect(
|
|
37
49
|
FilterResources.getGroupingInfoListByColumnType(COLUMN.NAME),
|
|
@@ -104,8 +104,46 @@ export const __mockFilter5: IFilter = {
|
|
|
104
104
|
],
|
|
105
105
|
};
|
|
106
106
|
|
|
107
|
+
export const __mockFilter6: IFilter = {
|
|
108
|
+
...DEFAULT_FILTER,
|
|
109
|
+
columnId: "C456",
|
|
110
|
+
columnType: COLUMN.DATE,
|
|
111
|
+
datasetId: "D123",
|
|
112
|
+
enabled: false,
|
|
113
|
+
grouping: FILTER_GROUPING.WEEK,
|
|
114
|
+
id: "F457",
|
|
115
|
+
values: [
|
|
116
|
+
{
|
|
117
|
+
displayed: true,
|
|
118
|
+
enabled: true,
|
|
119
|
+
value: "Q1 2024",
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
displayed: true,
|
|
123
|
+
enabled: true,
|
|
124
|
+
value: "Q2 2024",
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
displayed: true,
|
|
128
|
+
enabled: true,
|
|
129
|
+
value: "Q3 2024",
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
displayed: true,
|
|
133
|
+
enabled: true,
|
|
134
|
+
value: "Q4 2024",
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
};
|
|
138
|
+
|
|
107
139
|
export const __mockFilters1: IFilter[] = [
|
|
108
140
|
__mockFilter1,
|
|
109
141
|
__mockFilter2,
|
|
110
142
|
__mockFilter3,
|
|
111
143
|
];
|
|
144
|
+
|
|
145
|
+
export const __mockFilters2: IFilter[] = [
|
|
146
|
+
__mockFilter4,
|
|
147
|
+
__mockFilter5,
|
|
148
|
+
__mockFilter6,
|
|
149
|
+
];
|