@dev-tcloud/tcloud-ui 2.2.6 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/esm2022/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs +11 -3
- package/esm2022/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.mjs +1 -1
- package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.mjs +1 -1
- package/esm2022/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component.mjs +36 -0
- package/esm2022/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.module.mjs +31 -0
- package/esm2022/lib/tcloud-ui.module.mjs +8 -1
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/dev-tcloud-tcloud-ui.mjs +78 -5
- package/fesm2022/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.d.ts +1 -1
- package/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.d.ts +3 -1
- package/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component.d.ts +14 -0
- package/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.module.d.ts +9 -0
- package/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.d.ts +1 -1
- package/lib/tcloud-ui.module.d.ts +4 -3
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
package/README.md
CHANGED
package/esm2022/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs
CHANGED
|
@@ -18,6 +18,10 @@ export class TCloudUiDatepickerTimeComponent {
|
|
|
18
18
|
this.ngModelChange = new EventEmitter();
|
|
19
19
|
this.onChange = new EventEmitter();
|
|
20
20
|
this.eventChange = new EventEmitter();
|
|
21
|
+
// minDate - Data minima para exibicao do calendario - ex: 01/01/2020
|
|
22
|
+
this.minDate = '';
|
|
23
|
+
// maxDate - Data maxima para exibicao do calendario - ex: 31/12/2020
|
|
24
|
+
this.maxDate = '';
|
|
21
25
|
this.useOptionsDateTime = false;
|
|
22
26
|
this.DD_MM_YYYY = '';
|
|
23
27
|
this.HH = '00';
|
|
@@ -290,11 +294,11 @@ export class TCloudUiDatepickerTimeComponent {
|
|
|
290
294
|
this.onTouchedCallback = fn;
|
|
291
295
|
}
|
|
292
296
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiDatepickerTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
293
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: { 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: "<div class=\"tcloud-ui-datepicker-time\">\r\n <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 [childInputDateTime]=\"true\" [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>\r\n</div>", 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%}.form-time td:first-child{overflow:hidden}.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:12px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:40px;height:35px;padding:0;text-align:center;font-size:13px;color:#777;position:relative;top:-2px;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", "childInputDateTime", "startViewInMinDate", "startViewInMaxDate", "disabled", "ngModel", "code"], outputs: ["onChange", "ngModelChange", "onCheckDate"] }, { 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"] }] }); }
|
|
297
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: { ngModel: "ngModel", minDate: "minDate", maxDate: "maxDate", 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: "<div class=\"tcloud-ui-datepicker-time\">\r\n <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 [minDate]=\"minDate\" [maxDate]=\"maxDate\" #_tclouddatepickertime [childInputDateTime]=\"true\" [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>\r\n</div>", 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%}.form-time td:first-child{overflow:hidden}.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:12px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:40px;height:35px;padding:0;text-align:center;font-size:13px;color:#777;position:relative;top:-2px;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", "childInputDateTime", "startViewInMinDate", "startViewInMaxDate", "disabled", "ngModel", "code"], outputs: ["onChange", "ngModelChange", "onCheckDate"] }, { 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"] }] }); }
|
|
294
298
|
}
|
|
295
299
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiDatepickerTimeComponent, decorators: [{
|
|
296
300
|
type: Component,
|
|
297
|
-
args: [{ selector: 'tcloud-ui-datepicker-time', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"tcloud-ui-datepicker-time\">\r\n <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 [childInputDateTime]=\"true\" [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>\r\n</div>", 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%}.form-time td:first-child{overflow:hidden}.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:12px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:40px;height:35px;padding:0;text-align:center;font-size:13px;color:#777;position:relative;top:-2px;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"] }]
|
|
301
|
+
args: [{ selector: 'tcloud-ui-datepicker-time', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"tcloud-ui-datepicker-time\">\r\n <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 [minDate]=\"minDate\" [maxDate]=\"maxDate\" #_tclouddatepickertime [childInputDateTime]=\"true\" [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>\r\n</div>", 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%}.form-time td:first-child{overflow:hidden}.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:12px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:40px;height:35px;padding:0;text-align:center;font-size:13px;color:#777;position:relative;top:-2px;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"] }]
|
|
298
302
|
}], propDecorators: { ngModel: [{
|
|
299
303
|
type: Input
|
|
300
304
|
}], ngModelChange: [{
|
|
@@ -303,10 +307,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
303
307
|
type: Output
|
|
304
308
|
}], eventChange: [{
|
|
305
309
|
type: Output
|
|
310
|
+
}], minDate: [{
|
|
311
|
+
type: Input
|
|
312
|
+
}], maxDate: [{
|
|
313
|
+
type: Input
|
|
306
314
|
}], useOptionsDateTime: [{
|
|
307
315
|
type: Input
|
|
308
316
|
}], datepickertime: [{
|
|
309
317
|
type: ViewChild,
|
|
310
318
|
args: ['_datepickertime', { static: false }]
|
|
311
319
|
}] } });
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBR25ELE1BQU0sbUNBQW1DLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO0lBQzlELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFRRixNQUFNLE9BQU8sK0JBQStCO0lBTjVDO1FBUUUscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBUXZCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFdkMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRXBDLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsT0FB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RyxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3hDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRXhDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLElBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzlCLElBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBRWhDLElBQUksRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFFLEVBQUU7WUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDO1NBQUU7UUFDckQsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFckQsSUFBSSxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUUsRUFBRTtZQUFFLEVBQUUsR0FBRyxJQUFJLENBQUM7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SCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7YUFDYjtTQUNGO0lBQ0gsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQzsrR0EzVlUsK0JBQStCO21HQUEvQiwrQkFBK0IsNk5BRi9CLENBQUMsbUNBQW1DLENBQUMsNklDakJsRCxrc0pBZ0dNOzs0RkQ3RU8sK0JBQStCO2tCQU4zQyxTQUFTOytCQUNFLDJCQUEyQixhQUcxQixDQUFDLG1DQUFtQyxDQUFDOzhCQU9uQyxPQUFPO3NCQUFuQixLQUFLO2dCQUtJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFXeUMsY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElTZWxlY3RPcHRpb25zIH0gZnJvbSAnLi4vdGNsb3VkLXVpLWRhdGEtbGlzdC90Y2xvdWQtdWktZGF0YS1saXN0JztcclxuXHJcbmNvbnN0IENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlEYXRlcGlja2VyVGltZUNvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbmNvbnN0IG5vb3AgPSAoKSA9PiB7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURhdGVwaWNrZXJUaW1lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgc2hvd19kYXRlX3BpY2tlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX25nTW9kZWw6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgbmdNb2RlbCh2OiBhbnkpe1xyXG4gICAgaWYoIHYgJiYgdiAhPT0gdGhpcy5pbm5lclZhbHVlICl7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7IFxyXG4gICAgfSBcclxuICB9XHJcbiAgQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICBAT3V0cHV0KCkgZXZlbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgdXNlT3B0aW9uc0RhdGVUaW1lID0gZmFsc2U7XHJcblxyXG4gIEREX01NX1lZWVk6IHN0cmluZyA9ICcnO1xyXG4gIEhIOiBzdHJpbmcgPSAnMDAnO1xyXG4gIE1NOiBzdHJpbmcgPSAnMDAnO1xyXG5cclxuICBJRDogc3RyaW5nID0gJyc7XHJcblxyXG4gIG9wdGlvbl9ISDogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgb3B0aW9uX01NOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnX2RhdGVwaWNrZXJ0aW1lJywge3N0YXRpYzogZmFsc2V9KSBkYXRlcGlja2VydGltZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIG9wdGlvbnNfZGF0ZV90aW1lIDogSVNlbGVjdE9wdGlvbnNbXSA9IFtdO1xyXG4gIG9wZW5fb3B0aW9uc19kYXRlX3RpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbGFzdF9vcHRpb25zX2RhdGVfdGltZTogYW55O1xyXG4gIGRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lOiBhbnkgPSAnJztcclxuICB2YWx1ZV9vcHRpb25zX2RhdGVfdGltZTogYW55ID0gJyc7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuXHJcbiAgICB0aGlzLnNldE9wdGlvbnNEYXRlVGltZSgpO1xyXG5cclxuICAgIHRoaXMuSUQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcclxuICAgIHRoaXMub3B0aW9uX0hIID0gdGhpcy5nZXRMaXN0VElNRSgyMyk7XHJcbiAgICB0aGlzLm9wdGlvbl9NTSA9IHRoaXMuZ2V0TGlzdFRJTUUoNTkpO1xyXG4gIH1cclxuXHJcbiAgc2V0T3B0aW9uc0RhdGVUaW1lKCl7XHJcbiAgICB0aGlzLm9wdGlvbnNfZGF0ZV90aW1lID0gW1xyXG4gICAgICB7dmFsdWU6JzctZGF5cycsIGRlc2NyaXB0aW9uOiAnNyBkaWFzJ30sXHJcbiAgICAgIHt2YWx1ZTonMTUtZGF5cycsIGRlc2NyaXB0aW9uOiAnMTUgZGlhcyd9LFxyXG4gICAgICB7dmFsdWU6JzMwLWRheXMnLCBkZXNjcmlwdGlvbjogJzMwIGRpYXMnfSxcclxuICAgICAge3ZhbHVlOidjdXJyZW50LW1vbnRoJywgZGVzY3JpcHRpb246ICdNw6pzIGF0dWFsIGF0w6kgYWdvcmEnfSxcclxuICAgICAge3ZhbHVlOidjdXJyZW50LXllYXInLCBkZXNjcmlwdGlvbjogJ0FubyBhdHVhbCBhdMOpIGFnb3JhJ31cclxuICAgIF1cclxuICB9XHJcblxyXG4gIGdlbmVyYXRlSUQoKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIGB0Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSkpfWA7XHJcbiAgfVxyXG5cclxuICBnZXRMaXN0VElNRSh2OiBudW1iZXIpe1xyXG4gICAgbGV0IG1tID0gW107XHJcbiAgICBmb3IobGV0IGkgPSAwOyBpIDw9IHY7IGkrKyApe1xyXG4gICAgICBpZiggaSA8IDEwICl7XHJcbiAgICAgICAgKG1tKS5wdXNoKGAwJHtpfWApO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICAobW0pLnB1c2goYCR7aX1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1tO1xyXG4gIH1cclxuXHJcbiAgdG9TZXREYXRlKGRhdGU6IHN0cmluZyl7ICAgIFxyXG4gICAgdGhpcy5zZXRfZGF0ZV9ieV9kYXRlcGlja2VyKGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgdG9TZXRUaW1lKCl7XHJcbiAgICBpZiggdGhpcy5ERF9NTV9ZWVlZICYmICgodGhpcy5ERF9NTV9ZWVlZKS50cmltKCkpLmxlbmd0aCA9PT0gMTApe1xyXG4gICAgICBjb25zdCBkYXRlID0gKHRoaXMuRERfTU1fWVlZWSkucmVwbGFjZSgvLS9nLCAnLycpO1xyXG4gICAgICBsZXQgZGF0ZV9wYXJ0ID0gKGRhdGUpLnNwbGl0KCcvJyk7XHJcbiAgICAgIGxldCBkZCA9IGRhdGVfcGFydFswXTtcclxuICAgICAgbGV0IG1tID0gZGF0ZV9wYXJ0WzFdO1xyXG4gICAgICBsZXQgeXkgPSBkYXRlX3BhcnRbMl07XHJcbiAgICAgIGNvbnN0IGRhdGV0aW1lID0gbmV3IERhdGUoYCR7eXl9LSR7bW19LSR7ZGR9YCk7XHJcbiAgICAgIGlmKCB0aGlzLmNoZWNrSXNEYXRlKGRhdGV0aW1lKSApe1xyXG4gICAgICAgIHRoaXMuc2V0X2RhdGVfYnlfZGF0ZXBpY2tlcihkYXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0X2RhdGVfYnlfZGF0ZXBpY2tlcihkYXRlOiBzdHJpbmcpe1xyXG5cclxuICAgIGlmKCBkYXRlICl7XHJcbiAgICAgIGRhdGUgPSAoZGF0ZSkucmVwbGFjZSgvLS9nLCAnLycpO1xyXG4gICAgICBsZXQgZGF0ZV9wYXJ0ID0gKGRhdGUpLnNwbGl0KCcvJyk7XHJcbiAgICAgIGxldCBkaWEgPSBkYXRlX3BhcnRbMF07XHJcbiAgICAgIGxldCBtZXMgPSBkYXRlX3BhcnRbMV07XHJcbiAgICAgIGxldCBhbm8gPSBkYXRlX3BhcnRbMl07XHJcblxyXG4gICAgICBsZXQgaGggPSB0aGlzLkhIO1xyXG4gICAgICBpZiggIWhoICl7XHJcbiAgICAgICAgaGggPSAnMDAnO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiggKCArKGhoKSA+PSAwICYmICsoaGgpIDwgMjQgKSApe1xyXG4gICAgICAgICAgaGggPSAoKyhoaCkgPCAxMCApID8gYDAkeysoaGgpfWAgOiBgJHsrKGhoKX1gO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgaGggPSAnMDAnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IG1tID0gdGhpcy5NTTtcclxuICAgICAgaWYoICFtbSApe1xyXG4gICAgICAgIG1tID0gJzAwJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYoICggKyhtbSkgPj0gMCAmJiArKG1tKSA8IDYwICkgKXtcclxuICAgICAgICAgIG1tID0gKCsobW0pIDwgMTAgKSA/IGAwJHsrKG1tKX1gIDogYCR7KyhtbSl9YDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIG1tID0gJzAwJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCBoaCA9PT0gJzAwJyApeyB0aGlzLkhIID0gaGg7IH1cclxuICAgICAgaWYoIG1tID09PSAnMDAnICl7IHRoaXMuTU0gPSBtbTsgfVxyXG5cclxuICAgICAgY29uc3Qgbm90YXRpb24gPSAnMDAnO1xyXG5cclxuICAgICAgY29uc3Qgc3RyX2RhdGUgPSBgJHthbm99LSR7bWVzfS0ke2RpYX1UJHtoaH06JHttbX06JHtub3RhdGlvbn1gO1xyXG4gICAgICBjb25zdCBkYXRldGltZSA9IG5ldyBEYXRlKCBzdHJfZGF0ZSApO1xyXG4gICAgICBcclxuICAgICAgaWYoIHRoaXMuY2hlY2tJc0RhdGUoZGF0ZXRpbWUpICl7XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZXRpbWU7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gY29uc29sZS5sb2coJ3RoaXMuZGF0ZXBpY2tlcnRpbWU/Lm5hdGl2ZUVsZW1lbnQnLCB0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50KTtcclxuXHJcbiAgICAgIC8vIGlmKHRoaXMuZGF0ZXBpY2tlcnRpbWUgJiYgdGhpcy5kYXRlcGlja2VydGltZS5uYXRpdmVFbGVtZW50KXtcclxuICAgICAgLy8gICBjb25zdCBlbGVtID0gPGFueT4gdGhpcy5kYXRlcGlja2VydGltZS5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAvLyAgIGVsZW0udmFsdWUgPSB0aGlzLmlubmVyVmFsdWU7XHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5ldmVudENoYW5nZS5lbWl0KCB0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50ICk7XHJcblxyXG4gICAgfWVsc2V7XHJcblxyXG4gICAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICAgIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuXHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQoIHRoaXMuaW5uZXJWYWx1ZSApO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoIHRoaXMuaW5uZXJWYWx1ZSApO1xyXG4gICAgICB0aGlzLmV2ZW50Q2hhbmdlLmVtaXQoIHRoaXMuZGF0ZXBpY2tlcnRpbWU/Lm5hdGl2ZUVsZW1lbnQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggYCR7dGhpcy5sYXN0X29wdGlvbnNfZGF0ZV90aW1lfWAgIT09IGAke3RoaXMuaW5uZXJWYWx1ZX1gICl7XHJcbiAgICAgIC8vIHRoaXMuZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgICAgLy8gdGhpcy52YWx1ZV9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC8vIERpc3RyaWJ1aXIgb3MgdmFsb3JlcyBkYSBkYXRhIHBvciBwZWRhw6dvczogZGF0YSAtIGhvcmEgLSBtaW5cclxuICB0b19kYXRlX2hoX21tKGQ6IERhdGUpe1xyXG4gICAgbGV0IGRpYSA9IGAkeyhkKS5nZXREYXRlKCl9YDtcclxuICAgIGRpYSA9ICgrKGRpYSkgPCAxMCApID8gYDAkeytkaWF9YCA6IGRpYTtcclxuICAgIGxldCBtZXMgPSBgJHsoZCkuZ2V0TW9udGgoKSsxfWA7XHJcbiAgICBtZXMgPSAoKyhtZXMpIDwgMTAgKSA/IGAwJHsrbWVzfWAgOiBtZXM7ICBcclxuXHJcbiAgICBsZXQgYW5vID0gYCR7KGQpLmdldEZ1bGxZZWFyKCl9YDtcclxuICAgIGxldCBoaCAgPSBgJHsoZCkuZ2V0SG91cnMoKX1gO1xyXG4gICAgbGV0IG1tICA9IGAkeyhkKS5nZXRNaW51dGVzKCl9YDtcclxuXHJcbiAgICBpZiggaGggJiYgKCArKGhoKSA8IDAgfHwgKyhoaCkgPiAyMyApICl7IGhoID0gJzAwJzsgfVxyXG4gICAgaGggPSAoaGgpID8gKCAoKyhoaCkgPCAxMCApID8gYDAke2hofWAgOiBoaCApIDogJzAwJztcclxuXHJcbiAgICBpZiggbW0gJiYgKCArKG1tKSA8IDAgfHwgKyhtbSkgPiA1OSApICl7IG1tID0gJzAwJzsgfVxyXG4gICAgbW0gPSAobW0pID8gKCAoKyhtbSkgPCAxMCApID8gYDAke21tfWAgOiBtbSApIDogJzAwJztcclxuXHJcbiAgICB0aGlzLk1NID0gbW07XHJcbiAgICB0aGlzLkhIID0gaGg7XHJcblxyXG4gICAgdGhpcy5ERF9NTV9ZWVlZID0gYCR7ZGlhfS8ke21lc30vJHthbm99YDtcclxuICB9XHJcblxyXG4gIGNoZWNrSXNEYXRlKGQ6IGFueSk6IGJvb2xlYW57XHJcblxyXG4gICAgaWYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpID09PSBcIltvYmplY3QgRGF0ZV1cIikge1xyXG4gICAgICBpZihpc05hTihkKSkgeyByZXR1cm4gZmFsc2U7IH0gZWxzZSB7IHJldHVybiB0cnVlOyB9XHJcbiAgICB9IFxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGNsZWFuKCl7XHJcbiAgICB0aGlzLkREX01NX1lZWVkgPSAnJztcclxuICAgIHRoaXMuSEggPSAnMDAnO1xyXG4gICAgdGhpcy5NTSA9ICcwMCc7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgfVxyXG5cclxuICB0b0NsaWNrSW4oaWQ6IHN0cmluZyl7XHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk/LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlZE9wdGlvbnNEYXRlVGltZSgpe1xyXG4gICAgdGhpcy5vcGVuX29wdGlvbnNfZGF0ZV90aW1lID0gZmFsc2VcclxuICB9XHJcblxyXG4gIFxyXG4gIG9uQ2hhbmdlT3B0aW9uc0RhdGVUaW1lKGV2ZW50OiBhbnkpe1xyXG4gICAgLy8gdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgLy8gdGhpcy52YWx1ZV9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgdGhpcy5zaG93X2RhdGVfcGlja2VyID0gZmFsc2U7XHJcblxyXG4gICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICBsZXQgZmlsdGVyX2RhdGU6IGFueSA9IHVuZGVmaW5lZDtcclxuICAgIGlmKCBldmVudCA9PT0gJzctZGF5cycgKXtcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKG5ldyBEYXRlKG5vdykpLnNldERhdGUoIG5vdy5nZXREYXRlKCkgLSA3ICkgKTsgIFxyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKCAoZmlsdGVyX2RhdGUpLnNldFNlY29uZHMoMCkgKTsgICAgICBcclxuICAgIH1cclxuXHJcbiAgICBpZiggZXZlbnQgPT09ICcxNS1kYXlzJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKCAobmV3IERhdGUobm93KSkuc2V0RGF0ZSggbm93LmdldERhdGUoKSAtIDE1ICkgKTtcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKGZpbHRlcl9kYXRlKS5zZXRTZWNvbmRzKDApICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnMzAtZGF5cycgKXtcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKG5ldyBEYXRlKG5vdykpLnNldERhdGUoIG5vdy5nZXREYXRlKCkgLSAzMCApICk7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChmaWx0ZXJfZGF0ZSkuc2V0U2Vjb25kcygwKSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudCA9PT0gJ2N1cnJlbnQtbW9udGgnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUobm93LmdldEZ1bGxZZWFyKCksIG5vdy5nZXRNb250aCgpLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZXZlbnQgPT09ICdjdXJyZW50LXllYXInICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUobm93LmdldEZ1bGxZZWFyKCksIDAsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGZpbHRlcl9kYXRlKXsgICAgICBcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gZmlsdGVyX2RhdGU7XHJcbiAgICAgIGlmKCB0aGlzLmNoZWNrSXNEYXRlKGZpbHRlcl9kYXRlKSApeyAgICAgICAgICAgICAgXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvX2RhdGVfaGhfbW0oZmlsdGVyX2RhdGUpO1xyXG4gICAgICAgICAgdGhpcy50b1NldERhdGUodGhpcy5ERF9NTV9ZWVlZKTsgIFxyXG4gICAgICAgICAgdGhpcy5zaG93X2RhdGVfcGlja2VyID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSBldmVudDtcclxuICAgICAgICAgIHRoaXMubGFzdF9vcHRpb25zX2RhdGVfdGltZSA9IGZpbHRlcl9kYXRlIGFzIGFueTtcclxuICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgPSB0aGlzLmdldF9kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZShldmVudCk7XHJcbiAgICAgICAgfSk7ICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGdldF9kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSh2YWx1ZTogc3RyaW5nKXtcclxuICAgIGlmKCB0aGlzLm9wdGlvbnNfZGF0ZV90aW1lICYmICh0aGlzLm9wdGlvbnNfZGF0ZV90aW1lKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKHRoaXMub3B0aW9uc19kYXRlX3RpbWUpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMub3B0aW9uc19kYXRlX3RpbWVbaV07XHJcbiAgICAgICAgaWYoIGl0ZW0udmFsdWUgPT09IHZhbHVlICl7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5kZXNjcmlwdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG5cclxuICBjbG9zZWRUaW1lRGVzY3JpcHRpb24oKXtcclxuICAgIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIHRoaXMuZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgPSAnJzsgXHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIFxyXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gIC8vZ2V0IGFjY2Vzc29yXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG4gICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAgICAgIFxyXG4gICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1NldCB0b3VjaGVkIG9uIGJsdXJcclxuICBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKCBgJHt2YWx1ZX1gICk7XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxyXG5cclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XHJcbiAgICAgIGlmKCB0aGlzLmNoZWNrSXNEYXRlKHZhbHVlKSApe1xyXG4gICAgICAgIHRoaXMudG9fZGF0ZV9oaF9tbSh2YWx1ZSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuY2xlYW4oKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZVwiPlxyXG4gIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCJ7eyBpbm5lclZhbHVlIH19XCIgI19kYXRlcGlja2VydGltZSA+XHJcbiAgPGZvcm0gI19mb3JtdWxhcmlvPVwibmdGb3JtXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udHJvbC10aW1lXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtdGltZVwiPlxyXG5cclxuICAgICAgICA8dGFibGUgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgPHRkPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtb3B0aW9ucy1kYXRlXCI+XHJcbiAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwiZm9ybS10aW1lXCI+XHJcbiAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPHRkIGNsYXNzPVwiYXJlYS1pY29uXCI+PGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lLWljb25cIiAoY2xpY2spPVwidG9DbGlja0luKElEKVwiID48aSBjbGFzcz1cImZhcyBmYS1jYWxlbmRhci1hbHRcIj48L2k+PC9kaXY+PC90ZD4gLS0+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaW5wdXQtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93X2RhdGVfcGlja2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGNsb3VkLXVpLWRhdGVwaWNrZXIgI190Y2xvdWRkYXRlcGlja2VydGltZSBbY2hpbGRJbnB1dERhdGVUaW1lXT1cInRydWVcIiBbbW9kZUlucHV0XT1cInRydWVcIiBuYW1lPVwiZGF0ZVwiIFt1c2VCb3JkZXJdPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cIkREX01NX1lZWVlcIiAob25DaGFuZ2UpPVwidG9TZXREYXRlKCRldmVudClcIiA+PC90Y2xvdWQtdWktZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtZGVsaW1pdGVyXCI+PGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lXCI+PC9kaXY+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1ob3VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLTxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiSEhcIiAoa2V5dXApPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIkhIXCIgbWF4bGVuZ3RoPVwiMlwiIG5hbWU9XCJoaFwiIHBhdHRlcm49XCJbMF1bMC05XXxbMV1bMC05XXwyWzAtM11cIj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic2VsZWN0LXRpbWUtZGF0ZVwiIChjaGFuZ2UpPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIkhIXCIgbmFtZT1cImhoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBoaCBvZiBvcHRpb25fSEhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJoaFwiPnt7IGhoIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1kZWxpbWl0ZXJcIj48ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWVcIj46PC9kaXY+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1taW51dGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJNTVwiIChrZXl1cCk9XCJ0b1NldFRpbWUoKVwiIFsobmdNb2RlbCldPVwiTU1cIiBtYXhsZW5ndGg9XCIyXCIgbmFtZT1cIm1tXCIgcGF0dGVybj1cIlswMTIzNDVdWzAtOV1cIj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic2VsZWN0LXRpbWUtZGF0ZVwiIChjaGFuZ2UpPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIk1NXCIgbmFtZT1cIm1tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtbSBvZiBvcHRpb25fTU1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwibW1cIj57eyBtbSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtY2xlYW5cIj48L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tb3B0aW9ucy1kYXRlXCIgKm5nSWY9XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZSAhPT0gJydcIj5cclxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgfX08L3N0cm9uZz5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImFyZWEtYWN0aW9uLWRhdGUtdGltZS1zZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4taWNvblwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xvc2VkVGltZURlc2NyaXB0aW9uKClcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwidXNlT3B0aW9uc0RhdGVUaW1lICYmIG9wdGlvbnNfZGF0ZV90aW1lICYmIChvcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMFwiIHN0eWxlPVwid2lkdGg6IDIwcHhcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImljb24tc2hvcnQtdGltZVwiIChjbGljayk9XCJvcGVuX29wdGlvbnNfZGF0ZV90aW1lID0gIW9wZW5fb3B0aW9uc19kYXRlX3RpbWVcIiBbdGl0bGVdPVwiZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWVcIiA+XHJcbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCIgY2xhc3M9XCJmYXMgZmEtY2FyZXQtZG93blwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwib3Blbl9vcHRpb25zX2RhdGVfdGltZVwiIGNsYXNzPVwiZmFzIGZhLWNhcmV0LXVwXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgIT09ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWljb24tY2xvc2VcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlZFRpbWVEZXNjcmlwdGlvbigpXCIgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPiBcclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwidXNlT3B0aW9uc0RhdGVUaW1lICYmIG9wdGlvbnNfZGF0ZV90aW1lICYmIChvcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMCAmJiBvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCI+XHJcbiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMlwiPlxyXG4gICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRhLWxpc3QgXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93SW5wdXRdPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAgICAgW3NlYXJjaF09XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgICAgICBbb3Blbl09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgICAgICAgIFtsaXN0SXRlbXNdPVwib3B0aW9uc19kYXRlX3RpbWVcIiBcclxuICAgICAgICAgICAgICAgICAgKG9uQ2xvc2VkKT1cIm9uQ2xvc2VkT3B0aW9uc0RhdGVUaW1lKClcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlT3B0aW9uc0RhdGVUaW1lKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L3RjbG91ZC11aS1kYXRhLWxpc3Q+XHJcblxyXG4gICAgICAgICAgICAgICAgXHJcblxyXG5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG48L2Rpdj4iXX0=
|
|
320
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBR25ELE1BQU0sbUNBQW1DLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO0lBQzlELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFRRixNQUFNLE9BQU8sK0JBQStCO0lBTjVDO1FBUUUscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBUXZCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFaEQscUVBQXFFO1FBQzVELFlBQU8sR0FBVyxFQUFFLENBQUM7UUFFOUIscUVBQXFFO1FBQzVELFlBQU8s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RUFBRTtvQkFDaEMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUMvQztxQkFBSTtvQkFDSCxFQUFFLEdBQUcsSUFBSSxDQUFDO2lCQUNYO2FBQ0Y7WUFFRCxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ1AsRUFBRSxHQUFHLElBQUksQ0FBQzthQUNYO2lCQUFJO2dCQUNILElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUUsRUFBRTtvQkFDaEMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUMvQztxQkFBSTtvQkFDSCxFQUFFLEdBQUcsSUFBSSxDQUFDO2lCQUNYO2FBQ0Y7WUFFRCxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFBRTtZQUNsQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFBRTtZQUVsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFFdEIsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFFLFFBQVEsQ0FBRSxDQUFDO1lBRXRDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7YUFDNUI7aUJBQUk7Z0JBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7YUFDN0I7WUFFRCx5RkFBeUY7WUFFekYsZ0VBQWdFO1lBQ2hFLDBEQUEwRDtZQUMxRCxrQ0FBa0M7WUFDbEMsSUFBSTtZQUVKLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFFLElBQUksQ0FBQyxVQUFVLENBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUUsQ0FBQztTQUU3RDthQUFJO1lBRUgsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1lBRWxDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFFLElBQUksQ0FBQyxVQUFVLENBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUUsQ0FBQztTQUM3RDtRQUVELElBQUksR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM3RCwyQ0FBMkM7WUFDM0MscUNBQXFDO1NBQ3RDO0lBRUgsQ0FBQztJQUVELCtEQUErRDtJQUMvRCxhQUFhLENBQUMsQ0FBTztRQUNuQixJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUM3QixHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3hDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRXhDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLElBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzlCLElBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBRWhDLElBQUksRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFFLEVBQUU7WUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDO1NBQUU7UUFDckQsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFckQsSUFBSSxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdB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Q0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQjtpQkFBSTtnQkFDSCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7YUFDYjtTQUNGO0lBQ0gsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQzsrR0FqV1UsK0JBQStCO21HQUEvQiwrQkFBK0IscVFBRi9CLENBQUMsbUNBQW1DLENBQUMsNklDakJsRCw4dUpBZ0dNOzs0RkQ3RU8sK0JBQStCO2tCQU4zQyxTQUFTOytCQUNFLDJCQUEyQixhQUcxQixDQUFDLG1DQUFtQyxDQUFDOzhCQU9uQyxPQUFPO3NCQUFuQixLQUFLO2dCQUtJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUdFLE9BQU87c0JBQWYsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQVd5QyxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSVNlbGVjdE9wdGlvbnMgfSBmcm9tICcuLi90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3QnO1xyXG5cclxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaURhdGVwaWNrZXJUaW1lQ29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBzaG93X2RhdGVfcGlja2VyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfbmdNb2RlbDogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNldCBuZ01vZGVsKHY6IGFueSl7XHJcbiAgICBpZiggdiAmJiB2ICE9PSB0aGlzLmlubmVyVmFsdWUgKXtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgXHJcbiAgICB9IFxyXG4gIH1cclxuICBAT3V0cHV0KCkgbmdNb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIEBPdXRwdXQoKSBldmVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvLyBtaW5EYXRlIC0gRGF0YSBtaW5pbWEgcGFyYSBleGliaWNhbyBkbyBjYWxlbmRhcmlvIC0gZXg6IDAxLzAxLzIwMjBcclxuICBASW5wdXQoKSBtaW5EYXRlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLy8gbWF4RGF0ZSAtIERhdGEgbWF4aW1hIHBhcmEgZXhpYmljYW8gZG8gY2FsZW5kYXJpbyAtIGV4OiAzMS8xMi8yMDIwXHJcbiAgQElucHV0KCkgbWF4RGF0ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHVzZU9wdGlvbnNEYXRlVGltZSA9IGZhbHNlO1xyXG5cclxuICBERF9NTV9ZWVlZOiBzdHJpbmcgPSAnJztcclxuICBISDogc3RyaW5nID0gJzAwJztcclxuICBNTTogc3RyaW5nID0gJzAwJztcclxuXHJcbiAgSUQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBvcHRpb25fSEg6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG4gIG9wdGlvbl9NTTogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ19kYXRlcGlja2VydGltZScsIHtzdGF0aWM6IGZhbHNlfSkgZGF0ZXBpY2tlcnRpbWU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBvcHRpb25zX2RhdGVfdGltZSA6IElTZWxlY3RPcHRpb25zW10gPSBbXTtcclxuICBvcGVuX29wdGlvbnNfZGF0ZV90aW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGxhc3Rfb3B0aW9uc19kYXRlX3RpbWU6IGFueTtcclxuICBkZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZTogYW55ID0gJyc7XHJcbiAgdmFsdWVfb3B0aW9uc19kYXRlX3RpbWU6IGFueSA9ICcnO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcblxyXG4gICAgdGhpcy5zZXRPcHRpb25zRGF0ZVRpbWUoKTtcclxuXHJcbiAgICB0aGlzLklEID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcbiAgICB0aGlzLm9wdGlvbl9ISCA9IHRoaXMuZ2V0TGlzdFRJTUUoMjMpO1xyXG4gICAgdGhpcy5vcHRpb25fTU0gPSB0aGlzLmdldExpc3RUSU1FKDU5KTtcclxuICB9XHJcblxyXG4gIHNldE9wdGlvbnNEYXRlVGltZSgpe1xyXG4gICAgdGhpcy5vcHRpb25zX2RhdGVfdGltZSA9IFtcclxuICAgICAge3ZhbHVlOic3LWRheXMnLCBkZXNjcmlwdGlvbjogJzcgZGlhcyd9LFxyXG4gICAgICB7dmFsdWU6JzE1LWRheXMnLCBkZXNjcmlwdGlvbjogJzE1IGRpYXMnfSxcclxuICAgICAge3ZhbHVlOiczMC1kYXlzJywgZGVzY3JpcHRpb246ICczMCBkaWFzJ30sXHJcbiAgICAgIHt2YWx1ZTonY3VycmVudC1tb250aCcsIGRlc2NyaXB0aW9uOiAnTcOqcyBhdHVhbCBhdMOpIGFnb3JhJ30sXHJcbiAgICAgIHt2YWx1ZTonY3VycmVudC15ZWFyJywgZGVzY3JpcHRpb246ICdBbm8gYXR1YWwgYXTDqSBhZ29yYSd9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUlEKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiBgdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdFRJTUUodjogbnVtYmVyKXtcclxuICAgIGxldCBtbSA9IFtdO1xyXG4gICAgZm9yKGxldCBpID0gMDsgaSA8PSB2OyBpKysgKXtcclxuICAgICAgaWYoIGkgPCAxMCApe1xyXG4gICAgICAgIChtbSkucHVzaChgMCR7aX1gKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgKG1tKS5wdXNoKGAke2l9YCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtbTtcclxuICB9XHJcblxyXG4gIHRvU2V0RGF0ZShkYXRlOiBzdHJpbmcpeyAgICBcclxuICAgIHRoaXMuc2V0X2RhdGVfYnlfZGF0ZXBpY2tlcihkYXRlKTtcclxuICB9XHJcblxyXG4gIHRvU2V0VGltZSgpe1xyXG4gICAgaWYoIHRoaXMuRERfTU1fWVlZWSAmJiAoKHRoaXMuRERfTU1fWVlZWSkudHJpbSgpKS5sZW5ndGggPT09IDEwKXtcclxuICAgICAgY29uc3QgZGF0ZSA9ICh0aGlzLkREX01NX1lZWVkpLnJlcGxhY2UoLy0vZywgJy8nKTtcclxuICAgICAgbGV0IGRhdGVfcGFydCA9IChkYXRlKS5zcGxpdCgnLycpO1xyXG4gICAgICBsZXQgZGQgPSBkYXRlX3BhcnRbMF07XHJcbiAgICAgIGxldCBtbSA9IGRhdGVfcGFydFsxXTtcclxuICAgICAgbGV0IHl5ID0gZGF0ZV9wYXJ0WzJdO1xyXG4gICAgICBjb25zdCBkYXRldGltZSA9IG5ldyBEYXRlKGAke3l5fS0ke21tfS0ke2RkfWApO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZShkYXRldGltZSkgKXtcclxuICAgICAgICB0aGlzLnNldF9kYXRlX2J5X2RhdGVwaWNrZXIoZGF0ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldF9kYXRlX2J5X2RhdGVwaWNrZXIoZGF0ZTogc3RyaW5nKXtcclxuXHJcbiAgICBpZiggZGF0ZSApe1xyXG4gICAgICBkYXRlID0gKGRhdGUpLnJlcGxhY2UoLy0vZywgJy8nKTtcclxuICAgICAgbGV0IGRhdGVfcGFydCA9IChkYXRlKS5zcGxpdCgnLycpO1xyXG4gICAgICBsZXQgZGlhID0gZGF0ZV9wYXJ0WzBdO1xyXG4gICAgICBsZXQgbWVzID0gZGF0ZV9wYXJ0WzFdO1xyXG4gICAgICBsZXQgYW5vID0gZGF0ZV9wYXJ0WzJdO1xyXG5cclxuICAgICAgbGV0IGhoID0gdGhpcy5ISDtcclxuICAgICAgaWYoICFoaCApe1xyXG4gICAgICAgIGhoID0gJzAwJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYoICggKyhoaCkgPj0gMCAmJiArKGhoKSA8IDI0ICkgKXtcclxuICAgICAgICAgIGhoID0gKCsoaGgpIDwgMTAgKSA/IGAwJHsrKGhoKX1gIDogYCR7KyhoaCl9YDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGhoID0gJzAwJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBtbSA9IHRoaXMuTU07XHJcbiAgICAgIGlmKCAhbW0gKXtcclxuICAgICAgICBtbSA9ICcwMCc7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmKCAoICsobW0pID49IDAgJiYgKyhtbSkgPCA2MCApICl7XHJcbiAgICAgICAgICBtbSA9ICgrKG1tKSA8IDEwICkgPyBgMCR7KyhtbSl9YCA6IGAkeysobW0pfWA7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBtbSA9ICcwMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggaGggPT09ICcwMCcgKXsgdGhpcy5ISCA9IGhoOyB9XHJcbiAgICAgIGlmKCBtbSA9PT0gJzAwJyApeyB0aGlzLk1NID0gbW07IH1cclxuXHJcbiAgICAgIGNvbnN0IG5vdGF0aW9uID0gJzAwJztcclxuXHJcbiAgICAgIGNvbnN0IHN0cl9kYXRlID0gYCR7YW5vfS0ke21lc30tJHtkaWF9VCR7aGh9OiR7bW19OiR7bm90YXRpb259YDtcclxuICAgICAgY29uc3QgZGF0ZXRpbWUgPSBuZXcgRGF0ZSggc3RyX2RhdGUgKTtcclxuICAgICAgXHJcbiAgICAgIGlmKCB0aGlzLmNoZWNrSXNEYXRlKGRhdGV0aW1lKSApe1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGRhdGV0aW1lO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50JywgdGhpcy5kYXRlcGlja2VydGltZT8ubmF0aXZlRWxlbWVudCk7XHJcblxyXG4gICAgICAvLyBpZih0aGlzLmRhdGVwaWNrZXJ0aW1lICYmIHRoaXMuZGF0ZXBpY2tlcnRpbWUubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgIC8vICAgY29uc3QgZWxlbSA9IDxhbnk+IHRoaXMuZGF0ZXBpY2tlcnRpbWUubmF0aXZlRWxlbWVudDtcclxuICAgICAgLy8gICBlbGVtLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlO1xyXG4gICAgICAvLyB9XHJcblxyXG4gICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMuZXZlbnRDaGFuZ2UuZW1pdCggdGhpcy5kYXRlcGlja2VydGltZT8ubmF0aXZlRWxlbWVudCApO1xyXG5cclxuICAgIH1lbHNle1xyXG5cclxuICAgICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcblxyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5ldmVudENoYW5nZS5lbWl0KCB0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGAke3RoaXMubGFzdF9vcHRpb25zX2RhdGVfdGltZX1gICE9PSBgJHt0aGlzLmlubmVyVmFsdWV9YCApe1xyXG4gICAgICAvLyB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICAgIC8vIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAvLyBEaXN0cmlidWlyIG9zIHZhbG9yZXMgZGEgZGF0YSBwb3IgcGVkYcOnb3M6IGRhdGEgLSBob3JhIC0gbWluXHJcbiAgdG9fZGF0ZV9oaF9tbShkOiBEYXRlKXtcclxuICAgIGxldCBkaWEgPSBgJHsoZCkuZ2V0RGF0ZSgpfWA7XHJcbiAgICBkaWEgPSAoKyhkaWEpIDwgMTAgKSA/IGAwJHsrZGlhfWAgOiBkaWE7XHJcbiAgICBsZXQgbWVzID0gYCR7KGQpLmdldE1vbnRoKCkrMX1gO1xyXG4gICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyAgXHJcblxyXG4gICAgbGV0IGFubyA9IGAkeyhkKS5nZXRGdWxsWWVhcigpfWA7XHJcbiAgICBsZXQgaGggID0gYCR7KGQpLmdldEhvdXJzKCl9YDtcclxuICAgIGxldCBtbSAgPSBgJHsoZCkuZ2V0TWludXRlcygpfWA7XHJcblxyXG4gICAgaWYoIGhoICYmICggKyhoaCkgPCAwIHx8ICsoaGgpID4gMjMgKSApeyBoaCA9ICcwMCc7IH1cclxuICAgIGhoID0gKGhoKSA/ICggKCsoaGgpIDwgMTAgKSA/IGAwJHtoaH1gIDogaGggKSA6ICcwMCc7XHJcblxyXG4gICAgaWYoIG1tICYmICggKyhtbSkgPCAwIHx8ICsobW0pID4gNTkgKSApeyBtbSA9ICcwMCc7IH1cclxuICAgIG1tID0gKG1tKSA/ICggKCsobW0pIDwgMTAgKSA/IGAwJHttbX1gIDogbW0gKSA6ICcwMCc7XHJcblxyXG4gICAgdGhpcy5NTSA9IG1tO1xyXG4gICAgdGhpcy5ISCA9IGhoO1xyXG5cclxuICAgIHRoaXMuRERfTU1fWVlZWSA9IGAke2RpYX0vJHttZXN9LyR7YW5vfWA7XHJcbiAgfVxyXG5cclxuICBjaGVja0lzRGF0ZShkOiBhbnkpOiBib29sZWFue1xyXG5cclxuICAgIGlmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKSA9PT0gXCJbb2JqZWN0IERhdGVdXCIpIHtcclxuICAgICAgaWYoaXNOYU4oZCkpIHsgcmV0dXJuIGZhbHNlOyB9IGVsc2UgeyByZXR1cm4gdHJ1ZTsgfVxyXG4gICAgfSBcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjbGVhbigpe1xyXG4gICAgdGhpcy5ERF9NTV9ZWVlZID0gJyc7XHJcbiAgICB0aGlzLkhIID0gJzAwJztcclxuICAgIHRoaXMuTU0gPSAnMDAnO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgdGhpcy52YWx1ZV9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpPy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZWRPcHRpb25zRGF0ZVRpbWUoKXtcclxuICAgIHRoaXMub3Blbl9vcHRpb25zX2RhdGVfdGltZSA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBcclxuICBvbkNoYW5nZU9wdGlvbnNEYXRlVGltZShldmVudDogYW55KXtcclxuICAgIC8vIHRoaXMuZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIC8vIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIHRoaXMuc2hvd19kYXRlX3BpY2tlciA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgbGV0IGZpbHRlcl9kYXRlOiBhbnkgPSB1bmRlZmluZWQ7XHJcbiAgICBpZiggZXZlbnQgPT09ICc3LWRheXMnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChuZXcgRGF0ZShub3cpKS5zZXREYXRlKCBub3cuZ2V0RGF0ZSgpIC0gNyApICk7ICBcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKGZpbHRlcl9kYXRlKS5zZXRTZWNvbmRzKDApICk7ICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnMTUtZGF5cycgKXtcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKG5ldyBEYXRlKG5vdykpLnNldERhdGUoIG5vdy5nZXREYXRlKCkgLSAxNSApICk7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChmaWx0ZXJfZGF0ZSkuc2V0U2Vjb25kcygwKSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudCA9PT0gJzMwLWRheXMnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChuZXcgRGF0ZShub3cpKS5zZXREYXRlKCBub3cuZ2V0RGF0ZSgpIC0gMzAgKSApO1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKCAoZmlsdGVyX2RhdGUpLnNldFNlY29uZHMoMCkgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZXZlbnQgPT09ICdjdXJyZW50LW1vbnRoJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnY3VycmVudC15ZWFyJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCAwLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBpZihmaWx0ZXJfZGF0ZSl7ICAgICAgXHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGZpbHRlcl9kYXRlO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZShmaWx0ZXJfZGF0ZSkgKXsgICAgICAgICAgICAgIFxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b19kYXRlX2hoX21tKGZpbHRlcl9kYXRlKTtcclxuICAgICAgICAgIHRoaXMudG9TZXREYXRlKHRoaXMuRERfTU1fWVlZWSk7ICBcclxuICAgICAgICAgIHRoaXMuc2hvd19kYXRlX3BpY2tlciA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gZXZlbnQ7XHJcbiAgICAgICAgICB0aGlzLmxhc3Rfb3B0aW9uc19kYXRlX3RpbWUgPSBmaWx0ZXJfZGF0ZSBhcyBhbnk7XHJcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gdGhpcy5nZXRfZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUoZXZlbnQpO1xyXG4gICAgICAgIH0pOyAgICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBnZXRfZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUodmFsdWU6IHN0cmluZyl7XHJcbiAgICBpZiggdGhpcy5vcHRpb25zX2RhdGVfdGltZSAmJiAodGhpcy5vcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLm9wdGlvbnNfZGF0ZV90aW1lKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLm9wdGlvbnNfZGF0ZV90aW1lW2ldO1xyXG4gICAgICAgIGlmKCBpdGVtLnZhbHVlID09PSB2YWx1ZSApe1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0uZGVzY3JpcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xvc2VkVGltZURlc2NyaXB0aW9uKCl7XHJcbiAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7IFxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBcclxuICBpbm5lclZhbHVlOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgLy9QbGFjZWhvbGRlcnMgZm9yIHRoZSBjYWxsYmFja3Mgd2hpY2ggYXJlIGxhdGVyIHByb3ZpZGVzZFxyXG4gIC8vYnkgdGhlIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JcclxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcclxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xyXG5cclxuICAvL2dldCBhY2Nlc3NvclxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xyXG4gIH07XHJcblxyXG4gIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xyXG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcclxuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSggYCR7dmFsdWV9YCApO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge31cclxuXHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZSh2YWx1ZSkgKXtcclxuICAgICAgICB0aGlzLnRvX2RhdGVfaGhfbW0odmFsdWUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmNsZWFuKClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRjbG91ZC11aS1kYXRlcGlja2VyLXRpbWVcIj5cclxuICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwie3sgaW5uZXJWYWx1ZSB9fVwiICNfZGF0ZXBpY2tlcnRpbWUgPlxyXG4gIDxmb3JtICNfZm9ybXVsYXJpbz1cIm5nRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRyb2wtdGltZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLXRpbWVcIj5cclxuXHJcbiAgICAgICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0ZD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LW9wdGlvbnMtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImZvcm0tdGltZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDx0ZCBjbGFzcz1cImFyZWEtaWNvblwiPjxkaXYgY2xhc3M9XCJkZWxpbWl0ZXItdGltZS1pY29uXCIgKGNsaWNrKT1cInRvQ2xpY2tJbihJRClcIiA+PGkgY2xhc3M9XCJmYXMgZmEtY2FsZW5kYXItYWx0XCI+PC9pPjwvZGl2PjwvdGQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWlucHV0LWRhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd19kYXRlX3BpY2tlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRlcGlja2VyIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBbbWF4RGF0ZV09XCJtYXhEYXRlXCIgI190Y2xvdWRkYXRlcGlja2VydGltZSBbY2hpbGRJbnB1dERhdGVUaW1lXT1cInRydWVcIiBbbW9kZUlucHV0XT1cInRydWVcIiBuYW1lPVwiZGF0ZVwiIFt1c2VCb3JkZXJdPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cIkREX01NX1lZWVlcIiAob25DaGFuZ2UpPVwidG9TZXREYXRlKCRldmVudClcIiA+PC90Y2xvdWQtdWktZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtZGVsaW1pdGVyXCI+PGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lXCI+PC9kaXY+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1ob3VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLTxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiSEhcIiAoa2V5dXApPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIkhIXCIgbWF4bGVuZ3RoPVwiMlwiIG5hbWU9XCJoaFwiIHBhdHRlcm49XCJbMF1bMC05XXxbMV1bMC05XXwyWzAtM11cIj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic2VsZWN0LXRpbWUtZGF0ZVwiIChjaGFuZ2UpPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIkhIXCIgbmFtZT1cImhoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBoaCBvZiBvcHRpb25fSEhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJoaFwiPnt7IGhoIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1kZWxpbWl0ZXJcIj48ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWVcIj46PC9kaXY+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1taW51dGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJNTVwiIChrZXl1cCk9XCJ0b1NldFRpbWUoKVwiIFsobmdNb2RlbCldPVwiTU1cIiBtYXhsZW5ndGg9XCIyXCIgbmFtZT1cIm1tXCIgcGF0dGVybj1cIlswMTIzNDVdWzAtOV1cIj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic2VsZWN0LXRpbWUtZGF0ZVwiIChjaGFuZ2UpPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIk1NXCIgbmFtZT1cIm1tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtbSBvZiBvcHRpb25fTU1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwibW1cIj57eyBtbSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtY2xlYW5cIj48L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tb3B0aW9ucy1kYXRlXCIgKm5nSWY9XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZSAhPT0gJydcIj5cclxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgfX08L3N0cm9uZz5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImFyZWEtYWN0aW9uLWRhdGUtdGltZS1zZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4taWNvblwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xvc2VkVGltZURlc2NyaXB0aW9uKClcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwidXNlT3B0aW9uc0RhdGVUaW1lICYmIG9wdGlvbnNfZGF0ZV90aW1lICYmIChvcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMFwiIHN0eWxlPVwid2lkdGg6IDIwcHhcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImljb24tc2hvcnQtdGltZVwiIChjbGljayk9XCJvcGVuX29wdGlvbnNfZGF0ZV90aW1lID0gIW9wZW5fb3B0aW9uc19kYXRlX3RpbWVcIiBbdGl0bGVdPVwiZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWVcIiA+XHJcbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCIgY2xhc3M9XCJmYXMgZmEtY2FyZXQtZG93blwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwib3Blbl9vcHRpb25zX2RhdGVfdGltZVwiIGNsYXNzPVwiZmFzIGZhLWNhcmV0LXVwXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgIT09ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWljb24tY2xvc2VcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlZFRpbWVEZXNjcmlwdGlvbigpXCIgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPiBcclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwidXNlT3B0aW9uc0RhdGVUaW1lICYmIG9wdGlvbnNfZGF0ZV90aW1lICYmIChvcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMCAmJiBvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCI+XHJcbiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMlwiPlxyXG4gICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRhLWxpc3QgXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93SW5wdXRdPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAgICAgW3NlYXJjaF09XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgICAgICBbb3Blbl09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgICAgICAgIFtsaXN0SXRlbXNdPVwib3B0aW9uc19kYXRlX3RpbWVcIiBcclxuICAgICAgICAgICAgICAgICAgKG9uQ2xvc2VkKT1cIm9uQ2xvc2VkT3B0aW9uc0RhdGVUaW1lKClcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlT3B0aW9uc0RhdGVUaW1lKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L3RjbG91ZC11aS1kYXRhLWxpc3Q+XHJcblxyXG4gICAgICAgICAgICAgICAgXHJcblxyXG5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG48L2Rpdj4iXX0=
|
package/esm2022/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.mjs
CHANGED
|
@@ -190,7 +190,7 @@ export class TCloudUiRangeDateComponent {
|
|
|
190
190
|
return false;
|
|
191
191
|
}
|
|
192
192
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiRangeDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
193
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiRangeDateComponent, selector: "range-date", inputs: { defaultValuePeriodStartStop: "defaultValuePeriodStartStop", required: "required", descriptionStart: "descriptionStart", descriptionStop: "descriptionStop" }, outputs: { onChange: "onChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], ngImport: i0, template: "<table class=\"tcloud-ui-filters-range-date area-range-date\">\r\n <tr>\r\n\r\n <td>\r\n <div *ngIf=\"mode === 'select'\">\r\n <div class=\"description-period\">Per\u00EDodo</div>\r\n <select name=\"periodo\" class=\"tc-form-control\" (change)=\"onChangeOptionsDateTime($event.target)\" [(ngModel)]=\"defaultValuePeriodStartStop\" >\r\n <option value=\"\"></option> \r\n <ng-container *ngFor=\"let item of options_date_time\">\r\n <option [value]=\"item.value\">{{ item.description }}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div *ngIf=\"mode === 'datepickers'\">\r\n\r\n <table class=\"area-range-datepickers\">\r\n <tr>\r\n <td>\r\n <div class=\"description-start\">{{ descriptionStart }}</div>\r\n <tcloud-ui-datepicker-time \r\n #_input_start \r\n [(ngModel)]=\"result.start\" \r\n name=\"input_start\" \r\n (eventChange)=\"onChangeStartDateTime(_input_start)\">\r\n </tcloud-ui-datepicker-time>\r\n </td>\r\n <td>\r\n <div class=\"description-stop\">{{ descriptionStop }}</div>\r\n <tcloud-ui-datepicker-time \r\n #_input_stop\r\n [(ngModel)]=\"result.stop\" \r\n name=\"input_stop\" \r\n (eventChange)=\"onChangeStopDateTime(_input_stop)\">\r\n </tcloud-ui-datepicker-time>\r\n </td>\r\n </tr>\r\n </table>\r\n\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <button class=\"btn-mode-range-date\" [class.active]=\"mode === 'select'\" (click)=\"toggle()\" type=\"button\">\r\n\r\n <i *ngIf=\"mode === 'select'\" class=\"far fa-calendar-alt\" title=\"Alterar para calend\u00E1rio\"></i>\r\n <i *ngIf=\"mode !== 'select'\" class=\"fas fa-calendar-week\" title=\"Selecionar per\u00EDodo\"></i>\r\n\r\n <!-- <div *ngIf=\"mode === 'select'\">Exibir<br>Calend\u00E1rio</div> -->\r\n <!-- <div *ngIf=\"mode !== 'select'\">Exibir<br>Per\u00EDodo</div> -->\r\n </button>\r\n </td>\r\n\r\n </tr>\r\n</table>", styles: [".area-range-date{height:40px;width:100%}.area-range-date tr td:first-child{width:calc(100% - 35px)}.area-range-date tr td:first-child select{color:#535353;border-radius:3px 0 0 3px!important}.area-range-date tr td:first-child .area-range-datepickers{width:100%}.area-range-date tr td:first-child .area-range-datepickers td{width:50%!important}.area-range-date tr td:last-child{width:35px}.area-range-date tr td:last-child .btn-mode-range-date{width:100%;text-align:center;border:1px solid #ccc;background-color:#fff;font-size:17px;line-height:1;cursor:pointer;color:#6c6c6c;height:40px;border-radius:0 3px 3px 0}.area-range-date tr td:last-child .btn-mode-range-date:focus{color:#403d3d}.active{background-color:#eee!important}.description-period,.description-start{position:relative;left:17px;top:-15px;line-height:0}.description-stop{position:relative;top:-15px;line-height:0}\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: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: ["ngModel", "useOptionsDateTime"], outputs: ["ngModelChange", "onChange", "eventChange"] }] }); }
|
|
193
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiRangeDateComponent, selector: "range-date", inputs: { defaultValuePeriodStartStop: "defaultValuePeriodStartStop", required: "required", descriptionStart: "descriptionStart", descriptionStop: "descriptionStop" }, outputs: { onChange: "onChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], ngImport: i0, template: "<table class=\"tcloud-ui-filters-range-date area-range-date\">\r\n <tr>\r\n\r\n <td>\r\n <div *ngIf=\"mode === 'select'\">\r\n <div class=\"description-period\">Per\u00EDodo</div>\r\n <select name=\"periodo\" class=\"tc-form-control\" (change)=\"onChangeOptionsDateTime($event.target)\" [(ngModel)]=\"defaultValuePeriodStartStop\" >\r\n <option value=\"\"></option> \r\n <ng-container *ngFor=\"let item of options_date_time\">\r\n <option [value]=\"item.value\">{{ item.description }}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div *ngIf=\"mode === 'datepickers'\">\r\n\r\n <table class=\"area-range-datepickers\">\r\n <tr>\r\n <td>\r\n <div class=\"description-start\">{{ descriptionStart }}</div>\r\n <tcloud-ui-datepicker-time \r\n #_input_start \r\n [(ngModel)]=\"result.start\" \r\n name=\"input_start\" \r\n (eventChange)=\"onChangeStartDateTime(_input_start)\">\r\n </tcloud-ui-datepicker-time>\r\n </td>\r\n <td>\r\n <div class=\"description-stop\">{{ descriptionStop }}</div>\r\n <tcloud-ui-datepicker-time \r\n #_input_stop\r\n [(ngModel)]=\"result.stop\" \r\n name=\"input_stop\" \r\n (eventChange)=\"onChangeStopDateTime(_input_stop)\">\r\n </tcloud-ui-datepicker-time>\r\n </td>\r\n </tr>\r\n </table>\r\n\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <button class=\"btn-mode-range-date\" [class.active]=\"mode === 'select'\" (click)=\"toggle()\" type=\"button\">\r\n\r\n <i *ngIf=\"mode === 'select'\" class=\"far fa-calendar-alt\" title=\"Alterar para calend\u00E1rio\"></i>\r\n <i *ngIf=\"mode !== 'select'\" class=\"fas fa-calendar-week\" title=\"Selecionar per\u00EDodo\"></i>\r\n\r\n <!-- <div *ngIf=\"mode === 'select'\">Exibir<br>Calend\u00E1rio</div> -->\r\n <!-- <div *ngIf=\"mode !== 'select'\">Exibir<br>Per\u00EDodo</div> -->\r\n </button>\r\n </td>\r\n\r\n </tr>\r\n</table>", styles: [".area-range-date{height:40px;width:100%}.area-range-date tr td:first-child{width:calc(100% - 35px)}.area-range-date tr td:first-child select{color:#535353;border-radius:3px 0 0 3px!important}.area-range-date tr td:first-child .area-range-datepickers{width:100%}.area-range-date tr td:first-child .area-range-datepickers td{width:50%!important}.area-range-date tr td:last-child{width:35px}.area-range-date tr td:last-child .btn-mode-range-date{width:100%;text-align:center;border:1px solid #ccc;background-color:#fff;font-size:17px;line-height:1;cursor:pointer;color:#6c6c6c;height:40px;border-radius:0 3px 3px 0}.area-range-date tr td:last-child .btn-mode-range-date:focus{color:#403d3d}.active{background-color:#eee!important}.description-period,.description-start{position:relative;left:17px;top:-15px;line-height:0}.description-stop{position:relative;top:-15px;line-height:0}\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: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: ["ngModel", "minDate", "maxDate", "useOptionsDateTime"], outputs: ["ngModelChange", "onChange", "eventChange"] }] }); }
|
|
194
194
|
}
|
|
195
195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiRangeDateComponent, decorators: [{
|
|
196
196
|
type: Component,
|
|
@@ -453,7 +453,7 @@ export class TCloudUiFiltersComponent {
|
|
|
453
453
|
this.result.emit(data);
|
|
454
454
|
}
|
|
455
455
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiFiltersComponent, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
456
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiFiltersComponent, selector: "tcloud-ui-filters", inputs: { data: "data", filters: "filters", submitText: "submitText", btnSubmitClass: "btnSubmitClass", useOnChangeSubmit: "useOnChangeSubmit", useButtonSubmit: "useButtonSubmit", useNormalizeCaseSensitive: "useNormalizeCaseSensitive", useRangeDate: "useRangeDate", useFilterAccept: "useFilterAccept" }, outputs: { result: "result", onFilter: "onFilter", onChange: "onChange", onSubmit: "onSubmit" }, viewQueries: [{ propertyName: "_formulario", first: true, predicate: ["_formulario"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"show_filters\" class=\"tcloud-ui-filters area-filter\">\r\n <ng-container *ngFor=\"let item of filters; let i = index\">\r\n\r\n <ng-container *ngIf=\"!item.type || (item.type && item.type !== 'boolean')\">\r\n\r\n <ng-container *ngIf=\"item.type === 'date-local'\">\r\n\r\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\r\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\r\n <div class=\"box-type-{{item.type}}\">\r\n <tcloud-ui-datepicker \r\n #_input\r\n name=\"input_{{i+1}}\"\r\n [modeInput]=\"true\"\r\n [(ngModel)]=\"item.value\"\r\n (ngModelChange)=\"searchIn(item, _input)\">\r\n </tcloud-ui-datepicker>\r\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"item.type !== 'date-local'\">\r\n <ng-container *ngIf=\"item.type === 'datetime-local'\">\r\n\r\n <ng-container *ngIf=\"(item.id === 'start' || item.id === 'stop') && useRangeDate\">\r\n <!-- PERIOD RANGE DATE -->\r\n <ng-container *ngIf=\"item.id === 'start'\">\r\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+start_stop_width+''+start_stop_und : ''\">\r\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"(_range_date && _range_date.result && _range_date.result.start && _range_date.result.stop )\" class=\"fas fa-filter icon-filter\"></i> </div>\r\n <range-date \r\n #_range_date ngModel name=\"input_{{i+1}}\" \r\n [defaultValuePeriodStartStop]=\"item.defaultValuePeriodStartStop\"\r\n [descriptionStart]=\"descriptionStart\"\r\n [descriptionStop]=\"descriptionStop\"\r\n required \r\n (onChange)=\"searchInRange(_range_date); searchIn(item, _range_date)\">\r\n </range-date>\r\n </div>\r\n </ng-container> \r\n <input *ngIf=\"item.id === 'start'\" #_input name=\"input_{{i+1}}\" type=\"hidden\" [(ngModel)]=\"start_value\"> \r\n <input *ngIf=\"item.id === 'stop'\" #_input name=\"input_{{i+1}}\" type=\"hidden\" [(ngModel)]=\"stop_value\"> \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!item.id || !useRangeDate\">\r\n\r\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\r\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\r\n <div class=\"box-type-{{item.type}}\">\r\n <tcloud-ui-datepicker-time \r\n #_input \r\n [(ngModel)]=\"item.value\" \r\n name=\"input_{{i+1}}\" \r\n [useOptionsDateTime]=\"(item && item.useOptionsDateTime) ? true : false\"\r\n (eventChange)=\"searchIn(item, _input)\" >\r\n </tcloud-ui-datepicker-time>\r\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"item.type !== 'select' && item.type !== 'datetime-local' && item.type !== 'date-local'\">\r\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\r\n\r\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"_input.value !== ''\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\r\n <div class=\"box-type-{{item.type}}\">\r\n <input \r\n #_input\r\n [(ngModel)]=\"item.value\"\r\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\r\n name=\"input_{{i+1}}\" \r\n type=\"{{ (item.type === 'number') ? 'text' : item.type }}\" \r\n class=\"tc-form-control\" \r\n (keyup)=\"searchIn(item, $event)\"> \r\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"_input.value === ''\" (click)=\"searchIn(item, null); _input.value = ''\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"item.type === 'select' && item.data && (item.data).length > 0\" >\r\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\r\n\r\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"_input.value !== ''\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\r\n <div class=\"box-type-{{item.type}}\">\r\n <select \r\n #_input\r\n [(ngModel)]=\"item.value\"\r\n name=\"input_{{i+1}}\" \r\n class=\"tc-form-control\" \r\n (change)=\"searchIn(item, $event)\">\r\n <option [ngValue]=\"\"></option>\r\n <ng-container *ngFor=\"let v of item.data\">\r\n <option [value]=\"v.value\">{{ v.description }}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngIf=\"item.type && item.type === 'boolean'\">\r\n \r\n <div class=\"box-filter-input\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\r\n <div class=\"m-description tc-title-ellipsis\" title=\"{{ item.description }}\" title=\"{{ item.description }}\"><i [class.to-active]=\"_input.checked === true\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\r\n <div class=\"area-input-checkbox\">\r\n <div class=\"tc-form-control\">\r\n <label>\r\n {{ item.placeholder }}\r\n <input \r\n #_input\r\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\r\n name=\"input_{{i+1}}\" \r\n type=\"checkbox\" \r\n (change)=\"searchIn(item, _input.checked)\"> \r\n </label>\r\n </div> \r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n\r\n </ng-container>\r\n\r\n <div class=\"text-right mb-1 mr-1\" *ngIf=\"useButtonSubmit\">\r\n <button type=\"button\" class=\"tc-btn {{ btnSubmitClass }}\" (click)=\"toSubmit()\" >{{ submitText }}</button>\r\n </div>\r\n\r\n</div>\r\n\r\n<!-- <pre>{{ inputs | json }}</pre> -->\r\n<!-- <pre> {{ data | json }} </pre> -->\r\n\r\n<!-- <p>FILTERS</p><pre> {{ filters | json }}</pre> -->\r\n\r\n<!--\r\n <pre>start_stop: {{ start_stop }}</pre>\r\n <pre>start_stop_width: {{ start_stop_width }}</pre>\r\n <pre>start_stop_und: {{ start_stop_und }}</pre>\r\n-->", styles: [".box-filter-input{display:inline-grid;padding:10px 5px;position:relative}.area-filter{border:1px solid #eeeeee;border-radius:5px;margin-bottom:5px}.btn-clear-filter-text{position:absolute;right:8px;top:38px;background-color:#fff;border:none;cursor:pointer;color:#aaa}.to-hide{display:none}.icon-filter{color:#ccc}.to-active{color:var(--tc-primary)}.area-input-checkbox label{cursor:pointer;margin-bottom:0;color:#9f9f9f}.area-input-checkbox div.tc-form-control{height:40px}.m-description{margin-bottom:3px}input{color:#535353}input[type=text],input[type=number],select{height:40px!important}.type-hidden{display:none;width:0px!important}.box-type-global_vars{display:none!important;width:0px!important}.tc-title-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\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: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: ["ngModel", "useOptionsDateTime"], outputs: ["ngModelChange", "onChange", "eventChange"] }, { kind: "component", type: i4.TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: ["multiple", "maxNumberOfDates", "daysOfWeekDisabled", "minDate", "maxDate", "datesDisabled", "modeInput", "useBorder", "childInputDateTime", "startViewInMinDate", "startViewInMaxDate", "disabled", "ngModel", "code"], outputs: ["onChange", "ngModelChange", "onCheckDate"] }, { kind: "component", type: i5.TCloudUiRangeDateComponent, selector: "range-date", inputs: ["defaultValuePeriodStartStop", "required", "descriptionStart", "descriptionStop"], outputs: ["onChange"] }] }); }
|
|
456
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiFiltersComponent, selector: "tcloud-ui-filters", inputs: { data: "data", filters: "filters", submitText: "submitText", btnSubmitClass: "btnSubmitClass", useOnChangeSubmit: "useOnChangeSubmit", useButtonSubmit: "useButtonSubmit", useNormalizeCaseSensitive: "useNormalizeCaseSensitive", useRangeDate: "useRangeDate", useFilterAccept: "useFilterAccept" }, outputs: { result: "result", onFilter: "onFilter", onChange: "onChange", onSubmit: "onSubmit" }, viewQueries: [{ propertyName: "_formulario", first: true, predicate: ["_formulario"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"show_filters\" class=\"tcloud-ui-filters area-filter\">\r\n <ng-container *ngFor=\"let item of filters; let i = index\">\r\n\r\n <ng-container *ngIf=\"!item.type || (item.type && item.type !== 'boolean')\">\r\n\r\n <ng-container *ngIf=\"item.type === 'date-local'\">\r\n\r\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\r\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\r\n <div class=\"box-type-{{item.type}}\">\r\n <tcloud-ui-datepicker \r\n #_input\r\n name=\"input_{{i+1}}\"\r\n [modeInput]=\"true\"\r\n [(ngModel)]=\"item.value\"\r\n (ngModelChange)=\"searchIn(item, _input)\">\r\n </tcloud-ui-datepicker>\r\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"item.type !== 'date-local'\">\r\n <ng-container *ngIf=\"item.type === 'datetime-local'\">\r\n\r\n <ng-container *ngIf=\"(item.id === 'start' || item.id === 'stop') && useRangeDate\">\r\n <!-- PERIOD RANGE DATE -->\r\n <ng-container *ngIf=\"item.id === 'start'\">\r\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+start_stop_width+''+start_stop_und : ''\">\r\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"(_range_date && _range_date.result && _range_date.result.start && _range_date.result.stop )\" class=\"fas fa-filter icon-filter\"></i> </div>\r\n <range-date \r\n #_range_date ngModel name=\"input_{{i+1}}\" \r\n [defaultValuePeriodStartStop]=\"item.defaultValuePeriodStartStop\"\r\n [descriptionStart]=\"descriptionStart\"\r\n [descriptionStop]=\"descriptionStop\"\r\n required \r\n (onChange)=\"searchInRange(_range_date); searchIn(item, _range_date)\">\r\n </range-date>\r\n </div>\r\n </ng-container> \r\n <input *ngIf=\"item.id === 'start'\" #_input name=\"input_{{i+1}}\" type=\"hidden\" [(ngModel)]=\"start_value\"> \r\n <input *ngIf=\"item.id === 'stop'\" #_input name=\"input_{{i+1}}\" type=\"hidden\" [(ngModel)]=\"stop_value\"> \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!item.id || !useRangeDate\">\r\n\r\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\r\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\r\n <div class=\"box-type-{{item.type}}\">\r\n <tcloud-ui-datepicker-time \r\n #_input \r\n [(ngModel)]=\"item.value\" \r\n name=\"input_{{i+1}}\" \r\n [useOptionsDateTime]=\"(item && item.useOptionsDateTime) ? true : false\"\r\n (eventChange)=\"searchIn(item, _input)\" >\r\n </tcloud-ui-datepicker-time>\r\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"item.type !== 'select' && item.type !== 'datetime-local' && item.type !== 'date-local'\">\r\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\r\n\r\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"_input.value !== ''\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\r\n <div class=\"box-type-{{item.type}}\">\r\n <input \r\n #_input\r\n [(ngModel)]=\"item.value\"\r\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\r\n name=\"input_{{i+1}}\" \r\n type=\"{{ (item.type === 'number') ? 'text' : item.type }}\" \r\n class=\"tc-form-control\" \r\n (keyup)=\"searchIn(item, $event)\"> \r\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"_input.value === ''\" (click)=\"searchIn(item, null); _input.value = ''\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"item.type === 'select' && item.data && (item.data).length > 0\" >\r\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\r\n\r\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"_input.value !== ''\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\r\n <div class=\"box-type-{{item.type}}\">\r\n <select \r\n #_input\r\n [(ngModel)]=\"item.value\"\r\n name=\"input_{{i+1}}\" \r\n class=\"tc-form-control\" \r\n (change)=\"searchIn(item, $event)\">\r\n <option [ngValue]=\"\"></option>\r\n <ng-container *ngFor=\"let v of item.data\">\r\n <option [value]=\"v.value\">{{ v.description }}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngIf=\"item.type && item.type === 'boolean'\">\r\n \r\n <div class=\"box-filter-input\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\r\n <div class=\"m-description tc-title-ellipsis\" title=\"{{ item.description }}\" title=\"{{ item.description }}\"><i [class.to-active]=\"_input.checked === true\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\r\n <div class=\"area-input-checkbox\">\r\n <div class=\"tc-form-control\">\r\n <label>\r\n {{ item.placeholder }}\r\n <input \r\n #_input\r\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\r\n name=\"input_{{i+1}}\" \r\n type=\"checkbox\" \r\n (change)=\"searchIn(item, _input.checked)\"> \r\n </label>\r\n </div> \r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n\r\n </ng-container>\r\n\r\n <div class=\"text-right mb-1 mr-1\" *ngIf=\"useButtonSubmit\">\r\n <button type=\"button\" class=\"tc-btn {{ btnSubmitClass }}\" (click)=\"toSubmit()\" >{{ submitText }}</button>\r\n </div>\r\n\r\n</div>\r\n\r\n<!-- <pre>{{ inputs | json }}</pre> -->\r\n<!-- <pre> {{ data | json }} </pre> -->\r\n\r\n<!-- <p>FILTERS</p><pre> {{ filters | json }}</pre> -->\r\n\r\n<!--\r\n <pre>start_stop: {{ start_stop }}</pre>\r\n <pre>start_stop_width: {{ start_stop_width }}</pre>\r\n <pre>start_stop_und: {{ start_stop_und }}</pre>\r\n-->", styles: [".box-filter-input{display:inline-grid;padding:10px 5px;position:relative}.area-filter{border:1px solid #eeeeee;border-radius:5px;margin-bottom:5px}.btn-clear-filter-text{position:absolute;right:8px;top:38px;background-color:#fff;border:none;cursor:pointer;color:#aaa}.to-hide{display:none}.icon-filter{color:#ccc}.to-active{color:var(--tc-primary)}.area-input-checkbox label{cursor:pointer;margin-bottom:0;color:#9f9f9f}.area-input-checkbox div.tc-form-control{height:40px}.m-description{margin-bottom:3px}input{color:#535353}input[type=text],input[type=number],select{height:40px!important}.type-hidden{display:none;width:0px!important}.box-type-global_vars{display:none!important;width:0px!important}.tc-title-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\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: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: ["ngModel", "minDate", "maxDate", "useOptionsDateTime"], outputs: ["ngModelChange", "onChange", "eventChange"] }, { kind: "component", type: i4.TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: ["multiple", "maxNumberOfDates", "daysOfWeekDisabled", "minDate", "maxDate", "datesDisabled", "modeInput", "useBorder", "childInputDateTime", "startViewInMinDate", "startViewInMaxDate", "disabled", "ngModel", "code"], outputs: ["onChange", "ngModelChange", "onCheckDate"] }, { kind: "component", type: i5.TCloudUiRangeDateComponent, selector: "range-date", inputs: ["defaultValuePeriodStartStop", "required", "descriptionStart", "descriptionStop"], outputs: ["onChange"] }] }); }
|
|
457
457
|
}
|
|
458
458
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiFiltersComponent, decorators: [{
|
|
459
459
|
type: Component,
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class TCloudUiLabelTokenComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.copy = false;
|
|
7
|
+
this.value = '';
|
|
8
|
+
this.onClick = new EventEmitter();
|
|
9
|
+
this.show = false;
|
|
10
|
+
this.isCopy = false;
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
}
|
|
14
|
+
copyText() {
|
|
15
|
+
this.isCopy = true;
|
|
16
|
+
// Copy the text inside the text field
|
|
17
|
+
navigator.clipboard.writeText(this.value);
|
|
18
|
+
this.onClick.emit(this.value);
|
|
19
|
+
setTimeout(() => {
|
|
20
|
+
this.isCopy = false;
|
|
21
|
+
}, 3000);
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiLabelTokenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiLabelTokenComponent, selector: "tcloud-ui-label-token", inputs: { copy: "copy", value: "value" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<div>\r\n\r\n <div class=\"mb-2 box-area\">\r\n <table>\r\n <tr>\r\n\r\n <td class=\"area-value\">\r\n <div *ngIf=\"show\">{{ value }}</div>\r\n <div class=\"no-show\" *ngIf=\"!show\">#*#*#*#*#*#*#*#*#</div>\r\n </td>\r\n\r\n <td class=\"area-action\">\r\n <div class=\"options-area-actions\">\r\n <button type=\"button\" *ngIf=\"show\" class=\"btn-icon-smart\" (click)=\"show = !show\" ><i class=\"fas fa-eye\"></i></button>\r\n <button type=\"button\" *ngIf=\"!show\" class=\"btn-icon-smart\" (click)=\"show = !show\"><i class=\"fas fa-eye-slash\"></i></button>\r\n\r\n <ng-container *ngIf=\"copy\">\r\n <button type=\"button\" [title]=\"'Copiar texto'\" *ngIf=\"!isCopy\" class=\"btn-icon-smart\" (click)=\"copyText()\" ><i class=\"fas fa-copy\"></i></button>\r\n <button type=\"button\" [title]=\"'Texto copiado'\" *ngIf=\"isCopy\" class=\"btn-icon-smart\"><i class=\"fas fa-check\"></i></button>\r\n </ng-container>\r\n </div>\r\n </td>\r\n\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n </div>", styles: ["table{width:100%}table td.area-value{width:100%;padding:6px 10px}table td.area-value div{color:#707070;font-size:18px;line-height:0;padding-left:7px}.box-area{border:1px solid #D5CCC3;border-radius:5px;background-color:#f1f1f1}.btn-icon-smart{color:#d5ccc3;border:none;background-color:#fff;padding:6px;cursor:pointer}.no-show{filter:blur(1.5px);color:#fff;font-size:18px;line-height:0;font-weight:400}.options-area-actions{width:60px;background:#fff;border-radius:3px;text-align:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiLabelTokenComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{ selector: 'tcloud-ui-label-token', template: "<div>\r\n\r\n <div class=\"mb-2 box-area\">\r\n <table>\r\n <tr>\r\n\r\n <td class=\"area-value\">\r\n <div *ngIf=\"show\">{{ value }}</div>\r\n <div class=\"no-show\" *ngIf=\"!show\">#*#*#*#*#*#*#*#*#</div>\r\n </td>\r\n\r\n <td class=\"area-action\">\r\n <div class=\"options-area-actions\">\r\n <button type=\"button\" *ngIf=\"show\" class=\"btn-icon-smart\" (click)=\"show = !show\" ><i class=\"fas fa-eye\"></i></button>\r\n <button type=\"button\" *ngIf=\"!show\" class=\"btn-icon-smart\" (click)=\"show = !show\"><i class=\"fas fa-eye-slash\"></i></button>\r\n\r\n <ng-container *ngIf=\"copy\">\r\n <button type=\"button\" [title]=\"'Copiar texto'\" *ngIf=\"!isCopy\" class=\"btn-icon-smart\" (click)=\"copyText()\" ><i class=\"fas fa-copy\"></i></button>\r\n <button type=\"button\" [title]=\"'Texto copiado'\" *ngIf=\"isCopy\" class=\"btn-icon-smart\"><i class=\"fas fa-check\"></i></button>\r\n </ng-container>\r\n </div>\r\n </td>\r\n\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n </div>", styles: ["table{width:100%}table td.area-value{width:100%;padding:6px 10px}table td.area-value div{color:#707070;font-size:18px;line-height:0;padding-left:7px}.box-area{border:1px solid #D5CCC3;border-radius:5px;background-color:#f1f1f1}.btn-icon-smart{color:#d5ccc3;border:none;background-color:#fff;padding:6px;cursor:pointer}.no-show{filter:blur(1.5px);color:#fff;font-size:18px;line-height:0;font-weight:400}.options-area-actions{width:60px;background:#fff;border-radius:3px;text-align:center}\n"] }]
|
|
29
|
+
}], ctorParameters: function () { return []; }, propDecorators: { copy: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], value: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], onClick: [{
|
|
34
|
+
type: Output
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWxhYmVsLXRva2VuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1sYWJlbC10b2tlbi90Y2xvdWQtdWktbGFiZWwtdG9rZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWxhYmVsLXRva2VuL3RjbG91ZC11aS1sYWJlbC10b2tlbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPL0UsTUFBTSxPQUFPLDJCQUEyQjtJQVN0QztRQVBTLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUNmLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTVDLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsV0FBTSxHQUFZLEtBQUssQ0FBQztJQUVSLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsc0NBQXNDO1FBQ3ZDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVYLENBQUM7K0dBeEJVLDJCQUEyQjttR0FBM0IsMkJBQTJCLHdJQ1B4QyxzcUNBMkJROzs0RkRwQkssMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHVCQUF1QjswRUFNeEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktbGFiZWwtdG9rZW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktbGFiZWwtdG9rZW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1sYWJlbC10b2tlbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaUxhYmVsVG9rZW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBjb3B5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmFsdWU6IGFueSA9ICcnO1xyXG4gIEBPdXRwdXQoKSBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0NvcHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29weVRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzQ29weSA9IHRydWU7XHJcbiAgICAgLy8gQ29weSB0aGUgdGV4dCBpbnNpZGUgdGhlIHRleHQgZmllbGRcclxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5vbkNsaWNrLmVtaXQodGhpcy52YWx1ZSk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNDb3B5ID0gZmFsc2U7XHJcbiAgICB9LCAzMDAwKTtcclxuXHJcbiAgfVxyXG5cclxufSIsIjxkaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTIgYm94LWFyZWFcIj5cclxuICAgICAgPHRhYmxlPlxyXG4gICAgICAgIDx0cj5cclxuXHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLXZhbHVlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93XCI+e3sgdmFsdWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vLXNob3dcIiAqbmdJZj1cIiFzaG93XCI+IyojKiMqIyojKiMqIyojKiM8L2Rpdj5cclxuICAgICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1hY3Rpb25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnMtYXJlYS1hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJzaG93XCIgY2xhc3M9XCJidG4taWNvbi1zbWFydFwiICAoY2xpY2spPVwic2hvdyA9ICFzaG93XCIgPjxpIGNsYXNzPVwiZmFzIGZhLWV5ZVwiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIiFzaG93XCIgY2xhc3M9XCJidG4taWNvbi1zbWFydFwiIChjbGljayk9XCJzaG93ID0gIXNob3dcIj48aSBjbGFzcz1cImZhcyBmYS1leWUtc2xhc2hcIj48L2k+PC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb3B5XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbdGl0bGVdPVwiJ0NvcGlhciB0ZXh0bydcIiAqbmdJZj1cIiFpc0NvcHlcIiBjbGFzcz1cImJ0bi1pY29uLXNtYXJ0XCIgKGNsaWNrKT1cImNvcHlUZXh0KClcIiA+PGkgY2xhc3M9XCJmYXMgZmEtY29weVwiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFt0aXRsZV09XCInVGV4dG8gY29waWFkbydcIiAqbmdJZj1cImlzQ29weVwiIGNsYXNzPVwiYnRuLWljb24tc21hcnRcIj48aSBjbGFzcz1cImZhcyBmYS1jaGVja1wiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L3RhYmxlPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { TCloudUiLabelTokenComponent } from './tcloud-ui-label-token.component';
|
|
4
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TCloudUiLabelTokenModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiLabelTokenModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiLabelTokenModule, declarations: [TCloudUiLabelTokenComponent], imports: [CommonModule,
|
|
9
|
+
FormsModule,
|
|
10
|
+
ReactiveFormsModule], exports: [TCloudUiLabelTokenComponent] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiLabelTokenModule, imports: [CommonModule,
|
|
12
|
+
FormsModule,
|
|
13
|
+
ReactiveFormsModule] }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiLabelTokenModule, decorators: [{
|
|
16
|
+
type: NgModule,
|
|
17
|
+
args: [{
|
|
18
|
+
declarations: [
|
|
19
|
+
TCloudUiLabelTokenComponent
|
|
20
|
+
],
|
|
21
|
+
imports: [
|
|
22
|
+
CommonModule,
|
|
23
|
+
FormsModule,
|
|
24
|
+
ReactiveFormsModule
|
|
25
|
+
],
|
|
26
|
+
exports: [
|
|
27
|
+
TCloudUiLabelTokenComponent
|
|
28
|
+
]
|
|
29
|
+
}]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWxhYmVsLXRva2VuLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1sYWJlbC10b2tlbi90Y2xvdWQtdWktbGFiZWwtdG9rZW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFpQmxFLE1BQU0sT0FBTyx3QkFBd0I7K0dBQXhCLHdCQUF3QjtnSEFBeEIsd0JBQXdCLGlCQVhqQywyQkFBMkIsYUFHM0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUIsYUFHbkIsMkJBQTJCO2dIQUdsQix3QkFBd0IsWUFSakMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7OzRGQU1WLHdCQUF3QjtrQkFicEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDJCQUEyQjtxQkFDNUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUQ2xvdWRVaUxhYmVsVG9rZW5Db21wb25lbnQgfSBmcm9tICcuL3RjbG91ZC11aS1sYWJlbC10b2tlbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRDbG91ZFVpTGFiZWxUb2tlbkNvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUQ2xvdWRVaUxhYmVsVG9rZW5Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaUxhYmVsVG9rZW5Nb2R1bGUgeyB9XHJcbiJdfQ==
|