mmhglobal-dynamicform 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/bundles/mmhglobal-dynamicform.umd.js +1 -1
- package/bundles/mmhglobal-dynamicform.umd.js.map +1 -1
- package/bundles/mmhglobal-dynamicform.umd.min.js +2 -2
- package/bundles/mmhglobal-dynamicform.umd.min.js.map +1 -1
- package/esm2015/lib/ztree/ztree.component.js +2 -2
- package/fesm2015/mmhglobal-dynamicform.js +1 -1
- package/fesm2015/mmhglobal-dynamicform.js.map +1 -1
- package/mmhglobal-dynamicform.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -355,7 +355,7 @@ export class ZtreeComponent {
|
|
|
355
355
|
ZtreeComponent.decorators = [
|
|
356
356
|
{ type: Component, args: [{
|
|
357
357
|
selector: "app-ztree",
|
|
358
|
-
template: "<div style=\"width:100%\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <kendo-treeview [nodes]=\"getItems()\"\r\n kendoTreeViewExpandable\r\n kendoTreeViewSelectable\r\n kendoTreeViewDragAndDrop\r\n kendoTreeViewDragAndDropEditing\r\n [isExpanded]=\"isExpanded\"\r\n (collapse)=\"handleCollapse($event)\"\r\n (expand)=\"handleExpand($event)\"\r\n (nodeDrop)=\"handleNodeDrop($event)\"\r\n (nodeDragEnd)=\"handleNodeDragEnd($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [selectedKeys]=\"selectedKeys\"\r\n kendoTreeViewHierarchyBinding\r\n childrenField=\"Value\"\r\n [filterable]=\"data.Filterable\"\r\n textField=\"Name\"\r\n (filterChange)=\"handleFilter($event)\">\r\n\r\n <ng-template kendoTreeViewNodeTemplate let-dataItem #nodetemplate>\r\n\r\n <ion-button *ngIf=\"!!data.OnAddNode\"\r\n (click)=\"onAddNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 2px;\" mat-raised-button color=\"primary\" size=\"medium\"\r\n [hidden]=\"(!!dataItem.OnAddNodeVisible)\"
|
|
358
|
+
template: "<div style=\"width:100%\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <kendo-treeview [nodes]=\"getItems()\"\r\n kendoTreeViewExpandable\r\n kendoTreeViewSelectable\r\n kendoTreeViewDragAndDrop\r\n kendoTreeViewDragAndDropEditing\r\n [isExpanded]=\"isExpanded\"\r\n (collapse)=\"handleCollapse($event)\"\r\n (expand)=\"handleExpand($event)\"\r\n (nodeDrop)=\"handleNodeDrop($event)\"\r\n (nodeDragEnd)=\"handleNodeDragEnd($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [selectedKeys]=\"selectedKeys\"\r\n kendoTreeViewHierarchyBinding\r\n childrenField=\"Value\"\r\n [filterable]=\"data.Filterable\"\r\n textField=\"Name\"\r\n (filterChange)=\"handleFilter($event)\">\r\n\r\n <ng-template kendoTreeViewNodeTemplate let-dataItem #nodetemplate>\r\n\r\n <ion-button *ngIf=\"!!data.OnAddNode\"\r\n (click)=\"onAddNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 2px;\" mat-raised-button color=\"primary\" size=\"medium\"\r\n [hidden]=\"(!!dataItem.OnAddNodeVisible)\"> \r\n <fa-icon [icon]=\"'plus'\"></fa-icon>\r\n </ion-button>\r\n <ion-button *ngIf=\"!!data.OnRemoveNode\" (click)=\"onRemoveNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 15px 0 10px;\" color=\"danger\" mat-raised-button size=\"medium\"\r\n [hidden]=\"(!!dataItem.OnRemoveNodeVisible)\"> \r\n <fa-icon [icon]=\"'minus'\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-label *ngIf=\"data.OnAddNode || data.OnRemoveNode\" style=\"position: absolute; top: 14px;\">\r\n {{ getTemplate(dataItem, data, group) }}\r\n </ion-label>\r\n\r\n <ion-label *ngIf=\"!data.OnAddNode && !data.OnRemoveNode\">\r\n {{ getTemplate(dataItem, data, group) }}\r\n </ion-label>\r\n </ng-template>\r\n </kendo-treeview>\r\n</div>\r\n",
|
|
359
359
|
styles: [":host{--ion-color-primary:#479400;--ion-color-primary-rgb:56,128,255;--ion-color-primary-contrast:#fff;--ion-color-primary-contrast-rgb:255,255,255;--ion-color-primary-shade:#3171e0;--ion-color-primary-tint:#4c8dff}:host ::ng-deep kendo-treeview .k-treeview-leaf{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:3px;border:1px solid #c8dbf5;background-color:#e3ecf8;color:#0a45ab;font-size:13px;cursor:pointer}:host ::ng-deep kendo-treeview .k-treeview-leaf.k-state-selected{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:3px;background-color:#a9c3e8;color:#0a45ab;font-size:13px;cursor:pointer}:host ::ng-deep kendo-treeview .k-treeview-leaf.k-state-hover,:host ::ng-deep kendo-treeview .k-treeview-leaf:hover{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:3px;background-color:#c9daf2;color:#0a45ab;font-size:13px;cursor:pointer}"]
|
|
360
360
|
},] }
|
|
361
361
|
];
|
|
@@ -366,4 +366,4 @@ ZtreeComponent.propDecorators = {
|
|
|
366
366
|
form: [{ type: Input }],
|
|
367
367
|
nodetemplate: [{ type: ViewChild, args: ["nodetemplate", { static: true },] }]
|
|
368
368
|
};
|
|
369
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRyZWUvenRyZWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVN2RCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNPLGdCQUFnQixFQUF5QixvQkFBb0IsRUFFMUUsTUFBTSxpQkFBaUIsQ0FBQztBQU96QixNQUFNLE9BQU8sY0FBYztJQW1CekI7UUFkQSxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBQ3ZCLHFCQUFnQixHQUFRLElBQUksQ0FBQztRQUM3QiwwQkFBMEI7UUFDMUIscUJBQXFCO1FBQ3JCLHlCQUF5QjtRQUN6QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDckIsVUFBSyxHQUFHLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUVoQyx3QkFBbUIsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUEyQzFDLGVBQVUsR0FBRyxDQUFDLFFBQWEsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUNqRCxzQkFBc0I7WUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkQsZUFBZTtRQUNuQixDQUFDLENBQUE7UUFFTSxlQUFVLEdBQUcsQ0FBQyxLQUFZLEVBQUUsS0FB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KioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQge1xyXG4gIFRyZWVJdGVtRHJvcEV2ZW50LFxyXG4gIFRyZWVJdGVtRHJhZ0V2ZW50XHJcbn0gZnJvbSBcIkBwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXRyZWV2aWV3XCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LCBaQ29tcG9uZW50UHJvcGVydGllcyxcclxuICBaRmllbGQsIFpHcm91cCwgIFpUcmVlVGVtcGxhdGVQYXJhbXNcclxufSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtenRyZWVcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3p0cmVlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3p0cmVlLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBadHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBWaWV3Q2hpbGQoXCJub2RldGVtcGxhdGVcIiwgeyBzdGF0aWM6IHRydWUgfSkgbm9kZXRlbXBsYXRlOiBFbGVtZW50UmVmO1xyXG4gIGl0ZW1zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgb3JpZ2luYWxJdGVtTGlzdDogYW55ID0gbnVsbDtcclxuICAvLyBtb2RlbHpEYXRhOiBBcnJheTxhbnk+O1xyXG4gIC8vIG1vZGVsTmFtZTogc3RyaW5nO1xyXG4gIC8vIGRhdGFTZXQ6IGFueVtdID0gbnVsbDtcclxuICBpc05vZGVEcm9wID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBub2RlQ291bnRlciA9IDE7XHJcbiAgcHJpdmF0ZSBjbGlja0FjdE5hbWUgPSBudWxsO1xyXG4gIHB1YmxpYyBzdGF0ZSA9IHsgZXhwYW5kZWRrZXlzOiBbXSB9O1xyXG4gIHB1YmxpYyBpdGVtSW5kZXggPSBbXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRLZXlzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLlRyZWV2aWV3RXhwYW5kQWxsKSB7XHJcbiAgICAgIHRoaXMuZXhwYW5kQWxsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAvLyBjb25zdCBjb21wb25lbnRJZCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0Q29tcG9uZW50SWQodGhpcy5kYXRhKTtcclxuICAgIC8vIHRoaXMuZ3JvdXAuekNvbXBvbmVudHNbY29tcG9uZW50SWRdID0gdGhpcztcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtcygpIHtcclxuICAgIC8vIGlmICh0aGlzLm1vZGVsTmFtZSkge1xyXG4gICAgLy8gICByZXR1cm4gdGhpcy5ncm91cFt0aGlzLm1vZGVsTmFtZV07XHJcbiAgICAvLyB9XHJcbiAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5kYXRhLlZhbHVlO1xyXG4gICAgaWYgKGZpZWxkVmFsdWUpIHtcclxuICAgICAgdGhpcy5ub2RlQ291bnRlciA9IDE7XHJcbiAgICAgIGNvbnN0IGZWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuVmFsdWUpO1xyXG4gICAgICByZXR1cm4gZlZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKCd6dHJlZSBmaWVsZCBWYWx1ZSBpcyBub3Qgc2V0IGNvcnJlY3RseS4gJywgZmllbGRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICAvLyBpZiAoZmllbGRWYWx1ZSAmJiBmaWVsZFZhbHVlLnN0YXJ0c1dpdGgoJ2dyb3VwLicpKSB7XHJcbiAgICAvLyAgIC8vIGNvbnN0IG5ld0RhdGFTZXQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YVNldCkpO1xyXG4gICAgLy8gICBjb25zdCBuYW1lID0gZmllbGRWYWx1ZS5zbGljZSg2KTtcclxuICAgIC8vICAgdGhpcy5ub2RlQ291bnRlciA9IDE7XHJcbiAgICAvLyAgIC8vIHRoaXMuZ3JvdXBbbmFtZV0gPSB0aGlzLnNldFZhbHVlUHJvcFRvTnVsbEF0TGVhZkxlYXZlKHRoaXMuZ3JvdXBbbmFtZV0pO1xyXG4gICAgLy8gICB0aGlzLm1vZGVsTmFtZSA9IG5hbWU7XHJcbiAgICAvLyAgIHJldHVybiB0aGlzLmdyb3VwW25hbWVdO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgY29uc29sZS53YXJuKCd6dHJlZSBmaWVsZCBWYWx1ZSBpcyBub3Qgc2V0IGNvcnJlY3RseS4gJywgZmllbGRWYWx1ZSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNFeHBhbmRlZCA9IChkYXRhSXRlbTogYW55LCBpbmRleDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGluZGV4KTtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuZXhwYW5kZWRrZXlzLmluZGV4T2YoaW5kZXgpID4gLTE7XHJcbiAgICAgIC8vIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cGFuZE5vZGUgPSAoZmllbGQ6c3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBzZXRBc1NlbGVjdGVkOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLml0ZW1JbmRleCA9IFtdO1xyXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuXHJcbiAgICB0aGlzLnNlYXJjaE5vZGVJbmRleChub2RlLCB2YWx1ZSwgJycsIGZpZWxkKTtcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaXRlbUluZGV4O1xyXG4gICAgaWYgKHNldEFzU2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEtleXMgPSBpbmRleDtcclxuICAgIH1cclxuICAgIGNvbnN0IGluZGV4QXJyID0gW107XHJcbiAgICBpbmRleC5mb3JFYWNoKChpOmFueSkgPT4ge1xyXG4gICAgICBjb25zdCBhcnIgPSBpLnNwbGl0KCdfJyk7XHJcbiAgICAgIGxldCBpbmRleHMgPSBcIlwiO1xyXG4gICAgICBhcnIuZm9yRWFjaCgoeDphbnkpID0+IHtcclxuICAgICAgICBpbmRleHMgPSBpbmRleHMuY29uY2F0KFwiX1wiKS5jb25jYXQoeCk7XHJcbiAgICAgICAgaW5kZXhBcnIucHVzaChpbmRleHMuc3Vic3RyaW5nKDEpKTtcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zdGF0ZS5leHBhbmRlZGtleXMgPSB0aGlzLnN0YXRlLmV4cGFuZGVka2V5cy5jb25jYXQoaW5kZXhBcnIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbGxhcHNlTm9kZSA9IChmaWVsZDpzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGNvbGxhcHNlUGFyZW50OiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLml0ZW1JbmRleCA9IFtdO1xyXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuXHJcbiAgICB0aGlzLnNlYXJjaE5vZGVJbmRleChub2RlLCB2YWx1ZSwgJycsIGZpZWxkKTtcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaXRlbUluZGV4O1xyXG4gICAgbGV0IGluZGV4QXJyID0gW107XHJcbiAgICBpZiAoY29sbGFwc2VQYXJlbnQpIHtcclxuICAgICAgaW5kZXguZm9yRWFjaCgoaTphbnkpID0+IHtcclxuICAgICAgICBjb25zdCBhcnIgPSBpLnNwbGl0KCdfJyk7XHJcbiAgICAgICAgbGV0IGluZGV4cyA9IFwiXCI7XHJcbiAgICAgICAgYXJyLmZvckVhY2goKHg6YW55KSA9PiB7XHJcbiAgICAgICAgICBpbmRleHMgPSBpbmRleHMuY29uY2F0KFwiX1wiKS5jb25jYXQoeCk7XHJcbiAgICAgICAgICBpbmRleEFyci5wdXNoKGluZGV4cy5zdWJzdHJpbmcoMSkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaW5kZXhBcnIgPSBpbmRleDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXRlLmV4cGFuZGVka2V5cyA9IHRoaXMuc3RhdGUuZXhwYW5kZWRrZXlzLmZpbHRlcih2ID0+IHtcclxuICAgICAgcmV0dXJuICFpbmRleEFyci5pbmNsdWRlcyh2KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlYXJjaE5vZGVJbmRleChub2RlOiBhbnksIHZhbHVlOiBzdHJpbmcsIGtleTogc3RyaW5nLCBmaWVsZDogc3RyaW5nKSB7XHJcbiAgICBpZiAoa2V5KSB7XHJcbiAgICAgIGtleSA9IGtleSArICdfJztcclxuICAgIH1cclxuICAgIG5vZGUuZm9yRWFjaCgoZDogYW55LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgaWYgKGRbZmllbGRdID09PSBOdW1iZXIodmFsdWUpIHx8IGRbZmllbGRdID09PSB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaXRlbUluZGV4ID0gdGhpcy5pdGVtSW5kZXguY29uY2F0KGtleSArICcnICsgaSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZC5WYWx1ZSkpIHtcclxuICAgICAgICBjb25zdCBrID0ga2V5ICsgJycgKyBpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoTm9kZUluZGV4KGQuVmFsdWUsIHZhbHVlLCBrLCBmaWVsZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cGFuZEFsbCA9ICgpID0+IHtcclxuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICB0aGlzLmV4cGFuZEFsbE5vZGUobm9kZSwgJycpO1xyXG4gICAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbGxhcHNlQWxsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zdGF0ZS5leHBhbmRlZGtleXMgPSBbXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhwYW5kQWxsTm9kZShub2RlOiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICBpZiAoa2V5KSB7XHJcbiAgICAgIGtleSA9IGtleSArICdfJztcclxuICAgIH1cclxuICAgIG5vZGUuZm9yRWFjaCgoZDogYW55LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZC5WYWx1ZSkpIHtcclxuICAgICAgICBjb25zdCBrID0ga2V5ICsgJycgKyBpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUuZXhwYW5kZWRrZXlzID0gdGhpcy5zdGF0ZS5leHBhbmRlZGtleXMuY29uY2F0KGspO1xyXG4gICAgICAgIHRoaXMuZXhwYW5kQWxsTm9kZShkLlZhbHVlLCBrKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ29sbGFwc2Uobm9kZSkge1xyXG4gICAgICB0aGlzLnN0YXRlLmV4cGFuZGVka2V5cyA9IHRoaXMuc3RhdGUuZXhwYW5kZWRrZXlzLmZpbHRlcihrID0+IGsgIT09IG5vZGUuaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUV4cGFuZChub2RlKSB7XHJcbiAgICAgIHRoaXMuc3RhdGUuZXhwYW5kZWRrZXlzID0gdGhpcy5zdGF0ZS5leHBhbmRlZGtleXMuY29uY2F0KG5vZGUuaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEVuYWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5ID0gIXN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWaXNpYmxlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSA9IHN0YXR1cztcclxuICAgIHRoaXMuZGF0YS5WaXNpYmxlID0gc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFJlcXVpcmUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZCA9IHN0YXR1cztcclxuICAgIFpDb21wb25lbnRIZWxwZXIuY2hhbmdlVmFsaWRhdG9yKHN0YXR1cywgdGhpcy5ncm91cCwgdGhpcy5kYXRhLlZhbHVlLCB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVtcGxhdGUoZGF0YUl0ZW06IGFueSwgZGF0YTogWkZpZWxkLCBncm91cDogWkdyb3VwKSB7XHJcbiAgICBpZiAoZGF0YS5JdGVtVGVtcGxhdGUpIHtcclxuICAgICAgY29uc3QgZ2V0VGVtcGxhdGVGdW5jID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKFxyXG4gICAgICAgIHRoaXMsXHJcbiAgICAgICAgZGF0YS5JdGVtVGVtcGxhdGVcclxuICAgICAgKTtcclxuICAgICAgaWYgKCFnZXRUZW1wbGF0ZUZ1bmMpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICBcIlRoZSAoXCIgK1xyXG4gICAgICAgICAgZGF0YS5JdGVtVGVtcGxhdGUgK1xyXG4gICAgICAgICAgXCIpIGlzIG5vdCBkZWZpbmVkIGNvcnJlY3RseS4gVmFsdWUgY29udGFpbnM6IFwiLFxyXG4gICAgICAgICAgZ2V0VGVtcGxhdGVGdW5jXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBnZXRUZW1wbGF0ZUZ1bmMoe1xyXG4gICAgICAgIGRhdGFJdGVtLFxyXG4gICAgICAgIGRhdGEsXHJcbiAgICAgICAgZ3JvdXBcclxuICAgICAgfSBhcyBaVHJlZVRlbXBsYXRlUGFyYW1zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKGRhdGFJdGVtKVxyXG4gICAgICAgIC5maWx0ZXIoZGF0YSA9PiB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIilcclxuICAgICAgICAuam9pbihcIiwgXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29udmVydFRvVHJlZUl0ZW1zKGRhdGFTZXQ6IGFueVtdKSB7XHJcbiAgICBjb25zdCB0b1RyZWVJdGVtczogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IHRyZWVJbmRleDogYW55ID0ge307XHJcbiAgICBjb25zdCBwZW5kaW5nSXRlbXM6IGFueVtdID0gW107XHJcbiAgICBkYXRhU2V0LmZvckVhY2goKGQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoIWQuUGFyZW50SWQpIHtcclxuICAgICAgICB0b1RyZWVJdGVtcy5wdXNoKGQpO1xyXG4gICAgICAgIHRyZWVJbmRleFtkLklkXSA9IGQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRyZWVJbmRleFtkLlBhcmVudElkXSkge1xyXG4gICAgICAgICAgY29uc3QgcGFyZW50SXRlbSA9IHRyZWVJbmRleFtkLlBhcmVudElkXTtcclxuICAgICAgICAgIGlmICghcGFyZW50SXRlbS5WYWx1ZSkge1xyXG4gICAgICAgICAgICBwYXJlbnRJdGVtLlZhbHVlID0gW107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBwYXJlbnRJdGVtLlZhbHVlLnB1c2goZCk7XHJcbiAgICAgICAgICB0cmVlSW5kZXhbZC5JZF0gPSBkO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwZW5kaW5nSXRlbXMucHVzaChkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChwZW5kaW5nSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBwZW5kaW5nSXRlbXMuZm9yRWFjaCgoZDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHRyZWVJbmRleFtkLlBhcmVudElkXSkge1xyXG4gICAgICAgICAgY29uc3QgcGFyZW50SXRlbSA9IHRyZWVJbmRleFtkLlBhcmVudElkXTtcclxuICAgICAgICAgIHBhcmVudEl0ZW0uVmFsdWUucHVzaChkKTtcclxuICAgICAgICAgIHRyZWVJbmRleFtkLklkXSA9IGQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG9UcmVlSXRlbXM7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGlvbkNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBsZXQgdGFyZ2V0TmFtZTogc3RyaW5nO1xyXG4gICAgaWYgKHRoaXMuY2xpY2tBY3ROYW1lKSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5jbGlja0FjdE5hbWUpIHtcclxuICAgICAgICBjYXNlICdBZGROb2RlJzpcclxuICAgICAgICAgIHRhcmdldE5hbWUgPSB0aGlzLmRhdGEuT25BZGROb2RlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnUmVtb3ZlTm9kZSc6XHJcbiAgICAgICAgICB0YXJnZXROYW1lID0gdGhpcy5kYXRhLk9uUmVtb3ZlTm9kZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0YXJnZXROYW1lID0gdGhpcy5kYXRhLk9uSXRlbUNsaWNrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbGlja0FjdE5hbWUgPSBudWxsO1xyXG4gICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICB0eXBlOiBcInp0cmVlX29uU2VsZWN0aW9uQ2hhbmdlXCIsXHJcbiAgICAgIHRhcmdldDogdGFyZ2V0TmFtZSxcclxuICAgICAgZGF0YTogZXZlbnQuZGF0YUl0ZW0sXHJcbiAgICAgIGV2ZW50OiBldmVudC5pbmRleFxyXG4gICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25BZGROb2RlKGV2ZW50OiBhbnksIGRhdGFJdGVtOiBhbnksIGRhdGE6IFpGaWVsZCwgZ3JvdXA6IFpHcm91cCkge1xyXG4gICAgdGhpcy5jbGlja0FjdE5hbWUgPSAnQWRkTm9kZSc7XHJcbiAgICAvLyBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIC8vIGlmICh0aGlzLmRhdGEuT25BZGROb2RlKSB7XHJcbiAgICAvLyAgIGNvbnN0IGZ1bmMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLk9uQWRkTm9kZSk7XHJcbiAgICAvLyAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgLy8gICAgIGNvbnN0IGNhbGxGdW5jID0gZnVuYy5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgIC8vICAgICBjYWxsRnVuYyhkYXRhSXRlbSwgZGF0YSwgZ3JvdXAsIGV2ZW50LmluZGV4KTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBvblJlbW92ZU5vZGUoZXZlbnQ6IGFueSwgZGF0YUl0ZW06IGFueSwgZGF0YTogWkZpZWxkLCBncm91cDogWkdyb3VwKSB7XHJcbiAgICB0aGlzLmNsaWNrQWN0TmFtZSA9ICdSZW1vdmVOb2RlJztcclxuICB9XHJcblxyXG4gIG9uRWRpdE5vZGUoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5PbkVkaXROb2RlKSB7XHJcbiAgICAgIGNvbnN0IGZ1bmMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLk9uRWRpdE5vZGUpO1xyXG4gICAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgICAgY2FsbEZ1bmMoZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZU5vZGVEcm9wKGV2ZW50OiBUcmVlSXRlbURyb3BFdmVudCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5kYXRhLkRyYWdnYWJsZSA9PT0gZmFsc2Upe1xyXG4gICAgICBldmVudC5zZXRWYWxpZChmYWxzZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTm9kZURyb3AgPSB0cnVlO1xyXG4gICAgY29uc3QgZHJvcEhhbmRsZXIgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwoXHJcbiAgICAgIHRoaXMsXHJcbiAgICAgIHRoaXMuZGF0YS5PbkRyb3BcclxuICAgICk7XHJcbiAgICBpZiAodHlwZW9mIGRyb3BIYW5kbGVyID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBkcm9wSGFuZGxlci5iaW5kKHRoaXMpO1xyXG4gICAgICBjYWxsRnVuYyhldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcHJldmVudCBkcm9wIGlmIGF0dGVtcHRpbmcgdG8gYWRkIHRvIGZpbGVcclxuICAgIC8vIGlmIChpc0ZpbGUoZXZlbnQuZGVzdGluYXRpb25JdGVtLml0ZW0uZGF0YUl0ZW0udGV4dCkgJiYgZXZlbnQuZHJvcFBvc2l0aW9uID09PSBEcm9wUG9zaXRpb24uT3Zlcikge1xyXG4gICAgLy8gICAgIGV2ZW50LnNldFZhbGlkKGZhbHNlKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZU5vZGVEcmFnRW5kKGV2ZW50OiBUcmVlSXRlbURyYWdFdmVudCkge1xyXG4gICAgaWYgKCF0aGlzLmlzTm9kZURyb3ApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc05vZGVEcm9wID0gZmFsc2U7XHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdJdGVtczogJywgdGhpcy5pdGVtcyk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBbXTtcclxuICAgIHRoaXMudXBkYXRlQ2hhbmdlVG9EYXRhU2V0KGl0ZW1zLCB0YXJnZXQpO1xyXG4gICAgLy8gdGhpcy5kYXRhU2V0ID0gdGFyZ2V0O1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRNb2RlbFZhbHVlKHRoaXMuZGF0YS5WYWx1ZSwgdGFyZ2V0LCB0aGlzLmdyb3VwKTtcclxuICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgdHlwZTogXCJ6dHJlZS1vblRyZWVOb2RlRHJhZ0VuZFwiLFxyXG4gICAgICB0YXJnZXQ6IHRoaXMuZGF0YS5PbkNoYW5nZSxcclxuICAgICAgZGF0YTogdGFyZ2V0XHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUNoYW5nZVRvRGF0YVNldChzb3VyY2U6IEFycmF5PGFueT4sIHRhcmdldDogQXJyYXk8YW55Pikge1xyXG4gICAgc291cmNlLmZvckVhY2goZCA9PiB7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGQuVmFsdWUpKSB7XHJcbiAgICAgICAgY29uc3QgdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZCkpO1xyXG4gICAgICAgIHQuVmFsdWUgPSBbXTtcclxuICAgICAgICB0YXJnZXQucHVzaCh0KTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUNoYW5nZVRvRGF0YVNldChkLlZhbHVlLCB0LlZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCB0ID0gT2JqZWN0LmFzc2lnbih7fSwgZCk7XHJcbiAgICAgICAgdC5WYWx1ZSA9IHQuX0RhdGFWYWx1ZTtcclxuICAgICAgICBkZWxldGUgdC5fRGF0YVZhbHVlO1xyXG4gICAgICAgIHRhcmdldC5wdXNoKHQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gc2VhcmNoIGZlYXR1cmUgLSBmaWx0ZXJhYmxlOiB0cnVlXHJcbiAgcHVibGljIGhhbmRsZUZpbHRlcih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICB0aGlzLml0ZW1zID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5WYWx1ZSk7XHJcbiAgICAgIGlmICh0aGlzLm9yaWdpbmFsSXRlbUxpc3QgPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxJdGVtTGlzdCA9IHRoaXMuaXRlbXMubWFwKGl0ZW0gPT4gT2JqZWN0LmFzc2lnbih7fSwgaXRlbSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pdGVtcyA9IHRoaXMub3JpZ2luYWxJdGVtTGlzdC5tYXAoaXRlbSA9PiBPYmplY3QuYXNzaWduKHt9LCBpdGVtKSk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnNlYXJjaCh0aGlzLml0ZW1zLCB2YWx1ZSk7XHJcbiAgICBjb25zdCBncmlkVmFsdWUgPSB0aGlzLmZpbHRlclByZWZpeCh0aGlzLmRhdGEuVmFsdWUpO1xyXG4gICAgdGhpcy5ncm91cFtncmlkVmFsdWVdID0gdGFyZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJQcmVmaXgodmFsdWVOYW1lOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZU5hbWUuc3RhcnRzV2l0aCgnekRhdGEuJykpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlTmFtZS5zbGljZSg2KTtcclxuICAgIH1cclxuICAgIGlmICh2YWx1ZU5hbWUuc3RhcnRzV2l0aCgnZ3JvdXAuekRhdGEuJykpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlTmFtZS5zbGljZSgxMik7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWVOYW1lLnN0YXJ0c1dpdGgoJ2dyb3VwLicpKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZU5hbWUuc2xpY2UoNik7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWVOYW1lKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZU5hbWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlYXJjaChpdGVtczogYW55W10sIHRlcm06IHN0cmluZyk6IGFueVtdIHtcclxuICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5jb250YWlucyhpdGVtLk5hbWUsIHRlcm0pKSB7XHJcbiAgICAgICAgYWNjLnB1c2goaXRlbSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXRlbS5WYWx1ZSAmJiBpdGVtLlZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBuZXdJdGVtcyA9IHRoaXMuc2VhcmNoKGl0ZW0uVmFsdWUsIHRlcm0pO1xyXG5cclxuICAgICAgICBpZiAobmV3SXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdmFyIGZpbHRlckl0ZW0gPSBpdGVtO1xyXG4gICAgICAgICAgZmlsdGVySXRlbS5WYWx1ZSA9IG5ld0l0ZW1zO1xyXG4gICAgICAgICAgYWNjLnB1c2goZmlsdGVySXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnRhaW5zKHRleHQ6IHN0cmluZywgdGVybTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoKHRlcm0gfHwgXCJcIikudG9Mb3dlckNhc2UoKSkgPj0gMDtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBzZWFyY2ggZmVhdHVyZSAtIGZpbHRlcmFibGU6IHRydWVcclxufVxyXG4iXX0=
|
|
369
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRyZWUvenRyZWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVN2RCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNPLGdCQUFnQixFQUF5QixvQkFBb0IsRUFFMUUsTUFBTSxpQkFBaUIsQ0FBQztBQU96QixNQUFNLE9BQU8sY0FBYztJQW1CekI7UUFkQSxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBQ3ZCLHFCQUFnQixHQUFRLElBQUksQ0FBQztRQUM3QiwwQkFBMEI7UUFDMUIscUJBQXFCO1FBQ3JCLHlCQUF5QjtRQUN6QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDckIsVUFBSyxHQUFHLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUVoQyx3QkFBbUIsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUEyQzFDLGVBQVUsR0FBRyxDQUFDLFFBQWEsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUNqRCxzQkFBc0I7WUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkQsZUFBZTtRQUNuQixDQUFDLENBQUE7UUFFTSxlQUFVLEdBQUcsQ0FBQyxLQUFZLEVBQUUsS0FB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KioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQge1xyXG4gIFRyZWVJdGVtRHJvcEV2ZW50LFxyXG4gIFRyZWVJdGVtRHJhZ0V2ZW50XHJcbn0gZnJvbSBcIkBwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXRyZWV2aWV3XCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LCBaQ29tcG9uZW50UHJvcGVydGllcyxcclxuICBaRmllbGQsIFpHcm91cCwgIFpUcmVlVGVtcGxhdGVQYXJhbXNcclxufSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtenRyZWVcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3p0cmVlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3p0cmVlLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBadHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBWaWV3Q2hpbGQoXCJub2RldGVtcGxhdGVcIiwgeyBzdGF0aWM6IHRydWUgfSkgbm9kZXRlbXBsYXRlOiBFbGVtZW50UmVmO1xyXG4gIGl0ZW1zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgb3JpZ2luYWxJdGVtTGlzdDogYW55ID0gbnVsbDtcclxuICAvLyBtb2RlbHpEYXRhOiBBcnJheTxhbnk+O1xyXG4gIC8vIG1vZGVsTmFtZTogc3RyaW5nO1xyXG4gIC8vIGRhdGFTZXQ6IGFueVtdID0gbnVsbDtcclxuICBpc05vZGVEcm9wID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBub2RlQ291bnRlciA9IDE7XHJcbiAgcHJpdmF0ZSBjbGlja0FjdE5hbWUgPSBudWxsO1xyXG4gIHB1YmxpYyBzdGF0ZSA9IHsgZXhwYW5kZWRrZXlzOiBbXSB9O1xyXG4gIHB1YmxpYyBpdGVtSW5kZXggPSBbXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRLZXlzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLlRyZWV2aWV3RXhwYW5kQWxsKSB7XHJcbiAgICAgIHRoaXMuZXhwYW5kQWxsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAvLyBjb25zdCBjb21wb25lbnRJZCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0Q29tcG9uZW50SWQodGhpcy5kYXRhKTtcclxuICAgIC8vIHRoaXMuZ3JvdXAuekNvbXBvbmVudHNbY29tcG9uZW50SWRdID0gdGhpcztcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtcygpIHtcclxuICAgIC8vIGlmICh0aGlzLm1vZGVsTmFtZSkge1xyXG4gICAgLy8gICByZXR1cm4gdGhpcy5ncm91cFt0aGlzLm1vZGVsTmFtZV07XHJcbiAgICAvLyB9XHJcbiAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5kYXRhLlZhbHVlO1xyXG4gICAgaWYgKGZpZWxkVmFsdWUpIHtcclxuICAgICAgdGhpcy5ub2RlQ291bnRlciA9IDE7XHJcbiAgICAgIGNvbnN0IGZWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuVmFsdWUpO1xyXG4gICAgICByZXR1cm4gZlZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKCd6dHJlZSBmaWVsZCBWYWx1ZSBpcyBub3Qgc2V0IGNvcnJlY3RseS4gJywgZmllbGRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICAvLyBpZiAoZmllbGRWYWx1ZSAmJiBmaWVsZFZhbHVlLnN0YXJ0c1dpdGgoJ2dyb3VwLicpKSB7XHJcbiAgICAvLyAgIC8vIGNvbnN0IG5ld0RhdGFTZXQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YVNldCkpO1xyXG4gICAgLy8gICBjb25zdCBuYW1lID0gZmllbGRWYWx1ZS5zbGljZSg2KTtcclxuICAgIC8vICAgdGhpcy5ub2RlQ291bnRlciA9IDE7XHJcbiAgICAvLyAgIC8vIHRoaXMuZ3JvdXBbbmFtZV0gPSB0aGlzLnNldFZhbHVlUHJvcFRvTnVsbEF0TGVhZkxlYXZlKHRoaXMuZ3JvdXBbbmFtZV0pO1xyXG4gICAgLy8gICB0aGlzLm1vZGVsTmFtZSA9IG5hbWU7XHJcbiAgICAvLyAgIHJldHVybiB0aGlzLmdyb3VwW25hbWVdO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgY29uc29sZS53YXJuKCd6dHJlZSBmaWVsZCBWYWx1ZSBpcyBub3Qgc2V0IGNvcnJlY3RseS4gJywgZmllbGRWYWx1ZSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNFeHBhbmRlZCA9IChkYXRhSXRlbTogYW55LCBpbmRleDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGluZGV4KTtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuZXhwYW5kZWRrZXlzLmluZGV4T2YoaW5kZXgpID4gLTE7XHJcbiAgICAgIC8vIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cGFuZE5vZGUgPSAoZmllbGQ6c3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBzZXRBc1NlbGVjdGVkOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLml0ZW1JbmRleCA9IFtdO1xyXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuXHJcbiAgICB0aGlzLnNlYXJjaE5vZGVJbmRleChub2RlLCB2YWx1ZSwgJycsIGZpZWxkKTtcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaXRlbUluZGV4O1xyXG4gICAgaWYgKHNldEFzU2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEtleXMgPSBpbmRleDtcclxuICAgIH1cclxuICAgIGNvbnN0IGluZGV4QXJyID0gW107XHJcbiAgICBpbmRleC5mb3JFYWNoKChpOmFueSkgPT4ge1xyXG4gICAgICBjb25zdCBhcnIgPSBpLnNwbGl0KCdfJyk7XHJcbiAgICAgIGxldCBpbmRleHMgPSBcIlwiO1xyXG4gICAgICBhcnIuZm9yRWFjaCgoeDphbnkpID0+IHtcclxuICAgICAgICBpbmRleHMgPSBpbmRleHMuY29uY2F0KFwiX1wiKS5jb25jYXQoeCk7XHJcbiAgICAgICAgaW5kZXhBcnIucHVzaChpbmRleHMuc3Vic3RyaW5nKDEpKTtcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zdGF0ZS5leHBhbmRlZGtleXMgPSB0aGlzLnN0YXRlLmV4cGFuZGVka2V5cy5jb25jYXQoaW5kZXhBcnIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbGxhcHNlTm9kZSA9IChmaWVsZDpzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGNvbGxhcHNlUGFyZW50OiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLml0ZW1JbmRleCA9IFtdO1xyXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuXHJcbiAgICB0aGlzLnNlYXJjaE5vZGVJbmRleChub2RlLCB2YWx1ZSwgJycsIGZpZWxkKTtcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaXRlbUluZGV4O1xyXG4gICAgbGV0IGluZGV4QXJyID0gW107XHJcbiAgICBpZiAoY29sbGFwc2VQYXJlbnQpIHtcclxuICAgICAgaW5kZXguZm9yRWFjaCgoaTphbnkpID0+IHtcclxuICAgICAgICBjb25zdCBhcnIgPSBpLnNwbGl0KCdfJyk7XHJcbiAgICAgICAgbGV0IGluZGV4cyA9IFwiXCI7XHJcbiAgICAgICAgYXJyLmZvckVhY2goKHg6YW55KSA9PiB7XHJcbiAgICAgICAgICBpbmRleHMgPSBpbmRleHMuY29uY2F0KFwiX1wiKS5jb25jYXQoeCk7XHJcbiAgICAgICAgICBpbmRleEFyci5wdXNoKGluZGV4cy5zdWJzdHJpbmcoMSkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaW5kZXhBcnIgPSBpbmRleDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXRlLmV4cGFuZGVka2V5cyA9IHRoaXMuc3RhdGUuZXhwYW5kZWRrZXlzLmZpbHRlcih2ID0+IHtcclxuICAgICAgcmV0dXJuICFpbmRleEFyci5pbmNsdWRlcyh2KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlYXJjaE5vZGVJbmRleChub2RlOiBhbnksIHZhbHVlOiBzdHJpbmcsIGtleTogc3RyaW5nLCBmaWVsZDogc3RyaW5nKSB7XHJcbiAgICBpZiAoa2V5KSB7XHJcbiAgICAgIGtleSA9IGtleSArICdfJztcclxuICAgIH1cclxuICAgIG5vZGUuZm9yRWFjaCgoZDogYW55LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgaWYgKGRbZmllbGRdID09PSBOdW1iZXIodmFsdWUpIHx8IGRbZmllbGRdID09PSB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaXRlbUluZGV4ID0gdGhpcy5pdGVtSW5kZXguY29uY2F0KGtleSArICcnICsgaSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZC5WYWx1ZSkpIHtcclxuICAgICAgICBjb25zdCBrID0ga2V5ICsgJycgKyBpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoTm9kZUluZGV4KGQuVmFsdWUsIHZhbHVlLCBrLCBmaWVsZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cGFuZEFsbCA9ICgpID0+IHtcclxuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICB0aGlzLmV4cGFuZEFsbE5vZGUobm9kZSwgJycpO1xyXG4gICAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbGxhcHNlQWxsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zdGF0ZS5leHBhbmRlZGtleXMgPSBbXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhwYW5kQWxsTm9kZShub2RlOiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICBpZiAoa2V5KSB7XHJcbiAgICAgIGtleSA9IGtleSArICdfJztcclxuICAgIH1cclxuICAgIG5vZGUuZm9yRWFjaCgoZDogYW55LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZC5WYWx1ZSkpIHtcclxuICAgICAgICBjb25zdCBrID0ga2V5ICsgJycgKyBpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUuZXhwYW5kZWRrZXlzID0gdGhpcy5zdGF0ZS5leHBhbmRlZGtleXMuY29uY2F0KGspO1xyXG4gICAgICAgIHRoaXMuZXhwYW5kQWxsTm9kZShkLlZhbHVlLCBrKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ29sbGFwc2Uobm9kZSkge1xyXG4gICAgICB0aGlzLnN0YXRlLmV4cGFuZGVka2V5cyA9IHRoaXMuc3RhdGUuZXhwYW5kZWRrZXlzLmZpbHRlcihrID0+IGsgIT09IG5vZGUuaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUV4cGFuZChub2RlKSB7XHJcbiAgICAgIHRoaXMuc3RhdGUuZXhwYW5kZWRrZXlzID0gdGhpcy5zdGF0ZS5leHBhbmRlZGtleXMuY29uY2F0KG5vZGUuaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEVuYWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5ID0gIXN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWaXNpYmxlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSA9IHN0YXR1cztcclxuICAgIHRoaXMuZGF0YS5WaXNpYmxlID0gc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFJlcXVpcmUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZCA9IHN0YXR1cztcclxuICAgIFpDb21wb25lbnRIZWxwZXIuY2hhbmdlVmFsaWRhdG9yKHN0YXR1cywgdGhpcy5ncm91cCwgdGhpcy5kYXRhLlZhbHVlLCB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVtcGxhdGUoZGF0YUl0ZW06IGFueSwgZGF0YTogWkZpZWxkLCBncm91cDogWkdyb3VwKSB7XHJcbiAgICBpZiAoZGF0YS5JdGVtVGVtcGxhdGUpIHtcclxuICAgICAgY29uc3QgZ2V0VGVtcGxhdGVGdW5jID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKFxyXG4gICAgICAgIHRoaXMsXHJcbiAgICAgICAgZGF0YS5JdGVtVGVtcGxhdGVcclxuICAgICAgKTtcclxuICAgICAgaWYgKCFnZXRUZW1wbGF0ZUZ1bmMpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICBcIlRoZSAoXCIgK1xyXG4gICAgICAgICAgZGF0YS5JdGVtVGVtcGxhdGUgK1xyXG4gICAgICAgICAgXCIpIGlzIG5vdCBkZWZpbmVkIGNvcnJlY3RseS4gVmFsdWUgY29udGFpbnM6IFwiLFxyXG4gICAgICAgICAgZ2V0VGVtcGxhdGVGdW5jXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBnZXRUZW1wbGF0ZUZ1bmMoe1xyXG4gICAgICAgIGRhdGFJdGVtLFxyXG4gICAgICAgIGRhdGEsXHJcbiAgICAgICAgZ3JvdXBcclxuICAgICAgfSBhcyBaVHJlZVRlbXBsYXRlUGFyYW1zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKGRhdGFJdGVtKVxyXG4gICAgICAgIC5maWx0ZXIoZGF0YSA9PiB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIilcclxuICAgICAgICAuam9pbihcIiwgXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29udmVydFRvVHJlZUl0ZW1zKGRhdGFTZXQ6IGFueVtdKSB7XHJcbiAgICBjb25zdCB0b1RyZWVJdGVtczogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IHRyZWVJbmRleDogYW55ID0ge307XHJcbiAgICBjb25zdCBwZW5kaW5nSXRlbXM6IGFueVtdID0gW107XHJcbiAgICBkYXRhU2V0LmZvckVhY2goKGQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoIWQuUGFyZW50SWQpIHtcclxuICAgICAgICB0b1RyZWVJdGVtcy5wdXNoKGQpO1xyXG4gICAgICAgIHRyZWVJbmRleFtkLklkXSA9IGQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRyZWVJbmRleFtkLlBhcmVudElkXSkge1xyXG4gICAgICAgICAgY29uc3QgcGFyZW50SXRlbSA9IHRyZWVJbmRleFtkLlBhcmVudElkXTtcclxuICAgICAgICAgIGlmICghcGFyZW50SXRlbS5WYWx1ZSkge1xyXG4gICAgICAgICAgICBwYXJlbnRJdGVtLlZhbHVlID0gW107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBwYXJlbnRJdGVtLlZhbHVlLnB1c2goZCk7XHJcbiAgICAgICAgICB0cmVlSW5kZXhbZC5JZF0gPSBkO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwZW5kaW5nSXRlbXMucHVzaChkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChwZW5kaW5nSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBwZW5kaW5nSXRlbXMuZm9yRWFjaCgoZDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHRyZWVJbmRleFtkLlBhcmVudElkXSkge1xyXG4gICAgICAgICAgY29uc3QgcGFyZW50SXRlbSA9IHRyZWVJbmRleFtkLlBhcmVudElkXTtcclxuICAgICAgICAgIHBhcmVudEl0ZW0uVmFsdWUucHVzaChkKTtcclxuICAgICAgICAgIHRyZWVJbmRleFtkLklkXSA9IGQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG9UcmVlSXRlbXM7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGlvbkNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBsZXQgdGFyZ2V0TmFtZTogc3RyaW5nO1xyXG4gICAgaWYgKHRoaXMuY2xpY2tBY3ROYW1lKSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5jbGlja0FjdE5hbWUpIHtcclxuICAgICAgICBjYXNlICdBZGROb2RlJzpcclxuICAgICAgICAgIHRhcmdldE5hbWUgPSB0aGlzLmRhdGEuT25BZGROb2RlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnUmVtb3ZlTm9kZSc6XHJcbiAgICAgICAgICB0YXJnZXROYW1lID0gdGhpcy5kYXRhLk9uUmVtb3ZlTm9kZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0YXJnZXROYW1lID0gdGhpcy5kYXRhLk9uSXRlbUNsaWNrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbGlja0FjdE5hbWUgPSBudWxsO1xyXG4gICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICB0eXBlOiBcInp0cmVlX29uU2VsZWN0aW9uQ2hhbmdlXCIsXHJcbiAgICAgIHRhcmdldDogdGFyZ2V0TmFtZSxcclxuICAgICAgZGF0YTogZXZlbnQuZGF0YUl0ZW0sXHJcbiAgICAgIGV2ZW50OiBldmVudC5pbmRleFxyXG4gICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25BZGROb2RlKGV2ZW50OiBhbnksIGRhdGFJdGVtOiBhbnksIGRhdGE6IFpGaWVsZCwgZ3JvdXA6IFpHcm91cCkge1xyXG4gICAgdGhpcy5jbGlja0FjdE5hbWUgPSAnQWRkTm9kZSc7XHJcbiAgICAvLyBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIC8vIGlmICh0aGlzLmRhdGEuT25BZGROb2RlKSB7XHJcbiAgICAvLyAgIGNvbnN0IGZ1bmMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLk9uQWRkTm9kZSk7XHJcbiAgICAvLyAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgLy8gICAgIGNvbnN0IGNhbGxGdW5jID0gZnVuYy5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgIC8vICAgICBjYWxsRnVuYyhkYXRhSXRlbSwgZGF0YSwgZ3JvdXAsIGV2ZW50LmluZGV4KTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBvblJlbW92ZU5vZGUoZXZlbnQ6IGFueSwgZGF0YUl0ZW06IGFueSwgZGF0YTogWkZpZWxkLCBncm91cDogWkdyb3VwKSB7XHJcbiAgICB0aGlzLmNsaWNrQWN0TmFtZSA9ICdSZW1vdmVOb2RlJztcclxuICB9XHJcblxyXG4gIG9uRWRpdE5vZGUoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5PbkVkaXROb2RlKSB7XHJcbiAgICAgIGNvbnN0IGZ1bmMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLk9uRWRpdE5vZGUpO1xyXG4gICAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgICAgY2FsbEZ1bmMoZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZU5vZGVEcm9wKGV2ZW50OiBUcmVlSXRlbURyb3BFdmVudCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5kYXRhLkRyYWdnYWJsZSA9PT0gZmFsc2Upe1xyXG4gICAgICBldmVudC5zZXRWYWxpZChmYWxzZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTm9kZURyb3AgPSB0cnVlO1xyXG4gICAgY29uc3QgZHJvcEhhbmRsZXIgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwoXHJcbiAgICAgIHRoaXMsXHJcbiAgICAgIHRoaXMuZGF0YS5PbkRyb3BcclxuICAgICk7XHJcbiAgICBpZiAodHlwZW9mIGRyb3BIYW5kbGVyID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBkcm9wSGFuZGxlci5iaW5kKHRoaXMpO1xyXG4gICAgICBjYWxsRnVuYyhldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcHJldmVudCBkcm9wIGlmIGF0dGVtcHRpbmcgdG8gYWRkIHRvIGZpbGVcclxuICAgIC8vIGlmIChpc0ZpbGUoZXZlbnQuZGVzdGluYXRpb25JdGVtLml0ZW0uZGF0YUl0ZW0udGV4dCkgJiYgZXZlbnQuZHJvcFBvc2l0aW9uID09PSBEcm9wUG9zaXRpb24uT3Zlcikge1xyXG4gICAgLy8gICAgIGV2ZW50LnNldFZhbGlkKGZhbHNlKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZU5vZGVEcmFnRW5kKGV2ZW50OiBUcmVlSXRlbURyYWdFdmVudCkge1xyXG4gICAgaWYgKCF0aGlzLmlzTm9kZURyb3ApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc05vZGVEcm9wID0gZmFsc2U7XHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdJdGVtczogJywgdGhpcy5pdGVtcyk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBbXTtcclxuICAgIHRoaXMudXBkYXRlQ2hhbmdlVG9EYXRhU2V0KGl0ZW1zLCB0YXJnZXQpO1xyXG4gICAgLy8gdGhpcy5kYXRhU2V0ID0gdGFyZ2V0O1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRNb2RlbFZhbHVlKHRoaXMuZGF0YS5WYWx1ZSwgdGFyZ2V0LCB0aGlzLmdyb3VwKTtcclxuICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgdHlwZTogXCJ6dHJlZS1vblRyZWVOb2RlRHJhZ0VuZFwiLFxyXG4gICAgICB0YXJnZXQ6IHRoaXMuZGF0YS5PbkNoYW5nZSxcclxuICAgICAgZGF0YTogdGFyZ2V0XHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUNoYW5nZVRvRGF0YVNldChzb3VyY2U6IEFycmF5PGFueT4sIHRhcmdldDogQXJyYXk8YW55Pikge1xyXG4gICAgc291cmNlLmZvckVhY2goZCA9PiB7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGQuVmFsdWUpKSB7XHJcbiAgICAgICAgY29uc3QgdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZCkpO1xyXG4gICAgICAgIHQuVmFsdWUgPSBbXTtcclxuICAgICAgICB0YXJnZXQucHVzaCh0KTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUNoYW5nZVRvRGF0YVNldChkLlZhbHVlLCB0LlZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCB0ID0gT2JqZWN0LmFzc2lnbih7fSwgZCk7XHJcbiAgICAgICAgdC5WYWx1ZSA9IHQuX0RhdGFWYWx1ZTtcclxuICAgICAgICBkZWxldGUgdC5fRGF0YVZhbHVlO1xyXG4gICAgICAgIHRhcmdldC5wdXNoKHQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gc2VhcmNoIGZlYXR1cmUgLSBmaWx0ZXJhYmxlOiB0cnVlXHJcbiAgcHVibGljIGhhbmRsZUZpbHRlcih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICB0aGlzLml0ZW1zID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5WYWx1ZSk7XHJcbiAgICAgIGlmICh0aGlzLm9yaWdpbmFsSXRlbUxpc3QgPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxJdGVtTGlzdCA9IHRoaXMuaXRlbXMubWFwKGl0ZW0gPT4gT2JqZWN0LmFzc2lnbih7fSwgaXRlbSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pdGVtcyA9IHRoaXMub3JpZ2luYWxJdGVtTGlzdC5tYXAoaXRlbSA9PiBPYmplY3QuYXNzaWduKHt9LCBpdGVtKSk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnNlYXJjaCh0aGlzLml0ZW1zLCB2YWx1ZSk7XHJcbiAgICBjb25zdCBncmlkVmFsdWUgPSB0aGlzLmZpbHRlclByZWZpeCh0aGlzLmRhdGEuVmFsdWUpO1xyXG4gICAgdGhpcy5ncm91cFtncmlkVmFsdWVdID0gdGFyZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJQcmVmaXgodmFsdWVOYW1lOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZU5hbWUuc3RhcnRzV2l0aCgnekRhdGEuJykpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlTmFtZS5zbGljZSg2KTtcclxuICAgIH1cclxuICAgIGlmICh2YWx1ZU5hbWUuc3RhcnRzV2l0aCgnZ3JvdXAuekRhdGEuJykpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlTmFtZS5zbGljZSgxMik7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWVOYW1lLnN0YXJ0c1dpdGgoJ2dyb3VwLicpKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZU5hbWUuc2xpY2UoNik7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWVOYW1lKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZU5hbWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlYXJjaChpdGVtczogYW55W10sIHRlcm06IHN0cmluZyk6IGFueVtdIHtcclxuICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5jb250YWlucyhpdGVtLk5hbWUsIHRlcm0pKSB7XHJcbiAgICAgICAgYWNjLnB1c2goaXRlbSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXRlbS5WYWx1ZSAmJiBpdGVtLlZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBuZXdJdGVtcyA9IHRoaXMuc2VhcmNoKGl0ZW0uVmFsdWUsIHRlcm0pO1xyXG5cclxuICAgICAgICBpZiAobmV3SXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdmFyIGZpbHRlckl0ZW0gPSBpdGVtO1xyXG4gICAgICAgICAgZmlsdGVySXRlbS5WYWx1ZSA9IG5ld0l0ZW1zO1xyXG4gICAgICAgICAgYWNjLnB1c2goZmlsdGVySXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnRhaW5zKHRleHQ6IHN0cmluZywgdGVybTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoKHRlcm0gfHwgXCJcIikudG9Mb3dlckNhc2UoKSkgPj0gMDtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBzZWFyY2ggZmVhdHVyZSAtIGZpbHRlcmFibGU6IHRydWVcclxufVxyXG4iXX0=
|
|
@@ -8920,7 +8920,7 @@ class ZtreeComponent {
|
|
|
8920
8920
|
ZtreeComponent.decorators = [
|
|
8921
8921
|
{ type: Component, args: [{
|
|
8922
8922
|
selector: "app-ztree",
|
|
8923
|
-
template: "<div style=\"width:100%\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <kendo-treeview [nodes]=\"getItems()\"\r\n kendoTreeViewExpandable\r\n kendoTreeViewSelectable\r\n kendoTreeViewDragAndDrop\r\n kendoTreeViewDragAndDropEditing\r\n [isExpanded]=\"isExpanded\"\r\n (collapse)=\"handleCollapse($event)\"\r\n (expand)=\"handleExpand($event)\"\r\n (nodeDrop)=\"handleNodeDrop($event)\"\r\n (nodeDragEnd)=\"handleNodeDragEnd($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [selectedKeys]=\"selectedKeys\"\r\n kendoTreeViewHierarchyBinding\r\n childrenField=\"Value\"\r\n [filterable]=\"data.Filterable\"\r\n textField=\"Name\"\r\n (filterChange)=\"handleFilter($event)\">\r\n\r\n <ng-template kendoTreeViewNodeTemplate let-dataItem #nodetemplate>\r\n\r\n <ion-button *ngIf=\"!!data.OnAddNode\"\r\n (click)=\"onAddNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 2px;\" mat-raised-button color=\"primary\" size=\"medium\"\r\n [hidden]=\"(!!dataItem.OnAddNodeVisible)\"
|
|
8923
|
+
template: "<div style=\"width:100%\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <kendo-treeview [nodes]=\"getItems()\"\r\n kendoTreeViewExpandable\r\n kendoTreeViewSelectable\r\n kendoTreeViewDragAndDrop\r\n kendoTreeViewDragAndDropEditing\r\n [isExpanded]=\"isExpanded\"\r\n (collapse)=\"handleCollapse($event)\"\r\n (expand)=\"handleExpand($event)\"\r\n (nodeDrop)=\"handleNodeDrop($event)\"\r\n (nodeDragEnd)=\"handleNodeDragEnd($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [selectedKeys]=\"selectedKeys\"\r\n kendoTreeViewHierarchyBinding\r\n childrenField=\"Value\"\r\n [filterable]=\"data.Filterable\"\r\n textField=\"Name\"\r\n (filterChange)=\"handleFilter($event)\">\r\n\r\n <ng-template kendoTreeViewNodeTemplate let-dataItem #nodetemplate>\r\n\r\n <ion-button *ngIf=\"!!data.OnAddNode\"\r\n (click)=\"onAddNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 2px;\" mat-raised-button color=\"primary\" size=\"medium\"\r\n [hidden]=\"(!!dataItem.OnAddNodeVisible)\"> \r\n <fa-icon [icon]=\"'plus'\"></fa-icon>\r\n </ion-button>\r\n <ion-button *ngIf=\"!!data.OnRemoveNode\" (click)=\"onRemoveNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 15px 0 10px;\" color=\"danger\" mat-raised-button size=\"medium\"\r\n [hidden]=\"(!!dataItem.OnRemoveNodeVisible)\"> \r\n <fa-icon [icon]=\"'minus'\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-label *ngIf=\"data.OnAddNode || data.OnRemoveNode\" style=\"position: absolute; top: 14px;\">\r\n {{ getTemplate(dataItem, data, group) }}\r\n </ion-label>\r\n\r\n <ion-label *ngIf=\"!data.OnAddNode && !data.OnRemoveNode\">\r\n {{ getTemplate(dataItem, data, group) }}\r\n </ion-label>\r\n </ng-template>\r\n </kendo-treeview>\r\n</div>\r\n",
|
|
8924
8924
|
styles: [":host{--ion-color-primary:#479400;--ion-color-primary-rgb:56,128,255;--ion-color-primary-contrast:#fff;--ion-color-primary-contrast-rgb:255,255,255;--ion-color-primary-shade:#3171e0;--ion-color-primary-tint:#4c8dff}:host ::ng-deep kendo-treeview .k-treeview-leaf{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:3px;border:1px solid #c8dbf5;background-color:#e3ecf8;color:#0a45ab;font-size:13px;cursor:pointer}:host ::ng-deep kendo-treeview .k-treeview-leaf.k-state-selected{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:3px;background-color:#a9c3e8;color:#0a45ab;font-size:13px;cursor:pointer}:host ::ng-deep kendo-treeview .k-treeview-leaf.k-state-hover,:host ::ng-deep kendo-treeview .k-treeview-leaf:hover{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:3px;background-color:#c9daf2;color:#0a45ab;font-size:13px;cursor:pointer}"]
|
|
8925
8925
|
},] }
|
|
8926
8926
|
];
|