UNPKG

ngm-tree-grid

Version:

A tree grid that supports editable fields like Inputs and Checkboxes.

82 lines 27.5 kB
import { Component, EventEmitter, Input, Output, ViewChildren } from '@angular/core'; import { CellHostDirective } from '../../directive/cell-host.directive'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "../../directive/cell-host.directive"; export class TreeGridItemComponent { /** The level of node */ level = 1; data = []; config = { hasSearch: true, columns: [], searchFn: (obj, txt) => { return Object.values(obj) .filter((x) => (typeof x === 'string' || typeof x === 'number')) .map(x => String(x)) .some((y) => y.includes(txt)); } }; getChildrenFn = (obj) => { return obj['children']; }; expand = new EventEmitter(); collapse = new EventEmitter(); cellInputs; cellPanes; constructor() { } openItem(item) { item['isOpen'] = true; this.expand.emit({ item, level: this.level }); } closeItem(item) { item['isOpen'] = false; this.collapse.emit({ item, level: this.level }); } onExpand(e) { this.expand.emit(e); } onCollapse(e) { this.collapse.emit(e); } ngAfterContentInit() { setTimeout(() => { this.cellPanes.forEach((x, i) => { x.viewContainerRef.clear(); x.viewContainerRef.createEmbeddedView(this.cellInputs.get(i % this.cellInputs.length), { $implicit: this.data[Math.floor(i / this.cellInputs.length)] }); }); }, 10); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeGridItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TreeGridItemComponent, selector: "ngm-tree-grid-item", inputs: { level: "level", data: "data", config: "config", getChildrenFn: "getChildrenFn", cellInputs: "cellInputs" }, outputs: { expand: "expand", collapse: "collapse" }, viewQueries: [{ propertyName: "cellPanes", predicate: CellHostDirective, descendants: true }], ngImport: i0, template: "<ng-container>\r\n <div *ngFor=\"let item of data\">\r\n <div class=\"ngm-tree-grid-row\">\r\n <div class=\"ngm-tree-grid-items\">\r\n <div\r\n class=\"ngm-tree-grid-cell\"\r\n *ngFor=\"let column of cellInputs.toArray(); let first = first; let index = index\"\r\n [ngStyle]=\"{\r\n width: config.columns[index].width ? config.columns[index].width + '%' : 100 / (cellInputs.toArray().length) + '%'\r\n }\"\r\n >\r\n <div\r\n class=\"ngm-tree-grid-main\"\r\n *ngIf=\"first\"\r\n [ngStyle]=\"{ 'margin-left': level * 20 + 'px' }\"\r\n >\r\n <div\r\n class=\"ngm-tree-grid-main-icon arrow_up\"\r\n *ngIf=\"\r\n getChildrenFn(item) &&\r\n getChildrenFn(item).length > 0 &&\r\n item.isOpen\r\n \"\r\n (click)=\"closeItem(item)\"\r\n ></div>\r\n <div\r\n *ngIf=\"\r\n getChildrenFn(item) &&\r\n getChildrenFn(item).length > 0 &&\r\n !item.isOpen\r\n \"\r\n (click)=\"openItem(item)\"\r\n class=\"ngm-tree-grid-main-icon arrow_right\"\r\n ></div>\r\n <div\r\n *ngIf=\"!getChildrenFn(item) || getChildrenFn(item).length == 0\"\r\n class=\"ngm-tree-grid-main-icon dash\"\r\n ></div>\r\n <ng-template ngmCellHost></ng-template>\r\n <!-- </span> -->\r\n </div>\r\n <ng-template ngmCellHost *ngIf=\"!first\"></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"getChildrenFn(item) && item.isOpen\">\r\n <ngm-tree-grid-item\r\n [data]=\"getChildrenFn(item)\"\r\n [config]=\"config\"\r\n [level]=\"level + 1\"\r\n [getChildrenFn]=\"getChildrenFn\"\r\n (expand)=\"onExpand($event)\"\r\n (collapse)=\"onCollapse($event)\"\r\n [cellInputs]=\"cellInputs\"\r\n ></ngm-tree-grid-item>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".child{margin-left:20px}.ngm-tree-grid-row{width:100%;display:flex;justify-content:space-between;align-items:center;flex-direction:row}.ngm-tree-grid-row .ngm-tree-grid-items{width:100%;display:flex;justify-content:flex-start;align-items:center;flex-direction:row}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell{min-width:100px;padding:2px;border:1px solid rgba(0,0,0,.1215686275);display:flex;justify-content:flex-start;align-items:center;flex-direction:row;height:40px}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell .ngm-tree-grid-main{display:flex;justify-content:flex-start;align-items:center;flex-direction:row;overflow:hidden}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell .ngm-tree-grid-main .ngm-tree-grid-main-icon{cursor:pointer;width:13px;height:13px}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell .ngm-tree-grid-main .arrow_right{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFwAAABcCAMAAADUMSJqAAAASFBMVEX///9RUVFDQ0PR0dFAQEBJSUmRkZFGRkaOjo7U1NT39/dOTk6bm5vBwcHKysp/f3/l5eVtbW11dXVkZGQ4ODjc3NyhoaHr6+ufeXG1AAABQUlEQVRoge2ZW27DIBREgUATP/JonLb732kt5SNJGf7OyErFLOBoNFwDHkLo6urqamocjqcfE/s75pTT+WJAj59piqtK2RnYJd417Wn6g73Sae/XB3ulJ5R+zPFZrPdliq/0DNJfjbOrOlZwMvdUwUHv10nQKe9DnQtIn0UwXDIf0js1kYcNvN8Ghn6QdLN3Knevd7mq1Mx4J1J79yZjXlVo3qX3iHnfIPc32cUknTo9tPf0xdC194WBa3o+QXSVTJkheJhLDT+/A9wZi3NBnaPY2ACQj8h5IDk3rsaWixxGDd8Iu3FEG30Xo29r3sYZTMZMmKPTedlyXnG1b2gGFTs6vx1r3gi78XuOsHWxAF08ZSVCXWqFcaxE89ZQdYEGln/W6s9aWv6pW0nfwVwUWytubzkfrM8Kwfsg0tXV9T/1CwfjDrXg523+AAAAAElFTkSuQmCC);background-size:cover}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell .ngm-tree-grid-main .arrow_up{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAACFCAMAAABCBMsOAAAAYFBMVEX///9RUVFLS0tOTk5ISEjo6Ojl5eXi4uJbW1vR0dFYWFjv7+9CQkLY2Njb29vs7Oz29vZycnI7OzttbW1oaGiTk5N+fn69vb2MjIzDw8OlpaV4eHhgYGAvLy+dnZ00NDQZisxwAAACwUlEQVR4nO2Z3XqqMBBFJQk/DfSAsVDbevT93/KIxFPBZGaCAW5mXUO+RbaZrbLbMQzDMAzDMAzDMEwUyq+267rjZ72hQ/MtjRJCKKPaZiuJOqmSO6r6s41EnojkFynetpDIikeJXuN9Awk5lrhqmNU1MiGTKVKtHEpeTHfipiFX1UgTl0QfyoonJa2e47BUq+1Grr0S64WSanccVmOd8QXEMWBW2A0ojtVCycA4rIZaeHylCpe4alwW1cgTLA6rsWS1TQsM0lhsNzJBlVgwFFeBARrLVJu7wACNJQ6sr8AAjfjVlqmQOCyxqy0nDCvHbsQNBS4wQCNmtaEF5ideteEFBuxGrFDmxmE14lQbFoesYMkoPxCwAhNF9qNgjderDSswobNdecA0XtwNrMBEcfvP4APReK3aMonEocvbdc0e0Xil2rACE6fMXlliGvMPLFZgQqf/r22wUOZWG1Zg9zgsyEd0ZrVhBSZO6ej6Ejuwc0LBJmZ/RMegoYRXW2qwYVU+34RoBFcbVmBCu/5bjHxS0DiKaRxWAwtFBYSCFZgzjgH0wJKnKF5gXoldE+uklKfQ0zG6G6s2mZMskKexBeYHCUUUFIm3Cl5E++MYwKrNfBIsjuAa04npAjmwsiNYgGX+WGB+kCkq8PcYjQElsDgs4EeUUK81YCEKyk70gKEQZgawF7Q47DJAKIZwVr0NAg0rB4AG4f1W67kbnRMTvKEIyhl5d88LeGI6NTy7Yb4od7cujcA4Bpwaak97BsdWhsYx4Jqi5JXqpzoLj2PgudqkJn/DaE7jm+ftxI1JKFIGPE49egbyxHQwDkVoWq3fNR6eQREKzE/58/Dqtwj9Fn406tprUqq/xxdfXp8vdqVLF76n+fmgE304B+2hk/p736/Uzvvh3tRpHeclfryVGIZhGIZhGIZhGIZhGIZhGIbOP2L7Hmn0yzsaAAAAAElFTkSuQmCC);background-size:cover}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell .ngm-tree-grid-main .dash{background:url(data:image/png;base64,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);background-size:cover}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell:first-child{padding:2px 1px;width:30%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TreeGridItemComponent, selector: "ngm-tree-grid-item", inputs: ["level", "data", "config", "getChildrenFn", "cellInputs"], outputs: ["expand", "collapse"] }, { kind: "directive", type: i2.CellHostDirective, selector: "[ngmCellHost]" }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeGridItemComponent, decorators: [{ type: Component, args: [{ selector: 'ngm-tree-grid-item', template: "<ng-container>\r\n <div *ngFor=\"let item of data\">\r\n <div class=\"ngm-tree-grid-row\">\r\n <div class=\"ngm-tree-grid-items\">\r\n <div\r\n class=\"ngm-tree-grid-cell\"\r\n *ngFor=\"let column of cellInputs.toArray(); let first = first; let index = index\"\r\n [ngStyle]=\"{\r\n width: config.columns[index].width ? config.columns[index].width + '%' : 100 / (cellInputs.toArray().length) + '%'\r\n }\"\r\n >\r\n <div\r\n class=\"ngm-tree-grid-main\"\r\n *ngIf=\"first\"\r\n [ngStyle]=\"{ 'margin-left': level * 20 + 'px' }\"\r\n >\r\n <div\r\n class=\"ngm-tree-grid-main-icon arrow_up\"\r\n *ngIf=\"\r\n getChildrenFn(item) &&\r\n getChildrenFn(item).length > 0 &&\r\n item.isOpen\r\n \"\r\n (click)=\"closeItem(item)\"\r\n ></div>\r\n <div\r\n *ngIf=\"\r\n getChildrenFn(item) &&\r\n getChildrenFn(item).length > 0 &&\r\n !item.isOpen\r\n \"\r\n (click)=\"openItem(item)\"\r\n class=\"ngm-tree-grid-main-icon arrow_right\"\r\n ></div>\r\n <div\r\n *ngIf=\"!getChildrenFn(item) || getChildrenFn(item).length == 0\"\r\n class=\"ngm-tree-grid-main-icon dash\"\r\n ></div>\r\n <ng-template ngmCellHost></ng-template>\r\n <!-- </span> -->\r\n </div>\r\n <ng-template ngmCellHost *ngIf=\"!first\"></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"getChildrenFn(item) && item.isOpen\">\r\n <ngm-tree-grid-item\r\n [data]=\"getChildrenFn(item)\"\r\n [config]=\"config\"\r\n [level]=\"level + 1\"\r\n [getChildrenFn]=\"getChildrenFn\"\r\n (expand)=\"onExpand($event)\"\r\n (collapse)=\"onCollapse($event)\"\r\n [cellInputs]=\"cellInputs\"\r\n ></ngm-tree-grid-item>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".child{margin-left:20px}.ngm-tree-grid-row{width:100%;display:flex;justify-content:space-between;align-items:center;flex-direction:row}.ngm-tree-grid-row .ngm-tree-grid-items{width:100%;display:flex;justify-content:flex-start;align-items:center;flex-direction:row}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell{min-width:100px;padding:2px;border:1px solid rgba(0,0,0,.1215686275);display:flex;justify-content:flex-start;align-items:center;flex-direction:row;height:40px}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell .ngm-tree-grid-main{display:flex;justify-content:flex-start;align-items:center;flex-direction:row;overflow:hidden}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell .ngm-tree-grid-main .ngm-tree-grid-main-icon{cursor:pointer;width:13px;height:13px}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell .ngm-tree-grid-main .arrow_right{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFwAAABcCAMAAADUMSJqAAAASFBMVEX///9RUVFDQ0PR0dFAQEBJSUmRkZFGRkaOjo7U1NT39/dOTk6bm5vBwcHKysp/f3/l5eVtbW11dXVkZGQ4ODjc3NyhoaHr6+ufeXG1AAABQUlEQVRoge2ZW27DIBREgUATP/JonLb732kt5SNJGf7OyErFLOBoNFwDHkLo6urqamocjqcfE/s75pTT+WJAj59piqtK2RnYJd417Wn6g73Sae/XB3ulJ5R+zPFZrPdliq/0DNJfjbOrOlZwMvdUwUHv10nQKe9DnQtIn0UwXDIf0js1kYcNvN8Ghn6QdLN3Knevd7mq1Mx4J1J79yZjXlVo3qX3iHnfIPc32cUknTo9tPf0xdC194WBa3o+QXSVTJkheJhLDT+/A9wZi3NBnaPY2ACQj8h5IDk3rsaWixxGDd8Iu3FEG30Xo29r3sYZTMZMmKPTedlyXnG1b2gGFTs6vx1r3gi78XuOsHWxAF08ZSVCXWqFcaxE89ZQdYEGln/W6s9aWv6pW0nfwVwUWytubzkfrM8Kwfsg0tXV9T/1CwfjDrXg523+AAAAAElFTkSuQmCC);background-size:cover}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell .ngm-tree-grid-main .arrow_up{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAACFCAMAAABCBMsOAAAAYFBMVEX///9RUVFLS0tOTk5ISEjo6Ojl5eXi4uJbW1vR0dFYWFjv7+9CQkLY2Njb29vs7Oz29vZycnI7OzttbW1oaGiTk5N+fn69vb2MjIzDw8OlpaV4eHhgYGAvLy+dnZ00NDQZisxwAAACwUlEQVR4nO2Z3XqqMBBFJQk/DfSAsVDbevT93/KIxFPBZGaCAW5mXUO+RbaZrbLbMQzDMAzDMAzDMEwUyq+267rjZ72hQ/MtjRJCKKPaZiuJOqmSO6r6s41EnojkFynetpDIikeJXuN9Awk5lrhqmNU1MiGTKVKtHEpeTHfipiFX1UgTl0QfyoonJa2e47BUq+1Grr0S64WSanccVmOd8QXEMWBW2A0ojtVCycA4rIZaeHylCpe4alwW1cgTLA6rsWS1TQsM0lhsNzJBlVgwFFeBARrLVJu7wACNJQ6sr8AAjfjVlqmQOCyxqy0nDCvHbsQNBS4wQCNmtaEF5ideteEFBuxGrFDmxmE14lQbFoesYMkoPxCwAhNF9qNgjderDSswobNdecA0XtwNrMBEcfvP4APReK3aMonEocvbdc0e0Xil2rACE6fMXlliGvMPLFZgQqf/r22wUOZWG1Zg9zgsyEd0ZrVhBSZO6ej6Ejuwc0LBJmZ/RMegoYRXW2qwYVU+34RoBFcbVmBCu/5bjHxS0DiKaRxWAwtFBYSCFZgzjgH0wJKnKF5gXoldE+uklKfQ0zG6G6s2mZMskKexBeYHCUUUFIm3Cl5E++MYwKrNfBIsjuAa04npAjmwsiNYgGX+WGB+kCkq8PcYjQElsDgs4EeUUK81YCEKyk70gKEQZgawF7Q47DJAKIZwVr0NAg0rB4AG4f1W67kbnRMTvKEIyhl5d88LeGI6NTy7Yb4od7cujcA4Bpwaak97BsdWhsYx4Jqi5JXqpzoLj2PgudqkJn/DaE7jm+ftxI1JKFIGPE49egbyxHQwDkVoWq3fNR6eQREKzE/58/Dqtwj9Fn406tprUqq/xxdfXp8vdqVLF76n+fmgE304B+2hk/p736/Uzvvh3tRpHeclfryVGIZhGIZhGIZhGIZhGIZhGIbOP2L7Hmn0yzsaAAAAAElFTkSuQmCC);background-size:cover}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell .ngm-tree-grid-main .dash{background:url(data:image/png;base64,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);background-size:cover}.ngm-tree-grid-row .ngm-tree-grid-items .ngm-tree-grid-cell:first-child{padding:2px 1px;width:30%}\n"] }] }], ctorParameters: function () { return []; }, propDecorators: { level: [{ type: Input }], data: [{ type: Input }], config: [{ type: Input }], getChildrenFn: [{ type: Input }], expand: [{ type: Output }], collapse: [{ type: Output }], cellInputs: [{ type: Input }], cellPanes: [{ type: ViewChildren, args: [CellHostDirective] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ncmlkLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdtLXRyZWUtZ3JpZC9zcmMvbGliL2NvbXBvbmVudHMvdHJlZS1ncmlkLWl0ZW0vdHJlZS1ncmlkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdtLXRyZWUtZ3JpZC9zcmMvbGliL2NvbXBvbmVudHMvdHJlZS1ncmlkLWl0ZW0vdHJlZS1ncmlkLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7O0FBUXhFLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsd0JBQXdCO0lBQ2YsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNWLElBQUksR0FBVSxFQUFFLENBQUM7SUFFMUIsTUFBTSxHQUF1QjtRQUMzQixTQUFTLEVBQUUsSUFBSTtRQUNmLE9BQU8sRUFBRSxFQUFFO1FBQ1gsUUFBUSxFQUFFLENBQUMsR0FBUSxFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQ2xDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7aUJBQ3RCLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7aUJBQ3BFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbkIsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDekMsQ0FBQztLQUNGLENBQUE7SUFDUSxhQUFhLEdBQXdCLENBQUMsR0FBUSxFQUFFLEVBQUU7UUFDekQsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUFDO0lBR0YsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBRzNDLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUVwQyxVQUFVLENBQU07SUFHUSxTQUFTLENBQWdDO0lBRzFFLGdCQUFnQixDQUFDO0lBRWpCLFFBQVEsQ0FBQyxJQUFTO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDZixJQUFJO1lBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2xCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBUztRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLElBQUk7WUFDSixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFnQjtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNyQixDQUFDO0lBRUQsVUFBVSxDQUFDLENBQWdCO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3ZCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM5QixDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUUsRUFBRTtvQkFDdEYsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDN0QsQ0FBQyxDQUFBO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO3dHQWpFVSxxQkFBcUI7NEZBQXJCLHFCQUFxQixtUUE0QmxCLGlCQUFpQixnRENyQ2pDLHVtRUEwREEsZzhLRGpEYSxxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usb0JBQW9COzBFQU1yQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVOLE1BQU07c0JBREwsS0FBSztnQkFXRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtOLE1BQU07c0JBREwsTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU07Z0JBR0UsVUFBVTtzQkFBbEIsS0FBSztnQkFHMkIsU0FBUztzQkFBekMsWUFBWTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2VsbEhvc3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY2VsbC1ob3N0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IElOZ21FeHBhbnNpb24sIElOZ21UcmVlR3JpZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmdtLXRyZWUtZ3JpZC1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1ncmlkLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUtZ3JpZC1pdGVtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVHcmlkSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xyXG4gIC8qKiBUaGUgbGV2ZWwgb2Ygbm9kZSAqL1xyXG4gIEBJbnB1dCgpIGxldmVsID0gMTtcclxuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgY29uZmlnOiBJTmdtVHJlZUdyaWRDb25maWcgPSB7XHJcbiAgICBoYXNTZWFyY2g6IHRydWUsXHJcbiAgICBjb2x1bW5zOiBbXSxcclxuICAgIHNlYXJjaEZuOiAob2JqOiBhbnksIHR4dDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKG9iailcclxuICAgICAgICAuZmlsdGVyKCh4OiBhbnkpID0+ICh0eXBlb2YgeCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHggPT09ICdudW1iZXInKSlcclxuICAgICAgICAubWFwKHggPT4gU3RyaW5nKHgpKVxyXG4gICAgICAgIC5zb21lKCh5OiBzdHJpbmcpID0+IHkuaW5jbHVkZXModHh0KSlcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgZ2V0Q2hpbGRyZW5GbjogKG9iajogYW55KSA9PiBhbnlbXSA9IChvYmo6IGFueSkgPT4ge1xyXG4gICAgcmV0dXJuIG9ialsnY2hpbGRyZW4nXTtcclxuICB9O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBleHBhbmQgPSBuZXcgRXZlbnRFbWl0dGVyPElOZ21FeHBhbnNpb24+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGNvbGxhcHNlID0gbmV3IEV2ZW50RW1pdHRlcjxJTmdtRXhwYW5zaW9uPigpO1xyXG5cclxuICBASW5wdXQoKSBjZWxsSW5wdXRzOiBhbnk7XHJcblxyXG5cclxuICBAVmlld0NoaWxkcmVuKENlbGxIb3N0RGlyZWN0aXZlKSBjZWxsUGFuZXMhOiBRdWVyeUxpc3Q8Q2VsbEhvc3REaXJlY3RpdmU+O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgb3Blbkl0ZW0oaXRlbTogYW55KSB7XHJcbiAgICBpdGVtWydpc09wZW4nXSA9IHRydWU7XHJcbiAgICB0aGlzLmV4cGFuZC5lbWl0KHtcclxuICAgICAgaXRlbSxcclxuICAgICAgbGV2ZWw6IHRoaXMubGV2ZWxcclxuICAgIH0pXHJcbiAgfVxyXG4gIGNsb3NlSXRlbShpdGVtOiBhbnkpIHtcclxuICAgIGl0ZW1bJ2lzT3BlbiddID0gZmFsc2U7XHJcbiAgICB0aGlzLmNvbGxhcHNlLmVtaXQoe1xyXG4gICAgICBpdGVtLFxyXG4gICAgICBsZXZlbDogdGhpcy5sZXZlbFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG9uRXhwYW5kKGU6IElOZ21FeHBhbnNpb24pIHtcclxuICAgIHRoaXMuZXhwYW5kLmVtaXQoZSlcclxuICB9XHJcblxyXG4gIG9uQ29sbGFwc2UoZTogSU5nbUV4cGFuc2lvbikge1xyXG4gICAgdGhpcy5jb2xsYXBzZS5lbWl0KGUpXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jZWxsUGFuZXMuZm9yRWFjaCgoeCwgaSkgPT4ge1xyXG4gICAgICAgIHgudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgICAgIHgudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5jZWxsSW5wdXRzLmdldChpICUgdGhpcy5jZWxsSW5wdXRzLmxlbmd0aCkhLCB7XHJcbiAgICAgICAgICAkaW1wbGljaXQ6IHRoaXMuZGF0YVtNYXRoLmZsb29yKGkgLyB0aGlzLmNlbGxJbnB1dHMubGVuZ3RoKV1cclxuICAgICAgICB9KVxyXG4gICAgICB9KTtcclxuICAgIH0sIDEwKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8bmctY29udGFpbmVyPlxyXG4gIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5nbS10cmVlLWdyaWQtcm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJuZ20tdHJlZS1ncmlkLWl0ZW1zXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJuZ20tdHJlZS1ncmlkLWNlbGxcIlxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjZWxsSW5wdXRzLnRvQXJyYXkoKTsgbGV0IGZpcnN0ID0gZmlyc3Q7IGxldCBpbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgd2lkdGg6IGNvbmZpZy5jb2x1bW5zW2luZGV4XS53aWR0aCA/IGNvbmZpZy5jb2x1bW5zW2luZGV4XS53aWR0aCArICclJyA6IDEwMCAvIChjZWxsSW5wdXRzLnRvQXJyYXkoKS5sZW5ndGgpICsgJyUnXHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwibmdtLXRyZWUtZ3JpZC1tYWluXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJmaXJzdFwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ21hcmdpbi1sZWZ0JzogbGV2ZWwgKiAyMCArICdweCcgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cIm5nbS10cmVlLWdyaWQtbWFpbi1pY29uIGFycm93X3VwXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgZ2V0Q2hpbGRyZW5GbihpdGVtKSAmJlxyXG4gICAgICAgICAgICAgICAgZ2V0Q2hpbGRyZW5GbihpdGVtKS5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgICBpdGVtLmlzT3BlblxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlSXRlbShpdGVtKVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBnZXRDaGlsZHJlbkZuKGl0ZW0pICYmXHJcbiAgICAgICAgICAgICAgICBnZXRDaGlsZHJlbkZuKGl0ZW0pLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgICFpdGVtLmlzT3BlblxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JdGVtKGl0ZW0pXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm5nbS10cmVlLWdyaWQtbWFpbi1pY29uIGFycm93X3JpZ2h0XCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhZ2V0Q2hpbGRyZW5GbihpdGVtKSB8fCBnZXRDaGlsZHJlbkZuKGl0ZW0pLmxlbmd0aCA9PSAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm5nbS10cmVlLWdyaWQtbWFpbi1pY29uIGRhc2hcIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ21DZWxsSG9zdD48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8IS0tIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ21DZWxsSG9zdCAqbmdJZj1cIiFmaXJzdFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZ2V0Q2hpbGRyZW5GbihpdGVtKSAmJiBpdGVtLmlzT3BlblwiPlxyXG4gICAgICA8bmdtLXRyZWUtZ3JpZC1pdGVtXHJcbiAgICAgICAgW2RhdGFdPVwiZ2V0Q2hpbGRyZW5GbihpdGVtKVwiXHJcbiAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICAgIFtsZXZlbF09XCJsZXZlbCArIDFcIlxyXG4gICAgICAgIFtnZXRDaGlsZHJlbkZuXT1cImdldENoaWxkcmVuRm5cIlxyXG4gICAgICAgIChleHBhbmQpPVwib25FeHBhbmQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNvbGxhcHNlKT1cIm9uQ29sbGFwc2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2NlbGxJbnB1dHNdPVwiY2VsbElucHV0c1wiXHJcbiAgICAgID48L25nbS10cmVlLWdyaWQtaXRlbT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19