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

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,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, contentChildren, ViewEncapsulation, ChangeDetectionStrategy, Component, input, signal, inject, ElementRef, forwardRef, Directive, computed, booleanAttribute, output, contentChild, TemplateRef, viewChild, effect, untracked, DOCUMENT, model, isDevMode } from '@angular/core';
2
+ import { InjectionToken, contentChildren, ViewEncapsulation, ChangeDetectionStrategy, Component, input, computed, signal, inject, ElementRef, forwardRef, Directive, ContentChildren, booleanAttribute, output, contentChild, TemplateRef, viewChild, effect, untracked, DOCUMENT, model, isDevMode } from '@angular/core';
3
3
  import { NgTemplateOutlet, TitleCasePipe } from '@angular/common';
4
4
  import { toAngularSignal, lg$, md$, xl$, sm$ } from '@design-factory/angular/internals';
5
5
  import { RouterLink, RouterLinkActive } from '@angular/router';
6
- import { NgbDropdown, NgbDropdownAnchor, NgbDropdownMenu, NgbDropdownItem, NgbDropdownToggle } from '@ng-bootstrap/ng-bootstrap/dropdown';
6
+ import { NgbDropdown, NgbDropdownAnchor, NgbDropdownItem, NgbDropdownMenu, NgbDropdownToggle } from '@ng-bootstrap/ng-bootstrap/dropdown';
7
7
  import { generateId } from '@design-factory/core/utils/id';
8
8
  import { NgbPopover } from '@ng-bootstrap/ng-bootstrap/popover';
9
9
  import { DfDrawer } from '@design-factory/angular/drawer';
@@ -56,9 +56,15 @@ class DfTopNavNavigationLink extends DfTopNavNavigationElement {
56
56
  */
57
57
  this.label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
58
58
  /**
59
- * The href of the navigation link, which will be used as the link target. It can be either an internal route or an external URL.
59
+ * The external href of the navigation link, which will be used as the link target. Use {@link routerLink} for internal links.
60
60
  */
61
- this.href = input.required(...(ngDevMode ? [{ debugName: "href" }] : []));
61
+ this.href = input(...(ngDevMode ? [undefined, { debugName: "href" }] : []));
62
+ /**
63
+ * The internal router link of the navigation link, which will be used as the link target. Use {@link href} for external links.
64
+ */
65
+ this.routerLink = input(...(ngDevMode ? [undefined, { debugName: "routerLink" }] : []));
66
+ this.resolvedLink = computed(() => this.routerLink() ?? this.href(), ...(ngDevMode ? [{ debugName: "resolvedLink" }] : []));
67
+ this.externalLink = computed(() => !!this.href(), ...(ngDevMode ? [{ debugName: "externalLink" }] : []));
62
68
  /**
63
69
  * The options to determine when the link is active based on the Router state. It can be either an object of type IsActiveMatchOptions or an object with an "exact" boolean property. When not provided, it defaults to { exact: false }.
64
70
  */
@@ -70,45 +76,59 @@ class DfTopNavNavigationLink extends DfTopNavNavigationElement {
70
76
  this.active = this._active.asReadonly();
71
77
  }
72
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfTopNavNavigationLink, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: DfTopNavNavigationLink, isStandalone: true, selector: "df-topnav-navigation-link", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: true, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" }, properties: { "style.display": "\"contents\"" } }, providers: [{ provide: DF_TOPNAV_NAVIGATION_ELEMENT, useExisting: DfTopNavNavigationLink }], usesInheritance: true, ngImport: i0, template: `
74
- <a
75
- class="df-topnav-navigation-link"
76
- [routerLink]="href()"
77
- routerLinkActive="df-topnav-navigation-link-active"
78
- [routerLinkActiveOptions]="routerLinkActiveOptions()"
79
- ariaCurrentWhenActive="page"
80
- [attr.data-text]="label()"
81
- (isActiveChange)="_active.set($event)"
82
- >
83
- <span>{{ label() }}</span>
84
- </a>
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfTopNavNavigationLink, isStandalone: true, selector: "df-topnav-navigation-link", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" }, properties: { "style.display": "\"contents\"" } }, providers: [{ provide: DF_TOPNAV_NAVIGATION_ELEMENT, useExisting: DfTopNavNavigationLink }], usesInheritance: true, ngImport: i0, template: `
80
+ @if (externalLink()) {
81
+ <a class="df-topnav-navigation-link" [attr.href]="href()" target="_blank">
82
+ <span [attr.data-text]="label()">{{ label() }}</span>
83
+ </a>
84
+ } @else {
85
+ <a
86
+ class="df-topnav-navigation-link"
87
+ [routerLink]="routerLink()"
88
+ routerLinkActive="df-topnav-navigation-link-active"
89
+ [routerLinkActiveOptions]="routerLinkActiveOptions()"
90
+ ariaCurrentWhenActive="page"
91
+ [attr.data-text]="label()"
92
+ (isActiveChange)="_active.set($event)"
93
+ >
94
+ <span [attr.data-text]="label()">{{ label() }}</span>
95
+ </a>
96
+ }
85
97
  `, isInline: true, styles: [".df-topnav-navigation-link{height:100%;display:flex;align-items:center;padding:var(--df-spacing-5);outline:none;position:relative;gap:var(--df-spacing-3);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.df-topnav-navigation-link{transition:none}}.df-topnav-navigation-link:focus-visible:before{content:\"\";position:absolute;inset:0;box-shadow:inset 0 0 0 2px var(--df-topnav-navigation-link-bg-color),inset 0 0 0 4px var(--df-topnav-navigation-link-border-color)}.df-topnav-navigation-link{box-shadow:none!important;border:0;border-bottom:0!important;background-color:var(--df-topnav-navigation-link-bg-color)!important}.df-topnav-navigation-link span[data-text]{text-align:center}.df-topnav-navigation-link span[data-text]:before{content:attr(data-text);font-weight:var(--df-typo-weight-bold);visibility:hidden;height:0;overflow:hidden;display:block}.df-topnav-navigation-link.df-topnav-navigation-link-active{font-weight:var(--df-typo-weight-bold)}.df-topnav-navigation-link.df-topnav-navigation-link-active:focus-visible:before{bottom:.1875rem}.df-topnav-navigation-link.df-topnav-navigation-link-active:after{content:\"\";position:absolute;inset:0;border-bottom:.1875rem solid var(--df-topnav-navigation-link-border-color)}.df-topnav-nav-basic .df-topnav-navigation-link{color:var(--df-topnav-color-inert-basic-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-basic-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-basic-foreground)}.df-topnav-nav-basic .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-hovered-border);color:var(--df-topnav-color-basic-primary-hovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-pressed-border);color:var(--df-topnav-color-basic-primary-pressed-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-basic-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-active-border)}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activeHovered-border);color:var(--df-topnav-color-basic-primary-activeHovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activePressed-border);color:var(--df-topnav-color-basic-primary-activePressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link{color:var(--df-topnav-color-inert-mirror-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-mirror-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-mirror-foreground)}.df-topnav-nav-mirror .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-hovered-border);color:var(--df-topnav-color-mirror-primary-hovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-pressed-border);color:var(--df-topnav-color-mirror-primary-pressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-mirror-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-active-border)}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activeHovered-border);color:var(--df-topnav-color-mirror-primary-activeHovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activePressed-border);color:var(--df-topnav-color-mirror-primary-activePressed-foreground)!important}\n"], 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
86
98
  }
87
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfTopNavNavigationLink, decorators: [{
88
100
  type: Component,
89
101
  args: [{ selector: 'df-topnav-navigation-link', template: `
90
- <a
91
- class="df-topnav-navigation-link"
92
- [routerLink]="href()"
93
- routerLinkActive="df-topnav-navigation-link-active"
94
- [routerLinkActiveOptions]="routerLinkActiveOptions()"
95
- ariaCurrentWhenActive="page"
96
- [attr.data-text]="label()"
97
- (isActiveChange)="_active.set($event)"
98
- >
99
- <span>{{ label() }}</span>
100
- </a>
102
+ @if (externalLink()) {
103
+ <a class="df-topnav-navigation-link" [attr.href]="href()" target="_blank">
104
+ <span [attr.data-text]="label()">{{ label() }}</span>
105
+ </a>
106
+ } @else {
107
+ <a
108
+ class="df-topnav-navigation-link"
109
+ [routerLink]="routerLink()"
110
+ routerLinkActive="df-topnav-navigation-link-active"
111
+ [routerLinkActiveOptions]="routerLinkActiveOptions()"
112
+ ariaCurrentWhenActive="page"
113
+ [attr.data-text]="label()"
114
+ (isActiveChange)="_active.set($event)"
115
+ >
116
+ <span [attr.data-text]="label()">{{ label() }}</span>
117
+ </a>
118
+ }
101
119
  `, host: {
102
120
  role: 'listitem',
103
121
  '[style.display]': '"contents"'
104
122
  }, changeDetection: ChangeDetectionStrategy.OnPush, imports: [RouterLink, RouterLinkActive], providers: [{ provide: DF_TOPNAV_NAVIGATION_ELEMENT, useExisting: DfTopNavNavigationLink }], encapsulation: ViewEncapsulation.None, styles: [".df-topnav-navigation-link{height:100%;display:flex;align-items:center;padding:var(--df-spacing-5);outline:none;position:relative;gap:var(--df-spacing-3);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.df-topnav-navigation-link{transition:none}}.df-topnav-navigation-link:focus-visible:before{content:\"\";position:absolute;inset:0;box-shadow:inset 0 0 0 2px var(--df-topnav-navigation-link-bg-color),inset 0 0 0 4px var(--df-topnav-navigation-link-border-color)}.df-topnav-navigation-link{box-shadow:none!important;border:0;border-bottom:0!important;background-color:var(--df-topnav-navigation-link-bg-color)!important}.df-topnav-navigation-link span[data-text]{text-align:center}.df-topnav-navigation-link span[data-text]:before{content:attr(data-text);font-weight:var(--df-typo-weight-bold);visibility:hidden;height:0;overflow:hidden;display:block}.df-topnav-navigation-link.df-topnav-navigation-link-active{font-weight:var(--df-typo-weight-bold)}.df-topnav-navigation-link.df-topnav-navigation-link-active:focus-visible:before{bottom:.1875rem}.df-topnav-navigation-link.df-topnav-navigation-link-active:after{content:\"\";position:absolute;inset:0;border-bottom:.1875rem solid var(--df-topnav-navigation-link-border-color)}.df-topnav-nav-basic .df-topnav-navigation-link{color:var(--df-topnav-color-inert-basic-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-basic-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-basic-foreground)}.df-topnav-nav-basic .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-hovered-border);color:var(--df-topnav-color-basic-primary-hovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-pressed-border);color:var(--df-topnav-color-basic-primary-pressed-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-basic-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-active-border)}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activeHovered-border);color:var(--df-topnav-color-basic-primary-activeHovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activePressed-border);color:var(--df-topnav-color-basic-primary-activePressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link{color:var(--df-topnav-color-inert-mirror-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-mirror-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-mirror-foreground)}.df-topnav-nav-mirror .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-hovered-border);color:var(--df-topnav-color-mirror-primary-hovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-pressed-border);color:var(--df-topnav-color-mirror-primary-pressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-mirror-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-active-border)}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activeHovered-border);color:var(--df-topnav-color-mirror-primary-activeHovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activePressed-border);color:var(--df-topnav-color-mirror-primary-activePressed-foreground)!important}\n"] }]
105
- }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: true }] }], routerLinkActiveOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLinkActiveOptions", required: false }] }] } });
123
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], routerLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLink", required: false }] }], routerLinkActiveOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLinkActiveOptions", required: false }] }] } });
106
124
 
107
125
  // TODO - Implement the dropdown mode of the TopNav using the dropdown wrapper and remove the DfTopNavDropdownToggle directive.
108
126
  /**
109
127
  * @internal
110
128
  * Temporary toggle directive for the dropdown mode of the TopNav, which will be used to toggle the dropdown menu when the navigation item is clicked.
111
129
  *
130
+ * This override of ng-bootstrap allowed to avoid setting the `dropdown-toggle` class on the toggle button.
131
+ *
112
132
  * It will be removed once the dropdown mode is implemented using a more generic approach that can be used in other components as well.
113
133
  */
114
134
  class DfTopNavDropdownToggle {
@@ -117,12 +137,12 @@ class DfTopNavDropdownToggle {
117
137
  this.nativeElement = inject(ElementRef).nativeElement;
118
138
  }
119
139
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfTopNavDropdownToggle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
120
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: DfTopNavDropdownToggle, isStandalone: true, selector: "[dfDropdownToggle]", host: { listeners: { "click": "dropdown.toggle()", "keydown.ArrowUp": "dropdown.onKeyDown($any($event))", "keydown.ArrowDown": "dropdown.onKeyDown($any($event))", "keydown.Home": "dropdown.onKeyDown($any($event))", "keydown.End": "dropdown.onKeyDown($any($event))", "keydown.Tab": "dropdown.onKeyDown($any($event))", "keydown.Shift.Tab": "dropdown.onKeyDown($any($event))" }, properties: { "attr.aria-expanded": "dropdown.isOpen()" } }, providers: [{ provide: NgbDropdownAnchor, useExisting: forwardRef(() => DfTopNavDropdownToggle) }], ngImport: i0 }); }
140
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: DfTopNavDropdownToggle, isStandalone: true, selector: "[dfTopNavDropdownToggle]", host: { listeners: { "click": "dropdown.toggle()", "keydown.ArrowUp": "dropdown.onKeyDown($any($event))", "keydown.ArrowDown": "dropdown.onKeyDown($any($event))", "keydown.Home": "dropdown.onKeyDown($any($event))", "keydown.End": "dropdown.onKeyDown($any($event))", "keydown.Tab": "dropdown.onKeyDown($any($event))", "keydown.Shift.Tab": "dropdown.onKeyDown($any($event))" }, properties: { "attr.aria-expanded": "dropdown.isOpen()" } }, providers: [{ provide: NgbDropdownAnchor, useExisting: forwardRef(() => DfTopNavDropdownToggle) }], ngImport: i0 }); }
121
141
  }
122
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfTopNavDropdownToggle, decorators: [{
123
143
  type: Directive,
124
144
  args: [{
125
- selector: '[dfDropdownToggle]',
145
+ selector: '[dfTopNavDropdownToggle]',
126
146
  host: {
127
147
  '[attr.aria-expanded]': 'dropdown.isOpen()',
128
148
  '(click)': 'dropdown.toggle()',
@@ -136,6 +156,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
136
156
  providers: [{ provide: NgbDropdownAnchor, useExisting: forwardRef(() => DfTopNavDropdownToggle) }]
137
157
  }]
138
158
  }] });
159
+ /**
160
+ * @internal
161
+ * Temporary menu directive for the dropdown mode of the TopNav.
162
+ *
163
+ * This override allowed to wrap the links into a list structure and keep the keyboard navigation working.
164
+ *
165
+ * It will be removed once the dropdown mode is implemented using a more generic approach that can be used in other components as well.
166
+ */
167
+ class DfTopNavDropdownMenu {
168
+ constructor() {
169
+ this.dropdown = inject(NgbDropdown);
170
+ this.nativeElement = inject(ElementRef).nativeElement;
171
+ }
172
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfTopNavDropdownMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
173
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: DfTopNavDropdownMenu, isStandalone: true, selector: "[dfTopNavDropdownMenu]", host: { listeners: { "keydown.ArrowUp": "dropdown.onKeyDown($any($event))", "keydown.ArrowDown": "dropdown.onKeyDown($any($event))", "keydown.Home": "dropdown.onKeyDown($any($event))", "keydown.End": "dropdown.onKeyDown($any($event))", "keydown.Enter": "dropdown.onKeyDown($any($event))", "keydown.Space": "dropdown.onKeyDown($any($event))", "keydown.Tab": "dropdown.onKeyDown($any($event))", "keydown.Shift.Tab": "dropdown.onKeyDown($any($event))" }, properties: { "class.show": "dropdown.isOpen()" }, classAttribute: "dropdown-menu" }, providers: [{ provide: NgbDropdownMenu, useExisting: forwardRef(() => DfTopNavDropdownMenu) }], queries: [{ propertyName: "menuItems", predicate: NgbDropdownItem, descendants: true }], ngImport: i0 }); }
174
+ }
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfTopNavDropdownMenu, decorators: [{
176
+ type: Directive,
177
+ args: [{
178
+ selector: '[dfTopNavDropdownMenu]',
179
+ host: {
180
+ class: 'dropdown-menu',
181
+ '[class.show]': 'dropdown.isOpen()',
182
+ '(keydown.ArrowUp)': 'dropdown.onKeyDown($any($event))',
183
+ '(keydown.ArrowDown)': 'dropdown.onKeyDown($any($event))',
184
+ '(keydown.Home)': 'dropdown.onKeyDown($any($event))',
185
+ '(keydown.End)': 'dropdown.onKeyDown($any($event))',
186
+ '(keydown.Enter)': 'dropdown.onKeyDown($any($event))',
187
+ '(keydown.Space)': 'dropdown.onKeyDown($any($event))',
188
+ '(keydown.Tab)': 'dropdown.onKeyDown($any($event))',
189
+ '(keydown.Shift.Tab)': 'dropdown.onKeyDown($any($event))'
190
+ },
191
+ providers: [{ provide: NgbDropdownMenu, useExisting: forwardRef(() => DfTopNavDropdownMenu) }]
192
+ }]
193
+ }], propDecorators: { menuItems: [{
194
+ type: ContentChildren,
195
+ args: [NgbDropdownItem, { descendants: true }]
196
+ }] } });
139
197
  /**
140
198
  * The TopNav navigation item component, used to display a navigation link in the TopNav which can have child navigation links.
141
199
  *
@@ -150,9 +208,9 @@ class DfTopNavNavigationItem extends DfTopNavNavigationElement {
150
208
  */
151
209
  this.label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
152
210
  /**
153
- * The href of the navigation item, which will be used as the link target. It can be either an internal route or an external URL.
211
+ * The routerLink of the navigation item, which will be used as the link target. It should be an internal route.
154
212
  */
155
- this.href = input.required(...(ngDevMode ? [{ debugName: "href" }] : []));
213
+ this.routerLink = input.required(...(ngDevMode ? [{ debugName: "routerLink" }] : []));
156
214
  this.childElements = contentChildren(DF_TOPNAV_NAVIGATION_ELEMENT, ...(ngDevMode ? [{ debugName: "childElements" }] : []));
157
215
  this.deepChildLinks = contentChildren(DfTopNavNavigationLink, { ...(ngDevMode ? { debugName: "deepChildLinks" } : {}), descendants: true });
158
216
  this.rootChildLinks = computed(() => this.childElements().filter((child) => child instanceof DfTopNavNavigationLink), ...(ngDevMode ? [{ debugName: "rootChildLinks" }] : []));
@@ -165,19 +223,18 @@ class DfTopNavNavigationItem extends DfTopNavNavigationElement {
165
223
  this.active = computed(() => this.deepChildLinks().some((link) => link.active()), ...(ngDevMode ? [{ debugName: "active" }] : []));
166
224
  }
167
225
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfTopNavNavigationItem, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
168
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfTopNavNavigationItem, isStandalone: true, selector: "df-topnav-navigation-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "listitem" }, properties: { "style.display": "\"contents\"" } }, providers: [{ provide: DF_TOPNAV_NAVIGATION_ELEMENT, useExisting: DfTopNavNavigationItem }], queries: [{ propertyName: "childElements", predicate: DF_TOPNAV_NAVIGATION_ELEMENT, isSignal: true }, { propertyName: "deepChildLinks", predicate: DfTopNavNavigationLink, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
226
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfTopNavNavigationItem, isStandalone: true, selector: "df-topnav-navigation-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "listitem" }, properties: { "style.display": "\"contents\"" } }, providers: [{ provide: DF_TOPNAV_NAVIGATION_ELEMENT, useExisting: DfTopNavNavigationItem }], queries: [{ propertyName: "childElements", predicate: DF_TOPNAV_NAVIGATION_ELEMENT, isSignal: true }, { propertyName: "deepChildLinks", predicate: DfTopNavNavigationLink, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
169
227
  @if (dropdownMode()) {
170
228
  <div ngbDropdown #dropdown="ngbDropdown">
171
229
  <button
172
230
  type="button"
173
231
  class="df-topnav-navigation-link"
174
- [attr.data-text]="label()"
175
232
  [class.df-topnav-navigation-link-active]="active()"
176
233
  aria-haspopup="true"
177
234
  [attr.aria-controls]="dropdownId"
178
- dfDropdownToggle
235
+ dfTopNavDropdownToggle
179
236
  >
180
- <span>{{ label() }}</span>
237
+ <span [attr.data-text]="label()">{{ label() }}</span>
181
238
  <span
182
239
  class="fal"
183
240
  aria-hidden="true"
@@ -185,32 +242,38 @@ class DfTopNavNavigationItem extends DfTopNavNavigationElement {
185
242
  [class.fa-chevron-up]="dropdown.isOpen()"
186
243
  ></span>
187
244
  </button>
188
- <div ngbDropdownMenu class="dropdown-menu-right" role="menu" [attr.id]="dropdownId">
245
+ <div dfTopNavDropdownMenu class="dropdown-menu-right" [attr.id]="dropdownId" role="list">
189
246
  @for (childLink of rootChildLinks(); track childLink) {
190
- <a
191
- ngbDropdownItem
192
- [routerLink]="childLink.href()"
193
- [class.active]="childLink.active()"
194
- [attr.aria-current]="childLink.active() ? 'page' : null"
195
- role="menuitem"
196
- >
197
- {{ childLink.label() }}
198
- </a>
247
+ <div role="listitem">
248
+ @if (childLink.href()) {
249
+ <a ngbDropdownItem [attr.href]="childLink.href()" target="_blank">
250
+ <span>{{ childLink.label() }}</span>
251
+ </a>
252
+ } @else {
253
+ <a
254
+ ngbDropdownItem
255
+ [routerLink]="childLink.routerLink()"
256
+ [class.active]="childLink.active()"
257
+ [attr.aria-current]="childLink.active() ? 'page' : null"
258
+ >
259
+ {{ childLink.label() }}
260
+ </a>
261
+ }
262
+ </div>
199
263
  }
200
264
  </div>
201
265
  </div>
202
266
  } @else {
203
267
  <a
204
268
  class="df-topnav-navigation-link"
205
- [routerLink]="href()"
269
+ [routerLink]="routerLink()"
206
270
  [class.df-topnav-navigation-link-active]="active()"
207
271
  [attr.aria-current]="active() ? 'page' : null"
208
- [attr.data-text]="label()"
209
272
  >
210
- <span>{{ label() }}</span>
273
+ <span [attr.data-text]="label()">{{ label() }}</span>
211
274
  </a>
212
275
  }
213
- `, isInline: true, styles: [".df-topnav-navigation-link{height:100%;display:flex;align-items:center;padding:var(--df-spacing-5);outline:none;position:relative;gap:var(--df-spacing-3);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.df-topnav-navigation-link{transition:none}}.df-topnav-navigation-link:focus-visible:before{content:\"\";position:absolute;inset:0;box-shadow:inset 0 0 0 2px var(--df-topnav-navigation-link-bg-color),inset 0 0 0 4px var(--df-topnav-navigation-link-border-color)}.df-topnav-navigation-link{box-shadow:none!important;border:0;border-bottom:0!important;background-color:var(--df-topnav-navigation-link-bg-color)!important}.df-topnav-navigation-link span[data-text]{text-align:center}.df-topnav-navigation-link span[data-text]:before{content:attr(data-text);font-weight:var(--df-typo-weight-bold);visibility:hidden;height:0;overflow:hidden;display:block}.df-topnav-navigation-link.df-topnav-navigation-link-active{font-weight:var(--df-typo-weight-bold)}.df-topnav-navigation-link.df-topnav-navigation-link-active:focus-visible:before{bottom:.1875rem}.df-topnav-navigation-link.df-topnav-navigation-link-active:after{content:\"\";position:absolute;inset:0;border-bottom:.1875rem solid var(--df-topnav-navigation-link-border-color)}.df-topnav-nav-basic .df-topnav-navigation-link{color:var(--df-topnav-color-inert-basic-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-basic-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-basic-foreground)}.df-topnav-nav-basic .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-hovered-border);color:var(--df-topnav-color-basic-primary-hovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-pressed-border);color:var(--df-topnav-color-basic-primary-pressed-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-basic-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-active-border)}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activeHovered-border);color:var(--df-topnav-color-basic-primary-activeHovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activePressed-border);color:var(--df-topnav-color-basic-primary-activePressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link{color:var(--df-topnav-color-inert-mirror-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-mirror-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-mirror-foreground)}.df-topnav-nav-mirror .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-hovered-border);color:var(--df-topnav-color-mirror-primary-hovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-pressed-border);color:var(--df-topnav-color-mirror-primary-pressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-mirror-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-active-border)}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activeHovered-border);color:var(--df-topnav-color-mirror-primary-activeHovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activePressed-border);color:var(--df-topnav-color-mirror-primary-activePressed-foreground)!important}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: DfTopNavDropdownToggle, selector: "[dfDropdownToggle]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
276
+ `, isInline: true, styles: [".df-topnav-navigation-link{height:100%;display:flex;align-items:center;padding:var(--df-spacing-5);outline:none;position:relative;gap:var(--df-spacing-3);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.df-topnav-navigation-link{transition:none}}.df-topnav-navigation-link:focus-visible:before{content:\"\";position:absolute;inset:0;box-shadow:inset 0 0 0 2px var(--df-topnav-navigation-link-bg-color),inset 0 0 0 4px var(--df-topnav-navigation-link-border-color)}.df-topnav-navigation-link{box-shadow:none!important;border:0;border-bottom:0!important;background-color:var(--df-topnav-navigation-link-bg-color)!important}.df-topnav-navigation-link span[data-text]{text-align:center}.df-topnav-navigation-link span[data-text]:before{content:attr(data-text);font-weight:var(--df-typo-weight-bold);visibility:hidden;height:0;overflow:hidden;display:block}.df-topnav-navigation-link.df-topnav-navigation-link-active{font-weight:var(--df-typo-weight-bold)}.df-topnav-navigation-link.df-topnav-navigation-link-active:focus-visible:before{bottom:.1875rem}.df-topnav-navigation-link.df-topnav-navigation-link-active:after{content:\"\";position:absolute;inset:0;border-bottom:.1875rem solid var(--df-topnav-navigation-link-border-color)}.df-topnav-nav-basic .df-topnav-navigation-link{color:var(--df-topnav-color-inert-basic-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-basic-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-basic-foreground)}.df-topnav-nav-basic .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-hovered-border);color:var(--df-topnav-color-basic-primary-hovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-pressed-border);color:var(--df-topnav-color-basic-primary-pressed-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-basic-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-active-border)}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activeHovered-border);color:var(--df-topnav-color-basic-primary-activeHovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activePressed-border);color:var(--df-topnav-color-basic-primary-activePressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link{color:var(--df-topnav-color-inert-mirror-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-mirror-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-mirror-foreground)}.df-topnav-nav-mirror .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-hovered-border);color:var(--df-topnav-color-mirror-primary-hovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-pressed-border);color:var(--df-topnav-color-mirror-primary-pressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-mirror-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-active-border)}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activeHovered-border);color:var(--df-topnav-color-mirror-primary-activeHovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activePressed-border);color:var(--df-topnav-color-mirror-primary-activePressed-foreground)!important}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: DfTopNavDropdownMenu, selector: "[dfTopNavDropdownMenu]" }, { kind: "directive", type: NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: DfTopNavDropdownToggle, selector: "[dfTopNavDropdownToggle]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
214
277
  }
215
278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfTopNavNavigationItem, decorators: [{
216
279
  type: Component,
@@ -220,13 +283,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
220
283
  <button
221
284
  type="button"
222
285
  class="df-topnav-navigation-link"
223
- [attr.data-text]="label()"
224
286
  [class.df-topnav-navigation-link-active]="active()"
225
287
  aria-haspopup="true"
226
288
  [attr.aria-controls]="dropdownId"
227
- dfDropdownToggle
289
+ dfTopNavDropdownToggle
228
290
  >
229
- <span>{{ label() }}</span>
291
+ <span [attr.data-text]="label()">{{ label() }}</span>
230
292
  <span
231
293
  class="fal"
232
294
  aria-hidden="true"
@@ -234,36 +296,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
234
296
  [class.fa-chevron-up]="dropdown.isOpen()"
235
297
  ></span>
236
298
  </button>
237
- <div ngbDropdownMenu class="dropdown-menu-right" role="menu" [attr.id]="dropdownId">
299
+ <div dfTopNavDropdownMenu class="dropdown-menu-right" [attr.id]="dropdownId" role="list">
238
300
  @for (childLink of rootChildLinks(); track childLink) {
239
- <a
240
- ngbDropdownItem
241
- [routerLink]="childLink.href()"
242
- [class.active]="childLink.active()"
243
- [attr.aria-current]="childLink.active() ? 'page' : null"
244
- role="menuitem"
245
- >
246
- {{ childLink.label() }}
247
- </a>
301
+ <div role="listitem">
302
+ @if (childLink.href()) {
303
+ <a ngbDropdownItem [attr.href]="childLink.href()" target="_blank">
304
+ <span>{{ childLink.label() }}</span>
305
+ </a>
306
+ } @else {
307
+ <a
308
+ ngbDropdownItem
309
+ [routerLink]="childLink.routerLink()"
310
+ [class.active]="childLink.active()"
311
+ [attr.aria-current]="childLink.active() ? 'page' : null"
312
+ >
313
+ {{ childLink.label() }}
314
+ </a>
315
+ }
316
+ </div>
248
317
  }
249
318
  </div>
250
319
  </div>
251
320
  } @else {
252
321
  <a
253
322
  class="df-topnav-navigation-link"
254
- [routerLink]="href()"
323
+ [routerLink]="routerLink()"
255
324
  [class.df-topnav-navigation-link-active]="active()"
256
325
  [attr.aria-current]="active() ? 'page' : null"
257
- [attr.data-text]="label()"
258
326
  >
259
- <span>{{ label() }}</span>
327
+ <span [attr.data-text]="label()">{{ label() }}</span>
260
328
  </a>
261
329
  }
262
330
  `, changeDetection: ChangeDetectionStrategy.OnPush, host: {
263
331
  '[style.display]': '"contents"',
264
332
  role: 'listitem'
265
- }, imports: [RouterLink, NgbDropdown, NgbDropdownMenu, NgbDropdownItem, DfTopNavDropdownToggle], providers: [{ provide: DF_TOPNAV_NAVIGATION_ELEMENT, useExisting: DfTopNavNavigationItem }], encapsulation: ViewEncapsulation.None, styles: [".df-topnav-navigation-link{height:100%;display:flex;align-items:center;padding:var(--df-spacing-5);outline:none;position:relative;gap:var(--df-spacing-3);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.df-topnav-navigation-link{transition:none}}.df-topnav-navigation-link:focus-visible:before{content:\"\";position:absolute;inset:0;box-shadow:inset 0 0 0 2px var(--df-topnav-navigation-link-bg-color),inset 0 0 0 4px var(--df-topnav-navigation-link-border-color)}.df-topnav-navigation-link{box-shadow:none!important;border:0;border-bottom:0!important;background-color:var(--df-topnav-navigation-link-bg-color)!important}.df-topnav-navigation-link span[data-text]{text-align:center}.df-topnav-navigation-link span[data-text]:before{content:attr(data-text);font-weight:var(--df-typo-weight-bold);visibility:hidden;height:0;overflow:hidden;display:block}.df-topnav-navigation-link.df-topnav-navigation-link-active{font-weight:var(--df-typo-weight-bold)}.df-topnav-navigation-link.df-topnav-navigation-link-active:focus-visible:before{bottom:.1875rem}.df-topnav-navigation-link.df-topnav-navigation-link-active:after{content:\"\";position:absolute;inset:0;border-bottom:.1875rem solid var(--df-topnav-navigation-link-border-color)}.df-topnav-nav-basic .df-topnav-navigation-link{color:var(--df-topnav-color-inert-basic-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-basic-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-basic-foreground)}.df-topnav-nav-basic .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-hovered-border);color:var(--df-topnav-color-basic-primary-hovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-pressed-border);color:var(--df-topnav-color-basic-primary-pressed-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-basic-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-active-border)}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activeHovered-border);color:var(--df-topnav-color-basic-primary-activeHovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activePressed-border);color:var(--df-topnav-color-basic-primary-activePressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link{color:var(--df-topnav-color-inert-mirror-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-mirror-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-mirror-foreground)}.df-topnav-nav-mirror .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-hovered-border);color:var(--df-topnav-color-mirror-primary-hovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-pressed-border);color:var(--df-topnav-color-mirror-primary-pressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-mirror-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-active-border)}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activeHovered-border);color:var(--df-topnav-color-mirror-primary-activeHovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activePressed-border);color:var(--df-topnav-color-mirror-primary-activePressed-foreground)!important}\n"] }]
266
- }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: true }] }], childElements: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DF_TOPNAV_NAVIGATION_ELEMENT), { isSignal: true }] }], deepChildLinks: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DfTopNavNavigationLink), { ...{ descendants: true }, isSignal: true }] }] } });
333
+ }, imports: [RouterLink, NgbDropdown, DfTopNavDropdownMenu, NgbDropdownItem, DfTopNavDropdownToggle], providers: [{ provide: DF_TOPNAV_NAVIGATION_ELEMENT, useExisting: DfTopNavNavigationItem }], encapsulation: ViewEncapsulation.None, styles: [".df-topnav-navigation-link{height:100%;display:flex;align-items:center;padding:var(--df-spacing-5);outline:none;position:relative;gap:var(--df-spacing-3);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.df-topnav-navigation-link{transition:none}}.df-topnav-navigation-link:focus-visible:before{content:\"\";position:absolute;inset:0;box-shadow:inset 0 0 0 2px var(--df-topnav-navigation-link-bg-color),inset 0 0 0 4px var(--df-topnav-navigation-link-border-color)}.df-topnav-navigation-link{box-shadow:none!important;border:0;border-bottom:0!important;background-color:var(--df-topnav-navigation-link-bg-color)!important}.df-topnav-navigation-link span[data-text]{text-align:center}.df-topnav-navigation-link span[data-text]:before{content:attr(data-text);font-weight:var(--df-typo-weight-bold);visibility:hidden;height:0;overflow:hidden;display:block}.df-topnav-navigation-link.df-topnav-navigation-link-active{font-weight:var(--df-typo-weight-bold)}.df-topnav-navigation-link.df-topnav-navigation-link-active:focus-visible:before{bottom:.1875rem}.df-topnav-navigation-link.df-topnav-navigation-link-active:after{content:\"\";position:absolute;inset:0;border-bottom:.1875rem solid var(--df-topnav-navigation-link-border-color)}.df-topnav-nav-basic .df-topnav-navigation-link{color:var(--df-topnav-color-inert-basic-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-basic-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-basic-foreground)}.df-topnav-nav-basic .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-hovered-border);color:var(--df-topnav-color-basic-primary-hovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-pressed-border);color:var(--df-topnav-color-basic-primary-pressed-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-basic-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-active-border)}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activeHovered-border);color:var(--df-topnav-color-basic-primary-activeHovered-foreground)!important}.df-topnav-nav-basic .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-basic-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-basic-primary-activePressed-border);color:var(--df-topnav-color-basic-primary-activePressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link{color:var(--df-topnav-color-inert-mirror-foreground)!important;--df-topnav-navigation-link-bg-color: var(--df-topnav-color-inert-mirror-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-inert-mirror-foreground)}.df-topnav-nav-mirror .df-topnav-navigation-link:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-hovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-hovered-border);color:var(--df-topnav-color-mirror-primary-hovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-pressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-pressed-border);color:var(--df-topnav-color-mirror-primary-pressed-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active{color:var(--df-topnav-color-mirror-primary-active-foreground)!important;--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-active-border)}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:hover{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activeHovered-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activeHovered-border);color:var(--df-topnav-color-mirror-primary-activeHovered-foreground)!important}.df-topnav-nav-mirror .df-topnav-navigation-link.df-topnav-navigation-link-active:active{--df-topnav-navigation-link-bg-color: var(--df-topnav-color-mirror-primary-activePressed-background);--df-topnav-navigation-link-border-color: var(--df-topnav-color-mirror-primary-activePressed-border);color:var(--df-topnav-color-mirror-primary-activePressed-foreground)!important}\n"] }]
334
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], routerLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLink", required: true }] }], childElements: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DF_TOPNAV_NAVIGATION_ELEMENT), { isSignal: true }] }], deepChildLinks: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DfTopNavNavigationLink), { ...{ descendants: true }, isSignal: true }] }] } });
267
335
 
268
336
  /**
269
337
  * @internal
@@ -492,6 +560,7 @@ class DfAppContainer {
492
560
  <df-sidenav-link
493
561
  [label]="element4.label()"
494
562
  [linkPath]="element4.href()"
563
+ [active]="element4.external() ? false : undefined"
495
564
  [routerLinkActiveOptions]="element4.routerLinkActiveOptions()"
496
565
  />
497
566
  }
@@ -501,6 +570,7 @@ class DfAppContainer {
501
570
  <df-sidenav-link
502
571
  [label]="element3.label()"
503
572
  [linkPath]="element3.href()"
573
+ [active]="element3.external() ? false : undefined"
504
574
  [routerLinkActiveOptions]="element3.routerLinkActiveOptions()"
505
575
  />
506
576
  }
@@ -510,6 +580,7 @@ class DfAppContainer {
510
580
  <df-sidenav-link
511
581
  [label]="element2.label()"
512
582
  [linkPath]="element2.href()"
583
+ [active]="element2.external() ? false : undefined"
513
584
  [routerLinkActiveOptions]="element2.routerLinkActiveOptions()"
514
585
  />
515
586
  }
@@ -519,6 +590,7 @@ class DfAppContainer {
519
590
  <df-sidenav-link
520
591
  [label]="element1.label()"
521
592
  [linkPath]="element1.href()"
593
+ [active]="element1.external() ? false : undefined"
522
594
  [routerLinkActiveOptions]="element1.routerLinkActiveOptions()"
523
595
  />
524
596
  }
@@ -527,7 +599,7 @@ class DfAppContainer {
527
599
  }
528
600
  <ng-content select="main" />
529
601
  </div>
530
- `, isInline: true, styles: [".df-app-container{height:100dvh;width:100%;display:flex;flex-direction:column}.df-app-container-content{flex-grow:1;display:flex;width:100%;position:relative;overflow:hidden}main{flex-grow:1;overflow-y:auto;scrollbar-color:var(--df-color-primary-soft-default-foreground) var(--df-color-inert-neutral-main-background);scroll-padding-top:var(--df-spacing-5)}\n"], dependencies: [{ kind: "component", type: DfSidenavComponent, selector: "df-sidenav", inputs: ["searchable", "resizable", "collapsible", "enableMobile", "disableInitialDesktopAutoScroll"] }, { kind: "component", type: DfSidenavItemComponent, selector: "df-sidenav-item", inputs: ["label", "collapsed", "icon"], outputs: ["collapsedChange"] }, { kind: "component", type: DfSidenavLinkComponent, selector: "df-sidenav-link", inputs: ["linkPath", "label", "icon", "routerLinkActiveOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
602
+ `, isInline: true, styles: [".df-app-container{height:100dvh;width:100%;display:flex;flex-direction:column}.df-app-container-content{flex-grow:1;display:flex;width:100%;position:relative;overflow:hidden}main{flex-grow:1;overflow-y:auto;scrollbar-color:var(--df-color-primary-soft-default-foreground) var(--df-color-inert-neutral-main-background);scroll-padding-top:var(--df-spacing-5)}\n"], dependencies: [{ kind: "component", type: DfSidenavComponent, selector: "df-sidenav", inputs: ["searchable", "resizable", "collapsible", "enableMobile", "disableInitialDesktopAutoScroll"] }, { kind: "component", type: DfSidenavItemComponent, selector: "df-sidenav-item", inputs: ["label", "collapsed", "icon"], outputs: ["collapsedChange"] }, { kind: "component", type: DfSidenavLinkComponent, selector: "df-sidenav-link", inputs: ["linkPath", "label", "icon", "routerLinkActiveOptions", "active"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
531
603
  }
532
604
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfAppContainer, decorators: [{
533
605
  type: Component,
@@ -551,6 +623,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
551
623
  <df-sidenav-link
552
624
  [label]="element4.label()"
553
625
  [linkPath]="element4.href()"
626
+ [active]="element4.external() ? false : undefined"
554
627
  [routerLinkActiveOptions]="element4.routerLinkActiveOptions()"
555
628
  />
556
629
  }
@@ -560,6 +633,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
560
633
  <df-sidenav-link
561
634
  [label]="element3.label()"
562
635
  [linkPath]="element3.href()"
636
+ [active]="element3.external() ? false : undefined"
563
637
  [routerLinkActiveOptions]="element3.routerLinkActiveOptions()"
564
638
  />
565
639
  }
@@ -569,6 +643,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
569
643
  <df-sidenav-link
570
644
  [label]="element2.label()"
571
645
  [linkPath]="element2.href()"
646
+ [active]="element2.external() ? false : undefined"
572
647
  [routerLinkActiveOptions]="element2.routerLinkActiveOptions()"
573
648
  />
574
649
  }
@@ -578,6 +653,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
578
653
  <df-sidenav-link
579
654
  [label]="element1.label()"
580
655
  [linkPath]="element1.href()"
656
+ [active]="element1.external() ? false : undefined"
581
657
  [routerLinkActiveOptions]="element1.routerLinkActiveOptions()"
582
658
  />
583
659
  }
@@ -1046,7 +1122,8 @@ class DfTopNav {
1046
1122
  if (el instanceof DfTopNavNavigationLink) {
1047
1123
  return {
1048
1124
  label: el.label,
1049
- href: el.href,
1125
+ href: el['resolvedLink'],
1126
+ external: el['externalLink'],
1050
1127
  routerLinkActiveOptions: el.routerLinkActiveOptions
1051
1128
  };
1052
1129
  }
@@ -1142,7 +1219,7 @@ class DfTopNav {
1142
1219
  </nav>
1143
1220
  }
1144
1221
  </header>
1145
- `, isInline: true, styles: ["@media(min-width:768px)and (max-width:991px){.df-app-container:has(.df-drawer.df-collapse-show,.df-drawer.df-collapse-collapsing) .df-topnav-header{z-index:2010}}.df-topnav-header{position:relative;z-index:11}body:not(:has(.df-env-banner)) .df-topnav-header{box-shadow:0 0 8px var(--df-color-shadow-1)}.df-topnav-nav{display:flex;align-items:center;height:3.5rem}.df-topnav-nav:first-of-type{padding-inline:var(--df-spacing-3)}@media(min-width:1200px){.df-topnav-nav{gap:var(--df-spacing-5)}}.df-topnav-nav.df-topnav-nav-basic{background:var(--df-topnav-color-inert-basic-background);--df-topnav-btn-bg-color: var(--df-topnav-color-inert-basic-background);--df-topnav-btn-border-color: var(--df-topnav-color-inert-basic-foreground)}.df-topnav-nav.df-topnav-nav-mirror{background:var(--df-topnav-color-inert-mirror-background);--df-topnav-btn-bg-color: var(--df-topnav-color-inert-mirror-background);--df-topnav-btn-border-color: var(--df-topnav-color-inert-mirror-foreground)}.df-topnav-toggle-icon{width:2.25rem;height:1.5rem}.df-topnav-nav-border{border-bottom:1px solid var(--df-color-inert-neutral-main-border)}\n"], dependencies: [{ kind: "component", type: DfTopNavButton, selector: "button[dfTopNavButton]", inputs: ["appearance", "icon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1222
+ `, isInline: true, styles: ["@media(min-width:768px)and (max-width:991px){.df-app-container:has(.df-drawer.df-collapse-show,.df-drawer.df-collapse-collapsing) .df-topnav-header{z-index:2010}}.df-topnav-header{position:relative;z-index:11;view-transition-name:df-topnav-header}body:not(:has(.df-env-banner)) .df-topnav-header{box-shadow:0 0 8px var(--df-color-shadow-1)}.df-topnav-nav{display:flex;align-items:center;height:3.5rem}.df-topnav-nav:first-of-type{padding-inline:var(--df-spacing-3)}@media(min-width:1200px){.df-topnav-nav{gap:var(--df-spacing-5)}}.df-topnav-nav.df-topnav-nav-basic{background:var(--df-topnav-color-inert-basic-background);--df-topnav-btn-bg-color: var(--df-topnav-color-inert-basic-background);--df-topnav-btn-border-color: var(--df-topnav-color-inert-basic-foreground)}.df-topnav-nav.df-topnav-nav-mirror{background:var(--df-topnav-color-inert-mirror-background);--df-topnav-btn-bg-color: var(--df-topnav-color-inert-mirror-background);--df-topnav-btn-border-color: var(--df-topnav-color-inert-mirror-foreground)}.df-topnav-toggle-icon{width:2.25rem;height:1.5rem}.df-topnav-nav-border{border-bottom:1px solid var(--df-color-inert-neutral-main-border)}\n"], dependencies: [{ kind: "component", type: DfTopNavButton, selector: "button[dfTopNavButton]", inputs: ["appearance", "icon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1146
1223
  }
1147
1224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfTopNav, decorators: [{
1148
1225
  type: Component,
@@ -1195,7 +1272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
1195
1272
  </header>
1196
1273
  `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [DfTopNavButton, NgTemplateOutlet], encapsulation: ViewEncapsulation.None, host: {
1197
1274
  class: 'df-topnav'
1198
- }, styles: ["@media(min-width:768px)and (max-width:991px){.df-app-container:has(.df-drawer.df-collapse-show,.df-drawer.df-collapse-collapsing) .df-topnav-header{z-index:2010}}.df-topnav-header{position:relative;z-index:11}body:not(:has(.df-env-banner)) .df-topnav-header{box-shadow:0 0 8px var(--df-color-shadow-1)}.df-topnav-nav{display:flex;align-items:center;height:3.5rem}.df-topnav-nav:first-of-type{padding-inline:var(--df-spacing-3)}@media(min-width:1200px){.df-topnav-nav{gap:var(--df-spacing-5)}}.df-topnav-nav.df-topnav-nav-basic{background:var(--df-topnav-color-inert-basic-background);--df-topnav-btn-bg-color: var(--df-topnav-color-inert-basic-background);--df-topnav-btn-border-color: var(--df-topnav-color-inert-basic-foreground)}.df-topnav-nav.df-topnav-nav-mirror{background:var(--df-topnav-color-inert-mirror-background);--df-topnav-btn-bg-color: var(--df-topnav-color-inert-mirror-background);--df-topnav-btn-border-color: var(--df-topnav-color-inert-mirror-foreground)}.df-topnav-toggle-icon{width:2.25rem;height:1.5rem}.df-topnav-nav-border{border-bottom:1px solid var(--df-color-inert-neutral-main-border)}\n"] }]
1275
+ }, styles: ["@media(min-width:768px)and (max-width:991px){.df-app-container:has(.df-drawer.df-collapse-show,.df-drawer.df-collapse-collapsing) .df-topnav-header{z-index:2010}}.df-topnav-header{position:relative;z-index:11;view-transition-name:df-topnav-header}body:not(:has(.df-env-banner)) .df-topnav-header{box-shadow:0 0 8px var(--df-color-shadow-1)}.df-topnav-nav{display:flex;align-items:center;height:3.5rem}.df-topnav-nav:first-of-type{padding-inline:var(--df-spacing-3)}@media(min-width:1200px){.df-topnav-nav{gap:var(--df-spacing-5)}}.df-topnav-nav.df-topnav-nav-basic{background:var(--df-topnav-color-inert-basic-background);--df-topnav-btn-bg-color: var(--df-topnav-color-inert-basic-background);--df-topnav-btn-border-color: var(--df-topnav-color-inert-basic-foreground)}.df-topnav-nav.df-topnav-nav-mirror{background:var(--df-topnav-color-inert-mirror-background);--df-topnav-btn-bg-color: var(--df-topnav-color-inert-mirror-background);--df-topnav-btn-border-color: var(--df-topnav-color-inert-mirror-foreground)}.df-topnav-toggle-icon{width:2.25rem;height:1.5rem}.df-topnav-nav-border{border-bottom:1px solid var(--df-color-inert-neutral-main-border)}\n"] }]
1199
1276
  }], ctorParameters: () => [], propDecorators: { mainNavStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "mainNavStyle", required: false }] }], secondaryNavStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "secondaryNavStyle", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], navExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "navExpanded", required: false }] }, { type: i0.Output, args: ["navExpandedChange"] }], superheader: [{ type: i0.Input, args: [{ isSignal: true, alias: "superheader", required: false }] }], showToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "showToggle", required: false }] }], navigationContainer: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DfTopNavNavigation), { isSignal: true }] }], navActions: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DfTopNavQuickActions), { isSignal: true }] }] } });
1200
1277
 
1201
1278
  /**