@myrtex-org/form 1.0.11 → 1.0.14

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.
@@ -125,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
125
125
  }], changed: [{
126
126
  type: Output
127
127
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9iYXNlL2Jhc2UtZmllbGQvYmFzZS1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFN0QsT0FBTyxFQUFFLGFBQWEsRUFBUyxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHeEQsTUFBTSxPQUFnQixrQkFBa0I7SUFEeEM7UUFLWSxXQUFNLEdBQVUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdCLGNBQVMsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDeEQsb0JBQWUsR0FBbUIsRUFBRSxDQUFDO1FBRXZDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3RDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQU9uQyxpQkFBWSxHQUFpQixFQUFFLENBQUM7UUFROUIsY0FBUyxHQUFzQixNQUFNLENBQUM7UUFVOUIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUErQyxD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UUFBUSxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsS0FBbUI7UUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRW5DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDeEMsQ0FBQzsrR0FySW1CLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUR2QyxVQUFVOzhCQW1CSSxNQUFNO3NCQUFsQixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRU8sSUFBSTtzQkFBaEIsS0FBSztnQkFRVyxPQUFPO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcbmltcG9ydCB7IFZhbHVlVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC1mb3JtL2VudW1zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TW9kZWxCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkLWZvcm0vbW9kZWxzJztcclxuaW1wb3J0IHsgQXV0b1NhdmVTdG9yZSwgRmllbGQgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFZhbHVlTW9kZWwsIFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBkZWZhdWx0VmFsdWVNb2RlbCwgZ2V0VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZpZWxkQ29tcG9uZW50PFRNb2RlbCBleHRlbmRzIENvbXBvbmVudE1vZGVsQmFzZSwgVE91dHB1dEV2ZW50IGV4dGVuZHMge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdmFsdWU6IGFueVxyXG59PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcm90ZWN0ZWQgX3N0b3JlOiBTdG9yZSA9IGluamVjdChTdG9yZSlcclxuICBwcm90ZWN0ZWQgX2RldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZilcclxuICBwcm90ZWN0ZWQgX3N1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9hdXRvU2F2ZVN0b3JlID0gaW5qZWN0KEF1dG9TYXZlU3RvcmUpXHJcbiAgcHJpdmF0ZSBfaXNDaGVja1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuXHJcblxyXG4gIHB1YmxpYyBtb2RlbCE6IENvbXBvbmVudFZhbHVlTW9kZWw7XHJcbiAgcHVibGljIHNldHRpbmdzITogVE1vZGVsO1xyXG4gIHB1YmxpYyBtYW51YWxWYWx1ZXM6IFZhbHVlTW9kZWxbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBzZXQgdmFsdWVzKHZhbHVlOiBWYWx1ZU1vZGVsW10pIHtcclxuICAgIGlmICh0aGlzLnZhbHVlTW9kZSA9PT0gJ21hbnVhbCcpIHtcclxuICAgICAgdGhpcy5tYW51YWxWYWx1ZXMgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHZhbHVlTW9kZTogJ2F1dG8nIHwgJ21hbnVhbCcgPSAnYXV0byc7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBkYXRhKHNldHRpbmdzOiBDb21wb25lbnRNb2RlbEJhc2UpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncyBhcyBUTW9kZWw7XHJcblxyXG4gICAgdGhpcy5fY3VzdG9tSW5pdCgpO1xyXG5cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcG9uZW50VmFsdWVNb2RlbCB8IENvbXBvbmVudFZhbHVlTW9kZWxbXT4oKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbml0TW9kZWwoKTtcclxuXHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdElzQ2hlY2tSZXF1aXJlZClcclxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgIHRoaXMuX2lzQ2hlY2tSZXF1aXJlZCA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pKTtcclxuXHJcbiAgICBpZiAodGhpcy52YWx1ZU1vZGUgPT09ICdhdXRvJykge1xyXG4gICAgICB0aGlzLl9pbml0U3Vic2NyaXB0aW9uRm9yVmFsdWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucyQuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXV0b3NhdmVGaWVsZHMoKTogRmllbGRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXV0b1NhdmVTdG9yZS5maWVsZHMoKVxyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5faXNDaGVja1JlcXVpcmVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzLm9wdGlvbnMucmVxdWlyZWQgJiYgIXRoaXMuX3JlcXVpcmVkVmFsaWRhdGUodGhpcy5tb2RlbC52YWx1ZVR5cGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEludmFsaWRNZXNzYWdlKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5faXNDaGVja1JlcXVpcmVkKSB7XHJcbiAgICAgIHJldHVybiAn0J/QvtC70LUg0L7QsdGP0LfQsNGC0LXQu9GM0L3QviDQtNC70Y8g0LfQsNC/0L7Qu9C90LXQvdC40Y8nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWRWYWxpZGF0ZSh0eXBlOiBWYWx1ZVR5cGUpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIChWYWx1ZVR5cGUuU3RyaW5nKTpcclxuICAgICAgY2FzZSAoVmFsdWVUeXBlLkRhdGVUaW1lKTpcclxuICAgICAgICByZXR1cm4gISF0aGlzLm1vZGVsLnZhbHVlPy50cmltKCk7XHJcbiAgICAgIGNhc2UgKFZhbHVlVHlwZS5EZWNpbWFsKTpcclxuICAgICAgICByZXR1cm4gISF0aGlzLm1vZGVsLnZhbHVlO1xyXG4gICAgICBjYXNlIChWYWx1ZVR5cGUuQm9vbGVhbik6XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5tb2RlbC52YWx1ZTtcclxuICAgICAgY2FzZSAoVmFsdWVUeXBlLlN0cmluZ0FycmF5KTpcclxuICAgICAgY2FzZSAoVmFsdWVUeXBlLkd1aWRBcnJheSk6XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5tb2RlbC52YWx1ZT8ubGVuZ3RoO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9pbml0U3Vic2NyaXB0aW9uRm9yVmFsdWUoKSB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogQ29tcG9uZW50VmFsdWVNb2RlbCB8IG51bGwgfCAoQ29tcG9uZW50VmFsdWVNb2RlbCB8IG51bGwpW10pID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLnZhbHVlID0gcmVzdWx0LnZhbHVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fY3VzdG9tSW5pdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF91cGRhdGVWYWx1ZSgpIHtcclxuICAgIHRoaXMuY2hhbmdlZC5lbWl0KHRoaXMuX3RyYW5zZm9ybU91dHB1dFZhbHVlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF90cmFuc2Zvcm1PdXRwdXRWYWx1ZSgpOiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgQ29tcG9uZW50VmFsdWVNb2RlbFtdIHtcclxuICAgIHJldHVybiBjbG9uZURlZXAodGhpcy5tb2RlbCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2N1c3RvbU1vZGVsTW9kaWZ5KGV2ZW50OiBUT3V0cHV0RXZlbnQpIHtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfY3VzdG9tSW5pdCgpIHtcclxuICAgIHRoaXMubW9kZWwgPSB0aGlzLm1vZGVsIHx8IGRlZmF1bHRWYWx1ZU1vZGVsKHRoaXMuc2V0dGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9pbml0TW9kZWwoKSB7XHJcbiAgICBpZiAodGhpcy52YWx1ZU1vZGUgPT09ICdtYW51YWwnKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBjbG9uZURlZXAoZ2V0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzLCB0aGlzLm1hbnVhbFZhbHVlcykgYXMgQ29tcG9uZW50VmFsdWVNb2RlbCkgfHwgZGVmYXVsdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZGVmYXVsdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkaXNwYXRjaE1vZGlmeShldmVudDogVE91dHB1dEV2ZW50KSB7XHJcbiAgICB0aGlzLl9hdXRvU2F2ZVN0b3JlLmFkZElkKGV2ZW50LmlkKVxyXG5cclxuICAgIHRoaXMuX2N1c3RvbU1vZGVsTW9kaWZ5KGV2ZW50KTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+ICB0aGlzLl91cGRhdGVWYWx1ZSgpKVxyXG4gIH1cclxufVxyXG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9iYXNlL2Jhc2UtZmllbGQvYmFzZS1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFN0QsT0FBTyxFQUFFLGFBQWEsRUFBUyxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHeEQsTUFBTSxPQUFnQixrQkFBa0I7SUFEeEM7UUFLWSxXQUFNLEdBQVUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdCLGNBQVMsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDeEQsb0JBQWUsR0FBbUIsRUFBRSxDQUFDO1FBRXZDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3RDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUluQyxpQkFBWSxHQUFpQixFQUFFLENBQUM7UUFROUIsY0FBUyxHQUFzQixNQUFNLENBQUM7UUFVOUIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUErQyxD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UUFBUSxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsS0FBbUI7UUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRW5DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDeEMsQ0FBQzsrR0FsSW1CLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUR2QyxVQUFVOzhCQWdCSSxNQUFNO3NCQUFsQixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRU8sSUFBSTtzQkFBaEIsS0FBSztnQkFRVyxPQUFPO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcbmltcG9ydCB7IFZhbHVlVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC1mb3JtL2VudW1zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TW9kZWxCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkLWZvcm0vbW9kZWxzJztcclxuaW1wb3J0IHsgQXV0b1NhdmVTdG9yZSwgRmllbGQgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFZhbHVlTW9kZWwsIFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBkZWZhdWx0VmFsdWVNb2RlbCwgZ2V0VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZpZWxkQ29tcG9uZW50PFRNb2RlbCBleHRlbmRzIENvbXBvbmVudE1vZGVsQmFzZSwgVE91dHB1dEV2ZW50IGV4dGVuZHMge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdmFsdWU6IGFueVxyXG59PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcm90ZWN0ZWQgX3N0b3JlOiBTdG9yZSA9IGluamVjdChTdG9yZSlcclxuICBwcm90ZWN0ZWQgX2RldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZilcclxuICBwcm90ZWN0ZWQgX3N1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9hdXRvU2F2ZVN0b3JlID0gaW5qZWN0KEF1dG9TYXZlU3RvcmUpXHJcbiAgcHJpdmF0ZSBfaXNDaGVja1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBtb2RlbCE6IENvbXBvbmVudFZhbHVlTW9kZWw7XHJcbiAgcHVibGljIHNldHRpbmdzITogVE1vZGVsO1xyXG4gIHB1YmxpYyBtYW51YWxWYWx1ZXM6IFZhbHVlTW9kZWxbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBzZXQgdmFsdWVzKHZhbHVlOiBWYWx1ZU1vZGVsW10pIHtcclxuICAgIGlmICh0aGlzLnZhbHVlTW9kZSA9PT0gJ21hbnVhbCcpIHtcclxuICAgICAgdGhpcy5tYW51YWxWYWx1ZXMgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHZhbHVlTW9kZTogJ2F1dG8nIHwgJ21hbnVhbCcgPSAnYXV0byc7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBkYXRhKHNldHRpbmdzOiBDb21wb25lbnRNb2RlbEJhc2UpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncyBhcyBUTW9kZWw7XHJcblxyXG4gICAgdGhpcy5fY3VzdG9tSW5pdCgpO1xyXG5cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcG9uZW50VmFsdWVNb2RlbCB8IENvbXBvbmVudFZhbHVlTW9kZWxbXT4oKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbml0TW9kZWwoKTtcclxuXHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdElzQ2hlY2tSZXF1aXJlZClcclxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgIHRoaXMuX2lzQ2hlY2tSZXF1aXJlZCA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pKTtcclxuXHJcbiAgICBpZiAodGhpcy52YWx1ZU1vZGUgPT09ICdhdXRvJykge1xyXG4gICAgICB0aGlzLl9pbml0U3Vic2NyaXB0aW9uRm9yVmFsdWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucyQuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXV0b3NhdmVGaWVsZHMoKTogRmllbGRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXV0b1NhdmVTdG9yZS5maWVsZHMoKVxyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5faXNDaGVja1JlcXVpcmVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzLm9wdGlvbnMucmVxdWlyZWQgJiYgIXRoaXMuX3JlcXVpcmVkVmFsaWRhdGUodGhpcy5tb2RlbC52YWx1ZVR5cGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEludmFsaWRNZXNzYWdlKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5faXNDaGVja1JlcXVpcmVkKSB7XHJcbiAgICAgIHJldHVybiAn0J/QvtC70LUg0L7QsdGP0LfQsNGC0LXQu9GM0L3QviDQtNC70Y8g0LfQsNC/0L7Qu9C90LXQvdC40Y8nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWRWYWxpZGF0ZSh0eXBlOiBWYWx1ZVR5cGUpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIChWYWx1ZVR5cGUuU3RyaW5nKTpcclxuICAgICAgY2FzZSAoVmFsdWVUeXBlLkRhdGVUaW1lKTpcclxuICAgICAgICByZXR1cm4gISF0aGlzLm1vZGVsLnZhbHVlPy50cmltKCk7XHJcbiAgICAgIGNhc2UgKFZhbHVlVHlwZS5EZWNpbWFsKTpcclxuICAgICAgICByZXR1cm4gISF0aGlzLm1vZGVsLnZhbHVlO1xyXG4gICAgICBjYXNlIChWYWx1ZVR5cGUuQm9vbGVhbik6XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5tb2RlbC52YWx1ZTtcclxuICAgICAgY2FzZSAoVmFsdWVUeXBlLlN0cmluZ0FycmF5KTpcclxuICAgICAgY2FzZSAoVmFsdWVUeXBlLkd1aWRBcnJheSk6XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5tb2RlbC52YWx1ZT8ubGVuZ3RoO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9pbml0U3Vic2NyaXB0aW9uRm9yVmFsdWUoKSB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogQ29tcG9uZW50VmFsdWVNb2RlbCB8IG51bGwgfCAoQ29tcG9uZW50VmFsdWVNb2RlbCB8IG51bGwpW10pID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLnZhbHVlID0gcmVzdWx0LnZhbHVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fY3VzdG9tSW5pdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF91cGRhdGVWYWx1ZSgpIHtcclxuICAgIHRoaXMuY2hhbmdlZC5lbWl0KHRoaXMuX3RyYW5zZm9ybU91dHB1dFZhbHVlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF90cmFuc2Zvcm1PdXRwdXRWYWx1ZSgpOiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgQ29tcG9uZW50VmFsdWVNb2RlbFtdIHtcclxuICAgIHJldHVybiBjbG9uZURlZXAodGhpcy5tb2RlbCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2N1c3RvbU1vZGVsTW9kaWZ5KGV2ZW50OiBUT3V0cHV0RXZlbnQpIHtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfY3VzdG9tSW5pdCgpIHtcclxuICAgIHRoaXMubW9kZWwgPSB0aGlzLm1vZGVsIHx8IGRlZmF1bHRWYWx1ZU1vZGVsKHRoaXMuc2V0dGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9pbml0TW9kZWwoKSB7XHJcbiAgICBpZiAodGhpcy52YWx1ZU1vZGUgPT09ICdtYW51YWwnKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBjbG9uZURlZXAoZ2V0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzLCB0aGlzLm1hbnVhbFZhbHVlcykgYXMgQ29tcG9uZW50VmFsdWVNb2RlbCkgfHwgZGVmYXVsdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZGVmYXVsdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkaXNwYXRjaE1vZGlmeShldmVudDogVE91dHB1dEV2ZW50KSB7XHJcbiAgICB0aGlzLl9hdXRvU2F2ZVN0b3JlLmFkZElkKGV2ZW50LmlkKVxyXG5cclxuICAgIHRoaXMuX2N1c3RvbU1vZGVsTW9kaWZ5KGV2ZW50KTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+ICB0aGlzLl91cGRhdGVWYWx1ZSgpKVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -6,6 +6,7 @@ import { Subject } from 'rxjs';
6
6
  import { debounceTime } from 'rxjs/operators';
7
7
  import { BaseFieldComponent } from '../../base';
8
8
  import { objectFormActions, objectFormSelectors } from '../../../../store';
9
+ import { ObjectFormService } from '../../../../services';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "@myrtex-org/ui";
11
12
  import * as i2 from "@angular/common";
@@ -15,6 +16,7 @@ export class InputFileComponent extends BaseFieldComponent {
15
16
  this.type = ComponentType.InputFile;
16
17
  this._store = inject(Store);
17
18
  this._detector = inject(ChangeDetectorRef);
19
+ this._objectFormService = inject(ObjectFormService);
18
20
  this._changeFileSubject$ = new Subject();
19
21
  this._fileSubscriptions$ = [];
20
22
  this._isFileCheckRequired = false;
@@ -47,6 +49,17 @@ export class InputFileComponent extends BaseFieldComponent {
47
49
  }
48
50
  }));
49
51
  }
52
+ get apiUrl() {
53
+ return this._objectFormService.apiUrl;
54
+ }
55
+ get getInvalid() {
56
+ if (this._isFileCheckRequired) {
57
+ return this.settings.options.required && !this.model.value?.length;
58
+ }
59
+ else {
60
+ return false;
61
+ }
62
+ }
50
63
  ngOnDestroy() {
51
64
  this._fileSubscriptions$.forEach((subscription) => subscription.unsubscribe());
52
65
  }
@@ -60,14 +73,6 @@ export class InputFileComponent extends BaseFieldComponent {
60
73
  this.model.value = this.files.map(f => f.id);
61
74
  this.dispatchModify();
62
75
  }
63
- get getInvalid() {
64
- if (this._isFileCheckRequired) {
65
- return this.settings.options.required && !this.model.value?.length;
66
- }
67
- else {
68
- return false;
69
- }
70
- }
71
76
  dispatchModify() {
72
77
  this._changeFileSubject$.next(this.model);
73
78
  }
@@ -76,10 +81,10 @@ export class InputFileComponent extends BaseFieldComponent {
76
81
  this._detector.detectChanges();
77
82
  }
78
83
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputFileComponent, selector: "app-input-file", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-file-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-file\r\n [files]=\"files\"\r\n [allowedExtensions]=\"settings.options.allowedExtensions\"\r\n [maxFiles]=\"settings.options.maxFiles\"\r\n [maxSize]=\"settings.options.maxSize\"\r\n [uploadEndPoint]=\"'/form/api/v1/application/' + (applicationId$ | async) + '/upload-temp-file'\"\r\n [deleteConfirm]=\"deleteFile.bind(this)\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"'\u041F\u043E\u043B\u0435 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F'\"\r\n (filesChanged)=\"filesChanged($event)\"\r\n ></mrx-input-file>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "component", type: i1.InputFileComponent, selector: "mrx-input-file", inputs: ["autoUpload", "required", "disabled", "viewOnly", "lightDisabled", "bottomFiles", "maxSize", "maxFiles", "minFiles", "formData", "uploadEndPoint", "deleteEndPoint", "downloadEndPoint", "fileNamePlaceholder", "showInputWithError", "showDeleteButton", "isTooltipValue", "isDownloadingFile", "isHideListFiles", "target", "deleteConfirm", "innerTemplate", "uploadAdditionalData", "invalid", "invalidMessage", "checkInvalid", "messageTooManyFiles", "messageFileTooBig", "messageEmptyFile", "messageInvalidFileFormat", "placeholder", "placeholderFileMaxSize", "placeholderFileFormat", "files", "allowedExtensions"], outputs: ["filesChanged", "checkDroppedFile"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
84
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputFileComponent, selector: "app-input-file", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-file-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-file\r\n [files]=\"files\"\r\n [allowedExtensions]=\"settings.options.allowedExtensions\"\r\n [maxFiles]=\"settings.options.maxFiles\"\r\n [maxSize]=\"settings.options.maxSize\"\r\n [uploadEndPoint]=\"apiUrl + '/' + (applicationId$ | async) + '/upload-temp-file'\"\r\n [deleteConfirm]=\"deleteFile.bind(this)\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"'\u041F\u043E\u043B\u0435 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F'\"\r\n (filesChanged)=\"filesChanged($event)\"\r\n ></mrx-input-file>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "component", type: i1.InputFileComponent, selector: "mrx-input-file", inputs: ["autoUpload", "required", "disabled", "viewOnly", "lightDisabled", "bottomFiles", "maxSize", "maxFiles", "minFiles", "formData", "uploadEndPoint", "deleteEndPoint", "downloadEndPoint", "fileNamePlaceholder", "showInputWithError", "showDeleteButton", "isTooltipValue", "isDownloadingFile", "isHideListFiles", "target", "deleteConfirm", "innerTemplate", "uploadAdditionalData", "invalid", "invalidMessage", "checkInvalid", "messageTooManyFiles", "messageFileTooBig", "messageEmptyFile", "messageInvalidFileFormat", "placeholder", "placeholderFileMaxSize", "placeholderFileFormat", "files", "allowedExtensions"], outputs: ["filesChanged", "checkDroppedFile"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
80
85
  }
81
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputFileComponent, decorators: [{
82
87
  type: Component,
83
- args: [{ selector: 'app-input-file', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-file-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-file\r\n [files]=\"files\"\r\n [allowedExtensions]=\"settings.options.allowedExtensions\"\r\n [maxFiles]=\"settings.options.maxFiles\"\r\n [maxSize]=\"settings.options.maxSize\"\r\n [uploadEndPoint]=\"'/form/api/v1/application/' + (applicationId$ | async) + '/upload-temp-file'\"\r\n [deleteConfirm]=\"deleteFile.bind(this)\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"'\u041F\u043E\u043B\u0435 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F'\"\r\n (filesChanged)=\"filesChanged($event)\"\r\n ></mrx-input-file>\r\n </div>\r\n}\r\n" }]
88
+ args: [{ selector: 'app-input-file', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-file-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-file\r\n [files]=\"files\"\r\n [allowedExtensions]=\"settings.options.allowedExtensions\"\r\n [maxFiles]=\"settings.options.maxFiles\"\r\n [maxSize]=\"settings.options.maxSize\"\r\n [uploadEndPoint]=\"apiUrl + '/' + (applicationId$ | async) + '/upload-temp-file'\"\r\n [deleteConfirm]=\"deleteFile.bind(this)\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"'\u041F\u043E\u043B\u0435 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F'\"\r\n (filesChanged)=\"filesChanged($event)\"\r\n ></mrx-input-file>\r\n </div>\r\n}\r\n" }]
84
89
  }] });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC9maWxlL2lucHV0LWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvZmlsZS9pbnB1dC1maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFVM0UsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUd0QztJQVRGOztRQVVFLFNBQUksR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBRXRCLFdBQU0sR0FBVSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsY0FBUyxHQUFzQixNQUFNLENB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eUJBOzs0RkROYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkLWZvcm0vZW51bXMnO1xyXG5pbXBvcnQgeyBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtQWN0aW9ucywgb2JqZWN0Rm9ybVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlJztcclxuaW1wb3J0IHsgSW5wdXRGaWxlTW9kZWwgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IElucHV0RmlsZU1vZGVsIGFzIElucHV0RmlsZUJhc2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1pbnB1dC1maWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZmlsZS5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dEZpbGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlRmllbGRDb21wb25lbnQ8SW5wdXRGaWxlQmFzZU1vZGVsLCB7XHJcbiAgaWQ6IHN0cmluZyxcclxuICB2YWx1ZTogSW5wdXRGaWxlTW9kZWxbXVxyXG59PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICB0eXBlID0gQ29tcG9uZW50VHlwZS5JbnB1dEZpbGU7XHJcblxyXG4gIG92ZXJyaWRlIF9zdG9yZTogU3RvcmUgPSBpbmplY3QoU3RvcmUpO1xyXG4gIG92ZXJyaWRlIF9kZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuICBwcml2YXRlIF9jaGFuZ2VGaWxlU3ViamVjdCQ6IFN1YmplY3Q8Q29tcG9uZW50VmFsdWVNb2RlbD4gPSBuZXcgU3ViamVjdDxDb21wb25lbnRWYWx1ZU1vZGVsPigpO1xyXG4gIHByaXZhdGUgX2ZpbGVTdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfaXNGaWxlQ2hlY2tSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYXBwbGljYXRpb25JZCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdE9iamVjdElkKTtcclxuXHJcbiAgcHVibGljIGZpbGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luaXRNb2RlbCgpO1xyXG5cclxuICAgIHRoaXMuX2NoYW5nZUZpbGVTdWJqZWN0JC5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoNzAwKSxcclxuICAgICkuc3Vic2NyaWJlKG1vZGVsID0+IHtcclxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlVmFsdWVzKHt2YWx1ZTogY2xvbmVEZWVwKHRoaXMubW9kZWwpfSkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fZmlsZVN1YnNjcmlwdGlvbnMkLnB1c2godGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0SXNDaGVja1JlcXVpcmVkKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5faXNGaWxlQ2hlY2tSZXF1aXJlZCA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pKTtcclxuXHJcbiAgICBpZiAodGhpcy52YWx1ZU1vZGUgPT09ICdhdXRvJykge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbCB8IChDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbClbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCAmJiAhQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSByZXN1bHQudmFsdWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9jdXN0b21Jbml0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2ZpbGVTdWJzY3JpcHRpb25zJC5wdXNoKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qob2JqZWN0Rm9ybVNlbGVjdG9ycy5zZWxlY3RTZWN0aW9uRmlsZXMpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoc2VjdGlvbkZpbGVzOiBGaWxlTW9kZWxbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHNlY3Rpb25GaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5pdEZpbGVzKHNlY3Rpb25GaWxlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9maWxlU3Vic2NyaXB0aW9ucyQuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsZXNDaGFuZ2VkKGZpbGVzOiBJbnB1dEZpbGVNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmZpbGVzID0gZmlsZXM7XHJcbiAgICB0aGlzLm1vZGVsLnZhbHVlID0gdGhpcy5maWxlcy5tYXAoZiA9PiBmLmlkKTtcclxuICAgIHRoaXMuZGlzcGF0Y2hNb2RpZnkoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVGaWxlKGZpbGU6IElucHV0RmlsZU1vZGVsKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGY6IElucHV0RmlsZU1vZGVsKSA9PiBmLmlkICE9PSBmaWxlLmlkKTtcclxuICAgIHRoaXMubW9kZWwudmFsdWUgPSB0aGlzLmZpbGVzLm1hcChmID0+IGYuaWQpO1xyXG4gICAgdGhpcy5kaXNwYXRjaE1vZGlmeSgpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgZ2V0IGdldEludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5faXNGaWxlQ2hlY2tSZXF1aXJlZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5vcHRpb25zLnJlcXVpcmVkICYmICF0aGlzLm1vZGVsLnZhbHVlPy5sZW5ndGg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBkaXNwYXRjaE1vZGlmeSgpIHtcclxuICAgIHRoaXMuX2NoYW5nZUZpbGVTdWJqZWN0JC5uZXh0KHRoaXMubW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdEZpbGVzKHNlY3Rpb25GaWxlczogRmlsZU1vZGVsW10pIHtcclxuICAgIHRoaXMuZmlsZXMgPSBzZWN0aW9uRmlsZXMuZmlsdGVyKGYgPT4gdGhpcy5tb2RlbC52YWx1ZS5pbmNsdWRlcyhmLmlkKSkubWFwKGYgPT4gKFxyXG4gICAgICB7dXVpZDogZi5pZCwgbmFtZTogZi5uYW1lLCBzaXplOiBmLmxlbmd0aH1cclxuICAgICkpO1xyXG5cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChzZXR0aW5ncykge1xyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC1maWxlLWNvbnRlbnRcIj5cclxuICAgIEBpZiAoc2V0dGluZ3Mub3B0aW9ucy5sYWJlbCkge1xyXG4gICAgICA8bXJ4LWxhYmVsXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInNldHRpbmdzLm9wdGlvbnMucmVxdWlyZWRcIlxyXG4gICAgICAgIFt0b29sdGlwXT1cInNldHRpbmdzLm9wdGlvbnMudG9vbHRpcCB8fCAnJ1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ210LTInXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHNldHRpbmdzLm9wdGlvbnMubGFiZWwgfX1cclxuICAgICAgPC9tcngtbGFiZWw+XHJcbiAgICB9XHJcblxyXG4gICAgPG1yeC1pbnB1dC1maWxlXHJcbiAgICAgIFtmaWxlc109XCJmaWxlc1wiXHJcbiAgICAgIFthbGxvd2VkRXh0ZW5zaW9uc109XCJzZXR0aW5ncy5vcHRpb25zLmFsbG93ZWRFeHRlbnNpb25zXCJcclxuICAgICAgW21heEZpbGVzXT1cInNldHRpbmdzLm9wdGlvbnMubWF4RmlsZXNcIlxyXG4gICAgICBbbWF4U2l6ZV09XCJzZXR0aW5ncy5vcHRpb25zLm1heFNpemVcIlxyXG4gICAgICBbdXBsb2FkRW5kUG9pbnRdPVwiJy9mb3JtL2FwaS92MS9hcHBsaWNhdGlvbi8nICsgKGFwcGxpY2F0aW9uSWQkIHwgYXN5bmMpICsgJy91cGxvYWQtdGVtcC1maWxlJ1wiXHJcbiAgICAgIFtkZWxldGVDb25maXJtXT1cImRlbGV0ZUZpbGUuYmluZCh0aGlzKVwiXHJcbiAgICAgIFtpbnZhbGlkXT1cImdldEludmFsaWRcIlxyXG4gICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiJ9Cf0L7Qu9C1INC+0LHRj9C30LDRgtC10LvRjNC90L4g0LTQu9GPINC30LDQv9C+0LvQvdC10L3QuNGPJ1wiXHJcbiAgICAgIChmaWxlc0NoYW5nZWQpPVwiZmlsZXNDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgPjwvbXJ4LWlucHV0LWZpbGU+XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC9maWxlL2lucHV0LWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvZmlsZS9pbnB1dC1maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFRekQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUd0QztJQVRGOztRQVVFLFNBQUksR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBRXRCLFdBQU0sR0FBVSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsY0FBUyxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUxRCx1QkFBa0IsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFFakUsd0JBQW1CLEdBQWlDLElBQUksT0FBTyxFQUF1QixDQUFDO1FBQ3ZGLHdCQUFtQixHQUFtQixFQUFFLENBQUM7UUFFekMseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBRXZDLG1CQUFjLEdBQXVCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTVGLFVBQUssR0FBVSxFQUFFLENBQUM7S0E2RTFCO0lBM0VVLFFBQVE7UUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDM0IsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUNsQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsRUFBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUN2RixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUM7YUFDeEYsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRU4sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDOUYsU0FBUyxDQUFDLENBQUMsTUFBbUUsRUFBRSxFQUFFO2dCQUNqRixJQUFJLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztvQkFFaEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7UUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQzthQUN2RCxTQUFTLENBQUMsQ0FBQyxZQUF5QixFQUFFLEVBQUU7WUFDdkMsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFBO0lBQ3ZDLENBQUM7SUFFRCxJQUFhLFVBQVU7UUFDckIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUNyRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBdUI7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBb0I7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVEsY0FBYztRQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sVUFBVSxDQUFDLFlBQXlCO1FBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUM5RSxFQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFDLENBQzNDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDakMsQ0FBQzsrR0E5RlUsa0JBQWtCO21HQUFsQixrQkFBa0IsNkVDcEIvQixpaENBeUJBOzs0RkRMYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkLWZvcm0vZW51bXMnO1xyXG5pbXBvcnQgeyBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtQWN0aW9ucywgb2JqZWN0Rm9ybVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlJztcclxuaW1wb3J0IHsgSW5wdXRGaWxlTW9kZWwgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IElucHV0RmlsZU1vZGVsIGFzIElucHV0RmlsZUJhc2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IE9iamVjdEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtZmlsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWZpbGUuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRGaWxlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZpZWxkQ29tcG9uZW50PElucHV0RmlsZUJhc2VNb2RlbCwge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdmFsdWU6IElucHV0RmlsZU1vZGVsW11cclxufT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgdHlwZSA9IENvbXBvbmVudFR5cGUuSW5wdXRGaWxlO1xyXG5cclxuICBvdmVycmlkZSBfc3RvcmU6IFN0b3JlID0gaW5qZWN0KFN0b3JlKTtcclxuICBvdmVycmlkZSBfZGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgcHJpdmF0ZSBfb2JqZWN0Rm9ybVNlcnZpY2U6IE9iamVjdEZvcm1TZXJ2aWNlID0gaW5qZWN0KE9iamVjdEZvcm1TZXJ2aWNlKVxyXG5cclxuICBwcml2YXRlIF9jaGFuZ2VGaWxlU3ViamVjdCQ6IFN1YmplY3Q8Q29tcG9uZW50VmFsdWVNb2RlbD4gPSBuZXcgU3ViamVjdDxDb21wb25lbnRWYWx1ZU1vZGVsPigpO1xyXG4gIHByaXZhdGUgX2ZpbGVTdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfaXNGaWxlQ2hlY2tSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYXBwbGljYXRpb25JZCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdE9iamVjdElkKTtcclxuXHJcbiAgcHVibGljIGZpbGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luaXRNb2RlbCgpO1xyXG5cclxuICAgIHRoaXMuX2NoYW5nZUZpbGVTdWJqZWN0JC5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoNzAwKSxcclxuICAgICkuc3Vic2NyaWJlKG1vZGVsID0+IHtcclxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlVmFsdWVzKHt2YWx1ZTogY2xvbmVEZWVwKHRoaXMubW9kZWwpfSkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fZmlsZVN1YnNjcmlwdGlvbnMkLnB1c2godGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0SXNDaGVja1JlcXVpcmVkKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5faXNGaWxlQ2hlY2tSZXF1aXJlZCA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pKTtcclxuXHJcbiAgICBpZiAodGhpcy52YWx1ZU1vZGUgPT09ICdhdXRvJykge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbCB8IChDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbClbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCAmJiAhQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSByZXN1bHQudmFsdWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9jdXN0b21Jbml0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2ZpbGVTdWJzY3JpcHRpb25zJC5wdXNoKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qob2JqZWN0Rm9ybVNlbGVjdG9ycy5zZWxlY3RTZWN0aW9uRmlsZXMpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoc2VjdGlvbkZpbGVzOiBGaWxlTW9kZWxbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHNlY3Rpb25GaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5pdEZpbGVzKHNlY3Rpb25GaWxlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhcGlVcmwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9vYmplY3RGb3JtU2VydmljZS5hcGlVcmxcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGdldCBnZXRJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuX2lzRmlsZUNoZWNrUmVxdWlyZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5yZXF1aXJlZCAmJiAhdGhpcy5tb2RlbC52YWx1ZT8ubGVuZ3RoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9maWxlU3Vic2NyaXB0aW9ucyQuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsZXNDaGFuZ2VkKGZpbGVzOiBJbnB1dEZpbGVNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmZpbGVzID0gZmlsZXM7XHJcbiAgICB0aGlzLm1vZGVsLnZhbHVlID0gdGhpcy5maWxlcy5tYXAoZiA9PiBmLmlkKTtcclxuICAgIHRoaXMuZGlzcGF0Y2hNb2RpZnkoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVGaWxlKGZpbGU6IElucHV0RmlsZU1vZGVsKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGY6IElucHV0RmlsZU1vZGVsKSA9PiBmLmlkICE9PSBmaWxlLmlkKTtcclxuICAgIHRoaXMubW9kZWwudmFsdWUgPSB0aGlzLmZpbGVzLm1hcChmID0+IGYuaWQpO1xyXG4gICAgdGhpcy5kaXNwYXRjaE1vZGlmeSgpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgZGlzcGF0Y2hNb2RpZnkoKSB7XHJcbiAgICB0aGlzLl9jaGFuZ2VGaWxlU3ViamVjdCQubmV4dCh0aGlzLm1vZGVsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRGaWxlcyhzZWN0aW9uRmlsZXM6IEZpbGVNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmZpbGVzID0gc2VjdGlvbkZpbGVzLmZpbHRlcihmID0+IHRoaXMubW9kZWwudmFsdWUuaW5jbHVkZXMoZi5pZCkpLm1hcChmID0+IChcclxuICAgICAge3V1aWQ6IGYuaWQsIG5hbWU6IGYubmFtZSwgc2l6ZTogZi5sZW5ndGh9XHJcbiAgICApKTtcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoc2V0dGluZ3MpIHtcclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZmlsZS1jb250ZW50XCI+XHJcbiAgICBAaWYgKHNldHRpbmdzLm9wdGlvbnMubGFiZWwpIHtcclxuICAgICAgPG1yeC1sYWJlbFxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJzZXR0aW5ncy5vcHRpb25zLnJlcXVpcmVkXCJcclxuICAgICAgICBbdG9vbHRpcF09XCJzZXR0aW5ncy5vcHRpb25zLnRvb2x0aXAgfHwgJydcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidtdC0yJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBzZXR0aW5ncy5vcHRpb25zLmxhYmVsIH19XHJcbiAgICAgIDwvbXJ4LWxhYmVsPlxyXG4gICAgfVxyXG5cclxuICAgIDxtcngtaW5wdXQtZmlsZVxyXG4gICAgICBbZmlsZXNdPVwiZmlsZXNcIlxyXG4gICAgICBbYWxsb3dlZEV4dGVuc2lvbnNdPVwic2V0dGluZ3Mub3B0aW9ucy5hbGxvd2VkRXh0ZW5zaW9uc1wiXHJcbiAgICAgIFttYXhGaWxlc109XCJzZXR0aW5ncy5vcHRpb25zLm1heEZpbGVzXCJcclxuICAgICAgW21heFNpemVdPVwic2V0dGluZ3Mub3B0aW9ucy5tYXhTaXplXCJcclxuICAgICAgW3VwbG9hZEVuZFBvaW50XT1cImFwaVVybCArICcvJyArIChhcHBsaWNhdGlvbklkJCB8IGFzeW5jKSArICcvdXBsb2FkLXRlbXAtZmlsZSdcIlxyXG4gICAgICBbZGVsZXRlQ29uZmlybV09XCJkZWxldGVGaWxlLmJpbmQodGhpcylcIlxyXG4gICAgICBbaW52YWxpZF09XCJnZXRJbnZhbGlkXCJcclxuICAgICAgW2ludmFsaWRNZXNzYWdlXT1cIifQn9C+0LvQtSDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdC+INC00LvRjyDQt9Cw0L/QvtC70L3QtdC90LjRjydcIlxyXG4gICAgICAoZmlsZXNDaGFuZ2VkKT1cImZpbGVzQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgID48L21yeC1pbnB1dC1maWxlPlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
@@ -23,6 +23,7 @@ export class InputTableComponent {
23
23
  this._subscriptions$ = [];
24
24
  this._isCheckRequired = false;
25
25
  this.dataSource = [];
26
+ this.columns = [];
26
27
  this.values = [];
27
28
  this.changed = new EventEmitter();
28
29
  }
@@ -30,6 +31,7 @@ export class InputTableComponent {
30
31
  this.settings = settings;
31
32
  this.model = { sysName: settings.sysName, type: settings.type, data: [], totals: [] };
32
33
  this._detector.detectChanges();
34
+ this._initColumns(this.settings.components);
33
35
  }
34
36
  ngOnInit() {
35
37
  this._initModel();
@@ -139,12 +141,40 @@ export class InputTableComponent {
139
141
  this._detector.detectChanges();
140
142
  this.dataGrid.instance.refresh();
141
143
  }
144
+ _initColumns(components) {
145
+ this.columns = components.map(c => this._transformColumn(structuredClone(c)));
146
+ this.columns.push({
147
+ type: 'buttons',
148
+ width: 150,
149
+ cssClass: 'custom-cell-controls',
150
+ buttons: [
151
+ {
152
+ template: 'editButtonTemplate',
153
+ hint: 'Редактировать',
154
+ },
155
+ {
156
+ template: 'deleteButtonTemplate',
157
+ hint: 'Удалить',
158
+ },
159
+ ],
160
+ });
161
+ this.dataGrid.instance.repaint();
162
+ this._detector.detectChanges();
163
+ }
164
+ _transformColumn(component) {
165
+ return {
166
+ caption: component.options.label || '',
167
+ columns: component.components.map(c => this._transformColumn(structuredClone(c))),
168
+ dataField: component.sysName,
169
+ format: this.getFormat(component),
170
+ };
171
+ }
142
172
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
143
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputTableComponent, selector: "app-input-table", inputs: { values: "values", data: "data" }, outputs: { changed: "changed" }, viewQueries: [{ propertyName: "dataGrid", first: true, predicate: ["dataGrid"], descendants: true }], ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-table-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n noDataText=\"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\"\r\n >\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'tertiary'\"\r\n [customClasses]=\"'px-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n @for (component of settings.components; track component.id) {\r\n <dxi-column\r\n [caption]=\"component.options.label\"\r\n [dataField]=\"component.sysName\"\r\n [format]=\"getFormat(component)\"\r\n [dataType]=\"getDataType(component)\"\r\n >\r\n @for (component of component.components; track component.id) {\r\n <dxi-column\r\n [caption]=\"component.options.label\"\r\n [dataField]=\"component.sysName\"\r\n [format]=\"getFormat(component)\"\r\n [dataType]=\"getDataType(component)\"\r\n >\r\n @for (component of component.components; track component.id) {\r\n <dxi-column\r\n [caption]=\"component.options.label\"\r\n [dataField]=\"component.sysName\"\r\n [format]=\"getFormat(component)\"\r\n [dataType]=\"getDataType(component)\"\r\n ></dxi-column>\r\n }\r\n </dxi-column>\r\n }\r\n </dxi-column>\r\n }\r\n\r\n <dxi-column\r\n [width]=\"60\"\r\n [allowFiltering]=\"false\"\r\n [allowSorting]=\"false\"\r\n [visible]=\"true\"\r\n cellTemplate=\"editCellTemplate\"\r\n >\r\n <div *dxTemplate=\"let cellInfo of 'editCellTemplate'\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (isTotalColumn(component)) {\r\n <dxi-total-item [column]=\"component.sysName\" [displayFormat]=\"'{0}'\"></dxi-total-item>\r\n } @else {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"'\u0418\u0422\u041E\u0413\u041E'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n </div>\r\n}\r\n\r\n\r\n", styles: [":host::ng-deep .input-table-content .dx-datagrid{padding:0}:host::ng-deep .input-table-content .dx-datagrid-header-panel{display:flex;align-items:center;min-height:40px;padding:0}:host::ng-deep .input-table-content .dx-datagrid-rowsview{border-bottom:none}:host::ng-deep .input-table-content .dx-datagrid-rowsview.dx-empty{border-bottom:1px solid #ddd;height:48px}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer{border-top:none;border-left:none;border-right:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content{padding:0}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content th,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content td{border:1px solid #ddd;border-top:none;border-collapse:collapse}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table{border-top:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content .dx-datagrid-summary-item{font-weight:400}\n"], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "component", type: i1.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: i2.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i3.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i3.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { kind: "component", type: i3.DxoSummaryComponent, selector: "dxo-summary", inputs: ["calculateCustomSummary", "groupItems", "recalculateWhileEditing", "skipEmptyValues", "texts", "totalItems"] }, { kind: "component", type: i3.DxiTotalItemComponent, selector: "dxi-total-item", inputs: ["alignment", "column", "cssClass", "customizeText", "displayFormat", "name", "showInColumn", "skipEmptyValues", "summaryType", "valueFormat"] }, { kind: "component", type: i3.DxoToolbarComponent, selector: "dxo-toolbar", inputs: ["disabled", "items", "visible", "fileSelectionItems", "container", "multiline"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
173
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputTableComponent, selector: "app-input-table", inputs: { values: "values", data: "data" }, outputs: { changed: "changed" }, viewQueries: [{ propertyName: "dataGrid", first: true, predicate: ["dataGrid"], descendants: true }, { propertyName: "editTemplate", first: true, predicate: ["editTemplate"], descendants: true }], ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n noDataText=\"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\"\r\n style=\"width: 100%\"\r\n >\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'tertiary'\"\r\n [customClasses]=\"'px-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <div *dxTemplate=\"let buttonData of 'editButtonTemplate'\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let buttonData of 'deleteButtonTemplate'\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(buttonData)\"></span>\r\n </div>\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (isTotalColumn(component)) {\r\n <dxi-total-item [column]=\"component.sysName\" [displayFormat]=\"'{0}'\"></dxi-total-item>\r\n } @else {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"'\u0418\u0422\u041E\u0413\u041E'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n\r\n <ng-template #editTemplate let-cellInfo=\"cellInfo\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n}\r\n\r\n\r\n", styles: [":host::ng-deep .input-table-content .dx-datagrid{padding:0}:host::ng-deep .input-table-content .dx-datagrid-header-panel{display:flex;align-items:center;min-height:40px;padding:0}:host::ng-deep .input-table-content .dx-datagrid-rowsview{border-bottom:none}:host::ng-deep .input-table-content .dx-datagrid-rowsview.dx-empty{border-bottom:1px solid #ddd;height:48px}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer{border-top:none;border-left:none;border-right:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content{padding:0}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content th,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content td{border:1px solid #ddd;border-top:none;border-collapse:collapse}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table{border-top:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content .dx-datagrid-summary-item{font-weight:400}:host::ng-deep .custom-cell-controls .dx-template-wrapper{display:inline-flex}\n"], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "component", type: i1.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: i2.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i3.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { kind: "component", type: i3.DxoSummaryComponent, selector: "dxo-summary", inputs: ["calculateCustomSummary", "groupItems", "recalculateWhileEditing", "skipEmptyValues", "texts", "totalItems"] }, { kind: "component", type: i3.DxiTotalItemComponent, selector: "dxi-total-item", inputs: ["alignment", "column", "cssClass", "customizeText", "displayFormat", "name", "showInColumn", "skipEmptyValues", "summaryType", "valueFormat"] }, { kind: "component", type: i3.DxoToolbarComponent, selector: "dxo-toolbar", inputs: ["disabled", "items", "visible", "fileSelectionItems", "container", "multiline"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
144
174
  }
145
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTableComponent, decorators: [{
146
176
  type: Component,
147
- args: [{ selector: 'app-input-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-table-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n noDataText=\"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\"\r\n >\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'tertiary'\"\r\n [customClasses]=\"'px-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n @for (component of settings.components; track component.id) {\r\n <dxi-column\r\n [caption]=\"component.options.label\"\r\n [dataField]=\"component.sysName\"\r\n [format]=\"getFormat(component)\"\r\n [dataType]=\"getDataType(component)\"\r\n >\r\n @for (component of component.components; track component.id) {\r\n <dxi-column\r\n [caption]=\"component.options.label\"\r\n [dataField]=\"component.sysName\"\r\n [format]=\"getFormat(component)\"\r\n [dataType]=\"getDataType(component)\"\r\n >\r\n @for (component of component.components; track component.id) {\r\n <dxi-column\r\n [caption]=\"component.options.label\"\r\n [dataField]=\"component.sysName\"\r\n [format]=\"getFormat(component)\"\r\n [dataType]=\"getDataType(component)\"\r\n ></dxi-column>\r\n }\r\n </dxi-column>\r\n }\r\n </dxi-column>\r\n }\r\n\r\n <dxi-column\r\n [width]=\"60\"\r\n [allowFiltering]=\"false\"\r\n [allowSorting]=\"false\"\r\n [visible]=\"true\"\r\n cellTemplate=\"editCellTemplate\"\r\n >\r\n <div *dxTemplate=\"let cellInfo of 'editCellTemplate'\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (isTotalColumn(component)) {\r\n <dxi-total-item [column]=\"component.sysName\" [displayFormat]=\"'{0}'\"></dxi-total-item>\r\n } @else {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"'\u0418\u0422\u041E\u0413\u041E'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n </div>\r\n}\r\n\r\n\r\n", styles: [":host::ng-deep .input-table-content .dx-datagrid{padding:0}:host::ng-deep .input-table-content .dx-datagrid-header-panel{display:flex;align-items:center;min-height:40px;padding:0}:host::ng-deep .input-table-content .dx-datagrid-rowsview{border-bottom:none}:host::ng-deep .input-table-content .dx-datagrid-rowsview.dx-empty{border-bottom:1px solid #ddd;height:48px}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer{border-top:none;border-left:none;border-right:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content{padding:0}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content th,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content td{border:1px solid #ddd;border-top:none;border-collapse:collapse}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table{border-top:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content .dx-datagrid-summary-item{font-weight:400}\n"] }]
177
+ args: [{ selector: 'app-input-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n noDataText=\"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\"\r\n style=\"width: 100%\"\r\n >\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'tertiary'\"\r\n [customClasses]=\"'px-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <div *dxTemplate=\"let buttonData of 'editButtonTemplate'\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let buttonData of 'deleteButtonTemplate'\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(buttonData)\"></span>\r\n </div>\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (isTotalColumn(component)) {\r\n <dxi-total-item [column]=\"component.sysName\" [displayFormat]=\"'{0}'\"></dxi-total-item>\r\n } @else {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"'\u0418\u0422\u041E\u0413\u041E'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n\r\n <ng-template #editTemplate let-cellInfo=\"cellInfo\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n}\r\n\r\n\r\n", styles: [":host::ng-deep .input-table-content .dx-datagrid{padding:0}:host::ng-deep .input-table-content .dx-datagrid-header-panel{display:flex;align-items:center;min-height:40px;padding:0}:host::ng-deep .input-table-content .dx-datagrid-rowsview{border-bottom:none}:host::ng-deep .input-table-content .dx-datagrid-rowsview.dx-empty{border-bottom:1px solid #ddd;height:48px}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer{border-top:none;border-left:none;border-right:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content{padding:0}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content th,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content td{border:1px solid #ddd;border-top:none;border-collapse:collapse}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table{border-top:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content .dx-datagrid-summary-item{font-weight:400}:host::ng-deep .custom-cell-controls .dx-template-wrapper{display:inline-flex}\n"] }]
148
178
  }], propDecorators: { values: [{
149
179
  type: Input
150
180
  }], data: [{
@@ -152,7 +182,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
152
182
  }], dataGrid: [{
153
183
  type: ViewChild,
154
184
  args: ['dataGrid', { static: false }]
185
+ }], editTemplate: [{
186
+ type: ViewChild,
187
+ args: ['editTemplate', { static: false }]
155
188
  }], changed: [{
156
189
  type: Output
157
190
  }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvaW5wdXQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvaW5wdXQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFBRSxNQUFNLEVBQ3BCLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUU3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7QUFRN0Qs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QUFPLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN6RCxDQUFDO1lBRUQsV0FBVyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBRXpCLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDOytHQXZLVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwwT0MvQmhDLDJpSkEySEE7OzRGRDVGYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07OEJBa0J0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBRU8sSUFBSTtzQkFBaEIsS0FBSztnQkFRa0MsUUFBUTtzQkFBL0MsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUVyQixPQUFPO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLCBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9lbnVtcyc7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRNb2RlbEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEeERhdGFHcmlkQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50VmFsdWVNb2RlbCwgU2VjdGlvblZhbHVlTW9kZWwsIFRhYmxlUm93TW9kZWwsIFRhYmxlVmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IElucHV0TnVtYmVyTW9kZWwsIElucHV0VGFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IG9iamVjdEZvcm1BY3Rpb25zLCBvYmplY3RGb3JtU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IElucHV0VGFibGVNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IGdldFJvd01vZGVsIH0gZnJvbSAnLi9oZWxwZXJzL2dldC1yb3ctbW9kZWwuaGVscGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXRhYmxlLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgdHlwZSA9IENvbXBvbmVudFR5cGUuSW5wdXRUYWJsZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlID0gaW5qZWN0KFN0b3JlKVxyXG4gIHByaXZhdGUgX2RldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZilcclxuICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSA9IGluamVjdChNb2RhbFNlcnZpY2UpXHJcblxyXG4gIHByaXZhdGUgX2NoYW5nZVN1YmplY3QkOiBTdWJqZWN0PFRhYmxlVmFsdWVNb2RlbD4gPSBuZXcgU3ViamVjdDxUYWJsZVZhbHVlTW9kZWw+KCk7XHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyQ6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2lzQ2hlY2tSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgbW9kZWwhOiBUYWJsZVZhbHVlTW9kZWw7XHJcbiAgcHVibGljIHNldHRpbmdzITogSW5wdXRUYWJsZU1vZGVsO1xyXG4gIHB1YmxpYyBkYXRhU291cmNlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgdmFsdWVzOiBTZWN0aW9uVmFsdWVNb2RlbFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHNldCBkYXRhKHNldHRpbmdzOiBDb21wb25lbnRNb2RlbEJhc2UpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncyBhcyBJbnB1dFRhYmxlTW9kZWw7XHJcblxyXG4gICAgdGhpcy5tb2RlbCA9IHtzeXNOYW1lOiBzZXR0aW5ncy5zeXNOYW1lLCB0eXBlOiBzZXR0aW5ncy50eXBlLCBkYXRhOiBbXSwgdG90YWxzOiBbXX07XHJcblxyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnZGF0YUdyaWQnLCB7c3RhdGljOiBmYWxzZX0pIGRhdGFHcmlkITogRHhEYXRhR3JpZENvbXBvbmVudDtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q29tcG9uZW50VmFsdWVNb2RlbCB8IENvbXBvbmVudFZhbHVlTW9kZWxbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbXBvbmVudFZhbHVlTW9kZWwgfCBDb21wb25lbnRWYWx1ZU1vZGVsW10+KCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5faW5pdE1vZGVsKCk7XHJcblxyXG4gICAgdGhpcy5fY2hhbmdlU3ViamVjdCQucGlwZShcclxuICAgICAgZGVib3VuY2VUaW1lKDcwMCksXHJcbiAgICApLnN1YnNjcmliZShtb2RlbCA9PiB7XHJcbiAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKG9iamVjdEZvcm1BY3Rpb25zLnVwZGF0ZVZhbHVlcyh7dmFsdWU6IG1vZGVsfSkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucyQucHVzaCh0aGlzLl9zdG9yZS5zZWxlY3Qob2JqZWN0Rm9ybVNlbGVjdG9ycy5zZWxlY3RJc0NoZWNrUmVxdWlyZWQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLl9pc0NoZWNrUmVxdWlyZWQgPSByZXN1bHQ7XHJcbiAgICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogQ29tcG9uZW50VmFsdWVNb2RlbCB8IG51bGwgfCAoQ29tcG9uZW50VmFsdWVNb2RlbCB8IG51bGwpW10pID0+IHtcclxuICAgICAgICBjb25zdCBjbG9uZVJlc3VsdCA9IGNsb25lRGVlcChyZXN1bHQgYXMgVGFibGVWYWx1ZU1vZGVsIHwgbnVsbCk7XHJcblxyXG4gICAgICAgIGlmIChjbG9uZVJlc3VsdCAmJiAhQXJyYXkuaXNBcnJheShjbG9uZVJlc3VsdCkgJiYgdGhpcy5tb2RlbC5kYXRhICE9PSBjbG9uZVJlc3VsdC5kYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsID0gY2xvbmVSZXN1bHQ7XHJcbiAgICAgICAgICB0aGlzLl9pbml0RGF0YVNvdXJjZSh0aGlzLm1vZGVsLmRhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0JC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucyQuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlUm93KCkge1xyXG4gICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm9wZW4oSW5wdXRUYWJsZU1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIHRpdGxlOiAn0KHQvtC30LTQsNC90LjQtSDRgdGC0YDQvtC60LgnLFxyXG4gICAgICBzZXR0aW5nczogdGhpcy5zZXR0aW5ncyxcclxuICAgICAgcm93TW9kZWw6IGdldFJvd01vZGVsKHRoaXMuc2V0dGluZ3MpXHJcbiAgICB9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXNvbHZlID0+IHtcclxuICAgICAgaWYgKHJlc29sdmUucmVzdWx0KSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhID0gWy4uLnRoaXMubW9kZWwuZGF0YSwgcmVzb2x2ZS5yb3dNb2RlbF07XHJcblxyXG4gICAgICAgIHRoaXMuX2luaXREYXRhU291cmNlKHRoaXMubW9kZWwuZGF0YSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2NoYW5nZVN1YmplY3QkLm5leHQodGhpcy5tb2RlbCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVsZXRlUm93KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGZpbmRSb3cgPSB0aGlzLm1vZGVsLmRhdGEuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGV2ZW50LnJvdy5kYXRhLmlkKTtcclxuXHJcbiAgICBpZiAoZmluZFJvdykge1xyXG4gICAgICB0aGlzLm1vZGVsLmRhdGEgPSB0aGlzLm1vZGVsLmRhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCAhPT0gZXZlbnQucm93LmRhdGEuaWQpO1xyXG5cclxuICAgICAgdGhpcy5faW5pdERhdGFTb3VyY2UodGhpcy5tb2RlbC5kYXRhKTtcclxuXHJcbiAgICAgIHRoaXMuX2NoYW5nZVN1YmplY3QkLm5leHQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdFJvdyhldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBmaW5kUm93OiBUYWJsZVJvd01vZGVsIHwgdW5kZWZpbmVkID0gdGhpcy5tb2RlbC5kYXRhLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBldmVudC5yb3cuZGF0YS5pZCk7XHJcblxyXG4gICAgaWYgKGZpbmRSb3cpIHtcclxuICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm9wZW4oSW5wdXRUYWJsZU1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgICAgdGl0bGU6ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1INGB0YLRgNC+0LrQuCcsXHJcbiAgICAgICAgc2V0dGluZ3M6IHRoaXMuc2V0dGluZ3MsXHJcbiAgICAgICAgcm93TW9kZWw6IGZpbmRSb3dcclxuICAgICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc29sdmUucmVzdWx0KSB7XHJcbiAgICAgICAgICBjb25zdCBjbG9uZU1vZGVsID0gY2xvbmVEZWVwKHRoaXMubW9kZWwpO1xyXG4gICAgICAgICAgY29uc3QgZmluZFJvdyA9IGNsb25lTW9kZWwuZGF0YS5maW5kKHJvdyA9PiByb3cuaWQgPT09IHJlc29sdmUucm93TW9kZWwuaWQpO1xyXG5cclxuICAgICAgICAgIGlmIChmaW5kUm93KSB7XHJcbiAgICAgICAgICAgIGZpbmRSb3cuZGF0YSA9IHJlc29sdmUucm93TW9kZWwuZGF0YTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZVN1YmplY3QkLm5leHQoY2xvbmVNb2RlbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEZvcm1hdChjb21wb25lbnQ6IENvbXBvbmVudE1vZGVsQmFzZSkge1xyXG4gICAgc3dpdGNoIChjb21wb25lbnQudHlwZSkge1xyXG4gICAgICBjYXNlIENvbXBvbmVudFR5cGUuSW5wdXREYXRlOlxyXG4gICAgICAgIHJldHVybiAnZGQuTU0ueXl5eSc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFUeXBlKGNvbXBvbmVudDogQ29tcG9uZW50TW9kZWxCYXNlKSB7XHJcbiAgICBzd2l0Y2ggKGNvbXBvbmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5JbnB1dERhdGU6XHJcbiAgICAgICAgcmV0dXJuICdkYXRlJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dUb3RhbChjb21wb25lbnQ6IENvbXBvbmVudE1vZGVsQmFzZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGNvbXBvbmVudC50eXBlID09PSBDb21wb25lbnRUeXBlLklucHV0TnVtYmVyKSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQ6IElucHV0TnVtYmVyTW9kZWwgPSBjb21wb25lbnQgYXMgSW5wdXROdW1iZXJNb2RlbDtcclxuXHJcbiAgICAgIHJldHVybiBlbGVtZW50Lm9wdGlvbnMuaW5Ub3RhbHM7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzVG90YWxDb2x1bW4oY29tcG9uZW50OiBDb21wb25lbnRNb2RlbEJhc2UpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoY29tcG9uZW50IGFzIElucHV0TnVtYmVyTW9kZWwpLm9wdGlvbnNbJ2luVG90YWxzJ107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0TW9kZWwoKSB7XHJcbiAgICB0aGlzLm1vZGVsID0ge1xyXG4gICAgICBzeXNOYW1lOiB0aGlzLnNldHRpbmdzLnN5c05hbWUsXHJcbiAgICAgIHR5cGU6IHRoaXMuc2V0dGluZ3MudHlwZSxcclxuICAgICAgZGF0YTogW10sXHJcbiAgICAgIHRvdGFsczogW11cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0RGF0YVNvdXJjZShkYXRhOiBUYWJsZVJvd01vZGVsW10pIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGRhdGEubWFwKChpdGVtOiBUYWJsZVJvd01vZGVsKSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0RhdGFJdGVtOiBhbnkgPSB7fTtcclxuXHJcbiAgICAgIGZvciAobGV0IGkgaW4gaXRlbS5kYXRhKSB7XHJcbiAgICAgICAgbmV3RGF0YUl0ZW1baXRlbS5kYXRhW2ldLnN5c05hbWVdID0gaXRlbS5kYXRhW2ldLnZhbHVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBuZXdEYXRhSXRlbS5pZCA9IGl0ZW0uaWQ7XHJcblxyXG4gICAgICByZXR1cm4gbmV3RGF0YUl0ZW07XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmRhdGFHcmlkLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChzZXR0aW5ncykge1xyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC10YWJsZS1jb250ZW50XCI+XHJcbiAgICBAaWYgKHNldHRpbmdzLm9wdGlvbnMubGFiZWwpIHtcclxuICAgICAgPG1yeC1sYWJlbFxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJzZXR0aW5ncy5vcHRpb25zLnJlcXVpcmVkXCJcclxuICAgICAgICBbdG9vbHRpcF09XCJzZXR0aW5ncy5vcHRpb25zLnRvb2x0aXAgfHwgJydcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidtdC0yJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBzZXR0aW5ncy5vcHRpb25zLmxhYmVsIH19XHJcbiAgICAgIDwvbXJ4LWxhYmVsPlxyXG4gICAgfVxyXG5cclxuICAgIDxkeC1kYXRhLWdyaWRcclxuICAgICAgI2RhdGFHcmlkXHJcbiAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxyXG4gICAgICBub0RhdGFUZXh0PVwi0J3QtdGCINC00LDQvdC90YvRhVwiXHJcbiAgICA+XHJcbiAgICAgIDxkeG8tdG9vbGJhcj5cclxuICAgICAgICA8ZHhpLWl0ZW0gbG9jYXRpb249XCJhZnRlclwiPlxyXG4gICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZSBjbGFzcz1cImFkZC1yb3dcIj5cclxuICAgICAgICAgICAgPG1yeC1idXR0b25cclxuICAgICAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiXHJcbiAgICAgICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B4LTMnXCJcclxuICAgICAgICAgICAgICAobXJ4Q2xpY2spPVwiY3JlYXRlUm93KClcIlxyXG4gICAgICAgICAgICA+0JTQvtCx0LDQstC40YLRjFxyXG4gICAgICAgICAgICA8L21yeC1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2R4aS1pdGVtPlxyXG4gICAgICA8L2R4by10b29sYmFyPlxyXG5cclxuICAgICAgQGZvciAoY29tcG9uZW50IG9mIHNldHRpbmdzLmNvbXBvbmVudHM7IHRyYWNrIGNvbXBvbmVudC5pZCkge1xyXG4gICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICBbY2FwdGlvbl09XCJjb21wb25lbnQub3B0aW9ucy5sYWJlbFwiXHJcbiAgICAgICAgICBbZGF0YUZpZWxkXT1cImNvbXBvbmVudC5zeXNOYW1lXCJcclxuICAgICAgICAgIFtmb3JtYXRdPVwiZ2V0Rm9ybWF0KGNvbXBvbmVudClcIlxyXG4gICAgICAgICAgW2RhdGFUeXBlXT1cImdldERhdGFUeXBlKGNvbXBvbmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIEBmb3IgKGNvbXBvbmVudCBvZiBjb21wb25lbnQuY29tcG9uZW50czsgdHJhY2sgY29tcG9uZW50LmlkKSB7XHJcbiAgICAgICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICAgICAgW2NhcHRpb25dPVwiY29tcG9uZW50Lm9wdGlvbnMubGFiZWxcIlxyXG4gICAgICAgICAgICAgIFtkYXRhRmllbGRdPVwiY29tcG9uZW50LnN5c05hbWVcIlxyXG4gICAgICAgICAgICAgIFtmb3JtYXRdPVwiZ2V0Rm9ybWF0KGNvbXBvbmVudClcIlxyXG4gICAgICAgICAgICAgIFtkYXRhVHlwZV09XCJnZXREYXRhVHlwZShjb21wb25lbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIEBmb3IgKGNvbXBvbmVudCBvZiBjb21wb25lbnQuY29tcG9uZW50czsgdHJhY2sgY29tcG9uZW50LmlkKSB7XHJcbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtblxyXG4gICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCJjb21wb25lbnQub3B0aW9ucy5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIFtkYXRhRmllbGRdPVwiY29tcG9uZW50LnN5c05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybWF0XT1cImdldEZvcm1hdChjb21wb25lbnQpXCJcclxuICAgICAgICAgICAgICAgICAgW2RhdGFUeXBlXT1cImdldERhdGFUeXBlKGNvbXBvbmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgW3dpZHRoXT1cIjYwXCJcclxuICAgICAgICBbYWxsb3dGaWx0ZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgIFthbGxvd1NvcnRpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgIFt2aXNpYmxlXT1cInRydWVcIlxyXG4gICAgICAgIGNlbGxUZW1wbGF0ZT1cImVkaXRDZWxsVGVtcGxhdGVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyAgb2YgJ2VkaXRDZWxsVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJnYXA6IDRweFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tZWRpdCBpY29uLWZvbnQtMTYgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZWRpdFJvdyhjZWxsSW5mbylcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kZWxldGUgaWNvbi1mb250LTE2IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImRlbGV0ZVJvdyhjZWxsSW5mbylcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9keGktY29sdW1uPlxyXG5cclxuICAgICAgQGlmIChkYXRhU291cmNlLmxlbmd0aCkge1xyXG4gICAgICAgIDxkeG8tc3VtbWFyeT5cclxuICAgICAgICAgIEBmb3IgKGNvbXBvbmVudCBvZiBzZXR0aW5ncy5jb21wb25lbnRzOyB0cmFjayBjb21wb25lbnQuaWQ7IGxldCBmaXJzdCA9ICRmaXJzdCkge1xyXG4gICAgICAgICAgICBAaWYgKCFmaXJzdCkge1xyXG4gICAgICAgICAgICAgIEBpZiAoc2hvd1RvdGFsKGNvbXBvbmVudCkpIHtcclxuICAgICAgICAgICAgICAgIDxkeGktdG90YWwtaXRlbVxyXG4gICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbXBvbmVudC5zeXNOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgW3N1bW1hcnlUeXBlXT1cIidzdW0nXCJcclxuICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGb3JtYXRdPVwiJ3swfSdcIlxyXG4gICAgICAgICAgICAgICAgPjwvZHhpLXRvdGFsLWl0ZW0+XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBAZm9yIChjb21wb25lbnQgb2YgY29tcG9uZW50LmNvbXBvbmVudHM7IHRyYWNrIGNvbXBvbmVudC5pZCkge1xyXG4gICAgICAgICAgICAgICAgQGlmIChzaG93VG90YWwoY29tcG9uZW50KSkge1xyXG4gICAgICAgICAgICAgICAgICA8ZHhpLXRvdGFsLWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbXBvbmVudC5zeXNOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3VtbWFyeVR5cGVdPVwiJ3N1bSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5Rm9ybWF0XT1cIid7MH0nXCJcclxuICAgICAgICAgICAgICAgICAgPjwvZHhpLXRvdGFsLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgQGZvciAoY29tcG9uZW50IG9mIGNvbXBvbmVudC5jb21wb25lbnRzOyB0cmFjayBjb21wb25lbnQuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgQGlmIChzaG93VG90YWwoY29tcG9uZW50KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxkeGktdG90YWwtaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb21wb25lbnQuc3lzTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc3VtbWFyeVR5cGVdPVwiJ3N1bSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGb3JtYXRdPVwiJ3swfSdcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2R4aS10b3RhbC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICBAaWYgKGlzVG90YWxDb2x1bW4oY29tcG9uZW50KSkge1xyXG4gICAgICAgICAgICAgICAgPGR4aS10b3RhbC1pdGVtIFtjb2x1bW5dPVwiY29tcG9uZW50LnN5c05hbWVcIiBbZGlzcGxheUZvcm1hdF09XCInezB9J1wiPjwvZHhpLXRvdGFsLWl0ZW0+XHJcbiAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8ZHhpLXRvdGFsLWl0ZW1cclxuICAgICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb21wb25lbnQuc3lzTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjc3NDbGFzc109XCIndGV4dC1ib2xkJ1wiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNwbGF5Rm9ybWF0XT1cIifQmNCi0J7Qk9CeJ1wiXHJcbiAgICAgICAgICAgICAgICA+PC9keGktdG90YWwtaXRlbT5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2R4by1zdW1tYXJ5PlxyXG4gICAgICB9XHJcbiAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICA8L2Rpdj5cclxufVxyXG5cclxuXHJcbiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvaW5wdXQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvaW5wdXQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFBRSxNQUFNLEVBQ3BCLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUU3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7QUFRN0QsTUFBTSxPQUFPLG1CQUFtQjtJQU5oQztRQU9FLFNBQUksR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBRXhCLFdBQU0sR0FBVSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsY0FBUyxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6RCxrQkFBYSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkQsb0JBQWUsR0FBNkIsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFDM0Usb0JBQWUsR0FBbUIsRUFBRSxDQUFDO1FBRXJDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUluQyxlQUFVLEdBQTZCLEVBQUUsQ0FBQztRQUMxQyxZQUFPLEdBQVUsRUFBRSxDQUFDO1FBRWxCLFdBQU0sR0FBd0IsRUFBRSxDQUFDO1FBZXpCLFlBQU8sR0FBOEQsSUFBSSxZQUFZLEVBQStDLENBQUM7S0FtTHZKO0lBaE1DLElBQWEsSUFBSSxDQUFDLFFBQTRCO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBMkIsQ0FBQztRQUU1QyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFDLENBQUM7UUFFcEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQU9ELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3ZCLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FDbEIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7WUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlGLFNBQVMsQ0FBQyxDQUFDLE1BQW1FLEVBQUUsRUFBRTtZQUNqRixNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsTUFBZ0MsQ0FBQyxDQUFDO1lBRWhFLElBQUksV0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZGLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO2dCQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDaEQsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3JDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRXpELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBVTtRQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTVFLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWhGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV0QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFTSxPQUFPLENBQUMsS0FBVTtRQUN2QixNQUFNLE9BQU8sR0FBOEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV2RyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7Z0JBQ2hELEtBQUssRUFBRSx1QkFBdUI7Z0JBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsUUFBUSxFQUFFLE9BQU87YUFDbEIsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ25CLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3pDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUU1RSxJQUFJLE9BQU8sRUFBRSxDQUFDO3dCQUNaLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7d0JBRXJDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUN4QyxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU0sU0FBUyxDQUFDLFNBQTZCO1FBQzVDLFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLEtBQUssYUFBYSxDQUFDLFNBQVM7Z0JBQzFCLE9BQU8sWUFBWSxDQUFDO1lBQ3RCO2dCQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsU0FBNkI7UUFDOUMsUUFBUSxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsS0FBSyxhQUFhLENBQUMsU0FBUztnQkFDMUIsT0FBTyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsU0FBNkI7UUFDNUMsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqRCxNQUFNLE9BQU8sR0FBcUIsU0FBNkIsQ0FBQztZQUVoRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxhQUFhLENBQUMsU0FBNkI7UUFDaEQsT0FBUSxTQUE4QixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTztZQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQ3hCLElBQUksRUFBRSxFQUFFO1lBQ1IsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFxQjtRQUMzQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFtQixFQUFFLEVBQUU7WUFDakQsTUFBTSxXQUFXLEdBQVEsRUFBRSxDQUFDO1lBRTVCLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN4QixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN6RCxDQUFDO1lBRUQsV0FBVyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBRXpCLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUvQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sWUFBWSxDQUFDLFVBQWdDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLEdBQUc7WUFDVixRQUFRLEVBQUUsc0JBQXNCO1lBQ2hDLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixJQUFJLEVBQUUsZUFBZTtpQkFDdEI7Z0JBQ0Q7b0JBQ0UsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsSUFBSSxFQUFFLFNBQVM7aUJBQ2hCO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVqQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxTQUE2QjtRQU1wRCxPQUFPO1lBQ0wsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLFNBQVMsRUFBRSxTQUFTLENBQUMsT0FBTztZQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7U0FDbEMsQ0FBQztJQUNKLENBQUM7K0dBbE5VLG1CQUFtQjttR0FBbkIsbUJBQW1CLHlVQy9CaEMsNHJIQWtHQTs7NEZEbkVhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTs4QkFtQnRDLE1BQU07c0JBQWQsS0FBSztnQkFFTyxJQUFJO3NCQUFoQixLQUFLO2dCQVVrQyxRQUFRO3NCQUEvQyxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ00sWUFBWTtzQkFBdkQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUV6QixPQUFPO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLCBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9lbnVtcyc7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRNb2RlbEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEeERhdGFHcmlkQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50VmFsdWVNb2RlbCwgU2VjdGlvblZhbHVlTW9kZWwsIFRhYmxlUm93TW9kZWwsIFRhYmxlVmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IElucHV0TnVtYmVyTW9kZWwsIElucHV0VGFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IG9iamVjdEZvcm1BY3Rpb25zLCBvYmplY3RGb3JtU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IElucHV0VGFibGVNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IGdldFJvd01vZGVsIH0gZnJvbSAnLi9oZWxwZXJzL2dldC1yb3ctbW9kZWwuaGVscGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXRhYmxlLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgdHlwZSA9IENvbXBvbmVudFR5cGUuSW5wdXRUYWJsZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlID0gaW5qZWN0KFN0b3JlKTtcclxuICBwcml2YXRlIF9kZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgX21vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlID0gaW5qZWN0KE1vZGFsU2VydmljZSk7XHJcblxyXG4gIHByaXZhdGUgX2NoYW5nZVN1YmplY3QkOiBTdWJqZWN0PFRhYmxlVmFsdWVNb2RlbD4gPSBuZXcgU3ViamVjdDxUYWJsZVZhbHVlTW9kZWw+KCk7XHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyQ6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2lzQ2hlY2tSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgbW9kZWwhOiBUYWJsZVZhbHVlTW9kZWw7XHJcbiAgcHVibGljIHNldHRpbmdzITogSW5wdXRUYWJsZU1vZGVsO1xyXG4gIHB1YmxpYyBkYXRhU291cmNlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBbXTtcclxuICBwdWJsaWMgY29sdW1uczogYW55W10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgdmFsdWVzOiBTZWN0aW9uVmFsdWVNb2RlbFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHNldCBkYXRhKHNldHRpbmdzOiBDb21wb25lbnRNb2RlbEJhc2UpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncyBhcyBJbnB1dFRhYmxlTW9kZWw7XHJcblxyXG4gICAgdGhpcy5tb2RlbCA9IHtzeXNOYW1lOiBzZXR0aW5ncy5zeXNOYW1lLCB0eXBlOiBzZXR0aW5ncy50eXBlLCBkYXRhOiBbXSwgdG90YWxzOiBbXX07XHJcblxyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHRoaXMuX2luaXRDb2x1bW5zKHRoaXMuc2V0dGluZ3MuY29tcG9uZW50cyk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdkYXRhR3JpZCcsIHtzdGF0aWM6IGZhbHNlfSkgZGF0YUdyaWQhOiBEeERhdGFHcmlkQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRUZW1wbGF0ZScsIHtzdGF0aWM6IGZhbHNlfSkgZWRpdFRlbXBsYXRlITogYW55O1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDb21wb25lbnRWYWx1ZU1vZGVsIHwgQ29tcG9uZW50VmFsdWVNb2RlbFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcG9uZW50VmFsdWVNb2RlbCB8IENvbXBvbmVudFZhbHVlTW9kZWxbXT4oKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbml0TW9kZWwoKTtcclxuXHJcbiAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0JC5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoNzAwKSxcclxuICAgICkuc3Vic2NyaWJlKG1vZGVsID0+IHtcclxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlVmFsdWVzKHt2YWx1ZTogbW9kZWx9KSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdElzQ2hlY2tSZXF1aXJlZCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMuX2lzQ2hlY2tSZXF1aXJlZCA9IHJlc3VsdDtcclxuICAgICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSkpO1xyXG5cclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMkLnB1c2godGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbCB8IChDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbClbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNsb25lUmVzdWx0ID0gY2xvbmVEZWVwKHJlc3VsdCBhcyBUYWJsZVZhbHVlTW9kZWwgfCBudWxsKTtcclxuXHJcbiAgICAgICAgaWYgKGNsb25lUmVzdWx0ICYmICFBcnJheS5pc0FycmF5KGNsb25lUmVzdWx0KSAmJiB0aGlzLm1vZGVsLmRhdGEgIT09IGNsb25lUmVzdWx0LmRhdGEpIHtcclxuICAgICAgICAgIHRoaXMubW9kZWwgPSBjbG9uZVJlc3VsdDtcclxuICAgICAgICAgIHRoaXMuX2luaXREYXRhU291cmNlKHRoaXMubW9kZWwuZGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NoYW5nZVN1YmplY3QkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5mb3JFYWNoKChzdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVSb3coKSB7XHJcbiAgICB0aGlzLl9tb2RhbFNlcnZpY2Uub3BlbihJbnB1dFRhYmxlTW9kYWxDb21wb25lbnQsIHtcclxuICAgICAgdGl0bGU6ICfQodC+0LfQtNCw0L3QuNC1INGB0YLRgNC+0LrQuCcsXHJcbiAgICAgIHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxyXG4gICAgICByb3dNb2RlbDogZ2V0Um93TW9kZWwodGhpcy5zZXR0aW5ncylcclxuICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc29sdmUgPT4ge1xyXG4gICAgICBpZiAocmVzb2x2ZS5yZXN1bHQpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEgPSBbLi4udGhpcy5tb2RlbC5kYXRhLCByZXNvbHZlLnJvd01vZGVsXTtcclxuXHJcbiAgICAgICAgdGhpcy5faW5pdERhdGFTb3VyY2UodGhpcy5tb2RlbC5kYXRhKTtcclxuXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlU3ViamVjdCQubmV4dCh0aGlzLm1vZGVsKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVsZXRlUm93KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGZpbmRSb3cgPSB0aGlzLm1vZGVsLmRhdGEuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGV2ZW50LnJvdy5kYXRhLmlkKTtcclxuXHJcbiAgICBpZiAoZmluZFJvdykge1xyXG4gICAgICB0aGlzLm1vZGVsLmRhdGEgPSB0aGlzLm1vZGVsLmRhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCAhPT0gZXZlbnQucm93LmRhdGEuaWQpO1xyXG5cclxuICAgICAgdGhpcy5faW5pdERhdGFTb3VyY2UodGhpcy5tb2RlbC5kYXRhKTtcclxuXHJcbiAgICAgIHRoaXMuX2NoYW5nZVN1YmplY3QkLm5leHQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdFJvdyhldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBmaW5kUm93OiBUYWJsZVJvd01vZGVsIHwgdW5kZWZpbmVkID0gdGhpcy5tb2RlbC5kYXRhLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBldmVudC5yb3cuZGF0YS5pZCk7XHJcblxyXG4gICAgaWYgKGZpbmRSb3cpIHtcclxuICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm9wZW4oSW5wdXRUYWJsZU1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgICAgdGl0bGU6ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1INGB0YLRgNC+0LrQuCcsXHJcbiAgICAgICAgc2V0dGluZ3M6IHRoaXMuc2V0dGluZ3MsXHJcbiAgICAgICAgcm93TW9kZWw6IGZpbmRSb3dcclxuICAgICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc29sdmUucmVzdWx0KSB7XHJcbiAgICAgICAgICBjb25zdCBjbG9uZU1vZGVsID0gY2xvbmVEZWVwKHRoaXMubW9kZWwpO1xyXG4gICAgICAgICAgY29uc3QgZmluZFJvdyA9IGNsb25lTW9kZWwuZGF0YS5maW5kKHJvdyA9PiByb3cuaWQgPT09IHJlc29sdmUucm93TW9kZWwuaWQpO1xyXG5cclxuICAgICAgICAgIGlmIChmaW5kUm93KSB7XHJcbiAgICAgICAgICAgIGZpbmRSb3cuZGF0YSA9IHJlc29sdmUucm93TW9kZWwuZGF0YTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZVN1YmplY3QkLm5leHQoY2xvbmVNb2RlbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGb3JtYXQoY29tcG9uZW50OiBDb21wb25lbnRNb2RlbEJhc2UpIHtcclxuICAgIHN3aXRjaCAoY29tcG9uZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBDb21wb25lbnRUeXBlLklucHV0RGF0ZTpcclxuICAgICAgICByZXR1cm4gJ2RkLk1NLnl5eXknO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREYXRhVHlwZShjb21wb25lbnQ6IENvbXBvbmVudE1vZGVsQmFzZSkge1xyXG4gICAgc3dpdGNoIChjb21wb25lbnQudHlwZSkge1xyXG4gICAgICBjYXNlIENvbXBvbmVudFR5cGUuSW5wdXREYXRlOlxyXG4gICAgICAgIHJldHVybiAnZGF0ZSc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93VG90YWwoY29tcG9uZW50OiBDb21wb25lbnRNb2RlbEJhc2UpOiBib29sZWFuIHtcclxuICAgIGlmIChjb21wb25lbnQudHlwZSA9PT0gQ29tcG9uZW50VHlwZS5JbnB1dE51bWJlcikge1xyXG4gICAgICBjb25zdCBlbGVtZW50OiBJbnB1dE51bWJlck1vZGVsID0gY29tcG9uZW50IGFzIElucHV0TnVtYmVyTW9kZWw7XHJcblxyXG4gICAgICByZXR1cm4gZWxlbWVudC5vcHRpb25zLmluVG90YWxzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1RvdGFsQ29sdW1uKGNvbXBvbmVudDogQ29tcG9uZW50TW9kZWxCYXNlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKGNvbXBvbmVudCBhcyBJbnB1dE51bWJlck1vZGVsKS5vcHRpb25zWydpblRvdGFscyddO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdE1vZGVsKCkge1xyXG4gICAgdGhpcy5tb2RlbCA9IHtcclxuICAgICAgc3lzTmFtZTogdGhpcy5zZXR0aW5ncy5zeXNOYW1lLFxyXG4gICAgICB0eXBlOiB0aGlzLnNldHRpbmdzLnR5cGUsXHJcbiAgICAgIGRhdGE6IFtdLFxyXG4gICAgICB0b3RhbHM6IFtdXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdERhdGFTb3VyY2UoZGF0YTogVGFibGVSb3dNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBkYXRhLm1hcCgoaXRlbTogVGFibGVSb3dNb2RlbCkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdEYXRhSXRlbTogYW55ID0ge307XHJcblxyXG4gICAgICBmb3IgKGxldCBpIGluIGl0ZW0uZGF0YSkge1xyXG4gICAgICAgIG5ld0RhdGFJdGVtW2l0ZW0uZGF0YVtpXS5zeXNOYW1lXSA9IGl0ZW0uZGF0YVtpXS52YWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbmV3RGF0YUl0ZW0uaWQgPSBpdGVtLmlkO1xyXG5cclxuICAgICAgcmV0dXJuIG5ld0RhdGFJdGVtO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHRoaXMuZGF0YUdyaWQuaW5zdGFuY2UucmVmcmVzaCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdENvbHVtbnMoY29tcG9uZW50czogQ29tcG9uZW50TW9kZWxCYXNlW10pIHtcclxuICAgIHRoaXMuY29sdW1ucyA9IGNvbXBvbmVudHMubWFwKGMgPT4gdGhpcy5fdHJhbnNmb3JtQ29sdW1uKHN0cnVjdHVyZWRDbG9uZShjKSkpO1xyXG5cclxuICAgIHRoaXMuY29sdW1ucy5wdXNoKHtcclxuICAgICAgdHlwZTogJ2J1dHRvbnMnLFxyXG4gICAgICB3aWR0aDogMTUwLFxyXG4gICAgICBjc3NDbGFzczogJ2N1c3RvbS1jZWxsLWNvbnRyb2xzJyxcclxuICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRlbXBsYXRlOiAnZWRpdEJ1dHRvblRlbXBsYXRlJyxcclxuICAgICAgICAgIGhpbnQ6ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0ZW1wbGF0ZTogJ2RlbGV0ZUJ1dHRvblRlbXBsYXRlJyxcclxuICAgICAgICAgIGhpbnQ6ICfQo9C00LDQu9C40YLRjCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGF0YUdyaWQuaW5zdGFuY2UucmVwYWludCgpO1xyXG5cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybUNvbHVtbihjb21wb25lbnQ6IENvbXBvbmVudE1vZGVsQmFzZSk6IHtcclxuICAgIGNhcHRpb246IHN0cmluZyxcclxuICAgIGNvbHVtbnM6IGFueVtdLFxyXG4gICAgZGF0YUZpZWxkOiBhbnksXHJcbiAgICBmb3JtYXQ6IHN0cmluZ1xyXG4gIH0ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2FwdGlvbjogY29tcG9uZW50Lm9wdGlvbnMubGFiZWwgfHwgJycsXHJcbiAgICAgIGNvbHVtbnM6IGNvbXBvbmVudC5jb21wb25lbnRzLm1hcChjID0+IHRoaXMuX3RyYW5zZm9ybUNvbHVtbihzdHJ1Y3R1cmVkQ2xvbmUoYykpKSxcclxuICAgICAgZGF0YUZpZWxkOiBjb21wb25lbnQuc3lzTmFtZSxcclxuICAgICAgZm9ybWF0OiB0aGlzLmdldEZvcm1hdChjb21wb25lbnQpLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChzZXR0aW5ncykge1xyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC10YWJsZS1jb250ZW50IHctMTAwXCI+XHJcbiAgICBAaWYgKHNldHRpbmdzLm9wdGlvbnMubGFiZWwpIHtcclxuICAgICAgPG1yeC1sYWJlbFxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJzZXR0aW5ncy5vcHRpb25zLnJlcXVpcmVkXCJcclxuICAgICAgICBbdG9vbHRpcF09XCJzZXR0aW5ncy5vcHRpb25zLnRvb2x0aXAgfHwgJydcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidtdC0yJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBzZXR0aW5ncy5vcHRpb25zLmxhYmVsIH19XHJcbiAgICAgIDwvbXJ4LWxhYmVsPlxyXG4gICAgfVxyXG5cclxuICAgIDxkeC1kYXRhLWdyaWRcclxuICAgICAgI2RhdGFHcmlkXHJcbiAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxyXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgICAgbm9EYXRhVGV4dD1cItCd0LXRgiDQtNCw0L3QvdGL0YVcIlxyXG4gICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgID5cclxuICAgICAgPGR4by10b29sYmFyPlxyXG4gICAgICAgIDxkeGktaXRlbSBsb2NhdGlvbj1cImFmdGVyXCI+XHJcbiAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlIGNsYXNzPVwiYWRkLXJvd1wiPlxyXG4gICAgICAgICAgICA8bXJ4LWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgICAgICBbdHlwZV09XCIndGVydGlhcnknXCJcclxuICAgICAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHgtMydcIlxyXG4gICAgICAgICAgICAgIChtcnhDbGljayk9XCJjcmVhdGVSb3coKVwiXHJcbiAgICAgICAgICAgID7QlNC+0LHQsNCy0LjRgtGMXHJcbiAgICAgICAgICAgIDwvbXJ4LWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZHhpLWl0ZW0+XHJcbiAgICAgIDwvZHhvLXRvb2xiYXI+XHJcblxyXG4gICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGJ1dHRvbkRhdGEgb2YgJ2VkaXRCdXR0b25UZW1wbGF0ZSdcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tZWRpdCBpY29uLWZvbnQtMTYgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZWRpdFJvdyhidXR0b25EYXRhKVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGJ1dHRvbkRhdGEgb2YgJ2RlbGV0ZUJ1dHRvblRlbXBsYXRlJ1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kZWxldGUgaWNvbi1mb250LTE2IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImRlbGV0ZVJvdyhidXR0b25EYXRhKVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICBAaWYgKGRhdGFTb3VyY2UubGVuZ3RoKSB7XHJcbiAgICAgICAgPGR4by1zdW1tYXJ5PlxyXG4gICAgICAgICAgQGZvciAoY29tcG9uZW50IG9mIHNldHRpbmdzLmNvbXBvbmVudHM7IHRyYWNrIGNvbXBvbmVudC5pZDsgbGV0IGZpcnN0ID0gJGZpcnN0KSB7XHJcbiAgICAgICAgICAgIEBpZiAoIWZpcnN0KSB7XHJcbiAgICAgICAgICAgICAgQGlmIChzaG93VG90YWwoY29tcG9uZW50KSkge1xyXG4gICAgICAgICAgICAgICAgPGR4aS10b3RhbC1pdGVtXHJcbiAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29tcG9uZW50LnN5c05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICBbc3VtbWFyeVR5cGVdPVwiJ3N1bSdcIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzcGxheUZvcm1hdF09XCInezB9J1wiXHJcbiAgICAgICAgICAgICAgICA+PC9keGktdG90YWwtaXRlbT5cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIEBmb3IgKGNvbXBvbmVudCBvZiBjb21wb25lbnQuY29tcG9uZW50czsgdHJhY2sgY29tcG9uZW50LmlkKSB7XHJcbiAgICAgICAgICAgICAgICBAaWYgKHNob3dUb3RhbChjb21wb25lbnQpKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktdG90YWwtaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29tcG9uZW50LnN5c05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdW1tYXJ5VHlwZV09XCInc3VtJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGb3JtYXRdPVwiJ3swfSdcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9keGktdG90YWwtaXRlbT5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBAZm9yIChjb21wb25lbnQgb2YgY29tcG9uZW50LmNvbXBvbmVudHM7IHRyYWNrIGNvbXBvbmVudC5pZCkge1xyXG4gICAgICAgICAgICAgICAgICBAaWYgKHNob3dUb3RhbChjb21wb25lbnQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS10b3RhbC1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbXBvbmVudC5zeXNOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzdW1tYXJ5VHlwZV09XCInc3VtJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZvcm1hdF09XCInezB9J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZHhpLXRvdGFsLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgIEBpZiAoaXNUb3RhbENvbHVtbihjb21wb25lbnQpKSB7XHJcbiAgICAgICAgICAgICAgICA8ZHhpLXRvdGFsLWl0ZW0gW2NvbHVtbl09XCJjb21wb25lbnQuc3lzTmFtZVwiIFtkaXNwbGF5Rm9ybWF0XT1cIid7MH0nXCI+PC9keGktdG90YWwtaXRlbT5cclxuICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxkeGktdG90YWwtaXRlbVxyXG4gICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbXBvbmVudC5zeXNOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgW2Nzc0NsYXNzXT1cIid0ZXh0LWJvbGQnXCJcclxuICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGb3JtYXRdPVwiJ9CY0KLQntCT0J4nXCJcclxuICAgICAgICAgICAgICAgID48L2R4aS10b3RhbC1pdGVtPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZHhvLXN1bW1hcnk+XHJcbiAgICAgIH1cclxuICAgIDwvZHgtZGF0YS1ncmlkPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1jZWxsSW5mbz1cImNlbGxJbmZvXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cImdhcDogNHB4XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWVkaXQgaWNvbi1mb250LTE2IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImVkaXRSb3coY2VsbEluZm8pXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kZWxldGUgaWNvbi1mb250LTE2IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImRlbGV0ZVJvdyhjZWxsSW5mbylcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxufVxyXG5cclxuXHJcbiJdfQ==
@@ -58,4 +58,4 @@ export class ObjectFormService {
58
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectFormService, decorators: [{
59
59
  type: Injectable
60
60
  }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9zZXJ2aWNlcy9vYmplY3QtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQTZCLE1BQU0sc0JBQXNCLENBQUM7QUFFN0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUlyRSxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRVUsVUFBSyxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN0Qyx3QkFBbUIsR0FBNEIsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFFOUUsWUFBTyxHQUFXLEVBQUUsQ0FBQTtRQUVwQixvQkFBZSxHQUFXLG9CQUFvQixDQUFDO0tBeUR4RDtJQXZEQyxJQUFZLE1BQU07UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxZQUFZLENBQUMsTUFBYztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQTtJQUN2QixDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQWdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQThCLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxRQUFRLFNBQVMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTSxnQkFBZ0IsQ0FBRSxhQUFxQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsR0FBRyxDQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksYUFBYSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxlQUF1QjtRQUNoRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLHNCQUFzQixlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxhQUFxQixFQUFFLGFBQWtDO1FBQ3RGLE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxHQUFHLENBQW9CLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxhQUFhLEVBQUUsRUFBRSxFQUFDLGFBQWEsRUFBQyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM3RixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sZUFBZSxDQUFDLGFBQXFCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxJQUFJLENBQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLGFBQWEsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDM0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxXQUFnRTtRQUNyRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFpQixHQUFHLElBQUksQ0FBQyxNQUFNLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU0sZUFBZSxDQUFDLGFBQXFCLEVBQUUsY0FBc0I7UUFDbEUsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLEdBQUcsQ0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksYUFBYSxJQUFJLGNBQWMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM5RixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sVUFBVTtRQUloQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTyxTQUFTLENBQUksSUFBcUI7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLElBQUssQ0FBQztJQUNwQixDQUFDOytHQTlEVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRmlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkLWZvcm0vbW9kZWxzJztcclxuaW1wb3J0IHsgQ29uY3VycmVuY3lTdG9yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IE9iamVjdFZhbHVlc0R0bywgU2VjdGlvblZhbHVlTW9kZWwsIFVwZGF0ZVZhbHVlUmVzdWx0LCBUZW1wbGF0ZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1TZXJ2aWNlIHtcclxuICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpXHJcbiAgcHJpdmF0ZSBfY29uY3VycmVuY3lTZXJ2aWNlOiBDb25jdXJyZW5jeVN0b3JlU2VydmljZSA9IGluamVjdChDb25jdXJyZW5jeVN0b3JlU2VydmljZSlcclxuXHJcbiAgcHJpdmF0ZSBfYXBpVXJsOiBzdHJpbmcgPSAnJ1xyXG5cclxuICBwcml2YXRlIF9jb25jdXJyZW5jeUtleTogc3RyaW5nID0gJ2FwcGxpY2F0aW9uLXZhbHVlcyc7XHJcblxyXG4gIHByaXZhdGUgZ2V0IGFwaVVybCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaVVybDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVBcGlVcmwoYXBpVXJsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX2FwaVVybCA9IGFwaVVybFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRlbXBsYXRlKG9iamVjdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgdGVtcGxhdGVTeXNOYW1lOiBzdHJpbmcgfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PHsgdGVtcGxhdGVTeXNOYW1lOiBzdHJpbmcgfT4oYCR7dGhpcy5hcGlVcmx9LyR7b2JqZWN0SWR9L3BhcmFtc2ApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlY3Rpb25WYWx1ZXMoIGFwcGxpY2F0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8T2JqZWN0VmFsdWVzRHRvPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAuZ2V0PE9iamVjdFZhbHVlc0R0bz4oYCR7dGhpcy5hcGlVcmx9LyR7YXBwbGljYXRpb25JZH1gLCB0aGlzLmdldEhlYWRlcnMoKSlcclxuICAgICAgLnBpcGUobWFwKHRoaXMubWFwUmVzdWx0LmJpbmQodGhpcykpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZVNldHRpbmdzKHRlbXBsYXRlU3lzTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZU1vZGVsPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8VGVtcGxhdGVNb2RlbD4oYCR7dGhpcy5hcGlVcmx9L3RlbXBsYXRlL3NldHRpbmdzLyR7dGVtcGxhdGVTeXNOYW1lfWApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZUFwcGxpY2F0aW9uVmFsdWVzKGFwcGxpY2F0aW9uSWQ6IHN0cmluZywgc2VjdGlvblZhbHVlczogU2VjdGlvblZhbHVlTW9kZWxbXSk6IE9ic2VydmFibGU8VXBkYXRlVmFsdWVSZXN1bHQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgIC5wdXQ8VXBkYXRlVmFsdWVSZXN1bHQ+KGAke3RoaXMuYXBpVXJsfS8ke2FwcGxpY2F0aW9uSWR9YCwge3NlY3Rpb25WYWx1ZXN9LCB0aGlzLmdldEhlYWRlcnMoKSlcclxuICAgICAgLnBpcGUobWFwKHRoaXMubWFwUmVzdWx0LmJpbmQodGhpcykpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlQXBwbGljYXRpb24oYXBwbGljYXRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAucG9zdDx2b2lkPihgJHt0aGlzLmFwaVVybH0vJHthcHBsaWNhdGlvbklkfS9zYXZlYCwgbnVsbCwgdGhpcy5nZXRIZWFkZXJzKCkpXHJcbiAgICAgIC5waXBlKG1hcCh0aGlzLm1hcFJlc3VsdC5iaW5kKHRoaXMpKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29weUFwcGxpY2F0aW9uKGNvcHlDb21tYW5kOiB7IHNvdXJjZUlkOiBzdHJpbmcsIHRhcmdldFRlbXBsYXRlU3lzTmFtZTogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPHsgaWQ6IHN0cmluZyB9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PHsgaWQ6IHN0cmluZyB9PihgJHt0aGlzLmFwaVVybH0vY29weWAsIGNvcHlDb21tYW5kKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWN0aW9uRmlsZXMoYXBwbGljYXRpb25JZDogc3RyaW5nLCBzZWN0aW9uU3lzTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxGaWxlTW9kZWxbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgLmdldDxGaWxlTW9kZWxbXT4oYCR7dGhpcy5hcGlVcmx9LyR7YXBwbGljYXRpb25JZH0vJHtzZWN0aW9uU3lzTmFtZX0vZmlsZXNgLCB0aGlzLmdldEhlYWRlcnMoKSlcclxuICAgICAgLnBpcGUobWFwKHRoaXMubWFwUmVzdWx0LmJpbmQodGhpcykpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SGVhZGVycygpOiB7XHJcbiAgICBoZWFkZXJzOiBIdHRwSGVhZGVycyB8IHsgW2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSxcclxuICAgIG9ic2VydmU6ICdyZXNwb25zZSdcclxuICB9IHtcclxuICAgIHJldHVybiB0aGlzLl9jb25jdXJyZW5jeVNlcnZpY2UuZ2V0SGVhZGVycyh0aGlzLl9jb25jdXJyZW5jeUtleSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcFJlc3VsdDxUPihyZXNwOiBIdHRwUmVzcG9uc2U8VD4pIHtcclxuICAgIHRoaXMuX2NvbmN1cnJlbmN5U2VydmljZS5mcm9tSGVhZGVycyh0aGlzLl9jb25jdXJyZW5jeUtleSwgcmVzcCk7XHJcbiAgICByZXR1cm4gcmVzcC5ib2R5ITtcclxuICB9XHJcbn1cclxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9zZXJ2aWNlcy9vYmplY3QtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQTZCLE1BQU0sc0JBQXNCLENBQUM7QUFFN0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUlyRSxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRVUsVUFBSyxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN0Qyx3QkFBbUIsR0FBNEIsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFFOUUsWUFBTyxHQUFXLEVBQUUsQ0FBQTtRQUVwQixvQkFBZSxHQUFXLG9CQUFvQixDQUFDO0tBeUR4RDtJQXZEQyxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFjO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO0lBQ3ZCLENBQUM7SUFFTSxXQUFXLENBQUMsUUFBZ0I7UUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBOEIsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLFFBQVEsU0FBUyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVNLGdCQUFnQixDQUFFLGFBQXFCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxHQUFHLENBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxhQUFhLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDMUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLG1CQUFtQixDQUFDLGVBQXVCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sc0JBQXNCLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVNLHVCQUF1QixDQUFDLGFBQXFCLEVBQUUsYUFBa0M7UUFDdEYsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLEdBQUcsQ0FBb0IsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLGFBQWEsRUFBRSxFQUFFLEVBQUMsYUFBYSxFQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzdGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxlQUFlLENBQUMsYUFBcUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLElBQUksQ0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksYUFBYSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUMzRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sZUFBZSxDQUFDLFdBQWdFO1FBQ3JGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxlQUFlLENBQUMsYUFBcUIsRUFBRSxjQUFzQjtRQUNsRSxPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsR0FBRyxDQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxhQUFhLElBQUksY0FBYyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzlGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxVQUFVO1FBSWhCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLFNBQVMsQ0FBSSxJQUFxQjtRQUN4QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsSUFBSyxDQUFDO0lBQ3BCLENBQUM7K0dBOURVLGlCQUFpQjttSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb25jdXJyZW5jeVN0b3JlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC1mb3JtL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgT2JqZWN0VmFsdWVzRHRvLCBTZWN0aW9uVmFsdWVNb2RlbCwgVXBkYXRlVmFsdWVSZXN1bHQsIFRlbXBsYXRlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudClcclxuICBwcml2YXRlIF9jb25jdXJyZW5jeVNlcnZpY2U6IENvbmN1cnJlbmN5U3RvcmVTZXJ2aWNlID0gaW5qZWN0KENvbmN1cnJlbmN5U3RvcmVTZXJ2aWNlKVxyXG5cclxuICBwcml2YXRlIF9hcGlVcmw6IHN0cmluZyA9ICcnXHJcblxyXG4gIHByaXZhdGUgX2NvbmN1cnJlbmN5S2V5OiBzdHJpbmcgPSAnYXBwbGljYXRpb24tdmFsdWVzJztcclxuXHJcbiAgcHVibGljIGdldCBhcGlVcmwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9hcGlVcmw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlQXBpVXJsKGFwaVVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hcGlVcmwgPSBhcGlVcmxcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZShvYmplY3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHRlbXBsYXRlU3lzTmFtZTogc3RyaW5nIH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDx7IHRlbXBsYXRlU3lzTmFtZTogc3RyaW5nIH0+KGAke3RoaXMuYXBpVXJsfS8ke29iamVjdElkfS9wYXJhbXNgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWN0aW9uVmFsdWVzKCBhcHBsaWNhdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9iamVjdFZhbHVlc0R0bz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgLmdldDxPYmplY3RWYWx1ZXNEdG8+KGAke3RoaXMuYXBpVXJsfS8ke2FwcGxpY2F0aW9uSWR9YCwgdGhpcy5nZXRIZWFkZXJzKCkpXHJcbiAgICAgIC5waXBlKG1hcCh0aGlzLm1hcFJlc3VsdC5iaW5kKHRoaXMpKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VGVtcGxhdGVTZXR0aW5ncyh0ZW1wbGF0ZVN5c05hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VGVtcGxhdGVNb2RlbD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFRlbXBsYXRlTW9kZWw+KGAke3RoaXMuYXBpVXJsfS90ZW1wbGF0ZS9zZXR0aW5ncy8ke3RlbXBsYXRlU3lzTmFtZX1gKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVBcHBsaWNhdGlvblZhbHVlcyhhcHBsaWNhdGlvbklkOiBzdHJpbmcsIHNlY3Rpb25WYWx1ZXM6IFNlY3Rpb25WYWx1ZU1vZGVsW10pOiBPYnNlcnZhYmxlPFVwZGF0ZVZhbHVlUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAucHV0PFVwZGF0ZVZhbHVlUmVzdWx0PihgJHt0aGlzLmFwaVVybH0vJHthcHBsaWNhdGlvbklkfWAsIHtzZWN0aW9uVmFsdWVzfSwgdGhpcy5nZXRIZWFkZXJzKCkpXHJcbiAgICAgIC5waXBlKG1hcCh0aGlzLm1hcFJlc3VsdC5iaW5kKHRoaXMpKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFwcGxpY2F0aW9uKGFwcGxpY2F0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgLnBvc3Q8dm9pZD4oYCR7dGhpcy5hcGlVcmx9LyR7YXBwbGljYXRpb25JZH0vc2F2ZWAsIG51bGwsIHRoaXMuZ2V0SGVhZGVycygpKVxyXG4gICAgICAucGlwZShtYXAodGhpcy5tYXBSZXN1bHQuYmluZCh0aGlzKSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvcHlBcHBsaWNhdGlvbihjb3B5Q29tbWFuZDogeyBzb3VyY2VJZDogc3RyaW5nLCB0YXJnZXRUZW1wbGF0ZVN5c05hbWU6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTx7IGlkOiBzdHJpbmcgfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDx7IGlkOiBzdHJpbmcgfT4oYCR7dGhpcy5hcGlVcmx9L2NvcHlgLCBjb3B5Q29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VjdGlvbkZpbGVzKGFwcGxpY2F0aW9uSWQ6IHN0cmluZywgc2VjdGlvblN5c05hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8RmlsZU1vZGVsW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgIC5nZXQ8RmlsZU1vZGVsW10+KGAke3RoaXMuYXBpVXJsfS8ke2FwcGxpY2F0aW9uSWR9LyR7c2VjdGlvblN5c05hbWV9L2ZpbGVzYCwgdGhpcy5nZXRIZWFkZXJzKCkpXHJcbiAgICAgIC5waXBlKG1hcCh0aGlzLm1hcFJlc3VsdC5iaW5kKHRoaXMpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEhlYWRlcnMoKToge1xyXG4gICAgaGVhZGVyczogSHR0cEhlYWRlcnMgfCB7IFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0sXHJcbiAgICBvYnNlcnZlOiAncmVzcG9uc2UnXHJcbiAgfSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uY3VycmVuY3lTZXJ2aWNlLmdldEhlYWRlcnModGhpcy5fY29uY3VycmVuY3lLZXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYXBSZXN1bHQ8VD4ocmVzcDogSHR0cFJlc3BvbnNlPFQ+KSB7XHJcbiAgICB0aGlzLl9jb25jdXJyZW5jeVNlcnZpY2UuZnJvbUhlYWRlcnModGhpcy5fY29uY3VycmVuY3lLZXksIHJlc3ApO1xyXG4gICAgcmV0dXJuIHJlc3AuYm9keSE7XHJcbiAgfVxyXG59XHJcbiJdfQ==