2023-10-25 14:16:13 +02:00
|
|
|
<div id="sidebar_main" uk-sticky="end: .sidebar_main_swipe;" [attr.offset]="offset" class="uk-visible@m">
|
2023-01-25 07:00:35 +01:00
|
|
|
<div sidebar-content>
|
2023-02-15 10:53:25 +01:00
|
|
|
<ng-container *ngTemplateOutlet="menu; context: {mobile: false}"></ng-container>
|
2019-12-23 13:52:26 +01:00
|
|
|
</div>
|
2023-10-25 14:16:13 +02:00
|
|
|
</div>
|
2023-02-15 10:53:25 +01:00
|
|
|
<div class="uk-hidden@m">
|
|
|
|
<div id="sidebar_offcanvas" #sidebar_offcanvas [attr.uk-offcanvas]="'overlay: true'">
|
2023-03-22 16:54:54 +01:00
|
|
|
<div class="uk-offcanvas-bar uk-padding-remove">
|
|
|
|
<nav class="uk-navbar uk-background-default" uk-sticky>
|
|
|
|
<div class="uk-navbar-right">
|
|
|
|
<button class="uk-navbar-toggle uk-icon uk-close" (click)="closeOffcanvas()">
|
|
|
|
<icon name="close" ratio="1.5" visuallyHidden="close menu"></icon>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</nav>
|
2023-02-15 10:53:25 +01:00
|
|
|
<ng-container *ngTemplateOutlet="menu; context: {mobile: true}"></ng-container>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<ng-template #menu let-mobile=mobile>
|
2023-03-01 14:20:00 +01:00
|
|
|
<div *ngIf="backItem" class="back" [class.mobile]="mobile">
|
|
|
|
<a [routerLink]="backItem.route" [queryParams]="backItem.params" class="uk-flex uk-flex-middle uk-flex-center"
|
|
|
|
(click)="closeOffcanvas()" [queryParamsHandling]="queryParamsHandling">
|
|
|
|
<div *ngIf="backItem.icon" class="uk-width-auto">
|
|
|
|
<icon [name]="backItem.icon.name" ratio="1.3" [svg]="backItem.icon.svg" [flex]="true"></icon>
|
|
|
|
</div>
|
|
|
|
<span class="uk-width-expand uk-text-truncate uk-margin-left"
|
|
|
|
[class.hide-on-close]="backItem.icon">{{backItem.title}}</span>
|
|
|
|
</a>
|
|
|
|
</div>
|
2023-11-16 13:36:44 +01:00
|
|
|
<div *ngIf="logoURL" id="sidebar_logo" class="uk-margin-top">
|
|
|
|
<img [src]="logoURL">
|
|
|
|
</div>
|
2023-02-15 10:53:25 +01:00
|
|
|
<div *ngIf="items.length > 0" class="menu_section uk-margin-large-top" [class.mobile]="mobile" style="min-height: 30vh">
|
2023-08-22 16:08:46 +02:00
|
|
|
<ul #nav class="uk-list uk-nav" [class.uk-list-large]="mobile"
|
2023-02-15 10:53:25 +01:00
|
|
|
[class.uk-nav-default]="!mobile" [class.uk-nav-primary]="mobile" uk-nav="duration: 400">
|
|
|
|
<ng-template ngFor [ngForOf]="items" let-item>
|
2023-03-27 13:59:17 +02:00
|
|
|
<li [class.uk-active]="item.isActive" [ngClass]="item.customClass"
|
2023-02-15 10:53:25 +01:00
|
|
|
[class.uk-parent]="item.items.length > 0">
|
|
|
|
<a [routerLink]="getItemRoute(item)" [title]="item.title" (click)="item.items.length === 0?closeOffcanvas():null"
|
|
|
|
[queryParams]="item.route?item.params:null" [queryParamsHandling]="item.route?queryParamsHandling:null" class="uk-flex uk-flex-middle">
|
|
|
|
<div *ngIf="item.icon && (item.icon.svg || item.icon.name)" class="uk-width-auto">
|
2024-06-04 11:55:36 +02:00
|
|
|
<icon class="menu-icon" [customClass]="item.icon.class" [name]="item.icon.name" [ratio]="item.icon.ratio?item.icon.ratio:0.9" [svg]="item.icon.svg" [flex]="true"></icon>
|
2023-02-15 10:53:25 +01:00
|
|
|
</div>
|
|
|
|
<span [class.hide-on-close]="item.icon" class="uk-width-expand@l uk-text-truncate uk-margin-small-left">{{item.title}}</span>
|
2023-08-22 16:08:46 +02:00
|
|
|
<span *ngIf="item.items.length > 0" class="uk-nav-parent-icon hide-on-close"></span>
|
2023-02-15 10:53:25 +01:00
|
|
|
</a>
|
|
|
|
<ul *ngIf="item.items?.length > 0 && (isBrowser || item.isActive)" class="uk-nav-sub">
|
2023-03-27 13:59:17 +02:00
|
|
|
<li *ngFor="let subItem of item.items" [ngClass]="subItem.customClass"
|
2023-02-15 10:53:25 +01:00
|
|
|
[class.uk-active]="subItem.isActive">
|
|
|
|
<a [routerLink]="subItem.route?subItem.route:null" [title]="subItem.title" (click)="closeOffcanvas()"
|
|
|
|
[queryParams]="subItem.route?subItem.params:null" [queryParamsHandling]="subItem.route?queryParamsHandling:null">
|
|
|
|
<span class="uk-text-truncate">{{subItem.title}}</span></a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</li>
|
|
|
|
</ng-template>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</ng-template>
|