@onemrvapublic/design-system 16.2.25 → 16.2.26
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.
- package/esm2022/layout/src/components/layout-route/layout-route.component.mjs +3 -3
- package/esm2022/layout/src/components/layout-subroute/layout-subroute.component.mjs +21 -4
- package/esm2022/mat-spinner/src/onemrva-mat-spinner.component.mjs +733 -3
- package/fesm2022/onemrvapublic-design-system-layout.mjs +21 -5
- package/fesm2022/onemrvapublic-design-system-layout.mjs.map +1 -1
- package/fesm2022/onemrvapublic-design-system-mat-spinner.mjs +732 -2
- package/fesm2022/onemrvapublic-design-system-mat-spinner.mjs.map +1 -1
- package/layout/src/components/layout-subroute/layout-subroute.component.d.ts +5 -2
- package/mat-spinner/src/_onemrva-mat-spinner.component.scss +3 -33
- package/package.json +1 -1
|
@@ -40,11 +40,11 @@ export class LayoutRouteComponent {
|
|
|
40
40
|
return false;
|
|
41
41
|
}
|
|
42
42
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutRouteComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LayoutRouteComponent, selector: "onemrva-layout-route", inputs: { customNgClass: "customNgClass", routerLink: "routerLink", routerLinkActiveOptions: "routerLinkActiveOptions", dataCy: "dataCy", baseRouteForActiveMenu: "baseRouteForActiveMenu", label: "label" }, queries: [{ propertyName: "subroutes", predicate: LayoutSubrouteComponent }], viewQueries: [{ propertyName: "template", first: true, predicate: ["navTpl"], descendants: true }, { propertyName: "mobileTemplate", first: true, predicate: ["navMblTpl"], descendants: true }, { propertyName: "contentTemplate", first: true, predicate: ["contentTpl"], descendants: true }], ngImport: i0, template: "\n<ng-template #navTpl>\n <ng-container *ngIf=\"!hasSubroutes()\">\n <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"hasSubroutes()\">\n <span\n [matMenuTriggerFor]=\"menu\">\n {{ label }}\n </span>\n <mat-icon\n [matMenuTriggerFor]=\"menu\" style=\"width: 16px;\">expand_more</mat-icon>\n <mat-menu #menu>\n <ng-container *ngFor=\"let e of subroutes?.toArray(); let i = index\">\n <ng-container *ngIf=\"!e.hasSubroutes()\">\n <button mat-menu-item\n [routerLink]=\"e.routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n </ng-container>\n </button>\n </ng-container>\n <ng-container *ngIf=\"e.hasSubroutes()\">\n <button mat-menu-item\n [matMenuTriggerFor]=\"submenu\">\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n </ng-container>\n </button>\n <mat-menu #submenu>\n <ng-container *ngFor=\"let es of e.subroutes?.toArray(); let i = index\">\n <button mat-menu-item\n [routerLink]=\"es.routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"es.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n
|
|
43
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LayoutRouteComponent, selector: "onemrva-layout-route", inputs: { customNgClass: "customNgClass", routerLink: "routerLink", routerLinkActiveOptions: "routerLinkActiveOptions", dataCy: "dataCy", baseRouteForActiveMenu: "baseRouteForActiveMenu", label: "label" }, queries: [{ propertyName: "subroutes", predicate: LayoutSubrouteComponent }], viewQueries: [{ propertyName: "template", first: true, predicate: ["navTpl"], descendants: true }, { propertyName: "mobileTemplate", first: true, predicate: ["navMblTpl"], descendants: true }, { propertyName: "contentTemplate", first: true, predicate: ["contentTpl"], descendants: true }], ngImport: i0, template: "\n<ng-template #navTpl>\n <ng-container *ngIf=\"!hasSubroutes()\">\n <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"hasSubroutes()\">\n <span\n [matMenuTriggerFor]=\"menu\">\n {{ label }}\n </span>\n <mat-icon\n [matMenuTriggerFor]=\"menu\" style=\"width: 16px;\">expand_more</mat-icon>\n <mat-menu #menu>\n <ng-container *ngFor=\"let e of subroutes?.toArray(); let i = index\">\n <ng-container *ngIf=\"!e.hasSubroutes()\">\n <button mat-menu-item\n [routerLink]=\"e.routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n </ng-container>\n </button>\n </ng-container>\n <ng-container *ngIf=\"e.hasSubroutes()\">\n <button mat-menu-item\n [matMenuTriggerFor]=\"submenu\"\n [ngClass] = \"{'active': e.hasActiveSubroute()}\">\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n </ng-container>\n </button>\n <mat-menu #submenu>\n <ng-container *ngFor=\"let es of e.subroutes?.toArray(); let i = index\">\n <button mat-menu-item\n [routerLink]=\"es.routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"es.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n </ng-container>\n </ng-container>\n </button>\n </ng-container>\n </mat-menu>\n </ng-container>\n </ng-container>\n </mat-menu>\n </ng-container>\n</ng-template>\n\n<ng-template #navMblTpl>\n <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n</ng-template>\n\n<ng-template #contentTmpl>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
44
44
|
}
|
|
45
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutRouteComponent, decorators: [{
|
|
46
46
|
type: Component,
|
|
47
|
-
args: [{ selector: 'onemrva-layout-route', template: "\n<ng-template #navTpl>\n <ng-container *ngIf=\"!hasSubroutes()\">\n <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"hasSubroutes()\">\n <span\n [matMenuTriggerFor]=\"menu\">\n {{ label }}\n </span>\n <mat-icon\n [matMenuTriggerFor]=\"menu\" style=\"width: 16px;\">expand_more</mat-icon>\n <mat-menu #menu>\n <ng-container *ngFor=\"let e of subroutes?.toArray(); let i = index\">\n <ng-container *ngIf=\"!e.hasSubroutes()\">\n <button mat-menu-item\n [routerLink]=\"e.routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n </ng-container>\n </button>\n </ng-container>\n <ng-container *ngIf=\"e.hasSubroutes()\">\n <button mat-menu-item\n [matMenuTriggerFor]=\"submenu\">\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n </ng-container>\n </button>\n <mat-menu #submenu>\n <ng-container *ngFor=\"let es of e.subroutes?.toArray(); let i = index\">\n <button mat-menu-item\n [routerLink]=\"es.routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"es.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n
|
|
47
|
+
args: [{ selector: 'onemrva-layout-route', template: "\n<ng-template #navTpl>\n <ng-container *ngIf=\"!hasSubroutes()\">\n <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"hasSubroutes()\">\n <span\n [matMenuTriggerFor]=\"menu\">\n {{ label }}\n </span>\n <mat-icon\n [matMenuTriggerFor]=\"menu\" style=\"width: 16px;\">expand_more</mat-icon>\n <mat-menu #menu>\n <ng-container *ngFor=\"let e of subroutes?.toArray(); let i = index\">\n <ng-container *ngIf=\"!e.hasSubroutes()\">\n <button mat-menu-item\n [routerLink]=\"e.routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n </ng-container>\n </button>\n </ng-container>\n <ng-container *ngIf=\"e.hasSubroutes()\">\n <button mat-menu-item\n [matMenuTriggerFor]=\"submenu\"\n [ngClass] = \"{'active': e.hasActiveSubroute()}\">\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n </ng-container>\n </button>\n <mat-menu #submenu>\n <ng-container *ngFor=\"let es of e.subroutes?.toArray(); let i = index\">\n <button mat-menu-item\n [routerLink]=\"es.routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"es.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n </ng-container>\n </ng-container>\n </button>\n </ng-container>\n </mat-menu>\n </ng-container>\n </ng-container>\n </mat-menu>\n </ng-container>\n</ng-template>\n\n<ng-template #navMblTpl>\n <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n</ng-template>\n\n<ng-template #contentTmpl>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
48
48
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Router }]; }, propDecorators: { customNgClass: [{
|
|
49
49
|
type: Input
|
|
50
50
|
}], template: [{
|
|
@@ -70,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
70
70
|
type: ContentChildren,
|
|
71
71
|
args: [LayoutSubrouteComponent]
|
|
72
72
|
}] } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXJvdXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZW1ydmEvZGVzaWduLXN5c3RlbS9sYXlvdXQvc3JjL2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlL2xheW91dC1yb3V0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vbGF5b3V0L3NyYy9jb21wb25lbnRzL2xheW91dC1yb3V0ZS9sYXlvdXQtcm91dGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFBRSxlQUFlLEVBQzFCLEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOENBQThDLENBQUM7Ozs7OztBQU1yRixNQUFNLE9BQU8sb0JBQW9CO0lBb0JyQjtJQUNBO0lBcEJELGFBQWEsQ0FBTTtJQUVQLFFBQVEsR0FBNEIsSUFBSSxDQUFDO0lBQ3RDLGNBQWMsR0FBNEIsSUFBSSxDQUFDO0lBQzlDLGVBQWUsR0FBNEIsSUFBSSxDQUFDO0lBRWhFLFVBQVUsQ0FBeUM7SUFDbkQsdUJBQXVCLENBQU87SUFDOUIsTUFBTSxDQUFVO0lBQ2hCLHNCQUFzQixDQUFVO0lBQ2hDLEtBQUssQ0FBVTtJQUd4QixTQUFTLENBQXNDO0lBRS9DLFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsWUFDVSxFQUFxQixFQUNyQixNQUFjO1FBRGQsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUV4QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUNFLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSTtZQUN4QixJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRztZQUNoQyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hFLE9BQVEsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7d0dBeENVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLG9TQWFkLHVCQUF1QiwrVEMzQjFDLDRrRUF5REE7OzRGRDNDYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0Usc0JBQXNCOzZIQUl2QixhQUFhO3NCQUFyQixLQUFLO2dCQUVlLFFBQVE7c0JBQTVCLFNBQVM7dUJBQUMsUUFBUTtnQkFDSyxjQUFjO3NCQUFyQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0csZUFBZTtzQkFBdkMsU0FBUzt1QkFBQyxZQUFZO2dCQUVkLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsZUFBZTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sXG4gIElucHV0LCBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXIsIFJvdXRlckxpbmt9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0xheW91dFN1YnJvdXRlQ29tcG9uZW50fSBmcm9tIFwiLi4vbGF5b3V0LXN1YnJvdXRlL2xheW91dC1zdWJyb3V0ZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb25lbXJ2YS1sYXlvdXQtcm91dGUnLFxuICB0ZW1wbGF0ZVVybDogJ2xheW91dC1yb3V0ZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0Um91dGVDb21wb25lbnQge1xuICBASW5wdXQoKSBjdXN0b21OZ0NsYXNzOiBhbnk7XG5cbiAgQFZpZXdDaGlsZCgnbmF2VHBsJykgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgQFZpZXdDaGlsZCgnbmF2TWJsVHBsJykgbW9iaWxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgQFZpZXdDaGlsZCgnY29udGVudFRwbCcpIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpIHJvdXRlckxpbms6IHR5cGVvZiBSb3V0ZXJMaW5rLnByb3RvdHlwZS5yb3V0ZXJMaW5rO1xuICBASW5wdXQoKSByb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucz86IGFueTtcbiAgQElucHV0KCkgZGF0YUN5Pzogc3RyaW5nO1xuICBASW5wdXQoKSBiYXNlUm91dGVGb3JBY3RpdmVNZW51Pzogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcblxuICBAQ29udGVudENoaWxkcmVuKExheW91dFN1YnJvdXRlQ29tcG9uZW50KVxuICBzdWJyb3V0ZXM/OiBRdWVyeUxpc3Q8TGF5b3V0U3Vicm91dGVDb21wb25lbnQ+O1xuXG4gIGhhc1N1YnJvdXRlcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJyb3V0ZXMgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnN1YnJvdXRlcy5sZW5ndGggPiAwO1xuICB9XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBpc1JvdXRlQWN0aXZlKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMucm91dGVyTGluayA9PT0gbnVsbCB8fFxuICAgICAgdGhpcy5yb3V0ZXJMaW5rID09PSB1bmRlZmluZWQgKSB7XG4gICAgICBpZiAodGhpcy5iYXNlUm91dGVGb3JBY3RpdmVNZW51KSB7XG4gICAgICAgIGNvbnN0IHNwbGl0X3JvdXRlID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IHNwbGl0X21lbnVfcm91dGUgPSB0aGlzLmJhc2VSb3V0ZUZvckFjdGl2ZU1lbnUuc3BsaXQoJy8nKTtcbiAgICAgICAgcmV0dXJuICBzcGxpdF9yb3V0ZVsxXSA9PT0gc3BsaXRfbWVudV9yb3V0ZVsxXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCJcbjxuZy10ZW1wbGF0ZSAjbmF2VHBsPlxuICA8bmctY29udGFpbmVyICAqbmdJZj1cIiFoYXNTdWJyb3V0ZXMoKVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VG1wbFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzU3Vicm91dGVzKClcIj5cbiAgICA8c3BhblxuICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cbiAgICAgIHt7IGxhYmVsIH19XG4gICAgPC9zcGFuPlxuICAgIDxtYXQtaWNvblxuICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBzdHlsZT1cIndpZHRoOiAxNnB4O1wiPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICA8bWF0LW1lbnUgI21lbnU+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlIG9mIHN1YnJvdXRlcz8udG9BcnJheSgpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZS5oYXNTdWJyb3V0ZXMoKVwiPlxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiZS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlLnRlbXBsYXRlIGFzIHJvdXRlVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJvdXRlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImUuaGFzU3Vicm91dGVzKClcIj5cbiAgICAgICAgICA8YnV0dG9uICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInN1Ym1lbnVcIlxuICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXSA9IFwieydhY3RpdmUnOiBlLmhhc0FjdGl2ZVN1YnJvdXRlKCl9XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZS50ZW1wbGF0ZSBhcyByb3V0ZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3V0ZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8bWF0LW1lbnUgI3N1Ym1lbnU+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlcyBvZiBlLnN1YnJvdXRlcz8udG9BcnJheSgpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImVzLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXMudGVtcGxhdGUgYXMgcm91dGVUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJvdXRlVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtbWVudT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI25hdk1ibFRwbD5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUbXBsXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnRUbXBsPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { Component, ContentChildren, Input, TemplateRef, ViewChild, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/router";
|
|
3
4
|
export class LayoutSubrouteComponent {
|
|
4
5
|
cd;
|
|
6
|
+
router;
|
|
5
7
|
customNgClass;
|
|
6
8
|
template;
|
|
7
9
|
routerLink;
|
|
8
10
|
routerLinkActiveOptions;
|
|
9
11
|
dataCy;
|
|
10
12
|
subroutes;
|
|
11
|
-
constructor(cd) {
|
|
13
|
+
constructor(cd, router) {
|
|
12
14
|
this.cd = cd;
|
|
15
|
+
this.router = router;
|
|
13
16
|
}
|
|
14
17
|
ngAfterViewInit() {
|
|
15
18
|
this.cd.detectChanges();
|
|
@@ -17,13 +20,27 @@ export class LayoutSubrouteComponent {
|
|
|
17
20
|
hasSubroutes() {
|
|
18
21
|
return this.subroutes !== undefined && this.subroutes.length > 0;
|
|
19
22
|
}
|
|
20
|
-
|
|
23
|
+
hasActiveSubroute() {
|
|
24
|
+
return this.subroutes?.some(x => this.isActiveRoute(x)) ?? false;
|
|
25
|
+
}
|
|
26
|
+
isActiveRoute(subroute) {
|
|
27
|
+
if (!!subroute.routerLink) {
|
|
28
|
+
let routerLink = Array.isArray(subroute.routerLink)
|
|
29
|
+
? this.router.createUrlTree(subroute.routerLink)
|
|
30
|
+
: subroute.routerLink;
|
|
31
|
+
return this.router.isActive(routerLink, { paths: 'exact', queryParams: 'exact', fragment: 'ignored', matrixParams: 'ignored' });
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutSubrouteComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
21
38
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LayoutSubrouteComponent, selector: "onemrva-layout-subroute", inputs: { customNgClass: "customNgClass", routerLink: "routerLink", routerLinkActiveOptions: "routerLinkActiveOptions", dataCy: "dataCy" }, queries: [{ propertyName: "subroutes", predicate: LayoutSubrouteComponent }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<!--\n// This does not seem to work for sub menus as they how the sub menu only on click instead of on hover\n<ng-template #navTpl>\n <ng-container *ngIf=\"!hasSubroutes()\">\n <button mat-menu-item\n [routerLink]=\"routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"template as routeTemplate\">\n\n <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n </ng-container>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"hasSubroutes()\">\n <button mat-menu-item\n [matMenuTriggerFor]=\"submenu\">\n <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n </button>\n <mat-menu #submenu>\n <ng-container *ngFor=\"let e of subroutes?.toArray(); let i = index\">\n <button mat-menu-item\n [routerLink]=\"e.routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n\n </ng-container>\n </ng-container>\n </button>\n </ng-container>\n </mat-menu>\n </ng-container>\n\n <ng-template #contentTmpl>\n <ng-content></ng-content>\n </ng-template>\n\n</ng-template>-->\n\n\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n" });
|
|
22
39
|
}
|
|
23
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutSubrouteComponent, decorators: [{
|
|
24
41
|
type: Component,
|
|
25
42
|
args: [{ selector: 'onemrva-layout-subroute', template: "<!--\n// This does not seem to work for sub menus as they how the sub menu only on click instead of on hover\n<ng-template #navTpl>\n <ng-container *ngIf=\"!hasSubroutes()\">\n <button mat-menu-item\n [routerLink]=\"routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"template as routeTemplate\">\n\n <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n </ng-container>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"hasSubroutes()\">\n <button mat-menu-item\n [matMenuTriggerFor]=\"submenu\">\n <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n </button>\n <mat-menu #submenu>\n <ng-container *ngFor=\"let e of subroutes?.toArray(); let i = index\">\n <button mat-menu-item\n [routerLink]=\"e.routerLink\"\n routerLinkActive=\"active\">\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n\n </ng-container>\n </ng-container>\n </button>\n </ng-container>\n </mat-menu>\n </ng-container>\n\n <ng-template #contentTmpl>\n <ng-content></ng-content>\n </ng-template>\n\n</ng-template>-->\n\n\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n" }]
|
|
26
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { customNgClass: [{
|
|
43
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Router }]; }, propDecorators: { customNgClass: [{
|
|
27
44
|
type: Input
|
|
28
45
|
}], template: [{
|
|
29
46
|
type: ViewChild,
|
|
@@ -38,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
38
55
|
type: ContentChildren,
|
|
39
56
|
args: [LayoutSubrouteComponent]
|
|
40
57
|
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXN1YnJvdXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZW1ydmEvZGVzaWduLXN5c3RlbS9sYXlvdXQvc3JjL2NvbXBvbmVudHMvbGF5b3V0LXN1YnJvdXRlL2xheW91dC1zdWJyb3V0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vbGF5b3V0L3NyYy9jb21wb25lbnRzL2xheW91dC1zdWJyb3V0ZS9sYXlvdXQtc3Vicm91dGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFBRSxlQUFlLEVBQzFCLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkIsTUFBTSxPQUFPLHVCQUF1QjtJQVlkO0lBQStCO0lBWDFDLGFBQWEsQ0FBTTtJQUVKLFFBQVEsQ0FBb0I7SUFFM0MsVUFBVSxDQUFrRDtJQUM1RCx1QkFBdUIsQ0FBTztJQUM5QixNQUFNLENBQVU7SUFHekIsU0FBUyxDQUFzQztJQUUvQyxZQUFvQixFQUFxQixFQUFVLE1BQWM7UUFBN0MsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUksQ0FBQztJQUV0RSxlQUFlO1FBQ2IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUNuRSxDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQWlDO1FBQ3JELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDekIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztnQkFDaEQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFFeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQ3BDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDM0Y7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO3dHQXJDVSx1QkFBdUI7NEZBQXZCLHVCQUF1QixxT0FTakIsdUJBQXVCLHVFQU43QixXQUFXLGdEQ2hCeEIsMnpDQTRDQTs7NEZEL0JhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSx5QkFBeUI7NkhBSTFCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRWtCLFFBQVE7c0JBQS9CLFNBQVM7dUJBQUMsV0FBVztnQkFFYixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR04sU0FBUztzQkFEUixlQUFlO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvbmVtcnZhLWxheW91dC1zdWJyb3V0ZScsXG4gIHRlbXBsYXRlVXJsOiAnbGF5b3V0LXN1YnJvdXRlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRTdWJyb3V0ZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGN1c3RvbU5nQ2xhc3M6IGFueTtcblxuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKSB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KCkgcm91dGVyTGluazogdHlwZW9mIFJvdXRlckxpbmsucHJvdG90eXBlLnJvdXRlckxpbmsgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIHJvdXRlckxpbmtBY3RpdmVPcHRpb25zPzogYW55O1xuICBASW5wdXQoKSBkYXRhQ3k/OiBzdHJpbmc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihMYXlvdXRTdWJyb3V0ZUNvbXBvbmVudClcbiAgc3Vicm91dGVzPzogUXVlcnlMaXN0PExheW91dFN1YnJvdXRlQ29tcG9uZW50PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaGFzU3Vicm91dGVzKCkge1xuICAgIHJldHVybiB0aGlzLnN1YnJvdXRlcyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc3Vicm91dGVzLmxlbmd0aCA+IDA7XG4gIH1cblxuICBoYXNBY3RpdmVTdWJyb3V0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJyb3V0ZXM/LnNvbWUoeCA9PiB0aGlzLmlzQWN0aXZlUm91dGUoeCkpID8/IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FjdGl2ZVJvdXRlKHN1YnJvdXRlOiBMYXlvdXRTdWJyb3V0ZUNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIGlmICghIXN1YnJvdXRlLnJvdXRlckxpbmspIHtcbiAgICAgIGxldCByb3V0ZXJMaW5rID0gQXJyYXkuaXNBcnJheShzdWJyb3V0ZS5yb3V0ZXJMaW5rKVxuICAgICAgICA/IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoc3Vicm91dGUucm91dGVyTGluaylcbiAgICAgICAgOiBzdWJyb3V0ZS5yb3V0ZXJMaW5rO1xuXG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIuaXNBY3RpdmUocm91dGVyTGluayxcbiAgICAgICAgeyBwYXRoczogJ2V4YWN0JywgcXVlcnlQYXJhbXM6ICdleGFjdCcsIGZyYWdtZW50OiAnaWdub3JlZCcsIG1hdHJpeFBhcmFtczogJ2lnbm9yZWQnIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tXG4vLyBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBmb3Igc3ViIG1lbnVzIGFzIHRoZXkgaG93IHRoZSBzdWIgbWVudSBvbmx5IG9uIGNsaWNrIGluc3RlYWQgb2Ygb24gaG92ZXJcbjxuZy10ZW1wbGF0ZSAjbmF2VHBsPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc1N1YnJvdXRlcygpXCI+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZSBhcyByb3V0ZVRlbXBsYXRlXCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUbXBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1N1YnJvdXRlcygpXCI+XG4gICAgPGJ1dHRvbiAgbWF0LW1lbnUtaXRlbVxuICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInN1Ym1lbnVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRtcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnUgI3N1Ym1lbnU+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlIG9mIHN1YnJvdXRlcz8udG9BcnJheSgpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImUucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlLnRlbXBsYXRlIGFzIHJvdXRlVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3V0ZVRlbXBsYXRlXCI+XG5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LW1lbnU+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjY29udGVudFRtcGw+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L25nLXRlbXBsYXRlPlxuXG48L25nLXRlbXBsYXRlPi0tPlxuXG5cbiAgPG5nLXRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|