qms-angular 1.1.50 → 1.1.51

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.
@@ -177,7 +177,7 @@ export class QMSBreadcrumb {
177
177
  QMSBreadcrumb.decorators = [
178
178
  { type: Component, args: [{
179
179
  selector: 'qms-breadcrumb',
180
- template: "<div>\n <div class=\"breadcrumb-container\" *ngIf=\"!isMobileType\">\n <!-- Home -->\n <div qms-breadcrumb-item *ngIf=\"!isOverflow || type=='table'\" [(showTooltip)]=\"homeNode['isOverflow']\">\n <mat-icon *ngIf=\"homeNode?.displayType === itemIconType.name\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\">\n {{ homeNode?.itemIcon }}\n </mat-icon>\n <mat-icon *ngIf=\"homeNode?.displayType === itemIconType.svg\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\" [svgIcon]=\"homeNode.itemIconSvg\">\n </mat-icon>\n <img *ngIf=\"homeNode?.displayType === itemIconType.path\" class=\"mat-icon item-icon\"\n [src]=\"homeNode.itemIconPath\" />\n <img *ngIf=\"homeNode?.displayType === itemIconType.base64\" class=\"mat-icon image-base64 item-icon\"\n [src]=\"getImagePath(homeNode)\" />\n <div class=\"qms-breadcrumb-item-text\" [qms-tool-tip]=\"homeNode['name']\" [showToolTip]=\"homeNode['isOverflow']\"\n #breadcrumbItemText mode=\"dark\" (click)=\"onItemSelect(homeNode)\">\n {{homeNode?.name}}\n </div>\n <mat-icon *ngIf=\"!isOverflow && type !=='table'\">keyboard_arrow_right</mat-icon>\n <span *ngIf=\"itemNodes.length && type=='table'\" qms-breadcrumb-direction-icon>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </span>\n </div>\n\n <!-- Dropdown not table -->\n <div qms-breadcrumb-item *ngIf=\"isOverflow && type!='table'\">\n <button qms-btn-icon color=\"light\" class=\"breadcrumb__dropdown-btn\" [matMenuTriggerFor]=\"bodyMediumMenu\"\n (click)=\"$event.stopPropagation()\">\n <mat-icon svgIcon=\"breadcrumb_dropdown\"></mat-icon>\n </button>\n <mat-menu #bodyMediumMenu=\"matMenu\" yPosition=\"below\" class=\"qms-breadcrumb-menu\">\n <div>\n <div qms-menu-item mat-menu-item disableRipple *ngFor=\"let item of dropdownNodes\"\n (keydown.enter)=\"onKeyPressed($event)\" (click)=\"onItemSelect(item)\">\n <div #menuItemContent qms-expansion-header>\n <div qms-list-header>\n <div qms-line color=\"default-subtitle\">{{item.name}}</div>\n </div>\n </div>\n </div>\n </div>\n </mat-menu>\n\n <span qms-breadcrumb-direction-icon>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </span>\n </div>\n\n <!-- Dropdown table -->\n <div qms-breadcrumb-item *ngIf=\"isOverflow && type=='table' && dropdownNodes.length\">\n <button qms-btn-icon color=\"light\" (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"bodyMediumMenu\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n <mat-menu #bodyMediumMenu=\"matMenu\" yPosition=\"below\" class=\"qms-breadcrumb-menu\">\n <div>\n <div qms-menu-item mat-menu-item disableRipple *ngFor=\"let item of dropdownNodes\"\n (keydown.enter)=\"onKeyPressed($event)\" (click)=\"onItemSelect(item)\">\n <div #menuItemContent qms-expansion-header>\n <div qms-list-header>\n <div qms-line color=\"default-subtitle\">{{item.name}}</div>\n </div>\n </div>\n </div>\n </div>\n </mat-menu>\n\n <span qms-breadcrumb-direction-icon>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </span>\n </div>\n <!-- Item list -->\n <div qms-breadcrumb-item *ngFor=\"let item of itemNodes;let i=index\" [isLastItem]=\"i === itemNodes.length - 1\"\n [(showTooltip)]=\"item.isOverflow\">\n <mat-icon *ngIf=\"item.displayType === itemIconType.name && item.isShow\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\">\n {{ item.itemIcon }}\n </mat-icon>\n <mat-icon *ngIf=\"item.displayType === itemIconType.svg && item.isShow\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\" [svgIcon]=\"item.itemIconSvg\">\n </mat-icon>\n <img *ngIf=\"item.displayType === itemIconType.path && item.isShow\" class=\"mat-icon item-icon\"\n [src]=\"item.itemIconPath\" />\n <img *ngIf=\"item.displayType === itemIconType.base64 && item.isShow\" class=\"mat-icon image-base64 item-icon\"\n [src]=\"getImagePath(item)\" />\n <div class=\"qms-breadcrumb-item-text\" [qms-tool-tip]=\"item.name\" [showToolTip]=\"item.isOverflow\"\n #breadcrumbItemText mode=\"dark\" *ngIf=\"item.isShow\" (click)=\"onItemSelect(item, i == itemNodes.length - 1);\">\n {{item.name}}\n </div>\n <span qms-breadcrumb-direction-icon *ngIf=\"item.isShow && i !== itemNodes.length - 1\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </span>\n </div>\n </div>\n\n <div class=\"breadcrumb-container\" *ngIf=\"isMobileType\">\n <mat-sidenav-container>\n <mat-sidenav #sidenav mode=\"'over'\" class=\"breadcrumb-sidenav\" [fixedInViewport]=\"true\">\n <div class=\"header\">\n <div class=\"header-left\">\n <p>{{LANG.BREADCRUMB}}</p>\n <div class=\"sub\">{{LANG.NAVIGATE_TO}}</div>\n </div>\n <div class=\"header-right\">\n <button qms-btn-text (click)=\"sidenav.close()\">\n {{LANG.QMSCKEDITOR.CLOSE}}\n </button>\n </div>\n </div>\n\n <div class=\"content\">\n <mat-selection-list #shoes [multiple]=\"false\">\n <mat-list-option class=\"qms-list-option\"\n *ngFor=\"let item of sideNavNodes; let first = first; let last = last;\" (click)=\"onItemSelect(item)\">\n <mat-icon *ngIf=\"!first\" mat-list-icon class=\"subdirectory_arrow_right\">subdirectory_arrow_right\n </mat-icon>\n <div class=\"content-text-name\">\n <div class=\"content-text-name-heading\">\n <mat-icon *ngIf=\"item.displayType === itemIconType.name\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\">\n {{ item.itemIcon }}\n </mat-icon>\n <img *ngIf=\"item.displayType === itemIconType.path\" class=\"mat-icon item-icon\"\n [src]=\"item.itemIconPath\" />\n <img *ngIf=\"item.displayType === itemIconType.base64\" class=\"mat-icon image-base64 item-icon\"\n [src]=\"getImagePath(item)\" />\n <span class=\"\">{{item.name}}</span>\n </div>\n <mat-icon class=\"color-gray\" *ngIf=\"last\">done</mat-icon>\n </div>\n </mat-list-option>\n </mat-selection-list>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content>\n <button qms-btn-icon class=\"more_horiz-btn\" color=\"light\" *ngIf=\"sideNavNodes.length\"\n (click)=\"sidenav.toggle()\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n </mat-sidenav-content>\n </mat-sidenav-container>\n <div qms-breadcrumb-item [(showTooltip)]=\"previousNode['isOverflow']\">\n <!-- Home -->\n <span qms-breadcrumb-direction-icon>\n <mat-icon>keyboard_arrow_left</mat-icon>\n </span>\n <mat-icon *ngIf=\"previousNode?.displayType === itemIconType.name\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\">\n {{ previousNode.itemIcon }}\n </mat-icon>\n <mat-icon *ngIf=\"previousNode?.displayType === itemIconType.svg\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\" [svgIcon]=\"previousNode.itemIconSvg\">\n </mat-icon>\n <img *ngIf=\"previousNode?.displayType === itemIconType.path\" class=\"mat-icon item-icon\"\n [src]=\"previousNode.itemIconPath\" />\n <img *ngIf=\"previousNode?.displayType === itemIconType.base64\" class=\"mat-icon image-base64 item-icon\"\n [src]=\"getImagePath(previousNode)\" />\n <div class=\"qms-breadcrumb-item-text\" [qms-tool-tip]=\"previousNode['name']\"\n [showToolTip]=\"previousNode['isOverflow']\" #breadcrumbItemText mode=\"dark\" (click)=\"onItemSelect(previousNode)\">\n {{previousNode.name}}\n </div>\n </div>\n </div>\n</div>",
180
+ template: "<div>\n <div class=\"breadcrumb-container\" *ngIf=\"!isMobileType\">\n <!-- Home -->\n <div qms-breadcrumb-item *ngIf=\"!isOverflow || type=='table'\" [(showTooltip)]=\"homeNode['isOverflow']\">\n <mat-icon *ngIf=\"homeNode?.displayType === itemIconType.name\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\">\n {{ homeNode?.itemIcon }}\n </mat-icon>\n <mat-icon *ngIf=\"homeNode?.displayType === itemIconType.svg\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\" [svgIcon]=\"homeNode.itemIconSvg\">\n </mat-icon>\n <img *ngIf=\"homeNode?.displayType === itemIconType.path\" class=\"mat-icon item-icon\"\n [src]=\"homeNode.itemIconPath\" />\n <img *ngIf=\"homeNode?.displayType === itemIconType.base64\" class=\"mat-icon image-base64 item-icon\"\n [src]=\"getImagePath(homeNode)\" />\n <div class=\"qms-breadcrumb-item-text\" [qms-tool-tip]=\"homeNode['name']\" [showToolTip]=\"homeNode['isOverflow']\"\n #breadcrumbItemText mode=\"dark\" (click)=\"$event.stopPropagation();onItemSelect(homeNode)\">\n {{homeNode?.name}}\n </div>\n <mat-icon *ngIf=\"!isOverflow && type !=='table'\">keyboard_arrow_right</mat-icon>\n <span *ngIf=\"itemNodes.length && type=='table'\" qms-breadcrumb-direction-icon>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </span>\n </div>\n\n <!-- Dropdown not table -->\n <div qms-breadcrumb-item *ngIf=\"isOverflow && type!='table'\">\n <button qms-btn-icon color=\"light\" class=\"breadcrumb__dropdown-btn\" [matMenuTriggerFor]=\"bodyMediumMenu\"\n (click)=\"$event.stopPropagation()\">\n <mat-icon svgIcon=\"breadcrumb_dropdown\"></mat-icon>\n </button>\n <mat-menu #bodyMediumMenu=\"matMenu\" yPosition=\"below\" class=\"qms-breadcrumb-menu\">\n <div>\n <div qms-menu-item mat-menu-item disableRipple *ngFor=\"let item of dropdownNodes\"\n (keydown.enter)=\"onKeyPressed($event)\" (click)=\"onItemSelect(item)\">\n <div #menuItemContent qms-expansion-header>\n <div qms-list-header>\n <div qms-line color=\"default-subtitle\">{{item.name}}</div>\n </div>\n </div>\n </div>\n </div>\n </mat-menu>\n\n <span qms-breadcrumb-direction-icon>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </span>\n </div>\n\n <!-- Dropdown table -->\n <div qms-breadcrumb-item *ngIf=\"isOverflow && type=='table' && dropdownNodes.length\">\n <button qms-btn-icon color=\"light\" (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"bodyMediumMenu\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n <mat-menu #bodyMediumMenu=\"matMenu\" yPosition=\"below\" class=\"qms-breadcrumb-menu\">\n <div>\n <div qms-menu-item mat-menu-item disableRipple *ngFor=\"let item of dropdownNodes\"\n (keydown.enter)=\"onKeyPressed($event)\" (click)=\"onItemSelect(item)\">\n <div #menuItemContent qms-expansion-header>\n <div qms-list-header>\n <div qms-line color=\"default-subtitle\">{{item.name}}</div>\n </div>\n </div>\n </div>\n </div>\n </mat-menu>\n\n <span qms-breadcrumb-direction-icon>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </span>\n </div>\n <!-- Item list -->\n <div qms-breadcrumb-item *ngFor=\"let item of itemNodes;let i=index\" [isLastItem]=\"i === itemNodes.length - 1\"\n [(showTooltip)]=\"item.isOverflow\">\n <mat-icon *ngIf=\"item.displayType === itemIconType.name && item.isShow\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\">\n {{ item.itemIcon }}\n </mat-icon>\n <mat-icon *ngIf=\"item.displayType === itemIconType.svg && item.isShow\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\" [svgIcon]=\"item.itemIconSvg\">\n </mat-icon>\n <img *ngIf=\"item.displayType === itemIconType.path && item.isShow\" class=\"mat-icon item-icon\"\n [src]=\"item.itemIconPath\" />\n <img *ngIf=\"item.displayType === itemIconType.base64 && item.isShow\" class=\"mat-icon image-base64 item-icon\"\n [src]=\"getImagePath(item)\" />\n <div class=\"qms-breadcrumb-item-text\" [qms-tool-tip]=\"item.name\" [showToolTip]=\"item.isOverflow\"\n #breadcrumbItemText mode=\"dark\" *ngIf=\"item.isShow\"\n (click)=\"$event.stopPropagation();onItemSelect(item, i == itemNodes.length - 1);\">\n {{item.name}}\n </div>\n <span qms-breadcrumb-direction-icon *ngIf=\"item.isShow && i !== itemNodes.length - 1\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </span>\n </div>\n </div>\n\n <div class=\"breadcrumb-container\" *ngIf=\"isMobileType\">\n <mat-sidenav-container>\n <mat-sidenav #sidenav mode=\"'over'\" class=\"breadcrumb-sidenav\" [fixedInViewport]=\"true\">\n <div class=\"header\">\n <div class=\"header-left\">\n <p>{{LANG.BREADCRUMB}}</p>\n <div class=\"sub\">{{LANG.NAVIGATE_TO}}</div>\n </div>\n <div class=\"header-right\">\n <button qms-btn-text (click)=\"sidenav.close()\">\n {{LANG.QMSCKEDITOR.CLOSE}}\n </button>\n </div>\n </div>\n\n <div class=\"content\">\n <mat-selection-list #shoes [multiple]=\"false\">\n <mat-list-option class=\"qms-list-option\"\n *ngFor=\"let item of sideNavNodes; let first = first; let last = last;\"\n (click)=\"$event.stopPropagation();onItemSelect(item)\">\n <mat-icon *ngIf=\"!first\" mat-list-icon class=\"subdirectory_arrow_right\">subdirectory_arrow_right\n </mat-icon>\n <div class=\"content-text-name\">\n <div class=\"content-text-name-heading\">\n <mat-icon *ngIf=\"item.displayType === itemIconType.name\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\">\n {{ item.itemIcon }}\n </mat-icon>\n <img *ngIf=\"item.displayType === itemIconType.path\" class=\"mat-icon item-icon\"\n [src]=\"item.itemIconPath\" />\n <img *ngIf=\"item.displayType === itemIconType.base64\" class=\"mat-icon image-base64 item-icon\"\n [src]=\"getImagePath(item)\" />\n <span class=\"\">{{item.name}}</span>\n </div>\n <mat-icon class=\"color-gray\" *ngIf=\"last\">done</mat-icon>\n </div>\n </mat-list-option>\n </mat-selection-list>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content>\n <button qms-btn-icon class=\"more_horiz-btn\" color=\"light\" *ngIf=\"sideNavNodes.length\"\n (click)=\"sidenav.toggle()\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n </mat-sidenav-content>\n </mat-sidenav-container>\n <div qms-breadcrumb-item [(showTooltip)]=\"previousNode['isOverflow']\">\n <!-- Home -->\n <span qms-breadcrumb-direction-icon>\n <mat-icon>keyboard_arrow_left</mat-icon>\n </span>\n <mat-icon *ngIf=\"previousNode?.displayType === itemIconType.name\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\">\n {{ previousNode.itemIcon }}\n </mat-icon>\n <mat-icon *ngIf=\"previousNode?.displayType === itemIconType.svg\"\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\" [svgIcon]=\"previousNode.itemIconSvg\">\n </mat-icon>\n <img *ngIf=\"previousNode?.displayType === itemIconType.path\" class=\"mat-icon item-icon\"\n [src]=\"previousNode.itemIconPath\" />\n <img *ngIf=\"previousNode?.displayType === itemIconType.base64\" class=\"mat-icon image-base64 item-icon\"\n [src]=\"getImagePath(previousNode)\" />\n <div class=\"qms-breadcrumb-item-text\" [qms-tool-tip]=\"previousNode['name']\"\n [showToolTip]=\"previousNode['isOverflow']\" #breadcrumbItemText mode=\"dark\"\n (click)=\"$event.stopPropagation();onItemSelect(previousNode)\">\n {{previousNode.name}}\n </div>\n </div>\n </div>\n</div>",
181
181
  encapsulation: ViewEncapsulation.None,
182
182
  styles: [".breadcrumb-container{display:flex;font-family:Open Sans;font-size:14px;font-weight:600;color:#323232}.breadcrumb-container .qms-breadcrumb-direction-icon,.breadcrumb-container .qms-breadcrumb-item{display:flex;align-items:center;padding:3px 0 2px}.breadcrumb-container .qms-breadcrumb-direction-icon .mat-icon{width:18px;height:18px;font-size:18px;margin-left:.25rem;margin-right:.25rem}.breadcrumb-container .item-icon{margin-right:2px}.breadcrumb-container .qms-breadcrumb-item{cursor:inherit;margin:8px 0}.breadcrumb-container .qms-breadcrumb-item .qms-btn-icon{width:1.5rem;height:1.5rem;line-height:2rem}.breadcrumb-container .qms-breadcrumb-item .qms-breadcrumb-item-overflow{max-width:240px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.breadcrumb-container .qms-breadcrumb-item .breadcrumb__dropdown-btn{width:2rem;height:2rem}.breadcrumb-container .qms-breadcrumb-item .breadcrumb__dropdown-btn svg{display:block}.breadcrumb-container .qms-breadcrumb-last-item{color:rgba(0,0,0,.6);font-weight:400;cursor:not-allowed}.breadcrumb-container .mat-drawer-container{z-index:3;background-color:transparent}.qms-breadcrumb-table .breadcrumb-container .qms-breadcrumb-direction-icon .mat-icon{width:12px;height:12px;font-size:12px;margin-left:.25rem;margin-right:.25rem;color:rgba(0,0,0,.6)}.qms-breadcrumb-table .breadcrumb-container .item-icon{margin-right:1px}.qms-breadcrumb-table .breadcrumb-container .qms-breadcrumb-item .qms-breadcrumb-item-text{font-size:12px;font-weight:400;color:rgba(0,0,0,.6)}.qms-breadcrumb-table .breadcrumb-container .qms-breadcrumb-item .qms-breadcrumb-item-overflow{max-width:240px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qms-breadcrumb__multi-line .breadcrumb-container{flex-wrap:wrap}.qms-breadcrumb-menu .qms-dropdown-menu-item{border:none}.breadcrumb-sidenav{display:flex;align-items:center;justify-content:center;width:100%;background:#fff;z-index:3}.breadcrumb-sidenav .header{font-family:Open Sans;font-style:normal;background-color:var(--background-area);height:71px;display:flex;justify-content:space-between;padding:16px}.breadcrumb-sidenav .header p{font-weight:600;font-size:18px;line-height:25px;color:var(--default-color);margin-bottom:0}.breadcrumb-sidenav .header .sub{font-weight:400;font-size:14px;line-height:22px;color:#5a5a5a}.breadcrumb-sidenav .content{padding:0 16px 16px;height:calc(100vh - 71px);overflow:auto}.breadcrumb-sidenav .content .qms-list-option{height:unset!important}.breadcrumb-sidenav .content .qms-list-option .mat-list-text{padding-right:0!important;padding-left:0!important}.breadcrumb-sidenav .content .qms-list-option .mat-list-item-content{border-bottom:1px solid #e0e0e0;padding:8px}.breadcrumb-sidenav .content-text-name{display:flex;align-items:center;justify-content:space-between}.breadcrumb-sidenav .content-text-name .content-text-name-heading{display:flex;align-items:center;color:var(--default-color)}.breadcrumb-sidenav .content-text-name .content-text-name-heading .item-icon{margin-right:10px;color:var(--tab-border)}.breadcrumb-sidenav .content-text-name .color-gray{color:var(--tab-border)}.more_horiz-btn.qms-btn-icon{width:1.5rem;height:1.5rem;line-height:2rem;margin:8px 0 8px 8px}.subdirectory_arrow_right{color:#0163b2}"]
183
183
  },] }
@@ -199,4 +199,4 @@ QMSBreadcrumb.propDecorators = {
199
199
  onItemClick: [{ type: Output }],
200
200
  breadCrumbNodes: [{ type: ViewChildren, args: [QMSBreadcrumbItemDirective, {},] }]
201
201
  };
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUE0QixZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEwsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVUvRCxNQUFNLE9BQU8sYUFBYTtJQXVCeEIsWUFBb0IsR0FBZSxFQUN6QixZQUE2QixFQUM3QixLQUF3QixFQUN4QixTQUF1QixFQUN4QixLQUE4QjtRQUpuQixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ3pCLGlCQUFZLEdBQVosWUFB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LGdCQUFnQjtnQkFDMUIscWpRQUE4QjtnQkFFOUIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUFsQnFELFVBQVU7WUFDdkQsZUFBZTtZQURBLGlCQUFpQjtZQUVoQyxZQUFZO1lBSVosdUJBQXVCOzs7b0JBZ0I3QixLQUFLO21CQUNMLEtBQUs7c0JBQ0wsS0FBSzs2QkFDTCxLQUFLO3VCQUNMLEtBQUs7K0JBQ0wsS0FBSzswQkFDTCxNQUFNOzhCQUNOLFlBQVksU0FBQywwQkFBMEIsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkcmVuLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBCUkVBRENSVU1CX0RST1BET1dOX0lDT04gfSBmcm9tIFwiLi4vLi4vY29tbW9uL3Ftcy1pY29uLmNvbnN0XCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBJdGVtSWNvblR5cGUgfSBmcm9tIFwiLi4vcmVsYXRlZC9jb21tb24vaXRlbS1pY29uLXR5cGUuZW51bVwiO1xuaW1wb3J0IHsgUU1TQnJlYWRjcnVtYkl0ZW1EaXJlY3RpdmUgfSBmcm9tIFwiLi9icmVhZGNydW1iLWl0ZW0uZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBCcmVhZGNydW1iVHlwZSB9IGZyb20gXCIuL2VudW0vYnJlYWRjcnVtYi10eXBlXCI7XG5pbXBvcnQgeyBEcm9wZG93bkJyZWFkQ3J1bWJOb2RlV2lkdGggfSBmcm9tIFwiLi9lbnVtL2Ryb3Bkb3duLW5vZGUtd2lkdGguZW51bVwiO1xuaW1wb3J0IHsgQnJlYWRjcnVtYk5vZGUgfSBmcm9tIFwiLi9tb2RlbC9icmVhZGNydW1iLW5vZGUubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncW1zLWJyZWFkY3J1bWInLFxuICB0ZW1wbGF0ZVVybDogJ2JyZWFkY3J1bWIuaHRtbCcsXG4gIHN0eWxlVXJsczogWydicmVhZGNydW1iLnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcblxuXG5leHBvcnQgY2xhc3MgUU1TQnJlYWRjcnVtYiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIG5vZGVzOiBCcmVhZGNydW1iTm9kZVtdO1xuICBASW5wdXQoKSB0eXBlOiBCcmVhZGNydW1iVHlwZS5ub3JtYWwgfCBCcmVhZGNydW1iVHlwZS50YWJsZSB8IEJyZWFkY3J1bWJUeXBlLm1vYmlsZSA9IEJyZWFkY3J1bWJUeXBlLm5vcm1hbDtcbiAgQElucHV0KCkgbWF4TGluZTogbnVtYmVyO1xuICBASW5wdXQoKSBudW1EaXNwbGF5SXRlbTogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgb25seUl0ZW06IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWRMYXN0SXRlbTogYm9vbGVhbiA9IHRydWU7XG4gIEBPdXRwdXQoKSBvbkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZHJlbihRTVNCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSwge30pIGJyZWFkQ3J1bWJOb2RlczogUXVlcnlMaXN0PFFNU0JyZWFkY3J1bWJJdGVtRGlyZWN0aXZlPjtcblxuICBpc092ZXJmbG93ID0gZmFsc2U7XG4gIGRyb3Bkb3duTm9kZXM6IEJyZWFkY3J1bWJOb2RlW10gPSBbXTtcbiAgaG9tZU5vZGU6IEJyZWFkY3J1bWJOb2RlID0gbmV3IEJyZWFkY3J1bWJOb2RlKCk7XG4gIHByZXZpb3VzTm9kZTogQnJlYWRjcnVtYk5vZGUgPSBuZXcgQnJlYWRjcnVtYk5vZGUoKTtcbiAgaXRlbU5vZGVzOiBCcmVhZGNydW1iTm9kZVtdO1xuICBzaWRlTmF2Tm9kZXM6IEJyZWFkY3J1bWJOb2RlW10gPSBbXTtcbiAgaXRlbVNwYWNlOiBudW1iZXIgPSBEcm9wZG93bkJyZWFkQ3J1bWJOb2RlV2lkdGguTk9STUFMOyAvLyB3aWR0aCBvZiBkcm9wZG93biBub2RlIGluIG5vcm1hbCB2aWV3XG4gIGl0ZW1JY29uVHlwZTtcbiAgaXNNb2JpbGVUeXBlOiBib29sZWFuID0gZmFsc2U7XG4gIExBTkc6IGFueTtcblxuICBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZTogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHVibGljIHRyYW5zOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSkge1xuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnYnJlYWRjcnVtYl9kcm9wZG93bicsIHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChCUkVBRENSVU1CX0RST1BET1dOX0lDT04pKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5ub2RlcyAmJiB0aGlzLmJyZWFkQ3J1bWJOb2RlcyAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLm5vZGVzLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXMubm9kZXMucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIHRoaXMubm9kZXMgPSBbLi4uY2hhbmdlcy5ub2Rlcy5jdXJyZW50VmFsdWVdO1xuICAgICAgdGhpcy5pbml0QnJlYWRDcnVtYigpO1xuICAgICAgdGhpcy5idWlsZEJyZWFkY3J1bWIoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRyYW5zLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFucy5nZXRPYmplY3RMYW5nKHJlcyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmlzTW9iaWxlVHlwZSA9ICh0aGlzLnR5cGUgPT0gQnJlYWRjcnVtYlR5cGUubW9iaWxlKTtcbiAgICB0aGlzLml0ZW1JY29uVHlwZSA9IEl0ZW1JY29uVHlwZTtcbiAgICB0aGlzLmluaXRCcmVhZENydW1iKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnVpbGRCcmVhZGNydW1iKCk7XG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBjaGVja092ZXJmbG93KHdpZHRoOiBudW1iZXIpIHtcblxuICAgIGNvbnN0IG5vZGVXaWR0aHMgPSB0aGlzLmJyZWFkQ3J1bWJOb2Rlcy5tYXAoeCA9PiB4LmVsZS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKTtcbiAgICBsZXQgY3VycmVudFdpZHRoID0gMDtcbiAgICBub2RlV2lkdGhzLmZvckVhY2god2lkdGggPT4ge1xuICAgICAgY3VycmVudFdpZHRoICs9IHdpZHRoO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pc092ZXJmbG93ID0gd2lkdGggPCBjdXJyZW50V2lkdGggJiYgKHRoaXMuaXRlbU5vZGVzLmxlbmd0aCA+PSB0aGlzLm51bURpc3BsYXlJdGVtKTtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIGlmICh0aGlzLmlzT3ZlcmZsb3cpIHtcbiAgICAgIGxldCBzY3JlZW5XaWR0aCA9IHdpZHRoO1xuICAgICAgaWYgKHRoaXMudHlwZSAhPT0gJ3RhYmxlJykge1xuICAgICAgICB0aGlzLmRyb3Bkb3duTm9kZXMucHVzaCh0aGlzLmhvbWVOb2RlKTtcbiAgICAgICAgY3VycmVudFdpZHRoIC09IG5vZGVXaWR0aHNbMF07XG4gICAgICAgIGN1cnJlbnRXaWR0aCArPSB0aGlzLml0ZW1TcGFjZTtcbiAgICAgICAgc2NyZWVuV2lkdGggLT0gdGhpcy5pdGVtU3BhY2U7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgY3VycmVudFdpZHRoICs9IHRoaXMuaXRlbVNwYWNlO1xuICAgICAgICBzY3JlZW5XaWR0aCAtPSBub2RlV2lkdGhzWzBdO1xuICAgICAgICBzY3JlZW5XaWR0aCAtPSB0aGlzLml0ZW1TcGFjZTtcbiAgICAgIH1cbiAgICAgIG5vZGVXaWR0aHMuc2hpZnQoKTtcbiAgICAgIG5vZGVXaWR0aHMuZm9yRWFjaCgoZWxlV2lkdGgsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChjdXJyZW50V2lkdGggPiBzY3JlZW5XaWR0aCkge1xuICAgICAgICAgIHRoaXMuaXRlbU5vZGVzW2luZGV4XS5pc1Nob3cgPSBpbmRleCA9PSBub2RlV2lkdGhzLmxlbmd0aCAtIDEgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgICAgdGhpcy5pdGVtTm9kZXNbaW5kZXhdLmlzT3ZlcmZsb3cgPSBpbmRleCA9PSBub2RlV2lkdGhzLmxlbmd0aCAtIDEgPyBmYWxzZSA6IHRoaXMuaXRlbU5vZGVzW2luZGV4XS5pc092ZXJmbG93O1xuICAgICAgICAgIHRoaXMuZHJvcGRvd25Ob2Rlcy5wdXNoKHRoaXMuaXRlbU5vZGVzW2luZGV4XSk7XG4gICAgICAgICAgY3VycmVudFdpZHRoIC09IChlbGVXaWR0aCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzID0gdGhpcy5kcm9wZG93bk5vZGVzLnJldmVyc2UoKTtcbiAgICB9XG5cbiAgfVxuXG4gIGluaXRCcmVhZENydW1iKCkge1xuICAgIGlmICh0aGlzLm5vZGVzICYmIHRoaXMubm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGVsZSA9PiB7XG4gICAgICAgIGVsZS5pc092ZXJmbG93ID0gZWxlLmlzT3ZlcmZsb3cgPyBlbGUuaXNPdmVyZmxvdyA6IGZhbHNlO1xuICAgICAgICBlbGUuaXNTaG93ID0gdHJ1ZTtcbiAgICAgICAgZWxlLmRpc3BsYXlUeXBlID0gdGhpcy5nZXRJdGVtSWNvblR5cGUoZWxlKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMudHlwZSAhPT0gJ21vYmlsZScpIHtcbiAgICAgICAgdGhpcy5ob21lTm9kZSA9IHRoaXMubm9kZXNbMF07XG4gICAgICAgIHRoaXMuaXRlbU5vZGVzID0gdGhpcy5ub2Rlcy5zbGljZSgxKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnByZXZpb3VzTm9kZSA9IHRoaXMubm9kZXNbdGhpcy5ub2Rlcy5sZW5ndGggPj0gMiA/IHRoaXMubm9kZXMubGVuZ3RoIC0gMiA6IDBdO1xuICAgICAgICB0aGlzLnNpZGVOYXZOb2RlcyA9IFtdO1xuICAgICAgICB0aGlzLnNpZGVOYXZOb2RlcyA9IHRoaXMubm9kZXMubGVuZ3RoID49IDIgPyBbLi4udGhpcy5ub2Rlc10gOiBbXTtcblxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd0YWJsZScpIHtcbiAgICAgIHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncW1zLWJyZWFkY3J1bWItdGFibGUnKTtcbiAgICAgIHRoaXMuaXRlbVNwYWNlID0gRHJvcGRvd25CcmVhZENydW1iTm9kZVdpZHRoLlRBQkxFOyAgLy8gd2lkdGggb2YgZHJvcGRvd24gbm9kZSBpbiB0YWJsZSB2aWV3XG4gICAgfVxuICAgIGlmICh0aGlzLm1heExpbmUgJiYgdGhpcy5tYXhMaW5lID4gMSkge1xuICAgICAgdGhpcy5lbGUubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdxbXMtYnJlYWRjcnVtYl9fbXVsdGktbGluZScpO1xuICAgIH1cbiAgfVxuXG4gIGJ1aWxkQnJlYWRjcnVtYigpIHtcbiAgICBpZiAoIXRoaXMuaXNNb2JpbGVUeXBlICYmIHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25Ob2RlcyA9IFtdO1xuICAgICAgaWYgKCF0aGlzLm1heExpbmUgfHwgdGhpcy5tYXhMaW5lIDwgMikge1xuICAgICAgICB0aGlzLmNoZWNrT3ZlcmZsb3codGhpcy5lbGUubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKiAxLjcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vc2hvdyBudW1iZXIgSXRlbXMgYWZ0ZXIgMyBkb3QgaWNvblxuICAgIGlmICgrdGhpcy5udW1EaXNwbGF5SXRlbSAmJiArdGhpcy5udW1EaXNwbGF5SXRlbSA+PSAyICYmIHRoaXMuaXRlbU5vZGVzPy5sZW5ndGggPj0gMikge1xuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzID0gW107XG4gICAgICB0aGlzLmRyb3Bkb3duTm9kZXMgPSB0aGlzLml0ZW1Ob2Rlcy5zbGljZSgwLCAtdGhpcy5udW1EaXNwbGF5SXRlbSkucmV2ZXJzZSgpO1xuICAgICAgdGhpcy5pdGVtTm9kZXMgPSBbLi4uW10sIC4uLnRoaXMuaXRlbU5vZGVzLnNsaWNlKC10aGlzLm51bURpc3BsYXlJdGVtKV07XG4gICAgICBpZiAodGhpcy5kcm9wZG93bk5vZGVzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmlzT3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIC8vanVzdCBzaG93IDEgaXRlbSBmb3IgbW9iaWxlXG4gICAgaWYgKHRoaXMub25seUl0ZW0pIHtcbiAgICAgIHRoaXMuaXNPdmVyZmxvdyA9IHRydWU7XG4gICAgICB0aGlzLmRyb3Bkb3duTm9kZXMgPSBbXTtcbiAgICAgIGxldCBpdGVtTm9kZXMgPSBbLi4udGhpcy5pdGVtTm9kZXNdO1xuICAgICAgbGV0IGxhc3RJdGVtID0gaXRlbU5vZGVzLnBvcCgpO1xuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzID0gWy4uLml0ZW1Ob2Rlc10ucmV2ZXJzZSgpO1xuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzLnB1c2godGhpcy5ob21lTm9kZSk7XG4gICAgICB0aGlzLml0ZW1Ob2RlcyA9IFtdO1xuICAgICAgdGhpcy5pdGVtTm9kZXMgPSBbbGFzdEl0ZW1dO1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0SXRlbUljb25UeXBlKHRyZWVDb25maWc6IEJyZWFkY3J1bWJOb2RlKSB7XG4gICAgaWYgKHRyZWVDb25maWcuaXRlbUljb24pIHJldHVybiBJdGVtSWNvblR5cGUubmFtZTtcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvblBhdGgpIHJldHVybiBJdGVtSWNvblR5cGUucGF0aDtcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvbkJhc2U2NCkgcmV0dXJuIEl0ZW1JY29uVHlwZS5iYXNlNjQ7XG4gICAgaWYgKHRyZWVDb25maWcuaXRlbUljb25TdmcpIHJldHVybiBJdGVtSWNvblR5cGUuc3ZnO1xuICAgIHJldHVybiBJdGVtSWNvblR5cGUubm9uZTtcbiAgfVxuXG4gIGdldEltYWdlUGF0aChub2RlOiBCcmVhZGNydW1iTm9kZSkge1xuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwobm9kZS5pdGVtSWNvbkJhc2U2NCkgYXMgc3RyaW5nO1xuICB9XG5cbiAgb25LZXlQcmVzc2VkKGV2ZW50KSB7XG4gICAgWy4uLmV2ZW50LnRhcmdldC5jaGlsZHJlbl0uZm9yRWFjaCh4ID0+IHguY2xpY2soKSk7XG4gIH1cblxuICBvbkl0ZW1TZWxlY3QoaXRlbTogQnJlYWRjcnVtYk5vZGUsIGlzTGFzdEl0ZW0/OiBib29sZWFuKSB7XG4gICAgaWYgKGlzTGFzdEl0ZW0gJiYgdGhpcy5kaXNhYmxlZExhc3RJdGVtKSByZXR1cm47XG4gICAgaWYgKHRoaXMub25JdGVtQ2xpY2spIHtcbiAgICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdChpdGVtKTtcbiAgICB9XG4gIH1cblxufVxuIl19
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUE0QixZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEwsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVUvRCxNQUFNLE9BQU8sYUFBYTtJQXVCeEIsWUFBb0IsR0FBZSxFQUN6QixZQUE2QixFQUM3QixLQUF3QixFQUN4QixTQUF1QixFQUN4QixLQUE4QjtRQUpuQixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ3pCLGlCQUFZLEdBQVosWUFB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LGdCQUFnQjtnQkFDMUIsMHJRQUE4QjtnQkFFOUIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUFsQnFELFVBQVU7WUFDdkQsZUFBZTtZQURBLGlCQUFpQjtZQUVoQyxZQUFZO1lBSVosdUJBQXVCOzs7b0JBZ0I3QixLQUFLO21CQUNMLEtBQUs7c0JBQ0wsS0FBSzs2QkFDTCxLQUFLO3VCQUNMLEtBQUs7K0JBQ0wsS0FBSzswQkFDTCxNQUFNOzhCQUNOLFlBQVksU0FBQywwQkFBMEIsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkcmVuLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBCUkVBRENSVU1CX0RST1BET1dOX0lDT04gfSBmcm9tIFwiLi4vLi4vY29tbW9uL3Ftcy1pY29uLmNvbnN0XCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBJdGVtSWNvblR5cGUgfSBmcm9tIFwiLi4vcmVsYXRlZC9jb21tb24vaXRlbS1pY29uLXR5cGUuZW51bVwiO1xuaW1wb3J0IHsgUU1TQnJlYWRjcnVtYkl0ZW1EaXJlY3RpdmUgfSBmcm9tIFwiLi9icmVhZGNydW1iLWl0ZW0uZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBCcmVhZGNydW1iVHlwZSB9IGZyb20gXCIuL2VudW0vYnJlYWRjcnVtYi10eXBlXCI7XG5pbXBvcnQgeyBEcm9wZG93bkJyZWFkQ3J1bWJOb2RlV2lkdGggfSBmcm9tIFwiLi9lbnVtL2Ryb3Bkb3duLW5vZGUtd2lkdGguZW51bVwiO1xuaW1wb3J0IHsgQnJlYWRjcnVtYk5vZGUgfSBmcm9tIFwiLi9tb2RlbC9icmVhZGNydW1iLW5vZGUubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncW1zLWJyZWFkY3J1bWInLFxuICB0ZW1wbGF0ZVVybDogJ2JyZWFkY3J1bWIuaHRtbCcsXG4gIHN0eWxlVXJsczogWydicmVhZGNydW1iLnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcblxuXG5leHBvcnQgY2xhc3MgUU1TQnJlYWRjcnVtYiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIG5vZGVzOiBCcmVhZGNydW1iTm9kZVtdO1xuICBASW5wdXQoKSB0eXBlOiBCcmVhZGNydW1iVHlwZS5ub3JtYWwgfCBCcmVhZGNydW1iVHlwZS50YWJsZSB8IEJyZWFkY3J1bWJUeXBlLm1vYmlsZSA9IEJyZWFkY3J1bWJUeXBlLm5vcm1hbDtcbiAgQElucHV0KCkgbWF4TGluZTogbnVtYmVyO1xuICBASW5wdXQoKSBudW1EaXNwbGF5SXRlbTogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgb25seUl0ZW06IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWRMYXN0SXRlbTogYm9vbGVhbiA9IHRydWU7XG4gIEBPdXRwdXQoKSBvbkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZHJlbihRTVNCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSwge30pIGJyZWFkQ3J1bWJOb2RlczogUXVlcnlMaXN0PFFNU0JyZWFkY3J1bWJJdGVtRGlyZWN0aXZlPjtcblxuICBpc092ZXJmbG93ID0gZmFsc2U7XG4gIGRyb3Bkb3duTm9kZXM6IEJyZWFkY3J1bWJOb2RlW10gPSBbXTtcbiAgaG9tZU5vZGU6IEJyZWFkY3J1bWJOb2RlID0gbmV3IEJyZWFkY3J1bWJOb2RlKCk7XG4gIHByZXZpb3VzTm9kZTogQnJlYWRjcnVtYk5vZGUgPSBuZXcgQnJlYWRjcnVtYk5vZGUoKTtcbiAgaXRlbU5vZGVzOiBCcmVhZGNydW1iTm9kZVtdO1xuICBzaWRlTmF2Tm9kZXM6IEJyZWFkY3J1bWJOb2RlW10gPSBbXTtcbiAgaXRlbVNwYWNlOiBudW1iZXIgPSBEcm9wZG93bkJyZWFkQ3J1bWJOb2RlV2lkdGguTk9STUFMOyAvLyB3aWR0aCBvZiBkcm9wZG93biBub2RlIGluIG5vcm1hbCB2aWV3XG4gIGl0ZW1JY29uVHlwZTtcbiAgaXNNb2JpbGVUeXBlOiBib29sZWFuID0gZmFsc2U7XG4gIExBTkc6IGFueTtcblxuICBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZTogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHVibGljIHRyYW5zOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSkge1xuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnYnJlYWRjcnVtYl9kcm9wZG93bicsIHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChCUkVBRENSVU1CX0RST1BET1dOX0lDT04pKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5ub2RlcyAmJiB0aGlzLmJyZWFkQ3J1bWJOb2RlcyAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLm5vZGVzLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXMubm9kZXMucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIHRoaXMubm9kZXMgPSBbLi4uY2hhbmdlcy5ub2Rlcy5jdXJyZW50VmFsdWVdO1xuICAgICAgdGhpcy5pbml0QnJlYWRDcnVtYigpO1xuICAgICAgdGhpcy5idWlsZEJyZWFkY3J1bWIoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRyYW5zLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFucy5nZXRPYmplY3RMYW5nKHJlcyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmlzTW9iaWxlVHlwZSA9ICh0aGlzLnR5cGUgPT0gQnJlYWRjcnVtYlR5cGUubW9iaWxlKTtcbiAgICB0aGlzLml0ZW1JY29uVHlwZSA9IEl0ZW1JY29uVHlwZTtcbiAgICB0aGlzLmluaXRCcmVhZENydW1iKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnVpbGRCcmVhZGNydW1iKCk7XG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBjaGVja092ZXJmbG93KHdpZHRoOiBudW1iZXIpIHtcblxuICAgIGNvbnN0IG5vZGVXaWR0aHMgPSB0aGlzLmJyZWFkQ3J1bWJOb2Rlcy5tYXAoeCA9PiB4LmVsZS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKTtcbiAgICBsZXQgY3VycmVudFdpZHRoID0gMDtcbiAgICBub2RlV2lkdGhzLmZvckVhY2god2lkdGggPT4ge1xuICAgICAgY3VycmVudFdpZHRoICs9IHdpZHRoO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pc092ZXJmbG93ID0gd2lkdGggPCBjdXJyZW50V2lkdGggJiYgKHRoaXMuaXRlbU5vZGVzLmxlbmd0aCA+PSB0aGlzLm51bURpc3BsYXlJdGVtKTtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIGlmICh0aGlzLmlzT3ZlcmZsb3cpIHtcbiAgICAgIGxldCBzY3JlZW5XaWR0aCA9IHdpZHRoO1xuICAgICAgaWYgKHRoaXMudHlwZSAhPT0gJ3RhYmxlJykge1xuICAgICAgICB0aGlzLmRyb3Bkb3duTm9kZXMucHVzaCh0aGlzLmhvbWVOb2RlKTtcbiAgICAgICAgY3VycmVudFdpZHRoIC09IG5vZGVXaWR0aHNbMF07XG4gICAgICAgIGN1cnJlbnRXaWR0aCArPSB0aGlzLml0ZW1TcGFjZTtcbiAgICAgICAgc2NyZWVuV2lkdGggLT0gdGhpcy5pdGVtU3BhY2U7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgY3VycmVudFdpZHRoICs9IHRoaXMuaXRlbVNwYWNlO1xuICAgICAgICBzY3JlZW5XaWR0aCAtPSBub2RlV2lkdGhzWzBdO1xuICAgICAgICBzY3JlZW5XaWR0aCAtPSB0aGlzLml0ZW1TcGFjZTtcbiAgICAgIH1cbiAgICAgIG5vZGVXaWR0aHMuc2hpZnQoKTtcbiAgICAgIG5vZGVXaWR0aHMuZm9yRWFjaCgoZWxlV2lkdGgsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChjdXJyZW50V2lkdGggPiBzY3JlZW5XaWR0aCkge1xuICAgICAgICAgIHRoaXMuaXRlbU5vZGVzW2luZGV4XS5pc1Nob3cgPSBpbmRleCA9PSBub2RlV2lkdGhzLmxlbmd0aCAtIDEgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgICAgdGhpcy5pdGVtTm9kZXNbaW5kZXhdLmlzT3ZlcmZsb3cgPSBpbmRleCA9PSBub2RlV2lkdGhzLmxlbmd0aCAtIDEgPyBmYWxzZSA6IHRoaXMuaXRlbU5vZGVzW2luZGV4XS5pc092ZXJmbG93O1xuICAgICAgICAgIHRoaXMuZHJvcGRvd25Ob2Rlcy5wdXNoKHRoaXMuaXRlbU5vZGVzW2luZGV4XSk7XG4gICAgICAgICAgY3VycmVudFdpZHRoIC09IChlbGVXaWR0aCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzID0gdGhpcy5kcm9wZG93bk5vZGVzLnJldmVyc2UoKTtcbiAgICB9XG5cbiAgfVxuXG4gIGluaXRCcmVhZENydW1iKCkge1xuICAgIGlmICh0aGlzLm5vZGVzICYmIHRoaXMubm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGVsZSA9PiB7XG4gICAgICAgIGVsZS5pc092ZXJmbG93ID0gZWxlLmlzT3ZlcmZsb3cgPyBlbGUuaXNPdmVyZmxvdyA6IGZhbHNlO1xuICAgICAgICBlbGUuaXNTaG93ID0gdHJ1ZTtcbiAgICAgICAgZWxlLmRpc3BsYXlUeXBlID0gdGhpcy5nZXRJdGVtSWNvblR5cGUoZWxlKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMudHlwZSAhPT0gJ21vYmlsZScpIHtcbiAgICAgICAgdGhpcy5ob21lTm9kZSA9IHRoaXMubm9kZXNbMF07XG4gICAgICAgIHRoaXMuaXRlbU5vZGVzID0gdGhpcy5ub2Rlcy5zbGljZSgxKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnByZXZpb3VzTm9kZSA9IHRoaXMubm9kZXNbdGhpcy5ub2Rlcy5sZW5ndGggPj0gMiA/IHRoaXMubm9kZXMubGVuZ3RoIC0gMiA6IDBdO1xuICAgICAgICB0aGlzLnNpZGVOYXZOb2RlcyA9IFtdO1xuICAgICAgICB0aGlzLnNpZGVOYXZOb2RlcyA9IHRoaXMubm9kZXMubGVuZ3RoID49IDIgPyBbLi4udGhpcy5ub2Rlc10gOiBbXTtcblxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd0YWJsZScpIHtcbiAgICAgIHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncW1zLWJyZWFkY3J1bWItdGFibGUnKTtcbiAgICAgIHRoaXMuaXRlbVNwYWNlID0gRHJvcGRvd25CcmVhZENydW1iTm9kZVdpZHRoLlRBQkxFOyAgLy8gd2lkdGggb2YgZHJvcGRvd24gbm9kZSBpbiB0YWJsZSB2aWV3XG4gICAgfVxuICAgIGlmICh0aGlzLm1heExpbmUgJiYgdGhpcy5tYXhMaW5lID4gMSkge1xuICAgICAgdGhpcy5lbGUubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdxbXMtYnJlYWRjcnVtYl9fbXVsdGktbGluZScpO1xuICAgIH1cbiAgfVxuXG4gIGJ1aWxkQnJlYWRjcnVtYigpIHtcbiAgICBpZiAoIXRoaXMuaXNNb2JpbGVUeXBlICYmIHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25Ob2RlcyA9IFtdO1xuICAgICAgaWYgKCF0aGlzLm1heExpbmUgfHwgdGhpcy5tYXhMaW5lIDwgMikge1xuICAgICAgICB0aGlzLmNoZWNrT3ZlcmZsb3codGhpcy5lbGUubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKiAxLjcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vc2hvdyBudW1iZXIgSXRlbXMgYWZ0ZXIgMyBkb3QgaWNvblxuICAgIGlmICgrdGhpcy5udW1EaXNwbGF5SXRlbSAmJiArdGhpcy5udW1EaXNwbGF5SXRlbSA+PSAyICYmIHRoaXMuaXRlbU5vZGVzPy5sZW5ndGggPj0gMikge1xuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzID0gW107XG4gICAgICB0aGlzLmRyb3Bkb3duTm9kZXMgPSB0aGlzLml0ZW1Ob2Rlcy5zbGljZSgwLCAtdGhpcy5udW1EaXNwbGF5SXRlbSkucmV2ZXJzZSgpO1xuICAgICAgdGhpcy5pdGVtTm9kZXMgPSBbLi4uW10sIC4uLnRoaXMuaXRlbU5vZGVzLnNsaWNlKC10aGlzLm51bURpc3BsYXlJdGVtKV07XG4gICAgICBpZiAodGhpcy5kcm9wZG93bk5vZGVzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmlzT3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIC8vanVzdCBzaG93IDEgaXRlbSBmb3IgbW9iaWxlXG4gICAgaWYgKHRoaXMub25seUl0ZW0pIHtcbiAgICAgIHRoaXMuaXNPdmVyZmxvdyA9IHRydWU7XG4gICAgICB0aGlzLmRyb3Bkb3duTm9kZXMgPSBbXTtcbiAgICAgIGxldCBpdGVtTm9kZXMgPSBbLi4udGhpcy5pdGVtTm9kZXNdO1xuICAgICAgbGV0IGxhc3RJdGVtID0gaXRlbU5vZGVzLnBvcCgpO1xuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzID0gWy4uLml0ZW1Ob2Rlc10ucmV2ZXJzZSgpO1xuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzLnB1c2godGhpcy5ob21lTm9kZSk7XG4gICAgICB0aGlzLml0ZW1Ob2RlcyA9IFtdO1xuICAgICAgdGhpcy5pdGVtTm9kZXMgPSBbbGFzdEl0ZW1dO1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0SXRlbUljb25UeXBlKHRyZWVDb25maWc6IEJyZWFkY3J1bWJOb2RlKSB7XG4gICAgaWYgKHRyZWVDb25maWcuaXRlbUljb24pIHJldHVybiBJdGVtSWNvblR5cGUubmFtZTtcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvblBhdGgpIHJldHVybiBJdGVtSWNvblR5cGUucGF0aDtcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvbkJhc2U2NCkgcmV0dXJuIEl0ZW1JY29uVHlwZS5iYXNlNjQ7XG4gICAgaWYgKHRyZWVDb25maWcuaXRlbUljb25TdmcpIHJldHVybiBJdGVtSWNvblR5cGUuc3ZnO1xuICAgIHJldHVybiBJdGVtSWNvblR5cGUubm9uZTtcbiAgfVxuXG4gIGdldEltYWdlUGF0aChub2RlOiBCcmVhZGNydW1iTm9kZSkge1xuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwobm9kZS5pdGVtSWNvbkJhc2U2NCkgYXMgc3RyaW5nO1xuICB9XG5cbiAgb25LZXlQcmVzc2VkKGV2ZW50KSB7XG4gICAgWy4uLmV2ZW50LnRhcmdldC5jaGlsZHJlbl0uZm9yRWFjaCh4ID0+IHguY2xpY2soKSk7XG4gIH1cblxuICBvbkl0ZW1TZWxlY3QoaXRlbTogQnJlYWRjcnVtYk5vZGUsIGlzTGFzdEl0ZW0/OiBib29sZWFuKSB7XG4gICAgaWYgKGlzTGFzdEl0ZW0gJiYgdGhpcy5kaXNhYmxlZExhc3RJdGVtKSByZXR1cm47XG4gICAgaWYgKHRoaXMub25JdGVtQ2xpY2spIHtcbiAgICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdChpdGVtKTtcbiAgICB9XG4gIH1cblxufVxuIl19
@@ -1,10 +1,10 @@
1
1
  export class FlatNodeNavDrawer {
2
2
  }
3
3
  export class TreeModelNavDrawer {
4
- constructor(id, parentId, name) {
4
+ constructor(id, parentId, name, isFavorite) {
5
5
  this.id = id;
6
6
  this.parentId = parentId;
7
7
  this.name = name;
8
8
  }
9
9
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLW5hdi1kcmF3ZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcW1zLW5hdi1kcmF3ZXIvbW9kZWxzL3Ftcy1uYXYtZHJhd2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxpQkFBaUI7Q0FTN0I7QUFpQkQsTUFBTSxPQUFPLGtCQUFrQjtJQWE3QixZQUFZLEVBQVUsRUFBRSxRQUFnQixFQUFFLElBQVk7UUFDcEQsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRmxhdE5vZGVOYXZEcmF3ZXIge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGxldmVsOiBudW1iZXI7XG4gIGV4cGFuZGFibGU6IGJvb2xlYW47XG4gIHBhcmVudElkOiBzdHJpbmc7XG4gIGlzRmlsZTogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBtYXJrZWRHZXRDaGlsZHJlbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZU5vZGVOYXZEcmF3ZXIge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBhcmVudElkOiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogVHJlZU5vZGVOYXZEcmF3ZXJbXTtcbiAgaXRlbUljb24/OiBzdHJpbmc7XG4gIGl0ZW1JY29uU3ZnPzogc3RyaW5nO1xuICBpdGVtTWF0SWNvbj86IHN0cmluZztcbiAgaXNGaWxlOiBib29sZWFuO1xuICBjaGlsZENvdW50PzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG1hcmtlZEdldENoaWxkcmVuPzogYm9vbGVhbjtcbn1cblxuXG5leHBvcnQgY2xhc3MgVHJlZU1vZGVsTmF2RHJhd2VyIGltcGxlbWVudHMgVHJlZU5vZGVOYXZEcmF3ZXIge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBhcmVudElkOiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogVHJlZU5vZGVOYXZEcmF3ZXJbXTtcbiAgaXRlbUljb24/OiBzdHJpbmc7XG4gIGl0ZW1JY29uU3ZnPzogc3RyaW5nO1xuICBpdGVtTWF0SWNvbj86IHN0cmluZztcbiAgaXNGaWxlOiBib29sZWFuO1xuICBjaGlsZENvdW50PzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG1hcmtlZEdldENoaWxkcmVuPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBwYXJlbnRJZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5wYXJlbnRJZCA9IHBhcmVudElkO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cbn0iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLW5hdi1kcmF3ZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcW1zLW5hdi1kcmF3ZXIvbW9kZWxzL3Ftcy1uYXYtZHJhd2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxpQkFBaUI7Q0FVN0I7QUFrQkQsTUFBTSxPQUFPLGtCQUFrQjtJQWM3QixZQUFZLEVBQVUsRUFBRSxRQUFnQixFQUFFLElBQVksRUFBRSxVQUFtQjtRQUN6RSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGbGF0Tm9kZU5hdkRyYXdlciB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbGV2ZWw6IG51bWJlcjtcbiAgZXhwYW5kYWJsZTogYm9vbGVhbjtcbiAgcGFyZW50SWQ6IHN0cmluZztcbiAgaXNGaWxlOiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG1hcmtlZEdldENoaWxkcmVuPzogYm9vbGVhbjtcbiAgaXNGYXZvcml0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZU5vZGVOYXZEcmF3ZXIge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBhcmVudElkOiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogVHJlZU5vZGVOYXZEcmF3ZXJbXTtcbiAgaXRlbUljb24/OiBzdHJpbmc7XG4gIGl0ZW1JY29uU3ZnPzogc3RyaW5nO1xuICBpdGVtTWF0SWNvbj86IHN0cmluZztcbiAgaXNGaWxlOiBib29sZWFuO1xuICBjaGlsZENvdW50PzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG1hcmtlZEdldENoaWxkcmVuPzogYm9vbGVhbjtcbiAgaXNGYXZvcml0ZT86IGJvb2xlYW47XG59XG5cblxuZXhwb3J0IGNsYXNzIFRyZWVNb2RlbE5hdkRyYXdlciBpbXBsZW1lbnRzIFRyZWVOb2RlTmF2RHJhd2VyIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBwYXJlbnRJZDogc3RyaW5nO1xuICBjaGlsZHJlbj86IFRyZWVOb2RlTmF2RHJhd2VyW107XG4gIGl0ZW1JY29uPzogc3RyaW5nO1xuICBpdGVtSWNvblN2Zz86IHN0cmluZztcbiAgaXRlbU1hdEljb24/OiBzdHJpbmc7XG4gIGlzRmlsZTogYm9vbGVhbjtcbiAgY2hpbGRDb3VudD86IG51bWJlcjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBtYXJrZWRHZXRDaGlsZHJlbj86IGJvb2xlYW47XG4gIGlzRmF2b3JpdGU/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIHBhcmVudElkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgaXNGYXZvcml0ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLnBhcmVudElkID0gcGFyZW50SWQ7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxufSJdfQ==
@@ -1,18 +1,21 @@
1
1
  import { FlatTreeControl } from '@angular/cdk/tree';
2
- import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, IterableDiffers, Output } from '@angular/core';
3
3
  import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';
4
4
  import { Subject } from 'rxjs';
5
5
  import { takeUntil } from 'rxjs/operators';
6
6
  import { QMSTreeGlobalService } from '../../services/qms-tree-global.service';
7
7
  export class QMSNavDrawerComponent {
8
- constructor(qmsNavDrawerService, cdRef) {
8
+ constructor(qmsNavDrawerService, cdRef, iterableDiffers) {
9
9
  this.qmsNavDrawerService = qmsNavDrawerService;
10
10
  this.cdRef = cdRef;
11
+ this.iterableDiffers = iterableDiffers;
11
12
  this.ngUnsubscribe = new Subject();
12
13
  this.treeData = [];
13
14
  this.openNodes = [];
14
- this.nodeExpand = new EventEmitter();
15
+ this.nodeExpandEvent = new EventEmitter();
15
16
  this.onClickNodeEvent = new EventEmitter();
17
+ this.updateFavoriteEvent = new EventEmitter();
18
+ this.addLocationEvent = new EventEmitter();
16
19
  this.treeControl = new FlatTreeControl(node => node.level, node => node.expandable);
17
20
  this.treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children);
18
21
  this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
@@ -21,7 +24,7 @@ export class QMSNavDrawerComponent {
21
24
  empty: '00000000-0000-0000-0000-000000000000'
22
25
  };
23
26
  this.hasChild = (_, node) => node.expandable;
24
- this.dataSource.data = this.convertTreeData(this.treeData);
27
+ this.iterableDiffer = iterableDiffers.find([]).create(null);
25
28
  }
26
29
  _transformer(node, level) {
27
30
  return {
@@ -34,7 +37,8 @@ export class QMSNavDrawerComponent {
34
37
  itemMatIcon: node.itemMatIcon,
35
38
  itemIconSvg: node.itemIconSvg,
36
39
  isFile: node.isFile,
37
- markedGetChildren: node.markedGetChildren
40
+ markedGetChildren: node.markedGetChildren,
41
+ isFavorite: node.isFavorite
38
42
  };
39
43
  }
40
44
  ngOnChanges(changes) {
@@ -79,7 +83,7 @@ export class QMSNavDrawerComponent {
79
83
  }
80
84
  getActiveNode(id, parentId) {
81
85
  const _id = id ? id : '';
82
- const _parentId = parentId ? parentId : '';
86
+ const _parentId = parentId && (parentId !== this.guidHelper.empty) ? parentId : '';
83
87
  return `${_id}-${_parentId}`;
84
88
  }
85
89
  findAndExpandNodes(expandNewChild = false) {
@@ -122,9 +126,20 @@ export class QMSNavDrawerComponent {
122
126
  x.markedGetChildren = true;
123
127
  }
124
128
  });
125
- this.nodeExpand.emit({ node, isExpand: this.treeControl.isExpanded(node) });
129
+ this.nodeExpandEvent.emit({ node, isExpand: this.treeControl.isExpanded(node) });
126
130
  }
127
131
  }
132
+ updateFavorite(node, event) {
133
+ event.stopPropagation();
134
+ event.preventDefault();
135
+ node.isFavorite = !node.isFavorite;
136
+ this.updateFavoriteEvent.emit(node);
137
+ }
138
+ addLocation(node, event) {
139
+ event.stopPropagation();
140
+ event.preventDefault();
141
+ this.addLocationEvent.emit(node);
142
+ }
128
143
  _addExpandingNode(node) {
129
144
  if (!this.expandingNodes.some(x => x.id === node.id)) {
130
145
  this.expandingNodes.push(node);
@@ -162,18 +177,24 @@ export class QMSNavDrawerComponent {
162
177
  QMSNavDrawerComponent.decorators = [
163
178
  { type: Component, args: [{
164
179
  selector: 'qms-nav-drawer',
165
- template: "<mat-tree class=\"qms-nav-drawer-container\" [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding [ngClass]=\"{\n active: activeNode === getActiveNode(node.id, node.parentId)\n }\">\n <button mat-icon-button disabled></button>\n <img *ngIf=\"node.itemIconSvg\" class=\"material-icons type-icon cursor-pointer\" [src]=\"node.itemIconSvg\"\n (click)=\"onClickNode(node)\" />\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\n class=\"material-icons-outlined type-icon cursor-pointer\" (click)=\"onClickNode(node)\"></span>\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon cursor-pointer\"\n (click)=\"onClickNode(node)\">{{ node.itemMatIcon }}\n </span>\n\n <span class=\"text-name cursor-pointer ml-5 456\" (click)=\"onClickNode(node)\">{{ node.name }}</span>\n </mat-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding [ngClass]=\"{\n 'expand-node': treeControl.isExpanded(node),\n 'collapse-node': !treeControl.isExpanded(node),\n active: activeNode === getActiveNode(node.id, node.parentId)\n }\">\n <button mat-icon-button (click)=\"onExpandNode(node)\" matTreeNodeToggle>\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\n </mat-icon>\n </button>\n\n <img *ngIf=\"node.itemIconSvg\" class=\"material-icons type-icon cursor-pointer\" [src]=\"node.itemIconSvg\"\n (click)=\"onClickNode(node)\" />\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\n class=\"material-icons-outlined type-icon cursor-pointer\" (click)=\"onClickNode(node)\"></span>\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon cursor-pointer\"\n (click)=\"onClickNode(node)\">{{ node.itemMatIcon }}\n </span>\n\n <span class=\"text-name cursor-pointer ml-5 123\" (click)=\"onClickNode(node)\">{{ node.name }}</span>\n </mat-tree-node>\n</mat-tree>",
166
- styles: ["@charset \"UTF-8\";@font-face{font-family:icomoon;src:url(../assets/fonts/icomoon.eot?aghldx);src:url(../assets/fonts/icomoon.eot?aghldx#iefix) format(\"embedded-opentype\"),url(../assets/fonts/icomoon.ttf?aghldx) format(\"truetype\"),url(../assets/fonts/icomoon.woff?aghldx) format(\"woff\"),url(../assets/fonts/icomoon.svg?aghldx#icomoon) format(\"svg\");font-weight:400;font-style:normal;font-display:block}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-acutely-toxic .path1:before{content:\"\uE91B\";color:#e32730}.icon-acutely-toxic .path2:before{content:\"\uE922\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path3:before{content:\"\uE923\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path4:before{content:\"\uE924\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path5:before{content:\"\uE925\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path6:before{content:\"\uE926\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path7:before{content:\"\uE927\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path8:before{content:\"\uE928\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path9:before{content:\"\uE929\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path10:before{content:\"\uE92A\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path11:before{content:\"\uE92B\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path12:before{content:\"\uE92C\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path13:before{content:\"\uE92D\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path14:before{content:\"\uE92E\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path15:before{content:\"\uE92F\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path16:before{content:\"\uE930\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path17:before{content:\"\uE931\";margin-left:-1em;color:#323232}.icon-add-column:before{content:\"\uE932\"}.icon-add-tooltip:before{content:\"\uE933\"}.icon-admin:before{content:\"\uE934\"}.icon-annual-cycle:before{content:\"\uE935\"}.icon-assignment-repete:before{content:\"\uE936\"}.icon-barrier-add:before{content:\"\uE937\"}.icon-barrier-edit:before{content:\"\uE938\"}.icon-barrier-view:before{content:\"\uE939\"}.icon-button-group:before{content:\"\uE93A\"}.icon-chemical-manager:before{content:\"\uE93B\"}.icon-chronic-health-hazard .path1:before{content:\"\uE93C\";color:#e32730}.icon-chronic-health-hazard .path2:before{content:\"\uE93D\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path3:before{content:\"\uE93E\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path4:before{content:\"\uE93F\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path5:before{content:\"\uE940\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path6:before{content:\"\uE941\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path7:before{content:\"\uE942\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path8:before{content:\"\uE943\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path9:before{content:\"\uE944\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path10:before{content:\"\uE945\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path11:before{content:\"\uE946\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path12:before{content:\"\uE947\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path13:before{content:\"\uE948\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path14:before{content:\"\uE949\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path15:before{content:\"\uE94A\";margin-left:-1em;color:#323232}.icon-contingency:before{content:\"\uE94B\"}.icon-corrosive .path1:before{content:\"\uE94C\";color:#323232}.icon-corrosive .path2:before{content:\"\uE94D\";margin-left:-1em;color:#323232}.icon-corrosive .path3:before{content:\"\uE94E\";margin-left:-1em;color:#323232}.icon-corrosive .path4:before{content:\"\uE94F\";margin-left:-1em;color:#323232}.icon-corrosive .path5:before{content:\"\uE950\";margin-left:-1em;color:#323232}.icon-corrosive .path6:before{content:\"\uE951\";margin-left:-1em;color:#323232}.icon-corrosive .path7:before{content:\"\uE952\";margin-left:-1em;color:#323232}.icon-corrosive .path8:before{content:\"\uE953\";margin-left:-1em;color:#323232}.icon-corrosive .path9:before{content:\"\uE954\";margin-left:-1em;color:#323232}.icon-corrosive .path10:before{content:\"\uE955\";margin-left:-1em;color:#323232}.icon-corrosive .path11:before{content:\"\uE956\";margin-left:-1em;color:#323232}.icon-corrosive .path12:before{content:\"\uE957\";margin-left:-1em;color:#323232}.icon-corrosive .path13:before{content:\"\uE958\";margin-left:-1em;color:#323232}.icon-corrosive .path14:before{content:\"\uE959\";margin-left:-1em;color:#323232}.icon-corrosive .path15:before{content:\"\uE95A\";margin-left:-1em;color:#323232}.icon-corrosive .path16:before{content:\"\uE95B\";margin-left:-1em;color:#323232}.icon-corrosive .path17:before{content:\"\uE95C\";margin-left:-1em;color:#323232}.icon-corrosive .path18:before{content:\"\uE95D\";margin-left:-1em;color:#323232}.icon-corrosive .path19:before{content:\"\uE95E\";margin-left:-1em;color:#323232}.icon-corrosive .path20:before{content:\"\uE95F\";margin-left:-1em;color:#323232}.icon-corrosive .path21:before{content:\"\uE960\";margin-left:-1em;color:#e32730}.icon-dashboard:before{content:\"\uE961\"}.icon-database-sds:before{content:\"\uE962\"}.icon-description-add:before{content:\"\uE963\"}.icon-description-edit:before{content:\"\uE964\"}.icon-description-view:before{content:\"\uE965\";color:#666}.icon-document-read .path1:before{content:\"\uE966\";color:#000;opacity:.6}.icon-document-read .path2:before{content:\"\uE967\";margin-left:-1em;color:#fff}.icon-document-read .path3:before{content:\"\uE968\";margin-left:-1em;color:#000;opacity:.6}.icon-draft:before{content:\"\uE969\"}.icon-expired-off:before{content:\"\uE96A\"}.icon-expired-on:before{content:\"\uE96B\"}.icon-explosive .path1:before{content:\"\uE96C\";color:#e32730}.icon-explosive .path2:before{content:\"\uE96D\";margin-left:-1em;color:#323232}.icon-explosive .path3:before{content:\"\uE96E\";margin-left:-1em;color:#323232}.icon-explosive .path4:before{content:\"\uE96F\";margin-left:-1em;color:#323232}.icon-explosive .path5:before{content:\"\uE970\";margin-left:-1em;color:#323232}.icon-explosive .path6:before{content:\"\uE971\";margin-left:-1em;color:#323232}.icon-explosive .path7:before{content:\"\uE972\";margin-left:-1em;color:#323232}.icon-explosive .path8:before{content:\"\uE973\";margin-left:-1em;color:#323232}.icon-explosive .path9:before{content:\"\uE974\";margin-left:-1em;color:#323232}.icon-explosive .path10:before{content:\"\uE975\";margin-left:-1em;color:#323232}.icon-explosive .path11:before{content:\"\uE976\";margin-left:-1em;color:#323232}.icon-explosive .path12:before{content:\"\uE977\";margin-left:-1em;color:#323232}.icon-explosive .path13:before{content:\"\uE978\";margin-left:-1em;color:#323232}.icon-explosive .path14:before{content:\"\uE979\";margin-left:-1em;color:#323232}.icon-explosive .path15:before{content:\"\uE97A\";margin-left:-1em;color:#323232}.icon-explosive .path16:before{content:\"\uE97B\";margin-left:-1em;color:#323232}.icon-explosive .path17:before{content:\"\uE97C\";margin-left:-1em;color:#323232}.icon-explosive .path18:before{content:\"\uE97D\";margin-left:-1em;color:#323232}.icon-explosive .path19:before{content:\"\uE97E\";margin-left:-1em;color:#323232}.icon-explosive .path20:before{content:\"\uE97F\";margin-left:-1em;color:#323232}.icon-explosive .path21:before{content:\"\uE980\";margin-left:-1em;color:#323232}.icon-explosive .path22:before{content:\"\uE981\";margin-left:-1em;color:#323232}.icon-explosive .path23:before{content:\"\uE982\";margin-left:-1em;color:#323232}.icon-explosive .path24:before{content:\"\uE983\";margin-left:-1em;color:#323232}.icon-explosive .path25:before{content:\"\uE984\";margin-left:-1em;color:#323232}.icon-explosive .path26:before{content:\"\uE985\";margin-left:-1em;color:#323232}.icon-explosive .path27:before{content:\"\uE986\";margin-left:-1em;color:#323232}.icon-explosive .path28:before{content:\"\uE987\";margin-left:-1em;color:#323232}.icon-explosive .path29:before{content:\"\uE988\";margin-left:-1em;color:#323232}.icon-explosive .path30:before{content:\"\uE989\";margin-left:-1em;color:#323232}.icon-explosive .path31:before{content:\"\uE98A\";margin-left:-1em;color:#323232}.icon-explosive .path32:before{content:\"\uE98B\";margin-left:-1em;color:#323232}.icon-explosive .path33:before{content:\"\uE98C\";margin-left:-1em;color:#323232}.icon-explosive .path34:before{content:\"\uE98D\";margin-left:-1em;color:#323232}.icon-explosive .path35:before{content:\"\uE98E\";margin-left:-1em;color:#323232}.icon-explosive .path36:before{content:\"\uE98F\";margin-left:-1em;color:#323232}.icon-explosive .path37:before{content:\"\uE990\";margin-left:-1em;color:#323232}.icon-explosive .path38:before{content:\"\uE991\";margin-left:-1em;color:#323232}.icon-explosive .path39:before{content:\"\uE992\";margin-left:-1em;color:#323232}.icon-explosive .path40:before{content:\"\uE993\";margin-left:-1em;color:#323232}.icon-explosive .path41:before{content:\"\uE994\";margin-left:-1em;color:#323232}.icon-explosive .path42:before{content:\"\uE995\";margin-left:-1em;color:#323232}.icon-explosive .path43:before{content:\"\uE996\";margin-left:-1em;color:#323232}.icon-explosive .path44:before{content:\"\uE997\";margin-left:-1em;color:#323232}.icon-explosive .path45:before{content:\"\uE998\";margin-left:-1em;color:#323232}.icon-explosive .path46:before{content:\"\uE999\";margin-left:-1em;color:#323232}.icon-file-excel:before{content:\"\uE99A\"}.icon-file-pdf:before{content:\"\uE99B\"}.icon-file-pdf-verified .path1:before{content:\"\uE99C\";color:#000;opacity:.6}.icon-file-pdf-verified .path2:before{content:\"\uE99D\";margin-left:-1em;color:#fff}.icon-file-pdf-verified .path3:before{content:\"\uE99E\";margin-left:-1em;color:#000;opacity:.6}.icon-file-word:before{content:\"\uE99F\"}.icon-filter-alt:before{content:\"\uE9A0\"}.icon-flammable .path1:before{content:\"\uE9A1\";color:#323232}.icon-flammable .path2:before{content:\"\uE9A2\";margin-left:-1em;color:#323232}.icon-flammable .path3:before{content:\"\uE9A3\";margin-left:-1em;color:#e32730}.icon-gas-under-pressure .path1:before{content:\"\uE9A4\";color:#323232}.icon-gas-under-pressure .path2:before{content:\"\uE9A5\";margin-left:-1em;color:#e32730}.icon-health-hazard .path1:before{content:\"\uE9A6\";color:#323232}.icon-health-hazard .path2:before{content:\"\uE9A7\";margin-left:-1em;color:#e32730}.icon-line-break:before{content:\"\uE9A8\"}.icon-location:before{content:\"\uE9A9\"}.icon-measure-add:before{content:\"\uE9AA\"}.icon-measure-edit:before{content:\"\uE9AB\"}.icon-measure-view:before{content:\"\uE9AC\";color:#666}.icon-messages:before{content:\"\uE9AD\"}.icon-monitoring:before{content:\"\uE9AE\";color:#666}.icon-move:before{content:\"\uE9AF\"}.icon-oxidizing .path1:before{content:\"\uE9B0\";color:#e32730}.icon-oxidizing .path2:before{content:\"\uE9B1\";margin-left:-1em;color:#323232}.icon-oxidizing .path3:before{content:\"\uE9B2\";margin-left:-1em;color:#323232}.icon-oxidizing .path4:before{content:\"\uE9B3\";margin-left:-1em;color:#323232}.icon-process-area-closed:before{content:\"\uE9B4\"}.icon-process-area-open:before{content:\"\uE9B5\"}.icon-process-linked .path1:before{content:\"\uE9B6\";color:#000;opacity:.6}.icon-process-linked .path2:before{content:\"\uE9B7\";margin-left:-1em;color:#666}.icon-risk:before{content:\"\uE9B8\"}.icon-search-in-file:before{content:\"\uE9B9\"}.icon-sort-ascending:before{content:\"\uE9BA\"}.icon-sort-descending:before{content:\"\uE9BB\"}.icon-subscript:before{content:\"\uE9BC\"}.icon-superscript:before{content:\"\uE9BD\"}.icon-syncronice-favorites:before{content:\"\uE9BE\"}.icon-system-settings:before{content:\"\uE9BF\"}.icon-view-three-outlined:before{content:\"\uE9C0\"}.icon-workplace-safety:before{content:\"\uE9C1\"}.icon-checklist:before{content:\"\uE900\"}.icon-department-document .path1:before{content:\"\uE901\";color:#000;opacity:.6}.icon-department-document .path2:before{content:\"\uE902\";margin-left:-1em;color:#00804c}.icon-department-folder-closed .path1:before{content:\"\uE903\";color:#000;opacity:.6}.icon-department-folder-closed .path2:before{content:\"\uE904\";margin-left:-1em;color:#00804c}.icon-department-folder-open .path1:before{content:\"\uE905\";color:#000;opacity:.6}.icon-department-folder-open .path2:before{content:\"\uE906\";margin-left:-1em;color:#00804c}.icon-deviation:before{content:\"\uE907\"}.icon-dropdown-folder .path1:before{content:\"\uE908\";color:#00324e}.icon-dropdown-folder .path2:before{content:\"\uE909\";margin-left:-1em;color:#fff;opacity:.6}.icon-enterprise-document .path1:before{content:\"\uE90A\";color:#000;opacity:.6}.icon-enterprise-document .path2:before{content:\"\uE90B\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-closed .path1:before{content:\"\uE90C\";color:#000;opacity:.6}.icon-enterprise-folder-closed .path2:before{content:\"\uE90D\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-open .path1:before{content:\"\uE90E\";color:#000;opacity:.6}.icon-enterprise-folder-open .path2:before{content:\"\uE90F\";margin-left:-1em;color:#cf4714}.icon-folder-closed:before{content:\"\uE910\"}.icon-folder-open:before{content:\"\uE911\"}.icon-keyboard_arrow_down:before{content:\"\uE912\"}.icon-keyboard_arrow_up:before{content:\"\uE913\"}.icon-local-document .path1:before{content:\"\uE914\";color:#000;opacity:.6}.icon-local-document .path2:before{content:\"\uE915\";margin-left:-1em;color:#1954a9}.icon-local-folder-closed .path1:before{content:\"\uE916\";color:#000;opacity:.6}.icon-local-folder-closed .path2:before{content:\"\uE917\";margin-left:-1em;color:#1954a9}.icon-local-folder-open .path1:before{content:\"\uE918\";color:#000;opacity:.6}.icon-local-folder-open .path2:before{content:\"\uE919\";margin-left:-1em;color:#1954a9}.icon-process:before{content:\"\uE91A\"}.icon-regional-document .path1:before{content:\"\uE91C\";color:#000;opacity:.6}.icon-regional-document .path2:before{content:\"\uE91D\";margin-left:-1em;color:#662e0d}.icon-regional-folder-closed .path1:before{content:\"\uE91E\";color:#000;opacity:.6}.icon-regional-folder-closed .path2:before{content:\"\uE91F\";margin-left:-1em;color:#662e0d}.icon-regional-folder-open .path1:before{content:\"\uE920\";color:#000;opacity:.6}.icon-regional-folder-open .path2:before{content:\"\uE921\";margin-left:-1em;color:#662e0d}.mat-tree.qms-nav-drawer-container{font-family:Open Sans}.mat-tree.qms-nav-drawer-container .mat-tree-node:hover{background:rgba(0,0,0,.08)}.mat-tree.qms-nav-drawer-container .mat-tree-node:active{background:rgba(0,0,0,.12)}.mat-tree.qms-nav-drawer-container .mat-tree-node.active{color:var(--primary);background:var(--primary-light-6-opacity)}.mat-tree.qms-nav-drawer-container .mat-tree-node.active:active{background:var(--primary-light-12-opacity)}.mat-tree.qms-nav-drawer-container .mat-tree-node.active .mat-icon-rtl-mirror,.mat-tree.qms-nav-drawer-container .mat-tree-node.active .text-name,.mat-tree.qms-nav-drawer-container .mat-tree-node.active .type-icon,.mat-tree.qms-nav-drawer-container .mat-tree-node.active button,.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active .mat-icon-rtl-mirror,.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active .text-name,.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active .type-icon,.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active button{color:var(--primary)}.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active:hover{background:var(--primary-light-6-opacity)}.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active:active{background:var(--primary-light-12-opacity)}.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node,.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node .mat-icon-rtl-mirror,.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node .text-name,.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node .type-icon,.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node button{color:var(--primary)}.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node:hover{background:var(--primary-light-6-opacity)}.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node:active{background:var(--primary-light-12-opacity)}.mat-tree.qms-nav-drawer-container .type-icon{margin-right:5px;color:var(--ws-action-active)}.mat-tree.qms-nav-drawer-container .text-name{color:var(--default-color)}.mat-tree.qms-nav-drawer-container .mat-icon-rtl-mirror{color:rgba(0,0,0,.6)}.text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%}.cursor-pointer,.text-name{cursor:pointer}.ml-5{margin-left:10px}"]
180
+ template: "<mat-tree class=\"qms-nav-drawer-container\" [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding [ngClass]=\"{\n active: activeNode === getActiveNode(node.id, node.parentId)\n }\">\n\n <div class=\"d-flex align-items-center w-100\">\n <button mat-icon-button disabled></button>\n <img *ngIf=\"node.itemIconSvg\" class=\"material-icons type-icon cursor-pointer\" [src]=\"node.itemIconSvg\"\n (click)=\"onClickNode(node)\" />\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\n class=\"material-icons-outlined type-icon cursor-pointer\" (click)=\"onClickNode(node)\"></span>\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon cursor-pointer\"\n (click)=\"onClickNode(node)\">{{\n node.itemMatIcon }}\n </span>\n\n <span class=\"text-name cursor-pointer mx-2\" (click)=\"onClickNode(node)\">{{ node.name }}</span>\n\n <ng-container *ngIf=\"favoriteAction\">\n <button class=\"btn-action\" (click)=\"updateFavorite(node, $event)\" qms-btn-icon color=\"light\"\n qms-tool-tip=\"{{node.isFavorite ? favoriteAction.tooltipRemoveFavorite : favoriteAction.tooltipAddFavorite}}\"\n mode=\"dark\">\n <mat-icon class=\"material-icons-outlined\" [ngClass]=\"{'primary': node.isFavorite}\">\n {{node.isFavorite ? 'star' : 'star_outline' }}\n </mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"addLocationAction\">\n <button class=\"btn-action\" (click)=\"addLocation(node, $event)\" qms-btn-icon color=\"light\"\n qms-tool-tip=\"{{addLocationAction.tooltipAddLocation}}\" mode=\"dark\">\n <mat-icon class=\"material-icons-outlined\">\n add\n </mat-icon>\n </button>\n </ng-container>\n\n </div>\n\n\n </mat-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding [ngClass]=\"{\n 'expand-node': treeControl.isExpanded(node),\n 'collapse-node': !treeControl.isExpanded(node),\n active: activeNode === getActiveNode(node.id, node.parentId)\n }\">\n\n <div class=\"d-flex align-items-center w-100\">\n <button mat-icon-button (click)=\"onExpandNode(node)\" matTreeNodeToggle>\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\n </mat-icon>\n </button>\n\n <img *ngIf=\"node.itemIconSvg\" class=\"material-icons type-icon cursor-pointer\" [src]=\"node.itemIconSvg\"\n (click)=\"onClickNode(node)\" />\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\n class=\"material-icons-outlined type-icon cursor-pointer\" (click)=\"onClickNode(node)\"></span>\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon cursor-pointer\"\n (click)=\"onClickNode(node)\">{{\n node.itemMatIcon }}\n </span>\n\n <span class=\"text-name cursor-pointer mx-2\" (click)=\"onClickNode(node)\">{{ node.name }}</span>\n\n <ng-container *ngIf=\"favoriteAction\">\n <button class=\"btn-action\" (click)=\"updateFavorite(node, $event)\" qms-btn-icon color=\"light\"\n qms-tool-tip=\"{{node.isFavorite ? favoriteAction.tooltipRemoveFavorite : favoriteAction.tooltipAddFavorite}}\"\n mode=\"dark\">\n <mat-icon class=\"material-icons-outlined\" [ngClass]=\"{'primary': node.isFavorite}\">\n {{node.isFavorite ? 'star' : 'star_outline' }}\n </mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"addLocationAction\">\n <button class=\"btn-action\" (click)=\"addLocation(node, $event)\" qms-btn-icon color=\"light\"\n qms-tool-tip=\"{{addLocationAction.tooltipAddLocation}}\" mode=\"dark\">\n <mat-icon class=\"material-icons-outlined\">\n add\n </mat-icon>\n </button>\n </ng-container>\n </div>\n </mat-tree-node>\n</mat-tree>",
181
+ changeDetection: ChangeDetectionStrategy.OnPush,
182
+ styles: ["@charset \"UTF-8\";@font-face{font-family:icomoon;src:url(../assets/fonts/icomoon.eot?aghldx);src:url(../assets/fonts/icomoon.eot?aghldx#iefix) format(\"embedded-opentype\"),url(../assets/fonts/icomoon.ttf?aghldx) format(\"truetype\"),url(../assets/fonts/icomoon.woff?aghldx) format(\"woff\"),url(../assets/fonts/icomoon.svg?aghldx#icomoon) format(\"svg\");font-weight:400;font-style:normal;font-display:block}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-acutely-toxic .path1:before{content:\"\uE91B\";color:#e32730}.icon-acutely-toxic .path2:before{content:\"\uE922\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path3:before{content:\"\uE923\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path4:before{content:\"\uE924\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path5:before{content:\"\uE925\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path6:before{content:\"\uE926\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path7:before{content:\"\uE927\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path8:before{content:\"\uE928\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path9:before{content:\"\uE929\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path10:before{content:\"\uE92A\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path11:before{content:\"\uE92B\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path12:before{content:\"\uE92C\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path13:before{content:\"\uE92D\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path14:before{content:\"\uE92E\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path15:before{content:\"\uE92F\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path16:before{content:\"\uE930\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path17:before{content:\"\uE931\";margin-left:-1em;color:#323232}.icon-add-column:before{content:\"\uE932\"}.icon-add-tooltip:before{content:\"\uE933\"}.icon-admin:before{content:\"\uE934\"}.icon-annual-cycle:before{content:\"\uE935\"}.icon-assignment-repete:before{content:\"\uE936\"}.icon-barrier-add:before{content:\"\uE937\"}.icon-barrier-edit:before{content:\"\uE938\"}.icon-barrier-view:before{content:\"\uE939\"}.icon-button-group:before{content:\"\uE93A\"}.icon-chemical-manager:before{content:\"\uE93B\"}.icon-chronic-health-hazard .path1:before{content:\"\uE93C\";color:#e32730}.icon-chronic-health-hazard .path2:before{content:\"\uE93D\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path3:before{content:\"\uE93E\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path4:before{content:\"\uE93F\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path5:before{content:\"\uE940\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path6:before{content:\"\uE941\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path7:before{content:\"\uE942\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path8:before{content:\"\uE943\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path9:before{content:\"\uE944\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path10:before{content:\"\uE945\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path11:before{content:\"\uE946\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path12:before{content:\"\uE947\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path13:before{content:\"\uE948\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path14:before{content:\"\uE949\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path15:before{content:\"\uE94A\";margin-left:-1em;color:#323232}.icon-contingency:before{content:\"\uE94B\"}.icon-corrosive .path1:before{content:\"\uE94C\";color:#323232}.icon-corrosive .path2:before{content:\"\uE94D\";margin-left:-1em;color:#323232}.icon-corrosive .path3:before{content:\"\uE94E\";margin-left:-1em;color:#323232}.icon-corrosive .path4:before{content:\"\uE94F\";margin-left:-1em;color:#323232}.icon-corrosive .path5:before{content:\"\uE950\";margin-left:-1em;color:#323232}.icon-corrosive .path6:before{content:\"\uE951\";margin-left:-1em;color:#323232}.icon-corrosive .path7:before{content:\"\uE952\";margin-left:-1em;color:#323232}.icon-corrosive .path8:before{content:\"\uE953\";margin-left:-1em;color:#323232}.icon-corrosive .path9:before{content:\"\uE954\";margin-left:-1em;color:#323232}.icon-corrosive .path10:before{content:\"\uE955\";margin-left:-1em;color:#323232}.icon-corrosive .path11:before{content:\"\uE956\";margin-left:-1em;color:#323232}.icon-corrosive .path12:before{content:\"\uE957\";margin-left:-1em;color:#323232}.icon-corrosive .path13:before{content:\"\uE958\";margin-left:-1em;color:#323232}.icon-corrosive .path14:before{content:\"\uE959\";margin-left:-1em;color:#323232}.icon-corrosive .path15:before{content:\"\uE95A\";margin-left:-1em;color:#323232}.icon-corrosive .path16:before{content:\"\uE95B\";margin-left:-1em;color:#323232}.icon-corrosive .path17:before{content:\"\uE95C\";margin-left:-1em;color:#323232}.icon-corrosive .path18:before{content:\"\uE95D\";margin-left:-1em;color:#323232}.icon-corrosive .path19:before{content:\"\uE95E\";margin-left:-1em;color:#323232}.icon-corrosive .path20:before{content:\"\uE95F\";margin-left:-1em;color:#323232}.icon-corrosive .path21:before{content:\"\uE960\";margin-left:-1em;color:#e32730}.icon-dashboard:before{content:\"\uE961\"}.icon-database-sds:before{content:\"\uE962\"}.icon-description-add:before{content:\"\uE963\"}.icon-description-edit:before{content:\"\uE964\"}.icon-description-view:before{content:\"\uE965\";color:#666}.icon-document-read .path1:before{content:\"\uE966\";color:#000;opacity:.6}.icon-document-read .path2:before{content:\"\uE967\";margin-left:-1em;color:#fff}.icon-document-read .path3:before{content:\"\uE968\";margin-left:-1em;color:#000;opacity:.6}.icon-draft:before{content:\"\uE969\"}.icon-expired-off:before{content:\"\uE96A\"}.icon-expired-on:before{content:\"\uE96B\"}.icon-explosive .path1:before{content:\"\uE96C\";color:#e32730}.icon-explosive .path2:before{content:\"\uE96D\";margin-left:-1em;color:#323232}.icon-explosive .path3:before{content:\"\uE96E\";margin-left:-1em;color:#323232}.icon-explosive .path4:before{content:\"\uE96F\";margin-left:-1em;color:#323232}.icon-explosive .path5:before{content:\"\uE970\";margin-left:-1em;color:#323232}.icon-explosive .path6:before{content:\"\uE971\";margin-left:-1em;color:#323232}.icon-explosive .path7:before{content:\"\uE972\";margin-left:-1em;color:#323232}.icon-explosive .path8:before{content:\"\uE973\";margin-left:-1em;color:#323232}.icon-explosive .path9:before{content:\"\uE974\";margin-left:-1em;color:#323232}.icon-explosive .path10:before{content:\"\uE975\";margin-left:-1em;color:#323232}.icon-explosive .path11:before{content:\"\uE976\";margin-left:-1em;color:#323232}.icon-explosive .path12:before{content:\"\uE977\";margin-left:-1em;color:#323232}.icon-explosive .path13:before{content:\"\uE978\";margin-left:-1em;color:#323232}.icon-explosive .path14:before{content:\"\uE979\";margin-left:-1em;color:#323232}.icon-explosive .path15:before{content:\"\uE97A\";margin-left:-1em;color:#323232}.icon-explosive .path16:before{content:\"\uE97B\";margin-left:-1em;color:#323232}.icon-explosive .path17:before{content:\"\uE97C\";margin-left:-1em;color:#323232}.icon-explosive .path18:before{content:\"\uE97D\";margin-left:-1em;color:#323232}.icon-explosive .path19:before{content:\"\uE97E\";margin-left:-1em;color:#323232}.icon-explosive .path20:before{content:\"\uE97F\";margin-left:-1em;color:#323232}.icon-explosive .path21:before{content:\"\uE980\";margin-left:-1em;color:#323232}.icon-explosive .path22:before{content:\"\uE981\";margin-left:-1em;color:#323232}.icon-explosive .path23:before{content:\"\uE982\";margin-left:-1em;color:#323232}.icon-explosive .path24:before{content:\"\uE983\";margin-left:-1em;color:#323232}.icon-explosive .path25:before{content:\"\uE984\";margin-left:-1em;color:#323232}.icon-explosive .path26:before{content:\"\uE985\";margin-left:-1em;color:#323232}.icon-explosive .path27:before{content:\"\uE986\";margin-left:-1em;color:#323232}.icon-explosive .path28:before{content:\"\uE987\";margin-left:-1em;color:#323232}.icon-explosive .path29:before{content:\"\uE988\";margin-left:-1em;color:#323232}.icon-explosive .path30:before{content:\"\uE989\";margin-left:-1em;color:#323232}.icon-explosive .path31:before{content:\"\uE98A\";margin-left:-1em;color:#323232}.icon-explosive .path32:before{content:\"\uE98B\";margin-left:-1em;color:#323232}.icon-explosive .path33:before{content:\"\uE98C\";margin-left:-1em;color:#323232}.icon-explosive .path34:before{content:\"\uE98D\";margin-left:-1em;color:#323232}.icon-explosive .path35:before{content:\"\uE98E\";margin-left:-1em;color:#323232}.icon-explosive .path36:before{content:\"\uE98F\";margin-left:-1em;color:#323232}.icon-explosive .path37:before{content:\"\uE990\";margin-left:-1em;color:#323232}.icon-explosive .path38:before{content:\"\uE991\";margin-left:-1em;color:#323232}.icon-explosive .path39:before{content:\"\uE992\";margin-left:-1em;color:#323232}.icon-explosive .path40:before{content:\"\uE993\";margin-left:-1em;color:#323232}.icon-explosive .path41:before{content:\"\uE994\";margin-left:-1em;color:#323232}.icon-explosive .path42:before{content:\"\uE995\";margin-left:-1em;color:#323232}.icon-explosive .path43:before{content:\"\uE996\";margin-left:-1em;color:#323232}.icon-explosive .path44:before{content:\"\uE997\";margin-left:-1em;color:#323232}.icon-explosive .path45:before{content:\"\uE998\";margin-left:-1em;color:#323232}.icon-explosive .path46:before{content:\"\uE999\";margin-left:-1em;color:#323232}.icon-file-excel:before{content:\"\uE99A\"}.icon-file-pdf:before{content:\"\uE99B\"}.icon-file-pdf-verified .path1:before{content:\"\uE99C\";color:#000;opacity:.6}.icon-file-pdf-verified .path2:before{content:\"\uE99D\";margin-left:-1em;color:#fff}.icon-file-pdf-verified .path3:before{content:\"\uE99E\";margin-left:-1em;color:#000;opacity:.6}.icon-file-word:before{content:\"\uE99F\"}.icon-filter-alt:before{content:\"\uE9A0\"}.icon-flammable .path1:before{content:\"\uE9A1\";color:#323232}.icon-flammable .path2:before{content:\"\uE9A2\";margin-left:-1em;color:#323232}.icon-flammable .path3:before{content:\"\uE9A3\";margin-left:-1em;color:#e32730}.icon-gas-under-pressure .path1:before{content:\"\uE9A4\";color:#323232}.icon-gas-under-pressure .path2:before{content:\"\uE9A5\";margin-left:-1em;color:#e32730}.icon-health-hazard .path1:before{content:\"\uE9A6\";color:#323232}.icon-health-hazard .path2:before{content:\"\uE9A7\";margin-left:-1em;color:#e32730}.icon-line-break:before{content:\"\uE9A8\"}.icon-location:before{content:\"\uE9A9\"}.icon-measure-add:before{content:\"\uE9AA\"}.icon-measure-edit:before{content:\"\uE9AB\"}.icon-measure-view:before{content:\"\uE9AC\";color:#666}.icon-messages:before{content:\"\uE9AD\"}.icon-monitoring:before{content:\"\uE9AE\";color:#666}.icon-move:before{content:\"\uE9AF\"}.icon-oxidizing .path1:before{content:\"\uE9B0\";color:#e32730}.icon-oxidizing .path2:before{content:\"\uE9B1\";margin-left:-1em;color:#323232}.icon-oxidizing .path3:before{content:\"\uE9B2\";margin-left:-1em;color:#323232}.icon-oxidizing .path4:before{content:\"\uE9B3\";margin-left:-1em;color:#323232}.icon-process-area-closed:before{content:\"\uE9B4\"}.icon-process-area-open:before{content:\"\uE9B5\"}.icon-process-linked .path1:before{content:\"\uE9B6\";color:#000;opacity:.6}.icon-process-linked .path2:before{content:\"\uE9B7\";margin-left:-1em;color:#666}.icon-risk:before{content:\"\uE9B8\"}.icon-search-in-file:before{content:\"\uE9B9\"}.icon-sort-ascending:before{content:\"\uE9BA\"}.icon-sort-descending:before{content:\"\uE9BB\"}.icon-subscript:before{content:\"\uE9BC\"}.icon-superscript:before{content:\"\uE9BD\"}.icon-syncronice-favorites:before{content:\"\uE9BE\"}.icon-system-settings:before{content:\"\uE9BF\"}.icon-view-three-outlined:before{content:\"\uE9C0\"}.icon-workplace-safety:before{content:\"\uE9C1\"}.icon-checklist:before{content:\"\uE900\"}.icon-department-document .path1:before{content:\"\uE901\";color:#000;opacity:.6}.icon-department-document .path2:before{content:\"\uE902\";margin-left:-1em;color:#00804c}.icon-department-folder-closed .path1:before{content:\"\uE903\";color:#000;opacity:.6}.icon-department-folder-closed .path2:before{content:\"\uE904\";margin-left:-1em;color:#00804c}.icon-department-folder-open .path1:before{content:\"\uE905\";color:#000;opacity:.6}.icon-department-folder-open .path2:before{content:\"\uE906\";margin-left:-1em;color:#00804c}.icon-deviation:before{content:\"\uE907\"}.icon-dropdown-folder .path1:before{content:\"\uE908\";color:#00324e}.icon-dropdown-folder .path2:before{content:\"\uE909\";margin-left:-1em;color:#fff;opacity:.6}.icon-enterprise-document .path1:before{content:\"\uE90A\";color:#000;opacity:.6}.icon-enterprise-document .path2:before{content:\"\uE90B\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-closed .path1:before{content:\"\uE90C\";color:#000;opacity:.6}.icon-enterprise-folder-closed .path2:before{content:\"\uE90D\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-open .path1:before{content:\"\uE90E\";color:#000;opacity:.6}.icon-enterprise-folder-open .path2:before{content:\"\uE90F\";margin-left:-1em;color:#cf4714}.icon-folder-closed:before{content:\"\uE910\"}.icon-folder-open:before{content:\"\uE911\"}.icon-keyboard_arrow_down:before{content:\"\uE912\"}.icon-keyboard_arrow_up:before{content:\"\uE913\"}.icon-local-document .path1:before{content:\"\uE914\";color:#000;opacity:.6}.icon-local-document .path2:before{content:\"\uE915\";margin-left:-1em;color:#1954a9}.icon-local-folder-closed .path1:before{content:\"\uE916\";color:#000;opacity:.6}.icon-local-folder-closed .path2:before{content:\"\uE917\";margin-left:-1em;color:#1954a9}.icon-local-folder-open .path1:before{content:\"\uE918\";color:#000;opacity:.6}.icon-local-folder-open .path2:before{content:\"\uE919\";margin-left:-1em;color:#1954a9}.icon-process:before{content:\"\uE91A\"}.icon-regional-document .path1:before{content:\"\uE91C\";color:#000;opacity:.6}.icon-regional-document .path2:before{content:\"\uE91D\";margin-left:-1em;color:#662e0d}.icon-regional-folder-closed .path1:before{content:\"\uE91E\";color:#000;opacity:.6}.icon-regional-folder-closed .path2:before{content:\"\uE91F\";margin-left:-1em;color:#662e0d}.icon-regional-folder-open .path1:before{content:\"\uE920\";color:#000;opacity:.6}.icon-regional-folder-open .path2:before{content:\"\uE921\";margin-left:-1em;color:#662e0d}.mat-tree.qms-nav-drawer-container{font-family:Open Sans}.mat-tree.qms-nav-drawer-container .mat-tree-node:active,.mat-tree.qms-nav-drawer-container .mat-tree-node:focus,.mat-tree.qms-nav-drawer-container .mat-tree-node:hover{background:rgba(0,0,0,.08);padding-right:5px}.mat-tree.qms-nav-drawer-container .mat-tree-node:active .btn-action,.mat-tree.qms-nav-drawer-container .mat-tree-node:focus .btn-action,.mat-tree.qms-nav-drawer-container .mat-tree-node:hover .btn-action{display:block}.mat-tree.qms-nav-drawer-container .mat-tree-node:active{background:rgba(0,0,0,.12)}.mat-tree.qms-nav-drawer-container .mat-tree-node.active{color:var(--primary);background:var(--primary-light-6-opacity)}.mat-tree.qms-nav-drawer-container .mat-tree-node.active:active{background:var(--primary-light-12-opacity)}.mat-tree.qms-nav-drawer-container .mat-tree-node.active .mat-icon-rtl-mirror,.mat-tree.qms-nav-drawer-container .mat-tree-node.active .text-name,.mat-tree.qms-nav-drawer-container .mat-tree-node.active .type-icon,.mat-tree.qms-nav-drawer-container .mat-tree-node.active button,.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active .mat-icon-rtl-mirror,.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active .text-name,.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active .type-icon,.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active button{color:var(--primary)}.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active:hover{background:var(--primary-light-6-opacity)}.mat-tree.qms-nav-drawer-container .mat-tree-node.collapse-node.active:active{background:var(--primary-light-12-opacity)}.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node,.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node .mat-icon-rtl-mirror,.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node .text-name,.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node .type-icon,.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node button{color:var(--primary)}.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node:hover{background:var(--primary-light-6-opacity)}.mat-tree.qms-nav-drawer-container .mat-tree-node.expand-node:active{background:var(--primary-light-12-opacity)}.mat-tree.qms-nav-drawer-container .type-icon{margin-right:5px;color:var(--ws-action-active);font-size:18px}.mat-tree.qms-nav-drawer-container .text-name{color:var(--default-color)}.mat-tree.qms-nav-drawer-container .mat-icon,.mat-tree.qms-nav-drawer-container .mat-icon-rtl-mirror{color:rgba(0,0,0,.6)}.mat-tree.qms-nav-drawer-container button.qms-btn-icon{width:40px;height:40px;line-height:40px}.text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%;min-width:20px}.cursor-pointer,.text-name{cursor:pointer}.btn-action{display:none}.btn-action .material-icons-outlined.primary{color:var(--checkbox-color)}"]
167
183
  },] }
168
184
  ];
169
185
  QMSNavDrawerComponent.ctorParameters = () => [
170
186
  { type: QMSTreeGlobalService },
171
- { type: ChangeDetectorRef }
187
+ { type: ChangeDetectorRef },
188
+ { type: IterableDiffers }
172
189
  ];
173
190
  QMSNavDrawerComponent.propDecorators = {
174
191
  treeData: [{ type: Input }],
175
192
  openNodes: [{ type: Input }],
176
- nodeExpand: [{ type: Output }],
177
- onClickNodeEvent: [{ type: Output }]
193
+ favoriteAction: [{ type: Input }],
194
+ addLocationAction: [{ type: Input }],
195
+ nodeExpandEvent: [{ type: Output }],
196
+ onClickNodeEvent: [{ type: Output }],
197
+ updateFavoriteEvent: [{ type: Output }],
198
+ addLocationEvent: [{ type: Output }]
178
199
  };
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLW5hdi1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3Ftcy1uYXYtZHJhd2VyL3Ftcy1uYXYtZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTzlFLE1BQU0sT0FBTyxxQkFBcUI7SUFrQmhDLFlBQW1CLG1CQUF5QyxFQUFVLEtBQXdCO1FBQTNFLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBc0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQWhCOUYsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNCLGFBQVEsR0FBNkIsRUFBRSxDQUFDO1FBQ3hDLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDeEIsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR25FLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQW9CLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxV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LENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbEI7U0FFRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7O1lBOUxGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQix3d0VBQThDOzthQUUvQzs7O1lBTFEsb0JBQW9CO1lBTHBCLGlCQUFpQjs7O3VCQWV2QixLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsTUFBTTsrQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUcmVlRmxhdERhdGFTb3VyY2UsIE1hdFRyZWVGbGF0dGVuZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZsYXROb2RlTmF2RHJhd2VyLCBUcmVlTm9kZU5hdkRyYXdlciB9IGZyb20gJy4vbW9kZWxzL3Ftcy1uYXYtZHJhd2VyLm1vZGVsJztcbmltcG9ydCB7IFFNU1RyZWVHbG9iYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcW1zLXRyZWUtZ2xvYmFsLnNlcnZpY2UnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncW1zLW5hdi1kcmF3ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcW1zLW5hdi1kcmF3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9xbXMtbmF2LWRyYXdlci5jb21wb25lbnQuc2NzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgUU1TTmF2RHJhd2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHRyZWVEYXRhOiBBcnJheTxUcmVlTm9kZU5hdkRyYXdlcj4gPSBbXTtcbiAgQElucHV0KCkgb3Blbk5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBAT3V0cHV0KCkgbm9kZUV4cGFuZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrTm9kZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXG4gIHRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxGbGF0Tm9kZU5hdkRyYXdlcj4obm9kZSA9PiBub2RlLmxldmVsLCBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSk7XG4gIHRyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcih0aGlzLl90cmFuc2Zvcm1lciwgbm9kZSA9PiBub2RlLmxldmVsLCBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSwgbm9kZSA9PiBub2RlLmNoaWxkcmVuKTtcbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UodGhpcy50cmVlQ29udHJvbCwgdGhpcy50cmVlRmxhdHRlbmVyKTtcbiAgZXhwYW5kaW5nTm9kZXM6IEZsYXROb2RlTmF2RHJhd2VyW10gPSBbXTtcbiAgYWN0aXZlTm9kZTogc3RyaW5nO1xuICBndWlkSGVscGVyID0ge1xuICAgIGVtcHR5OiAnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJ1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBxbXNOYXZEcmF3ZXJTZXJ2aWNlOiBRTVNUcmVlR2xvYmFsU2VydmljZSwgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMuY29udmVydFRyZWVEYXRhKHRoaXMudHJlZURhdGEpO1xuICB9XG5cbiAgX3RyYW5zZm9ybWVyKG5vZGU6IFRyZWVOb2RlTmF2RHJhd2VyLCBsZXZlbDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV4cGFuZGFibGU6ICghIW5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB8fCAoISFub2RlLmNoaWxkQ291bnQpLFxuICAgICAgbmFtZTogbm9kZS5uYW1lLFxuICAgICAgbGV2ZWwsXG4gICAgICBpZDogbm9kZS5pZCxcbiAgICAgIHBhcmVudElkOiBub2RlLnBhcmVudElkLFxuICAgICAgaXRlbUljb246IG5vZGUuaXRlbUljb24sXG4gICAgICBpdGVtTWF0SWNvbjogbm9kZS5pdGVtTWF0SWNvbixcbiAgICAgIGl0ZW1JY29uU3ZnOiBub2RlLml0ZW1JY29uU3ZnLFxuICAgICAgaXNGaWxlOiBub2RlLmlzRmlsZSxcbiAgICAgIG1hcmtlZEdldENoaWxkcmVuOiBub2RlLm1hcmtlZEdldENoaWxkcmVuXG4gICAgfTtcbiAgfVxuXG4gIGhhc0NoaWxkID0gKF86IG51bWJlciwgbm9kZTogRmxhdE5vZGVOYXZEcmF3ZXIpID0+IG5vZGUuZXhwYW5kYWJsZTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMudHJlZURhdGEgJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy50cmVlRGF0YS5jdXJyZW50VmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLnRyZWVEYXRhLnByZXZpb3VzVmFsdWUpKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMudHJlZURhdGE7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLm9wZW5Ob2RlcyAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLm9wZW5Ob2Rlcy5jdXJyZW50VmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLm9wZW5Ob2Rlcy5wcmV2aW91c1ZhbHVlKSkge1xuICAgICAgdGhpcy5maW5kQW5kRXhwYW5kTm9kZXMoKTtcbiAgICAgIHRoaXMuX2FjdGl2ZU5vZGUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnFtc05hdkRyYXdlclNlcnZpY2UuZ2V0SXRlbXNDaGlsZHJlbiQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGlmIChyZXMubGVuZ3RoKSB7XG5cbiAgICAgICAgbGV0IG5ld05vZGVzQ2hpbGRyZW4gPSBbXTtcblxuICAgICAgICByZXMuZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudHJlZURhdGEuZmluZEluZGV4KFxuICAgICAgICAgICAgaXRlbSA9PiBpdGVtLmlkID09PSB4LmlkICYmIGl0ZW0ucGFyZW50SWQgPT09IHgucGFyZW50SWQpO1xuICAgICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIG5ld05vZGVzQ2hpbGRyZW4ucHVzaCh4KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCBjaGlsZHJlbiB0byB0cmVlRGF0YVxuICAgICAgICBpZiAobmV3Tm9kZXNDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnRyZWVEYXRhID0gWy4uLnRoaXMudHJlZURhdGEsIC4uLm5ld05vZGVzQ2hpbGRyZW5dO1xuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5jb252ZXJ0VHJlZURhdGEodGhpcy50cmVlRGF0YSk7XG4gICAgICAgICAgdGhpcy5maW5kQW5kRXhwYW5kTm9kZXModHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV4cGFuZGluZ05vZGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kSW5kZXgoeCA9PiB4LnBhcmVudElkID09PSBub2RlLnBhcmVudElkICYmIHguaWQgPT09IG5vZGUuaWQpO1xuICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpbmRleF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2FjdGl2ZU5vZGUoKSB7XG4gICAgY29uc3QgY3Vyck5vZGUgPSB0aGlzLm9wZW5Ob2Rlc1t0aGlzLm9wZW5Ob2Rlcy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBpZHhQYXJlbnQgPSB0aGlzLm9wZW5Ob2Rlcy5sZW5ndGggPj0gMiA/IHRoaXMub3Blbk5vZGVzLmxlbmd0aCAtIDIgOiAnJztcbiAgICBjb25zdCBwYXJlbnROb2RlID0gaWR4UGFyZW50ICE9PSAnJyA/IHRoaXMub3Blbk5vZGVzW2lkeFBhcmVudF0gOiAnJztcblxuICAgIHRoaXMuYWN0aXZlTm9kZSA9IHRoaXMuZ2V0QWN0aXZlTm9kZShjdXJyTm9kZSwgcGFyZW50Tm9kZSk7XG4gIH1cblxuICBnZXRBY3RpdmVOb2RlKGlkLCBwYXJlbnRJZCkge1xuICAgIGNvbnN0IF9pZCA9IGlkID8gaWQgOiAnJztcbiAgICBjb25zdCBfcGFyZW50SWQgPSBwYXJlbnRJZCA/IHBhcmVudElkIDogJyc7XG4gICAgcmV0dXJuIGAke19pZH0tJHtfcGFyZW50SWR9YDtcbiAgfVxuXG4gIGZpbmRBbmRFeHBhbmROb2RlcyhleHBhbmROZXdDaGlsZDogYm9vbGVhbiA9IGZhbHNlKSB7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLm9wZW5Ob2Rlcy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkID09PSBlbCkge1xuICAgICAgICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMucHVzaCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSk7XG4gICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmVOb2RlKCk7XG5cbiAgICAvLyBzY3JvbGwgdG8gc2VsZWN0ZWQgbm9kZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tYXQtdHJlZS1ub2RlLmFjdGl2ZScpO1xuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uQ2xpY2tOb2RlKG5vZGU6IEZsYXROb2RlTmF2RHJhd2VyKSB7XG4gICAgdGhpcy5hY3RpdmVOb2RlID0gdGhpcy5nZXRBY3RpdmVOb2RlKG5vZGUuaWQsIG5vZGUucGFyZW50SWQpO1xuICAgIHRoaXMub25DbGlja05vZGVFdmVudC5lbWl0KG5vZGUpO1xuICB9XG5cbiAgb25FeHBhbmROb2RlKG5vZGU6IEZsYXROb2RlTmF2RHJhd2VyKSB7XG4gICAgdGhpcy5vcGVuTm9kZXMgPSBbXTtcbiAgICBpZiAodGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpKSB7XG4gICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcbiAgICAgIHRoaXMuX2FkZEV4cGFuZGluZ05vZGUobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuY29sbGFwc2Uobm9kZSk7XG4gICAgICB0aGlzLl9yZW1vdmVFeHBhbmRpbmdOb2Rlcyhub2RlLmlkKTtcbiAgICB9XG5cbiAgICBpZiAoIW5vZGUubWFya2VkR2V0Q2hpbGRyZW4pIHtcbiAgICAgIG5vZGUubWFya2VkR2V0Q2hpbGRyZW4gPSB0cnVlO1xuICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgaWYgKHgucGFyZW50SWQgPT09IG5vZGUucGFyZW50SWQgJiYgeC5pZCA9PT0gbm9kZS5pZCkge1xuICAgICAgICAgIHgubWFya2VkR2V0Q2hpbGRyZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMubm9kZUV4cGFuZC5lbWl0KHsgbm9kZSwgaXNFeHBhbmQ6IHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hZGRFeHBhbmRpbmdOb2RlKG5vZGU6IEZsYXROb2RlTmF2RHJhd2VyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmV4cGFuZGluZ05vZGVzLnNvbWUoeCA9PiB4LmlkID09PSBub2RlLmlkKSkge1xuICAgICAgdGhpcy5leHBhbmRpbmdOb2Rlcy5wdXNoKG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUV4cGFuZGluZ05vZGVzKG5vZGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRpbmdOb2RlcyA9IHRoaXMuZXhwYW5kaW5nTm9kZXMuZmlsdGVyKHggPT4geC5pZCAhPT0gbm9kZUlkKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBjb252ZXJ0VHJlZURhdGEobGlzdCkge1xuICAgIGxldCBtYXAgPSB7fSwgbm9kZSwgcm9vdHMgPSBbXSwgaTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgbWFwW2Ake2xpc3RbaV0uaWR9LSR7bGlzdFtpXS5wYXJlbnRJZH1gXSA9IGkgLy8gaW5pdGlhbGl6ZSB0aGUgbWFwXG4gICAgICBsaXN0W2ldLmNoaWxkcmVuID0gW107IC8vIGluaXRpYWxpemUgdGhlIGNoaWxkcmVuXG4gICAgfVxuXG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgbm9kZSA9IGxpc3RbaV07XG4gICAgICBjb25zdCBzdHJLZXkgPSBgJHtsaXN0W2ldLmlkfS0ke2xpc3RbaV0ucGFyZW50SWR9YDtcblxuICAgICAgaWYgKG5vZGUucGFyZW50SWQgJiYgKG5vZGUucGFyZW50SWQgIT09IHRoaXMuZ3VpZEhlbHBlci5lbXB0eSkgJiYgbGlzdFttYXBbc3RyS2V5XV0pIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gbGlzdC5maWx0ZXIoeCA9PiB4LmlkID09PSBub2RlLnBhcmVudElkICYmICF4LmlzRmlsZSlbMF1cbiAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgIHBhcmVudC5jaGlsZHJlbi5wdXNoKG5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3RzLnB1c2gobm9kZSk7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4gcm9vdHM7XG4gIH1cblxufSJdfQ==
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLW5hdi1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3Ftcy1uYXYtZHJhd2VyL3Ftcy1uYXYtZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFtQixlQUFlLEVBQWdDLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDbE0sT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFROUUsTUFBTSxPQUFPLHFCQUFxQjtJQXlCaEMsWUFBbUIsbUJBQXlDLEVBQVUsS0FBd0IsRUFBVSxlQUFnQztRQUFySCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXNCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUF2QnhJLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMzQixhQUFRLEdBQTZCLEVBQUUsQ0FBQztRQUN4QyxjQUFTLEdBQWEsRUFBRSxDQUFDO1FBSXhCLG9CQUFlLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEQscUJBQWdCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsd0JBQW1CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFD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b3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIEl0ZXJhYmxlQ2hhbmdlcywgSXRlcmFibGVEaWZmZXJzLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmxhdE5vZGVOYXZEcmF3ZXIsIFRyZWVOb2RlTmF2RHJhd2VyIH0gZnJvbSAnLi9tb2RlbHMvcW1zLW5hdi1kcmF3ZXIubW9kZWwnO1xuaW1wb3J0IHsgUU1TVHJlZUdsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xbXMtdHJlZS1nbG9iYWwuc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdxbXMtbmF2LWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9xbXMtbmF2LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Ftcy1uYXYtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgUU1TTmF2RHJhd2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHRyZWVEYXRhOiBBcnJheTxUcmVlTm9kZU5hdkRyYXdlcj4gPSBbXTtcbiAgQElucHV0KCkgb3Blbk5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBmYXZvcml0ZUFjdGlvbjogYW55O1xuICBASW5wdXQoKSBhZGRMb2NhdGlvbkFjdGlvbjogYW55O1xuXG4gIEBPdXRwdXQoKSBub2RlRXhwYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25DbGlja05vZGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB1cGRhdGVGYXZvcml0ZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGFkZExvY2F0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cbiAgdHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPEZsYXROb2RlTmF2RHJhd2VyPihub2RlID0+IG5vZGUubGV2ZWwsIG5vZGUgPT4gbm9kZS5leHBhbmRhYmxlKTtcbiAgdHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKHRoaXMuX3RyYW5zZm9ybWVyLCBub2RlID0+IG5vZGUubGV2ZWwsIG5vZGUgPT4gbm9kZS5leHBhbmRhYmxlLCBub2RlID0+IG5vZGUuY2hpbGRyZW4pO1xuICBkYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSh0aGlzLnRyZWVDb250cm9sLCB0aGlzLnRyZWVGbGF0dGVuZXIpO1xuICBleHBhbmRpbmdOb2RlczogRmxhdE5vZGVOYXZEcmF3ZXJbXSA9IFtdO1xuICBhY3RpdmVOb2RlOiBzdHJpbmc7XG4gIGd1aWRIZWxwZXIgPSB7XG4gICAgZW1wdHk6ICcwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAnXG4gIH07XG5cbiAgaXRlcmFibGVEaWZmZXI7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHFtc05hdkRyYXdlclNlcnZpY2U6IFFNU1RyZWVHbG9iYWxTZXJ2aWNlLCBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBpdGVyYWJsZURpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycykge1xuICAgIHRoaXMuaXRlcmFibGVEaWZmZXIgPSBpdGVyYWJsZURpZmZlcnMuZmluZChbXSkuY3JlYXRlKG51bGwpO1xuICB9XG5cbiAgX3RyYW5zZm9ybWVyKG5vZGU6IFRyZWVOb2RlTmF2RHJhd2VyLCBsZXZlbDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV4cGFuZGFibGU6ICghIW5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB8fCAoISFub2RlLmNoaWxkQ291bnQpLFxuICAgICAgbmFtZTogbm9kZS5uYW1lLFxuICAgICAgbGV2ZWwsXG4gICAgICBpZDogbm9kZS5pZCxcbiAgICAgIHBhcmVudElkOiBub2RlLnBhcmVudElkLFxuICAgICAgaXRlbUljb246IG5vZGUuaXRlbUljb24sXG4gICAgICBpdGVtTWF0SWNvbjogbm9kZS5pdGVtTWF0SWNvbixcbiAgICAgIGl0ZW1JY29uU3ZnOiBub2RlLml0ZW1JY29uU3ZnLFxuICAgICAgaXNGaWxlOiBub2RlLmlzRmlsZSxcbiAgICAgIG1hcmtlZEdldENoaWxkcmVuOiBub2RlLm1hcmtlZEdldENoaWxkcmVuLFxuICAgICAgaXNGYXZvcml0ZTogbm9kZS5pc0Zhdm9yaXRlXG4gICAgfTtcbiAgfVxuXG4gIGhhc0NoaWxkID0gKF86IG51bWJlciwgbm9kZTogRmxhdE5vZGVOYXZEcmF3ZXIpID0+IG5vZGUuZXhwYW5kYWJsZTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cbiAgICBpZiAoY2hhbmdlcy50cmVlRGF0YSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLnRyZWVEYXRhLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXMudHJlZURhdGEucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy50cmVlRGF0YTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5vcGVuTm9kZXMgJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5vcGVuTm9kZXMuY3VycmVudFZhbHVlKSAhPT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5vcGVuTm9kZXMucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIHRoaXMuZmluZEFuZEV4cGFuZE5vZGVzKCk7XG4gICAgICB0aGlzLl9hY3RpdmVOb2RlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5xbXNOYXZEcmF3ZXJTZXJ2aWNlLmdldEl0ZW1zQ2hpbGRyZW4kLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzLmxlbmd0aCkge1xuXG4gICAgICAgIGxldCBuZXdOb2Rlc0NoaWxkcmVuID0gW107XG5cbiAgICAgICAgcmVzLmZvckVhY2goeCA9PiB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnRyZWVEYXRhLmZpbmRJbmRleChcbiAgICAgICAgICAgIGl0ZW0gPT4gaXRlbS5pZCA9PT0geC5pZCAmJiBpdGVtLnBhcmVudElkID09PSB4LnBhcmVudElkKTtcbiAgICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICBuZXdOb2Rlc0NoaWxkcmVuLnB1c2goeCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgY2hpbGRyZW4gdG8gdHJlZURhdGFcbiAgICAgICAgaWYgKG5ld05vZGVzQ2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy50cmVlRGF0YSA9IFsuLi50aGlzLnRyZWVEYXRhLCAuLi5uZXdOb2Rlc0NoaWxkcmVuXTtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMuY29udmVydFRyZWVEYXRhKHRoaXMudHJlZURhdGEpO1xuICAgICAgICAgIHRoaXMuZmluZEFuZEV4cGFuZE5vZGVzKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leHBhbmRpbmdOb2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZEluZGV4KHggPT4geC5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZCAmJiB4LmlkID09PSBub2RlLmlkKTtcbiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaW5kZXhdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hY3RpdmVOb2RlKCkge1xuICAgIGNvbnN0IGN1cnJOb2RlID0gdGhpcy5vcGVuTm9kZXNbdGhpcy5vcGVuTm9kZXMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgaWR4UGFyZW50ID0gdGhpcy5vcGVuTm9kZXMubGVuZ3RoID49IDIgPyB0aGlzLm9wZW5Ob2Rlcy5sZW5ndGggLSAyIDogJyc7XG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IGlkeFBhcmVudCAhPT0gJycgPyB0aGlzLm9wZW5Ob2Rlc1tpZHhQYXJlbnRdIDogJyc7XG5cbiAgICB0aGlzLmFjdGl2ZU5vZGUgPSB0aGlzLmdldEFjdGl2ZU5vZGUoY3Vyck5vZGUsIHBhcmVudE5vZGUpO1xuICB9XG5cbiAgZ2V0QWN0aXZlTm9kZShpZCwgcGFyZW50SWQpIHtcbiAgICBjb25zdCBfaWQgPSBpZCA/IGlkIDogJyc7XG4gICAgY29uc3QgX3BhcmVudElkID0gcGFyZW50SWQgJiYgKHBhcmVudElkICE9PSB0aGlzLmd1aWRIZWxwZXIuZW1wdHkpID8gcGFyZW50SWQgOiAnJztcbiAgICByZXR1cm4gYCR7X2lkfS0ke19wYXJlbnRJZH1gO1xuICB9XG5cbiAgZmluZEFuZEV4cGFuZE5vZGVzKGV4cGFuZE5ld0NoaWxkOiBib29sZWFuID0gZmFsc2UpIHtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMub3Blbk5vZGVzLmZvckVhY2goZWwgPT4ge1xuICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgPT09IGVsKSB7XG4gICAgICAgICAgdGhpcy5leHBhbmRpbmdOb2Rlcy5wdXNoKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcbiAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuX2FjdGl2ZU5vZGUoKTtcblxuICAgIC8vIHNjcm9sbCB0byBzZWxlY3RlZCBub2RlXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1hdC10cmVlLW5vZGUuYWN0aXZlJyk7XG5cbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkNsaWNrTm9kZShub2RlOiBGbGF0Tm9kZU5hdkRyYXdlcikge1xuICAgIHRoaXMuYWN0aXZlTm9kZSA9IHRoaXMuZ2V0QWN0aXZlTm9kZShub2RlLmlkLCBub2RlLnBhcmVudElkKTtcbiAgICB0aGlzLm9uQ2xpY2tOb2RlRXZlbnQuZW1pdChub2RlKTtcbiAgfVxuXG4gIG9uRXhwYW5kTm9kZShub2RlOiBGbGF0Tm9kZU5hdkRyYXdlcikge1xuICAgIHRoaXMub3Blbk5vZGVzID0gW107XG4gICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSkge1xuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQobm9kZSk7XG4gICAgICB0aGlzLl9hZGRFeHBhbmRpbmdOb2RlKG5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyZWVDb250cm9sLmNvbGxhcHNlKG5vZGUpO1xuICAgICAgdGhpcy5fcmVtb3ZlRXhwYW5kaW5nTm9kZXMobm9kZS5pZCk7XG4gICAgfVxuXG4gICAgaWYgKCFub2RlLm1hcmtlZEdldENoaWxkcmVuKSB7XG4gICAgICBub2RlLm1hcmtlZEdldENoaWxkcmVuID0gdHJ1ZTtcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZvckVhY2goeCA9PiB7XG4gICAgICAgIGlmICh4LnBhcmVudElkID09PSBub2RlLnBhcmVudElkICYmIHguaWQgPT09IG5vZGUuaWQpIHtcbiAgICAgICAgICB4Lm1hcmtlZEdldENoaWxkcmVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLm5vZGVFeHBhbmRFdmVudC5lbWl0KHsgbm9kZSwgaXNFeHBhbmQ6IHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSB9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVGYXZvcml0ZShub2RlOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIG5vZGUuaXNGYXZvcml0ZSA9ICFub2RlLmlzRmF2b3JpdGU7XG4gICAgdGhpcy51cGRhdGVGYXZvcml0ZUV2ZW50LmVtaXQobm9kZSk7XG4gIH1cblxuICBhZGRMb2NhdGlvbihub2RlOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuYWRkTG9jYXRpb25FdmVudC5lbWl0KG5vZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkRXhwYW5kaW5nTm9kZShub2RlOiBGbGF0Tm9kZU5hdkRyYXdlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5leHBhbmRpbmdOb2Rlcy5zb21lKHggPT4geC5pZCA9PT0gbm9kZS5pZCkpIHtcbiAgICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMucHVzaChub2RlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVFeHBhbmRpbmdOb2Rlcyhub2RlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMgPSB0aGlzLmV4cGFuZGluZ05vZGVzLmZpbHRlcih4ID0+IHguaWQgIT09IG5vZGVJZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgY29udmVydFRyZWVEYXRhKGxpc3QpIHtcbiAgICBsZXQgbWFwID0ge30sIG5vZGUsIHJvb3RzID0gW10sIGk7XG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIG1hcFtgJHtsaXN0W2ldLmlkfS0ke2xpc3RbaV0ucGFyZW50SWR9YF0gPSBpIC8vIGluaXRpYWxpemUgdGhlIG1hcFxuICAgICAgbGlzdFtpXS5jaGlsZHJlbiA9IFtdOyAvLyBpbml0aWFsaXplIHRoZSBjaGlsZHJlblxuICAgIH1cblxuXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIG5vZGUgPSBsaXN0W2ldO1xuICAgICAgY29uc3Qgc3RyS2V5ID0gYCR7bGlzdFtpXS5pZH0tJHtsaXN0W2ldLnBhcmVudElkfWA7XG5cbiAgICAgIGlmIChub2RlLnBhcmVudElkICYmIChub2RlLnBhcmVudElkICE9PSB0aGlzLmd1aWRIZWxwZXIuZW1wdHkpICYmIGxpc3RbbWFwW3N0cktleV1dKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGxpc3QuZmlsdGVyKHggPT4geC5pZCA9PT0gbm9kZS5wYXJlbnRJZCAmJiAheC5pc0ZpbGUpWzBdXG4gICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChub2RlKTtcbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb290cy5wdXNoKG5vZGUpO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgcmV0dXJuIHJvb3RzO1xuICB9XG5cbn0iXX0=