UNPKG

@grapecity/inputman.angular

Version:

このパッケージには、Angular用の[InputManJS](https://developer.mescius.jp/inputmanjs)コンポーネントが含まれます。

184 lines 21.1 kB
import { __decorate, __metadata } from "tslib"; import { Component, ElementRef, Input, Output, EventEmitter, forwardRef } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { GC } from '../inputman'; import { Property } from '../common'; import { provideParent } from './GcComponents'; import { GcInputManBaseComponent } from './GcInputManBase'; import * as i0 from "@angular/core"; export class GcDateTimeComponent extends GcInputManBaseComponent { constructor(ref) { super(ref); this.onChange = () => { }; this.onTouched = () => { }; this.onSpinDown = new EventEmitter(); this.onSpinUp = new EventEmitter(); this.onInvalidRange = new EventEmitter(); this.onInvalidValue = new EventEmitter(); this.onNumberChanged = new EventEmitter(); this.onValueChanged = new EventEmitter(); // For V2.1 Compatibility, we have to keep this property or event this.numberChange = new EventEmitter(); this.valueChange = new EventEmitter(); } writeValue(value) { this.value = value; if (this._imCtrl) { this._imCtrl.value = this.value; } } registerOnChange(onChange) { this.onChange = onChange; } registerOnTouched(onTouched) { this.onTouched = onTouched; } setDisabledState(isDisabled) { this.enabled = !isDisabled; if (this._imCtrl) { this._imCtrl.enabled = this.enabled; } } initGcComponent() { var element = document.createElement('input'); this.createTemplate(element); this._imCtrl = new GC.InputMan.GcDateTime(element, this); } bindEvent() { if (!this._imCtrl) { return; } super.bindEvent(); this._imCtrl.onSpinDown((s) => { this.onSpinDown.emit(s); }); this._imCtrl.onSpinUp((s) => { this.onSpinUp.emit(s); }); this._imCtrl.onInvalidRange((s) => { this.onInvalidRange.emit(s); }); this._imCtrl.onInvalidValue((s) => { this.onInvalidValue.emit(s); }); this._imCtrl.onNumberChanged((s) => { this.onNumberChanged.emit(s); this.numberChange.emit(s.getNumber()); }); this._imCtrl.onValueChanged((s) => { this.onValueChanged.emit(s); this.onChange(s.getValue()); this.onTouched(); this.valueChange.emit(s.getValue()); }); } } GcDateTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcDateTimeComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); GcDateTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GcDateTimeComponent, selector: "gc-datetime", inputs: { acceptsCrlf: "acceptsCrlf", autoConvert: "autoConvert", text: "text", number: "number", maxDate: "maxDate", minDate: "minDate", formatPattern: "formatPattern", spinIncrement: "spinIncrement", spinOnKeys: "spinOnKeys", spinWrap: "spinWrap", allowSpin: "allowSpin", spinWheel: "spinWheel", displayFormatPattern: "displayFormatPattern", watermarkEmptyEraText: "watermarkEmptyEraText", promptChar: "promptChar", AMDesignator: "AMDesignator", PMDesignator: "PMDesignator", twoDigitYearMax: "twoDigitYearMax", hour12Mode: "hour12Mode", tabAction: "tabAction", maxMinBehavior: "maxMinBehavior", midnightAs24: "midnightAs24", showLiterals: "showLiterals", adjustValueOnFocus: "adjustValueOnFocus", useTwoDigitYearMax: "useTwoDigitYearMax", validateMode: "validateMode", clipContent: "clipContent", value: "value", watermarkDisplayEmptyEraText: "watermarkDisplayEmptyEraText", dropDownConfig: "dropDownConfig", exitOnLastChar: "exitOnLastChar", highlightText: "highlightText", showSpinButton: "showSpinButton", spinButtonPosition: "spinButtonPosition", showDropDownButton: "showDropDownButton", dropDownButtonAlignment: "dropDownButtonAlignment" }, outputs: { onSpinDown: "onSpinDown", onSpinUp: "onSpinUp", onInvalidRange: "onInvalidRange", onInvalidValue: "onInvalidValue", onNumberChanged: "onNumberChanged", onValueChanged: "onValueChanged", numberChange: "numberChange", valueChange: "valueChange" }, providers: [ provideParent(GcDateTimeComponent), { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GcDateTimeComponent), } ], usesInheritance: true, ngImport: i0, template: ``, isInline: true }); __decorate([ Property("", "", false, false), __metadata("design:type", Number) ], GcDateTimeComponent.prototype, "number", void 0); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcDateTimeComponent, decorators: [{ type: Component, args: [{ selector: 'gc-datetime', template: ``, providers: [ provideParent(GcDateTimeComponent), { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GcDateTimeComponent), } ] }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { acceptsCrlf: [{ type: Input }], autoConvert: [{ type: Input }], text: [{ type: Input }], number: [{ type: Input }], maxDate: [{ type: Input }], minDate: [{ type: Input }], formatPattern: [{ type: Input }], spinIncrement: [{ type: Input }], spinOnKeys: [{ type: Input }], spinWrap: [{ type: Input }], allowSpin: [{ type: Input }], spinWheel: [{ type: Input }], displayFormatPattern: [{ type: Input }], watermarkEmptyEraText: [{ type: Input }], promptChar: [{ type: Input }], AMDesignator: [{ type: Input }], PMDesignator: [{ type: Input }], twoDigitYearMax: [{ type: Input }], hour12Mode: [{ type: Input }], tabAction: [{ type: Input }], maxMinBehavior: [{ type: Input }], midnightAs24: [{ type: Input }], showLiterals: [{ type: Input }], adjustValueOnFocus: [{ type: Input }], useTwoDigitYearMax: [{ type: Input }], validateMode: [{ type: Input }], clipContent: [{ type: Input }], value: [{ type: Input }], watermarkDisplayEmptyEraText: [{ type: Input }], dropDownConfig: [{ type: Input }], exitOnLastChar: [{ type: Input }], highlightText: [{ type: Input }], showSpinButton: [{ type: Input }], spinButtonPosition: [{ type: Input }], showDropDownButton: [{ type: Input }], dropDownButtonAlignment: [{ type: Input }], onSpinDown: [{ type: Output }], onSpinUp: [{ type: Output }], onInvalidRange: [{ type: Output }], onInvalidValue: [{ type: Output }], onNumberChanged: [{ type: Output }], onValueChanged: [{ type: Output }], numberChange: [{ type: Output }], valueChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2NEYXRlVGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvR2NEYXRlVGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQWMzRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQStDO0lBQ3BGLFlBQVksR0FBZTtRQUN2QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFHUCxhQUFRLEdBQWEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLGNBQVMsR0FBYSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFxR2pDLGVBQVUsR0FBeUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RSxhQUFRLEdBQXlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEUsbUJBQWMsR0FBeUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxRSxtQkFBYyxHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFFLG9CQUFlLEdBQXlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0UsbUJBQWMsR0FBeUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRixpRUFBaUU7UUFFMUQsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4RCxnQkFBVyxHQUF1QixJQUFJLFlBQVks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ZixLQUFLO2dCQUdDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsS0FBSztnQkFHQyxZQUFZO3NCQURsQixLQUFLO2dCQUdDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFHQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsS0FBSztnQkFHQyxXQUFXO3NCQURqQixLQUFLO2dCQUdDLEtBQUs7c0JBRFgsS0FBSztnQkFHQyw0QkFBNEI7c0JBRGxDLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxjQUFjO3NCQURwQixLQUFLO2dCQUdDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBR0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQUdDLHVCQUF1QjtzQkFEN0IsS0FBSztnQkFHQyxVQUFVO3NCQURoQixNQUFNO2dCQUdBLFFBQVE7c0JBRGQsTUFBTTtnQkFHQSxjQUFjO3NCQURwQixNQUFNO2dCQUdBLGNBQWM7c0JBRHBCLE1BQU07Z0JBR0EsZUFBZTtzQkFEckIsTUFBTTtnQkFHQSxjQUFjO3NCQURwQixNQUFNO2dCQUlBLFlBQVk7c0JBRGxCLE1BQU07Z0JBR0EsV0FBVztzQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBHQyB9IGZyb20gJy4uL2lucHV0bWFuJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IHByb3ZpZGVQYXJlbnQgfSBmcm9tICcuL0djQ29tcG9uZW50cyc7XG5pbXBvcnQgeyBHY0lucHV0TWFuQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vR2NJbnB1dE1hbkJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2djLWRhdGV0aW1lJyxcbiAgICB0ZW1wbGF0ZTogYGAsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVQYXJlbnQoR2NEYXRlVGltZUNvbXBvbmVudCksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHY0RhdGVUaW1lQ29tcG9uZW50KSxcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgR2NEYXRlVGltZUNvbXBvbmVudCBleHRlbmRzIEdjSW5wdXRNYW5CYXNlQ29tcG9uZW50PEdDLklucHV0TWFuLkdjRGF0ZVRpbWU+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIGNvbnN0cnVjdG9yKHJlZjogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcihyZWYpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9pbUN0cmwpIHtcbiAgICAgICAgICAgIHRoaXMuX2ltQ3RybC52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgICB9XG4gICAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmVuYWJsZWQgPSAhaXNEaXNhYmxlZDtcbiAgICAgICAgaWYgKHRoaXMuX2ltQ3RybCkge1xuICAgICAgICAgICAgdGhpcy5faW1DdHJsLmVuYWJsZWQgPSB0aGlzLmVuYWJsZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdEdjQ29tcG9uZW50KCkge1xuICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIHRoaXMuY3JlYXRlVGVtcGxhdGUoZWxlbWVudCk7XG4gICAgICAgIHRoaXMuX2ltQ3RybCA9IG5ldyBHQy5JbnB1dE1hbi5HY0RhdGVUaW1lKGVsZW1lbnQsIHRoaXMgYXMgYW55KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhY2NlcHRzQ3JsZjogR0MuSW5wdXRNYW4uQ3JMZk1vZGU7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXV0b0NvbnZlcnQ6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGV4dDogc3RyaW5nIHwgbnVsbDtcbiAgICBAUHJvcGVydHkoXCJcIiwgXCJcIiwgZmFsc2UsIGZhbHNlKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG51bWJlcjogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heERhdGU6IERhdGUgfCBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1pbkRhdGU6IERhdGUgfCBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1hdFBhdHRlcm46IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3BpbkluY3JlbWVudDogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNwaW5PbktleXM6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3BpbldyYXA6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dTcGluOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNwaW5XaGVlbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5Rm9ybWF0UGF0dGVybjogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3YXRlcm1hcmtFbXB0eUVyYVRleHQ6IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcHJvbXB0Q2hhcjogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBBTURlc2lnbmF0b3I6IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgUE1EZXNpZ25hdG9yOiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHR3b0RpZ2l0WWVhck1heDogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhvdXIxMk1vZGU6IEdDLklucHV0TWFuLkhvdXIxMk1vZGU7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFiQWN0aW9uOiBHQy5JbnB1dE1hbi5UYWJBY3Rpb247XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4TWluQmVoYXZpb3I6IEdDLklucHV0TWFuLk1heE1pbkJlaGF2aW9yO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1pZG5pZ2h0QXMyNDogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93TGl0ZXJhbHM6IEdDLklucHV0TWFuLlNob3dMaXRlcmFscztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhZGp1c3RWYWx1ZU9uRm9jdXM6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdXNlVHdvRGlnaXRZZWFyTWF4OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbGlkYXRlTW9kZTogR0MuSW5wdXRNYW4uVmFsaWRhdGVNb2RlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsaXBDb250ZW50OiBHQy5JbnB1dE1hbi5DbGlwQ29udGVudDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZTogRGF0ZSB8IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3YXRlcm1hcmtEaXNwbGF5RW1wdHlFcmFUZXh0OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duQ29uZmlnOiBHQy5JbnB1dE1hbi5HY0RhdGVUaW1lRHJvcERvd25Db25maWc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhpdE9uTGFzdENoYXI6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGlnaGxpZ2h0VGV4dDogR0MuSW5wdXRNYW4uSGlnaGxpZ2h0VGV4dDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93U3BpbkJ1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcGluQnV0dG9uUG9zaXRpb246IHN0cmluZyB8IG51bGwgfCBHQy5JbnB1dE1hbi5TcGluQnV0dG9uQWxpZ25tZW50O1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dEcm9wRG93bkJ1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93bkJ1dHRvbkFsaWdubWVudDogc3RyaW5nIHwgbnVsbCB8IEdDLklucHV0TWFuLkRyb3BEb3duQnV0dG9uQWxpZ25tZW50O1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblNwaW5Eb3duOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NEYXRlVGltZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uU3BpblVwOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NEYXRlVGltZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uSW52YWxpZFJhbmdlOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NEYXRlVGltZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uSW52YWxpZFZhbHVlOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NEYXRlVGltZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uTnVtYmVyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjRGF0ZVRpbWU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjRGF0ZVRpbWU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8vIEZvciBWMi4xIENvbXBhdGliaWxpdHksIHdlIGhhdmUgdG8ga2VlcCB0aGlzIHByb3BlcnR5IG9yIGV2ZW50XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG51bWJlckNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgYmluZEV2ZW50KCkge1xuICAgICAgICBpZiAoIXRoaXMuX2ltQ3RybCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIuYmluZEV2ZW50KCk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5vblNwaW5Eb3duKChzKSA9PiB7IHRoaXMub25TcGluRG93bi5lbWl0KHMpOyB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLm9uU3BpblVwKChzKSA9PiB7IHRoaXMub25TcGluVXAuZW1pdChzKTsgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5vbkludmFsaWRSYW5nZSgocykgPT4geyB0aGlzLm9uSW52YWxpZFJhbmdlLmVtaXQocyk7IH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwub25JbnZhbGlkVmFsdWUoKHMpID0+IHsgdGhpcy5vbkludmFsaWRWYWx1ZS5lbWl0KHMpOyB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLm9uTnVtYmVyQ2hhbmdlZCgocykgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk51bWJlckNoYW5nZWQuZW1pdChzKTtcbiAgICAgICAgICAgIHRoaXMubnVtYmVyQ2hhbmdlLmVtaXQocy5nZXROdW1iZXIoKSBhcyBhbnkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLm9uVmFsdWVDaGFuZ2VkKChzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQocyk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHMuZ2V0VmFsdWUoKSk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHMuZ2V0VmFsdWUoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxufSJdfQ==