@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.
Files changed (32) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/classes/FilterBuilder.d.ts +2 -2
  3. package/dist/cjs/classes/FilterBuilder.d.ts.map +1 -1
  4. package/dist/cjs/classes/FilterBuilder.js +12 -10
  5. package/dist/cjs/helpers/filter-adapt.helpers.js +5 -5
  6. package/dist/cjs/helpers/getFilterId.d.ts +4 -6
  7. package/dist/cjs/helpers/getFilterId.d.ts.map +1 -1
  8. package/dist/cjs/helpers/getFilterId.js +4 -6
  9. package/dist/cjs/models/filter-builder.models.d.ts +2 -2
  10. package/dist/cjs/models/filter-builder.models.d.ts.map +1 -1
  11. package/dist/cjs/resources/filter-visual.resources.d.ts +3 -3
  12. package/dist/cjs/resources/filter-visual.resources.d.ts.map +1 -1
  13. package/dist/classes/FilterBuilder.d.ts +2 -2
  14. package/dist/classes/FilterBuilder.d.ts.map +1 -1
  15. package/dist/classes/FilterBuilder.js +12 -10
  16. package/dist/helpers/filter-adapt.helpers.js +5 -5
  17. package/dist/helpers/getFilterId.d.ts +4 -6
  18. package/dist/helpers/getFilterId.d.ts.map +1 -1
  19. package/dist/helpers/getFilterId.js +4 -6
  20. package/dist/models/filter-builder.models.d.ts +2 -2
  21. package/dist/models/filter-builder.models.d.ts.map +1 -1
  22. package/dist/resources/filter-visual.resources.d.ts +3 -3
  23. package/dist/resources/filter-visual.resources.d.ts.map +1 -1
  24. package/package.json +1 -1
  25. package/src/classes/FilterBuilder.ts +23 -17
  26. package/src/helpers/filter-adapt.helpers.ts +5 -5
  27. package/src/helpers/getFilterId.ts +4 -6
  28. package/src/models/filter-builder.models.ts +2 -2
  29. package/src/resources/filter-visual.resources.ts +3 -3
  30. package/tests/classes/FilterBuilder.test.ts +138 -0
  31. package/tests/classes/FilterResources.test.ts +12 -0
  32. 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[]): IFilterBuilderMultipleReturn;
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[]): IFilterBuilderMultipleReturn;
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":"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"}
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[index];
189
+ let affectedFilter = this.filters[filterIndex];
188
190
  if (filterIndex > -1) {
189
- affectedValues = this.filters[index].values?.splice(index, 1);
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
- indexes.forEach((index) => {
208
- const resultingFilter = this.deleteValue(id, index);
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
- return { resulting: this.filters, affected: affectedFilters };
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
- const affectedFilters = [];
309
+ let finalAffectedFilter;
308
310
  try {
309
311
  values.forEach((value, index) => {
310
312
  const affectedFilter = this.editValue(id, value, indexes[index]);
311
- affectedFilters.push(affectedFilter.affected);
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: affectedFilters };
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.scopeId === filter.scopeId);
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.datasetId === filter.datasetId)
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
- scopeId: filter.scopeId,
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
- datasetId: filter.datasetId,
156
- datasetLabel: dataset?.label || "",
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
- * - scopeid
7
- * - qrveyid
8
- * - panelid
9
- * - columnid
6
+ * - scope Id
7
+ * - dataset Id
8
+ * - column Id
10
9
  * - validator
11
- * - property
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;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAenE"}
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
- * - scopeid
10
- * - qrveyid
11
- * - panelid
12
- * - columnid
9
+ * - scope Id
10
+ * - dataset Id
11
+ * - column Id
13
12
  * - validator
14
- * - property
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[]) => IFilterBuilderMultipleReturn;
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[]) => IFilterBuilderMultipleReturn;
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":"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"}
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
- scopeId?: string;
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
- datasetId: string;
63
+ id: string;
64
64
  /**
65
65
  * Dataset Label
66
66
  */
67
- datasetLabel: string;
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,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;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,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;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"}
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[]): IFilterBuilderMultipleReturn;
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[]): IFilterBuilderMultipleReturn;
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":"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"}
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[index];
186
+ let affectedFilter = this.filters[filterIndex];
185
187
  if (filterIndex > -1) {
186
- affectedValues = this.filters[index].values?.splice(index, 1);
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
- indexes.forEach((index) => {
205
- const resultingFilter = this.deleteValue(id, index);
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
- return { resulting: this.filters, affected: affectedFilters };
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
- const affectedFilters = [];
306
+ let finalAffectedFilter;
305
307
  try {
306
308
  values.forEach((value, index) => {
307
309
  const affectedFilter = this.editValue(id, value, indexes[index]);
308
- affectedFilters.push(affectedFilter.affected);
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: affectedFilters };
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.scopeId === filter.scopeId);
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.datasetId === filter.datasetId)
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
- scopeId: filter.scopeId,
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
- datasetId: filter.datasetId,
150
- datasetLabel: dataset?.label || "",
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
- * - scopeid
7
- * - qrveyid
8
- * - panelid
9
- * - columnid
6
+ * - scope Id
7
+ * - dataset Id
8
+ * - column Id
10
9
  * - validator
11
- * - property
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;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAenE"}
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
- * - scopeid
7
- * - qrveyid
8
- * - panelid
9
- * - columnid
6
+ * - scope Id
7
+ * - dataset Id
8
+ * - column Id
10
9
  * - validator
11
- * - property
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[]) => IFilterBuilderMultipleReturn;
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[]) => IFilterBuilderMultipleReturn;
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":"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"}
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
- scopeId?: string;
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
- datasetId: string;
63
+ id: string;
64
64
  /**
65
65
  * Dataset Label
66
66
  */
67
- datasetLabel: string;
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,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;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,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/filters",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "description": "Helpers and logic for Filtering Data in Qrvey app",
5
5
  "main": "dist/index.js",
6
6
  "engines": {
@@ -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(id, value);
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[index];
246
+ let affectedFilter: IFilter = this.filters[filterIndex];
242
247
  if (filterIndex > -1) {
243
- affectedValues = this.filters[index].values?.splice(index, 1);
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
- ): IFilterBuilderMultipleReturn {
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
- indexes.forEach((index: number) => {
267
- const resultingFilter: IFilterBuilderSingleReturn = this.deleteValue(
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
- return { resulting: this.filters, affected: affectedFilters };
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
- ): IFilterBuilderMultipleReturn {
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
- const affectedFilters: IFilter[] = [];
404
+ let finalAffectedFilter: IFilter;
403
405
  try {
404
406
  values.forEach((value: IFilterValue, index: number) => {
405
- const affectedFilter = this.editValue(id, value, indexes[index]);
406
- affectedFilters.push(affectedFilter.affected!);
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: affectedFilters };
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.scopeId === filter.scopeId,
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.datasetId === filter.datasetId,
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
- scopeId: filter.scopeId,
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
- datasetId: filter.datasetId,
223
- datasetLabel: dataset?.label || "",
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
- * - scopeid
10
- * - qrveyid
11
- * - panelid
12
- * - columnid
9
+ * - scope Id
10
+ * - dataset Id
11
+ * - column Id
13
12
  * - validator
14
- * - property
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[]) => IFilterBuilderMultipleReturn;
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
- ) => IFilterBuilderMultipleReturn;
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
- scopeId?: string;
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
- datasetId: string;
67
+ id: string;
68
68
  /**
69
69
  * Dataset Label
70
70
  */
71
- datasetLabel: string;
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
+ ];