info-library 2.10.87 → 2.14.0

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 (176) hide show
  1. package/controls/alert/alert.component.d.ts +3 -0
  2. package/controls/autocomplete/autocomplete.component.d.ts +5 -2
  3. package/controls/big-checkbox/big-checkbox.component.d.ts +3 -0
  4. package/controls/card/card.component.d.ts +3 -0
  5. package/controls/card-menu/card-menu.component.d.ts +3 -0
  6. package/controls/checkbox/checkbox.component.d.ts +3 -0
  7. package/controls/chips/chips.component.d.ts +3 -0
  8. package/controls/date/date.component.d.ts +3 -0
  9. package/controls/date-month/date-month.component.d.ts +3 -0
  10. package/controls/editor/editor.component.d.ts +3 -0
  11. package/controls/grid/grid.component.d.ts +5 -0
  12. package/controls/input/input.component.d.ts +3 -0
  13. package/controls/input-list/input-list.component.d.ts +3 -0
  14. package/controls/list-checkbox/list-checkbox.component.d.ts +3 -0
  15. package/controls/message/message.component.d.ts +3 -0
  16. package/controls/multi-select/multi-select.component.d.ts +3 -0
  17. package/controls/paginator/paginator.component.d.ts +3 -0
  18. package/controls/select/select.component.d.ts +3 -0
  19. package/controls/timeline/timeline.component.d.ts +3 -0
  20. package/directives/mask.directive.d.ts +3 -0
  21. package/directives/unmask.directive.d.ts +3 -0
  22. package/esm2020/controls/alert/alert.component.mjs +74 -0
  23. package/esm2020/controls/autocomplete/autocomplete.component.mjs +258 -0
  24. package/esm2020/controls/big-checkbox/big-checkbox.component.mjs +298 -0
  25. package/esm2020/controls/card/card.component.mjs +77 -0
  26. package/esm2020/controls/card-menu/card-menu.component.mjs +145 -0
  27. package/esm2020/controls/checkbox/checkbox.component.mjs +93 -0
  28. package/esm2020/controls/chips/chips.component.mjs +113 -0
  29. package/esm2020/controls/date/date.component.mjs +141 -0
  30. package/esm2020/controls/date-month/date-month.component.mjs +148 -0
  31. package/esm2020/controls/editor/editor.component.mjs +135 -0
  32. package/esm2020/controls/grid/grid.component.mjs +1800 -0
  33. package/esm2020/controls/input/input.component.mjs +314 -0
  34. package/esm2020/controls/input-list/input-list.component.mjs +258 -0
  35. package/esm2020/controls/list-checkbox/list-checkbox.component.mjs +238 -0
  36. package/esm2020/controls/message/message.component.mjs +50 -0
  37. package/esm2020/controls/multi-select/multi-select.component.mjs +161 -0
  38. package/esm2020/controls/paginator/paginator.component.mjs +178 -0
  39. package/esm2020/controls/select/select.component.mjs +180 -0
  40. package/esm2020/controls/timeline/timeline.component.mjs +117 -0
  41. package/esm2020/directives/mask.directive.mjs +125 -0
  42. package/esm2020/directives/unmask.directive.mjs +28 -0
  43. package/esm2020/enum/dialog-buttons.enum.mjs +9 -0
  44. package/esm2020/enum/index.mjs +4 -0
  45. package/esm2020/enum/modal-action.enum.mjs +12 -0
  46. package/esm2020/enum/page-action.enum.mjs +10 -0
  47. package/esm2020/global-config.mjs +4 -0
  48. package/esm2020/info-library.mjs +5 -0
  49. package/esm2020/info-library.module.mjs +278 -0
  50. package/esm2020/layouts/dialog/dialog.component.mjs +188 -0
  51. package/esm2020/layouts/loading/loading.component.mjs +42 -0
  52. package/esm2020/layouts/main/main.component.mjs +276 -0
  53. package/esm2020/layouts/modal/modal.component.mjs +258 -0
  54. package/esm2020/layouts/pagebar/pagebar.component.mjs +404 -0
  55. package/esm2020/layouts/sidebar/sidebar.component.mjs +395 -0
  56. package/esm2020/layouts/topbar/topbar.component.mjs +863 -0
  57. package/esm2020/layouts/topmenu/topmenu.component.mjs +165 -0
  58. package/esm2020/model/app-config.model.mjs +14 -0
  59. package/esm2020/model/data-access.model.mjs +35 -0
  60. package/esm2020/model/dialog-result.model.mjs +8 -0
  61. package/esm2020/model/dialog.model.mjs +16 -0
  62. package/esm2020/model/form-prop.model.mjs +35 -0
  63. package/esm2020/model/grid-button.model.mjs +21 -0
  64. package/esm2020/model/index.mjs +15 -0
  65. package/esm2020/model/last-search.model.mjs +9 -0
  66. package/esm2020/model/login.model.mjs +9 -0
  67. package/esm2020/model/method-grid-button.model.mjs +9 -0
  68. package/esm2020/model/notification.model.mjs +9 -0
  69. package/esm2020/model/pagebar-buttons.model.mjs +15 -0
  70. package/esm2020/model/permission.model.mjs +3 -0
  71. package/esm2020/model/platform.model.mjs +21 -0
  72. package/esm2020/model/session.model.mjs +8 -0
  73. package/esm2020/pipe/index.mjs +3 -0
  74. package/esm2020/pipe/mask.pipe.mjs +34 -0
  75. package/esm2020/pipe/translate.pipe.mjs +26 -0
  76. package/esm2020/public_api.mjs +36 -0
  77. package/esm2020/service/authentication.service.mjs +358 -0
  78. package/esm2020/service/configuration.service.mjs +59 -0
  79. package/esm2020/service/data.service.mjs +112 -0
  80. package/esm2020/service/index.mjs +6 -0
  81. package/esm2020/service/theme.service.mjs +79 -0
  82. package/esm2020/service/translate.service.mjs +53 -0
  83. package/esm2020/utils/utilities.mjs +142 -0
  84. package/fesm2015/info-library.mjs +9326 -0
  85. package/fesm2015/info-library.mjs.map +1 -0
  86. package/fesm2020/info-library.mjs +8474 -0
  87. package/fesm2020/info-library.mjs.map +1 -0
  88. package/index.d.ts +5 -0
  89. package/info-library.module.d.ts +58 -0
  90. package/layouts/dialog/dialog.component.d.ts +5 -0
  91. package/layouts/loading/loading.component.d.ts +3 -0
  92. package/layouts/main/main.component.d.ts +6 -0
  93. package/layouts/modal/modal.component.d.ts +3 -0
  94. package/layouts/pagebar/pagebar.component.d.ts +5 -0
  95. package/layouts/sidebar/sidebar.component.d.ts +4 -1
  96. package/layouts/topbar/topbar.component.d.ts +4 -1
  97. package/layouts/topmenu/topmenu.component.d.ts +3 -0
  98. package/package.json +28 -13
  99. package/pipe/mask.pipe.d.ts +3 -0
  100. package/pipe/translate.pipe.d.ts +3 -0
  101. package/service/authentication.service.d.ts +5 -0
  102. package/service/configuration.service.d.ts +3 -0
  103. package/service/data.service.d.ts +3 -0
  104. package/service/theme.service.d.ts +3 -0
  105. package/service/translate.service.d.ts +3 -0
  106. package/utils/utilities.d.ts +3 -0
  107. package/bundles/info-library.umd.js +0 -9740
  108. package/bundles/info-library.umd.js.map +0 -1
  109. package/bundles/info-library.umd.min.js +0 -2
  110. package/bundles/info-library.umd.min.js.map +0 -1
  111. package/esm2015/controls/alert/alert.component.js +0 -43
  112. package/esm2015/controls/autocomplete/autocomplete.component.js +0 -386
  113. package/esm2015/controls/big-checkbox/big-checkbox.component.js +0 -282
  114. package/esm2015/controls/card/card.component.js +0 -64
  115. package/esm2015/controls/card-menu/card-menu.component.js +0 -90
  116. package/esm2015/controls/checkbox/checkbox.component.js +0 -130
  117. package/esm2015/controls/chips/chips.component.js +0 -124
  118. package/esm2015/controls/date/date.component.js +0 -167
  119. package/esm2015/controls/date-month/date-month.component.js +0 -181
  120. package/esm2015/controls/editor/editor.component.js +0 -237
  121. package/esm2015/controls/grid/grid.component.js +0 -1391
  122. package/esm2015/controls/input/input.component.js +0 -196
  123. package/esm2015/controls/input-list/input-list.component.js +0 -160
  124. package/esm2015/controls/list-checkbox/list-checkbox.component.js +0 -151
  125. package/esm2015/controls/message/message.component.js +0 -47
  126. package/esm2015/controls/multi-select/multi-select.component.js +0 -213
  127. package/esm2015/controls/paginator/paginator.component.js +0 -151
  128. package/esm2015/controls/select/select.component.js +0 -231
  129. package/esm2015/controls/timeline/timeline.component.js +0 -73
  130. package/esm2015/directives/mask.directive.js +0 -202
  131. package/esm2015/directives/unmask.directive.js +0 -51
  132. package/esm2015/enum/dialog-buttons.enum.js +0 -20
  133. package/esm2015/enum/index.js +0 -9
  134. package/esm2015/enum/modal-action.enum.js +0 -26
  135. package/esm2015/enum/page-action.enum.js +0 -22
  136. package/esm2015/global-config.js +0 -11
  137. package/esm2015/info-library.js +0 -27
  138. package/esm2015/info-library.module.js +0 -174
  139. package/esm2015/layouts/dialog/dialog.component.js +0 -173
  140. package/esm2015/layouts/loading/loading.component.js +0 -42
  141. package/esm2015/layouts/main/main.component.js +0 -312
  142. package/esm2015/layouts/modal/modal.component.js +0 -232
  143. package/esm2015/layouts/pagebar/pagebar.component.js +0 -286
  144. package/esm2015/layouts/sidebar/sidebar.component.js +0 -231
  145. package/esm2015/layouts/topbar/topbar.component.js +0 -413
  146. package/esm2015/layouts/topmenu/topmenu.component.js +0 -181
  147. package/esm2015/model/app-config.model.js +0 -39
  148. package/esm2015/model/data-access.model.js +0 -65
  149. package/esm2015/model/dialog-result.model.js +0 -23
  150. package/esm2015/model/dialog.model.js +0 -47
  151. package/esm2015/model/form-prop.model.js +0 -61
  152. package/esm2015/model/grid-button.model.js +0 -62
  153. package/esm2015/model/index.js +0 -20
  154. package/esm2015/model/last-search.model.js +0 -24
  155. package/esm2015/model/login.model.js +0 -27
  156. package/esm2015/model/method-grid-button.model.js +0 -27
  157. package/esm2015/model/notification.model.js +0 -34
  158. package/esm2015/model/pagebar-buttons.model.js +0 -39
  159. package/esm2015/model/permission.model.js +0 -16
  160. package/esm2015/model/platform.model.js +0 -56
  161. package/esm2015/model/session.model.js +0 -53
  162. package/esm2015/pipe/index.js +0 -8
  163. package/esm2015/pipe/mask.pipe.js +0 -47
  164. package/esm2015/pipe/translate.pipe.js +0 -45
  165. package/esm2015/public_api.js +0 -41
  166. package/esm2015/service/authentication.service.js +0 -732
  167. package/esm2015/service/configuration.service.js +0 -107
  168. package/esm2015/service/data.service.js +0 -292
  169. package/esm2015/service/index.js +0 -11
  170. package/esm2015/service/theme.service.js +0 -133
  171. package/esm2015/service/translate.service.js +0 -105
  172. package/esm2015/utils/utilities.js +0 -256
  173. package/fesm2015/info-library.js +0 -8792
  174. package/fesm2015/info-library.js.map +0 -1
  175. package/info-library.d.ts +0 -21
  176. package/info-library.metadata.json +0 -1
@@ -0,0 +1,258 @@
1
+ import { Component, Input, forwardRef, Output, EventEmitter } from "@angular/core";
2
+ import { UntypedFormControl, NG_VALUE_ACCESSOR } from "@angular/forms";
3
+ import { debounceTime, switchMap, distinctUntilChanged } from 'rxjs/operators';
4
+ import { InfoDataService } from "../../service/data.service";
5
+ import { Observable } from "rxjs";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../service/data.service";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "@angular/forms";
10
+ import * as i4 from "@angular/material/icon";
11
+ import * as i5 from "@angular/material/form-field";
12
+ import * as i6 from "@angular/material/input";
13
+ import * as i7 from "@angular/material/core";
14
+ import * as i8 from "@angular/material/progress-bar";
15
+ import * as i9 from "@angular/material/autocomplete";
16
+ import * as i10 from "../../pipe/translate.pipe";
17
+ function InfoAutoCompleteComponent_mat_option_6_Template(rf, ctx) { if (rf & 1) {
18
+ const _r6 = i0.ɵɵgetCurrentView();
19
+ i0.ɵɵelementStart(0, "mat-option", 8);
20
+ i0.ɵɵlistener("onSelectionChange", function InfoAutoCompleteComponent_mat_option_6_Template_mat_option_onSelectionChange_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const option_r4 = restoredCtx.$implicit; const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.writeValue(option_r4.Id)); });
21
+ i0.ɵɵelementEnd();
22
+ } if (rf & 2) {
23
+ const option_r4 = ctx.$implicit;
24
+ i0.ɵɵproperty("value", option_r4)("innerHTML", option_r4.Nome, i0.ɵɵsanitizeHtml);
25
+ } }
26
+ function InfoAutoCompleteComponent_mat_progress_bar_10_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelement(0, "mat-progress-bar", 9);
28
+ } }
29
+ export class InfoAutoCompleteComponent {
30
+ constructor(_dataAcess) {
31
+ this._dataAcess = _dataAcess;
32
+ this.control = new UntypedFormControl();
33
+ this.placeholder = '';
34
+ this.name = '';
35
+ this.required = false;
36
+ this.selectfirst = false;
37
+ this.disablednoregisters = false;
38
+ this.getdataonchange = false;
39
+ this.getdataonchangetime = 500;
40
+ this.api = null;
41
+ this.method = 'getchavevalor';
42
+ this.maxlist = 10;
43
+ this.startwith = false;
44
+ this.minchar = 1;
45
+ this.onselecteditem = new EventEmitter();
46
+ this.selectedValue = null;
47
+ this.initialized = false;
48
+ this._loading = false;
49
+ this._params = null;
50
+ this._disabled = null;
51
+ this._data = [];
52
+ }
53
+ get loading() {
54
+ return this._loading;
55
+ }
56
+ set loading(value) {
57
+ this._loading = value;
58
+ if (this._disabled == null)
59
+ this._disabled = false;
60
+ else if (this._disabled.toString() == '')
61
+ this._disabled = true;
62
+ if (this._disabled == false)
63
+ this.setDisabledState(this.loading);
64
+ }
65
+ get params() {
66
+ return this._params;
67
+ }
68
+ set params(value) {
69
+ this._params = value;
70
+ if (this.initialized)
71
+ this.getData().subscribe(a => { this.data = a.data; this.loading = false; });
72
+ }
73
+ set disabled(value) {
74
+ if (this._disabled == null)
75
+ this._disabled = value;
76
+ if (value)
77
+ this.control.disable();
78
+ else
79
+ this.control.enable();
80
+ }
81
+ get data() {
82
+ return this._data;
83
+ }
84
+ set data(value) {
85
+ this._data = value;
86
+ if (this.getdataonchange)
87
+ return;
88
+ setTimeout(() => {
89
+ if (this.selectedValue != null)
90
+ if ((this._data == null || (this._data != null && this._data.length == 0)) && !this.loading) {
91
+ this.writeValue(null);
92
+ this.selectedValue = null;
93
+ }
94
+ else
95
+ this.writeValue(this.selectedValue.Id == null ? this.selectedValue : this.selectedValue.Id);
96
+ else if (this.selectfirst && this.data != null && this.data.length > 0)
97
+ this.writeValue(this.data[0].Id);
98
+ if (this.disablednoregisters)
99
+ this.setDisabledState((this.data == null || this.data.length == 0));
100
+ }, 1000);
101
+ }
102
+ ngOnInit() {
103
+ if (this.minchar == null || this.minchar < 0)
104
+ this.minchar = 1;
105
+ this.name = this.placeholder.replace(/ /g, '') + Math.floor(Math.random() * 1000).toString();
106
+ if (!this.getdataonchange) {
107
+ this.getData().subscribe(a => { this.data = a.data; this.loading = false; });
108
+ this.control.valueChanges.subscribe(value => { this.options = this.filter(value); });
109
+ }
110
+ else {
111
+ this.control.valueChanges.pipe(debounceTime(this.getdataonchangetime), distinctUntilChanged(), switchMap(value => this.getData(value))).subscribe(a => this.data = this.options = a.data);
112
+ }
113
+ }
114
+ filter(value) {
115
+ if (value == null || value.length < this.minchar)
116
+ return [];
117
+ let filterValue = value.Nome == null ? value.toString().toLowerCase() : value.Nome;
118
+ if (this.startwith)
119
+ return this.data.filter(option => option.Nome.toLowerCase().indexOf(filterValue) === 0 || (option.Aux == null ? "" : option.Aux.toLowerCase() == filterValue)).slice(0, this.maxlist);
120
+ else
121
+ return this.data.filter(option => option.Nome.toLowerCase().indexOf(filterValue) > -1 || (option.Aux == null ? "" : option.Aux.toLowerCase().indexOf(filterValue) > -1)).slice(0, this.maxlist);
122
+ }
123
+ getData(value = null) {
124
+ this.initialized = true;
125
+ if (this.api == null || this.api == '')
126
+ return new Observable();
127
+ this.loading = !this.getdataonchange;
128
+ this.data = [];
129
+ let parameters = this.params || '';
130
+ if (this.getdataonchange) {
131
+ if (value == null || value == '')
132
+ return new Observable();
133
+ if (parameters != null && parameters != '')
134
+ parameters += '&';
135
+ parameters += `nome=${value.Nome == null ? value.toString().toLowerCase() : value.Nome}&take=${this.maxlist}`;
136
+ let model = parameters.split("&").map(c => ({ [c.split("=")[0].charAt(0).toUpperCase() + c.split("=")[0].substring(1)]: c.split("=")[1] })).reduce((a, b) => ({ ...a, ...b }));
137
+ return this._dataAcess.post(this.api, model, this.method);
138
+ }
139
+ return this._dataAcess.get(this.api, this.method, parameters);
140
+ }
141
+ onBlur(value) {
142
+ setTimeout(() => {
143
+ if (this.selectedValue != null && this.selectedValue.Id != null)
144
+ return;
145
+ if (!value && this.selectedValue != null && this.selectedValue.trim() == '')
146
+ this.writeValue(null);
147
+ else {
148
+ let first = this.filter(value);
149
+ if (first != null && first.length > 0)
150
+ this.writeValue(first[0].Id);
151
+ else
152
+ this.writeValue(null);
153
+ }
154
+ }, 300);
155
+ }
156
+ onFocus(value) {
157
+ if (this.minchar != null && this.minchar == 0 && (value == null || value == ''))
158
+ setTimeout(() => { this.control.setValue(''); }, 200);
159
+ }
160
+ displayFn(model) {
161
+ if (model == null || model.Nome == null)
162
+ return '';
163
+ let indexSmall = model.Nome.indexOf('<small');
164
+ return indexSmall > -1 ? model.Nome.substring(0, indexSmall).trim() : model.Nome;
165
+ }
166
+ writeValue(value) {
167
+ let obj = this.data.find(r => r.Id == value);
168
+ this.control.setValue(obj);
169
+ if (value != null && obj == null)
170
+ this.selectedValue = value;
171
+ if (this.onChange != null)
172
+ this.onChange(value);
173
+ if (this.onselecteditem != null)
174
+ this.onselecteditem.emit(this.data == null ? null : this.data.find(r => r.Id == value));
175
+ }
176
+ registerOnChange(fn) {
177
+ this.onChange = fn;
178
+ }
179
+ registerOnTouched(fn) {
180
+ this.onTouched = fn;
181
+ }
182
+ setDisabledState(isDisabled) {
183
+ this.disabled = this.disablednoregisters && (this.data == null || this.data.length == 0) ? true : isDisabled;
184
+ }
185
+ }
186
+ /** @nocollapse */ InfoAutoCompleteComponent.ɵfac = function InfoAutoCompleteComponent_Factory(t) { return new (t || InfoAutoCompleteComponent)(i0.ɵɵdirectiveInject(i1.InfoDataService)); };
187
+ /** @nocollapse */ InfoAutoCompleteComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: InfoAutoCompleteComponent, selectors: [["info-autocomplete"]], inputs: { placeholder: "placeholder", name: "name", required: "required", selectfirst: "selectfirst", disablednoregisters: "disablednoregisters", getdataonchange: "getdataonchange", getdataonchangetime: "getdataonchangetime", api: "api", method: "method", maxlist: "maxlist", startwith: "startwith", minchar: "minchar", loading: "loading", params: "params", disabled: "disabled", data: "data" }, outputs: { onselecteditem: "onselecteditem" }, features: [i0.ɵɵProvidersFeature([{
188
+ provide: NG_VALUE_ACCESSOR,
189
+ useExisting: forwardRef((() => InfoAutoCompleteComponent)),
190
+ multi: true
191
+ }])], decls: 11, vars: 10, consts: [["matInput", "", "type", "text", 3, "ngModel", "placeholder", "formControl", "matAutocomplete", "required", "ngModelChange", "blur", "focus"], ["inputAuto", ""], [3, "displayWith"], ["auto", "matAutocomplete"], [3, "value", "innerHTML", "onSelectionChange", 4, "ngFor", "ngForOf"], ["matSuffix", "", 2, "color", "#aaa"], [1, "select-loading"], ["color", "primary", "mode", "indeterminate", 4, "ngIf"], [3, "value", "innerHTML", "onSelectionChange"], ["color", "primary", "mode", "indeterminate"]], template: function InfoAutoCompleteComponent_Template(rf, ctx) { if (rf & 1) {
192
+ i0.ɵɵelementStart(0, "mat-form-field")(1, "input", 0, 1);
193
+ i0.ɵɵlistener("ngModelChange", function InfoAutoCompleteComponent_Template_input_ngModelChange_1_listener($event) { return ctx.selectedValue = $event; })("blur", function InfoAutoCompleteComponent_Template_input_blur_1_listener($event) { return ctx.onBlur($event.target.value); })("focus", function InfoAutoCompleteComponent_Template_input_focus_1_listener($event) { return ctx.onFocus($event.target.value); });
194
+ i0.ɵɵpipe(3, "translate");
195
+ i0.ɵɵelementEnd();
196
+ i0.ɵɵelementStart(4, "mat-autocomplete", 2, 3);
197
+ i0.ɵɵtemplate(6, InfoAutoCompleteComponent_mat_option_6_Template, 1, 2, "mat-option", 4);
198
+ i0.ɵɵelementEnd();
199
+ i0.ɵɵelementStart(7, "mat-icon", 5);
200
+ i0.ɵɵtext(8, "spellcheck");
201
+ i0.ɵɵelementEnd()();
202
+ i0.ɵɵelementStart(9, "section", 6);
203
+ i0.ɵɵtemplate(10, InfoAutoCompleteComponent_mat_progress_bar_10_Template, 1, 0, "mat-progress-bar", 7);
204
+ i0.ɵɵelementEnd();
205
+ } if (rf & 2) {
206
+ const _r1 = i0.ɵɵreference(5);
207
+ i0.ɵɵadvance(1);
208
+ i0.ɵɵproperty("ngModel", ctx.selectedValue)("placeholder", i0.ɵɵpipeBind1(3, 8, ctx.placeholder))("formControl", ctx.control)("matAutocomplete", _r1)("required", ctx.required);
209
+ i0.ɵɵadvance(3);
210
+ i0.ɵɵproperty("displayWith", ctx.displayFn);
211
+ i0.ɵɵadvance(2);
212
+ i0.ɵɵproperty("ngForOf", ctx.options);
213
+ i0.ɵɵadvance(4);
214
+ i0.ɵɵproperty("ngIf", ctx.loading);
215
+ } }, dependencies: [i2.NgForOf, i2.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.RequiredValidator, i3.FormControlDirective, i4.MatIcon, i5.MatFormField, i5.MatSuffix, i6.MatInput, i7.MatOption, i8.MatProgressBar, i9.MatAutocomplete, i9.MatAutocompleteTrigger, i10.InfoTranslatePipe], styles: ["[_nghost-%COMP%] .select-loading[_ngcontent-%COMP%]{position:relative;bottom:15px;opacity:.3;height:1px}[_nghost-%COMP%] .select-loading[_ngcontent-%COMP%] .mat-progress-bar[_ngcontent-%COMP%]{height:1px;margin:0}[_nghost-%COMP%] mat-option[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{margin-left:10px;font-style:italic}"] });
216
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoAutoCompleteComponent, [{
217
+ type: Component,
218
+ args: [{ selector: 'info-autocomplete', providers: [{
219
+ provide: NG_VALUE_ACCESSOR,
220
+ useExisting: forwardRef((() => InfoAutoCompleteComponent)),
221
+ multi: true
222
+ }], template: "<mat-form-field>\r\n <input matInput type=\"text\" [(ngModel)]=\"selectedValue\" [placeholder]=\"placeholder | translate\" [formControl]=\"control\" [matAutocomplete]=\"auto\" \r\n [required]=\"required\" (blur)=\"onBlur($event.target.value)\" (focus)=\"onFocus($event.target.value)\" #inputAuto>\r\n\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn\">\r\n <mat-option *ngFor=\"let option of options\" [value]=\"option\" (onSelectionChange)=\"writeValue(option.Id)\" [innerHTML]=\"option.Nome\" >\r\n </mat-option>\r\n </mat-autocomplete>\r\n \r\n <mat-icon matSuffix style=\"color: #aaa\">spellcheck</mat-icon>\r\n</mat-form-field>\r\n\r\n<section class=\"select-loading\">\r\n <mat-progress-bar color=\"primary\" mode=\"indeterminate\" *ngIf=\"loading\"></mat-progress-bar>\r\n</section>", styles: [":host .select-loading{position:relative;bottom:15px;opacity:.3;height:1px}:host .select-loading .mat-progress-bar{height:1px;margin:0}:host mat-option small{margin-left:10px;font-style:italic}\n"] }]
223
+ }], function () { return [{ type: i1.InfoDataService }]; }, { placeholder: [{
224
+ type: Input
225
+ }], name: [{
226
+ type: Input
227
+ }], required: [{
228
+ type: Input
229
+ }], selectfirst: [{
230
+ type: Input
231
+ }], disablednoregisters: [{
232
+ type: Input
233
+ }], getdataonchange: [{
234
+ type: Input
235
+ }], getdataonchangetime: [{
236
+ type: Input
237
+ }], api: [{
238
+ type: Input
239
+ }], method: [{
240
+ type: Input
241
+ }], maxlist: [{
242
+ type: Input
243
+ }], startwith: [{
244
+ type: Input
245
+ }], minchar: [{
246
+ type: Input
247
+ }], onselecteditem: [{
248
+ type: Output
249
+ }], loading: [{
250
+ type: Input
251
+ }], params: [{
252
+ type: Input
253
+ }], disabled: [{
254
+ type: Input
255
+ }], data: [{
256
+ type: Input
257
+ }] }); })();
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvY29udHJvbHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lDQzFCLHFDQUFtSTtJQUF2RSxzUUFBcUIsZUFBQSwrQkFBcUIsQ0FBQSxJQUFDO0lBQ3ZHLGlCQUFhOzs7SUFEOEIsaUNBQWdCLGdEQUFBOzs7SUFRL0Qsc0NBQTBGOztBREk5RixNQUFNLE9BQU8seUJBQXlCO0lBa0dsQyxZQUFvQixVQUEyQjtRQUEzQixlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQWpHL0MsWUFBTyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUUxQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQix3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SUFBSSxFQUFFO2dCQUN0QyxVQUFVLElBQUksR0FBRyxDQUFDO1lBRXRCLFVBQVUsSUFBSSxRQUFRLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRTlHLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztZQUM1SyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3RDtRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNSLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLElBQUksQ0FB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RyxlQUFlO2tCQUF2QixLQUFLO1lBQ0csbUJBQW1CO2tCQUEzQixLQUFLO1lBQ0csR0FBRztrQkFBWCxLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUVJLGNBQWM7a0JBQXZCLE1BQU07WUFZSCxPQUFPO2tCQURWLEtBQUs7WUFvQkYsTUFBTTtrQkFEVCxLQUFLO1lBY0YsUUFBUTtrQkFEWCxLQUFLO1lBYUYsSUFBSTtrQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBmb3J3YXJkUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc3dpdGNoTWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSW5mb0RhdGFTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGF0YS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBJbmZvRGF0YUFjY2Vzc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2luZm8tYXV0b2NvbXBsZXRlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbe1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEluZm9BdXRvQ29tcGxldGVDb21wb25lbnQpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb0F1dG9Db21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gICAgY29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICAgIFxyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIEBJbnB1dCgpIG5hbWUgPSAnJztcclxuICAgIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzZWxlY3RmaXJzdCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWRub3JlZ2lzdGVycyA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZ2V0ZGF0YW9uY2hhbmdlID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBnZXRkYXRhb25jaGFuZ2V0aW1lID0gNTAwO1xyXG4gICAgQElucHV0KCkgYXBpOiBhbnkgPSBudWxsO1xyXG4gICAgQElucHV0KCkgbWV0aG9kID0gJ2dldGNoYXZldmFsb3InO1xyXG4gICAgQElucHV0KCkgbWF4bGlzdCA9IDEwO1xyXG4gICAgQElucHV0KCkgc3RhcnR3aXRoID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBtaW5jaGFyID0gMTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25zZWxlY3RlZGl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgb3B0aW9uczogYW55W107XHJcbiAgICBzZWxlY3RlZFZhbHVlOiBhbnkgPSBudWxsO1xyXG5cclxuICAgIG9uQ2hhbmdlOiBhbnk7XHJcbiAgICBvblRvdWNoZWQ6IGFueTtcclxuICAgIFxyXG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBfbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBsb2FkaW5nKCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGxvYWRpbmcodmFsdWUpe1xyXG4gICAgICAgIHRoaXMuX2xvYWRpbmcgPSB2YWx1ZTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQgPT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5fZGlzYWJsZWQudG9TdHJpbmcoKSA9PSAnJylcclxuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQgPT0gZmFsc2UpXHJcbiAgICAgICAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZSh0aGlzLmxvYWRpbmcpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBfcGFyYW1zOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBwYXJhbXMoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBwYXJhbXModmFsdWUpe1xyXG4gICAgICAgIHRoaXMuX3BhcmFtcyA9IHZhbHVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZClcclxuICAgICAgICAgICAgdGhpcy5nZXREYXRhKCkuc3Vic2NyaWJlKGEgPT4geyB0aGlzLmRhdGEgPSBhLmRhdGE7IHRoaXMubG9hZGluZyA9IGZhbHNlOyB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgX2Rpc2FibGVkOiBib29sZWFuID0gbnVsbDtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHsgICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQgPT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKHZhbHVlKVxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIF9kYXRhOiBhbnkgPSBbXTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZGF0YSgpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBkYXRhKHZhbHVlKXtcclxuICAgICAgICB0aGlzLl9kYXRhID0gdmFsdWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmdldGRhdGFvbmNoYW5nZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSAhPSBudWxsKVxyXG4gICAgICAgICAgICAgICAgaWYgKCh0aGlzLl9kYXRhID09IG51bGwgfHwgKHRoaXMuX2RhdGEgIT0gbnVsbCAmJiB0aGlzLl9kYXRhLmxlbmd0aCA9PSAwKSkgJiYgIXRoaXMubG9hZGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuc2VsZWN0ZWRWYWx1ZS5JZCA9PSBudWxsID8gdGhpcy5zZWxlY3RlZFZhbHVlIDogdGhpcy5zZWxlY3RlZFZhbHVlLklkKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5zZWxlY3RmaXJzdCAmJiB0aGlzLmRhdGEgIT0gbnVsbCAmJiB0aGlzLmRhdGEubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLmRhdGFbMF0uSWQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWRub3JlZ2lzdGVycylcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZSgodGhpcy5kYXRhID09IG51bGwgfHwgdGhpcy5kYXRhLmxlbmd0aCA9PSAwKSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YUFjZXNzOiBJbmZvRGF0YVNlcnZpY2UpIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLm1pbmNoYXIgPT0gbnVsbCB8fCB0aGlzLm1pbmNoYXIgPCAwKSB0aGlzLm1pbmNoYXIgPSAxO1xyXG4gICAgICAgIHRoaXMubmFtZSA9IHRoaXMucGxhY2Vob2xkZXIucmVwbGFjZSgvIC9nLCAnJykgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwKS50b1N0cmluZygpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuZ2V0ZGF0YW9uY2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpLnN1YnNjcmliZShhID0+IHsgdGhpcy5kYXRhID0gYS5kYXRhOyB0aGlzLmxvYWRpbmcgPSBmYWxzZTsgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHsgdGhpcy5vcHRpb25zID0gdGhpcy5maWx0ZXIodmFsdWUpfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZ2V0ZGF0YW9uY2hhbmdldGltZSksIFxyXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCh2YWx1ZSA9PiB0aGlzLmdldERhdGEodmFsdWUpKVxyXG4gICAgICAgICAgICApLnN1YnNjcmliZShhID0+IHRoaXMuZGF0YSA9IHRoaXMub3B0aW9ucyA9IGEuZGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZpbHRlcih2YWx1ZTogYW55KTogYW55W10ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlLmxlbmd0aCA8IHRoaXMubWluY2hhcikgcmV0dXJuIFtdO1xyXG4gICAgICAgIGxldCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLk5vbWUgPT0gbnVsbCA/IHZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA6IHZhbHVlLk5vbWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0d2l0aClcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi5Ob21lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXJWYWx1ZSkgPT09IDAgfHwgKG9wdGlvbi5BdXggPT0gbnVsbCA/IFwiXCIgOiBvcHRpb24uQXV4LnRvTG93ZXJDYXNlKCkgPT0gZmlsdGVyVmFsdWUpKS5zbGljZSgwLCB0aGlzLm1heGxpc3QpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi5Ob21lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXJWYWx1ZSkgPiAtMSB8fCAob3B0aW9uLkF1eCA9PSBudWxsID8gXCJcIiA6IG9wdGlvbi5BdXgudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclZhbHVlKSA+IC0xKSkuc2xpY2UoMCwgdGhpcy5tYXhsaXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhKHZhbHVlOiBhbnkgPSBudWxsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYXBpID09IG51bGwgfHwgdGhpcy5hcGkgPT0gJycpXHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPigpO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSAhdGhpcy5nZXRkYXRhb25jaGFuZ2U7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gW107XHJcbiAgICAgICAgbGV0IHBhcmFtZXRlcnMgPSB0aGlzLnBhcmFtcyB8fCAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0ZGF0YW9uY2hhbmdlKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09ICcnKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+KCk7XHJcblxyXG4gICAgICAgICAgICBpZiAocGFyYW1ldGVycyAhPSBudWxsICYmIHBhcmFtZXRlcnMgIT0gJycpXHJcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzICs9ICcmJztcclxuXHJcbiAgICAgICAgICAgIHBhcmFtZXRlcnMgKz0gYG5vbWU9JHt2YWx1ZS5Ob21lID09IG51bGwgPyB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgOiB2YWx1ZS5Ob21lfSZ0YWtlPSR7dGhpcy5tYXhsaXN0fWA7XHJcblxyXG4gICAgICAgICAgICBsZXQgbW9kZWwgPSBwYXJhbWV0ZXJzLnNwbGl0KFwiJlwiKS5tYXAoYyA9PiAoeyBbYy5zcGxpdChcIj1cIilbMF0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjLnNwbGl0KFwiPVwiKVswXS5zdWJzdHJpbmcoMSldOiBjLnNwbGl0KFwiPVwiKVsxXSB9KSkucmVkdWNlKChhLGIpID0+ICh7Li4uYSwgLi4uYn0pKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFBY2Vzcy5wb3N0KHRoaXMuYXBpLCBtb2RlbCwgdGhpcy5tZXRob2QpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFBY2Vzcy5nZXQodGhpcy5hcGksIHRoaXMubWV0aG9kLCBwYXJhbWV0ZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkJsdXIodmFsdWUpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSAhPSBudWxsICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZS5JZCAhPSBudWxsKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF2YWx1ZSAmJiB0aGlzLnNlbGVjdGVkVmFsdWUgIT0gbnVsbCAmJiB0aGlzLnNlbGVjdGVkVmFsdWUudHJpbSgpID09ICcnKVxyXG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGxldCBmaXJzdCA9IHRoaXMuZmlsdGVyKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGlmIChmaXJzdCAhPSBudWxsICYmIGZpcnN0Lmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGZpcnN0WzBdLklkKTtcclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfSwgMzAwKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZvY3VzKHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubWluY2hhciAhPSBudWxsICYmIHRoaXMubWluY2hhciA9PSAwICYmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09ICcnKSlcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRoaXMuY29udHJvbC5zZXRWYWx1ZSgnJyk7IH0sIDIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheUZuKG1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAobW9kZWwgPT0gbnVsbCB8fCBtb2RlbC5Ob21lID09IG51bGwpXHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuXHJcbiAgICAgICAgbGV0IGluZGV4U21hbGwgPSBtb2RlbC5Ob21lLmluZGV4T2YoJzxzbWFsbCcpO1xyXG4gICAgICAgIHJldHVybiBpbmRleFNtYWxsID4gLTEgPyBtb2RlbC5Ob21lLnN1YnN0cmluZygwLCBpbmRleFNtYWxsKS50cmltKCkgOiBtb2RlbC5Ob21lO1xyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGxldCBvYmogPSB0aGlzLmRhdGEuZmluZChyID0+IHIuSWQgPT0gdmFsdWUpO1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShvYmopO1xyXG5cclxuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiBvYmogPT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlICE9IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5vbnNlbGVjdGVkaXRlbSAhPSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLm9uc2VsZWN0ZWRpdGVtLmVtaXQodGhpcy5kYXRhID09IG51bGwgPyBudWxsIDogdGhpcy5kYXRhLmZpbmQociA9PiByLklkID09IHZhbHVlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZG5vcmVnaXN0ZXJzICYmICh0aGlzLmRhdGEgPT0gbnVsbCB8fCB0aGlzLmRhdGEubGVuZ3RoID09IDApID8gdHJ1ZSA6IGlzRGlzYWJsZWQ7XHJcbiAgICB9XHJcbn0iLCI8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVmFsdWVcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiIFxyXG4gICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIChibHVyKT1cIm9uQmx1cigkZXZlbnQudGFyZ2V0LnZhbHVlKVwiIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudC50YXJnZXQudmFsdWUpXCIgI2lucHV0QXV0bz5cclxuXHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5Rm5cIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCIgKG9uU2VsZWN0aW9uQ2hhbmdlKT1cIndyaXRlVmFsdWUob3B0aW9uLklkKVwiIFtpbm5lckhUTUxdPVwib3B0aW9uLk5vbWVcIiA+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgXHJcbiAgICA8bWF0LWljb24gbWF0U3VmZml4IHN0eWxlPVwiY29sb3I6ICNhYWFcIj5zcGVsbGNoZWNrPC9tYXQtaWNvbj5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbjxzZWN0aW9uIGNsYXNzPVwic2VsZWN0LWxvYWRpbmdcIj5cclxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIGNvbG9yPVwicHJpbWFyeVwiIG1vZGU9XCJpbmRldGVybWluYXRlXCIgKm5nSWY9XCJsb2FkaW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG48L3NlY3Rpb24+Il19
@@ -0,0 +1,298 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { InfoDataService } from "../../service/data.service";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../service/data.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "@angular/material/icon";
8
+ import * as i5 from "@angular/material/form-field";
9
+ import * as i6 from "@angular/material/input";
10
+ import * as i7 from "@angular/material/list";
11
+ import * as i8 from "../../pipe/translate.pipe";
12
+ function InfoBigCheckboxComponent_mat_list_option_1_Template(rf, ctx) { if (rf & 1) {
13
+ const _r5 = i0.ɵɵgetCurrentView();
14
+ i0.ɵɵelementStart(0, "mat-list-option", 5);
15
+ i0.ɵɵlistener("click", function InfoBigCheckboxComponent_mat_list_option_1_Template_mat_list_option_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.selectAll()); });
16
+ i0.ɵɵelementStart(1, "label");
17
+ i0.ɵɵtext(2);
18
+ i0.ɵɵpipe(3, "translate");
19
+ i0.ɵɵelementEnd()();
20
+ } if (rf & 2) {
21
+ const ctx_r0 = i0.ɵɵnextContext();
22
+ i0.ɵɵproperty("selected", ctx_r0.getModel().length == 0)("disabled", ctx_r0.readonly);
23
+ i0.ɵɵadvance(2);
24
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, ctx_r0.labelselectall));
25
+ } }
26
+ function InfoBigCheckboxComponent_mat_list_option_2_div_1_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelement(0, "div", 8);
28
+ } if (rf & 2) {
29
+ const item_r6 = i0.ɵɵnextContext().$implicit;
30
+ i0.ɵɵproperty("innerHTML", item_r6.Nome, i0.ɵɵsanitizeHtml);
31
+ } }
32
+ function InfoBigCheckboxComponent_mat_list_option_2_div_2_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵelement(0, "div", 8);
34
+ } if (rf & 2) {
35
+ const item_r6 = i0.ɵɵnextContext().$implicit;
36
+ i0.ɵɵproperty("innerHTML", item_r6.Descricao, i0.ɵɵsanitizeHtml);
37
+ } }
38
+ const _c0 = function (a0) { return { "silver": a0 }; };
39
+ function InfoBigCheckboxComponent_mat_list_option_2_Template(rf, ctx) { if (rf & 1) {
40
+ const _r13 = i0.ɵɵgetCurrentView();
41
+ i0.ɵɵelementStart(0, "mat-list-option", 6);
42
+ i0.ɵɵlistener("click", function InfoBigCheckboxComponent_mat_list_option_2_Template_mat_list_option_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r13); const item_r6 = restoredCtx.$implicit; return i0.ɵɵresetView(item_r6.Selecionado = !item_r6.Selecionado); });
43
+ i0.ɵɵtemplate(1, InfoBigCheckboxComponent_mat_list_option_2_div_1_Template, 1, 1, "div", 7);
44
+ i0.ɵɵtemplate(2, InfoBigCheckboxComponent_mat_list_option_2_div_2_Template, 1, 1, "div", 7);
45
+ i0.ɵɵelementEnd();
46
+ } if (rf & 2) {
47
+ const item_r6 = ctx.$implicit;
48
+ const i_r7 = ctx.index;
49
+ const ctx_r1 = i0.ɵɵnextContext();
50
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(5, _c0, i_r7 % 2 == 1))("selected", item_r6.Selecionado)("disabled", ctx_r1.readonly);
51
+ i0.ɵɵadvance(1);
52
+ i0.ɵɵproperty("ngIf", item_r6.Descricao == null);
53
+ i0.ɵɵadvance(1);
54
+ i0.ɵɵproperty("ngIf", item_r6.Descricao != null);
55
+ } }
56
+ function InfoBigCheckboxComponent_ng_container_3_mat_list_item_10_div_1_Template(rf, ctx) { if (rf & 1) {
57
+ i0.ɵɵelement(0, "div", 8);
58
+ } if (rf & 2) {
59
+ const item_r15 = i0.ɵɵnextContext().$implicit;
60
+ i0.ɵɵproperty("innerHTML", item_r15.Nome, i0.ɵɵsanitizeHtml);
61
+ } }
62
+ function InfoBigCheckboxComponent_ng_container_3_mat_list_item_10_div_2_Template(rf, ctx) { if (rf & 1) {
63
+ i0.ɵɵelement(0, "div", 8);
64
+ } if (rf & 2) {
65
+ const item_r15 = i0.ɵɵnextContext().$implicit;
66
+ i0.ɵɵproperty("innerHTML", item_r15.Descricao, i0.ɵɵsanitizeHtml);
67
+ } }
68
+ function InfoBigCheckboxComponent_ng_container_3_mat_list_item_10_Template(rf, ctx) { if (rf & 1) {
69
+ const _r22 = i0.ɵɵgetCurrentView();
70
+ i0.ɵɵelementStart(0, "mat-list-item", 15);
71
+ i0.ɵɵlistener("click", function InfoBigCheckboxComponent_ng_container_3_mat_list_item_10_Template_mat_list_item_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r22); const item_r15 = restoredCtx.$implicit; const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.add(item_r15)); });
72
+ i0.ɵɵtemplate(1, InfoBigCheckboxComponent_ng_container_3_mat_list_item_10_div_1_Template, 1, 1, "div", 7);
73
+ i0.ɵɵtemplate(2, InfoBigCheckboxComponent_ng_container_3_mat_list_item_10_div_2_Template, 1, 1, "div", 7);
74
+ i0.ɵɵelementStart(3, "mat-icon");
75
+ i0.ɵɵtext(4, "add_circle_outline");
76
+ i0.ɵɵelementEnd()();
77
+ } if (rf & 2) {
78
+ const item_r15 = ctx.$implicit;
79
+ const i_r16 = ctx.index;
80
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, i_r16 % 2 == 0));
81
+ i0.ɵɵadvance(1);
82
+ i0.ɵɵproperty("ngIf", item_r15.Descricao == null);
83
+ i0.ɵɵadvance(1);
84
+ i0.ɵɵproperty("ngIf", item_r15.Descricao != null);
85
+ } }
86
+ function InfoBigCheckboxComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
87
+ const _r24 = i0.ɵɵgetCurrentView();
88
+ i0.ɵɵelementContainerStart(0);
89
+ i0.ɵɵelementStart(1, "mat-form-field", 9)(2, "input", 10);
90
+ i0.ɵɵlistener("ngModelChange", function InfoBigCheckboxComponent_ng_container_3_Template_input_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r23.value = $event); });
91
+ i0.ɵɵpipe(3, "translate");
92
+ i0.ɵɵelementEnd();
93
+ i0.ɵɵelementStart(4, "mat-icon", 11);
94
+ i0.ɵɵtext(5, "search");
95
+ i0.ɵɵelementEnd();
96
+ i0.ɵɵelementStart(6, "mat-hint", 12);
97
+ i0.ɵɵtext(7);
98
+ i0.ɵɵpipe(8, "translate");
99
+ i0.ɵɵelementEnd()();
100
+ i0.ɵɵelementStart(9, "mat-list", 13);
101
+ i0.ɵɵtemplate(10, InfoBigCheckboxComponent_ng_container_3_mat_list_item_10_Template, 5, 5, "mat-list-item", 14);
102
+ i0.ɵɵelementEnd();
103
+ i0.ɵɵelementContainerEnd();
104
+ } if (rf & 2) {
105
+ const ctx_r2 = i0.ɵɵnextContext();
106
+ i0.ɵɵadvance(2);
107
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(3, 5, ctx_r2.message));
108
+ i0.ɵɵproperty("name", ctx_r2.name)("ngModel", ctx_r2.value);
109
+ i0.ɵɵadvance(5);
110
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 7, ctx_r2.submessage));
111
+ i0.ɵɵadvance(3);
112
+ i0.ɵɵproperty("ngForOf", ctx_r2.getFilteredData());
113
+ } }
114
+ function InfoBigCheckboxComponent_div_4_Template(rf, ctx) { if (rf & 1) {
115
+ i0.ɵɵelementStart(0, "div", 16)(1, "mat-icon");
116
+ i0.ɵɵtext(2, "info_outline");
117
+ i0.ɵɵelementEnd();
118
+ i0.ɵɵtext(3);
119
+ i0.ɵɵpipe(4, "translate");
120
+ i0.ɵɵelementEnd();
121
+ } if (rf & 2) {
122
+ i0.ɵɵadvance(3);
123
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 1, "NenhumItemEncontrado"), "\n");
124
+ } }
125
+ export class InfoBigCheckboxComponent {
126
+ constructor(_dataService) {
127
+ this._dataService = _dataService;
128
+ this.readonly = false;
129
+ this.preload = true;
130
+ this.enabledcheckall = true;
131
+ this.labelselectall = 'Todos';
132
+ this.labelsearch = 'Buscar';
133
+ this.minchar = 0;
134
+ this.max = 20;
135
+ this.submessage = '';
136
+ this.value = '';
137
+ this.api = null;
138
+ this.method = null;
139
+ this.model = [];
140
+ this.data = [];
141
+ this.aux = null;
142
+ this._params = null;
143
+ this._paramsmodel = null;
144
+ this.loading = false;
145
+ this.name = '';
146
+ }
147
+ get params() {
148
+ return this._params;
149
+ }
150
+ set params(value) {
151
+ this._params = value;
152
+ this.getData();
153
+ }
154
+ get paramsmodel() {
155
+ return this._paramsmodel;
156
+ }
157
+ set paramsmodel(value) {
158
+ this._paramsmodel = value;
159
+ this.getData();
160
+ }
161
+ ngOnInit() {
162
+ this.submessage = 'Serão exibidos somente os ' + this.max + ' primeiros itens encontrados';
163
+ this.name = 'input-search-' + Math.floor(Math.random() * 1000).toString();
164
+ this.getData();
165
+ }
166
+ getData() {
167
+ if (this.preload) {
168
+ if (this.params == null && this.paramsmodel != null)
169
+ this.loadByParamModel(this.paramsmodel);
170
+ else
171
+ this.load(this.params);
172
+ }
173
+ }
174
+ load(param = null) {
175
+ if (this.api == null)
176
+ return;
177
+ this.loading = true;
178
+ this.data = [];
179
+ if (this.model == null)
180
+ this.model = [];
181
+ this._dataService
182
+ .get(this.api, this.method, param).subscribe(r => {
183
+ if (r.success)
184
+ this.data = r.data;
185
+ this.loading = false;
186
+ });
187
+ }
188
+ loadByParamModel(paramModel = null) {
189
+ if (this.api == null)
190
+ return;
191
+ this.loading = true;
192
+ this.data = [];
193
+ if (this.model == null)
194
+ this.model = [];
195
+ this._dataService.post(this.api, paramModel, this.method).subscribe(r => {
196
+ if (r.success)
197
+ this.data = r.data;
198
+ this.loading = false;
199
+ });
200
+ }
201
+ getModel() {
202
+ if (this.model == null || this.model.length == 0)
203
+ return [];
204
+ return this.model.filter(m => this.aux == null || m.Aux == this.aux);
205
+ }
206
+ getFilteredData() {
207
+ if (this.data.length == 0 || this.value.length < this.minchar)
208
+ return [];
209
+ return this.data.filter(d => (this.aux == null || this.aux == d.Aux) &&
210
+ this.model.filter(m => m.Id == d.Id).length == 0 &&
211
+ d.Nome.toLowerCase().indexOf(this.value.toLowerCase()) > -1).slice(0, this.max);
212
+ }
213
+ existData() {
214
+ return (this.data != null &&
215
+ this.data.length > 0 &&
216
+ this.data.filter(d => this.aux == null || this.aux == d.Aux).length > 0);
217
+ }
218
+ add(item) {
219
+ if (this.model == null)
220
+ this.model = [];
221
+ this.model.push({
222
+ Id: item.Id,
223
+ Nome: item.Nome,
224
+ Aux: (this.aux == null ? item.Aux : this.aux),
225
+ Descricao: item.Descricao == null ? item.Nome : item.Descricao,
226
+ Selecionado: true
227
+ });
228
+ }
229
+ selectAll() {
230
+ let removeItems = new Array();
231
+ if (this.aux != null) {
232
+ for (var i = 0; i < this.model.length; i++) {
233
+ if (this.model[i].Aux == this.aux)
234
+ removeItems.push(i);
235
+ }
236
+ }
237
+ removeItems.forEach(index => {
238
+ this.model.splice(index, 1);
239
+ });
240
+ }
241
+ }
242
+ /** @nocollapse */ InfoBigCheckboxComponent.ɵfac = function InfoBigCheckboxComponent_Factory(t) { return new (t || InfoBigCheckboxComponent)(i0.ɵɵdirectiveInject(i1.InfoDataService)); };
243
+ /** @nocollapse */ InfoBigCheckboxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: InfoBigCheckboxComponent, selectors: [["info-big-checkbox"]], inputs: { readonly: "readonly", preload: "preload", enabledcheckall: "enabledcheckall", labelselectall: "labelselectall", labelsearch: "labelsearch", minchar: "minchar", max: "max", message: "message", submessage: "submessage", value: "value", api: "api", method: "method", model: "model", data: "data", aux: "aux", params: "params", paramsmodel: "paramsmodel" }, decls: 5, vars: 4, consts: [[1, "col-md-12", "mb-3"], ["class", "silver", 3, "selected", "disabled", "click", 4, "ngIf"], [3, "ngClass", "selected", "disabled", "click", 4, "ngFor", "ngForOf"], [4, "ngIf"], ["class", "col-md-12 none-data", 4, "ngIf"], [1, "silver", 3, "selected", "disabled", "click"], [3, "ngClass", "selected", "disabled", "click"], [3, "innerHTML", 4, "ngIf"], [3, "innerHTML"], [1, "col-md-12", "mb-4", "input-search"], ["matInput", "", "autocomplete", "false", "autocomplete", "off", 3, "placeholder", "name", "ngModel", "ngModelChange"], ["matSuffix", ""], [1, "mt-2"], [1, "col-md-12"], [3, "ngClass", "click", 4, "ngFor", "ngForOf"], [3, "ngClass", "click"], [1, "col-md-12", "none-data"]], template: function InfoBigCheckboxComponent_Template(rf, ctx) { if (rf & 1) {
244
+ i0.ɵɵelementStart(0, "mat-selection-list", 0);
245
+ i0.ɵɵtemplate(1, InfoBigCheckboxComponent_mat_list_option_1_Template, 4, 5, "mat-list-option", 1);
246
+ i0.ɵɵtemplate(2, InfoBigCheckboxComponent_mat_list_option_2_Template, 3, 7, "mat-list-option", 2);
247
+ i0.ɵɵelementEnd();
248
+ i0.ɵɵtemplate(3, InfoBigCheckboxComponent_ng_container_3_Template, 11, 9, "ng-container", 3);
249
+ i0.ɵɵtemplate(4, InfoBigCheckboxComponent_div_4_Template, 5, 3, "div", 4);
250
+ } if (rf & 2) {
251
+ i0.ɵɵadvance(1);
252
+ i0.ɵɵproperty("ngIf", ctx.enabledcheckall);
253
+ i0.ɵɵadvance(1);
254
+ i0.ɵɵproperty("ngForOf", ctx.getModel());
255
+ i0.ɵɵadvance(1);
256
+ i0.ɵɵproperty("ngIf", ctx.existData());
257
+ i0.ɵɵadvance(1);
258
+ i0.ɵɵproperty("ngIf", !ctx.existData());
259
+ } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.MatIcon, i5.MatFormField, i5.MatHint, i5.MatSuffix, i6.MatInput, i7.MatList, i7.MatListItem, i7.MatSelectionList, i7.MatListOption, i8.InfoTranslatePipe], styles: ["[_nghost-%COMP%] mat-list-option[_ngcontent-%COMP%]{font-size:14px;cursor:pointer;padding:0!important;font-family:Open Sans,sans-serif}[_nghost-%COMP%] mat-list-option[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{padding-left:5px}[_nghost-%COMP%] mat-list-item[_ngcontent-%COMP%]{height:38px;font-size:14px;cursor:pointer;padding:0 10px 0 20px}[_nghost-%COMP%] mat-list-item[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.04)}[_nghost-%COMP%] mat-list-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:absolute;right:3px;top:8px}[_nghost-%COMP%] mat-list-option.silver[_ngcontent-%COMP%], [_nghost-%COMP%] mat-list-item.silver[_ngcontent-%COMP%]{background:#f5f5f5}[_nghost-%COMP%] mat-list-option[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] mat-list-item[_ngcontent-%COMP%]:hover{background:#eee}[_nghost-%COMP%] mat-list-item-content[_ngcontent-%COMP%]{padding-left:0!important}[_nghost-%COMP%] .none-data[_ngcontent-%COMP%]{font-size:14px;color:#666;background:#f5f5f5;text-align:center;padding:5px 0}[_nghost-%COMP%] .none-data[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:5px;font-size:18px;top:4px;left:5px}"] });
260
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoBigCheckboxComponent, [{
261
+ type: Component,
262
+ args: [{ selector: 'info-big-checkbox', template: "<mat-selection-list class=\"col-md-12 mb-3\">\r\n <mat-list-option class=\"silver\" (click)=\"selectAll()\" [selected]=\"getModel().length == 0\" [disabled]=\"readonly\" *ngIf=\"enabledcheckall\">\r\n <label>{{ labelselectall | translate }}</label>\r\n </mat-list-option>\r\n\r\n <mat-list-option *ngFor=\"let item of getModel(); let i = index\" [ngClass]=\"{ 'silver': i % 2 == 1 }\" [selected]=\"item.Selecionado\" (click)=\"item.Selecionado = !item.Selecionado\" [disabled]=\"readonly\">\r\n <div *ngIf=\"item.Descricao == null\" [innerHTML]=\"item.Nome\"></div>\r\n <div *ngIf=\"item.Descricao != null\" [innerHTML]=\"item.Descricao\"></div>\r\n </mat-list-option>\r\n</mat-selection-list>\r\n \r\n<ng-container *ngIf=\"existData()\" >\r\n <mat-form-field class=\"col-md-12 mb-4 input-search\">\r\n <input matInput placeholder=\"{{ message | translate}}\" [name]=\"name\" autocomplete=\"false\" [(ngModel)]=\"value\" autocomplete=\"off\" >\r\n <mat-icon matSuffix >search</mat-icon>\r\n <mat-hint class=\"mt-2\">{{ submessage | translate}}</mat-hint>\r\n </mat-form-field>\r\n \r\n <mat-list class=\"col-md-12\" >\r\n <mat-list-item *ngFor=\"let item of getFilteredData(); let i = index\" [ngClass]=\"{ 'silver': i % 2 == 0 }\" (click)=\"add(item)\">\r\n <div *ngIf=\"item.Descricao == null\" [innerHTML]=\"item.Nome\"></div>\r\n <div *ngIf=\"item.Descricao != null\" [innerHTML]=\"item.Descricao\"></div>\r\n <mat-icon>add_circle_outline</mat-icon>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-container>\r\n\r\n<div class=\"col-md-12 none-data\" *ngIf=\"!existData()\" >\r\n <mat-icon>info_outline</mat-icon> {{ 'NenhumItemEncontrado' | translate }}\r\n</div>", styles: [":host mat-list-option{font-size:14px;cursor:pointer;padding:0!important;font-family:Open Sans,sans-serif}:host mat-list-option label{padding-left:5px}:host mat-list-item{height:38px;font-size:14px;cursor:pointer;padding:0 10px 0 20px}:host mat-list-item:hover{background:rgba(0,0,0,.04)}:host mat-list-item mat-icon{position:absolute;right:3px;top:8px}:host mat-list-option.silver,:host mat-list-item.silver{background:#f5f5f5}:host mat-list-option:hover,:host mat-list-item:hover{background:#eee}:host mat-list-item-content{padding-left:0!important}:host .none-data{font-size:14px;color:#666;background:#f5f5f5;text-align:center;padding:5px 0}:host .none-data mat-icon{margin-right:5px;font-size:18px;top:4px;left:5px}\n"] }]
263
+ }], function () { return [{ type: i1.InfoDataService }]; }, { readonly: [{
264
+ type: Input
265
+ }], preload: [{
266
+ type: Input
267
+ }], enabledcheckall: [{
268
+ type: Input
269
+ }], labelselectall: [{
270
+ type: Input
271
+ }], labelsearch: [{
272
+ type: Input
273
+ }], minchar: [{
274
+ type: Input
275
+ }], max: [{
276
+ type: Input
277
+ }], message: [{
278
+ type: Input
279
+ }], submessage: [{
280
+ type: Input
281
+ }], value: [{
282
+ type: Input
283
+ }], api: [{
284
+ type: Input
285
+ }], method: [{
286
+ type: Input
287
+ }], model: [{
288
+ type: Input
289
+ }], data: [{
290
+ type: Input
291
+ }], aux: [{
292
+ type: Input
293
+ }], params: [{
294
+ type: Input
295
+ }], paramsmodel: [{
296
+ type: Input
297
+ }] }); })();
298
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlnLWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvY29udHJvbHMvYmlnLWNoZWNrYm94L2JpZy1jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2JpZy1jaGVja2JveC9iaWctY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7SUNBekQsMENBQXdJO0lBQXhHLDBMQUFTLGVBQUEsa0JBQVcsQ0FBQSxJQUFDO0lBQ2pELDZCQUFPO0lBQUEsWUFBZ0M7O0lBQUEsaUJBQVEsRUFBQTs7O0lBREcsd0RBQW1DLDZCQUFBO0lBQzlFLGVBQWdDO0lBQWhDLGlFQUFnQzs7O0lBSXZDLHlCQUFrRTs7O0lBQTlCLDJEQUF1Qjs7O0lBQzNELHlCQUF1RTs7O0lBQW5DLGdFQUE0Qjs7Ozs7SUFGcEUsMENBQXdNO0lBQXJFLG1OQUFTLDBEQUFvQyxJQUFDO0lBQzdLLDJGQUFrRTtJQUNsRSwyRkFBdUU7SUFDM0UsaUJBQWtCOzs7OztJQUg4QyxtRUFBb0MsaUNBQUEsNkJBQUE7SUFDMUYsZUFBNEI7SUFBNUIsZ0RBQTRCO0lBQzVCLGVBQTRCO0lBQTVCLGdEQUE0Qjs7O0lBYTlCLHlCQUFrRTs7O0lBQTlCLDREQUF1Qjs7O0lBQzNELHlCQUF1RTs7O0lBQW5DLGlFQUE0Qjs7OztJQUZwRSx5Q0FBOEg7SUFBcEIscVFBQVMsZUFBQSxxQkFBUyxDQUFBLElBQUM7SUFDekgseUdBQWtFO0lBQ2xFLHlHQUF1RTtJQUN2RSxnQ0FBVTtJQUFBLGtDQUFrQjtJQUFB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SSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNCO1NBQ0o7UUFFRCxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O21IQTVKUSx3QkFBd0I7MEdBQXhCLHdCQUF3QjtRQ1JyQyw2Q0FBMkM7UUFDdkMsaUdBRWtCO1FBRWxCLGlHQUdrQjtRQUN0QixpQkFBcUI7UUFFckIsNEZBY2U7UUFFZix5RUFFTTs7UUE1QitHLGVBQXFCO1FBQXJCLDBDQUFxQjtRQUlwRyxlQUFlO1FBQWYsd0NBQWU7UUFNdEMsZUFBaUI7UUFBakIsc0NBQWlCO1FBZ0JFLGVBQWtCO1FBQWxCLHVDQUFrQjs7dUZEbkJ2Qyx3QkFBd0I7Y0FMcEMsU0FBUzsyQkFDSSxtQkFBbUI7a0VBTXBCLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxlQUFlO2tCQUF2QixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxHQUFHO2tCQUFYLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBRUcsS0FBSztrQkFBYixLQUFLO1lBQ0csR0FBRztrQkFBWCxLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBRUcsS0FBSztrQkFBYixLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLO1lBQ0csR0FBRztrQkFBWCxLQUFLO1lBSUYsTUFBTTtrQkFEVCxLQUFLO1lBWUYsV0FBVztrQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSW5mb0RhdGFTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGF0YS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaW5mby1iaWctY2hlY2tib3gnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdiaWctY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJ2JpZy1jaGVja2JveC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmZvQmlnQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBwcmVsb2FkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGVuYWJsZWRjaGVja2FsbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBsYWJlbHNlbGVjdGFsbDogc3RyaW5nID0gJ1RvZG9zJztcclxuICAgIEBJbnB1dCgpIGxhYmVsc2VhcmNoOiBzdHJpbmcgPSAnQnVzY2FyJztcclxuICAgIEBJbnB1dCgpIG1pbmNoYXI6IG51bWJlciA9IDA7XHJcbiAgICBASW5wdXQoKSBtYXg6IG51bWJlciA9IDIwO1xyXG4gICAgQElucHV0KCkgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgc3VibWVzc2FnZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgQElucHV0KCkgdmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gICAgQElucHV0KCkgYXBpOiBhbnkgPSBudWxsO1xyXG4gICAgQElucHV0KCkgbWV0aG9kOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIEBJbnB1dCgpIG1vZGVsOiBhbnkgPSBbXTtcclxuICAgIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XHJcbiAgICBASW5wdXQoKSBhdXg6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgcHJpdmF0ZSBfcGFyYW1zOiBhbnkgPSBudWxsO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBwYXJhbXMoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBwYXJhbXModmFsdWUpe1xyXG4gICAgICAgIHRoaXMuX3BhcmFtcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3BhcmFtc21vZGVsOiBhbnkgPSBudWxsO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBwYXJhbXNtb2RlbCgpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJhbXNtb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgcGFyYW1zbW9kZWwodmFsdWUpe1xyXG4gICAgICAgIHRoaXMuX3BhcmFtc21vZGVsID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YVNlcnZpY2U6IEluZm9EYXRhU2VydmljZSkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKXtcclxuICAgICAgICB0aGlzLnN1Ym1lc3NhZ2UgPSAnU2Vyw6NvIGV4aWJpZG9zIHNvbWVudGUgb3MgJyArIHRoaXMubWF4ICsgJyBwcmltZWlyb3MgaXRlbnMgZW5jb250cmFkb3MnO1xyXG4gICAgICAgIHRoaXMubmFtZSA9ICdpbnB1dC1zZWFyY2gtJyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDApLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0YSgpIHtcclxuICAgICAgICBpZiAodGhpcy5wcmVsb2FkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmFtcyA9PSBudWxsICYmIHRoaXMucGFyYW1zbW9kZWwgIT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZEJ5UGFyYW1Nb2RlbCh0aGlzLnBhcmFtc21vZGVsKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5sb2FkKHRoaXMucGFyYW1zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZChwYXJhbTogYW55ID0gbnVsbCkge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5hcGkgPT0gbnVsbClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGF0YVNlcnZpY2VcclxuICAgICAgICAgICAgLmdldCh0aGlzLmFwaSwgdGhpcy5tZXRob2QsIHBhcmFtKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyLnN1Y2Nlc3MpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSByLmRhdGE7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkQnlQYXJhbU1vZGVsKHBhcmFtTW9kZWw6IGFueSA9IG51bGwpIHtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy5hcGkgPT0gbnVsbClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGF0YVNlcnZpY2UucG9zdCh0aGlzLmFwaSwgcGFyYW1Nb2RlbCwgdGhpcy5tZXRob2QpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICAgICAgaWYgKHIuc3VjY2VzcylcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHIuZGF0YTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRNb2RlbCgpOiBhbnlbXXtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwgPT0gbnVsbCB8fCB0aGlzLm1vZGVsLmxlbmd0aCA9PSAwKVxyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLmZpbHRlcihtID0+IHRoaXMuYXV4ID09IG51bGwgfHwgbS5BdXggPT0gdGhpcy5hdXgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbHRlcmVkRGF0YSgpOiBhbnlbXXtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5sZW5ndGggPT0gMCB8fCB0aGlzLnZhbHVlLmxlbmd0aCA8IHRoaXMubWluY2hhcilcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmZpbHRlcihkID0+IFxyXG4gICAgICAgICAgICAodGhpcy5hdXggPT0gbnVsbCB8fCB0aGlzLmF1eCA9PSBkLkF1eCkgJiZcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5maWx0ZXIobSA9PiBtLklkID09IGQuSWQpLmxlbmd0aCA9PSAwICYmIFxyXG4gICAgICAgICAgICBkLk5vbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMudmFsdWUudG9Mb3dlckNhc2UoKSkgPiAtMVxyXG5cclxuICAgICAgICApLnNsaWNlKDAsIHRoaXMubWF4KTtcclxuICAgIH1cclxuXHJcbiAgICBleGlzdERhdGEoKTogYm9vbGVhbntcclxuICAgICAgICByZXR1cm4gKHRoaXMuZGF0YSAhPSBudWxsICYmIFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLmxlbmd0aCA+IDAgJiYgXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuZmlsdGVyKGQgPT4gdGhpcy5hdXggPT0gbnVsbCB8fCB0aGlzLmF1eCA9PSBkLkF1eCkubGVuZ3RoID4gMCk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKGl0ZW06IGFueSl7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwgPT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLm1vZGVsLnB1c2goe1xyXG4gICAgICAgICAgICBJZDogaXRlbS5JZCxcclxuICAgICAgICAgICAgTm9tZTogaXRlbS5Ob21lLFxyXG4gICAgICAgICAgICBBdXg6ICh0aGlzLmF1eCA9PSBudWxsID8gaXRlbS5BdXggOiB0aGlzLmF1eCksXHJcbiAgICAgICAgICAgIERlc2NyaWNhbzogaXRlbS5EZXNjcmljYW8gPT0gbnVsbCA/IGl0ZW0uTm9tZSA6IGl0ZW0uRGVzY3JpY2FvLFxyXG4gICAgICAgICAgICBTZWxlY2lvbmFkbzogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdEFsbCgpe1xyXG5cclxuICAgICAgICBsZXQgcmVtb3ZlSXRlbXMgPSBuZXcgQXJyYXkoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYXV4ICE9IG51bGwpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm1vZGVsLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsW2ldLkF1eCA9PSB0aGlzLmF1eClcclxuICAgICAgICAgICAgICAgICAgICByZW1vdmVJdGVtcy5wdXNoKGkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZW1vdmVJdGVtcy5mb3JFYWNoKGluZGV4ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59IiwiPG1hdC1zZWxlY3Rpb24tbGlzdCBjbGFzcz1cImNvbC1tZC0xMiBtYi0zXCI+XHJcbiAgICA8bWF0LWxpc3Qtb3B0aW9uIGNsYXNzPVwic2lsdmVyXCIgKGNsaWNrKT1cInNlbGVjdEFsbCgpXCIgW3NlbGVjdGVkXT1cImdldE1vZGVsKCkubGVuZ3RoID09IDBcIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiAqbmdJZj1cImVuYWJsZWRjaGVja2FsbFwiPlxyXG4gICAgICAgIDxsYWJlbD57eyBsYWJlbHNlbGVjdGFsbCB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICA8L21hdC1saXN0LW9wdGlvbj5cclxuXHJcbiAgICA8bWF0LWxpc3Qtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldE1vZGVsKCk7IGxldCBpID0gaW5kZXhcIiBbbmdDbGFzc109XCJ7ICdzaWx2ZXInOiBpICUgMiA9PSAxIH1cIiBbc2VsZWN0ZWRdPVwiaXRlbS5TZWxlY2lvbmFkb1wiIChjbGljayk9XCJpdGVtLlNlbGVjaW9uYWRvID0gIWl0ZW0uU2VsZWNpb25hZG9cIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5EZXNjcmljYW8gPT0gbnVsbFwiIFtpbm5lckhUTUxdPVwiaXRlbS5Ob21lXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uRGVzY3JpY2FvICE9IG51bGxcIiBbaW5uZXJIVE1MXT1cIml0ZW0uRGVzY3JpY2FvXCI+PC9kaXY+XHJcbiAgICA8L21hdC1saXN0LW9wdGlvbj5cclxuPC9tYXQtc2VsZWN0aW9uLWxpc3Q+XHJcbiAgICBcclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4aXN0RGF0YSgpXCIgPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29sLW1kLTEyIG1iLTQgaW5wdXQtc2VhcmNoXCI+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwie3sgbWVzc2FnZSB8IHRyYW5zbGF0ZX19XCIgW25hbWVdPVwibmFtZVwiIGF1dG9jb21wbGV0ZT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiID5cclxuICAgICAgICA8bWF0LWljb24gbWF0U3VmZml4ID5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICAgIDxtYXQtaGludCBjbGFzcz1cIm10LTJcIj57eyBzdWJtZXNzYWdlIHwgdHJhbnNsYXRlfX08L21hdC1oaW50PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIFxyXG4gICAgPG1hdC1saXN0IGNsYXNzPVwiY29sLW1kLTEyXCIgPlxyXG4gICAgICAgIDxtYXQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldEZpbHRlcmVkRGF0YSgpOyBsZXQgaSA9IGluZGV4XCIgW25nQ2xhc3NdPVwieyAnc2lsdmVyJzogaSAlIDIgPT0gMCB9XCIgKGNsaWNrKT1cImFkZChpdGVtKVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5EZXNjcmljYW8gPT0gbnVsbFwiIFtpbm5lckhUTUxdPVwiaXRlbS5Ob21lXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLkRlc2NyaWNhbyAhPSBudWxsXCIgW2lubmVySFRNTF09XCJpdGVtLkRlc2NyaWNhb1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8bWF0LWljb24+YWRkX2NpcmNsZV9vdXRsaW5lPC9tYXQtaWNvbj5cclxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICA8L21hdC1saXN0PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbm9uZS1kYXRhXCIgKm5nSWY9XCIhZXhpc3REYXRhKClcIiA+XHJcbiAgICA8bWF0LWljb24+aW5mb19vdXRsaW5lPC9tYXQtaWNvbj4ge3sgJ05lbmh1bUl0ZW1FbmNvbnRyYWRvJyB8IHRyYW5zbGF0ZSB9fVxyXG48L2Rpdj4iXX0=