@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.
Files changed (28) hide show
  1. package/README.md +10 -0
  2. package/esm2020/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.mjs +302 -0
  3. package/esm2020/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module.mjs +31 -0
  4. package/esm2020/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs +209 -0
  5. package/esm2020/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module.mjs +35 -0
  6. package/esm2020/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.mjs +79 -29
  7. package/esm2020/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module.mjs +8 -4
  8. package/esm2020/lib/_pipes/datebr.mjs +102 -0
  9. package/esm2020/lib/_pipes/index.mjs +2 -1
  10. package/esm2020/lib/_pipes/tcloud-pipes.module.mjs +14 -8
  11. package/esm2020/lib/tcloud-ui.module.mjs +17 -3
  12. package/esm2020/public-api.mjs +7 -1
  13. package/fesm2015/dev-tcloud-tcloud-ui.mjs +1147 -415
  14. package/fesm2015/dev-tcloud-tcloud-ui.mjs.map +1 -1
  15. package/fesm2020/dev-tcloud-tcloud-ui.mjs +1139 -413
  16. package/fesm2020/dev-tcloud-tcloud-ui.mjs.map +1 -1
  17. package/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.d.ts +46 -0
  18. package/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module.d.ts +9 -0
  19. package/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.d.ts +34 -0
  20. package/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module.d.ts +10 -0
  21. package/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.d.ts +2 -1
  22. package/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module.d.ts +2 -1
  23. package/lib/_pipes/datebr.d.ts +11 -0
  24. package/lib/_pipes/index.d.ts +1 -0
  25. package/lib/_pipes/tcloud-pipes.module.d.ts +3 -2
  26. package/lib/tcloud-ui.module.d.ts +5 -3
  27. package/package.json +1 -1
  28. package/public-api.d.ts +4 -0
@@ -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==