@design-factory/angular 21.0.4 → 21.1.0-next.1

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.
@@ -1,14 +1,12 @@
1
- import { createNavManager, useDirectiveForHost } from '@agnos-ui/angular-headless';
1
+ import { createNavManager } from '@design-factory/core/services/navManager';
2
+ import { toAngularSignal, md$, lg$, useDirectiveForHost } from '@design-factory/angular/internals';
2
3
  import { NgTemplateOutlet, isPlatformBrowser } from '@angular/common';
3
4
  import * as i0 from '@angular/core';
4
- import { input, model, inject, contentChild, computed, Directive, effect, ChangeDetectionStrategy, Component, signal, viewChild, contentChildren, booleanAttribute, linkedSignal, ElementRef, PLATFORM_ID, Injector, afterRenderEffect, afterNextRender } from '@angular/core';
5
- import { toSignal } from '@angular/core/rxjs-interop';
6
- import * as i1$1 from '@angular/forms';
5
+ import { input, model, inject, contentChild, computed, Directive, effect, ChangeDetectionStrategy, Component, signal, viewChild, contentChildren, booleanAttribute, linkedSignal, ElementRef, PLATFORM_ID, Injector, afterRenderEffect, untracked, afterNextRender, ViewEncapsulation } from '@angular/core';
6
+ import * as i1 from '@angular/forms';
7
7
  import { FormsModule } from '@angular/forms';
8
- import { DfDrawerComponent } from '@design-factory/angular/drawer';
9
- import { DfMedia } from '@design-factory/design-factory';
10
- import * as i1 from '@angular/router';
11
- import { RouterModule } from '@angular/router';
8
+ import { DfDrawer } from '@design-factory/angular/drawer';
9
+ import { RouterLink, RouterLinkActive } from '@angular/router';
12
10
 
13
11
  /**
14
12
  * Base item class that is extended by desktop and mobile item components
@@ -68,10 +66,10 @@ class DfSidenavItemBaseComponent {
68
66
  this.collapsed.set(!this.collapsed());
69
67
  }
70
68
  }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavItemBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
72
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.1", type: DfSidenavItemBaseComponent, isStandalone: true, inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, wrapperHasIconContent: { classPropertyName: "wrapperHasIconContent", publicName: "wrapperHasIconContent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange" }, queries: [{ propertyName: "iconContent", first: true, predicate: ["dfSidenavIcon"], descendants: true, isSignal: true }], ngImport: i0 }); }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavItemBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
70
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.0", type: DfSidenavItemBaseComponent, isStandalone: true, inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, wrapperHasIconContent: { classPropertyName: "wrapperHasIconContent", publicName: "wrapperHasIconContent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange" }, queries: [{ propertyName: "iconContent", first: true, predicate: ["dfSidenavIcon"], descendants: true, isSignal: true }], ngImport: i0 }); }
73
71
  }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavItemBaseComponent, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavItemBaseComponent, decorators: [{
75
73
  type: Directive
76
74
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }, { type: i0.Output, args: ["collapsedChange"] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], wrapperHasIconContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrapperHasIconContent", required: false }] }], iconContent: [{ type: i0.ContentChild, args: ['dfSidenavIcon', { isSignal: true }] }] } });
77
75
 
@@ -111,8 +109,8 @@ class DfSidenavItemDesktopComponent extends DfSidenavItemBaseComponent {
111
109
  }
112
110
  });
113
111
  }
114
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavItemDesktopComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
115
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: DfSidenavItemDesktopComponent, isStandalone: true, selector: "df-sidenav-item-desktop", host: { properties: { "class.d-none": "!isVisible() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))" } }, usesInheritance: true, ngImport: i0, template: `
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavItemDesktopComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfSidenavItemDesktopComponent, isStandalone: true, selector: "df-sidenav-item-desktop", host: { properties: { "class.d-none": "!isVisible() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))" } }, usesInheritance: true, ngImport: i0, template: `
116
114
  <button
117
115
  class="btn df-sidenav-button d-flex gap-3"
118
116
  [class.df-sidenav-active-level]="sidenav.isMinimized() && hasActiveChildren() && isFirstLevel"
@@ -136,7 +134,7 @@ class DfSidenavItemDesktopComponent extends DfSidenavItemBaseComponent {
136
134
  }
137
135
  </button>
138
136
 
139
- <div [class.d-none]="collapsed()" role="list">
137
+ <div [class.df-sidenav-item-hidden]="collapsed()" [attr.aria-hidden]="collapsed()" role="list">
140
138
  <ng-container [ngTemplateOutlet]="content" />
141
139
  </div>
142
140
  <ng-template #content>
@@ -144,7 +142,7 @@ class DfSidenavItemDesktopComponent extends DfSidenavItemBaseComponent {
144
142
  </ng-template>
145
143
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
146
144
  }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavItemDesktopComponent, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavItemDesktopComponent, decorators: [{
148
146
  type: Component,
149
147
  args: [{
150
148
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -173,7 +171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
173
171
  }
174
172
  </button>
175
173
 
176
- <div [class.d-none]="collapsed()" role="list">
174
+ <div [class.df-sidenav-item-hidden]="collapsed()" [attr.aria-hidden]="collapsed()" role="list">
177
175
  <ng-container [ngTemplateOutlet]="content" />
178
176
  </div>
179
177
  <ng-template #content>
@@ -277,8 +275,8 @@ class DfSidenavItemMobileComponent extends DfSidenavItemBaseComponent {
277
275
  handleBackClick() {
278
276
  this.sidenav.navigateBack();
279
277
  }
280
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavItemMobileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
281
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: DfSidenavItemMobileComponent, isStandalone: true, selector: "df-sidenav-item-mobile", host: { properties: { "class.d-none": "shouldHideComponent() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))" }, classAttribute: "mobile" }, usesInheritance: true, ngImport: i0, template: `
278
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavItemMobileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
279
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfSidenavItemMobileComponent, isStandalone: true, selector: "df-sidenav-item-mobile", host: { properties: { "class.d-none": "shouldHideComponent() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))" }, classAttribute: "mobile" }, usesInheritance: true, ngImport: i0, template: `
282
280
  @if (shouldShowMobileHeader()) {
283
281
  <div class="df-sidenav-mobile-header mobile mb-2" role="listitem">
284
282
  <button
@@ -338,7 +336,7 @@ class DfSidenavItemMobileComponent extends DfSidenavItemBaseComponent {
338
336
  </ng-template>
339
337
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
340
338
  }
341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavItemMobileComponent, decorators: [{
339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavItemMobileComponent, decorators: [{
342
340
  type: Component,
343
341
  args: [{
344
342
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -440,7 +438,6 @@ class DfSidenavLinkBaseComponent {
440
438
  * Options to determine when the router link is considered active
441
439
  */
442
440
  this.routerLinkActiveOptions = input({ exact: false }, ...(ngDevMode ? [{ debugName: "routerLinkActiveOptions" }] : []));
443
- this.isSmallScreen = toSignal(inject(DfMedia).getObservable(['sm', 'xs']), { initialValue: false });
444
441
  this.sidenav = inject(DfSidenavComponent);
445
442
  this.parentItem = inject(DfSidenavItemComponent, {
446
443
  optional: true,
@@ -459,10 +456,16 @@ class DfSidenavLinkBaseComponent {
459
456
  return this.label().toLowerCase().includes(search);
460
457
  }, ...(ngDevMode ? [{ debugName: "isVisible" }] : []));
461
458
  }
462
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavLinkBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
463
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.1", type: DfSidenavLinkBaseComponent, isStandalone: true, inputs: { linkPath: { classPropertyName: "linkPath", publicName: "linkPath", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, wrapperHasIconContent: { classPropertyName: "wrapperHasIconContent", publicName: "wrapperHasIconContent", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "iconContent", first: true, predicate: ["dfSidenavIcon"], descendants: true, isSignal: true }], ngImport: i0 }); }
459
+ toggleSidenavOnSmallScreen() {
460
+ if (this.sidenav['isSmallScreen']()) {
461
+ this.sidenav.toggleMinimize();
462
+ }
463
+ return true;
464
+ }
465
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
466
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.0", type: DfSidenavLinkBaseComponent, isStandalone: true, inputs: { linkPath: { classPropertyName: "linkPath", publicName: "linkPath", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, wrapperHasIconContent: { classPropertyName: "wrapperHasIconContent", publicName: "wrapperHasIconContent", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "iconContent", first: true, predicate: ["dfSidenavIcon"], descendants: true, isSignal: true }], ngImport: i0 }); }
464
467
  }
465
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavLinkBaseComponent, decorators: [{
468
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkBaseComponent, decorators: [{
466
469
  type: Directive
467
470
  }], propDecorators: { linkPath: [{ type: i0.Input, args: [{ isSignal: true, alias: "linkPath", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], wrapperHasIconContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrapperHasIconContent", required: false }] }], routerLinkActiveOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLinkActiveOptions", required: false }] }], iconContent: [{ type: i0.ContentChild, args: ['dfSidenavIcon', { isSignal: true }] }] } });
468
471
 
@@ -475,8 +478,8 @@ class DfSidenavLinkDesktopComponent extends DfSidenavLinkBaseComponent {
475
478
  super(...arguments);
476
479
  this.anchor = viewChild.required('anchor');
477
480
  }
478
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavLinkDesktopComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
479
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: DfSidenavLinkDesktopComponent, isStandalone: true, selector: "df-sidenav-link-desktop", host: { properties: { "class.d-none": "!isVisible() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))" }, classAttribute: "d-flex" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
481
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkDesktopComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
482
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfSidenavLinkDesktopComponent, isStandalone: true, selector: "df-sidenav-link-desktop", host: { properties: { "class.d-none": "!isVisible() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))" }, classAttribute: "d-flex" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
480
483
  <a
481
484
  class="btn df-sidenav-button d-flex gap-3"
482
485
  [class.w-100]="!sidenav.isMinimized()"
@@ -487,7 +490,7 @@ class DfSidenavLinkDesktopComponent extends DfSidenavLinkBaseComponent {
487
490
  [class.justify-content-start]="!sidenav.isMinimized()"
488
491
  [routerLinkActiveOptions]="routerLinkActiveOptions()"
489
492
  [attr.aria-label]="label()"
490
- (click)="isSmallScreen() && sidenav.toggleMinimize()"
493
+ (click)="toggleSidenavOnSmallScreen()"
491
494
  #anchor
492
495
  >
493
496
  <ng-container [ngTemplateOutlet]="content" />
@@ -501,9 +504,9 @@ class DfSidenavLinkDesktopComponent extends DfSidenavLinkBaseComponent {
501
504
  <span class="sidenav-label" [title]="label()">{{ label() }}</span>
502
505
  }
503
506
  </ng-template>
504
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
507
+ `, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
505
508
  }
506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavLinkDesktopComponent, decorators: [{
509
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkDesktopComponent, decorators: [{
507
510
  type: Component,
508
511
  args: [{
509
512
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -519,7 +522,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
519
522
  [class.justify-content-start]="!sidenav.isMinimized()"
520
523
  [routerLinkActiveOptions]="routerLinkActiveOptions()"
521
524
  [attr.aria-label]="label()"
522
- (click)="isSmallScreen() && sidenav.toggleMinimize()"
525
+ (click)="toggleSidenavOnSmallScreen()"
523
526
  #anchor
524
527
  >
525
528
  <ng-container [ngTemplateOutlet]="content" />
@@ -538,7 +541,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
538
541
  '[class.d-none]': '!isVisible() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))',
539
542
  class: 'd-flex'
540
543
  },
541
- imports: [RouterModule, NgTemplateOutlet]
544
+ imports: [RouterLink, RouterLinkActive, NgTemplateOutlet]
542
545
  }]
543
546
  }], propDecorators: { anchor: [{ type: i0.ViewChild, args: ['anchor', { isSignal: true }] }] } });
544
547
 
@@ -583,8 +586,8 @@ class DfSidenavLinkMobileComponent extends DfSidenavLinkBaseComponent {
583
586
  return path;
584
587
  }, ...(ngDevMode ? [{ debugName: "breadcrumbPath" }] : []));
585
588
  }
586
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavLinkMobileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
587
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: DfSidenavLinkMobileComponent, isStandalone: true, selector: "df-sidenav-link-mobile", host: { properties: { "class.d-none": "!isVisibleInList() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))" }, classAttribute: "d-flex" }, usesInheritance: true, ngImport: i0, template: `
589
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkMobileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
590
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfSidenavLinkMobileComponent, isStandalone: true, selector: "df-sidenav-link-mobile", host: { properties: { "class.d-none": "!isVisibleInList() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))" }, classAttribute: "d-flex" }, usesInheritance: true, ngImport: i0, template: `
588
591
  <a
589
592
  class="btn df-sidenav-button d-flex gap-3 justify-content-start w-100 df-sidenav-breadcrumb-button"
590
593
  routerLinkActive="df-sidenav-active-level"
@@ -592,7 +595,7 @@ class DfSidenavLinkMobileComponent extends DfSidenavLinkBaseComponent {
592
595
  (isActiveChange)="isActiveLink.set($event)"
593
596
  [routerLink]="linkPath()"
594
597
  [routerLinkActiveOptions]="routerLinkActiveOptions()"
595
- (click)="isSmallScreen() && sidenav.toggleMinimize()"
598
+ (click)="toggleSidenavOnSmallScreen()"
596
599
  >
597
600
  <ng-container [ngTemplateOutlet]="content" />
598
601
  </a>
@@ -617,9 +620,9 @@ class DfSidenavLinkMobileComponent extends DfSidenavLinkBaseComponent {
617
620
  </div>
618
621
  </div>
619
622
  </ng-template>
620
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
623
+ `, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
621
624
  }
622
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavLinkMobileComponent, decorators: [{
625
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkMobileComponent, decorators: [{
623
626
  type: Component,
624
627
  args: [{
625
628
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -632,7 +635,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
632
635
  (isActiveChange)="isActiveLink.set($event)"
633
636
  [routerLink]="linkPath()"
634
637
  [routerLinkActiveOptions]="routerLinkActiveOptions()"
635
- (click)="isSmallScreen() && sidenav.toggleMinimize()"
638
+ (click)="toggleSidenavOnSmallScreen()"
636
639
  >
637
640
  <ng-container [ngTemplateOutlet]="content" />
638
641
  </a>
@@ -662,7 +665,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
662
665
  '[class.d-none]': '!isVisibleInList() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))',
663
666
  class: 'd-flex'
664
667
  },
665
- imports: [RouterModule, NgTemplateOutlet]
668
+ imports: [RouterLink, RouterLinkActive, NgTemplateOutlet]
666
669
  }]
667
670
  }] });
668
671
 
@@ -673,10 +676,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
673
676
  * @since 21.0.0
674
677
  */
675
678
  class DfSidenavIconDirective {
676
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
677
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: DfSidenavIconDirective, isStandalone: true, selector: "[dfSidenavIcon]", ngImport: i0 }); }
679
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
680
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: DfSidenavIconDirective, isStandalone: true, selector: "[dfSidenavIcon]", ngImport: i0 }); }
678
681
  }
679
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavIconDirective, decorators: [{
682
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavIconDirective, decorators: [{
680
683
  type: Directive,
681
684
  args: [{
682
685
  selector: '[dfSidenavIcon]'
@@ -724,8 +727,8 @@ class DfSidenavLinkComponent {
724
727
  this.wrapperHasIconContent = computed(() => this.icon() !== '' || this.iconContentQuery() !== undefined, ...(ngDevMode ? [{ debugName: "wrapperHasIconContent" }] : []));
725
728
  this.sidenav = inject(DfSidenavComponent);
726
729
  }
727
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
728
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: DfSidenavLinkComponent, isStandalone: true, selector: "df-sidenav-link", inputs: { linkPath: { classPropertyName: "linkPath", publicName: "linkPath", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" }, properties: { "class.mobile": "sidenav['isMobileDevice']()" }, classAttribute: "d-block" }, queries: [{ propertyName: "iconContentQuery", first: true, predicate: DfSidenavIconDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "desktopInstance", first: true, predicate: DfSidenavLinkDesktopComponent, descendants: true, isSignal: true }, { propertyName: "mobileInstance", first: true, predicate: DfSidenavLinkMobileComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
730
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
731
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfSidenavLinkComponent, isStandalone: true, selector: "df-sidenav-link", inputs: { linkPath: { classPropertyName: "linkPath", publicName: "linkPath", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" }, properties: { "class.mobile": "sidenav['isMobileDevice']()" }, classAttribute: "d-block" }, queries: [{ propertyName: "iconContentQuery", first: true, predicate: DfSidenavIconDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "desktopInstance", first: true, predicate: DfSidenavLinkDesktopComponent, descendants: true, isSignal: true }, { propertyName: "mobileInstance", first: true, predicate: DfSidenavLinkMobileComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
729
732
  <ng-template #iconSlot>
730
733
  <ng-content select="[dfSidenavIcon]" />
731
734
  </ng-template>
@@ -758,7 +761,7 @@ class DfSidenavLinkComponent {
758
761
  }
759
762
  `, isInline: true, dependencies: [{ kind: "component", type: DfSidenavLinkDesktopComponent, selector: "df-sidenav-link-desktop" }, { kind: "component", type: DfSidenavLinkMobileComponent, selector: "df-sidenav-link-mobile" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
760
763
  }
761
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavLinkComponent, decorators: [{
764
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkComponent, decorators: [{
762
765
  type: Component,
763
766
  args: [{
764
767
  selector: 'df-sidenav-link',
@@ -850,8 +853,8 @@ class DfSidenavItemComponent {
850
853
  this.wrapperHasIconContent = computed(() => this.icon() !== '' || this.iconContentQuery() !== undefined, ...(ngDevMode ? [{ debugName: "wrapperHasIconContent" }] : []));
851
854
  this.sidenav = inject(DfSidenavComponent);
852
855
  }
853
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
854
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: DfSidenavItemComponent, isStandalone: true, selector: "df-sidenav-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange" }, host: { attributes: { "role": "listitem" }, properties: { "class.mobile": "sidenav['isMobileDevice']()" }, classAttribute: "d-block" }, queries: [{ propertyName: "childrenItems", predicate: DfSidenavItemComponent, descendants: true, isSignal: true }, { propertyName: "childrenLinks", predicate: DfSidenavLinkComponent, descendants: true, isSignal: true }, { propertyName: "iconContentQuery", first: true, predicate: DfSidenavIconDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "desktopInstance", first: true, predicate: DfSidenavItemDesktopComponent, descendants: true, isSignal: true }, { propertyName: "mobileInstance", first: true, predicate: DfSidenavItemMobileComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
856
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
857
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfSidenavItemComponent, isStandalone: true, selector: "df-sidenav-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange" }, host: { attributes: { "role": "listitem" }, properties: { "class.mobile": "sidenav['isMobileDevice']()" }, classAttribute: "d-block" }, queries: [{ propertyName: "childrenItems", predicate: DfSidenavItemComponent, descendants: true, isSignal: true }, { propertyName: "childrenLinks", predicate: DfSidenavLinkComponent, descendants: true, isSignal: true }, { propertyName: "iconContentQuery", first: true, predicate: DfSidenavIconDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "desktopInstance", first: true, predicate: DfSidenavItemDesktopComponent, descendants: true, isSignal: true }, { propertyName: "mobileInstance", first: true, predicate: DfSidenavItemMobileComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
855
858
  <ng-template #iconSlot>
856
859
  <ng-content select="[dfSidenavIcon]" />
857
860
  </ng-template>
@@ -882,7 +885,7 @@ class DfSidenavItemComponent {
882
885
  }
883
886
  `, isInline: true, dependencies: [{ kind: "component", type: DfSidenavItemDesktopComponent, selector: "df-sidenav-item-desktop" }, { kind: "component", type: DfSidenavItemMobileComponent, selector: "df-sidenav-item-mobile" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
884
887
  }
885
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavItemComponent, decorators: [{
888
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavItemComponent, decorators: [{
886
889
  type: Component,
887
890
  args: [{
888
891
  selector: 'df-sidenav-item',
@@ -961,6 +964,12 @@ class DfSidenavComponent {
961
964
  * @default true
962
965
  */
963
966
  this.enableMobile = input(true, { ...(ngDevMode ? { debugName: "enableMobile" } : {}), transform: booleanAttribute });
967
+ /**
968
+ * @since 21.1.0
969
+ *
970
+ * Flag to disable the automatic scroll to active link on desktop when the sidenav is initialized.
971
+ */
972
+ this.disableInitialDesktopAutoScroll = input(false, { ...(ngDevMode ? { debugName: "disableInitialDesktopAutoScroll" } : {}), transform: booleanAttribute });
964
973
  this._isMinimized = linkedSignal(() => {
965
974
  // in mobile devices, the default value is true (hiding the drawer) and does not track changes to the screen size
966
975
  if (this.isMobileDevice()) {
@@ -1010,11 +1019,11 @@ class DfSidenavComponent {
1010
1019
  const stack = this.mobileNavigationStack();
1011
1020
  return stack.length > 0 ? stack[stack.length - 1] : null;
1012
1021
  }, ...(ngDevMode ? [{ debugName: "currentMobilePanel" }] : []));
1013
- this.isSmallScreen = toSignal(inject(DfMedia).getObservable(['sm', 'xs']), { initialValue: false });
1014
- this.isMediumScreen = toSignal(inject(DfMedia).getObservable(['md']), { initialValue: false });
1015
- this.isLargeUpScreen = toSignal(inject(DfMedia).getObservable(['lg', 'xl', 'xxl', 'xxxl']), {
1016
- initialValue: false
1017
- });
1022
+ this.isMd = toAngularSignal(md$);
1023
+ this.isLg = toAngularSignal(lg$);
1024
+ this.isSmallScreen = computed(() => !this.isMd(), ...(ngDevMode ? [{ debugName: "isSmallScreen" }] : []));
1025
+ this.isMediumScreen = computed(() => this.isMd() && !this.isLg(), ...(ngDevMode ? [{ debugName: "isMediumScreen" }] : []));
1026
+ this.isLargeUpScreen = computed(() => this.isLg(), ...(ngDevMode ? [{ debugName: "isLargeUpScreen" }] : []));
1018
1027
  this.isMobileOrSmallScreen = computed(() => this.isSmallScreen() || this.isMediumScreen(), ...(ngDevMode ? [{ debugName: "isMobileOrSmallScreen" }] : []));
1019
1028
  this.backdrop = computed(() => this.isMediumScreen(), ...(ngDevMode ? [{ debugName: "backdrop" }] : []));
1020
1029
  this.navManager = createNavManager();
@@ -1043,44 +1052,46 @@ class DfSidenavComponent {
1043
1052
  });
1044
1053
  }
1045
1054
  ngAfterContentInit() {
1046
- if (!this.isMobileDevice() && this.isBrowser && this.isLargeUpScreen()) {
1055
+ if (!this.disableInitialDesktopAutoScroll() && !this.isMobileDevice() && this.isBrowser && this.isLargeUpScreen()) {
1047
1056
  void this.initializeDesktopNavigation();
1048
1057
  }
1049
1058
  }
1050
1059
  /**
1051
1060
  * This method allows to center and show the active link, when the sidenav is used in desktop and a large screen.
1052
- * It collapses all items and expands only the parents of the active link.
1053
- * Also, it scrolls to the active link to make it visible.
1061
+ *
1062
+ * It collapses all items and expands only the parents of the active link and scrolls to the active link to make it visible.
1054
1063
  */
1055
- async initializeDesktopNavigation() {
1056
- // RouterLinkActive queues two microtasks, so we wait for them to complete
1057
- await Promise.resolve();
1058
- await Promise.resolve();
1059
- // Find the first active link
1060
- const activeLink = this.allLinks()
1061
- .find((link) => link['desktopInstance']()?.isActiveLink())?.['desktopInstance']?.();
1062
- if (activeLink) {
1063
- this.allItems().forEach((item) => {
1064
- item.collapsed.set(true);
1065
- });
1066
- let currentParent = activeLink['parentItem'];
1067
- while (currentParent) {
1068
- currentParent.collapsed.set(false);
1069
- currentParent = currentParent['parentWrapper'];
1064
+ initializeDesktopNavigation() {
1065
+ const effectRef = effect(() => {
1066
+ // Find the first active link
1067
+ const activeLink = this.allLinks()
1068
+ .find((link) => link['desktopInstance']()?.isActiveLink())?.['desktopInstance']?.();
1069
+ if (activeLink) {
1070
+ untracked(() => {
1071
+ this.allItems().forEach((item) => {
1072
+ item.collapsed.set(true);
1073
+ });
1074
+ let currentParent = activeLink['parentItem'];
1075
+ while (currentParent) {
1076
+ currentParent.collapsed.set(false);
1077
+ currentParent = currentParent['parentWrapper'];
1078
+ }
1079
+ // We need a render to make sure the getBoundingClientRect calls will be correct AFTER the collapse of the items.
1080
+ afterNextRender({
1081
+ read: () => {
1082
+ const anchorElement = activeLink['anchor']().nativeElement;
1083
+ const containerElement = this.scrollableContainer().nativeElement;
1084
+ const heightPx = anchorElement.getBoundingClientRect().top +
1085
+ anchorElement.clientHeight / 2 -
1086
+ containerElement.getBoundingClientRect().top -
1087
+ containerElement.clientHeight / 3;
1088
+ containerElement.scrollTo({ top: heightPx, behavior: 'instant' });
1089
+ effectRef.destroy();
1090
+ }
1091
+ }, { injector: this.injector });
1092
+ });
1070
1093
  }
1071
- // We need a render to make sure the getBoundingClientRect calls will be correct AFTER the collapse of the items.
1072
- afterNextRender({
1073
- read: () => {
1074
- const anchorElement = activeLink['anchor']().nativeElement;
1075
- const containerElement = this.scrollableContainer().nativeElement;
1076
- const heightPx = anchorElement.getBoundingClientRect().top +
1077
- anchorElement.clientHeight / 2 -
1078
- containerElement.getBoundingClientRect().top -
1079
- containerElement.clientHeight / 3;
1080
- containerElement.scrollTo({ top: heightPx, behavior: 'instant' });
1081
- }
1082
- }, { injector: this.injector });
1083
- }
1094
+ }, { ...(ngDevMode ? { debugName: "effectRef" } : {}), injector: this.injector });
1084
1095
  }
1085
1096
  /**
1086
1097
  * Toggles the minimized state of the sidenav
@@ -1177,181 +1188,183 @@ class DfSidenavComponent {
1177
1188
  this.mobileNavigationStack.set([]);
1178
1189
  }
1179
1190
  }
1180
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1181
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: DfSidenavComponent, isStandalone: true, selector: "df-sidenav", inputs: { searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, enableMobile: { classPropertyName: "enableMobile", publicName: "enableMobile", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.df-sidenav-lg": "isLargeUpScreen()", "class.df-sidenav-withicon": "contentHasIcons()", "class.d-none": "isSmallScreen() && _isMinimized()", "class.df-sidenav-drawer": "isMediumScreen() && !_isMinimized()" }, classAttribute: "df-sidenav" }, queries: [{ propertyName: "allLinks", predicate: DfSidenavLinkComponent, descendants: true, isSignal: true }, { propertyName: "allItems", predicate: DfSidenavItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "scrollableContainer", first: true, predicate: ["scrollableContainer"], descendants: true, isSignal: true }, { propertyName: "searchInput", first: true, predicate: ["textInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
1191
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfSidenavComponent, isStandalone: true, selector: "df-sidenav", inputs: { searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, enableMobile: { classPropertyName: "enableMobile", publicName: "enableMobile", isSignal: true, isRequired: false, transformFunction: null }, disableInitialDesktopAutoScroll: { classPropertyName: "disableInitialDesktopAutoScroll", publicName: "disableInitialDesktopAutoScroll", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.df-sidenav-lg": "isLargeUpScreen()", "class.df-sidenav-withicon": "contentHasIcons()", "class.d-none": "isSmallScreen() && _isMinimized()", "class.df-sidenav-drawer": "isMediumScreen() && !_isMinimized()" }, classAttribute: "df-sidenav" }, queries: [{ propertyName: "allLinks", predicate: DfSidenavLinkComponent, descendants: true, isSignal: true }, { propertyName: "allItems", predicate: DfSidenavItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "scrollableContainer", first: true, predicate: ["scrollableContainer"], descendants: true, isSignal: true }, { propertyName: "searchInput", first: true, predicate: ["textInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
1182
1193
  <df-drawer
1183
1194
  #drawer
1184
- className="inline-start {{ isSmallScreen() ? 'df-sidenav-mobile-drawer' : '' }}"
1195
+ position="inline-start"
1196
+ [className]="isSmallScreen() ? 'df-sidenav-mobile-drawer' : ''"
1185
1197
  [visible]="!_isMinimized()"
1186
1198
  (visibleChange)="visibleChangeHandler($event)"
1187
1199
  (minimizedChange)="_isMinimized.set($event)"
1188
1200
  (resizingChange)="resizingChangeHandler($event)"
1189
1201
  [bodyScroll]="true"
1190
1202
  [backdrop]="backdrop()"
1203
+ [keepInDom]="true"
1191
1204
  [(size)]="width"
1192
1205
  [container]="isSmallScreen() ? null : hostRef.nativeElement"
1193
1206
  [resizable]="resizable() && !isSmallScreen()"
1194
1207
  [focusOnInit]="false"
1195
- [keepInDom]="true"
1208
+ [configuration]="isLargeUpScreen() ? 'inline' : 'overlay'"
1196
1209
  >
1197
- <nav class="d-flex flex-column w-100 h-100 p-5 pb-3">
1198
- <div class="df-sidenav-header flex-shrink-0" [class.df-sidenav-header-minimized]="_isMinimized()">
1199
- @if (searchable()) {
1200
- @if (_isMinimized()) {
1201
- <button
1202
- class="btn btn-outline-neutral df-btn-icononly mb-3 w-100 fa-search"
1203
- [class.df-sidenav-search-minimized]="!contentHasIcons()"
1204
- type="button"
1205
- (click)="focusSearch()"
1206
- i18n-aria-label="@@df.sidenav.search.ariaLabel"
1207
- aria-label="Search"
1208
- ></button>
1209
- } @else {
1210
- <div class="input-group mb-3">
1211
- <div class="input-group-prepend">
1212
- <span class="input-group-text fa-light fa-search"></span>
1213
- </div>
1214
- <input
1215
- type="search"
1216
- class="form-control df-input-withicon"
1217
- i18n-placeholder="@@df.sidenav.search.placeholder"
1218
- placeholder="Search"
1210
+ <div class="h-100 w-100">
1211
+ <nav class="d-flex flex-column w-100 h-100 p-5 pb-3">
1212
+ <div class="df-sidenav-header flex-shrink-0" [class.df-sidenav-header-minimized]="_isMinimized()">
1213
+ @if (searchable()) {
1214
+ @if (_isMinimized()) {
1215
+ <button
1216
+ class="btn btn-outline-neutral df-btn-icononly mb-3 w-100 fa-search"
1217
+ [class.df-sidenav-search-minimized]="!contentHasIcons()"
1218
+ type="button"
1219
+ (click)="focusSearch()"
1219
1220
  i18n-aria-label="@@df.sidenav.search.ariaLabel"
1220
1221
  aria-label="Search"
1221
- [(ngModel)]="searchTerm"
1222
- #textInput
1223
- />
1224
- <div class="input-group-append">
1225
- <button
1226
- class="input-group-text fa-light fa-times"
1227
- [class.df-sidenav-search-empty]="searchTerm() === ''"
1228
- (click)="searchTerm.set(''); textInput.focus()"
1229
- >
1230
- <span class="visually-hidden" i18n="@@df.sidenav.search.clearText">Clear text</span>
1231
- </button>
1222
+ ></button>
1223
+ } @else {
1224
+ <div class="input-group mb-3">
1225
+ <div class="input-group-prepend">
1226
+ <span class="input-group-text fa-light fa-search"></span>
1227
+ </div>
1228
+ <input
1229
+ type="search"
1230
+ class="form-control df-input-withicon"
1231
+ i18n-placeholder="@@df.sidenav.search.placeholder"
1232
+ placeholder="Search"
1233
+ i18n-aria-label="@@df.sidenav.search.ariaLabel"
1234
+ aria-label="Search"
1235
+ [(ngModel)]="searchTerm"
1236
+ #textInput
1237
+ />
1238
+ <div class="input-group-append">
1239
+ <button
1240
+ class="input-group-text fa-light fa-times"
1241
+ [class.df-sidenav-search-empty]="searchTerm() === ''"
1242
+ (click)="searchTerm.set(''); textInput.focus()"
1243
+ >
1244
+ <span class="visually-hidden" i18n="@@df.sidenav.search.clearText">Clear text</span>
1245
+ </button>
1246
+ </div>
1232
1247
  </div>
1233
- </div>
1248
+ }
1234
1249
  }
1235
- }
1236
- </div>
1250
+ </div>
1237
1251
 
1238
- <div role="list" class="sidenav-body flex-grow-1 overflow-y-auto" #scrollableContainer>
1239
- <ng-content />
1240
- </div>
1241
- @if (collapsible() && !isSmallScreen()) {
1242
- <div class="d-flex sidenav-footer flex-shrink-0 py-3">
1243
- <button
1244
- class="btn btn-outline-primary df-btn-icononly df-sidenav-toggle-minimized"
1245
- (click)="toggleMinimize()"
1246
- i18n-aria-label="@@df.sidenav.toggleMinimize.ariaLabel"
1247
- aria-label="Toggle minimized sidenav"
1248
- >
1249
- @if (isMinimized()) {
1250
- <span class="fa-arrow-right-to-line"></span>
1251
- } @else {
1252
- <span class="fa-arrow-left-to-line"></span>
1253
- }
1254
- </button>
1252
+ <div role="list" class="sidenav-body flex-grow-1 overflow-y-auto" #scrollableContainer>
1253
+ <ng-content />
1255
1254
  </div>
1256
- }
1257
- </nav>
1255
+ @if (collapsible() && !isSmallScreen()) {
1256
+ <div class="d-flex sidenav-footer flex-shrink-0 py-3">
1257
+ <button
1258
+ class="btn btn-outline-primary df-btn-icononly df-sidenav-toggle-minimized"
1259
+ (click)="toggleMinimize()"
1260
+ i18n-aria-label="@@df.sidenav.toggleMinimize.ariaLabel"
1261
+ aria-label="Toggle minimized sidenav"
1262
+ >
1263
+ @if (isMinimized()) {
1264
+ <span class="fa-arrow-right-to-line"></span>
1265
+ } @else {
1266
+ <span class="fa-arrow-left-to-line"></span>
1267
+ }
1268
+ </button>
1269
+ </div>
1270
+ }
1271
+ </nav>
1272
+ </div>
1258
1273
  </df-drawer>
1259
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: DfDrawerComponent, selector: "df-drawer", inputs: ["className", "bodyScroll", "backdrop", "container", "size", "resizable", "visible", "keepInDom", "focusOnInit"], outputs: ["sizeChange", "visibleChange", "minimizedChange", "maximizedChange", "resizingChange", "minSize", "maxSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1274
+ `, isInline: true, styles: [".df-sidenav{position:relative;--sidenav-minWidth: 44px;width:var(--sidenav-minWidth)}.df-sidenav.df-sidenav-withicon{--sidenav-minWidth: 90px}.df-sidenav.df-sidenav-lg{width:auto}.df-sidenav.df-sidenav-lg .df-drawer{--df-drawer-size: max-content}.df-sidenav.df-sidenav-light-sky .sidenav-body{scrollbar-color:var(--df-color-primary-soft-default-foreground) var(--df-color-primary-subtle-background)}.df-sidenav.df-sidenav-light-sky .df-drawer,.df-sidenav.df-sidenav-light-sky .df-sidenav-button{background-color:var(--df-color-primary-subtle-background)}.df-sidenav .df-sidenav-search-empty{visibility:hidden}.df-sidenav .df-sidenav-mobile-drawer{top:var(--df-navbar-height, 56px)!important;height:calc(100vh - var(--df-navbar-height, 56px))!important}.df-sidenav nav{border-inline-end:1px solid var(--df-color-inert-neutral-main-border)}.df-sidenav.df-sidenav-drawer .df-drawer{z-index:2010}.df-sidenav .df-drawer{background-color:var(--df-color-inert-neutral-main-background);height:100%;--df-drawer-size: 0;--df-drawer-min-size: var(--sidenav-minWidth);--df-drawer-max-size: max-content;z-index:10;transition:none}.df-sidenav .df-drawer.df-inline-start{border:none}.df-sidenav .df-drawer.df-collapse-show{--df-drawer-size: max-content}.df-sidenav .df-drawer.df-collapse-hide{display:block}.df-sidenav .df-drawer.df-collapse-collapsing.df-collapse-horizontal{transition:none}.df-sidenav .df-sidenav-active{font-weight:var(--df-typo-weight-bold)}.df-sidenav .sidenav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.df-sidenav .sidenav-label:before{content:attr(title);font-weight:var(--df-typo-weight-bold);visibility:hidden;height:0;overflow:hidden;display:block}.df-sidenav .df-sidenav-mobile-header{padding-block-end:var(--df-spacing-2);border-block-end:1px solid var(--df-color-neutral-alt-default-border);font-weight:var(--df-typo-weight-regular)}.df-sidenav .df-sidenav-mobile-header .df-sidenav-mobile-header-back-arrow{color:var(--df-color-primary-alt-default-foreground)}.df-sidenav .df-sidenav-mobile-header .df-sidenav-active .df-sidenav-mobile-header-back-arrow{color:var(--df-color-primary-alt-active-foreground)}.df-sidenav .sidenav-body{padding:var(--df-spacing-2);scrollbar-color:var(--df-color-primary-soft-default-foreground) var(--df-color-inert-neutral-main-background)}.df-sidenav .df-sidenav-search-minimized,.df-sidenav .df-sidenav-toggle-minimized{min-width:36px;position:relative;z-index:1}.df-sidenav .df-sidenav-header{padding-inline:var(--df-spacing-2);overflow:visible;position:relative}.df-sidenav .df-sidenav-header.df-sidenav-header-minimized{padding-inline:0}.df-sidenav .sidenav-footer{overflow:visible;position:relative}.df-sidenav [role=list] [role=listitem]{padding-inline-start:0}.df-sidenav [role=list] [role=listitem] [role=listitem]:not(.mobile){padding-inline-start:var(--df-spacing-6);position:relative}.df-sidenav [role=list] [role=listitem] [role=listitem]:not(.mobile):before{content:\"\";position:absolute;left:var(--df-spacing-5);top:0;bottom:0;width:1px;background-color:var(--df-color-neutral-soft-default-background)}.df-sidenav [role=list] [role=listitem] [role=listitem]:not(.mobile) [role=listitem]:not(.mobile){padding-inline-start:var(--df-spacing-6)}.df-sidenav .df-drawer-splitter{position:absolute;inset-block:0;inset-inline-end:-4px;width:1rem;cursor:ew-resize;background:transparent;display:flex;align-items:center;justify-content:center;touch-action:none}.df-sidenav .df-drawer-splitter .df-drawer-splitter-handle{--df-btn-bg: transparent;flex-shrink:0;transform:translate(40%);border:none;cursor:ew-resize}.df-sidenav .df-sidenav-button{--df-box-shadow-color: var(--df-color-focus-main-border);--df-btn-font-weight: var(--df-typo-weight-regular);background-color:var(--df-color-inert-neutral-main-background);padding-inline:var(--df-spacing-5);margin-block-end:1px;height:40px;border:none;position:relative}.df-sidenav .df-sidenav-button:focus-visible{z-index:1}.df-sidenav .df-sidenav-button.df-sidenav-breadcrumb-button{height:3rem}.df-sidenav .df-sidenav-button .df-sidenav-collapse-toggle{transition:transform .3s;color:var(--df-color-primary-alt-default-foreground)}.df-sidenav .df-sidenav-button .df-sidenav-collapse-toggle.expanded{transform:rotate(180deg)}.df-sidenav .df-sidenav-button:hover{background-color:var(--df-color-primary-alt-hovered-background)}.df-sidenav .df-sidenav-button:hover .df-sidenav-collapse-toggle{color:var(--df-color-primary-alt-hovered-foreground)}.df-sidenav .df-sidenav-button:active{background-color:var(--df-color-primary-alt-active-background)}.df-sidenav .df-sidenav-button:active .df-sidenav-collapse-toggle{color:var(--df-color-primary-alt-active-foreground)}.df-sidenav .df-sidenav-button.df-sidenav-active-level{font-weight:var(--df-typo-weight-bold);background-color:var(--df-color-primary-alt-active-background)}.df-sidenav .df-sidenav-button.df-sidenav-active-level:hover{background-color:var(--df-color-primary-alt-activeHovered-background)}.df-sidenav .df-sidenav-item-hidden{visibility:hidden;height:0}.df-sidenav .input-group.df-input-prepend .input-group-prepend{padding-inline-start:15px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: DfDrawer, selector: "df-drawer", inputs: ["className", "bodyScroll", "backdrop", "container", "size", "resizable", "visible", "keepInDom", "configuration", "position", "focusOnInit"], outputs: ["sizeChange", "visibleChange", "minimizedChange", "maximizedChange", "resizingChange", "minSize", "maxSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1260
1275
  }
1261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DfSidenavComponent, decorators: [{
1276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavComponent, decorators: [{
1262
1277
  type: Component,
1263
- args: [{
1264
- changeDetection: ChangeDetectionStrategy.OnPush,
1265
- selector: 'df-sidenav',
1266
- template: `
1278
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'df-sidenav', template: `
1267
1279
  <df-drawer
1268
1280
  #drawer
1269
- className="inline-start {{ isSmallScreen() ? 'df-sidenav-mobile-drawer' : '' }}"
1281
+ position="inline-start"
1282
+ [className]="isSmallScreen() ? 'df-sidenav-mobile-drawer' : ''"
1270
1283
  [visible]="!_isMinimized()"
1271
1284
  (visibleChange)="visibleChangeHandler($event)"
1272
1285
  (minimizedChange)="_isMinimized.set($event)"
1273
1286
  (resizingChange)="resizingChangeHandler($event)"
1274
1287
  [bodyScroll]="true"
1275
1288
  [backdrop]="backdrop()"
1289
+ [keepInDom]="true"
1276
1290
  [(size)]="width"
1277
1291
  [container]="isSmallScreen() ? null : hostRef.nativeElement"
1278
1292
  [resizable]="resizable() && !isSmallScreen()"
1279
1293
  [focusOnInit]="false"
1280
- [keepInDom]="true"
1294
+ [configuration]="isLargeUpScreen() ? 'inline' : 'overlay'"
1281
1295
  >
1282
- <nav class="d-flex flex-column w-100 h-100 p-5 pb-3">
1283
- <div class="df-sidenav-header flex-shrink-0" [class.df-sidenav-header-minimized]="_isMinimized()">
1284
- @if (searchable()) {
1285
- @if (_isMinimized()) {
1286
- <button
1287
- class="btn btn-outline-neutral df-btn-icononly mb-3 w-100 fa-search"
1288
- [class.df-sidenav-search-minimized]="!contentHasIcons()"
1289
- type="button"
1290
- (click)="focusSearch()"
1291
- i18n-aria-label="@@df.sidenav.search.ariaLabel"
1292
- aria-label="Search"
1293
- ></button>
1294
- } @else {
1295
- <div class="input-group mb-3">
1296
- <div class="input-group-prepend">
1297
- <span class="input-group-text fa-light fa-search"></span>
1298
- </div>
1299
- <input
1300
- type="search"
1301
- class="form-control df-input-withicon"
1302
- i18n-placeholder="@@df.sidenav.search.placeholder"
1303
- placeholder="Search"
1296
+ <div class="h-100 w-100">
1297
+ <nav class="d-flex flex-column w-100 h-100 p-5 pb-3">
1298
+ <div class="df-sidenav-header flex-shrink-0" [class.df-sidenav-header-minimized]="_isMinimized()">
1299
+ @if (searchable()) {
1300
+ @if (_isMinimized()) {
1301
+ <button
1302
+ class="btn btn-outline-neutral df-btn-icononly mb-3 w-100 fa-search"
1303
+ [class.df-sidenav-search-minimized]="!contentHasIcons()"
1304
+ type="button"
1305
+ (click)="focusSearch()"
1304
1306
  i18n-aria-label="@@df.sidenav.search.ariaLabel"
1305
1307
  aria-label="Search"
1306
- [(ngModel)]="searchTerm"
1307
- #textInput
1308
- />
1309
- <div class="input-group-append">
1310
- <button
1311
- class="input-group-text fa-light fa-times"
1312
- [class.df-sidenav-search-empty]="searchTerm() === ''"
1313
- (click)="searchTerm.set(''); textInput.focus()"
1314
- >
1315
- <span class="visually-hidden" i18n="@@df.sidenav.search.clearText">Clear text</span>
1316
- </button>
1308
+ ></button>
1309
+ } @else {
1310
+ <div class="input-group mb-3">
1311
+ <div class="input-group-prepend">
1312
+ <span class="input-group-text fa-light fa-search"></span>
1313
+ </div>
1314
+ <input
1315
+ type="search"
1316
+ class="form-control df-input-withicon"
1317
+ i18n-placeholder="@@df.sidenav.search.placeholder"
1318
+ placeholder="Search"
1319
+ i18n-aria-label="@@df.sidenav.search.ariaLabel"
1320
+ aria-label="Search"
1321
+ [(ngModel)]="searchTerm"
1322
+ #textInput
1323
+ />
1324
+ <div class="input-group-append">
1325
+ <button
1326
+ class="input-group-text fa-light fa-times"
1327
+ [class.df-sidenav-search-empty]="searchTerm() === ''"
1328
+ (click)="searchTerm.set(''); textInput.focus()"
1329
+ >
1330
+ <span class="visually-hidden" i18n="@@df.sidenav.search.clearText">Clear text</span>
1331
+ </button>
1332
+ </div>
1317
1333
  </div>
1318
- </div>
1334
+ }
1319
1335
  }
1320
- }
1321
- </div>
1336
+ </div>
1322
1337
 
1323
- <div role="list" class="sidenav-body flex-grow-1 overflow-y-auto" #scrollableContainer>
1324
- <ng-content />
1325
- </div>
1326
- @if (collapsible() && !isSmallScreen()) {
1327
- <div class="d-flex sidenav-footer flex-shrink-0 py-3">
1328
- <button
1329
- class="btn btn-outline-primary df-btn-icononly df-sidenav-toggle-minimized"
1330
- (click)="toggleMinimize()"
1331
- i18n-aria-label="@@df.sidenav.toggleMinimize.ariaLabel"
1332
- aria-label="Toggle minimized sidenav"
1333
- >
1334
- @if (isMinimized()) {
1335
- <span class="fa-arrow-right-to-line"></span>
1336
- } @else {
1337
- <span class="fa-arrow-left-to-line"></span>
1338
- }
1339
- </button>
1338
+ <div role="list" class="sidenav-body flex-grow-1 overflow-y-auto" #scrollableContainer>
1339
+ <ng-content />
1340
1340
  </div>
1341
- }
1342
- </nav>
1341
+ @if (collapsible() && !isSmallScreen()) {
1342
+ <div class="d-flex sidenav-footer flex-shrink-0 py-3">
1343
+ <button
1344
+ class="btn btn-outline-primary df-btn-icononly df-sidenav-toggle-minimized"
1345
+ (click)="toggleMinimize()"
1346
+ i18n-aria-label="@@df.sidenav.toggleMinimize.ariaLabel"
1347
+ aria-label="Toggle minimized sidenav"
1348
+ >
1349
+ @if (isMinimized()) {
1350
+ <span class="fa-arrow-right-to-line"></span>
1351
+ } @else {
1352
+ <span class="fa-arrow-left-to-line"></span>
1353
+ }
1354
+ </button>
1355
+ </div>
1356
+ }
1357
+ </nav>
1358
+ </div>
1343
1359
  </df-drawer>
1344
- `,
1345
- imports: [FormsModule, DfDrawerComponent],
1346
- host: {
1360
+ `, imports: [FormsModule, DfDrawer], encapsulation: ViewEncapsulation.None, host: {
1347
1361
  class: 'df-sidenav',
1348
1362
  '[class.df-sidenav-lg]': 'isLargeUpScreen()',
1349
1363
  '[class.df-sidenav-withicon]': 'contentHasIcons()',
1350
1364
  '[class.d-none]': 'isSmallScreen() && _isMinimized()',
1351
1365
  '[class.df-sidenav-drawer]': 'isMediumScreen() && !_isMinimized()'
1352
- }
1353
- }]
1354
- }], ctorParameters: () => [], propDecorators: { searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], enableMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableMobile", required: false }] }], scrollableContainer: [{ type: i0.ViewChild, args: ['scrollableContainer', { isSignal: true }] }], searchInput: [{ type: i0.ViewChild, args: ['textInput', { isSignal: true }] }], allLinks: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DfSidenavLinkComponent), { ...{ descendants: true }, isSignal: true }] }], allItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DfSidenavItemComponent), { ...{ descendants: true }, isSignal: true }] }] } });
1366
+ }, styles: [".df-sidenav{position:relative;--sidenav-minWidth: 44px;width:var(--sidenav-minWidth)}.df-sidenav.df-sidenav-withicon{--sidenav-minWidth: 90px}.df-sidenav.df-sidenav-lg{width:auto}.df-sidenav.df-sidenav-lg .df-drawer{--df-drawer-size: max-content}.df-sidenav.df-sidenav-light-sky .sidenav-body{scrollbar-color:var(--df-color-primary-soft-default-foreground) var(--df-color-primary-subtle-background)}.df-sidenav.df-sidenav-light-sky .df-drawer,.df-sidenav.df-sidenav-light-sky .df-sidenav-button{background-color:var(--df-color-primary-subtle-background)}.df-sidenav .df-sidenav-search-empty{visibility:hidden}.df-sidenav .df-sidenav-mobile-drawer{top:var(--df-navbar-height, 56px)!important;height:calc(100vh - var(--df-navbar-height, 56px))!important}.df-sidenav nav{border-inline-end:1px solid var(--df-color-inert-neutral-main-border)}.df-sidenav.df-sidenav-drawer .df-drawer{z-index:2010}.df-sidenav .df-drawer{background-color:var(--df-color-inert-neutral-main-background);height:100%;--df-drawer-size: 0;--df-drawer-min-size: var(--sidenav-minWidth);--df-drawer-max-size: max-content;z-index:10;transition:none}.df-sidenav .df-drawer.df-inline-start{border:none}.df-sidenav .df-drawer.df-collapse-show{--df-drawer-size: max-content}.df-sidenav .df-drawer.df-collapse-hide{display:block}.df-sidenav .df-drawer.df-collapse-collapsing.df-collapse-horizontal{transition:none}.df-sidenav .df-sidenav-active{font-weight:var(--df-typo-weight-bold)}.df-sidenav .sidenav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.df-sidenav .sidenav-label:before{content:attr(title);font-weight:var(--df-typo-weight-bold);visibility:hidden;height:0;overflow:hidden;display:block}.df-sidenav .df-sidenav-mobile-header{padding-block-end:var(--df-spacing-2);border-block-end:1px solid var(--df-color-neutral-alt-default-border);font-weight:var(--df-typo-weight-regular)}.df-sidenav .df-sidenav-mobile-header .df-sidenav-mobile-header-back-arrow{color:var(--df-color-primary-alt-default-foreground)}.df-sidenav .df-sidenav-mobile-header .df-sidenav-active .df-sidenav-mobile-header-back-arrow{color:var(--df-color-primary-alt-active-foreground)}.df-sidenav .sidenav-body{padding:var(--df-spacing-2);scrollbar-color:var(--df-color-primary-soft-default-foreground) var(--df-color-inert-neutral-main-background)}.df-sidenav .df-sidenav-search-minimized,.df-sidenav .df-sidenav-toggle-minimized{min-width:36px;position:relative;z-index:1}.df-sidenav .df-sidenav-header{padding-inline:var(--df-spacing-2);overflow:visible;position:relative}.df-sidenav .df-sidenav-header.df-sidenav-header-minimized{padding-inline:0}.df-sidenav .sidenav-footer{overflow:visible;position:relative}.df-sidenav [role=list] [role=listitem]{padding-inline-start:0}.df-sidenav [role=list] [role=listitem] [role=listitem]:not(.mobile){padding-inline-start:var(--df-spacing-6);position:relative}.df-sidenav [role=list] [role=listitem] [role=listitem]:not(.mobile):before{content:\"\";position:absolute;left:var(--df-spacing-5);top:0;bottom:0;width:1px;background-color:var(--df-color-neutral-soft-default-background)}.df-sidenav [role=list] [role=listitem] [role=listitem]:not(.mobile) [role=listitem]:not(.mobile){padding-inline-start:var(--df-spacing-6)}.df-sidenav .df-drawer-splitter{position:absolute;inset-block:0;inset-inline-end:-4px;width:1rem;cursor:ew-resize;background:transparent;display:flex;align-items:center;justify-content:center;touch-action:none}.df-sidenav .df-drawer-splitter .df-drawer-splitter-handle{--df-btn-bg: transparent;flex-shrink:0;transform:translate(40%);border:none;cursor:ew-resize}.df-sidenav .df-sidenav-button{--df-box-shadow-color: var(--df-color-focus-main-border);--df-btn-font-weight: var(--df-typo-weight-regular);background-color:var(--df-color-inert-neutral-main-background);padding-inline:var(--df-spacing-5);margin-block-end:1px;height:40px;border:none;position:relative}.df-sidenav .df-sidenav-button:focus-visible{z-index:1}.df-sidenav .df-sidenav-button.df-sidenav-breadcrumb-button{height:3rem}.df-sidenav .df-sidenav-button .df-sidenav-collapse-toggle{transition:transform .3s;color:var(--df-color-primary-alt-default-foreground)}.df-sidenav .df-sidenav-button .df-sidenav-collapse-toggle.expanded{transform:rotate(180deg)}.df-sidenav .df-sidenav-button:hover{background-color:var(--df-color-primary-alt-hovered-background)}.df-sidenav .df-sidenav-button:hover .df-sidenav-collapse-toggle{color:var(--df-color-primary-alt-hovered-foreground)}.df-sidenav .df-sidenav-button:active{background-color:var(--df-color-primary-alt-active-background)}.df-sidenav .df-sidenav-button:active .df-sidenav-collapse-toggle{color:var(--df-color-primary-alt-active-foreground)}.df-sidenav .df-sidenav-button.df-sidenav-active-level{font-weight:var(--df-typo-weight-bold);background-color:var(--df-color-primary-alt-active-background)}.df-sidenav .df-sidenav-button.df-sidenav-active-level:hover{background-color:var(--df-color-primary-alt-activeHovered-background)}.df-sidenav .df-sidenav-item-hidden{visibility:hidden;height:0}.df-sidenav .input-group.df-input-prepend .input-group-prepend{padding-inline-start:15px}\n"] }]
1367
+ }], ctorParameters: () => [], propDecorators: { searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], enableMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableMobile", required: false }] }], disableInitialDesktopAutoScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableInitialDesktopAutoScroll", required: false }] }], scrollableContainer: [{ type: i0.ViewChild, args: ['scrollableContainer', { isSignal: true }] }], searchInput: [{ type: i0.ViewChild, args: ['textInput', { isSignal: true }] }], allLinks: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DfSidenavLinkComponent), { ...{ descendants: true }, isSignal: true }] }], allItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DfSidenavItemComponent), { ...{ descendants: true }, isSignal: true }] }] } });
1355
1368
 
1356
1369
  /**
1357
1370
  * Generated bundle index. Do not edit.