|
1 | | -<div *ngIf="hasSubSections$ | async" |
2 | | - [ngClass]="{'expanded': (isExpanded$ | async)}" |
| 1 | +@if (hasSubSections$ | async) { |
| 2 | + <div |
| 3 | + [ngClass]="{'expanded': (isExpanded$ | async)}" |
3 | 4 | [@bgColor]="{ |
4 | 5 | value: ((isExpanded$ | async) ? 'endBackground' : 'startBackground'), |
5 | 6 | params: {endColor: (sidebarActiveBg$ | async)} |
6 | 7 | }"> |
7 | | - <a class="sidebar-section-wrapper" |
8 | | - role="menuitem" tabindex="0" |
9 | | - aria-haspopup="menu" |
10 | | - [attr.aria-controls]="adminMenuSectionId(section)" |
11 | | - [attr.aria-expanded]="isExpanded$ | async" |
12 | | - [attr.aria-label]="('menu.section.toggle.' + section.id) | translate" |
13 | | - [class.disabled]="section.model?.disabled" |
14 | | - (click)="toggleSection($event)" |
15 | | - (keyup.space)="toggleSection($event)" |
16 | | - href="javascript:void(0);" |
17 | | - > |
18 | | - <div class="sidebar-fixed-element-wrapper" data-test="sidebar-section-icon" aria-hidden="true"> |
19 | | - <i class="fas fa-{{section.icon ?? 'notdef'}} fa-fw"></i> |
20 | | - </div> |
21 | | - <div class="sidebar-collapsible-element-outer-wrapper"> |
22 | | - <div class="sidebar-collapsible-element-inner-wrapper sidebar-item toggler-wrapper"> |
23 | | - <span [id]="adminMenuSectionTitleAccessibilityHandle(section)" [attr.data-test]="adminMenuSectionTitleAccessibilityHandle(section) | dsBrowserOnly"> |
24 | | - <ng-container |
25 | | - *ngComponentOutlet="(sectionMap$ | async).get(section.id).component; injector: (sectionMap$ | async).get(section.id).injector;"></ng-container> |
26 | | - </span> |
27 | | - <i class="fas fa-chevron-right fa-xs" aria-hidden="true" |
28 | | - [@rotate]="(isExpanded$ | async) ? 'expanded' : 'collapsed'" |
29 | | - ></i> |
| 8 | + <a class="sidebar-section-wrapper" |
| 9 | + role="menuitem" tabindex="0" |
| 10 | + aria-haspopup="menu" |
| 11 | + [attr.aria-controls]="adminMenuSectionId(section)" |
| 12 | + [attr.aria-expanded]="isExpanded$ | async" |
| 13 | + [attr.aria-label]="('menu.section.toggle.' + section.id) | translate" |
| 14 | + [class.disabled]="section.model?.disabled" |
| 15 | + (click)="toggleSection($event)" |
| 16 | + (keyup.space)="toggleSection($event)" |
| 17 | + href="javascript:void(0);" |
| 18 | + > |
| 19 | + <div class="sidebar-fixed-element-wrapper" data-test="sidebar-section-icon" aria-hidden="true"> |
| 20 | + <i class="fas fa-{{section.icon ?? 'notdef'}} fa-fw"></i> |
30 | 21 | </div> |
31 | | - </div> |
32 | | - </a> |
33 | | - @if ((isExpanded$ | async)) { |
34 | | - <div class="sidebar-section-wrapper subsection" @slide> |
35 | | - <div class="sidebar-fixed-element-wrapper"></div> |
36 | 22 | <div class="sidebar-collapsible-element-outer-wrapper"> |
37 | | - <div class="sidebar-collapsible-element-inner-wrapper"> |
38 | | - <div class="sidebar-sub-level-item-list" role="menu" [id]="adminMenuSectionId(section)" [attr.aria-label]="('menu.section.' + section.id) | translate"> |
39 | | - @for (subSection of (subSections$ | async); track subSection) { |
40 | | - <div class="sidebar-item"> |
41 | | - <ng-container |
42 | | - *ngComponentOutlet="(sectionMap$ | async).get(subSection.id).component; injector: (sectionMap$ | async).get(subSection.id).injector;"></ng-container> |
43 | | - </div> |
44 | | - } |
| 23 | + <div class="sidebar-collapsible-element-inner-wrapper sidebar-item toggler-wrapper"> |
| 24 | + <span [id]="adminMenuSectionTitleAccessibilityHandle(section)" [attr.data-test]="adminMenuSectionTitleAccessibilityHandle(section) | dsBrowserOnly"> |
| 25 | + <ng-container |
| 26 | + *ngComponentOutlet="(sectionMap$ | async).get(section.id).component; injector: (sectionMap$ | async).get(section.id).injector;"></ng-container> |
| 27 | + </span> |
| 28 | + <i class="fas fa-chevron-right fa-xs" aria-hidden="true" |
| 29 | + [@rotate]="(isExpanded$ | async) ? 'expanded' : 'collapsed'" |
| 30 | + ></i> |
| 31 | + </div> |
| 32 | + </div> |
| 33 | + </a> |
| 34 | + @if ((isExpanded$ | async)) { |
| 35 | + <div class="sidebar-section-wrapper subsection" @slide> |
| 36 | + <div class="sidebar-fixed-element-wrapper"></div> |
| 37 | + <div class="sidebar-collapsible-element-outer-wrapper"> |
| 38 | + <div class="sidebar-collapsible-element-inner-wrapper"> |
| 39 | + <div class="sidebar-sub-level-item-list" role="menu" [id]="adminMenuSectionId(section)" [attr.aria-label]="('menu.section.' + section.id) | translate"> |
| 40 | + @for (subSection of (subSections$ | async); track subSection) { |
| 41 | + <div class="sidebar-item"> |
| 42 | + <ng-container |
| 43 | + *ngComponentOutlet="(sectionMap$ | async).get(subSection.id).component; injector: (sectionMap$ | async).get(subSection.id).injector;"></ng-container> |
| 44 | + </div> |
| 45 | + } |
| 46 | + </div> |
45 | 47 | </div> |
46 | 48 | </div> |
47 | 49 | </div> |
48 | | - </div> |
49 | | - } |
50 | | -</div> |
| 50 | + } |
| 51 | + </div> |
| 52 | +} |
0 commit comments