@dev-tcloud/tcloud-ui 4.2.1 → 5.0.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 (148) hide show
  1. package/README.md +106 -105
  2. package/datepicker/js/_info.txt +3 -3
  3. package/fesm2022/dev-tcloud-tcloud-ui.mjs +432 -365
  4. package/fesm2022/dev-tcloud-tcloud-ui.mjs.map +1 -1
  5. package/lib/_interfaces/theme.service.interface.d.ts +3 -0
  6. package/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.d.ts +1 -0
  7. package/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.d.ts +1 -1
  8. package/lib/_services/tcloud-ui-theme.services.d.ts +12 -0
  9. package/lib/tcloud-ui.config.d.ts +1 -0
  10. package/package.json +3 -5
  11. package/scss/components/custom/el-copy.scss +17 -17
  12. package/scss/components/custom/loading-transitions.scss +27 -27
  13. package/scss/components/custom/loading.scss +2 -2
  14. package/scss/components/custom/tab-menu.scss +57 -57
  15. package/scss/components/custom/table.scss +98 -98
  16. package/scss/components/custom/tooltip.scss +89 -89
  17. package/scss/components/custom/ui-datepicker.scss +15 -15
  18. package/scss/components/custom/validation.scss +7 -7
  19. package/scss/components/custom/variables.scss +32 -32
  20. package/scss/components/styles.scss +9 -9
  21. package/scss/tcloud/custom/alerts.scss +38 -37
  22. package/scss/tcloud/custom/buttons.scss +1002 -1002
  23. package/scss/tcloud/custom/card.scss +51 -51
  24. package/scss/tcloud/custom/colors.scss +97 -97
  25. package/scss/tcloud/custom/forms.scss +81 -81
  26. package/scss/tcloud/custom/layout.scss +5 -5
  27. package/scss/tcloud/custom/left-navigation.scss +47 -47
  28. package/scss/tcloud/custom/mixins.scss +318 -318
  29. package/scss/tcloud/custom/tcloud-prime.scss +4519 -4519
  30. package/scss/tcloud/custom/tcloud-standard.scss +121 -121
  31. package/scss/tcloud/custom/text.scss +57 -57
  32. package/scss/tcloud/custom/top-navigation.scss +59 -59
  33. package/scss/tcloud/custom/variables.scss +60 -60
  34. package/scss/tcloud/disaster-recovery/colors.scss +14 -14
  35. package/scss/tcloud/disaster-recovery/layout.scss +13 -13
  36. package/scss/tcloud/disaster-recovery/styles.scss +2 -2
  37. package/scss/tcloud/prime/cards-products.scss +333 -331
  38. package/scss/tcloud/prime/left-navigation.scss +329 -327
  39. package/scss/tcloud/prime/styles.scss +3 -3
  40. package/scss/tcloud/prime/tcloud-prime.scss +3874 -3872
  41. package/scss/tcloud/standard/left-navigation.scss +47 -47
  42. package/scss/tcloud/standard/styles.scss +3 -3
  43. package/scss/tcloud/standard/tcloud-standard.scss +125 -125
  44. package/scss/tcloud/standard/top-navigation.scss +61 -61
  45. package/scss/tcloud/styles.scss +19 -19
  46. package/scss/tcloud/tcloud-ui.scss +7 -7
  47. package/esm2022/dev-tcloud-tcloud-ui.mjs +0 -5
  48. package/esm2022/lib/_directives/align/align.directive.mjs +0 -42
  49. package/esm2022/lib/_directives/currency/currency.directive.mjs +0 -160
  50. package/esm2022/lib/_directives/directives.module.mjs +0 -76
  51. package/esm2022/lib/_directives/el-copy/el-copy.directive.mjs +0 -68
  52. package/esm2022/lib/_directives/hover-parent/hover-parent.directive.mjs +0 -58
  53. package/esm2022/lib/_directives/tcloud-access/tcloud-ui-check-access.directive.mjs +0 -66
  54. package/esm2022/lib/_directives/tcloud-access/tcloud-ui-ng-check-access.directive.mjs +0 -50
  55. package/esm2022/lib/_directives/tcloud-access/tcloud-ui-ng-feature-flags.directive.mjs +0 -44
  56. package/esm2022/lib/_directives/tcloud-ui-digit-only.directive.mjs +0 -64
  57. package/esm2022/lib/_directives/tcloud-ui-highlight.diretive.mjs +0 -36
  58. package/esm2022/lib/_directives/tcloud-ui-ip-mask.directive.mjs +0 -54
  59. package/esm2022/lib/_directives/tooltip/tooltip.directive.mjs +0 -196
  60. package/esm2022/lib/_interfaces/user.service.interface.mjs +0 -2
  61. package/esm2022/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component.mjs +0 -35
  62. package/esm2022/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component.mjs +0 -54
  63. package/esm2022/lib/_modules/tcloud-ui-accordion/services/tcloud-ui-accordion.service.mjs +0 -38
  64. package/esm2022/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.mjs +0 -75
  65. package/esm2022/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.module.mjs +0 -35
  66. package/esm2022/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component.mjs +0 -87
  67. package/esm2022/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.module.mjs +0 -32
  68. package/esm2022/lib/_modules/tcloud-ui-data-list/services/data-list.service.mjs +0 -38
  69. package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component.mjs +0 -65
  70. package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.mjs +0 -317
  71. package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.mjs +0 -3
  72. package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.module.mjs +0 -37
  73. package/esm2022/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.mjs +0 -440
  74. package/esm2022/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module.mjs +0 -32
  75. package/esm2022/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs +0 -320
  76. package/esm2022/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module.mjs +0 -40
  77. package/esm2022/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.mjs +0 -213
  78. package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.mjs +0 -537
  79. package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.mjs +0 -20
  80. package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module.mjs +0 -45
  81. package/esm2022/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component.mjs +0 -142
  82. package/esm2022/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.module.mjs +0 -32
  83. package/esm2022/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.component.mjs +0 -66
  84. package/esm2022/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.module.mjs +0 -32
  85. package/esm2022/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component.mjs +0 -36
  86. package/esm2022/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.module.mjs +0 -31
  87. package/esm2022/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component.mjs +0 -93
  88. package/esm2022/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.module.mjs +0 -25
  89. package/esm2022/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component.mjs +0 -43
  90. package/esm2022/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.mjs +0 -2
  91. package/esm2022/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.module.mjs +0 -19
  92. package/esm2022/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component.mjs +0 -65
  93. package/esm2022/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.module.mjs +0 -25
  94. package/esm2022/lib/_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component.mjs +0 -11
  95. package/esm2022/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.component.mjs +0 -29
  96. package/esm2022/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.module.mjs +0 -21
  97. package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component.mjs +0 -14
  98. package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component.mjs +0 -61
  99. package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component.mjs +0 -24
  100. package/esm2022/lib/_modules/tcloud-ui-modal/services/tcloud-modal.service.mjs +0 -63
  101. package/esm2022/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.mjs +0 -203
  102. package/esm2022/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.mjs +0 -2
  103. package/esm2022/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.module.mjs +0 -47
  104. package/esm2022/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component.mjs +0 -155
  105. package/esm2022/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.module.mjs +0 -28
  106. package/esm2022/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component.mjs +0 -170
  107. package/esm2022/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.module.mjs +0 -28
  108. package/esm2022/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.mjs +0 -348
  109. package/esm2022/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.module.mjs +0 -36
  110. package/esm2022/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.component.mjs +0 -20
  111. package/esm2022/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.module.mjs +0 -25
  112. package/esm2022/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.component.mjs +0 -33
  113. package/esm2022/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.module.mjs +0 -28
  114. package/esm2022/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component.mjs +0 -165
  115. package/esm2022/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.module.mjs +0 -21
  116. package/esm2022/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component.mjs +0 -105
  117. package/esm2022/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.mjs +0 -2
  118. package/esm2022/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.module.mjs +0 -24
  119. package/esm2022/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component.mjs +0 -46
  120. package/esm2022/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.module.mjs +0 -25
  121. package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component.mjs +0 -36
  122. package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component.mjs +0 -85
  123. package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component.mjs +0 -69
  124. package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component.mjs +0 -71
  125. package/esm2022/lib/_modules/tcloud-ui-tab-menu/services/tab-menu.service.mjs +0 -104
  126. package/esm2022/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component.mjs +0 -64
  127. package/esm2022/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.mjs +0 -2
  128. package/esm2022/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.module.mjs +0 -45
  129. package/esm2022/lib/_modules/tcloud-ui-table/tcloud-ui-table.component.mjs +0 -21
  130. package/esm2022/lib/_modules/tcloud-ui-table/tcloud-ui-table.module.mjs +0 -25
  131. package/esm2022/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component.mjs +0 -37
  132. package/esm2022/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.module.mjs +0 -25
  133. package/esm2022/lib/_pipes/array-to-text.mjs +0 -29
  134. package/esm2022/lib/_pipes/bytes.mjs +0 -31
  135. package/esm2022/lib/_pipes/cnpj.mjs +0 -37
  136. package/esm2022/lib/_pipes/cpf.mjs +0 -37
  137. package/esm2022/lib/_pipes/datebr.mjs +0 -102
  138. package/esm2022/lib/_pipes/index.mjs +0 -9
  139. package/esm2022/lib/_pipes/monthname.mjs +0 -25
  140. package/esm2022/lib/_pipes/respective.mjs +0 -73
  141. package/esm2022/lib/_pipes/statusinfo.mjs +0 -78
  142. package/esm2022/lib/_pipes/tcloud-pipes.module.mjs +0 -75
  143. package/esm2022/lib/_services/loading-transitions.service.mjs +0 -52
  144. package/esm2022/lib/_services/search-in-object.service.mjs +0 -99
  145. package/esm2022/lib/_services/tcloud-ui-check-access.service.mjs +0 -170
  146. package/esm2022/lib/tcloud-ui.config.mjs +0 -2
  147. package/esm2022/lib/tcloud-ui.module.mjs +0 -235
  148. package/esm2022/public-api.mjs +0 -116
@@ -1,317 +0,0 @@
1
- import { DataListService } from './services/data-list.service';
2
- import { Component, forwardRef, Output, EventEmitter, Input } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./services/data-list.service";
6
- import * as i2 from "@angular/forms";
7
- import * as i3 from "@angular/common";
8
- import * as i4 from "./tcloud-ui-data-list-option/tcloud-ui-data-list-option.component";
9
- const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
10
- provide: NG_VALUE_ACCESSOR,
11
- useExisting: forwardRef(() => TCloudUiDataListComponent),
12
- multi: true
13
- };
14
- const noop = () => {
15
- };
16
- export class TCloudUiDataListComponent {
17
- set disabled(v) {
18
- if (typeof v === 'boolean' && v !== this._disabled) {
19
- this._disabled = v;
20
- //this.selected_description = '';
21
- //this.selected_item ='';
22
- this.toChange();
23
- }
24
- }
25
- get disabled() { return this._disabled; }
26
- set loading(v) {
27
- if (typeof v === 'boolean' && v !== this._loading) {
28
- this._loading = v;
29
- //this.selected_description = '';
30
- //this.selected_item = '';
31
- this.toChange();
32
- }
33
- }
34
- get loading() { return this._loading; }
35
- set listItems(v) {
36
- if (v && (v).length > 0) {
37
- this._listItems = v;
38
- }
39
- }
40
- get listItems() { return this._listItems; }
41
- set open(v) {
42
- if (v !== this._open) {
43
- this._open = v;
44
- if (v) {
45
- this.menu_show = false;
46
- setTimeout(() => { this.toOpen(); });
47
- }
48
- }
49
- }
50
- get open() { return this._open; }
51
- set ngModel(v) {
52
- this.selected_item = v;
53
- this.selectDescription();
54
- }
55
- constructor(dataListService, formBuilder) {
56
- this.dataListService = dataListService;
57
- this.formBuilder = formBuilder;
58
- this.viewport_width = 0;
59
- this.viewport_height = 0;
60
- this.box_height = 0;
61
- this.box_style = '';
62
- this.menu_on_top = '';
63
- this.placeholder = '';
64
- this._disabled = false;
65
- this._loading = false;
66
- this.showInput = true;
67
- this.search = true;
68
- this._listItems = [];
69
- this._open = false;
70
- this.border = true;
71
- this.onInputChange = new EventEmitter();
72
- this.onChange = new EventEmitter();
73
- this.onOpened = new EventEmitter();
74
- this.onClosed = new EventEmitter();
75
- this.ngModelChange = new EventEmitter();
76
- this.list_selected_options = new Array();
77
- this.menu_show = false;
78
- this.search_text = '';
79
- this.id = '';
80
- //Placeholders for the callbacks which are later providesd
81
- //by the Control Value Accessor
82
- this.onTouchedCallback = noop;
83
- this.onChangeCallback = noop;
84
- this.subscription_value = this.dataListService.stateValue$.subscribe(v => {
85
- this.selected_item = v;
86
- this.selectDescription();
87
- this.ngModelChange.emit(this.selected_item);
88
- });
89
- this.subscription_description = this.dataListService.stateDescription$.subscribe(v => {
90
- this.selected_description = v;
91
- });
92
- this.subscription_options = this.dataListService.stateOptions$.subscribe((v) => {
93
- if (v && v.value) {
94
- (this.list_selected_options).push(v);
95
- }
96
- });
97
- }
98
- ngOnInit() {
99
- this.id = this.generateID();
100
- this.formulario = this.formBuilder.group({
101
- "selected_item": new FormControl('', []),
102
- });
103
- this.toResize();
104
- this.toClick();
105
- }
106
- ngAfterViewChecked() {
107
- this.t_fc = undefined;
108
- this.t_fc = this.get_selected_description();
109
- }
110
- get_selected_description() {
111
- if (this.list_selected_options && (this.list_selected_options).length > 0) {
112
- for (let i = 0; i < (this.list_selected_options).length; i++) {
113
- const item = this.list_selected_options[i];
114
- if (item.value === this.selected_item) {
115
- if (this.selected_description !== item.description) {
116
- if (item.description && item.description !== this.selected_description) {
117
- setTimeout(() => {
118
- this.selected_description = item.description;
119
- this.dataListService.setActiveItem(this.selected_item);
120
- });
121
- }
122
- }
123
- break;
124
- }
125
- }
126
- }
127
- }
128
- generateID() {
129
- return `data-list-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;
130
- }
131
- ngOnDestroy() {
132
- if (this.subscription_value) {
133
- this.subscription_value.unsubscribe();
134
- }
135
- if (this.subscription_description) {
136
- this.subscription_description.unsubscribe();
137
- }
138
- if (this.subscription_options) {
139
- this.subscription_options.unsubscribe();
140
- }
141
- }
142
- toSearch(e) {
143
- let input = (e && e.target && e.target.value) ? e.target.value : '';
144
- let filter = (((input).normalize('NFD').replace(/[\u0300-\u036f]/g, "")).trim()).toLowerCase();
145
- let ul = document.getElementById(`${this.id}-options`);
146
- if (ul) {
147
- let li = ul.getElementsByTagName("button");
148
- for (let i = 0; i < li.length; i++) {
149
- const a = li[i];
150
- const txtValue = (((a.textContent || a.innerText).normalize('NFD').replace(/[\u0300-\u036f]/g, "")).trim()).toLowerCase();
151
- if (txtValue.indexOf(filter) > -1) {
152
- li[i].style.display = "";
153
- }
154
- else {
155
- li[i].style.display = "none";
156
- }
157
- }
158
- }
159
- }
160
- selectDescription() {
161
- if (this.list_selected_options && (this.list_selected_options).length > 0) {
162
- for (let i = 0; i < (this.list_selected_options).length; i++) {
163
- const item = this.list_selected_options[i];
164
- if (item.value === this.selected_item) {
165
- this.selected_description = item.description;
166
- this.toChange();
167
- return;
168
- }
169
- }
170
- }
171
- if (this.selected_item === undefined || this.selected_item === null || this.selected_item === '') {
172
- this.selected_description = '';
173
- this.toChange();
174
- }
175
- }
176
- toInput(e) {
177
- this.onInputChange.emit(this.selected_description);
178
- this.onChange.emit(e);
179
- }
180
- toChange() {
181
- setTimeout(() => {
182
- if (this.selected_item === undefined || this.selected_item === null) {
183
- this.selected_item = '';
184
- }
185
- this.toSearch('');
186
- this.search_text = '';
187
- this.dataListService.setActiveItem(this.selected_item);
188
- this.onInputChange.emit(this.selected_description);
189
- if (this.formulario) {
190
- this.formulario?.get('selected_item')?.setValue(this.selected_item);
191
- // const input_hidden = document.getElementById(`${this.id}-hidden`);
192
- this.toInput(this.formulario.get('selected_item'));
193
- }
194
- });
195
- }
196
- clearTextSearch() {
197
- this.search_text = '';
198
- this.toSearch('');
199
- }
200
- toOpen() {
201
- this.menu_show = !this.menu_show;
202
- this.resolve_position_dropdown(this.menu_show);
203
- this.onOpened.emit();
204
- }
205
- resolve_position_dropdown(open) {
206
- if (open) {
207
- this.box_style = '';
208
- this.menu_on_top = '';
209
- const id = `${this.id}`;
210
- const box = `box-${this.id}`;
211
- if (this.viewport_height === 0) {
212
- this.viewport_height = window.innerWidth;
213
- }
214
- const rect = document.getElementById(id)?.getBoundingClientRect();
215
- const box_position = rect?.bottom || 0;
216
- setTimeout(() => {
217
- this.box_height = document.getElementById(box)?.clientHeight || 0;
218
- if ((this.viewport_height - box_position) < this.box_height) {
219
- this.menu_on_top = 'menu-on-top';
220
- this.box_style = `top: -${(this.box_height)}px; height: ${this.box_height}px;`;
221
- }
222
- });
223
- }
224
- }
225
- toClose() {
226
- this.menu_show = false;
227
- this.onClosed.emit();
228
- }
229
- toResize() {
230
- window.addEventListener('resize', () => {
231
- this.viewport_width = window.innerWidth;
232
- this.viewport_height = window.innerHeight;
233
- this.resolve_position_dropdown(this.menu_show);
234
- });
235
- }
236
- toClick() {
237
- const box = `area-${this.id}`;
238
- window.addEventListener('click', (e) => {
239
- if (this.menu_show) {
240
- if (!(document.getElementById(box)?.contains(e.target))) {
241
- this.toClose();
242
- }
243
- }
244
- });
245
- }
246
- //get accessor
247
- get value() {
248
- return this.selected_item;
249
- }
250
- ;
251
- //set accessor including call the onchange callback
252
- set value(v) {
253
- if (v !== this.selected_item) {
254
- this.selected_item = v;
255
- this.onChangeCallback(v);
256
- }
257
- }
258
- //Set touched on blur
259
- onBlur() {
260
- this.onTouchedCallback();
261
- }
262
- //From ControlValueAccessor interface
263
- writeValue(value) {
264
- if (value !== this.selected_item) {
265
- this.selected_item = value;
266
- }
267
- }
268
- //From ControlValueAccessor interface
269
- registerOnChange(fn) {
270
- this.onChangeCallback = fn;
271
- }
272
- //From ControlValueAccessor interface
273
- registerOnTouched(fn) {
274
- this.onTouchedCallback = fn;
275
- }
276
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TCloudUiDataListComponent, deps: [{ token: i1.DataListService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
277
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: TCloudUiDataListComponent, selector: "tcloud-ui-data-list", inputs: { placeholder: "placeholder", disabled: "disabled", loading: "loading", showInput: "showInput", search: "search", listItems: "listItems", open: "open", border: "border", ngModel: "ngModel" }, outputs: { onInputChange: "onInputChange", onChange: "onChange", onOpened: "onOpened", onClosed: "onClosed", ngModelChange: "ngModelChange" }, providers: [
278
- DataListService,
279
- CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR
280
- ], ngImport: i0, template: "<div *ngIf=\"formulario\" id=\"area-{{ id }}\" class=\"tcloud-ui-data-list tc-dropdown\" [class.disabled]=\"disabled || loading\">\r\n <div *ngIf=\"loading\" class=\"loading-area\">\r\n <i class=\"fas fa-spinner fa-spin\"></i>\r\n </div>\r\n <!-- [attr.data-bs-toggle]=\"'dropdown'\" -->\r\n <button \r\n #_option\r\n [class.input-hidden]=\"!showInput\"\r\n [class.in-border]=\"border\"\r\n [class.loading-box]=\"loading\"\r\n [disabled]=\"disabled || loading\"\r\n class=\"dropdown-toggle button-select no-margin-bottom area-text\" \r\n type=\"button\" \r\n id=\"{{ id }}\" \r\n \r\n [attr.aria-haspopup]=\"'true'\" \r\n [attr.aria-expanded]=\"'false'\" \r\n (click)=\"toOpen();toInput(_option)\" >\r\n\r\n <i class=\"tc-placeholder area-text\" *ngIf=\"(selected_description === undefined || selected_description === null || selected_description === '' ) && !loading \">{{ placeholder }}</i>\r\n {{ selected_description }}\r\n <span><i class=\"fas fa-angle-down\"></i></span>\r\n </button>\r\n <div class=\"tc-dropdown-menu {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!menu_show\" [style]=\"box_style\">\r\n\r\n <div class=\"line-search\" *ngIf=\"search\">\r\n <table class=\"box-search\">\r\n <tr>\r\n\r\n <td class=\"area-input\">\r\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \r\n </td>\r\n\r\n <td class=\"area-icon\">\r\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\r\n <button type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\r\n </td>\r\n \r\n </tr>\r\n </table>\r\n </div>\r\n \r\n <div class=\"area-options\" id=\"{{ id }}-options\" (click)=\"toClose()\">\r\n <ng-content></ng-content> \r\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\r\n <ng-container *ngFor=\"let item of listItems\">\r\n <tcloud-ui-data-list-option [value]=\"item.value\" [disabled]=\"item?.disabled\" >{{ item?.description }}</tcloud-ui-data-list-option>\r\n </ng-container>\r\n </ng-container> \r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"formulario\">\r\n <form [formGroup]=\"formulario\" style=\"display: none;\" >\r\n <input id=\"{{ id }}-hidden\" formControlName=\"selected_item\" type=\"hidden\">\r\n </form>\r\n</div>\r\n", styles: [".dropdown-toggle:after{display:none!important}i.tc-placeholder{font-style:italic;color:#999;text-transform:none!important}.in-border{border:1px solid #ccc!important}.tc-dropdown{position:relative}.tc-dropdown .button-select{width:100%;background-color:#fff;border:none;height:35px;text-align:left;padding-left:15px;font-size:14px;color:#666;padding-right:30px}.tc-dropdown .button-select span{position:absolute;right:6px;top:7px}.tc-dropdown .area-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tc-dropdown .tc-dropdown-menu{width:100%;border:1px solid #ccc;background-color:#fff;position:absolute;z-index:1}.tc-dropdown .area-options{max-height:200px;overflow-y:scroll;overflow-x:hidden}.tc-dropdown .menu-on-top{position:absolute}.line-search{padding:3px}.line-search .box-search{width:100%;border-collapse:collapse}.line-search .box-search td.area-icon{padding:4px 0 2px 8px;width:35px}.line-search .box-search td.area-icon .icon-search{color:#666}.line-search .box-search td.area-icon button{border:none;background-color:transparent;color:#999;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-search .box-search td.area-input{border:none}.line-search .box-search td.area-input input{width:100%}.line-search .box-search input{width:100%;font-size:13px;height:33px;border:1px solid #ccc;padding:10px}.loading-area{line-height:0;position:relative;height:0;bottom:-10px;left:10px}button:disabled{background-color:#eee!important;border:1px solid #ececec!important;cursor:not-allowed}.loading-box{cursor:progress!important}.disabled i{color:#999!important}.to-hide{display:none}.no-margin-bottom{margin-bottom:0!important}.input-hidden{display:none!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.TCloudUiDataListOptionComponent, selector: "tcloud-ui-data-list-option", inputs: ["disabled", "value"], outputs: ["selected"] }] }); }
281
- }
282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TCloudUiDataListComponent, decorators: [{
283
- type: Component,
284
- args: [{ selector: 'tcloud-ui-data-list', providers: [
285
- DataListService,
286
- CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR
287
- ], template: "<div *ngIf=\"formulario\" id=\"area-{{ id }}\" class=\"tcloud-ui-data-list tc-dropdown\" [class.disabled]=\"disabled || loading\">\r\n <div *ngIf=\"loading\" class=\"loading-area\">\r\n <i class=\"fas fa-spinner fa-spin\"></i>\r\n </div>\r\n <!-- [attr.data-bs-toggle]=\"'dropdown'\" -->\r\n <button \r\n #_option\r\n [class.input-hidden]=\"!showInput\"\r\n [class.in-border]=\"border\"\r\n [class.loading-box]=\"loading\"\r\n [disabled]=\"disabled || loading\"\r\n class=\"dropdown-toggle button-select no-margin-bottom area-text\" \r\n type=\"button\" \r\n id=\"{{ id }}\" \r\n \r\n [attr.aria-haspopup]=\"'true'\" \r\n [attr.aria-expanded]=\"'false'\" \r\n (click)=\"toOpen();toInput(_option)\" >\r\n\r\n <i class=\"tc-placeholder area-text\" *ngIf=\"(selected_description === undefined || selected_description === null || selected_description === '' ) && !loading \">{{ placeholder }}</i>\r\n {{ selected_description }}\r\n <span><i class=\"fas fa-angle-down\"></i></span>\r\n </button>\r\n <div class=\"tc-dropdown-menu {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!menu_show\" [style]=\"box_style\">\r\n\r\n <div class=\"line-search\" *ngIf=\"search\">\r\n <table class=\"box-search\">\r\n <tr>\r\n\r\n <td class=\"area-input\">\r\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \r\n </td>\r\n\r\n <td class=\"area-icon\">\r\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\r\n <button type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\r\n </td>\r\n \r\n </tr>\r\n </table>\r\n </div>\r\n \r\n <div class=\"area-options\" id=\"{{ id }}-options\" (click)=\"toClose()\">\r\n <ng-content></ng-content> \r\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\r\n <ng-container *ngFor=\"let item of listItems\">\r\n <tcloud-ui-data-list-option [value]=\"item.value\" [disabled]=\"item?.disabled\" >{{ item?.description }}</tcloud-ui-data-list-option>\r\n </ng-container>\r\n </ng-container> \r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"formulario\">\r\n <form [formGroup]=\"formulario\" style=\"display: none;\" >\r\n <input id=\"{{ id }}-hidden\" formControlName=\"selected_item\" type=\"hidden\">\r\n </form>\r\n</div>\r\n", styles: [".dropdown-toggle:after{display:none!important}i.tc-placeholder{font-style:italic;color:#999;text-transform:none!important}.in-border{border:1px solid #ccc!important}.tc-dropdown{position:relative}.tc-dropdown .button-select{width:100%;background-color:#fff;border:none;height:35px;text-align:left;padding-left:15px;font-size:14px;color:#666;padding-right:30px}.tc-dropdown .button-select span{position:absolute;right:6px;top:7px}.tc-dropdown .area-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tc-dropdown .tc-dropdown-menu{width:100%;border:1px solid #ccc;background-color:#fff;position:absolute;z-index:1}.tc-dropdown .area-options{max-height:200px;overflow-y:scroll;overflow-x:hidden}.tc-dropdown .menu-on-top{position:absolute}.line-search{padding:3px}.line-search .box-search{width:100%;border-collapse:collapse}.line-search .box-search td.area-icon{padding:4px 0 2px 8px;width:35px}.line-search .box-search td.area-icon .icon-search{color:#666}.line-search .box-search td.area-icon button{border:none;background-color:transparent;color:#999;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-search .box-search td.area-input{border:none}.line-search .box-search td.area-input input{width:100%}.line-search .box-search input{width:100%;font-size:13px;height:33px;border:1px solid #ccc;padding:10px}.loading-area{line-height:0;position:relative;height:0;bottom:-10px;left:10px}button:disabled{background-color:#eee!important;border:1px solid #ececec!important;cursor:not-allowed}.loading-box{cursor:progress!important}.disabled i{color:#999!important}.to-hide{display:none}.no-margin-bottom{margin-bottom:0!important}.input-hidden{display:none!important}\n"] }]
288
- }], ctorParameters: () => [{ type: i1.DataListService }, { type: i2.FormBuilder }], propDecorators: { placeholder: [{
289
- type: Input
290
- }], disabled: [{
291
- type: Input
292
- }], loading: [{
293
- type: Input
294
- }], showInput: [{
295
- type: Input
296
- }], search: [{
297
- type: Input
298
- }], listItems: [{
299
- type: Input
300
- }], open: [{
301
- type: Input
302
- }], border: [{
303
- type: Input
304
- }], onInputChange: [{
305
- type: Output
306
- }], onChange: [{
307
- type: Output
308
- }], onOpened: [{
309
- type: Output
310
- }], onClosed: [{
311
- type: Output
312
- }], ngModel: [{
313
- type: Input
314
- }], ngModelChange: [{
315
- type: Output
316
- }] } });
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGEtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGEtbGlzdC90Y2xvdWQtdWktZGF0YS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFhLEtBQUssRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLGlCQUFpQixFQUFrQyxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBSWhHLE1BQU0sbUNBQW1DLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO0lBQ3hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFZRixNQUFNLE9BQU8seUJBQXlCO0lBV3BDLElBQWEsUUFBUSxDQUFDLENBQUM7UUFDckIsSUFBSSxPQUFPLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztZQUNuQixpQ0FBaUM7WUFDakMseUJBQXlCO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztR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LEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUdPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBUU8sSUFBSTtzQkFBaEIsS0FBSztnQkFhRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFHTSxPQUFPO3NCQUFuQixLQUFLO2dCQUlJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhTGlzdFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RhdGEtbGlzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIElucHV0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIE5nRm9ybSwgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJU2VsZWN0T3B0aW9ucyB9IGZyb20gJy4vdGNsb3VkLXVpLWRhdGEtbGlzdCc7XHJcblxyXG5jb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRDbG91ZFVpRGF0YUxpc3RDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5jb25zdCBub29wID0gKCkgPT4ge1xyXG59O1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLWRhdGEtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIERhdGFMaXN0U2VydmljZSwgXHJcbiAgICBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUlxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURhdGFMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xyXG5cclxuICB2aWV3cG9ydF93aWR0aDogbnVtYmVyID0gMDtcclxuICB2aWV3cG9ydF9oZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgYm94X2hlaWdodDogbnVtYmVyID0gMDtcclxuICBib3hfc3R5bGU6IHN0cmluZyA9ICcnO1xyXG4gIG1lbnVfb25fdG9wOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2KXtcclxuICAgIGlmKCB0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nICYmIHYgIT09IHRoaXMuX2Rpc2FibGVkICl7XHJcbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gdjsgICAgXHJcbiAgICAgIC8vdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgICAvL3RoaXMuc2VsZWN0ZWRfaXRlbSA9Jyc7XHJcbiAgICAgIHRoaXMudG9DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGRpc2FibGVkKCk6Ym9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZDsgfVxyXG5cclxuICBwcml2YXRlIF9sb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IGxvYWRpbmcodjogYm9vbGVhbil7XHJcbiAgICBpZiggdHlwZW9mIHYgPT09ICdib29sZWFuJyAmJiB2ICE9PSB0aGlzLl9sb2FkaW5nICl7XHJcbiAgICAgIHRoaXMuX2xvYWRpbmcgPSB2OyAgICBcclxuICAgICAgLy90aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gJyc7XHJcbiAgICAgIC8vdGhpcy5zZWxlY3RlZF9pdGVtID0gJyc7XHJcbiAgICAgIHRoaXMudG9DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGxvYWRpbmcoKTpib29sZWFuIHsgcmV0dXJuIHRoaXMuX2xvYWRpbmc7IH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIHNob3dJbnB1dDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcclxuICBcclxuICBwcml2YXRlIF9saXN0SXRlbXM6IElTZWxlY3RPcHRpb25zW10gPSBbXTtcclxuICBASW5wdXQoKSBzZXQgbGlzdEl0ZW1zKHY6IElTZWxlY3RPcHRpb25zW10pe1xyXG4gICAgaWYoIHYgJiYgKHYpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgdGhpcy5fbGlzdEl0ZW1zID0gdjtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGxpc3RJdGVtcygpOklTZWxlY3RPcHRpb25zW10geyByZXR1cm4gdGhpcy5fbGlzdEl0ZW1zOyB9XHJcblxyXG4gIHByaXZhdGUgX29wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgb3Blbih2OiBib29sZWFuKXtcclxuICAgIGlmKCB2ICE9PSB0aGlzLl9vcGVuICl7XHJcbiAgICAgIHRoaXMuX29wZW4gPSB2O1xyXG4gICAgICBpZiggdiApe1xyXG4gICAgICAgIHRoaXMubWVudV9zaG93ID0gZmFsc2U7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKT0+eyB0aGlzLnRvT3BlbigpOyB9KTsgICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldCBvcGVuKCk6Ym9vbGVhbiB7IHJldHVybiB0aGlzLl9vcGVuOyB9XHJcblxyXG4gIFxyXG4gIFxyXG4gIEBJbnB1dCgpIGJvcmRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSBvbklucHV0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJU2VsZWN0T3B0aW9ucz4oKTtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElTZWxlY3RPcHRpb25zPigpO1xyXG5cclxuICBAT3V0cHV0KCkgb25PcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb25DbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfbmdNb2RlbDogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNldCBuZ01vZGVsKHY6IGFueSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkX2l0ZW0gPSB2OyAgICBcclxuICAgIHRoaXMuc2VsZWN0RGVzY3JpcHRpb24oKTsgICBcclxuICB9XHJcbiAgQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgbGlzdF9zZWxlY3RlZF9vcHRpb25zID0gbmV3IEFycmF5PElTZWxlY3RPcHRpb25zPigpO1xyXG5cclxuICBzZWxlY3RlZF9pdGVtOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgc2VsZWN0ZWRfZGVzY3JpcHRpb246IGFueSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25fdmFsdWU6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbl9kZXNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uX29wdGlvbnM6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgbWVudV9zaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VhcmNoX3RleHQ6IHN0cmluZyA9ICcnO1xyXG4gIGlkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgZm9ybXVsYXJpbzogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0YUxpc3RTZXJ2aWNlOiBEYXRhTGlzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlclxyXG4gICl7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25fdmFsdWUgPSB0aGlzLmRhdGFMaXN0U2VydmljZS5zdGF0ZVZhbHVlJC5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRfaXRlbSA9IHY7ICAgICAgXHJcbiAgICAgIHRoaXMuc2VsZWN0RGVzY3JpcHRpb24oKTtcclxuICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZF9pdGVtKTtcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25fZGVzY3JpcHRpb24gPSB0aGlzLmRhdGFMaXN0U2VydmljZS5zdGF0ZURlc2NyaXB0aW9uJC5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24gPSB2OyAgICAgIFxyXG4gICAgfSlcclxuXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25fb3B0aW9ucyA9IHRoaXMuZGF0YUxpc3RTZXJ2aWNlLnN0YXRlT3B0aW9ucyQuc3Vic2NyaWJlKCh2OmFueSkgPT4ge1xyXG4gICAgICBpZiggdiAmJiB2LnZhbHVlICl7XHJcbiAgICAgICAgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5wdXNoKHYpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCl7XHJcblxyXG4gICAgXHJcblxyXG4gICAgdGhpcy5pZCA9IHRoaXMuZ2VuZXJhdGVJRCgpO1xyXG5cclxuICAgIHRoaXMuZm9ybXVsYXJpbyA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBcInNlbGVjdGVkX2l0ZW1cIjogbmV3IEZvcm1Db250cm9sKCcnLFtdKSxcclxuICAgIH0pXHJcblxyXG4gICAgXHJcblxyXG4gICAgdGhpcy50b1Jlc2l6ZSgpO1xyXG4gICAgdGhpcy50b0NsaWNrKCk7XHJcbiAgfVxyXG5cclxuICB0X2ZjOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy50X2ZjID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50X2ZjID0gdGhpcy5nZXRfc2VsZWN0ZWRfZGVzY3JpcHRpb24oKTtcclxuICB9XHJcblxyXG4gIGdldF9zZWxlY3RlZF9kZXNjcmlwdGlvbigpOiB2b2lke1xyXG4gICAgaWYoIHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zICYmICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnNbaV07XHJcbiAgICAgICAgaWYoIGl0ZW0udmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRfaXRlbSApeyAgICAgICAgIFxyXG4gICAgICAgICAgaWYoIHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24gIT09IGl0ZW0uZGVzY3JpcHRpb24gKXtcclxuICAgICAgICAgICAgaWYoIGl0ZW0uZGVzY3JpcHRpb24gJiYgaXRlbS5kZXNjcmlwdGlvbiAhPT0gdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiApe1xyXG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9IGl0ZW0uZGVzY3JpcHRpb247IFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc2V0QWN0aXZlSXRlbSh0aGlzLnNlbGVjdGVkX2l0ZW0pO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ICAgICAgICBcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlSUQoKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIGBkYXRhLWxpc3QtJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9YDtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uX3ZhbHVlICl7IHRoaXMuc3Vic2NyaXB0aW9uX3ZhbHVlLnVuc3Vic2NyaWJlKCk7IH0gICAgXHJcbiAgICBpZiggdGhpcy5zdWJzY3JpcHRpb25fZGVzY3JpcHRpb24gKXsgdGhpcy5zdWJzY3JpcHRpb25fZGVzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsgfSBcclxuICAgIGlmKCB0aGlzLnN1YnNjcmlwdGlvbl9vcHRpb25zICl7IHRoaXMuc3Vic2NyaXB0aW9uX29wdGlvbnMudW5zdWJzY3JpYmUoKTsgfSBcclxuICB9XHJcblxyXG4gIHRvU2VhcmNoKGU6IGFueSkge1xyXG4gICAgbGV0IGlucHV0ID0gKGUgJiYgZS50YXJnZXQgJiYgZS50YXJnZXQudmFsdWUpID8gZS50YXJnZXQudmFsdWUgOiAnJztcclxuICAgIFxyXG4gICAgbGV0IGZpbHRlciA9ICggKCAoaW5wdXQpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIikgKS50cmltKCkgKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgbGV0IHVsID0gPGFueT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5pZH0tb3B0aW9uc2ApO1xyXG4gICAgaWYoIHVsICl7XHJcbiAgICAgIGxldCBsaSA9IHVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiYnV0dG9uXCIpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBhID0gbGlbaV07XHJcbiAgICAgICAgICBjb25zdCB0eHRWYWx1ZSA9ICggKCAoIGEudGV4dENvbnRlbnQgfHwgYS5pbm5lclRleHQgKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpICkudHJpbSgpICkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgIGlmICh0eHRWYWx1ZS5pbmRleE9mKGZpbHRlcikgPiAtMSkge1xyXG4gICAgICAgICAgICAgIGxpW2ldLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBsaVtpXS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdERlc2NyaXB0aW9uKCl7XHJcbiAgICBpZiggdGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnMgJiYgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9uc1tpXTtcclxuICAgICAgICBpZiggaXRlbS52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZF9pdGVtICl7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gaXRlbS5kZXNjcmlwdGlvbjtcclxuICAgICAgICAgIHRoaXMudG9DaGFuZ2UoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggdGhpcy5zZWxlY3RlZF9pdGVtID09PSB1bmRlZmluZWQgfHwgdGhpcy5zZWxlY3RlZF9pdGVtID09PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRfaXRlbSA9PT0gJycgKXtcclxuICAgICAgdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgICB0aGlzLnRvQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIFxyXG4gIHRvSW5wdXQoZTogYW55KXtcclxuICAgIHRoaXMub25JbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24pO1xyXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgdG9DaGFuZ2UoKXtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiggdGhpcy5zZWxlY3RlZF9pdGVtID09PSB1bmRlZmluZWQgfHwgdGhpcy5zZWxlY3RlZF9pdGVtID09PSBudWxsICl7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50b1NlYXJjaCgnJyk7XHJcbiAgICAgIHRoaXMuc2VhcmNoX3RleHQgPSAnJztcclxuICAgICAgdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc2V0QWN0aXZlSXRlbSh0aGlzLnNlbGVjdGVkX2l0ZW0pO1xyXG5cclxuICAgICAgdGhpcy5vbklucHV0Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbik7XHJcblxyXG4gICAgICBpZiggdGhpcy5mb3JtdWxhcmlvICl7XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhcmlvPy5nZXQoJ3NlbGVjdGVkX2l0ZW0nKT8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZF9pdGVtKTtcclxuICAgICAgICAvLyBjb25zdCBpbnB1dF9oaWRkZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLmlkfS1oaWRkZW5gKTtcclxuICAgICAgICB0aGlzLnRvSW5wdXQodGhpcy5mb3JtdWxhcmlvLmdldCgnc2VsZWN0ZWRfaXRlbScpKTtcclxuICAgICAgfSAgIFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xlYXJUZXh0U2VhcmNoKCl7XHJcbiAgICB0aGlzLnNlYXJjaF90ZXh0ID0gJyc7XHJcbiAgICB0aGlzLnRvU2VhcmNoKCcnKTtcclxuICB9XHJcblxyXG4gIHRvT3Blbigpe1xyXG4gICAgdGhpcy5tZW51X3Nob3cgPSAhdGhpcy5tZW51X3Nob3c7IFxyXG4gICAgdGhpcy5yZXNvbHZlX3Bvc2l0aW9uX2Ryb3Bkb3duKHRoaXMubWVudV9zaG93KTtcclxuICAgIHRoaXMub25PcGVuZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVzb2x2ZV9wb3NpdGlvbl9kcm9wZG93bihvcGVuOiBib29sZWFuKXtcclxuICAgIGlmKCBvcGVuICl7XHJcbiAgICAgIHRoaXMuYm94X3N0eWxlID0gJyc7XHJcbiAgICAgIHRoaXMubWVudV9vbl90b3AgPSAnJzsgICBcclxuICAgICAgY29uc3QgaWQgPSBgJHt0aGlzLmlkfWA7IFxyXG4gICAgICBjb25zdCBib3ggPSBgYm94LSR7dGhpcy5pZH1gO1xyXG4gICAgICBpZiggdGhpcy52aWV3cG9ydF9oZWlnaHQgPT09IDAgKXtcclxuICAgICAgICB0aGlzLnZpZXdwb3J0X2hlaWdodCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJlY3QgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgY29uc3QgYm94X3Bvc2l0aW9uID0gcmVjdD8uYm90dG9tIHx8IDA7ICAgICAgXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYm94X2hlaWdodCAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChib3gpPy5jbGllbnRIZWlnaHQgfHwgMDtcclxuICAgICAgICBpZiggKCB0aGlzLnZpZXdwb3J0X2hlaWdodCAtIGJveF9wb3NpdGlvbikgPCB0aGlzLmJveF9oZWlnaHQgKXtcclxuICAgICAgICAgIHRoaXMubWVudV9vbl90b3AgPSAnbWVudS1vbi10b3AnO1xyXG4gICAgICAgICAgdGhpcy5ib3hfc3R5bGUgPSBgdG9wOiAtJHsgKHRoaXMuYm94X2hlaWdodCkgfXB4OyBoZWlnaHQ6ICR7dGhpcy5ib3hfaGVpZ2h0fXB4O2A7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTsgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b0Nsb3NlKCl7XHJcbiAgICB0aGlzLm1lbnVfc2hvdyA9IGZhbHNlO1xyXG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgdG9SZXNpemUoKXtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMudmlld3BvcnRfd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgdGhpcy52aWV3cG9ydF9oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICAgIHRoaXMucmVzb2x2ZV9wb3NpdGlvbl9kcm9wZG93bih0aGlzLm1lbnVfc2hvdyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvQ2xpY2soKXtcclxuICAgIGNvbnN0IGJveCA9IGBhcmVhLSR7dGhpcy5pZH1gO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywoZTogYW55KSA9PiB7ICAgXHJcbiAgICAgIGlmKCB0aGlzLm1lbnVfc2hvdyApe1xyXG4gICAgICAgIGlmKCAhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGJveCk/LmNvbnRhaW5zKGUudGFyZ2V0KSkgKXsgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy50b0Nsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgICAvL2J5IHRoZSBDb250cm9sIFZhbHVlIEFjY2Vzc29yXHJcbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcclxuICAgIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gICAgLy9nZXQgYWNjZXNzb3JcclxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkX2l0ZW07XHJcbiAgICB9O1xyXG5cclxuICAgIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xyXG4gICAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG4gICAgICAgIGlmICh2ICE9PSB0aGlzLnNlbGVjdGVkX2l0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gdjtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL1NldCB0b3VjaGVkIG9uIGJsdXJcclxuICAgIG9uQmx1cigpIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnNlbGVjdGVkX2l0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4iLCI8ZGl2ICpuZ0lmPVwiZm9ybXVsYXJpb1wiIGlkPVwiYXJlYS17eyBpZCB9fVwiIGNsYXNzPVwidGNsb3VkLXVpLWRhdGEtbGlzdCB0Yy1kcm9wZG93blwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2FkaW5nXCI+XHJcbiAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImxvYWRpbmctYXJlYVwiPlxyXG4gICAgPGkgY2xhc3M9XCJmYXMgZmEtc3Bpbm5lciBmYS1zcGluXCI+PC9pPlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gW2F0dHIuZGF0YS1icy10b2dnbGVdPVwiJ2Ryb3Bkb3duJ1wiICAtLT5cclxuICA8YnV0dG9uIFxyXG4gICAgI19vcHRpb25cclxuICAgIFtjbGFzcy5pbnB1dC1oaWRkZW5dPVwiIXNob3dJbnB1dFwiXHJcbiAgICBbY2xhc3MuaW4tYm9yZGVyXT1cImJvcmRlclwiXHJcbiAgICBbY2xhc3MubG9hZGluZy1ib3hdPVwibG9hZGluZ1wiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9hZGluZ1wiXHJcbiAgICBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZSBidXR0b24tc2VsZWN0IG5vLW1hcmdpbi1ib3R0b20gYXJlYS10ZXh0XCIgXHJcbiAgICB0eXBlPVwiYnV0dG9uXCIgXHJcbiAgICBpZD1cInt7IGlkIH19XCIgXHJcbiAgICBcclxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ3RydWUnXCIgXHJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIidmYWxzZSdcIiBcclxuICAgIChjbGljayk9XCJ0b09wZW4oKTt0b0lucHV0KF9vcHRpb24pXCIgPlxyXG5cclxuICAgIDxpIGNsYXNzPVwidGMtcGxhY2Vob2xkZXIgYXJlYS10ZXh0XCIgKm5nSWY9XCIoc2VsZWN0ZWRfZGVzY3JpcHRpb24gPT09IHVuZGVmaW5lZCB8fCBzZWxlY3RlZF9kZXNjcmlwdGlvbiA9PT0gbnVsbCB8fCBzZWxlY3RlZF9kZXNjcmlwdGlvbiA9PT0gJycgKSAmJiAhbG9hZGluZyBcIj57eyBwbGFjZWhvbGRlciB9fTwvaT5cclxuICAgIHt7IHNlbGVjdGVkX2Rlc2NyaXB0aW9uIH19XHJcbiAgICA8c3Bhbj48aSBjbGFzcz1cImZhcyBmYS1hbmdsZS1kb3duXCI+PC9pPjwvc3Bhbj5cclxuICA8L2J1dHRvbj5cclxuICA8ZGl2IGNsYXNzPVwidGMtZHJvcGRvd24tbWVudSB7eyBtZW51X29uX3RvcCB9fVwiIGlkPVwiYm94LXt7IGlkIH19XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImlkXCIgW2NsYXNzLnRvLWhpZGVdPVwiIW1lbnVfc2hvd1wiIFtzdHlsZV09XCJib3hfc3R5bGVcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibGluZS1zZWFyY2hcIiAqbmdJZj1cInNlYXJjaFwiPlxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJib3gtc2VhcmNoXCI+XHJcbiAgICAgICAgPHRyPlxyXG5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaW5wdXRcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJ0Yy1mb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInNlYXJjaF90ZXh0XCIgKGlucHV0KT1cInRvU2VhcmNoKCRldmVudClcIiBwbGFjZWhvbGRlcj1cIkJ1c2Nhci4uLlwiID4gICAgICAgICAgICBcclxuICAgICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pY29uXCI+XHJcbiAgICAgICAgICAgIDxpICpuZ0lmPVwic2VhcmNoX3RleHQgPT09ICcnXCIgY2xhc3M9XCJmYXMgZmEtc2VhcmNoIGljb24tc2VhcmNoXCI+PC9pPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cInNlYXJjaF90ZXh0ICE9PSAnJ1wiIChjbGljayk9XCJjbGVhclRleHRTZWFyY2goKVwiPjxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIFxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cImFyZWEtb3B0aW9uc1wiIGlkPVwie3sgaWQgfX0tb3B0aW9uc1wiIChjbGljayk9XCJ0b0Nsb3NlKClcIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiAgXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0SXRlbXMgJiYgKGxpc3RJdGVtcykubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdEl0ZW1zXCI+XHJcbiAgICAgICAgICA8dGNsb3VkLXVpLWRhdGEtbGlzdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0udmFsdWVcIiBbZGlzYWJsZWRdPVwiaXRlbT8uZGlzYWJsZWRcIiA+e3sgaXRlbT8uZGVzY3JpcHRpb24gfX08L3RjbG91ZC11aS1kYXRhLWxpc3Qtb3B0aW9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPiAgICBcclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJmb3JtdWxhcmlvXCI+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtdWxhcmlvXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiID5cclxuICAgIDxpbnB1dCBpZD1cInt7IGlkIH19LWhpZGRlblwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkX2l0ZW1cIiB0eXBlPVwiaGlkZGVuXCI+XHJcbiAgPC9mb3JtPlxyXG48L2Rpdj5cclxuIl19
@@ -1,3 +0,0 @@
1
- export class ISelectOptions {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGEtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1kYXRhLWxpc3QvdGNsb3VkLXVpLWRhdGEtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sY0FBYztDQUkxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBJU2VsZWN0T3B0aW9uc3tcclxuICBkZXNjcmlwdGlvbjogYW55O1xyXG4gIHZhbHVlOiBhbnk7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59Il19
@@ -1,37 +0,0 @@
1
- import { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { TCloudUiDataListComponent } from './tcloud-ui-data-list.component';
5
- import { TCloudUiDataListOptionComponent } from './tcloud-ui-data-list-option/tcloud-ui-data-list-option.component';
6
- import * as i0 from "@angular/core";
7
- export class TCloudUiDataListModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TCloudUiDataListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: TCloudUiDataListModule, declarations: [TCloudUiDataListComponent,
10
- TCloudUiDataListOptionComponent], imports: [CommonModule,
11
- FormsModule,
12
- ReactiveFormsModule], exports: [TCloudUiDataListComponent,
13
- TCloudUiDataListOptionComponent] }); }
14
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TCloudUiDataListModule, imports: [CommonModule,
15
- FormsModule,
16
- ReactiveFormsModule] }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TCloudUiDataListModule, decorators: [{
19
- type: NgModule,
20
- args: [{
21
- declarations: [
22
- TCloudUiDataListComponent,
23
- TCloudUiDataListOptionComponent,
24
- ],
25
- exports: [
26
- TCloudUiDataListComponent,
27
- TCloudUiDataListOptionComponent
28
- ],
29
- imports: [
30
- CommonModule,
31
- FormsModule,
32
- ReactiveFormsModule
33
- ],
34
- schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]
35
- }]
36
- }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGEtbGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQzs7QUFvQnBILE1BQU0sT0FBTyxzQkFBc0I7OEdBQXRCLHNCQUFzQjsrR0FBdEIsc0JBQXNCLGlCQWQvQix5QkFBeUI7WUFDekIsK0JBQStCLGFBTy9CLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CLGFBTm5CLHlCQUF5QjtZQUN6QiwrQkFBK0I7K0dBU3RCLHNCQUFzQixZQU4vQixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjs7MkZBSVYsc0JBQXNCO2tCQWhCbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oseUJBQXlCO3dCQUN6QiwrQkFBK0I7cUJBQ2hDO29CQUNELE9BQU8sRUFBRTt3QkFDUCx5QkFBeUI7d0JBQ3pCLCtCQUErQjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRSxDQUFFLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDO2lCQUNyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5PX0VSUk9SU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgVENsb3VkVWlEYXRhTGlzdENvbXBvbmVudCB9IGZyb20gJy4vdGNsb3VkLXVpLWRhdGEtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUQ2xvdWRVaURhdGFMaXN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi90Y2xvdWQtdWktZGF0YS1saXN0LW9wdGlvbi90Y2xvdWQtdWktZGF0YS1saXN0LW9wdGlvbi5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgVENsb3VkVWlEYXRhTGlzdENvbXBvbmVudCxcclxuICAgIFRDbG91ZFVpRGF0YUxpc3RPcHRpb25Db21wb25lbnQsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUQ2xvdWRVaURhdGFMaXN0Q29tcG9uZW50LFxyXG4gICAgVENsb3VkVWlEYXRhTGlzdE9wdGlvbkNvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICBzY2hlbWFzOiBbIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5PX0VSUk9SU19TQ0hFTUFdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURhdGFMaXN0TW9kdWxlIHsgfVxyXG4iXX0=