UNPKG

@grapecity/inputman.angular

Version:

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

181 lines 20.6 kB
import { Component, ElementRef, Input, Output, EventEmitter, forwardRef } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { GC } from '../inputman'; import { provideParent } from './GcComponents'; import { GcInputManBaseComponent } from './GcInputManBase'; import * as i0 from "@angular/core"; export class GcNumberComponent extends GcInputManBaseComponent { constructor(ref) { super(ref); this.onChange = () => { }; this.onTouched = () => { }; this.onSpinDown = new EventEmitter(); this.onSpinUp = new EventEmitter(); this.onInvalidRange = new EventEmitter(); this.onValueChanged = new EventEmitter(); // For V2.1 Compatibility, we have to keep this property or event 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.GcNumber(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.onValueChanged((s) => { this.onValueChanged.emit(s); this.onChange(s.getValue()); this.onTouched(); this.valueChange.emit(s.getValue()); }); } clear() { return this._imCtrl.clear(); } } GcNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcNumberComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); GcNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GcNumberComponent, selector: "gc-number", inputs: { acceptsCrlf: "acceptsCrlf", autoConvert: "autoConvert", value: "value", text: "text", watermarkZeroText: "watermarkZeroText", formatDigit: "formatDigit", displayPositivePrefix: "displayPositivePrefix", displayFormatDigit: "displayFormatDigit", maxValue: "maxValue", minValue: "minValue", positivePrefix: "positivePrefix", positiveSuffix: "positiveSuffix", displayPositiveSuffix: "displayPositiveSuffix", negativePrefix: "negativePrefix", displayNegativePrefix: "displayNegativePrefix", negativeSuffix: "negativeSuffix", displayNegativeSuffix: "displayNegativeSuffix", valueSign: "valueSign", adjustValueOnFocus: "adjustValueOnFocus", allowDeleteToNull: "allowDeleteToNull", clearAction: "clearAction", acceptsDecimal: "acceptsDecimal", currencySymbol: "currencySymbol", decimalPoint: "decimalPoint", maxMinBehavior: "maxMinBehavior", separator: "separator", watermarkDisplayZeroText: "watermarkDisplayZeroText", highlightText: "highlightText", allowSpin: "allowSpin", spinWheel: "spinWheel", spinOnKeys: "spinOnKeys", spinWrap: "spinWrap", showSpinButton: "showSpinButton", spinButtonPosition: "spinButtonPosition", showNumericPad: "showNumericPad", numericPadPosition: "numericPadPosition", showCalculatorAsDropDown: "showCalculatorAsDropDown", showCalculatorAsPopup: "showCalculatorAsPopup", calculatorButtonPosition: "calculatorButtonPosition", showDropDownSlider: "showDropDownSlider", sliderButtonPosition: "sliderButtonPosition", dropDownConfig: "dropDownConfig", sliderConfig: "sliderConfig" }, outputs: { onSpinDown: "onSpinDown", onSpinUp: "onSpinUp", onInvalidRange: "onInvalidRange", onValueChanged: "onValueChanged", valueChange: "valueChange" }, providers: [ provideParent(GcNumberComponent), { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GcNumberComponent), } ], usesInheritance: true, ngImport: i0, template: ``, isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcNumberComponent, decorators: [{ type: Component, args: [{ selector: 'gc-number', template: ``, providers: [ provideParent(GcNumberComponent), { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GcNumberComponent), } ] }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { acceptsCrlf: [{ type: Input }], autoConvert: [{ type: Input }], value: [{ type: Input }], text: [{ type: Input }], watermarkZeroText: [{ type: Input }], formatDigit: [{ type: Input }], displayPositivePrefix: [{ type: Input }], displayFormatDigit: [{ type: Input }], maxValue: [{ type: Input }], minValue: [{ type: Input }], positivePrefix: [{ type: Input }], positiveSuffix: [{ type: Input }], displayPositiveSuffix: [{ type: Input }], negativePrefix: [{ type: Input }], displayNegativePrefix: [{ type: Input }], negativeSuffix: [{ type: Input }], displayNegativeSuffix: [{ type: Input }], valueSign: [{ type: Input }], adjustValueOnFocus: [{ type: Input }], allowDeleteToNull: [{ type: Input }], clearAction: [{ type: Input }], acceptsDecimal: [{ type: Input }], currencySymbol: [{ type: Input }], decimalPoint: [{ type: Input }], maxMinBehavior: [{ type: Input }], separator: [{ type: Input }], watermarkDisplayZeroText: [{ type: Input }], highlightText: [{ type: Input }], allowSpin: [{ type: Input }], spinWheel: [{ type: Input }], spinOnKeys: [{ type: Input }], spinWrap: [{ type: Input }], showSpinButton: [{ type: Input }], spinButtonPosition: [{ type: Input }], showNumericPad: [{ type: Input }], numericPadPosition: [{ type: Input }], showCalculatorAsDropDown: [{ type: Input }], showCalculatorAsPopup: [{ type: Input }], calculatorButtonPosition: [{ type: Input }], showDropDownSlider: [{ type: Input }], sliderButtonPosition: [{ type: Input }], dropDownConfig: [{ type: Input }], sliderConfig: [{ type: Input }], onSpinDown: [{ type: Output }], onSpinUp: [{ type: Output }], onInvalidRange: [{ type: Output }], onValueChanged: [{ type: Output }], valueChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2NOdW1iZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL0djTnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBYzNELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSx1QkFBNkM7SUFFaEYsWUFBWSxHQUFlO1FBQ3ZCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUdQLGFBQVEsR0FBYSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0IsY0FBUyxHQUFhLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQTRHakMsZUFBVSxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBFLGFBQVEsR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsRSxtQkFBYyxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhFLG1CQUFjLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0UsaUVBQWlFO1FBRTFELGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7SUF4SDlELENBQUM7SUFLRCxVQUFVLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxD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RHhCLEtBQUs7Z0JBR0Msb0JBQW9CO3NCQUQxQixLQUFLO2dCQUdDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsS0FBSztnQkFHQyxVQUFVO3NCQURoQixNQUFNO2dCQUdBLFFBQVE7c0JBRGQsTUFBTTtnQkFHQSxjQUFjO3NCQURwQixNQUFNO2dCQUdBLGNBQWM7c0JBRHBCLE1BQU07Z0JBSUEsV0FBVztzQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBHQyB9IGZyb20gJy4uL2lucHV0bWFuJztcbmltcG9ydCB7IHByb3ZpZGVQYXJlbnQgfSBmcm9tICcuL0djQ29tcG9uZW50cyc7XG5pbXBvcnQgeyBHY0lucHV0TWFuQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vR2NJbnB1dE1hbkJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2djLW51bWJlcicsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlUGFyZW50KEdjTnVtYmVyQ29tcG9uZW50KSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdjTnVtYmVyQ29tcG9uZW50KSxcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgR2NOdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBHY0lucHV0TWFuQmFzZUNvbXBvbmVudDxHQy5JbnB1dE1hbi5HY051bWJlcj4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICBjb25zdHJ1Y3RvcihyZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIocmVmKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcbiAgICBwcml2YXRlIG9uVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7IH07XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5faW1DdHJsKSB7XG4gICAgICAgICAgICB0aGlzLl9pbUN0cmwudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICAgfVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICAgIH1cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbmFibGVkID0gIWlzRGlzYWJsZWQ7XG4gICAgICAgIGlmICh0aGlzLl9pbUN0cmwpIHtcbiAgICAgICAgICAgIHRoaXMuX2ltQ3RybC5lbmFibGVkID0gdGhpcy5lbmFibGVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFjY2VwdHNDcmxmOiBHQy5JbnB1dE1hbi5DckxmTW9kZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvQ29udmVydDogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0ZXh0OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdhdGVybWFya1plcm9UZXh0OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1hdERpZ2l0OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc3BsYXlQb3NpdGl2ZVByZWZpeDogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5Rm9ybWF0RGlnaXQ6IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4VmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluVmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcG9zaXRpdmVQcmVmaXg6IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcG9zaXRpdmVTdWZmaXg6IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzcGxheVBvc2l0aXZlU3VmZml4OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5lZ2F0aXZlUHJlZml4OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc3BsYXlOZWdhdGl2ZVByZWZpeDogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuZWdhdGl2ZVN1ZmZpeDogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5TmVnYXRpdmVTdWZmaXg6IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWVTaWduOiBHQy5JbnB1dE1hbi5WYWx1ZVNpZ247XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWRqdXN0VmFsdWVPbkZvY3VzOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93RGVsZXRlVG9OdWxsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsZWFyQWN0aW9uOiBHQy5JbnB1dE1hbi5DbGVhck1vZGVBY3Rpb247XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWNjZXB0c0RlY2ltYWw6IEdDLklucHV0TWFuLkRlY2ltYWxNb2RlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGN1cnJlbmN5U3ltYm9sOiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRlY2ltYWxQb2ludDogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhNaW5CZWhhdmlvcjogR0MuSW5wdXRNYW4uTWF4TWluQmVoYXZpb3I7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VwYXJhdG9yOiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdhdGVybWFya0Rpc3BsYXlaZXJvVGV4dDogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoaWdobGlnaHRUZXh0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93U3BpbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcGluV2hlZWw6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3Bpbk9uS2V5czogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcGluV3JhcDogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93U3BpbkJ1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcGluQnV0dG9uUG9zaXRpb246IEdDLklucHV0TWFuLlNwaW5CdXR0b25BbGlnbm1lbnQ7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd051bWVyaWNQYWQ6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbnVtZXJpY1BhZFBvc2l0aW9uOiBHQy5JbnB1dE1hbi5Ecm9wRG93bkJ1dHRvbkFsaWdubWVudDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93Q2FsY3VsYXRvckFzRHJvcERvd246IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0NhbGN1bGF0b3JBc1BvcHVwOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhbGN1bGF0b3JCdXR0b25Qb3NpdGlvbjogR0MuSW5wdXRNYW4uRHJvcERvd25CdXR0b25BbGlnbm1lbnQgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dEcm9wRG93blNsaWRlcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzbGlkZXJCdXR0b25Qb3NpdGlvbjogR0MuSW5wdXRNYW4uRHJvcERvd25CdXR0b25BbGlnbm1lbnQgfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duQ29uZmlnOiBHQy5JbnB1dE1hbi5HY0NhbGN1bGF0b3JDb25maWcgfCBHQy5JbnB1dE1hbi5JR2NEcm9wRG93blNsaWRlckNvbmZpZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2xpZGVyQ29uZmlnOiBHQy5JbnB1dE1hbi5JTnVtYmVyU2xpZGVyQ29uZmlnIHwgbnVsbDtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25TcGluRG93bjogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjTnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25TcGluVXA6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY051bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uSW52YWxpZFJhbmdlOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NOdW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjTnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAvLyBGb3IgVjIuMSBDb21wYXRpYmlsaXR5LCB3ZSBoYXZlIHRvIGtlZXAgdGhpcyBwcm9wZXJ0eSBvciBldmVudFxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgaW5pdEdjQ29tcG9uZW50KCkge1xuICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIHRoaXMuY3JlYXRlVGVtcGxhdGUoZWxlbWVudCk7XG4gICAgICAgIHRoaXMuX2ltQ3RybCA9IG5ldyBHQy5JbnB1dE1hbi5HY051bWJlcihlbGVtZW50LCB0aGlzIGFzIGFueSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGJpbmRFdmVudCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pbUN0cmwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLmJpbmRFdmVudCgpO1xuICAgICAgICB0aGlzLl9pbUN0cmwub25TcGluRG93bigocykgPT4geyB0aGlzLm9uU3BpbkRvd24uZW1pdChzKTsgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5vblNwaW5VcCgocykgPT4geyB0aGlzLm9uU3BpblVwLmVtaXQocyk7IH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwub25JbnZhbGlkUmFuZ2UoKHMpID0+IHsgdGhpcy5vbkludmFsaWRSYW5nZS5lbWl0KHMpOyB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLm9uVmFsdWVDaGFuZ2VkKChzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQocyk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHMuZ2V0VmFsdWUoKSk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHMuZ2V0VmFsdWUoKSBhcyBhbnkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbUN0cmwuY2xlYXIoKTtcbiAgICB9XG59Il19