ecabs-components 1.0.14 → 1.0.16

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 (159) hide show
  1. package/esm2022/lib/base/directives/date-mask.directive.mjs +67 -0
  2. package/{esm2020 → esm2022}/lib/base/directives/date-mask.directive.module.mjs +5 -5
  3. package/esm2022/lib/base/directives/digits-only.directive.mjs +133 -0
  4. package/{esm2020 → esm2022}/lib/base/directives/digits-only.directive.module.mjs +5 -5
  5. package/esm2022/lib/base/directives/number-border.directive.mjs +58 -0
  6. package/{esm2020 → esm2022}/lib/base/directives/number-border.directive.module.mjs +5 -5
  7. package/esm2022/lib/base/element-base.mjs +105 -0
  8. package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +56 -0
  9. package/{esm2020 → esm2022}/lib/base/element-wrapper/element-wrapper.module.mjs +21 -21
  10. package/esm2022/lib/base/hint/hint.component.mjs +21 -0
  11. package/{esm2020 → esm2022}/lib/base/hint/hint.module.mjs +5 -5
  12. package/esm2022/lib/base/validation/validation.component.mjs +75 -0
  13. package/{esm2020 → esm2022}/lib/base/validation/validation.module.mjs +5 -5
  14. package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +17 -0
  15. package/{esm2020 → esm2022}/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.mjs +5 -5
  16. package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +67 -0
  17. package/{esm2020 → esm2022}/lib/ecabs-buttons/ecabs-buttons.module.mjs +5 -5
  18. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +94 -0
  19. package/{esm2020 → esm2022}/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +13 -13
  20. package/esm2022/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +15 -0
  21. package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +89 -0
  22. package/{esm2020 → esm2022}/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +19 -19
  23. package/esm2022/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +15 -0
  24. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +186 -0
  25. package/{esm2020 → esm2022}/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +27 -27
  26. package/esm2022/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.mjs +15 -0
  27. package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +199 -0
  28. package/{esm2020 → esm2022}/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +27 -27
  29. package/esm2022/lib/ecabs-date-time-range-picker/time-range.directive.mjs +48 -0
  30. package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +49 -0
  31. package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +20 -0
  32. package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +46 -0
  33. package/{esm2020 → esm2022}/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +5 -5
  34. package/{esm2020 → esm2022}/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.mjs +7 -4
  35. package/{esm2020 → esm2022}/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.mjs +5 -5
  36. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +85 -0
  37. package/{esm2020 → esm2022}/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +5 -5
  38. package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +83 -0
  39. package/{esm2020 → esm2022}/lib/ecabs-increment/ecabs-increment.module.mjs +5 -5
  40. package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +90 -0
  41. package/{esm2020 → esm2022}/lib/ecabs-input/ecabs-input.module.mjs +5 -5
  42. package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +64 -0
  43. package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +39 -0
  44. package/esm2022/lib/ecabs-loading/ecabs-loading.component.mjs +22 -0
  45. package/{esm2020 → esm2022}/lib/ecabs-loading/ecabs-loading.module.mjs +5 -5
  46. package/esm2022/lib/ecabs-loading/spinner/spinner.component.mjs +14 -0
  47. package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +28 -0
  48. package/{esm2020 → esm2022}/lib/ecabs-note/ecabs-note.module.mjs +5 -5
  49. package/esm2022/lib/ecabs-phone/ecabs-phone.component.mjs +111 -0
  50. package/{esm2020 → esm2022}/lib/ecabs-phone/ecabs-phone.module.mjs +5 -5
  51. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +53 -0
  52. package/{esm2020 → esm2022}/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +5 -5
  53. package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +68 -0
  54. package/{esm2020 → esm2022}/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +11 -11
  55. package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +316 -0
  56. package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +60 -0
  57. package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +19 -0
  58. package/{esm2020 → esm2022}/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.mjs +7 -7
  59. package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +48 -0
  60. package/{esm2020 → esm2022}/lib/ecabs-table/ecabs-table.module.mjs +11 -11
  61. package/esm2022/lib/ecabs-textarea/ecabs-textarea.component.mjs +65 -0
  62. package/{esm2020 → esm2022}/lib/ecabs-textarea/ecabs-textarea.module.mjs +5 -5
  63. package/esm2022/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +144 -0
  64. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +322 -0
  65. package/{esm2020 → esm2022}/lib/ecabs-timepicker/ecabs-timepicker.module.mjs +5 -5
  66. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +29 -0
  67. package/esm2022/lib/services/ecabs-components.service.mjs +31 -0
  68. package/fesm2022/ecabs-components.mjs +3477 -0
  69. package/fesm2022/ecabs-components.mjs.map +1 -0
  70. package/lib/base/directives/date-mask.directive.d.ts +1 -1
  71. package/lib/base/directives/digits-only.directive.d.ts +1 -1
  72. package/lib/base/directives/number-border.directive.d.ts +1 -1
  73. package/lib/base/element-base.d.ts +1 -1
  74. package/lib/base/element-wrapper/element-wrapper.component.d.ts +1 -1
  75. package/lib/base/hint/hint.component.d.ts +1 -1
  76. package/lib/base/validation/validation.component.d.ts +1 -1
  77. package/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.d.ts +1 -1
  78. package/lib/ecabs-buttons/ecabs-buttons.component.d.ts +1 -1
  79. package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +1 -1
  80. package/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.d.ts +1 -1
  81. package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +1 -1
  82. package/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.d.ts +1 -1
  83. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +1 -1
  84. package/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.d.ts +1 -1
  85. package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.d.ts +1 -1
  86. package/lib/ecabs-date-time-range-picker/time-range.directive.d.ts +1 -1
  87. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +9 -4
  88. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.d.ts +4 -4
  89. package/lib/ecabs-dialog-message/ecabs-dialog-message.component.d.ts +8 -2
  90. package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +1 -1
  91. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +1 -1
  92. package/lib/ecabs-increment/ecabs-increment.component.d.ts +1 -1
  93. package/lib/ecabs-input/ecabs-input.component.d.ts +1 -1
  94. package/lib/ecabs-language-selector/ecabs-language-selector.component.d.ts +3 -1
  95. package/lib/ecabs-language-selector/ecabs-language-selector.module.d.ts +2 -1
  96. package/lib/ecabs-loading/ecabs-loading.component.d.ts +1 -1
  97. package/lib/ecabs-loading/spinner/spinner.component.d.ts +1 -1
  98. package/lib/ecabs-note/ecabs-note.component.d.ts +1 -1
  99. package/lib/ecabs-phone/ecabs-phone.component.d.ts +1 -1
  100. package/lib/ecabs-picker-header/ecabs-picker-header.component.d.ts +1 -1
  101. package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +1 -1
  102. package/lib/ecabs-select/ecabs-select.component.d.ts +1 -1
  103. package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.d.ts +1 -1
  104. package/lib/ecabs-table/ecabs-table.component.d.ts +1 -1
  105. package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +1 -1
  106. package/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.d.ts +1 -1
  107. package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +1 -1
  108. package/lib/models/timepicker.models.d.ts +1 -1
  109. package/package.json +5 -11
  110. package/esm2020/lib/base/directives/date-mask.directive.mjs +0 -65
  111. package/esm2020/lib/base/directives/digits-only.directive.mjs +0 -130
  112. package/esm2020/lib/base/directives/number-border.directive.mjs +0 -54
  113. package/esm2020/lib/base/element-base.mjs +0 -100
  114. package/esm2020/lib/base/element-wrapper/element-wrapper.component.mjs +0 -53
  115. package/esm2020/lib/base/hint/hint.component.mjs +0 -21
  116. package/esm2020/lib/base/validation/validation.component.mjs +0 -70
  117. package/esm2020/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +0 -16
  118. package/esm2020/lib/ecabs-buttons/ecabs-buttons.component.mjs +0 -65
  119. package/esm2020/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +0 -89
  120. package/esm2020/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +0 -17
  121. package/esm2020/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +0 -85
  122. package/esm2020/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +0 -17
  123. package/esm2020/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +0 -179
  124. package/esm2020/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.mjs +0 -17
  125. package/esm2020/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +0 -193
  126. package/esm2020/lib/ecabs-date-time-range-picker/time-range.directive.mjs +0 -45
  127. package/esm2020/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +0 -28
  128. package/esm2020/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +0 -20
  129. package/esm2020/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +0 -25
  130. package/esm2020/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +0 -76
  131. package/esm2020/lib/ecabs-increment/ecabs-increment.component.mjs +0 -78
  132. package/esm2020/lib/ecabs-input/ecabs-input.component.mjs +0 -83
  133. package/esm2020/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +0 -57
  134. package/esm2020/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +0 -35
  135. package/esm2020/lib/ecabs-loading/ecabs-loading.component.mjs +0 -24
  136. package/esm2020/lib/ecabs-loading/spinner/spinner.component.mjs +0 -16
  137. package/esm2020/lib/ecabs-note/ecabs-note.component.mjs +0 -30
  138. package/esm2020/lib/ecabs-phone/ecabs-phone.component.mjs +0 -104
  139. package/esm2020/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +0 -50
  140. package/esm2020/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +0 -65
  141. package/esm2020/lib/ecabs-select/ecabs-select.component.mjs +0 -310
  142. package/esm2020/lib/ecabs-select/ecabs-select.module.mjs +0 -60
  143. package/esm2020/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +0 -17
  144. package/esm2020/lib/ecabs-table/ecabs-table.component.mjs +0 -43
  145. package/esm2020/lib/ecabs-textarea/ecabs-textarea.component.mjs +0 -62
  146. package/esm2020/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +0 -137
  147. package/esm2020/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +0 -312
  148. package/esm2020/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +0 -31
  149. package/esm2020/lib/services/ecabs-components.service.mjs +0 -32
  150. package/fesm2015/ecabs-components.mjs +0 -3341
  151. package/fesm2015/ecabs-components.mjs.map +0 -1
  152. package/fesm2020/ecabs-components.mjs +0 -3323
  153. package/fesm2020/ecabs-components.mjs.map +0 -1
  154. /package/{esm2020 → esm2022}/ecabs-components.mjs +0 -0
  155. /package/{esm2020 → esm2022}/lib/base/consts/date-mask.consts.mjs +0 -0
  156. /package/{esm2020 → esm2022}/lib/ecabs-timepicker/config.model.mjs +0 -0
  157. /package/{esm2020 → esm2022}/lib/models/bread-crumb.mjs +0 -0
  158. /package/{esm2020 → esm2022}/lib/models/timepicker.models.mjs +0 -0
  159. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -1,65 +0,0 @@
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 "@angular/common";
6
- import * as i2 from "../base/element-wrapper/element-wrapper.component";
7
- import * as i3 from "@angular/material/radio";
8
- import * as i4 from "@angular/forms";
9
- export class EcabsRadioButtonListComponent extends ElementBaseComponent {
10
- constructor(injector) {
11
- super();
12
- this.injector = injector;
13
- this.direction = 'horizontal';
14
- this.onChange = () => { };
15
- this.onTouch = () => { };
16
- }
17
- get value() {
18
- return this.val;
19
- }
20
- set value(val) {
21
- if (val !== undefined && this.val !== val) {
22
- this.val = val;
23
- this.onChange(val);
24
- this.onTouch(val);
25
- }
26
- }
27
- ngAfterViewInit() {
28
- const ngControl = this.injector.get(NgControl, null);
29
- if (ngControl) {
30
- this.control = ngControl.control;
31
- }
32
- }
33
- writeValue(value) {
34
- this.value = value;
35
- }
36
- registerOnChange(fn) {
37
- this.onChange = fn;
38
- }
39
- registerOnTouched(fn) {
40
- this.onTouch = fn;
41
- }
42
- }
43
- EcabsRadioButtonListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsRadioButtonListComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
44
- EcabsRadioButtonListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EcabsRadioButtonListComponent, selector: "ecabs-radio-button-list", inputs: { items: "items", direction: "direction" }, providers: [
45
- {
46
- provide: NG_VALUE_ACCESSOR,
47
- useExisting: EcabsRadioButtonListComponent,
48
- multi: true,
49
- },
50
- ], usesInheritance: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <mat-radio-group\r\n [ngClass]=\"{ 'flex flex-col my-1': direction === 'vertical' }\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n >\r\n <mat-radio-button\r\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\r\n class=\"mr-4\"\r\n *ngFor=\"let item of items\"\r\n [value]=\"item.value\">{{ item.label }}</mat-radio-button>\r\n </mat-radio-group>\r\n</app-element-wrapper>\r\n", styles: [".mr-4{margin-right:1rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.flex{display:flex}.flex-col{flex-direction:column}\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: "component", type: i2.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsRadioButtonListComponent, decorators: [{
52
- type: Component,
53
- args: [{ selector: 'ecabs-radio-button-list', providers: [
54
- {
55
- provide: NG_VALUE_ACCESSOR,
56
- useExisting: EcabsRadioButtonListComponent,
57
- multi: true,
58
- },
59
- ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <mat-radio-group\r\n [ngClass]=\"{ 'flex flex-col my-1': direction === 'vertical' }\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n >\r\n <mat-radio-button\r\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\r\n class=\"mr-4\"\r\n *ngFor=\"let item of items\"\r\n [value]=\"item.value\">{{ item.label }}</mat-radio-button>\r\n </mat-radio-group>\r\n</app-element-wrapper>\r\n", styles: [".mr-4{margin-right:1rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.flex{display:flex}.flex-col{flex-direction:column}\n"] }]
60
- }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { items: [{
61
- type: Input
62
- }], direction: [{
63
- type: Input
64
- }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcmFkaW8tYnV0dG9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0L2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1yYWRpby1idXR0b24tbGlzdC9lY2Ficy1yYWRpby1idXR0b24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBWSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUE0QyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLG9CQUFvQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFjeEQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG9CQUFvQjtJQWtCckUsWUFBcUIsUUFBa0I7UUFDckMsS0FBSyxFQUFFLENBQUM7UUFEVyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBaEI5QixjQUFTLEdBQThCLFlBQVksQ0FBQztRQW9CN0QsYUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQixZQUFPLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBSHpCLENBQUM7SUFkRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFFLEdBQUc7UUFDWixJQUFLLEdBQUcsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUc7WUFDM0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFFLEdBQUcsQ0FBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUUsR0FBRyxDQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBU0QsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFjLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFFLFNBQVMsRUFBRSxJQUFJLENBQWUsQ0FBQztRQUMvRSxJQUFLLFNBQVMsRUFBRztZQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQTZCLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFFLEtBQVU7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFFLEVBQU87UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFFLEVBQU87UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7MEhBMUNVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLHNHQVI3QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsNkJBQTZCO1lBQzFDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixpRENkSCw0ZEFhQTsyRkRHYSw2QkFBNkI7a0JBWnpDLFNBQVM7K0JBQ0UseUJBQXlCLGFBR3hCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsK0JBQStCOzRCQUMxQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjsrRkFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUNvbnRyb2wsIE5nQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCBFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcblxyXG5AQ29tcG9uZW50KCB7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1yYWRpby1idXR0b24tbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsgJ2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0LmNvbXBvbmVudC5zY3NzJyBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzUmFkaW9CdXR0b25MaXN0Q29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBFY2Fic1JhZGlvQnV0dG9uTGlzdENvbXBvbmVudCBleHRlbmRzIEVsZW1lbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGl0ZW1zITogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH1bXTtcclxuICBASW5wdXQoKSBkaXJlY3Rpb246ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAnaG9yaXpvbnRhbCc7XHJcblxyXG4gIHZhbCE6IHN0cmluZztcclxuXHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy52YWw7XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUoIHZhbCApIHtcclxuICAgIGlmICggdmFsICE9PSB1bmRlZmluZWQgJiYgdGhpcy52YWwgIT09IHZhbCApIHtcclxuICAgICAgdGhpcy52YWwgPSB2YWw7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UoIHZhbCApO1xyXG4gICAgICB0aGlzLm9uVG91Y2goIHZhbCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgb25Ub3VjaDogYW55ID0gKCkgPT4geyB9O1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCBOZ0NvbnRyb2wsIG51bGwgKSBhcyBOZ0NvbnRyb2w7XHJcbiAgICBpZiAoIG5nQ29udHJvbCApIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSggdmFsdWU6IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoIGZuOiBhbnkgKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZCggZm46IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cclxuICA8bWF0LXJhZGlvLWdyb3VwXHJcbiAgICBbbmdDbGFzc109XCJ7ICdmbGV4IGZsZXgtY29sIG15LTEnOiBkaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcgfVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICA+XHJcbiAgICA8bWF0LXJhZGlvLWJ1dHRvblxyXG4gICAgICBbbmdDbGFzc109XCJ7ICdteS0xJzogZGlyZWN0aW9uID09PSAndmVydGljYWwnIH1cIlxyXG4gICAgICBjbGFzcz1cIm1yLTRcIlxyXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXHJcbiAgICAgIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3sgaXRlbS5sYWJlbCB9fTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICA8L21hdC1yYWRpby1ncm91cD5cclxuPC9hcHAtZWxlbWVudC13cmFwcGVyPlxyXG4iXX0=
@@ -1,310 +0,0 @@
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 { BehaviorSubject, combineLatest, debounceTime, map, 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, changeDetectorRef) {
16
- super();
17
- this.injector = injector;
18
- this.changeDetectorRef = changeDetectorRef;
19
- this.multiple = false;
20
- this.useNoneOption = false;
21
- this.useOnlyDisabledClass = false;
22
- this.searchFieldPlaceholder = 'Search';
23
- this.useSearchOption = false;
24
- this.useSelectAllOption = false;
25
- this.setAllOptionAfterChosenAllItems = true;
26
- this.selectAllValue = 0;
27
- this.noEntriesFoundLabel = 'No matching found';
28
- this.noneLabel = 'None';
29
- this.allLabel = 'All';
30
- this.otherLabel = 'Other';
31
- this.othersLabel = 'Others';
32
- this.updateFilterItems = new EventEmitter();
33
- this.selectionChange = new EventEmitter();
34
- this.filteredItems$ = new BehaviorSubject([]);
35
- this.itemFilterCtrl = new UntypedFormControl();
36
- this.isClearAll = false;
37
- this.showFilteredAllOption = true;
38
- this.selectedItems = [];
39
- this.notSelectedItems = [];
40
- this.subscriptions = new Subscription();
41
- // eslint-disable-next-line @typescript-eslint/no-empty-function
42
- this.onChange = () => { };
43
- // eslint-disable-next-line @typescript-eslint/no-empty-function
44
- this.onTouch = () => { };
45
- }
46
- get value() {
47
- return this.val;
48
- }
49
- set value(val) {
50
- if (this.val !== val) {
51
- this.val = val;
52
- this.setSelectedItems();
53
- this.onChange(val);
54
- this.onTouch(val);
55
- }
56
- }
57
- ngOnChanges(changes) {
58
- const { items } = changes;
59
- if (items && items.currentValue) {
60
- this.filterItems();
61
- if (this.multiple && this.useSelectAllOption && this.allSelected?.selected) {
62
- setTimeout(() => {
63
- this.control.patchValue([...this.filteredItems$.value.map((item) => item.value), this.selectAllValue], {
64
- emitEvent: false,
65
- });
66
- }, 100);
67
- }
68
- }
69
- }
70
- ngAfterViewInit() {
71
- const ngControl = this.injector.get(NgControl, null);
72
- if (ngControl) {
73
- this.control = ngControl.control;
74
- }
75
- if (this.matSelectSearchComponent) {
76
- this.matSelectSearchComponent._showNoEntriesFound$ = combineLatest([
77
- this.itemFilterCtrl.valueChanges,
78
- this.filteredItems$,
79
- ]).pipe(map(([value, items]) => this.matSelectSearchComponent.noEntriesFoundLabel &&
80
- value &&
81
- items.length === 0));
82
- }
83
- }
84
- ngOnInit() {
85
- this.subscriptions.add(this.itemFilterCtrl.valueChanges
86
- .pipe(debounceTime(200))
87
- .subscribe((value) => {
88
- this.filterItems();
89
- this.updateFilterItems.emit(value);
90
- if (this.isClearAll) {
91
- this.control.patchValue([], { emitEvent: false });
92
- this.isClearAll = false;
93
- }
94
- }));
95
- }
96
- toggleAllSelection() {
97
- if (this.allSelected.selected) {
98
- if (this.useSearchOption) {
99
- this.control.patchValue([...this.filteredItems$.value.map((item) => item.value), this.selectAllValue]);
100
- }
101
- else {
102
- this.control.patchValue([...this.items.map((item) => item.value), this.selectAllValue]);
103
- }
104
- }
105
- else {
106
- this.control.patchValue([]);
107
- this.isClearAll = true;
108
- }
109
- }
110
- togglePerOne() {
111
- setTimeout(() => (this.showFilteredAllOption = true));
112
- setTimeout(() => {
113
- if (this.allSelected) {
114
- if (this.allSelected.selected) {
115
- this.allSelected.deselect();
116
- }
117
- if (this.setAllOptionAfterChosenAllItems && this.control.value.length === this.items.length) {
118
- this.allSelected.select();
119
- }
120
- }
121
- this.showFilteredAllOption = false;
122
- });
123
- this.isClearAll = false;
124
- }
125
- toggleNone() {
126
- this.selectedItems = [];
127
- }
128
- getAllSelectedChecked() {
129
- return this.allSelected !== undefined && this.allSelected.selected;
130
- }
131
- getLabel(val) {
132
- if (this.useSelectAllOption && this.allSelected?.selected && this.items && this.items.length > 0) {
133
- return this.items[0].label;
134
- }
135
- let item;
136
- if (val !== undefined) {
137
- if (this.useSearchOption) {
138
- if (this.selectedItems && this.selectedItems.length > 0) {
139
- // eslint-disable-next-line @typescript-eslint/no-shadow
140
- item = this.selectedItems.find((item) => item.value === val);
141
- }
142
- }
143
- else {
144
- if (this.items && this.items.length > 0) {
145
- // eslint-disable-next-line @typescript-eslint/no-shadow
146
- item = this.items.find((item) => item.value === val);
147
- }
148
- }
149
- return item ? item.label : '';
150
- }
151
- return '';
152
- }
153
- writeValue(value) {
154
- this.value = value;
155
- }
156
- registerOnChange(fn) {
157
- this.onChange = fn;
158
- }
159
- registerOnTouched(fn) {
160
- this.onTouch = fn;
161
- }
162
- ngOnDestroy() {
163
- this.subscriptions.unsubscribe();
164
- }
165
- onSelectionChanged($event) {
166
- this.selectionChange.emit($event);
167
- }
168
- filterItems() {
169
- this.setSelectedItems();
170
- if (!this.items) {
171
- return;
172
- }
173
- // get the search keyword
174
- let search = this.itemFilterCtrl.value;
175
- if (!search || search === '') {
176
- if (this.useSearchOption) {
177
- this.filteredItems$.next([...this.selectedItems]);
178
- }
179
- else {
180
- this.filteredItems$.next(this.items?.slice());
181
- }
182
- this.showFilteredAllOption = true;
183
- return;
184
- }
185
- search = search.toLowerCase();
186
- this.showFilteredAllOption =
187
- this.allLabel.toLowerCase().includes(search.toLowerCase()) ||
188
- (this.value instanceof Array && this.value.includes(this.selectAllValue)) ||
189
- (!(this.value instanceof Array) && this.value === this.selectAllValue);
190
- this.changeDetectorRef.detectChanges();
191
- if (this.useSearchOption) {
192
- const filteredItems = this.notSelectedItems?.length > 0
193
- ? this.notSelectedItems.filter((item) => item.label.toLowerCase().includes(search.toLowerCase()))
194
- : [];
195
- this.filteredItems$.next([...this.selectedItems, ...filteredItems]);
196
- }
197
- else {
198
- this.filteredItems$.next(this.items?.length > 0
199
- ? this.items.filter((item) => item.label.toLowerCase().includes(search.toLowerCase()))
200
- : []);
201
- }
202
- }
203
- setSelectedItems() {
204
- if (this.useSearchOption) {
205
- const selectedItems = [];
206
- if (this.value) {
207
- if (this.value instanceof Array) {
208
- const skipSteps = this.value.includes(this.selectAllValue);
209
- if (!skipSteps) {
210
- this.value.forEach((value) => {
211
- const index = this.selectedItems.findIndex((selectedItem) => selectedItem.value === value);
212
- if (index !== -1) {
213
- selectedItems.push(this.selectedItems[index]);
214
- }
215
- else {
216
- // eslint-disable-next-line @typescript-eslint/no-shadow
217
- const item = this.items.find((item) => item.value === value);
218
- if (item) {
219
- selectedItems.push(item);
220
- }
221
- }
222
- });
223
- this.selectedItems.forEach((selectedItem) => {
224
- const index = this.value.find((value) => selectedItem.value === value);
225
- if (index === -1) {
226
- selectedItems.splice(index, 1);
227
- }
228
- });
229
- }
230
- }
231
- else {
232
- const index = this.selectedItems.findIndex((selectedItem) => selectedItem.value === this.value);
233
- if (index !== -1) {
234
- selectedItems.push(this.selectedItems[index]);
235
- }
236
- else {
237
- // eslint-disable-next-line @typescript-eslint/no-shadow
238
- const item = this.items.find((item) => item.value === this.value);
239
- // eslint-disable-next-line max-depth
240
- if (item) {
241
- selectedItems.push(item);
242
- }
243
- }
244
- }
245
- this.selectedItems = [...selectedItems];
246
- this.notSelectedItems = this.items?.filter((item) => this.selectedItems.findIndex((selectedItem) => selectedItem.value === item.value) === -1);
247
- }
248
- else {
249
- this.notSelectedItems = this.items?.slice();
250
- }
251
- }
252
- }
253
- }
254
- EcabsSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsSelectComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
255
- EcabsSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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", noneLabel: "noneLabel", allLabel: "allLabel", otherLabel: "otherLabel", othersLabel: "othersLabel" }, outputs: { updateFilterItems: "updateFilterItems", selectionChange: "selectionChange" }, providers: [
256
- {
257
- provide: NG_VALUE_ACCESSOR,
258
- useExisting: EcabsSelectComponent,
259
- multi: true,
260
- },
261
- ], 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 [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select\r\n class=\"form-field__select\"\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n [id]=\"name\"\r\n appearance=\"outline\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n [disableRipple]=\"true\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n >\r\n <mat-select-trigger>\r\n <span *ngIf=\"getAllSelectedChecked()\">{{ allLabel }}</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 ? otherLabel : othersLabel) }})\r\n </span>\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"useSearchOption\">\r\n <ngx-mat-select-search\r\n [formControl]=\"itemFilterCtrl\"\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n ></ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"useNoneOption\" (click)=\"toggleNone()\">{{ noneLabel }}</mat-option>\r\n <mat-option\r\n #allSelected\r\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\r\n (click)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">{{\r\n allLabel\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: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
262
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsSelectComponent, decorators: [{
263
- type: Component,
264
- args: [{ selector: 'ecabs-select', providers: [
265
- {
266
- provide: NG_VALUE_ACCESSOR,
267
- useExisting: EcabsSelectComponent,
268
- multi: true,
269
- },
270
- ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <mat-form-field [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select\r\n class=\"form-field__select\"\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n [id]=\"name\"\r\n appearance=\"outline\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n [disableRipple]=\"true\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n >\r\n <mat-select-trigger>\r\n <span *ngIf=\"getAllSelectedChecked()\">{{ allLabel }}</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 ? otherLabel : othersLabel) }})\r\n </span>\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"useSearchOption\">\r\n <ngx-mat-select-search\r\n [formControl]=\"itemFilterCtrl\"\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n ></ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"useNoneOption\" (click)=\"toggleNone()\">{{ noneLabel }}</mat-option>\r\n <mat-option\r\n #allSelected\r\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\r\n (click)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">{{\r\n allLabel\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" }]
271
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
272
- type: Input
273
- }], multiple: [{
274
- type: Input
275
- }], useNoneOption: [{
276
- type: Input
277
- }], useOnlyDisabledClass: [{
278
- type: Input
279
- }], searchFieldPlaceholder: [{
280
- type: Input
281
- }], useSearchOption: [{
282
- type: Input
283
- }], useSelectAllOption: [{
284
- type: Input
285
- }], setAllOptionAfterChosenAllItems: [{
286
- type: Input
287
- }], selectAllValue: [{
288
- type: Input
289
- }], noEntriesFoundLabel: [{
290
- type: Input
291
- }], noneLabel: [{
292
- type: Input
293
- }], allLabel: [{
294
- type: Input
295
- }], otherLabel: [{
296
- type: Input
297
- }], othersLabel: [{
298
- type: Input
299
- }], updateFilterItems: [{
300
- type: Output
301
- }], selectionChange: [{
302
- type: Output
303
- }], allSelected: [{
304
- type: ViewChild,
305
- args: ['allSelected']
306
- }], matSelectSearchComponent: [{
307
- type: ViewChild,
308
- args: [MatSelectSearchComponent]
309
- }] } });
310
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QvZWNhYnMtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QvZWNhYnMtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLFlBQVksRUFDWixHQUFHLEVBQ0gsWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxvQkFBb0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBYXhELE1BQU0sT0FBTyxvQkFDWCxTQUFRLG9CQUFvQjtJQWdENUIsWUFDbUIsUUFBa0IsRUFDbEIsaUJBQW9DO1FBRXJELEtBQUssRUFBRSxDQUFDO1FBSFMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBL0M5QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwyQkFBc0IsR0FBVyxRQUFRLENBQUM7UUFDMUMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsdUJBQWtCLEdBQUcsS0FB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QUNqQyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsaUxBd0JXLHdCQUF3Qiw0RkMvRHRDLDI1REE2Q0E7MkZESmEsb0JBQW9CO2tCQVhoQyxTQUFTOytCQUNFLGNBQWMsYUFFYjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHNCQUFzQjs0QkFDakMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7K0hBS1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLCtCQUErQjtzQkFBdkMsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNO2dCQUVxQixXQUFXO3NCQUF0QyxTQUFTO3VCQUFFLGFBQWE7Z0JBRXpCLHdCQUF3QjtzQkFEdkIsU0FBUzt1QkFBRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgVW50eXBlZEZvcm1Db250cm9sLFxyXG4gIE5nQ29udHJvbCxcclxuICBOR19WQUxVRV9BQ0NFU1NPUixcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RTZWFyY2hDb21wb25lbnQgfSBmcm9tICduZ3gtbWF0LXNlbGVjdC1zZWFyY2gnO1xyXG5pbXBvcnQge1xyXG4gIEJlaGF2aW9yU3ViamVjdCxcclxuICBjb21iaW5lTGF0ZXN0LFxyXG4gIGRlYm91bmNlVGltZSxcclxuICBtYXAsXHJcbiAgU3Vic2NyaXB0aW9uLFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xyXG5cclxuQENvbXBvbmVudCgge1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBFY2Fic1NlbGVjdENvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0gKVxyXG5leHBvcnQgY2xhc3MgRWNhYnNTZWxlY3RDb21wb25lbnRcclxuICBleHRlbmRzIEVsZW1lbnRCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBpdGVtcyE6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueSB9W107XHJcbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSB1c2VOb25lT3B0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdXNlT25seURpc2FibGVkQ2xhc3MgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWFyY2hGaWVsZFBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU2VhcmNoJztcclxuICBASW5wdXQoKSB1c2VTZWFyY2hPcHRpb24gPSBmYWxzZTtcclxuICBASW5wdXQoKSB1c2VTZWxlY3RBbGxPcHRpb24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXRBbGxPcHRpb25BZnRlckNob3NlbkFsbEl0ZW1zID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZWxlY3RBbGxWYWx1ZTogYW55ID0gMDtcclxuICBASW5wdXQoKSBub0VudHJpZXNGb3VuZExhYmVsID0gJ05vIG1hdGNoaW5nIGZvdW5kJztcclxuICBASW5wdXQoKSBub25lTGFiZWwgPSAnTm9uZSc7XHJcbiAgQElucHV0KCkgYWxsTGFiZWwgPSAnQWxsJztcclxuICBASW5wdXQoKSBvdGhlckxhYmVsID0gJ090aGVyJztcclxuICBASW5wdXQoKSBvdGhlcnNMYWJlbCA9ICdPdGhlcnMnO1xyXG4gIEBPdXRwdXQoKSB1cGRhdGVGaWx0ZXJJdGVtczogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCggJ2FsbFNlbGVjdGVkJyApIGFsbFNlbGVjdGVkITogTWF0T3B0aW9uO1xyXG4gIEBWaWV3Q2hpbGQoIE1hdFNlbGVjdFNlYXJjaENvbXBvbmVudCApXHJcbiAgbWF0U2VsZWN0U2VhcmNoQ29tcG9uZW50ITogTWF0U2VsZWN0U2VhcmNoQ29tcG9uZW50O1xyXG5cclxuICB2YWwhOiBhbnk7XHJcbiAgZmlsdGVyZWRJdGVtcyQ6IEJlaGF2aW9yU3ViamVjdDx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XHJcbiAgICB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdXHJcbiAgPiggW10gKTtcclxuICBpdGVtRmlsdGVyQ3RybDogVW50eXBlZEZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xyXG4gIGlzQ2xlYXJBbGwgPSBmYWxzZTtcclxuICBzaG93RmlsdGVyZWRBbGxPcHRpb24gPSB0cnVlO1xyXG4gIHNlbGVjdGVkSXRlbXM6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueSB9W10gPSBbXTtcclxuICBub3RTZWxlY3RlZEl0ZW1zOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdID0gW107XHJcbiAgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWw7XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUoIHZhbCApIHtcclxuICAgIGlmICggdGhpcy52YWwgIT09IHZhbCApIHtcclxuICAgICAgdGhpcy52YWwgPSB2YWw7XHJcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRJdGVtcygpO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKCB2YWwgKTtcclxuICAgICAgdGhpcy5vblRvdWNoKCB2YWwgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzICk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBpdGVtcyB9ID0gY2hhbmdlcztcclxuXHJcbiAgICBpZiAoIGl0ZW1zICYmIGl0ZW1zLmN1cnJlbnRWYWx1ZSApIHtcclxuICAgICAgdGhpcy5maWx0ZXJJdGVtcygpO1xyXG5cclxuICAgICAgaWYgKCB0aGlzLm11bHRpcGxlICYmIHRoaXMudXNlU2VsZWN0QWxsT3B0aW9uICYmIHRoaXMuYWxsU2VsZWN0ZWQ/LnNlbGVjdGVkICkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKCBbIC4uLnRoaXMuZmlsdGVyZWRJdGVtcyQudmFsdWUubWFwKCAoIGl0ZW0gKSA9PiBpdGVtLnZhbHVlICksIHRoaXMuc2VsZWN0QWxsVmFsdWUgXSwge1xyXG4gICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxyXG4gICAgICAgICAgfSApO1xyXG4gICAgICAgIH0sIDEwMCApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBOZ0NvbnRyb2wsXHJcbiAgICAgIG51bGxcclxuICAgICkgYXMgTmdDb250cm9sO1xyXG5cclxuICAgIGlmICggbmdDb250cm9sICkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wgPSBuZ0NvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCB0aGlzLm1hdFNlbGVjdFNlYXJjaENvbXBvbmVudCApIHtcclxuICAgICAgdGhpcy5tYXRTZWxlY3RTZWFyY2hDb21wb25lbnQuX3Nob3dOb0VudHJpZXNGb3VuZCQgPSBjb21iaW5lTGF0ZXN0KCBbXHJcbiAgICAgICAgdGhpcy5pdGVtRmlsdGVyQ3RybC52YWx1ZUNoYW5nZXMsXHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zJCxcclxuICAgICAgXSApLnBpcGUoXHJcbiAgICAgICAgbWFwKFxyXG4gICAgICAgICAgKCBbIHZhbHVlLCBpdGVtcyBdICkgPT5cclxuICAgICAgICAgICAgdGhpcy5tYXRTZWxlY3RTZWFyY2hDb21wb25lbnQubm9FbnRyaWVzRm91bmRMYWJlbCAmJlxyXG4gICAgICAgICAgICB2YWx1ZSAmJlxyXG4gICAgICAgICAgICBpdGVtcy5sZW5ndGggPT09IDBcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXHJcbiAgICAgIHRoaXMuaXRlbUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUoIGRlYm91bmNlVGltZSggMjAwICkgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoICggdmFsdWU6IGFueSApID0+IHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVySXRlbXMoKTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlRmlsdGVySXRlbXMuZW1pdCggdmFsdWUgKTtcclxuXHJcbiAgICAgICAgICBpZiAoIHRoaXMuaXNDbGVhckFsbCApIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUoIFtdLCB7IGVtaXRFdmVudDogZmFsc2UgfSApO1xyXG4gICAgICAgICAgICB0aGlzLmlzQ2xlYXJBbGwgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgb25Ub3VjaDogYW55ID0gKCkgPT4geyB9O1xyXG5cclxuICB0b2dnbGVBbGxTZWxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICBpZiAoIHRoaXMuYWxsU2VsZWN0ZWQuc2VsZWN0ZWQgKSB7XHJcbiAgICAgIGlmICggdGhpcy51c2VTZWFyY2hPcHRpb24gKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUoIFsgLi4udGhpcy5maWx0ZXJlZEl0ZW1zJC52YWx1ZS5tYXAoICggaXRlbSApID0+IGl0ZW0udmFsdWUgKSwgdGhpcy5zZWxlY3RBbGxWYWx1ZSBdICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUoIFsgLi4udGhpcy5pdGVtcy5tYXAoICggaXRlbSApID0+IGl0ZW0udmFsdWUgKSwgdGhpcy5zZWxlY3RBbGxWYWx1ZSBdICk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKCBbXSApO1xyXG4gICAgICB0aGlzLmlzQ2xlYXJBbGwgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlUGVyT25lKCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCggKCkgPT4gKCB0aGlzLnNob3dGaWx0ZXJlZEFsbE9wdGlvbiA9IHRydWUgKSApO1xyXG5cclxuICAgIHNldFRpbWVvdXQoICgpID0+IHtcclxuICAgICAgaWYgKCB0aGlzLmFsbFNlbGVjdGVkICkge1xyXG4gICAgICAgIGlmICggdGhpcy5hbGxTZWxlY3RlZC5zZWxlY3RlZCApIHtcclxuICAgICAgICAgIHRoaXMuYWxsU2VsZWN0ZWQuZGVzZWxlY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCB0aGlzLnNldEFsbE9wdGlvbkFmdGVyQ2hvc2VuQWxsSXRlbXMgJiYgdGhpcy5jb250cm9sLnZhbHVlLmxlbmd0aCA9PT0gdGhpcy5pdGVtcy5sZW5ndGggKSB7XHJcbiAgICAgICAgICB0aGlzLmFsbFNlbGVjdGVkLnNlbGVjdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zaG93RmlsdGVyZWRBbGxPcHRpb24gPSBmYWxzZTtcclxuICAgIH0gKTtcclxuXHJcbiAgICB0aGlzLmlzQ2xlYXJBbGwgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZU5vbmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcclxuICB9XHJcblxyXG4gIGdldEFsbFNlbGVjdGVkQ2hlY2tlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFsbFNlbGVjdGVkICE9PSB1bmRlZmluZWQgJiYgdGhpcy5hbGxTZWxlY3RlZC5zZWxlY3RlZDtcclxuICB9XHJcblxyXG4gIGdldExhYmVsKCB2YWw6IGFueSApOiBzdHJpbmcge1xyXG4gICAgaWYgKCB0aGlzLnVzZVNlbGVjdEFsbE9wdGlvbiAmJiB0aGlzLmFsbFNlbGVjdGVkPy5zZWxlY3RlZCAmJiB0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaXRlbXNbIDAgXS5sYWJlbDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaXRlbTogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH07XHJcblxyXG4gICAgaWYgKCB2YWwgIT09IHVuZGVmaW5lZCApIHtcclxuICAgICAgaWYgKCB0aGlzLnVzZVNlYXJjaE9wdGlvbiApIHtcclxuICAgICAgICBpZiAoIHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCApIHtcclxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tc2hhZG93XHJcbiAgICAgICAgICBpdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmQoICggaXRlbSApID0+IGl0ZW0udmFsdWUgPT09IHZhbCApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwICkge1xyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3dcclxuICAgICAgICAgIGl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoICggaXRlbSApID0+IGl0ZW0udmFsdWUgPT09IHZhbCApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGl0ZW0gPyBpdGVtLmxhYmVsIDogJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSggdmFsdWU6IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoIGZuOiBhbnkgKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZCggZm46IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlZCggJGV2ZW50OiBhbnkgKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KCAkZXZlbnQgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsdGVySXRlbXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFNlbGVjdGVkSXRlbXMoKTtcclxuXHJcbiAgICBpZiAoICF0aGlzLml0ZW1zICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZ2V0IHRoZSBzZWFyY2gga2V5d29yZFxyXG4gICAgbGV0IHNlYXJjaDogc3RyaW5nID0gdGhpcy5pdGVtRmlsdGVyQ3RybC52YWx1ZTtcclxuXHJcbiAgICBpZiAoICFzZWFyY2ggfHwgc2VhcmNoID09PSAnJyApIHtcclxuICAgICAgaWYgKCB0aGlzLnVzZVNlYXJjaE9wdGlvbiApIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLm5leHQoIFsgLi4udGhpcy5zZWxlY3RlZEl0ZW1zIF0gKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLm5leHQoIHRoaXMuaXRlbXM/LnNsaWNlKCkgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zaG93RmlsdGVyZWRBbGxPcHRpb24gPSB0cnVlO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaCA9IHNlYXJjaC50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIHRoaXMuc2hvd0ZpbHRlcmVkQWxsT3B0aW9uID1cclxuICAgICAgdGhpcy5hbGxMYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCBzZWFyY2gudG9Mb3dlckNhc2UoKSApIHx8XHJcbiAgICAgICggdGhpcy52YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIHRoaXMudmFsdWUuaW5jbHVkZXMoIHRoaXMuc2VsZWN0QWxsVmFsdWUgKSApIHx8XHJcbiAgICAgICggISggdGhpcy52YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICkgJiYgdGhpcy52YWx1ZSA9PT0gdGhpcy5zZWxlY3RBbGxWYWx1ZSApO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgaWYgKCB0aGlzLnVzZVNlYXJjaE9wdGlvbiApIHtcclxuICAgICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9XHJcbiAgICAgICAgdGhpcy5ub3RTZWxlY3RlZEl0ZW1zPy5sZW5ndGggPiAwXHJcbiAgICAgICAgICA/IHRoaXMubm90U2VsZWN0ZWRJdGVtcy5maWx0ZXIoICggaXRlbSApID0+IGl0ZW0ubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyggc2VhcmNoLnRvTG93ZXJDYXNlKCkgKSApXHJcbiAgICAgICAgICA6IFtdO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLm5leHQoIFsgLi4udGhpcy5zZWxlY3RlZEl0ZW1zLCAuLi5maWx0ZXJlZEl0ZW1zIF0gKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyQubmV4dChcclxuICAgICAgICB0aGlzLml0ZW1zPy5sZW5ndGggPiAwXHJcbiAgICAgICAgICA/IHRoaXMuaXRlbXMuZmlsdGVyKCAoIGl0ZW0gKSA9PiBpdGVtLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoIHNlYXJjaC50b0xvd2VyQ2FzZSgpICkgKVxyXG4gICAgICAgICAgOiBbXVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZEl0ZW1zKCk6IHZvaWQge1xyXG4gICAgaWYgKCB0aGlzLnVzZVNlYXJjaE9wdGlvbiApIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG5cclxuICAgICAgaWYgKCB0aGlzLnZhbHVlICkge1xyXG4gICAgICAgIGlmICggdGhpcy52YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICkge1xyXG4gICAgICAgICAgY29uc3Qgc2tpcFN0ZXBzID0gdGhpcy52YWx1ZS5pbmNsdWRlcyggdGhpcy5zZWxlY3RBbGxWYWx1ZSApO1xyXG5cclxuICAgICAgICAgIGlmICggIXNraXBTdGVwcyApIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZS5mb3JFYWNoKCAoIHZhbHVlICkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmRJbmRleCggKCBzZWxlY3RlZEl0ZW0gKSA9PiBzZWxlY3RlZEl0ZW0udmFsdWUgPT09IHZhbHVlICk7XHJcblxyXG4gICAgICAgICAgICAgIGlmICggaW5kZXggIT09IC0xICkge1xyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKCB0aGlzLnNlbGVjdGVkSXRlbXNbIGluZGV4IF0gKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3dcclxuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoICggaXRlbSApID0+IGl0ZW0udmFsdWUgPT09IHZhbHVlICk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCBpdGVtICkge1xyXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goIGl0ZW0gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKCAoIHNlbGVjdGVkSXRlbSApID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudmFsdWUuZmluZCggKCB2YWx1ZSApID0+IHNlbGVjdGVkSXRlbS52YWx1ZSA9PT0gdmFsdWUgKTtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKCBpbmRleCA9PT0gLTEgKSB7XHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnNwbGljZSggaW5kZXgsIDEgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmluZEluZGV4KCAoIHNlbGVjdGVkSXRlbSApID0+IHNlbGVjdGVkSXRlbS52YWx1ZSA9PT0gdGhpcy52YWx1ZSApO1xyXG5cclxuICAgICAgICAgIGlmICggaW5kZXggIT09IC0xICkge1xyXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goIHRoaXMuc2VsZWN0ZWRJdGVtc1sgaW5kZXggXSApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3dcclxuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXMuZmluZCggKCBpdGVtICkgPT4gaXRlbS52YWx1ZSA9PT0gdGhpcy52YWx1ZSApO1xyXG5cclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1kZXB0aFxyXG4gICAgICAgICAgICBpZiAoIGl0ZW0gKSB7XHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKCBpdGVtICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFsgLi4uc2VsZWN0ZWRJdGVtcyBdO1xyXG4gICAgICAgIHRoaXMubm90U2VsZWN0ZWRJdGVtcyA9IHRoaXMuaXRlbXM/LmZpbHRlcihcclxuICAgICAgICAgICggaXRlbSApID0+IHRoaXMuc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoICggc2VsZWN0ZWRJdGVtICkgPT4gc2VsZWN0ZWRJdGVtLnZhbHVlID09PSBpdGVtLnZhbHVlICkgPT09IC0xXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5vdFNlbGVjdGVkSXRlbXMgPSB0aGlzLml0ZW1zPy5zbGljZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtZWxlbWVudC13cmFwcGVyIFtkYXRhXT1cImdldERhdGEoKVwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiB1c2VPbmx5RGlzYWJsZWRDbGFzcyB9XCI+XHJcbiAgICA8bWF0LXNlbGVjdFxyXG4gICAgICBjbGFzcz1cImZvcm0tZmllbGRfX3NlbGVjdFwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICAoY2xvc2VkKT1cIm9uVG91Y2goKVwiXHJcbiAgICAgIFtpZF09XCJuYW1lXCJcclxuICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxyXG4gICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcclxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJnZXRBbGxTZWxlY3RlZENoZWNrZWQoKVwiPnt7IGFsbExhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWdldEFsbFNlbGVjdGVkQ2hlY2tlZCgpXCJcclxuICAgICAgICAgID57eyB2YWwgJiYgbXVsdGlwbGUgPyBnZXRMYWJlbCh2YWxbMF0pIDogZ2V0TGFiZWwodmFsKSB9fVxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJtdWx0aXBsZSAmJiB2YWx1ZT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiYWRkaXRpb25hbC1zZWxlY3Rpb25cIj5cclxuICAgICAgICAgICAgKCt7eyB1c2VTZWxlY3RBbGxPcHRpb24gJiYgdGhpcy5hbGxTZWxlY3RlZD8uc2VsZWN0ZWQgPyB2YWx1ZT8ubGVuZ3RoIC0gMiA6IHZhbHVlPy5sZW5ndGggLSAxIH19XHJcbiAgICAgICAgICAgIHt7ICh2YWx1ZT8ubGVuZ3RoID09PSAyID8gb3RoZXJMYWJlbCA6IG90aGVyc0xhYmVsKSB9fSlcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cInVzZVNlYXJjaE9wdGlvblwiPlxyXG4gICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2hcclxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJpdGVtRmlsdGVyQ3RybFwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJMYWJlbF09XCJzZWFyY2hGaWVsZFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIFtub0VudHJpZXNGb3VuZExhYmVsXT1cIm5vRW50cmllc0ZvdW5kTGFiZWxcIlxyXG4gICAgICAgID48L25neC1tYXQtc2VsZWN0LXNlYXJjaD5cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cInVzZU5vbmVPcHRpb25cIiAoY2xpY2spPVwidG9nZ2xlTm9uZSgpXCI+e3sgbm9uZUxhYmVsIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAjYWxsU2VsZWN0ZWRcclxuICAgICAgKm5nSWY9XCJ1c2VTZWxlY3RBbGxPcHRpb24gJiYgc2hvd0ZpbHRlcmVkQWxsT3B0aW9uXCJcclxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUFsbFNlbGVjdGlvbigpXCJcclxuICAgICAgW3ZhbHVlXT1cInNlbGVjdEFsbFZhbHVlXCI+e3tcclxuICAgICAgICBhbGxMYWJlbFxyXG4gICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRJdGVtcyQgfCBhc3luY1wiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCIgKGNsaWNrKT1cInRvZ2dsZVBlck9uZSgpXCI+XHJcbiAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9hcHAtZWxlbWVudC13cmFwcGVyPlxyXG4iXX0=
@@ -1,60 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
4
- import { EcabsSelectComponent } from './ecabs-select.component';
5
- import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
6
- import { MAT_SELECT_SCROLL_STRATEGY, MatSelectModule, } from '@angular/material/select';
7
- import { Overlay } from '@angular/cdk/overlay';
8
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
9
- import { MatFormFieldModule } from '@angular/material/form-field';
10
- import * as i0 from "@angular/core";
11
- export class EcabsSelectModule {
12
- }
13
- EcabsSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- EcabsSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: EcabsSelectModule, declarations: [EcabsSelectComponent], imports: [CommonModule,
15
- ElementWrapperModule,
16
- MatSelectModule,
17
- FormsModule,
18
- NgxMatSelectSearchModule,
19
- MatFormFieldModule,
20
- ReactiveFormsModule], exports: [EcabsSelectComponent] });
21
- EcabsSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsSelectModule, providers: [
22
- {
23
- provide: MAT_SELECT_SCROLL_STRATEGY,
24
- useFactory: scrollFactory,
25
- deps: [Overlay],
26
- },
27
- ], imports: [CommonModule,
28
- ElementWrapperModule,
29
- MatSelectModule,
30
- FormsModule,
31
- NgxMatSelectSearchModule,
32
- MatFormFieldModule,
33
- ReactiveFormsModule] });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsSelectModule, decorators: [{
35
- type: NgModule,
36
- args: [{
37
- declarations: [EcabsSelectComponent],
38
- imports: [
39
- CommonModule,
40
- ElementWrapperModule,
41
- MatSelectModule,
42
- FormsModule,
43
- NgxMatSelectSearchModule,
44
- MatFormFieldModule,
45
- ReactiveFormsModule
46
- ],
47
- exports: [EcabsSelectComponent],
48
- providers: [
49
- {
50
- provide: MAT_SELECT_SCROLL_STRATEGY,
51
- useFactory: scrollFactory,
52
- deps: [Overlay],
53
- },
54
- ],
55
- }]
56
- }] });
57
- export function scrollFactory(overlay) {
58
- return () => overlay.scrollStrategies.block();
59
- }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtc2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QvZWNhYnMtc2VsZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsMEJBQTBCLEVBQUUsZUFBZSxHQUM1QyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBdUIsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQXNCbEUsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQW5CWixvQkFBb0IsYUFFbEMsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2YsV0FBVztRQUNYLHdCQUF3QjtRQUN4QixrQkFBa0I7UUFDbEIsbUJBQW1CLGFBRVYsb0JBQW9COytHQVNwQixpQkFBaUIsYUFSakI7UUFDVDtZQUNFLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsVUFBVSxFQUFFLGFBQWE7WUFDekIsSUFBSSxFQUFFLENBQUUsT0FBTyxDQUFFO1NBQ2xCO0tBQ0YsWUFmQyxZQUFZO1FBQ1osb0JBQW9CO1FBQ3BCLGVBQWU7UUFDZixXQUFXO1FBQ1gsd0JBQXdCO1FBQ3hCLGtCQUFrQjtRQUNsQixtQkFBbUI7MkZBV1YsaUJBQWlCO2tCQXBCN0IsUUFBUTttQkFBRTtvQkFDVCxZQUFZLEVBQUUsQ0FBRSxvQkFBb0IsQ0FBRTtvQkFDdEMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFLENBQUUsb0JBQW9CLENBQUU7b0JBQ2pDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsMEJBQTBCOzRCQUNuQyxVQUFVLEVBQUUsYUFBYTs0QkFDekIsSUFBSSxFQUFFLENBQUUsT0FBTyxDQUFFO3lCQUNsQjtxQkFDRjtpQkFDRjs7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFFLE9BQWdCO0lBQzdDLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFbGVtZW50V3JhcHBlck1vZHVsZSB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC13cmFwcGVyL2VsZW1lbnQtd3JhcHBlci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBFY2Fic1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vZWNhYnMtc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5neE1hdFNlbGVjdFNlYXJjaE1vZHVsZSB9IGZyb20gJ25neC1tYXQtc2VsZWN0LXNlYXJjaCc7XHJcbmltcG9ydCB7XHJcbiAgTUFUX1NFTEVDVF9TQ1JPTExfU1RSQVRFR1ksIE1hdFNlbGVjdE1vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBCbG9ja1Njcm9sbFN0cmF0ZWd5LCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcblxyXG5ATmdNb2R1bGUoIHtcclxuICBkZWNsYXJhdGlvbnM6IFsgRWNhYnNTZWxlY3RDb21wb25lbnQgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBFbGVtZW50V3JhcHBlck1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTmd4TWF0U2VsZWN0U2VhcmNoTW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogWyBFY2Fic1NlbGVjdENvbXBvbmVudCBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBNQVRfU0VMRUNUX1NDUk9MTF9TVFJBVEVHWSxcclxuICAgICAgdXNlRmFjdG9yeTogc2Nyb2xsRmFjdG9yeSxcclxuICAgICAgZGVwczogWyBPdmVybGF5IF0sXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0gKVxyXG5leHBvcnQgY2xhc3MgRWNhYnNTZWxlY3RNb2R1bGUgeyB9XHJcbmV4cG9ydCBmdW5jdGlvbiBzY3JvbGxGYWN0b3J5KCBvdmVybGF5OiBPdmVybGF5ICk6ICgpID0+IEJsb2NrU2Nyb2xsU3RyYXRlZ3kge1xyXG4gIHJldHVybiAoKSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKTtcclxufVxyXG4iXX0=
@@ -1,17 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "../../ecabs-expansion-panel/ecabs-expansion-panel.component";
5
- export class EcabsTableFilterWrapperComponent {
6
- }
7
- EcabsTableFilterWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsTableFilterWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- EcabsTableFilterWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EcabsTableFilterWrapperComponent, selector: "ecabs-table-filter-wrapper", inputs: { title: "title", actions: "actions" }, ngImport: i0, template: "<ecabs-expansion-panel [title]=\"title\" class=\"block mb-5\" [expanded]=\"true\">\r\n <ng-content></ng-content>\r\n\r\n <div *ngIf=\"actions\" class=\"flex justify-end\">\r\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\r\n </div>\r\n</ecabs-expansion-panel>\r\n", styles: [":root{--color-black: #07080d;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-100: #f5f6f9;--color-gray-200: #f8f9f9;--color-gray-300: #d9d9d9;--color-gray-400: #a6a6a6;--color-gray-500: #6b6d73;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #df3838;--color-error-opacity: #fbe4e4;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-warn: #f2994a;--color-warn-rgb: 242, 153, 74;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-warning: #f2994a;--color-warning-opacity: #fdf0e4;--color-success: #25bd3d;--color-success--opacity: #e8f8e5;--color-success-rgb: 37, 189, 61;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5)}.mat-expansion-panel-header-title{font-size:22px}:host::ng-deep .btn__group{justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.EcabsExpansionPanelComponent, selector: "ecabs-expansion-panel", inputs: ["title", "description", "index", "expanded", "disabled", "errorMessage", "showErrorMessage", "closePanel", "showIcon", "iconName", "showCheckbox", "showStatus", "status", "hideToggle"], outputs: ["checked", "opened"] }] });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsTableFilterWrapperComponent, decorators: [{
10
- type: Component,
11
- args: [{ selector: 'ecabs-table-filter-wrapper', template: "<ecabs-expansion-panel [title]=\"title\" class=\"block mb-5\" [expanded]=\"true\">\r\n <ng-content></ng-content>\r\n\r\n <div *ngIf=\"actions\" class=\"flex justify-end\">\r\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\r\n </div>\r\n</ecabs-expansion-panel>\r\n", styles: [":root{--color-black: #07080d;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-100: #f5f6f9;--color-gray-200: #f8f9f9;--color-gray-300: #d9d9d9;--color-gray-400: #a6a6a6;--color-gray-500: #6b6d73;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #df3838;--color-error-opacity: #fbe4e4;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-warn: #f2994a;--color-warn-rgb: 242, 153, 74;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-warning: #f2994a;--color-warning-opacity: #fdf0e4;--color-success: #25bd3d;--color-success--opacity: #e8f8e5;--color-success-rgb: 37, 189, 61;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5)}.mat-expansion-panel-header-title{font-size:22px}:host::ng-deep .btn__group{justify-content:flex-end}\n"] }]
12
- }], propDecorators: { title: [{
13
- type: Input
14
- }], actions: [{
15
- type: Input
16
- }] } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtdGFibGUtZmlsdGVyLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXRhYmxlL2VjYWJzLXRhYmxlLWZpbHRlci13cmFwcGVyL2VjYWJzLXRhYmxlLWZpbHRlci13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy10YWJsZS9lY2Ficy10YWJsZS1maWx0ZXItd3JhcHBlci9lY2Ficy10YWJsZS1maWx0ZXItd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQzs7OztBQU85RCxNQUFNLE9BQU8sZ0NBQWdDOzs2SEFBaEMsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0Msa0hDUDdDLDhSQU9BOzJGREFhLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSw0QkFBNEI7OEJBTXRDLEtBQUs7c0JBREosS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCgge1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtdGFibGUtZmlsdGVyLXdyYXBwZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy10YWJsZS1maWx0ZXItd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbICcuL2VjYWJzLXRhYmxlLWZpbHRlci13cmFwcGVyLmNvbXBvbmVudC5zY3NzJyBdLFxyXG59IClcclxuZXhwb3J0IGNsYXNzIEVjYWJzVGFibGVGaWx0ZXJXcmFwcGVyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIHRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYWN0aW9uczogVGVtcGxhdGVSZWY8YW55PjtcclxufVxyXG4iLCI8ZWNhYnMtZXhwYW5zaW9uLXBhbmVsIFt0aXRsZV09XCJ0aXRsZVwiIGNsYXNzPVwiYmxvY2sgbWItNVwiIFtleHBhbmRlZF09XCJ0cnVlXCI+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiYWN0aW9uc1wiIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9lY2Ficy1leHBhbnNpb24tcGFuZWw+XHJcbiJdfQ==
@@ -1,43 +0,0 @@
1
- import { Component, ContentChild, Input } from '@angular/core';
2
- import { MatTable } from '@angular/material/table';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/material/progress-bar";
6
- import * as i3 from "../ecabs-empty-placeholder/ecabs-empty-placeholder.component";
7
- export class TableComponent {
8
- constructor() {
9
- this.bordered = false;
10
- this.loading = false;
11
- }
12
- ngAfterContentChecked() {
13
- if (this.table) {
14
- this.isEmpty = !this.table['_data']?.length;
15
- }
16
- }
17
- }
18
- TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TableComponent, selector: "ecabs-table", inputs: { header: "header", paginator: "paginator", bordered: "bordered", loading: "loading", isEmpty: "isEmpty", isEmptyMessage: "isEmptyMessage", redirectPath: "redirectPath", srcImageEmpty: "srcImageEmpty" }, queries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true }], ngImport: i0, template: "<section class=\"table-ui table-ui--wrapper\" [ngClass]=\"{ 'table-ui__bordered': bordered, loading: loading }\">\r\n <mat-progress-bar *ngIf=\"loading\" mode=\"indeterminate\" class=\"table-ui__progress\"></mat-progress-bar>\r\n\r\n\r\n <div *ngIf=\"header\" class=\"table-ui__header\">\r\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!(isEmptyMessage && isEmpty); else noDataTemplate\">\r\n <ng-content></ng-content>\r\n\r\n <div *ngIf=\"paginator\" class=\"table-ui__paginator\">\r\n <ng-container *ngTemplateOutlet=\"paginator\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!--#For Empty state -->\r\n <ng-template #noDataTemplate>\r\n <ecabs-empty-placeholder\r\n *ngIf=\"!loading\"\r\n [redirectPath]=\"redirectPath\"\r\n [isEmptyMessage]=\"isEmptyMessage\"\r\n [srcImage]=\"srcImageEmpty\"\r\n ></ecabs-empty-placeholder>\r\n </ng-template>\r\n</section>\r\n", styles: [":host mat-progress-bar{position:absolute;width:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i3.EcabsEmptyPlaceholderComponent, selector: "ecabs-empty-placeholder", inputs: ["isEmptyMessage", "redirectPath", "srcImage"] }] });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TableComponent, decorators: [{
21
- type: Component,
22
- args: [{ selector: 'ecabs-table', template: "<section class=\"table-ui table-ui--wrapper\" [ngClass]=\"{ 'table-ui__bordered': bordered, loading: loading }\">\r\n <mat-progress-bar *ngIf=\"loading\" mode=\"indeterminate\" class=\"table-ui__progress\"></mat-progress-bar>\r\n\r\n\r\n <div *ngIf=\"header\" class=\"table-ui__header\">\r\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!(isEmptyMessage && isEmpty); else noDataTemplate\">\r\n <ng-content></ng-content>\r\n\r\n <div *ngIf=\"paginator\" class=\"table-ui__paginator\">\r\n <ng-container *ngTemplateOutlet=\"paginator\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!--#For Empty state -->\r\n <ng-template #noDataTemplate>\r\n <ecabs-empty-placeholder\r\n *ngIf=\"!loading\"\r\n [redirectPath]=\"redirectPath\"\r\n [isEmptyMessage]=\"isEmptyMessage\"\r\n [srcImage]=\"srcImageEmpty\"\r\n ></ecabs-empty-placeholder>\r\n </ng-template>\r\n</section>\r\n", styles: [":host mat-progress-bar{position:absolute;width:auto}\n"] }]
23
- }], propDecorators: { table: [{
24
- type: ContentChild,
25
- args: [MatTable]
26
- }], header: [{
27
- type: Input
28
- }], paginator: [{
29
- type: Input
30
- }], bordered: [{
31
- type: Input
32
- }], loading: [{
33
- type: Input
34
- }], isEmpty: [{
35
- type: Input
36
- }], isEmptyMessage: [{
37
- type: Input
38
- }], redirectPath: [{
39
- type: Input
40
- }], srcImageEmpty: [{
41
- type: Input
42
- }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXRhYmxlL2VjYWJzLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy10YWJsZS9lY2Ficy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFRbkQsTUFBTSxPQUFPLGNBQWM7SUFMM0I7UUFnQkUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixZQUFPLEdBQUcsS0FBSyxDQUFDO0tBa0JqQjtJQUxDLHFCQUFxQjtRQUNuQixJQUFLLElBQUksQ0FBQyxLQUFLLEVBQUc7WUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUUsT0FBTyxDQUFFLEVBQUUsTUFBTSxDQUFDO1NBQy9DO0lBQ0gsQ0FBQzs7MkdBL0JVLGNBQWM7K0ZBQWQsY0FBYywwU0FDVixRQUFRLGdEQ1Z6Qix5OUJBMEJBOzJGRGpCYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLGFBQWE7OEJBTXZCLEtBQUs7c0JBREosWUFBWTt1QkFBRSxRQUFRO2dCQUl2QixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgUGxhY2Vob2xkZXJSZWRpcmVjdFBhdGggfSBmcm9tICcuLi9lY2Ficy1lbXB0eS1wbGFjZWhvbGRlci9lY2Ficy1lbXB0eS1wbGFjZWhvbGRlci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCgge1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbICcuL2VjYWJzLXRhYmxlLmNvbXBvbmVudC5zY3NzJyBdLFxyXG59IClcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XHJcbiAgQENvbnRlbnRDaGlsZCggTWF0VGFibGUgKVxyXG4gIHRhYmxlOiBNYXRUYWJsZTxhbnk+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGhlYWRlcjogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQElucHV0KClcclxuICBwYWdpbmF0b3I6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYm9yZGVyZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaXNFbXB0eTogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIGlzRW1wdHlNZXNzYWdlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcmVkaXJlY3RQYXRoOiBQbGFjZWhvbGRlclJlZGlyZWN0UGF0aDtcclxuXHJcbiAgQElucHV0KClcclxuICBzcmNJbWFnZUVtcHR5OiBzdHJpbmc7XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIGlmICggdGhpcy50YWJsZSApIHtcclxuICAgICAgdGhpcy5pc0VtcHR5ID0gIXRoaXMudGFibGVbICdfZGF0YScgXT8ubGVuZ3RoO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cInRhYmxlLXVpIHRhYmxlLXVpLS13cmFwcGVyXCIgW25nQ2xhc3NdPVwieyAndGFibGUtdWlfX2JvcmRlcmVkJzogYm9yZGVyZWQsIGxvYWRpbmc6IGxvYWRpbmcgfVwiPlxyXG4gIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwibG9hZGluZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCIgY2xhc3M9XCJ0YWJsZS11aV9fcHJvZ3Jlc3NcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcblxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiaGVhZGVyXCIgY2xhc3M9XCJ0YWJsZS11aV9faGVhZGVyXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGlzRW1wdHlNZXNzYWdlICYmIGlzRW1wdHkpOyBlbHNlIG5vRGF0YVRlbXBsYXRlXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cInBhZ2luYXRvclwiIGNsYXNzPVwidGFibGUtdWlfX3BhZ2luYXRvclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnaW5hdG9yXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLSNGb3IgRW1wdHkgc3RhdGUgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNub0RhdGFUZW1wbGF0ZT5cclxuICAgIDxlY2Ficy1lbXB0eS1wbGFjZWhvbGRlclxyXG4gICAgICAqbmdJZj1cIiFsb2FkaW5nXCJcclxuICAgICAgW3JlZGlyZWN0UGF0aF09XCJyZWRpcmVjdFBhdGhcIlxyXG4gICAgICBbaXNFbXB0eU1lc3NhZ2VdPVwiaXNFbXB0eU1lc3NhZ2VcIlxyXG4gICAgICBbc3JjSW1hZ2VdPVwic3JjSW1hZ2VFbXB0eVwiXHJcbiAgICA+PC9lY2Ficy1lbXB0eS1wbGFjZWhvbGRlcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==