ecabs-components 0.0.1 → 0.0.2

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 (28) hide show
  1. package/esm2020/lib/base/validation/validation.component.mjs +14 -102
  2. package/esm2020/lib/ecabs-select/ecabs-select.component.mjs +210 -0
  3. package/esm2020/lib/ecabs-select/ecabs-select.module.mjs +53 -0
  4. package/esm2020/lib/ecabs-textarea/ecabs-textarea.component.mjs +62 -0
  5. package/esm2020/lib/ecabs-textarea/ecabs-textarea.module.mjs +20 -0
  6. package/esm2020/lib/services/ecabs-components.service.mjs +32 -0
  7. package/esm2020/public-api.mjs +5 -1
  8. package/fesm2015/ecabs-components.mjs +364 -102
  9. package/fesm2015/ecabs-components.mjs.map +1 -1
  10. package/fesm2020/ecabs-components.mjs +362 -102
  11. package/fesm2020/ecabs-components.mjs.map +1 -1
  12. package/lib/base/validation/validation.component.d.ts +5 -3
  13. package/lib/base/validation/validation.component.ts +12 -99
  14. package/lib/ecabs-select/ecabs-select.component.d.ts +55 -0
  15. package/lib/ecabs-select/ecabs-select.component.html +38 -0
  16. package/lib/ecabs-select/ecabs-select.component.ts +246 -0
  17. package/lib/ecabs-select/ecabs-select.module.d.ts +14 -0
  18. package/lib/ecabs-select/ecabs-select.module.ts +34 -0
  19. package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +20 -0
  20. package/lib/ecabs-textarea/ecabs-textarea.component.html +13 -0
  21. package/lib/ecabs-textarea/ecabs-textarea.component.ts +61 -0
  22. package/lib/ecabs-textarea/ecabs-textarea.module.d.ts +10 -0
  23. package/lib/ecabs-textarea/ecabs-textarea.module.ts +12 -0
  24. package/lib/services/ecabs-components.service.d.ts +16 -0
  25. package/lib/services/ecabs-components.service.ts +33 -0
  26. package/package.json +4 -3
  27. package/public-api.d.ts +4 -0
  28. package/public-api.ts +4 -0
@@ -1,101 +1,12 @@
1
1
  import { Component, Input, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
3
+ import * as i1 from "../../services/ecabs-components.service";
4
+ import * as i2 from "@angular/common";
4
5
  export class ValidationComponent {
5
- constructor() {
6
+ constructor(ecabsService) {
7
+ this.ecabsService = ecabsService;
6
8
  this.showValidationOnNotTouched = false;
7
- this.errorMessages = [];
8
9
  this._messages = {};
9
- // this.errorMessages = [
10
- // {
11
- // type: 'required',
12
- // message: this.translateService.instant(
13
- // 'FORMS.VALIDATION.LABEL_REQUIRED'
14
- // ),
15
- // },
16
- // {
17
- // type: 'minlength',
18
- // message: this.translateService.instant('FORMS.VALIDATION.MIN_LENGTH'),
19
- // },
20
- // {
21
- // type: 'maxlength',
22
- // message: this.translateService.instant('FORMS.VALIDATION.MAX_LENGTH'),
23
- // },
24
- // {
25
- // type: 'min',
26
- // message: this.translateService.instant('FORMS.VALIDATION.MIN'),
27
- // },
28
- // {
29
- // type: 'max',
30
- // message: this.translateService.instant('FORMS.VALIDATION.MAX'),
31
- // },
32
- // {
33
- // type: 'minValue',
34
- // message: this.translateService.instant('FORMS.VALIDATION.MIN_VALUE'),
35
- // },
36
- // {
37
- // type: 'maxValue',
38
- // message: this.translateService.instant('FORMS.VALIDATION.MAX_VALUE'),
39
- // },
40
- // {
41
- // type: 'validatePhoneNumber',
42
- // message: this.translateService.instant(
43
- // 'FORMS.VALIDATION.VALIDATE_PHONE_NUMBER'
44
- // ),
45
- // },
46
- // {
47
- // type: 'pastDate',
48
- // message: this.translateService.instant('FORMS.VALIDATION.PAST_DATE'),
49
- // },
50
- // {
51
- // type: 'affectsError',
52
- // message: this.translateService.instant(
53
- // 'FORMS.VALIDATION.AFFECTS_ERROR'
54
- // ),
55
- // },
56
- // {
57
- // type: 'moreThan',
58
- // message: this.translateService.instant('FORMS.VALIDATION.MORE_THAN'),
59
- // },
60
- // {
61
- // type: 'lessThan',
62
- // message: this.translateService.instant('FORMS.VALIDATION.LESS_THAN'),
63
- // },
64
- // {
65
- // type: 'iban',
66
- // message: this.translateService.instant('FORMS.VALIDATION.INVALID'),
67
- // },
68
- // {
69
- // type: 'email',
70
- // message: this.translateService.instant('FORMS.VALIDATION.EMAIL'),
71
- // },
72
- // {
73
- // type: 'numberMoreThan',
74
- // message: this.translateService.instant(
75
- // 'FORMS.VALIDATION.VALUE_MORE_THAN'
76
- // ),
77
- // },
78
- // {
79
- // type: 'numberLessThan',
80
- // message: this.translateService.instant(
81
- // 'FORMS.VALIDATION.VALUE_LESS_THAN'
82
- // ),
83
- // },
84
- // {
85
- // type: 'outOfRange',
86
- // message: this.translateService.instant('FORMS.VALIDATION.OUT_OF_RANGE'),
87
- // },
88
- // {
89
- // type: 'iban',
90
- // message: this.translateService.instant('FORMS.VALIDATION.IBAN'),
91
- // },
92
- // {
93
- // type: 'timeIsAfter',
94
- // message: this.translateService.instant(
95
- // 'FORMS.VALIDATION.LESS_THAN_TIME'
96
- // ),
97
- // },
98
- // ];
99
10
  }
100
11
  get messages() {
101
12
  if (this.element) {
@@ -112,6 +23,12 @@ export class ValidationComponent {
112
23
  set messages(m) {
113
24
  this._messages = m;
114
25
  }
26
+ ngOnInit() {
27
+ this.config = this.ecabsService.getConfig();
28
+ for (let error of this.config.errorMessages) {
29
+ this.messages[error.type] = this.replaceTokens(error.message);
30
+ }
31
+ }
115
32
  ngOnChanges(changes) {
116
33
  const { updatedErrors } = changes;
117
34
  if (updatedErrors &&
@@ -122,11 +39,6 @@ export class ValidationComponent {
122
39
  }
123
40
  }
124
41
  }
125
- ngOnInit() {
126
- for (const error of this.errorMessages) {
127
- this.messages[error.type] = this.replaceTokens(error.message);
128
- }
129
- }
130
42
  replaceTokens(message) {
131
43
  let retMessage;
132
44
  if (this.label) {
@@ -141,12 +53,12 @@ export class ValidationComponent {
141
53
  return this.messages[key];
142
54
  }
143
55
  }
144
- ValidationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValidationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
145
- ValidationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ValidationComponent, selector: "app-validations-messages", inputs: { element: "element", label: "label", showValidationOnNotTouched: "showValidationOnNotTouched", updatedErrors: "updatedErrors" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"form-field__validation\"\r\n *ngIf=\"element && (element?.touched || showValidationOnNotTouched) && element?.invalid\"\r\n>\r\n <div class=\"form-field__validation__item\" *ngFor=\"let item of element?.errors | keyvalue\">\r\n {{ getMessageDetail(item.key) }}\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] });
56
+ ValidationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValidationComponent, deps: [{ token: i1.EcabsComponentsService }], target: i0.ɵɵFactoryTarget.Component });
57
+ ValidationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ValidationComponent, selector: "app-validations-messages", inputs: { element: "element", label: "label", showValidationOnNotTouched: "showValidationOnNotTouched", updatedErrors: "updatedErrors" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"form-field__validation\"\r\n *ngIf=\"element && (element?.touched || showValidationOnNotTouched) && element?.invalid\"\r\n>\r\n <div class=\"form-field__validation__item\" *ngFor=\"let item of element?.errors | keyvalue\">\r\n {{ getMessageDetail(item.key) }}\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.KeyValuePipe, name: "keyvalue" }] });
146
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValidationComponent, decorators: [{
147
59
  type: Component,
148
60
  args: [{ selector: 'app-validations-messages', template: "<div\r\n class=\"form-field__validation\"\r\n *ngIf=\"element && (element?.touched || showValidationOnNotTouched) && element?.invalid\"\r\n>\r\n <div class=\"form-field__validation__item\" *ngFor=\"let item of element?.errors | keyvalue\">\r\n {{ getMessageDetail(item.key) }}\r\n </div>\r\n</div>\r\n" }]
149
- }], ctorParameters: function () { return []; }, propDecorators: { element: [{
61
+ }], ctorParameters: function () { return [{ type: i1.EcabsComponentsService }]; }, propDecorators: { element: [{
150
62
  type: Input
151
63
  }], label: [{
152
64
  type: Input
@@ -155,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
155
67
  }], updatedErrors: [{
156
68
  type: Input
157
69
  }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS92YWxpZGF0aW9uL3ZhbGlkYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvdmFsaWRhdGlvbi92YWxpZGF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkIsTUFBTSxPQUFPLG1CQUFtQjtJQThCOUI7UUEzQlMsK0JBQTBCLEdBQUcsS0FBSyxDQUFDO1FBRTVDLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBRWhCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUF3QjFCLHlCQUF5QjtRQUN6QixNQUFNO1FBQ04sd0JBQXdCO1FBQ3hCLDhDQUE4QztRQUM5QywwQ0FBMEM7UUFDMUMsU0FBUztRQUNULE9BQU87UUFDUCxNQUFNO1FBQ04seUJBQXlCO1FBQ3pCLDZFQUE2RTtRQUM3RSxPQUFPO1FBQ1AsTUFBTTtRQUNOLHlCQUF5QjtRQUN6Qiw2RUFBNkU7UUFDN0UsT0FBTztRQUNQLE1BQU07UUFDTixtQkFBbUI7UUFDbkIsc0VBQXNFO1FBQ3RFLE9BQU87UUFDUCxNQUFNO1FBQ04sbUJBQW1CO1FBQ25CLHNFQUFzRTtRQUN0RSxPQUFPO1FBQ1AsTUFBTTtRQUNOLHdCQUF3QjtRQUN4Qiw0RUFBNEU7UUFDNUUsT0FBTztRQUNQLE1BQU07UUFDTix3QkFBd0I7UUFDeEIsNEVBQTRFO1FBQzVFLE9BQU87UUFDUCxNQUFNO1FBQ04sbUNBQW1DO1FBQ25DLDhDQUE4QztRQUM5QyxpREFBaUQ7UUFDakQsU0FBUztRQUNULE9BQU87UUFDUCxNQUFNO1FBQ04sd0JBQXdC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QUFnQixDQUFDLEdBQVE7UUFDdkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7O2lIQTVKVSxtQkFBbUI7cUdBQW5CLG1CQUFtQiwrTkNiaEMsc1RBUUE7NEZES2EsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLDBCQUEwQjswRUFLM0IsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXZhbGlkYXRpb25zLW1lc3NhZ2VzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmFsaWRhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdmFsaWRhdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBlbGVtZW50ITogYW55O1xyXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dWYWxpZGF0aW9uT25Ob3RUb3VjaGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdXBkYXRlZEVycm9ycyE6IHsgdHlwZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVtdO1xyXG4gIGVycm9yTWVzc2FnZXM6IGFueVtdPVtdO1xyXG5cclxuICBwcml2YXRlIF9tZXNzYWdlczogYW55ID0ge307XHJcblxyXG4gIGdldCBtZXNzYWdlcygpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMuZWxlbWVudCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGVycm9yS2V5IGluIHRoaXMuZWxlbWVudC5lcnJvcnMpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmVsZW1lbnQuZXJyb3JzW2Vycm9yS2V5XSkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuX21lc3NhZ2VzW2Vycm9yS2V5XSkge1xyXG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlc1tlcnJvcktleV0gPSB0aGlzLl9tZXNzYWdlc1tlcnJvcktleV0ucmVwbGFjZShcclxuICAgICAgICAgICAgICBgWyR7a2V5fV1gLFxyXG4gICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5lcnJvcnNbZXJyb3JLZXldW2tleV1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fbWVzc2FnZXM7XHJcbiAgfVxyXG5cclxuICBzZXQgbWVzc2FnZXMobSkge1xyXG4gICAgdGhpcy5fbWVzc2FnZXMgPSBtO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAvLyB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXHJcbiAgICAvLyAgIHtcclxuICAgIC8vICAgICB0eXBlOiAncmVxdWlyZWQnLFxyXG4gICAgLy8gICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxyXG4gICAgLy8gICAgICAgJ0ZPUk1TLlZBTElEQVRJT04uTEFCRUxfUkVRVUlSRUQnXHJcbiAgICAvLyAgICAgKSxcclxuICAgIC8vICAgfSxcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIHR5cGU6ICdtaW5sZW5ndGgnLFxyXG4gICAgLy8gICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdGT1JNUy5WQUxJREFUSU9OLk1JTl9MRU5HVEgnKSxcclxuICAgIC8vICAgfSxcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIHR5cGU6ICdtYXhsZW5ndGgnLFxyXG4gICAgLy8gICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdGT1JNUy5WQUxJREFUSU9OLk1BWF9MRU5HVEgnKSxcclxuICAgIC8vICAgfSxcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIHR5cGU6ICdtaW4nLFxyXG4gICAgLy8gICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdGT1JNUy5WQUxJREFUSU9OLk1JTicpLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdHlwZTogJ21heCcsXHJcbiAgICAvLyAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0ZPUk1TLlZBTElEQVRJT04uTUFYJyksXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyAgIHtcclxuICAgIC8vICAgICB0eXBlOiAnbWluVmFsdWUnLFxyXG4gICAgLy8gICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdGT1JNUy5WQUxJREFUSU9OLk1JTl9WQUxVRScpLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdHlwZTogJ21heFZhbHVlJyxcclxuICAgIC8vICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnRk9STVMuVkFMSURBVElPTi5NQVhfVkFMVUUnKSxcclxuICAgIC8vICAgfSxcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIHR5cGU6ICd2YWxpZGF0ZVBob25lTnVtYmVyJyxcclxuICAgIC8vICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcclxuICAgIC8vICAgICAgICdGT1JNUy5WQUxJREFUSU9OLlZBTElEQVRFX1BIT05FX05VTUJFUidcclxuICAgIC8vICAgICApLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdHlwZTogJ3Bhc3REYXRlJyxcclxuICAgIC8vICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnRk9STVMuVkFMSURBVElPTi5QQVNUX0RBVEUnKSxcclxuICAgIC8vICAgfSxcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIHR5cGU6ICdhZmZlY3RzRXJyb3InLFxyXG4gICAgLy8gICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxyXG4gICAgLy8gICAgICAgJ0ZPUk1TLlZBTElEQVRJT04uQUZGRUNUU19FUlJPUidcclxuICAgIC8vICAgICApLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdHlwZTogJ21vcmVUaGFuJyxcclxuICAgIC8vICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnRk9STVMuVkFMSURBVElPTi5NT1JFX1RIQU4nKSxcclxuICAgIC8vICAgfSxcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIHR5cGU6ICdsZXNzVGhhbicsXHJcbiAgICAvLyAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0ZPUk1TLlZBTElEQVRJT04uTEVTU19USEFOJyksXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyAgIHtcclxuICAgIC8vICAgICB0eXBlOiAnaWJhbicsXHJcbiAgICAvLyAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0ZPUk1TLlZBTElEQVRJT04uSU5WQUxJRCcpLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdHlwZTogJ2VtYWlsJyxcclxuICAgIC8vICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnRk9STVMuVkFMSURBVElPTi5FTUFJTCcpLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdHlwZTogJ251bWJlck1vcmVUaGFuJyxcclxuICAgIC8vICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcclxuICAgIC8vICAgICAgICdGT1JNUy5WQUxJREFUSU9OLlZBTFVFX01PUkVfVEhBTidcclxuICAgIC8vICAgICApLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdHlwZTogJ251bWJlckxlc3NUaGFuJyxcclxuICAgIC8vICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcclxuICAgIC8vICAgICAgICdGT1JNUy5WQUxJREFUSU9OLlZBTFVFX0xFU1NfVEhBTidcclxuICAgIC8vICAgICApLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdHlwZTogJ291dE9mUmFuZ2UnLFxyXG4gICAgLy8gICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdGT1JNUy5WQUxJREFUSU9OLk9VVF9PRl9SQU5HRScpLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdHlwZTogJ2liYW4nLFxyXG4gICAgLy8gICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdGT1JNUy5WQUxJREFUSU9OLklCQU4nKSxcclxuICAgIC8vICAgfSxcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIHR5cGU6ICd0aW1lSXNBZnRlcicsXHJcbiAgICAvLyAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXHJcbiAgICAvLyAgICAgICAnRk9STVMuVkFMSURBVElPTi5MRVNTX1RIQU5fVElNRSdcclxuICAgIC8vICAgICApLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gXTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgdXBkYXRlZEVycm9ycyB9ID0gY2hhbmdlcztcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHVwZGF0ZWRFcnJvcnMgJiZcclxuICAgICAgdXBkYXRlZEVycm9ycy5jdXJyZW50VmFsdWUgJiZcclxuICAgICAgdXBkYXRlZEVycm9ycy5jdXJyZW50VmFsdWUubGVuZ3RoID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgdXBkYXRlZEVycm9ycy5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VzW2Vycm9yLnR5cGVdID0gZXJyb3IubWVzc2FnZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBmb3IgKGNvbnN0IGVycm9yIG9mIHRoaXMuZXJyb3JNZXNzYWdlcykge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzW2Vycm9yLnR5cGVdID0gdGhpcy5yZXBsYWNlVG9rZW5zKGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVwbGFjZVRva2VucyhtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJldE1lc3NhZ2U6IHN0cmluZztcclxuICAgIGlmICh0aGlzLmxhYmVsKSB7XHJcbiAgICAgIHJldE1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoJ1tsYWJlbF0nLCB0aGlzLmxhYmVsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldE1lc3NhZ2UgPSBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXRNZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWVzc2FnZURldGFpbChrZXk6IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlc1trZXldO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJmb3JtLWZpZWxkX192YWxpZGF0aW9uXCJcclxuICAqbmdJZj1cImVsZW1lbnQgJiYgKGVsZW1lbnQ/LnRvdWNoZWQgfHwgc2hvd1ZhbGlkYXRpb25Pbk5vdFRvdWNoZWQpICYmIGVsZW1lbnQ/LmludmFsaWRcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX3ZhbGlkYXRpb25fX2l0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbGVtZW50Py5lcnJvcnMgfCBrZXl2YWx1ZVwiPlxyXG4gICAge3sgZ2V0TWVzc2FnZURldGFpbChpdGVtLmtleSkgfX1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS92YWxpZGF0aW9uL3ZhbGlkYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvdmFsaWRhdGlvbi92YWxpZGF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDOzs7O0FBV3ZCLE1BQU0sT0FBTyxtQkFBbUI7SUE2QjlCLFlBQW9CLFlBQW9DO1FBQXBDLGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQTFCL0MsK0JBQTBCLEdBQUcsS0FBSyxDQUFDO1FBR3BDLGNBQVMsR0FBUSxFQUFFLENBQUM7SUF1QitCLENBQUM7SUFyQjVELElBQUksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUMxQyxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUMvQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7d0JBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQ3pELElBQUksR0FBRyxHQUFHLEVBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQ25DLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUlELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUMsS0FBSyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUVsQyxJQUNFLGFBQWE7WUFDYixhQUFhLENBQUMsWUFBWTtZQUMxQixhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3JDO1lBQ0EsS0FBSyxNQUFNLEtBQUssSUFBSSxhQUFhLENBQUMsWUFBWSxFQUFFO2dCQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO2FBQzNDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWU7UUFDM0IsSUFBSSxVQUFrQixDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLFVBQVUsR0FBRyxPQUFPLENBQUM7U0FDdEI7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBUTtRQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7aUhBakVVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLCtOQ2pCaEMsc1RBUUE7NEZEU2EsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLDBCQUEwQjs2R0FLM0IsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBFY2Fic0NvbXBvbmVudHNDb25maWcsXHJcbiAgRWNhYnNDb21wb25lbnRzU2VydmljZSxcclxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lY2Ficy1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdmFsaWRhdGlvbnMtbWVzc2FnZXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi92YWxpZGF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92YWxpZGF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIGVsZW1lbnQhOiBhbnk7XHJcbiAgQElucHV0KCkgbGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRpb25Pbk5vdFRvdWNoZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSB1cGRhdGVkRXJyb3JzITogeyB0eXBlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9W107XHJcbiAgY29uZmlnITogRWNhYnNDb21wb25lbnRzQ29uZmlnO1xyXG4gIHByaXZhdGUgX21lc3NhZ2VzOiBhbnkgPSB7fTtcclxuXHJcbiAgZ2V0IG1lc3NhZ2VzKCk6IGFueSB7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50KSB7XHJcbiAgICAgIGZvciAoY29uc3QgZXJyb3JLZXkgaW4gdGhpcy5lbGVtZW50LmVycm9ycykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZWxlbWVudC5lcnJvcnNbZXJyb3JLZXldKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5fbWVzc2FnZXNbZXJyb3JLZXldKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VzW2Vycm9yS2V5XSA9IHRoaXMuX21lc3NhZ2VzW2Vycm9yS2V5XS5yZXBsYWNlKFxyXG4gICAgICAgICAgICAgIGBbJHtrZXl9XWAsXHJcbiAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmVycm9yc1tlcnJvcktleV1ba2V5XVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9tZXNzYWdlcztcclxuICB9XHJcblxyXG4gIHNldCBtZXNzYWdlcyhtKSB7XHJcbiAgICB0aGlzLl9tZXNzYWdlcyA9IG07XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVjYWJzU2VydmljZTogRWNhYnNDb21wb25lbnRzU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuZWNhYnNTZXJ2aWNlLmdldENvbmZpZygpO1xyXG4gICAgZm9yIChsZXQgZXJyb3Igb2YgdGhpcy5jb25maWcuZXJyb3JNZXNzYWdlcykge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzW2Vycm9yLnR5cGVdID0gdGhpcy5yZXBsYWNlVG9rZW5zKGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyB1cGRhdGVkRXJyb3JzIH0gPSBjaGFuZ2VzO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdXBkYXRlZEVycm9ycyAmJlxyXG4gICAgICB1cGRhdGVkRXJyb3JzLmN1cnJlbnRWYWx1ZSAmJlxyXG4gICAgICB1cGRhdGVkRXJyb3JzLmN1cnJlbnRWYWx1ZS5sZW5ndGggPiAwXHJcbiAgICApIHtcclxuICAgICAgZm9yIChjb25zdCBlcnJvciBvZiB1cGRhdGVkRXJyb3JzLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZXNbZXJyb3IudHlwZV0gPSBlcnJvci5tZXNzYWdlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXBsYWNlVG9rZW5zKG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmV0TWVzc2FnZTogc3RyaW5nO1xyXG4gICAgaWYgKHRoaXMubGFiZWwpIHtcclxuICAgICAgcmV0TWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgnW2xhYmVsXScsIHRoaXMubGFiZWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0TWVzc2FnZSA9IG1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJldE1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICBnZXRNZXNzYWdlRGV0YWlsKGtleTogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzW2tleV07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImZvcm0tZmllbGRfX3ZhbGlkYXRpb25cIlxyXG4gICpuZ0lmPVwiZWxlbWVudCAmJiAoZWxlbWVudD8udG91Y2hlZCB8fCBzaG93VmFsaWRhdGlvbk9uTm90VG91Y2hlZCkgJiYgZWxlbWVudD8uaW52YWxpZFwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZF9fdmFsaWRhdGlvbl9faXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVsZW1lbnQ/LmVycm9ycyB8IGtleXZhbHVlXCI+XHJcbiAgICB7eyBnZXRNZXNzYWdlRGV0YWlsKGl0ZW0ua2V5KSB9fVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,210 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import { UntypedFormControl, NgControl, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
+ import { MatSelectSearchComponent } from 'ngx-mat-select-search';
4
+ import { combineLatest, debounceTime, map, ReplaySubject, Subscription, } from 'rxjs';
5
+ import ElementBaseComponent from '../base/element-base';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "../base/element-wrapper/element-wrapper.component";
9
+ import * as i3 from "@angular/material/form-field";
10
+ import * as i4 from "@angular/material/select";
11
+ import * as i5 from "@angular/material/core";
12
+ import * as i6 from "@angular/forms";
13
+ import * as i7 from "ngx-mat-select-search";
14
+ export class EcabsSelectComponent extends ElementBaseComponent {
15
+ constructor(injector) {
16
+ super();
17
+ this.injector = injector;
18
+ this.multiple = false;
19
+ this.useNoneOption = false;
20
+ this.useOnlyDisabledClass = false;
21
+ this.searchFieldPlaceholder = 'Search';
22
+ this.useSearchOption = false;
23
+ this.useSelectAllOption = false;
24
+ this.setAllOptionAfterChosenAllItems = true;
25
+ this.selectAllValue = 0;
26
+ this.noEntriesFoundLabel = 'SELECT.NO_MATCHING_FOUND';
27
+ this.updateFilterItems = new EventEmitter();
28
+ this.selectionChange = new EventEmitter();
29
+ this.filteredItems$ = new ReplaySubject(1);
30
+ this.itemFilterCtrl = new UntypedFormControl();
31
+ this.isClearAll = false;
32
+ this.subscriptions = new Subscription();
33
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
34
+ this.onChange = () => { };
35
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
36
+ this.onTouch = () => { };
37
+ }
38
+ get value() {
39
+ return this.val;
40
+ }
41
+ set value(val) {
42
+ if (this.val !== val) {
43
+ this.val = val;
44
+ this.onChange(val);
45
+ this.onTouch(val);
46
+ }
47
+ }
48
+ ngOnChanges(changes) {
49
+ if (changes['items'] && changes['items'].currentValue) {
50
+ this.filteredItems$.next(changes['items'].currentValue.slice());
51
+ this.filterItems();
52
+ if (this.multiple &&
53
+ this.useSelectAllOption &&
54
+ this.allSelected?.selected) {
55
+ setTimeout(() => {
56
+ this.control.patchValue([
57
+ ...this.items.map((item) => item.value),
58
+ this.selectAllValue,
59
+ ]);
60
+ }, 100);
61
+ }
62
+ }
63
+ }
64
+ ngAfterViewInit() {
65
+ const ngControl = this.injector.get(NgControl, null);
66
+ if (ngControl) {
67
+ this.control = ngControl.control;
68
+ }
69
+ if (this.matSelectSearchComponent) {
70
+ this.matSelectSearchComponent._showNoEntriesFound$ = combineLatest([
71
+ this.itemFilterCtrl.valueChanges,
72
+ this.filteredItems$,
73
+ ]).pipe(map(([value, items]) => this.matSelectSearchComponent.noEntriesFoundLabel &&
74
+ value &&
75
+ items.length === 0));
76
+ }
77
+ }
78
+ ngOnInit() {
79
+ this.subscriptions.add(this.itemFilterCtrl.valueChanges
80
+ .pipe(debounceTime(200))
81
+ .subscribe((value) => {
82
+ this.filterItems();
83
+ this.updateFilterItems.emit(value);
84
+ if (this.isClearAll) {
85
+ this.control.patchValue([]);
86
+ this.isClearAll = false;
87
+ }
88
+ }));
89
+ }
90
+ toggleAllSelection() {
91
+ if (this.allSelected.selected) {
92
+ this.control.patchValue([
93
+ ...this.items.map((item) => item.value),
94
+ this.selectAllValue,
95
+ ]);
96
+ }
97
+ else {
98
+ this.control.patchValue([]);
99
+ this.isClearAll = true;
100
+ }
101
+ }
102
+ togglePerOne() {
103
+ if (this.allSelected) {
104
+ if (this.allSelected.selected) {
105
+ this.allSelected.deselect();
106
+ }
107
+ if (this.setAllOptionAfterChosenAllItems &&
108
+ this.control.value.length === this.items.length) {
109
+ this.allSelected.select();
110
+ }
111
+ }
112
+ this.isClearAll = false;
113
+ }
114
+ getAllSelectedChecked() {
115
+ return this.allSelected !== undefined && this.allSelected.selected;
116
+ }
117
+ getLabel(val) {
118
+ if (this.useSelectAllOption &&
119
+ this.allSelected?.selected &&
120
+ this.items &&
121
+ this.items.length > 0) {
122
+ return this.items[0].label;
123
+ }
124
+ if (val !== undefined && this.items && this.items.length > 0) {
125
+ // eslint-disable-next-line @typescript-eslint/no-shadow
126
+ const item = this.items.find((item) => item.value === val);
127
+ return item ? item.label : '';
128
+ }
129
+ return '';
130
+ }
131
+ writeValue(value) {
132
+ this.value = value;
133
+ }
134
+ registerOnChange(fn) {
135
+ this.onChange = fn;
136
+ }
137
+ registerOnTouched(fn) {
138
+ this.onTouch = fn;
139
+ }
140
+ ngOnDestroy() {
141
+ this.subscriptions.unsubscribe();
142
+ }
143
+ onSelectionChanged($event) {
144
+ this.selectionChange.emit($event);
145
+ }
146
+ filterItems() {
147
+ if (!this.items) {
148
+ return;
149
+ }
150
+ // get the search keyword
151
+ let search = this.itemFilterCtrl.value;
152
+ if (!search || search === '') {
153
+ this.filteredItems$.next(this.items.slice());
154
+ return;
155
+ }
156
+ search = search.toLowerCase();
157
+ this.filteredItems$.next(this.items && this.items.length > 0
158
+ ? this.items.filter((item) => item.label.toLowerCase().includes(search.toLowerCase()))
159
+ : []);
160
+ }
161
+ }
162
+ EcabsSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsSelectComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
163
+ EcabsSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: EcabsSelectComponent, selector: "ecabs-select", inputs: { items: "items", multiple: "multiple", useNoneOption: "useNoneOption", useOnlyDisabledClass: "useOnlyDisabledClass", searchFieldPlaceholder: "searchFieldPlaceholder", useSearchOption: "useSearchOption", useSelectAllOption: "useSelectAllOption", setAllOptionAfterChosenAllItems: "setAllOptionAfterChosenAllItems", selectAllValue: "selectAllValue", noEntriesFoundLabel: "noEntriesFoundLabel" }, outputs: { updateFilterItems: "updateFilterItems", selectionChange: "selectionChange" }, providers: [
164
+ {
165
+ provide: NG_VALUE_ACCESSOR,
166
+ useExisting: EcabsSelectComponent,
167
+ multi: true,
168
+ },
169
+ ], viewQueries: [{ propertyName: "allSelected", first: true, predicate: ["allSelected"], descendants: true }, { propertyName: "matSelectSearchComponent", first: true, predicate: MatSelectSearchComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <mat-form-field floatLabel=\"always\" [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n appearance=\"outline\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n >\r\n <mat-select-trigger>\r\n <span *ngIf=\"getAllSelectedChecked()\">{{ 'All' }}</span>\r\n <span *ngIf=\"!getAllSelectedChecked()\"\r\n >{{ val && multiple ? getLabel(val[0]) : getLabel(val) }}\r\n <span *ngIf=\"multiple && value?.length > 1\" class=\"additional-selection\">\r\n (+{{ useSelectAllOption && this.allSelected?.selected ? value?.length - 2 : value?.length - 1 }}\r\n {{ (value?.length === 2 ? 'Other' : 'Others') }})\r\n </span>\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"useSearchOption\">\r\n [formControl]=\"itemFilterCtrl\"\r\n <ngx-mat-select-search\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n ></ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"useNoneOption\">{{ 'None' }}</mat-option>\r\n <mat-option #allSelected *ngIf=\"useSelectAllOption\" (click)=\"toggleAllSelection()\" [value]=\"selectAllValue\">{{\r\n 'All'\r\n }}</mat-option>\r\n <mat-option *ngFor=\"let item of filteredItems$ | async\" [value]=\"item.value\" (click)=\"togglePerOne()\">\r\n {{ item.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</app-element-wrapper>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toogleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsSelectComponent, decorators: [{
171
+ type: Component,
172
+ args: [{ selector: 'ecabs-select', providers: [
173
+ {
174
+ provide: NG_VALUE_ACCESSOR,
175
+ useExisting: EcabsSelectComponent,
176
+ multi: true,
177
+ },
178
+ ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <mat-form-field floatLabel=\"always\" [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n appearance=\"outline\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n >\r\n <mat-select-trigger>\r\n <span *ngIf=\"getAllSelectedChecked()\">{{ 'All' }}</span>\r\n <span *ngIf=\"!getAllSelectedChecked()\"\r\n >{{ val && multiple ? getLabel(val[0]) : getLabel(val) }}\r\n <span *ngIf=\"multiple && value?.length > 1\" class=\"additional-selection\">\r\n (+{{ useSelectAllOption && this.allSelected?.selected ? value?.length - 2 : value?.length - 1 }}\r\n {{ (value?.length === 2 ? 'Other' : 'Others') }})\r\n </span>\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"useSearchOption\">\r\n [formControl]=\"itemFilterCtrl\"\r\n <ngx-mat-select-search\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n ></ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"useNoneOption\">{{ 'None' }}</mat-option>\r\n <mat-option #allSelected *ngIf=\"useSelectAllOption\" (click)=\"toggleAllSelection()\" [value]=\"selectAllValue\">{{\r\n 'All'\r\n }}</mat-option>\r\n <mat-option *ngFor=\"let item of filteredItems$ | async\" [value]=\"item.value\" (click)=\"togglePerOne()\">\r\n {{ item.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</app-element-wrapper>\r\n" }]
179
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { items: [{
180
+ type: Input
181
+ }], multiple: [{
182
+ type: Input
183
+ }], useNoneOption: [{
184
+ type: Input
185
+ }], useOnlyDisabledClass: [{
186
+ type: Input
187
+ }], searchFieldPlaceholder: [{
188
+ type: Input
189
+ }], useSearchOption: [{
190
+ type: Input
191
+ }], useSelectAllOption: [{
192
+ type: Input
193
+ }], setAllOptionAfterChosenAllItems: [{
194
+ type: Input
195
+ }], selectAllValue: [{
196
+ type: Input
197
+ }], noEntriesFoundLabel: [{
198
+ type: Input
199
+ }], updateFilterItems: [{
200
+ type: Output
201
+ }], selectionChange: [{
202
+ type: Output
203
+ }], allSelected: [{
204
+ type: ViewChild,
205
+ args: ['allSelected']
206
+ }], matSelectSearchComponent: [{
207
+ type: ViewChild,
208
+ args: [MatSelectSearchComponent]
209
+ }] } });
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QvZWNhYnMtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QvZWNhYnMtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsWUFBWSxFQUNaLEdBQUcsRUFDSCxhQUFhLEVBQ2IsWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxvQkFBb0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBYXhELE1BQU0sT0FBTyxvQkFDWCxTQUFRLG9CQUFvQjtJQXVDNUIsWUFBb0IsUUFBa0I7UUFDcEMsS0FBSyxFQUFFLENBQUM7UUFEVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBbkM3QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwyQkFBc0IsR0FBVyxRQUFRLENBQUM7UUFDMUMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLG9DQUErQixHQUFHLElBQUksQ0FBQztRQUN2QyxtQkFB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VyxzQkFBc0I7NEJBQ2pDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOytGQU1RLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRywrQkFBK0I7c0JBQXZDLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUVHLGVBQWU7c0JBQXhCLE1BQU07Z0JBRW1CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFFeEIsd0JBQXdCO3NCQUR2QixTQUFTO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbiAgTmdDb250cm9sLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0T3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdFNlYXJjaENvbXBvbmVudCB9IGZyb20gJ25neC1tYXQtc2VsZWN0LXNlYXJjaCc7XHJcbmltcG9ydCB7XHJcbiAgY29tYmluZUxhdGVzdCxcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgbWFwLFxyXG4gIFJlcGxheVN1YmplY3QsXHJcbiAgU3Vic2NyaXB0aW9uLFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzU2VsZWN0Q29tcG9uZW50XHJcbiAgZXh0ZW5kcyBFbGVtZW50QmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxyXG57XHJcbiAgQElucHV0KCkgaXRlbXMhOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdXNlTm9uZU9wdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHVzZU9ubHlEaXNhYmxlZENsYXNzID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoRmllbGRQbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlYXJjaCc7XHJcbiAgQElucHV0KCkgdXNlU2VhcmNoT3B0aW9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdXNlU2VsZWN0QWxsT3B0aW9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0QWxsT3B0aW9uQWZ0ZXJDaG9zZW5BbGxJdGVtcyA9IHRydWU7XHJcbiAgQElucHV0KCkgc2VsZWN0QWxsVmFsdWU6IGFueSA9IDA7XHJcbiAgQElucHV0KCkgbm9FbnRyaWVzRm91bmRMYWJlbCA9ICdTRUxFQ1QuTk9fTUFUQ0hJTkdfRk9VTkQnO1xyXG4gIEBPdXRwdXQoKSB1cGRhdGVGaWx0ZXJJdGVtczogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYWxsU2VsZWN0ZWQnKSBhbGxTZWxlY3RlZCE6IE1hdE9wdGlvbjtcclxuICBAVmlld0NoaWxkKE1hdFNlbGVjdFNlYXJjaENvbXBvbmVudClcclxuICBtYXRTZWxlY3RTZWFyY2hDb21wb25lbnQhOiBNYXRTZWxlY3RTZWFyY2hDb21wb25lbnQ7XHJcblxyXG4gIHZhbCE6IGFueTtcclxuICBmaWx0ZXJlZEl0ZW1zJDogUmVwbGF5U3ViamVjdDx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdPiA9XHJcbiAgICBuZXcgUmVwbGF5U3ViamVjdDx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdPigxKTtcclxuICBpdGVtRmlsdGVyQ3RybCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICBpc0NsZWFyQWxsID0gZmFsc2U7XHJcbiAgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnZhbDtcclxuICB9XHJcblxyXG4gIHNldCB2YWx1ZSh2YWwpIHtcclxuICAgIGlmICh0aGlzLnZhbCAhPT0gdmFsKSB7XHJcbiAgICAgIHRoaXMudmFsID0gdmFsO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XHJcbiAgICAgIHRoaXMub25Ub3VjaCh2YWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snaXRlbXMnXSAmJiBjaGFuZ2VzWydpdGVtcyddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLm5leHQoY2hhbmdlc1snaXRlbXMnXS5jdXJyZW50VmFsdWUuc2xpY2UoKSk7XHJcbiAgICAgIHRoaXMuZmlsdGVySXRlbXMoKTtcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLm11bHRpcGxlICYmXHJcbiAgICAgICAgdGhpcy51c2VTZWxlY3RBbGxPcHRpb24gJiZcclxuICAgICAgICB0aGlzLmFsbFNlbGVjdGVkPy5zZWxlY3RlZFxyXG4gICAgICApIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKFtcclxuICAgICAgICAgICAgLi4udGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0udmFsdWUpLFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbFZhbHVlLFxyXG4gICAgICAgICAgXSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChcclxuICAgICAgTmdDb250cm9sLFxyXG4gICAgICBudWxsXHJcbiAgICApIGFzIE5nQ29udHJvbDtcclxuXHJcbiAgICBpZiAobmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tYXRTZWxlY3RTZWFyY2hDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5tYXRTZWxlY3RTZWFyY2hDb21wb25lbnQuX3Nob3dOb0VudHJpZXNGb3VuZCQgPSBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgICB0aGlzLml0ZW1GaWx0ZXJDdHJsLnZhbHVlQ2hhbmdlcyxcclxuICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLFxyXG4gICAgICBdKS5waXBlKFxyXG4gICAgICAgIG1hcChcclxuICAgICAgICAgIChbdmFsdWUsIGl0ZW1zXSkgPT5cclxuICAgICAgICAgICAgdGhpcy5tYXRTZWxlY3RTZWFyY2hDb21wb25lbnQubm9FbnRyaWVzRm91bmRMYWJlbCAmJlxyXG4gICAgICAgICAgICB2YWx1ZSAmJlxyXG4gICAgICAgICAgICBpdGVtcy5sZW5ndGggPT09IDBcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXHJcbiAgICAgIHRoaXMuaXRlbUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6YW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlckl0ZW1zKCk7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlckl0ZW1zLmVtaXQodmFsdWUpO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmlzQ2xlYXJBbGwpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUoW10pO1xyXG4gICAgICAgICAgICB0aGlzLmlzQ2xlYXJBbGwgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cclxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxyXG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICB0b2dnbGVBbGxTZWxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbGxTZWxlY3RlZC5zZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wucGF0Y2hWYWx1ZShbXHJcbiAgICAgICAgLi4udGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0udmFsdWUpLFxyXG4gICAgICAgIHRoaXMuc2VsZWN0QWxsVmFsdWUsXHJcbiAgICAgIF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUoW10pO1xyXG4gICAgICB0aGlzLmlzQ2xlYXJBbGwgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlUGVyT25lKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQpIHtcclxuICAgICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQuc2VsZWN0ZWQpIHtcclxuICAgICAgICB0aGlzLmFsbFNlbGVjdGVkLmRlc2VsZWN0KCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuc2V0QWxsT3B0aW9uQWZ0ZXJDaG9zZW5BbGxJdGVtcyAmJlxyXG4gICAgICAgIHRoaXMuY29udHJvbC52YWx1ZS5sZW5ndGggPT09IHRoaXMuaXRlbXMubGVuZ3RoXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuYWxsU2VsZWN0ZWQuc2VsZWN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaXNDbGVhckFsbCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU2VsZWN0ZWRDaGVja2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWxsU2VsZWN0ZWQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmFsbFNlbGVjdGVkLnNlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0TGFiZWwodmFsOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnVzZVNlbGVjdEFsbE9wdGlvbiAmJlxyXG4gICAgICB0aGlzLmFsbFNlbGVjdGVkPy5zZWxlY3RlZCAmJlxyXG4gICAgICB0aGlzLml0ZW1zICYmXHJcbiAgICAgIHRoaXMuaXRlbXMubGVuZ3RoID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zWzBdLmxhYmVsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXNoYWRvd1xyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSB2YWwpO1xyXG5cclxuICAgICAgcmV0dXJuIGl0ZW0gPyBpdGVtLmxhYmVsIDogJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCgkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJJdGVtcygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pdGVtcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZ2V0IHRoZSBzZWFyY2gga2V5d29yZFxyXG4gICAgbGV0IHNlYXJjaDogc3RyaW5nID0gdGhpcy5pdGVtRmlsdGVyQ3RybC52YWx1ZTtcclxuXHJcbiAgICBpZiAoIXNlYXJjaCB8fCBzZWFyY2ggPT09ICcnKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyQubmV4dCh0aGlzLml0ZW1zLnNsaWNlKCkpO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaCA9IHNlYXJjaC50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyQubmV4dChcclxuICAgICAgdGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDBcclxuICAgICAgICA/IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PlxyXG4gICAgICAgICAgICBpdGVtLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiB1c2VPbmx5RGlzYWJsZWRDbGFzcyB9XCI+XHJcbiAgICA8bWF0LXNlbGVjdFxyXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgKGNsb3NlZCk9XCJvblRvdWNoKClcIlxyXG4gICAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXHJcbiAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZ2V0QWxsU2VsZWN0ZWRDaGVja2VkKClcIj57eyAnQWxsJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFnZXRBbGxTZWxlY3RlZENoZWNrZWQoKVwiXHJcbiAgICAgICAgICA+e3sgdmFsICYmIG11bHRpcGxlID8gZ2V0TGFiZWwodmFsWzBdKSA6IGdldExhYmVsKHZhbCkgfX1cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibXVsdGlwbGUgJiYgdmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImFkZGl0aW9uYWwtc2VsZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICgre3sgdXNlU2VsZWN0QWxsT3B0aW9uICYmIHRoaXMuYWxsU2VsZWN0ZWQ/LnNlbGVjdGVkID8gdmFsdWU/Lmxlbmd0aCAtIDIgOiB2YWx1ZT8ubGVuZ3RoIC0gMSB9fVxyXG4gICAgICAgICAgICB7eyAodmFsdWU/Lmxlbmd0aCA9PT0gMiA/ICdPdGhlcicgOiAnT3RoZXJzJykgfX0pXHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJ1c2VTZWFyY2hPcHRpb25cIj5cclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiaXRlbUZpbHRlckN0cmxcIlxyXG4gICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2hcclxuICAgICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cInNlYXJjaEZpZWxkUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgW25vRW50cmllc0ZvdW5kTGFiZWxdPVwibm9FbnRyaWVzRm91bmRMYWJlbFwiXHJcbiAgICAgICAgPjwvbmd4LW1hdC1zZWxlY3Qtc2VhcmNoPlxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwidXNlTm9uZU9wdGlvblwiPnt7ICdOb25lJyB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPG1hdC1vcHRpb24gI2FsbFNlbGVjdGVkICpuZ0lmPVwidXNlU2VsZWN0QWxsT3B0aW9uXCIgKGNsaWNrKT1cInRvZ2dsZUFsbFNlbGVjdGlvbigpXCIgW3ZhbHVlXT1cInNlbGVjdEFsbFZhbHVlXCI+e3tcclxuICAgICAgICAnQWxsJ1xyXG4gICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRJdGVtcyQgfCBhc3luY1wiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCIgKGNsaWNrKT1cInRvZ2dsZVBlck9uZSgpXCI+XHJcbiAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9hcHAtZWxlbWVudC13cmFwcGVyPlxyXG4iXX0=
@@ -0,0 +1,53 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { EcabsSelectComponent } from './ecabs-select.component';
6
+ import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
7
+ import { MAT_SELECT_SCROLL_STRATEGY, MatSelectModule, } from '@angular/material/select';
8
+ import { Overlay } from '@angular/cdk/overlay';
9
+ import * as i0 from "@angular/core";
10
+ export class EcabsSelectModule {
11
+ }
12
+ EcabsSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ EcabsSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: EcabsSelectModule, declarations: [EcabsSelectComponent], imports: [CommonModule,
14
+ ElementWrapperModule,
15
+ MatSelectModule,
16
+ FormsModule,
17
+ NgxMatSelectSearchModule], exports: [EcabsSelectComponent] });
18
+ EcabsSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsSelectModule, providers: [
19
+ {
20
+ provide: MAT_SELECT_SCROLL_STRATEGY,
21
+ useFactory: scrollFactory,
22
+ deps: [Overlay],
23
+ },
24
+ ], imports: [CommonModule,
25
+ ElementWrapperModule,
26
+ MatSelectModule,
27
+ FormsModule,
28
+ NgxMatSelectSearchModule] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsSelectModule, decorators: [{
30
+ type: NgModule,
31
+ args: [{
32
+ declarations: [EcabsSelectComponent],
33
+ imports: [
34
+ CommonModule,
35
+ ElementWrapperModule,
36
+ MatSelectModule,
37
+ FormsModule,
38
+ NgxMatSelectSearchModule,
39
+ ],
40
+ exports: [EcabsSelectComponent],
41
+ providers: [
42
+ {
43
+ provide: MAT_SELECT_SCROLL_STRATEGY,
44
+ useFactory: scrollFactory,
45
+ deps: [Overlay],
46
+ },
47
+ ],
48
+ }]
49
+ }] });
50
+ export function scrollFactory(overlay) {
51
+ return () => overlay.scrollStrategies.block();
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtc2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QvZWNhYnMtc2VsZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixlQUFlLEdBQ2hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUF1QixPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFvQnBFLE1BQU0sT0FBTyxpQkFBaUI7OytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFqQmIsb0JBQW9CLGFBRWpDLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsZUFBZTtRQUNmLFdBQVc7UUFDWCx3QkFBd0IsYUFFaEIsb0JBQW9CO2dIQVNuQixpQkFBaUIsYUFSakI7UUFDVDtZQUNFLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsVUFBVSxFQUFFLGFBQWE7WUFDekIsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDO1NBQ2hCO0tBQ0YsWUFiQyxZQUFZO1FBQ1osb0JBQW9CO1FBQ3BCLGVBQWU7UUFDZixXQUFXO1FBQ1gsd0JBQXdCOzRGQVdmLGlCQUFpQjtrQkFsQjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixXQUFXO3dCQUNYLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQy9CLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsMEJBQTBCOzRCQUNuQyxVQUFVLEVBQUUsYUFBYTs0QkFDekIsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDO3lCQUNoQjtxQkFDRjtpQkFDRjs7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWdCO0lBQzVDLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFbGVtZW50V3JhcHBlck1vZHVsZSB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC13cmFwcGVyL2VsZW1lbnQtd3JhcHBlci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRWNhYnNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2VjYWJzLXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGUgfSBmcm9tICduZ3gtbWF0LXNlbGVjdC1zZWFyY2gnO1xyXG5pbXBvcnQge1xyXG4gIE1BVF9TRUxFQ1RfU0NST0xMX1NUUkFURUdZLFxyXG4gIE1hdFNlbGVjdE1vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBCbG9ja1Njcm9sbFN0cmF0ZWd5LCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtFY2Fic1NlbGVjdENvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRWxlbWVudFdyYXBwZXJNb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE5neE1hdFNlbGVjdFNlYXJjaE1vZHVsZSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtFY2Fic1NlbGVjdENvbXBvbmVudF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE1BVF9TRUxFQ1RfU0NST0xMX1NUUkFURUdZLFxyXG4gICAgICB1c2VGYWN0b3J5OiBzY3JvbGxGYWN0b3J5LFxyXG4gICAgICBkZXBzOiBbT3ZlcmxheV0sXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic1NlbGVjdE1vZHVsZSB7fVxyXG5leHBvcnQgZnVuY3Rpb24gc2Nyb2xsRmFjdG9yeShvdmVybGF5OiBPdmVybGF5KTogKCkgPT4gQmxvY2tTY3JvbGxTdHJhdGVneSB7XHJcbiAgcmV0dXJuICgpID0+IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,62 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { NgControl, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import ElementBaseComponent from '../base/element-base';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../base/element-wrapper/element-wrapper.component";
6
+ import * as i2 from "@angular/forms";
7
+ export class EcabsTextareaComponent extends ElementBaseComponent {
8
+ constructor(injector) {
9
+ super();
10
+ this.injector = injector;
11
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
12
+ this.onChange = () => { };
13
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
14
+ this.onTouch = () => { };
15
+ }
16
+ get value() {
17
+ return this.val;
18
+ }
19
+ set value(val) {
20
+ if (val !== undefined && this.val !== val) {
21
+ this.val = val;
22
+ this.onChange(val);
23
+ this.onTouch(val);
24
+ }
25
+ }
26
+ ngAfterViewInit() {
27
+ const ngControl = this.injector.get(NgControl, null);
28
+ if (ngControl) {
29
+ this.control = ngControl.control;
30
+ }
31
+ }
32
+ writeValue(value) {
33
+ this.value = value;
34
+ }
35
+ registerOnChange(fn) {
36
+ this.onChange = fn;
37
+ }
38
+ registerOnTouched(fn) {
39
+ this.onTouch = fn;
40
+ }
41
+ }
42
+ EcabsTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsTextareaComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
43
+ EcabsTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: EcabsTextareaComponent, selector: "ecabs-textarea", inputs: { rows: "rows" }, providers: [
44
+ {
45
+ provide: NG_VALUE_ACCESSOR,
46
+ useExisting: EcabsTextareaComponent,
47
+ multi: true,
48
+ },
49
+ ], usesInheritance: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <textarea\r\n class=\"form-field__textarea\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n [disabled]=\"disabled\"\r\n [maxlength]=\"maxLength\"\r\n [rows]=\"rows\"\r\n >\r\n </textarea>\r\n</app-element-wrapper>\r\n", dependencies: [{ kind: "component", type: i1.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsTextareaComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: 'ecabs-textarea', providers: [
53
+ {
54
+ provide: NG_VALUE_ACCESSOR,
55
+ useExisting: EcabsTextareaComponent,
56
+ multi: true,
57
+ },
58
+ ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <textarea\r\n class=\"form-field__textarea\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n [disabled]=\"disabled\"\r\n [maxlength]=\"maxLength\"\r\n [rows]=\"rows\"\r\n >\r\n </textarea>\r\n</app-element-wrapper>\r\n" }]
59
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { rows: [{
60
+ type: Input
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXRleHRhcmVhL2VjYWJzLXRleHRhcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy10ZXh0YXJlYS9lY2Ficy10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBWSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUE0QyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLG9CQUFvQixNQUFNLHNCQUFzQixDQUFDOzs7O0FBYXhELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxvQkFBb0I7SUFrQjlELFlBQW9CLFFBQWtCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRFUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVd0QyxnRUFBZ0U7UUFDaEUsYUFBUSxHQUFRLEdBQVMsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUMvQixnRUFBZ0U7UUFDaEUsWUFBTyxHQUFRLEdBQVMsRUFBRSxHQUFFLENBQUMsQ0FBQztJQVo5QixDQUFDO0lBZEQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxHQUFHO1FBQ1gsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQU1ELGVBQWU7UUFDYixNQUFNLFNBQVMsR0FBYyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFjLENBQUM7UUFDN0UsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUE2QixDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQU9ELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7O29IQTVDVSxzQkFBc0I7d0dBQXRCLHNCQUFzQixtRUFSdEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLHNCQUFzQjtZQUNuQyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsaURDYkgsaVdBYUE7NEZERWEsc0JBQXNCO2tCQVhsQyxTQUFTOytCQUNFLGdCQUFnQixhQUVmO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsd0JBQXdCOzRCQUNuQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjsrRkFJRCxJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVW50eXBlZEZvcm1Db250cm9sLCBOZ0NvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy10ZXh0YXJlYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLXRleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBFY2Fic1RleHRhcmVhQ29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzVGV4dGFyZWFDb21wb25lbnQgZXh0ZW5kcyBFbGVtZW50QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKVxyXG4gIHJvd3MhOiBudW1iZXI7XHJcblxyXG4gIHZhbCE6IHN0cmluZztcclxuXHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy52YWw7XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsKSB7XHJcbiAgICBpZiAodmFsICE9PSB1bmRlZmluZWQgJiYgdGhpcy52YWwgIT09IHZhbCkge1xyXG4gICAgICB0aGlzLnZhbCA9IHZhbDtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xyXG4gICAgICB0aGlzLm9uVG91Y2godmFsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpIGFzIE5nQ29udHJvbDtcclxuICAgIGlmIChuZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxyXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKTogdm9pZCA9PiB7fTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgb25Ub3VjaDogYW55ID0gKCk6IHZvaWQgPT4ge307XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XHJcbiAgPHRleHRhcmVhXHJcbiAgICBjbGFzcz1cImZvcm0tZmllbGRfX3RleHRhcmVhXCJcclxuICAgIFtpZF09XCJuYW1lXCJcclxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxyXG4gICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgPlxyXG4gIDwvdGV4dGFyZWE+XHJcbjwvYXBwLWVsZW1lbnQtd3JhcHBlcj5cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { EcabsTextareaComponent } from './ecabs-textarea.component';
4
+ import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
5
+ import { FormsModule } from '@angular/forms';
6
+ import * as i0 from "@angular/core";
7
+ export class EcabsTextAreaModule {
8
+ }
9
+ EcabsTextAreaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsTextAreaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ EcabsTextAreaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: EcabsTextAreaModule, declarations: [EcabsTextareaComponent], imports: [CommonModule, ElementWrapperModule, FormsModule], exports: [EcabsTextareaComponent] });
11
+ EcabsTextAreaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsTextAreaModule, imports: [CommonModule, ElementWrapperModule, FormsModule] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsTextAreaModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ declarations: [EcabsTextareaComponent],
16
+ imports: [CommonModule, ElementWrapperModule, FormsModule],
17
+ exports: [EcabsTextareaComponent],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtdGV4dGFyZWEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXRleHRhcmVhL2VjYWJzLXRleHRhcmVhLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTzdDLE1BQU0sT0FBTyxtQkFBbUI7O2lIQUFuQixtQkFBbUI7a0hBQW5CLG1CQUFtQixpQkFKZixzQkFBc0IsYUFDM0IsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFdBQVcsYUFDL0Msc0JBQXNCO2tIQUVyQixtQkFBbUIsWUFIcEIsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFdBQVc7NEZBRzlDLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFdBQVcsQ0FBQztvQkFDMUQsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRWNhYnNUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vZWNhYnMtdGV4dGFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWxlbWVudFdyYXBwZXJNb2R1bGUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQtd3JhcHBlci9lbGVtZW50LXdyYXBwZXIubW9kdWxlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0VjYWJzVGV4dGFyZWFDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEVsZW1lbnRXcmFwcGVyTW9kdWxlLCBGb3Jtc01vZHVsZV0sXHJcbiAgZXhwb3J0czogW0VjYWJzVGV4dGFyZWFDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNUZXh0QXJlYU1vZHVsZSB7fVxyXG4iXX0=