ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
111 lines • 14.6 kB
JavaScript
import { Component, ViewEncapsulation, Input, HostBinding } from '@angular/core';
import { zh_CN, en_US } from 'ng-zorro-antd-mobile/locale-provider';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "ng-zorro-antd-mobile/date-picker-view";
export class CalendarTimePickerComponent {
set propsData(value) {
this.props = {
...this.props,
...value
};
if (this.props.locale && this.props.locale.today === 'Today') {
this.props.datePickerViewLocale = en_US;
}
else {
this.props.datePickerViewLocale = zh_CN;
}
}
set title(value) {
this.props.title = value;
}
set value(value) {
this.props.value = value;
}
set prefixCls(value) {
this.props.prefixCls = value;
}
set defaultValue(value) {
this.props.defaultValue = value;
}
set pickerPrefixCls(value) {
this.props.pickerPrefixCls = value;
}
set clientHeight(value) {
this.props.clientHeight = value;
const height = (value && (value * 3) / 8 - 52) || Number.POSITIVE_INFINITY;
this.selfHeight = (height > 164 || height < 0 ? 164 : height) + 'px';
}
set onValueChange(value) {
this.props.onValueChange = value;
}
constructor() {
this.defaultProps = {
minDate: new Date(0, 0, 0, 0, 0),
maxDate: new Date(9999, 11, 31, 23, 59, 59),
defaultValue: new Date(2000, 1, 1, 8),
mode: 'time',
datePickerViewLocale: zh_CN
};
this.props = {
minDate: new Date(0, 0, 0, 0, 0),
maxDate: new Date(9999, 11, 31, 23, 59, 59),
defaultValue: new Date(2000, 1, 1, 8),
mode: 'time',
datePickerViewLocale: zh_CN
};
this.timePicker = true;
this.onDateChange = (date) => {
const { onValueChange } = this.props;
if (onValueChange) {
onValueChange(date.date);
}
};
}
getMinTime(date) {
const minDate = this.props.minDate;
if (!date ||
date.getFullYear() > minDate.getFullYear() ||
date.getMonth() > minDate.getMonth() ||
date.getDate() > minDate.getDate()) {
return this.defaultProps.minDate;
}
return minDate;
}
getMaxTime(date) {
const maxDate = this.props.maxDate;
if (!date ||
date.getFullYear() < maxDate.getFullYear() ||
date.getMonth() < maxDate.getMonth() ||
date.getDate() < maxDate.getDate()) {
return this.defaultProps.maxDate;
}
return maxDate;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CalendarTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: CalendarTimePickerComponent, selector: "CalendarTimePicker, nzm-calendar-time-picker", inputs: { propsData: "propsData", title: "title", value: "value", prefixCls: "prefixCls", defaultValue: "defaultValue", pickerPrefixCls: "pickerPrefixCls", clientHeight: "clientHeight", onValueChange: "onValueChange" }, host: { properties: { "class.time-picker": "this.timePicker" } }, ngImport: i0, template: "<div class=\"title\">{{ props.title }}</div>\n<DatePickerView\n [ngStyle]=\"{ height: selfHeight, overflow: 'hidden' }\"\n [mode]=\"props.mode\"\n [value]=\"props.value\"\n [locale]=\"props.datePickerViewLocale\"\n [minDate]=\"getMinTime(props.value || props.defaultValue || undefined)\"\n [maxDate]=\"getMaxTime(props.value || props.defaultValue || undefined)\"\n (onValueChange)=\"onDateChange($event)\"\n></DatePickerView>\n", dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.DatePickerViewComponent, selector: "DatePickerView, nzm-date-picker-view", inputs: ["mode", "minDate", "maxDate", "value", "disabled", "indicatorStyle", "locale", "showErrorToast", "showErrorToastInterval"], outputs: ["onValueChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CalendarTimePickerComponent, decorators: [{
type: Component,
args: [{ selector: 'CalendarTimePicker, nzm-calendar-time-picker', encapsulation: ViewEncapsulation.None, template: "<div class=\"title\">{{ props.title }}</div>\n<DatePickerView\n [ngStyle]=\"{ height: selfHeight, overflow: 'hidden' }\"\n [mode]=\"props.mode\"\n [value]=\"props.value\"\n [locale]=\"props.datePickerViewLocale\"\n [minDate]=\"getMinTime(props.value || props.defaultValue || undefined)\"\n [maxDate]=\"getMaxTime(props.value || props.defaultValue || undefined)\"\n (onValueChange)=\"onDateChange($event)\"\n></DatePickerView>\n" }]
}], ctorParameters: () => [], propDecorators: { propsData: [{
type: Input
}], title: [{
type: Input
}], value: [{
type: Input
}], prefixCls: [{
type: Input
}], defaultValue: [{
type: Input
}], pickerPrefixCls: [{
type: Input
}], clientHeight: [{
type: Input
}], onValueChange: [{
type: Input
}], timePicker: [{
type: HostBinding,
args: ['class.time-picker']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NhbGVuZGFyL3RpbWVwaWNrZXIvdGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NhbGVuZGFyL3RpbWVwaWNrZXIvdGltZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVFwRSxNQUFNLE9BQU8sMkJBQTJCO0lBbUJ0QyxJQUNJLFNBQVMsQ0FBQyxLQUFLO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsR0FBRyxLQUFLO1NBQ1QsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLE9BQU8sRUFBRTtZQUM1RCxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztTQUN6QzthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBQ0QsSUFDSSxLQUFLLENBQUMsS0FBSztRQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFDSSxLQUFLLENBQUMsS0FBSztRQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFDSSxTQUFTLENBQUMsS0FBSztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQ0ksWUFBWSxDQUFDLEtBQUs7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUNJLGVBQWUsQ0FBQyxLQUFLO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFDSSxZQUFZLENBQUMsS0FBSztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDaEMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUMzRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztJQUN2RSxDQUFDO0lBQ0QsSUFDSSxhQUFhLENBQUMsS0FBSztRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUtEO1FBakVBLGlCQUFZLEdBQUc7WUFDYixPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDM0MsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQyxJQUFJLEVBQUUsTUFBTTtZQUNaLG9CQUFvQixFQUFFLEtBQUs7U0FDRyxDQUFDO1FBRWpDLFVBQUssR0FBRztZQUNOLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUMzQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxNQUFNO1lBQ1osb0JBQW9CLEVBQUUsS0FBSztTQUNHLENBQUM7UUFpRGpDLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFJM0IsaUJBQVksR0FBRyxDQUFDLElBQW1DLEVBQUUsRUFBRTtZQUNyRCxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNyQyxJQUFJLGFBQWEsRUFBRTtnQkFDakIsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxQjtRQUNILENBQUMsQ0FBQTtJQVBjLENBQUM7SUFTaEIsVUFBVSxDQUFDLElBQVc7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFlLENBQUM7UUFDM0MsSUFDRSxDQUFDLElBQUk7WUFDTCxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUMxQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUNsQztZQUNBLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7U0FDbEM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVc7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFlLENBQUM7UUFDM0MsSUFDRSxDQUFDLElBQUk7WUFDTCxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUMxQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUNsQztZQUNBLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7U0FDbEM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzhHQW5HVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixrWENUeEMsb2JBVUE7OzJGRERhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSw4Q0FBOEMsaUJBRXpDLGlCQUFpQixDQUFDLElBQUk7d0RBc0JqQyxTQUFTO3NCQURaLEtBQUs7Z0JBY0YsS0FBSztzQkFEUixLQUFLO2dCQUtGLEtBQUs7c0JBRFIsS0FBSztnQkFLRixTQUFTO3NCQURaLEtBQUs7Z0JBS0YsWUFBWTtzQkFEZixLQUFLO2dCQUtGLGVBQWU7c0JBRGxCLEtBQUs7Z0JBS0YsWUFBWTtzQkFEZixLQUFLO2dCQU9GLGFBQWE7c0JBRGhCLEtBQUs7Z0JBTU4sVUFBVTtzQkFEVCxXQUFXO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgemhfQ04sIGVuX1VTIH0gZnJvbSAnbmctem9ycm8tYW50ZC1tb2JpbGUvbG9jYWxlLXByb3ZpZGVyJztcbmltcG9ydCB7IENhbGVuZGFyVGltZVBpY2tlclByb3BzVHlwZSB9IGZyb20gJy4vUHJvcHNUeXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnQ2FsZW5kYXJUaW1lUGlja2VyLCBuem0tY2FsZW5kYXItdGltZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJUaW1lUGlja2VyQ29tcG9uZW50IHtcbiAgZGVmYXVsdFByb3BzID0ge1xuICAgIG1pbkRhdGU6IG5ldyBEYXRlKDAsIDAsIDAsIDAsIDApLFxuICAgIG1heERhdGU6IG5ldyBEYXRlKDk5OTksIDExLCAzMSwgMjMsIDU5LCA1OSksXG4gICAgZGVmYXVsdFZhbHVlOiBuZXcgRGF0ZSgyMDAwLCAxLCAxLCA4KSxcbiAgICBtb2RlOiAndGltZScsXG4gICAgZGF0ZVBpY2tlclZpZXdMb2NhbGU6IHpoX0NOXG4gIH0gYXMgQ2FsZW5kYXJUaW1lUGlja2VyUHJvcHNUeXBlO1xuXG4gIHByb3BzID0ge1xuICAgIG1pbkRhdGU6IG5ldyBEYXRlKDAsIDAsIDAsIDAsIDApLFxuICAgIG1heERhdGU6IG5ldyBEYXRlKDk5OTksIDExLCAzMSwgMjMsIDU5LCA1OSksXG4gICAgZGVmYXVsdFZhbHVlOiBuZXcgRGF0ZSgyMDAwLCAxLCAxLCA4KSxcbiAgICBtb2RlOiAndGltZScsXG4gICAgZGF0ZVBpY2tlclZpZXdMb2NhbGU6IHpoX0NOXG4gIH0gYXMgQ2FsZW5kYXJUaW1lUGlja2VyUHJvcHNUeXBlO1xuXG4gIHNlbGZIZWlnaHQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBzZXQgcHJvcHNEYXRhKHZhbHVlKSB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICAuLi52YWx1ZVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5wcm9wcy5sb2NhbGUgJiYgdGhpcy5wcm9wcy5sb2NhbGUudG9kYXkgPT09ICdUb2RheScpIHtcbiAgICAgIHRoaXMucHJvcHMuZGF0ZVBpY2tlclZpZXdMb2NhbGUgPSBlbl9VUztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9wcy5kYXRlUGlja2VyVmlld0xvY2FsZSA9IHpoX0NOO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKVxuICBzZXQgdGl0bGUodmFsdWUpIHtcbiAgICB0aGlzLnByb3BzLnRpdGxlID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy5wcm9wcy52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBwcmVmaXhDbHModmFsdWUpIHtcbiAgICB0aGlzLnByb3BzLnByZWZpeENscyA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBkZWZhdWx0VmFsdWUodmFsdWUpIHtcbiAgICB0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZSA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBwaWNrZXJQcmVmaXhDbHModmFsdWUpIHtcbiAgICB0aGlzLnByb3BzLnBpY2tlclByZWZpeENscyA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBjbGllbnRIZWlnaHQodmFsdWUpIHtcbiAgICB0aGlzLnByb3BzLmNsaWVudEhlaWdodCA9IHZhbHVlO1xuICAgIGNvbnN0IGhlaWdodCA9ICh2YWx1ZSAmJiAodmFsdWUgKiAzKSAvIDggLSA1MikgfHwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgIHRoaXMuc2VsZkhlaWdodCA9IChoZWlnaHQgPiAxNjQgfHwgaGVpZ2h0IDwgMCA/IDE2NCA6IGhlaWdodCkgKyAncHgnO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBvblZhbHVlQ2hhbmdlKHZhbHVlKSB7XG4gICAgdGhpcy5wcm9wcy5vblZhbHVlQ2hhbmdlID0gdmFsdWU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRpbWUtcGlja2VyJylcbiAgdGltZVBpY2tlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG9uRGF0ZUNoYW5nZSA9IChkYXRlOiB7IGRhdGU6IERhdGU7IGluZGV4OiBudW1iZXIgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25WYWx1ZUNoYW5nZSB9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAob25WYWx1ZUNoYW5nZSkge1xuICAgICAgb25WYWx1ZUNoYW5nZShkYXRlLmRhdGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldE1pblRpbWUoZGF0ZT86IERhdGUpIHtcbiAgICBjb25zdCBtaW5EYXRlID0gdGhpcy5wcm9wcy5taW5EYXRlIGFzIERhdGU7XG4gICAgaWYgKFxuICAgICAgIWRhdGUgfHxcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA+IG1pbkRhdGUuZ2V0RnVsbFllYXIoKSB8fFxuICAgICAgZGF0ZS5nZXRNb250aCgpID4gbWluRGF0ZS5nZXRNb250aCgpIHx8XG4gICAgICBkYXRlLmdldERhdGUoKSA+IG1pbkRhdGUuZ2V0RGF0ZSgpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UHJvcHMubWluRGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIG1pbkRhdGU7XG4gIH1cblxuICBnZXRNYXhUaW1lKGRhdGU/OiBEYXRlKSB7XG4gICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMucHJvcHMubWF4RGF0ZSBhcyBEYXRlO1xuICAgIGlmIChcbiAgICAgICFkYXRlIHx8XG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCkgPCBtYXhEYXRlLmdldEZ1bGxZZWFyKCkgfHxcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSA8IG1heERhdGUuZ2V0TW9udGgoKSB8fFxuICAgICAgZGF0ZS5nZXREYXRlKCkgPCBtYXhEYXRlLmdldERhdGUoKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFByb3BzLm1heERhdGU7XG4gICAgfVxuICAgIHJldHVybiBtYXhEYXRlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGl0bGVcIj57eyBwcm9wcy50aXRsZSB9fTwvZGl2PlxuPERhdGVQaWNrZXJWaWV3XG4gIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBzZWxmSGVpZ2h0LCBvdmVyZmxvdzogJ2hpZGRlbicgfVwiXG4gIFttb2RlXT1cInByb3BzLm1vZGVcIlxuICBbdmFsdWVdPVwicHJvcHMudmFsdWVcIlxuICBbbG9jYWxlXT1cInByb3BzLmRhdGVQaWNrZXJWaWV3TG9jYWxlXCJcbiAgW21pbkRhdGVdPVwiZ2V0TWluVGltZShwcm9wcy52YWx1ZSB8fCBwcm9wcy5kZWZhdWx0VmFsdWUgfHwgdW5kZWZpbmVkKVwiXG4gIFttYXhEYXRlXT1cImdldE1heFRpbWUocHJvcHMudmFsdWUgfHwgcHJvcHMuZGVmYXVsdFZhbHVlIHx8IHVuZGVmaW5lZClcIlxuICAob25WYWx1ZUNoYW5nZSk9XCJvbkRhdGVDaGFuZ2UoJGV2ZW50KVwiXG4+PC9EYXRlUGlja2VyVmlldz5cbiJdfQ==