@grapecity/inputman.angular
Version:
このパッケージには、Angular用の[InputManJS](https://developer.mescius.jp/inputmanjs)コンポーネントが含まれます。
184 lines • 21.1 kB
JavaScript
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2NEYXRlVGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvR2NEYXRlVGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQWMzRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQStDO0lBQ3BGLFlBQVksR0FBZTtRQUN2QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFHUCxhQUFRLEdBQWEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLGNBQVMsR0FBYSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFxR2pDLGVBQVUsR0FBeUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RSxhQUFRLEdBQXlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEUsbUJBQWMsR0FBeUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxRSxtQkFBYyxHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFFLG9CQUFlLEdBQXlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0UsbUJBQWMsR0FBeUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRixpRUFBaUU7UUFFMUQsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4RCxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBdkg1RCxDQUFDO0lBS0QsVUFBVSxDQUFDLEtBQVU7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQztJQUNMLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxRQUFhO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxTQUFjO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBRVMsZUFBZTtRQUNyQixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFXLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBNkZTLFNBQVM7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU87U0FDVjtRQUVELEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQVMsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2lIQWhKUSxtQkFBbUI7cUdBQW5CLG1CQUFtQixxNkNBVGpCO1FBQ1AsYUFBYSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xDO1lBQ0ksT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7U0FDckQ7S0FDSixpREFSUyxFQUFFO0FBaURaO0lBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQzs7bURBRVQ7NEZBekNiLG1CQUFtQjtrQkFaL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osU0FBUyxFQUFFO3dCQUNQLGFBQWEscUJBQXFCO3dCQUNsQzs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzt5QkFDckQ7cUJBQ0o7aUJBQ0o7aUdBbUNVLFdBQVc7c0JBRGpCLEtBQUs7Z0JBR0MsV0FBVztzQkFEakIsS0FBSztnQkFHQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO2dCQUdDLE9BQU87c0JBRGIsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsYUFBYTtzQkFEbkIsS0FBSztnQkFHQyxhQUFhO3NCQURuQixLQUFLO2dCQUdDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLFNBQVM7c0JBRGYsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0Msb0JBQW9CO3NCQUQxQixLQUFLO2dCQUdDLHFCQUFxQjtzQkFEM0IsS0FBSztnQkFHQyxVQUFVO3NCQURoQixLQUFLO2dCQUdDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsS0FBSztnQkFHQyxlQUFlO3NCQURyQixLQUFLO2dCQUdDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBR0MsU0FBUztzQkFEZixLQUFLO2dCQUdDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsS0FBSztnQkFHQyxZQUFZO3NCQURsQixLQUFLO2dCQUdDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFHQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsS0FBSztnQkFHQyxXQUFXO3NCQURqQixLQUFLO2dCQUdDLEtBQUs7c0JBRFgsS0FBSztnQkFHQyw0QkFBNEI7c0JBRGxDLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxjQUFjO3NCQURwQixLQUFLO2dCQUdDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBR0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQUdDLHVCQUF1QjtzQkFEN0IsS0FBSztnQkFHQyxVQUFVO3NCQURoQixNQUFNO2dCQUdBLFFBQVE7c0JBRGQsTUFBTTtnQkFHQSxjQUFjO3NCQURwQixNQUFNO2dCQUdBLGNBQWM7c0JBRHBCLE1BQU07Z0JBR0EsZUFBZTtzQkFEckIsTUFBTTtnQkFHQSxjQUFjO3NCQURwQixNQUFNO2dCQUlBLFlBQVk7c0JBRGxCLE1BQU07Z0JBR0EsV0FBVztzQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBHQyB9IGZyb20gJy4uL2lucHV0bWFuJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IHByb3ZpZGVQYXJlbnQgfSBmcm9tICcuL0djQ29tcG9uZW50cyc7XG5pbXBvcnQgeyBHY0lucHV0TWFuQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vR2NJbnB1dE1hbkJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2djLWRhdGV0aW1lJyxcbiAgICB0ZW1wbGF0ZTogYGAsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVQYXJlbnQoR2NEYXRlVGltZUNvbXBvbmVudCksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHY0RhdGVUaW1lQ29tcG9uZW50KSxcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgR2NEYXRlVGltZUNvbXBvbmVudCBleHRlbmRzIEdjSW5wdXRNYW5CYXNlQ29tcG9uZW50PEdDLklucHV0TWFuLkdjRGF0ZVRpbWU+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIGNvbnN0cnVjdG9yKHJlZjogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcihyZWYpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9pbUN0cmwpIHtcbiAgICAgICAgICAgIHRoaXMuX2ltQ3RybC52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgICB9XG4gICAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmVuYWJsZWQgPSAhaXNEaXNhYmxlZDtcbiAgICAgICAgaWYgKHRoaXMuX2ltQ3RybCkge1xuICAgICAgICAgICAgdGhpcy5faW1DdHJsLmVuYWJsZWQgPSB0aGlzLmVuYWJsZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdEdjQ29tcG9uZW50KCkge1xuICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIHRoaXMuY3JlYXRlVGVtcGxhdGUoZWxlbWVudCk7XG4gICAgICAgIHRoaXMuX2ltQ3RybCA9IG5ldyBHQy5JbnB1dE1hbi5HY0RhdGVUaW1lKGVsZW1lbnQsIHRoaXMgYXMgYW55KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhY2NlcHRzQ3JsZjogR0MuSW5wdXRNYW4uQ3JMZk1vZGU7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXV0b0NvbnZlcnQ6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGV4dDogc3RyaW5nIHwgbnVsbDtcbiAgICBAUHJvcGVydHkoXCJcIiwgXCJcIiwgZmFsc2UsIGZhbHNlKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG51bWJlcjogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heERhdGU6IERhdGUgfCBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1pbkRhdGU6IERhdGUgfCBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1hdFBhdHRlcm46IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3BpbkluY3JlbWVudDogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNwaW5PbktleXM6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3BpbldyYXA6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dTcGluOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNwaW5XaGVlbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5Rm9ybWF0UGF0dGVybjogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3YXRlcm1hcmtFbXB0eUVyYVRleHQ6IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcHJvbXB0Q2hhcjogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBBTURlc2lnbmF0b3I6IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgUE1EZXNpZ25hdG9yOiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHR3b0RpZ2l0WWVhck1heDogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhvdXIxMk1vZGU6IEdDLklucHV0TWFuLkhvdXIxMk1vZGU7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFiQWN0aW9uOiBHQy5JbnB1dE1hbi5UYWJBY3Rpb247XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4TWluQmVoYXZpb3I6IEdDLklucHV0TWFuLk1heE1pbkJlaGF2aW9yO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1pZG5pZ2h0QXMyNDogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93TGl0ZXJhbHM6IEdDLklucHV0TWFuLlNob3dMaXRlcmFscztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhZGp1c3RWYWx1ZU9uRm9jdXM6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdXNlVHdvRGlnaXRZZWFyTWF4OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbGlkYXRlTW9kZTogR0MuSW5wdXRNYW4uVmFsaWRhdGVNb2RlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsaXBDb250ZW50OiBHQy5JbnB1dE1hbi5DbGlwQ29udGVudDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZTogRGF0ZSB8IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3YXRlcm1hcmtEaXNwbGF5RW1wdHlFcmFUZXh0OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duQ29uZmlnOiBHQy5JbnB1dE1hbi5HY0RhdGVUaW1lRHJvcERvd25Db25maWc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhpdE9uTGFzdENoYXI6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGlnaGxpZ2h0VGV4dDogR0MuSW5wdXRNYW4uSGlnaGxpZ2h0VGV4dDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93U3BpbkJ1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcGluQnV0dG9uUG9zaXRpb246IHN0cmluZyB8IG51bGwgfCBHQy5JbnB1dE1hbi5TcGluQnV0dG9uQWxpZ25tZW50O1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dEcm9wRG93bkJ1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93bkJ1dHRvbkFsaWdubWVudDogc3RyaW5nIHwgbnVsbCB8IEdDLklucHV0TWFuLkRyb3BEb3duQnV0dG9uQWxpZ25tZW50O1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblNwaW5Eb3duOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NEYXRlVGltZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uU3BpblVwOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NEYXRlVGltZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uSW52YWxpZFJhbmdlOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NEYXRlVGltZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uSW52YWxpZFZhbHVlOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NEYXRlVGltZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uTnVtYmVyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjRGF0ZVRpbWU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjRGF0ZVRpbWU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8vIEZvciBWMi4xIENvbXBhdGliaWxpdHksIHdlIGhhdmUgdG8ga2VlcCB0aGlzIHByb3BlcnR5IG9yIGV2ZW50XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG51bWJlckNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgYmluZEV2ZW50KCkge1xuICAgICAgICBpZiAoIXRoaXMuX2ltQ3RybCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIuYmluZEV2ZW50KCk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5vblNwaW5Eb3duKChzKSA9PiB7IHRoaXMub25TcGluRG93bi5lbWl0KHMpOyB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLm9uU3BpblVwKChzKSA9PiB7IHRoaXMub25TcGluVXAuZW1pdChzKTsgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5vbkludmFsaWRSYW5nZSgocykgPT4geyB0aGlzLm9uSW52YWxpZFJhbmdlLmVtaXQocyk7IH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwub25JbnZhbGlkVmFsdWUoKHMpID0+IHsgdGhpcy5vbkludmFsaWRWYWx1ZS5lbWl0KHMpOyB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLm9uTnVtYmVyQ2hhbmdlZCgocykgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk51bWJlckNoYW5nZWQuZW1pdChzKTtcbiAgICAgICAgICAgIHRoaXMubnVtYmVyQ2hhbmdlLmVtaXQocy5nZXROdW1iZXIoKSBhcyBhbnkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLm9uVmFsdWVDaGFuZ2VkKChzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQocyk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHMuZ2V0VmFsdWUoKSk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHMuZ2V0VmFsdWUoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxufSJdfQ==