UNPKG

@kre-form/ant

Version:

341 lines 24 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, Inject } from "@angular/core"; import * as _ from "lodash"; import { KreToFormFieldService } from "./formFieldService"; var KreDesginToFormService = /** @class */ (function () { function KreDesginToFormService(toFormField) { this.toFormField = toFormField; } /** * @param {?} tables * @param {?} fields * @return {?} */ KreDesginToFormService.prototype.initTableStatus = /** * @param {?} tables * @param {?} fields * @return {?} */ function (tables, fields) { var _this = this; this.initTableFields(tables); if (fields && fields != null && fields.length > 0) { fields.forEach((/** * @param {?} field * @param {?} index * @param {?} object * @return {?} */ function (field, index, object) { _this.setTableStatus(tables, field); })); } }; /** * @param {?} tables * @param {?} fields * @return {?} */ KreDesginToFormService.prototype.initFormFieldByTables = /** * @param {?} tables * @param {?} fields * @return {?} */ function (tables, fields) { var _this = this; if (tables != undefined && tables != null && tables.primary != undefined && tables.primary != null && tables.primary.tableFields != undefined && tables.primary.tableFields != null) { /** @type {?} */ var tableFileds = tables.primary.tableFields.filter((/** * @param {?} item * @return {?} */ function (item) { return item.isButintin === true; })); if (tableFileds != null) { tableFileds.forEach((/** * @param {?} item * @return {?} */ function (item) { if (!_this.checkKreFormFieldConfig(item.fieldCode, fields)) { _this.addKreFormFieldConfig(item, fields); } })); } } }; /** * @private * @param {?} tables * @return {?} */ KreDesginToFormService.prototype.initTableFields = /** * @private * @param {?} tables * @return {?} */ function (tables) { if (!tables) { return; } if (tables.primary) { tables.primary.tableQuote = false; if (tables.primary.tableFields) { tables.primary.tableFields.forEach((/** * @param {?} field * @return {?} */ function (field) { field.fieldQuote = false; })); } } if (tables.child) { if (tables.child.single) { tables.child.single.forEach((/** * @param {?} table * @return {?} */ function (table) { table.tableQuote = false; if (table.tableFields) { table.tableFields.forEach((/** * @param {?} field * @return {?} */ function (field) { field.fieldQuote = false; })); } })); } if (tables.child.multiple) { tables.child.multiple.forEach((/** * @param {?} table * @return {?} */ function (table) { table.tableQuote = false; if (table.tableFields) { table.tableFields.forEach((/** * @param {?} field * @return {?} */ function (field) { field.fieldQuote = false; })); } })); } } }; /** * @private * @param {?} tables * @param {?} field * @return {?} */ KreDesginToFormService.prototype.setTableStatus = /** * @private * @param {?} tables * @param {?} field * @return {?} */ function (tables, field) { if (tables) { if (tables.primary) { this.setTablePrimary(tables.primary, field); } if (tables.child) { if (tables.child.single) { this.setTableSingle(tables.child.single, field); } if (tables.child.multiple) { this.setTableMultiple(tables.child.multiple, field); } } } }; /** * @private * @param {?} table * @param {?} field * @return {?} */ KreDesginToFormService.prototype.setTablePrimary = /** * @private * @param {?} table * @param {?} field * @return {?} */ function (table, field) { // if (field.tableCode === table.tableCode) { // table.tableQuote = true; if (table.tableFields) { table.tableFields.forEach((/** * @param {?} item * @return {?} */ function (item) { if (item.fieldCode === field.key) { item.fieldQuote = true; } })); } //} }; /** * @private * @param {?} tables * @param {?} field * @return {?} */ KreDesginToFormService.prototype.setTableSingle = /** * @private * @param {?} tables * @param {?} field * @return {?} */ function (tables, field) { if (tables && tables != null && tables.length > 0) { tables.forEach((/** * @param {?} table * @return {?} */ function (table) { // if (table.tableCode === field.tableCode) { // table.tableQuote = true; if (table.tableFields) { table.tableFields.forEach((/** * @param {?} item * @return {?} */ function (item) { if (item.fieldCode === field.key) { item.fieldQuote = true; } })); } //} })); } }; /** * @private * @param {?} tables * @param {?} groupField * @return {?} */ KreDesginToFormService.prototype.setTableMultiple = /** * @private * @param {?} tables * @param {?} groupField * @return {?} */ function (tables, groupField) { if (tables && tables != null && tables.length > 0) { tables.forEach((/** * @param {?} table * @return {?} */ function (table) { if (table.tableCode === groupField.key) { table.tableQuote = true; if (groupField.fieldArray && groupField.fieldArray.fieldGroup && groupField.fieldArray.fieldGroup.length > 0) { if (table.tableFields) { table.tableFields.forEach((/** * @param {?} item * @return {?} */ function (item) { _.get(groupField, "fieldArray.fieldGroup").forEach((/** * @param {?} field * @return {?} */ function (field) { if (item.fieldCode === field.key) { item.fieldQuote = true; } })); })); } } } })); } }; /** * @private * @param {?} code * @param {?} fields * @return {?} */ KreDesginToFormService.prototype.checkKreFormFieldConfig = /** * @private * @param {?} code * @param {?} fields * @return {?} */ function (code, fields) { /** @type {?} */ var result = false; if (fields != undefined && fields != null && fields != []) { result = fields.some((/** * @param {?} item * @return {?} */ function (item) { return item.key === code; })); } return result; }; /** * @private * @param {?} tableField * @param {?} fields * @return {?} */ KreDesginToFormService.prototype.addKreFormFieldConfig = /** * @private * @param {?} tableField * @param {?} fields * @return {?} */ function (tableField, fields) { /** @type {?} */ var field = this.toFormField.getKreFiledFunction(tableField); if (fields == undefined || fields == null) { fields = []; } fields.push(field); }; KreDesginToFormService.decorators = [ { type: Injectable } ]; /** @nocollapse */ KreDesginToFormService.ctorParameters = function () { return [ { type: KreToFormFieldService, decorators: [{ type: Inject, args: [KreToFormFieldService,] }] } ]; }; return KreDesginToFormService; }()); export { KreDesginToFormService }; if (false) { /** * @type {?} * @private */ KreDesginToFormService.prototype.toFormField; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVGaWVsZFNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3JlLWZvcm0vYW50LyIsInNvdXJjZXMiOlsibGliL3Rvb2xzL3RhYmxlRmllbGRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRakUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0Q7SUFFRSxnQ0FFVSxXQUFrQztRQUFsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBdUI7SUFDekMsQ0FBQzs7Ozs7O0lBRUosZ0RBQWU7Ozs7O0lBQWYsVUFBZ0IsTUFBc0IsRUFBRSxNQUE0QjtRQUFwRSxpQkFPQztRQU5DLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsSUFBSSxNQUFNLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqRCxNQUFNLENBQUMsT0FBTzs7Ozs7O1lBQUMsVUFBQyxLQUFVLEVBQUUsS0FBVSxFQUFFLE1BQVc7Z0JBQ2pELEtBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUMsRUFBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzs7Ozs7SUFFRCxzREFBcUI7Ozs7O0lBQXJCLFVBQXNCLE1BQXNCLEVBQUUsTUFBNEI7UUFBMUUsaUJBc0JDO1FBckJDLElBQ0UsTUFBTSxJQUFJLFNBQVM7WUFDbkIsTUFBTSxJQUFJLElBQUk7WUFDZCxNQUFNLENBQUMsT0FBTyxJQUFJLFNBQVM7WUFDM0IsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJO1lBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLFNBQVM7WUFDdkMsTUFBTSxDQUFDLE9BQU8sQ0FB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aEIsQ0FBQzs7Ozs7OztJQUNPLHNEQUFxQjs7Ozs7O0lBQTdCLFVBQ0UsVUFBK0IsRUFDL0IsTUFBNEI7O1lBRXhCLEtBQUssR0FBdUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FDbEUsVUFBVSxDQUNYO1FBQ0QsSUFBSSxNQUFNLElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDekMsTUFBTSxHQUFHLEVBQUUsQ0FBQztTQUNiO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDOztnQkEvS0YsVUFBVTs7OztnQkFGRixxQkFBcUIsdUJBS3pCLE1BQU0sU0FBQyxxQkFBcUI7O0lBNktqQyw2QkFBQztDQUFBLEFBaExELElBZ0xDO1NBL0tZLHNCQUFzQjs7Ozs7O0lBRS9CLDZDQUMwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIEtyZVRhYmxlRmllbGRDb25maWcsXG4gIEtyZUZvcm1GaWVsZENvbmZpZyxcbiAgS3JlVGFibGVDb25maWcsXG4gIGNsb25lLFxufSBmcm9tIFwiQGtyZS1mb3JtL2NvcmVcIjtcbmltcG9ydCB7IElCdXNpbmVzc1RhYmxlIH0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBLcmVUb0Zvcm1GaWVsZFNlcnZpY2UgfSBmcm9tIFwiLi9mb3JtRmllbGRTZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBLcmVEZXNnaW5Ub0Zvcm1TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChLcmVUb0Zvcm1GaWVsZFNlcnZpY2UpXG4gICAgcHJpdmF0ZSB0b0Zvcm1GaWVsZDogS3JlVG9Gb3JtRmllbGRTZXJ2aWNlXG4gICkge31cblxuICBpbml0VGFibGVTdGF0dXModGFibGVzOiBJQnVzaW5lc3NUYWJsZSwgZmllbGRzOiBLcmVGb3JtRmllbGRDb25maWdbXSkge1xuICAgIHRoaXMuaW5pdFRhYmxlRmllbGRzKHRhYmxlcyk7XG4gICAgaWYgKGZpZWxkcyAmJiBmaWVsZHMgIT0gbnVsbCAmJiBmaWVsZHMubGVuZ3RoID4gMCkge1xuICAgICAgZmllbGRzLmZvckVhY2goKGZpZWxkOiBhbnksIGluZGV4OiBhbnksIG9iamVjdDogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VGFibGVTdGF0dXModGFibGVzLCBmaWVsZCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBpbml0Rm9ybUZpZWxkQnlUYWJsZXModGFibGVzOiBJQnVzaW5lc3NUYWJsZSwgZmllbGRzOiBLcmVGb3JtRmllbGRDb25maWdbXSkge1xuICAgIGlmIChcbiAgICAgIHRhYmxlcyAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRhYmxlcyAhPSBudWxsICYmXG4gICAgICB0YWJsZXMucHJpbWFyeSAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRhYmxlcy5wcmltYXJ5ICE9IG51bGwgJiZcbiAgICAgIHRhYmxlcy5wcmltYXJ5LnRhYmxlRmllbGRzICE9IHVuZGVmaW5lZCAmJlxuICAgICAgdGFibGVzLnByaW1hcnkudGFibGVGaWVsZHMgIT0gbnVsbFxuICAgICkge1xuICAgICAgbGV0IHRhYmxlRmlsZWRzOiBLcmVUYWJsZUZpZWxkQ29uZmlnW10gPSB0YWJsZXMucHJpbWFyeS50YWJsZUZpZWxkcy5maWx0ZXIoXG4gICAgICAgIChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gaXRlbS5pc0J1dGludGluID09PSB0cnVlO1xuICAgICAgICB9XG4gICAgICApO1xuICAgICAgaWYgKHRhYmxlRmlsZWRzICE9IG51bGwpIHtcbiAgICAgICAgdGFibGVGaWxlZHMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLmNoZWNrS3JlRm9ybUZpZWxkQ29uZmlnKGl0ZW0uZmllbGRDb2RlLCBmaWVsZHMpKSB7XG4gICAgICAgICAgICB0aGlzLmFkZEtyZUZvcm1GaWVsZENvbmZpZyhpdGVtLCBmaWVsZHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0VGFibGVGaWVsZHModGFibGVzOiBJQnVzaW5lc3NUYWJsZSkge1xuICAgIGlmICghdGFibGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRhYmxlcy5wcmltYXJ5KSB7XG4gICAgICB0YWJsZXMucHJpbWFyeS50YWJsZVF1b3RlID0gZmFsc2U7XG4gICAgICBpZiAodGFibGVzLnByaW1hcnkudGFibGVGaWVsZHMpIHtcbiAgICAgICAgdGFibGVzLnByaW1hcnkudGFibGVGaWVsZHMuZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICAgIGZpZWxkLmZpZWxkUXVvdGUgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRhYmxlcy5jaGlsZCkge1xuICAgICAgaWYgKHRhYmxlcy5jaGlsZC5zaW5nbGUpIHtcbiAgICAgICAgdGFibGVzLmNoaWxkLnNpbmdsZS5mb3JFYWNoKCh0YWJsZTogYW55KSA9PiB7XG4gICAgICAgICAgdGFibGUudGFibGVRdW90ZSA9IGZhbHNlO1xuICAgICAgICAgIGlmICh0YWJsZS50YWJsZUZpZWxkcykge1xuICAgICAgICAgICAgdGFibGUudGFibGVGaWVsZHMuZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBmaWVsZC5maWVsZFF1b3RlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHRhYmxlcy5jaGlsZC5tdWx0aXBsZSkge1xuICAgICAgICB0YWJsZXMuY2hpbGQubXVsdGlwbGUuZm9yRWFjaCgodGFibGU6IGFueSkgPT4ge1xuICAgICAgICAgIHRhYmxlLnRhYmxlUXVvdGUgPSBmYWxzZTtcbiAgICAgICAgICBpZiAodGFibGUudGFibGVGaWVsZHMpIHtcbiAgICAgICAgICAgIHRhYmxlLnRhYmxlRmllbGRzLmZvckVhY2goKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgZmllbGQuZmllbGRRdW90ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFRhYmxlU3RhdHVzKHRhYmxlczogSUJ1c2luZXNzVGFibGUsIGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBpZiAodGFibGVzKSB7XG4gICAgICBpZiAodGFibGVzLnByaW1hcnkpIHtcbiAgICAgICAgdGhpcy5zZXRUYWJsZVByaW1hcnkodGFibGVzLnByaW1hcnksIGZpZWxkKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRhYmxlcy5jaGlsZCkge1xuICAgICAgICBpZiAodGFibGVzLmNoaWxkLnNpbmdsZSkge1xuICAgICAgICAgIHRoaXMuc2V0VGFibGVTaW5nbGUodGFibGVzLmNoaWxkLnNpbmdsZSwgZmllbGQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YWJsZXMuY2hpbGQubXVsdGlwbGUpIHtcbiAgICAgICAgICB0aGlzLnNldFRhYmxlTXVsdGlwbGUodGFibGVzLmNoaWxkLm11bHRpcGxlLCBmaWVsZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFRhYmxlUHJpbWFyeSh0YWJsZTogS3JlVGFibGVDb25maWcsIGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICAvLyBpZiAoZmllbGQudGFibGVDb2RlID09PSB0YWJsZS50YWJsZUNvZGUpIHtcbiAgICAvLyAgIHRhYmxlLnRhYmxlUXVvdGUgPSB0cnVlO1xuICAgIGlmICh0YWJsZS50YWJsZUZpZWxkcykge1xuICAgICAgdGFibGUudGFibGVGaWVsZHMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmZpZWxkQ29kZSA9PT0gZmllbGQua2V5KSB7XG4gICAgICAgICAgaXRlbS5maWVsZFF1b3RlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIC8vfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRUYWJsZVNpbmdsZSh0YWJsZXM6IEtyZVRhYmxlQ29uZmlnW10sIGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBpZiAodGFibGVzICYmIHRhYmxlcyAhPSBudWxsICYmIHRhYmxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0YWJsZXMuZm9yRWFjaCgodGFibGUpID0+IHtcbiAgICAgICAgLy8gaWYgKHRhYmxlLnRhYmxlQ29kZSA9PT0gZmllbGQudGFibGVDb2RlKSB7XG4gICAgICAgIC8vICAgdGFibGUudGFibGVRdW90ZSA9IHRydWU7XG4gICAgICAgIGlmICh0YWJsZS50YWJsZUZpZWxkcykge1xuICAgICAgICAgIHRhYmxlLnRhYmxlRmllbGRzLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uZmllbGRDb2RlID09PSBmaWVsZC5rZXkpIHtcbiAgICAgICAgICAgICAgaXRlbS5maWVsZFF1b3RlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvL31cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFibGVNdWx0aXBsZShcbiAgICB0YWJsZXM6IEtyZVRhYmxlQ29uZmlnW10sXG4gICAgZ3JvdXBGaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnXG4gICkge1xuICAgIGlmICh0YWJsZXMgJiYgdGFibGVzICE9IG51bGwgJiYgdGFibGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRhYmxlcy5mb3JFYWNoKCh0YWJsZSkgPT4ge1xuICAgICAgICBpZiAodGFibGUudGFibGVDb2RlID09PSBncm91cEZpZWxkLmtleSkge1xuICAgICAgICAgIHRhYmxlLnRhYmxlUXVvdGUgPSB0cnVlO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGdyb3VwRmllbGQuZmllbGRBcnJheSAmJlxuICAgICAgICAgICAgZ3JvdXBGaWVsZC5maWVsZEFycmF5LmZpZWxkR3JvdXAgJiZcbiAgICAgICAgICAgIGdyb3VwRmllbGQuZmllbGRBcnJheS5maWVsZEdyb3VwLmxlbmd0aCA+IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlmICh0YWJsZS50YWJsZUZpZWxkcykge1xuICAgICAgICAgICAgICB0YWJsZS50YWJsZUZpZWxkcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBfLmdldChncm91cEZpZWxkLCBcImZpZWxkQXJyYXkuZmllbGRHcm91cFwiKS5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uZmllbGRDb2RlID09PSBmaWVsZC5rZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtLmZpZWxkUXVvdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrS3JlRm9ybUZpZWxkQ29uZmlnKGNvZGU6IHN0cmluZywgZmllbGRzOiBLcmVGb3JtRmllbGRDb25maWdbXSkge1xuICAgIGxldCByZXN1bHQgPSBmYWxzZTtcbiAgICBpZiAoZmllbGRzICE9IHVuZGVmaW5lZCAmJiBmaWVsZHMgIT0gbnVsbCAmJiBmaWVsZHMgIT0gW10pIHtcbiAgICAgIHJlc3VsdCA9IGZpZWxkcy5zb21lKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0ua2V5ID09PSBjb2RlO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcHJpdmF0ZSBhZGRLcmVGb3JtRmllbGRDb25maWcoXG4gICAgdGFibGVGaWVsZDogS3JlVGFibGVGaWVsZENvbmZpZyxcbiAgICBmaWVsZHM6IEtyZUZvcm1GaWVsZENvbmZpZ1tdXG4gICkge1xuICAgIGxldCBmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnID0gdGhpcy50b0Zvcm1GaWVsZC5nZXRLcmVGaWxlZEZ1bmN0aW9uKFxuICAgICAgdGFibGVGaWVsZFxuICAgICk7XG4gICAgaWYgKGZpZWxkcyA9PSB1bmRlZmluZWQgfHwgZmllbGRzID09IG51bGwpIHtcbiAgICAgIGZpZWxkcyA9IFtdO1xuICAgIH1cbiAgICBmaWVsZHMucHVzaChmaWVsZCk7XG4gIH1cbn1cbiJdfQ==