@noaestudio/forms
Version:
Dynamic forms extension for Covalent
131 lines (130 loc) • 15.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Component, Input, Output, EventEmitter } from '@angular/core';
import * as moment_ from 'moment';
var /** @type {?} */ moment = moment_;
var InnerDateTimePickerComponent = /** @class */ (function () {
function InnerDateTimePickerComponent() {
this.label = '';
this.type = undefined;
this.required = undefined;
this.min = undefined;
this.max = undefined;
this.format = 24;
this.dateTime = null;
this.dateValue = null;
this.timeValue = '';
this.myModel = null;
this.myModelChange = new EventEmitter();
}
/**
* @return {?}
*/
InnerDateTimePickerComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
if (this.myModel) {
this.dateTime = this.myModel;
this.initValues();
}
else {
this.dateTime = null;
this.myModelChange.emit(this.dateTime);
}
};
/**
* @return {?}
*/
InnerDateTimePickerComponent.prototype.initValues = /**
* @return {?}
*/
function () {
this.dateValue = moment.utc(this.dateTime.clone());
this.timeValue = this.dateTime.format('HH:mm');
};
/**
* @param {?} value
* @return {?}
*/
InnerDateTimePickerComponent.prototype.selectDateValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
if (this.dateTime == null) {
this.dateTime = moment.utc();
}
this.dateTime.year(value.year()).month(value.month()).date(value.date());
this.myModelChange.emit(this.dateTime);
};
/**
* @param {?} value
* @return {?}
*/
InnerDateTimePickerComponent.prototype.selectTimeValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
var /** @type {?} */ timeMoment = moment.utc(this.timeValue, 'HH:mm');
if (this.dateTime == null) {
this.dateTime = moment.utc();
}
this.dateTime.hour(timeMoment.hour()).minute(timeMoment.minute()).second(timeMoment.second());
this.myModelChange.emit(this.dateTime);
};
InnerDateTimePickerComponent.decorators = [
{ type: Component, args: [{
selector: 'date-time-picker',
styles: [".td-dynamic-timepicker-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-timepicker-wrapper .td-dynamic-timepicker-field{-ms-flex:1;flex:1;box-sizing:border-box}.td-dynamic-datepicker-wrapper /deep/ .timeInput,.td-dynamic-datepicker-wrapper /deep/ .timeLabel{font-size:14px!important;background:0 0!important}.td-dynamic-datepicker-wrapper /deep/ .timeLabel{margin-bottom:0}.td-dynamic-datepicker-wrapper /deep/ .mat-icon-button{width:20px;height:20px}.td-dynamic-datepicker-wrapper /deep/ button.mat-icon-button,.td-dynamic-datepicker-wrapper /deep/ button.ngx-material-timepicker-toggle{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);border-radius:3px!important}.td-dynamic-datepicker-wrapper /deep/ .timeIcon .ngx-material-timepicker-toggle{margin-left:-22px;margin-bottom:8px;padding:3px}.td-dynamic-datepicker-wrapper /deep/ button svg{width:15px!important;height:15px!important}"],
template: "<style>\n\n.timeLabel {\n\tdisplay: block;\n\tmargin-bottom: 5px;\n\tcolor: rgba(0, 0, 0, 0.54);\n\tfont-size: 11px;\n}\n\n.timeInput {\n\tborder: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.54);\n width: 201px;\n}\n\n.timeIcon {\n\tdisplay: inline-flex;\n\tvertical-align: middle;\n}\n\n</style>\n\n<div class=\"td-dynamic-datepicker-wrapper\">\n\t<label>{{label}}</label>\n\n\t<mat-form-field class=\"td-dynamic-datepicker-field\">\n\t\t<input #elementInput matInput [matDatepicker]=\"dynamicDatePicker\" autocomplete=\"off\"\n\t\t\t[(ngModel)]=\"dateValue\" (ngModelChange)=\"selectDateValue($event)\"\n\t\t\tplaceholder=\"Fecha\" [required]=\"required\" [min]=\"min\" [max]=\"max\"\n\t\t/>\n\t\t<mat-datepicker-toggle matSuffix [for]=\"dynamicDatePicker\"></mat-datepicker-toggle>\n\t\t<mat-datepicker #dynamicDatePicker></mat-datepicker>\n\n\t</mat-form-field>\n\n\t<div>\n\t\t<div>\n\t\t\t<label class=\"timeLabel\">Hora</label>\n\t\t\t<input class=\"timeInput\" [ngxTimepicker]=\"pickerDT\" [(ngModel)]=\"timeValue\" (ngModelChange)=\"selectTimeValue($event)\"\n\t\t\t\t[disableClick]=\"true\" readonly [format]=\"format\" [required]=\"required\" autocomplete=\"off\"/>\n\t\t\t<ngx-material-timepicker-toggle class=\"timeIcon\" [for]=\"pickerDT\"></ngx-material-timepicker-toggle>\n\t\t\t<ngx-material-timepicker #pickerDT></ngx-material-timepicker>\n\t\t</div>\n\t</div>\n\n</div>\n",
},] },
];
/** @nocollapse */
InnerDateTimePickerComponent.ctorParameters = function () { return []; };
InnerDateTimePickerComponent.propDecorators = {
"min": [{ type: Input },],
"max": [{ type: Input },],
"myModel": [{ type: Input },],
"myModelChange": [{ type: Output },],
};
return InnerDateTimePickerComponent;
}());
export { InnerDateTimePickerComponent };
function InnerDateTimePickerComponent_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
InnerDateTimePickerComponent.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
InnerDateTimePickerComponent.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
InnerDateTimePickerComponent.propDecorators;
/** @type {?} */
InnerDateTimePickerComponent.prototype.label;
/** @type {?} */
InnerDateTimePickerComponent.prototype.type;
/** @type {?} */
InnerDateTimePickerComponent.prototype.required;
/** @type {?} */
InnerDateTimePickerComponent.prototype.min;
/** @type {?} */
InnerDateTimePickerComponent.prototype.max;
/** @type {?} */
InnerDateTimePickerComponent.prototype.format;
/** @type {?} */
InnerDateTimePickerComponent.prototype.dateTime;
/** @type {?} */
InnerDateTimePickerComponent.prototype.dateValue;
/** @type {?} */
InnerDateTimePickerComponent.prototype.timeValue;
/** @type {?} */
InnerDateTimePickerComponent.prototype.myModel;
/** @type {?} */
InnerDateTimePickerComponent.prototype.myModelChange;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY292YWxlbnQvZHluYW1pYy1mb3Jtcy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZGF0ZS10aW1lLXBpY2tlci9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl2RSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxxQkFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDOzs7cUJBdUROLEVBQUU7b0JBRUgsU0FBUzt3QkFFSixTQUFTO21CQUdmLFNBQVM7bUJBR1QsU0FBUztzQkFFTCxFQUFFO3dCQUVELElBQUk7eUJBRUYsSUFBSTt5QkFDSixFQUFFO3VCQUVLLElBQUk7NkJBQ2lCLElBQUksWUFBWSxFQUFVOzs7OztJQUUzRSwrQ0FBUTs7O0lBQVI7UUFDQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLENBQUM7WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkM7S0FFRDs7OztJQUVPLGlEQUFVOzs7O1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzs7Ozs7O0lBR2hELHNEQUFlOzs7O0lBQWYsVUFBZ0IsS0FBYTtRQUM1QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN2Qzs7Ozs7SUFFRCxzREFBZTs7OztJQUFmLFVBQWdCLEtBQWM7UUFDN0IscUJBQUksVUFBVSxHQUFZLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUU3RCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRTlGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN2Qzs7Z0JBaEhELFNBQVMsU0FBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixNQUFNLEVBQUUsQ0FBQywyK0JBQTIrQixDQUFDO29CQUNyL0IsUUFBUSxFQUFFLDIzQ0E4Q1Y7aUJBQ0E7Ozs7O3dCQVNDLEtBQUs7d0JBR0wsS0FBSzs0QkFVTCxLQUFLO2tDQUNMLE1BQU07O3VDQWhGUjs7U0EwRGEsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2RhdGUtdGltZS1waWNrZXInLFxyXG5cdHN0eWxlczogW2AudGQtZHluYW1pYy10aW1lcGlja2VyLXdyYXBwZXJ7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Ym94LXNpemluZzpib3JkZXItYm94fS50ZC1keW5hbWljLXRpbWVwaWNrZXItd3JhcHBlciAudGQtZHluYW1pYy10aW1lcGlja2VyLWZpZWxkey1tcy1mbGV4OjE7ZmxleDoxO2JveC1zaXppbmc6Ym9yZGVyLWJveH0udGQtZHluYW1pYy1kYXRlcGlja2VyLXdyYXBwZXIgL2RlZXAvIC50aW1lSW5wdXQsLnRkLWR5bmFtaWMtZGF0ZXBpY2tlci13cmFwcGVyIC9kZWVwLyAudGltZUxhYmVse2ZvbnQtc2l6ZToxNHB4IWltcG9ydGFudDtiYWNrZ3JvdW5kOjAgMCFpbXBvcnRhbnR9LnRkLWR5bmFtaWMtZGF0ZXBpY2tlci13cmFwcGVyIC9kZWVwLyAudGltZUxhYmVse21hcmdpbi1ib3R0b206MH0udGQtZHluYW1pYy1kYXRlcGlja2VyLXdyYXBwZXIgL2RlZXAvIC5tYXQtaWNvbi1idXR0b257d2lkdGg6MjBweDtoZWlnaHQ6MjBweH0udGQtZHluYW1pYy1kYXRlcGlja2VyLXdyYXBwZXIgL2RlZXAvIGJ1dHRvbi5tYXQtaWNvbi1idXR0b24sLnRkLWR5bmFtaWMtZGF0ZXBpY2tlci13cmFwcGVyIC9kZWVwLyBidXR0b24ubmd4LW1hdGVyaWFsLXRpbWVwaWNrZXItdG9nZ2xle2JveC1zaGFkb3c6MCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjEyKTtib3JkZXItcmFkaXVzOjNweCFpbXBvcnRhbnR9LnRkLWR5bmFtaWMtZGF0ZXBpY2tlci13cmFwcGVyIC9kZWVwLyAudGltZUljb24gLm5neC1tYXRlcmlhbC10aW1lcGlja2VyLXRvZ2dsZXttYXJnaW4tbGVmdDotMjJweDttYXJnaW4tYm90dG9tOjhweDtwYWRkaW5nOjNweH0udGQtZHluYW1pYy1kYXRlcGlja2VyLXdyYXBwZXIgL2RlZXAvIGJ1dHRvbiBzdmd7d2lkdGg6MTVweCFpbXBvcnRhbnQ7aGVpZ2h0OjE1cHghaW1wb3J0YW50fWBdLFxyXG5cdHRlbXBsYXRlOiBgPHN0eWxlPlxyXG5cclxuLnRpbWVMYWJlbCB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0bWFyZ2luLWJvdHRvbTogNXB4O1xyXG5cdGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xyXG5cdGZvbnQtc2l6ZTogMTFweDtcclxufVxyXG5cclxuLnRpbWVJbnB1dCB7XHJcblx0Ym9yZGVyOiBub25lO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XHJcbiAgICB3aWR0aDogMjAxcHg7XHJcbn1cclxuXHJcbi50aW1lSWNvbiB7XHJcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XHJcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuPC9zdHlsZT5cclxuXHJcbjxkaXYgY2xhc3M9XCJ0ZC1keW5hbWljLWRhdGVwaWNrZXItd3JhcHBlclwiPlxyXG5cdDxsYWJlbD57e2xhYmVsfX08L2xhYmVsPlxyXG5cclxuXHQ8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ0ZC1keW5hbWljLWRhdGVwaWNrZXItZmllbGRcIj5cclxuXHRcdDxpbnB1dCAjZWxlbWVudElucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cImR5bmFtaWNEYXRlUGlja2VyXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuXHRcdFx0WyhuZ01vZGVsKV09XCJkYXRlVmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3REYXRlVmFsdWUoJGV2ZW50KVwiXHJcblx0XHRcdHBsYWNlaG9sZGVyPVwiRmVjaGFcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbbWluXT1cIm1pblwiIFttYXhdPVwibWF4XCJcclxuXHRcdC8+XHJcblx0XHQ8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImR5bmFtaWNEYXRlUGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcblx0XHQ8bWF0LWRhdGVwaWNrZXIgI2R5bmFtaWNEYXRlUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XHJcblxyXG5cdDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG5cdDxkaXY+XHJcblx0XHQ8ZGl2PlxyXG5cdFx0XHQ8bGFiZWwgY2xhc3M9XCJ0aW1lTGFiZWxcIj5Ib3JhPC9sYWJlbD5cclxuXHRcdFx0PGlucHV0IGNsYXNzPVwidGltZUlucHV0XCIgW25neFRpbWVwaWNrZXJdPVwicGlja2VyRFRcIiBbKG5nTW9kZWwpXT1cInRpbWVWYWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdFRpbWVWYWx1ZSgkZXZlbnQpXCJcclxuXHRcdFx0XHRbZGlzYWJsZUNsaWNrXT1cInRydWVcIiByZWFkb25seSBbZm9ybWF0XT1cImZvcm1hdFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiLz5cclxuXHRcdFx0PG5neC1tYXRlcmlhbC10aW1lcGlja2VyLXRvZ2dsZSBjbGFzcz1cInRpbWVJY29uXCIgW2Zvcl09XCJwaWNrZXJEVFwiPjwvbmd4LW1hdGVyaWFsLXRpbWVwaWNrZXItdG9nZ2xlPlxyXG5cdFx0XHQ8bmd4LW1hdGVyaWFsLXRpbWVwaWNrZXIgI3BpY2tlckRUPjwvbmd4LW1hdGVyaWFsLXRpbWVwaWNrZXI+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5uZXJEYXRlVGltZVBpY2tlckNvbXBvbmVudCB7XHJcblxyXG5cdGxhYmVsOiBzdHJpbmcgPSAnJztcclxuXHJcblx0dHlwZTogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG5cclxuXHRyZXF1aXJlZDogYm9vbGVhbiA9IHVuZGVmaW5lZDtcclxuXHJcblx0QElucHV0KClcclxuXHRtaW46IG51bWJlciA9IHVuZGVmaW5lZDtcclxuXHJcblx0QElucHV0KClcclxuXHRtYXg6IG51bWJlciA9IHVuZGVmaW5lZDtcclxuXHJcblx0Zm9ybWF0IDogbnVtYmVyID0gMjQ7XHJcblxyXG5cdGRhdGVUaW1lOiBNb21lbnQgPSBudWxsO1xyXG5cclxuXHRkYXRlVmFsdWUgOiBNb21lbnQgPSBudWxsO1xyXG5cdHRpbWVWYWx1ZSA6IHN0cmluZyA9ICcnO1xyXG5cclxuXHRASW5wdXQoKSBteU1vZGVsIDogTW9tZW50ID0gbnVsbDtcclxuXHRAT3V0cHV0KCkgbXlNb2RlbENoYW5nZSA6IEV2ZW50RW1pdHRlcjxNb21lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb21lbnQ+KCk7XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0aWYgKHRoaXMubXlNb2RlbCkge1xyXG5cdFx0XHR0aGlzLmRhdGVUaW1lID0gdGhpcy5teU1vZGVsO1xyXG5cdFx0XHR0aGlzLmluaXRWYWx1ZXMoKTtcclxuXHRcdH1cclxuXHRcdGVsc2Uge1xyXG5cdFx0XHR0aGlzLmRhdGVUaW1lID0gbnVsbDtcclxuXHRcdFx0dGhpcy5teU1vZGVsQ2hhbmdlLmVtaXQodGhpcy5kYXRlVGltZSk7XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpbml0VmFsdWVzKCkge1xyXG5cdFx0dGhpcy5kYXRlVmFsdWUgPSBtb21lbnQudXRjKHRoaXMuZGF0ZVRpbWUuY2xvbmUoKSk7XHJcblx0XHR0aGlzLnRpbWVWYWx1ZSA9IHRoaXMuZGF0ZVRpbWUuZm9ybWF0KCdISDptbScpO1xyXG5cdH1cclxuXHJcblx0c2VsZWN0RGF0ZVZhbHVlKHZhbHVlOiBNb21lbnQpIHtcclxuXHRcdGlmICh0aGlzLmRhdGVUaW1lID09IG51bGwpIHtcclxuXHRcdFx0dGhpcy5kYXRlVGltZSA9IG1vbWVudC51dGMoKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmRhdGVUaW1lLnllYXIodmFsdWUueWVhcigpKS5tb250aCh2YWx1ZS5tb250aCgpKS5kYXRlKHZhbHVlLmRhdGUoKSk7XHJcblxyXG5cdFx0dGhpcy5teU1vZGVsQ2hhbmdlLmVtaXQodGhpcy5kYXRlVGltZSk7XHJcblx0fVxyXG5cclxuXHRzZWxlY3RUaW1lVmFsdWUodmFsdWUgOiBzdHJpbmcpIHtcclxuXHRcdGxldCB0aW1lTW9tZW50IDogTW9tZW50ID0gbW9tZW50LnV0Yyh0aGlzLnRpbWVWYWx1ZSwnSEg6bW0nKTtcclxuXHJcblx0XHRpZiAodGhpcy5kYXRlVGltZSA9PSBudWxsKSB7XHJcblx0XHRcdHRoaXMuZGF0ZVRpbWUgPSBtb21lbnQudXRjKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5kYXRlVGltZS5ob3VyKHRpbWVNb21lbnQuaG91cigpKS5taW51dGUodGltZU1vbWVudC5taW51dGUoKSkuc2Vjb25kKHRpbWVNb21lbnQuc2Vjb25kKCkpO1xyXG5cclxuXHRcdHRoaXMubXlNb2RlbENoYW5nZS5lbWl0KHRoaXMuZGF0ZVRpbWUpO1xyXG5cdH1cclxuXHJcbn1cclxuIl19