monkey-front-components 0.0.413 → 0.0.414

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 (171) hide show
  1. package/esm2020/lib/components/base/base-component.mjs +324 -324
  2. package/esm2020/lib/components/base/base-dynamic-array.mjs +221 -221
  3. package/esm2020/lib/components/base/base-dynamic.mjs +102 -102
  4. package/esm2020/lib/components/base/base-scroll-component.mjs +55 -55
  5. package/esm2020/lib/components/base/base-validators.mjs +18 -18
  6. package/esm2020/lib/components/base/index.mjs +5 -5
  7. package/esm2020/lib/components/dynamic/button/button.component.mjs +52 -52
  8. package/esm2020/lib/components/dynamic/button/index.mjs +1 -1
  9. package/esm2020/lib/components/dynamic/dynamic-directive.mjs +95 -95
  10. package/esm2020/lib/components/dynamic/dynamic.module.mjs +84 -84
  11. package/esm2020/lib/components/dynamic/file-upload/file-upload.component.mjs +53 -53
  12. package/esm2020/lib/components/dynamic/file-upload/index.mjs +1 -1
  13. package/esm2020/lib/components/dynamic/form/dynamic-form-array.component.mjs +72 -72
  14. package/esm2020/lib/components/dynamic/form/dynamic-form.component.mjs +46 -46
  15. package/esm2020/lib/components/dynamic/form/index.mjs +2 -2
  16. package/esm2020/lib/components/dynamic/index.mjs +8 -8
  17. package/esm2020/lib/components/dynamic/input/index.mjs +1 -1
  18. package/esm2020/lib/components/dynamic/input/input.component.mjs +65 -65
  19. package/esm2020/lib/components/dynamic/input-phone/index.mjs +1 -1
  20. package/esm2020/lib/components/dynamic/input-phone/input-phone.component.mjs +65 -65
  21. package/esm2020/lib/components/dynamic/radio/index.mjs +1 -1
  22. package/esm2020/lib/components/dynamic/radio/radio.component.mjs +33 -33
  23. package/esm2020/lib/components/dynamic/select/index.mjs +1 -1
  24. package/esm2020/lib/components/dynamic/select/select.component.mjs +80 -80
  25. package/esm2020/lib/components/dynamic/select-search/index.mjs +1 -1
  26. package/esm2020/lib/components/dynamic/select-search/select-search.component.mjs +86 -86
  27. package/esm2020/lib/components/index.mjs +3 -3
  28. package/esm2020/lib/components/shared/filter/filter.component.mjs +119 -119
  29. package/esm2020/lib/components/shared/filter/filter.module.mjs +63 -63
  30. package/esm2020/lib/components/shared/filter/index.mjs +2 -2
  31. package/esm2020/lib/components/shared/filter/menu/index.mjs +1 -1
  32. package/esm2020/lib/components/shared/filter/menu/menu.component.mjs +120 -120
  33. package/esm2020/lib/components/shared/filter/menu/menu.module.mjs +70 -70
  34. package/esm2020/lib/components/shared/filter/options/children/children.component.mjs +50 -50
  35. package/esm2020/lib/components/shared/filter/options/children/index.mjs +1 -1
  36. package/esm2020/lib/components/shared/filter/options/currency/currency.component.mjs +46 -46
  37. package/esm2020/lib/components/shared/filter/options/currency/index.mjs +1 -1
  38. package/esm2020/lib/components/shared/filter/options/date-range/date-range.component.mjs +65 -65
  39. package/esm2020/lib/components/shared/filter/options/date-range/index.mjs +1 -1
  40. package/esm2020/lib/components/shared/filter/options/index.mjs +1 -1
  41. package/esm2020/lib/components/shared/filter/options/input/index.mjs +1 -1
  42. package/esm2020/lib/components/shared/filter/options/input/input.component.mjs +46 -46
  43. package/esm2020/lib/components/shared/filter/options/options.component.mjs +68 -68
  44. package/esm2020/lib/components/shared/filter/options/options.module.mjs +95 -95
  45. package/esm2020/lib/components/shared/filter/options/status/index.mjs +1 -1
  46. package/esm2020/lib/components/shared/filter/options/status/status.component.mjs +66 -66
  47. package/esm2020/lib/components/shared/filter/selected/index.mjs +1 -1
  48. package/esm2020/lib/components/shared/filter/selected/item/children/children.component.mjs +57 -57
  49. package/esm2020/lib/components/shared/filter/selected/item/children/index.mjs +1 -1
  50. package/esm2020/lib/components/shared/filter/selected/item/currency/currency.component.mjs +29 -29
  51. package/esm2020/lib/components/shared/filter/selected/item/currency/index.mjs +1 -1
  52. package/esm2020/lib/components/shared/filter/selected/item/date-range/date-range.component.mjs +42 -42
  53. package/esm2020/lib/components/shared/filter/selected/item/date-range/index.mjs +1 -1
  54. package/esm2020/lib/components/shared/filter/selected/item/date-with-action/date-with-action.component.mjs +33 -33
  55. package/esm2020/lib/components/shared/filter/selected/item/date-with-action/index.mjs +1 -1
  56. package/esm2020/lib/components/shared/filter/selected/item/index.mjs +7 -7
  57. package/esm2020/lib/components/shared/filter/selected/item/input/index.mjs +1 -1
  58. package/esm2020/lib/components/shared/filter/selected/item/input/input.component.mjs +28 -28
  59. package/esm2020/lib/components/shared/filter/selected/item/item.component.mjs +74 -74
  60. package/esm2020/lib/components/shared/filter/selected/item/status/index.mjs +1 -1
  61. package/esm2020/lib/components/shared/filter/selected/item/status/status.component.mjs +39 -39
  62. package/esm2020/lib/components/shared/filter/selected/selected.component.mjs +80 -80
  63. package/esm2020/lib/components/shared/filter/selected/selected.module.mjs +90 -90
  64. package/esm2020/lib/components/shared/index.mjs +4 -4
  65. package/esm2020/lib/components/shared/password-strength/index.mjs +2 -2
  66. package/esm2020/lib/components/shared/password-strength/password-strength.component.mjs +85 -85
  67. package/esm2020/lib/components/shared/password-strength/password-strength.mjs +1 -1
  68. package/esm2020/lib/components/shared/password-strength/password-strength.module.mjs +50 -50
  69. package/esm2020/lib/components/shared/products/filter/filter.component.mjs +36 -36
  70. package/esm2020/lib/components/shared/products/index.mjs +2 -2
  71. package/esm2020/lib/components/shared/products/products.component.mjs +91 -91
  72. package/esm2020/lib/components/shared/products/products.module.mjs +22 -22
  73. package/esm2020/lib/components/shared/products/providers/index.mjs +1 -1
  74. package/esm2020/lib/components/shared/products/providers/products.model.mjs +37 -37
  75. package/esm2020/lib/components/shared/progress-bar/index.mjs +3 -3
  76. package/esm2020/lib/components/shared/progress-bar/progress-bar.component.mjs +28 -28
  77. package/esm2020/lib/components/shared/progress-bar/progress-bar.module.mjs +18 -18
  78. package/esm2020/lib/components/shared/progress-bar/progress-bar.service.mjs +49 -49
  79. package/esm2020/lib/interfaces/field-config.mjs +1 -1
  80. package/esm2020/lib/interfaces/index.mjs +1 -1
  81. package/esm2020/monkey-front-components.mjs +4 -4
  82. package/esm2020/public-api.mjs +4 -4
  83. package/fesm2015/monkey-front-components.mjs +2776 -2776
  84. package/fesm2015/monkey-front-components.mjs.map +1 -1
  85. package/fesm2020/monkey-front-components.mjs +2758 -2758
  86. package/fesm2020/monkey-front-components.mjs.map +1 -1
  87. package/lib/components/base/base-component.d.ts +52 -52
  88. package/lib/components/base/base-dynamic-array.d.ts +34 -34
  89. package/lib/components/base/base-dynamic.d.ts +25 -25
  90. package/lib/components/base/base-scroll-component.d.ts +16 -16
  91. package/lib/components/base/base-validators.d.ts +1 -1
  92. package/lib/components/base/index.d.ts +5 -5
  93. package/lib/components/dynamic/button/button.component.d.ts +17 -17
  94. package/lib/components/dynamic/button/index.d.ts +1 -1
  95. package/lib/components/dynamic/dynamic-directive.d.ts +22 -22
  96. package/lib/components/dynamic/dynamic.module.d.ts +20 -20
  97. package/lib/components/dynamic/file-upload/file-upload.component.d.ts +17 -17
  98. package/lib/components/dynamic/file-upload/index.d.ts +1 -1
  99. package/lib/components/dynamic/form/dynamic-form-array.component.d.ts +16 -16
  100. package/lib/components/dynamic/form/dynamic-form.component.d.ts +14 -14
  101. package/lib/components/dynamic/form/index.d.ts +2 -2
  102. package/lib/components/dynamic/index.d.ts +8 -8
  103. package/lib/components/dynamic/input/index.d.ts +1 -1
  104. package/lib/components/dynamic/input/input.component.d.ts +20 -20
  105. package/lib/components/dynamic/input-phone/index.d.ts +1 -1
  106. package/lib/components/dynamic/input-phone/input-phone.component.d.ts +20 -20
  107. package/lib/components/dynamic/radio/index.d.ts +1 -1
  108. package/lib/components/dynamic/radio/radio.component.d.ts +11 -11
  109. package/lib/components/dynamic/select/index.d.ts +1 -1
  110. package/lib/components/dynamic/select/select.component.d.ts +16 -16
  111. package/lib/components/dynamic/select-search/index.d.ts +1 -1
  112. package/lib/components/dynamic/select-search/select-search.component.d.ts +18 -18
  113. package/lib/components/index.d.ts +3 -3
  114. package/lib/components/shared/filter/filter.component.d.ts +32 -32
  115. package/lib/components/shared/filter/filter.module.d.ts +14 -14
  116. package/lib/components/shared/filter/index.d.ts +2 -2
  117. package/lib/components/shared/filter/menu/index.d.ts +1 -1
  118. package/lib/components/shared/filter/menu/menu.component.d.ts +24 -24
  119. package/lib/components/shared/filter/menu/menu.module.d.ts +14 -14
  120. package/lib/components/shared/filter/options/children/children.component.d.ts +17 -17
  121. package/lib/components/shared/filter/options/children/index.d.ts +1 -1
  122. package/lib/components/shared/filter/options/currency/currency.component.d.ts +17 -17
  123. package/lib/components/shared/filter/options/currency/index.d.ts +1 -1
  124. package/lib/components/shared/filter/options/date-range/date-range.component.d.ts +24 -24
  125. package/lib/components/shared/filter/options/date-range/index.d.ts +1 -1
  126. package/lib/components/shared/filter/options/index.d.ts +1 -1
  127. package/lib/components/shared/filter/options/input/index.d.ts +1 -1
  128. package/lib/components/shared/filter/options/input/input.component.d.ts +17 -17
  129. package/lib/components/shared/filter/options/options.component.d.ts +20 -20
  130. package/lib/components/shared/filter/options/options.module.d.ts +18 -18
  131. package/lib/components/shared/filter/options/status/index.d.ts +1 -1
  132. package/lib/components/shared/filter/options/status/status.component.d.ts +19 -19
  133. package/lib/components/shared/filter/selected/index.d.ts +1 -1
  134. package/lib/components/shared/filter/selected/item/children/children.component.d.ts +16 -16
  135. package/lib/components/shared/filter/selected/item/children/index.d.ts +1 -1
  136. package/lib/components/shared/filter/selected/item/currency/currency.component.d.ts +11 -11
  137. package/lib/components/shared/filter/selected/item/currency/index.d.ts +1 -1
  138. package/lib/components/shared/filter/selected/item/date-range/date-range.component.d.ts +12 -12
  139. package/lib/components/shared/filter/selected/item/date-range/index.d.ts +1 -1
  140. package/lib/components/shared/filter/selected/item/date-with-action/date-with-action.component.d.ts +11 -11
  141. package/lib/components/shared/filter/selected/item/date-with-action/index.d.ts +1 -1
  142. package/lib/components/shared/filter/selected/item/index.d.ts +7 -7
  143. package/lib/components/shared/filter/selected/item/input/index.d.ts +1 -1
  144. package/lib/components/shared/filter/selected/item/input/input.component.d.ts +11 -11
  145. package/lib/components/shared/filter/selected/item/item.component.d.ts +20 -20
  146. package/lib/components/shared/filter/selected/item/status/index.d.ts +1 -1
  147. package/lib/components/shared/filter/selected/item/status/status.component.d.ts +13 -13
  148. package/lib/components/shared/filter/selected/selected.component.d.ts +18 -18
  149. package/lib/components/shared/filter/selected/selected.module.d.ts +21 -21
  150. package/lib/components/shared/index.d.ts +4 -4
  151. package/lib/components/shared/password-strength/index.d.ts +2 -2
  152. package/lib/components/shared/password-strength/password-strength.component.d.ts +23 -23
  153. package/lib/components/shared/password-strength/password-strength.d.ts +5 -5
  154. package/lib/components/shared/password-strength/password-strength.module.d.ts +12 -12
  155. package/lib/components/shared/products/filter/filter.component.d.ts +12 -12
  156. package/lib/components/shared/products/index.d.ts +2 -2
  157. package/lib/components/shared/products/products.component.d.ts +20 -20
  158. package/lib/components/shared/products/products.module.d.ts +11 -11
  159. package/lib/components/shared/products/providers/index.d.ts +1 -1
  160. package/lib/components/shared/products/providers/products.model.d.ts +13 -13
  161. package/lib/components/shared/progress-bar/index.d.ts +3 -3
  162. package/lib/components/shared/progress-bar/progress-bar.component.d.ts +12 -12
  163. package/lib/components/shared/progress-bar/progress-bar.module.d.ts +8 -8
  164. package/lib/components/shared/progress-bar/progress-bar.service.d.ts +14 -14
  165. package/lib/interfaces/field-config.d.ts +54 -54
  166. package/lib/interfaces/index.d.ts +1 -1
  167. package/monkey-front-components-0.0.414.tgz +0 -0
  168. package/monkey-front-components.d.ts +5 -5
  169. package/package.json +5 -5
  170. package/public-api.d.ts +1 -1
  171. package/monkey-front-components-0.0.413.tgz +0 -0
@@ -1,86 +1,86 @@
1
- import { Component, HostBinding, Input, EventEmitter, ViewEncapsulation } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "monkey-style-guide";
4
- import * as i2 from "@angular/forms";
5
- import * as i3 from "@angular/common";
6
- import * as i4 from "@ngx-translate/core";
7
- export class MECXDynamicSelectSearchComponent {
8
- constructor() {
9
- this._field = null;
10
- this._form = null;
11
- // eslint-disable-next-line object-curly-newline
12
- this._formErrors = {};
13
- this._onHandleOptions = new EventEmitter();
14
- this._options = [];
15
- }
16
- set options(value) {
17
- this._options = value;
18
- }
19
- get className() {
20
- return this._field?.style?.class;
21
- }
22
- onHandleGenericLoad() {
23
- const { _form, _field, self } = this;
24
- if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad)
25
- return;
26
- const { name } = _field;
27
- const { func, url } = _field?.functions?.onHandleGenericLoad || {
28
- func: null, url: ''
29
- };
30
- if (!func || !self[func]) {
31
- console.error('onHandleGenericLoad not declared');
32
- return;
33
- }
34
- _form?.disable();
35
- self[func]({
36
- name,
37
- url,
38
- form: _form,
39
- callback: (data) => {
40
- if (this._field) {
41
- this._options = data;
42
- }
43
- this._form?.enable();
44
- this._onHandleOptions.next(null);
45
- }
46
- });
47
- }
48
- onChange(event) {
49
- const { _form, _field, self } = this;
50
- if (!_field || !_form)
51
- return;
52
- const { name } = _field;
53
- const func = _field?.functions?.onChange;
54
- const isValid = _form?.get(_field?.name)?.valid;
55
- if (func) {
56
- self[func]({
57
- name,
58
- isValid,
59
- event,
60
- ctrl: _form.get(this._field?.name),
61
- form: _form,
62
- value: _field.value
63
- });
64
- }
65
- }
66
- }
67
- MECXDynamicSelectSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MECXDynamicSelectSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
- MECXDynamicSelectSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: MECXDynamicSelectSearchComponent, selector: "mecx-dynamic-select-search", inputs: { _field: "_field", _form: "_form", _formErrors: "_formErrors", self: "self", options: "options" }, host: { properties: { "class": "this.className" } }, ngImport: i0, template: "<monkey-select-search\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\n [fieldToCompare]=\"_field?.fieldToCompare\"\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\n [placeholder]=\"_field?.placeholder | translate\">\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length && !_options?.length\"\n enableClick=\"false\">\n </monkey-option>\n <monkey-option *ngFor=\"let value of (_field?.value || _options)\" [label]=\"value.description | translate\"\n [value]=\"value.value\">\n </monkey-option>\n</monkey-select-search>", components: [{ type: i1.MonkeySelectSearchComponent, selector: "monkey-select-search", inputs: ["label", "helperMessage", "placeholder", "icon", "infoMessage", "errorMessage", "labelSelect", "fieldToCompare", "onHandleOptions", "value"], outputs: ["onChange", "onSearch"] }, { type: i1.MonkeyOptionComponent, selector: "monkey-option", inputs: ["type", "label", "value", "selectAll", "selected", "enableClick"], outputs: ["onSelectOption"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i4.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MECXDynamicSelectSearchComponent, decorators: [{
70
- type: Component,
71
- args: [{ selector: 'mecx-dynamic-select-search', encapsulation: ViewEncapsulation.None, template: "<monkey-select-search\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\n [fieldToCompare]=\"_field?.fieldToCompare\"\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\n [placeholder]=\"_field?.placeholder | translate\">\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length && !_options?.length\"\n enableClick=\"false\">\n </monkey-option>\n <monkey-option *ngFor=\"let value of (_field?.value || _options)\" [label]=\"value.description | translate\"\n [value]=\"value.value\">\n </monkey-option>\n</monkey-select-search>" }]
72
- }], propDecorators: { _field: [{
73
- type: Input
74
- }], _form: [{
75
- type: Input
76
- }], _formErrors: [{
77
- type: Input
78
- }], self: [{
79
- type: Input
80
- }], options: [{
81
- type: Input
82
- }], className: [{
83
- type: HostBinding,
84
- args: ['class']
85
- }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMvc2VsZWN0LXNlYXJjaC9zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFTdkIsTUFBTSxPQUFPLGdDQUFnQztJQUw3QztRQU1XLFdBQU0sR0FBMkIsSUFBSSxDQUFDO1FBRXRDLFVBQUssR0FBcUIsSUFBSSxDQUFDO1FBRXhDLGdEQUFnRDtRQUN2QyxnQkFBVyxHQUFnQixFQUFFLENBQUM7UUFhdkMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUzQyxhQUFRLEdBQVUsRUFBRSxDQUFDO0tBNkN0QjtJQXhEQyxJQUFhLE9BQU8sQ0FBQyxLQUFZO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUNJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBTUQsbUJBQW1CO1FBQ2pCLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztRQUNyQyxJQUFJLEtBQUssRUFBRSxRQUFRLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLG1CQUFtQjtZQUFFLE9BQU87UUFDbEYsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUN4QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLElBQUk7WUFDOUQsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtTQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFDbEQsT0FBTztTQUNSO1FBQ0QsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNULElBQUk7WUFDSixHQUFHO1lBQ0gsSUFBSSxFQUFFLEtBQUs7WUFDWCxRQUFRLEVBQUUsQ0FBQyxJQUFXLEVBQUUsRUFBRTtnQkFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2lCQUN0QjtnQkFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUM5QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLElBQWMsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUMxRCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDVCxJQUFJO2dCQUNKLE9BQU87Z0JBQ1AsS0FBSztnQkFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQWMsQ0FBQztnQkFDNUMsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3BCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7OEhBakVVLGdDQUFnQztrSEFBaEMsZ0NBQWdDLG1PQ2Y3QyxrNkJBY3VCOzRGRENWLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSw0QkFBNEIsaUJBRXZCLGlCQUFpQixDQUFDLElBQUk7OEJBRzVCLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRU8sT0FBTztzQkFBbkIsS0FBSztnQkFLRixTQUFTO3NCQURaLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUVDWEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21lY3gtZHluYW1pYy1zZWxlY3Qtc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE1FQ1hEeW5hbWljU2VsZWN0U2VhcmNoQ29tcG9uZW50IHtcbiAgQElucHV0KCkgX2ZpZWxkOiBNRUNYRmllbGRDb25maWcgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKSBfZm9ybTogRm9ybUdyb3VwIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9iamVjdC1jdXJseS1uZXdsaW5lXG4gIEBJbnB1dCgpIF9mb3JtRXJyb3JzOiBhbnkgfCBhbnlbXSA9IHt9O1xuXG4gIEBJbnB1dCgpIHNlbGY6IGFueTtcblxuICBASW5wdXQoKSBzZXQgb3B0aW9ucyh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGQ/LnN0eWxlPy5jbGFzcztcbiAgfVxuXG4gIF9vbkhhbmRsZU9wdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBfb3B0aW9uczogYW55W10gPSBbXTtcblxuICBvbkhhbmRsZUdlbmVyaWNMb2FkKCkge1xuICAgIGNvbnN0IHsgX2Zvcm0sIF9maWVsZCwgc2VsZiB9ID0gdGhpcztcbiAgICBpZiAoX2Zvcm0/LmRpc2FibGVkIHx8ICFfZmllbGQgfHwgIV9maWVsZD8uZnVuY3Rpb25zPy5vbkhhbmRsZUdlbmVyaWNMb2FkKSByZXR1cm47XG4gICAgY29uc3QgeyBuYW1lIH0gPSBfZmllbGQ7XG4gICAgY29uc3QgeyBmdW5jLCB1cmwgfSA9IF9maWVsZD8uZnVuY3Rpb25zPy5vbkhhbmRsZUdlbmVyaWNMb2FkIHx8IHtcbiAgICAgIGZ1bmM6IG51bGwsIHVybDogJydcbiAgICB9O1xuICAgIGlmICghZnVuYyB8fCAhc2VsZltmdW5jXSkge1xuICAgICAgY29uc29sZS5lcnJvcignb25IYW5kbGVHZW5lcmljTG9hZCBub3QgZGVjbGFyZWQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgX2Zvcm0/LmRpc2FibGUoKTtcbiAgICBzZWxmW2Z1bmNdKHtcbiAgICAgIG5hbWUsXG4gICAgICB1cmwsXG4gICAgICBmb3JtOiBfZm9ybSxcbiAgICAgIGNhbGxiYWNrOiAoZGF0YTogYW55W10pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpZWxkKSB7XG4gICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZm9ybT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuX29uSGFuZGxlT3B0aW9ucy5uZXh0KG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb25DaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IHsgX2Zvcm0sIF9maWVsZCwgc2VsZiB9ID0gdGhpcztcbiAgICBpZiAoIV9maWVsZCB8fCAhX2Zvcm0pIHJldHVybjtcbiAgICBjb25zdCB7IG5hbWUgfSA9IF9maWVsZDtcbiAgICBjb25zdCBmdW5jID0gX2ZpZWxkPy5mdW5jdGlvbnM/Lm9uQ2hhbmdlO1xuICAgIGNvbnN0IGlzVmFsaWQgPSBfZm9ybT8uZ2V0KF9maWVsZD8ubmFtZSBhcyBzdHJpbmcpPy52YWxpZDtcbiAgICBpZiAoZnVuYykge1xuICAgICAgc2VsZltmdW5jXSh7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGlzVmFsaWQsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBjdHJsOiBfZm9ybS5nZXQodGhpcy5fZmllbGQ/Lm5hbWUgYXMgc3RyaW5nKSxcbiAgICAgICAgZm9ybTogX2Zvcm0sXG4gICAgICAgIHZhbHVlOiBfZmllbGQudmFsdWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG1vbmtleS1zZWxlY3Qtc2VhcmNoXG4gIGVycm9yTWVzc2FnZT1cInt7IF9mb3JtRXJyb3JzW19maWVsZD8ubmFtZV0/LmZpcnN0TWVzc2FnZSB8IHRyYW5zbGF0ZSB9fSB7eyBfZm9ybUVycm9yc1tfZmllbGQ/Lm5hbWVdPy5sYXN0TWVzc2FnZSB9fVwiXG4gIFtmb3JtQ29udHJvbF09XCJfZm9ybS5jb250cm9sc1tfZmllbGQ/Lm5hbWVdXCIgW2hlbHBlck1lc3NhZ2VdPVwiX2ZpZWxkPy5oZWxwZXJNZXNzYWdlIHwgdHJhbnNsYXRlXCJcbiAgW2xhYmVsXT1cIl9maWVsZD8ubGFiZWwgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwib25IYW5kbGVHZW5lcmljTG9hZCgpXCJcbiAgW29uSGFuZGxlT3B0aW9uc109XCJfb25IYW5kbGVPcHRpb25zXCIgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICBbZmllbGRUb0NvbXBhcmVdPVwiX2ZpZWxkPy5maWVsZFRvQ29tcGFyZVwiXG4gIFtsYWJlbFNlbGVjdF09XCJfZm9ybS5nZXQoX2ZpZWxkPy5uYW1lKS52YWx1ZSB8fCAoJ0ZJRUxELlNFTEVDVCcgfCB0cmFuc2xhdGUpXCJcbiAgW3BsYWNlaG9sZGVyXT1cIl9maWVsZD8ucGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIj5cbiAgPG1vbmtleS1vcHRpb24gW2xhYmVsXT1cIidGSUVMRC5MT0FESU5HJyB8IHRyYW5zbGF0ZVwiICpuZ0lmPVwiIV9maWVsZD8udmFsdWU/Lmxlbmd0aCAmJiAhX29wdGlvbnM/Lmxlbmd0aFwiXG4gICAgZW5hYmxlQ2xpY2s9XCJmYWxzZVwiPlxuICA8L21vbmtleS1vcHRpb24+XG4gIDxtb25rZXktb3B0aW9uICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiAoX2ZpZWxkPy52YWx1ZSB8fCBfb3B0aW9ucylcIiBbbGFiZWxdPVwidmFsdWUuZGVzY3JpcHRpb24gfCB0cmFuc2xhdGVcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZS52YWx1ZVwiPlxuICA8L21vbmtleS1vcHRpb24+XG48L21vbmtleS1zZWxlY3Qtc2VhcmNoPiJdfQ==
1
+ import { Component, HostBinding, Input, EventEmitter, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "monkey-style-guide";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@ngx-translate/core";
7
+ export class MECXDynamicSelectSearchComponent {
8
+ constructor() {
9
+ this._field = null;
10
+ this._form = null;
11
+ // eslint-disable-next-line object-curly-newline
12
+ this._formErrors = {};
13
+ this._onHandleOptions = new EventEmitter();
14
+ this._options = [];
15
+ }
16
+ set options(value) {
17
+ this._options = value;
18
+ }
19
+ get className() {
20
+ return this._field?.style?.class;
21
+ }
22
+ onHandleGenericLoad() {
23
+ const { _form, _field, self } = this;
24
+ if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad)
25
+ return;
26
+ const { name } = _field;
27
+ const { func, url } = _field?.functions?.onHandleGenericLoad || {
28
+ func: null, url: ''
29
+ };
30
+ if (!func || !self[func]) {
31
+ console.error('onHandleGenericLoad not declared');
32
+ return;
33
+ }
34
+ _form?.disable();
35
+ self[func]({
36
+ name,
37
+ url,
38
+ form: _form,
39
+ callback: (data) => {
40
+ if (this._field) {
41
+ this._options = data;
42
+ }
43
+ this._form?.enable();
44
+ this._onHandleOptions.next(null);
45
+ }
46
+ });
47
+ }
48
+ onChange(event) {
49
+ const { _form, _field, self } = this;
50
+ if (!_field || !_form)
51
+ return;
52
+ const { name } = _field;
53
+ const func = _field?.functions?.onChange;
54
+ const isValid = _form?.get(_field?.name)?.valid;
55
+ if (func) {
56
+ self[func]({
57
+ name,
58
+ isValid,
59
+ event,
60
+ ctrl: _form.get(this._field?.name),
61
+ form: _form,
62
+ value: _field.value
63
+ });
64
+ }
65
+ }
66
+ }
67
+ MECXDynamicSelectSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MECXDynamicSelectSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
+ MECXDynamicSelectSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MECXDynamicSelectSearchComponent, selector: "mecx-dynamic-select-search", inputs: { _field: "_field", _form: "_form", _formErrors: "_formErrors", self: "self", options: "options" }, host: { properties: { "class": "this.className" } }, ngImport: i0, template: "<monkey-select-search\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\n [fieldToCompare]=\"_field?.fieldToCompare\"\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\n [placeholder]=\"_field?.placeholder | translate\">\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length && !_options?.length\"\n enableClick=\"false\">\n </monkey-option>\n <monkey-option *ngFor=\"let value of (_field?.value || _options)\" [label]=\"value.description | translate\"\n [value]=\"value.value\">\n </monkey-option>\n</monkey-select-search>", components: [{ type: i1.MonkeySelectSearchComponent, selector: "monkey-select-search", inputs: ["label", "helperMessage", "placeholder", "icon", "infoMessage", "errorMessage", "labelSelect", "fieldToCompare", "onHandleOptions", "value"], outputs: ["onChange", "onSearch"] }, { type: i1.MonkeyOptionComponent, selector: "monkey-option", inputs: ["type", "label", "value", "selectAll", "selected", "enableClick"], outputs: ["onSelectOption"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i4.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MECXDynamicSelectSearchComponent, decorators: [{
70
+ type: Component,
71
+ args: [{ selector: 'mecx-dynamic-select-search', encapsulation: ViewEncapsulation.None, template: "<monkey-select-search\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\n [fieldToCompare]=\"_field?.fieldToCompare\"\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\n [placeholder]=\"_field?.placeholder | translate\">\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length && !_options?.length\"\n enableClick=\"false\">\n </monkey-option>\n <monkey-option *ngFor=\"let value of (_field?.value || _options)\" [label]=\"value.description | translate\"\n [value]=\"value.value\">\n </monkey-option>\n</monkey-select-search>" }]
72
+ }], propDecorators: { _field: [{
73
+ type: Input
74
+ }], _form: [{
75
+ type: Input
76
+ }], _formErrors: [{
77
+ type: Input
78
+ }], self: [{
79
+ type: Input
80
+ }], options: [{
81
+ type: Input
82
+ }], className: [{
83
+ type: HostBinding,
84
+ args: ['class']
85
+ }] } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMvc2VsZWN0LXNlYXJjaC9zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFTdkIsTUFBTSxPQUFPLGdDQUFnQztJQUw3QztRQU1XLFdBQU0sR0FBMkIsSUFBSSxDQUFDO1FBRXRDLFVBQUssR0FBcUIsSUFBSSxDQUFDO1FBRXhDLGdEQUFnRDtRQUN2QyxnQkFBVyxHQUFnQixFQUFFLENBQUM7UUFhdkMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUzQyxhQUFRLEdBQVUsRUFBRSxDQUFDO0tBNkN0QjtJQXhEQyxJQUFhLE9BQU8sQ0FBQyxLQUFZO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUNJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBTUQsbUJBQW1CO1FBQ2pCLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztRQUNyQyxJQUFJLEtBQUssRUFBRSxRQUFRLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLG1CQUFtQjtZQUFFLE9BQU87UUFDbEYsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUN4QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLElBQUk7WUFDOUQsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtTQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFDbEQsT0FBTztTQUNSO1FBQ0QsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNULElBQUk7WUFDSixHQUFHO1lBQ0gsSUFBSSxFQUFFLEtBQUs7WUFDWCxRQUFRLEVBQUUsQ0FBQyxJQUFXLEVBQUUsRUFBRTtnQkFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2lCQUN0QjtnQkFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUM5QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLElBQWMsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUMxRCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDVCxJQUFJO2dCQUNKLE9BQU87Z0JBQ1AsS0FBSztnQkFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQWMsQ0FBQztnQkFDNUMsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3BCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7NkhBakVVLGdDQUFnQztpSEFBaEMsZ0NBQWdDLG1PQ2Y3QyxrNkJBY3VCOzJGRENWLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSw0QkFBNEIsaUJBRXZCLGlCQUFpQixDQUFDLElBQUk7OEJBRzVCLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRU8sT0FBTztzQkFBbkIsS0FBSztnQkFLRixTQUFTO3NCQURaLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUVDWEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21lY3gtZHluYW1pYy1zZWxlY3Qtc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE1FQ1hEeW5hbWljU2VsZWN0U2VhcmNoQ29tcG9uZW50IHtcbiAgQElucHV0KCkgX2ZpZWxkOiBNRUNYRmllbGRDb25maWcgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKSBfZm9ybTogRm9ybUdyb3VwIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9iamVjdC1jdXJseS1uZXdsaW5lXG4gIEBJbnB1dCgpIF9mb3JtRXJyb3JzOiBhbnkgfCBhbnlbXSA9IHt9O1xuXG4gIEBJbnB1dCgpIHNlbGY6IGFueTtcblxuICBASW5wdXQoKSBzZXQgb3B0aW9ucyh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGQ/LnN0eWxlPy5jbGFzcztcbiAgfVxuXG4gIF9vbkhhbmRsZU9wdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBfb3B0aW9uczogYW55W10gPSBbXTtcblxuICBvbkhhbmRsZUdlbmVyaWNMb2FkKCkge1xuICAgIGNvbnN0IHsgX2Zvcm0sIF9maWVsZCwgc2VsZiB9ID0gdGhpcztcbiAgICBpZiAoX2Zvcm0/LmRpc2FibGVkIHx8ICFfZmllbGQgfHwgIV9maWVsZD8uZnVuY3Rpb25zPy5vbkhhbmRsZUdlbmVyaWNMb2FkKSByZXR1cm47XG4gICAgY29uc3QgeyBuYW1lIH0gPSBfZmllbGQ7XG4gICAgY29uc3QgeyBmdW5jLCB1cmwgfSA9IF9maWVsZD8uZnVuY3Rpb25zPy5vbkhhbmRsZUdlbmVyaWNMb2FkIHx8IHtcbiAgICAgIGZ1bmM6IG51bGwsIHVybDogJydcbiAgICB9O1xuICAgIGlmICghZnVuYyB8fCAhc2VsZltmdW5jXSkge1xuICAgICAgY29uc29sZS5lcnJvcignb25IYW5kbGVHZW5lcmljTG9hZCBub3QgZGVjbGFyZWQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgX2Zvcm0/LmRpc2FibGUoKTtcbiAgICBzZWxmW2Z1bmNdKHtcbiAgICAgIG5hbWUsXG4gICAgICB1cmwsXG4gICAgICBmb3JtOiBfZm9ybSxcbiAgICAgIGNhbGxiYWNrOiAoZGF0YTogYW55W10pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpZWxkKSB7XG4gICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZm9ybT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuX29uSGFuZGxlT3B0aW9ucy5uZXh0KG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb25DaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IHsgX2Zvcm0sIF9maWVsZCwgc2VsZiB9ID0gdGhpcztcbiAgICBpZiAoIV9maWVsZCB8fCAhX2Zvcm0pIHJldHVybjtcbiAgICBjb25zdCB7IG5hbWUgfSA9IF9maWVsZDtcbiAgICBjb25zdCBmdW5jID0gX2ZpZWxkPy5mdW5jdGlvbnM/Lm9uQ2hhbmdlO1xuICAgIGNvbnN0IGlzVmFsaWQgPSBfZm9ybT8uZ2V0KF9maWVsZD8ubmFtZSBhcyBzdHJpbmcpPy52YWxpZDtcbiAgICBpZiAoZnVuYykge1xuICAgICAgc2VsZltmdW5jXSh7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGlzVmFsaWQsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBjdHJsOiBfZm9ybS5nZXQodGhpcy5fZmllbGQ/Lm5hbWUgYXMgc3RyaW5nKSxcbiAgICAgICAgZm9ybTogX2Zvcm0sXG4gICAgICAgIHZhbHVlOiBfZmllbGQudmFsdWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG1vbmtleS1zZWxlY3Qtc2VhcmNoXG4gIGVycm9yTWVzc2FnZT1cInt7IF9mb3JtRXJyb3JzW19maWVsZD8ubmFtZV0/LmZpcnN0TWVzc2FnZSB8IHRyYW5zbGF0ZSB9fSB7eyBfZm9ybUVycm9yc1tfZmllbGQ/Lm5hbWVdPy5sYXN0TWVzc2FnZSB9fVwiXG4gIFtmb3JtQ29udHJvbF09XCJfZm9ybS5jb250cm9sc1tfZmllbGQ/Lm5hbWVdXCIgW2hlbHBlck1lc3NhZ2VdPVwiX2ZpZWxkPy5oZWxwZXJNZXNzYWdlIHwgdHJhbnNsYXRlXCJcbiAgW2xhYmVsXT1cIl9maWVsZD8ubGFiZWwgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwib25IYW5kbGVHZW5lcmljTG9hZCgpXCJcbiAgW29uSGFuZGxlT3B0aW9uc109XCJfb25IYW5kbGVPcHRpb25zXCIgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICBbZmllbGRUb0NvbXBhcmVdPVwiX2ZpZWxkPy5maWVsZFRvQ29tcGFyZVwiXG4gIFtsYWJlbFNlbGVjdF09XCJfZm9ybS5nZXQoX2ZpZWxkPy5uYW1lKS52YWx1ZSB8fCAoJ0ZJRUxELlNFTEVDVCcgfCB0cmFuc2xhdGUpXCJcbiAgW3BsYWNlaG9sZGVyXT1cIl9maWVsZD8ucGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIj5cbiAgPG1vbmtleS1vcHRpb24gW2xhYmVsXT1cIidGSUVMRC5MT0FESU5HJyB8IHRyYW5zbGF0ZVwiICpuZ0lmPVwiIV9maWVsZD8udmFsdWU/Lmxlbmd0aCAmJiAhX29wdGlvbnM/Lmxlbmd0aFwiXG4gICAgZW5hYmxlQ2xpY2s9XCJmYWxzZVwiPlxuICA8L21vbmtleS1vcHRpb24+XG4gIDxtb25rZXktb3B0aW9uICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiAoX2ZpZWxkPy52YWx1ZSB8fCBfb3B0aW9ucylcIiBbbGFiZWxdPVwidmFsdWUuZGVzY3JpcHRpb24gfCB0cmFuc2xhdGVcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZS52YWx1ZVwiPlxuICA8L21vbmtleS1vcHRpb24+XG48L21vbmtleS1zZWxlY3Qtc2VhcmNoPiJdfQ==
@@ -1,4 +1,4 @@
1
- export * from './base';
2
- export * from './dynamic';
3
- export * from './shared';
1
+ export * from './base';
2
+ export * from './dynamic';
3
+ export * from './shared';
4
4
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkJztcbiJdfQ==
@@ -1,119 +1,119 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { MonkeyEcxUtils } from 'monkey-front-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "monkey-style-guide";
5
- import * as i2 from "./selected/selected.component";
6
- import * as i3 from "./menu/menu.component";
7
- import * as i4 from "@angular/common";
8
- import * as i5 from "monkey-front-core";
9
- import * as i6 from "@ngx-translate/core";
10
- export class MECXFilterComponent {
11
- constructor() {
12
- this.searchPlaceholder = '';
13
- this.orderPlaceholder = '';
14
- this.menus = [];
15
- this.orders = [];
16
- this.enableSearch = true;
17
- this.isLoading = false;
18
- this.onFilter = new EventEmitter();
19
- this._order = null;
20
- this._search = '';
21
- this._showMenu = false;
22
- this._hasFilterByMenu = false;
23
- this._actionElement = null;
24
- this.closeMenu = () => {
25
- this._showMenu = false;
26
- };
27
- // not to do
28
- }
29
- set search(value) {
30
- this._search = value;
31
- }
32
- set order(value) {
33
- this._order = value;
34
- }
35
- validateValue({ field, value, getValue }) {
36
- try {
37
- value = value || getValue()?.[field];
38
- if (!value)
39
- return false;
40
- if (typeof value === 'object') {
41
- return value && JSON.stringify(value) !== '{}';
42
- }
43
- return MonkeyEcxUtils.persistNullEmptyUndefined(value);
44
- }
45
- catch (e) {
46
- // not to do
47
- }
48
- return false;
49
- }
50
- handleFilters() {
51
- const { menus } = this;
52
- let found = menus.find((_) => {
53
- return this.validateValue(_);
54
- });
55
- if (!found) {
56
- found = menus.find(({ children }) => {
57
- return (children || [])?.find((_) => {
58
- return this.validateValue(_);
59
- });
60
- });
61
- }
62
- this._hasFilterByMenu = !!found;
63
- }
64
- ngOnChanges(changes) {
65
- if (changes.menus) {
66
- const { currentValue } = changes.menus;
67
- if (currentValue && JSON.stringify(currentValue) !== '{}') {
68
- this.handleFilters();
69
- }
70
- }
71
- }
72
- onSearchFilter(event) {
73
- this.onFilter.next({ search: event });
74
- }
75
- onClearFilter() {
76
- this._search = '';
77
- this.onFilter.next({ search: null });
78
- }
79
- onHandleSubmit(event) {
80
- this.onFilter.next(event);
81
- }
82
- onHandleShowMenu() {
83
- this._actionElement = document.getElementById('mecx-filters-add-filter');
84
- setTimeout(() => {
85
- this._showMenu = true;
86
- }, 0);
87
- }
88
- onHandleClose() {
89
- this._showMenu = false;
90
- }
91
- onHandleOrder(event) {
92
- this.onFilter.next({ sort: event });
93
- }
94
- }
95
- MECXFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MECXFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
96
- MECXFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: MECXFilterComponent, selector: "mecx-filter", inputs: { searchPlaceholder: "searchPlaceholder", orderPlaceholder: "orderPlaceholder", menus: "menus", orders: "orders", enableSearch: "enableSearch", search: "search", order: "order", isLoading: "isLoading" }, outputs: { onFilter: "onFilter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex flex-column full-width\">\n <div class=\"d-flex flex-column flex-md-row justify-content-between\">\n <div class=\"d-flex full-width\">\n <ng-container *ngIf=\"enableSearch\">\n <monkey-input-filter [placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"onSearchFilter($event)\" icon=\"search-16\" iconPosition=\"left\"\n [(value)]=\"_search\">\n </monkey-input-filter>\n </ng-container>\n <ng-container *ngIf=\"!_hasFilterByMenu\">\n <div class=\"d-flex actions\" id=\"mecx-filters-add-filter\">\n <monkey-button type=\"filter\" color=\"border\" (click)=\"onHandleShowMenu()\" icon=\"more-16\"\n iconPosition=\"right\">\n {{ 'BUTTONS.ADD-FILTER' | translate }}\n </monkey-button>\n </div>\n </ng-container>\n </div>\n <div class=\"order hidden-sm hidden-xs\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"_hasFilterByMenu\">\n <div class=\"separator\"></div>\n <div class=\"d-flex full-width\">\n <mecx-filter-selected (onSubmit)=\"onHandleSubmit($event)\" (onClose)=\"onHandleClose()\"\n [model]=\"menus\"></mecx-filter-selected>\n <div class=\"more-filters\">\n <monkey-button type=\"filter\" color=\"border\" icon=\"more-16\" id=\"mecx-filters-add-filter\"\n (click)=\"onHandleShowMenu()\">\n </monkey-button>\n </div>\n </div>\n </ng-container>\n <div class=\"order hidden-md hidden-lg\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </div>\n</div>\n\n<mecx-filter-menu\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\n (onSubmit)=\"onHandleSubmit($event)\" (onClose)=\"onHandleClose()\" [model]=\"menus\">\n</mecx-filter-menu>\n\n<ng-template #orderBy>\n <monkey-select-filter (onChange)=\"onHandleOrder($event)\" [placeholder]=\"orderPlaceholder | translate\" type=\"none\"\n [(value)]=\"_order\">\n <monkey-option *ngFor=\"let ordBy of orders\" [label]=\"ordBy?.label | translate\" [value]=\"ordBy?.value\">\n </monkey-option>\n </monkey-select-filter>\n</ng-template>", styles: [":host{display:flex;width:100%;align-items:center}@media screen and (max-width: 959px){:host{flex-direction:column;max-width:100%}:host ::ng-deep monkey-input-filter{width:100%}:host ::ng-deep monkey-select-filter{width:100%}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{width:100%}}@media screen and (min-width: 960px){:host .actions ::ng-deep monkey-button{margin-left:8px}:host .actions ::ng-deep monkey-button button{width:170px}}:host .more-filters ::ng-deep monkey-button monkey-icon{margin-right:unset!important}@media screen and (min-width: 960px){:host .order{width:230px}}@media screen and (max-width: 959px){:host .order{margin-top:8px}}:host ::ng-deep monkey-button{margin-bottom:0}:host ::ng-deep mecx-form-field-filter mecx-form-field-body{height:40px;margin:0}@media screen and (min-width: 960px){:host ::ng-deep monkey-input-filter{width:464px}}:host .separator{border-bottom:1px solid #ebebeb;margin-top:16px;margin-bottom:16px}\n"], components: [{ type: i1.MonkeyInputFilterComponent, selector: "monkey-input-filter", inputs: ["name", "label", "helperMessage", "placeholder", "icon", "type", "infoMessage", "errorMessage", "mask", "prefix", "onlyNumber", "onlyAlphaNumeric", "upperCase", "lowerCase", "capitalize", "currency", "iconPosition", "value"], outputs: ["onChange"] }, { type: i1.MonkeyButtonComponent, selector: "monkey-button", inputs: ["label", "icon", "iconPosition", "type", "color", "disabled", "size"] }, { type: i2.MECXFilterSelectedComponent, selector: "mecx-filter-selected", inputs: ["model"], outputs: ["onOpenFilters", "onClose", "onSubmit"] }, { type: i3.MECXFilterMenuComponent, selector: "mecx-filter-menu", inputs: ["model"], outputs: ["onClose", "onSubmit"] }, { type: i1.MonkeySelectFilterComponent, selector: "monkey-select-filter", inputs: ["placeholder", "icon", "type", "value"], outputs: ["onChange"] }, { type: i1.MonkeyOptionComponent, selector: "monkey-option", inputs: ["type", "label", "value", "selectAll", "selected", "enableClick"], outputs: ["onSelectOption"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.MonkeyEcxPopoverDirective, selector: "[monkeyecxPopover]", inputs: ["monkeyecxPopover", "monkeyecxPopoverClosed", "monkeyecxPopoverTarget", "monkeyecxPopoverMinwidth", "monkeyecxPopoverBackdrop", "monkeyecxPopoverWatch", "monkeyecxPopoverDir", "monkeyecxPopoverContextmenu", "monkeyecxPopoverHeight"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i6.TranslatePipe } });
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MECXFilterComponent, decorators: [{
98
- type: Component,
99
- args: [{ selector: 'mecx-filter', template: "<div class=\"d-flex flex-column full-width\">\n <div class=\"d-flex flex-column flex-md-row justify-content-between\">\n <div class=\"d-flex full-width\">\n <ng-container *ngIf=\"enableSearch\">\n <monkey-input-filter [placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"onSearchFilter($event)\" icon=\"search-16\" iconPosition=\"left\"\n [(value)]=\"_search\">\n </monkey-input-filter>\n </ng-container>\n <ng-container *ngIf=\"!_hasFilterByMenu\">\n <div class=\"d-flex actions\" id=\"mecx-filters-add-filter\">\n <monkey-button type=\"filter\" color=\"border\" (click)=\"onHandleShowMenu()\" icon=\"more-16\"\n iconPosition=\"right\">\n {{ 'BUTTONS.ADD-FILTER' | translate }}\n </monkey-button>\n </div>\n </ng-container>\n </div>\n <div class=\"order hidden-sm hidden-xs\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"_hasFilterByMenu\">\n <div class=\"separator\"></div>\n <div class=\"d-flex full-width\">\n <mecx-filter-selected (onSubmit)=\"onHandleSubmit($event)\" (onClose)=\"onHandleClose()\"\n [model]=\"menus\"></mecx-filter-selected>\n <div class=\"more-filters\">\n <monkey-button type=\"filter\" color=\"border\" icon=\"more-16\" id=\"mecx-filters-add-filter\"\n (click)=\"onHandleShowMenu()\">\n </monkey-button>\n </div>\n </div>\n </ng-container>\n <div class=\"order hidden-md hidden-lg\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </div>\n</div>\n\n<mecx-filter-menu\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\n (onSubmit)=\"onHandleSubmit($event)\" (onClose)=\"onHandleClose()\" [model]=\"menus\">\n</mecx-filter-menu>\n\n<ng-template #orderBy>\n <monkey-select-filter (onChange)=\"onHandleOrder($event)\" [placeholder]=\"orderPlaceholder | translate\" type=\"none\"\n [(value)]=\"_order\">\n <monkey-option *ngFor=\"let ordBy of orders\" [label]=\"ordBy?.label | translate\" [value]=\"ordBy?.value\">\n </monkey-option>\n </monkey-select-filter>\n</ng-template>", styles: [":host{display:flex;width:100%;align-items:center}@media screen and (max-width: 959px){:host{flex-direction:column;max-width:100%}:host ::ng-deep monkey-input-filter{width:100%}:host ::ng-deep monkey-select-filter{width:100%}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{width:100%}}@media screen and (min-width: 960px){:host .actions ::ng-deep monkey-button{margin-left:8px}:host .actions ::ng-deep monkey-button button{width:170px}}:host .more-filters ::ng-deep monkey-button monkey-icon{margin-right:unset!important}@media screen and (min-width: 960px){:host .order{width:230px}}@media screen and (max-width: 959px){:host .order{margin-top:8px}}:host ::ng-deep monkey-button{margin-bottom:0}:host ::ng-deep mecx-form-field-filter mecx-form-field-body{height:40px;margin:0}@media screen and (min-width: 960px){:host ::ng-deep monkey-input-filter{width:464px}}:host .separator{border-bottom:1px solid #ebebeb;margin-top:16px;margin-bottom:16px}\n"] }]
100
- }], ctorParameters: function () { return []; }, propDecorators: { searchPlaceholder: [{
101
- type: Input
102
- }], orderPlaceholder: [{
103
- type: Input
104
- }], menus: [{
105
- type: Input
106
- }], orders: [{
107
- type: Input
108
- }], enableSearch: [{
109
- type: Input
110
- }], search: [{
111
- type: Input
112
- }], order: [{
113
- type: Input
114
- }], isLoading: [{
115
- type: Input
116
- }], onFilter: [{
117
- type: Output
118
- }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUE2QyxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7QUFPOUYsTUFBTSxPQUFPLG1CQUFtQjtJQXVDOUI7UUF0Q1Msc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBRXZCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUV0QixVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUVsQyxXQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUVwQyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQVlwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTdDLFdBQU0sR0FBeUIsSUFBSSxDQUFDO1FBRXBDLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFYixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6QixtQkFBYyxHQUFnQixJQUFJLENBQUM7UUFFbkMsY0FBUyxHQUFHLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQztRQUdBLFlBQVk7SUFDZCxDQUFDO0lBOUJE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QUFDLEtBQVU7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDOztpSEEzR1UsbUJBQW1CO3FHQUFuQixtQkFBbUIsK1RDUmhDLHFyRUFrRGM7NEZEMUNELG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhOzBFQUtkLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdGLE1BQU07c0JBRFQsS0FBSztnQkFNRixLQUFLO3NCQURSLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9ua2V5RWN4RmlsdGVyTWVudSwgTW9ua2V5RWN4RmlsdGVyT3JkZXIsIE1vbmtleUVjeFV0aWxzIH0gZnJvbSAnbW9ua2V5LWZyb250LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZWN4LWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNRUNYRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXIgPSAnJztcblxuICBASW5wdXQoKSBvcmRlclBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQElucHV0KCkgbWVudXM6IE1vbmtleUVjeEZpbHRlck1lbnVbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIG9yZGVyczogTW9ua2V5RWN4RmlsdGVyT3JkZXJbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIGVuYWJsZVNlYXJjaCA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgc2V0IHNlYXJjaCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2VhcmNoID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgb3JkZXIodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX29yZGVyID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBfb3JkZXI6IE1vbmtleUVjeEZpbHRlck9yZGVyID0gbnVsbDtcblxuICBfc2VhcmNoID0gJyc7XG5cbiAgX3Nob3dNZW51ID0gZmFsc2U7XG5cbiAgX2hhc0ZpbHRlckJ5TWVudSA9IGZhbHNlO1xuXG4gIF9hY3Rpb25FbGVtZW50OiBIVE1MRWxlbWVudCA9IG51bGw7XG5cbiAgY2xvc2VNZW51ID0gKCkgPT4ge1xuICAgIHRoaXMuX3Nob3dNZW51ID0gZmFsc2U7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gbm90IHRvIGRvXG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVmFsdWUoeyBmaWVsZCwgdmFsdWUsIGdldFZhbHVlIH06IGFueSkge1xuICAgIHRyeSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlIHx8IGdldFZhbHVlKCk/LltmaWVsZF07XG4gICAgICBpZiAoIXZhbHVlKSByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gdmFsdWUgJiYgSlNPTi5zdHJpbmdpZnkodmFsdWUpICE9PSAne30nO1xuICAgICAgfVxuICAgICAgcmV0dXJuIE1vbmtleUVjeFV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQodmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vdCB0byBkb1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZpbHRlcnMoKSB7XG4gICAgY29uc3QgeyBtZW51cyB9ID0gdGhpcztcbiAgICBsZXQgZm91bmQgPSBtZW51cy5maW5kKChfOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlVmFsdWUoXyk7XG4gICAgfSk7XG4gICAgaWYgKCFmb3VuZCkge1xuICAgICAgZm91bmQgPSBtZW51cy5maW5kKCh7IGNoaWxkcmVuIH0pID0+IHtcbiAgICAgICAgcmV0dXJuIChjaGlsZHJlbiB8fCBbXSk/LmZpbmQoKF86IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlVmFsdWUoXyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuX2hhc0ZpbHRlckJ5TWVudSA9ICEhZm91bmQ7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMubWVudXMpIHtcbiAgICAgIGNvbnN0IHsgY3VycmVudFZhbHVlIH0gPSBjaGFuZ2VzLm1lbnVzO1xuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAmJiBKU09OLnN0cmluZ2lmeShjdXJyZW50VmFsdWUpICE9PSAne30nKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRmlsdGVycygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoRmlsdGVyKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uRmlsdGVyLm5leHQoeyBzZWFyY2g6IGV2ZW50IH0pO1xuICB9XG5cbiAgb25DbGVhckZpbHRlcigpIHtcbiAgICB0aGlzLl9zZWFyY2ggPSAnJztcbiAgICB0aGlzLm9uRmlsdGVyLm5leHQoeyBzZWFyY2g6IG51bGwgfSk7XG4gIH1cblxuICBvbkhhbmRsZVN1Ym1pdChldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkZpbHRlci5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIG9uSGFuZGxlU2hvd01lbnUoKSB7XG4gICAgdGhpcy5fYWN0aW9uRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZWN4LWZpbHRlcnMtYWRkLWZpbHRlcicpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fc2hvd01lbnUgPSB0cnVlO1xuICAgIH0sIDApO1xuICB9XG5cbiAgb25IYW5kbGVDbG9zZSgpIHtcbiAgICB0aGlzLl9zaG93TWVudSA9IGZhbHNlO1xuICB9XG5cbiAgb25IYW5kbGVPcmRlcihldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkZpbHRlci5uZXh0KHsgc29ydDogZXZlbnQgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZnVsbC13aWR0aFwiPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbWQtcm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmdWxsLXdpZHRoXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW5hYmxlU2VhcmNoXCI+XG4gICAgICAgIDxtb25rZXktaW5wdXQtZmlsdGVyIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uU2VhcmNoRmlsdGVyKCRldmVudClcIiBpY29uPVwic2VhcmNoLTE2XCIgaWNvblBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgWyh2YWx1ZSldPVwiX3NlYXJjaFwiPlxuICAgICAgICA8L21vbmtleS1pbnB1dC1maWx0ZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhX2hhc0ZpbHRlckJ5TWVudVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFjdGlvbnNcIiBpZD1cIm1lY3gtZmlsdGVycy1hZGQtZmlsdGVyXCI+XG4gICAgICAgICAgPG1vbmtleS1idXR0b24gdHlwZT1cImZpbHRlclwiIGNvbG9yPVwiYm9yZGVyXCIgKGNsaWNrKT1cIm9uSGFuZGxlU2hvd01lbnUoKVwiIGljb249XCJtb3JlLTE2XCJcbiAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCI+XG4gICAgICAgICAgICB7eyAnQlVUVE9OUy5BREQtRklMVEVSJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwib3JkZXIgaGlkZGVuLXNtIGhpZGRlbi14c1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9yZGVyQnlcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJfaGFzRmlsdGVyQnlNZW51XCI+XG4gICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZnVsbC13aWR0aFwiPlxuICAgICAgPG1lY3gtZmlsdGVyLXNlbGVjdGVkIChvblN1Ym1pdCk9XCJvbkhhbmRsZVN1Ym1pdCgkZXZlbnQpXCIgKG9uQ2xvc2UpPVwib25IYW5kbGVDbG9zZSgpXCJcbiAgICAgICAgW21vZGVsXT1cIm1lbnVzXCI+PC9tZWN4LWZpbHRlci1zZWxlY3RlZD5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb3JlLWZpbHRlcnNcIj5cbiAgICAgICAgPG1vbmtleS1idXR0b24gdHlwZT1cImZpbHRlclwiIGNvbG9yPVwiYm9yZGVyXCIgaWNvbj1cIm1vcmUtMTZcIiBpZD1cIm1lY3gtZmlsdGVycy1hZGQtZmlsdGVyXCJcbiAgICAgICAgICAoY2xpY2spPVwib25IYW5kbGVTaG93TWVudSgpXCI+XG4gICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cIm9yZGVyIGhpZGRlbi1tZCBoaWRkZW4tbGdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwib3JkZXJCeVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bWVjeC1maWx0ZXItbWVudVxuICAqbW9ua2V5ZWN4UG9wb3Zlcj1cIl9zaG93TWVudTsgdGFyZ2V0OiAkYW55KF9hY3Rpb25FbGVtZW50KTsgY2xvc2VkOiBjbG9zZU1lbnU7IGRpcjogJ2x0cidcIlxuICAob25TdWJtaXQpPVwib25IYW5kbGVTdWJtaXQoJGV2ZW50KVwiIChvbkNsb3NlKT1cIm9uSGFuZGxlQ2xvc2UoKVwiIFttb2RlbF09XCJtZW51c1wiPlxuPC9tZWN4LWZpbHRlci1tZW51PlxuXG48bmctdGVtcGxhdGUgI29yZGVyQnk+XG4gIDxtb25rZXktc2VsZWN0LWZpbHRlciAob25DaGFuZ2UpPVwib25IYW5kbGVPcmRlcigkZXZlbnQpXCIgW3BsYWNlaG9sZGVyXT1cIm9yZGVyUGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIiB0eXBlPVwibm9uZVwiXG4gICAgWyh2YWx1ZSldPVwiX29yZGVyXCI+XG4gICAgPG1vbmtleS1vcHRpb24gKm5nRm9yPVwibGV0IG9yZEJ5IG9mIG9yZGVyc1wiIFtsYWJlbF09XCJvcmRCeT8ubGFiZWwgfCB0cmFuc2xhdGVcIiBbdmFsdWVdPVwib3JkQnk/LnZhbHVlXCI+XG4gICAgPC9tb25rZXktb3B0aW9uPlxuICA8L21vbmtleS1zZWxlY3QtZmlsdGVyPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { MonkeyEcxUtils } from 'monkey-front-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "monkey-style-guide";
5
+ import * as i2 from "./selected/selected.component";
6
+ import * as i3 from "./menu/menu.component";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "monkey-front-core";
9
+ import * as i6 from "@ngx-translate/core";
10
+ export class MECXFilterComponent {
11
+ constructor() {
12
+ this.searchPlaceholder = '';
13
+ this.orderPlaceholder = '';
14
+ this.menus = [];
15
+ this.orders = [];
16
+ this.enableSearch = true;
17
+ this.isLoading = false;
18
+ this.onFilter = new EventEmitter();
19
+ this._order = null;
20
+ this._search = '';
21
+ this._showMenu = false;
22
+ this._hasFilterByMenu = false;
23
+ this._actionElement = null;
24
+ this.closeMenu = () => {
25
+ this._showMenu = false;
26
+ };
27
+ // not to do
28
+ }
29
+ set search(value) {
30
+ this._search = value;
31
+ }
32
+ set order(value) {
33
+ this._order = value;
34
+ }
35
+ validateValue({ field, value, getValue }) {
36
+ try {
37
+ value = value || getValue()?.[field];
38
+ if (!value)
39
+ return false;
40
+ if (typeof value === 'object') {
41
+ return value && JSON.stringify(value) !== '{}';
42
+ }
43
+ return MonkeyEcxUtils.persistNullEmptyUndefined(value);
44
+ }
45
+ catch (e) {
46
+ // not to do
47
+ }
48
+ return false;
49
+ }
50
+ handleFilters() {
51
+ const { menus } = this;
52
+ let found = menus.find((_) => {
53
+ return this.validateValue(_);
54
+ });
55
+ if (!found) {
56
+ found = menus.find(({ children }) => {
57
+ return (children || [])?.find((_) => {
58
+ return this.validateValue(_);
59
+ });
60
+ });
61
+ }
62
+ this._hasFilterByMenu = !!found;
63
+ }
64
+ ngOnChanges(changes) {
65
+ if (changes.menus) {
66
+ const { currentValue } = changes.menus;
67
+ if (currentValue && JSON.stringify(currentValue) !== '{}') {
68
+ this.handleFilters();
69
+ }
70
+ }
71
+ }
72
+ onSearchFilter(event) {
73
+ this.onFilter.next({ search: event });
74
+ }
75
+ onClearFilter() {
76
+ this._search = '';
77
+ this.onFilter.next({ search: null });
78
+ }
79
+ onHandleSubmit(event) {
80
+ this.onFilter.next(event);
81
+ }
82
+ onHandleShowMenu() {
83
+ this._actionElement = document.getElementById('mecx-filters-add-filter');
84
+ setTimeout(() => {
85
+ this._showMenu = true;
86
+ }, 0);
87
+ }
88
+ onHandleClose() {
89
+ this._showMenu = false;
90
+ }
91
+ onHandleOrder(event) {
92
+ this.onFilter.next({ sort: event });
93
+ }
94
+ }
95
+ MECXFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MECXFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
96
+ MECXFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MECXFilterComponent, selector: "mecx-filter", inputs: { searchPlaceholder: "searchPlaceholder", orderPlaceholder: "orderPlaceholder", menus: "menus", orders: "orders", enableSearch: "enableSearch", search: "search", order: "order", isLoading: "isLoading" }, outputs: { onFilter: "onFilter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex flex-column full-width\">\n <div class=\"d-flex flex-column flex-md-row justify-content-between\">\n <div class=\"d-flex full-width\">\n <ng-container *ngIf=\"enableSearch\">\n <monkey-input-filter [placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"onSearchFilter($event)\" icon=\"search-16\" iconPosition=\"left\"\n [(value)]=\"_search\">\n </monkey-input-filter>\n </ng-container>\n <ng-container *ngIf=\"!_hasFilterByMenu\">\n <div class=\"d-flex actions\" id=\"mecx-filters-add-filter\">\n <monkey-button type=\"filter\" color=\"border\" (click)=\"onHandleShowMenu()\" icon=\"more-16\"\n iconPosition=\"right\">\n {{ 'BUTTONS.ADD-FILTER' | translate }}\n </monkey-button>\n </div>\n </ng-container>\n </div>\n <div class=\"order hidden-sm hidden-xs\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"_hasFilterByMenu\">\n <div class=\"separator\"></div>\n <div class=\"d-flex full-width\">\n <mecx-filter-selected (onSubmit)=\"onHandleSubmit($event)\" (onClose)=\"onHandleClose()\"\n [model]=\"menus\"></mecx-filter-selected>\n <div class=\"more-filters\">\n <monkey-button type=\"filter\" color=\"border\" icon=\"more-16\" id=\"mecx-filters-add-filter\"\n (click)=\"onHandleShowMenu()\">\n </monkey-button>\n </div>\n </div>\n </ng-container>\n <div class=\"order hidden-md hidden-lg\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </div>\n</div>\n\n<mecx-filter-menu\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\n (onSubmit)=\"onHandleSubmit($event)\" (onClose)=\"onHandleClose()\" [model]=\"menus\">\n</mecx-filter-menu>\n\n<ng-template #orderBy>\n <monkey-select-filter (onChange)=\"onHandleOrder($event)\" [placeholder]=\"orderPlaceholder | translate\" type=\"none\"\n [(value)]=\"_order\">\n <monkey-option *ngFor=\"let ordBy of orders\" [label]=\"ordBy?.label | translate\" [value]=\"ordBy?.value\">\n </monkey-option>\n </monkey-select-filter>\n</ng-template>", styles: [":host{display:flex;width:100%;align-items:center}@media screen and (max-width: 959px){:host{flex-direction:column;max-width:100%}:host ::ng-deep monkey-input-filter{width:100%}:host ::ng-deep monkey-select-filter{width:100%}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{width:100%}}@media screen and (min-width: 960px){:host .actions ::ng-deep monkey-button{margin-left:8px}:host .actions ::ng-deep monkey-button button{width:170px}}:host .more-filters ::ng-deep monkey-button monkey-icon{margin-right:unset!important}@media screen and (min-width: 960px){:host .order{width:230px}}@media screen and (max-width: 959px){:host .order{margin-top:8px}}:host ::ng-deep monkey-button{margin-bottom:0}:host ::ng-deep mecx-form-field-filter mecx-form-field-body{height:40px;margin:0}@media screen and (min-width: 960px){:host ::ng-deep monkey-input-filter{width:464px}}:host .separator{border-bottom:1px solid #ebebeb;margin-top:16px;margin-bottom:16px}\n"], components: [{ type: i1.MonkeyInputFilterComponent, selector: "monkey-input-filter", inputs: ["name", "label", "helperMessage", "placeholder", "icon", "type", "infoMessage", "errorMessage", "mask", "prefix", "onlyNumber", "onlyAlphaNumeric", "upperCase", "lowerCase", "capitalize", "currency", "iconPosition", "value"], outputs: ["onChange"] }, { type: i1.MonkeyButtonComponent, selector: "monkey-button", inputs: ["label", "icon", "iconPosition", "type", "color", "disabled", "size"] }, { type: i2.MECXFilterSelectedComponent, selector: "mecx-filter-selected", inputs: ["model"], outputs: ["onOpenFilters", "onClose", "onSubmit"] }, { type: i3.MECXFilterMenuComponent, selector: "mecx-filter-menu", inputs: ["model"], outputs: ["onClose", "onSubmit"] }, { type: i1.MonkeySelectFilterComponent, selector: "monkey-select-filter", inputs: ["placeholder", "icon", "type", "value"], outputs: ["onChange"] }, { type: i1.MonkeyOptionComponent, selector: "monkey-option", inputs: ["type", "label", "value", "selectAll", "selected", "enableClick"], outputs: ["onSelectOption"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.MonkeyEcxPopoverDirective, selector: "[monkeyecxPopover]", inputs: ["monkeyecxPopover", "monkeyecxPopoverClosed", "monkeyecxPopoverTarget", "monkeyecxPopoverMinwidth", "monkeyecxPopoverBackdrop", "monkeyecxPopoverWatch", "monkeyecxPopoverDir", "monkeyecxPopoverContextmenu", "monkeyecxPopoverHeight"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i6.TranslatePipe } });
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MECXFilterComponent, decorators: [{
98
+ type: Component,
99
+ args: [{ selector: 'mecx-filter', template: "<div class=\"d-flex flex-column full-width\">\n <div class=\"d-flex flex-column flex-md-row justify-content-between\">\n <div class=\"d-flex full-width\">\n <ng-container *ngIf=\"enableSearch\">\n <monkey-input-filter [placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"onSearchFilter($event)\" icon=\"search-16\" iconPosition=\"left\"\n [(value)]=\"_search\">\n </monkey-input-filter>\n </ng-container>\n <ng-container *ngIf=\"!_hasFilterByMenu\">\n <div class=\"d-flex actions\" id=\"mecx-filters-add-filter\">\n <monkey-button type=\"filter\" color=\"border\" (click)=\"onHandleShowMenu()\" icon=\"more-16\"\n iconPosition=\"right\">\n {{ 'BUTTONS.ADD-FILTER' | translate }}\n </monkey-button>\n </div>\n </ng-container>\n </div>\n <div class=\"order hidden-sm hidden-xs\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"_hasFilterByMenu\">\n <div class=\"separator\"></div>\n <div class=\"d-flex full-width\">\n <mecx-filter-selected (onSubmit)=\"onHandleSubmit($event)\" (onClose)=\"onHandleClose()\"\n [model]=\"menus\"></mecx-filter-selected>\n <div class=\"more-filters\">\n <monkey-button type=\"filter\" color=\"border\" icon=\"more-16\" id=\"mecx-filters-add-filter\"\n (click)=\"onHandleShowMenu()\">\n </monkey-button>\n </div>\n </div>\n </ng-container>\n <div class=\"order hidden-md hidden-lg\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </div>\n</div>\n\n<mecx-filter-menu\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\n (onSubmit)=\"onHandleSubmit($event)\" (onClose)=\"onHandleClose()\" [model]=\"menus\">\n</mecx-filter-menu>\n\n<ng-template #orderBy>\n <monkey-select-filter (onChange)=\"onHandleOrder($event)\" [placeholder]=\"orderPlaceholder | translate\" type=\"none\"\n [(value)]=\"_order\">\n <monkey-option *ngFor=\"let ordBy of orders\" [label]=\"ordBy?.label | translate\" [value]=\"ordBy?.value\">\n </monkey-option>\n </monkey-select-filter>\n</ng-template>", styles: [":host{display:flex;width:100%;align-items:center}@media screen and (max-width: 959px){:host{flex-direction:column;max-width:100%}:host ::ng-deep monkey-input-filter{width:100%}:host ::ng-deep monkey-select-filter{width:100%}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{width:100%}}@media screen and (min-width: 960px){:host .actions ::ng-deep monkey-button{margin-left:8px}:host .actions ::ng-deep monkey-button button{width:170px}}:host .more-filters ::ng-deep monkey-button monkey-icon{margin-right:unset!important}@media screen and (min-width: 960px){:host .order{width:230px}}@media screen and (max-width: 959px){:host .order{margin-top:8px}}:host ::ng-deep monkey-button{margin-bottom:0}:host ::ng-deep mecx-form-field-filter mecx-form-field-body{height:40px;margin:0}@media screen and (min-width: 960px){:host ::ng-deep monkey-input-filter{width:464px}}:host .separator{border-bottom:1px solid #ebebeb;margin-top:16px;margin-bottom:16px}\n"] }]
100
+ }], ctorParameters: function () { return []; }, propDecorators: { searchPlaceholder: [{
101
+ type: Input
102
+ }], orderPlaceholder: [{
103
+ type: Input
104
+ }], menus: [{
105
+ type: Input
106
+ }], orders: [{
107
+ type: Input
108
+ }], enableSearch: [{
109
+ type: Input
110
+ }], search: [{
111
+ type: Input
112
+ }], order: [{
113
+ type: Input
114
+ }], isLoading: [{
115
+ type: Input
116
+ }], onFilter: [{
117
+ type: Output
118
+ }] } });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUE2QyxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7QUFPOUYsTUFBTSxPQUFPLG1CQUFtQjtJQXVDOUI7UUF0Q1Msc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBRXZCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUV0QixVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUVsQyxXQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUVwQyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQVlwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTdDLFdBQU0sR0FBeUIsSUFBSSxDQUFDO1FBRXBDLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFYixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6QixtQkFBYyxHQUFnQixJQUFJLENBQUM7UUFFbkMsY0FBUyxHQUFHLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQztRQUdBLFlBQVk7SUFDZCxDQUFDO0lBOUJELElBQ0ksTUFBTSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ0ksS0FBSyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQXdCTyxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBTztRQUNuRCxJQUFJO1lBQ0YsS0FBSyxHQUFHLEtBQUssSUFBSSxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQ3pCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUM3QixPQUFPLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQzthQUNoRDtZQUNELE9BQU8sY0FBYyxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixZQUFZO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtvQkFDdkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvQixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNqQixNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUN2QyxJQUFJLFlBQVksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDekQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUN6RSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDOztnSEEzR1UsbUJBQW1CO29HQUFuQixtQkFBbUIsK1RDUmhDLHFyRUFrRGM7MkZEMUNELG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhOzBFQUtkLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdGLE1BQU07c0JBRFQsS0FBSztnQkFNRixLQUFLO3NCQURSLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9ua2V5RWN4RmlsdGVyTWVudSwgTW9ua2V5RWN4RmlsdGVyT3JkZXIsIE1vbmtleUVjeFV0aWxzIH0gZnJvbSAnbW9ua2V5LWZyb250LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZWN4LWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNRUNYRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXIgPSAnJztcblxuICBASW5wdXQoKSBvcmRlclBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQElucHV0KCkgbWVudXM6IE1vbmtleUVjeEZpbHRlck1lbnVbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIG9yZGVyczogTW9ua2V5RWN4RmlsdGVyT3JkZXJbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIGVuYWJsZVNlYXJjaCA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgc2V0IHNlYXJjaCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2VhcmNoID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgb3JkZXIodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX29yZGVyID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBfb3JkZXI6IE1vbmtleUVjeEZpbHRlck9yZGVyID0gbnVsbDtcblxuICBfc2VhcmNoID0gJyc7XG5cbiAgX3Nob3dNZW51ID0gZmFsc2U7XG5cbiAgX2hhc0ZpbHRlckJ5TWVudSA9IGZhbHNlO1xuXG4gIF9hY3Rpb25FbGVtZW50OiBIVE1MRWxlbWVudCA9IG51bGw7XG5cbiAgY2xvc2VNZW51ID0gKCkgPT4ge1xuICAgIHRoaXMuX3Nob3dNZW51ID0gZmFsc2U7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gbm90IHRvIGRvXG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVmFsdWUoeyBmaWVsZCwgdmFsdWUsIGdldFZhbHVlIH06IGFueSkge1xuICAgIHRyeSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlIHx8IGdldFZhbHVlKCk/LltmaWVsZF07XG4gICAgICBpZiAoIXZhbHVlKSByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gdmFsdWUgJiYgSlNPTi5zdHJpbmdpZnkodmFsdWUpICE9PSAne30nO1xuICAgICAgfVxuICAgICAgcmV0dXJuIE1vbmtleUVjeFV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQodmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vdCB0byBkb1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZpbHRlcnMoKSB7XG4gICAgY29uc3QgeyBtZW51cyB9ID0gdGhpcztcbiAgICBsZXQgZm91bmQgPSBtZW51cy5maW5kKChfOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlVmFsdWUoXyk7XG4gICAgfSk7XG4gICAgaWYgKCFmb3VuZCkge1xuICAgICAgZm91bmQgPSBtZW51cy5maW5kKCh7IGNoaWxkcmVuIH0pID0+IHtcbiAgICAgICAgcmV0dXJuIChjaGlsZHJlbiB8fCBbXSk/LmZpbmQoKF86IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlVmFsdWUoXyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuX2hhc0ZpbHRlckJ5TWVudSA9ICEhZm91bmQ7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMubWVudXMpIHtcbiAgICAgIGNvbnN0IHsgY3VycmVudFZhbHVlIH0gPSBjaGFuZ2VzLm1lbnVzO1xuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAmJiBKU09OLnN0cmluZ2lmeShjdXJyZW50VmFsdWUpICE9PSAne30nKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRmlsdGVycygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoRmlsdGVyKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uRmlsdGVyLm5leHQoeyBzZWFyY2g6IGV2ZW50IH0pO1xuICB9XG5cbiAgb25DbGVhckZpbHRlcigpIHtcbiAgICB0aGlzLl9zZWFyY2ggPSAnJztcbiAgICB0aGlzLm9uRmlsdGVyLm5leHQoeyBzZWFyY2g6IG51bGwgfSk7XG4gIH1cblxuICBvbkhhbmRsZVN1Ym1pdChldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkZpbHRlci5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIG9uSGFuZGxlU2hvd01lbnUoKSB7XG4gICAgdGhpcy5fYWN0aW9uRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZWN4LWZpbHRlcnMtYWRkLWZpbHRlcicpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fc2hvd01lbnUgPSB0cnVlO1xuICAgIH0sIDApO1xuICB9XG5cbiAgb25IYW5kbGVDbG9zZSgpIHtcbiAgICB0aGlzLl9zaG93TWVudSA9IGZhbHNlO1xuICB9XG5cbiAgb25IYW5kbGVPcmRlcihldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkZpbHRlci5uZXh0KHsgc29ydDogZXZlbnQgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZnVsbC13aWR0aFwiPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbWQtcm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmdWxsLXdpZHRoXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW5hYmxlU2VhcmNoXCI+XG4gICAgICAgIDxtb25rZXktaW5wdXQtZmlsdGVyIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uU2VhcmNoRmlsdGVyKCRldmVudClcIiBpY29uPVwic2VhcmNoLTE2XCIgaWNvblBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgWyh2YWx1ZSldPVwiX3NlYXJjaFwiPlxuICAgICAgICA8L21vbmtleS1pbnB1dC1maWx0ZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhX2hhc0ZpbHRlckJ5TWVudVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFjdGlvbnNcIiBpZD1cIm1lY3gtZmlsdGVycy1hZGQtZmlsdGVyXCI+XG4gICAgICAgICAgPG1vbmtleS1idXR0b24gdHlwZT1cImZpbHRlclwiIGNvbG9yPVwiYm9yZGVyXCIgKGNsaWNrKT1cIm9uSGFuZGxlU2hvd01lbnUoKVwiIGljb249XCJtb3JlLTE2XCJcbiAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCI+XG4gICAgICAgICAgICB7eyAnQlVUVE9OUy5BREQtRklMVEVSJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwib3JkZXIgaGlkZGVuLXNtIGhpZGRlbi14c1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9yZGVyQnlcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJfaGFzRmlsdGVyQnlNZW51XCI+XG4gICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZnVsbC13aWR0aFwiPlxuICAgICAgPG1lY3gtZmlsdGVyLXNlbGVjdGVkIChvblN1Ym1pdCk9XCJvbkhhbmRsZVN1Ym1pdCgkZXZlbnQpXCIgKG9uQ2xvc2UpPVwib25IYW5kbGVDbG9zZSgpXCJcbiAgICAgICAgW21vZGVsXT1cIm1lbnVzXCI+PC9tZWN4LWZpbHRlci1zZWxlY3RlZD5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb3JlLWZpbHRlcnNcIj5cbiAgICAgICAgPG1vbmtleS1idXR0b24gdHlwZT1cImZpbHRlclwiIGNvbG9yPVwiYm9yZGVyXCIgaWNvbj1cIm1vcmUtMTZcIiBpZD1cIm1lY3gtZmlsdGVycy1hZGQtZmlsdGVyXCJcbiAgICAgICAgICAoY2xpY2spPVwib25IYW5kbGVTaG93TWVudSgpXCI+XG4gICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cIm9yZGVyIGhpZGRlbi1tZCBoaWRkZW4tbGdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwib3JkZXJCeVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bWVjeC1maWx0ZXItbWVudVxuICAqbW9ua2V5ZWN4UG9wb3Zlcj1cIl9zaG93TWVudTsgdGFyZ2V0OiAkYW55KF9hY3Rpb25FbGVtZW50KTsgY2xvc2VkOiBjbG9zZU1lbnU7IGRpcjogJ2x0cidcIlxuICAob25TdWJtaXQpPVwib25IYW5kbGVTdWJtaXQoJGV2ZW50KVwiIChvbkNsb3NlKT1cIm9uSGFuZGxlQ2xvc2UoKVwiIFttb2RlbF09XCJtZW51c1wiPlxuPC9tZWN4LWZpbHRlci1tZW51PlxuXG48bmctdGVtcGxhdGUgI29yZGVyQnk+XG4gIDxtb25rZXktc2VsZWN0LWZpbHRlciAob25DaGFuZ2UpPVwib25IYW5kbGVPcmRlcigkZXZlbnQpXCIgW3BsYWNlaG9sZGVyXT1cIm9yZGVyUGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIiB0eXBlPVwibm9uZVwiXG4gICAgWyh2YWx1ZSldPVwiX29yZGVyXCI+XG4gICAgPG1vbmtleS1vcHRpb24gKm5nRm9yPVwibGV0IG9yZEJ5IG9mIG9yZGVyc1wiIFtsYWJlbF09XCJvcmRCeT8ubGFiZWwgfCB0cmFuc2xhdGVcIiBbdmFsdWVdPVwib3JkQnk/LnZhbHVlXCI+XG4gICAgPC9tb25rZXktb3B0aW9uPlxuICA8L21vbmtleS1zZWxlY3QtZmlsdGVyPlxuPC9uZy10ZW1wbGF0ZT4iXX0=