UNPKG

@kre-form/ant

Version:

302 lines 21.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, Output, EventEmitter, ViewChild, ChangeDetectorRef } from "@angular/core"; import * as _ from "lodash"; import { DataService } from "../../service/data.service"; var KreFormOrg = /** @class */ (function () { function KreFormOrg(dataService, cd) { this.dataService = dataService; this.cd = cd; this.fieldConfig = {}; this.tag = true; this.treeChangeEvent = new EventEmitter(); //组织数据 this.data = []; this.dimension = true; this.selectData = []; this.curOrgId = ""; this.orgData = []; this.treeData = []; this.controlid = ""; this.treeid = ""; this.selectedKey = []; this.skeletonStatus = 0; } Object.defineProperty(KreFormOrg.prototype, "selectedNode", { //选择节点 get: //选择节点 /** * @return {?} */ function () { return _.cloneDeep(this.selectData); }, enumerable: true, configurable: true }); Object.defineProperty(KreFormOrg.prototype, "selectType", { get: /** * @return {?} */ function () { /** @type {?} */ var res = ""; if (this.fieldConfig != undefined && this.fieldConfig != null && this.fieldConfig.templateOptions != undefined && this.fieldConfig.templateOptions != null && this.fieldConfig.templateOptions.selectType != undefined) { res = this.fieldConfig.templateOptions.selectType; } return res; }, enumerable: true, configurable: true }); /** * @return {?} */ KreFormOrg.prototype.ngOnInit = /** * @return {?} */ function () { /** @type {?} */ var orgControl = _.get(this.fieldConfig, "templateOptions.controlid"); if (orgControl != undefined && orgControl != null && orgControl != "") { this.controlid = _.get(this.fieldConfig, "templateOptions.controlid"); } this.getOrgData(); }; /** * @return {?} */ KreFormOrg.prototype.ngAfterViewInit = /** * @return {?} */ function () { this.cd.detectChanges(); }; /** * @param {?} changes * @return {?} */ KreFormOrg.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { }; //获取组织数据集 //获取组织数据集 /** * @return {?} */ KreFormOrg.prototype.getOrgData = //获取组织数据集 /** * @return {?} */ function () { var _this = this; this.dataService.getSysCtrOrgTree().subscribe((/** * @param {?} res * @return {?} */ function (res) { _this.data = res; if (_this.data != null && _this.data.length > 0) { if (_this.data[0].children != undefined) { _this.curOrgId = _this.data[0].key; _this.treeData = _this.data[0].children; } } _this.getTreeSelectData(); })); }; /** * @return {?} */ KreFormOrg.prototype.getTreeSelectData = /** * @return {?} */ function () { if (this.fieldConfig != null && this.fieldConfig.model != undefined && this.fieldConfig.model != null && this.fieldConfig.key != undefined && this.fieldConfig.key != null && this.fieldConfig.model[this.fieldConfig.key] != undefined && this.fieldConfig.model[this.fieldConfig.key] != null) { this.selectData = _.cloneDeep(this.fieldConfig.model[this.fieldConfig.key]); } }; /** * @param {?} event * @return {?} */ KreFormOrg.prototype.orgChange = /** * @param {?} event * @return {?} */ function (event) { var _this = this; this.data.forEach((/** * @param {?} item * @return {?} */ function (item) { if (item.key === event) { _this.treeData = item.children; } })); this.selectData.forEach((/** * @param {?} item * @return {?} */ function (item) { _this.setTreeChecked(_this.data, item.value); })); }; /** * @param {?} event * @return {?} */ KreFormOrg.prototype.treeChange = /** * @param {?} event * @return {?} */ function (event) { var _this = this; if (this.dimension) { this.data.forEach((/** * @param {?} item * @return {?} */ function (item) { _this.setTreeUnChecked(item.children, event.delete); })); } this.treeChangeEvent.emit(this.selectData); }; /** * @param {?} tree * @param {?} key * @return {?} */ KreFormOrg.prototype.setTreeUnChecked = /** * @param {?} tree * @param {?} key * @return {?} */ function (tree, key) { var _this = this; if (tree && tree.length > 0) { tree.forEach((/** * @param {?} item * @return {?} */ function (item) { if (item.key === key) { item.checked = false; } else { if (item.children && item.children.length > 0) { _this.setTreeUnChecked(item.children, key); } } })); } return; }; /** * @param {?} tree * @param {?} key * @return {?} */ KreFormOrg.prototype.setTreeChecked = /** * @param {?} tree * @param {?} key * @return {?} */ function (tree, key) { var _this = this; if (tree && tree.length > 0) { tree.forEach((/** * @param {?} item * @return {?} */ function (item) { if (item.key === key) { item.checked = true; } else { if (item.children && item.children.length > 0) { _this.setTreeChecked(item.children, key); } } })); } return; }; KreFormOrg.decorators = [ { type: Component, args: [{ selector: "kreform-org", template: "<div class=\"org-select\" *ngIf=\"dimension==true\">\n <span>\u7EF4\u5EA6\uFF1A</span>\n <nz-select [(ngModel)]=\"curOrgId\" (ngModelChange)=\"orgChange($event)\">\n <ng-container *ngFor=\"let item of data;\">\n <nz-option [nzValue]=\"item.key\" [nzLabel]=\"item.title\"></nz-option>\n </ng-container>\n </nz-select>\n</div>\n<div class=\"org-tree\"> \n <kreform-private-tree [data]=\"treeData\" [selectType]=\"selectType\" [selectData]=\"selectData\" [tag]=\"tag\" (treeChangeEvent)=\"treeChange($event)\"></kreform-private-tree>\n</div>", providers: [DataService], styles: [":host ::ng-deep .org-select{min-width:500px;padding:15px 0 0 15px;font-size:12px}:host ::ng-deep .org-select nz-select{min-width:250px}:host ::ng-deep .org-select .ant-select{font-size:12px}:host ::ng-deep .org-select .ant-select-dropdown{font-size:12px}:host ::ng-deep .org-tree{height:calc(100% - 47px);padding:0 0 0 10px}:host ::ng-deep .org-tree .tree-item{padding-left:0!important}:host ::ng-deep .org-tree .tree-tag{margin-top:-47px}"] }] } ]; /** @nocollapse */ KreFormOrg.ctorParameters = function () { return [ { type: DataService }, { type: ChangeDetectorRef } ]; }; KreFormOrg.propDecorators = { fieldConfig: [{ type: Input }], tag: [{ type: Input }], treeChangeEvent: [{ type: Output }], nzTreeComponent: [{ type: ViewChild, args: ["nzTreeComponent", { static: false },] }] }; return KreFormOrg; }()); export { KreFormOrg }; if (false) { /** @type {?} */ KreFormOrg.prototype.fieldConfig; /** @type {?} */ KreFormOrg.prototype.tag; /** @type {?} */ KreFormOrg.prototype.treeChangeEvent; /** @type {?} */ KreFormOrg.prototype.data; /** @type {?} */ KreFormOrg.prototype.dimension; /** @type {?} */ KreFormOrg.prototype.selectData; /** @type {?} */ KreFormOrg.prototype.curOrgId; /** @type {?} */ KreFormOrg.prototype.orgData; /** @type {?} */ KreFormOrg.prototype.treeData; /** @type {?} */ KreFormOrg.prototype.controlid; /** @type {?} */ KreFormOrg.prototype.treeid; /** @type {?} */ KreFormOrg.prototype.nzTreeComponent; /** @type {?} */ KreFormOrg.prototype.selectedKey; /** @type {?} */ KreFormOrg.prototype.skeletonStatus; /** @type {?} */ KreFormOrg.prototype.dataService; /** * @type {?} * @private */ KreFormOrg.prototype.cd; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGtyZS1mb3JtL2FudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL29yZy9pbmRleC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUlULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQVF2QixPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQVE1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQ7SUFrREUsb0JBQW1CLFdBQXdCLEVBQVUsRUFBcUI7UUFBdkQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQTNDakUsZ0JBQVcsR0FBdUIsRUFBRSxDQUFDO1FBQ3JDLFFBQUcsR0FBWSxJQUFJLENBQUM7UUFDbkIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDOztRQUdwRCxTQUFJLEdBQWdCLEVBQUUsQ0FBQztRQUN2QixjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLGVBQVUsR0FBbUIsRUFBRSxDQUFDO1FBQ2hDLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFxQnRCLFlBQU8sR0FBZSxFQUFFLENBQUM7UUFDekIsYUFBUSxHQUFnQixFQUFFLENBQUM7UUFFM0IsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBTXBCLGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO0lBR21ELENBQUM7SUFoQy9FLHNCQUFJLG9DQUFZO1FBRGhCLE1BQU07Ozs7OztRQUNOO1lBQ0UsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxDQUFDOzs7T0FBQTtJ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b0Q7O0lBR3BELDBCQUF1Qjs7SUFDdkIsK0JBQTBCOztJQUMxQixnQ0FBZ0M7O0lBQ2hDLDhCQUFzQjs7SUFxQnRCLDZCQUF5Qjs7SUFDekIsOEJBQTJCOztJQUUzQiwrQkFBdUI7O0lBQ3ZCLDRCQUFvQjs7SUFHcEIscUNBQzZDOztJQUU3QyxpQ0FBd0I7O0lBQ3hCLG9DQUEyQjs7SUFHZixpQ0FBK0I7Ozs7O0lBQUUsd0JBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgVmlld0NoaWxkLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIGZvcndhcmRSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE56VHJlZUNvbXBvbmVudCB9IGZyb20gXCJuZy16b3Jyby1hbnRkL3RyZWVcIjtcbmltcG9ydCB7XG4gIEZpZWxkV3JhcHBlcixcbiAgS3JlRm9ybUZpZWxkQ29uZmlnLFxuICBLcmVUYWJsZUZpZWxkQ29uZmlnXG59IGZyb20gXCJAa3JlLWZvcm0vY29yZVwiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XG5cbmltcG9ydCB7XG4gIElTZWxlY3RlZE5vZGUsXG4gIElPcmdEYXRhLFxuICBJVHJlZURhdGEsXG4gIElDaGVja2VkVHJlZVxufSBmcm9tIFwiLi4vLi4vdG9vbHMvdXRpbFwiO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kYXRhLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImtyZWZvcm0tb3JnXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5sZXNzXCJdLFxuICBwcm92aWRlcnM6IFtEYXRhU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgS3JlRm9ybU9yZyBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGZpZWxkQ29uZmlnOiBLcmVGb3JtRmllbGRDb25maWcgPSB7fTtcbiAgQElucHV0KCkgdGFnOiBib29sZWFuID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHRyZWVDaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8v57uE57uH5pWw5o2uXG4gIGRhdGE6IElUcmVlRGF0YVtdID0gW107XG4gIGRpbWVuc2lvbjogYm9vbGVhbiA9IHRydWU7XG4gIHNlbGVjdERhdGE6IElDaGVja2VkVHJlZVtdID0gW107XG4gIGN1ck9yZ0lkOiBzdHJpbmcgPSBcIlwiO1xuXG4gIC8v6YCJ5oup6IqC54K5XG4gIGdldCBzZWxlY3RlZE5vZGUoKSB7XG4gICAgcmV0dXJuIF8uY2xvbmVEZWVwKHRoaXMuc2VsZWN0RGF0YSk7XG4gIH1cblxuICBnZXQgc2VsZWN0VHlwZSgpIHtcbiAgICBsZXQgcmVzID0gXCJcIjtcbiAgICBpZiAoXG4gICAgICB0aGlzLmZpZWxkQ29uZmlnICE9IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5maWVsZENvbmZpZyAhPSBudWxsICYmXG4gICAgICB0aGlzLmZpZWxkQ29uZmlnLnRlbXBsYXRlT3B0aW9ucyAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuZmllbGRDb25maWcudGVtcGxhdGVPcHRpb25zICE9IG51bGwgJiZcbiAgICAgIHRoaXMuZmllbGRDb25maWcudGVtcGxhdGVPcHRpb25zLnNlbGVjdFR5cGUgIT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICByZXMgPSB0aGlzLmZpZWxkQ29uZmlnLnRlbXBsYXRlT3B0aW9ucy5zZWxlY3RUeXBlO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgb3JnRGF0YTogSU9yZ0RhdGFbXSA9IFtdO1xuICB0cmVlRGF0YTogSVRyZWVEYXRhW10gPSBbXTtcblxuICBjb250cm9saWQ6IHN0cmluZyA9IFwiXCI7XG4gIHRyZWVpZDogc3RyaW5nID0gXCJcIjtcblxuXG4gIEBWaWV3Q2hpbGQoXCJuelRyZWVDb21wb25lbnRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG56VHJlZUNvbXBvbmVudDogTnpUcmVlQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIHNlbGVjdGVkS2V5OiBhbnlbXSA9IFtdO1xuICBza2VsZXRvblN0YXR1czogbnVtYmVyID0gMDtcblxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBsZXQgb3JnQ29udHJvbCA9IF8uZ2V0KHRoaXMuZmllbGRDb25maWcsIFwidGVtcGxhdGVPcHRpb25zLmNvbnRyb2xpZFwiKTtcbiAgICBpZiAob3JnQ29udHJvbCAhPSB1bmRlZmluZWQgJiYgb3JnQ29udHJvbCAhPSBudWxsICYmIG9yZ0NvbnRyb2wgIT0gXCJcIikge1xuICAgICAgdGhpcy5jb250cm9saWQgPSBfLmdldCh0aGlzLmZpZWxkQ29uZmlnLCBcInRlbXBsYXRlT3B0aW9ucy5jb250cm9saWRcIik7XG4gICAgfVxuICAgIHRoaXMuZ2V0T3JnRGF0YSgpO1xuICB9XG5cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHsgfVxuXG4gIC8v6I635Y+W57uE57uH5pWw5o2u6ZuGXG4gIGdldE9yZ0RhdGEoKSB7XG4gICAgdGhpcy5kYXRhU2VydmljZS5nZXRTeXNDdHJPcmdUcmVlKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5kYXRhID0gcmVzO1xuICAgICAgaWYgKHRoaXMuZGF0YSAhPSBudWxsICYmIHRoaXMuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYodGhpcy5kYXRhWzBdLmNoaWxkcmVuIT11bmRlZmluZWQpe1xuICAgICAgICAgIHRoaXMuY3VyT3JnSWQgPSB0aGlzLmRhdGFbMF0ua2V5O1xuICAgICAgICAgIHRoaXMudHJlZURhdGEgPSB0aGlzLmRhdGFbMF0uY2hpbGRyZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0VHJlZVNlbGVjdERhdGEoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFRyZWVTZWxlY3REYXRhKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZmllbGRDb25maWcgIT0gbnVsbCAmJlxuICAgICAgdGhpcy5maWVsZENvbmZpZy5tb2RlbCAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuZmllbGRDb25maWcubW9kZWwgIT0gbnVsbCAmJlxuICAgICAgdGhpcy5maWVsZENvbmZpZy5rZXkgIT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLmZpZWxkQ29uZmlnLmtleSAhPSBudWxsICYmXG4gICAgICB0aGlzLmZpZWxkQ29uZmlnLm1vZGVsW3RoaXMuZmllbGRDb25maWcua2V5XSAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuZmllbGRDb25maWcubW9kZWxbdGhpcy5maWVsZENvbmZpZy5rZXldICE9IG51bGxcbiAgICApIHtcbiAgICAgIHRoaXMuc2VsZWN0RGF0YSA9IF8uY2xvbmVEZWVwKFxuICAgICAgICB0aGlzLmZpZWxkQ29uZmlnLm1vZGVsW3RoaXMuZmllbGRDb25maWcua2V5XVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvcmdDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGlmIChpdGVtLmtleSA9PT0gZXZlbnQpIHtcbiAgICAgICAgdGhpcy50cmVlRGF0YSA9IGl0ZW0uY2hpbGRyZW47XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3REYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgdGhpcy5zZXRUcmVlQ2hlY2tlZCh0aGlzLmRhdGEsIGl0ZW0udmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgdHJlZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuZGltZW5zaW9uKSB7XG4gICAgICB0aGlzLmRhdGEuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VHJlZVVuQ2hlY2tlZChpdGVtLmNoaWxkcmVuLCBldmVudC5kZWxldGUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMudHJlZUNoYW5nZUV2ZW50LmVtaXQodGhpcy5zZWxlY3REYXRhKTtcbiAgfVxuXG4gIHNldFRyZWVVbkNoZWNrZWQodHJlZTogSVRyZWVEYXRhW10sIGtleTogc3RyaW5nKSB7XG4gICAgaWYgKHRyZWUgJiYgdHJlZS5sZW5ndGggPiAwKSB7XG4gICAgICB0cmVlLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5rZXkgPT09IGtleSkge1xuICAgICAgICAgIGl0ZW0uY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zZXRUcmVlVW5DaGVja2VkKGl0ZW0uY2hpbGRyZW4sIGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2V0VHJlZUNoZWNrZWQodHJlZTogSVRyZWVEYXRhW10sIGtleTogc3RyaW5nKSB7XG4gICAgaWYgKHRyZWUgJiYgdHJlZS5sZW5ndGggPiAwKSB7XG4gICAgICB0cmVlLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5rZXkgPT09IGtleSkge1xuICAgICAgICAgIGl0ZW0uY2hlY2tlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnNldFRyZWVDaGVja2VkKGl0ZW0uY2hpbGRyZW4sIGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbn1cbiJdfQ==