@dev-tcloud/tcloud-ui 0.0.50 → 0.0.51
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 +10 -0
- package/esm2020/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.mjs +302 -0
- package/esm2020/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module.mjs +31 -0
- package/esm2020/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs +209 -0
- package/esm2020/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module.mjs +35 -0
- package/esm2020/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.mjs +79 -29
- package/esm2020/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module.mjs +8 -4
- package/esm2020/lib/_pipes/datebr.mjs +102 -0
- package/esm2020/lib/_pipes/index.mjs +2 -1
- package/esm2020/lib/_pipes/tcloud-pipes.module.mjs +14 -8
- package/esm2020/lib/tcloud-ui.module.mjs +17 -3
- package/esm2020/public-api.mjs +7 -1
- package/fesm2015/dev-tcloud-tcloud-ui.mjs +1147 -415
- package/fesm2015/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/fesm2020/dev-tcloud-tcloud-ui.mjs +1139 -413
- package/fesm2020/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.d.ts +46 -0
- package/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module.d.ts +9 -0
- package/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.d.ts +34 -0
- package/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module.d.ts +10 -0
- package/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.d.ts +2 -1
- package/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module.d.ts +2 -1
- package/lib/_pipes/datebr.d.ts +11 -0
- package/lib/_pipes/index.d.ts +1 -0
- package/lib/_pipes/tcloud-pipes.module.d.ts +3 -2
- package/lib/tcloud-ui.module.d.ts +5 -3
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
package/esm2020/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { Component, forwardRef, EventEmitter, Output, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../tcloud-ui-datepicker/tcloud-ui-datepicker.component";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
|
|
7
|
+
provide: NG_VALUE_ACCESSOR,
|
|
8
|
+
useExisting: forwardRef(() => TCloudUiDatepickerTimeComponent),
|
|
9
|
+
multi: true
|
|
10
|
+
};
|
|
11
|
+
const noop = () => {
|
|
12
|
+
};
|
|
13
|
+
export class TCloudUiDatepickerTimeComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.ngModelChange = new EventEmitter();
|
|
16
|
+
this.onChange = new EventEmitter();
|
|
17
|
+
this.eventChange = new EventEmitter();
|
|
18
|
+
this.DD_MM_YYYY = '';
|
|
19
|
+
this.HH = '';
|
|
20
|
+
this.MM = '';
|
|
21
|
+
this.ID = '';
|
|
22
|
+
//Placeholders for the callbacks which are later providesd
|
|
23
|
+
//by the Control Value Accessor
|
|
24
|
+
this.onTouchedCallback = noop;
|
|
25
|
+
this.onChangeCallback = noop;
|
|
26
|
+
}
|
|
27
|
+
set ngModel(v) {
|
|
28
|
+
if (v && v !== this.innerValue) {
|
|
29
|
+
this.innerValue = v;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() {
|
|
33
|
+
this.ID = this.generateID();
|
|
34
|
+
}
|
|
35
|
+
generateID() {
|
|
36
|
+
return `tcloud-ui-datepicker-time-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;
|
|
37
|
+
}
|
|
38
|
+
toSetDate(date) {
|
|
39
|
+
console.log('toSetDate', date);
|
|
40
|
+
this.set_date_by_datepicker(date);
|
|
41
|
+
}
|
|
42
|
+
toSetTime() {
|
|
43
|
+
if (this.DD_MM_YYYY && ((this.DD_MM_YYYY).trim()).length === 10) {
|
|
44
|
+
const date = (this.DD_MM_YYYY).replace(/-/g, '/');
|
|
45
|
+
let date_part = (date).split('/');
|
|
46
|
+
let dd = date_part[0];
|
|
47
|
+
let mm = date_part[1];
|
|
48
|
+
let yy = date_part[2];
|
|
49
|
+
const datetime = new Date(`${yy}-${mm}-${dd}`);
|
|
50
|
+
if (this.checkIsDate(datetime)) {
|
|
51
|
+
this.set_date_by_datepicker(date);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
set_date_by_datepicker(date) {
|
|
56
|
+
if (date) {
|
|
57
|
+
date = (date).replace(/-/g, '/');
|
|
58
|
+
let date_part = (date).split('/');
|
|
59
|
+
let dia = date_part[0];
|
|
60
|
+
let mes = date_part[1];
|
|
61
|
+
let ano = date_part[2];
|
|
62
|
+
let hh = this.HH;
|
|
63
|
+
if (!hh) {
|
|
64
|
+
hh = '00';
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
if ((+(hh) >= 0 && +(hh) < 24)) {
|
|
68
|
+
hh = (+(hh) < 10) ? `0${+(hh)}` : `${+(hh)}`;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
hh = '00';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
let mm = this.MM;
|
|
75
|
+
if (!mm) {
|
|
76
|
+
mm = '00';
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
if ((+(mm) >= 0 && +(mm) < 60)) {
|
|
80
|
+
mm = (+(mm) < 10) ? `0${+(mm)}` : `${+(mm)}`;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
mm = '00';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (hh === '00') {
|
|
87
|
+
this.HH = hh;
|
|
88
|
+
}
|
|
89
|
+
if (mm === '00') {
|
|
90
|
+
this.MM = mm;
|
|
91
|
+
}
|
|
92
|
+
const str_date = `${ano}-${mes}-${dia}T${hh}:${mm}:00`;
|
|
93
|
+
const datetime = new Date(str_date);
|
|
94
|
+
if (this.checkIsDate(datetime)) {
|
|
95
|
+
this.innerValue = datetime;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this.innerValue = undefined;
|
|
99
|
+
}
|
|
100
|
+
this.ngModelChange.emit(this.innerValue);
|
|
101
|
+
this.onChange.emit(this.innerValue);
|
|
102
|
+
this.eventChange.emit(this.datepickertime?.nativeElement);
|
|
103
|
+
console.log('str_date', str_date);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
this.innerValue = undefined;
|
|
107
|
+
this.ngModelChange.emit(this.innerValue);
|
|
108
|
+
this.onChange.emit(this.innerValue);
|
|
109
|
+
this.eventChange.emit(this.datepickertime?.nativeElement);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Distribuir os valores da data por pedaços: data - hora - min
|
|
113
|
+
to_date_hh_mm(d) {
|
|
114
|
+
let dia = `${(d).getDate()}`;
|
|
115
|
+
dia = (+(dia) < 10) ? `0${+dia}` : dia;
|
|
116
|
+
let mes = `${(d).getMonth() + 1}`;
|
|
117
|
+
mes = (+(mes) < 10) ? `0${+mes}` : mes;
|
|
118
|
+
let ano = `${(d).getFullYear()}`;
|
|
119
|
+
let hh = `${(d).getHours()}`;
|
|
120
|
+
let mm = `${(d).getMinutes()}`;
|
|
121
|
+
if (hh && (+(hh) < 0 || +(hh) > 23)) {
|
|
122
|
+
hh = '00';
|
|
123
|
+
}
|
|
124
|
+
hh = (hh) ? ((+(hh) < 10) ? `0${hh}` : hh) : '00';
|
|
125
|
+
if (mm && (+(mm) < 0 || +(mm) > 59)) {
|
|
126
|
+
mm = '00';
|
|
127
|
+
}
|
|
128
|
+
mm = (mm) ? ((+(mm) < 10) ? `0${mm}` : mm) : '00';
|
|
129
|
+
this.MM = mm;
|
|
130
|
+
this.HH = hh;
|
|
131
|
+
this.DD_MM_YYYY = `${dia}/${mes}/${ano}`;
|
|
132
|
+
}
|
|
133
|
+
checkIsDate(d) {
|
|
134
|
+
if (Object.prototype.toString.call(d) === "[object Date]") {
|
|
135
|
+
if (isNaN(d)) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
clean() {
|
|
145
|
+
this.DD_MM_YYYY = '';
|
|
146
|
+
this.HH = '';
|
|
147
|
+
this.MM = '';
|
|
148
|
+
}
|
|
149
|
+
toClickIn(id) {
|
|
150
|
+
document.getElementById(id)?.focus();
|
|
151
|
+
}
|
|
152
|
+
//get accessor
|
|
153
|
+
get value() {
|
|
154
|
+
return this.innerValue;
|
|
155
|
+
}
|
|
156
|
+
;
|
|
157
|
+
//set accessor including call the onchange callback
|
|
158
|
+
set value(v) {
|
|
159
|
+
//console.log('set value', v);
|
|
160
|
+
if (v !== this.innerValue) {
|
|
161
|
+
//console.log('set value this.innerValue', this.innerValue);
|
|
162
|
+
this.innerValue = v;
|
|
163
|
+
this.onChangeCallback(v);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//Set touched on blur
|
|
167
|
+
onBlur() {
|
|
168
|
+
this.onTouchedCallback();
|
|
169
|
+
}
|
|
170
|
+
//From ControlValueAccessor interface
|
|
171
|
+
writeValue(value) {
|
|
172
|
+
if (value !== this.innerValue) {
|
|
173
|
+
this.innerValue = value;
|
|
174
|
+
console.log('writeValue this.innerValue', this.innerValue);
|
|
175
|
+
if (this.checkIsDate(value)) {
|
|
176
|
+
this.to_date_hh_mm(value);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
this.clean();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//From ControlValueAccessor interface
|
|
184
|
+
registerOnChange(fn) {
|
|
185
|
+
this.onChangeCallback = fn;
|
|
186
|
+
}
|
|
187
|
+
//From ControlValueAccessor interface
|
|
188
|
+
registerOnTouched(fn) {
|
|
189
|
+
this.onTouchedCallback = fn;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
TCloudUiDatepickerTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
193
|
+
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 <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\"><input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\"></td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\"><input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\"></td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n</form>", styles: [".input-control-time{border:1px solid #ccc;border-radius:3px;width:100%}.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:105px}.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}\n"], dependencies: [{ kind: "component", type: i1.TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: ["multiple", "maxNumberOfDates", "daysOfWeekDisabled", "minDate", "maxDate", "datesDisabled", "modeInput", "useBorder", "ngModel", "code"], outputs: ["onChange", "ngModelChange"] }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeComponent, decorators: [{
|
|
195
|
+
type: Component,
|
|
196
|
+
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 <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\"><input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\"></td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\"><input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\"></td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n</form>", styles: [".input-control-time{border:1px solid #ccc;border-radius:3px;width:100%}.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:105px}.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}\n"] }]
|
|
197
|
+
}], propDecorators: { ngModel: [{
|
|
198
|
+
type: Input
|
|
199
|
+
}], ngModelChange: [{
|
|
200
|
+
type: Output
|
|
201
|
+
}], onChange: [{
|
|
202
|
+
type: Output
|
|
203
|
+
}], eventChange: [{
|
|
204
|
+
type: Output
|
|
205
|
+
}], datepickertime: [{
|
|
206
|
+
type: ViewChild,
|
|
207
|
+
args: ['_datepickertime', { static: false }]
|
|
208
|
+
}] } });
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUVuRCxNQUFNLG1DQUFtQyxHQUFRO0lBQy9DLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztJQUM5RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7QUFDbEIsQ0FBQyxDQUFDO0FBUUYsTUFBTSxPQUFPLCtCQUErQjtJQU41QztRQWNZLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFaEQsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixPQUFFLEdBQVcsRUFBRSxDQUFDO1FBQ2hCLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFFaEIsT0FBRSxHQUFX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QUFDLENBQUMsR0FBRyxDQUFDO1FBRXhDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLElBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzlCLElBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBRWhDLElBQUksRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFFLEVBQUU7WUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDO1NBQUU7UUFDckQsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFckQsSUFBSSxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUUsRUFBRTtZQUFFLEVBQUUsR0FBRyxJQUFJLENBQUM7U0FBRTtRQUNyRCxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVyRCxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBRWIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFNO1FBQ2hCLElBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLGVBQWUsRUFBRTtZQUN4RCxJQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFBRSxPQUFPLEtBQUssQ0FBQzthQUFFO2lCQUFNO2dCQUFFLE9BQU8sSUFBSSxDQUFDO2FBQUU7U0FDckQ7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFHRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxTQUFTLENBQUMsRUFBVTtRQUNsQixRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFvQ0QsY0FBYztJQUNkLElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQUEsQ0FBQztJQUVGLG1EQUFtRDtJQUNuRCxJQUFJLEtBQUssQ0FBQyxDQUFNO1FBQ2QsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDekIsNERBQTREO1lBQzVELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxxQkFBcUI7SUFDckIsTUFBTTtRQUNKLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0I7aUJBQUk7Z0JBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO2FBQ2I7U0FDRjtJQUNILENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7OzZIQTlOVSwrQkFBK0I7aUhBQS9CLCtCQUErQixtTEFGL0IsQ0FBQyxtQ0FBbUMsQ0FBQyw2SUNoQmxELG94Q0FpQk87NEZEQ00sK0JBQStCO2tCQU4zQyxTQUFTOytCQUNFLDJCQUEyQixhQUcxQixDQUFDLG1DQUFtQyxDQUFDOzhCQUtuQyxPQUFPO3NCQUFuQixLQUFLO2dCQUtJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQVF3QyxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmNvbnN0IENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlEYXRlcGlja2VyVGltZUNvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbmNvbnN0IG5vb3AgPSAoKSA9PiB7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURhdGVwaWNrZXJUaW1lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHJpdmF0ZSBfbmdNb2RlbDogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNldCBuZ01vZGVsKHY6IGFueSl7XHJcbiAgICBpZiggdiAmJiB2ICE9PSB0aGlzLmlubmVyVmFsdWUgKXtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgXHJcbiAgICB9IFxyXG4gIH1cclxuICBAT3V0cHV0KCkgbmdNb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIEBPdXRwdXQoKSBldmVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBERF9NTV9ZWVlZOiBzdHJpbmcgPSAnJztcclxuICBISDogc3RyaW5nID0gJyc7XHJcbiAgTU06IHN0cmluZyA9ICcnO1xyXG5cclxuICBJRDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ19kYXRlcGlja2VydGltZScsIHtzdGF0aWM6IGZhbHNlfSkgZGF0ZXBpY2tlcnRpbWU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuSUQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlSUQoKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIGB0Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSkpfWA7XHJcbiAgfVxyXG5cclxuICB0b1NldERhdGUoZGF0ZTogc3RyaW5nKXtcclxuICAgIGNvbnNvbGUubG9nKCd0b1NldERhdGUnLCBkYXRlKTtcclxuXHJcbiAgICB0aGlzLnNldF9kYXRlX2J5X2RhdGVwaWNrZXIoZGF0ZSk7XHJcbiAgfVxyXG5cclxuICB0b1NldFRpbWUoKXtcclxuICAgIGlmKCB0aGlzLkREX01NX1lZWVkgJiYgKCh0aGlzLkREX01NX1lZWVkpLnRyaW0oKSkubGVuZ3RoID09PSAxMCl7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSAodGhpcy5ERF9NTV9ZWVlZKS5yZXBsYWNlKC8tL2csICcvJyk7XHJcbiAgICAgIGxldCBkYXRlX3BhcnQgPSAoZGF0ZSkuc3BsaXQoJy8nKTtcclxuICAgICAgbGV0IGRkID0gZGF0ZV9wYXJ0WzBdO1xyXG4gICAgICBsZXQgbW0gPSBkYXRlX3BhcnRbMV07XHJcbiAgICAgIGxldCB5eSA9IGRhdGVfcGFydFsyXTtcclxuICAgICAgY29uc3QgZGF0ZXRpbWUgPSBuZXcgRGF0ZShgJHt5eX0tJHttbX0tJHtkZH1gKTtcclxuICAgICAgaWYoIHRoaXMuY2hlY2tJc0RhdGUoZGF0ZXRpbWUpICl7XHJcbiAgICAgICAgdGhpcy5zZXRfZGF0ZV9ieV9kYXRlcGlja2VyKGRhdGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRfZGF0ZV9ieV9kYXRlcGlja2VyKGRhdGU6IHN0cmluZyl7XHJcblxyXG4gICAgaWYoIGRhdGUgKXtcclxuICAgICAgZGF0ZSA9IChkYXRlKS5yZXBsYWNlKC8tL2csICcvJyk7XHJcbiAgICAgIGxldCBkYXRlX3BhcnQgPSAoZGF0ZSkuc3BsaXQoJy8nKTtcclxuICAgICAgbGV0IGRpYSA9IGRhdGVfcGFydFswXTtcclxuICAgICAgbGV0IG1lcyA9IGRhdGVfcGFydFsxXTtcclxuICAgICAgbGV0IGFubyA9IGRhdGVfcGFydFsyXTtcclxuXHJcbiAgICAgIGxldCBoaCA9IHRoaXMuSEg7XHJcbiAgICAgIGlmKCAhaGggKXtcclxuICAgICAgICBoaCA9ICcwMCc7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmKCAoICsoaGgpID49IDAgJiYgKyhoaCkgPCAyNCApICl7XHJcbiAgICAgICAgICBoaCA9ICgrKGhoKSA8IDEwICkgPyBgMCR7KyhoaCl9YCA6IGAkeysoaGgpfWA7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBoaCA9ICcwMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgbW0gPSB0aGlzLk1NO1xyXG4gICAgICBpZiggIW1tICl7XHJcbiAgICAgICAgbW0gPSAnMDAnO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiggKCArKG1tKSA+PSAwICYmICsobW0pIDwgNjAgKSApe1xyXG4gICAgICAgICAgbW0gPSAoKyhtbSkgPCAxMCApID8gYDAkeysobW0pfWAgOiBgJHsrKG1tKX1gO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgbW0gPSAnMDAnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYoIGhoID09PSAnMDAnICl7IHRoaXMuSEggPSBoaDsgfVxyXG4gICAgICBpZiggbW0gPT09ICcwMCcgKXsgdGhpcy5NTSA9IG1tOyB9XHJcblxyXG4gICAgICBjb25zdCBzdHJfZGF0ZSA9IGAke2Fub30tJHttZXN9LSR7ZGlhfVQke2hofToke21tfTowMGA7XHJcbiAgICAgIGNvbnN0IGRhdGV0aW1lID0gbmV3IERhdGUoIHN0cl9kYXRlICk7XHJcbiAgICAgIGlmKCB0aGlzLmNoZWNrSXNEYXRlKGRhdGV0aW1lKSApe1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGRhdGV0aW1lO1xyXG4gICAgICAgIFxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5ldmVudENoYW5nZS5lbWl0KCB0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50ICk7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZygnc3RyX2RhdGUnLCBzdHJfZGF0ZSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMuZXZlbnRDaGFuZ2UuZW1pdCggdGhpcy5kYXRlcGlja2VydGltZT8ubmF0aXZlRWxlbWVudCApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC8vIERpc3RyaWJ1aXIgb3MgdmFsb3JlcyBkYSBkYXRhIHBvciBwZWRhw6dvczogZGF0YSAtIGhvcmEgLSBtaW5cclxuICB0b19kYXRlX2hoX21tKGQ6IERhdGUpe1xyXG4gICAgbGV0IGRpYSA9IGAkeyhkKS5nZXREYXRlKCl9YDtcclxuICAgIGRpYSA9ICgrKGRpYSkgPCAxMCApID8gYDAkeytkaWF9YCA6IGRpYTtcclxuICAgIGxldCBtZXMgPSBgJHsoZCkuZ2V0TW9udGgoKSsxfWA7XHJcbiAgICBtZXMgPSAoKyhtZXMpIDwgMTAgKSA/IGAwJHsrbWVzfWAgOiBtZXM7ICBcclxuXHJcbiAgICBsZXQgYW5vID0gYCR7KGQpLmdldEZ1bGxZZWFyKCl9YDtcclxuICAgIGxldCBoaCAgPSBgJHsoZCkuZ2V0SG91cnMoKX1gO1xyXG4gICAgbGV0IG1tICA9IGAkeyhkKS5nZXRNaW51dGVzKCl9YDtcclxuXHJcbiAgICBpZiggaGggJiYgKCArKGhoKSA8IDAgfHwgKyhoaCkgPiAyMyApICl7IGhoID0gJzAwJzsgfVxyXG4gICAgaGggPSAoaGgpID8gKCAoKyhoaCkgPCAxMCApID8gYDAke2hofWAgOiBoaCApIDogJzAwJztcclxuXHJcbiAgICBpZiggbW0gJiYgKCArKG1tKSA8IDAgfHwgKyhtbSkgPiA1OSApICl7IG1tID0gJzAwJzsgfVxyXG4gICAgbW0gPSAobW0pID8gKCAoKyhtbSkgPCAxMCApID8gYDAke21tfWAgOiBtbSApIDogJzAwJztcclxuXHJcbiAgICB0aGlzLk1NID0gbW07XHJcbiAgICB0aGlzLkhIID0gaGg7XHJcblxyXG4gICAgdGhpcy5ERF9NTV9ZWVlZID0gYCR7ZGlhfS8ke21lc30vJHthbm99YDtcclxuICB9XHJcblxyXG4gIGNoZWNrSXNEYXRlKGQ6IGFueSk6IGJvb2xlYW57XHJcbiAgICBpZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkgPT09IFwiW29iamVjdCBEYXRlXVwiKSB7XHJcbiAgICAgIGlmKGlzTmFOKGQpKSB7IHJldHVybiBmYWxzZTsgfSBlbHNlIHsgcmV0dXJuIHRydWU7IH1cclxuICAgIH0gXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xlYW4oKXtcclxuICAgIHRoaXMuRERfTU1fWVlZWSA9ICcnO1xyXG4gICAgdGhpcy5ISCA9ICcnO1xyXG4gICAgdGhpcy5NTSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpPy5mb2N1cygpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgXHJcbiAgaW5uZXJWYWx1ZTogYW55IHwgdW5kZWZpbmVkO1xyXG4gIC8vUGxhY2Vob2xkZXJzIGZvciB0aGUgY2FsbGJhY2tzIHdoaWNoIGFyZSBsYXRlciBwcm92aWRlc2RcclxuICAvL2J5IHRoZSBDb250cm9sIFZhbHVlIEFjY2Vzc29yXHJcbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcclxuXHJcbiAgLy9nZXQgYWNjZXNzb3JcclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcclxuICB9O1xyXG5cclxuICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcclxuICBzZXQgdmFsdWUodjogYW55KSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCdzZXQgdmFsdWUnLCB2KTtcclxuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgLy9jb25zb2xlLmxvZygnc2V0IHZhbHVlIHRoaXMuaW5uZXJWYWx1ZScsIHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7ICAgICAgXHJcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vU2V0IHRvdWNoZWQgb24gYmx1clxyXG4gIG9uQmx1cigpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICBjb25zb2xlLmxvZygnd3JpdGVWYWx1ZSB0aGlzLmlubmVyVmFsdWUnLCB0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZSh2YWx1ZSkgKXtcclxuICAgICAgICB0aGlzLnRvX2RhdGVfaGhfbW0odmFsdWUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmNsZWFuKClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGlucHV0IHR5cGU9XCJoaWRkZW5cIiB2YWx1ZT1cInt7IGlubmVyVmFsdWUgfX1cIiAjX2RhdGVwaWNrZXJ0aW1lID5cclxuPGZvcm0gI19mb3JtdWxhcmlvPVwibmdGb3JtXCI+XHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRyb2wtdGltZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbC10aW1lXCI+XHJcbiAgICAgIDx0YWJsZSBjbGFzcz1cImZvcm0tdGltZVwiPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgIDwhLS0gPHRkIGNsYXNzPVwiYXJlYS1pY29uXCI+PGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lLWljb25cIiAoY2xpY2spPVwidG9DbGlja0luKElEKVwiID48aSBjbGFzcz1cImZhcyBmYS1jYWxlbmRhci1hbHRcIj48L2k+PC9kaXY+PC90ZD4gLS0+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWlucHV0LWRhdGVcIj48dGNsb3VkLXVpLWRhdGVwaWNrZXIgI190Y2xvdWRkYXRlcGlja2VydGltZSBbbW9kZUlucHV0XT1cInRydWVcIiBuYW1lPVwiZGF0ZVwiIFt1c2VCb3JkZXJdPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cIkREX01NX1lZWVlcIiAob25DaGFuZ2UpPVwidG9TZXREYXRlKCRldmVudClcIiA+PC90Y2xvdWQtdWktZGF0ZXBpY2tlcj48L3RkPlxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1kZWxpbWl0ZXJcIj48ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWVcIj48L2Rpdj48L3RkPlxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1ob3VyXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJISFwiIChrZXl1cCk9XCJ0b1NldFRpbWUoKVwiIFsobmdNb2RlbCldPVwiSEhcIiBtYXhsZW5ndGg9XCIyXCIgbmFtZT1cImhoXCIgcGF0dGVybj1cIlswXVswLTldfFsxXVswLTldfDJbMC0zXVwiPjwvdGQ+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWRlbGltaXRlclwiPjxkaXYgY2xhc3M9XCJkZWxpbWl0ZXItdGltZVwiPjo8L2Rpdj48L3RkPlxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1taW51dGVcIj48aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIk1NXCIgKGtleXVwKT1cInRvU2V0VGltZSgpXCIgWyhuZ01vZGVsKV09XCJNTVwiIG1heGxlbmd0aD1cIjJcIiBuYW1lPVwibW1cIiBwYXR0ZXJuPVwiWzAxMjM0NV1bMC05XVwiPjwvdGQ+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWNsZWFuXCI+PC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L3RhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { TCloudUiDatepickerTimeComponent } from './tcloud-ui-datepicker-time.component';
|
|
5
|
+
import { TCloudUiDatepickerModule } from './../tcloud-ui-datepicker/tcloud-ui-datepicker.module';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class TCloudUiDatepickerTimeModule {
|
|
8
|
+
}
|
|
9
|
+
TCloudUiDatepickerTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
TCloudUiDatepickerTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeModule, declarations: [TCloudUiDatepickerTimeComponent], imports: [CommonModule,
|
|
11
|
+
TCloudUiDatepickerModule,
|
|
12
|
+
FormsModule,
|
|
13
|
+
ReactiveFormsModule], exports: [TCloudUiDatepickerTimeComponent] });
|
|
14
|
+
TCloudUiDatepickerTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeModule, imports: [CommonModule,
|
|
15
|
+
TCloudUiDatepickerModule,
|
|
16
|
+
FormsModule,
|
|
17
|
+
ReactiveFormsModule] });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeModule, decorators: [{
|
|
19
|
+
type: NgModule,
|
|
20
|
+
args: [{
|
|
21
|
+
declarations: [
|
|
22
|
+
TCloudUiDatepickerTimeComponent
|
|
23
|
+
],
|
|
24
|
+
exports: [
|
|
25
|
+
TCloudUiDatepickerTimeComponent
|
|
26
|
+
],
|
|
27
|
+
imports: [
|
|
28
|
+
CommonModule,
|
|
29
|
+
TCloudUiDatepickerModule,
|
|
30
|
+
FormsModule,
|
|
31
|
+
ReactiveFormsModule,
|
|
32
|
+
]
|
|
33
|
+
}]
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUFpQmpHLE1BQU0sT0FBTyw0QkFBNEI7OzBIQUE1Qiw0QkFBNEI7MkhBQTVCLDRCQUE0QixpQkFickMsK0JBQStCLGFBTS9CLFlBQVk7UUFDWix3QkFBd0I7UUFDeEIsV0FBVztRQUNYLG1CQUFtQixhQU5uQiwrQkFBK0I7MkhBVXRCLDRCQUE0QixZQVByQyxZQUFZO1FBQ1osd0JBQXdCO1FBQ3hCLFdBQVc7UUFDWCxtQkFBbUI7NEZBSVYsNEJBQTRCO2tCQWZ4QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiwrQkFBK0I7cUJBQ2hDO29CQUNELE9BQU8sRUFBRTt3QkFDUCwrQkFBK0I7cUJBQ2hDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsV0FBVzt3QkFDWCxtQkFBbUI7cUJBRXBCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnQgfSBmcm9tICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVENsb3VkVWlEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnLi8uLi90Y2xvdWQtdWktZGF0ZXBpY2tlci90Y2xvdWQtdWktZGF0ZXBpY2tlci5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRDbG91ZFVpRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVNb2R1bGUgeyB9XHJcbiJdfQ==
|