@dev-tcloud/tcloud-ui 0.0.77 → 0.0.79

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.
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "../tcloud-ui-datepicker/tcloud-ui-datepicker.component";
6
6
  import * as i3 from "@angular/forms";
7
+ import * as i4 from "../tcloud-ui-data-list/tcloud-ui-data-list.component";
7
8
  const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
8
9
  provide: NG_VALUE_ACCESSOR,
9
10
  useExisting: forwardRef(() => TCloudUiDatepickerTimeComponent),
@@ -13,13 +14,20 @@ const noop = () => {
13
14
  };
14
15
  export class TCloudUiDatepickerTimeComponent {
15
16
  constructor() {
17
+ this.UTC = false;
18
+ this.show_date_picker = true;
16
19
  this.ngModelChange = new EventEmitter();
17
20
  this.onChange = new EventEmitter();
18
21
  this.eventChange = new EventEmitter();
22
+ this.useOptionsDateTime = false;
19
23
  this.DD_MM_YYYY = '';
20
24
  this.HH = '00';
21
25
  this.MM = '00';
22
26
  this.ID = '';
27
+ this.options_date_time = [];
28
+ this.open_options_date_time = false;
29
+ this.description_options_date_time = '';
30
+ this.value_options_date_time = '';
23
31
  //Placeholders for the callbacks which are later providesd
24
32
  //by the Control Value Accessor
25
33
  this.onTouchedCallback = noop;
@@ -31,10 +39,20 @@ export class TCloudUiDatepickerTimeComponent {
31
39
  }
32
40
  }
33
41
  ngOnInit() {
42
+ this.setOptionsDateTime();
34
43
  this.ID = this.generateID();
35
44
  this.option_HH = this.getListTIME(23);
36
45
  this.option_MM = this.getListTIME(59);
37
46
  }
47
+ setOptionsDateTime() {
48
+ this.options_date_time = [
49
+ { value: '7-days', description: '7 dias' },
50
+ { value: '15-days', description: '15 dias' },
51
+ { value: '30-days', description: '30 dias' },
52
+ { value: 'current-month', description: 'Mês atual' },
53
+ { value: 'current-year', description: 'Ano atual' }
54
+ ];
55
+ }
38
56
  generateID() {
39
57
  return `tcloud-ui-datepicker-time-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;
40
58
  }
@@ -51,7 +69,6 @@ export class TCloudUiDatepickerTimeComponent {
51
69
  return mm;
52
70
  }
53
71
  toSetDate(date) {
54
- console.log('toSetDate', date);
55
72
  this.set_date_by_datepicker(date);
56
73
  }
57
74
  toSetTime() {
@@ -68,6 +85,7 @@ export class TCloudUiDatepickerTimeComponent {
68
85
  }
69
86
  }
70
87
  set_date_by_datepicker(date) {
88
+ console.log('set_date_by_datepicker date', date);
71
89
  if (date) {
72
90
  date = (date).replace(/-/g, '/');
73
91
  let date_part = (date).split('/');
@@ -104,11 +122,11 @@ export class TCloudUiDatepickerTimeComponent {
104
122
  if (mm === '00') {
105
123
  this.MM = mm;
106
124
  }
107
- const str_date = `${ano}-${mes}-${dia}T${hh}:${mm}:00Z`;
125
+ const notation = (this.UTC) ? '00Z' : '00';
126
+ const str_date = `${ano}-${mes}-${dia}T${hh}:${mm}:${notation}`;
108
127
  const datetime = new Date(str_date);
109
128
  if (this.checkIsDate(datetime)) {
110
129
  this.innerValue = datetime;
111
- console.log('datetime', datetime);
112
130
  }
113
131
  else {
114
132
  this.innerValue = undefined;
@@ -116,14 +134,19 @@ export class TCloudUiDatepickerTimeComponent {
116
134
  this.ngModelChange.emit(this.innerValue);
117
135
  this.onChange.emit(this.innerValue);
118
136
  this.eventChange.emit(this.datepickertime?.nativeElement);
119
- console.log('str_date', str_date);
120
137
  }
121
138
  else {
139
+ this.description_options_date_time = '';
140
+ this.value_options_date_time = '';
122
141
  this.innerValue = undefined;
123
142
  this.ngModelChange.emit(this.innerValue);
124
143
  this.onChange.emit(this.innerValue);
125
144
  this.eventChange.emit(this.datepickertime?.nativeElement);
126
145
  }
146
+ if (`${this.last_options_date_time}` !== `${this.innerValue}`) {
147
+ // this.description_options_date_time = '';
148
+ // this.value_options_date_time = '';
149
+ }
127
150
  }
128
151
  // Distribuir os valores da data por pedaços: data - hora - min
129
152
  to_date_hh_mm(d) {
@@ -161,10 +184,68 @@ export class TCloudUiDatepickerTimeComponent {
161
184
  this.DD_MM_YYYY = '';
162
185
  this.HH = '00';
163
186
  this.MM = '00';
187
+ this.description_options_date_time = '';
188
+ this.value_options_date_time = '';
164
189
  }
165
190
  toClickIn(id) {
166
191
  document.getElementById(id)?.focus();
167
192
  }
193
+ onClosedOptionsDateTime() {
194
+ this.open_options_date_time = false;
195
+ }
196
+ onChangeOptionsDateTime(event) {
197
+ // this.description_options_date_time = '';
198
+ // this.value_options_date_time = '';
199
+ this.show_date_picker = false;
200
+ let now = new Date();
201
+ let filter_date = undefined;
202
+ if (event === '7-days') {
203
+ filter_date = new Date((new Date(now)).setDate(now.getDate() - 7));
204
+ filter_date = new Date((filter_date).setSeconds(0));
205
+ }
206
+ if (event === '15-days') {
207
+ filter_date = new Date((new Date(now)).setDate(now.getDate() - 15));
208
+ filter_date = new Date((filter_date).setSeconds(0));
209
+ }
210
+ if (event === '30-days') {
211
+ filter_date = new Date((new Date(now)).setDate(now.getDate() - 30));
212
+ filter_date = new Date((filter_date).setSeconds(0));
213
+ }
214
+ if (event === 'current-month') {
215
+ filter_date = new Date(now.getFullYear(), now.getMonth(), 1);
216
+ }
217
+ if (event === 'current-year') {
218
+ filter_date = new Date(now.getFullYear(), 0, 1);
219
+ }
220
+ if (filter_date) {
221
+ this.innerValue = filter_date;
222
+ if (this.checkIsDate(filter_date)) {
223
+ setTimeout(() => {
224
+ this.to_date_hh_mm(filter_date);
225
+ this.toSetDate(this.DD_MM_YYYY);
226
+ this.show_date_picker = true;
227
+ this.value_options_date_time = event;
228
+ this.last_options_date_time = filter_date;
229
+ this.description_options_date_time = this.get_description_options_date_time(event);
230
+ });
231
+ }
232
+ }
233
+ }
234
+ get_description_options_date_time(value) {
235
+ if (this.options_date_time && (this.options_date_time).length > 0) {
236
+ for (let i = 0; i < (this.options_date_time).length; i++) {
237
+ const item = this.options_date_time[i];
238
+ if (item.value === value) {
239
+ return item.description;
240
+ }
241
+ }
242
+ }
243
+ return '';
244
+ }
245
+ closedTimeDescription() {
246
+ this.value_options_date_time = '';
247
+ this.description_options_date_time = '';
248
+ }
168
249
  //get accessor
169
250
  get value() {
170
251
  return this.innerValue;
@@ -172,9 +253,7 @@ export class TCloudUiDatepickerTimeComponent {
172
253
  ;
173
254
  //set accessor including call the onchange callback
174
255
  set value(v) {
175
- //console.log('set value', v);
176
256
  if (v !== this.innerValue) {
177
- //console.log('set value this.innerValue', this.innerValue);
178
257
  this.innerValue = v;
179
258
  this.onChangeCallback(v);
180
259
  }
@@ -209,11 +288,13 @@ export class TCloudUiDatepickerTimeComponent {
209
288
  }
210
289
  }
211
290
  TCloudUiDatepickerTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
212
- TCloudUiDatepickerTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: { ngModel: "ngModel" }, outputs: { ngModelChange: "ngModelChange", onChange: "onChange", eventChange: "eventChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "datepickertime", first: true, predicate: ["_datepickertime"], descendants: true }], ngImport: i0, template: "<input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\r\n<form #_formulario=\"ngForm\">\r\n <div class=\"input-control-time\">\r\n <div class=\"form-control-time\">\r\n <table class=\"form-time\">\r\n <tr>\r\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\r\n <td class=\"area-input-date\"><tcloud-ui-datepicker #_tclouddatepickertime [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker></td>\r\n \r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\">\r\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\r\n <ng-container *ngFor=\"let hh of option_HH\">\r\n <option [ngValue]=\"hh\">{{ hh }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\">\r\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\r\n <ng-container *ngFor=\"let mm of option_MM\">\r\n <option [value]=\"mm\">{{ mm }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n</form>", styles: ["@charset \"UTF-8\";.input-control-time{background-color:#fff;border:1px solid #ccc;border-radius:3px;width:100%;height:40px}.form-control-time{max-width:220px;border:none}.form-control-time input{text-align:center}.form-time{width:100%}.delimiter-time{width:100%;text-align:center}.delimiter-time-icon{border:none;height:35px;width:10px;padding:4px;font-size:17px;text-align:center;opacity:.6}.area-icon{width:25px}.area-input-date{width:100px}.area-delimiter{width:2px;text-align:center}.area-input-hour,.area-input-minute{text-align:center;width:28px}.area-input-hour input,.area-input-minute input{height:35px;width:28px;text-align:center;color:#999;font-weight:600;font-style:italic}.area-input-hour input:focus,.area-input-minute input:focus{outline:none}.area-clean{width:15px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:35px;height:37px;padding:0 9px;font-size:12px;color:#777;font-weight:600;-webkit-appearance:none;appearance:none}.select-time-date:focus{box-shadow:0 0;border:0 none;outline:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: ["multiple", "maxNumberOfDates", "daysOfWeekDisabled", "minDate", "maxDate", "datesDisabled", "modeInput", "useBorder", "ngModel", "code"], outputs: ["onChange", "ngModelChange"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
291
+ TCloudUiDatepickerTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: { UTC: "UTC", ngModel: "ngModel", useOptionsDateTime: "useOptionsDateTime" }, outputs: { ngModelChange: "ngModelChange", onChange: "onChange", eventChange: "eventChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "datepickertime", first: true, predicate: ["_datepickertime"], descendants: true }], ngImport: i0, template: "<input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\r\n<form #_formulario=\"ngForm\">\r\n <div class=\"input-control-time\">\r\n <div class=\"form-control-time\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n\r\n <div class=\"input-options-date\">\r\n <table class=\"form-time\">\r\n <tr>\r\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\r\n <td class=\"area-input-date\">\r\n <ng-container *ngIf=\"show_date_picker\">\r\n <tcloud-ui-datepicker #_tclouddatepickertime [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker>\r\n </ng-container>\r\n </td>\r\n \r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\">\r\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\r\n <ng-container *ngFor=\"let hh of option_HH\">\r\n <option [ngValue]=\"hh\">{{ hh }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\">\r\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\r\n <ng-container *ngFor=\"let mm of option_MM\">\r\n <option [value]=\"mm\">{{ mm }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"description-options-date\" *ngIf=\"value_options_date_time !== ''\">\r\n <strong>{{ description_options_date_time }}</strong>\r\n\r\n <!-- <div class=\"area-action-date-time-selected\">\r\n <button class=\"btn-icon\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </div> -->\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </td>\r\n <td *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0\" style=\"width: 20px\">\r\n <button type=\"button\" class=\"icon-short-time\" (click)=\"open_options_date_time = !open_options_date_time\" [title]=\"description_options_date_time\" >\r\n <i *ngIf=\"!open_options_date_time\" class=\"fas fa-caret-down\"></i>\r\n <i *ngIf=\"open_options_date_time\" class=\"fas fa-caret-up\"></i>\r\n </button>\r\n\r\n <ng-container *ngIf=\"value_options_date_time !== ''\">\r\n <button class=\"btn-icon-close\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0 && open_options_date_time\">\r\n <td colspan=\"2\">\r\n <tcloud-ui-data-list \r\n name=\"value_options_date_time\"\r\n [showInput]=\"false\" \r\n [search]=\"false\" \r\n [open]=\"true\" \r\n [listItems]=\"options_date_time\" \r\n (onClosed)=\"onClosedOptionsDateTime()\"\r\n [ngModel]=\"value_options_date_time\"\r\n (ngModelChange)=\"onChangeOptionsDateTime($event)\"\r\n >\r\n </tcloud-ui-data-list>\r\n\r\n \r\n\r\n\r\n \r\n </td>\r\n </tr>\r\n </table>\r\n\r\n \r\n </div>\r\n </div>\r\n</form>", styles: ["@charset \"UTF-8\";.input-control-time{background-color:#fff;border:1px solid #ccc;border-radius:3px;width:100%;height:40px}.form-control-time{max-width:220px;border:none}.form-control-time input{text-align:center}.form-time{width:100%}.delimiter-time{width:100%;text-align:center}.delimiter-time-icon{border:none;height:35px;width:10px;padding:4px;font-size:17px;text-align:center;opacity:.6}.area-icon{width:25px}.area-input-date{width:100px}.area-delimiter{width:2px;text-align:center}.area-input-hour,.area-input-minute{text-align:center;width:28px}.area-input-hour input,.area-input-minute input{height:35px;width:28px;text-align:center;color:#999;font-weight:600;font-style:italic}.area-input-hour input:focus,.area-input-minute input:focus{outline:none}.area-clean{width:15px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:35px;height:37px;padding:0 9px;font-size:12px;color:#777;font-weight:600;-webkit-appearance:none;appearance:none}.select-time-date:focus{box-shadow:0 0;border:0 none;outline:0}.btn-icon-close{border:none;background-color:#fff;cursor:pointer;padding:0;color:#aaa;width:17px;position:relative;top:-20px;z-index:1}.btn-icon-close:hover{color:#c43a3a!important}.icon-short-time{border:none;background:none;cursor:pointer;font-size:15px;color:#8a8a8a}.input-options-date{position:relative}.input-options-date .description-options-date{position:absolute;left:0;top:0;padding:5px 10px;background-color:#fff;width:100%;height:34px;overflow:hidden}.input-options-date .description-options-date strong{font-size:14px;font-weight:400;padding-left:5px}.input-options-date .area-action-date-time-selected{width:20px;display:block;float:right;text-align:right;position:relative;top:-2px;left:30px;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: ["multiple", "maxNumberOfDates", "daysOfWeekDisabled", "minDate", "maxDate", "datesDisabled", "modeInput", "useBorder", "ngModel", "code"], outputs: ["onChange", "ngModelChange"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TCloudUiDataListComponent, selector: "tcloud-ui-data-list", inputs: ["placeholder", "disabled", "loading", "showInput", "search", "listItems", "open", "border", "ngModel"], outputs: ["onInputChange", "onChange", "onOpened", "onClosed", "ngModelChange"] }] });
213
292
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeComponent, decorators: [{
214
293
  type: Component,
215
- args: [{ selector: 'tcloud-ui-datepicker-time', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], template: "<input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\r\n<form #_formulario=\"ngForm\">\r\n <div class=\"input-control-time\">\r\n <div class=\"form-control-time\">\r\n <table class=\"form-time\">\r\n <tr>\r\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\r\n <td class=\"area-input-date\"><tcloud-ui-datepicker #_tclouddatepickertime [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker></td>\r\n \r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\">\r\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\r\n <ng-container *ngFor=\"let hh of option_HH\">\r\n <option [ngValue]=\"hh\">{{ hh }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\">\r\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\r\n <ng-container *ngFor=\"let mm of option_MM\">\r\n <option [value]=\"mm\">{{ mm }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n</form>", styles: ["@charset \"UTF-8\";.input-control-time{background-color:#fff;border:1px solid #ccc;border-radius:3px;width:100%;height:40px}.form-control-time{max-width:220px;border:none}.form-control-time input{text-align:center}.form-time{width:100%}.delimiter-time{width:100%;text-align:center}.delimiter-time-icon{border:none;height:35px;width:10px;padding:4px;font-size:17px;text-align:center;opacity:.6}.area-icon{width:25px}.area-input-date{width:100px}.area-delimiter{width:2px;text-align:center}.area-input-hour,.area-input-minute{text-align:center;width:28px}.area-input-hour input,.area-input-minute input{height:35px;width:28px;text-align:center;color:#999;font-weight:600;font-style:italic}.area-input-hour input:focus,.area-input-minute input:focus{outline:none}.area-clean{width:15px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:35px;height:37px;padding:0 9px;font-size:12px;color:#777;font-weight:600;-webkit-appearance:none;appearance:none}.select-time-date:focus{box-shadow:0 0;border:0 none;outline:0}\n"] }]
216
- }], propDecorators: { ngModel: [{
294
+ args: [{ selector: 'tcloud-ui-datepicker-time', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], template: "<input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\r\n<form #_formulario=\"ngForm\">\r\n <div class=\"input-control-time\">\r\n <div class=\"form-control-time\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n\r\n <div class=\"input-options-date\">\r\n <table class=\"form-time\">\r\n <tr>\r\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\r\n <td class=\"area-input-date\">\r\n <ng-container *ngIf=\"show_date_picker\">\r\n <tcloud-ui-datepicker #_tclouddatepickertime [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker>\r\n </ng-container>\r\n </td>\r\n \r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\">\r\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\r\n <ng-container *ngFor=\"let hh of option_HH\">\r\n <option [ngValue]=\"hh\">{{ hh }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\">\r\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\r\n <ng-container *ngFor=\"let mm of option_MM\">\r\n <option [value]=\"mm\">{{ mm }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"description-options-date\" *ngIf=\"value_options_date_time !== ''\">\r\n <strong>{{ description_options_date_time }}</strong>\r\n\r\n <!-- <div class=\"area-action-date-time-selected\">\r\n <button class=\"btn-icon\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </div> -->\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </td>\r\n <td *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0\" style=\"width: 20px\">\r\n <button type=\"button\" class=\"icon-short-time\" (click)=\"open_options_date_time = !open_options_date_time\" [title]=\"description_options_date_time\" >\r\n <i *ngIf=\"!open_options_date_time\" class=\"fas fa-caret-down\"></i>\r\n <i *ngIf=\"open_options_date_time\" class=\"fas fa-caret-up\"></i>\r\n </button>\r\n\r\n <ng-container *ngIf=\"value_options_date_time !== ''\">\r\n <button class=\"btn-icon-close\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0 && open_options_date_time\">\r\n <td colspan=\"2\">\r\n <tcloud-ui-data-list \r\n name=\"value_options_date_time\"\r\n [showInput]=\"false\" \r\n [search]=\"false\" \r\n [open]=\"true\" \r\n [listItems]=\"options_date_time\" \r\n (onClosed)=\"onClosedOptionsDateTime()\"\r\n [ngModel]=\"value_options_date_time\"\r\n (ngModelChange)=\"onChangeOptionsDateTime($event)\"\r\n >\r\n </tcloud-ui-data-list>\r\n\r\n \r\n\r\n\r\n \r\n </td>\r\n </tr>\r\n </table>\r\n\r\n \r\n </div>\r\n </div>\r\n</form>", styles: ["@charset \"UTF-8\";.input-control-time{background-color:#fff;border:1px solid #ccc;border-radius:3px;width:100%;height:40px}.form-control-time{max-width:220px;border:none}.form-control-time input{text-align:center}.form-time{width:100%}.delimiter-time{width:100%;text-align:center}.delimiter-time-icon{border:none;height:35px;width:10px;padding:4px;font-size:17px;text-align:center;opacity:.6}.area-icon{width:25px}.area-input-date{width:100px}.area-delimiter{width:2px;text-align:center}.area-input-hour,.area-input-minute{text-align:center;width:28px}.area-input-hour input,.area-input-minute input{height:35px;width:28px;text-align:center;color:#999;font-weight:600;font-style:italic}.area-input-hour input:focus,.area-input-minute input:focus{outline:none}.area-clean{width:15px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:35px;height:37px;padding:0 9px;font-size:12px;color:#777;font-weight:600;-webkit-appearance:none;appearance:none}.select-time-date:focus{box-shadow:0 0;border:0 none;outline:0}.btn-icon-close{border:none;background-color:#fff;cursor:pointer;padding:0;color:#aaa;width:17px;position:relative;top:-20px;z-index:1}.btn-icon-close:hover{color:#c43a3a!important}.icon-short-time{border:none;background:none;cursor:pointer;font-size:15px;color:#8a8a8a}.input-options-date{position:relative}.input-options-date .description-options-date{position:absolute;left:0;top:0;padding:5px 10px;background-color:#fff;width:100%;height:34px;overflow:hidden}.input-options-date .description-options-date strong{font-size:14px;font-weight:400;padding-left:5px}.input-options-date .area-action-date-time-selected{width:20px;display:block;float:right;text-align:right;position:relative;top:-2px;left:30px;z-index:1}\n"] }]
295
+ }], propDecorators: { UTC: [{
296
+ type: Input
297
+ }], ngModel: [{
217
298
  type: Input
218
299
  }], ngModelChange: [{
219
300
  type: Output
@@ -221,8 +302,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
221
302
  type: Output
222
303
  }], eventChange: [{
223
304
  type: Output
305
+ }], useOptionsDateTime: [{
306
+ type: Input
224
307
  }], datepickertime: [{
225
308
  type: ViewChild,
226
309
  args: ['_datepickertime', { static: false }]
227
310
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFbkQsTUFBTSxtQ0FBbUMsR0FBUTtJQUMvQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsK0JBQStCLENBQUM7SUFDOUQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQVFGLE1BQU0sT0FBTywrQkFBK0I7SUFONUM7UUFjWSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFekMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWhELGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsT0FBRSxHQUFXLElBQUksQ0FBQztRQUNsQixPQUFFLEdBQVcsSUFBSSxDQUFDO1FBRWxCLE9BQUUsR0FB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LHFDQUFxQztJQUNyQyxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7NkhBclBVLCtCQUErQjtpSEFBL0IsK0JBQStCLG1MQUYvQixDQUFDLG1DQUFtQyxDQUFDLDZJQ2hCbEQsODZEQWdDTzs0RkRkTSwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0UsMkJBQTJCLGFBRzFCLENBQUMsbUNBQW1DLENBQUM7OEJBS25DLE9BQU87c0JBQW5CLEtBQUs7Z0JBS0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBV3dDLGNBQWM7c0JBQTVELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBPbkluaXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaURhdGVwaWNrZXJUaW1lQ29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwcml2YXRlIF9uZ01vZGVsOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2V0IG5nTW9kZWwodjogYW55KXtcclxuICAgIGlmKCB2ICYmIHYgIT09IHRoaXMuaW5uZXJWYWx1ZSApe1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyBcclxuICAgIH0gXHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBuZ01vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG5cclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgQE91dHB1dCgpIGV2ZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEREX01NX1lZWVk6IHN0cmluZyA9ICcnO1xyXG4gIEhIOiBzdHJpbmcgPSAnMDAnO1xyXG4gIE1NOiBzdHJpbmcgPSAnMDAnO1xyXG5cclxuICBJRDogc3RyaW5nID0gJyc7XHJcblxyXG4gIG9wdGlvbl9ISDogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgb3B0aW9uX01NOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnX2RhdGVwaWNrZXJ0aW1lJywge3N0YXRpYzogZmFsc2V9KSBkYXRlcGlja2VydGltZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5JRCA9IHRoaXMuZ2VuZXJhdGVJRCgpO1xyXG4gICAgdGhpcy5vcHRpb25fSEggPSB0aGlzLmdldExpc3RUSU1FKDIzKTtcclxuICAgIHRoaXMub3B0aW9uX01NID0gdGhpcy5nZXRMaXN0VElNRSg1OSk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUlEKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiBgdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdFRJTUUodjogbnVtYmVyKXtcclxuICAgIGxldCBtbSA9IFtdO1xyXG4gICAgZm9yKGxldCBpID0gMDsgaSA8PSB2OyBpKysgKXtcclxuICAgICAgaWYoIGkgPCAxMCApe1xyXG4gICAgICAgIChtbSkucHVzaChgMCR7aX1gKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgKG1tKS5wdXNoKGAke2l9YCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtbTtcclxuICB9XHJcblxyXG4gIHRvU2V0RGF0ZShkYXRlOiBzdHJpbmcpe1xyXG4gICAgY29uc29sZS5sb2coJ3RvU2V0RGF0ZScsIGRhdGUpO1xyXG5cclxuICAgIHRoaXMuc2V0X2RhdGVfYnlfZGF0ZXBpY2tlcihkYXRlKTtcclxuICB9XHJcblxyXG4gIHRvU2V0VGltZSgpe1xyXG4gICAgaWYoIHRoaXMuRERfTU1fWVlZWSAmJiAoKHRoaXMuRERfTU1fWVlZWSkudHJpbSgpKS5sZW5ndGggPT09IDEwKXtcclxuICAgICAgY29uc3QgZGF0ZSA9ICh0aGlzLkREX01NX1lZWVkpLnJlcGxhY2UoLy0vZywgJy8nKTtcclxuICAgICAgbGV0IGRhdGVfcGFydCA9IChkYXRlKS5zcGxpdCgnLycpO1xyXG4gICAgICBsZXQgZGQgPSBkYXRlX3BhcnRbMF07XHJcbiAgICAgIGxldCBtbSA9IGRhdGVfcGFydFsxXTtcclxuICAgICAgbGV0IHl5ID0gZGF0ZV9wYXJ0WzJdO1xyXG4gICAgICBjb25zdCBkYXRldGltZSA9IG5ldyBEYXRlKGAke3l5fS0ke21tfS0ke2RkfWApO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZShkYXRldGltZSkgKXtcclxuICAgICAgICB0aGlzLnNldF9kYXRlX2J5X2RhdGVwaWNrZXIoZGF0ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldF9kYXRlX2J5X2RhdGVwaWNrZXIoZGF0ZTogc3RyaW5nKXtcclxuXHJcbiAgICBpZiggZGF0ZSApe1xyXG4gICAgICBkYXRlID0gKGRhdGUpLnJlcGxhY2UoLy0vZywgJy8nKTtcclxuICAgICAgbGV0IGRhdGVfcGFydCA9IChkYXRlKS5zcGxpdCgnLycpO1xyXG4gICAgICBsZXQgZGlhID0gZGF0ZV9wYXJ0WzBdO1xyXG4gICAgICBsZXQgbWVzID0gZGF0ZV9wYXJ0WzFdO1xyXG4gICAgICBsZXQgYW5vID0gZGF0ZV9wYXJ0WzJdO1xyXG5cclxuICAgICAgbGV0IGhoID0gdGhpcy5ISDtcclxuICAgICAgaWYoICFoaCApe1xyXG4gICAgICAgIGhoID0gJzAwJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYoICggKyhoaCkgPj0gMCAmJiArKGhoKSA8IDI0ICkgKXtcclxuICAgICAgICAgIGhoID0gKCsoaGgpIDwgMTAgKSA/IGAwJHsrKGhoKX1gIDogYCR7KyhoaCl9YDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGhoID0gJzAwJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBtbSA9IHRoaXMuTU07XHJcbiAgICAgIGlmKCAhbW0gKXtcclxuICAgICAgICBtbSA9ICcwMCc7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmKCAoICsobW0pID49IDAgJiYgKyhtbSkgPCA2MCApICl7XHJcbiAgICAgICAgICBtbSA9ICgrKG1tKSA8IDEwICkgPyBgMCR7KyhtbSl9YCA6IGAkeysobW0pfWA7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBtbSA9ICcwMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggaGggPT09ICcwMCcgKXsgdGhpcy5ISCA9IGhoOyB9XHJcbiAgICAgIGlmKCBtbSA9PT0gJzAwJyApeyB0aGlzLk1NID0gbW07IH1cclxuXHJcbiAgICAgIGNvbnN0IHN0cl9kYXRlID0gYCR7YW5vfS0ke21lc30tJHtkaWF9VCR7aGh9OiR7bW19OjAwWmA7XHJcbiAgICAgIGNvbnN0IGRhdGV0aW1lID0gbmV3IERhdGUoIHN0cl9kYXRlICk7XHJcbiAgICAgIFxyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZShkYXRldGltZSkgKXtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSBkYXRldGltZTtcclxuICAgICAgICBjb25zb2xlLmxvZygnZGF0ZXRpbWUnLCBkYXRldGltZSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQoIHRoaXMuaW5uZXJWYWx1ZSApO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoIHRoaXMuaW5uZXJWYWx1ZSApO1xyXG4gICAgICB0aGlzLmV2ZW50Q2hhbmdlLmVtaXQoIHRoaXMuZGF0ZXBpY2tlcnRpbWU/Lm5hdGl2ZUVsZW1lbnQgKTtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKCdzdHJfZGF0ZScsIHN0cl9kYXRlKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5ldmVudENoYW5nZS5lbWl0KCB0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50ICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLy8gRGlzdHJpYnVpciBvcyB2YWxvcmVzIGRhIGRhdGEgcG9yIHBlZGHDp29zOiBkYXRhIC0gaG9yYSAtIG1pblxyXG4gIHRvX2RhdGVfaGhfbW0oZDogRGF0ZSl7XHJcbiAgICBsZXQgZGlhID0gYCR7KGQpLmdldERhdGUoKX1gO1xyXG4gICAgZGlhID0gKCsoZGlhKSA8IDEwICkgPyBgMCR7K2RpYX1gIDogZGlhO1xyXG4gICAgbGV0IG1lcyA9IGAkeyhkKS5nZXRNb250aCgpKzF9YDtcclxuICAgIG1lcyA9ICgrKG1lcykgPCAxMCApID8gYDAkeyttZXN9YCA6IG1lczsgIFxyXG5cclxuICAgIGxldCBhbm8gPSBgJHsoZCkuZ2V0RnVsbFllYXIoKX1gO1xyXG4gICAgbGV0IGhoICA9IGAkeyhkKS5nZXRIb3VycygpfWA7XHJcbiAgICBsZXQgbW0gID0gYCR7KGQpLmdldE1pbnV0ZXMoKX1gO1xyXG5cclxuICAgIGlmKCBoaCAmJiAoICsoaGgpIDwgMCB8fCArKGhoKSA+IDIzICkgKXsgaGggPSAnMDAnOyB9XHJcbiAgICBoaCA9IChoaCkgPyAoICgrKGhoKSA8IDEwICkgPyBgMCR7aGh9YCA6IGhoICkgOiAnMDAnO1xyXG5cclxuICAgIGlmKCBtbSAmJiAoICsobW0pIDwgMCB8fCArKG1tKSA+IDU5ICkgKXsgbW0gPSAnMDAnOyB9XHJcbiAgICBtbSA9IChtbSkgPyAoICgrKG1tKSA8IDEwICkgPyBgMCR7bW19YCA6IG1tICkgOiAnMDAnO1xyXG5cclxuICAgIHRoaXMuTU0gPSBtbTtcclxuICAgIHRoaXMuSEggPSBoaDtcclxuXHJcbiAgICB0aGlzLkREX01NX1lZWVkgPSBgJHtkaWF9LyR7bWVzfS8ke2Fub31gO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJc0RhdGUoZDogYW55KTogYm9vbGVhbntcclxuXHJcbiAgICBpZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkgPT09IFwiW29iamVjdCBEYXRlXVwiKSB7XHJcbiAgICAgIGlmKGlzTmFOKGQpKSB7IHJldHVybiBmYWxzZTsgfSBlbHNlIHsgcmV0dXJuIHRydWU7IH1cclxuICAgIH0gXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xlYW4oKXtcclxuICAgIHRoaXMuRERfTU1fWVlZWSA9ICcnO1xyXG4gICAgdGhpcy5ISCA9ICcwMCc7XHJcbiAgICB0aGlzLk1NID0gJzAwJztcclxuICB9XHJcblxyXG4gIHRvQ2xpY2tJbihpZDogc3RyaW5nKXtcclxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKT8uZm9jdXMoKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIFxyXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gIC8vZ2V0IGFjY2Vzc29yXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG4gICAgLy9jb25zb2xlLmxvZygnc2V0IHZhbHVlJywgdik7XHJcbiAgICBpZiAodiAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XHJcbiAgICAgIC8vY29uc29sZS5sb2coJ3NldCB2YWx1ZSB0aGlzLmlubmVyVmFsdWUnLCB0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAgICAgIFxyXG4gICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1NldCB0b3VjaGVkIG9uIGJsdXJcclxuICBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKCBgJHt2YWx1ZX1gICk7XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxyXG5cclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XHJcbiAgICAgIGlmKCB0aGlzLmNoZWNrSXNEYXRlKHZhbHVlKSApe1xyXG4gICAgICAgIHRoaXMudG9fZGF0ZV9oaF9tbSh2YWx1ZSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuY2xlYW4oKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8aW5wdXQgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwie3sgaW5uZXJWYWx1ZSB9fVwiICNfZGF0ZXBpY2tlcnRpbWUgPlxyXG48Zm9ybSAjX2Zvcm11bGFyaW89XCJuZ0Zvcm1cIj5cclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udHJvbC10aW1lXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLXRpbWVcIj5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwiZm9ybS10aW1lXCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPCEtLSA8dGQgY2xhc3M9XCJhcmVhLWljb25cIj48ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWUtaWNvblwiIChjbGljayk9XCJ0b0NsaWNrSW4oSUQpXCIgPjxpIGNsYXNzPVwiZmFzIGZhLWNhbGVuZGFyLWFsdFwiPjwvaT48L2Rpdj48L3RkPiAtLT5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaW5wdXQtZGF0ZVwiPjx0Y2xvdWQtdWktZGF0ZXBpY2tlciAjX3RjbG91ZGRhdGVwaWNrZXJ0aW1lIFttb2RlSW5wdXRdPVwidHJ1ZVwiIG5hbWU9XCJkYXRlXCIgW3VzZUJvcmRlcl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwiRERfTU1fWVlZWVwiIChvbkNoYW5nZSk9XCJ0b1NldERhdGUoJGV2ZW50KVwiID48L3RjbG91ZC11aS1kYXRlcGlja2VyPjwvdGQ+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtZGVsaW1pdGVyXCI+PGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lXCI+PC9kaXY+PC90ZD5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaW5wdXQtaG91clwiPlxyXG4gICAgICAgICAgICA8IS0tPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJISFwiIChrZXl1cCk9XCJ0b1NldFRpbWUoKVwiIFsobmdNb2RlbCldPVwiSEhcIiBtYXhsZW5ndGg9XCIyXCIgbmFtZT1cImhoXCIgcGF0dGVybj1cIlswXVswLTldfFsxXVswLTldfDJbMC0zXVwiPi0tPlxyXG4gICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic2VsZWN0LXRpbWUtZGF0ZVwiIChjaGFuZ2UpPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIkhIXCIgbmFtZT1cImhoXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaGggb2Ygb3B0aW9uX0hIXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImhoXCI+e3sgaGggfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1kZWxpbWl0ZXJcIj48ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWVcIj46PC9kaXY+PC90ZD5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaW5wdXQtbWludXRlXCI+XHJcbiAgICAgICAgICAgIDwhLS08aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIk1NXCIgKGtleXVwKT1cInRvU2V0VGltZSgpXCIgWyhuZ01vZGVsKV09XCJNTVwiIG1heGxlbmd0aD1cIjJcIiBuYW1lPVwibW1cIiBwYXR0ZXJuPVwiWzAxMjM0NV1bMC05XVwiPi0tPlxyXG4gICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic2VsZWN0LXRpbWUtZGF0ZVwiIChjaGFuZ2UpPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIk1NXCIgbmFtZT1cIm1tXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbW0gb2Ygb3B0aW9uX01NXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJtbVwiPnt7IG1tIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtY2xlYW5cIj48L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPiJdfQ==
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBR25ELE1BQU0sbUNBQW1DLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO0lBQzlELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFRRixNQUFNLE9BQU8sK0JBQStCO0lBTjVDO1FBUVcsUUFBRyxHQUFZLEtBQUssQ0FBQztRQUU5QixxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFRdkIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV2Qyx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFcEMsZUFB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RTtvQkFDaEMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUMvQztxQkFBSTtvQkFDSCxFQUFFLEdBQUcsSUFBSSxDQUFDO2lCQUNYO2FBQ0Y7WUFFRCxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ1AsRUFBRSxHQUFHLElBQUksQ0FBQzthQUNYO2lCQUFJO2dCQUNILElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUUsRUFBRTtvQkFDaEMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUMvQztxQkFBSTtvQkFDSCxFQUFFLEdBQUcsSUFBSSxDQUFDO2lCQUNYO2FBQ0Y7WUFFRCxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFBRTtZQUNsQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFBRTtZQUVsQyxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFFM0MsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFFLFFBQVEsQ0FBRSxDQUFDO1lBRXRDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7YUFDNUI7aUJBQUk7Z0JBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7YUFDN0I7WUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFFLENBQUM7U0FFN0Q7YUFBSTtZQUVILElBQUksQ0FBQyw2QkFBNkIsR0FBRyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztZQUVsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFFLENBQUM7U0FDN0Q7UUFFRCxJQUFJLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDN0QsMkNBQTJDO1lBQzNDLHFDQUFxQztTQUN0QztJQUVILENBQUM7SUFFRCwrREFBK0Q7SUFDL0QsYUFBYSxDQUFDLENBQU87UUFDbkIsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDN0IsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN4QyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUV4QyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNqQyxJQUFJLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUM5QixJQUFJLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUVoQyxJQUFJLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxFQUFFO1lBQUUsRUFBRSxHQUFHLElBQUksQ0FBQztTQUFFO1FBQ3JELEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXJELElBQUksRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENB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S0FBSyxDQUFDLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0I7aUJBQUk7Z0JBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO2FBQ2I7U0FDRjtJQUNILENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7OzZIQXhWVSwrQkFBK0I7aUhBQS9CLCtCQUErQix5T0FGL0IsQ0FBQyxtQ0FBbUMsQ0FBQyw2SUNqQmxELHk4SUE4Rk87NEZEM0VNLCtCQUErQjtrQkFOM0MsU0FBUzsrQkFDRSwyQkFBMkIsYUFHMUIsQ0FBQyxtQ0FBbUMsQ0FBQzs4QkFJdkMsR0FBRztzQkFBWCxLQUFLO2dCQUtPLE9BQU87c0JBQW5CLEtBQUs7Z0JBS0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUUsa0JBQWtCO3NCQUExQixLQUFLO2dCQVd5QyxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSVNlbGVjdE9wdGlvbnMgfSBmcm9tICcuLi90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3QnO1xyXG5cclxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaURhdGVwaWNrZXJUaW1lQ29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBVVEM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgc2hvd19kYXRlX3BpY2tlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX25nTW9kZWw6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgbmdNb2RlbCh2OiBhbnkpe1xyXG4gICAgaWYoIHYgJiYgdiAhPT0gdGhpcy5pbm5lclZhbHVlICl7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7IFxyXG4gICAgfSBcclxuICB9XHJcbiAgQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICBAT3V0cHV0KCkgZXZlbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgdXNlT3B0aW9uc0RhdGVUaW1lID0gZmFsc2U7XHJcblxyXG4gIEREX01NX1lZWVk6IHN0cmluZyA9ICcnO1xyXG4gIEhIOiBzdHJpbmcgPSAnMDAnO1xyXG4gIE1NOiBzdHJpbmcgPSAnMDAnO1xyXG5cclxuICBJRDogc3RyaW5nID0gJyc7XHJcblxyXG4gIG9wdGlvbl9ISDogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgb3B0aW9uX01NOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnX2RhdGVwaWNrZXJ0aW1lJywge3N0YXRpYzogZmFsc2V9KSBkYXRlcGlja2VydGltZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIG9wdGlvbnNfZGF0ZV90aW1lIDogSVNlbGVjdE9wdGlvbnNbXSA9IFtdO1xyXG4gIG9wZW5fb3B0aW9uc19kYXRlX3RpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbGFzdF9vcHRpb25zX2RhdGVfdGltZTogYW55O1xyXG4gIGRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lOiBhbnkgPSAnJztcclxuICB2YWx1ZV9vcHRpb25zX2RhdGVfdGltZTogYW55ID0gJyc7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuXHJcbiAgICB0aGlzLnNldE9wdGlvbnNEYXRlVGltZSgpO1xyXG5cclxuICAgIHRoaXMuSUQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcclxuICAgIHRoaXMub3B0aW9uX0hIID0gdGhpcy5nZXRMaXN0VElNRSgyMyk7XHJcbiAgICB0aGlzLm9wdGlvbl9NTSA9IHRoaXMuZ2V0TGlzdFRJTUUoNTkpO1xyXG4gIH1cclxuXHJcbiAgc2V0T3B0aW9uc0RhdGVUaW1lKCl7XHJcbiAgICB0aGlzLm9wdGlvbnNfZGF0ZV90aW1lID0gW1xyXG4gICAgICB7dmFsdWU6JzctZGF5cycsIGRlc2NyaXB0aW9uOiAnNyBkaWFzJ30sXHJcbiAgICAgIHt2YWx1ZTonMTUtZGF5cycsIGRlc2NyaXB0aW9uOiAnMTUgZGlhcyd9LFxyXG4gICAgICB7dmFsdWU6JzMwLWRheXMnLCBkZXNjcmlwdGlvbjogJzMwIGRpYXMnfSxcclxuICAgICAge3ZhbHVlOidjdXJyZW50LW1vbnRoJywgZGVzY3JpcHRpb246ICdNw6pzIGF0dWFsJ30sXHJcbiAgICAgIHt2YWx1ZTonY3VycmVudC15ZWFyJywgZGVzY3JpcHRpb246ICdBbm8gYXR1YWwnfVxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVJRCgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gYHRjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUtJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9YDtcclxuICB9XHJcblxyXG4gIGdldExpc3RUSU1FKHY6IG51bWJlcil7XHJcbiAgICBsZXQgbW0gPSBbXTtcclxuICAgIGZvcihsZXQgaSA9IDA7IGkgPD0gdjsgaSsrICl7XHJcbiAgICAgIGlmKCBpIDwgMTAgKXtcclxuICAgICAgICAobW0pLnB1c2goYDAke2l9YCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIChtbSkucHVzaChgJHtpfWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW07XHJcbiAgfVxyXG5cclxuICB0b1NldERhdGUoZGF0ZTogc3RyaW5nKXsgICAgXHJcbiAgICB0aGlzLnNldF9kYXRlX2J5X2RhdGVwaWNrZXIoZGF0ZSk7XHJcbiAgfVxyXG5cclxuICB0b1NldFRpbWUoKXtcclxuICAgIGlmKCB0aGlzLkREX01NX1lZWVkgJiYgKCh0aGlzLkREX01NX1lZWVkpLnRyaW0oKSkubGVuZ3RoID09PSAxMCl7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSAodGhpcy5ERF9NTV9ZWVlZKS5yZXBsYWNlKC8tL2csICcvJyk7XHJcbiAgICAgIGxldCBkYXRlX3BhcnQgPSAoZGF0ZSkuc3BsaXQoJy8nKTtcclxuICAgICAgbGV0IGRkID0gZGF0ZV9wYXJ0WzBdO1xyXG4gICAgICBsZXQgbW0gPSBkYXRlX3BhcnRbMV07XHJcbiAgICAgIGxldCB5eSA9IGRhdGVfcGFydFsyXTtcclxuICAgICAgY29uc3QgZGF0ZXRpbWUgPSBuZXcgRGF0ZShgJHt5eX0tJHttbX0tJHtkZH1gKTtcclxuICAgICAgaWYoIHRoaXMuY2hlY2tJc0RhdGUoZGF0ZXRpbWUpICl7XHJcbiAgICAgICAgdGhpcy5zZXRfZGF0ZV9ieV9kYXRlcGlja2VyKGRhdGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRfZGF0ZV9ieV9kYXRlcGlja2VyKGRhdGU6IHN0cmluZyl7XHJcblxyXG4gICAgY29uc29sZS5sb2coJ3NldF9kYXRlX2J5X2RhdGVwaWNrZXIgZGF0ZScsIGRhdGUpO1xyXG5cclxuICAgIGlmKCBkYXRlICl7XHJcbiAgICAgIGRhdGUgPSAoZGF0ZSkucmVwbGFjZSgvLS9nLCAnLycpO1xyXG4gICAgICBsZXQgZGF0ZV9wYXJ0ID0gKGRhdGUpLnNwbGl0KCcvJyk7XHJcbiAgICAgIGxldCBkaWEgPSBkYXRlX3BhcnRbMF07XHJcbiAgICAgIGxldCBtZXMgPSBkYXRlX3BhcnRbMV07XHJcbiAgICAgIGxldCBhbm8gPSBkYXRlX3BhcnRbMl07XHJcblxyXG4gICAgICBsZXQgaGggPSB0aGlzLkhIO1xyXG4gICAgICBpZiggIWhoICl7XHJcbiAgICAgICAgaGggPSAnMDAnO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiggKCArKGhoKSA+PSAwICYmICsoaGgpIDwgMjQgKSApe1xyXG4gICAgICAgICAgaGggPSAoKyhoaCkgPCAxMCApID8gYDAkeysoaGgpfWAgOiBgJHsrKGhoKX1gO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgaGggPSAnMDAnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IG1tID0gdGhpcy5NTTtcclxuICAgICAgaWYoICFtbSApe1xyXG4gICAgICAgIG1tID0gJzAwJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYoICggKyhtbSkgPj0gMCAmJiArKG1tKSA8IDYwICkgKXtcclxuICAgICAgICAgIG1tID0gKCsobW0pIDwgMTAgKSA/IGAwJHsrKG1tKX1gIDogYCR7KyhtbSl9YDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIG1tID0gJzAwJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCBoaCA9PT0gJzAwJyApeyB0aGlzLkhIID0gaGg7IH1cclxuICAgICAgaWYoIG1tID09PSAnMDAnICl7IHRoaXMuTU0gPSBtbTsgfVxyXG5cclxuICAgICAgY29uc3Qgbm90YXRpb24gPSAodGhpcy5VVEMpID8gJzAwWicgOiAnMDAnO1xyXG5cclxuICAgICAgY29uc3Qgc3RyX2RhdGUgPSBgJHthbm99LSR7bWVzfS0ke2RpYX1UJHtoaH06JHttbX06JHtub3RhdGlvbn1gO1xyXG4gICAgICBjb25zdCBkYXRldGltZSA9IG5ldyBEYXRlKCBzdHJfZGF0ZSApO1xyXG4gICAgICBcclxuICAgICAgaWYoIHRoaXMuY2hlY2tJc0RhdGUoZGF0ZXRpbWUpICl7XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZXRpbWU7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQoIHRoaXMuaW5uZXJWYWx1ZSApO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoIHRoaXMuaW5uZXJWYWx1ZSApO1xyXG4gICAgICB0aGlzLmV2ZW50Q2hhbmdlLmVtaXQoIHRoaXMuZGF0ZXBpY2tlcnRpbWU/Lm5hdGl2ZUVsZW1lbnQgKTtcclxuXHJcbiAgICB9ZWxzZXtcclxuXHJcbiAgICAgIHRoaXMuZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgICAgdGhpcy52YWx1ZV9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG5cclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMuZXZlbnRDaGFuZ2UuZW1pdCggdGhpcy5kYXRlcGlja2VydGltZT8ubmF0aXZlRWxlbWVudCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBgJHt0aGlzLmxhc3Rfb3B0aW9uc19kYXRlX3RpbWV9YCAhPT0gYCR7dGhpcy5pbm5lclZhbHVlfWAgKXtcclxuICAgICAgLy8gdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgICAvLyB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLy8gRGlzdHJpYnVpciBvcyB2YWxvcmVzIGRhIGRhdGEgcG9yIHBlZGHDp29zOiBkYXRhIC0gaG9yYSAtIG1pblxyXG4gIHRvX2RhdGVfaGhfbW0oZDogRGF0ZSl7XHJcbiAgICBsZXQgZGlhID0gYCR7KGQpLmdldERhdGUoKX1gO1xyXG4gICAgZGlhID0gKCsoZGlhKSA8IDEwICkgPyBgMCR7K2RpYX1gIDogZGlhO1xyXG4gICAgbGV0IG1lcyA9IGAkeyhkKS5nZXRNb250aCgpKzF9YDtcclxuICAgIG1lcyA9ICgrKG1lcykgPCAxMCApID8gYDAkeyttZXN9YCA6IG1lczsgIFxyXG5cclxuICAgIGxldCBhbm8gPSBgJHsoZCkuZ2V0RnVsbFllYXIoKX1gO1xyXG4gICAgbGV0IGhoICA9IGAkeyhkKS5nZXRIb3VycygpfWA7XHJcbiAgICBsZXQgbW0gID0gYCR7KGQpLmdldE1pbnV0ZXMoKX1gO1xyXG5cclxuICAgIGlmKCBoaCAmJiAoICsoaGgpIDwgMCB8fCArKGhoKSA+IDIzICkgKXsgaGggPSAnMDAnOyB9XHJcbiAgICBoaCA9IChoaCkgPyAoICgrKGhoKSA8IDEwICkgPyBgMCR7aGh9YCA6IGhoICkgOiAnMDAnO1xyXG5cclxuICAgIGlmKCBtbSAmJiAoICsobW0pIDwgMCB8fCArKG1tKSA+IDU5ICkgKXsgbW0gPSAnMDAnOyB9XHJcbiAgICBtbSA9IChtbSkgPyAoICgrKG1tKSA8IDEwICkgPyBgMCR7bW19YCA6IG1tICkgOiAnMDAnO1xyXG5cclxuICAgIHRoaXMuTU0gPSBtbTtcclxuICAgIHRoaXMuSEggPSBoaDtcclxuXHJcbiAgICB0aGlzLkREX01NX1lZWVkgPSBgJHtkaWF9LyR7bWVzfS8ke2Fub31gO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJc0RhdGUoZDogYW55KTogYm9vbGVhbntcclxuXHJcbiAgICBpZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkgPT09IFwiW29iamVjdCBEYXRlXVwiKSB7XHJcbiAgICAgIGlmKGlzTmFOKGQpKSB7IHJldHVybiBmYWxzZTsgfSBlbHNlIHsgcmV0dXJuIHRydWU7IH1cclxuICAgIH0gXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xlYW4oKXtcclxuICAgIHRoaXMuRERfTU1fWVlZWSA9ICcnO1xyXG4gICAgdGhpcy5ISCA9ICcwMCc7XHJcbiAgICB0aGlzLk1NID0gJzAwJztcclxuICAgIHRoaXMuZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICB9XHJcblxyXG4gIHRvQ2xpY2tJbihpZDogc3RyaW5nKXtcclxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKT8uZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xvc2VkT3B0aW9uc0RhdGVUaW1lKCl7XHJcbiAgICB0aGlzLm9wZW5fb3B0aW9uc19kYXRlX3RpbWUgPSBmYWxzZVxyXG4gIH1cclxuXHJcbiAgXHJcbiAgb25DaGFuZ2VPcHRpb25zRGF0ZVRpbWUoZXZlbnQ6IGFueSl7XHJcbiAgICAvLyB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICAvLyB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICB0aGlzLnNob3dfZGF0ZV9waWNrZXIgPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGxldCBmaWx0ZXJfZGF0ZTogYW55ID0gdW5kZWZpbmVkO1xyXG4gICAgaWYoIGV2ZW50ID09PSAnNy1kYXlzJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKCAobmV3IERhdGUobm93KSkuc2V0RGF0ZSggbm93LmdldERhdGUoKSAtIDcgKSApOyAgXHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChmaWx0ZXJfZGF0ZSkuc2V0U2Vjb25kcygwKSApOyAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudCA9PT0gJzE1LWRheXMnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChuZXcgRGF0ZShub3cpKS5zZXREYXRlKCBub3cuZ2V0RGF0ZSgpIC0gMTUgKSApO1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKCAoZmlsdGVyX2RhdGUpLnNldFNlY29uZHMoMCkgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZXZlbnQgPT09ICczMC1kYXlzJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKCAobmV3IERhdGUobm93KSkuc2V0RGF0ZSggbm93LmdldERhdGUoKSAtIDMwICkgKTtcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKGZpbHRlcl9kYXRlKS5zZXRTZWNvbmRzKDApICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnY3VycmVudC1tb250aCcgKXtcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZShub3cuZ2V0RnVsbFllYXIoKSwgbm93LmdldE1vbnRoKCksIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudCA9PT0gJ2N1cnJlbnQteWVhcicgKXtcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZShub3cuZ2V0RnVsbFllYXIoKSwgMCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoZmlsdGVyX2RhdGUpeyAgICAgIFxyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSBmaWx0ZXJfZGF0ZTtcclxuICAgICAgaWYoIHRoaXMuY2hlY2tJc0RhdGUoZmlsdGVyX2RhdGUpICl7ICAgICAgICAgICAgICBcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9fZGF0ZV9oaF9tbShmaWx0ZXJfZGF0ZSk7XHJcbiAgICAgICAgICB0aGlzLnRvU2V0RGF0ZSh0aGlzLkREX01NX1lZWVkpOyAgXHJcbiAgICAgICAgICB0aGlzLnNob3dfZGF0ZV9waWNrZXIgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZV9vcHRpb25zX2RhdGVfdGltZSA9IGV2ZW50O1xyXG4gICAgICAgICAgdGhpcy5sYXN0X29wdGlvbnNfZGF0ZV90aW1lID0gZmlsdGVyX2RhdGUgYXMgYW55O1xyXG4gICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9IHRoaXMuZ2V0X2Rlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lKGV2ZW50KTtcclxuICAgICAgICB9KTsgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0X2Rlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lKHZhbHVlOiBzdHJpbmcpe1xyXG4gICAgaWYoIHRoaXMub3B0aW9uc19kYXRlX3RpbWUgJiYgKHRoaXMub3B0aW9uc19kYXRlX3RpbWUpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy5vcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5vcHRpb25zX2RhdGVfdGltZVtpXTtcclxuICAgICAgICBpZiggaXRlbS52YWx1ZSA9PT0gdmFsdWUgKXtcclxuICAgICAgICAgIHJldHVybiBpdGVtLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcblxyXG4gIGNsb3NlZFRpbWVEZXNjcmlwdGlvbigpe1xyXG4gICAgdGhpcy52YWx1ZV9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnOyBcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgXHJcbiAgaW5uZXJWYWx1ZTogYW55IHwgdW5kZWZpbmVkO1xyXG4gIC8vUGxhY2Vob2xkZXJzIGZvciB0aGUgY2FsbGJhY2tzIHdoaWNoIGFyZSBsYXRlciBwcm92aWRlc2RcclxuICAvL2J5IHRoZSBDb250cm9sIFZhbHVlIEFjY2Vzc29yXHJcbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcclxuXHJcbiAgLy9nZXQgYWNjZXNzb3JcclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcclxuICB9O1xyXG5cclxuICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcclxuICBzZXQgdmFsdWUodjogYW55KSB7XHJcbiAgICBpZiAodiAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7ICAgICAgXHJcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vU2V0IHRvdWNoZWQgb24gYmx1clxyXG4gIG9uQmx1cigpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XHJcblxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHZhbHVlID0gbmV3IERhdGUoIGAke3ZhbHVlfWAgKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XHJcblxyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgaWYoIHRoaXMuY2hlY2tJc0RhdGUodmFsdWUpICl7XHJcbiAgICAgICAgdGhpcy50b19kYXRlX2hoX21tKHZhbHVlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5jbGVhbigpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG59XHJcbiIsIjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCJ7eyBpbm5lclZhbHVlIH19XCIgI19kYXRlcGlja2VydGltZSA+XHJcbjxmb3JtICNfZm9ybXVsYXJpbz1cIm5nRm9ybVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250cm9sLXRpbWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtdGltZVwiPlxyXG5cclxuICAgICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRkPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LW9wdGlvbnMtZGF0ZVwiPlxyXG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJmb3JtLXRpbWVcIj5cclxuICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDx0ZCBjbGFzcz1cImFyZWEtaWNvblwiPjxkaXYgY2xhc3M9XCJkZWxpbWl0ZXItdGltZS1pY29uXCIgKGNsaWNrKT1cInRvQ2xpY2tJbihJRClcIiA+PGkgY2xhc3M9XCJmYXMgZmEtY2FsZW5kYXItYWx0XCI+PC9pPjwvZGl2PjwvdGQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1kYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93X2RhdGVfcGlja2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRlcGlja2VyICNfdGNsb3VkZGF0ZXBpY2tlcnRpbWUgW21vZGVJbnB1dF09XCJ0cnVlXCIgbmFtZT1cImRhdGVcIiBbdXNlQm9yZGVyXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJERF9NTV9ZWVlZXCIgKG9uQ2hhbmdlKT1cInRvU2V0RGF0ZSgkZXZlbnQpXCIgPjwvdGNsb3VkLXVpLWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1kZWxpbWl0ZXJcIj48ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWVcIj48L2Rpdj48L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1ob3VyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS08aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkhIXCIgKGtleXVwKT1cInRvU2V0VGltZSgpXCIgWyhuZ01vZGVsKV09XCJISFwiIG1heGxlbmd0aD1cIjJcIiBuYW1lPVwiaGhcIiBwYXR0ZXJuPVwiWzBdWzAtOV18WzFdWzAtOV18MlswLTNdXCI+LS0+XHJcbiAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJzZWxlY3QtdGltZS1kYXRlXCIgKGNoYW5nZSk9XCJ0b1NldFRpbWUoKVwiIFsobmdNb2RlbCldPVwiSEhcIiBuYW1lPVwiaGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBoaCBvZiBvcHRpb25fSEhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiaGhcIj57eyBoaCB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWRlbGltaXRlclwiPjxkaXYgY2xhc3M9XCJkZWxpbWl0ZXItdGltZVwiPjo8L2Rpdj48L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1taW51dGVcIj5cclxuICAgICAgICAgICAgICAgICAgPCEtLTxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiTU1cIiAoa2V5dXApPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIk1NXCIgbWF4bGVuZ3RoPVwiMlwiIG5hbWU9XCJtbVwiIHBhdHRlcm49XCJbMDEyMzQ1XVswLTldXCI+LS0+XHJcbiAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJzZWxlY3QtdGltZS1kYXRlXCIgKGNoYW5nZSk9XCJ0b1NldFRpbWUoKVwiIFsobmdNb2RlbCldPVwiTU1cIiBuYW1lPVwibW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtbSBvZiBvcHRpb25fTU1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm1tXCI+e3sgbW0gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1jbGVhblwiPjwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi1vcHRpb25zLWRhdGVcIiAqbmdJZj1cInZhbHVlX29wdGlvbnNfZGF0ZV90aW1lICE9PSAnJ1wiPlxyXG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgfX08L3N0cm9uZz5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJhcmVhLWFjdGlvbi1kYXRlLXRpbWUtc2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1pY29uXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9zZWRUaW1lRGVzY3JpcHRpb24oKVwiID5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+ICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPHRkICpuZ0lmPVwidXNlT3B0aW9uc0RhdGVUaW1lICYmIG9wdGlvbnNfZGF0ZV90aW1lICYmIChvcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMFwiIHN0eWxlPVwid2lkdGg6IDIwcHhcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpY29uLXNob3J0LXRpbWVcIiAoY2xpY2spPVwib3Blbl9vcHRpb25zX2RhdGVfdGltZSA9ICFvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCIgW3RpdGxlXT1cImRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lXCIgPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIW9wZW5fb3B0aW9uc19kYXRlX3RpbWVcIiBjbGFzcz1cImZhcyBmYS1jYXJldC1kb3duXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwib3Blbl9vcHRpb25zX2RhdGVfdGltZVwiIGNsYXNzPVwiZmFzIGZhLWNhcmV0LXVwXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZSAhPT0gJydcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWljb24tY2xvc2VcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlZFRpbWVEZXNjcmlwdGlvbigpXCIgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+IFxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgICAgPHRyICpuZ0lmPVwidXNlT3B0aW9uc0RhdGVUaW1lICYmIG9wdGlvbnNfZGF0ZV90aW1lICYmIChvcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMCAmJiBvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCI+XHJcbiAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cclxuICAgICAgICAgICAgICA8dGNsb3VkLXVpLWRhdGEtbGlzdCBcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0lucHV0XT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICBbc2VhcmNoXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICBbb3Blbl09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgICAgICBbbGlzdEl0ZW1zXT1cIm9wdGlvbnNfZGF0ZV90aW1lXCIgXHJcbiAgICAgICAgICAgICAgICAob25DbG9zZWQpPVwib25DbG9zZWRPcHRpb25zRGF0ZVRpbWUoKVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZVwiXHJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZU9wdGlvbnNEYXRlVGltZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L3RjbG91ZC11aS1kYXRhLWxpc3Q+XHJcblxyXG4gICAgICAgICAgICAgIFxyXG5cclxuXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPiJdfQ==
@@ -3,6 +3,7 @@ import { NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { TCloudUiDatepickerTimeComponent } from './tcloud-ui-datepicker-time.component';
5
5
  import { TCloudUiDatepickerModule } from './../tcloud-ui-datepicker/tcloud-ui-datepicker.module';
6
+ import { TCloudUiDataListModule } from '../tcloud-ui-data-list/tcloud-ui-data-list.module';
6
7
  import * as i0 from "@angular/core";
7
8
  export class TCloudUiDatepickerTimeModule {
8
9
  }
@@ -10,11 +11,13 @@ TCloudUiDatepickerTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0
10
11
  TCloudUiDatepickerTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeModule, declarations: [TCloudUiDatepickerTimeComponent], imports: [CommonModule,
11
12
  TCloudUiDatepickerModule,
12
13
  FormsModule,
13
- ReactiveFormsModule], exports: [TCloudUiDatepickerTimeComponent] });
14
+ ReactiveFormsModule,
15
+ TCloudUiDataListModule], exports: [TCloudUiDatepickerTimeComponent] });
14
16
  TCloudUiDatepickerTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeModule, imports: [CommonModule,
15
17
  TCloudUiDatepickerModule,
16
18
  FormsModule,
17
- ReactiveFormsModule] });
19
+ ReactiveFormsModule,
20
+ TCloudUiDataListModule] });
18
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeModule, decorators: [{
19
22
  type: NgModule,
20
23
  args: [{
@@ -29,7 +32,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
29
32
  TCloudUiDatepickerModule,
30
33
  FormsModule,
31
34
  ReactiveFormsModule,
35
+ TCloudUiDataListModule
32
36
  ]
33
37
  }]
34
38
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUFpQmpHLE1BQU0sT0FBTyw0QkFBNEI7OzBIQUE1Qiw0QkFBNEI7MkhBQTVCLDRCQUE0QixpQkFickMsK0JBQStCLGFBTS9CLFlBQVk7UUFDWix3QkFBd0I7UUFDeEIsV0FBVztRQUNYLG1CQUFtQixhQU5uQiwrQkFBK0I7MkhBVXRCLDRCQUE0QixZQVByQyxZQUFZO1FBQ1osd0JBQXdCO1FBQ3hCLFdBQVc7UUFDWCxtQkFBbUI7NEZBSVYsNEJBQTRCO2tCQWZ4QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiwrQkFBK0I7cUJBQ2hDO29CQUNELE9BQU8sRUFBRTt3QkFDUCwrQkFBK0I7cUJBQ2hDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsV0FBVzt3QkFDWCxtQkFBbUI7cUJBRXBCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnQgfSBmcm9tICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVENsb3VkVWlEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnLi8uLi90Y2xvdWQtdWktZGF0ZXBpY2tlci90Y2xvdWQtdWktZGF0ZXBpY2tlci5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRDbG91ZFVpRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVNb2R1bGUgeyB9XHJcbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFpQjNGLE1BQU0sT0FBTyw0QkFBNEI7OzBIQUE1Qiw0QkFBNEI7MkhBQTVCLDRCQUE0QixpQkFickMsK0JBQStCLGFBTS9CLFlBQVk7UUFDWix3QkFBd0I7UUFDeEIsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixzQkFBc0IsYUFQdEIsK0JBQStCOzJIQVV0Qiw0QkFBNEIsWUFQckMsWUFBWTtRQUNaLHdCQUF3QjtRQUN4QixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLHNCQUFzQjs0RkFHYiw0QkFBNEI7a0JBZnhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLCtCQUErQjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLCtCQUErQjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4QixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUQ2xvdWRVaURhdGVwaWNrZXJUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRDbG91ZFVpRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJy4vLi4vdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIubW9kdWxlJztcclxuaW1wb3J0IHsgVENsb3VkVWlEYXRhTGlzdE1vZHVsZSB9IGZyb20gJy4uL3RjbG91ZC11aS1kYXRhLWxpc3QvdGNsb3VkLXVpLWRhdGEtbGlzdC5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRDbG91ZFVpRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFRDbG91ZFVpRGF0YUxpc3RNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURhdGVwaWNrZXJUaW1lTW9kdWxlIHsgfVxyXG4iXX0=