mmhglobal-dynamicform 2.14.2 → 2.15.0
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 +10 -1
- package/esm2020/lib/components/containerfieldbase.component.mjs +3 -10
- package/esm2020/lib/components/fieldbase.component.mjs +17 -1
- package/esm2020/lib/components/inputfieldbase.component.mjs +1 -17
- package/esm2020/lib/ksplitter/ksplitter.component.mjs +26 -6
- package/esm2020/lib/mmhglobal-dynamicform.module.mjs +6 -1
- package/esm2020/lib/uicontent/uicontent.component.mjs +9 -8
- package/esm2020/lib/virtual-scroll/virtual-scroll.component.mjs +2 -2
- package/esm2020/lib/zgrid/container/zgrid-container.component.mjs +4 -3
- package/esm2020/lib/zloop/zloop.component.mjs +2 -2
- package/esm2020/lib/ztree/ztree.component.mjs +187 -137
- package/fesm2015/mmhglobal-dynamicform.mjs +254 -187
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +252 -186
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/components/containerfieldbase.component.d.ts +1 -1
- package/lib/components/fieldbase.component.d.ts +2 -0
- package/lib/components/inputfieldbase.component.d.ts +0 -2
- package/lib/ksplitter/ksplitter.component.d.ts +7 -2
- package/lib/mmhglobal-dynamicform.module.d.ts +49 -48
- package/lib/ztree/ztree.component.d.ts +22 -15
- package/package.json +1 -1
|
@@ -40,7 +40,7 @@ export class ZloopComponent extends ContainerFieldBase {
|
|
|
40
40
|
// Clone zloop's child
|
|
41
41
|
this.clonedFields = this.cloneFieldElementChild(this.data);
|
|
42
42
|
// Append cloned fields to group.fields for error message displaying
|
|
43
|
-
this.group.clonedFields = ZComponentHelper.deepClone(this.group.fields);
|
|
43
|
+
this.group.clonedFields = ZComponentHelper.deepClone(this.group.clonedFields || this.group.fields);
|
|
44
44
|
const thisField = ZComponentHelper.getFieldFromFieldsByName(this.group.clonedFields, this.data[this.originalFieldNameField] || this.data.Name);
|
|
45
45
|
thisField.Value = this.clonedFields;
|
|
46
46
|
}
|
|
@@ -120,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
120
120
|
type: Component,
|
|
121
121
|
args: [{ selector: 'app-zloop', template: "<div [style]=\"componentProperties.containerStyle.style\" class=\"e1tag-container-style zloop-container\"\r\n *ngIf=\"(!!componentProperties.isVisibleField? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of clonedFields\"\r\n [field]=\"field\"\r\n [containerField]=\"data\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\"\r\n [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n </app-zformcontrol>\r\n</div>\r\n", styles: [".zloop-container{display:flex}@media (min-width: 357px){.zloop-container>app-zformcontrol.col-xs-1{width:8.333%}.zloop-container>app-zformcontrol.col-xs-2{width:16.666%}.zloop-container>app-zformcontrol.col-xs-3{width:25%}.zloop-container>app-zformcontrol.col-xs-4{width:33.333%}.zloop-container>app-zformcontrol.col-xs-5{width:41.666%}.zloop-container>app-zformcontrol.col-xs-6{width:50%}.zloop-container>app-zformcontrol.col-xs-8{width:66.666%}.zloop-container>app-zformcontrol.col-xs-9{width:75%}.zloop-container>app-zformcontrol.col-xs-10{width:83.333%}.zloop-container>app-zformcontrol.col-xs-11{width:91.667%}.zloop-container>app-zformcontrol.col-xs-12{width:100%}}@media (min-width: 576px){.zloop-container>app-zformcontrol.col-sm-1{width:8.333%}.zloop-container>app-zformcontrol.col-sm-2{width:16.666%}.zloop-container>app-zformcontrol.col-sm-3{width:25%}.zloop-container>app-zformcontrol.col-sm-4{width:33.333%}.zloop-container>app-zformcontrol.col-sm-5{width:41.666%}.zloop-container>app-zformcontrol.col-sm-6{width:50%}.zloop-container>app-zformcontrol.col-sm-7{width:58.333%}.zloop-container>app-zformcontrol.col-sm-8{width:66.666%}.zloop-container>app-zformcontrol.col-sm-9{width:75%}.zloop-container>app-zformcontrol.col-sm-10{width:83.333%}.zloop-container>app-zformcontrol.col-sm-11{width:91.667%}.zloop-container>app-zformcontrol.col-sm-12{width:100%}}@media (min-width: 768px){.zloop-container>app-zformcontrol.col-1,.zloop-container>app-zformcontrol.col-md-1{width:8.333%}.zloop-container>app-zformcontrol.col-2,.zloop-container>app-zformcontrol.col-md-2{width:16.666%}.zloop-container>app-zformcontrol.col-3,.zloop-container>app-zformcontrol.col-md-3{width:25%}.zloop-container>app-zformcontrol.col-4,.zloop-container>app-zformcontrol.col-md-4{width:33.333%}.zloop-container>app-zformcontrol.col-5,.zloop-container>app-zformcontrol.col-md-5{width:41.666%}.zloop-container>app-zformcontrol.col-6,.zloop-container>app-zformcontrol.col-md-6{width:50%}.zloop-container>app-zformcontrol.col-7,.zloop-container>app-zformcontrol.col-md-7{width:58.333%}.zloop-container>app-zformcontrol.col-8,.zloop-container>app-zformcontrol.col-md-8{width:66.666%}.zloop-container>app-zformcontrol.col-9,.zloop-container>app-zformcontrol.col-md-9{width:75%}.zloop-container>app-zformcontrol.col-10,.zloop-container>app-zformcontrol.col-md-10{width:83.333%}.zloop-container>app-zformcontrol.col-11,.zloop-container>app-zformcontrol.col-md-11{width:91.667%}.zloop-container>app-zformcontrol.col-12,.zloop-container>app-zformcontrol.col-md-12{width:100%}}@media (min-width: 992px){.zloop-container>app-zformcontrol.col-lg-1{width:8.333%}.zloop-container>app-zformcontrol.col-lg-2{width:16.666%}.zloop-container>app-zformcontrol.col-lg-3{width:25%}.zloop-container>app-zformcontrol.col-lg-4{width:33.333%}.zloop-container>app-zformcontrol.col-lg-5{width:41.666%}.zloop-container>app-zformcontrol.col-lg-6{width:50%}.zloop-container>app-zformcontrol.col-lg-7{width:58.333%}.zloop-container>app-zformcontrol.col-lg-8{width:66.666%}.zloop-container>app-zformcontrol.col-lg-9{width:75%}.zloop-container>app-zformcontrol.col-lg-10{width:83.333%}.zloop-container>app-zformcontrol.col-lg-11{width:91.667%}.zloop-container>app-zformcontrol.col-lg-12{width:100%}}@media (min-width: 1200px){.zloop-container>app-zformcontrol.col-xl-1{width:8.333%}.zloop-container>app-zformcontrol.col-xl-2{width:16.666%}.zloop-container>app-zformcontrol.col-xl-3{width:25%}.zloop-container>app-zformcontrol.col-xl-4{width:33.333%}.zloop-container>app-zformcontrol.col-xl-5{width:41.666%}.zloop-container>app-zformcontrol.col-xl-6{width:50%}.zloop-container>app-zformcontrol.col-xl-7{width:58.333%}.zloop-container>app-zformcontrol.col-xl-8{width:66.666%}.zloop-container>app-zformcontrol.col-xl-9{width:75%}.zloop-container>app-zformcontrol.col-xl-10{width:83.333%}.zloop-container>app-zformcontrol.col-xl-11{width:91.667%}.zloop-container>app-zformcontrol.col-xl-12{width:100%}}\n"] }]
|
|
122
122
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FieldService }]; } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemxvb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemxvb3Avemxvb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemxvb3Avemxvb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFvQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVExRCxNQUFNLE9BQU8sY0FBZSxTQUFRLGtCQUFrQjtJQU9wRCxZQUNTLGdCQUFtQyxFQUNuQyxZQUEwQjtRQUVqQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUhqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUmxCLDJCQUFzQixHQUFHLGlCQUFpQixDQUFDO1FBQ3JELGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLDBCQUFxQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDNUMsY0FBUyxHQUFHLEVBQVksQ0FBQztRQUN6QixtQ0FBOEIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBT3RELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLEtBQUss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QyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksV0FBVyxDQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxDQUMzQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBRTdDLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDM0MsTUFBTSxZQUFZLEdBQWtCLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO3dCQUNuRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FDL0MsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNoRDtpQkFDRjthQUNGO1NBQ0Y7SUFDSCxDQUFDOzsyR0EvSFUsY0FBYzsrRkFBZCxjQUFjLHdFQ2IzQiw4cEJBU0E7MkZESWEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRhaW5lckZpZWxkQmFzZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL2NvbnRhaW5lcmZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRIZWxwZXIsIEZpZWxkU2VydmljZSwgWkNvbXBvbmVudCwgWkZpZWxkIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16bG9vcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3psb29wLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96bG9vcC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFpsb29wQ29tcG9uZW50IGV4dGVuZHMgQ29udGFpbmVyRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IG9yaWdpbmFsRmllbGROYW1lRmllbGQgPSAnT3JpTmFtZUZvclpsb29wJztcclxuICBwdWJsaWMgY2xvbmVkRmllbGRzID0gW107XHJcbiAgcHJpdmF0ZSBjbG9uZWRGb3JtQ29udHJvbExpc3QgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgaW5pdEZpZWxkID0ge30gYXMgWkZpZWxkO1xyXG4gIHByaXZhdGUgY29ucG9uZW50VHlwZXNUb05vdFVwZGF0ZVZhbHVlID0gWyd6YnV0dG9ucyddO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBmaWVsZFNlcnZpY2U6IEZpZWxkU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRGaWVsZCA9IFpDb21wb25lbnRIZWxwZXIuZGVlcENsb25lKHRoaXMuZGF0YSk7XHJcblxyXG4gICAgdGhpcy5zZXR1cExvb3BpbmdFbGVtZW50KCk7XHJcbiAgICBzdXBlci5pbml0Q29tcG9uZW50KCkuc3Vic2NyaWJlKCgpID0+IHsgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTsgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaEZpZWxkRWxlbWVudCgpIHtcclxuICAgIHRoaXMuZGF0YSA9IFpDb21wb25lbnRIZWxwZXIuZGVlcENsb25lKHRoaXMuaW5pdEZpZWxkKTtcclxuICAgIHRoaXMuc2V0dXBMb29waW5nRWxlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cExvb3BpbmdFbGVtZW50KCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5Mb29waW5nRWxlbWVudENvbmZpZykge1xyXG4gICAgICAvLyBSZW1vdmUgcHJldmlvdXNseSBjbG9uZWQgZmllbGRzIGZyb20gZm9ybSBjb250cm9scyAoaWYgYW55KVxyXG4gICAgICBpZiAodGhpcy5jbG9uZWRGb3JtQ29udHJvbExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGZvciAoY29uc3QgZmdOYW1lIG9mIHRoaXMuY2xvbmVkRm9ybUNvbnRyb2xMaXN0KSB7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwLmZvcm0ucmVtb3ZlQ29udHJvbChmZ05hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ2xvbmUgemxvb3AncyBjaGlsZFxyXG4gICAgICB0aGlzLmNsb25lZEZpZWxkcyA9IHRoaXMuY2xvbmVGaWVsZEVsZW1lbnRDaGlsZCh0aGlzLmRhdGEpO1xyXG5cclxuICAgICAgLy8gQXBwZW5kIGNsb25lZCBmaWVsZHMgdG8gZ3JvdXAuZmllbGRzIGZvciBlcnJvciBtZXNzYWdlIGRpc3BsYXlpbmdcclxuICAgICAgdGhpcy5ncm91cC5jbG9uZWRGaWVsZHMgPSBaQ29tcG9uZW50SGVscGVyLmRlZXBDbG9uZSh0aGlzLmdyb3VwLmZpZWxkcyk7XHJcbiAgICAgIGNvbnN0IHRoaXNGaWVsZCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0RmllbGRGcm9tRmllbGRzQnlOYW1lKHRoaXMuZ3JvdXAuY2xvbmVkRmllbGRzLCB0aGlzLmRhdGFbdGhpcy5vcmlnaW5hbEZpZWxkTmFtZUZpZWxkXSB8fCB0aGlzLmRhdGEuTmFtZSk7XHJcbiAgICAgIHRoaXNGaWVsZC5WYWx1ZSA9IHRoaXMuY2xvbmVkRmllbGRzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9uZUZpZWxkRWxlbWVudENoaWxkKGZpZWxkOiBaRmllbGQpOiBBcnJheTxaRmllbGQ+IHtcclxuICAgIGNvbnN0IGxvb3BpbmdFbGVtZW50Q29uZmlnID0gdHlwZW9mIGZpZWxkLkxvb3BpbmdFbGVtZW50Q29uZmlnID09ICdzdHJpbmcnID8gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGZpZWxkLkxvb3BpbmdFbGVtZW50Q29uZmlnLCB0aGlzLmdyb3VwKSA6IGZpZWxkLkxvb3BpbmdFbGVtZW50Q29uZmlnO1xyXG5cclxuICAgIGlmIChsb29waW5nRWxlbWVudENvbmZpZyA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGZpZWxkLlZhbHVlO1xyXG4gICAgfVxyXG4gICAgbGV0IGZpZWxkVG9JbnNlcnQgPSBuZXcgQXJyYXk8WkZpZWxkPigpO1xyXG4gICAgZm9yIChsZXQgY29uZmlnSW5kZXggPSAwOyBjb25maWdJbmRleCA8IGxvb3BpbmdFbGVtZW50Q29uZmlnLkNvdW50OyBjb25maWdJbmRleCsrKSB7XHJcbiAgICAgIGNvbnN0IGNsb25lZEZpZWxkcyA9IFpDb21wb25lbnRIZWxwZXIuZGVlcENsb25lKGZpZWxkLlZhbHVlKTtcclxuICAgICAgdGhpcy51cGRhdGVGaWVsZFByb3BlcnRpZXNUb01ha2VUaGVtRGlzdGluY3QoY2xvbmVkRmllbGRzLCBsb29waW5nRWxlbWVudENvbmZpZywgY29uZmlnSW5kZXgpO1xyXG4gICAgICBmaWVsZFRvSW5zZXJ0ID0gZmllbGRUb0luc2VydC5jb25jYXQoY2xvbmVkRmllbGRzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmllbGRUb0luc2VydDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRmllbGRQcm9wZXJ0aWVzVG9NYWtlVGhlbURpc3RpbmN0KGZpZWxkczogQXJyYXk8WkZpZWxkPiwgbG9vcGluZ0VsZW1lbnRDb25maWc6IGFueSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcclxuXHJcbiAgICAgIGNvbnN0IGVsZW1lbnRDb25maWcgPSBsb29waW5nRWxlbWVudENvbmZpZy5Ub1JlcGxhY2UuZmluZCh4ID0+IHguRWxlbWVudE5hbWUgPT0gZmllbGQuTmFtZSkgfHwgbG9vcGluZ0VsZW1lbnRDb25maWcuVG9SZXBsYWNlLmZpbmQoeCA9PiB4LkVsZW1lbnROYW1lID09IGZpZWxkW3RoaXMub3JpZ2luYWxGaWVsZE5hbWVGaWVsZF0pO1xyXG4gICAgICBjb25zdCBlbGVtZW50Q29uZmlnUHJvcGVydHkgPSBlbGVtZW50Q29uZmlnICYmIGVsZW1lbnRDb25maWcuUHJvcGVydHkgJiYgZWxlbWVudENvbmZpZy5Qcm9wZXJ0eS5sZW5ndGggPiBpbmRleCA/IGVsZW1lbnRDb25maWcuUHJvcGVydHlbaW5kZXhdIDoge307XHJcblxyXG4gICAgICBpZiAoZmllbGQuVHlwZSAhPT0gJ3psb29wJykge1xyXG4gICAgICAgIGZpZWxkLk5hbWUgPSBgJHtmaWVsZC5OYW1lfV8ke2luZGV4ICsgMX1gO1xyXG4gICAgICAgIGlmIChmaWVsZC5MYWJlbCkge1xyXG4gICAgICAgICAgZmllbGQuTGFiZWwgPSBgJHtmaWVsZC5MYWJlbH1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQuVmFsdWUpKSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZpZWxkUHJvcGVydGllc1RvTWFrZVRoZW1EaXN0aW5jdChmaWVsZC5WYWx1ZSwgbG9vcGluZ0VsZW1lbnRDb25maWcsIGluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudENvbmZpZ1Byb3BlcnR5LlZhbHVlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBmaWVsZC5WYWx1ZSA9IGVsZW1lbnRDb25maWdQcm9wZXJ0eS5WYWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLmNvbnBvbmVudFR5cGVzVG9Ob3RVcGRhdGVWYWx1ZS5pbmNsdWRlcyhmaWVsZC5UeXBlKSkge1xyXG4gICAgICAgICAgICBmaWVsZC5WYWx1ZSA9IGAke2ZpZWxkLlZhbHVlfV8ke2luZGV4ICsgMX1gO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBmaWVsZFt0aGlzLm9yaWdpbmFsRmllbGROYW1lRmllbGRdID0gZmllbGQuTmFtZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZWxlbWVudENvbmZpZ1Byb3BlcnR5KSkge1xyXG4gICAgICAgIGZpZWxkW2tleV0gPSBlbGVtZW50Q29uZmlnUHJvcGVydHlba2V5XTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zZXRDbG9uZWRGaWVsZHNUb0Zvcm1Db250cm9scyhmaWVsZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENsb25lZEZpZWxkc1RvRm9ybUNvbnRyb2xzKGZpZWxkOiBaRmllbGQpIHtcclxuICAgIGlmICghZmllbGQuU3ViVHlwZSkge1xyXG4gICAgICB0aGlzLmZpZWxkU2VydmljZS5wYXRjaEZpZWxkUHJvcGVydHkoZmllbGQpO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBmaWVsZC5WYWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBmaWVsZC5WYWx1ZS5pbmRleE9mKFwiLlwiKSAhPT0gLTEpIHtcclxuICAgICAgICBpZiAoWyd6Z3JpZCcsICd6dHJlZScsICd0ZXh0YXJlYWpzb24nXS5pbmRleE9mKGZpZWxkLlR5cGUpID09PSAtMSkge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKFwiRm9ybUNvbnRyb2wgLSBpbnZhbGlkIGZpZWxkIHZhbHVlXCIsIGZpZWxkLlZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgaXNGb3JtQ29udHJvbCA9IFpDb21wb25lbnRIZWxwZXIuaXNGb3JtQ29udHJvbChmaWVsZCk7XHJcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gWkNvbXBvbmVudEhlbHBlci5pc1Zpc2libGVGb3JtQ29udHJvbCh0aGlzLCBmaWVsZCk7XHJcbiAgICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IFpDb21wb25lbnRIZWxwZXIuaXNSZXF1aXJlZEZvcm1Db250cm9sKHRoaXMsIGZpZWxkKTtcclxuXHJcbiAgICAgICAgaWYgKGlzRm9ybUNvbnRyb2wgPT09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBaQ29tcG9uZW50SGVscGVyLmdldFZhbGlkYXRvcnMoZmllbGQsIGlzVmlzaWJsZSwgaXNSZXF1aXJlZCwgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwLmZvcm0uYWRkQ29udHJvbChmaWVsZC5WYWx1ZSwgbmV3IEZvcm1Db250cm9sKFxyXG4gICAgICAgICAgICB0aGlzLmdyb3VwLnpNb2RlbFtmaWVsZC5WYWx1ZV0sIHZhbGlkYXRvcnNcclxuICAgICAgICAgICkpO1xyXG4gICAgICAgICAgdGhpcy5jbG9uZWRGb3JtQ29udHJvbExpc3QucHVzaChmaWVsZC5WYWx1ZSk7XHJcblxyXG4gICAgICAgICAgaWYgKFpDb21wb25lbnRIZWxwZXIuaGFzQ0NGaWVsZChmaWVsZC5UeXBlKSkge1xyXG4gICAgICAgICAgICBjb25zdCBjY1ZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBaQ29tcG9uZW50SGVscGVyLmdldENDVmFsaWRhdG9ycyhmaWVsZCwgaXNWaXNpYmxlLCBpc1JlcXVpcmVkKTtcclxuICAgICAgICAgICAgdGhpcy5ncm91cC5mb3JtLmFkZENvbnRyb2woZmllbGQuQ0NWYWx1ZSwgbmV3IEZvcm1Db250cm9sKFxyXG4gICAgICAgICAgICAgIHRoaXMuZ3JvdXAuek1vZGVsW2ZpZWxkLkNDVmFsdWVdLCBjY1ZhbGlkYXRvcnNcclxuICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvbmVkRm9ybUNvbnRyb2xMaXN0LnB1c2goZmllbGQuQ0NWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGVcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZSB6bG9vcC1jb250YWluZXJcIlxyXG4gICAgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiPlxyXG4gIDxhcHAtemZvcm1jb250cm9sIFtuZ0NsYXNzXT1cImdyb3VwW2ZpZWxkLmlzVmlzaWJsZUZpZWxkXSA/IGZpZWxkLkRpdkNsYXNzIDogKChmaWVsZC5WaXNpYmxlID09PSB0cnVlKSA/ICBmaWVsZC5EaXZDbGFzcyA6ICdmbGV4LWhpZGUnKVwiXHJcbiAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgY2xvbmVkRmllbGRzXCJcclxuICAgIFtmaWVsZF09XCJmaWVsZFwiXHJcbiAgICBbY29udGFpbmVyRmllbGRdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIiBpZD1cInt7ZmllbGQuVHlwZX19LXt7ZmllbGQuTmFtZX19XCJcclxuICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiIGNsYXNzPVwiZTF0YWctc3R5bGUxXCI+XHJcbiAgPC9hcHAtemZvcm1jb250cm9sPlxyXG48L2Rpdj5cclxuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemxvb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemxvb3Avemxvb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemxvb3Avemxvb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFvQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVExRCxNQUFNLE9BQU8sY0FBZSxTQUFRLGtCQUFrQjtJQU9wRCxZQUNTLGdCQUFtQyxFQUNuQyxZQUEwQjtRQUVqQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUhqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUmxCLDJCQUFzQixHQUFHLGlCQUFpQixDQUFDO1FBQ3JELGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLDBCQUFxQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDNUMsY0FBUyxHQUFHLEVBQVksQ0FBQztRQUN6QixtQ0FBOEIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBT3RELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLEtBQUss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S0FBSyxDQUFDLENBQUM7b0JBQzNHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksV0FBVyxDQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxDQUMzQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBRTdDLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDM0MsTUFBTSxZQUFZLEdBQWtCLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO3dCQUNuRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FDL0MsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNoRDtpQkFDRjthQUNGO1NBQ0Y7SUFDSCxDQUFDOzsyR0EvSFUsY0FBYzsrRkFBZCxjQUFjLHdFQ2IzQiw4cEJBU0E7MkZESWEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRhaW5lckZpZWxkQmFzZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL2NvbnRhaW5lcmZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRIZWxwZXIsIEZpZWxkU2VydmljZSwgWkNvbXBvbmVudCwgWkZpZWxkIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16bG9vcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3psb29wLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96bG9vcC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFpsb29wQ29tcG9uZW50IGV4dGVuZHMgQ29udGFpbmVyRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IG9yaWdpbmFsRmllbGROYW1lRmllbGQgPSAnT3JpTmFtZUZvclpsb29wJztcclxuICBwdWJsaWMgY2xvbmVkRmllbGRzID0gW107XHJcbiAgcHJpdmF0ZSBjbG9uZWRGb3JtQ29udHJvbExpc3QgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgaW5pdEZpZWxkID0ge30gYXMgWkZpZWxkO1xyXG4gIHByaXZhdGUgY29ucG9uZW50VHlwZXNUb05vdFVwZGF0ZVZhbHVlID0gWyd6YnV0dG9ucyddO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBmaWVsZFNlcnZpY2U6IEZpZWxkU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRGaWVsZCA9IFpDb21wb25lbnRIZWxwZXIuZGVlcENsb25lKHRoaXMuZGF0YSk7XHJcblxyXG4gICAgdGhpcy5zZXR1cExvb3BpbmdFbGVtZW50KCk7XHJcbiAgICBzdXBlci5pbml0Q29tcG9uZW50KCkuc3Vic2NyaWJlKCgpID0+IHsgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTsgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaEZpZWxkRWxlbWVudCgpIHtcclxuICAgIHRoaXMuZGF0YSA9IFpDb21wb25lbnRIZWxwZXIuZGVlcENsb25lKHRoaXMuaW5pdEZpZWxkKTtcclxuICAgIHRoaXMuc2V0dXBMb29waW5nRWxlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cExvb3BpbmdFbGVtZW50KCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5Mb29waW5nRWxlbWVudENvbmZpZykge1xyXG4gICAgICAvLyBSZW1vdmUgcHJldmlvdXNseSBjbG9uZWQgZmllbGRzIGZyb20gZm9ybSBjb250cm9scyAoaWYgYW55KVxyXG4gICAgICBpZiAodGhpcy5jbG9uZWRGb3JtQ29udHJvbExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGZvciAoY29uc3QgZmdOYW1lIG9mIHRoaXMuY2xvbmVkRm9ybUNvbnRyb2xMaXN0KSB7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwLmZvcm0ucmVtb3ZlQ29udHJvbChmZ05hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ2xvbmUgemxvb3AncyBjaGlsZFxyXG4gICAgICB0aGlzLmNsb25lZEZpZWxkcyA9IHRoaXMuY2xvbmVGaWVsZEVsZW1lbnRDaGlsZCh0aGlzLmRhdGEpO1xyXG5cclxuICAgICAgLy8gQXBwZW5kIGNsb25lZCBmaWVsZHMgdG8gZ3JvdXAuZmllbGRzIGZvciBlcnJvciBtZXNzYWdlIGRpc3BsYXlpbmdcclxuICAgICAgdGhpcy5ncm91cC5jbG9uZWRGaWVsZHMgPSBaQ29tcG9uZW50SGVscGVyLmRlZXBDbG9uZSh0aGlzLmdyb3VwLmNsb25lZEZpZWxkcyB8fCB0aGlzLmdyb3VwLmZpZWxkcyk7XHJcbiAgICAgIGNvbnN0IHRoaXNGaWVsZCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0RmllbGRGcm9tRmllbGRzQnlOYW1lKHRoaXMuZ3JvdXAuY2xvbmVkRmllbGRzLCB0aGlzLmRhdGFbdGhpcy5vcmlnaW5hbEZpZWxkTmFtZUZpZWxkXSB8fCB0aGlzLmRhdGEuTmFtZSk7XHJcbiAgICAgIHRoaXNGaWVsZC5WYWx1ZSA9IHRoaXMuY2xvbmVkRmllbGRzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9uZUZpZWxkRWxlbWVudENoaWxkKGZpZWxkOiBaRmllbGQpOiBBcnJheTxaRmllbGQ+IHtcclxuICAgIGNvbnN0IGxvb3BpbmdFbGVtZW50Q29uZmlnID0gdHlwZW9mIGZpZWxkLkxvb3BpbmdFbGVtZW50Q29uZmlnID09ICdzdHJpbmcnID8gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGZpZWxkLkxvb3BpbmdFbGVtZW50Q29uZmlnLCB0aGlzLmdyb3VwKSA6IGZpZWxkLkxvb3BpbmdFbGVtZW50Q29uZmlnO1xyXG5cclxuICAgIGlmIChsb29waW5nRWxlbWVudENvbmZpZyA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGZpZWxkLlZhbHVlO1xyXG4gICAgfVxyXG4gICAgbGV0IGZpZWxkVG9JbnNlcnQgPSBuZXcgQXJyYXk8WkZpZWxkPigpO1xyXG4gICAgZm9yIChsZXQgY29uZmlnSW5kZXggPSAwOyBjb25maWdJbmRleCA8IGxvb3BpbmdFbGVtZW50Q29uZmlnLkNvdW50OyBjb25maWdJbmRleCsrKSB7XHJcbiAgICAgIGNvbnN0IGNsb25lZEZpZWxkcyA9IFpDb21wb25lbnRIZWxwZXIuZGVlcENsb25lKGZpZWxkLlZhbHVlKTtcclxuICAgICAgdGhpcy51cGRhdGVGaWVsZFByb3BlcnRpZXNUb01ha2VUaGVtRGlzdGluY3QoY2xvbmVkRmllbGRzLCBsb29waW5nRWxlbWVudENvbmZpZywgY29uZmlnSW5kZXgpO1xyXG4gICAgICBmaWVsZFRvSW5zZXJ0ID0gZmllbGRUb0luc2VydC5jb25jYXQoY2xvbmVkRmllbGRzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmllbGRUb0luc2VydDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRmllbGRQcm9wZXJ0aWVzVG9NYWtlVGhlbURpc3RpbmN0KGZpZWxkczogQXJyYXk8WkZpZWxkPiwgbG9vcGluZ0VsZW1lbnRDb25maWc6IGFueSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcclxuXHJcbiAgICAgIGNvbnN0IGVsZW1lbnRDb25maWcgPSBsb29waW5nRWxlbWVudENvbmZpZy5Ub1JlcGxhY2UuZmluZCh4ID0+IHguRWxlbWVudE5hbWUgPT0gZmllbGQuTmFtZSkgfHwgbG9vcGluZ0VsZW1lbnRDb25maWcuVG9SZXBsYWNlLmZpbmQoeCA9PiB4LkVsZW1lbnROYW1lID09IGZpZWxkW3RoaXMub3JpZ2luYWxGaWVsZE5hbWVGaWVsZF0pO1xyXG4gICAgICBjb25zdCBlbGVtZW50Q29uZmlnUHJvcGVydHkgPSBlbGVtZW50Q29uZmlnICYmIGVsZW1lbnRDb25maWcuUHJvcGVydHkgJiYgZWxlbWVudENvbmZpZy5Qcm9wZXJ0eS5sZW5ndGggPiBpbmRleCA/IGVsZW1lbnRDb25maWcuUHJvcGVydHlbaW5kZXhdIDoge307XHJcblxyXG4gICAgICBpZiAoZmllbGQuVHlwZSAhPT0gJ3psb29wJykge1xyXG4gICAgICAgIGZpZWxkLk5hbWUgPSBgJHtmaWVsZC5OYW1lfV8ke2luZGV4ICsgMX1gO1xyXG4gICAgICAgIGlmIChmaWVsZC5MYWJlbCkge1xyXG4gICAgICAgICAgZmllbGQuTGFiZWwgPSBgJHtmaWVsZC5MYWJlbH1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQuVmFsdWUpKSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZpZWxkUHJvcGVydGllc1RvTWFrZVRoZW1EaXN0aW5jdChmaWVsZC5WYWx1ZSwgbG9vcGluZ0VsZW1lbnRDb25maWcsIGluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudENvbmZpZ1Byb3BlcnR5LlZhbHVlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBmaWVsZC5WYWx1ZSA9IGVsZW1lbnRDb25maWdQcm9wZXJ0eS5WYWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLmNvbnBvbmVudFR5cGVzVG9Ob3RVcGRhdGVWYWx1ZS5pbmNsdWRlcyhmaWVsZC5UeXBlKSkge1xyXG4gICAgICAgICAgICBmaWVsZC5WYWx1ZSA9IGAke2ZpZWxkLlZhbHVlfV8ke2luZGV4ICsgMX1gO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBmaWVsZFt0aGlzLm9yaWdpbmFsRmllbGROYW1lRmllbGRdID0gZmllbGQuTmFtZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZWxlbWVudENvbmZpZ1Byb3BlcnR5KSkge1xyXG4gICAgICAgIGZpZWxkW2tleV0gPSBlbGVtZW50Q29uZmlnUHJvcGVydHlba2V5XTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zZXRDbG9uZWRGaWVsZHNUb0Zvcm1Db250cm9scyhmaWVsZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENsb25lZEZpZWxkc1RvRm9ybUNvbnRyb2xzKGZpZWxkOiBaRmllbGQpIHtcclxuICAgIGlmICghZmllbGQuU3ViVHlwZSkge1xyXG4gICAgICB0aGlzLmZpZWxkU2VydmljZS5wYXRjaEZpZWxkUHJvcGVydHkoZmllbGQpO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBmaWVsZC5WYWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBmaWVsZC5WYWx1ZS5pbmRleE9mKFwiLlwiKSAhPT0gLTEpIHtcclxuICAgICAgICBpZiAoWyd6Z3JpZCcsICd6dHJlZScsICd0ZXh0YXJlYWpzb24nXS5pbmRleE9mKGZpZWxkLlR5cGUpID09PSAtMSkge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKFwiRm9ybUNvbnRyb2wgLSBpbnZhbGlkIGZpZWxkIHZhbHVlXCIsIGZpZWxkLlZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgaXNGb3JtQ29udHJvbCA9IFpDb21wb25lbnRIZWxwZXIuaXNGb3JtQ29udHJvbChmaWVsZCk7XHJcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gWkNvbXBvbmVudEhlbHBlci5pc1Zpc2libGVGb3JtQ29udHJvbCh0aGlzLCBmaWVsZCk7XHJcbiAgICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IFpDb21wb25lbnRIZWxwZXIuaXNSZXF1aXJlZEZvcm1Db250cm9sKHRoaXMsIGZpZWxkKTtcclxuXHJcbiAgICAgICAgaWYgKGlzRm9ybUNvbnRyb2wgPT09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBaQ29tcG9uZW50SGVscGVyLmdldFZhbGlkYXRvcnMoZmllbGQsIGlzVmlzaWJsZSwgaXNSZXF1aXJlZCwgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwLmZvcm0uYWRkQ29udHJvbChmaWVsZC5WYWx1ZSwgbmV3IEZvcm1Db250cm9sKFxyXG4gICAgICAgICAgICB0aGlzLmdyb3VwLnpNb2RlbFtmaWVsZC5WYWx1ZV0sIHZhbGlkYXRvcnNcclxuICAgICAgICAgICkpO1xyXG4gICAgICAgICAgdGhpcy5jbG9uZWRGb3JtQ29udHJvbExpc3QucHVzaChmaWVsZC5WYWx1ZSk7XHJcblxyXG4gICAgICAgICAgaWYgKFpDb21wb25lbnRIZWxwZXIuaGFzQ0NGaWVsZChmaWVsZC5UeXBlKSkge1xyXG4gICAgICAgICAgICBjb25zdCBjY1ZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBaQ29tcG9uZW50SGVscGVyLmdldENDVmFsaWRhdG9ycyhmaWVsZCwgaXNWaXNpYmxlLCBpc1JlcXVpcmVkKTtcclxuICAgICAgICAgICAgdGhpcy5ncm91cC5mb3JtLmFkZENvbnRyb2woZmllbGQuQ0NWYWx1ZSwgbmV3IEZvcm1Db250cm9sKFxyXG4gICAgICAgICAgICAgIHRoaXMuZ3JvdXAuek1vZGVsW2ZpZWxkLkNDVmFsdWVdLCBjY1ZhbGlkYXRvcnNcclxuICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvbmVkRm9ybUNvbnRyb2xMaXN0LnB1c2goZmllbGQuQ0NWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGVcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZSB6bG9vcC1jb250YWluZXJcIlxyXG4gICAgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiPlxyXG4gIDxhcHAtemZvcm1jb250cm9sIFtuZ0NsYXNzXT1cImdyb3VwW2ZpZWxkLmlzVmlzaWJsZUZpZWxkXSA/IGZpZWxkLkRpdkNsYXNzIDogKChmaWVsZC5WaXNpYmxlID09PSB0cnVlKSA/ICBmaWVsZC5EaXZDbGFzcyA6ICdmbGV4LWhpZGUnKVwiXHJcbiAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgY2xvbmVkRmllbGRzXCJcclxuICAgIFtmaWVsZF09XCJmaWVsZFwiXHJcbiAgICBbY29udGFpbmVyRmllbGRdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIiBpZD1cInt7ZmllbGQuVHlwZX19LXt7ZmllbGQuTmFtZX19XCJcclxuICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiIGNsYXNzPVwiZTF0YWctc3R5bGUxXCI+XHJcbiAgPC9hcHAtemZvcm1jb250cm9sPlxyXG48L2Rpdj5cclxuIl19
|