@acorex/components 16.0.24 → 16.0.25

Sign up to get free protection for your applications and to get access to all the features.
@@ -80,11 +80,11 @@ export class AXMenuComponent {
80
80
  }
81
81
  }
82
82
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
83
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXMenuComponent, selector: "ax-menu", inputs: { menuTemplate: "menuTemplate", rtl: "rtl", size: "size", selection: "selection", mode: "mode", target: "target", floatAlignment: "floatAlignment", floatPlacemnet: "floatPlacemnet", direction: "direction", items: "items" }, outputs: { onItemClick: "onItemClick" }, queries: [{ propertyName: "_contentMenuTemplate", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<!-- <div class=\"ax menu-container {{size}}\" #container>\n <ul class=\"root\" [class.horizontal]=\"direction=='horizontal'\" [class.vertical]=\"direction=='vertical'\" #root>\n <ng-template #recursiveList let-list>\n <ng-container *ngFor=\"let item of list;trackBy:trackByItem\">\n <li class=\"ax-toolbar-menu-item ax {{item.type || 'ax primary'}} {{item.style || 'ax primary'}}\" [class.disabled]='item.disable' [class.subIcon]='item.items' [class.startIcon]='item.startIcon' [class.startIcon]='item.icon' [class.endIcon]='item.endIcon' *ngIf=\"item.visible!=false\" (click)=\"handleItemClick($event, item)\"\n [class.selected]=\"item.selected\" [class.divider]=\"item.divider\" [attr.title]=\"item.tooltip ? item.tooltip : null\"\n [attr.data-uid]=\"item.uid\"\n [class.split]=\"item.split\">\n <div class=\"content-side\">\n <ng-container *ngIf=\"menuTemplate; else menuBody\">\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { $implicit: item }\">\n </ng-container>\n </ng-container>\n <ng-template #menuBody>\n <span class=\"ax-toolbar-menu-item-text\">\n <i class=\"{{ item.startIcon }} start-icon ax-menu-item-icon\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }} start-icon ax-menu-item-icon\" *ngIf=\"item.icon\"></i>\n <span *ngIf=\"item.text\">{{ item.text }}</span>\n <i class=\"{{ item.endIcon }} end-icon ax-menu-item-icon\" *ngIf=\"item.endIcon\"></i>\n </span>\n </ng-template>\n </div>\n <div class=\"sub-icon-side\" *ngIf=\"item.hasChildren\">\n <i class=\"far fa-angle-down ax-menu-item-drop-icon\"></i>\n </div>\n <ul *ngIf=\"item.hasChildren\" class=\"collapsed sub-menu\">\n <ng-container *ngTemplateOutlet=\"\n recursiveList;\n context: { $implicit: item.items }\n \"></ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context: { $implicit: items }\"></ng-container>\n <li class=\"more\" #moreLI (click)=\"handleItemClick($event)\">\n <i class=\"far fa-bars\"></i>\n <ul #moreUL class=\"collapsed sub-menu\"></ul>\n </li>\n </ul>\n</div> -->\n\n<nav>\n <ul\n class=\"ax nav-menu\"\n [class.rtl]=\"rtl\"\n [class.nav-center]=\"direction == 'horizontal'\"\n [class.nav-vertical]=\"direction == 'vertical'\"\n >\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: items }\"\n ></ng-container>\n </ul>\n</nav>\n\n<ng-template #recursiveMenu let-items>\n <ng-container *ngFor=\"let item of items\">\n <li\n class=\"ax {{ item.style }}\"\n [ngClass]=\"{ disabled: item.disable }\"\n *ngIf=\"item.visible === undefined || item.visible\"\n (click)=\"handleItemClick($event, item)\"\n axTooltip\n [placement]=\"item.tooltipPlacement ? item.tooltipPlacement : 'bottom'\"\n [tooltip]=\"item.tooltip ? item.tooltip : ''\"\n >\n <div class=\"ax-menu-item\">\n <span class=\"menu-item-start-side\">\n <i class=\"{{ item.startIcon }}\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }}\" *ngIf=\"item.icon\"></i>\n <span class=\"ax-menu-item-text\" *ngIf=\"item.text\">{{\n item.text\n }}</span>\n </span>\n <span class=\"menu-item-end-side\">\n <i\n class=\"far fa-angle-down drop-icon\"\n *ngIf=\"item.items && item.text\"\n ></i>\n <i class=\"{{ item.endIcon }}\" *ngIf=\"item.endIcon\"></i>\n </span>\n </div>\n <ul *ngIf=\"item.items\" class=\"ax-sub-menu {{ placementClass }}\">\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: item.items }\"\n >\n </ng-container>\n </ul>\n </li>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.AXTooltipDirective, selector: "[axTooltip]", inputs: ["tooltip", "placement", "delay"] }], encapsulation: i0.ViewEncapsulation.None });
83
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXMenuComponent, selector: "ax-menu", inputs: { menuTemplate: "menuTemplate", rtl: "rtl", size: "size", selection: "selection", mode: "mode", target: "target", floatAlignment: "floatAlignment", floatPlacemnet: "floatPlacemnet", direction: "direction", items: "items" }, outputs: { onItemClick: "onItemClick" }, queries: [{ propertyName: "_contentMenuTemplate", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<!-- <div class=\"ax menu-container {{size}}\" #container>\n <ul class=\"root\" [class.horizontal]=\"direction=='horizontal'\" [class.vertical]=\"direction=='vertical'\" #root>\n <ng-template #recursiveList let-list>\n <ng-container *ngFor=\"let item of list;trackBy:trackByItem\">\n <li class=\"ax-toolbar-menu-item ax {{item.type || 'ax primary'}} {{item.style || 'ax primary'}}\" [class.disabled]='item.disable' [class.subIcon]='item.items' [class.startIcon]='item.startIcon' [class.startIcon]='item.icon' [class.endIcon]='item.endIcon' *ngIf=\"item.visible!=false\" (click)=\"handleItemClick($event, item)\"\n [class.selected]=\"item.selected\" [class.divider]=\"item.divider\" [attr.title]=\"item.tooltip ? item.tooltip : null\"\n [attr.data-uid]=\"item.uid\"\n [class.split]=\"item.split\">\n <div class=\"content-side\">\n <ng-container *ngIf=\"menuTemplate; else menuBody\">\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { $implicit: item }\">\n </ng-container>\n </ng-container>\n <ng-template #menuBody>\n <span class=\"ax-toolbar-menu-item-text\">\n <i class=\"{{ item.startIcon }} start-icon ax-menu-item-icon\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }} start-icon ax-menu-item-icon\" *ngIf=\"item.icon\"></i>\n <span *ngIf=\"item.text\">{{ item.text }}</span>\n <i class=\"{{ item.endIcon }} end-icon ax-menu-item-icon\" *ngIf=\"item.endIcon\"></i>\n </span>\n </ng-template>\n </div>\n <div class=\"sub-icon-side\" *ngIf=\"item.hasChildren\">\n <i class=\"far fa-angle-down ax-menu-item-drop-icon\"></i>\n </div>\n <ul *ngIf=\"item.hasChildren\" class=\"collapsed sub-menu\">\n <ng-container *ngTemplateOutlet=\"\n recursiveList;\n context: { $implicit: item.items }\n \"></ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context: { $implicit: items }\"></ng-container>\n <li class=\"more\" #moreLI (click)=\"handleItemClick($event)\">\n <i class=\"far fa-bars\"></i>\n <ul #moreUL class=\"collapsed sub-menu\"></ul>\n </li>\n </ul>\n</div> -->\n\n<nav>\n <ul\n class=\"ax nav-menu\"\n [class.rtl]=\"rtl\"\n [class.nav-center]=\"direction == 'horizontal'\"\n [class.nav-vertical]=\"direction == 'vertical'\"\n >\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: items }\"\n ></ng-container>\n </ul>\n</nav>\n\n<ng-template #recursiveMenu let-items>\n <ng-container *ngFor=\"let item of items\">\n <li\n class=\"ax {{ item.style }}\"\n [ngClass]=\"{ disabled: item.disable }\"\n *ngIf=\"item?.visible != false\"\n (click)=\"handleItemClick($event, item)\"\n axTooltip\n [placement]=\"item.tooltipPlacement ? item.tooltipPlacement : 'bottom'\"\n [tooltip]=\"item.tooltip ? item.tooltip : ''\"\n >\n <div class=\"ax-menu-item\">\n <span class=\"menu-item-start-side\">\n <i class=\"{{ item.startIcon }}\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }}\" *ngIf=\"item.icon\"></i>\n <span class=\"ax-menu-item-text\" *ngIf=\"item.text\">{{\n item.text\n }}</span>\n </span>\n <span class=\"menu-item-end-side\">\n <i\n class=\"far fa-angle-down drop-icon\"\n *ngIf=\"item.items && item.text\"\n ></i>\n <i class=\"{{ item.endIcon }}\" *ngIf=\"item.endIcon\"></i>\n </span>\n </div>\n <ul *ngIf=\"item.items\" class=\"ax-sub-menu {{ placementClass }}\">\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: item.items }\"\n >\n </ng-container>\n </ul>\n </li>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.AXTooltipDirective, selector: "[axTooltip]", inputs: ["tooltip", "placement", "delay"] }], encapsulation: i0.ViewEncapsulation.None });
84
84
  }
85
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXMenuComponent, decorators: [{
86
86
  type: Component,
87
- args: [{ selector: 'ax-menu', encapsulation: ViewEncapsulation.None, template: "<!-- <div class=\"ax menu-container {{size}}\" #container>\n <ul class=\"root\" [class.horizontal]=\"direction=='horizontal'\" [class.vertical]=\"direction=='vertical'\" #root>\n <ng-template #recursiveList let-list>\n <ng-container *ngFor=\"let item of list;trackBy:trackByItem\">\n <li class=\"ax-toolbar-menu-item ax {{item.type || 'ax primary'}} {{item.style || 'ax primary'}}\" [class.disabled]='item.disable' [class.subIcon]='item.items' [class.startIcon]='item.startIcon' [class.startIcon]='item.icon' [class.endIcon]='item.endIcon' *ngIf=\"item.visible!=false\" (click)=\"handleItemClick($event, item)\"\n [class.selected]=\"item.selected\" [class.divider]=\"item.divider\" [attr.title]=\"item.tooltip ? item.tooltip : null\"\n [attr.data-uid]=\"item.uid\"\n [class.split]=\"item.split\">\n <div class=\"content-side\">\n <ng-container *ngIf=\"menuTemplate; else menuBody\">\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { $implicit: item }\">\n </ng-container>\n </ng-container>\n <ng-template #menuBody>\n <span class=\"ax-toolbar-menu-item-text\">\n <i class=\"{{ item.startIcon }} start-icon ax-menu-item-icon\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }} start-icon ax-menu-item-icon\" *ngIf=\"item.icon\"></i>\n <span *ngIf=\"item.text\">{{ item.text }}</span>\n <i class=\"{{ item.endIcon }} end-icon ax-menu-item-icon\" *ngIf=\"item.endIcon\"></i>\n </span>\n </ng-template>\n </div>\n <div class=\"sub-icon-side\" *ngIf=\"item.hasChildren\">\n <i class=\"far fa-angle-down ax-menu-item-drop-icon\"></i>\n </div>\n <ul *ngIf=\"item.hasChildren\" class=\"collapsed sub-menu\">\n <ng-container *ngTemplateOutlet=\"\n recursiveList;\n context: { $implicit: item.items }\n \"></ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context: { $implicit: items }\"></ng-container>\n <li class=\"more\" #moreLI (click)=\"handleItemClick($event)\">\n <i class=\"far fa-bars\"></i>\n <ul #moreUL class=\"collapsed sub-menu\"></ul>\n </li>\n </ul>\n</div> -->\n\n<nav>\n <ul\n class=\"ax nav-menu\"\n [class.rtl]=\"rtl\"\n [class.nav-center]=\"direction == 'horizontal'\"\n [class.nav-vertical]=\"direction == 'vertical'\"\n >\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: items }\"\n ></ng-container>\n </ul>\n</nav>\n\n<ng-template #recursiveMenu let-items>\n <ng-container *ngFor=\"let item of items\">\n <li\n class=\"ax {{ item.style }}\"\n [ngClass]=\"{ disabled: item.disable }\"\n *ngIf=\"item.visible === undefined || item.visible\"\n (click)=\"handleItemClick($event, item)\"\n axTooltip\n [placement]=\"item.tooltipPlacement ? item.tooltipPlacement : 'bottom'\"\n [tooltip]=\"item.tooltip ? item.tooltip : ''\"\n >\n <div class=\"ax-menu-item\">\n <span class=\"menu-item-start-side\">\n <i class=\"{{ item.startIcon }}\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }}\" *ngIf=\"item.icon\"></i>\n <span class=\"ax-menu-item-text\" *ngIf=\"item.text\">{{\n item.text\n }}</span>\n </span>\n <span class=\"menu-item-end-side\">\n <i\n class=\"far fa-angle-down drop-icon\"\n *ngIf=\"item.items && item.text\"\n ></i>\n <i class=\"{{ item.endIcon }}\" *ngIf=\"item.endIcon\"></i>\n </span>\n </div>\n <ul *ngIf=\"item.items\" class=\"ax-sub-menu {{ placementClass }}\">\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: item.items }\"\n >\n </ng-container>\n </ul>\n </li>\n </ng-container>\n</ng-template>\n" }]
87
+ args: [{ selector: 'ax-menu', encapsulation: ViewEncapsulation.None, template: "<!-- <div class=\"ax menu-container {{size}}\" #container>\n <ul class=\"root\" [class.horizontal]=\"direction=='horizontal'\" [class.vertical]=\"direction=='vertical'\" #root>\n <ng-template #recursiveList let-list>\n <ng-container *ngFor=\"let item of list;trackBy:trackByItem\">\n <li class=\"ax-toolbar-menu-item ax {{item.type || 'ax primary'}} {{item.style || 'ax primary'}}\" [class.disabled]='item.disable' [class.subIcon]='item.items' [class.startIcon]='item.startIcon' [class.startIcon]='item.icon' [class.endIcon]='item.endIcon' *ngIf=\"item.visible!=false\" (click)=\"handleItemClick($event, item)\"\n [class.selected]=\"item.selected\" [class.divider]=\"item.divider\" [attr.title]=\"item.tooltip ? item.tooltip : null\"\n [attr.data-uid]=\"item.uid\"\n [class.split]=\"item.split\">\n <div class=\"content-side\">\n <ng-container *ngIf=\"menuTemplate; else menuBody\">\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { $implicit: item }\">\n </ng-container>\n </ng-container>\n <ng-template #menuBody>\n <span class=\"ax-toolbar-menu-item-text\">\n <i class=\"{{ item.startIcon }} start-icon ax-menu-item-icon\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }} start-icon ax-menu-item-icon\" *ngIf=\"item.icon\"></i>\n <span *ngIf=\"item.text\">{{ item.text }}</span>\n <i class=\"{{ item.endIcon }} end-icon ax-menu-item-icon\" *ngIf=\"item.endIcon\"></i>\n </span>\n </ng-template>\n </div>\n <div class=\"sub-icon-side\" *ngIf=\"item.hasChildren\">\n <i class=\"far fa-angle-down ax-menu-item-drop-icon\"></i>\n </div>\n <ul *ngIf=\"item.hasChildren\" class=\"collapsed sub-menu\">\n <ng-container *ngTemplateOutlet=\"\n recursiveList;\n context: { $implicit: item.items }\n \"></ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context: { $implicit: items }\"></ng-container>\n <li class=\"more\" #moreLI (click)=\"handleItemClick($event)\">\n <i class=\"far fa-bars\"></i>\n <ul #moreUL class=\"collapsed sub-menu\"></ul>\n </li>\n </ul>\n</div> -->\n\n<nav>\n <ul\n class=\"ax nav-menu\"\n [class.rtl]=\"rtl\"\n [class.nav-center]=\"direction == 'horizontal'\"\n [class.nav-vertical]=\"direction == 'vertical'\"\n >\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: items }\"\n ></ng-container>\n </ul>\n</nav>\n\n<ng-template #recursiveMenu let-items>\n <ng-container *ngFor=\"let item of items\">\n <li\n class=\"ax {{ item.style }}\"\n [ngClass]=\"{ disabled: item.disable }\"\n *ngIf=\"item?.visible != false\"\n (click)=\"handleItemClick($event, item)\"\n axTooltip\n [placement]=\"item.tooltipPlacement ? item.tooltipPlacement : 'bottom'\"\n [tooltip]=\"item.tooltip ? item.tooltip : ''\"\n >\n <div class=\"ax-menu-item\">\n <span class=\"menu-item-start-side\">\n <i class=\"{{ item.startIcon }}\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }}\" *ngIf=\"item.icon\"></i>\n <span class=\"ax-menu-item-text\" *ngIf=\"item.text\">{{\n item.text\n }}</span>\n </span>\n <span class=\"menu-item-end-side\">\n <i\n class=\"far fa-angle-down drop-icon\"\n *ngIf=\"item.items && item.text\"\n ></i>\n <i class=\"{{ item.endIcon }}\" *ngIf=\"item.endIcon\"></i>\n </span>\n </div>\n <ul *ngIf=\"item.items\" class=\"ax-sub-menu {{ placementClass }}\">\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: item.items }\"\n >\n </ng-container>\n </ul>\n </li>\n </ng-container>\n</ng-template>\n" }]
88
88
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { _contentMenuTemplate: [{
89
89
  type: ContentChild,
90
90
  args: [TemplateRef, { static: true }]
@@ -111,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
111
111
  }], items: [{
112
112
  type: Input
113
113
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9tZW51L21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvbWVudS9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFFL0MsTUFBTSxPQUFPLG9CQUFxQixTQUFRLE9BQStCO0lBQ3ZFLElBQUksQ0FBUztDQUNkO0FBT0QsTUFBTSxPQUFPLGVBQWU7SUFDTjtJQUF5QjtJQUE3QyxZQUFvQixHQUFlLEVBQVUsR0FBc0I7UUFBL0MsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQUcsQ0FBQztJQUd2RSxvQkFBb0IsQ0FBbUI7SUFFL0IsYUFBYSxDQUFtQjtJQUN4QyxJQUNXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDN0UsQ0FBQztJQUNELElBQVcsWUFBWSxDQUFDLENBQW1CO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxvQkFBb0IsQ0FBTTtJQUUxQixjQUFjLENBQWtEO0lBR2hFLEdBQUcsQ0FBVTtJQUdiLFdBQVcsR0FDVCxJQUFJLFlBQVksRUFBd0IsQ0FBQztJQUczQyxJQUFJLEdBQWtCLElBQUksQ0FBQztJQUdwQixTQUFTLEdBQW1DLE1BQU0sQ0FBQztJQUduRCxJQUFJLEdBQStDLFNBQVMsQ0FBQztJQUc3RCxNQUFNLENBQVM7SUFHZixjQUFjLENBQWM7SUFFbkMsSUFDVyxjQUFjLENBQUMsQ0FBYztRQUN0QyxJQUFJLENBQUMsRUFBRTtZQUNMLFFBQVEsQ0FBQyxFQUFFO2dCQUNULEtBQUssWUFBWTtvQkFDZixJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDO29CQUM1QyxNQUFNO2dCQUNSO29CQUNFLE1BQU07YUFDVDtTQUNGO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBYztJQUczQixTQUFTLEdBQThCLFlBQVksQ0FBQztJQUVuRCxNQUFNLENBQWU7SUFDN0IsSUFDVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFXLEtBQUssQ0FBQyxDQUFlO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRztnQkFDTixNQUFNO3FCQUNILGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQztxQkFDOUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxDQUFhLEVBQUUsSUFBaUI7UUFDOUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQ0UsSUFBSTtZQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3RFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFDYjtZQUNBLE1BQU0sQ0FBQyxHQUFHO2dCQUNSLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7Z0JBQ25DLFNBQVMsRUFBRSxDQUFDO2dCQUNaLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTthQUNqQixDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDaEI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUI7WUFFRCxPQUFPO1NBQ1I7SUFDSCxDQUFDO3dHQW5HVSxlQUFlOzRGQUFmLGVBQWUsa1hBR1osV0FBVyw4REMzQjNCLDQrSEEyRkE7OzRGRG5FYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFNBQVMsaUJBRUosaUJBQWlCLENBQUMsSUFBSTtpSUFNckMsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS2hDLFlBQVk7c0JBRHRCLEtBQUs7Z0JBYU4sR0FBRztzQkFERixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTTtnQkFLUCxJQUFJO3NCQURILEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsY0FBYztzQkFEcEIsS0FBSztnQkFJSyxjQUFjO3NCQUR4QixLQUFLO2dCQWdCQyxTQUFTO3NCQURmLEtBQUs7Z0JBS0ssS0FBSztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNZW51SXRlbSwgQVhQbGFjZW1lbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEVsZW1lbnRTaXplIH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IEFYRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBBWE1lbnVJdGVtQ2xpY2tFdmVudCBleHRlbmRzIEFYRXZlbnQ8QVhNZW51SXRlbSwgTW91c2VFdmVudD4ge1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXG4gIF9jb250ZW50TWVudVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByaXZhdGUgX21lbnVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBtZW51VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX21lbnVUZW1wbGF0ZSA/IHRoaXMuX21lbnVUZW1wbGF0ZSA6IHRoaXMuX2NvbnRlbnRNZW51VGVtcGxhdGU7XG4gIH1cbiAgcHVibGljIHNldCBtZW51VGVtcGxhdGUodjogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuX21lbnVUZW1wbGF0ZSA9IHY7XG4gIH1cblxuICByZXNpemVDaGFuZ2VPYnNlcnZlcjogYW55O1xuXG4gIHBsYWNlbWVudENsYXNzOiAnYXgtZmxvYXQtYm90dG9tLXN0YXJ0JyB8ICdheC1mbG9hdC1ib3R0b20tZW5kJztcblxuICBASW5wdXQoKVxuICBydGw6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhNZW51SXRlbUNsaWNrRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPEFYTWVudUl0ZW1DbGlja0V2ZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IEFYRWxlbWVudFNpemUgPSAnbWQnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3Rpb246ICdub25lJyB8ICdzaW5nbGUnIHwgJ211bHRpcGxlJyA9ICdub25lJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbW9kZTogJ2NsaWNrJyB8ICdjb250ZXh0JyB8ICd2aXNpYmxlJyB8ICdtYW51YWwnID0gJ3Zpc2libGUnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YXJnZXQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmxvYXRBbGlnbm1lbnQ6IEFYUGxhY2VtZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmxvYXRQbGFjZW1uZXQodjogQVhQbGFjZW1lbnQpIHtcbiAgICBpZiAodikge1xuICAgICAgc3dpdGNoICh2KSB7XG4gICAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxuICAgICAgICAgIHRoaXMucGxhY2VtZW50Q2xhc3MgPSAnYXgtZmxvYXQtYm90dG9tLWVuZCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGN1cnJlbnRUYXJnZXQ6IEhUTUxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXJlY3Rpb246ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAnaG9yaXpvbnRhbCc7XG5cbiAgcHJpdmF0ZSBfaXRlbXM6IEFYTWVudUl0ZW1bXTtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBpdGVtcygpOiBBWE1lbnVJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgfVxuICBwdWJsaWMgc2V0IGl0ZW1zKHY6IEFYTWVudUl0ZW1bXSkge1xuICAgIHRoaXMuX2l0ZW1zID0gdjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJ0bCA9PSBudWxsKSB7XG4gICAgICB0aGlzLnJ0bCA9XG4gICAgICAgIHdpbmRvd1xuICAgICAgICAgIC5nZXRDb21wdXRlZFN0eWxlKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIG51bGwpXG4gICAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09PSAncnRsJztcbiAgICB9XG4gIH1cblxuICBoYW5kbGVJdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbT86IEFYTWVudUl0ZW0pIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmIChcbiAgICAgIGl0ZW0gJiZcbiAgICAgICghaXRlbS5pdGVtcyB8fCAhaXRlbS5pdGVtcy5maWx0ZXIoKGMpID0+IGMudmlzaWJsZSAhPT0gZmFsc2UpLmxlbmd0aCkgJiZcbiAgICAgICFpdGVtLmRpc2FibGVcbiAgICApIHtcbiAgICAgIGNvbnN0IG0gPSB7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGh0bWxFdmVudDogZSxcbiAgICAgICAgZGF0YTogaXRlbSxcbiAgICAgICAgbmFtZTogaXRlbT8ubmFtZSxcbiAgICAgIH07XG4gICAgICBpZiAoaXRlbS5vbkNsaWNrKSB7XG4gICAgICAgIGl0ZW0ub25DbGljaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KG0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJheCBtZW51LWNvbnRhaW5lciB7e3NpemV9fVwiICNjb250YWluZXI+XG4gIDx1bCBjbGFzcz1cInJvb3RcIiBbY2xhc3MuaG9yaXpvbnRhbF09XCJkaXJlY3Rpb249PSdob3Jpem9udGFsJ1wiIFtjbGFzcy52ZXJ0aWNhbF09XCJkaXJlY3Rpb249PSd2ZXJ0aWNhbCdcIiAjcm9vdD5cbiAgICA8bmctdGVtcGxhdGUgI3JlY3Vyc2l2ZUxpc3QgbGV0LWxpc3Q+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3Q7dHJhY2tCeTp0cmFja0J5SXRlbVwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJheC10b29sYmFyLW1lbnUtaXRlbSBheCB7e2l0ZW0udHlwZSB8fCAnYXggcHJpbWFyeSd9fSB7e2l0ZW0uc3R5bGUgfHwgJ2F4IHByaW1hcnknfX1cIiBbY2xhc3MuZGlzYWJsZWRdPSdpdGVtLmRpc2FibGUnICBbY2xhc3Muc3ViSWNvbl09J2l0ZW0uaXRlbXMnIFtjbGFzcy5zdGFydEljb25dPSdpdGVtLnN0YXJ0SWNvbicgW2NsYXNzLnN0YXJ0SWNvbl09J2l0ZW0uaWNvbicgW2NsYXNzLmVuZEljb25dPSdpdGVtLmVuZEljb24nICpuZ0lmPVwiaXRlbS52aXNpYmxlIT1mYWxzZVwiIChjbGljayk9XCJoYW5kbGVJdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIml0ZW0uc2VsZWN0ZWRcIiBbY2xhc3MuZGl2aWRlcl09XCJpdGVtLmRpdmlkZXJcIiBbYXR0ci50aXRsZV09XCJpdGVtLnRvb2x0aXAgPyBpdGVtLnRvb2x0aXAgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXVpZF09XCJpdGVtLnVpZFwiXG4gICAgICAgICAgW2NsYXNzLnNwbGl0XT1cIml0ZW0uc3BsaXRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1zaWRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudVRlbXBsYXRlOyBlbHNlIG1lbnVCb2R5XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51VGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbWVudUJvZHk+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdG9vbGJhci1tZW51LWl0ZW0tdGV4dFwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3sgaXRlbS5zdGFydEljb24gfX0gc3RhcnQtaWNvbiBheC1tZW51LWl0ZW0taWNvblwiICpuZ0lmPVwiaXRlbS5zdGFydEljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7eyBpdGVtLmljb24gfX0gc3RhcnQtaWNvbiBheC1tZW51LWl0ZW0taWNvblwiICpuZ0lmPVwiaXRlbS5pY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS50ZXh0XCI+e3sgaXRlbS50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3sgaXRlbS5lbmRJY29uIH19IGVuZC1pY29uIGF4LW1lbnUtaXRlbS1pY29uXCIgKm5nSWY9XCJpdGVtLmVuZEljb25cIj48L2k+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1pY29uLXNpZGVcIiAqbmdJZj1cIml0ZW0uaGFzQ2hpbGRyZW5cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWFuZ2xlLWRvd24gYXgtbWVudS1pdGVtLWRyb3AtaWNvblwiPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dWwgKm5nSWY9XCJpdGVtLmhhc0NoaWxkcmVuXCIgY2xhc3M9XCJjb2xsYXBzZWQgc3ViLW1lbnVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgcmVjdXJzaXZlTGlzdDtcbiAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0uaXRlbXMgfVxuICAgICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZUxpc3Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtcyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPGxpIGNsYXNzPVwibW9yZVwiICNtb3JlTEkgKGNsaWNrKT1cImhhbmRsZUl0ZW1DbGljaygkZXZlbnQpXCI+XG4gICAgICA8aSBjbGFzcz1cImZhciBmYS1iYXJzXCI+PC9pPlxuICAgICAgPHVsICNtb3JlVUwgY2xhc3M9XCJjb2xsYXBzZWQgc3ViLW1lbnVcIj48L3VsPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj4gLS0+XG5cbjxuYXY+XG4gIDx1bFxuICAgIGNsYXNzPVwiYXggbmF2LW1lbnVcIlxuICAgIFtjbGFzcy5ydGxdPVwicnRsXCJcbiAgICBbY2xhc3MubmF2LWNlbnRlcl09XCJkaXJlY3Rpb24gPT0gJ2hvcml6b250YWwnXCJcbiAgICBbY2xhc3MubmF2LXZlcnRpY2FsXT1cImRpcmVjdGlvbiA9PSAndmVydGljYWwnXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlTWVudTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW1zIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cbjwvbmF2PlxuXG48bmctdGVtcGxhdGUgI3JlY3Vyc2l2ZU1lbnUgbGV0LWl0ZW1zPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgPGxpXG4gICAgICBjbGFzcz1cImF4IHt7IGl0ZW0uc3R5bGUgfX1cIlxuICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogaXRlbS5kaXNhYmxlIH1cIlxuICAgICAgKm5nSWY9XCJpdGVtLnZpc2libGUgPT09IHVuZGVmaW5lZCB8fCBpdGVtLnZpc2libGVcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgIGF4VG9vbHRpcFxuICAgICAgW3BsYWNlbWVudF09XCJpdGVtLnRvb2x0aXBQbGFjZW1lbnQgPyBpdGVtLnRvb2x0aXBQbGFjZW1lbnQgOiAnYm90dG9tJ1wiXG4gICAgICBbdG9vbHRpcF09XCJpdGVtLnRvb2x0aXAgPyBpdGVtLnRvb2x0aXAgOiAnJ1wiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW1lbnUtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS1zdGFydC1zaWRlXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ7eyBpdGVtLnN0YXJ0SWNvbiB9fVwiICpuZ0lmPVwiaXRlbS5zdGFydEljb25cIj48L2k+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ7eyBpdGVtLmljb24gfX1cIiAqbmdJZj1cIml0ZW0uaWNvblwiPjwvaT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LW1lbnUtaXRlbS10ZXh0XCIgKm5nSWY9XCJpdGVtLnRleHRcIj57e1xuICAgICAgICAgICAgaXRlbS50ZXh0XG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tZW5kLXNpZGVcIj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJmYXIgZmEtYW5nbGUtZG93biBkcm9wLWljb25cIlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLml0ZW1zICYmIGl0ZW0udGV4dFwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8aSBjbGFzcz1cInt7IGl0ZW0uZW5kSWNvbiB9fVwiICpuZ0lmPVwiaXRlbS5lbmRJY29uXCI+PC9pPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx1bCAqbmdJZj1cIml0ZW0uaXRlbXNcIiBjbGFzcz1cImF4LXN1Yi1tZW51IHt7IHBsYWNlbWVudENsYXNzIH19XCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZU1lbnU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLml0ZW1zIH1cIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC91bD5cbiAgICA8L2xpPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9tZW51L21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvbWVudS9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFFL0MsTUFBTSxPQUFPLG9CQUFxQixTQUFRLE9BQStCO0lBQ3ZFLElBQUksQ0FBUztDQUNkO0FBT0QsTUFBTSxPQUFPLGVBQWU7SUFDTjtJQUF5QjtJQUE3QyxZQUFvQixHQUFlLEVBQVUsR0FBc0I7UUFBL0MsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQUcsQ0FBQztJQUd2RSxvQkFBb0IsQ0FBbUI7SUFFL0IsYUFBYSxDQUFtQjtJQUN4QyxJQUNXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDN0UsQ0FBQztJQUNELElBQVcsWUFBWSxDQUFDLENBQW1CO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxvQkFBb0IsQ0FBTTtJQUUxQixjQUFjLENBQWtEO0lBR2hFLEdBQUcsQ0FBVTtJQUdiLFdBQVcsR0FDVCxJQUFJLFlBQVksRUFBd0IsQ0FBQztJQUczQyxJQUFJLEdBQWtCLElBQUksQ0FBQztJQUdwQixTQUFTLEdBQW1DLE1BQU0sQ0FBQztJQUduRCxJQUFJLEdBQStDLFNBQVMsQ0FBQztJQUc3RCxNQUFNLENBQVM7SUFHZixjQUFjLENBQWM7SUFFbkMsSUFDVyxjQUFjLENBQUMsQ0FBYztRQUN0QyxJQUFJLENBQUMsRUFBRTtZQUNMLFFBQVEsQ0FBQyxFQUFFO2dCQUNULEtBQUssWUFBWTtvQkFDZixJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDO29CQUM1QyxNQUFNO2dCQUNSO29CQUNFLE1BQU07YUFDVDtTQUNGO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBYztJQUczQixTQUFTLEdBQThCLFlBQVksQ0FBQztJQUVuRCxNQUFNLENBQWU7SUFDN0IsSUFDVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFXLEtBQUssQ0FBQyxDQUFlO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRztnQkFDTixNQUFNO3FCQUNILGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQztxQkFDOUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxDQUFhLEVBQUUsSUFBaUI7UUFDOUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQ0UsSUFBSTtZQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3RFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFDYjtZQUNBLE1BQU0sQ0FBQyxHQUFHO2dCQUNSLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7Z0JBQ25DLFNBQVMsRUFBRSxDQUFDO2dCQUNaLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTthQUNqQixDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDaEI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUI7WUFFRCxPQUFPO1NBQ1I7SUFDSCxDQUFDO3dHQW5HVSxlQUFlOzRGQUFmLGVBQWUsa1hBR1osV0FBVyw4REMzQjNCLHc5SEEyRkE7OzRGRG5FYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFNBQVMsaUJBRUosaUJBQWlCLENBQUMsSUFBSTtpSUFNckMsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS2hDLFlBQVk7c0JBRHRCLEtBQUs7Z0JBYU4sR0FBRztzQkFERixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTTtnQkFLUCxJQUFJO3NCQURILEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsY0FBYztzQkFEcEIsS0FBSztnQkFJSyxjQUFjO3NCQUR4QixLQUFLO2dCQWdCQyxTQUFTO3NCQURmLEtBQUs7Z0JBS0ssS0FBSztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNZW51SXRlbSwgQVhQbGFjZW1lbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEVsZW1lbnRTaXplIH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IEFYRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBBWE1lbnVJdGVtQ2xpY2tFdmVudCBleHRlbmRzIEFYRXZlbnQ8QVhNZW51SXRlbSwgTW91c2VFdmVudD4ge1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXG4gIF9jb250ZW50TWVudVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByaXZhdGUgX21lbnVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBtZW51VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX21lbnVUZW1wbGF0ZSA/IHRoaXMuX21lbnVUZW1wbGF0ZSA6IHRoaXMuX2NvbnRlbnRNZW51VGVtcGxhdGU7XG4gIH1cbiAgcHVibGljIHNldCBtZW51VGVtcGxhdGUodjogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuX21lbnVUZW1wbGF0ZSA9IHY7XG4gIH1cblxuICByZXNpemVDaGFuZ2VPYnNlcnZlcjogYW55O1xuXG4gIHBsYWNlbWVudENsYXNzOiAnYXgtZmxvYXQtYm90dG9tLXN0YXJ0JyB8ICdheC1mbG9hdC1ib3R0b20tZW5kJztcblxuICBASW5wdXQoKVxuICBydGw6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhNZW51SXRlbUNsaWNrRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPEFYTWVudUl0ZW1DbGlja0V2ZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IEFYRWxlbWVudFNpemUgPSAnbWQnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3Rpb246ICdub25lJyB8ICdzaW5nbGUnIHwgJ211bHRpcGxlJyA9ICdub25lJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbW9kZTogJ2NsaWNrJyB8ICdjb250ZXh0JyB8ICd2aXNpYmxlJyB8ICdtYW51YWwnID0gJ3Zpc2libGUnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YXJnZXQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmxvYXRBbGlnbm1lbnQ6IEFYUGxhY2VtZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmxvYXRQbGFjZW1uZXQodjogQVhQbGFjZW1lbnQpIHtcbiAgICBpZiAodikge1xuICAgICAgc3dpdGNoICh2KSB7XG4gICAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxuICAgICAgICAgIHRoaXMucGxhY2VtZW50Q2xhc3MgPSAnYXgtZmxvYXQtYm90dG9tLWVuZCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGN1cnJlbnRUYXJnZXQ6IEhUTUxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXJlY3Rpb246ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAnaG9yaXpvbnRhbCc7XG5cbiAgcHJpdmF0ZSBfaXRlbXM6IEFYTWVudUl0ZW1bXTtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBpdGVtcygpOiBBWE1lbnVJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgfVxuICBwdWJsaWMgc2V0IGl0ZW1zKHY6IEFYTWVudUl0ZW1bXSkge1xuICAgIHRoaXMuX2l0ZW1zID0gdjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJ0bCA9PSBudWxsKSB7XG4gICAgICB0aGlzLnJ0bCA9XG4gICAgICAgIHdpbmRvd1xuICAgICAgICAgIC5nZXRDb21wdXRlZFN0eWxlKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIG51bGwpXG4gICAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09PSAncnRsJztcbiAgICB9XG4gIH1cblxuICBoYW5kbGVJdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbT86IEFYTWVudUl0ZW0pIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmIChcbiAgICAgIGl0ZW0gJiZcbiAgICAgICghaXRlbS5pdGVtcyB8fCAhaXRlbS5pdGVtcy5maWx0ZXIoKGMpID0+IGMudmlzaWJsZSAhPT0gZmFsc2UpLmxlbmd0aCkgJiZcbiAgICAgICFpdGVtLmRpc2FibGVcbiAgICApIHtcbiAgICAgIGNvbnN0IG0gPSB7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGh0bWxFdmVudDogZSxcbiAgICAgICAgZGF0YTogaXRlbSxcbiAgICAgICAgbmFtZTogaXRlbT8ubmFtZSxcbiAgICAgIH07XG4gICAgICBpZiAoaXRlbS5vbkNsaWNrKSB7XG4gICAgICAgIGl0ZW0ub25DbGljaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KG0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJheCBtZW51LWNvbnRhaW5lciB7e3NpemV9fVwiICNjb250YWluZXI+XG4gIDx1bCBjbGFzcz1cInJvb3RcIiBbY2xhc3MuaG9yaXpvbnRhbF09XCJkaXJlY3Rpb249PSdob3Jpem9udGFsJ1wiIFtjbGFzcy52ZXJ0aWNhbF09XCJkaXJlY3Rpb249PSd2ZXJ0aWNhbCdcIiAjcm9vdD5cbiAgICA8bmctdGVtcGxhdGUgI3JlY3Vyc2l2ZUxpc3QgbGV0LWxpc3Q+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3Q7dHJhY2tCeTp0cmFja0J5SXRlbVwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJheC10b29sYmFyLW1lbnUtaXRlbSBheCB7e2l0ZW0udHlwZSB8fCAnYXggcHJpbWFyeSd9fSB7e2l0ZW0uc3R5bGUgfHwgJ2F4IHByaW1hcnknfX1cIiBbY2xhc3MuZGlzYWJsZWRdPSdpdGVtLmRpc2FibGUnICBbY2xhc3Muc3ViSWNvbl09J2l0ZW0uaXRlbXMnIFtjbGFzcy5zdGFydEljb25dPSdpdGVtLnN0YXJ0SWNvbicgW2NsYXNzLnN0YXJ0SWNvbl09J2l0ZW0uaWNvbicgW2NsYXNzLmVuZEljb25dPSdpdGVtLmVuZEljb24nICpuZ0lmPVwiaXRlbS52aXNpYmxlIT1mYWxzZVwiIChjbGljayk9XCJoYW5kbGVJdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIml0ZW0uc2VsZWN0ZWRcIiBbY2xhc3MuZGl2aWRlcl09XCJpdGVtLmRpdmlkZXJcIiBbYXR0ci50aXRsZV09XCJpdGVtLnRvb2x0aXAgPyBpdGVtLnRvb2x0aXAgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXVpZF09XCJpdGVtLnVpZFwiXG4gICAgICAgICAgW2NsYXNzLnNwbGl0XT1cIml0ZW0uc3BsaXRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1zaWRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudVRlbXBsYXRlOyBlbHNlIG1lbnVCb2R5XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51VGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbWVudUJvZHk+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdG9vbGJhci1tZW51LWl0ZW0tdGV4dFwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3sgaXRlbS5zdGFydEljb24gfX0gc3RhcnQtaWNvbiBheC1tZW51LWl0ZW0taWNvblwiICpuZ0lmPVwiaXRlbS5zdGFydEljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7eyBpdGVtLmljb24gfX0gc3RhcnQtaWNvbiBheC1tZW51LWl0ZW0taWNvblwiICpuZ0lmPVwiaXRlbS5pY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS50ZXh0XCI+e3sgaXRlbS50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3sgaXRlbS5lbmRJY29uIH19IGVuZC1pY29uIGF4LW1lbnUtaXRlbS1pY29uXCIgKm5nSWY9XCJpdGVtLmVuZEljb25cIj48L2k+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1pY29uLXNpZGVcIiAqbmdJZj1cIml0ZW0uaGFzQ2hpbGRyZW5cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWFuZ2xlLWRvd24gYXgtbWVudS1pdGVtLWRyb3AtaWNvblwiPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dWwgKm5nSWY9XCJpdGVtLmhhc0NoaWxkcmVuXCIgY2xhc3M9XCJjb2xsYXBzZWQgc3ViLW1lbnVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgcmVjdXJzaXZlTGlzdDtcbiAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0uaXRlbXMgfVxuICAgICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZUxpc3Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtcyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPGxpIGNsYXNzPVwibW9yZVwiICNtb3JlTEkgKGNsaWNrKT1cImhhbmRsZUl0ZW1DbGljaygkZXZlbnQpXCI+XG4gICAgICA8aSBjbGFzcz1cImZhciBmYS1iYXJzXCI+PC9pPlxuICAgICAgPHVsICNtb3JlVUwgY2xhc3M9XCJjb2xsYXBzZWQgc3ViLW1lbnVcIj48L3VsPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj4gLS0+XG5cbjxuYXY+XG4gIDx1bFxuICAgIGNsYXNzPVwiYXggbmF2LW1lbnVcIlxuICAgIFtjbGFzcy5ydGxdPVwicnRsXCJcbiAgICBbY2xhc3MubmF2LWNlbnRlcl09XCJkaXJlY3Rpb24gPT0gJ2hvcml6b250YWwnXCJcbiAgICBbY2xhc3MubmF2LXZlcnRpY2FsXT1cImRpcmVjdGlvbiA9PSAndmVydGljYWwnXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlTWVudTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW1zIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cbjwvbmF2PlxuXG48bmctdGVtcGxhdGUgI3JlY3Vyc2l2ZU1lbnUgbGV0LWl0ZW1zPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgPGxpXG4gICAgICBjbGFzcz1cImF4IHt7IGl0ZW0uc3R5bGUgfX1cIlxuICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogaXRlbS5kaXNhYmxlIH1cIlxuICAgICAgKm5nSWY9XCJpdGVtPy52aXNpYmxlICE9IGZhbHNlXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVJdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICBheFRvb2x0aXBcbiAgICAgIFtwbGFjZW1lbnRdPVwiaXRlbS50b29sdGlwUGxhY2VtZW50ID8gaXRlbS50b29sdGlwUGxhY2VtZW50IDogJ2JvdHRvbSdcIlxuICAgICAgW3Rvb2x0aXBdPVwiaXRlbS50b29sdGlwID8gaXRlbS50b29sdGlwIDogJydcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1tZW51LWl0ZW1cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tc3RhcnQtc2lkZVwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwie3sgaXRlbS5zdGFydEljb24gfX1cIiAqbmdJZj1cIml0ZW0uc3RhcnRJY29uXCI+PC9pPlxuICAgICAgICAgIDxpIGNsYXNzPVwie3sgaXRlbS5pY29uIH19XCIgKm5nSWY9XCJpdGVtLmljb25cIj48L2k+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1tZW51LWl0ZW0tdGV4dFwiICpuZ0lmPVwiaXRlbS50ZXh0XCI+e3tcbiAgICAgICAgICAgIGl0ZW0udGV4dFxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLWVuZC1zaWRlXCI+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiZmFyIGZhLWFuZ2xlLWRvd24gZHJvcC1pY29uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pdGVtcyAmJiBpdGVtLnRleHRcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ7eyBpdGVtLmVuZEljb24gfX1cIiAqbmdJZj1cIml0ZW0uZW5kSWNvblwiPjwvaT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8dWwgKm5nSWY9XCJpdGVtLml0ZW1zXCIgY2xhc3M9XCJheC1zdWItbWVudSB7eyBwbGFjZW1lbnRDbGFzcyB9fVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWN1cnNpdmVNZW51OyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbS5pdGVtcyB9XCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdWw+XG4gICAgPC9saT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1851,11 +1851,11 @@ class AXMenuComponent {
1851
1851
  }
1852
1852
  }
1853
1853
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1854
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXMenuComponent, selector: "ax-menu", inputs: { menuTemplate: "menuTemplate", rtl: "rtl", size: "size", selection: "selection", mode: "mode", target: "target", floatAlignment: "floatAlignment", floatPlacemnet: "floatPlacemnet", direction: "direction", items: "items" }, outputs: { onItemClick: "onItemClick" }, queries: [{ propertyName: "_contentMenuTemplate", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<!-- <div class=\"ax menu-container {{size}}\" #container>\n <ul class=\"root\" [class.horizontal]=\"direction=='horizontal'\" [class.vertical]=\"direction=='vertical'\" #root>\n <ng-template #recursiveList let-list>\n <ng-container *ngFor=\"let item of list;trackBy:trackByItem\">\n <li class=\"ax-toolbar-menu-item ax {{item.type || 'ax primary'}} {{item.style || 'ax primary'}}\" [class.disabled]='item.disable' [class.subIcon]='item.items' [class.startIcon]='item.startIcon' [class.startIcon]='item.icon' [class.endIcon]='item.endIcon' *ngIf=\"item.visible!=false\" (click)=\"handleItemClick($event, item)\"\n [class.selected]=\"item.selected\" [class.divider]=\"item.divider\" [attr.title]=\"item.tooltip ? item.tooltip : null\"\n [attr.data-uid]=\"item.uid\"\n [class.split]=\"item.split\">\n <div class=\"content-side\">\n <ng-container *ngIf=\"menuTemplate; else menuBody\">\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { $implicit: item }\">\n </ng-container>\n </ng-container>\n <ng-template #menuBody>\n <span class=\"ax-toolbar-menu-item-text\">\n <i class=\"{{ item.startIcon }} start-icon ax-menu-item-icon\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }} start-icon ax-menu-item-icon\" *ngIf=\"item.icon\"></i>\n <span *ngIf=\"item.text\">{{ item.text }}</span>\n <i class=\"{{ item.endIcon }} end-icon ax-menu-item-icon\" *ngIf=\"item.endIcon\"></i>\n </span>\n </ng-template>\n </div>\n <div class=\"sub-icon-side\" *ngIf=\"item.hasChildren\">\n <i class=\"far fa-angle-down ax-menu-item-drop-icon\"></i>\n </div>\n <ul *ngIf=\"item.hasChildren\" class=\"collapsed sub-menu\">\n <ng-container *ngTemplateOutlet=\"\n recursiveList;\n context: { $implicit: item.items }\n \"></ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context: { $implicit: items }\"></ng-container>\n <li class=\"more\" #moreLI (click)=\"handleItemClick($event)\">\n <i class=\"far fa-bars\"></i>\n <ul #moreUL class=\"collapsed sub-menu\"></ul>\n </li>\n </ul>\n</div> -->\n\n<nav>\n <ul\n class=\"ax nav-menu\"\n [class.rtl]=\"rtl\"\n [class.nav-center]=\"direction == 'horizontal'\"\n [class.nav-vertical]=\"direction == 'vertical'\"\n >\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: items }\"\n ></ng-container>\n </ul>\n</nav>\n\n<ng-template #recursiveMenu let-items>\n <ng-container *ngFor=\"let item of items\">\n <li\n class=\"ax {{ item.style }}\"\n [ngClass]=\"{ disabled: item.disable }\"\n *ngIf=\"item.visible === undefined || item.visible\"\n (click)=\"handleItemClick($event, item)\"\n axTooltip\n [placement]=\"item.tooltipPlacement ? item.tooltipPlacement : 'bottom'\"\n [tooltip]=\"item.tooltip ? item.tooltip : ''\"\n >\n <div class=\"ax-menu-item\">\n <span class=\"menu-item-start-side\">\n <i class=\"{{ item.startIcon }}\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }}\" *ngIf=\"item.icon\"></i>\n <span class=\"ax-menu-item-text\" *ngIf=\"item.text\">{{\n item.text\n }}</span>\n </span>\n <span class=\"menu-item-end-side\">\n <i\n class=\"far fa-angle-down drop-icon\"\n *ngIf=\"item.items && item.text\"\n ></i>\n <i class=\"{{ item.endIcon }}\" *ngIf=\"item.endIcon\"></i>\n </span>\n </div>\n <ul *ngIf=\"item.items\" class=\"ax-sub-menu {{ placementClass }}\">\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: item.items }\"\n >\n </ng-container>\n </ul>\n </li>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["tooltip", "placement", "delay"] }], encapsulation: i0.ViewEncapsulation.None });
1854
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXMenuComponent, selector: "ax-menu", inputs: { menuTemplate: "menuTemplate", rtl: "rtl", size: "size", selection: "selection", mode: "mode", target: "target", floatAlignment: "floatAlignment", floatPlacemnet: "floatPlacemnet", direction: "direction", items: "items" }, outputs: { onItemClick: "onItemClick" }, queries: [{ propertyName: "_contentMenuTemplate", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<!-- <div class=\"ax menu-container {{size}}\" #container>\n <ul class=\"root\" [class.horizontal]=\"direction=='horizontal'\" [class.vertical]=\"direction=='vertical'\" #root>\n <ng-template #recursiveList let-list>\n <ng-container *ngFor=\"let item of list;trackBy:trackByItem\">\n <li class=\"ax-toolbar-menu-item ax {{item.type || 'ax primary'}} {{item.style || 'ax primary'}}\" [class.disabled]='item.disable' [class.subIcon]='item.items' [class.startIcon]='item.startIcon' [class.startIcon]='item.icon' [class.endIcon]='item.endIcon' *ngIf=\"item.visible!=false\" (click)=\"handleItemClick($event, item)\"\n [class.selected]=\"item.selected\" [class.divider]=\"item.divider\" [attr.title]=\"item.tooltip ? item.tooltip : null\"\n [attr.data-uid]=\"item.uid\"\n [class.split]=\"item.split\">\n <div class=\"content-side\">\n <ng-container *ngIf=\"menuTemplate; else menuBody\">\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { $implicit: item }\">\n </ng-container>\n </ng-container>\n <ng-template #menuBody>\n <span class=\"ax-toolbar-menu-item-text\">\n <i class=\"{{ item.startIcon }} start-icon ax-menu-item-icon\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }} start-icon ax-menu-item-icon\" *ngIf=\"item.icon\"></i>\n <span *ngIf=\"item.text\">{{ item.text }}</span>\n <i class=\"{{ item.endIcon }} end-icon ax-menu-item-icon\" *ngIf=\"item.endIcon\"></i>\n </span>\n </ng-template>\n </div>\n <div class=\"sub-icon-side\" *ngIf=\"item.hasChildren\">\n <i class=\"far fa-angle-down ax-menu-item-drop-icon\"></i>\n </div>\n <ul *ngIf=\"item.hasChildren\" class=\"collapsed sub-menu\">\n <ng-container *ngTemplateOutlet=\"\n recursiveList;\n context: { $implicit: item.items }\n \"></ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context: { $implicit: items }\"></ng-container>\n <li class=\"more\" #moreLI (click)=\"handleItemClick($event)\">\n <i class=\"far fa-bars\"></i>\n <ul #moreUL class=\"collapsed sub-menu\"></ul>\n </li>\n </ul>\n</div> -->\n\n<nav>\n <ul\n class=\"ax nav-menu\"\n [class.rtl]=\"rtl\"\n [class.nav-center]=\"direction == 'horizontal'\"\n [class.nav-vertical]=\"direction == 'vertical'\"\n >\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: items }\"\n ></ng-container>\n </ul>\n</nav>\n\n<ng-template #recursiveMenu let-items>\n <ng-container *ngFor=\"let item of items\">\n <li\n class=\"ax {{ item.style }}\"\n [ngClass]=\"{ disabled: item.disable }\"\n *ngIf=\"item?.visible != false\"\n (click)=\"handleItemClick($event, item)\"\n axTooltip\n [placement]=\"item.tooltipPlacement ? item.tooltipPlacement : 'bottom'\"\n [tooltip]=\"item.tooltip ? item.tooltip : ''\"\n >\n <div class=\"ax-menu-item\">\n <span class=\"menu-item-start-side\">\n <i class=\"{{ item.startIcon }}\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }}\" *ngIf=\"item.icon\"></i>\n <span class=\"ax-menu-item-text\" *ngIf=\"item.text\">{{\n item.text\n }}</span>\n </span>\n <span class=\"menu-item-end-side\">\n <i\n class=\"far fa-angle-down drop-icon\"\n *ngIf=\"item.items && item.text\"\n ></i>\n <i class=\"{{ item.endIcon }}\" *ngIf=\"item.endIcon\"></i>\n </span>\n </div>\n <ul *ngIf=\"item.items\" class=\"ax-sub-menu {{ placementClass }}\">\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: item.items }\"\n >\n </ng-container>\n </ul>\n </li>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["tooltip", "placement", "delay"] }], encapsulation: i0.ViewEncapsulation.None });
1855
1855
  }
1856
1856
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXMenuComponent, decorators: [{
1857
1857
  type: Component,
1858
- args: [{ selector: 'ax-menu', encapsulation: ViewEncapsulation.None, template: "<!-- <div class=\"ax menu-container {{size}}\" #container>\n <ul class=\"root\" [class.horizontal]=\"direction=='horizontal'\" [class.vertical]=\"direction=='vertical'\" #root>\n <ng-template #recursiveList let-list>\n <ng-container *ngFor=\"let item of list;trackBy:trackByItem\">\n <li class=\"ax-toolbar-menu-item ax {{item.type || 'ax primary'}} {{item.style || 'ax primary'}}\" [class.disabled]='item.disable' [class.subIcon]='item.items' [class.startIcon]='item.startIcon' [class.startIcon]='item.icon' [class.endIcon]='item.endIcon' *ngIf=\"item.visible!=false\" (click)=\"handleItemClick($event, item)\"\n [class.selected]=\"item.selected\" [class.divider]=\"item.divider\" [attr.title]=\"item.tooltip ? item.tooltip : null\"\n [attr.data-uid]=\"item.uid\"\n [class.split]=\"item.split\">\n <div class=\"content-side\">\n <ng-container *ngIf=\"menuTemplate; else menuBody\">\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { $implicit: item }\">\n </ng-container>\n </ng-container>\n <ng-template #menuBody>\n <span class=\"ax-toolbar-menu-item-text\">\n <i class=\"{{ item.startIcon }} start-icon ax-menu-item-icon\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }} start-icon ax-menu-item-icon\" *ngIf=\"item.icon\"></i>\n <span *ngIf=\"item.text\">{{ item.text }}</span>\n <i class=\"{{ item.endIcon }} end-icon ax-menu-item-icon\" *ngIf=\"item.endIcon\"></i>\n </span>\n </ng-template>\n </div>\n <div class=\"sub-icon-side\" *ngIf=\"item.hasChildren\">\n <i class=\"far fa-angle-down ax-menu-item-drop-icon\"></i>\n </div>\n <ul *ngIf=\"item.hasChildren\" class=\"collapsed sub-menu\">\n <ng-container *ngTemplateOutlet=\"\n recursiveList;\n context: { $implicit: item.items }\n \"></ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context: { $implicit: items }\"></ng-container>\n <li class=\"more\" #moreLI (click)=\"handleItemClick($event)\">\n <i class=\"far fa-bars\"></i>\n <ul #moreUL class=\"collapsed sub-menu\"></ul>\n </li>\n </ul>\n</div> -->\n\n<nav>\n <ul\n class=\"ax nav-menu\"\n [class.rtl]=\"rtl\"\n [class.nav-center]=\"direction == 'horizontal'\"\n [class.nav-vertical]=\"direction == 'vertical'\"\n >\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: items }\"\n ></ng-container>\n </ul>\n</nav>\n\n<ng-template #recursiveMenu let-items>\n <ng-container *ngFor=\"let item of items\">\n <li\n class=\"ax {{ item.style }}\"\n [ngClass]=\"{ disabled: item.disable }\"\n *ngIf=\"item.visible === undefined || item.visible\"\n (click)=\"handleItemClick($event, item)\"\n axTooltip\n [placement]=\"item.tooltipPlacement ? item.tooltipPlacement : 'bottom'\"\n [tooltip]=\"item.tooltip ? item.tooltip : ''\"\n >\n <div class=\"ax-menu-item\">\n <span class=\"menu-item-start-side\">\n <i class=\"{{ item.startIcon }}\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }}\" *ngIf=\"item.icon\"></i>\n <span class=\"ax-menu-item-text\" *ngIf=\"item.text\">{{\n item.text\n }}</span>\n </span>\n <span class=\"menu-item-end-side\">\n <i\n class=\"far fa-angle-down drop-icon\"\n *ngIf=\"item.items && item.text\"\n ></i>\n <i class=\"{{ item.endIcon }}\" *ngIf=\"item.endIcon\"></i>\n </span>\n </div>\n <ul *ngIf=\"item.items\" class=\"ax-sub-menu {{ placementClass }}\">\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: item.items }\"\n >\n </ng-container>\n </ul>\n </li>\n </ng-container>\n</ng-template>\n" }]
1858
+ args: [{ selector: 'ax-menu', encapsulation: ViewEncapsulation.None, template: "<!-- <div class=\"ax menu-container {{size}}\" #container>\n <ul class=\"root\" [class.horizontal]=\"direction=='horizontal'\" [class.vertical]=\"direction=='vertical'\" #root>\n <ng-template #recursiveList let-list>\n <ng-container *ngFor=\"let item of list;trackBy:trackByItem\">\n <li class=\"ax-toolbar-menu-item ax {{item.type || 'ax primary'}} {{item.style || 'ax primary'}}\" [class.disabled]='item.disable' [class.subIcon]='item.items' [class.startIcon]='item.startIcon' [class.startIcon]='item.icon' [class.endIcon]='item.endIcon' *ngIf=\"item.visible!=false\" (click)=\"handleItemClick($event, item)\"\n [class.selected]=\"item.selected\" [class.divider]=\"item.divider\" [attr.title]=\"item.tooltip ? item.tooltip : null\"\n [attr.data-uid]=\"item.uid\"\n [class.split]=\"item.split\">\n <div class=\"content-side\">\n <ng-container *ngIf=\"menuTemplate; else menuBody\">\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { $implicit: item }\">\n </ng-container>\n </ng-container>\n <ng-template #menuBody>\n <span class=\"ax-toolbar-menu-item-text\">\n <i class=\"{{ item.startIcon }} start-icon ax-menu-item-icon\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }} start-icon ax-menu-item-icon\" *ngIf=\"item.icon\"></i>\n <span *ngIf=\"item.text\">{{ item.text }}</span>\n <i class=\"{{ item.endIcon }} end-icon ax-menu-item-icon\" *ngIf=\"item.endIcon\"></i>\n </span>\n </ng-template>\n </div>\n <div class=\"sub-icon-side\" *ngIf=\"item.hasChildren\">\n <i class=\"far fa-angle-down ax-menu-item-drop-icon\"></i>\n </div>\n <ul *ngIf=\"item.hasChildren\" class=\"collapsed sub-menu\">\n <ng-container *ngTemplateOutlet=\"\n recursiveList;\n context: { $implicit: item.items }\n \"></ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context: { $implicit: items }\"></ng-container>\n <li class=\"more\" #moreLI (click)=\"handleItemClick($event)\">\n <i class=\"far fa-bars\"></i>\n <ul #moreUL class=\"collapsed sub-menu\"></ul>\n </li>\n </ul>\n</div> -->\n\n<nav>\n <ul\n class=\"ax nav-menu\"\n [class.rtl]=\"rtl\"\n [class.nav-center]=\"direction == 'horizontal'\"\n [class.nav-vertical]=\"direction == 'vertical'\"\n >\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: items }\"\n ></ng-container>\n </ul>\n</nav>\n\n<ng-template #recursiveMenu let-items>\n <ng-container *ngFor=\"let item of items\">\n <li\n class=\"ax {{ item.style }}\"\n [ngClass]=\"{ disabled: item.disable }\"\n *ngIf=\"item?.visible != false\"\n (click)=\"handleItemClick($event, item)\"\n axTooltip\n [placement]=\"item.tooltipPlacement ? item.tooltipPlacement : 'bottom'\"\n [tooltip]=\"item.tooltip ? item.tooltip : ''\"\n >\n <div class=\"ax-menu-item\">\n <span class=\"menu-item-start-side\">\n <i class=\"{{ item.startIcon }}\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }}\" *ngIf=\"item.icon\"></i>\n <span class=\"ax-menu-item-text\" *ngIf=\"item.text\">{{\n item.text\n }}</span>\n </span>\n <span class=\"menu-item-end-side\">\n <i\n class=\"far fa-angle-down drop-icon\"\n *ngIf=\"item.items && item.text\"\n ></i>\n <i class=\"{{ item.endIcon }}\" *ngIf=\"item.endIcon\"></i>\n </span>\n </div>\n <ul *ngIf=\"item.items\" class=\"ax-sub-menu {{ placementClass }}\">\n <ng-container\n *ngTemplateOutlet=\"recursiveMenu; context: { $implicit: item.items }\"\n >\n </ng-container>\n </ul>\n </li>\n </ng-container>\n</ng-template>\n" }]
1859
1859
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { _contentMenuTemplate: [{
1860
1860
  type: ContentChild,
1861
1861
  args: [TemplateRef, { static: true }]