@qrvey/filters 0.0.17 → 0.0.19

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 (41) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/classes/FilterAdapter.d.ts.map +1 -1
  3. package/dist/cjs/classes/FilterBuilder.d.ts +26 -2
  4. package/dist/cjs/classes/FilterBuilder.d.ts.map +1 -1
  5. package/dist/cjs/classes/FilterBuilder.js +110 -0
  6. package/dist/cjs/classes/FilterManager.d.ts +16 -11
  7. package/dist/cjs/classes/FilterManager.d.ts.map +1 -1
  8. package/dist/cjs/classes/FilterManager.js +26 -18
  9. package/dist/cjs/classes/FilterResources.d.ts +9 -9
  10. package/dist/cjs/classes/FilterResources.d.ts.map +1 -1
  11. package/dist/cjs/classes/FilterResources.js +21 -9
  12. package/dist/cjs/classes/FilterSettings.js +39 -0
  13. package/dist/cjs/models/filter-builder.models.d.ts +29 -0
  14. package/dist/cjs/models/filter-builder.models.d.ts.map +1 -1
  15. package/dist/cjs/resources/filter-settings.resources.d.ts +25 -16
  16. package/dist/cjs/resources/filter-settings.resources.d.ts.map +1 -1
  17. package/dist/cjs/resources/filter-settings.resources.js +85 -0
  18. package/dist/classes/FilterAdapter.d.ts.map +1 -1
  19. package/dist/classes/FilterBuilder.d.ts +26 -2
  20. package/dist/classes/FilterBuilder.d.ts.map +1 -1
  21. package/dist/classes/FilterBuilder.js +111 -1
  22. package/dist/classes/FilterManager.d.ts +16 -11
  23. package/dist/classes/FilterManager.d.ts.map +1 -1
  24. package/dist/classes/FilterManager.js +26 -18
  25. package/dist/classes/FilterResources.d.ts +9 -9
  26. package/dist/classes/FilterResources.d.ts.map +1 -1
  27. package/dist/classes/FilterResources.js +22 -10
  28. package/dist/classes/FilterSettings.js +39 -0
  29. package/dist/models/filter-builder.models.d.ts +29 -0
  30. package/dist/models/filter-builder.models.d.ts.map +1 -1
  31. package/dist/resources/filter-settings.resources.d.ts +25 -16
  32. package/dist/resources/filter-settings.resources.d.ts.map +1 -1
  33. package/dist/resources/filter-settings.resources.js +84 -1
  34. package/package.json +2 -2
  35. package/src/classes/FilterAdapter.ts +5 -5
  36. package/src/classes/FilterBuilder.ts +148 -2
  37. package/src/classes/FilterManager.ts +26 -17
  38. package/src/classes/FilterResources.ts +37 -14
  39. package/src/models/filter-builder.models.ts +35 -0
  40. package/tests/classes/FilterBuilder.test.ts +165 -1
  41. package/tests/classes/FilterResources.test.ts +35 -13
package/CHANGELOG.md CHANGED
@@ -4,8 +4,21 @@ 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.19](https://bitbucket.org/qrvey/qrvey_filters/compare/v0.0.19..v0.0.18)
8
+
9
+ - feat: :zap: added the filters merging process [`69dad4b`](https://bitbucket.org/qrvey/qrvey_filters/commits/69dad4bb26883e4a8baa5e63cfbbba085914a206)
10
+
11
+ #### [v0.0.18](https://bitbucket.org/qrvey/qrvey_filters/compare/v0.0.18..v0.0.17)
12
+
13
+ > 20 June 2024
14
+
15
+ - fix: :bug: added formulaType to get the right validators and groupings [`05dc5f3`](https://bitbucket.org/qrvey/qrvey_filters/commits/05dc5f37cc701db3d54f616867c895461a60903c)
16
+ - build: upgraded Qrvey Utils to 1.14.0-7 [`c0a7433`](https://bitbucket.org/qrvey/qrvey_filters/commits/c0a7433e72bbda091ff78a5938d404df0c79b871)
17
+
7
18
  #### [v0.0.17](https://bitbucket.org/qrvey/qrvey_filters/compare/v0.0.17..v0.0.16)
8
19
 
20
+ > 18 June 2024
21
+
9
22
  - test: fixed the mutable filters from implementation [`375c558`](https://bitbucket.org/qrvey/qrvey_filters/commits/375c55896fec2db1ce9f791f320d9abc23d56e7c)
10
23
  - fix: :bug: fixed the bad synchronization of filters in builder manager [`0cdee20`](https://bitbucket.org/qrvey/qrvey_filters/commits/0cdee20a8134b0f561f8156cc7fa5dcce8126de8)
11
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"FilterAdapter.d.ts","sourceRoot":"","sources":["../../../src/classes/FilterAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAUjD,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,cAAc,EACf,MAAM,gCAAgC,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAa;IAuBtB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE;IAC7B,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE;IAC9B,SAAS,CAAC,gBAAgB,CAAC;IAxB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,CAAiB;IAEhC;;OAEG;IACH,OAAO,CAAC,OAAO,CAAC,CAAgB;IAEhC;;OAEG;IACH,OAAO,CAAC,aAAa,CAAC,CAAU;IAEhC;;;;;OAKG;gBAES,QAAQ,GAAE,OAAO,EAAO,EACxB,QAAQ,GAAE,QAAQ,EAAO,EACzB,gBAAgB,CAAC,0CAA8B;IAK3D;;OAEG;IACH,OAAO,CAAC,IAAI;IAMZ;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CACzB,YAAY,EAAE,OAAO,EACrB,gBAAgB,CAAC,EAAE,4BAA4B,GAC9C,iBAAiB;IAWpB;;;OAGG;IACH,IAAI,YAAY,IAAI,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAK3D;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAKrD;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAKrD;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,cAAc,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAKpD;IAED;;;OAGG;IACI,WAAW,CAAC,QAAQ,GAAE,QAAQ,EAAO,GAAG,IAAI;IAKnD;;;OAGG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IAK3C;;;OAGG;IACI,mBAAmB,CACxB,gBAAgB,EAAE,4BAA4B,GAC7C,IAAI;IAKP;;;OAGG;IACH,OAAO,CAAC,eAAe;IAIvB;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAIhB;;;OAGG;IACH,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"FilterAdapter.d.ts","sourceRoot":"","sources":["../../../src/classes/FilterAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAUjD,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,cAAc,EACf,MAAM,gCAAgC,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAa;IAuBtB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE;IAC7B,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE;IAC9B,SAAS,CAAC,gBAAgB,CAAC;IAxB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,CAAiB;IAEhC;;OAEG;IACH,OAAO,CAAC,OAAO,CAAC,CAAgB;IAEhC;;OAEG;IACH,OAAO,CAAC,aAAa,CAAC,CAAU;IAEhC;;;;;OAKG;gBAES,QAAQ,GAAE,OAAO,EAAO,EACxB,QAAQ,GAAE,QAAQ,EAAO,EACzB,gBAAgB,CAAC,0CAA8B;IAK3D;;OAEG;IACH,OAAO,CAAC,IAAI;IAMZ;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;WACW,oBAAoB,CAChC,YAAY,EAAE,OAAO,EACrB,gBAAgB,CAAC,EAAE,4BAA4B,GAC9C,iBAAiB;IAWpB;;;OAGG;IACH,IAAW,YAAY,IAAI,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAKlE;IAED;;;OAGG;IACH,IAAW,KAAK,IAAI,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAK5D;IAED;;;OAGG;IACH,IAAW,MAAM,IAAI,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAK5D;IAED;;;OAGG;IACH,IAAW,OAAO,IAAI,cAAc,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAK3D;IAED;;;OAGG;IACI,WAAW,CAAC,QAAQ,GAAE,QAAQ,EAAO,GAAG,IAAI;IAKnD;;;OAGG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IAK3C;;;OAGG;IACI,mBAAmB,CACxB,gBAAgB,EAAE,4BAA4B,GAC7C,IAAI;IAKP;;;OAGG;IACH,OAAO,CAAC,eAAe;IAIvB;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAIhB;;;OAGG;IACH,OAAO,CAAC,SAAS;CAGlB"}
@@ -1,11 +1,11 @@
1
- import { IFilterBuilderAdd, IFilterBuilderAddValue, IFilterBuilderDelete, IFilterBuilderDeleteValue, IFilterBuilderEdit, IFilterBuilderEditValue, IFilterBuilderMultipleReturn, IFilterBuilderSet, IFilterBuilderSingleReturn } from "../models/filter-builder.models";
1
+ import { IFilterBuilderAdd, IFilterBuilderAddValue, IFilterBuilderDelete, IFilterBuilderDeleteValue, IFilterBuilderEdit, IFilterBuilderEditValue, IFilterBuilderMerge, IFilterBuilderMergeValue, IFilterBuilderMultipleReturn, IFilterBuilderSet, IFilterBuilderSingleReturn } from "../models/filter-builder.models";
2
2
  import { IFilterBuilderEditSettings, IFilterParamSettings } from "../resources/filter-functions.resources";
3
3
  import { IFilterValue } from "../resources/filter-values.resources";
4
4
  import { IFilter } from "../resources/filters.resources";
5
5
  /**
6
6
  * Class to build new filters and manipulate ones.
7
7
  */
8
- export declare class FilterBuilder implements IFilterBuilderAdd, IFilterBuilderAddValue, IFilterBuilderDelete, IFilterBuilderDeleteValue, IFilterBuilderEdit, IFilterBuilderEditValue, IFilterBuilderSet {
8
+ export declare class FilterBuilder implements IFilterBuilderAdd, IFilterBuilderAddValue, IFilterBuilderDelete, IFilterBuilderDeleteValue, IFilterBuilderEdit, IFilterBuilderEditValue, IFilterBuilderMerge, IFilterBuilderMergeValue, IFilterBuilderSet {
9
9
  protected filters: IFilter[];
10
10
  /**
11
11
  * Instance to search filters
@@ -126,6 +126,30 @@ export declare class FilterBuilder implements IFilterBuilderAdd, IFilterBuilderA
126
126
  * @returns the new filter collection
127
127
  */
128
128
  editValues(id: string, values: IFilterValue[], indexes: number[]): IFilterBuilderSingleReturn;
129
+ /**
130
+ * **************************************************************************************************
131
+ ****************************************** Merging *************************************************
132
+ ****************************************************************************************************
133
+ */
134
+ /**
135
+ * Merge the filter into the collection by some filter parameters
136
+ * @param filter the filter to merge
137
+ * @returns the new filter collection
138
+ */
139
+ mergeSingle(filter: IFilter): IFilterBuilderSingleReturn;
140
+ /**
141
+ * Merge the filters into the collection by some filter parameters
142
+ * @param filters the filter collection to merge
143
+ * @returns the new filter collection
144
+ */
145
+ mergeMutiple(filters: IFilter[]): IFilterBuilderMultipleReturn;
146
+ /**
147
+ * Merge values from filter
148
+ * @param id the ID to search the filter to merge values
149
+ * @param values the value collection to merge
150
+ * @returns the new filter collection
151
+ */
152
+ mergeValues(id: string, values: IFilterValue[] | undefined): IFilterBuilderSingleReturn;
129
153
  /**
130
154
  * **************************************************************************************************
131
155
  ****************************************** 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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"}
@@ -6,6 +6,7 @@ const FilterSearcher_1 = require("./FilterSearcher");
6
6
  const FilterValidation_1 = require("./FilterValidation");
7
7
  const filter_settings_helpers_1 = require("../helpers/filter-settings.helpers");
8
8
  const getFilterId_1 = require("../helpers/getFilterId");
9
+ const getFilterType_1 = require("../helpers/getFilterType");
9
10
  const filters_resources_1 = require("../resources/filters.resources");
10
11
  /**
11
12
  * Class to build new filters and manipulate ones.
@@ -385,6 +386,115 @@ class FilterBuilder {
385
386
  original: original[filterIndex],
386
387
  };
387
388
  }
389
+ /**
390
+ * **************************************************************************************************
391
+ ****************************************** Merging *************************************************
392
+ ****************************************************************************************************
393
+ */
394
+ /**
395
+ * Merge the filter into the collection by some filter parameters
396
+ * @param filter the filter to merge
397
+ * @returns the new filter collection
398
+ */
399
+ mergeSingle(filter) {
400
+ if ((0, utils_1.isEmpty)(filter))
401
+ return { resulting: this.filters };
402
+ const filterIndex = this.searchEngine.findIndexByParams({
403
+ columnId: filter.columnId,
404
+ datasetId: filter.datasetId,
405
+ grouping: filter.grouping,
406
+ scope: filter.scope,
407
+ scopeId: filter.scopeId,
408
+ validator: filter.validator,
409
+ });
410
+ let original = filter;
411
+ let affected = filter;
412
+ if (filterIndex > -1) {
413
+ original = (0, utils_1.objectCopy)(this.filters[filterIndex]);
414
+ const { affected: affectedMergeFilter } = this.mergeValues(this.filters[filterIndex].id, filter.values);
415
+ affected = affectedMergeFilter;
416
+ }
417
+ else {
418
+ const { affected: affectedAddSingle } = this.addSingle(filter);
419
+ affected = affectedAddSingle;
420
+ }
421
+ return {
422
+ resulting: this.filters,
423
+ affected,
424
+ original,
425
+ };
426
+ }
427
+ /**
428
+ * Merge the filters into the collection by some filter parameters
429
+ * @param filters the filter collection to merge
430
+ * @returns the new filter collection
431
+ */
432
+ mergeMutiple(filters) {
433
+ if (!Array.isArray(filters) || (0, utils_1.isEmpty)(filters))
434
+ return { resulting: this.filters };
435
+ const originalFilters = (0, utils_1.objectCopy)(this.filters);
436
+ const mergedFilters = [];
437
+ try {
438
+ filters.forEach((filter) => {
439
+ const mergedFilter = this.mergeSingle(filter);
440
+ mergedFilters.push(mergedFilter.affected);
441
+ });
442
+ }
443
+ catch (_error) {
444
+ this.filters = originalFilters;
445
+ return { resulting: originalFilters };
446
+ }
447
+ this.sync();
448
+ return {
449
+ resulting: this.filters,
450
+ affected: mergedFilters,
451
+ original: originalFilters,
452
+ };
453
+ }
454
+ /**
455
+ * Merge values from filter
456
+ * @param id the ID to search the filter to merge values
457
+ * @param values the value collection to merge
458
+ * @returns the new filter collection
459
+ */
460
+ mergeValues(id, values) {
461
+ const filterIndex = this.searchEngine.findIndexByParams({ id });
462
+ if ((0, utils_1.isEmpty)(values) || filterIndex < 0)
463
+ return { resulting: this.filters };
464
+ const original = (0, utils_1.objectCopy)(this.filters[filterIndex]);
465
+ const filterType = (0, getFilterType_1.getFilterType)(original.columnType, original.validator);
466
+ if ((0, utils_1.isEmpty)(this.filters[filterIndex].values))
467
+ this.filters[filterIndex].values = [];
468
+ values.forEach((value) => {
469
+ switch (filterType) {
470
+ case filters_resources_1.FILTER_TYPE.RANGE: {
471
+ const valueIndex = this.filters[filterIndex].values.findIndex((v) => v.max === value.max &&
472
+ v.min === value.min);
473
+ if (valueIndex < 0) {
474
+ this.filters[filterIndex].values?.push(value);
475
+ }
476
+ break;
477
+ }
478
+ case filters_resources_1.FILTER_TYPE.REGULAR: {
479
+ const valueIndex = this.filters[filterIndex].values.findIndex((v) => v.value === value.value);
480
+ if (valueIndex < 0) {
481
+ this.filters[filterIndex].values?.push(value);
482
+ }
483
+ break;
484
+ }
485
+ case filters_resources_1.FILTER_TYPE.RELATIVE:
486
+ this.filters[filterIndex].values[0] =
487
+ value;
488
+ break;
489
+ }
490
+ });
491
+ this.sync();
492
+ return {
493
+ resulting: this.filters,
494
+ affected: this.filters[filterIndex],
495
+ original,
496
+ };
497
+ }
388
498
  /**
389
499
  * **************************************************************************************************
390
500
  ****************************************** Others **************************************************
@@ -8,7 +8,7 @@ import { IFilter } from "../resources/filters.resources";
8
8
  * Class to manage the filters
9
9
  */
10
10
  export declare class FilterManager {
11
- protected filters: IFilter[];
11
+ protected _filters: IFilter[];
12
12
  protected datasets: IDataset[];
13
13
  private _interactiveTable?;
14
14
  /**
@@ -25,36 +25,41 @@ export declare class FilterManager {
25
25
  private _searchEngine;
26
26
  /**
27
27
  * Constructor
28
- * @param filters the collection of filters
28
+ * @param _filters the collection of filters
29
29
  * @param datasets the collection of datasets info
30
30
  * @param _interactiveTable table of interaction properties for each section
31
31
  */
32
- constructor(filters?: IFilter[], datasets?: IDataset[], _interactiveTable?: IFilterPanelInteractiveTable | undefined);
32
+ constructor(_filters?: IFilter[], datasets?: IDataset[], _interactiveTable?: IFilterPanelInteractiveTable | undefined);
33
33
  /**
34
34
  * **************************************************************************************************
35
35
  ****************************************** Getters *************************************************
36
36
  ****************************************************************************************************
37
37
  */
38
- /**
39
- * Gets the builder methods
40
- * @returns the builder methods
41
- */
42
- get builder(): FilterBuilder;
43
38
  /**
44
39
  * Gets the adapt methods
45
40
  * @returns the adapt methods
46
41
  */
47
42
  get adapt(): FilterAdapter;
48
43
  /**
49
- * Gets the search methods
50
- * @returns the search methods
44
+ * Gets the builder methods
45
+ * @returns the builder methods
51
46
  */
52
- get search(): FilterSearcher;
47
+ get builder(): FilterBuilder;
48
+ /**
49
+ * Gets the filter collections
50
+ * @returns the filters
51
+ */
52
+ get filters(): IFilter[];
53
53
  /**
54
54
  * Gets the interactive table
55
55
  * @returns the interactive table
56
56
  */
57
57
  get interactiveTable(): IFilterPanelInteractiveTable | undefined;
58
+ /**
59
+ * Gets the search methods
60
+ * @returns the search methods
61
+ */
62
+ get search(): FilterSearcher;
58
63
  /**
59
64
  * **************************************************************************************************
60
65
  ****************************************** Setters *************************************************
@@ -1 +1 @@
1
- {"version":3,"file":"FilterManager.d.ts","sourceRoot":"","sources":["../../../src/classes/FilterManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD;;GAEG;AACH,qBAAa,aAAa;IAuBtB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE;IAC5B,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE;IAC9B,OAAO,CAAC,iBAAiB,CAAC;IAxB5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAgB;IAE9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAgB;IAEhC;;OAEG;IACH,OAAO,CAAC,aAAa,CAAiB;IAEtC;;;;;OAKG;gBAES,OAAO,GAAE,OAAO,EAAO,EACvB,QAAQ,GAAE,QAAQ,EAAO,EAC3B,iBAAiB,CAAC,0CAA8B;IAO1D;;;;OAIG;IAEH;;;OAGG;IACH,IAAW,OAAO,IAAI,aAAa,CAElC;IAED;;;OAGG;IACH,IAAW,KAAK,IAAI,aAAa,CAEhC;IAED;;;OAGG;IACH,IAAW,MAAM,IAAI,cAAc,CAElC;IAED;;;OAGG;IACH,IAAW,gBAAgB,IAAI,4BAA4B,GAAG,SAAS,CAEtE;IAED;;;;OAIG;IAEH;;;OAGG;IACI,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI;IAI9C;;;OAGG;IACI,UAAU,CAAC,OAAO,GAAE,OAAO,EAAO,GAAG,IAAI;IAMhD;;;OAGG;IACI,mBAAmB,CACxB,gBAAgB,EAAE,4BAA4B,GAC7C,IAAI;CAIR"}
1
+ {"version":3,"file":"FilterManager.d.ts","sourceRoot":"","sources":["../../../src/classes/FilterManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD;;GAEG;AACH,qBAAa,aAAa;IAuBtB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE;IAC7B,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE;IAC9B,OAAO,CAAC,iBAAiB,CAAC;IAxB5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAgB;IAE9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAgB;IAEhC;;OAEG;IACH,OAAO,CAAC,aAAa,CAAiB;IAEtC;;;;;OAKG;gBAES,QAAQ,GAAE,OAAO,EAAO,EACxB,QAAQ,GAAE,QAAQ,EAAO,EAC3B,iBAAiB,CAAC,0CAA8B;IAO1D;;;;OAIG;IAEH;;;OAGG;IACH,IAAW,KAAK,IAAI,aAAa,CAEhC;IAED;;;OAGG;IACH,IAAW,OAAO,IAAI,aAAa,CAElC;IAED;;;OAGG;IACH,IAAW,OAAO,IAAI,OAAO,EAAE,CAE9B;IAED;;;OAGG;IACH,IAAW,gBAAgB,IAAI,4BAA4B,GAAG,SAAS,CAEtE;IAED;;;OAGG;IACH,IAAW,MAAM,IAAI,cAAc,CAElC;IAED;;;;OAIG;IAEH;;;OAGG;IACI,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI;IAI9C;;;OAGG;IACI,UAAU,CAAC,OAAO,GAAE,OAAO,EAAO,GAAG,IAAI;IAOhD;;;OAGG;IACI,mBAAmB,CACxB,gBAAgB,EAAE,4BAA4B,GAC7C,IAAI;CAIR"}
@@ -8,7 +8,7 @@ const FilterSearcher_1 = require("./FilterSearcher");
8
8
  * Class to manage the filters
9
9
  */
10
10
  class FilterManager {
11
- filters;
11
+ _filters;
12
12
  datasets;
13
13
  _interactiveTable;
14
14
  /**
@@ -25,30 +25,23 @@ class FilterManager {
25
25
  _searchEngine;
26
26
  /**
27
27
  * Constructor
28
- * @param filters the collection of filters
28
+ * @param _filters the collection of filters
29
29
  * @param datasets the collection of datasets info
30
30
  * @param _interactiveTable table of interaction properties for each section
31
31
  */
32
- constructor(filters = [], datasets = [], _interactiveTable) {
33
- this.filters = filters;
32
+ constructor(_filters = [], datasets = [], _interactiveTable) {
33
+ this._filters = _filters;
34
34
  this.datasets = datasets;
35
35
  this._interactiveTable = _interactiveTable;
36
- this._searchEngine = new FilterSearcher_1.FilterSearcher(filters);
37
- this._builder = new FilterBuilder_1.FilterBuilder(filters);
38
- this._adapt = new FilterAdapter_1.FilterAdapter(filters, datasets, _interactiveTable);
36
+ this._searchEngine = new FilterSearcher_1.FilterSearcher(_filters);
37
+ this._builder = new FilterBuilder_1.FilterBuilder(_filters);
38
+ this._adapt = new FilterAdapter_1.FilterAdapter(_filters, datasets, _interactiveTable);
39
39
  }
40
40
  /**
41
41
  * **************************************************************************************************
42
42
  ****************************************** Getters *************************************************
43
43
  ****************************************************************************************************
44
44
  */
45
- /**
46
- * Gets the builder methods
47
- * @returns the builder methods
48
- */
49
- get builder() {
50
- return this._builder;
51
- }
52
45
  /**
53
46
  * Gets the adapt methods
54
47
  * @returns the adapt methods
@@ -57,11 +50,18 @@ class FilterManager {
57
50
  return this._adapt;
58
51
  }
59
52
  /**
60
- * Gets the search methods
61
- * @returns the search methods
53
+ * Gets the builder methods
54
+ * @returns the builder methods
62
55
  */
63
- get search() {
64
- return this._searchEngine;
56
+ get builder() {
57
+ return this._builder;
58
+ }
59
+ /**
60
+ * Gets the filter collections
61
+ * @returns the filters
62
+ */
63
+ get filters() {
64
+ return this._filters;
65
65
  }
66
66
  /**
67
67
  * Gets the interactive table
@@ -70,6 +70,13 @@ class FilterManager {
70
70
  get interactiveTable() {
71
71
  return this._interactiveTable;
72
72
  }
73
+ /**
74
+ * Gets the search methods
75
+ * @returns the search methods
76
+ */
77
+ get search() {
78
+ return this._searchEngine;
79
+ }
73
80
  /**
74
81
  * **************************************************************************************************
75
82
  ****************************************** Setters *************************************************
@@ -87,6 +94,7 @@ class FilterManager {
87
94
  * @param filters the new collection of filters to set
88
95
  */
89
96
  setFilters(filters = []) {
97
+ this._filters = filters;
90
98
  this._builder.setFilters(filters);
91
99
  this._searchEngine.setFilters(filters);
92
100
  this._adapt.setFilters(filters);
@@ -1,4 +1,4 @@
1
- import { IColumnType } from "@qrvey/utils";
1
+ import { IColumnVsFormulaType } from "@qrvey/utils";
2
2
  import { IFilterGroupingInfoListByColumnSettings } from "../resources/filter-functions.resources";
3
3
  import { IFilterGrouping, IFilterGroupingInfo } from "../resources/filter-grouping.resources";
4
4
  import { IFilterValidator, IFilterValidatorInfo } from "../resources/filter-validators.resources";
@@ -19,19 +19,19 @@ export declare class FilterResources {
19
19
  static getGroupingInfo(grouping: IFilterGrouping): IFilterGroupingInfo;
20
20
  /**
21
21
  * Gets a collection of groupings info by a column type
22
- * @param type the column type
22
+ * @param type the object with column and formula type
23
23
  * @param settings settings for the function
24
24
  * @returns a collection of grouping info
25
25
  */
26
- static getGroupingInfoListByColumnType(type: IColumnType, settings?: IFilterGroupingInfoListByColumnSettings): IFilterGroupingInfo[];
26
+ static getGroupingInfoListByColumnType(type: IColumnVsFormulaType, settings?: IFilterGroupingInfoListByColumnSettings): IFilterGroupingInfo[];
27
27
  /**
28
28
  * Gets a collection of groupings info by a column type
29
29
  * - The resulting grouping info collection is an intersection of mulitple grouping info collections
30
- * @param types the collection of column type
30
+ * @param types the collection of objects with column and formula types
31
31
  * @param settings settings for the function
32
32
  * @returns a collection of grouping info
33
33
  */
34
- static getGroupingInfoListByColumnTypes(types: IColumnType[], settings?: IFilterGroupingInfoListByColumnSettings[]): IFilterGroupingInfo[];
34
+ static getGroupingInfoListByColumnTypes(types: IColumnVsFormulaType[], settings?: IFilterGroupingInfoListByColumnSettings[]): IFilterGroupingInfo[];
35
35
  /**
36
36
  * Gets the grouping info of Date column type
37
37
  * @param groupinInfoList the original grouping info list
@@ -81,17 +81,17 @@ export declare class FilterResources {
81
81
  static getValidatorInfoList(): IFilterValidatorInfo[];
82
82
  /**
83
83
  * Gets a collection of validator info by a column type
84
- * @param type the column type
84
+ * @param type the object with column and formula type
85
85
  * @returns a collection of validator info
86
86
  */
87
- static getValidatorInfoListByColumnType(type: IColumnType): IFilterValidatorInfo[];
87
+ static getValidatorInfoListByColumnType(type: IColumnVsFormulaType): IFilterValidatorInfo[];
88
88
  /**
89
89
  * Gets a collection of validator info by a mutiple column types
90
90
  * - The resulting validator info collection is an intersection of mulitple validator info collections
91
- * @param types a collection of column types
91
+ * @param types a collection of objects with column and formula types
92
92
  * @returns a collection of validator info
93
93
  */
94
- static getValidatorInfoListByColumnTypes(types: IColumnType[]): IFilterValidatorInfo[];
94
+ static getValidatorInfoListByColumnTypes(types: IColumnVsFormulaType[]): IFilterValidatorInfo[];
95
95
  /**
96
96
  * Gets the complete collection of validator types
97
97
  * @returns the collection of validator types
@@ -1 +1 @@
1
- {"version":3,"file":"FilterResources.d.ts","sourceRoot":"","sources":["../../../src/classes/FilterResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,WAAW,EAAyB,MAAM,cAAc,CAAC;AAG1E,OAAO,EAAE,uCAAuC,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAUL,eAAe,EACf,mBAAmB,EACpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAKL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0CAA0C,CAAC;AAElD;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;OAIG;IAEH;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,mBAAmB;IAItE;;;;;OAKG;IACH,MAAM,CAAC,+BAA+B,CACpC,IAAI,EAAE,WAAW,EACjB,QAAQ,CAAC,EAAE,uCAAuC,GACjD,mBAAmB,EAAE;IAwBxB;;;;;;OAMG;IACH,MAAM,CAAC,gCAAgC,CACrC,KAAK,EAAE,WAAW,EAAE,EACpB,QAAQ,CAAC,EAAE,uCAAuC,EAAE,GACnD,mBAAmB,EAAE;IASxB;;;;;OAKG;IACH,MAAM,CAAC,0BAA0B,CAC/B,eAAe,EAAE,mBAAmB,EAAE,EACtC,QAAQ,EAAE,uCAAuC,GAChD,mBAAmB,EAAE;IAwBxB;;;;;OAKG;IACH,MAAM,CAAC,gCAAgC,CACrC,eAAe,EAAE,mBAAmB,EAAE,EACtC,QAAQ,EAAE,uCAAuC,GAChD,mBAAmB,EAAE;IAMxB;;;;;OAKG;IACH,MAAM,CAAC,iCAAiC,CACtC,eAAe,EAAE,mBAAmB,EAAE,EACtC,QAAQ,EAAE,uCAAuC,GAChD,mBAAmB,EAAE;IASxB;;;OAGG;IACH,MAAM,CAAC,YAAY,IAAI,eAAe,EAAE;IAIxC;;;OAGG;IACH,MAAM,CAAC,oBAAoB,IAAI,mBAAmB,EAAE;IAIpD;;;;OAIG;IAEH;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,GAAG,oBAAoB;IAI1E;;;OAGG;IACH,MAAM,CAAC,oBAAoB,IAAI,oBAAoB,EAAE;IAIrD;;;;OAIG;IACH,MAAM,CAAC,gCAAgC,CACrC,IAAI,EAAE,WAAW,GAChB,oBAAoB,EAAE;IAIzB;;;;;OAKG;IACH,MAAM,CAAC,iCAAiC,CACtC,KAAK,EAAE,WAAW,EAAE,GACnB,oBAAoB,EAAE;IASzB;;;OAGG;IACH,MAAM,CAAC,aAAa,IAAI,gBAAgB,EAAE;CAG3C"}
1
+ {"version":3,"file":"FilterResources.d.ts","sourceRoot":"","sources":["../../../src/classes/FilterResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,oBAAoB,EAErB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,uCAAuC,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAUL,eAAe,EACf,mBAAmB,EACpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAKL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0CAA0C,CAAC;AAElD;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;OAIG;IAEH;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,mBAAmB;IAItE;;;;;OAKG;IACH,MAAM,CAAC,+BAA+B,CACpC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,CAAC,EAAE,uCAAuC,GACjD,mBAAmB,EAAE;IAmCxB;;;;;;OAMG;IACH,MAAM,CAAC,gCAAgC,CACrC,KAAK,EAAE,oBAAoB,EAAE,EAC7B,QAAQ,CAAC,EAAE,uCAAuC,EAAE,GACnD,mBAAmB,EAAE;IASxB;;;;;OAKG;IACH,MAAM,CAAC,0BAA0B,CAC/B,eAAe,EAAE,mBAAmB,EAAE,EACtC,QAAQ,EAAE,uCAAuC,GAChD,mBAAmB,EAAE;IAwBxB;;;;;OAKG;IACH,MAAM,CAAC,gCAAgC,CACrC,eAAe,EAAE,mBAAmB,EAAE,EACtC,QAAQ,EAAE,uCAAuC,GAChD,mBAAmB,EAAE;IAMxB;;;;;OAKG;IACH,MAAM,CAAC,iCAAiC,CACtC,eAAe,EAAE,mBAAmB,EAAE,EACtC,QAAQ,EAAE,uCAAuC,GAChD,mBAAmB,EAAE;IASxB;;;OAGG;IACH,MAAM,CAAC,YAAY,IAAI,eAAe,EAAE;IAIxC;;;OAGG;IACH,MAAM,CAAC,oBAAoB,IAAI,mBAAmB,EAAE;IAIpD;;;;OAIG;IAEH;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,GAAG,oBAAoB;IAI1E;;;OAGG;IACH,MAAM,CAAC,oBAAoB,IAAI,oBAAoB,EAAE;IAIrD;;;;OAIG;IACH,MAAM,CAAC,gCAAgC,CACrC,IAAI,EAAE,oBAAoB,GACzB,oBAAoB,EAAE;IAUzB;;;;;OAKG;IACH,MAAM,CAAC,iCAAiC,CACtC,KAAK,EAAE,oBAAoB,EAAE,GAC5B,oBAAoB,EAAE;IASzB;;;OAGG;IACH,MAAM,CAAC,aAAa,IAAI,gBAAgB,EAAE;CAG3C"}
@@ -24,25 +24,32 @@ class FilterResources {
24
24
  }
25
25
  /**
26
26
  * Gets a collection of groupings info by a column type
27
- * @param type the column type
27
+ * @param type the object with column and formula type
28
28
  * @param settings settings for the function
29
29
  * @returns a collection of grouping info
30
30
  */
31
31
  static getGroupingInfoListByColumnType(type, settings) {
32
+ const { type: columnType, formulaType } = type;
32
33
  const completeSettings = (0, filter_settings_helpers_1.getInfoGroupingsByColumnTypeSettings)(settings);
33
- let groupinInfoList = filter_grouping_resources_1.FILTER_GROUPING_INFO_BY_COLUMN_TYPE[type];
34
- if (type === utils_1.COLUMN.EXPRESSION)
34
+ let newType = columnType;
35
+ if (formulaType != null) {
36
+ newType = utils_1.COLUMN_BY_FORMULA[formulaType];
37
+ }
38
+ let groupinInfoList = filter_grouping_resources_1.FILTER_GROUPING_INFO_BY_COLUMN_TYPE[newType];
39
+ if (newType === utils_1.COLUMN.EXPRESSION)
35
40
  groupinInfoList = this.getGroupingInfoListOnExpressions(groupinInfoList, completeSettings);
36
- if (type === utils_1.COLUMN.IMAGEUPLOAD)
41
+ if (newType === utils_1.COLUMN.IMAGEUPLOAD)
37
42
  groupinInfoList = this.getGroupingInfoListOnImageUploads(groupinInfoList, completeSettings);
38
- if (type === utils_1.COLUMN.DATE || type === utils_1.COLUMN.DATE_FORMULA)
43
+ if (newType === utils_1.COLUMN.DATE ||
44
+ newType === utils_1.COLUMN.DATE_FORMULA ||
45
+ formulaType === utils_1.FORMULA.DATE)
39
46
  groupinInfoList = this.getGroupingInfoListOnDates(groupinInfoList, completeSettings);
40
47
  return groupinInfoList;
41
48
  }
42
49
  /**
43
50
  * Gets a collection of groupings info by a column type
44
51
  * - The resulting grouping info collection is an intersection of mulitple grouping info collections
45
- * @param types the collection of column type
52
+ * @param types the collection of objects with column and formula types
46
53
  * @param settings settings for the function
47
54
  * @returns a collection of grouping info
48
55
  */
@@ -138,16 +145,21 @@ class FilterResources {
138
145
  }
139
146
  /**
140
147
  * Gets a collection of validator info by a column type
141
- * @param type the column type
148
+ * @param type the object with column and formula type
142
149
  * @returns a collection of validator info
143
150
  */
144
151
  static getValidatorInfoListByColumnType(type) {
145
- return filter_validators_resources_1.FILTER_VALIDATORS_INFO_BY_COLUMN_TYPE[type];
152
+ const { type: colummType, formulaType } = type;
153
+ let newType = colummType;
154
+ if (formulaType != null) {
155
+ newType = utils_1.COLUMN_BY_FORMULA[formulaType];
156
+ }
157
+ return filter_validators_resources_1.FILTER_VALIDATORS_INFO_BY_COLUMN_TYPE[newType];
146
158
  }
147
159
  /**
148
160
  * Gets a collection of validator info by a mutiple column types
149
161
  * - The resulting validator info collection is an intersection of mulitple validator info collections
150
- * @param types a collection of column types
162
+ * @param types a collection of objects with column and formula types
151
163
  * @returns a collection of validator info
152
164
  */
153
165
  static getValidatorInfoListByColumnTypes(types) {
@@ -1 +1,40 @@
1
1
  "use strict";
2
+ // import { objectCopy } from "@qrvey/utils";
3
+ // import { IFilter } from "../resources/filters.resources";
4
+ // import { IFilterSettings } from "../resources/filter-settings.resources";
5
+ // /**
6
+ // * Class to search filters.
7
+ // */
8
+ // export class FilterSettings {
9
+ // /**
10
+ // * Constructor
11
+ // * @param settings the filter settings
12
+ // */
13
+ // constructor(protected settings: IFilterSettings) {
14
+ // this.setSettings(Array.isArray(filters) ? filters : []);
15
+ // }
16
+ // /**
17
+ // * **************************************************************************************************
18
+ // ****************************************** Getters *************************************************
19
+ // ****************************************************************************************************
20
+ // */
21
+ // /**
22
+ // * Gets the filter collection
23
+ // * @returns the collection of filters of the context
24
+ // */
25
+ // public getFilters(): IFilter[] {
26
+ // return this.filters;
27
+ // }
28
+ // /**
29
+ // * **************************************************************************************************
30
+ // ****************************************** Setters *************************************************
31
+ // ****************************************************************************************************
32
+ // */
33
+ // /**
34
+ // * Sets the filter settings
35
+ // * @param settings the new filter settings
36
+ // */
37
+ // public setFilters(settings: IFilterSettings): void {
38
+ // this.settings = objectCopy(settings);
39
+ // }
40
+ // }
@@ -119,6 +119,35 @@ export interface IFilterBuilderEditValue {
119
119
  */
120
120
  editValues: (id: string, values: IFilterValue[], indexes: number[]) => IFilterBuilderSingleReturn;
121
121
  }
122
+ /**
123
+ * Structure module for the editing filters
124
+ */
125
+ export interface IFilterBuilderMerge {
126
+ /**
127
+ * Merge the filter into the collection by some filter parameters
128
+ * @param filter the filter to merge
129
+ * @returns the new filter collection
130
+ */
131
+ mergeSingle: (filter: IFilter) => IFilterBuilderSingleReturn;
132
+ /**
133
+ * Merge the filters into the collection by some filter parameters
134
+ * @param filters the filter collection to merge
135
+ * @returns the new filter collection
136
+ */
137
+ mergeMutiple: (filters: IFilter[]) => IFilterBuilderMultipleReturn;
138
+ }
139
+ /**
140
+ * Structure module for the editing filter values
141
+ */
142
+ export interface IFilterBuilderMergeValue {
143
+ /**
144
+ * Merge values from filter
145
+ * @param id the ID to search the filter to merge values
146
+ * @param values the value collection to merge
147
+ * @returns the new filter collection
148
+ */
149
+ mergeValues: (id: string, values: IFilterValue[] | undefined, indexes: number[]) => IFilterBuilderSingleReturn;
150
+ }
122
151
  /**
123
152
  * Structure module for the setting filters
124
153
  */
@@ -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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"}