An Angular library for common website header, including a UIowa branding bar and a website nav bar. This library also handles impersonation use case.
You might also want to check out libraries @uiowa/spinner, session-expiration-alert, @uiowa/date-range-picker, @uiowa/digit-only and @uiowa/uiowa-mfk.
v17 Dependencies: Angular >=17
v13 Dependencies: Angular >=13
v12.1.1 Dependencies: Angular >=12
v12 Dependencies: Angular >=12, ng-bootstrap >=10, Bootstrap >=4.5 (css)
v10 Dependencies: Angular >=10, ng-bootstrap >=7, Bootstrap >=4.5 (css)
v9 Dependencies: Angular >=9, ng-bootstrap >=6, Bootstrap >=4 (css)
v6 ~ v8 Dependencies: Angular >=6, ng-bootstrap >=2, Bootstrap >=4 (css)
ExternalLink
: static link listed in navigation menu bar. eg, Employee Self Service site link. (Optional)InternalRoute
: route for pages in your app.HeaderUser
: used to display user name and/or original user name when impersonation.BannerLinks
: static link listed in Uiowa branding bar. eg, Employee Self Service site link. Maximum two links. (Optional)
-
Responsive header layout with Hawkeye color styles
-
Support custom "top-right" part of Uiowa branding bar. By default, "top-right" part of Uiowa branding bar shows External Links (if any) and Login link or User dropdown button. If you want to customize the "top-right" part, you can provide your content inside of
uiowa-header
tag. eg,<uiowa-header applicationName="My Awesome App" [internalRoutes]="myInternalRoutes"> <div class="text-white">my content</div> </uiowa-header>
-
Support application Nav menus with dropdown sub menus, as well as dividers in dropdown menu.
-
Provide
LoginService
with default implementations forlogin()
andlogout()
methods which correspond to click event from login and logout buttons. By default, you don't need to do extra work for login/logout. The two methods follow .NET Core convention redirect to routesaccount\login
andaccount\logout
, respectively.LoginService
has a public memberreturnUri
(string, default empty), which is the return uri after login.If you want to customize login and/or logout process, you can provide your customized service via dependency injection. eg,
@NgModule({ imports: [CommonModule, UiowaHeaderModule], declarations: [...], providers: [{ provide: LoginService, useClass: HawkIdLoginService }], exports: [UiowaHeaderModule, ...] }) export class CoreModule { constructor(@Optional() @SkipSelf() core: CoreModule) { if (core) { throw new Error('Core Module can only be imported to AppModule.'); } } }
-
When user is impersonating and wants to stop impersonation, user dropdown will show a link which would emit a
stopImpersonation
event. You can handle this event accordingly. -
Follow web content accessibility guidelines.