keevo-components 1.8.34 → 1.8.36

Sign up to get free protection for your applications and to get access to all the features.
Files changed (212) hide show
  1. package/README.md +24 -24
  2. package/esm2022/keevo-components.mjs +4 -4
  3. package/esm2022/lib/api/base-components/base-component-button.mjs +36 -36
  4. package/esm2022/lib/api/base-components/base-component-chart.mjs +92 -92
  5. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +298 -298
  6. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +78 -78
  7. package/esm2022/lib/api/base-components/base-component-crud.mjs +65 -65
  8. package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +31 -31
  9. package/esm2022/lib/api/base-components/base-component-dropdown.mjs +169 -169
  10. package/esm2022/lib/api/base-components/base-component-input.mjs +94 -94
  11. package/esm2022/lib/api/base-components/base-component-multi-select.mjs +130 -130
  12. package/esm2022/lib/api/base-components/base-component.mjs +51 -51
  13. package/esm2022/lib/api/components/chart/chart.config.mjs +2 -2
  14. package/esm2022/lib/api/components/chart/chart.model.mjs +2 -2
  15. package/esm2022/lib/api/components/chart/orchart.config.mjs +2 -2
  16. package/esm2022/lib/api/components/chart/orchart.item.mjs +2 -2
  17. package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +2 -2
  18. package/esm2022/lib/api/components/error/error.component.mjs +26 -26
  19. package/esm2022/lib/api/components/error/kverror.module.mjs +35 -35
  20. package/esm2022/lib/api/components/table/action-item.mjs +2 -2
  21. package/esm2022/lib/api/components/table/kv-menuitem.mjs +3 -3
  22. package/esm2022/lib/api/components/table/table-dropdown-control.mjs +2 -2
  23. package/esm2022/lib/api/components/table/table.config.column.mjs +2 -2
  24. package/esm2022/lib/api/components/table/table.config.mjs +2 -2
  25. package/esm2022/lib/api/components/table/table.paginate.mjs +9 -9
  26. package/esm2022/lib/api/components/table/tabledit.config.mjs +2 -2
  27. package/esm2022/lib/api/components/table/tableedit.config.column.mjs +2 -2
  28. package/esm2022/lib/api/helpers/component-providers.mjs +16 -16
  29. package/esm2022/lib/api/helpers/keevo-validators.mjs +72 -72
  30. package/esm2022/lib/api/helpers/translate-primeng.mjs +23 -23
  31. package/esm2022/lib/api/models/menu/menu.model.mjs +2 -2
  32. package/esm2022/lib/api/models/menu/menucompleto.model.mjs +2 -2
  33. package/esm2022/lib/api/models/menu/sistemamenu.model.mjs +2 -2
  34. package/esm2022/lib/api/modules/primeng.module.mjs +251 -251
  35. package/esm2022/lib/api/services/base.api.service.mjs +74 -74
  36. package/esm2022/lib/api/services/breadcrumbs.service.mjs +57 -57
  37. package/esm2022/lib/api/services/component.service.mjs +27 -27
  38. package/esm2022/lib/api/services/form.service.mjs +85 -85
  39. package/esm2022/lib/api/services/imagens.service.mjs +28 -28
  40. package/esm2022/lib/api/services/notification.service.mjs +67 -67
  41. package/esm2022/lib/api/services/object.service.mjs +39 -39
  42. package/esm2022/lib/avatar/avatar.component.mjs +78 -78
  43. package/esm2022/lib/avatar/kv-avatar.module.mjs +32 -32
  44. package/esm2022/lib/buttons/button-personalize/button-personalize.component.mjs +17 -17
  45. package/esm2022/lib/buttons/button-popup/button-popup.component.mjs +31 -31
  46. package/esm2022/lib/buttons/button-secondary/button-secondary.component.mjs +17 -17
  47. package/esm2022/lib/buttons/button-success/button-success.component.mjs +17 -17
  48. package/esm2022/lib/buttons/kvbutton.module.mjs +39 -39
  49. package/esm2022/lib/carousel/carousel.component.mjs +92 -92
  50. package/esm2022/lib/carousel/kv-carousel.module.mjs +28 -28
  51. package/esm2022/lib/chart/chart.component.mjs +145 -145
  52. package/esm2022/lib/chart/kvchart.module.mjs +32 -32
  53. package/esm2022/lib/directives/template/template.directive.mjs +24 -24
  54. package/esm2022/lib/inputs/check/check.component.mjs +26 -26
  55. package/esm2022/lib/inputs/dropdown/dropdown.component.mjs +37 -37
  56. package/esm2022/lib/inputs/editor/editor.component.mjs +88 -88
  57. package/esm2022/lib/inputs/input-calendar/input-calendar.component.mjs +89 -89
  58. package/esm2022/lib/inputs/input-mask/input-mask.component.mjs +29 -29
  59. package/esm2022/lib/inputs/input-number/input-number.component.mjs +59 -59
  60. package/esm2022/lib/inputs/input-password/input-password.component.mjs +33 -33
  61. package/esm2022/lib/inputs/input-text/input-text.component.mjs +21 -21
  62. package/esm2022/lib/inputs/input-text-checkbox/input-text-checkbox.component.mjs +41 -41
  63. package/esm2022/lib/inputs/input-textarea/input-textarea.component.mjs +43 -43
  64. package/esm2022/lib/inputs/input-time/input-time.component.mjs +24 -24
  65. package/esm2022/lib/inputs/kvinputs.module.mjs +108 -108
  66. package/esm2022/lib/inputs/multi-select/multi-select.component.mjs +44 -44
  67. package/esm2022/lib/inputs/radio-group/radio-group.component.mjs +53 -53
  68. package/esm2022/lib/inputs/switch/switch.component.mjs +34 -34
  69. package/esm2022/lib/keevo-components.module.mjs +144 -144
  70. package/esm2022/lib/label/label.component.mjs +14 -14
  71. package/esm2022/lib/label/label.module.mjs +23 -23
  72. package/esm2022/lib/loader/kvloader.module.mjs +28 -28
  73. package/esm2022/lib/loader/loader.component.mjs +17 -17
  74. package/esm2022/lib/loader/loader.service.mjs +29 -29
  75. package/esm2022/lib/login/kvlogin.module.mjs +47 -47
  76. package/esm2022/lib/login/login.component.mjs +52 -52
  77. package/esm2022/lib/menu/kvmenu.module.mjs +47 -43
  78. package/esm2022/lib/menu/menu.component.mjs +188 -215
  79. package/esm2022/lib/modal/kv-modal.module.mjs +31 -31
  80. package/esm2022/lib/modal/modal.component.mjs +67 -60
  81. package/esm2022/lib/orgchart/orgchart.component.mjs +100 -100
  82. package/esm2022/lib/orgchart/orgchart.module.mjs +24 -24
  83. package/esm2022/lib/page-form/kv-page-form.module.mjs +38 -38
  84. package/esm2022/lib/page-form/page-form.component.mjs +147 -147
  85. package/esm2022/lib/picklist/kvpicklist.module.mjs +32 -32
  86. package/esm2022/lib/picklist/picklist.component.mjs +48 -48
  87. package/esm2022/lib/pipes/codigofile.pipe.mjs +19 -19
  88. package/esm2022/lib/pipes/cpfcnpj.pipe.mjs +25 -25
  89. package/esm2022/lib/pipes/pipes.module.mjs +34 -34
  90. package/esm2022/lib/pipes/telefone.pipe.mjs +45 -45
  91. package/esm2022/lib/progress-bar/kv-progress-bar.module.mjs +28 -28
  92. package/esm2022/lib/progress-bar/progress-bar.component.mjs +58 -58
  93. package/esm2022/lib/table/kvtable.module.mjs +36 -36
  94. package/esm2022/lib/table/table.component.mjs +554 -554
  95. package/esm2022/lib/table-edit/table-edit.component.mjs +564 -502
  96. package/esm2022/lib/table-edit/table-edit.module.mjs +31 -31
  97. package/esm2022/lib/tree-table/kv-treetable.component.mjs +371 -371
  98. package/esm2022/lib/tree-table/kv-treetable.module.mjs +32 -32
  99. package/esm2022/lib/tree-view/kvtree-view.module.mjs +28 -28
  100. package/esm2022/lib/tree-view/tree-view.component.mjs +30 -30
  101. package/esm2022/lib/treetable/treetable.component.mjs +215 -215
  102. package/esm2022/lib/treetable/treetable.module.mjs +28 -28
  103. package/esm2022/lib/workspace/kvworkspace.module.mjs +51 -51
  104. package/esm2022/lib/workspace/workspace.component.mjs +178 -178
  105. package/esm2022/public-api.mjs +165 -165
  106. package/fesm2022/keevo-components.mjs +5744 -5697
  107. package/fesm2022/keevo-components.mjs.map +1 -1
  108. package/index.d.ts +5 -5
  109. package/lib/api/base-components/base-component-button.d.ts +14 -14
  110. package/lib/api/base-components/base-component-chart.d.ts +40 -40
  111. package/lib/api/base-components/base-component-crud-form.d.ts +145 -145
  112. package/lib/api/base-components/base-component-crud-list.d.ts +63 -63
  113. package/lib/api/base-components/base-component-crud.d.ts +36 -36
  114. package/lib/api/base-components/base-component-dropdown-external.d.ts +15 -15
  115. package/lib/api/base-components/base-component-dropdown.d.ts +44 -44
  116. package/lib/api/base-components/base-component-input.d.ts +31 -31
  117. package/lib/api/base-components/base-component-multi-select.d.ts +35 -35
  118. package/lib/api/base-components/base-component.d.ts +22 -22
  119. package/lib/api/components/chart/chart.config.d.ts +11 -11
  120. package/lib/api/components/chart/chart.model.d.ts +9 -9
  121. package/lib/api/components/chart/orchart.config.d.ts +35 -35
  122. package/lib/api/components/chart/orchart.item.d.ts +26 -26
  123. package/lib/api/components/dropdown/filtro.combo.d.ts +4 -4
  124. package/lib/api/components/error/error.component.d.ts +12 -12
  125. package/lib/api/components/error/kverror.module.d.ts +10 -10
  126. package/lib/api/components/table/action-item.d.ts +9 -8
  127. package/lib/api/components/table/kv-menuitem.d.ts +10 -10
  128. package/lib/api/components/table/table-dropdown-control.d.ts +6 -6
  129. package/lib/api/components/table/table.config.column.d.ts +25 -25
  130. package/lib/api/components/table/table.config.d.ts +19 -19
  131. package/lib/api/components/table/table.paginate.d.ts +6 -6
  132. package/lib/api/components/table/tabledit.config.d.ts +8 -6
  133. package/lib/api/components/table/tableedit.config.column.d.ts +9 -9
  134. package/lib/api/helpers/component-providers.d.ts +2 -2
  135. package/lib/api/helpers/keevo-validators.d.ts +11 -11
  136. package/lib/api/helpers/translate-primeng.d.ts +4 -4
  137. package/lib/api/models/menu/menu.model.d.ts +10 -10
  138. package/lib/api/models/menu/menucompleto.model.d.ts +6 -6
  139. package/lib/api/models/menu/sistemamenu.model.d.ts +8 -8
  140. package/lib/api/modules/primeng.module.d.ts +61 -61
  141. package/lib/api/services/base.api.service.d.ts +25 -25
  142. package/lib/api/services/breadcrumbs.service.d.ts +16 -16
  143. package/lib/api/services/component.service.d.ts +11 -11
  144. package/lib/api/services/form.service.d.ts +28 -28
  145. package/lib/api/services/imagens.service.d.ts +10 -10
  146. package/lib/api/services/notification.service.d.ts +25 -25
  147. package/lib/api/services/object.service.d.ts +9 -9
  148. package/lib/avatar/avatar.component.d.ts +22 -22
  149. package/lib/avatar/kv-avatar.module.d.ts +10 -10
  150. package/lib/buttons/button-personalize/button-personalize.component.d.ts +7 -7
  151. package/lib/buttons/button-popup/button-popup.component.d.ts +13 -13
  152. package/lib/buttons/button-secondary/button-secondary.component.d.ts +7 -7
  153. package/lib/buttons/button-success/button-success.component.d.ts +7 -7
  154. package/lib/buttons/kvbutton.module.d.ts +11 -11
  155. package/lib/carousel/carousel.component.d.ts +16 -16
  156. package/lib/carousel/kv-carousel.module.d.ts +9 -9
  157. package/lib/chart/chart.component.d.ts +56 -56
  158. package/lib/chart/kvchart.module.d.ts +10 -10
  159. package/lib/directives/template/template.directive.d.ts +11 -11
  160. package/lib/inputs/check/check.component.d.ts +11 -11
  161. package/lib/inputs/dropdown/dropdown.component.d.ts +14 -14
  162. package/lib/inputs/editor/editor.component.d.ts +36 -36
  163. package/lib/inputs/input-calendar/input-calendar.component.d.ts +27 -27
  164. package/lib/inputs/input-mask/input-mask.component.d.ts +12 -12
  165. package/lib/inputs/input-number/input-number.component.d.ts +19 -19
  166. package/lib/inputs/input-password/input-password.component.d.ts +13 -13
  167. package/lib/inputs/input-text/input-text.component.d.ts +9 -9
  168. package/lib/inputs/input-text-checkbox/input-text-checkbox.component.d.ts +16 -16
  169. package/lib/inputs/input-textarea/input-textarea.component.d.ts +16 -16
  170. package/lib/inputs/input-time/input-time.component.d.ts +10 -10
  171. package/lib/inputs/kvinputs.module.d.ts +25 -25
  172. package/lib/inputs/multi-select/multi-select.component.d.ts +15 -15
  173. package/lib/inputs/radio-group/radio-group.component.d.ts +18 -18
  174. package/lib/inputs/switch/switch.component.d.ts +14 -14
  175. package/lib/keevo-components.module.d.ts +25 -25
  176. package/lib/label/label.component.d.ts +7 -7
  177. package/lib/label/label.module.d.ts +8 -8
  178. package/lib/loader/kvloader.module.d.ts +9 -9
  179. package/lib/loader/loader.component.d.ts +8 -8
  180. package/lib/loader/loader.service.d.ts +10 -10
  181. package/lib/login/kvlogin.module.d.ts +13 -13
  182. package/lib/login/login.component.d.ts +30 -30
  183. package/lib/menu/kvmenu.module.d.ts +13 -12
  184. package/lib/menu/menu.component.d.ts +61 -73
  185. package/lib/modal/kv-modal.module.d.ts +10 -10
  186. package/lib/modal/modal.component.d.ts +20 -19
  187. package/lib/orgchart/orgchart.component.d.ts +27 -27
  188. package/lib/orgchart/orgchart.module.d.ts +9 -9
  189. package/lib/page-form/kv-page-form.module.d.ts +11 -11
  190. package/lib/page-form/page-form.component.d.ts +70 -70
  191. package/lib/picklist/kvpicklist.module.d.ts +10 -10
  192. package/lib/picklist/picklist.component.d.ts +20 -20
  193. package/lib/pipes/codigofile.pipe.d.ts +7 -7
  194. package/lib/pipes/cpfcnpj.pipe.d.ts +7 -7
  195. package/lib/pipes/pipes.module.d.ts +10 -10
  196. package/lib/pipes/telefone.pipe.d.ts +7 -7
  197. package/lib/progress-bar/kv-progress-bar.module.d.ts +9 -9
  198. package/lib/progress-bar/progress-bar.component.d.ts +67 -67
  199. package/lib/table/kvtable.module.d.ts +11 -11
  200. package/lib/table/table.component.d.ts +113 -113
  201. package/lib/table-edit/table-edit.component.d.ts +116 -109
  202. package/lib/table-edit/table-edit.module.d.ts +11 -11
  203. package/lib/tree-table/kv-treetable.component.d.ts +85 -85
  204. package/lib/tree-table/kv-treetable.module.d.ts +11 -11
  205. package/lib/tree-view/kvtree-view.module.d.ts +9 -9
  206. package/lib/tree-view/tree-view.component.d.ts +14 -14
  207. package/lib/treetable/treetable.component.d.ts +42 -42
  208. package/lib/treetable/treetable.module.d.ts +9 -9
  209. package/lib/workspace/kvworkspace.module.d.ts +14 -14
  210. package/lib/workspace/workspace.component.d.ts +46 -46
  211. package/package.json +1 -1
  212. package/public-api.d.ts +161 -161
@@ -1,169 +1,169 @@
1
- import { Component, EventEmitter, Input, Output, } from '@angular/core';
2
- import { debounceTime, of } from 'rxjs';
3
- import { BaseComponentInput } from './base-component-input';
4
- import { ObjectService } from '../services/object.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../services/component.service";
7
- import * as i2 from "primeng/dynamicdialog";
8
- export class BaseComponentDropDown extends BaseComponentInput {
9
- constructor(componentService, dialogService) {
10
- super(componentService);
11
- this.dialogService = dialogService;
12
- this.filter = true;
13
- this.lazy = false;
14
- this.showAddButton = false;
15
- this.showClear = true;
16
- this.onAddClick = new EventEmitter();
17
- this.onClick = new EventEmitter();
18
- this.onLoadCombo = new EventEmitter();
19
- this.onSelectionChange = new EventEmitter();
20
- this.onSelectionValue = new EventEmitter();
21
- this.requestComplete = new EventEmitter();
22
- this.registerOnTouched(() => { });
23
- }
24
- ngOnInit() {
25
- super.ngOnInit();
26
- this.setPlaceHolder('Selecione um valor');
27
- if (!this.lazy)
28
- this.carregarCombo();
29
- }
30
- addClick(event) {
31
- this.onAddClick.emit(event);
32
- }
33
- carregarCombo(filtro) {
34
- if (filtro) {
35
- this.carregarComboObs(this.listarCombo(filtro));
36
- }
37
- else {
38
- this.carregarComboObs(this.listar());
39
- }
40
- }
41
- carregarComboObs(obs) {
42
- if (obs) {
43
- obs
44
- .pipe(debounceTime(450))
45
- .subscribe({
46
- next: (data) => {
47
- this.options = data;
48
- this.filteredOptions = data;
49
- this.requestComplete.emit(true);
50
- },
51
- error: (error) => {
52
- console.log(error);
53
- },
54
- });
55
- }
56
- }
57
- filterOptions(field, value) {
58
- if (this.options) {
59
- let lista = ObjectService.filterObject(this.options, field, value);
60
- if (lista?.length > 0) {
61
- of(lista).subscribe((opts) => {
62
- this.filteredOptions = opts;
63
- });
64
- }
65
- else
66
- this.filteredOptions = [];
67
- }
68
- }
69
- listar() { }
70
- listarCombo(value) { }
71
- openDialog(componentType, width, height) {
72
- const ref = this.dialogService.open(componentType, {
73
- width: width || '70%',
74
- height: height,
75
- closable: false,
76
- maximizable: true,
77
- data: { popup: true },
78
- });
79
- ref.onClose.subscribe((id) => {
80
- if (id) {
81
- this.listar().subscribe((data) => {
82
- this.options = data;
83
- this.filteredOptions = data;
84
- if (id)
85
- this.formControl?.setValue(id);
86
- });
87
- }
88
- });
89
- }
90
- onInputChange(event) {
91
- this.onSelectionValue.emit(event);
92
- if (this.formControl) {
93
- const controlName = this.getName(this.formControl);
94
- if (controlName) {
95
- let currentItem = ObjectService.findObject(this.options, controlName, event.value);
96
- this.onSelectionChange.emit(currentItem);
97
- }
98
- }
99
- }
100
- onInputClick(event) {
101
- this.onClick.emit(event);
102
- }
103
- onInputFilter(event) {
104
- if (event) {
105
- if (event.filter) {
106
- if (event.filter.length > 2) {
107
- let fil = { termoPesquisa: event.filter };
108
- this.carregarCombo(fil);
109
- this.onLoadCombo.emit(fil);
110
- }
111
- }
112
- }
113
- }
114
- writeValue(value) {
115
- if (this.lazy && value) {
116
- let fil = { id: value };
117
- this.carregarCombo(fil);
118
- this.onLoadCombo.emit(fil);
119
- }
120
- this.value = value;
121
- }
122
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseComponentDropDown, deps: [{ token: i1.ComponentService }, { token: i2.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
123
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseComponentDropDown, selector: "ng-component", inputs: { filteredOptions: "filteredOptions", options: "options", optionLabel: "optionLabel", optionValue: "optionValue", optionDisabled: "optionDisabled", group: "group", optionGroupLabel: "optionGroupLabel", optionGroupChildren: "optionGroupChildren", filter: "filter", lazy: "lazy", showAddButton: "showAddButton", showClear: "showClear", widthField: "widthField" }, outputs: { onAddClick: "onAddClick", onClick: "onClick", onLoadCombo: "onLoadCombo", onSelectionChange: "onSelectionChange", onSelectionValue: "onSelectionValue", requestComplete: "requestComplete" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
124
- }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseComponentDropDown, decorators: [{
126
- type: Component,
127
- args: [{
128
- template: '',
129
- }]
130
- }], ctorParameters: function () { return [{ type: i1.ComponentService }, { type: i2.DialogService }]; }, propDecorators: { filteredOptions: [{
131
- type: Input
132
- }], options: [{
133
- type: Input
134
- }], optionLabel: [{
135
- type: Input
136
- }], optionValue: [{
137
- type: Input
138
- }], optionDisabled: [{
139
- type: Input
140
- }], group: [{
141
- type: Input
142
- }], optionGroupLabel: [{
143
- type: Input
144
- }], optionGroupChildren: [{
145
- type: Input
146
- }], filter: [{
147
- type: Input
148
- }], lazy: [{
149
- type: Input
150
- }], showAddButton: [{
151
- type: Input
152
- }], showClear: [{
153
- type: Input
154
- }], widthField: [{
155
- type: Input
156
- }], onAddClick: [{
157
- type: Output
158
- }], onClick: [{
159
- type: Output
160
- }], onLoadCombo: [{
161
- type: Output
162
- }], onSelectionChange: [{
163
- type: Output
164
- }], onSelectionValue: [{
165
- type: Output
166
- }], requestComplete: [{
167
- type: Output
168
- }] } });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1kcm9wZG93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBYyxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQU0zRCxNQUFNLE9BQWdCLHFCQUFzQixTQUFRLGtCQUF1QjtJQTBCekUsWUFDRSxnQkFBa0MsRUFDMUIsYUFBNEI7UUFFcEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGaEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFoQjdCLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDdkIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUV0QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixjQUFTLEdBQVksSUFBSSxDQUFDO1FBR3pCLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEQsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxzQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxRCxxQkFBZ0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6RCxvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBT2hFLElBQUksQ0FBQyxpQkFBaUIsQ0FB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QUN0QixJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQWlCLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7K0dBcEptQixxQkFBcUI7bUdBQXJCLHFCQUFxQixzb0JBRi9CLEVBQUU7OzRGQUVRLHFCQUFxQjtrQkFIMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYjttSUFHVSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFR5cGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGVib3VuY2VUaW1lLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudElucHV0IH0gZnJvbSAnLi9iYXNlLWNvbXBvbmVudC1pbnB1dCc7XHJcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE9iamVjdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9vYmplY3Quc2VydmljZSc7XHJcbmltcG9ydCB7IGZpbHRyb0NvbWJvIH0gZnJvbSAnLi4vY29tcG9uZW50cy9kcm9wZG93bi9maWx0cm8uY29tYm8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudERyb3BEb3duIGV4dGVuZHMgQmFzZUNvbXBvbmVudElucHV0PGFueT4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBmaWx0ZXJlZE9wdGlvbnMhOiBhbnlbXTtcclxuICBASW5wdXQoKSBvcHRpb25zITogYW55W107XHJcbiAgQElucHV0KCkgb3B0aW9uTGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgb3B0aW9uVmFsdWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgb3B0aW9uRGlzYWJsZWQhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGdyb3VwITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBvcHRpb25Hcm91cExhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9wdGlvbkdyb3VwQ2hpbGRyZW4hOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGZpbHRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgbGF6eTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzaG93QWRkQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0NsZWFyOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB3aWR0aEZpZWxkPzogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgb25BZGRDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkxvYWRDb21ibzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25TZWxlY3Rpb25WYWx1ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlcXVlc3RDb21wbGV0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgICB0aGlzLnJlZ2lzdGVyT25Ub3VjaGVkKCgpID0+IHsgfSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLnNldFBsYWNlSG9sZGVyKCdTZWxlY2lvbmUgdW0gdmFsb3InKTtcclxuXHJcbiAgICBpZiAoIXRoaXMubGF6eSkgdGhpcy5jYXJyZWdhckNvbWJvKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWRkQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uQWRkQ2xpY2suZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FycmVnYXJDb21ibyhmaWx0cm8/OiBmaWx0cm9Db21ibyk6IHZvaWQge1xyXG4gICAgaWYgKGZpbHRybykge1xyXG4gICAgICB0aGlzLmNhcnJlZ2FyQ29tYm9PYnModGhpcy5saXN0YXJDb21ibyhmaWx0cm8pKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmNhcnJlZ2FyQ29tYm9PYnModGhpcy5saXN0YXIoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY2FycmVnYXJDb21ib09icyhvYnM6IE9ic2VydmFibGU8YW55Pikge1xyXG4gICAgaWYgKG9icykge1xyXG4gICAgICBvYnNcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNDUwKSlcclxuICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnJlcXVlc3RDb21wbGV0ZS5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbHRlck9wdGlvbnMoZmllbGQ6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucykge1xyXG4gICAgICBsZXQgbGlzdGEgPSBPYmplY3RTZXJ2aWNlLmZpbHRlck9iamVjdCh0aGlzLm9wdGlvbnMsIGZpZWxkLCB2YWx1ZSk7XHJcbiAgICAgIGlmIChsaXN0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG9mKGxpc3RhKS5zdWJzY3JpYmUoKG9wdHM6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IG9wdHM7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGxpc3RhcigpOiBhbnkgeyB9XHJcbiAgcHJvdGVjdGVkIGxpc3RhckNvbWJvKHZhbHVlOiBhbnkpOiBhbnkgeyB9XHJcblxyXG4gIHByb3RlY3RlZCBvcGVuRGlhbG9nKFxyXG4gICAgY29tcG9uZW50VHlwZTogVHlwZTxhbnk+LFxyXG4gICAgd2lkdGg/OiBzdHJpbmcsXHJcbiAgICBoZWlnaHQ/OiBzdHJpbmdcclxuICApIHtcclxuICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKGNvbXBvbmVudFR5cGUsIHtcclxuICAgICAgd2lkdGg6IHdpZHRoIHx8ICc3MCUnLFxyXG4gICAgICBoZWlnaHQ6IGhlaWdodCxcclxuICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICBtYXhpbWl6YWJsZTogdHJ1ZSxcclxuICAgICAgZGF0YTogeyBwb3B1cDogdHJ1ZSB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKChpZDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpZCkge1xyXG4gICAgICAgIHRoaXMubGlzdGFyKCkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMub3B0aW9ucyA9IGRhdGE7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IGRhdGE7XHJcbiAgICAgICAgICBpZiAoaWQpIHRoaXMuZm9ybUNvbnRyb2w/LnNldFZhbHVlKGlkKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb25JbnB1dENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uU2VsZWN0aW9uVmFsdWUuZW1pdChldmVudCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcclxuICAgICAgY29uc3QgY29udHJvbE5hbWUgPSB0aGlzLmdldE5hbWUodGhpcy5mb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbCk7XHJcbiAgICAgIGlmIChjb250cm9sTmFtZSkge1xyXG4gICAgICAgIGxldCBjdXJyZW50SXRlbSA9IE9iamVjdFNlcnZpY2UuZmluZE9iamVjdChcclxuICAgICAgICAgIHRoaXMub3B0aW9ucyxcclxuICAgICAgICAgIGNvbnRyb2xOYW1lLFxyXG4gICAgICAgICAgZXZlbnQudmFsdWVcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdChjdXJyZW50SXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXRDbGljayhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2xpY2suZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0RmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICBpZiAoZXZlbnQuZmlsdGVyKSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmZpbHRlci5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgICBsZXQgZmlsID0geyB0ZXJtb1Blc3F1aXNhOiBldmVudC5maWx0ZXIgfSBhcyBmaWx0cm9Db21ibztcclxuICAgICAgICAgIHRoaXMuY2FycmVnYXJDb21ibyhmaWwpO1xyXG4gICAgICAgICAgdGhpcy5vbkxvYWRDb21iby5lbWl0KGZpbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmxhenkgJiYgdmFsdWUpIHtcclxuICAgICAgbGV0IGZpbCA9IHsgaWQ6IHZhbHVlIH0gYXMgZmlsdHJvQ29tYm87XHJcbiAgICAgIHRoaXMuY2FycmVnYXJDb21ibyhmaWwpO1xyXG4gICAgICB0aGlzLm9uTG9hZENvbWJvLmVtaXQoZmlsKTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcbn1cclxuIl19
1
+ import { Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { debounceTime, of } from 'rxjs';
3
+ import { BaseComponentInput } from './base-component-input';
4
+ import { ObjectService } from '../services/object.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../services/component.service";
7
+ import * as i2 from "primeng/dynamicdialog";
8
+ export class BaseComponentDropDown extends BaseComponentInput {
9
+ constructor(componentService, dialogService) {
10
+ super(componentService);
11
+ this.dialogService = dialogService;
12
+ this.filter = true;
13
+ this.lazy = false;
14
+ this.showAddButton = false;
15
+ this.showClear = true;
16
+ this.onAddClick = new EventEmitter();
17
+ this.onClick = new EventEmitter();
18
+ this.onLoadCombo = new EventEmitter();
19
+ this.onSelectionChange = new EventEmitter();
20
+ this.onSelectionValue = new EventEmitter();
21
+ this.requestComplete = new EventEmitter();
22
+ this.registerOnTouched(() => { });
23
+ }
24
+ ngOnInit() {
25
+ super.ngOnInit();
26
+ this.setPlaceHolder('Selecione um valor');
27
+ if (!this.lazy)
28
+ this.carregarCombo();
29
+ }
30
+ addClick(event) {
31
+ this.onAddClick.emit(event);
32
+ }
33
+ carregarCombo(filtro) {
34
+ if (filtro) {
35
+ this.carregarComboObs(this.listarCombo(filtro));
36
+ }
37
+ else {
38
+ this.carregarComboObs(this.listar());
39
+ }
40
+ }
41
+ carregarComboObs(obs) {
42
+ if (obs) {
43
+ obs
44
+ .pipe(debounceTime(450))
45
+ .subscribe({
46
+ next: (data) => {
47
+ this.options = data;
48
+ this.filteredOptions = data;
49
+ this.requestComplete.emit(true);
50
+ },
51
+ error: (error) => {
52
+ console.log(error);
53
+ },
54
+ });
55
+ }
56
+ }
57
+ filterOptions(field, value) {
58
+ if (this.options) {
59
+ let lista = ObjectService.filterObject(this.options, field, value);
60
+ if (lista?.length > 0) {
61
+ of(lista).subscribe((opts) => {
62
+ this.filteredOptions = opts;
63
+ });
64
+ }
65
+ else
66
+ this.filteredOptions = [];
67
+ }
68
+ }
69
+ listar() { }
70
+ listarCombo(value) { }
71
+ openDialog(componentType, width, height) {
72
+ const ref = this.dialogService.open(componentType, {
73
+ width: width || '70%',
74
+ height: height,
75
+ closable: false,
76
+ maximizable: true,
77
+ data: { popup: true },
78
+ });
79
+ ref.onClose.subscribe((id) => {
80
+ if (id) {
81
+ this.listar().subscribe((data) => {
82
+ this.options = data;
83
+ this.filteredOptions = data;
84
+ if (id)
85
+ this.formControl?.setValue(id);
86
+ });
87
+ }
88
+ });
89
+ }
90
+ onInputChange(event) {
91
+ this.onSelectionValue.emit(event);
92
+ if (this.formControl) {
93
+ const controlName = this.getName(this.formControl);
94
+ if (controlName) {
95
+ let currentItem = ObjectService.findObject(this.options, controlName, event.value);
96
+ this.onSelectionChange.emit(currentItem);
97
+ }
98
+ }
99
+ }
100
+ onInputClick(event) {
101
+ this.onClick.emit(event);
102
+ }
103
+ onInputFilter(event) {
104
+ if (event) {
105
+ if (event.filter) {
106
+ if (event.filter.length > 2) {
107
+ let fil = { termoPesquisa: event.filter };
108
+ this.carregarCombo(fil);
109
+ this.onLoadCombo.emit(fil);
110
+ }
111
+ }
112
+ }
113
+ }
114
+ writeValue(value) {
115
+ if (this.lazy && value) {
116
+ let fil = { id: value };
117
+ this.carregarCombo(fil);
118
+ this.onLoadCombo.emit(fil);
119
+ }
120
+ this.value = value;
121
+ }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseComponentDropDown, deps: [{ token: i1.ComponentService }, { token: i2.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
123
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseComponentDropDown, selector: "ng-component", inputs: { filteredOptions: "filteredOptions", options: "options", optionLabel: "optionLabel", optionValue: "optionValue", optionDisabled: "optionDisabled", group: "group", optionGroupLabel: "optionGroupLabel", optionGroupChildren: "optionGroupChildren", filter: "filter", lazy: "lazy", showAddButton: "showAddButton", showClear: "showClear", widthField: "widthField" }, outputs: { onAddClick: "onAddClick", onClick: "onClick", onLoadCombo: "onLoadCombo", onSelectionChange: "onSelectionChange", onSelectionValue: "onSelectionValue", requestComplete: "requestComplete" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
124
+ }
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseComponentDropDown, decorators: [{
126
+ type: Component,
127
+ args: [{
128
+ template: '',
129
+ }]
130
+ }], ctorParameters: function () { return [{ type: i1.ComponentService }, { type: i2.DialogService }]; }, propDecorators: { filteredOptions: [{
131
+ type: Input
132
+ }], options: [{
133
+ type: Input
134
+ }], optionLabel: [{
135
+ type: Input
136
+ }], optionValue: [{
137
+ type: Input
138
+ }], optionDisabled: [{
139
+ type: Input
140
+ }], group: [{
141
+ type: Input
142
+ }], optionGroupLabel: [{
143
+ type: Input
144
+ }], optionGroupChildren: [{
145
+ type: Input
146
+ }], filter: [{
147
+ type: Input
148
+ }], lazy: [{
149
+ type: Input
150
+ }], showAddButton: [{
151
+ type: Input
152
+ }], showClear: [{
153
+ type: Input
154
+ }], widthField: [{
155
+ type: Input
156
+ }], onAddClick: [{
157
+ type: Output
158
+ }], onClick: [{
159
+ type: Output
160
+ }], onLoadCombo: [{
161
+ type: Output
162
+ }], onSelectionChange: [{
163
+ type: Output
164
+ }], onSelectionValue: [{
165
+ type: Output
166
+ }], requestComplete: [{
167
+ type: Output
168
+ }] } });
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1kcm9wZG93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBYyxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQU0zRCxNQUFNLE9BQWdCLHFCQUFzQixTQUFRLGtCQUF1QjtJQTBCekUsWUFDRSxnQkFBa0MsRUFDMUIsYUFBNEI7UUFFcEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGaEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFoQjdCLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDdkIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUV0QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixjQUFTLEdBQVksSUFBSSxDQUFDO1FBR3pCLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEQsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxzQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxRCxxQkFBZ0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6RCxvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBT2hFLElBQUksQ0FBQyxpQkFBaUIsQ0FB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QUN0QixJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQWlCLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7K0dBcEptQixxQkFBcUI7bUdBQXJCLHFCQUFxQixzb0JBRi9CLEVBQUU7OzRGQUVRLHFCQUFxQjtrQkFIMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYjttSUFHVSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRlYm91bmNlVGltZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudElucHV0IH0gZnJvbSAnLi9iYXNlLWNvbXBvbmVudC1pbnB1dCc7XG5pbXBvcnQgeyBDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tcG9uZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JqZWN0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL29iamVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IGZpbHRyb0NvbWJvIH0gZnJvbSAnLi4vY29tcG9uZW50cy9kcm9wZG93bi9maWx0cm8uY29tYm8nO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50RHJvcERvd24gZXh0ZW5kcyBCYXNlQ29tcG9uZW50SW5wdXQ8YW55PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgZmlsdGVyZWRPcHRpb25zITogYW55W107XG4gIEBJbnB1dCgpIG9wdGlvbnMhOiBhbnlbXTtcbiAgQElucHV0KCkgb3B0aW9uTGFiZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9wdGlvblZhbHVlITogc3RyaW5nO1xuICBASW5wdXQoKSBvcHRpb25EaXNhYmxlZCE6IHN0cmluZztcblxuICBASW5wdXQoKSBncm91cCE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9wdGlvbkdyb3VwTGFiZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9wdGlvbkdyb3VwQ2hpbGRyZW4hOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgbGF6eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNob3dBZGRCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0NsZWFyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgd2lkdGhGaWVsZD86IHN0cmluZztcblxuICBAT3V0cHV0KCkgb25BZGRDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uTG9hZENvbWJvOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uVmFsdWU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENvbXBsZXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb21wb25lbnRTZXJ2aWNlOiBDb21wb25lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZVxuICApIHtcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcbiAgICB0aGlzLnJlZ2lzdGVyT25Ub3VjaGVkKCgpID0+IHsgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuc2V0UGxhY2VIb2xkZXIoJ1NlbGVjaW9uZSB1bSB2YWxvcicpO1xuXG4gICAgaWYgKCF0aGlzLmxhenkpIHRoaXMuY2FycmVnYXJDb21ibygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZENsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMub25BZGRDbGljay5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBjYXJyZWdhckNvbWJvKGZpbHRybz86IGZpbHRyb0NvbWJvKTogdm9pZCB7XG4gICAgaWYgKGZpbHRybykge1xuICAgICAgdGhpcy5jYXJyZWdhckNvbWJvT2JzKHRoaXMubGlzdGFyQ29tYm8oZmlsdHJvKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5jYXJyZWdhckNvbWJvT2JzKHRoaXMubGlzdGFyKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjYXJyZWdhckNvbWJvT2JzKG9iczogT2JzZXJ2YWJsZTxhbnk+KSB7XG4gICAgaWYgKG9icykge1xuICAgICAgb2JzXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg0NTApKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSBkYXRhO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBkYXRhO1xuICAgICAgICAgICAgdGhpcy5yZXF1ZXN0Q29tcGxldGUuZW1pdCh0cnVlKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXJPcHRpb25zKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XG4gICAgICBsZXQgbGlzdGEgPSBPYmplY3RTZXJ2aWNlLmZpbHRlck9iamVjdCh0aGlzLm9wdGlvbnMsIGZpZWxkLCB2YWx1ZSk7XG4gICAgICBpZiAobGlzdGE/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgb2YobGlzdGEpLnN1YnNjcmliZSgob3B0czogYW55W10pID0+IHtcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IG9wdHM7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gW107XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGxpc3RhcigpOiBhbnkgeyB9XG4gIHByb3RlY3RlZCBsaXN0YXJDb21ibyh2YWx1ZTogYW55KTogYW55IHsgfVxuXG4gIHByb3RlY3RlZCBvcGVuRGlhbG9nKFxuICAgIGNvbXBvbmVudFR5cGU6IFR5cGU8YW55PixcbiAgICB3aWR0aD86IHN0cmluZyxcbiAgICBoZWlnaHQ/OiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oY29tcG9uZW50VHlwZSwge1xuICAgICAgd2lkdGg6IHdpZHRoIHx8ICc3MCUnLFxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICBjbG9zYWJsZTogZmFsc2UsXG4gICAgICBtYXhpbWl6YWJsZTogdHJ1ZSxcbiAgICAgIGRhdGE6IHsgcG9wdXA6IHRydWUgfSxcbiAgICB9KTtcblxuICAgIHJlZi5vbkNsb3NlLnN1YnNjcmliZSgoaWQ6IGFueSkgPT4ge1xuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIHRoaXMubGlzdGFyKCkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMgPSBkYXRhO1xuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gZGF0YTtcbiAgICAgICAgICBpZiAoaWQpIHRoaXMuZm9ybUNvbnRyb2w/LnNldFZhbHVlKGlkKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25JbnB1dENoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5vblNlbGVjdGlvblZhbHVlLmVtaXQoZXZlbnQpO1xuXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xOYW1lID0gdGhpcy5nZXROYW1lKHRoaXMuZm9ybUNvbnRyb2wgYXMgRm9ybUNvbnRyb2wpO1xuICAgICAgaWYgKGNvbnRyb2xOYW1lKSB7XG4gICAgICAgIGxldCBjdXJyZW50SXRlbSA9IE9iamVjdFNlcnZpY2UuZmluZE9iamVjdChcbiAgICAgICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgY29udHJvbE5hbWUsXG4gICAgICAgICAgZXZlbnQudmFsdWVcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KGN1cnJlbnRJdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbklucHV0Q2xpY2soZXZlbnQ6IGFueSkge1xuICAgIHRoaXMub25DbGljay5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uSW5wdXRGaWx0ZXIoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgaWYgKGV2ZW50LmZpbHRlcikge1xuICAgICAgICBpZiAoZXZlbnQuZmlsdGVyLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICBsZXQgZmlsID0geyB0ZXJtb1Blc3F1aXNhOiBldmVudC5maWx0ZXIgfSBhcyBmaWx0cm9Db21ibztcbiAgICAgICAgICB0aGlzLmNhcnJlZ2FyQ29tYm8oZmlsKTtcbiAgICAgICAgICB0aGlzLm9uTG9hZENvbWJvLmVtaXQoZmlsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxhenkgJiYgdmFsdWUpIHtcbiAgICAgIGxldCBmaWwgPSB7IGlkOiB2YWx1ZSB9IGFzIGZpbHRyb0NvbWJvO1xuICAgICAgdGhpcy5jYXJyZWdhckNvbWJvKGZpbCk7XG4gICAgICB0aGlzLm9uTG9hZENvbWJvLmVtaXQoZmlsKTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG4iXX0=
@@ -1,94 +1,94 @@
1
- import { Component, ContentChildren, EventEmitter, Input, Output, ViewChildren } from "@angular/core";
2
- import { BaseComponent } from './base-component';
3
- import { ErrorComponent } from '../components/error/error.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../services/component.service";
6
- export class BaseComponentInput extends BaseComponent {
7
- constructor(componentService) {
8
- super();
9
- this.componentService = componentService;
10
- this.hasError = false;
11
- this.placeholder = '';
12
- this.onBlur = new EventEmitter();
13
- this.onInput = new EventEmitter();
14
- this.onClose = new EventEmitter();
15
- }
16
- get baseInputClass() {
17
- return `${this.hasError ? 'ng-invalid ng-dirty' : ''} !important`;
18
- }
19
- erroMessage() {
20
- if (!this.formControl?.errors)
21
- return;
22
- let message = '';
23
- if (this.formControl.errors) {
24
- const objErrors = this.formControl.errors;
25
- if (objErrors.erroMessage)
26
- message = objErrors.erroMessage;
27
- }
28
- return message;
29
- }
30
- getName(control) {
31
- return Object.entries(control.parent?.controls ?? []).find(([_, value]) => value === control)?.[0] ?? null;
32
- }
33
- hasControlError() {
34
- if (!this.formControl)
35
- return false;
36
- return (this.formControl.dirty || this.formControl.touched) && this.formControl.errors !== null;
37
- }
38
- ngAfterViewInit() {
39
- this.viewErrors.forEach(c => {
40
- c.emitError.subscribe(res => {
41
- this.hasError = res;
42
- this.componentService.changeDetectorRef.detectChanges();
43
- });
44
- });
45
- }
46
- ngAfterContentInit() {
47
- this.contentErrors.forEach(c => {
48
- c.emitError.subscribe(res => {
49
- this.hasError = res;
50
- });
51
- });
52
- }
53
- ngOnInit() {
54
- this.formControl = this.componentService.getFormControl();
55
- }
56
- onInputBlur(event) {
57
- if (this.onTouched)
58
- this.onTouched();
59
- this.onBlur.emit(event);
60
- }
61
- onInputClose(event) {
62
- this.onClose.emit(event);
63
- }
64
- onInputInput(event) {
65
- this.onInput.emit(event);
66
- }
67
- setPlaceHolder(p) {
68
- if (!this.placeholder)
69
- this.placeholder = p;
70
- }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseComponentInput, deps: [{ token: i1.ComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseComponentInput, selector: "ng-component", inputs: { placeholder: "placeholder" }, outputs: { onBlur: "onBlur", onInput: "onInput", onClose: "onClose" }, queries: [{ propertyName: "contentErrors", predicate: ErrorComponent }], viewQueries: [{ propertyName: "viewErrors", predicate: ErrorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
73
- }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseComponentInput, decorators: [{
75
- type: Component,
76
- args: [{
77
- template: '',
78
- }]
79
- }], ctorParameters: function () { return [{ type: i1.ComponentService }]; }, propDecorators: { placeholder: [{
80
- type: Input
81
- }], onBlur: [{
82
- type: Output
83
- }], onInput: [{
84
- type: Output
85
- }], onClose: [{
86
- type: Output
87
- }], viewErrors: [{
88
- type: ViewChildren,
89
- args: [ErrorComponent]
90
- }], contentErrors: [{
91
- type: ContentChildren,
92
- args: [ErrorComponent]
93
- }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBS3JFLE1BQU0sT0FBZ0Isa0JBQXNCLFNBQVEsYUFBZ0I7SUFjbEUsWUFBK0IsZ0JBQWtDO1FBQy9ELEtBQUssRUFBRSxDQUFDO1FBRHFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFYdkQsYUFBUSxHQUF3QixLQUFLLENBQUM7UUFFdkMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFeEIsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9DLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFPMUQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDO0lBQ3BFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTTtZQUFFLE9BQU87UUFFdEMsSUFBSSxPQUFPLEdBQVcsRUFBRSxDQUFDO1FBRXpCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFD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ImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lcnJvci9lcnJvci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudElucHV0PFQ+IGV4dGVuZHMgQmFzZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgfCB1bmRlZmluZWQ7XHJcbiAgcHJvdGVjdGVkIGhhc0Vycm9yOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQE91dHB1dCgpIG9uQmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uSW5wdXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihFcnJvckNvbXBvbmVudCkgdmlld0Vycm9ycyE6IFF1ZXJ5TGlzdDxFcnJvckNvbXBvbmVudD47XHJcbiAgQENvbnRlbnRDaGlsZHJlbihFcnJvckNvbXBvbmVudCkgY29udGVudEVycm9ycyE6IFF1ZXJ5TGlzdDxFcnJvckNvbXBvbmVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBjb21wb25lbnRTZXJ2aWNlOiBDb21wb25lbnRTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBiYXNlSW5wdXRDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuaGFzRXJyb3IgPyAnbmctaW52YWxpZCBuZy1kaXJ0eScgOiAnJ30gIWltcG9ydGFudGA7XHJcbiAgfVxyXG5cclxuICBlcnJvTWVzc2FnZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKCF0aGlzLmZvcm1Db250cm9sPy5lcnJvcnMpIHJldHVybjtcclxuXHJcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIGNvbnN0IG9iakVycm9ycyA9IHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzIGFzIGFueTtcclxuICAgICAgaWYgKG9iakVycm9ycy5lcnJvTWVzc2FnZSkgbWVzc2FnZSA9IG9iakVycm9ycy5lcnJvTWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbWVzc2FnZTtcclxuICB9XHJcblxyXG4gIGdldE5hbWUoY29udHJvbDogRm9ybUNvbnRyb2wpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjb250cm9sLnBhcmVudD8uY29udHJvbHMgPz8gW10pLmZpbmQoKFtfLCB2YWx1ZV0pID0+IHZhbHVlID09PSBjb250cm9sKT8uWzBdID8/IG51bGw7XHJcbiAgfVxyXG5cclxuICBoYXNDb250cm9sRXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiAodGhpcy5mb3JtQ29udHJvbC5kaXJ0eSB8fCB0aGlzLmZvcm1Db250cm9sLnRvdWNoZWQpICYmIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3RXJyb3JzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGMuZW1pdEVycm9yLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSByZXM7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIHRoaXMuY29udGVudEVycm9ycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBjLmVtaXRFcnJvci5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICB0aGlzLmhhc0Vycm9yID0gcmVzO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdldEZvcm1Db250cm9sKCk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0Qmx1cihldmVudDogRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLm9uVG91Y2hlZClcclxuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcclxuXHJcbiAgICB0aGlzLm9uQmx1ci5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRDbG9zZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0SW5wdXQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uSW5wdXQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc2V0UGxhY2VIb2xkZXIocDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHRoaXMucGxhY2Vob2xkZXIgPSBwO1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Component, ContentChildren, EventEmitter, Input, Output, ViewChildren } from "@angular/core";
2
+ import { BaseComponent } from './base-component';
3
+ import { ErrorComponent } from '../components/error/error.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../services/component.service";
6
+ export class BaseComponentInput extends BaseComponent {
7
+ constructor(componentService) {
8
+ super();
9
+ this.componentService = componentService;
10
+ this.hasError = false;
11
+ this.placeholder = '';
12
+ this.onBlur = new EventEmitter();
13
+ this.onInput = new EventEmitter();
14
+ this.onClose = new EventEmitter();
15
+ }
16
+ get baseInputClass() {
17
+ return `${this.hasError ? 'ng-invalid ng-dirty' : ''} !important`;
18
+ }
19
+ erroMessage() {
20
+ if (!this.formControl?.errors)
21
+ return;
22
+ let message = '';
23
+ if (this.formControl.errors) {
24
+ const objErrors = this.formControl.errors;
25
+ if (objErrors.erroMessage)
26
+ message = objErrors.erroMessage;
27
+ }
28
+ return message;
29
+ }
30
+ getName(control) {
31
+ return Object.entries(control.parent?.controls ?? []).find(([_, value]) => value === control)?.[0] ?? null;
32
+ }
33
+ hasControlError() {
34
+ if (!this.formControl)
35
+ return false;
36
+ return (this.formControl.dirty || this.formControl.touched) && this.formControl.errors !== null;
37
+ }
38
+ ngAfterViewInit() {
39
+ this.viewErrors.forEach(c => {
40
+ c.emitError.subscribe(res => {
41
+ this.hasError = res;
42
+ this.componentService.changeDetectorRef.detectChanges();
43
+ });
44
+ });
45
+ }
46
+ ngAfterContentInit() {
47
+ this.contentErrors.forEach(c => {
48
+ c.emitError.subscribe(res => {
49
+ this.hasError = res;
50
+ });
51
+ });
52
+ }
53
+ ngOnInit() {
54
+ this.formControl = this.componentService.getFormControl();
55
+ }
56
+ onInputBlur(event) {
57
+ if (this.onTouched)
58
+ this.onTouched();
59
+ this.onBlur.emit(event);
60
+ }
61
+ onInputClose(event) {
62
+ this.onClose.emit(event);
63
+ }
64
+ onInputInput(event) {
65
+ this.onInput.emit(event);
66
+ }
67
+ setPlaceHolder(p) {
68
+ if (!this.placeholder)
69
+ this.placeholder = p;
70
+ }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseComponentInput, deps: [{ token: i1.ComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseComponentInput, selector: "ng-component", inputs: { placeholder: "placeholder" }, outputs: { onBlur: "onBlur", onInput: "onInput", onClose: "onClose" }, queries: [{ propertyName: "contentErrors", predicate: ErrorComponent }], viewQueries: [{ propertyName: "viewErrors", predicate: ErrorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseComponentInput, decorators: [{
75
+ type: Component,
76
+ args: [{
77
+ template: '',
78
+ }]
79
+ }], ctorParameters: function () { return [{ type: i1.ComponentService }]; }, propDecorators: { placeholder: [{
80
+ type: Input
81
+ }], onBlur: [{
82
+ type: Output
83
+ }], onInput: [{
84
+ type: Output
85
+ }], onClose: [{
86
+ type: Output
87
+ }], viewErrors: [{
88
+ type: ViewChildren,
89
+ args: [ErrorComponent]
90
+ }], contentErrors: [{
91
+ type: ContentChildren,
92
+ args: [ErrorComponent]
93
+ }] } });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBS3JFLE1BQU0sT0FBZ0Isa0JBQXNCLFNBQVEsYUFBZ0I7SUFjbEUsWUFBK0IsZ0JBQWtDO1FBQy9ELEtBQUssRUFBRSxDQUFDO1FBRHFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFYdkQsYUFBUSxHQUF3QixLQUFLLENBQUM7UUFFdkMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFeEIsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9DLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFPMUQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDO0lBQ3BFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTTtZQUFFLE9BQU87UUFFdEMsSUFBSSxPQUFPLEdBQVcsRUFBRSxDQUFDO1FBRXpCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFD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ImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcblxuaW1wb3J0IHsgQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lcnJvci9lcnJvci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50SW5wdXQ8VD4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBwdWJsaWMgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgaGFzRXJyb3I6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgQE91dHB1dCgpIG9uQmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbklucHV0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oRXJyb3JDb21wb25lbnQpIHZpZXdFcnJvcnMhOiBRdWVyeUxpc3Q8RXJyb3JDb21wb25lbnQ+O1xuICBAQ29udGVudENoaWxkcmVuKEVycm9yQ29tcG9uZW50KSBjb250ZW50RXJyb3JzITogUXVlcnlMaXN0PEVycm9yQ29tcG9uZW50PjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJhc2VJbnB1dENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaGFzRXJyb3IgPyAnbmctaW52YWxpZCBuZy1kaXJ0eScgOiAnJ30gIWltcG9ydGFudGA7XG4gIH1cblxuICBlcnJvTWVzc2FnZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5mb3JtQ29udHJvbD8uZXJyb3JzKSByZXR1cm47XG5cbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbC5lcnJvcnMpIHtcbiAgICAgIGNvbnN0IG9iakVycm9ycyA9IHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzIGFzIGFueTtcbiAgICAgIGlmIChvYmpFcnJvcnMuZXJyb01lc3NhZ2UpIG1lc3NhZ2UgPSBvYmpFcnJvcnMuZXJyb01lc3NhZ2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH1cblxuICBnZXROYW1lKGNvbnRyb2w6IEZvcm1Db250cm9sKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNvbnRyb2wucGFyZW50Py5jb250cm9scyA/PyBbXSkuZmluZCgoW18sIHZhbHVlXSkgPT4gdmFsdWUgPT09IGNvbnRyb2wpPy5bMF0gPz8gbnVsbDtcbiAgfVxuXG4gIGhhc0NvbnRyb2xFcnJvcigpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gKHRoaXMuZm9ybUNvbnRyb2wuZGlydHkgfHwgdGhpcy5mb3JtQ29udHJvbC50b3VjaGVkKSAmJiB0aGlzLmZvcm1Db250cm9sLmVycm9ycyAhPT0gbnVsbDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdFcnJvcnMuZm9yRWFjaChjID0+IHtcbiAgICAgIGMuZW1pdEVycm9yLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLmhhc0Vycm9yID0gcmVzO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5jb250ZW50RXJyb3JzLmZvckVhY2goYyA9PiB7XG4gICAgICBjLmVtaXRFcnJvci5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5oYXNFcnJvciA9IHJlcztcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IHRoaXMuY29tcG9uZW50U2VydmljZS5nZXRGb3JtQ29udHJvbCgpO1xuICB9XG5cbiAgb25JbnB1dEJsdXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkKVxuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcblxuICAgIHRoaXMub25CbHVyLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25JbnB1dENsb3NlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdChldmVudCk7XG4gIH1cblxuICBvbklucHV0SW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5vbklucHV0LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFBsYWNlSG9sZGVyKHA6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikgdGhpcy5wbGFjZWhvbGRlciA9IHA7XG4gIH1cbn1cbiJdfQ==