@pepperi-addons/ngx-lib 0.2.58-beta.1 → 0.2.59

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 (163) hide show
  1. package/attachment/attachment.component.d.ts +0 -1
  2. package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
  3. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +1 -6
  4. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
  5. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +0 -3
  6. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
  7. package/bundles/pepperi-addons-ngx-lib-color.umd.js +1 -6
  8. package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
  9. package/bundles/pepperi-addons-ngx-lib-date.umd.js +0 -3
  10. package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
  11. package/bundles/pepperi-addons-ngx-lib-form.umd.js +15 -18
  12. package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
  13. package/bundles/pepperi-addons-ngx-lib-image.umd.js +1 -6
  14. package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
  15. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +1 -6
  16. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
  17. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +1 -6
  18. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
  19. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +1 -6
  20. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
  21. package/bundles/pepperi-addons-ngx-lib-select.umd.js +1 -6
  22. package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
  23. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +0 -8
  24. package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
  25. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +1 -6
  26. package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
  27. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +173 -1432
  28. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
  29. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +1 -6
  30. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
  31. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +2 -4
  32. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
  33. package/bundles/pepperi-addons-ngx-lib.umd.js +101 -85
  34. package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
  35. package/color/color.component.d.ts +0 -1
  36. package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
  37. package/core/common/services/color.service.d.ts +3 -3
  38. package/core/customization/customization.service.d.ts +0 -1
  39. package/esm2015/attachment/attachment.component.js +2 -7
  40. package/esm2015/checkbox/checkbox.component.js +1 -4
  41. package/esm2015/color/color.component.js +2 -7
  42. package/esm2015/color/public-api.js +1 -2
  43. package/esm2015/core/common/services/color.service.js +101 -83
  44. package/esm2015/core/customization/customization.service.js +2 -4
  45. package/esm2015/date/date.component.js +1 -4
  46. package/esm2015/form/internal-button.component.js +17 -20
  47. package/esm2015/image/image.component.js +2 -7
  48. package/esm2015/images-filmstrip/images-filmstrip.component.js +2 -7
  49. package/esm2015/quantity-selector/quantity-selector.component.js +2 -7
  50. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +2 -7
  51. package/esm2015/select/select.component.js +2 -7
  52. package/esm2015/separator/separator.component.js +1 -9
  53. package/esm2015/signature/signature.component.js +2 -7
  54. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +2 -12
  55. package/esm2015/smart-filters/common/model/base-filter-component.js +10 -40
  56. package/esm2015/smart-filters/common/model/creator.js +2 -8
  57. package/esm2015/smart-filters/common/model/field.js +1 -12
  58. package/esm2015/smart-filters/common/model/operator.js +8 -8
  59. package/esm2015/smart-filters/common/model/type.js +1 -1
  60. package/esm2015/smart-filters/date-filter/date-filter.component.js +2 -45
  61. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +14 -53
  62. package/esm2015/smart-filters/number-filter/number-filter.component.js +2 -25
  63. package/esm2015/smart-filters/pepperi-addons-ngx-lib-smart-filters.js +1 -8
  64. package/esm2015/smart-filters/public-api.js +1 -2
  65. package/esm2015/smart-filters/smart-filters.module.js +2 -14
  66. package/esm2015/textarea/textarea.component.js +2 -7
  67. package/esm2015/textbox/textbox.component.js +3 -5
  68. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +1 -6
  69. package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
  70. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +0 -3
  71. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
  72. package/fesm2015/pepperi-addons-ngx-lib-color.js +1 -6
  73. package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
  74. package/fesm2015/pepperi-addons-ngx-lib-date.js +0 -3
  75. package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
  76. package/fesm2015/pepperi-addons-ngx-lib-form.js +15 -18
  77. package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
  78. package/fesm2015/pepperi-addons-ngx-lib-image.js +1 -6
  79. package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
  80. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +1 -6
  81. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
  82. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +1 -6
  83. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
  84. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +1 -6
  85. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
  86. package/fesm2015/pepperi-addons-ngx-lib-select.js +1 -6
  87. package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
  88. package/fesm2015/pepperi-addons-ngx-lib-separator.js +0 -8
  89. package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
  90. package/fesm2015/pepperi-addons-ngx-lib-signature.js +1 -6
  91. package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
  92. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +128 -1293
  93. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
  94. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +1 -6
  95. package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
  96. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +2 -4
  97. package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
  98. package/fesm2015/pepperi-addons-ngx-lib.js +101 -85
  99. package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
  100. package/form/internal-button.component.d.ts +1 -0
  101. package/image/image.component.d.ts +0 -1
  102. package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
  103. package/images-filmstrip/images-filmstrip.component.d.ts +0 -1
  104. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
  105. package/package.json +1 -1
  106. package/pepperi-addons-ngx-lib.metadata.json +1 -1
  107. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
  108. package/quantity-selector/quantity-selector.component.d.ts +0 -1
  109. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
  110. package/rich-html-textarea/rich-html-textarea.component.d.ts +0 -1
  111. package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
  112. package/select/select.component.d.ts +0 -1
  113. package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
  114. package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
  115. package/signature/signature.component.d.ts +0 -1
  116. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +1 -5
  117. package/smart-filters/common/model/base-filter-component.d.ts +1 -10
  118. package/smart-filters/common/model/field.d.ts +0 -4
  119. package/smart-filters/common/model/operator.d.ts +0 -1
  120. package/smart-filters/common/model/type.d.ts +2 -2
  121. package/smart-filters/date-filter/date-filter.component.d.ts +1 -8
  122. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +0 -6
  123. package/smart-filters/number-filter/number-filter.component.d.ts +0 -5
  124. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.d.ts +0 -7
  125. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
  126. package/smart-filters/public-api.d.ts +0 -1
  127. package/src/assets/i18n/en.ngx-lib.json +1 -2
  128. package/src/core/style/abstracts/mixins.scss +3 -3
  129. package/src/core/style/components/general.scss +2 -4
  130. package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
  131. package/textarea/textarea.component.d.ts +0 -1
  132. package/theming.scss +0 -4
  133. package/esm2015/smart-filters/filter-builder/common/model/filter.js +0 -2
  134. package/esm2015/smart-filters/filter-builder/common/model/legacy.js +0 -2
  135. package/esm2015/smart-filters/filter-builder/common/model/operator-unit.js +0 -42
  136. package/esm2015/smart-filters/filter-builder/common/model/operator.js +0 -207
  137. package/esm2015/smart-filters/filter-builder/common/model/type-map.js +0 -27
  138. package/esm2015/smart-filters/filter-builder/common/model/type.js +0 -6
  139. package/esm2015/smart-filters/filter-builder/common/pipes/filter-item-counter.pipe.js +0 -18
  140. package/esm2015/smart-filters/filter-builder/common/services/output-filter.service.js +0 -132
  141. package/esm2015/smart-filters/filter-builder/common/services/type-convertor.service.js +0 -44
  142. package/esm2015/smart-filters/filter-builder/filter-builder-item/filter-builder-item.component.js +0 -106
  143. package/esm2015/smart-filters/filter-builder/filter-builder-section/filter-builder-section.component.js +0 -50
  144. package/esm2015/smart-filters/filter-builder/filter-builder.component.js +0 -65
  145. package/esm2015/smart-filters/filter-builder/filter-builder.service.js +0 -261
  146. package/esm2015/smart-filters/index.js +0 -5
  147. package/esm2015/smart-filters/text-filter/text-filter.component.js +0 -79
  148. package/smart-filters/filter-builder/common/model/filter.d.ts +0 -6
  149. package/smart-filters/filter-builder/common/model/legacy.d.ts +0 -23
  150. package/smart-filters/filter-builder/common/model/operator-unit.d.ts +0 -13
  151. package/smart-filters/filter-builder/common/model/operator.d.ts +0 -21
  152. package/smart-filters/filter-builder/common/model/type-map.d.ts +0 -12
  153. package/smart-filters/filter-builder/common/model/type.d.ts +0 -4
  154. package/smart-filters/filter-builder/common/pipes/filter-item-counter.pipe.d.ts +0 -5
  155. package/smart-filters/filter-builder/common/services/output-filter.service.d.ts +0 -52
  156. package/smart-filters/filter-builder/common/services/type-convertor.service.d.ts +0 -10
  157. package/smart-filters/filter-builder/filter-builder-item/filter-builder-item.component.d.ts +0 -32
  158. package/smart-filters/filter-builder/filter-builder-section/filter-builder-section.component.d.ts +0 -22
  159. package/smart-filters/filter-builder/filter-builder-section/filter-builder-section.component.theme.scss +0 -6
  160. package/smart-filters/filter-builder/filter-builder.component.d.ts +0 -22
  161. package/smart-filters/filter-builder/filter-builder.service.d.ts +0 -90
  162. package/smart-filters/index.d.ts +0 -1
  163. package/smart-filters/text-filter/text-filter.component.d.ts +0 -17
@@ -1,44 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class PepTypeConvertorService {
4
- constructor() {
5
- this._operators = [];
6
- this._booleans = [];
7
- this.initOperators();
8
- this.initBooleans();
9
- }
10
- get operators() {
11
- return this._operators;
12
- }
13
- get booleans() {
14
- return this._booleans;
15
- }
16
- initOperators() {
17
- this._operators.push({
18
- key: 'AND',
19
- value: 'And'
20
- });
21
- this._operators.push({
22
- key: 'OR',
23
- value: 'Or'
24
- });
25
- }
26
- initBooleans() {
27
- this._booleans.push({
28
- key: 'True',
29
- value: 'True'
30
- });
31
- this._booleans.push({
32
- key: 'False',
33
- value: 'False'
34
- });
35
- }
36
- }
37
- PepTypeConvertorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PepTypeConvertorService_Factory() { return new PepTypeConvertorService(); }, token: PepTypeConvertorService, providedIn: "root" });
38
- PepTypeConvertorService.decorators = [
39
- { type: Injectable, args: [{
40
- providedIn: 'root',
41
- },] }
42
- ];
43
- PepTypeConvertorService.ctorParameters = () => [];
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb252ZXJ0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc21hcnQtZmlsdGVycy9maWx0ZXItYnVpbGRlci9jb21tb24vc2VydmljZXMvdHlwZS1jb252ZXJ0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sdUJBQXVCO0lBWWhDO1FBWGlCLGVBQVUsR0FBaUIsRUFBRSxDQUFDO1FBQzlCLGNBQVMsR0FBaUIsRUFBRSxDQUFDO1FBVzFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQVhELElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBT08sYUFBYTtRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNqQixHQUFHLEVBQUUsS0FBSztZQUNWLEtBQUssRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDakIsR0FBRyxFQUFFLElBQUk7WUFDVCxLQUFLLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ2hCLEdBQUcsRUFBRSxNQUFNO1lBQ1gsS0FBSyxFQUFFLE1BQU07U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDaEIsR0FBRyxFQUFFLE9BQU87WUFDWixLQUFLLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7SUFDUCxDQUFDOzs7O1lBeENKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQZXBPcHRpb24gfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcFR5cGVDb252ZXJ0b3JTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vcGVyYXRvcnM6IElQZXBPcHRpb25bXSA9IFtdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Jvb2xlYW5zOiBJUGVwT3B0aW9uW10gPSBbXTtcblxuICAgIHB1YmxpYyBnZXQgb3BlcmF0b3JzKCk6IElQZXBPcHRpb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvcnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBib29sZWFucygpOiBJUGVwT3B0aW9uW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYm9vbGVhbnM7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaW5pdE9wZXJhdG9ycygpO1xuICAgICAgICB0aGlzLmluaXRCb29sZWFucygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdE9wZXJhdG9ycygpIHtcbiAgICAgICAgdGhpcy5fb3BlcmF0b3JzLnB1c2goe1xuICAgICAgICAgICAga2V5OiAnQU5EJyxcbiAgICAgICAgICAgIHZhbHVlOiAnQW5kJ1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fb3BlcmF0b3JzLnB1c2goe1xuICAgICAgICAgICAga2V5OiAnT1InLFxuICAgICAgICAgICAgdmFsdWU6ICdPcidcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0Qm9vbGVhbnMoKSB7XG4gICAgICAgIHRoaXMuX2Jvb2xlYW5zLnB1c2goe1xuICAgICAgICAgICAga2V5OiAnVHJ1ZScsXG4gICAgICAgICAgICB2YWx1ZTogJ1RydWUnXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9ib29sZWFucy5wdXNoKHtcbiAgICAgICAgICAgIGtleTogJ0ZhbHNlJyxcbiAgICAgICAgICAgIHZhbHVlOiAnRmFsc2UnXG4gICAgICAgIH0pO1xuICAgIH1cblxufSJdfQ==
@@ -1,106 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { FormBuilder } from '@angular/forms';
3
- export class FilterBuilderItemComponent {
4
- constructor(_fb) {
5
- this._fb = _fb;
6
- this._fields = [];
7
- this._options = [];
8
- this._selectedField = null;
9
- this.filterChange = new EventEmitter();
10
- this.remove = new EventEmitter();
11
- this.test = {};
12
- this.fieldWidth = 26;
13
- this.filterWidth = 67.5;
14
- this.binWidth = 6.5;
15
- this.setupForm();
16
- }
17
- set fields(list) {
18
- if ((list === null || list === void 0 ? void 0 : list.length) > 0) {
19
- this._fields = list;
20
- this._options = list.map(field => {
21
- return {
22
- key: field.id,
23
- value: field.name
24
- };
25
- });
26
- }
27
- }
28
- ;
29
- set selected(value) {
30
- if (value) {
31
- this._selectedField = value;
32
- }
33
- }
34
- set filter(value) {
35
- if (value) {
36
- this._filter = value;
37
- }
38
- }
39
- ;
40
- set parentForm(value) {
41
- if (value) {
42
- this._parentForm = value;
43
- this.addToParentForm();
44
- }
45
- }
46
- ;
47
- ngOnInit() {
48
- }
49
- setupForm() {
50
- this._form = this._fb.group({
51
- fieldId: this._fb.control(null),
52
- fieldType: this._fb.control(null),
53
- operator: this._fb.control(null),
54
- operatorUnit: this._fb.control(null),
55
- values: this._fb.group({
56
- first: this._fb.control(null),
57
- second: this._fb.control(null)
58
- }),
59
- });
60
- }
61
- addToParentForm() {
62
- this._parentForm.setControl(this.formKey, this._form);
63
- }
64
- onFieldChanged(key) {
65
- let item = this._fields.find(field => field.id === key);
66
- this.setupForm();
67
- this.addToParentForm();
68
- /**
69
- * hack due to angular's change detection bug -
70
- * ERROR Error: There is no FormControl instance attached to form control element with name: [formControlName]
71
- */
72
- this._selectedField = null;
73
- setTimeout(() => {
74
- this._selectedField = item ? item : null;
75
- }, 0);
76
- this._filter = null;
77
- }
78
- onFilterChanged() {
79
- if (this._form.valid) {
80
- this.filterChange.emit();
81
- }
82
- }
83
- onDeleteItemClicked() {
84
- this.remove.emit();
85
- }
86
- }
87
- FilterBuilderItemComponent.decorators = [
88
- { type: Component, args: [{
89
- selector: 'pep-filter-builder-item',
90
- template: "<div class=\"filter-item-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [field]=\"_selectedField\"\n [filter]=\"_filter\" [parentForm]=\"_form\" [emitOnChange]=\"true\" [inline]=\"true\"\n [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [field]=\"_selectedField\"\n [filter]=\"_filter\" [parentForm]=\"_form\" [emitOnChange]=\"true\" [inline]=\"true\"\n [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [field]=\"_selectedField\"\n [filter]=\"_filter\" [parentForm]=\"_form\" [emitOnChange]=\"true\" [inline]=\"true\"\n [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [field]=\"_selectedField\"\n [filter]=\"_filter\" [parentForm]=\"_form\" [emitOnChange]=\"true\" [inline]=\"true\"\n [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [field]=\"_selectedField\"\n [filter]=\"_filter\" [parentForm]=\"_form\" [emitOnChange]=\"true\" [inline]=\"true\"\n [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <!-- <ng-container *ngIf=\"(_parentForm | filterItemCounter) > 1\"> -->\n <pep-button styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n <!-- </ng-container> -->\n </div>\n</div>",
91
- styles: [""]
92
- },] }
93
- ];
94
- FilterBuilderItemComponent.ctorParameters = () => [
95
- { type: FormBuilder }
96
- ];
97
- FilterBuilderItemComponent.propDecorators = {
98
- formKey: [{ type: Input }],
99
- fields: [{ type: Input }],
100
- selected: [{ type: Input }],
101
- filter: [{ type: Input }],
102
- parentForm: [{ type: Input }],
103
- filterChange: [{ type: Output }],
104
- remove: [{ type: Output }]
105
- };
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJ1aWxkZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMvZmlsdGVyLWJ1aWxkZXIvZmlsdGVyLWJ1aWxkZXItaXRlbS9maWx0ZXItYnVpbGRlci1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQVEsV0FBVyxFQUF5QixNQUFNLGdCQUFnQixDQUFDO0FBWTFFLE1BQU0sT0FBTywwQkFBMEI7SUFvRG5DLFlBQW9CLEdBQWdCO1FBQWhCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFsRHBDLFlBQU8sR0FBZSxFQUFFLENBQUM7UUFDekIsYUFBUSxHQUFpQixFQUFFLENBQUM7UUFhNUIsbUJBQWMsR0FBNEIsSUFBSSxDQUFDO1FBd0IvQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHNUIsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUdmLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUdYLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBbERELElBQ0ksTUFBTSxDQUFDLElBQWlDO1FBQ3hDLElBQUksQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsTUFBTSxJQUFHLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7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QVFMLE1BQU07cUJBRU4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbHRlckJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZmlsdGVyLWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBTbWFydEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvdHlwZSc7XG5pbXBvcnQgeyBQZXBTbWFydEZpbHRlckJhc2VGaWVsZCwgSVBlcFNtYXJ0RmlsdGVyRmllbGQgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvZmllbGQnO1xuaW1wb3J0IHsgSVBlcFNtYXJ0RmlsdGVyRGF0YSB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9maWx0ZXInO1xuaW1wb3J0IHsgSVBlcE9wdGlvbiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtZmlsdGVyLWJ1aWxkZXItaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1idWlsZGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbHRlci1idWlsZGVyLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyQnVpbGRlckl0ZW1Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIGZvcm1LZXk6IHN0cmluZztcbiAgICBfZmllbGRzOiBBcnJheTxhbnk+ID0gW107XG4gICAgX29wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpZWxkcyhsaXN0OiBBcnJheTxJUGVwU21hcnRGaWx0ZXJGaWVsZD4pIHtcbiAgICAgICAgaWYgKGxpc3Q/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpZWxkcyA9IGxpc3Q7XG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gbGlzdC5tYXAoZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogZmllbGQuaWQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWVsZC5uYW1lXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH07XG4gICAgX3NlbGVjdGVkRmllbGQ6IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkID0gbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBzZWxlY3RlZCh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRGaWVsZCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9maWx0ZXI6IElQZXBTbWFydEZpbHRlckRhdGE7XG4gICAgQElucHV0KClcbiAgICBzZXQgZmlsdGVyKHZhbHVlOiBJUGVwU21hcnRGaWx0ZXJEYXRhKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fZmlsdGVyID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIF9wYXJlbnRGb3JtOiBGb3JtR3JvdXA7XG4gICAgQElucHV0KClcbiAgICBzZXQgcGFyZW50Rm9ybSh2YWx1ZTogRm9ybUdyb3VwKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fcGFyZW50Rm9ybSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5hZGRUb1BhcmVudEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBAT3V0cHV0KClcbiAgICBmaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cbiAgICB0ZXN0OiBhbnkgPSB7fTtcblxuICAgIF9mb3JtOiBGb3JtR3JvdXA7XG4gICAgZmllbGRXaWR0aCA9IDI2O1xuICAgIGZpbHRlcldpZHRoID0gNjcuNTtcbiAgICBiaW5XaWR0aCA9IDYuNTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcikge1xuICAgICAgICB0aGlzLnNldHVwRm9ybSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuXG4gICAgfVxuXG4gICAgc2V0dXBGb3JtKCkge1xuICAgICAgICB0aGlzLl9mb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xuICAgICAgICAgICAgZmllbGRJZDogdGhpcy5fZmIuY29udHJvbChudWxsKSxcbiAgICAgICAgICAgIGZpZWxkVHlwZTogdGhpcy5fZmIuY29udHJvbChudWxsKSxcbiAgICAgICAgICAgIG9wZXJhdG9yOiB0aGlzLl9mYi5jb250cm9sKG51bGwpLFxuICAgICAgICAgICAgb3BlcmF0b3JVbml0OiB0aGlzLl9mYi5jb250cm9sKG51bGwpLFxuICAgICAgICAgICAgdmFsdWVzOiB0aGlzLl9mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgZmlyc3Q6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCksXG4gICAgICAgICAgICAgICAgc2Vjb25kOiB0aGlzLl9mYi5jb250cm9sKG51bGwpXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkVG9QYXJlbnRGb3JtKCkge1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2wodGhpcy5mb3JtS2V5LCB0aGlzLl9mb3JtKTtcbiAgICB9XG5cbiAgICBvbkZpZWxkQ2hhbmdlZChrZXkpIHtcbiAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLl9maWVsZHMuZmluZChmaWVsZCA9PiBmaWVsZC5pZCA9PT0ga2V5KTtcblxuICAgICAgICB0aGlzLnNldHVwRm9ybSgpO1xuICAgICAgICB0aGlzLmFkZFRvUGFyZW50Rm9ybSgpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBoYWNrIGR1ZSB0byBhbmd1bGFyJ3MgY2hhbmdlIGRldGVjdGlvbiBidWcgLVxuICAgICAgICAgKiBFUlJPUiBFcnJvcjogVGhlcmUgaXMgbm8gRm9ybUNvbnRyb2wgaW5zdGFuY2UgYXR0YWNoZWQgdG8gZm9ybSBjb250cm9sIGVsZW1lbnQgd2l0aCBuYW1lOiBbZm9ybUNvbnRyb2xOYW1lXVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRGaWVsZCA9IG51bGw7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRGaWVsZCA9IGl0ZW0gPyBpdGVtIDogbnVsbDtcbiAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgdGhpcy5fZmlsdGVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBvbkZpbHRlckNoYW5nZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRlbGV0ZUl0ZW1DbGlja2VkKCkge1xuICAgICAgICB0aGlzLnJlbW92ZS5lbWl0KCk7XG4gICAgfVxuXG5cblxufVxuIl19
@@ -1,50 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';
2
- import { FilterBuilderService } from '../filter-builder.service';
3
- import { PepOperatorTypes } from '../common/model/type';
4
- import { PepTypeConvertorService } from '../common/services/type-convertor.service';
5
- export class FilterBuilderSectionComponent {
6
- constructor(filterBuilderService, typeConvertorService) {
7
- this.filterBuilderService = filterBuilderService;
8
- this.typeConvertorService = typeConvertorService;
9
- this.remove = new EventEmitter();
10
- this.operatorChange = new EventEmitter();
11
- }
12
- ngOnInit() {
13
- }
14
- get f() {
15
- return this.form.controls;
16
- }
17
- onOperatorChanged(value) {
18
- this.f.operator.setValue(value);
19
- this.operatorChange.emit();
20
- }
21
- onAddRuleClicked() {
22
- this.filterBuilderService.createItem(null, this.sectionContainer, this.form);
23
- }
24
- onAddRuleSetClicked() {
25
- const result = this.filterBuilderService.createSection(PepOperatorTypes.And, this.sectionContainer, this.form, this.depth + 1);
26
- this.filterBuilderService.createItem(null, result.containerRef, result.parentForm);
27
- }
28
- onDeleteSectionClicked() {
29
- this.remove.emit();
30
- }
31
- }
32
- FilterBuilderSectionComponent.decorators = [
33
- { type: Component, args: [{
34
- selector: 'pep-filter-builder-section',
35
- template: "<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"filter-section-container\" fxLayout=\"row\" fxLayoutAlign=\"flex-start start\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"11\" [value]=\"f.operator.value\" xAlignment=\"left\" [options]=\"typeConvertorService.operators\"\n [renderTitle]=\"false\" [emptyOption]=false (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <div fxFlex=\"89\" class=\"filter-section-wrapper\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <ng-container #sectionContainer></ng-container>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"false\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth < filterBuilderService.maxDepth-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"false\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n </div>\n <pep-button *ngIf=\"depth > 0\" styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>",
36
- styles: [".filter-section-wrapper{width:100%}.filter-section-container{border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);padding:.5rem;width:100%}"]
37
- },] }
38
- ];
39
- FilterBuilderSectionComponent.ctorParameters = () => [
40
- { type: FilterBuilderService },
41
- { type: PepTypeConvertorService }
42
- ];
43
- FilterBuilderSectionComponent.propDecorators = {
44
- form: [{ type: Input }],
45
- depth: [{ type: Input }],
46
- remove: [{ type: Output }],
47
- operatorChange: [{ type: Output }],
48
- sectionContainer: [{ type: ViewChild, args: ['sectionContainer', { read: ViewContainerRef, static: true },] }]
49
- };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMvZmlsdGVyLWJ1aWxkZXIvZmlsdGVyLWJ1aWxkZXItc2VjdGlvbi9maWx0ZXItYnVpbGRlci1zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQVFwRixNQUFNLE9BQU8sNkJBQTZCO0lBV3RDLFlBQ1csb0JBQTBDLEVBQzFDLG9CQUE2QztRQUQ3Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFSeEQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBUXBDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELElBQUksQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQUs7UUFDbkIsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0gsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OztZQTdDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsNnNEQUFzRDs7YUFFekQ7OztZQVRRLG9CQUFvQjtZQUVwQix1QkFBdUI7OzttQkFTM0IsS0FBSztvQkFDTCxLQUFLO3FCQUVMLE1BQU07NkJBRU4sTUFBTTsrQkFHTixTQUFTLFNBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbHRlckJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZmlsdGVyLWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBPcGVyYXRvclR5cGVzIH0gZnJvbSAnLi4vY29tbW9uL21vZGVsL3R5cGUnO1xuaW1wb3J0IHsgUGVwVHlwZUNvbnZlcnRvclNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vc2VydmljZXMvdHlwZS1jb252ZXJ0b3Iuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtZmlsdGVyLWJ1aWxkZXItc2VjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1idWlsZGVyLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbHRlci1idWlsZGVyLXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyQnVpbGRlclNlY3Rpb25Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcbiAgICBASW5wdXQoKSBkZXB0aDogbnVtYmVyO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIG9wZXJhdG9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZCgnc2VjdGlvbkNvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHNlY3Rpb25Db250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGZpbHRlckJ1aWxkZXJTZXJ2aWNlOiBGaWx0ZXJCdWlsZGVyU2VydmljZSxcbiAgICAgICAgcHVibGljIHR5cGVDb252ZXJ0b3JTZXJ2aWNlOiBQZXBUeXBlQ29udmVydG9yU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgIH1cblxuICAgIGdldCBmKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzO1xuICAgIH1cblxuICAgIG9uT3BlcmF0b3JDaGFuZ2VkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuZi5vcGVyYXRvci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMub3BlcmF0b3JDaGFuZ2UuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uQWRkUnVsZUNsaWNrZWQoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyQnVpbGRlclNlcnZpY2UuY3JlYXRlSXRlbShudWxsLCB0aGlzLnNlY3Rpb25Db250YWluZXIsIHRoaXMuZm9ybSk7XG4gICAgfVxuXG4gICAgb25BZGRSdWxlU2V0Q2xpY2tlZCgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5maWx0ZXJCdWlsZGVyU2VydmljZS5jcmVhdGVTZWN0aW9uKFBlcE9wZXJhdG9yVHlwZXMuQW5kLCB0aGlzLnNlY3Rpb25Db250YWluZXIsIHRoaXMuZm9ybSwgdGhpcy5kZXB0aCArIDEpO1xuICAgICAgICB0aGlzLmZpbHRlckJ1aWxkZXJTZXJ2aWNlLmNyZWF0ZUl0ZW0obnVsbCwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0pO1xuICAgIH1cblxuICAgIG9uRGVsZXRlU2VjdGlvbkNsaWNrZWQoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlLmVtaXQoKTtcbiAgICB9XG5cblxufVxuIl19
@@ -1,65 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';
2
- import { FilterBuilderService } from './filter-builder.service';
3
- import { FormBuilder } from '@angular/forms';
4
- export class FilterBuilderComponent {
5
- constructor(_fb, _filterBuilderService) {
6
- this._fb = _fb;
7
- this._filterBuilderService = _filterBuilderService;
8
- this.json = null;
9
- this.fields = new Array();
10
- this.filters = new EventEmitter();
11
- this.formValidationChange = new EventEmitter();
12
- this._isFormValid = true;
13
- this.setupForm();
14
- this._formSubscription$ = this.form.valueChanges.subscribe((val) => {
15
- if (this.form.valid !== this._isFormValid) {
16
- this._isFormValid = this.form.valid;
17
- this.formValidationChange.emit(this._isFormValid);
18
- }
19
- });
20
- this._outputJsonSubscription$ = this._filterBuilderService.triggerOutputJson.subscribe((outputJson) => {
21
- this.filters.emit(outputJson);
22
- });
23
- }
24
- setupForm() {
25
- this.form = this._fb.group({});
26
- }
27
- ngOnInit() {
28
- this._filterBuilderService.createFilterTree(this.json, this.fields, this.form, this.filterRoot);
29
- }
30
- /*
31
- ngAfterViewInit() {
32
- //this._filterBuilderService.createFilterTree(this.json, this.fields, this.form, this.filterRoot);
33
- }
34
-
35
- ngAfterViewChecked() {
36
- //this._changeDetectionRef.detectChanges();
37
- } */
38
- ngOnDestroy() {
39
- if (this._formSubscription$) {
40
- this._formSubscription$.unsubscribe();
41
- }
42
- if (this._outputJsonSubscription$) {
43
- this._outputJsonSubscription$.unsubscribe();
44
- }
45
- }
46
- }
47
- FilterBuilderComponent.decorators = [
48
- { type: Component, args: [{
49
- selector: 'pep-filter-builder',
50
- template: "<!-- <div class=\"filter-builder-container\"> -->\n<ng-container #filterRoot></ng-container>\n<!-- </div> -->",
51
- styles: [""]
52
- },] }
53
- ];
54
- FilterBuilderComponent.ctorParameters = () => [
55
- { type: FormBuilder },
56
- { type: FilterBuilderService }
57
- ];
58
- FilterBuilderComponent.propDecorators = {
59
- json: [{ type: Input }],
60
- fields: [{ type: Input }],
61
- filters: [{ type: Output }],
62
- formValidationChange: [{ type: Output }],
63
- filterRoot: [{ type: ViewChild, args: ['filterRoot', { read: ViewContainerRef, static: true },] }]
64
- };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2ZpbHRlci1idWlsZGVyL2ZpbHRlci1idWlsZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUlOLFNBQVMsRUFDVCxnQkFBZ0IsRUFHbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFhLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXhELE1BQU0sT0FBTyxzQkFBc0I7SUFrQi9CLFlBQ1ksR0FBZ0IsRUFDaEIscUJBQTJDO1FBRDNDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDaEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQW5COUMsU0FBSSxHQUFvQixJQUFJLENBQUM7UUFDN0IsV0FBTSxHQUFxQixJQUFJLEtBQUssRUFBYSxDQUFDO1FBRzNELFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRCx5QkFBb0IsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU8xRSxpQkFBWSxHQUFZLElBQUksQ0FBQztRQVF6QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQy9ELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDcEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDckQ7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDbEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRDs7Ozs7OztRQU9JO0lBRUosV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN6QztRQUNELElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQy9CLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMvQztJQUNMLENBQUM7OztZQTlESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIseUhBQThDOzthQUVqRDs7O1lBUG1CLFdBQVc7WUFEdEIsb0JBQW9COzs7bUJBVXhCLEtBQUs7cUJBQ0wsS0FBSztzQkFFTCxNQUFNO21DQUVOLE1BQU07eUJBR04sU0FBUyxTQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBPbkluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWZcblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQZXBGaWVsZCwgSVBlcEpTT05TZWN0aW9uIH0gZnJvbSAnLi9jb21tb24vbW9kZWwvbGVnYWN5JztcbmltcG9ydCB7IEZpbHRlckJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi9maWx0ZXItYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtZmlsdGVyLWJ1aWxkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItYnVpbGRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBqc29uOiBJUGVwSlNPTlNlY3Rpb24gPSBudWxsO1xuICAgIEBJbnB1dCgpIGZpZWxkczogQXJyYXk8SVBlcEZpZWxkPiA9IG5ldyBBcnJheTxJUGVwRmllbGQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBmaWx0ZXJzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1WYWxpZGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdmaWx0ZXJSb290JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgZmlsdGVyUm9vdDogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIF9mb3JtU3Vic2NyaXB0aW9uJDogU3Vic2NyaXB0aW9uO1xuICAgIF9vdXRwdXRKc29uU3Vic2NyaXB0aW9uJDogU3Vic2NyaXB0aW9uO1xuXG4gICAgX2lzRm9ybVZhbGlkOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGZvcm06IEZvcm1Hcm91cDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgX2ZpbHRlckJ1aWxkZXJTZXJ2aWNlOiBGaWx0ZXJCdWlsZGVyU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLnNldHVwRm9ybSgpO1xuICAgICAgICB0aGlzLl9mb3JtU3Vic2NyaXB0aW9uJCA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0udmFsaWQgIT09IHRoaXMuX2lzRm9ybVZhbGlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNGb3JtVmFsaWQgPSB0aGlzLmZvcm0udmFsaWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGlvbkNoYW5nZS5lbWl0KHRoaXMuX2lzRm9ybVZhbGlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX291dHB1dEpzb25TdWJzY3JpcHRpb24kID0gdGhpcy5fZmlsdGVyQnVpbGRlclNlcnZpY2UudHJpZ2dlck91dHB1dEpzb24uc3Vic2NyaWJlKChvdXRwdXRKc29uKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcnMuZW1pdChvdXRwdXRKc29uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0dXBGb3JtKCkge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLl9mYi5ncm91cCh7fSlcbiAgICB9XG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlckJ1aWxkZXJTZXJ2aWNlLmNyZWF0ZUZpbHRlclRyZWUodGhpcy5qc29uLCB0aGlzLmZpZWxkcywgdGhpcy5mb3JtLCB0aGlzLmZpbHRlclJvb3QpO1xuICAgIH1cblxuICAgIC8qXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvL3RoaXMuX2ZpbHRlckJ1aWxkZXJTZXJ2aWNlLmNyZWF0ZUZpbHRlclRyZWUodGhpcy5qc29uLCB0aGlzLmZpZWxkcywgdGhpcy5mb3JtLCB0aGlzLmZpbHRlclJvb3QpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgLy90aGlzLl9jaGFuZ2VEZXRlY3Rpb25SZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gKi9cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5fZm9ybVN1YnNjcmlwdGlvbiQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1TdWJzY3JpcHRpb24kLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX291dHB1dEpzb25TdWJzY3JpcHRpb24kKSB7XG4gICAgICAgICAgICB0aGlzLl9vdXRwdXRKc29uU3Vic2NyaXB0aW9uJC51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbiJdfQ==
@@ -1,261 +0,0 @@
1
- import { Injectable, ComponentFactoryResolver } from '@angular/core';
2
- import { FormBuilder } from '@angular/forms';
3
- import { BehaviorSubject } from 'rxjs';
4
- import { PepSmartFilterOperators } from '../common/model/operator';
5
- import { createSmartFilter, createSmartFilterField } from '../common/model/creator';
6
- //import { getSmartBuilderType } from './common/model/type';
7
- //import { convertToSmartFilterFields } from './common/model/field';
8
- import { getSmartBuilderOperator } from './common/model/operator';
9
- import { FilterBuilderSectionComponent } from './filter-builder-section/filter-builder-section.component';
10
- import { FilterBuilderItemComponent } from './filter-builder-item/filter-builder-item.component';
11
- import { PepFilterBuilderTypeMap } from './common/model/type-map';
12
- import { getSmartBuilderOperationUnit } from './common/model/operator-unit';
13
- //import { PepFilterBuilderOperatorUnitMap } from './common/model/operator-unit-map';
14
- import { PepOutputFilterService } from './common/services/output-filter.service';
15
- import { PepOperatorTypes } from './common/model/type';
16
- import * as i0 from "@angular/core";
17
- import * as i1 from "@angular/forms";
18
- import * as i2 from "./common/services/output-filter.service";
19
- export class FilterBuilderService {
20
- constructor(_fb, _resolver, _outputJsonService) {
21
- this._fb = _fb;
22
- this._resolver = _resolver;
23
- this._outputJsonService = _outputJsonService;
24
- this.MAX_STRUCTURE_DEPTH = 3;
25
- this._outputJsonSubject = new BehaviorSubject(null);
26
- this.triggerOutputJson = this._outputJsonSubject.asObservable();
27
- }
28
- get maxDepth() {
29
- return this.MAX_STRUCTURE_DEPTH;
30
- }
31
- /**
32
- * creates a dynamic filter structure
33
- * might has a different structure than the input's due to merge of parent-child elements
34
- * @param json legacy JSON
35
- * @param fields an array of legacy fields
36
- * @param containerRef reference to root element
37
- */
38
- createFilterTree(json, fields, form, containerRef) {
39
- this._form = form;
40
- this._smartFilterFields = this.convertToSmartFilterFields(fields);
41
- const result = this.createSection((json === null || json === void 0 ? void 0 : json.Operation) ? json.Operation : PepOperatorTypes.And, containerRef, this._form, 0);
42
- if (json) {
43
- this.flatten(json, json.LeftNode, result.containerRef, result.parentForm, 1);
44
- this.flatten(json, json.RightNode, result.containerRef, result.parentForm, 1);
45
- }
46
- }
47
- /**
48
- * checks if the object contains property
49
- * @param obj object
50
- * @param prop property name
51
- * @returns true if contains, false otherwise
52
- */
53
- hasProperty(obj, prop) {
54
- return Object.prototype.hasOwnProperty.call(obj, prop);
55
- }
56
- /**
57
- * a recursive function dynamically builds filters structure
58
- * @param parent legacy complex object
59
- * @param current child legacy object (either another complex or expression type)
60
- * @param containerRef parent element
61
- * @param parentForm parent form
62
- */
63
- flatten(parent, current, containerRef, parentForm, depth) {
64
- if (this.hasProperty(current, 'ComplexId')) {
65
- const section = current;
66
- if (parent.Operation === current.Operation) {
67
- this.flatten(parent, section.LeftNode, containerRef, parentForm, depth);
68
- this.flatten(parent, section.RightNode, containerRef, parentForm, depth);
69
- }
70
- else {
71
- const result = this.createSection(section.Operation, containerRef, parentForm, depth);
72
- this.flatten(section, section.LeftNode, result.containerRef, result.parentForm, depth + 1);
73
- this.flatten(section, section.RightNode, result.containerRef, result.parentForm, depth + 1);
74
- }
75
- }
76
- else if (this.hasProperty(current, 'ExpressionId')) {
77
- this.createItem(current, containerRef, parentForm);
78
- }
79
- }
80
- /**
81
- * creates a container object of two or more child filter items
82
- * @param operator AND/OR operator
83
- * @param containerRef parent element
84
- * @param parentForm parent form
85
- * @param depth
86
- * @returns an object containing the current element and current form
87
- */
88
- createSection(operator, containerRef, parentForm, depth) {
89
- const factory = this._resolver.resolveComponentFactory(FilterBuilderSectionComponent);
90
- let componentRef = containerRef.createComponent(factory);
91
- let sectionGroup = this._fb.group({
92
- operator: this._fb.control(operator)
93
- });
94
- let counter = 1;
95
- Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) {
96
- counter++;
97
- } });
98
- let formKey = `section${counter}`;
99
- parentForm.addControl(formKey, sectionGroup);
100
- componentRef.instance.depth = depth;
101
- componentRef.instance.form = sectionGroup;
102
- componentRef.instance.remove.subscribe(() => {
103
- parentForm.removeControl(formKey);
104
- componentRef.destroy();
105
- this.createOutputJson();
106
- });
107
- componentRef.instance.operatorChange.subscribe(() => {
108
- this.createOutputJson();
109
- });
110
- return {
111
- containerRef: componentRef.instance.sectionContainer,
112
- parentForm: sectionGroup
113
- };
114
- }
115
- /**
116
- * creates a component represents filter item (leaf element - has no childs)
117
- * @param current filter legacy element
118
- * @param containerRef parent element
119
- * @param parentForm parent form
120
- */
121
- createItem(current, containerRef, parentForm) {
122
- const factory = this._resolver.resolveComponentFactory(FilterBuilderItemComponent);
123
- let componentRef = containerRef.createComponent(factory);
124
- let counter = 1;
125
- Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) {
126
- counter++;
127
- } });
128
- let formKey = `item${counter}`;
129
- componentRef.instance.formKey = formKey;
130
- componentRef.instance.fields = this._smartFilterFields;
131
- const selectedField = this.getSelectedField(current);
132
- if (selectedField) {
133
- componentRef.instance.selected = selectedField;
134
- if (current) {
135
- componentRef.instance.filter = this.getFilter(current, selectedField);
136
- }
137
- }
138
- componentRef.instance.parentForm = parentForm;
139
- componentRef.instance.filterChange.subscribe(() => {
140
- this.createOutputJson();
141
- });
142
- componentRef.instance.remove.subscribe(() => {
143
- parentForm.removeControl(formKey);
144
- componentRef.destroy();
145
- this.createOutputJson();
146
- });
147
- }
148
- /**
149
- * creates a smart filter object
150
- * @param current filter legacy element
151
- * @param field filter's selected field
152
- * @returns smart filter object
153
- */
154
- getFilter(current, field) {
155
- let operator = getSmartBuilderOperator(current.Operation, field.type);
156
- if (operator) {
157
- let filterValues = this.getFilterValues(current, operator, field);
158
- return createSmartFilter(current.ApiName, operator, filterValues.first, filterValues.second, filterValues.operationUnit);
159
- }
160
- else {
161
- return null;
162
- }
163
- }
164
- /**
165
- * get smart filter field
166
- * @param current filter legacy element
167
- * @returns smart filter field, if not found returns the first fields
168
- */
169
- getSelectedField(current) {
170
- var _a, _b;
171
- if (current) {
172
- let item = this._smartFilterFields.find(field => field.id === current.ApiName);
173
- return item ? item : ((_a = this._smartFilterFields) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this._smartFilterFields[0] : null;
174
- }
175
- else {
176
- return ((_b = this._smartFilterFields) === null || _b === void 0 ? void 0 : _b.length) > 0 ? this._smartFilterFields[0] : null;
177
- }
178
- }
179
- /**
180
- * gets smart filter's values data
181
- * @param current filter legacy element
182
- * @param operator smart filter operator
183
- * @param field filter's selected field
184
- * @returns object contains the filter values data
185
- */
186
- getFilterValues(current, operator, field) {
187
- var _a, _b, _c, _d, _e;
188
- let data = {
189
- first: null,
190
- second: null,
191
- operationUnit: null
192
- };
193
- if (operator === PepSmartFilterOperators.In) { //multi select
194
- //filter keys don't exist on field options
195
- data.first = ((_a = current === null || current === void 0 ? void 0 : current.Values) === null || _a === void 0 ? void 0 : _a.length) > 0 ? current.Values.filter(item => {
196
- return field.options.find(option => option.key === item);
197
- }) : null;
198
- }
199
- else if (operator === PepSmartFilterOperators.InTheLast ||
200
- operator === PepSmartFilterOperators.NotInTheLast ||
201
- operator === PepSmartFilterOperators.DueIn ||
202
- operator === PepSmartFilterOperators.NotDueIn) { //operation unit
203
- data.first = ((_b = current === null || current === void 0 ? void 0 : current.Values) === null || _b === void 0 ? void 0 : _b.length) > 0 ? current.Values[0] : null;
204
- if (((_c = current === null || current === void 0 ? void 0 : current.Values) === null || _c === void 0 ? void 0 : _c.length) === 2) {
205
- data.operationUnit = getSmartBuilderOperationUnit(current.Values[1]);
206
- }
207
- }
208
- else {
209
- data.first = ((_d = current === null || current === void 0 ? void 0 : current.Values) === null || _d === void 0 ? void 0 : _d.length) > 0 ? current.Values[0] : null;
210
- data.second = ((_e = current === null || current === void 0 ? void 0 : current.Values) === null || _e === void 0 ? void 0 : _e.length) === 2 ? current.Values[1] : null;
211
- }
212
- return data;
213
- }
214
- /**
215
- * converts legacy fields to smart filter fields
216
- * @param fields legacy fields array
217
- * @returns smart filter fields array
218
- */
219
- convertToSmartFilterFields(fields) {
220
- if ((fields === null || fields === void 0 ? void 0 : fields.length) > 0) {
221
- const typeMapper = new PepFilterBuilderTypeMap();
222
- return fields.map((field) => {
223
- var _a;
224
- return createSmartFilterField({
225
- id: field.FieldID,
226
- name: field.Title,
227
- options: (_a = field.OptionalValues) === null || _a === void 0 ? void 0 : _a.map(option => {
228
- return {
229
- key: option.Key,
230
- value: option.Value
231
- };
232
- })
233
- }, typeMapper.getSmartBuilderType(field.FieldType));
234
- });
235
- }
236
- else {
237
- return [];
238
- }
239
- }
240
- /**
241
- * creates a legacy output JSON
242
- */
243
- createOutputJson() {
244
- if (this._form.valid) {
245
- const json = this._outputJsonService.generateJson(this._form.value, this._smartFilterFields);
246
- this._outputJsonSubject.next(json);
247
- }
248
- }
249
- }
250
- FilterBuilderService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FilterBuilderService_Factory() { return new FilterBuilderService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i2.PepOutputFilterService)); }, token: FilterBuilderService, providedIn: "root" });
251
- FilterBuilderService.decorators = [
252
- { type: Injectable, args: [{
253
- providedIn: 'root'
254
- },] }
255
- ];
256
- FilterBuilderService.ctorParameters = () => [
257
- { type: FormBuilder },
258
- { type: ComponentFactoryResolver },
259
- { type: PepOutputFilterService }
260
- ];
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJ1aWxkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc21hcnQtZmlsdGVycy9maWx0ZXItYnVpbGRlci9maWx0ZXItYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBQW9CLHdCQUF3QixFQUV6RCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUEwQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNdkMsT0FBTyxFQUFFLHVCQUF1QixFQUEyQixNQUFNLDBCQUEwQixDQUFDO0FBRTVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BGLDREQUE0RDtBQUM1RCxvRUFBb0U7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDMUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUUscUZBQXFGO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBS3ZELE1BQU0sT0FBTyxvQkFBb0I7SUFVN0IsWUFBb0IsR0FBZ0IsRUFBVSxTQUFtQyxFQUFVLGtCQUEwQztRQUFqSCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FB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QVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUF4QlEsV0FBVztZQUhjLHdCQUF3QjtZQXFCakQsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50RmFjdG9yeSwgQ29tcG9uZW50UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBQZXBTbWFydEZpbHRlcnNNb2R1bGUgfSBmcm9tICcuLi9zbWFydC1maWx0ZXJzLm1vZHVsZSc7XG5pbXBvcnQgeyBJUGVwRmllbGQsIElQZXBKU09OU2VjdGlvbiwgSVBlcEpTT05JdGVtIH0gZnJvbSAnLi9jb21tb24vbW9kZWwvbGVnYWN5JztcbmltcG9ydCB7IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkLCBJUGVwU21hcnRGaWx0ZXJGaWVsZCwgSVBlcFNtYXJ0RmlsdGVyRmllbGRPcHRpb24gfSBmcm9tICcuLi9jb21tb24vbW9kZWwvZmllbGQnO1xuaW1wb3J0IHsgSVBlcFNtYXJ0RmlsdGVyRGF0YSB9IGZyb20gJy4uL2NvbW1vbi9tb2RlbC9maWx0ZXInO1xuaW1wb3J0IHsgUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMsIElQZXBTbWFydEZpbHRlck9wZXJhdG9yIH0gZnJvbSAnLi4vY29tbW9uL21vZGVsL29wZXJhdG9yJztcbmltcG9ydCB7IFBlcFNtYXJ0RmlsdGVyVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9tb2RlbC90eXBlJ1xuaW1wb3J0IHsgY3JlYXRlU21hcnRGaWx0ZXIsIGNyZWF0ZVNtYXJ0RmlsdGVyRmllbGQgfSBmcm9tICcuLi9jb21tb24vbW9kZWwvY3JlYXRvcic7XG4vL2ltcG9ydCB7IGdldFNtYXJ0QnVpbGRlclR5cGUgfSBmcm9tICcuL2NvbW1vbi9tb2RlbC90eXBlJztcbi8vaW1wb3J0IHsgY29udmVydFRvU21hcnRGaWx0ZXJGaWVsZHMgfSBmcm9tICcuL2NvbW1vbi9tb2RlbC9maWVsZCc7XG5pbXBvcnQgeyBnZXRTbWFydEJ1aWxkZXJPcGVyYXRvciB9IGZyb20gJy4vY29tbW9uL21vZGVsL29wZXJhdG9yJztcbmltcG9ydCB7IEZpbHRlckJ1aWxkZXJTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXItYnVpbGRlci1zZWN0aW9uL2ZpbHRlci1idWlsZGVyLXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlckJ1aWxkZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXItYnVpbGRlci1pdGVtL2ZpbHRlci1idWlsZGVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFBlcEZpbHRlckJ1aWxkZXJUeXBlTWFwIH0gZnJvbSAnLi9jb21tb24vbW9kZWwvdHlwZS1tYXAnO1xuaW1wb3J0IHsgZ2V0U21hcnRCdWlsZGVyT3BlcmF0aW9uVW5pdCB9IGZyb20gJy4vY29tbW9uL21vZGVsL29wZXJhdG9yLXVuaXQnO1xuLy9pbXBvcnQgeyBQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3JVbml0TWFwIH0gZnJvbSAnLi9jb21tb24vbW9kZWwvb3BlcmF0b3ItdW5pdC1tYXAnO1xuaW1wb3J0IHsgUGVwT3V0cHV0RmlsdGVyU2VydmljZSB9IGZyb20gJy4vY29tbW9uL3NlcnZpY2VzL291dHB1dC1maWx0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJUGVwRmlsdGVyQnVpbGRlclZhbHVlcyB9IGZyb20gJy4vY29tbW9uL21vZGVsL2ZpbHRlcic7XG5pbXBvcnQgeyBQZXBPcGVyYXRvclR5cGVzIH0gZnJvbSAnLi9jb21tb24vbW9kZWwvdHlwZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyQnVpbGRlclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgTUFYX1NUUlVDVFVSRV9ERVBUSDogbnVtYmVyID0gMztcblxuICAgIHByaXZhdGUgX291dHB1dEpzb25TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuXG4gICAgcHJpdmF0ZSBfc21hcnRGaWx0ZXJGaWVsZHM6IEFycmF5PElQZXBTbWFydEZpbHRlckZpZWxkPjtcbiAgICBwcml2YXRlIF9mb3JtOiBGb3JtR3JvdXA7XG5cbiAgICBwdWJsaWMgdHJpZ2dlck91dHB1dEpzb24gPSB0aGlzLl9vdXRwdXRKc29uU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBfcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgcHJpdmF0ZSBfb3V0cHV0SnNvblNlcnZpY2U6IFBlcE91dHB1dEZpbHRlclNlcnZpY2UpIHtcblxuICAgIH1cblxuICAgIGdldCBtYXhEZXB0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5NQVhfU1RSVUNUVVJFX0RFUFRIO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBkeW5hbWljIGZpbHRlciBzdHJ1Y3R1cmVcbiAgICAgKiBtaWdodCBoYXMgYSBkaWZmZXJlbnQgc3RydWN0dXJlIHRoYW4gdGhlIGlucHV0J3MgZHVlIHRvIG1lcmdlIG9mIHBhcmVudC1jaGlsZCBlbGVtZW50c1xuICAgICAqIEBwYXJhbSBqc29uIGxlZ2FjeSBKU09OXG4gICAgICogQHBhcmFtIGZpZWxkcyBhbiBhcnJheSBvZiBsZWdhY3kgZmllbGRzICAgICBcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHJlZmVyZW5jZSB0byByb290IGVsZW1lbnRcbiAgICAgKi9cbiAgICBjcmVhdGVGaWx0ZXJUcmVlKFxuICAgICAgICBqc29uOiBJUGVwSlNPTlNlY3Rpb24gfCBudWxsLFxuICAgICAgICBmaWVsZHM6IEFycmF5PElQZXBGaWVsZD4sXG4gICAgICAgIGZvcm06IEZvcm1Hcm91cCxcbiAgICAgICAgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2Zvcm0gPSBmb3JtO1xuICAgICAgICB0aGlzLl9zbWFydEZpbHRlckZpZWxkcyA9IHRoaXMuY29udmVydFRvU21hcnRGaWx0ZXJGaWVsZHMoZmllbGRzKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jcmVhdGVTZWN0aW9uKGpzb24/Lk9wZXJhdGlvbiA/IGpzb24uT3BlcmF0aW9uIDogUGVwT3BlcmF0b3JUeXBlcy5BbmQsIGNvbnRhaW5lclJlZiwgdGhpcy5fZm9ybSwgMCk7XG4gICAgICAgIGlmIChqc29uKSB7XG4gICAgICAgICAgICB0aGlzLmZsYXR0ZW4oanNvbiwganNvbi5MZWZ0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIDEpO1xuICAgICAgICAgICAgdGhpcy5mbGF0dGVuKGpzb24sIGpzb24uUmlnaHROb2RlLCByZXN1bHQuY29udGFpbmVyUmVmLCByZXN1bHQucGFyZW50Rm9ybSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAqIGNoZWNrcyBpZiB0aGUgb2JqZWN0IGNvbnRhaW5zIHByb3BlcnR5XG4gICAgKiBAcGFyYW0gb2JqIG9iamVjdFxuICAgICogQHBhcmFtIHByb3AgcHJvcGVydHkgbmFtZVxuICAgICogQHJldHVybnMgdHJ1ZSBpZiBjb250YWlucywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgKi9cbiAgICBwcml2YXRlIGhhc1Byb3BlcnR5KG9iaiwgcHJvcCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYSByZWN1cnNpdmUgZnVuY3Rpb24gZHluYW1pY2FsbHkgYnVpbGRzIGZpbHRlcnMgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIHBhcmVudCBsZWdhY3kgY29tcGxleCBvYmplY3RcbiAgICAgKiBAcGFyYW0gY3VycmVudCBjaGlsZCBsZWdhY3kgb2JqZWN0IChlaXRoZXIgYW5vdGhlciBjb21wbGV4IG9yIGV4cHJlc3Npb24gdHlwZSlcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHBhcmVudCBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cbiAgICAgKi9cbiAgICBwcml2YXRlIGZsYXR0ZW4ocGFyZW50OiBJUGVwSlNPTlNlY3Rpb24sIGN1cnJlbnQ6IElQZXBKU09OU2VjdGlvbiB8IElQZXBKU09OSXRlbSwgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydHkoY3VycmVudCwgJ0NvbXBsZXhJZCcpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gY3VycmVudCBhcyBJUGVwSlNPTlNlY3Rpb247XG4gICAgICAgICAgICBpZiAocGFyZW50Lk9wZXJhdGlvbiA9PT0gY3VycmVudC5PcGVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZsYXR0ZW4ocGFyZW50LCBzZWN0aW9uLkxlZnROb2RlLCBjb250YWluZXJSZWYsIHBhcmVudEZvcm0sIGRlcHRoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsYXR0ZW4ocGFyZW50LCBzZWN0aW9uLlJpZ2h0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY3JlYXRlU2VjdGlvbihzZWN0aW9uLk9wZXJhdGlvbiwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKHNlY3Rpb24sIHNlY3Rpb24uTGVmdE5vZGUsIHJlc3VsdC5jb250YWluZXJSZWYsIHJlc3VsdC5wYXJlbnRGb3JtLCBkZXB0aCArIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihzZWN0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNQcm9wZXJ0eShjdXJyZW50LCAnRXhwcmVzc2lvbklkJykpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSXRlbShjdXJyZW50IGFzIElQZXBKU09OSXRlbSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IG9mIHR3byBvciBtb3JlIGNoaWxkIGZpbHRlciBpdGVtc1xuICAgICAqIEBwYXJhbSBvcGVyYXRvciBBTkQvT1Igb3BlcmF0b3JcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHBhcmVudCBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cbiAgICAgKiBAcGFyYW0gZGVwdGhcbiAgICAgKiBAcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBlbGVtZW50IGFuZCBjdXJyZW50IGZvcm1cbiAgICAgKi9cbiAgICBjcmVhdGVTZWN0aW9uKG9wZXJhdG9yOiBQZXBPcGVyYXRvclR5cGVzLCBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHBhcmVudEZvcm06IEZvcm1Hcm91cCwgZGVwdGg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5fcmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRmlsdGVyQnVpbGRlclNlY3Rpb25Db21wb25lbnQpO1xuICAgICAgICBsZXQgY29tcG9uZW50UmVmID0gY29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcblxuICAgICAgICBsZXQgc2VjdGlvbkdyb3VwID0gdGhpcy5fZmIuZ3JvdXAoe1xuICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMuX2ZiLmNvbnRyb2wob3BlcmF0b3IpXG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgY291bnRlciA9IDE7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmVudEZvcm0uY29udHJvbHMpLmZvckVhY2goaXRlbSA9PiB7IGlmIChpdGVtLmluY2x1ZGVzKCdzZWN0aW9uJykpIHsgY291bnRlcisrOyB9IH0pO1xuICAgICAgICBsZXQgZm9ybUtleTogc3RyaW5nID0gYHNlY3Rpb24ke2NvdW50ZXJ9YDtcbiAgICAgICAgcGFyZW50Rm9ybS5hZGRDb250cm9sKGZvcm1LZXksIHNlY3Rpb25Hcm91cCk7XG5cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmRlcHRoID0gZGVwdGg7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JtID0gc2VjdGlvbkdyb3VwO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmVtb3ZlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBwYXJlbnRGb3JtLnJlbW92ZUNvbnRyb2woZm9ybUtleSk7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRKc29uKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uub3BlcmF0b3JDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0SnNvbigpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGFpbmVyUmVmOiBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VjdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICAgIHBhcmVudEZvcm06IHNlY3Rpb25Hcm91cFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBjb21wb25lbnQgcmVwcmVzZW50cyBmaWx0ZXIgaXRlbSAobGVhZiBlbGVtZW50IC0gaGFzIG5vIGNoaWxkcylcbiAgICAgKiBAcGFyYW0gY3VycmVudCBmaWx0ZXIgbGVnYWN5IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHBhcmVudCBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cbiAgICAgKi9cbiAgICBjcmVhdGVJdGVtKGN1cnJlbnQ6IElQZXBKU09OSXRlbSwgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXApIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX3Jlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEZpbHRlckJ1aWxkZXJJdGVtQ29tcG9uZW50KTtcbiAgICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IGNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG5cbiAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJlbnRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGl0ZW0gPT4geyBpZiAoaXRlbS5pbmNsdWRlcygnaXRlbScpKSB7IGNvdW50ZXIrKzsgfSB9KTtcbiAgICAgICAgbGV0IGZvcm1LZXk6IHN0cmluZyA9IGBpdGVtJHtjb3VudGVyfWA7XG5cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZvcm1LZXkgPSBmb3JtS2V5O1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmllbGRzID0gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSB0aGlzLmdldFNlbGVjdGVkRmllbGQoY3VycmVudCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEZpZWxkKSB7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0ZWQgPSBzZWxlY3RlZEZpZWxkO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyID0gdGhpcy5nZXRGaWx0ZXIoY3VycmVudCwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnBhcmVudEZvcm0gPSBwYXJlbnRGb3JtO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dEpzb24oKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5yZW1vdmUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHBhcmVudEZvcm0ucmVtb3ZlQ29udHJvbChmb3JtS2V5KTtcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dEpzb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBhIHNtYXJ0IGZpbHRlciBvYmplY3RcbiAgICAgKiBAcGFyYW0gY3VycmVudCBmaWx0ZXIgbGVnYWN5IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gZmllbGQgZmlsdGVyJ3Mgc2VsZWN0ZWQgZmllbGRcbiAgICAgKiBAcmV0dXJucyBzbWFydCBmaWx0ZXIgb2JqZWN0XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRGaWx0ZXIoY3VycmVudDogSVBlcEpTT05JdGVtLCBmaWVsZDogYW55KTogSVBlcFNtYXJ0RmlsdGVyRGF0YSB8IG51bGwge1xuICAgICAgICBsZXQgb3BlcmF0b3I6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0gZ2V0U21hcnRCdWlsZGVyT3BlcmF0b3IoY3VycmVudC5PcGVyYXRpb24sIGZpZWxkLnR5cGUpO1xuICAgICAgICBpZiAob3BlcmF0b3IpIHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXJWYWx1ZXM6IElQZXBGaWx0ZXJCdWlsZGVyVmFsdWVzID0gdGhpcy5nZXRGaWx0ZXJWYWx1ZXMoY3VycmVudCwgb3BlcmF0b3IsIGZpZWxkKTtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVTbWFydEZpbHRlcihcbiAgICAgICAgICAgICAgICBjdXJyZW50LkFwaU5hbWUsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgZmlsdGVyVmFsdWVzLmZpcnN0LFxuICAgICAgICAgICAgICAgIGZpbHRlclZhbHVlcy5zZWNvbmQsXG4gICAgICAgICAgICAgICAgZmlsdGVyVmFsdWVzLm9wZXJhdGlvblVuaXRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBzbWFydCBmaWx0ZXIgZmllbGRcbiAgICAgKiBAcGFyYW0gY3VycmVudCBmaWx0ZXIgbGVnYWN5IGVsZW1lbnRcbiAgICAgKiBAcmV0dXJucyBzbWFydCBmaWx0ZXIgZmllbGQsIGlmIG5vdCBmb3VuZCByZXR1cm5zIHRoZSBmaXJzdCBmaWVsZHNcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkRmllbGQoY3VycmVudDogSVBlcEpTT05JdGVtKTogSVBlcFNtYXJ0RmlsdGVyRmllbGQgfCBudWxsIHtcbiAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgIGxldCBpdGVtID0gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHMuZmluZChmaWVsZCA9PiBmaWVsZC5pZCA9PT0gY3VycmVudC5BcGlOYW1lKTtcbiAgICAgICAgICAgIHJldHVybiBpdGVtID8gaXRlbSA6IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzPy5sZW5ndGggPiAwID8gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHNbMF0gOiBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzPy5sZW5ndGggPiAwID8gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHNbMF0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0cyBzbWFydCBmaWx0ZXIncyB2YWx1ZXMgZGF0YVxuICAgICAqIEBwYXJhbSBjdXJyZW50IGZpbHRlciBsZWdhY3kgZWxlbWVudFxuICAgICAqIEBwYXJhbSBvcGVyYXRvciBzbWFydCBmaWx0ZXIgb3BlcmF0b3JcbiAgICAgKiBAcGFyYW0gZmllbGQgZmlsdGVyJ3Mgc2VsZWN0ZWQgZmllbGRcbiAgICAgKiBAcmV0dXJucyBvYmplY3QgY29udGFpbnMgdGhlIGZpbHRlciB2YWx1ZXMgZGF0YVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0RmlsdGVyVmFsdWVzKGN1cnJlbnQ6IElQZXBKU09OSXRlbSwgb3BlcmF0b3I6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yLCBmaWVsZDogYW55KSB7XG4gICAgICAgIGxldCBkYXRhOiBJUGVwRmlsdGVyQnVpbGRlclZhbHVlcyA9IHtcbiAgICAgICAgICAgIGZpcnN0OiBudWxsLFxuICAgICAgICAgICAgc2Vjb25kOiBudWxsLFxuICAgICAgICAgICAgb3BlcmF0aW9uVW5pdDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChvcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW4pIHsgLy9tdWx0aSBzZWxlY3QgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIC8vZmlsdGVyIGtleXMgZG9uJ3QgZXhpc3Qgb24gZmllbGQgb3B0aW9uc1xuICAgICAgICAgICAgZGF0YS5maXJzdCA9IGN1cnJlbnQ/LlZhbHVlcz8ubGVuZ3RoID4gMCA/IGN1cnJlbnQuVmFsdWVzLmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQub3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24ua2V5ID09PSBpdGVtKTtcbiAgICAgICAgICAgIH0pIDogbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIG9wZXJhdG9yID09PSBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5JblRoZUxhc3QgfHxcbiAgICAgICAgICAgIG9wZXJhdG9yID09PSBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Ob3RJblRoZUxhc3QgfHxcbiAgICAgICAgICAgIG9wZXJhdG9yID09PSBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5EdWVJbiB8fFxuICAgICAgICAgICAgb3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLk5vdER1ZUluXG4gICAgICAgICkgeyAvL29wZXJhdGlvbiB1bml0XG4gICAgICAgICAgICBkYXRhLmZpcnN0ID0gY3VycmVudD8uVmFsdWVzPy5sZW5ndGggPiAwID8gY3VycmVudC5WYWx1ZXNbMF0gOiBudWxsO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnQ/LlZhbHVlcz8ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICAgICAgZGF0YS5vcGVyYXRpb25Vbml0ID0gZ2V0U21hcnRCdWlsZGVyT3BlcmF0aW9uVW5pdChjdXJyZW50LlZhbHVlc1sxXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhLmZpcnN0ID0gY3VycmVudD8uVmFsdWVzPy5sZW5ndGggPiAwID8gY3VycmVudC5WYWx1ZXNbMF0gOiBudWxsO1xuICAgICAgICAgICAgZGF0YS5zZWNvbmQgPSBjdXJyZW50Py5WYWx1ZXM/Lmxlbmd0aCA9PT0gMiA/IGN1cnJlbnQuVmFsdWVzWzFdIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnRzIGxlZ2FjeSBmaWVsZHMgdG8gc21hcnQgZmlsdGVyIGZpZWxkc1xuICAgICAqIEBwYXJhbSBmaWVsZHMgbGVnYWN5IGZpZWxkcyBhcnJheVxuICAgICAqIEByZXR1cm5zIHNtYXJ0IGZpbHRlciBmaWVsZHMgYXJyYXlcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbnZlcnRUb1NtYXJ0RmlsdGVyRmllbGRzKGZpZWxkczogQXJyYXk8SVBlcEZpZWxkPikge1xuICAgICAgICBpZiAoZmllbGRzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlTWFwcGVyID0gbmV3IFBlcEZpbHRlckJ1aWxkZXJUeXBlTWFwKCk7XG4gICAgICAgICAgICByZXR1cm4gZmllbGRzLm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU21hcnRGaWx0ZXJGaWVsZChcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGZpZWxkLkZpZWxkSUQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWVsZC5UaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGZpZWxkLk9wdGlvbmFsVmFsdWVzPy5tYXAob3B0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IG9wdGlvbi5LZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb24uVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9IGFzIElQZXBTbWFydEZpbHRlckZpZWxkXG4gICAgICAgICAgICAgICAgICAgICwgdHlwZU1hcHBlci5nZXRTbWFydEJ1aWxkZXJUeXBlKGZpZWxkLkZpZWxkVHlwZSkgYXMgUGVwU21hcnRGaWx0ZXJUeXBlKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBsZWdhY3kgb3V0cHV0IEpTT04gXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVPdXRwdXRKc29uKCkge1xuICAgICAgICBpZiAodGhpcy5fZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgY29uc3QganNvbiA9IHRoaXMuX291dHB1dEpzb25TZXJ2aWNlLmdlbmVyYXRlSnNvbih0aGlzLl9mb3JtLnZhbHVlLCB0aGlzLl9zbWFydEZpbHRlckZpZWxkcyk7XG4gICAgICAgICAgICB0aGlzLl9vdXRwdXRKc29uU3ViamVjdC5uZXh0KGpzb24pO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxufSJdfQ==
@@ -1,5 +0,0 @@
1
- /*
2
- * export from ngx-lib/smart-filters
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBleHBvcnQgZnJvbSBuZ3gtbGliL3NtYXJ0LWZpbHRlcnNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==