@dev-tcloud/tcloud-ui 4.2.2 → 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.
- package/README.md +1 -0
- package/fesm2022/dev-tcloud-tcloud-ui.mjs +429 -362
- package/fesm2022/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/lib/_interfaces/theme.service.interface.d.ts +3 -0
- package/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.d.ts +1 -0
- package/lib/_services/tcloud-ui-theme.services.d.ts +12 -0
- package/lib/tcloud-ui.config.d.ts +1 -0
- package/package.json +3 -5
- package/scss/components/styles.scss +8 -8
- package/scss/tcloud/custom/alerts.scss +5 -4
- package/scss/tcloud/custom/variables.scss +1 -1
- package/scss/tcloud/disaster-recovery/styles.scss +2 -2
- package/scss/tcloud/prime/cards-products.scss +11 -9
- package/scss/tcloud/prime/left-navigation.scss +18 -16
- package/scss/tcloud/prime/styles.scss +3 -3
- package/scss/tcloud/prime/tcloud-prime.scss +60 -58
- package/scss/tcloud/standard/styles.scss +3 -3
- package/scss/tcloud/standard/tcloud-standard.scss +1 -1
- package/scss/tcloud/styles.scss +11 -11
- package/scss/tcloud/tcloud-ui.scss +3 -3
- package/esm2022/dev-tcloud-tcloud-ui.mjs +0 -5
- package/esm2022/lib/_directives/align/align.directive.mjs +0 -42
- package/esm2022/lib/_directives/currency/currency.directive.mjs +0 -160
- package/esm2022/lib/_directives/directives.module.mjs +0 -76
- package/esm2022/lib/_directives/el-copy/el-copy.directive.mjs +0 -68
- package/esm2022/lib/_directives/hover-parent/hover-parent.directive.mjs +0 -58
- package/esm2022/lib/_directives/tcloud-access/tcloud-ui-check-access.directive.mjs +0 -66
- package/esm2022/lib/_directives/tcloud-access/tcloud-ui-ng-check-access.directive.mjs +0 -50
- package/esm2022/lib/_directives/tcloud-access/tcloud-ui-ng-feature-flags.directive.mjs +0 -44
- package/esm2022/lib/_directives/tcloud-ui-digit-only.directive.mjs +0 -64
- package/esm2022/lib/_directives/tcloud-ui-highlight.diretive.mjs +0 -36
- package/esm2022/lib/_directives/tcloud-ui-ip-mask.directive.mjs +0 -54
- package/esm2022/lib/_directives/tooltip/tooltip.directive.mjs +0 -196
- package/esm2022/lib/_interfaces/user.service.interface.mjs +0 -2
- package/esm2022/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component.mjs +0 -35
- package/esm2022/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component.mjs +0 -54
- package/esm2022/lib/_modules/tcloud-ui-accordion/services/tcloud-ui-accordion.service.mjs +0 -38
- package/esm2022/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.mjs +0 -75
- package/esm2022/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.module.mjs +0 -35
- package/esm2022/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component.mjs +0 -87
- package/esm2022/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.module.mjs +0 -32
- package/esm2022/lib/_modules/tcloud-ui-data-list/services/data-list.service.mjs +0 -38
- package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component.mjs +0 -65
- package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.mjs +0 -317
- package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.mjs +0 -3
- package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.module.mjs +0 -37
- package/esm2022/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.mjs +0 -440
- package/esm2022/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module.mjs +0 -32
- package/esm2022/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs +0 -320
- package/esm2022/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module.mjs +0 -40
- package/esm2022/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.mjs +0 -213
- package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.mjs +0 -537
- package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.mjs +0 -20
- package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module.mjs +0 -45
- package/esm2022/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component.mjs +0 -142
- package/esm2022/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.module.mjs +0 -32
- package/esm2022/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.component.mjs +0 -66
- package/esm2022/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.module.mjs +0 -32
- package/esm2022/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component.mjs +0 -36
- package/esm2022/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.module.mjs +0 -31
- package/esm2022/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component.mjs +0 -93
- package/esm2022/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.module.mjs +0 -25
- package/esm2022/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component.mjs +0 -43
- package/esm2022/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.mjs +0 -2
- package/esm2022/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.module.mjs +0 -19
- package/esm2022/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component.mjs +0 -65
- package/esm2022/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.module.mjs +0 -25
- package/esm2022/lib/_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component.mjs +0 -11
- package/esm2022/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.component.mjs +0 -29
- package/esm2022/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.module.mjs +0 -21
- package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component.mjs +0 -14
- package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component.mjs +0 -61
- package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component.mjs +0 -24
- package/esm2022/lib/_modules/tcloud-ui-modal/services/tcloud-modal.service.mjs +0 -63
- package/esm2022/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.mjs +0 -203
- package/esm2022/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.mjs +0 -2
- package/esm2022/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.module.mjs +0 -47
- package/esm2022/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component.mjs +0 -155
- package/esm2022/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.module.mjs +0 -28
- package/esm2022/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component.mjs +0 -170
- package/esm2022/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.module.mjs +0 -28
- package/esm2022/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.mjs +0 -348
- package/esm2022/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.module.mjs +0 -36
- package/esm2022/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.component.mjs +0 -20
- package/esm2022/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.module.mjs +0 -25
- package/esm2022/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.component.mjs +0 -33
- package/esm2022/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.module.mjs +0 -28
- package/esm2022/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component.mjs +0 -165
- package/esm2022/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.module.mjs +0 -21
- package/esm2022/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component.mjs +0 -105
- package/esm2022/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.mjs +0 -2
- package/esm2022/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.module.mjs +0 -24
- package/esm2022/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component.mjs +0 -46
- package/esm2022/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.module.mjs +0 -25
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component.mjs +0 -36
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component.mjs +0 -85
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component.mjs +0 -69
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component.mjs +0 -71
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/services/tab-menu.service.mjs +0 -104
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component.mjs +0 -64
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.mjs +0 -2
- package/esm2022/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.module.mjs +0 -45
- package/esm2022/lib/_modules/tcloud-ui-table/tcloud-ui-table.component.mjs +0 -21
- package/esm2022/lib/_modules/tcloud-ui-table/tcloud-ui-table.module.mjs +0 -25
- package/esm2022/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component.mjs +0 -37
- package/esm2022/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.module.mjs +0 -25
- package/esm2022/lib/_pipes/array-to-text.mjs +0 -29
- package/esm2022/lib/_pipes/bytes.mjs +0 -31
- package/esm2022/lib/_pipes/cnpj.mjs +0 -37
- package/esm2022/lib/_pipes/cpf.mjs +0 -37
- package/esm2022/lib/_pipes/datebr.mjs +0 -102
- package/esm2022/lib/_pipes/index.mjs +0 -9
- package/esm2022/lib/_pipes/monthname.mjs +0 -25
- package/esm2022/lib/_pipes/respective.mjs +0 -73
- package/esm2022/lib/_pipes/statusinfo.mjs +0 -78
- package/esm2022/lib/_pipes/tcloud-pipes.module.mjs +0 -75
- package/esm2022/lib/_services/loading-transitions.service.mjs +0 -52
- package/esm2022/lib/_services/search-in-object.service.mjs +0 -99
- package/esm2022/lib/_services/tcloud-ui-check-access.service.mjs +0 -170
- package/esm2022/lib/tcloud-ui.config.mjs +0 -2
- package/esm2022/lib/tcloud-ui.module.mjs +0 -235
- 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.13", 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.13", 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\">\n <div *ngIf=\"loading\" class=\"loading-area\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n <!-- [attr.data-bs-toggle]=\"'dropdown'\" -->\n <button \n #_option\n [class.input-hidden]=\"!showInput\"\n [class.in-border]=\"border\"\n [class.loading-box]=\"loading\"\n [disabled]=\"disabled || loading\"\n class=\"dropdown-toggle button-select no-margin-bottom area-text\" \n type=\"button\" \n id=\"{{ id }}\" \n \n [attr.aria-haspopup]=\"'true'\" \n [attr.aria-expanded]=\"'false'\" \n (click)=\"toOpen();toInput(_option)\" >\n\n <i class=\"tc-placeholder area-text\" *ngIf=\"(selected_description === undefined || selected_description === null || selected_description === '' ) && !loading \">{{ placeholder }}</i>\n {{ selected_description }}\n <span><i class=\"fas fa-angle-down\"></i></span>\n </button>\n <div class=\"tc-dropdown-menu {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!menu_show\" [style]=\"box_style\">\n\n <div class=\"line-search\" *ngIf=\"search\">\n <table class=\"box-search\">\n <tr>\n\n <td class=\"area-input\">\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \n </td>\n\n <td class=\"area-icon\">\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\n <button type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\n </td>\n \n </tr>\n </table>\n </div>\n \n <div class=\"area-options\" id=\"{{ id }}-options\" (click)=\"toClose()\">\n <ng-content></ng-content> \n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\n <ng-container *ngFor=\"let item of listItems\">\n <tcloud-ui-data-list-option [value]=\"item.value\" [disabled]=\"item?.disabled\" >{{ item?.description }}</tcloud-ui-data-list-option>\n </ng-container>\n </ng-container> \n </div>\n </div>\n</div>\n\n<div *ngIf=\"formulario\">\n <form [formGroup]=\"formulario\" style=\"display: none;\" >\n <input id=\"{{ id }}-hidden\" formControlName=\"selected_item\" type=\"hidden\">\n </form>\n</div>\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.13", 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\">\n <div *ngIf=\"loading\" class=\"loading-area\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n <!-- [attr.data-bs-toggle]=\"'dropdown'\" -->\n <button \n #_option\n [class.input-hidden]=\"!showInput\"\n [class.in-border]=\"border\"\n [class.loading-box]=\"loading\"\n [disabled]=\"disabled || loading\"\n class=\"dropdown-toggle button-select no-margin-bottom area-text\" \n type=\"button\" \n id=\"{{ id }}\" \n \n [attr.aria-haspopup]=\"'true'\" \n [attr.aria-expanded]=\"'false'\" \n (click)=\"toOpen();toInput(_option)\" >\n\n <i class=\"tc-placeholder area-text\" *ngIf=\"(selected_description === undefined || selected_description === null || selected_description === '' ) && !loading \">{{ placeholder }}</i>\n {{ selected_description }}\n <span><i class=\"fas fa-angle-down\"></i></span>\n </button>\n <div class=\"tc-dropdown-menu {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!menu_show\" [style]=\"box_style\">\n\n <div class=\"line-search\" *ngIf=\"search\">\n <table class=\"box-search\">\n <tr>\n\n <td class=\"area-input\">\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \n </td>\n\n <td class=\"area-icon\">\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\n <button type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\n </td>\n \n </tr>\n </table>\n </div>\n \n <div class=\"area-options\" id=\"{{ id }}-options\" (click)=\"toClose()\">\n <ng-content></ng-content> \n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\n <ng-container *ngFor=\"let item of listItems\">\n <tcloud-ui-data-list-option [value]=\"item.value\" [disabled]=\"item?.disabled\" >{{ item?.description }}</tcloud-ui-data-list-option>\n </ng-container>\n </ng-container> \n </div>\n </div>\n</div>\n\n<div *ngIf=\"formulario\">\n <form [formGroup]=\"formulario\" style=\"display: none;\" >\n <input id=\"{{ id }}-hidden\" formControlName=\"selected_item\" type=\"hidden\">\n </form>\n</div>\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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LEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUdPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBUU8sSUFBSTtzQkFBaEIsS0FBSztnQkFhRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFHTSxPQUFPO3NCQUFuQixLQUFLO2dCQUlJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhTGlzdFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RhdGEtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBJbnB1dCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTmdGb3JtLCBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVNlbGVjdE9wdGlvbnMgfSBmcm9tICcuL3RjbG91ZC11aS1kYXRhLWxpc3QnO1xuXG5jb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlEYXRhTGlzdENvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlXG59O1xuXG5jb25zdCBub29wID0gKCkgPT4ge1xufTtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktZGF0YS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90Y2xvdWQtdWktZGF0YS1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIERhdGFMaXN0U2VydmljZSwgXG4gICAgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVENsb3VkVWlEYXRhTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICB2aWV3cG9ydF93aWR0aDogbnVtYmVyID0gMDtcbiAgdmlld3BvcnRfaGVpZ2h0OiBudW1iZXIgPSAwO1xuICBib3hfaGVpZ2h0OiBudW1iZXIgPSAwO1xuICBib3hfc3R5bGU6IHN0cmluZyA9ICcnO1xuICBtZW51X29uX3RvcDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2KXtcbiAgICBpZiggdHlwZW9mIHYgPT09ICdib29sZWFuJyAmJiB2ICE9PSB0aGlzLl9kaXNhYmxlZCApe1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2OyAgICBcbiAgICAgIC8vdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9ICcnO1xuICAgICAgLy90aGlzLnNlbGVjdGVkX2l0ZW0gPScnO1xuICAgICAgdGhpcy50b0NoYW5nZSgpO1xuICAgIH1cbiAgfVxuICBnZXQgZGlzYWJsZWQoKTpib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XG5cbiAgcHJpdmF0ZSBfbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXQgbG9hZGluZyh2OiBib29sZWFuKXtcbiAgICBpZiggdHlwZW9mIHYgPT09ICdib29sZWFuJyAmJiB2ICE9PSB0aGlzLl9sb2FkaW5nICl7XG4gICAgICB0aGlzLl9sb2FkaW5nID0gdjsgICAgXG4gICAgICAvL3RoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24gPSAnJztcbiAgICAgIC8vdGhpcy5zZWxlY3RlZF9pdGVtID0gJyc7XG4gICAgICB0aGlzLnRvQ2hhbmdlKCk7XG4gICAgfVxuICB9XG4gIGdldCBsb2FkaW5nKCk6Ym9vbGVhbiB7IHJldHVybiB0aGlzLl9sb2FkaW5nOyB9XG5cblxuICBASW5wdXQoKSBzaG93SW5wdXQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzZWFyY2g6IGJvb2xlYW4gPSB0cnVlO1xuICBcbiAgcHJpdmF0ZSBfbGlzdEl0ZW1zOiBJU2VsZWN0T3B0aW9uc1tdID0gW107XG4gIEBJbnB1dCgpIHNldCBsaXN0SXRlbXModjogSVNlbGVjdE9wdGlvbnNbXSl7XG4gICAgaWYoIHYgJiYgKHYpLmxlbmd0aCA+IDAgKXtcbiAgICAgIHRoaXMuX2xpc3RJdGVtcyA9IHY7XG4gICAgfVxuICB9XG4gIGdldCBsaXN0SXRlbXMoKTpJU2VsZWN0T3B0aW9uc1tdIHsgcmV0dXJuIHRoaXMuX2xpc3RJdGVtczsgfVxuXG4gIHByaXZhdGUgX29wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0IG9wZW4odjogYm9vbGVhbil7XG4gICAgaWYoIHYgIT09IHRoaXMuX29wZW4gKXtcbiAgICAgIHRoaXMuX29wZW4gPSB2O1xuICAgICAgaWYoIHYgKXtcbiAgICAgICAgdGhpcy5tZW51X3Nob3cgPSBmYWxzZTtcbiAgICAgICAgc2V0VGltZW91dCgoKT0+eyB0aGlzLnRvT3BlbigpOyB9KTsgICAgICAgIFxuICAgICAgfVxuICAgIH1cbiAgfVxuICBnZXQgb3BlbigpOmJvb2xlYW4geyByZXR1cm4gdGhpcy5fb3BlbjsgfVxuXG4gIFxuICBcbiAgQElucHV0KCkgYm9yZGVyOiBib29sZWFuID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgb25JbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVNlbGVjdE9wdGlvbnM+KCk7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVNlbGVjdE9wdGlvbnM+KCk7XG5cbiAgQE91dHB1dCgpIG9uT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBvbkNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByaXZhdGUgX25nTW9kZWw6IGFueSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2V0IG5nTW9kZWwodjogYW55KXtcbiAgICB0aGlzLnNlbGVjdGVkX2l0ZW0gPSB2OyAgICBcbiAgICB0aGlzLnNlbGVjdERlc2NyaXB0aW9uKCk7ICAgXG4gIH1cbiAgQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBsaXN0X3NlbGVjdGVkX29wdGlvbnMgPSBuZXcgQXJyYXk8SVNlbGVjdE9wdGlvbnM+KCk7XG5cbiAgc2VsZWN0ZWRfaXRlbTogYW55IHwgdW5kZWZpbmVkO1xuICBzZWxlY3RlZF9kZXNjcmlwdGlvbjogYW55IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uX3ZhbHVlOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uX2Rlc2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uX29wdGlvbnM6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICBtZW51X3Nob3c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VhcmNoX3RleHQ6IHN0cmluZyA9ICcnO1xuICBpZDogc3RyaW5nID0gJyc7XG5cbiAgZm9ybXVsYXJpbzogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0YUxpc3RTZXJ2aWNlOiBEYXRhTGlzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcbiAgKXtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uX3ZhbHVlID0gdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc3RhdGVWYWx1ZSQuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gdjsgICAgICBcbiAgICAgIHRoaXMuc2VsZWN0RGVzY3JpcHRpb24oKTtcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRfaXRlbSk7XG4gICAgfSlcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uX2Rlc2NyaXB0aW9uID0gdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc3RhdGVEZXNjcmlwdGlvbiQuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9IHY7ICAgICAgXG4gICAgfSlcblxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25fb3B0aW9ucyA9IHRoaXMuZGF0YUxpc3RTZXJ2aWNlLnN0YXRlT3B0aW9ucyQuc3Vic2NyaWJlKCh2OmFueSkgPT4ge1xuICAgICAgaWYoIHYgJiYgdi52YWx1ZSApe1xuICAgICAgICAodGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnMpLnB1c2godik7XG4gICAgICB9XG4gICAgfSlcblxuICB9XG5cbiAgbmdPbkluaXQoKXtcblxuICAgIFxuXG4gICAgdGhpcy5pZCA9IHRoaXMuZ2VuZXJhdGVJRCgpO1xuXG4gICAgdGhpcy5mb3JtdWxhcmlvID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBcInNlbGVjdGVkX2l0ZW1cIjogbmV3IEZvcm1Db250cm9sKCcnLFtdKSxcbiAgICB9KVxuXG4gICAgXG5cbiAgICB0aGlzLnRvUmVzaXplKCk7XG4gICAgdGhpcy50b0NsaWNrKCk7XG4gIH1cblxuICB0X2ZjOiBhbnkgfCB1bmRlZmluZWQ7XG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRfZmMgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50X2ZjID0gdGhpcy5nZXRfc2VsZWN0ZWRfZGVzY3JpcHRpb24oKTtcbiAgfVxuXG4gIGdldF9zZWxlY3RlZF9kZXNjcmlwdGlvbigpOiB2b2lke1xuICAgIGlmKCB0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucyAmJiAodGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnMpLmxlbmd0aCA+IDAgKXtcbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5sZW5ndGg7IGkrKyApe1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnNbaV07XG4gICAgICAgIGlmKCBpdGVtLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkX2l0ZW0gKXsgICAgICAgICBcbiAgICAgICAgICBpZiggdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiAhPT0gaXRlbS5kZXNjcmlwdGlvbiApe1xuICAgICAgICAgICAgaWYoIGl0ZW0uZGVzY3JpcHRpb24gJiYgaXRlbS5kZXNjcmlwdGlvbiAhPT0gdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiApe1xuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gaXRlbS5kZXNjcmlwdGlvbjsgXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc2V0QWN0aXZlSXRlbSh0aGlzLnNlbGVjdGVkX2l0ZW0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9ICAgICAgICBcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gXG4gIH1cblxuICBnZW5lcmF0ZUlEKCk6IHN0cmluZ3tcbiAgICByZXR1cm4gYGRhdGEtbGlzdC0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX1gO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uX3ZhbHVlICl7IHRoaXMuc3Vic2NyaXB0aW9uX3ZhbHVlLnVuc3Vic2NyaWJlKCk7IH0gICAgXG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uX2Rlc2NyaXB0aW9uICl7IHRoaXMuc3Vic2NyaXB0aW9uX2Rlc2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7IH0gXG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uX29wdGlvbnMgKXsgdGhpcy5zdWJzY3JpcHRpb25fb3B0aW9ucy51bnN1YnNjcmliZSgpOyB9IFxuICB9XG5cbiAgdG9TZWFyY2goZTogYW55KSB7XG4gICAgbGV0IGlucHV0ID0gKGUgJiYgZS50YXJnZXQgJiYgZS50YXJnZXQudmFsdWUpID8gZS50YXJnZXQudmFsdWUgOiAnJztcbiAgICBcbiAgICBsZXQgZmlsdGVyID0gKCAoIChpbnB1dCkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKSApLnRyaW0oKSApLnRvTG93ZXJDYXNlKCk7XG4gICAgbGV0IHVsID0gPGFueT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5pZH0tb3B0aW9uc2ApO1xuICAgIGlmKCB1bCApe1xuICAgICAgbGV0IGxpID0gdWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJidXR0b25cIik7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgYSA9IGxpW2ldO1xuICAgICAgICAgIGNvbnN0IHR4dFZhbHVlID0gKCAoICggYS50ZXh0Q29udGVudCB8fCBhLmlubmVyVGV4dCApLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIikgKS50cmltKCkgKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIGlmICh0eHRWYWx1ZS5pbmRleE9mKGZpbHRlcikgPiAtMSkge1xuICAgICAgICAgICAgICBsaVtpXS5zdHlsZS5kaXNwbGF5ID0gXCJcIjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsaVtpXS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNlbGVjdERlc2NyaXB0aW9uKCl7XG4gICAgaWYoIHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zICYmICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykubGVuZ3RoID4gMCApe1xuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnMpLmxlbmd0aDsgaSsrICl7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9uc1tpXTtcbiAgICAgICAgaWYoIGl0ZW0udmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRfaXRlbSApe1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24gPSBpdGVtLmRlc2NyaXB0aW9uO1xuICAgICAgICAgIHRoaXMudG9DaGFuZ2UoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiggdGhpcy5zZWxlY3RlZF9pdGVtID09PSB1bmRlZmluZWQgfHwgdGhpcy5zZWxlY3RlZF9pdGVtID09PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRfaXRlbSA9PT0gJycgKXtcbiAgICAgIHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24gPSAnJztcbiAgICAgIHRoaXMudG9DaGFuZ2UoKTtcbiAgICB9XG4gICAgXG4gIH1cblxuICBcbiAgdG9JbnB1dChlOiBhbnkpe1xuICAgIHRoaXMub25JbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24pO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdChlKTtcbiAgfVxuXG4gIHRvQ2hhbmdlKCl7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiggdGhpcy5zZWxlY3RlZF9pdGVtID09PSB1bmRlZmluZWQgfHwgdGhpcy5zZWxlY3RlZF9pdGVtID09PSBudWxsICl7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRfaXRlbSA9ICcnO1xuICAgICAgfVxuICAgICAgdGhpcy50b1NlYXJjaCgnJyk7XG4gICAgICB0aGlzLnNlYXJjaF90ZXh0ID0gJyc7XG4gICAgICB0aGlzLmRhdGFMaXN0U2VydmljZS5zZXRBY3RpdmVJdGVtKHRoaXMuc2VsZWN0ZWRfaXRlbSk7XG5cbiAgICAgIHRoaXMub25JbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24pO1xuXG4gICAgICBpZiggdGhpcy5mb3JtdWxhcmlvICl7XG4gICAgICAgIHRoaXMuZm9ybXVsYXJpbz8uZ2V0KCdzZWxlY3RlZF9pdGVtJyk/LnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRfaXRlbSk7XG4gICAgICAgIC8vIGNvbnN0IGlucHV0X2hpZGRlbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke3RoaXMuaWR9LWhpZGRlbmApO1xuICAgICAgICB0aGlzLnRvSW5wdXQodGhpcy5mb3JtdWxhcmlvLmdldCgnc2VsZWN0ZWRfaXRlbScpKTtcbiAgICAgIH0gICBcbiAgICB9KTtcbiAgfVxuXG5cbiAgY2xlYXJUZXh0U2VhcmNoKCl7XG4gICAgdGhpcy5zZWFyY2hfdGV4dCA9ICcnO1xuICAgIHRoaXMudG9TZWFyY2goJycpO1xuICB9XG5cbiAgdG9PcGVuKCl7XG4gICAgdGhpcy5tZW51X3Nob3cgPSAhdGhpcy5tZW51X3Nob3c7IFxuICAgIHRoaXMucmVzb2x2ZV9wb3NpdGlvbl9kcm9wZG93bih0aGlzLm1lbnVfc2hvdyk7XG4gICAgdGhpcy5vbk9wZW5lZC5lbWl0KCk7XG4gIH1cblxuICByZXNvbHZlX3Bvc2l0aW9uX2Ryb3Bkb3duKG9wZW46IGJvb2xlYW4pe1xuICAgIGlmKCBvcGVuICl7XG4gICAgICB0aGlzLmJveF9zdHlsZSA9ICcnO1xuICAgICAgdGhpcy5tZW51X29uX3RvcCA9ICcnOyAgIFxuICAgICAgY29uc3QgaWQgPSBgJHt0aGlzLmlkfWA7IFxuICAgICAgY29uc3QgYm94ID0gYGJveC0ke3RoaXMuaWR9YDtcbiAgICAgIGlmKCB0aGlzLnZpZXdwb3J0X2hlaWdodCA9PT0gMCApe1xuICAgICAgICB0aGlzLnZpZXdwb3J0X2hlaWdodCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVjdCAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgYm94X3Bvc2l0aW9uID0gcmVjdD8uYm90dG9tIHx8IDA7ICAgICAgXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5ib3hfaGVpZ2h0ICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGJveCk/LmNsaWVudEhlaWdodCB8fCAwO1xuICAgICAgICBpZiggKCB0aGlzLnZpZXdwb3J0X2hlaWdodCAtIGJveF9wb3NpdGlvbikgPCB0aGlzLmJveF9oZWlnaHQgKXtcbiAgICAgICAgICB0aGlzLm1lbnVfb25fdG9wID0gJ21lbnUtb24tdG9wJztcbiAgICAgICAgICB0aGlzLmJveF9zdHlsZSA9IGB0b3A6IC0keyAodGhpcy5ib3hfaGVpZ2h0KSB9cHg7IGhlaWdodDogJHt0aGlzLmJveF9oZWlnaHR9cHg7YDtcbiAgICAgICAgfVxuICAgICAgfSk7ICAgIFxuICAgIH1cbiAgfVxuXG4gIHRvQ2xvc2UoKXtcbiAgICB0aGlzLm1lbnVfc2hvdyA9IGZhbHNlO1xuICAgIHRoaXMub25DbG9zZWQuZW1pdCgpO1xuICB9XG5cblxuICB0b1Jlc2l6ZSgpe1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB7XG4gICAgICB0aGlzLnZpZXdwb3J0X3dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICB0aGlzLnZpZXdwb3J0X2hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIHRoaXMucmVzb2x2ZV9wb3NpdGlvbl9kcm9wZG93bih0aGlzLm1lbnVfc2hvdyk7XG4gICAgfSk7XG4gIH1cblxuICB0b0NsaWNrKCl7XG4gICAgY29uc3QgYm94ID0gYGFyZWEtJHt0aGlzLmlkfWA7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywoZTogYW55KSA9PiB7ICAgXG4gICAgICBpZiggdGhpcy5tZW51X3Nob3cgKXtcbiAgICAgICAgaWYoICEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYm94KT8uY29udGFpbnMoZS50YXJnZXQpKSApeyAgICAgICAgXG4gICAgICAgICAgdGhpcy50b0Nsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG5cbiAgXG4gIC8vUGxhY2Vob2xkZXJzIGZvciB0aGUgY2FsbGJhY2tzIHdoaWNoIGFyZSBsYXRlciBwcm92aWRlc2RcbiAgICAvL2J5IHRoZSBDb250cm9sIFZhbHVlIEFjY2Vzc29yXG4gICAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcblxuICAgIC8vZ2V0IGFjY2Vzc29yXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkX2l0ZW07XG4gICAgfTtcblxuICAgIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xuICAgIHNldCB2YWx1ZSh2OiBhbnkpIHtcbiAgICAgICAgaWYgKHYgIT09IHRoaXMuc2VsZWN0ZWRfaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gdjtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vU2V0IHRvdWNoZWQgb24gYmx1clxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICAgIH1cblxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnNlbGVjdGVkX2l0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRfaXRlbSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gICAgfVxuXG59XG5cbiIsIjxkaXYgKm5nSWY9XCJmb3JtdWxhcmlvXCIgaWQ9XCJhcmVhLXt7IGlkIH19XCIgY2xhc3M9XCJ0Y2xvdWQtdWktZGF0YS1saXN0IHRjLWRyb3Bkb3duXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvYWRpbmdcIj5cbiAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImxvYWRpbmctYXJlYVwiPlxuICAgIDxpIGNsYXNzPVwiZmFzIGZhLXNwaW5uZXIgZmEtc3BpblwiPjwvaT5cbiAgPC9kaXY+XG4gIDwhLS0gW2F0dHIuZGF0YS1icy10b2dnbGVdPVwiJ2Ryb3Bkb3duJ1wiICAtLT5cbiAgPGJ1dHRvbiBcbiAgICAjX29wdGlvblxuICAgIFtjbGFzcy5pbnB1dC1oaWRkZW5dPVwiIXNob3dJbnB1dFwiXG4gICAgW2NsYXNzLmluLWJvcmRlcl09XCJib3JkZXJcIlxuICAgIFtjbGFzcy5sb2FkaW5nLWJveF09XCJsb2FkaW5nXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9hZGluZ1wiXG4gICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUgYnV0dG9uLXNlbGVjdCBuby1tYXJnaW4tYm90dG9tIGFyZWEtdGV4dFwiIFxuICAgIHR5cGU9XCJidXR0b25cIiBcbiAgICBpZD1cInt7IGlkIH19XCIgXG4gICAgXG4gICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCIndHJ1ZSdcIiBcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIidmYWxzZSdcIiBcbiAgICAoY2xpY2spPVwidG9PcGVuKCk7dG9JbnB1dChfb3B0aW9uKVwiID5cblxuICAgIDxpIGNsYXNzPVwidGMtcGxhY2Vob2xkZXIgYXJlYS10ZXh0XCIgKm5nSWY9XCIoc2VsZWN0ZWRfZGVzY3JpcHRpb24gPT09IHVuZGVmaW5lZCB8fCBzZWxlY3RlZF9kZXNjcmlwdGlvbiA9PT0gbnVsbCB8fCBzZWxlY3RlZF9kZXNjcmlwdGlvbiA9PT0gJycgKSAmJiAhbG9hZGluZyBcIj57eyBwbGFjZWhvbGRlciB9fTwvaT5cbiAgICB7eyBzZWxlY3RlZF9kZXNjcmlwdGlvbiB9fVxuICAgIDxzcGFuPjxpIGNsYXNzPVwiZmFzIGZhLWFuZ2xlLWRvd25cIj48L2k+PC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGRpdiBjbGFzcz1cInRjLWRyb3Bkb3duLW1lbnUge3sgbWVudV9vbl90b3AgfX1cIiBpZD1cImJveC17eyBpZCB9fVwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZFwiIFtjbGFzcy50by1oaWRlXT1cIiFtZW51X3Nob3dcIiBbc3R5bGVdPVwiYm94X3N0eWxlXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwibGluZS1zZWFyY2hcIiAqbmdJZj1cInNlYXJjaFwiPlxuICAgICAgPHRhYmxlIGNsYXNzPVwiYm94LXNlYXJjaFwiPlxuICAgICAgICA8dHI+XG5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWlucHV0XCI+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic2VhcmNoX3RleHRcIiAoaW5wdXQpPVwidG9TZWFyY2goJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiQnVzY2FyLi4uXCIgPiAgICAgICAgICAgIFxuICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWljb25cIj5cbiAgICAgICAgICAgIDxpICpuZ0lmPVwic2VhcmNoX3RleHQgPT09ICcnXCIgY2xhc3M9XCJmYXMgZmEtc2VhcmNoIGljb24tc2VhcmNoXCI+PC9pPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJzZWFyY2hfdGV4dCAhPT0gJydcIiAoY2xpY2spPVwiY2xlYXJUZXh0U2VhcmNoKClcIj48aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT48L2J1dHRvbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIFxuICAgICAgICA8L3RyPlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiYXJlYS1vcHRpb25zXCIgaWQ9XCJ7eyBpZCB9fS1vcHRpb25zXCIgKGNsaWNrKT1cInRvQ2xvc2UoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiAgXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdEl0ZW1zICYmIChsaXN0SXRlbXMpLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0SXRlbXNcIj5cbiAgICAgICAgICA8dGNsb3VkLXVpLWRhdGEtbGlzdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0udmFsdWVcIiBbZGlzYWJsZWRdPVwiaXRlbT8uZGlzYWJsZWRcIiA+e3sgaXRlbT8uZGVzY3JpcHRpb24gfX08L3RjbG91ZC11aS1kYXRhLWxpc3Qtb3B0aW9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+ICAgIFxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiZm9ybXVsYXJpb1wiPlxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm11bGFyaW9cIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgPlxuICAgIDxpbnB1dCBpZD1cInt7IGlkIH19LWhpZGRlblwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkX2l0ZW1cIiB0eXBlPVwiaGlkZGVuXCI+XG4gIDwvZm9ybT5cbjwvZGl2PlxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export class ISelectOptions {
|
|
2
|
-
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGEtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1kYXRhLWxpc3QvdGNsb3VkLXVpLWRhdGEtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sY0FBYztDQUkxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBJU2VsZWN0T3B0aW9uc3tcbiAgZGVzY3JpcHRpb246IGFueTtcbiAgdmFsdWU6IGFueTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufSJdfQ==
|
|
@@ -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.13", ngImport: i0, type: TCloudUiDataListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", 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.13", ngImport: i0, type: TCloudUiDataListModule, imports: [CommonModule,
|
|
15
|
-
FormsModule,
|
|
16
|
-
ReactiveFormsModule] }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGEtbGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQzs7QUFvQnBILE1BQU0sT0FBTyxzQkFBc0I7K0dBQXRCLHNCQUFzQjtnSEFBdEIsc0JBQXNCLGlCQWQvQix5QkFBeUI7WUFDekIsK0JBQStCLGFBTy9CLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CLGFBTm5CLHlCQUF5QjtZQUN6QiwrQkFBK0I7Z0hBU3RCLHNCQUFzQixZQU4vQixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjs7NEZBSVYsc0JBQXNCO2tCQWhCbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oseUJBQXlCO3dCQUN6QiwrQkFBK0I7cUJBQ2hDO29CQUNELE9BQU8sRUFBRTt3QkFDUCx5QkFBeUI7d0JBQ3pCLCtCQUErQjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRSxDQUFFLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDO2lCQUNyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5PX0VSUk9SU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFRDbG91ZFVpRGF0YUxpc3RDb21wb25lbnQgfSBmcm9tICcuL3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRDbG91ZFVpRGF0YUxpc3RPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL3RjbG91ZC11aS1kYXRhLWxpc3Qtb3B0aW9uL3RjbG91ZC11aS1kYXRhLWxpc3Qtb3B0aW9uLmNvbXBvbmVudCc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUQ2xvdWRVaURhdGFMaXN0Q29tcG9uZW50LFxuICAgIFRDbG91ZFVpRGF0YUxpc3RPcHRpb25Db21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUQ2xvdWRVaURhdGFMaXN0Q29tcG9uZW50LFxuICAgIFRDbG91ZFVpRGF0YUxpc3RPcHRpb25Db21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gIF0sXG4gIHNjaGVtYXM6IFsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV1cbn0pXG5leHBvcnQgY2xhc3MgVENsb3VkVWlEYXRhTGlzdE1vZHVsZSB7IH1cbiJdfQ==
|