UNPKG

@grapecity/inputman.angular

Version:

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

125 lines 16 kB
import { Input, Output, EventEmitter, ElementRef, Component } from '@angular/core'; import { GC } from '../inputman'; import { GcComponents } from './GcComponents'; import * as i0 from "@angular/core"; export class GcInputManBaseComponent extends GcComponents { constructor(ref) { super(ref); this.onEditStatusChanged = new EventEmitter(); this.onInvalidInput = new EventEmitter(); this.onKeyExit = new EventEmitter(); this.onTextChanged = new EventEmitter(); this.onInput = new EventEmitter(); this.onFocusOut = new EventEmitter(); this.onKeyDown = new EventEmitter(); this.onKeyUp = new EventEmitter(); this.onSyncValueToOriginalInput = new EventEmitter(); // For V2.1 Compatibility, we have to keep this property or event this.textChange = new EventEmitter(); } bindEvent() { if (!this._imCtrl) { return; } this._imCtrl.onEditStatusChanged((s) => { this.onEditStatusChanged.emit(s); }); this._imCtrl.onInvalidInput((s) => { this.onInvalidInput.emit(s); }); this._imCtrl.onKeyExit((s) => { this.onKeyExit.emit(s); }); this._imCtrl.onTextChanged((s) => { this.onTextChanged.emit(s); this.textChange.emit(s.getText()); }); this._imCtrl.onInput((s) => { this.onInput.emit(s); }); this._imCtrl.onFocusOut((s) => { this.onFocusOut.emit({ sender: s }); }); this._imCtrl.onKeyDown((s) => { this.onKeyDown.emit({ sender: s }); }); this._imCtrl.onKeyUp((s) => { this.onKeyUp.emit({ sender: s }); }); this._imCtrl.onSyncValueToOriginalInput((v, e) => { this.onSyncValueToOriginalInput.emit({ value: v, element: e }); }); } } GcInputManBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcInputManBaseComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); GcInputManBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GcInputManBaseComponent, selector: "ng-component", inputs: { visible: "visible", width: "width", height: "height", minWidth: "minWidth", minHeight: "minHeight", maxWidth: "maxWidth", maxHeight: "maxHeight", fontSize: "fontSize", enabled: "enabled", readOnly: "readOnly", exitOnLeftRightKey: "exitOnLeftRightKey", editMode: "editMode", watermarkDisplayNullText: "watermarkDisplayNullText", watermarkNullText: "watermarkNullText", useClipboard: "useClipboard", exitOnEnterKey: "exitOnEnterKey", container: "container", autoDropDown: "autoDropDown", dropDownButtonVisible: "dropDownButtonVisible", autoScale: "autoScale", minScaleFactor: "minScaleFactor", tabIndex: "tabIndex", showHelpButton: "showHelpButton", showCopyButton: "showCopyButton", helpContent: "helpContent", copyMessage: "copyMessage", copiedMessage: "copiedMessage", floatingLabelText: "floatingLabelText", floatingLabelType: "floatingLabelType", floatingLabelDirection: "floatingLabelDirection", showClearButton: "showClearButton" }, outputs: { onEditStatusChanged: "onEditStatusChanged", onInvalidInput: "onInvalidInput", onKeyExit: "onKeyExit", onTextChanged: "onTextChanged", onInput: "onInput", onFocusOut: "onFocusOut", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onSyncValueToOriginalInput: "onSyncValueToOriginalInput", textChange: "textChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcInputManBaseComponent, decorators: [{ type: Component, args: [{ template: '' }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { visible: [{ type: Input }], width: [{ type: Input }], height: [{ type: Input }], minWidth: [{ type: Input }], minHeight: [{ type: Input }], maxWidth: [{ type: Input }], maxHeight: [{ type: Input }], fontSize: [{ type: Input }], enabled: [{ type: Input }], readOnly: [{ type: Input }], exitOnLeftRightKey: [{ type: Input }], editMode: [{ type: Input }], watermarkDisplayNullText: [{ type: Input }], watermarkNullText: [{ type: Input }], useClipboard: [{ type: Input }], exitOnEnterKey: [{ type: Input }], container: [{ type: Input }], autoDropDown: [{ type: Input }], dropDownButtonVisible: [{ type: Input }], autoScale: [{ type: Input }], minScaleFactor: [{ type: Input }], tabIndex: [{ type: Input }], showHelpButton: [{ type: Input }], showCopyButton: [{ type: Input }], helpContent: [{ type: Input }], copyMessage: [{ type: Input }], copiedMessage: [{ type: Input }], floatingLabelText: [{ type: Input }], floatingLabelType: [{ type: Input }], floatingLabelDirection: [{ type: Input }], showClearButton: [{ type: Input }], onEditStatusChanged: [{ type: Output }], onInvalidInput: [{ type: Output }], onKeyExit: [{ type: Output }], onTextChanged: [{ type: Output }], onInput: [{ type: Output }], onFocusOut: [{ type: Output }], onKeyDown: [{ type: Output }], onKeyUp: [{ type: Output }], onSyncValueToOriginalInput: [{ type: Output }], textChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2NJbnB1dE1hbkJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL0djSW5wdXRNYW5CYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs5QyxNQUFNLE9BQWdCLHVCQUE4RCxTQUFRLFlBQWU7SUFzRnZHLFlBQVksR0FBZTtRQUN2QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUF0QlIsd0JBQW1CLEdBQW9CLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUQsbUJBQWMsR0FBb0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVyRCxjQUFTLEdBQW9CLElBQUksWUFBWSxFQUFFLENBQUM7UUFFaEQsa0JBQWEsR0FBb0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwRCxZQUFPLEdBQW9CLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUMsZUFBVSxHQUE4QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNELGNBQVMsR0FBOEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxRCxZQUFPLEdBQThCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFeEQsK0JBQTBCLEdBQWlILElBQUksWUFBWSxFQUFFLENBQUM7UUFDckssaUVBQWlFO1FBRTFELGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUk3RCxDQUFDO0lBRVMsU0FBUztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0csSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0gsQ0FBQzs7cUhBeEdpQix1QkFBdUI7eUdBQXZCLHVCQUF1QixnMENBRi9CLEVBQUU7NEZBRU0sdUJBQXVCO2tCQUg1QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxFQUFFO2lCQUNmO2lHQUlVLE9BQU87c0JBRGIsS0FBSztnQkFHQyxLQUFLO3NCQURYLEtBQUs7Z0JBR0MsTUFBTTtzQkFEWixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLFNBQVM7c0JBRGYsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsT0FBTztzQkFEYixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLHdCQUF3QjtzQkFEOUIsS0FBSztnQkFHQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsS0FBSztnQkFHQyxjQUFjO3NCQURwQixLQUFLO2dCQUdDLFNBQVM7c0JBRGYsS0FBSztnQkFHQyxZQUFZO3NCQURsQixLQUFLO2dCQUdDLHFCQUFxQjtzQkFEM0IsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxjQUFjO3NCQURwQixLQUFLO2dCQUdDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBR0MsV0FBVztzQkFEakIsS0FBSztnQkFHQyxhQUFhO3NCQURuQixLQUFLO2dCQUdDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFHQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBR0Msc0JBQXNCO3NCQUQ1QixLQUFLO2dCQUdDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBR0MsbUJBQW1CO3NCQUR6QixNQUFNO2dCQUdBLGNBQWM7c0JBRHBCLE1BQU07Z0JBR0EsU0FBUztzQkFEZixNQUFNO2dCQUdBLGFBQWE7c0JBRG5CLE1BQU07Z0JBR0EsT0FBTztzQkFEYixNQUFNO2dCQUdBLFVBQVU7c0JBRGhCLE1BQU07Z0JBR0EsU0FBUztzQkFEZixNQUFNO2dCQUdBLE9BQU87c0JBRGIsTUFBTTtnQkFHQSwwQkFBMEI7c0JBRGhDLE1BQU07Z0JBSUEsVUFBVTtzQkFEaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgQ29tcG9uZW50LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHQyB9IGZyb20gJy4uL2lucHV0bWFuJztcbmltcG9ydCB7IEdjQ29tcG9uZW50cyB9IGZyb20gJy4vR2NDb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdjSW5wdXRNYW5CYXNlQ29tcG9uZW50PFQgZXh0ZW5kcyBHQy5JbnB1dE1hbi5HY0lucHV0TWFuQmFzZT4gZXh0ZW5kcyBHY0NvbXBvbmVudHM8VD4ge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmlzaWJsZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3aWR0aDogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlaWdodDogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1pbldpZHRoOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluSGVpZ2h0OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhIZWlnaHQ6IG51bWJlciB8IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb250U2l6ZTogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVhZE9ubHk6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhpdE9uTGVmdFJpZ2h0S2V5OiBHQy5JbnB1dE1hbi5FeGl0T25MZWZ0UmlnaHRLZXk7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZWRpdE1vZGU6IEdDLklucHV0TWFuLkVkaXRNb2RlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdhdGVybWFya0Rpc3BsYXlOdWxsVGV4dDogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3YXRlcm1hcmtOdWxsVGV4dDogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB1c2VDbGlwYm9hcmQ6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhpdE9uRW50ZXJLZXk6IEdDLklucHV0TWFuLkV4aXRLZXk7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvRHJvcERvd246IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZHJvcERvd25CdXR0b25WaXNpYmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9TY2FsZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW5TY2FsZUZhY3RvcjogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRhYkluZGV4OiBudW1iZXI7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0hlbHBCdXR0b246IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0NvcHlCdXR0b246IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGVscENvbnRlbnQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb3B5TWVzc2FnZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvcGllZE1lc3NhZ2U6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmbG9hdGluZ0xhYmVsVGV4dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZsb2F0aW5nTGFiZWxUeXBlOiBHQy5JbnB1dE1hbi5GbG9hdGluZ0xhYmVsVHlwZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmbG9hdGluZ0xhYmVsRGlyZWN0aW9uOiBHQy5JbnB1dE1hbi5GbG9hdGluZ0xhYmVsRGlyZWN0aW9uO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dDbGVhckJ1dHRvbjogYm9vbGVhbjtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25FZGl0U3RhdHVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkludmFsaWRJbnB1dDogRXZlbnRFbWl0dGVyPFQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbktleUV4aXQ6IEV2ZW50RW1pdHRlcjxUPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25UZXh0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPFQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbklucHV0OiBFdmVudEVtaXR0ZXI8VD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uRm9jdXNPdXQ6IEV2ZW50RW1pdHRlcjx7c2VuZGVyOiBUfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uS2V5RG93bjogRXZlbnRFbWl0dGVyPHtzZW5kZXI6IFR9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25LZXlVcDogRXZlbnRFbWl0dGVyPHtzZW5kZXI6IFR9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25TeW5jVmFsdWVUb09yaWdpbmFsSW5wdXQ6IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgb2JqZWN0LCBlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAvLyBGb3IgVjIuMSBDb21wYXRpYmlsaXR5LCB3ZSBoYXZlIHRvIGtlZXAgdGhpcyBwcm9wZXJ0eSBvciBldmVudFxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB0ZXh0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKHJlZjogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcihyZWYpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBiaW5kRXZlbnQoKSB7XG4gICAgICAgIGlmICghdGhpcy5faW1DdHJsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pbUN0cmwub25FZGl0U3RhdHVzQ2hhbmdlZCgocykgPT4geyB0aGlzLm9uRWRpdFN0YXR1c0NoYW5nZWQuZW1pdChzKTsgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5vbkludmFsaWRJbnB1dCgocykgPT4geyB0aGlzLm9uSW52YWxpZElucHV0LmVtaXQocyk7IH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwub25LZXlFeGl0KChzKSA9PiB7IHRoaXMub25LZXlFeGl0LmVtaXQocyk7IH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwub25UZXh0Q2hhbmdlZCgocykgPT4geyB0aGlzLm9uVGV4dENoYW5nZWQuZW1pdChzKTsgdGhpcy50ZXh0Q2hhbmdlLmVtaXQocy5nZXRUZXh0KCkgYXMgYW55KTsgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5vbklucHV0KChzKSA9PiB7IHRoaXMub25JbnB1dC5lbWl0KHMpOyB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLm9uRm9jdXNPdXQoKHMpID0+IHsgdGhpcy5vbkZvY3VzT3V0LmVtaXQoeyBzZW5kZXI6IHMgfSk7IH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwub25LZXlEb3duKChzKSA9PiB7IHRoaXMub25LZXlEb3duLmVtaXQoeyBzZW5kZXI6IHMgfSk7IH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwub25LZXlVcCgocykgPT4geyB0aGlzLm9uS2V5VXAuZW1pdCh7IHNlbmRlcjogcyB9KTsgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5vblN5bmNWYWx1ZVRvT3JpZ2luYWxJbnB1dCgodiwgZSkgPT4geyB0aGlzLm9uU3luY1ZhbHVlVG9PcmlnaW5hbElucHV0LmVtaXQoeyB2YWx1ZTogdiwgZWxlbWVudDogZSB9KTsgfSk7XG4gICAgfVxufSJdfQ==