@mescius/inputman.angular
Version:
このパッケージには、Angular用の[InputManJS](https://developer.mescius.jp/inputmanjs)コンポーネントが含まれます。
261 lines • 31.4 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Component, Input, ElementRef, Output, ContentChildren, QueryList, EventEmitter } from '@angular/core';
import { GC } from '../inputman';
import { Property } from '../common';
import { GcComponents } from './GcComponents';
import * as i0 from "@angular/core";
export class GcListBoxColumnComponent {
}
GcListBoxColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcListBoxColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
GcListBoxColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GcListBoxColumnComponent, selector: "gc-list-box-column", inputs: { name: "name", label: "label", width: "width", isValuePath: "isValuePath", visible: "visible", clickSort: "clickSort", contentAlignment: "contentAlignment", headerAlignment: "headerAlignment", showTip: "showTip" }, ngImport: i0, template: ``, isInline: true });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcListBoxColumnComponent, decorators: [{
type: Component,
args: [{
selector: 'gc-list-box-column',
template: ``,
}]
}], propDecorators: { name: [{
type: Input
}], label: [{
type: Input
}], width: [{
type: Input
}], isValuePath: [{
type: Input
}], visible: [{
type: Input
}], clickSort: [{
type: Input
}], contentAlignment: [{
type: Input
}], headerAlignment: [{
type: Input
}], showTip: [{
type: Input
}] } });
export class GcListBoxComponent extends GcComponents {
constructor(ref) {
super(ref);
this.checkedChanged = new EventEmitter();
this.selectedChanged = new EventEmitter();
this.focusedChanged = new EventEmitter();
this.itemClick = new EventEmitter();
this.loadComplete = new EventEmitter();
this.itemsChanged = new EventEmitter();
this.selectedIndexChange = new EventEmitter();
this.checkedIndexChange = new EventEmitter();
this.selectedIndicesChange = new EventEmitter();
this.checkedIndicesChange = new EventEmitter();
this.dropping = new EventEmitter();
this.dropped = new EventEmitter();
this.nodeCollapsed = new EventEmitter();
this.nodeExpanded = new EventEmitter();
}
initGcComponent() {
if (this.columnComponents && this.columnComponents.length > 0) {
this.columns = [];
this.columnComponents.forEach((column) => {
this.columns.push({
name: column.name,
label: column.label,
width: column.width,
isValuePath: column.isValuePath,
visible: column.visible,
clickSort: column.clickSort,
contentAlignment: column.contentAlignment,
headerAlignment: column.headerAlignment,
showTip: column.showTip
});
});
}
var element = document.createElement('select');
this.createTemplate(element);
this._imCtrl = new GC.InputMan.GcListBox(element, this);
}
bindEvent() {
if (!this._imCtrl) {
return;
}
this._imCtrl.addEventListener(GC.InputMan.GcListBoxEvent.CheckedChanged, (eventArgs) => {
this.checkedChanged.emit(eventArgs);
this.checkedIndexChange.emit(this._imCtrl.getCheckedIndices()[0]);
this.checkedIndicesChange.emit(this._imCtrl.getCheckedIndices());
});
this._imCtrl.addEventListener(GC.InputMan.GcListBoxEvent.SelectedChanged, (eventArgs) => {
this.selectedChanged.emit(eventArgs);
this.selectedIndexChange.emit(this._imCtrl.getSelectedIndex());
this.selectedIndicesChange.emit(this._imCtrl.getSelectedIndices());
});
this._imCtrl.addEventListener(GC.InputMan.GcListBoxEvent.FocusedChanged, (eventArgs) => {
this.focusedChanged.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcListBoxEvent.ItemClick, (sender, eventArgs) => {
this.itemClick.emit({ sender: sender, eArgs: eventArgs });
});
this._imCtrl.addEventListener(GC.InputMan.GcListBoxEvent.LoadComplete, (eventArgs) => {
this.loadComplete.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcListBoxEvent.ItemsChanged, (eventArgs) => {
this.itemsChanged.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcListBoxEvent.Dropping, (sender, eventArgs) => {
this.dropping.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcListBoxEvent.Dropped, (sender, eventArgs) => {
this.dropped.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcListBoxEvent.NodeCollapsed, (sender, eventArgs) => {
this.nodeCollapsed.emit(eventArgs);
});
this._imCtrl.addEventListener(GC.InputMan.GcListBoxEvent.NodeExpanded, (sender, eventArgs) => {
this.nodeExpanded.emit(eventArgs);
});
}
}
GcListBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcListBoxComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
GcListBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GcListBoxComponent, selector: "gc-list-box", inputs: { items: "items", columns: "columns", virtualMode: "virtualMode", allowResize: "allowResize", selectionMode: "selectionMode", selectedIndex: "selectedIndex", checkedIndex: "checkedIndex", selectedIndices: "selectedIndices", checkedIndices: "checkedIndices", allowColumnResize: "allowColumnResize", overflow: "overflow", width: "width", height: "height", itemHeight: "itemHeight", checkOnClick: "checkOnClick", visibleItems: "visibleItems", visible: "visible", enabled: "enabled", showTip: "showTip", multiColumn: "multiColumn", colHeaderHeight: "colHeaderHeight", showHeader: "showHeader", valueMemberPath: "valueMemberPath", displayMemberPath: "displayMemberPath", showCheckBox: "showCheckBox", itemTemplate: "itemTemplate", headerTemplate: "headerTemplate", footerTemplate: "footerTemplate", load: "load", pageSize: "pageSize", dragDrop: "dragDrop", dragSource: "dragSource", displayMode: "displayMode", treeViewConfig: "treeViewConfig", itemCountInRow: "itemCountInRow", generatingItem: "generatingItem", selectTemplate: "selectTemplate", formatItem: "formatItem", tipTemplate: "tipTemplate" }, outputs: { checkedChanged: "checkedChanged", selectedChanged: "selectedChanged", focusedChanged: "focusedChanged", itemClick: "itemClick", loadComplete: "loadComplete", itemsChanged: "itemsChanged", selectedIndexChange: "selectedIndexChange", checkedIndexChange: "checkedIndexChange", selectedIndicesChange: "selectedIndicesChange", checkedIndicesChange: "checkedIndicesChange", dropping: "dropping", dropped: "dropped", nodeCollapsed: "nodeCollapsed", nodeExpanded: "nodeExpanded" }, queries: [{ propertyName: "columnComponents", predicate: GcListBoxColumnComponent }], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
__decorate([
Property("", "", false, false),
__metadata("design:type", Number)
], GcListBoxComponent.prototype, "selectedIndex", void 0);
__decorate([
Property("", "", false, false),
__metadata("design:type", Number)
], GcListBoxComponent.prototype, "checkedIndex", void 0);
__decorate([
Property("", "", false, false),
__metadata("design:type", Array)
], GcListBoxComponent.prototype, "selectedIndices", void 0);
__decorate([
Property("", "", false, false),
__metadata("design:type", Array)
], GcListBoxComponent.prototype, "checkedIndices", void 0);
__decorate([
Property("resizeWidth"),
__metadata("design:type", Object)
], GcListBoxComponent.prototype, "width", void 0);
__decorate([
Property("resizeHeight"),
__metadata("design:type", Number)
], GcListBoxComponent.prototype, "height", void 0);
__decorate([
Property('setVisibleItemCount'),
__metadata("design:type", Number)
], GcListBoxComponent.prototype, "visibleItems", void 0);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GcListBoxComponent, decorators: [{
type: Component,
args: [{
selector: 'gc-list-box',
template: ``,
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { items: [{
type: Input
}], columns: [{
type: Input
}], virtualMode: [{
type: Input
}], allowResize: [{
type: Input
}], selectionMode: [{
type: Input
}], selectedIndex: [{
type: Input
}], checkedIndex: [{
type: Input
}], selectedIndices: [{
type: Input
}], checkedIndices: [{
type: Input
}], allowColumnResize: [{
type: Input
}], overflow: [{
type: Input
}], width: [{
type: Input
}], height: [{
type: Input
}], itemHeight: [{
type: Input
}], checkOnClick: [{
type: Input
}], visibleItems: [{
type: Input
}], visible: [{
type: Input
}], enabled: [{
type: Input
}], showTip: [{
type: Input
}], multiColumn: [{
type: Input
}], colHeaderHeight: [{
type: Input
}], showHeader: [{
type: Input
}], valueMemberPath: [{
type: Input
}], displayMemberPath: [{
type: Input
}], showCheckBox: [{
type: Input
}], itemTemplate: [{
type: Input
}], headerTemplate: [{
type: Input
}], footerTemplate: [{
type: Input
}], load: [{
type: Input
}], pageSize: [{
type: Input
}], dragDrop: [{
type: Input
}], dragSource: [{
type: Input
}], displayMode: [{
type: Input
}], treeViewConfig: [{
type: Input
}], itemCountInRow: [{
type: Input
}], generatingItem: [{
type: Input
}], selectTemplate: [{
type: Input
}], formatItem: [{
type: Input
}], tipTemplate: [{
type: Input
}], checkedChanged: [{
type: Output
}], selectedChanged: [{
type: Output
}], focusedChanged: [{
type: Output
}], itemClick: [{
type: Output
}], loadComplete: [{
type: Output
}], itemsChanged: [{
type: Output
}], selectedIndexChange: [{
type: Output
}], checkedIndexChange: [{
type: Output
}], selectedIndicesChange: [{
type: Output
}], checkedIndicesChange: [{
type: Output
}], dropping: [{
type: Output
}], dropped: [{
type: Output
}], nodeCollapsed: [{
type: Output
}], nodeExpanded: [{
type: Output
}], columnComponents: [{
type: ContentChildren,
args: [GcListBoxColumnComponent]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2NMaXN0Qm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29tcG9uZW50cy9HY0xpc3RCb3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNOUMsTUFBTSxPQUFPLHdCQUF3Qjs7c0hBQXhCLHdCQUF3QjswR0FBeEIsd0JBQXdCLDBSQUZ2QixFQUFFOzRGQUVILHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsRUFBRTtpQkFDZjs4QkFLVSxJQUFJO3NCQURWLEtBQUs7Z0JBR0MsS0FBSztzQkFEWCxLQUFLO2dCQUdDLEtBQUs7c0JBRFgsS0FBSztnQkFHQyxXQUFXO3NCQURqQixLQUFLO2dCQUdDLE9BQU87c0JBRGIsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUdDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBR0MsT0FBTztzQkFEYixLQUFLOztBQVFWLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxZQUFtQztJQUV2RSxZQUFZLEdBQWU7UUFDdkIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBeUZSLG1CQUFjLEdBQXdDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekUsb0JBQWUsR0FBd0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxRSxtQkFBYyxHQUF3QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpFLGNB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Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxJQUFJO3NCQURWLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxVQUFVO3NCQURoQixLQUFLO2dCQUdDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxjQUFjO3NCQURwQixLQUFLO2dCQUdDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxVQUFVO3NCQURoQixLQUFLO2dCQUdDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsTUFBTTtnQkFHQSxlQUFlO3NCQURyQixNQUFNO2dCQUdBLGNBQWM7c0JBRHBCLE1BQU07Z0JBR0EsU0FBUztzQkFEZixNQUFNO2dCQUdBLFlBQVk7c0JBRGxCLE1BQU07Z0JBR0EsWUFBWTtzQkFEbEIsTUFBTTtnQkFHQSxtQkFBbUI7c0JBRHpCLE1BQU07Z0JBR0Esa0JBQWtCO3NCQUR4QixNQUFNO2dCQUdBLHFCQUFxQjtzQkFEM0IsTUFBTTtnQkFHQSxvQkFBb0I7c0JBRDFCLE1BQU07Z0JBR0EsUUFBUTtzQkFEZCxNQUFNO2dCQUdBLE9BQU87c0JBRGIsTUFBTTtnQkFHQSxhQUFhO3NCQURuQixNQUFNO2dCQUdBLFlBQVk7c0JBRGxCLE1BQU07Z0JBS0EsZ0JBQWdCO3NCQUR0QixlQUFlO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEVsZW1lbnRSZWYsIE91dHB1dCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR0MgfSBmcm9tICcuLi9pbnB1dG1hbic7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBHY0NvbXBvbmVudHMgfSBmcm9tICcuL0djQ29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2MtbGlzdC1ib3gtY29sdW1uJyxcbiAgICB0ZW1wbGF0ZTogYGAsXG59KVxuZXhwb3J0IGNsYXNzIEdjTGlzdEJveENvbHVtbkNvbXBvbmVudCB7XG5cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdpZHRoOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXNWYWx1ZVBhdGg6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmlzaWJsZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjbGlja1NvcnQ6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29udGVudEFsaWdubWVudDogR0MuSW5wdXRNYW4uQWxpZ25tZW50O1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlYWRlckFsaWdubWVudDogR0MuSW5wdXRNYW4uQWxpZ25tZW50O1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dUaXA6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2MtbGlzdC1ib3gnLFxuICAgIHRlbXBsYXRlOiBgYCxcbn0pXG5leHBvcnQgY2xhc3MgR2NMaXN0Qm94Q29tcG9uZW50IGV4dGVuZHMgR2NDb21wb25lbnRzPEdDLklucHV0TWFuLkdjTGlzdEJveD4ge1xuXG4gICAgY29uc3RydWN0b3IocmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKHJlZik7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXRlbXM6IEFycmF5PG9iamVjdD4gfCBBcnJheTxzdHJpbmc+O1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHVtbnM6IEFycmF5PEdDLklucHV0TWFuLkNvbHVtbkNvbmZpZz47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmlydHVhbE1vZGU6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dSZXNpemU6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VsZWN0aW9uTW9kZTogc3RyaW5nIHwgR0MuSW5wdXRNYW4uTGlzdEJveFNlbGVjdGlvbk1vZGU7XG4gICAgQElucHV0KClcbiAgICBAUHJvcGVydHkoXCJcIiwgXCJcIiwgZmFsc2UsIGZhbHNlKVxuICAgIHB1YmxpYyBzZWxlY3RlZEluZGV4OiBudW1iZXI7XG4gICAgQElucHV0KClcbiAgICBAUHJvcGVydHkoXCJcIiwgXCJcIiwgZmFsc2UsIGZhbHNlKVxuICAgIHB1YmxpYyBjaGVja2VkSW5kZXg6IG51bWJlcjtcbiAgICBASW5wdXQoKVxuICAgIEBQcm9wZXJ0eShcIlwiLCBcIlwiLCBmYWxzZSwgZmFsc2UpXG4gICAgcHVibGljIHNlbGVjdGVkSW5kaWNlczogbnVtYmVyW107XG4gICAgQElucHV0KClcbiAgICBAUHJvcGVydHkoXCJcIiwgXCJcIiwgZmFsc2UsIGZhbHNlKVxuICAgIHB1YmxpYyBjaGVja2VkSW5kaWNlczogbnVtYmVyW107XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dDb2x1bW5SZXNpemU6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgb3ZlcmZsb3c6IHN0cmluZyB8IEdDLklucHV0TWFuLlNjcm9sbEJhcnM7XG4gICAgQFByb3BlcnR5KFwicmVzaXplV2lkdGhcIilcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB3aWR0aDogbnVtYmVyIHwgJ2F1dG8nO1xuICAgIEBQcm9wZXJ0eShcInJlc2l6ZUhlaWdodFwiKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlaWdodDogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW1IZWlnaHQ6IG51bWJlcjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjaGVja09uQ2xpY2s6IGJvb2xlYW47XG4gICAgQFByb3BlcnR5KCdzZXRWaXNpYmxlSXRlbUNvdW50JylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2aXNpYmxlSXRlbXM6IG51bWJlcjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd1RpcDogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtdWx0aUNvbHVtbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb2xIZWFkZXJIZWlnaHQ6IG51bWJlcjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93SGVhZGVyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbHVlTWVtYmVyUGF0aDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc3BsYXlNZW1iZXJQYXRoOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0NoZWNrQm94OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW1UZW1wbGF0ZTogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IHN0cmluZ1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvb3RlclRlbXBsYXRlOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9hZDogKGNvbnRleHQ6IEdDLklucHV0TWFuLklMb2FkQ29udGV4dCkgPT4gdm9pZDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyYWdEcm9wOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRyYWdTb3VyY2U6IEdDLklucHV0TWFuLkxpc3RCb3hEcmFnU291cmNlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc3BsYXlNb2RlOiBHQy5JbnB1dE1hbi5MaXN0Qm94RGlzcGxheU1vZGU7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHJlZVZpZXdDb25maWc6IEdDLklucHV0TWFuLlRyZWVWaWV3Q29uZmlnO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW1Db3VudEluUm93OiBudW1iZXI7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2VuZXJhdGluZ0l0ZW06IChhcmdzOiBHQy5JbnB1dE1hbi5JSXRlbUdlbmVyYXRpbmdBcmdzKSA9PiB2b2lkO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlbGVjdFRlbXBsYXRlOiAoYXJnczogR0MuSW5wdXRNYW4uSVRlbXBsYXRlU2VsZWN0QXJncykgPT4gc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1hdEl0ZW06IChhcmdzOiBHQy5JbnB1dE1hbi5JSXRlbUFyZ3MpID0+IHZvaWQ7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGlwVGVtcGxhdGU6IChjb250ZXh0OiBHQy5JbnB1dE1hbi5MaXN0Qm94VGlwVGVtcGxhdGVDb250ZXh0KSA9PiBIVE1MRWxlbWVudCB8IHN0cmluZztcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2hlY2tlZENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY0xpc3RCb3g+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RlZENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY0xpc3RCb3g+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBmb2N1c2VkQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLkdjTGlzdEJveD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGl0ZW1DbGljazogRXZlbnRFbWl0dGVyPHtzZW5kZXI6IEdDLklucHV0TWFuLkdjTGlzdEJveCwgZUFyZ3M6IGFueX0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBsb2FkQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY0xpc3RCb3g+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBpdGVtc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5HY0xpc3RCb3g+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RlZEluZGV4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2hlY2tlZEluZGV4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc2VsZWN0ZWRJbmRpY2VzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QXJyYXk8bnVtYmVyPj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNoZWNrZWRJbmRpY2VzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QXJyYXk8bnVtYmVyPj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRyb3BwaW5nOiBFdmVudEVtaXR0ZXI8R0MuSW5wdXRNYW4uRHJvcEV2ZW50QXJncz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRyb3BwZWQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5Ecm9wRXZlbnRBcmdzPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgbm9kZUNvbGxhcHNlZDogRXZlbnRFbWl0dGVyPEdDLklucHV0TWFuLklUcmVlVmlld05vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBub2RlRXhwYW5kZWQ6IEV2ZW50RW1pdHRlcjxHQy5JbnB1dE1hbi5JVHJlZVZpZXdOb2RlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXG4gICAgQENvbnRlbnRDaGlsZHJlbihHY0xpc3RCb3hDb2x1bW5Db21wb25lbnQpXG4gICAgcHVibGljIGNvbHVtbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxHY0xpc3RCb3hDb2x1bW5Db21wb25lbnQ+O1xuXG4gICAgcHJvdGVjdGVkIGluaXRHY0NvbXBvbmVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29sdW1uQ29tcG9uZW50cyAmJiB0aGlzLmNvbHVtbkNvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zID0gW107XG4gICAgICAgICAgICB0aGlzLmNvbHVtbkNvbXBvbmVudHMuZm9yRWFjaCgoY29sdW1uOiBHY0xpc3RCb3hDb2x1bW5Db21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGNvbHVtbi5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogY29sdW1uLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY29sdW1uLndpZHRoLFxuICAgICAgICAgICAgICAgICAgICBpc1ZhbHVlUGF0aDogY29sdW1uLmlzVmFsdWVQYXRoLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiBjb2x1bW4udmlzaWJsZSxcbiAgICAgICAgICAgICAgICAgICAgY2xpY2tTb3J0OiBjb2x1bW4uY2xpY2tTb3J0LFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50QWxpZ25tZW50OiBjb2x1bW4uY29udGVudEFsaWdubWVudCxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyQWxpZ25tZW50OiBjb2x1bW4uaGVhZGVyQWxpZ25tZW50LFxuICAgICAgICAgICAgICAgICAgICBzaG93VGlwOiBjb2x1bW4uc2hvd1RpcFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTtcbiAgICAgICAgdGhpcy5jcmVhdGVUZW1wbGF0ZShlbGVtZW50KTtcbiAgICAgICAgdGhpcy5faW1DdHJsID0gbmV3IEdDLklucHV0TWFuLkdjTGlzdEJveChlbGVtZW50LCB0aGlzIGFzIGFueSk7XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgYmluZEV2ZW50KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2ltQ3RybCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW1DdHJsLmFkZEV2ZW50TGlzdGVuZXIoR0MuSW5wdXRNYW4uR2NMaXN0Qm94RXZlbnQuQ2hlY2tlZENoYW5nZWQsIChldmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZENoYW5nZWQuZW1pdChldmVudEFyZ3MpO1xuICAgICAgICAgICAgdGhpcy5jaGVja2VkSW5kZXhDaGFuZ2UuZW1pdCh0aGlzLl9pbUN0cmwuZ2V0Q2hlY2tlZEluZGljZXMoKVswXSk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrZWRJbmRpY2VzQ2hhbmdlLmVtaXQodGhpcy5faW1DdHJsLmdldENoZWNrZWRJbmRpY2VzKCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLmFkZEV2ZW50TGlzdGVuZXIoR0MuSW5wdXRNYW4uR2NMaXN0Qm94RXZlbnQuU2VsZWN0ZWRDaGFuZ2VkLCAoZXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlZC5lbWl0KGV2ZW50QXJncyk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhDaGFuZ2UuZW1pdCh0aGlzLl9pbUN0cmwuZ2V0U2VsZWN0ZWRJbmRleCgpKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRpY2VzQ2hhbmdlLmVtaXQodGhpcy5faW1DdHJsLmdldFNlbGVjdGVkSW5kaWNlcygpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5hZGRFdmVudExpc3RlbmVyKEdDLklucHV0TWFuLkdjTGlzdEJveEV2ZW50LkZvY3VzZWRDaGFuZ2VkLCAoZXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWRDaGFuZ2VkLmVtaXQoZXZlbnRBcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5hZGRFdmVudExpc3RlbmVyKEdDLklucHV0TWFuLkdjTGlzdEJveEV2ZW50Lkl0ZW1DbGljaywgKHNlbmRlciwgZXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLml0ZW1DbGljay5lbWl0KHsgc2VuZGVyOiBzZW5kZXIsIGVBcmdzOiBldmVudEFyZ3MgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwuYWRkRXZlbnRMaXN0ZW5lcihHQy5JbnB1dE1hbi5HY0xpc3RCb3hFdmVudC5Mb2FkQ29tcGxldGUsIChldmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZENvbXBsZXRlLmVtaXQoZXZlbnRBcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2ltQ3RybC5hZGRFdmVudExpc3RlbmVyKEdDLklucHV0TWFuLkdjTGlzdEJveEV2ZW50Lkl0ZW1zQ2hhbmdlZCwgKGV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgdGhpcy5pdGVtc0NoYW5nZWQuZW1pdChldmVudEFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW1DdHJsLmFkZEV2ZW50TGlzdGVuZXIoR0MuSW5wdXRNYW4uR2NMaXN0Qm94RXZlbnQuRHJvcHBpbmcsIChzZW5kZXIsIGV2ZW50QXJnczogR0MuSW5wdXRNYW4uRHJvcEV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgdGhpcy5kcm9wcGluZy5lbWl0KGV2ZW50QXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwuYWRkRXZlbnRMaXN0ZW5lcihHQy5JbnB1dE1hbi5HY0xpc3RCb3hFdmVudC5Ecm9wcGVkLCAoc2VuZGVyLCBldmVudEFyZ3M6IEdDLklucHV0TWFuLkRyb3BFdmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZHJvcHBlZC5lbWl0KGV2ZW50QXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9pbUN0cmwuYWRkRXZlbnRMaXN0ZW5lcihHQy5JbnB1dE1hbi5HY0xpc3RCb3hFdmVudC5Ob2RlQ29sbGFwc2VkLCAoc2VuZGVyLCBldmVudEFyZ3M6IEdDLklucHV0TWFuLklUcmVlVmlld05vZGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMubm9kZUNvbGxhcHNlZC5lbWl0KGV2ZW50QXJncyk7XG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuX2ltQ3RybC5hZGRFdmVudExpc3RlbmVyKEdDLklucHV0TWFuLkdjTGlzdEJveEV2ZW50Lk5vZGVFeHBhbmRlZCwgKHNlbmRlciwgZXZlbnRBcmdzOiBHQy5JbnB1dE1hbi5JVHJlZVZpZXdOb2RlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5vZGVFeHBhbmRlZC5lbWl0KGV2ZW50QXJncyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxufSJdfQ==