UNPKG

@mescius/inputman.angular

Version:

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

206 lines 23.7 kB
import { Component, Input, ElementRef, Output, EventEmitter, forwardRef } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { GC } from '../inputman'; import { provideParent, GcComponents } from './GcComponents'; import * as i0 from "@angular/core"; export class GcTagBoxComponent extends GcComponents { constructor(ref) { super(ref); this.onChange = () => { }; this.onTouched = () => { }; this.dropDownClosed = new EventEmitter(); this.dropDownOpened = new EventEmitter(); this.focusIn = new EventEmitter(); this.focusOut = new EventEmitter(); this.insertTag = new EventEmitter(); this.removeTag = new EventEmitter(); this.valueChanged = new EventEmitter(); } writeValue(value) { return; } 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('div'); this.createTemplate(element); this._imCtrl = new GC.InputMan.GcTagBox(element, this); } bindEvent() { if (!this._imCtrl) { return; } this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.DropDownClosed, (eventArgs) => { this.dropDownClosed.emit(eventArgs); }); this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.DropDownOpened, (eventArgs) => { this.dropDownOpened.emit(eventArgs); }); this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.FocusIn, (eventArgs) => { this.focusIn.emit(eventArgs); }); this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.FocusOut, (eventArgs) => { this.focusOut.emit(eventArgs); }); this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.InsertTag, (eventArgs) => { this.insertTag.emit(eventArgs); }); this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.RemoveTag, (eventArgs) => { this.removeTag.emit(eventArgs); }); this._imCtrl.addEventListener(GC.InputMan.GcTagBoxEvent.ValueChanged, (eventArgs) => { this.valueChanged.emit(eventArgs); this.onChange(this._imCtrl.value); this.onTouched(); }); } } GcTagBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcTagBoxComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); GcTagBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GcTagBoxComponent, selector: "gc-tag-box", inputs: { imageAlignment: "imageAlignment", items: "items", autoFilter: "autoFilter", showDropDownIfNoItems: "showDropDownIfNoItems", dropDownAlignmentMode: "dropDownAlignmentMode", dropDownHeight: "dropDownHeight", dropDownWidth: "dropDownWidth", allowDropDownResize: "allowDropDownResize", dropDownDisplayMemberPath: "dropDownDisplayMemberPath", width: "width", height: "height", watermarkNullText: "watermarkNullText", watermarkDisplayNullText: "watermarkDisplayNullText", tagTemplate: "tagTemplate", readOnly: "readOnly", enabled: "enabled", displayMode: "displayMode", allowCopyTag: "allowCopyTag", allowDragTag: "allowDragTag", allowSelectTag: "allowSelectTag", allowCustomTag: "allowCustomTag", applyCustomTagKey: "applyCustomTagKey", separator: "separator", tagImageMemberPath: "tagImageMemberPath", tagTextMemberPath: "tagTextMemberPath", showImage: "showImage", minHeight: "minHeight", minWidth: "minWidth", maxHeight: "maxHeight", maxWidth: "maxWidth", maxTagWidth: "maxTagWidth", dropDownItemHeight: "dropDownItemHeight", dropDownItemTemplate: "dropDownItemTemplate", tagValidator: "tagValidator", allowResize: "allowResize", showDropDown: "showDropDown", uniqueTags: "uniqueTags", maxTagCount: "maxTagCount", autoSelect: "autoSelect", value: "value", appendCustomTagToDropDown: "appendCustomTagToDropDown", floatingLabelDirection: "floatingLabelDirection", floatingLabelType: "floatingLabelType", floatingLabelText: "floatingLabelText", dropDownType: "dropDownType", dropDownTreeConfig: "dropDownTreeConfig", helpContent: "helpContent", showHelpButton: "showHelpButton", showClearButton: "showClearButton", dropDownItemCountInRow: "dropDownItemCountInRow" }, outputs: { dropDownClosed: "dropDownClosed", dropDownOpened: "dropDownOpened", focusIn: "focusIn", focusOut: "focusOut", insertTag: "insertTag", removeTag: "removeTag", valueChanged: "valueChanged" }, providers: [ provideParent(GcTagBoxComponent), { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GcTagBoxComponent), } ], usesInheritance: true, ngImport: i0, template: ``, isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcTagBoxComponent, decorators: [{ type: Component, args: [{ selector: 'gc-tag-box', template: ``, providers: [ provideParent(GcTagBoxComponent), { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GcTagBoxComponent), } ] }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { imageAlignment: [{ type: Input }], items: [{ type: Input }], autoFilter: [{ type: Input }], showDropDownIfNoItems: [{ type: Input }], dropDownAlignmentMode: [{ type: Input }], dropDownHeight: [{ type: Input }], dropDownWidth: [{ type: Input }], allowDropDownResize: [{ type: Input }], dropDownDisplayMemberPath: [{ type: Input }], width: [{ type: Input }], height: [{ type: Input }], watermarkNullText: [{ type: Input }], watermarkDisplayNullText: [{ type: Input }], tagTemplate: [{ type: Input }], readOnly: [{ type: Input }], enabled: [{ type: Input }], displayMode: [{ type: Input }], allowCopyTag: [{ type: Input }], allowDragTag: [{ type: Input }], allowSelectTag: [{ type: Input }], allowCustomTag: [{ type: Input }], applyCustomTagKey: [{ type: Input }], separator: [{ type: Input }], tagImageMemberPath: [{ type: Input }], tagTextMemberPath: [{ type: Input }], showImage: [{ type: Input }], minHeight: [{ type: Input }], minWidth: [{ type: Input }], maxHeight: [{ type: Input }], maxWidth: [{ type: Input }], maxTagWidth: [{ type: Input }], dropDownItemHeight: [{ type: Input }], dropDownItemTemplate: [{ type: Input }], tagValidator: [{ type: Input }], allowResize: [{ type: Input }], showDropDown: [{ type: Input }], uniqueTags: [{ type: Input }], maxTagCount: [{ type: Input }], autoSelect: [{ type: Input }], value: [{ type: Input }], appendCustomTagToDropDown: [{ type: Input }], floatingLabelDirection: [{ type: Input }], floatingLabelType: [{ type: Input }], floatingLabelText: [{ type: Input }], dropDownType: [{ type: Input }], dropDownTreeConfig: [{ type: Input }], helpContent: [{ type: Input }], showHelpButton: [{ type: Input }], showClearButton: [{ type: Input }], dropDownItemCountInRow: [{ type: Input }], dropDownClosed: [{ type: Output }], dropDownOpened: [{ type: Output }], focusIn: [{ type: Output }], focusOut: [{ type: Output }], insertTag: [{ type: Output }], removeTag: [{ type: Output }], valueChanged: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2NUYWdCb3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL0djVGFnQm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWM3RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsWUFBa0M7SUFFckUsWUFBWSxHQUFlO1FBQ3ZCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVQLGFBQVEsR0FBYSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0IsY0FBUyxHQUFhLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQXVIakMsbUJBQWMsR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4RSxtQkFBYyxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhFLFlBQU8sR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRSxhQUFRLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEUsY0FBUyxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5FLGNBQVMsR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuRSxpQkFBWSxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBckk3RSxDQUFDO0lBSUQsVUFBVSxDQUFDLEtBQVU7UUFDakIsT0FBTztJQUNYLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxRQUFhO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxTQUFjO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBcUhTLGVBQWU7UUFDckIsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBVyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVTLFNBQVM7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2xGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUMzRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDNUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQzdFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM3RSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDaEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OytHQTdLUSxpQkFBaUI7bUdBQWpCLGlCQUFpQixzM0RBVGY7UUFDUCxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDaEM7WUFDSSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztTQUNuRDtLQUNKLGlEQVJTLEVBQUU7NEZBVUgsaUJBQWlCO2tCQVo3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsRUFBRTtvQkFDWixTQUFTLEVBQUU7d0JBQ1AsYUFBYSxtQkFBbUI7d0JBQ2hDOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDO3lCQUNuRDtxQkFDSjtpQkFDSjtpR0EwQlUsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxLQUFLO3NCQURYLEtBQUs7Z0JBR0MsVUFBVTtzQkFEaEIsS0FBSztnQkFHQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBR0MscUJBQXFCO3NCQUQzQixLQUFLO2dCQUdDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBR0MsYUFBYTtzQkFEbkIsS0FBSztnQkFHQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBR0MseUJBQXlCO3NCQUQvQixLQUFLO2dCQUdDLEtBQUs7c0JBRFgsS0FBSztnQkFHQyxNQUFNO3NCQURaLEtBQUs7Z0JBR0MsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUdDLHdCQUF3QjtzQkFEOUIsS0FBSztnQkFHQyxXQUFXO3NCQURqQixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsV0FBVztzQkFEakIsS0FBSztnQkFHQyxZQUFZO3NCQURsQixLQUFLO2dCQUdDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxjQUFjO3NCQURwQixLQUFLO2dCQUdDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQUdDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsU0FBUztzQkFEZixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBR0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQUdDLG9CQUFvQjtzQkFEMUIsS0FBSztnQkFHQyxZQUFZO3NCQURsQixLQUFLO2dCQUdDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsS0FBSztnQkFHQyxVQUFVO3NCQURoQixLQUFLO2dCQUdDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBR0MsVUFBVTtzQkFEaEIsS0FBSztnQkFHQyxLQUFLO3NCQURYLEtBQUs7Z0JBR0MseUJBQXlCO3NCQUQvQixLQUFLO2dCQUdDLHNCQUFzQjtzQkFENUIsS0FBSztnQkFHQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBR0MsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUdDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBR0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQUdDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxlQUFlO3NCQURyQixLQUFLO2dCQUdDLHNCQUFzQjtzQkFENUIsS0FBSztnQkFHQyxjQUFjO3NCQURwQixNQUFNO2dCQUdBLGNBQWM7c0JBRHBCLE1BQU07Z0JBR0EsT0FBTztzQkFEYixNQUFNO2dCQUdBLFFBQVE7c0JBRGQsTUFBTTtnQkFHQSxTQUFTO3NCQURmLE1BQU07Z0JBR0EsU0FBUztzQkFEZixNQUFNO2dCQUdBLFlBQVk7c0JBRGxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBFbGVtZW50UmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgR0MgfSBmcm9tICcuLi9pbnB1dG1hbic7XG5pbXBvcnQgeyBwcm92aWRlUGFyZW50LCBHY0NvbXBvbmVudHMgfSBmcm9tICcuL0djQ29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2MtdGFnLWJveCcsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlUGFyZW50KEdjVGFnQm94Q29tcG9uZW50KSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdjVGFnQm94Q29tcG9uZW50KSxcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgR2NUYWdCb3hDb21wb25lbnQgZXh0ZW5kcyBHY0NvbXBvbmVudHM8R0MuSW5wdXRNYW4uR2NUYWdCb3g+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgY29uc3RydWN0b3IocmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKHJlZik7XG4gICAgfVxuICAgIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICAgfVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICAgIH1cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbmFibGVkID0gIWlzRGlzYWJsZWQ7XG4gICAgICAgIGlmICh0aGlzLl9pbUN0cmwpIHtcbiAgICAgICAgICAgIHRoaXMuX2ltQ3RybC5lbmFibGVkID0gdGhpcy5lbmFibGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW1hZ2VBbGlnbm1lbnQ/OiBHQy5JbnB1dE1hbi5HY1RhZ0ltYWdlQWxpZ25tZW50IHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpdGVtcz86IG9iamVjdFtdIHwgc3RyaW5nW10gfCBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9GaWx0ZXI/OiBHQy5JbnB1dE1hbi5BdXRvRmlsdGVyIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93RHJvcERvd25JZk5vSXRlbXM/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duQWxpZ25tZW50TW9kZT86IEdDLklucHV0TWFuLkdjVGFnQm94RHJvcERvd25BbGlnbm1lbnRNb2RlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duSGVpZ2h0PzogbnVtYmVyIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93bldpZHRoPzogbnVtYmVyIHwgbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd0Ryb3BEb3duUmVzaXplPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93bkRpc3BsYXlNZW1iZXJQYXRoPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlaWdodD86IG51bWJlciB8IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3YXRlcm1hcmtOdWxsVGV4dD86IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3YXRlcm1hcmtEaXNwbGF5TnVsbFRleHQ/OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFnVGVtcGxhdGU/OiBzdHJpbmcgfCAoKGFyZ3M6IGFueSkgPT4gSFRNTEVsZW1lbnQpO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbmFibGVkPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5TW9kZT86IEdDLklucHV0TWFuLlRhZ0JveERpc3BsYXlNb2RlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93Q29weVRhZz86IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dEcmFnVGFnPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd1NlbGVjdFRhZz86IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dDdXN0b21UYWc/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFwcGx5Q3VzdG9tVGFnS2V5PzogR0MuSW5wdXRNYW4uS2V5O1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlcGFyYXRvcj86IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0YWdJbWFnZU1lbWJlclBhdGg/OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFnVGV4dE1lbWJlclBhdGg/OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0ltYWdlPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW5IZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluV2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4SGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heFRhZ1dpZHRoPzogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duSXRlbUhlaWdodD86IG51bWJlcjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93bkl0ZW1UZW1wbGF0ZT86IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFnVmFsaWRhdG9yPzogKGFyZ3M6IGFueSkgPT4gYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd1Jlc2l6ZT86IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0Ryb3BEb3duPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB1bmlxdWVUYWdzPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhUYWdDb3VudD86IG51bWJlcjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvU2VsZWN0PzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZT86IChzdHJpbmcgfCBvYmplY3QpW107XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXBwZW5kQ3VzdG9tVGFnVG9Ecm9wRG93bj86IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmxvYXRpbmdMYWJlbERpcmVjdGlvbj86IEdDLklucHV0TWFuLkZsb2F0aW5nTGFiZWxEaXJlY3Rpb247XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmxvYXRpbmdMYWJlbFR5cGU/OiBHQy5JbnB1dE1hbi5GbG9hdGluZ0xhYmVsVHlwZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmbG9hdGluZ0xhYmVsVGV4dD86IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93blR5cGU/OiBHQy5JbnB1dE1hbi5UYWdCb3hEcm9wRG93blR5cGU7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZHJvcERvd25UcmVlQ29uZmlnPzogR0MuSW5wdXRNYW4uVGFnQm94RHJvcERvd25UcmVlQ29uZmlnO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlbHBDb250ZW50Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dIZWxwQnV0dG9uPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93Q2xlYXJCdXR0b24/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duSXRlbUNvdW50SW5Sb3c/OiBudW1iZXI7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRyb3BEb3duQ2xvc2VkOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NUYWdCb3g+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkcm9wRG93bk9wZW5lZDogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjVGFnQm94PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZm9jdXNJbjogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjVGFnQm94PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZm9jdXNPdXQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY1RhZ0JveD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGluc2VydFRhZzogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjVGFnQm94PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVtb3ZlVGFnOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uR2NUYWdCb3g+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY1RhZ0JveD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgaW5pdEdjQ29tcG9uZW50KCk6IHZvaWQge1xuICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmNyZWF0ZVRlbXBsYXRlKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLl9pbUN0cmwgPSBuZXcgR0MuSW5wdXRNYW4uR2NUYWdCb3goZWxlbWVudCwgdGhpcyBhcyBhbnkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBiaW5kRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW1DdHJsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pbUN0cmwuYWRkRXZlbnRMaXN0ZW5lcihHQy5JbnB1dE1hbi5HY1RhZ0JveEV2ZW50LkRyb3BEb3duQ2xvc2VkLCAoZXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyb3BEb3duQ2xvc2VkLmVtaXQoZXZlbnRBcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5hZGRFdmVudExpc3RlbmVyKEdDLklucHV0TWFuLkdjVGFnQm94RXZlbnQuRHJvcERvd25PcGVuZWQsIChldmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZHJvcERvd25PcGVuZWQuZW1pdChldmVudEFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLmFkZEV2ZW50TGlzdGVuZXIoR0MuSW5wdXRNYW4uR2NUYWdCb3hFdmVudC5Gb2N1c0luLCAoZXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzSW4uZW1pdChldmVudEFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLmFkZEV2ZW50TGlzdGVuZXIoR0MuSW5wdXRNYW4uR2NUYWdCb3hFdmVudC5Gb2N1c091dCwgKGV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb2N1c091dC5lbWl0KGV2ZW50QXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwuYWRkRXZlbnRMaXN0ZW5lcihHQy5JbnB1dE1hbi5HY1RhZ0JveEV2ZW50Lkluc2VydFRhZywgKGV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRUYWcuZW1pdChldmVudEFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLmFkZEV2ZW50TGlzdGVuZXIoR0MuSW5wdXRNYW4uR2NUYWdCb3hFdmVudC5SZW1vdmVUYWcsIChldmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlVGFnLmVtaXQoZXZlbnRBcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5hZGRFdmVudExpc3RlbmVyKEdDLklucHV0TWFuLkdjVGFnQm94RXZlbnQuVmFsdWVDaGFuZ2VkLCAoZXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KGV2ZW50QXJncyk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX2ltQ3RybC52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG59Il19