@byuhbll/components 4.0.0-alpha.9 → 4.0.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.
Files changed (51) hide show
  1. package/esm2022/lib/animations/animations.mjs +5 -5
  2. package/esm2022/lib/checkbox/checkbox.component.mjs +15 -0
  3. package/esm2022/lib/contact-utils.mjs +41 -0
  4. package/esm2022/lib/copy-tooltip/copy-tooltip.component.mjs +3 -3
  5. package/esm2022/lib/expand-collapse/expand-collapse.component.mjs +3 -3
  6. package/esm2022/lib/hbll-footer/hbll-footer.component.mjs +98 -0
  7. package/esm2022/lib/hbll-header/hbll-header.component.mjs +30 -25
  8. package/esm2022/lib/hbll-header/nav-bar/nav-bar.component.mjs +255 -229
  9. package/esm2022/lib/hbll-header/nav-bar-dropdown/nav-bar-dropdown.component.mjs +3 -3
  10. package/esm2022/lib/header-with-impersonation/header-with-impersonation.component.mjs +39 -0
  11. package/esm2022/lib/impersonate-modal/impersonate-modal.component.mjs +190 -0
  12. package/esm2022/lib/impersonation-banner/impersonation-banner.component.mjs +128 -0
  13. package/esm2022/lib/impersonation-banner/models/application-access.mjs +7 -0
  14. package/esm2022/lib/impersonation-banner/models/person-summary.mjs +15 -0
  15. package/esm2022/lib/models/token-payload.mjs +2 -0
  16. package/esm2022/lib/multi-select/multi-select.component.mjs +115 -0
  17. package/esm2022/lib/pipes/hbll-item-type-icon.pipe.mjs +128 -0
  18. package/esm2022/lib/ss-search-bar/advanced-search/advanced-search.component.mjs +5 -5
  19. package/esm2022/lib/ss-search-bar/date-range/date-range.component.mjs +3 -3
  20. package/esm2022/lib/ss-search-bar/ss-search-bar.component.mjs +3 -3
  21. package/esm2022/lib/utils.mjs +2 -3
  22. package/esm2022/public-api.mjs +7 -2
  23. package/fesm2022/byuhbll-components.mjs +794 -471
  24. package/fesm2022/byuhbll-components.mjs.map +1 -1
  25. package/lib/{hbll-checkbox/hbll-checkbox.component.d.ts → checkbox/checkbox.component.d.ts} +1 -1
  26. package/lib/contact-utils.d.ts +19 -0
  27. package/lib/hbll-footer/hbll-footer.component.d.ts +30 -0
  28. package/lib/hbll-header/hbll-header.component.d.ts +12 -16
  29. package/lib/hbll-header/nav-bar/nav-bar.component.d.ts +5 -3
  30. package/lib/header-with-impersonation/header-with-impersonation.component.d.ts +20 -0
  31. package/lib/{hbll-header/impersonate-modal → impersonate-modal}/impersonate-modal.component.d.ts +3 -1
  32. package/lib/{hbll-impersonation-banner/hbll-impersonation-banner.component.d.ts → impersonation-banner/impersonation-banner.component.d.ts} +8 -7
  33. package/lib/{hbll-multi-select/hbll-multi-select.component.d.ts → multi-select/multi-select.component.d.ts} +1 -1
  34. package/lib/pipes/hbll-item-type-icon.pipe.d.ts +17 -0
  35. package/lib/ss-search-bar/advanced-search/advanced-search.component.d.ts +4 -1
  36. package/package.json +1 -1
  37. package/public-api.d.ts +6 -1
  38. package/styles/scss/_mixins.scss +1 -1
  39. package/styles/scss/_vars.scss +1 -0
  40. package/styles/scss/base.scss +1 -2
  41. package/styles/scss/shared.scss +8 -0
  42. package/esm2022/lib/hbll-checkbox/hbll-checkbox.component.mjs +0 -15
  43. package/esm2022/lib/hbll-header/impersonate-modal/impersonate-modal.component.mjs +0 -188
  44. package/esm2022/lib/hbll-header/models/application-access.mjs +0 -7
  45. package/esm2022/lib/hbll-header/models/person-summary.mjs +0 -15
  46. package/esm2022/lib/hbll-header/models/token-payload.mjs +0 -2
  47. package/esm2022/lib/hbll-impersonation-banner/hbll-impersonation-banner.component.mjs +0 -129
  48. package/esm2022/lib/hbll-multi-select/hbll-multi-select.component.mjs +0 -115
  49. /package/lib/{hbll-header → impersonation-banner}/models/application-access.d.ts +0 -0
  50. /package/lib/{hbll-header → impersonation-banner}/models/person-summary.d.ts +0 -0
  51. /package/lib/{hbll-header/models → models}/token-payload.d.ts +0 -0
@@ -1,17 +1,17 @@
1
1
  import * as i1 from '@angular/common';
2
- import { CommonModule, DatePipe, LowerCasePipe } from '@angular/common';
2
+ import { CommonModule, DatePipe, DOCUMENT, LowerCasePipe } from '@angular/common';
3
3
  import { toSignal, toObservable } from '@angular/core/rxjs-interop';
4
4
  import { HttpClient } from '@angular/common/http';
5
5
  import * as i0 from '@angular/core';
6
- import { Component, ChangeDetectionStrategy, ViewChild, Input, input, EventEmitter, Output, inject, ViewChildren, Pipe, ElementRef, HostListener, Renderer2, viewChild, computed, ViewEncapsulation } from '@angular/core';
6
+ import { Component, ChangeDetectionStrategy, ViewChild, Input, input, EventEmitter, Output, inject, computed, ViewChildren, Pipe, Renderer2, viewChild, HostListener, ElementRef, ViewEncapsulation } from '@angular/core';
7
7
  import { trigger, transition, group, style, query, animateChild, animate } from '@angular/animations';
8
- import { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';
9
- import { map, Subject, of, Subscription, switchMap as switchMap$1, shareReplay, combineLatest } from 'rxjs';
8
+ import { map, of, switchMap, shareReplay, combineLatest, Subject, Subscription } from 'rxjs';
9
+ import { BreakpointObserver } from '@angular/cdk/layout';
10
10
  import * as i2 from '@angular/forms';
11
- import { FormBuilder, Validators, ReactiveFormsModule, FormControl, NonNullableFormBuilder } from '@angular/forms';
12
- import { switchMap, startWith, catchError, tap, map as map$1, filter } from 'rxjs/operators';
13
- import urlcat from 'urlcat';
11
+ import { Validators, FormBuilder, ReactiveFormsModule, FormControl, NonNullableFormBuilder } from '@angular/forms';
12
+ import { switchMap as switchMap$1, map as map$1, startWith, catchError, tap, filter } from 'rxjs/operators';
14
13
  import { jwtDecode } from 'jwt-decode';
14
+ import urlcat from 'urlcat';
15
15
  import * as i1$1 from '@angular/material/tooltip';
16
16
  import { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';
17
17
  import { MatIconModule } from '@angular/material/icon';
@@ -47,20 +47,20 @@ const libHbllFadeOut = trigger('libHbllFadeOut', [
47
47
  const libHbllSlideInOutRightLeft = trigger('libHbllSlideInOutRightLeft', [
48
48
  transition(':enter', [
49
49
  style({
50
- transform: 'translateX(+100%)',
50
+ transform: 'translateX({{xOffset}})',
51
51
  }),
52
52
  animate('200ms ease-in-out', style({
53
53
  transform: 'translateX(0)',
54
54
  })),
55
- ]),
55
+ ], { params: { xOffset: '100%' } }),
56
56
  transition(':leave', [
57
57
  style({
58
58
  transform: 'translateX(0)',
59
59
  }),
60
60
  animate('200ms ease-in-out', style({
61
- transform: 'translateX(+100%)',
61
+ transform: 'translateX({{xOffset}})',
62
62
  })),
63
- ]),
63
+ ], { params: { xOffset: '100%' } }),
64
64
  ]);
65
65
 
66
66
  class ExpandCollapseComponent {
@@ -76,11 +76,11 @@ class ExpandCollapseComponent {
76
76
  return this._isExpanded;
77
77
  }
78
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ExpandCollapseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ExpandCollapseComponent, isStandalone: true, selector: "lib-expand-collapse", inputs: { isExpanded: "isExpanded" }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["contentRef"], descendants: true }], ngImport: i0, template: "<div\n #contentRef\n [@libHbllExpandCollapse]=\"{\n value: isExpanded,\n params: { startHeight: heightOfContent },\n }\"\n class=\"content-wrapper\"\n [ngClass]=\"{ collapsed: !isExpanded }\"\n>\n <div *ngIf=\"isExpanded\" @libHbllFadeInOut data-testid=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".collapsed{height:0}.content-wrapper{overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [libHbllExpandCollapse, libHbllFadeInOut], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ExpandCollapseComponent, isStandalone: true, selector: "lib-expand-collapse", inputs: { isExpanded: "isExpanded" }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["contentRef"], descendants: true }], ngImport: i0, template: "<div\n #contentRef\n [@libHbllExpandCollapse]=\"{\n value: isExpanded,\n params: { startHeight: heightOfContent },\n }\"\n class=\"hbll-expand-collapse-content-wrapper\"\n [ngClass]=\"{ 'hbll-expand-collapse-collapsed': !isExpanded }\"\n>\n <div *ngIf=\"isExpanded\" @libHbllFadeInOut data-testid=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".hbll-expand-collapse-collapsed{height:0}.hbll-expand-collapse-content-wrapper{overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [libHbllExpandCollapse, libHbllFadeInOut], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
80
80
  }
81
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ExpandCollapseComponent, decorators: [{
82
82
  type: Component,
83
- args: [{ selector: 'lib-expand-collapse', changeDetection: ChangeDetectionStrategy.OnPush, animations: [libHbllExpandCollapse, libHbllFadeInOut], standalone: true, imports: [CommonModule], template: "<div\n #contentRef\n [@libHbllExpandCollapse]=\"{\n value: isExpanded,\n params: { startHeight: heightOfContent },\n }\"\n class=\"content-wrapper\"\n [ngClass]=\"{ collapsed: !isExpanded }\"\n>\n <div *ngIf=\"isExpanded\" @libHbllFadeInOut data-testid=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".collapsed{height:0}.content-wrapper{overflow:hidden}\n"] }]
83
+ args: [{ selector: 'lib-expand-collapse', changeDetection: ChangeDetectionStrategy.OnPush, animations: [libHbllExpandCollapse, libHbllFadeInOut], standalone: true, imports: [CommonModule], template: "<div\n #contentRef\n [@libHbllExpandCollapse]=\"{\n value: isExpanded,\n params: { startHeight: heightOfContent },\n }\"\n class=\"hbll-expand-collapse-content-wrapper\"\n [ngClass]=\"{ 'hbll-expand-collapse-collapsed': !isExpanded }\"\n>\n <div *ngIf=\"isExpanded\" @libHbllFadeInOut data-testid=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".hbll-expand-collapse-collapsed{height:0}.hbll-expand-collapse-content-wrapper{overflow:hidden}\n"] }]
84
84
  }], propDecorators: { contentRef: [{
85
85
  type: ViewChild,
86
86
  args: ['contentRef']
@@ -104,11 +104,11 @@ class NavBarDropdownComponent {
104
104
  };
105
105
  }
106
106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NavBarDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: NavBarDropdownComponent, isStandalone: true, selector: "lib-nav-bar-dropdown", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, isSmallScreen: { classPropertyName: "isSmallScreen", publicName: "isSmallScreen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openEvent: "openEvent" }, ngImport: i0, template: "<span\n class=\"dropdown-wrapper\"\n data-testid=\"wrapper\"\n [ngClass]=\"{ desktop: !isSmallScreen() }\"\n (mouseenter)=\"!isSmallScreen() && (this.isOpen = true)\"\n (mouseleave)=\"!isSmallScreen() && (this.isOpen = false)\"\n>\n <button (click)=\"handleClick()\" data-testid=\"btn\">\n {{ title() }}\n <span class=\"material-symbols-outlined icon\">\n {{ 'keyboard_arrow_' + (isOpen ? 'up' : 'down') }}\n </span>\n </button>\n @if (!isSmallScreen()) {\n @if (isOpen) {\n <div class=\"dropdown\" data-testid=\"dropdown\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n }\n } @else {\n <lib-expand-collapse [isExpanded]=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </lib-expand-collapse>\n }\n</span>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".dropdown-wrapper.desktop button{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}.dropdown-wrapper.desktop button .icon{font-size:1.3em;margin-bottom:-.1em}.dropdown-wrapper.desktop button:hover{background-color:#0047ba;color:#fff}.dropdown-wrapper button{justify-content:flex-end;font-size:1.3em;color:#fff;display:flex;align-items:center;width:100%;padding:.6em;border-bottom:1px solid rgba(255,255,255,.3)}.dropdown-wrapper button .icon{margin-left:.2em}.dropdown-wrapper.desktop:hover button{background-color:#0047ba;color:#fff}.dropdown-wrapper.desktop .dropdown{position:absolute;z-index:11;width:100%;top:100%;left:0;background-color:#0047ba}\n"], dependencies: [{ kind: "component", type: ExpandCollapseComponent, selector: "lib-expand-collapse", inputs: ["isExpanded"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: NavBarDropdownComponent, isStandalone: true, selector: "lib-nav-bar-dropdown", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, isSmallScreen: { classPropertyName: "isSmallScreen", publicName: "isSmallScreen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openEvent: "openEvent" }, ngImport: i0, template: "<span\n class=\"hbll-header-dropdown-wrapper\"\n data-testid=\"wrapper\"\n [ngClass]=\"{ 'hbll-header-desktop': !isSmallScreen() }\"\n (mouseenter)=\"!isSmallScreen() && (this.isOpen = true)\"\n (mouseleave)=\"!isSmallScreen() && (this.isOpen = false)\"\n>\n <button (click)=\"handleClick()\" data-testid=\"btn\">\n {{ title() }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n {{ 'keyboard_arrow_' + (isOpen ? 'up' : 'down') }}\n </span>\n </button>\n @if (!isSmallScreen()) {\n @if (isOpen) {\n <div class=\"hbll-header-dropdown\" data-testid=\"dropdown\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n }\n } @else {\n <lib-expand-collapse [isExpanded]=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </lib-expand-collapse>\n }\n</span>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".hbll-header-dropdown-wrapper.hbll-header-desktop button{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}.hbll-header-dropdown-wrapper.hbll-header-desktop button .hbll-header-icon{font-size:1.3em;margin-bottom:-.1em}.hbll-header-dropdown-wrapper.hbll-header-desktop button:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-dropdown-wrapper button{justify-content:flex-end;font-size:1.3em;color:#fff;display:flex;align-items:center;background-color:#0047ba;width:100%;padding:.6em;border-bottom:1px solid rgba(255,255,255,.3);border-left:none;border-right:none;border-top:none;white-space:nowrap;cursor:pointer}.hbll-header-dropdown-wrapper button .hbll-header-icon{margin-left:.2em}.hbll-header-dropdown-wrapper.hbll-header-desktop:hover button{background-color:#0047ba;color:#fff}.hbll-header-dropdown-wrapper.hbll-header-desktop .hbll-header-dropdown{position:absolute;z-index:11;width:100%;top:100%;left:0;background-color:#0047ba}\n"], dependencies: [{ kind: "component", type: ExpandCollapseComponent, selector: "lib-expand-collapse", inputs: ["isExpanded"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
108
108
  }
109
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NavBarDropdownComponent, decorators: [{
110
110
  type: Component,
111
- args: [{ selector: 'lib-nav-bar-dropdown', standalone: true, imports: [ExpandCollapseComponent, CommonModule], template: "<span\n class=\"dropdown-wrapper\"\n data-testid=\"wrapper\"\n [ngClass]=\"{ desktop: !isSmallScreen() }\"\n (mouseenter)=\"!isSmallScreen() && (this.isOpen = true)\"\n (mouseleave)=\"!isSmallScreen() && (this.isOpen = false)\"\n>\n <button (click)=\"handleClick()\" data-testid=\"btn\">\n {{ title() }}\n <span class=\"material-symbols-outlined icon\">\n {{ 'keyboard_arrow_' + (isOpen ? 'up' : 'down') }}\n </span>\n </button>\n @if (!isSmallScreen()) {\n @if (isOpen) {\n <div class=\"dropdown\" data-testid=\"dropdown\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n }\n } @else {\n <lib-expand-collapse [isExpanded]=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </lib-expand-collapse>\n }\n</span>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".dropdown-wrapper.desktop button{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}.dropdown-wrapper.desktop button .icon{font-size:1.3em;margin-bottom:-.1em}.dropdown-wrapper.desktop button:hover{background-color:#0047ba;color:#fff}.dropdown-wrapper button{justify-content:flex-end;font-size:1.3em;color:#fff;display:flex;align-items:center;width:100%;padding:.6em;border-bottom:1px solid rgba(255,255,255,.3)}.dropdown-wrapper button .icon{margin-left:.2em}.dropdown-wrapper.desktop:hover button{background-color:#0047ba;color:#fff}.dropdown-wrapper.desktop .dropdown{position:absolute;z-index:11;width:100%;top:100%;left:0;background-color:#0047ba}\n"] }]
111
+ args: [{ selector: 'lib-nav-bar-dropdown', standalone: true, imports: [ExpandCollapseComponent, CommonModule], template: "<span\n class=\"hbll-header-dropdown-wrapper\"\n data-testid=\"wrapper\"\n [ngClass]=\"{ 'hbll-header-desktop': !isSmallScreen() }\"\n (mouseenter)=\"!isSmallScreen() && (this.isOpen = true)\"\n (mouseleave)=\"!isSmallScreen() && (this.isOpen = false)\"\n>\n <button (click)=\"handleClick()\" data-testid=\"btn\">\n {{ title() }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n {{ 'keyboard_arrow_' + (isOpen ? 'up' : 'down') }}\n </span>\n </button>\n @if (!isSmallScreen()) {\n @if (isOpen) {\n <div class=\"hbll-header-dropdown\" data-testid=\"dropdown\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n }\n } @else {\n <lib-expand-collapse [isExpanded]=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </lib-expand-collapse>\n }\n</span>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".hbll-header-dropdown-wrapper.hbll-header-desktop button{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}.hbll-header-dropdown-wrapper.hbll-header-desktop button .hbll-header-icon{font-size:1.3em;margin-bottom:-.1em}.hbll-header-dropdown-wrapper.hbll-header-desktop button:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-dropdown-wrapper button{justify-content:flex-end;font-size:1.3em;color:#fff;display:flex;align-items:center;background-color:#0047ba;width:100%;padding:.6em;border-bottom:1px solid rgba(255,255,255,.3);border-left:none;border-right:none;border-top:none;white-space:nowrap;cursor:pointer}.hbll-header-dropdown-wrapper button .hbll-header-icon{margin-left:.2em}.hbll-header-dropdown-wrapper.hbll-header-desktop:hover button{background-color:#0047ba;color:#fff}.hbll-header-dropdown-wrapper.hbll-header-desktop .hbll-header-dropdown{position:absolute;z-index:11;width:100%;top:100%;left:0;background-color:#0047ba}\n"] }]
112
112
  }], propDecorators: { openEvent: [{
113
113
  type: Output
114
114
  }] } });
@@ -116,12 +116,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
116
116
  /**
117
117
  * Signal that represents if the screen is small.
118
118
  */
119
- const isScreenSmallSignal = (bo) => toSignal(bo.observe([Breakpoints.Web]).pipe(map((r) => !r.matches)));
119
+ const isScreenSmallSignal = (bo) => toSignal(bo.observe(['(min-width: 1000px)']).pipe(map((r) => !r.matches)));
120
120
 
121
- const mainSiteBaseUri = 'https://lib.byu.edu';
122
121
  class NavBarComponent {
123
122
  constructor() {
124
123
  this.bo = inject(BreakpointObserver);
124
+ this.mainSiteBaseUrl = input.required();
125
125
  this.height = input(null);
126
126
  // If any section opens up, close all others. Only one section open at a time.
127
127
  this.handleDropdownOpenEvent = (title) => {
@@ -132,287 +132,313 @@ class NavBarComponent {
132
132
  });
133
133
  };
134
134
  this.isScreenSmall = isScreenSmallSignal(this.bo);
135
- this.navInfos = [
136
- {
137
- title: 'Materials',
138
- mainSection: {
139
- title: 'Formats',
140
- links: [
141
- { label: 'Articles', url: `${mainSiteBaseUri}/articles` },
142
- { label: 'Audio', url: `${mainSiteBaseUri}/audio` },
143
- { label: 'Books', url: `${mainSiteBaseUri}/books` },
144
- { label: 'Video', url: `${mainSiteBaseUri}/video` },
145
- ],
146
- auxiliaryLink: {
147
- label: 'See all formats',
148
- url: `${mainSiteBaseUri}/formats`,
149
- },
150
- },
151
- otherSections: [
152
- {
153
- title: 'Resource Collections',
135
+ this.navInfos = computed(() => {
136
+ return [
137
+ {
138
+ title: 'Materials',
139
+ mainSection: {
140
+ title: 'Formats',
154
141
  links: [
155
- {
156
- label: 'Subject Area Collections',
157
- url: `${mainSiteBaseUri}/collections`,
158
- },
159
- { label: 'Databases', url: `${mainSiteBaseUri}/databases` },
160
- { label: 'Journals', url: `${mainSiteBaseUri}/journals` },
161
- {
162
- label: 'Theses & Dissertations',
163
- url: `${mainSiteBaseUri}/theses-and-dissertations`,
164
- },
165
- ],
166
- },
167
- {
168
- title: 'Equipment',
169
- links: [
170
- {
171
- label: 'Available for Checkout',
172
- url: `${mainSiteBaseUri}/services?categories=available-for-checkout`,
173
- },
174
- {
175
- label: 'Available with Reservation',
176
- url: `${mainSiteBaseUri}/services?categories=available-via-reservation`,
177
- },
178
- {
179
- label: 'Public Computers',
180
- url: `${mainSiteBaseUri}/services/public-computers`,
181
- },
182
- {
183
- label: 'Printers and Copying',
184
- url: `${mainSiteBaseUri}/services?categories=printing-and-copying`,
185
- },
142
+ { label: 'Articles', url: `${this.mainSiteBaseUrl()}/articles` },
143
+ { label: 'Audio', url: `${this.mainSiteBaseUrl()}/audio` },
144
+ { label: 'Books', url: `${this.mainSiteBaseUrl()}/books` },
145
+ { label: 'Video', url: `${this.mainSiteBaseUrl()}/video` },
186
146
  ],
147
+ auxiliaryLink: {
148
+ label: 'See all formats',
149
+ url: `${this.mainSiteBaseUrl()}/formats`,
150
+ },
187
151
  },
188
- ],
189
- },
190
- {
191
- title: 'Places',
192
- mainSection: {
193
- title: 'Popular Places',
194
- links: [
195
- { label: 'Help Desks', url: `${mainSiteBaseUri}/services/help-desks` },
196
- { label: 'Family History', url: `${mainSiteBaseUri}/religion-family-history` },
152
+ otherSections: [
153
+ {
154
+ title: 'Resource Collections',
155
+ links: [
156
+ {
157
+ label: 'Subject Area Collections',
158
+ url: `${this.mainSiteBaseUrl()}/collections`,
159
+ },
160
+ { label: 'Databases', url: `${this.mainSiteBaseUrl()}/databases` },
161
+ { label: 'Journals', url: `${this.mainSiteBaseUrl()}/journals` },
162
+ {
163
+ label: 'Theses & Dissertations',
164
+ url: `${this.mainSiteBaseUrl()}/theses-and-dissertations`,
165
+ },
166
+ ],
167
+ },
197
168
  {
198
- label: 'Research and Writing Center',
199
- url: `${mainSiteBaseUri}/services/research-and-writing-center`,
169
+ title: 'Equipment',
170
+ links: [
171
+ {
172
+ label: 'Available for Checkout',
173
+ url: `${this.mainSiteBaseUrl()}/services?categories=available-for-checkout`,
174
+ },
175
+ {
176
+ label: 'Available with Reservation',
177
+ url: `${this.mainSiteBaseUrl()}/services?categories=available-via-reservation`,
178
+ },
179
+ {
180
+ label: 'Public Computers',
181
+ url: `${this.mainSiteBaseUrl()}/services/public-computers`,
182
+ },
183
+ {
184
+ label: 'Printers and Copying',
185
+ url: `${this.mainSiteBaseUrl()}/services?categories=printing-and-copying`,
186
+ },
187
+ ],
200
188
  },
201
- { label: 'Special Collections', url: `${mainSiteBaseUri}/special-collections` },
202
189
  ],
203
- auxiliaryLink: {
204
- label: 'View Floor Maps',
205
- url: `${mainSiteBaseUri}/floormaps`,
206
- },
207
190
  },
208
- otherSections: [
209
- {
210
- title: 'Spaces',
191
+ {
192
+ title: 'Places',
193
+ mainSection: {
194
+ title: 'Popular Places',
211
195
  links: [
212
196
  {
213
- label: 'Collections & Archives',
214
- url: `${mainSiteBaseUri}/services?categories=collections-and-archives`,
197
+ label: 'Help Desks',
198
+ url: `${this.mainSiteBaseUrl()}/services/help-desks`,
215
199
  },
216
200
  {
217
- label: 'Group Study Spaces',
218
- url: `${mainSiteBaseUri}/services/group-study-rooms`,
201
+ label: 'Family History',
202
+ url: `${this.mainSiteBaseUrl()}/religion-family-history`,
219
203
  },
220
204
  {
221
- label: 'Individual Study Spaces',
222
- url: `${mainSiteBaseUri}/services?categories=individual-study-spaces`,
205
+ label: 'Research and Writing Center',
206
+ url: `${this.mainSiteBaseUrl()}/services/research-and-writing-center`,
223
207
  },
224
208
  {
225
- label: 'Multimedia Creation Spaces',
226
- url: `${mainSiteBaseUri}/services?categories=multimedia-creation`,
227
- },
228
- {
229
- label: 'Video View Spaces',
230
- url: `${mainSiteBaseUri}/services?categories=video-viewing`,
209
+ label: 'Special Collections',
210
+ url: `${this.mainSiteBaseUrl()}/special-collections`,
231
211
  },
232
212
  ],
213
+ auxiliaryLink: {
214
+ label: 'View Floor Maps',
215
+ url: 'https://lib.byu.edu/floormaps',
216
+ },
233
217
  },
234
- {
235
- title: 'Rooms',
218
+ otherSections: [
219
+ {
220
+ title: 'Spaces',
221
+ links: [
222
+ {
223
+ label: 'Collections & Archives',
224
+ url: `${this.mainSiteBaseUrl()}/services?categories=collections-and-archives`,
225
+ },
226
+ {
227
+ label: 'Group Study Spaces',
228
+ url: `${this.mainSiteBaseUrl()}/services/group-study-rooms`,
229
+ },
230
+ {
231
+ label: 'Individual Study Spaces',
232
+ url: `${this.mainSiteBaseUrl()}/services?categories=individual-study-spaces`,
233
+ },
234
+ {
235
+ label: 'Multimedia Creation Spaces',
236
+ url: `${this.mainSiteBaseUrl()}/services?categories=multimedia-creation`,
237
+ },
238
+ {
239
+ label: 'Video View Spaces',
240
+ url: `${this.mainSiteBaseUrl()}/services?categories=video-viewing`,
241
+ },
242
+ ],
243
+ },
244
+ {
245
+ title: 'Rooms',
246
+ links: [
247
+ {
248
+ label: 'Classrooms',
249
+ url: `${this.mainSiteBaseUrl()}/services?categories=classrooms`,
250
+ },
251
+ {
252
+ label: 'Conference Rooms',
253
+ url: `${this.mainSiteBaseUrl()}/services?categories=conference-rooms`,
254
+ },
255
+ {
256
+ label: 'Labs & Centers',
257
+ url: `${this.mainSiteBaseUrl()}/services?categories=labs-and-centers`,
258
+ },
259
+ {
260
+ label: 'Research Rooms',
261
+ url: `${this.mainSiteBaseUrl()}/services?categories=research-rooms`,
262
+ },
263
+ ],
264
+ },
265
+ ],
266
+ },
267
+ {
268
+ title: 'Experiences',
269
+ mainSection: {
270
+ title: 'Events',
236
271
  links: [
237
272
  {
238
- label: 'Classrooms',
239
- url: `${mainSiteBaseUri}/services?categories=classrooms`,
240
- },
241
- {
242
- label: 'Conference Rooms',
243
- url: `${mainSiteBaseUri}/services?categories=conference-rooms`,
244
- },
245
- {
246
- label: 'Labs & Centers',
247
- url: `${mainSiteBaseUri}/services?categories=labs-and-centers`,
273
+ label: 'Concerts & Film Showings',
274
+ url: `${this.mainSiteBaseUrl()}/services/motion-picture-archive-series`,
248
275
  },
249
276
  {
250
- label: 'Research Rooms',
251
- url: `${mainSiteBaseUri}/services?categories=research-rooms`,
277
+ label: 'Lectures',
278
+ url: `${this.mainSiteBaseUrl()}/services?categories=lectures`,
252
279
  },
280
+ { label: 'News', url: `${this.mainSiteBaseUrl()}/about/news` },
253
281
  ],
282
+ auxiliaryLink: {
283
+ label: 'See calendar of events',
284
+ url: `${this.mainSiteBaseUrl()}/events`,
285
+ },
254
286
  },
255
- ],
256
- },
257
- {
258
- title: 'Experiences',
259
- mainSection: {
260
- title: 'Events',
261
- links: [
287
+ otherSections: [
288
+ {
289
+ title: 'Learning Opportunities',
290
+ links: [
291
+ {
292
+ label: 'Library Instruction Classes',
293
+ url: `${this.mainSiteBaseUrl()}/library-instruction`,
294
+ },
295
+ {
296
+ label: 'Software Training',
297
+ url: `${this.mainSiteBaseUrl()}/services/software-training`,
298
+ },
299
+ {
300
+ label: 'Family History Classes & Webinars',
301
+ url: `${this.mainSiteBaseUrl()}/services/family-history-classes`,
302
+ },
303
+ ],
304
+ },
262
305
  {
263
- label: 'Concerts & Film Showings',
264
- url: `${mainSiteBaseUri}/services/motion-picture-archive-series`,
306
+ title: 'Displays',
307
+ links: [
308
+ { label: 'Exhibits', url: `${this.mainSiteBaseUrl()}/exhibits` },
309
+ {
310
+ label: 'Galleries',
311
+ url: `${this.mainSiteBaseUrl()}/services?categories=galleries-and-exhibits`,
312
+ },
313
+ ],
265
314
  },
266
- { label: 'Lectures', url: `${mainSiteBaseUri}/services?categories=lectures` },
267
- { label: 'News', url: `${mainSiteBaseUri}/about/news` },
268
315
  ],
269
- auxiliaryLink: {
270
- label: 'See calendar of events',
271
- url: `${mainSiteBaseUri}/events`,
272
- },
273
316
  },
274
- otherSections: [
275
- {
276
- title: 'Learning Opportunities',
317
+ {
318
+ title: 'Services',
319
+ mainSection: {
320
+ title: 'Services For',
277
321
  links: [
278
322
  {
279
- label: 'Library Instruction Classes',
280
- url: `${mainSiteBaseUri}/library-instruction`,
323
+ label: 'Current Students',
324
+ url: `${this.mainSiteBaseUrl()}/services?categories=for-students`,
281
325
  },
282
326
  {
283
- label: 'Software Training',
284
- url: `${mainSiteBaseUri}/services/software-training`,
327
+ label: 'Faculty and Staff',
328
+ url: `${this.mainSiteBaseUrl()}/services?categories=for-faculty`,
285
329
  },
286
330
  {
287
- label: 'Family History Classes & Webinars',
288
- url: `${mainSiteBaseUri}/services/family-history-classes`,
331
+ label: 'Retirees',
332
+ url: `${this.mainSiteBaseUrl()}/services?categories=for-retirees`,
289
333
  },
290
- ],
291
- },
292
- {
293
- title: 'Displays',
294
- links: [
295
- { label: 'Exhibits', url: `${mainSiteBaseUri}/exhibits` },
296
334
  {
297
- label: 'Galleries',
298
- url: `${mainSiteBaseUri}/services?categories=galleries-and-exhibits`,
335
+ label: 'Visitors and Alumni',
336
+ url: `${this.mainSiteBaseUrl()}/services?categories=for-visitors`,
299
337
  },
300
338
  ],
339
+ auxiliaryLink: {
340
+ label: 'See all Services',
341
+ url: `${this.mainSiteBaseUrl()}/services`,
342
+ },
301
343
  },
302
- ],
303
- },
304
- {
305
- title: 'Services',
306
- mainSection: {
307
- title: 'Services For',
308
- links: [
344
+ otherSections: [
309
345
  {
310
- label: 'Current Students',
311
- url: `${mainSiteBaseUri}/services?categories=for-students`,
346
+ title: 'Getting Materials',
347
+ links: [
348
+ {
349
+ label: 'Checkout out Materials',
350
+ url: `${this.mainSiteBaseUrl()}/about/checkout-privileges`,
351
+ },
352
+ {
353
+ label: 'Holds & Renewals',
354
+ url: `${this.mainSiteBaseUrl()}/services/holds`,
355
+ },
356
+ {
357
+ label: 'Borrow from another Library (ILL)',
358
+ url: `${this.mainSiteBaseUrl()}/services/interlibrary-loan`,
359
+ },
360
+ ],
312
361
  },
313
362
  {
314
- label: 'Faculty and Staff',
315
- url: `${mainSiteBaseUri}/services?categories=for-faculty`,
363
+ title: 'Other',
364
+ links: [
365
+ {
366
+ label: 'Internships, Fellowships and Grants',
367
+ url: `${this.mainSiteBaseUrl()}/services?categories=internships-fellowships-grants`,
368
+ },
369
+ {
370
+ label: 'Programs',
371
+ url: `${this.mainSiteBaseUrl()}/services?categories=programs`,
372
+ },
373
+ {
374
+ label: 'Scholarly Publishing',
375
+ url: `${this.mainSiteBaseUrl()}/services?categories=creating-and-publishing-materials`,
376
+ },
377
+ ],
316
378
  },
379
+ ],
380
+ },
381
+ {
382
+ title: 'Ask Us',
383
+ otherSections: [
317
384
  {
318
- label: 'Retirees and Alumni',
319
- url: `${mainSiteBaseUri}/services?categories=for-retirees`,
385
+ title: 'Get Help',
386
+ links: [
387
+ {
388
+ label: 'Ask a Librarian',
389
+ url: `${this.mainSiteBaseUrl()}/chat?url=${window.location.href}`,
390
+ icon: 'chat_bubble',
391
+ },
392
+ {
393
+ label: 'Library Instruction',
394
+ url: `${this.mainSiteBaseUrl()}/library-instruction`,
395
+ },
396
+ { label: 'Research Guides', url: `${this.mainSiteBaseUrl()}/guides` },
397
+ {
398
+ label: 'Help & Guidance',
399
+ url: `${this.mainSiteBaseUrl()}/services?categories=help-and-guidance`,
400
+ },
401
+ ],
320
402
  },
321
403
  {
322
- label: 'Visitors',
323
- url: `${mainSiteBaseUri}/services?categories=for-visitors`,
404
+ title: 'Find a...',
405
+ links: [
406
+ { label: 'Department', url: `${this.mainSiteBaseUrl()}/directory` },
407
+ {
408
+ label: 'Help Desk',
409
+ url: `${this.mainSiteBaseUrl()}/services/help-desks`,
410
+ },
411
+ {
412
+ label: 'Library Employee by Name',
413
+ url: `${this.mainSiteBaseUrl()}/directory`,
414
+ },
415
+ {
416
+ label: 'Subject Librarian',
417
+ url: `${this.mainSiteBaseUrl()}/directory#browse-by-subject`,
418
+ },
419
+ ],
420
+ },
421
+ {
422
+ title: 'About the Library',
423
+ links: [
424
+ {
425
+ label: 'General Information',
426
+ url: `${this.mainSiteBaseUrl()}/about`,
427
+ },
428
+ { label: 'FAQs', url: `${this.mainSiteBaseUrl()}/faq` },
429
+ ],
324
430
  },
325
431
  ],
326
- auxiliaryLink: {
327
- label: 'See all Services',
328
- url: `${mainSiteBaseUri}/services`,
329
- },
330
432
  },
331
- otherSections: [
332
- {
333
- title: 'Getting Materials',
334
- links: [
335
- {
336
- label: 'Checkout out Materials',
337
- url: `${mainSiteBaseUri}/about/checkout-privileges`,
338
- },
339
- { label: 'Holds & Renewals', url: `${mainSiteBaseUri}/services/holds` },
340
- {
341
- label: 'Borrow from another Library (ILL)',
342
- url: `${mainSiteBaseUri}/services/interlibrary-loan`,
343
- },
344
- ],
345
- },
346
- {
347
- title: 'Other',
348
- links: [
349
- {
350
- label: 'Internships, Fellowships and Grants',
351
- url: `${mainSiteBaseUri}/services?categories=internships-fellowships-grants`,
352
- },
353
- {
354
- label: 'Programs',
355
- url: `${mainSiteBaseUri}/services?categories=programs`,
356
- },
357
- {
358
- label: 'Scholarly Publishing',
359
- url: `${mainSiteBaseUri}/services?categories=creating-and-publishing-materials`,
360
- },
361
- ],
362
- },
363
- ],
364
- },
365
- {
366
- title: 'Ask Us',
367
- otherSections: [
368
- {
369
- title: 'Get Help',
370
- links: [
371
- {
372
- label: 'Ask a Librarian',
373
- url: `${mainSiteBaseUri}/chat?url=${window.location.href}`,
374
- icon: 'chat_bubble',
375
- },
376
- {
377
- label: 'Library Instruction',
378
- url: `${mainSiteBaseUri}/library-instruction`,
379
- },
380
- { label: 'Research Guides', url: `${mainSiteBaseUri}/guides` },
381
- {
382
- label: 'Help & Guidance',
383
- url: `${mainSiteBaseUri}/services?categories=help-and-guidance`,
384
- },
385
- ],
386
- },
387
- {
388
- title: 'Find a...',
389
- links: [
390
- { label: 'Department', url: `${mainSiteBaseUri}/directory` },
391
- { label: 'Help Desk', url: `${mainSiteBaseUri}/services/help-desks` },
392
- { label: 'Library Employee by Name', url: `${mainSiteBaseUri}/directory` },
393
- {
394
- label: 'Subject Librarian',
395
- url: `${mainSiteBaseUri}/directory#browse-by-subject`,
396
- },
397
- ],
398
- },
399
- {
400
- title: 'About the Library',
401
- links: [
402
- { label: 'General Information', url: `${mainSiteBaseUri}/about` },
403
- { label: 'FAQs', url: `${mainSiteBaseUri}/faq` },
404
- ],
405
- },
406
- ],
407
- },
408
- ];
433
+ ];
434
+ });
409
435
  }
410
436
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NavBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
411
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: NavBarComponent, isStandalone: true, selector: "lib-nav-bar", inputs: { height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdownComps", predicate: NavBarDropdownComponent, descendants: true }], ngImport: i0, template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ desktop: !isScreenSmall() }\"\n data-testid=\"nav\"\n>\n <ul class=\"nav-bar\">\n <li id=\"navHome\">\n <a href=\"https://lib.byu.edu\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos; track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n >\n <div class=\"content\">\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"main links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" href=\"https://lib.byu.edu/search\">\n @if (isScreenSmall()) {\n Search\n }\n <span class=\"material-symbols-outlined\" [ngClass]=\"{ icon: isScreenSmall() }\">\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.desktop .nav-bar li#navHome a,nav.desktop .nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.desktop .nav-bar li#navHome a .icon,nav.desktop .nav-bar li #navSearch .icon{font-size:1.3em;margin-bottom:-.1em}nav.desktop .nav-bar li#navHome a:hover,nav.desktop .nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box}.icon-right{margin-left:.4em}nav{background-color:#0047ba;position:relative;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .nav-bar .links{padding:0}nav .nav-bar li{width:100%}nav .nav-bar li#navHome .icon{margin-right:.2em}nav .nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .nav-bar li #navSearch .icon{margin-left:.2em}nav .nav-bar li .content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .nav-bar li .content section{padding-left:3em}nav .nav-bar li .content section:first-of-type{padding-top:1em}nav .nav-bar li .content section h2,nav .nav-bar li .content section h3{font-weight:600;font-size:1.4em;margin-bottom:.2em}nav .nav-bar li .content section+section{margin-top:1.8em}nav .nav-bar li .content section li a{padding:.4em .6em}nav .nav-bar li .content section .see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .nav-bar li .content section .no-see-all{margin-bottom:1em}nav .nav-bar li .content section .main{padding-bottom:.4em}nav.desktop{overflow:initial;background-color:#fff;padding:0 2em}nav.desktop .nav-bar{flex-direction:row;align-items:center}nav.desktop .nav-bar .links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.desktop .nav-bar .links li{width:100%}nav.desktop .nav-bar .links li a{transition:background-color .1s ease-in-out}nav.desktop .nav-bar .links li a:hover{background-color:#fff3;width:100%}nav.desktop .nav-bar li{width:auto;height:100%}nav.desktop .nav-bar li #navSearch{color:#002e5d;transition:all .2s ease-in-out;background-color:transparent}nav.desktop .nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.desktop .nav-bar li .content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.desktop .nav-bar li .content section{padding-top:0;padding-left:5%;width:30em}nav.desktop .nav-bar li .content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.desktop .nav-bar li .content section .see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.desktop .nav-bar li .content section .see-all:hover{color:#ffffffd9}nav.desktop .nav-bar li .content h2,nav.desktop .nav-bar li .content h3{color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: NavBarDropdownComponent, selector: "lib-nav-bar-dropdown", inputs: ["title", "isSmallScreen"], outputs: ["openEvent"] }] }); }
437
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: NavBarComponent, isStandalone: true, selector: "lib-nav-bar", inputs: { mainSiteBaseUrl: { classPropertyName: "mainSiteBaseUrl", publicName: "mainSiteBaseUrl", isSignal: true, isRequired: true, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdownComps", predicate: NavBarDropdownComponent, descendants: true }], ngImport: i0, template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ 'hbll-header-desktop': !isScreenSmall() }\"\n data-testid=\"nav\"\n>\n <ul class=\"hbll-header-nav-bar\">\n <li id=\"navHome\">\n <a [href]=\"mainSiteBaseUrl()\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined hbll-header-icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos(); track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n >\n <div\n class=\"hbll-header-content\"\n [ngStyle]=\"{\n 'background-color': isScreenSmall() ? '#336cc8' : 'inherit',\n }\"\n >\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"hbll-header-main hbll-header-links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"hbll-header-links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined hbll-header-icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" [href]=\"mainSiteBaseUrl() + '/search'\">\n @if (isScreenSmall()) {\n Search\n }\n <span\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'hbll-header-icon': isScreenSmall() }\"\n >\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a .hbll-header-icon,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch .hbll-header-icon{font-size:1.3em;margin-bottom:-.1em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a:hover,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-icon-right{margin-left:.4em;font-size:1.2em}nav{background-color:#0047ba;position:absolute;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none;width:100vw;max-width:400px;right:0}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .hbll-header-nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .hbll-header-nav-bar .hbll-header-links{padding:0}nav .hbll-header-nav-bar li{width:100%}nav .hbll-header-nav-bar li#navHome .hbll-header-icon{margin-right:.2em}nav .hbll-header-nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .hbll-header-nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .hbll-header-nav-bar li #navSearch .hbll-header-icon{margin-left:.2em}nav .hbll-header-nav-bar li .hbll-header-content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .hbll-header-nav-bar li .hbll-header-content section{padding-left:3em}nav .hbll-header-nav-bar li .hbll-header-content section:first-of-type{padding-top:1em}nav .hbll-header-nav-bar li .hbll-header-content section h2,nav .hbll-header-nav-bar li .hbll-header-content section h3{font-weight:600;font-size:1.4em;margin-bottom:.4em}nav .hbll-header-nav-bar li .hbll-header-content section+section{margin-top:1.8em}nav .hbll-header-nav-bar li .hbll-header-content section li a{padding:.6em .8em;margin:.2em 0}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-no-see-all{margin-bottom:1em}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-main{padding-bottom:.4em}nav.hbll-header-desktop{overflow:initial;background-color:#fff;padding:0 2em;position:relative;max-width:100%}nav.hbll-header-desktop .hbll-header-nav-bar{flex-direction:row;align-items:center}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li{width:100%}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a{transition:background-color .1s ease-in-out}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a:hover{background-color:#fff3;width:100%}nav.hbll-header-desktop .hbll-header-nav-bar li{width:auto;height:100%}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{transition:all .2s ease-in-out;font-size:1.2em;background-color:transparent}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section{padding-top:0;padding-left:5%;width:30em}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all:hover{color:#ffffffd9}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h2,nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h3{color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: NavBarDropdownComponent, selector: "lib-nav-bar-dropdown", inputs: ["title", "isSmallScreen"], outputs: ["openEvent"] }] }); }
412
438
  }
413
439
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NavBarComponent, decorators: [{
414
440
  type: Component,
415
- args: [{ selector: 'lib-nav-bar', standalone: true, imports: [CommonModule, NavBarDropdownComponent], template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ desktop: !isScreenSmall() }\"\n data-testid=\"nav\"\n>\n <ul class=\"nav-bar\">\n <li id=\"navHome\">\n <a href=\"https://lib.byu.edu\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos; track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n >\n <div class=\"content\">\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"main links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" href=\"https://lib.byu.edu/search\">\n @if (isScreenSmall()) {\n Search\n }\n <span class=\"material-symbols-outlined\" [ngClass]=\"{ icon: isScreenSmall() }\">\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.desktop .nav-bar li#navHome a,nav.desktop .nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.desktop .nav-bar li#navHome a .icon,nav.desktop .nav-bar li #navSearch .icon{font-size:1.3em;margin-bottom:-.1em}nav.desktop .nav-bar li#navHome a:hover,nav.desktop .nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box}.icon-right{margin-left:.4em}nav{background-color:#0047ba;position:relative;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .nav-bar .links{padding:0}nav .nav-bar li{width:100%}nav .nav-bar li#navHome .icon{margin-right:.2em}nav .nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .nav-bar li #navSearch .icon{margin-left:.2em}nav .nav-bar li .content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .nav-bar li .content section{padding-left:3em}nav .nav-bar li .content section:first-of-type{padding-top:1em}nav .nav-bar li .content section h2,nav .nav-bar li .content section h3{font-weight:600;font-size:1.4em;margin-bottom:.2em}nav .nav-bar li .content section+section{margin-top:1.8em}nav .nav-bar li .content section li a{padding:.4em .6em}nav .nav-bar li .content section .see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .nav-bar li .content section .no-see-all{margin-bottom:1em}nav .nav-bar li .content section .main{padding-bottom:.4em}nav.desktop{overflow:initial;background-color:#fff;padding:0 2em}nav.desktop .nav-bar{flex-direction:row;align-items:center}nav.desktop .nav-bar .links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.desktop .nav-bar .links li{width:100%}nav.desktop .nav-bar .links li a{transition:background-color .1s ease-in-out}nav.desktop .nav-bar .links li a:hover{background-color:#fff3;width:100%}nav.desktop .nav-bar li{width:auto;height:100%}nav.desktop .nav-bar li #navSearch{color:#002e5d;transition:all .2s ease-in-out;background-color:transparent}nav.desktop .nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.desktop .nav-bar li .content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.desktop .nav-bar li .content section{padding-top:0;padding-left:5%;width:30em}nav.desktop .nav-bar li .content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.desktop .nav-bar li .content section .see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.desktop .nav-bar li .content section .see-all:hover{color:#ffffffd9}nav.desktop .nav-bar li .content h2,nav.desktop .nav-bar li .content h3{color:#fff}\n"] }]
441
+ args: [{ selector: 'lib-nav-bar', standalone: true, imports: [CommonModule, NavBarDropdownComponent], template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ 'hbll-header-desktop': !isScreenSmall() }\"\n data-testid=\"nav\"\n>\n <ul class=\"hbll-header-nav-bar\">\n <li id=\"navHome\">\n <a [href]=\"mainSiteBaseUrl()\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined hbll-header-icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos(); track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n >\n <div\n class=\"hbll-header-content\"\n [ngStyle]=\"{\n 'background-color': isScreenSmall() ? '#336cc8' : 'inherit',\n }\"\n >\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"hbll-header-main hbll-header-links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"hbll-header-links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined hbll-header-icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" [href]=\"mainSiteBaseUrl() + '/search'\">\n @if (isScreenSmall()) {\n Search\n }\n <span\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'hbll-header-icon': isScreenSmall() }\"\n >\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a .hbll-header-icon,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch .hbll-header-icon{font-size:1.3em;margin-bottom:-.1em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a:hover,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-icon-right{margin-left:.4em;font-size:1.2em}nav{background-color:#0047ba;position:absolute;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none;width:100vw;max-width:400px;right:0}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .hbll-header-nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .hbll-header-nav-bar .hbll-header-links{padding:0}nav .hbll-header-nav-bar li{width:100%}nav .hbll-header-nav-bar li#navHome .hbll-header-icon{margin-right:.2em}nav .hbll-header-nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .hbll-header-nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .hbll-header-nav-bar li #navSearch .hbll-header-icon{margin-left:.2em}nav .hbll-header-nav-bar li .hbll-header-content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .hbll-header-nav-bar li .hbll-header-content section{padding-left:3em}nav .hbll-header-nav-bar li .hbll-header-content section:first-of-type{padding-top:1em}nav .hbll-header-nav-bar li .hbll-header-content section h2,nav .hbll-header-nav-bar li .hbll-header-content section h3{font-weight:600;font-size:1.4em;margin-bottom:.4em}nav .hbll-header-nav-bar li .hbll-header-content section+section{margin-top:1.8em}nav .hbll-header-nav-bar li .hbll-header-content section li a{padding:.6em .8em;margin:.2em 0}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-no-see-all{margin-bottom:1em}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-main{padding-bottom:.4em}nav.hbll-header-desktop{overflow:initial;background-color:#fff;padding:0 2em;position:relative;max-width:100%}nav.hbll-header-desktop .hbll-header-nav-bar{flex-direction:row;align-items:center}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li{width:100%}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a{transition:background-color .1s ease-in-out}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a:hover{background-color:#fff3;width:100%}nav.hbll-header-desktop .hbll-header-nav-bar li{width:auto;height:100%}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{transition:all .2s ease-in-out;font-size:1.2em;background-color:transparent}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section{padding-top:0;padding-left:5%;width:30em}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all:hover{color:#ffffffd9}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h2,nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h3{color:#fff}\n"] }]
416
442
  }], propDecorators: { dropdownComps: [{
417
443
  type: ViewChildren,
418
444
  args: [NavBarDropdownComponent]
@@ -442,186 +468,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
442
468
  type: Pipe,
443
469
  args: [{
444
470
  name: 'libraryHours',
445
- standalone: true,
446
- }]
447
- }] });
448
-
449
- class ImpersonateUserPipe {
450
- transform(user) {
451
- return `${user.name} (${user.netId || 'Unknown'})${user.restricted ? ' — Restricted' : ''}`;
452
- }
453
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImpersonateUserPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
454
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: ImpersonateUserPipe, isStandalone: true, name: "impersonateUser" }); }
455
- }
456
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImpersonateUserPipe, decorators: [{
457
- type: Pipe,
458
- args: [{
459
- name: 'impersonateUser',
460
- standalone: true,
461
- }]
462
- }] });
463
- const SEARCH_USERS_PATH = '/impersonate/api/search/';
464
- const START_IMPERSONATE_PATH = '/impersonate/:username';
465
- class ImpersonateModalComponent {
466
- constructor() {
467
- this.http = inject(HttpClient);
468
- this.fb = inject(FormBuilder);
469
- this.eref = inject(ElementRef);
470
- this.oidcBaseUri = input.required();
471
- this.oidcDefaultIdp = input.required();
472
- // Require an object here so that access tokens are not visible/extractable from the DOM in consuming applications. Instead they are only stored in memory.
473
- this.accessTokenPayload = input.required();
474
- this.dismiss = new EventEmitter();
475
- this.init = new EventEmitter();
476
- this.isOpen = false;
477
- this.hasError = false;
478
- this.form = this.fb.nonNullable.group({
479
- search: this.fb.control('', { validators: Validators.minLength(3) }),
480
- });
481
- this.loading = false;
482
- this.handleSearchSubject = new Subject();
483
- this.results = toSignal(this.form.controls.search.valueChanges.pipe(switchMap((search) => this.handleSearchSubject.pipe(startWith(false), switchMap((handleSearch) => {
484
- this.selectedUsername = undefined;
485
- this.hasError = false;
486
- if (!search || !handleSearch) {
487
- return of(null);
488
- }
489
- this.loading = true;
490
- const results = this.searchUsers(search);
491
- return results.pipe(catchError((e) => {
492
- this.hasError = true;
493
- console.error(e);
494
- return of(null);
495
- }));
496
- }))), tap(() => {
497
- this.loading = false;
498
- })));
499
- this.subs = new Subscription();
500
- this.handleKeyDown = (event) => {
501
- switch (event.key) {
502
- case 'Esc':
503
- case 'Escape': {
504
- this.close();
505
- break;
506
- }
507
- case 'I':
508
- case 'i': {
509
- if (event.ctrlKey || event.metaKey) {
510
- if (this.isOpen) {
511
- this.close();
512
- }
513
- else {
514
- this.init.emit();
515
- }
516
- event.preventDefault();
517
- }
518
- break;
519
- }
520
- default:
521
- break;
522
- }
523
- };
524
- /** Redirect to Keycloak impersonate page, which will redirect back
525
- * after impersonation begins.
526
- */
527
- this.startImpersonation = (username) => {
528
- const _username = username ?? this.selectedUsername;
529
- if (!_username) {
530
- return;
531
- }
532
- const url = urlcat(this.oidcBaseUri(), START_IMPERSONATE_PATH, {
533
- username,
534
- returnUri: window.location.href,
535
- defaultIdp: this.oidcDefaultIdp(),
536
- });
537
- this.replaceUrl(url);
538
- };
539
- this.handleSelectUser = (event) => {
540
- this.selectedUsername = event.target.value;
541
- };
542
- this.clearSearch = () => {
543
- this.form.reset();
544
- };
545
- this.close = () => {
546
- this.dismiss.emit();
547
- this.clearSearch();
548
- };
549
- this.handleFormSubmit = (event) => {
550
- event.preventDefault();
551
- if (this.form.valid) {
552
- this.handleSearchSubject.next(true);
553
- }
554
- };
555
- this.handleSearchKeyPress = (event) => {
556
- if (!['ArrowDown', 'Down'].includes(event.key)) {
557
- return;
558
- }
559
- event.preventDefault();
560
- if (this.results()?.length) {
561
- const firstResult = this.eref.nativeElement.querySelector(`#result_0`);
562
- firstResult?.click();
563
- firstResult?.focus();
564
- }
565
- };
566
- this.handleResultKeyPress = (event) => {
567
- if (['ArrowUp', 'Up'].includes(event.key) &&
568
- event.target?.id === 'result_0') {
569
- event.preventDefault();
570
- this.eref.nativeElement.querySelector('#searchInput')?.focus();
571
- }
572
- else if (event.key === 'Enter') {
573
- event.preventDefault();
574
- this.startImpersonation();
575
- }
576
- };
577
- /** Search Keycloak users using a generic search query. */
578
- this.searchUsers = (query) => {
579
- const uri = urlcat(this.oidcBaseUri(), SEARCH_USERS_PATH, {
580
- query,
581
- });
582
- return this.http.get(uri, {
583
- headers: {
584
- Authorization: `Bearer ${this.accessTokenPayload().token}`,
585
- },
586
- });
587
- };
588
- this.replaceUrl = (url) => window.location.replace(url);
589
- }
590
- set showModal(open) {
591
- this.isOpen = open;
592
- if (open) {
593
- // Set focus on search input shortly after opening modal so user notices
594
- // the input receiving focus.
595
- setTimeout(() => this.eref.nativeElement.querySelector('#searchInput')?.focus(), 250);
596
- }
597
- }
598
- outsideClick(event) {
599
- if (event.target?.id === 'modalBackdrop') {
600
- this.close();
601
- }
602
- }
603
- ngOnDestroy() {
604
- this.subs.unsubscribe();
605
- }
606
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImpersonateModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
607
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ImpersonateModalComponent, isStandalone: true, selector: "lib-impersonate-modal", inputs: { showModal: { classPropertyName: "showModal", publicName: "showModal", isSignal: false, isRequired: false, transformFunction: null }, oidcBaseUri: { classPropertyName: "oidcBaseUri", publicName: "oidcBaseUri", isSignal: true, isRequired: true, transformFunction: null }, oidcDefaultIdp: { classPropertyName: "oidcDefaultIdp", publicName: "oidcDefaultIdp", isSignal: true, isRequired: true, transformFunction: null }, accessTokenPayload: { classPropertyName: "accessTokenPayload", publicName: "accessTokenPayload", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { dismiss: "dismiss", init: "init" }, host: { listeners: { "document:mousedown": "outsideClick($event)", "document:keydown": "handleKeyDown($event)" } }, ngImport: i0, template: "@if (isOpen) {\n <div @libHbllFadeInOut class=\"modal-wrapper\" id=\"modalBackdrop\" data-testid=\"backdrop\">\n <div class=\"modal-container\" data-testid=\"modal\">\n <div class=\"modal-header\">\n <h2>Impersonate</h2>\n <button type=\"button\" (click)=\"close()\" aria-label=\"Close\" data-testid=\"close\">\n <span class=\"material-symbols-outlined icon-close\"> close </span>\n </button>\n </div>\n <form [formGroup]=\"form\" (submit)=\"handleFormSubmit($event)\" data-testid=\"searchForm\">\n <div class=\"search-header\">\n <div class=\"secondary\" [class.disabled]=\"!form.valid\">\n <span class=\"keyboard-key\">Enter</span> to search\n </div>\n </div>\n <label\n for=\"searchInput\"\n class=\"search-wrapper\"\n [class.invalid]=\"form.invalid && form.dirty\"\n >\n <span class=\"material-symbols-outlined icon-search\"> search </span>\n <input\n id=\"searchInput\"\n type=\"text\"\n autocomplete=\"off\"\n formControlName=\"search\"\n placeholder=\"Search patrons...\"\n (keydown)=\"handleSearchKeyPress($event)\"\n #searchBox\n data-testid=\"searchInput\"\n />\n @if (!!searchBox.value && form.valid) {\n <span class=\"material-symbols-outlined icon-checkmark\"> check </span>\n }\n @if (searchBox.value.length) {\n <span\n (click)=\"clearSearch()\"\n @libHbllFadeInOut\n class=\"material-symbols-outlined icon-close\"\n >\n close\n </span>\n }\n </label>\n </form>\n <fieldset\n class=\"search-results-wrapper\"\n id=\"resultsScrollContainer\"\n (change)=\"handleSelectUser($event)\"\n >\n @if (!loading && results()) {\n @for (user of results(); track user.netId; let idx = $index) {\n <div\n class=\"result-field result\"\n [class.focus]=\"user.username === selectedUsername\"\n data-testid=\"result\"\n >\n <label\n [for]=\"'result_' + idx\"\n [class.warning]=\"user.restricted\"\n (mouseover)=\"selectedUsername = user.username\"\n >\n @if (user.restricted) {\n <span class=\"material-symbols-outlined icon\"> warning </span>\n } @else {\n <span class=\"material-symbols-outlined icon\"> person </span>\n }\n &nbsp; &nbsp;\n <span [title]=\"user\" data-testid=\"resultText\">{{\n user | impersonateUser\n }}</span>\n <input\n type=\"radio\"\n [value]=\"user.username\"\n class=\"hidden\"\n [id]=\"'result_' + idx\"\n name=\"resultSelect\"\n (keydown)=\"handleResultKeyPress($event)\"\n />\n </label>\n <button\n class=\"impersonate-button\"\n data-testid=\"impersonateBtn\"\n (click)=\"startImpersonation(user.username)\"\n >\n Impersonate\n </button>\n </div>\n } @empty {\n <div class=\"result-field\">\n No results. Try searching by Net ID or BYU ID.\n </div>\n }\n }\n @if (loading) {\n <div class=\"result-field\">\n <div class=\"lib-spinner\"></div>\n </div>\n }\n @if (hasError) {\n <div class=\"result-field\">Something went wrong. We'll keep trying.</div>\n }\n </fieldset>\n </div>\n </div>\n}\n", styles: [".lib-spinner{border:.3em solid #dfe9f7;border-top:.3em solid #4070b0;border-radius:100%;width:30px;height:30px;animation:loadingSpinnerAnimate 1s ease infinite;position:relative}@keyframes loadingSpinnerAnimate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}h2{font-size:1.2em;font-weight:600;margin:0;color:#404040}.warning{color:#b04940}.modal-wrapper{position:fixed;inset:0;background-color:#0000007f;z-index:6001;display:grid;place-items:center}.modal-container{color:#404040;padding:1.2em 1.4em;width:90%;max-width:30em;border-radius:4px;border:1px solid #b7b7b7;box-shadow:0 3px 6px #002e5d20;background-color:#fff;display:grid;grid-template-columns:1fr;gap:1em}.modal-container .modal-header{display:flex;justify-content:space-between;border-bottom:1px solid #e6e6e6;padding-bottom:.8em}.modal-container .modal-header .icon-close{transition:opacity .15s;color:#707070;opacity:1;cursor:pointer}.modal-container .modal-header .icon-close:hover{opacity:.8}.modal-container .hidden{opacity:0;width:0;height:0}.modal-container .search-header{display:flex;align-items:center;justify-content:flex-end;margin-bottom:.8em}.modal-container .search-header .secondary{color:#70707095}.modal-container .search-header .keyboard-key{padding:.1em .4em;border:1px solid currentColor;border-radius:4px}.modal-container .search-wrapper{display:flex;align-items:center;border-radius:4px;border:solid 1px currentColor;color:#ca7ad1cc;background-color:#e6e6e655;padding:.1em .3em .1em .5em;transition:background-color .15s,color .15s}.modal-container .search-wrapper.invalid{background-color:#b0494022}.modal-container .search-wrapper .icon-search{font-size:1.2em}.modal-container .search-wrapper .icon-checkmark{color:#1dce7b}.modal-container .search-wrapper .icon-close{color:#ca7ad1cc;cursor:pointer}.modal-container .search-wrapper .icon-close:hover{color:#ca7ad1}.modal-container .search-wrapper input[type=text]{background:transparent;border:none;outline:none;width:100%;color:#404040;padding:.5em .4em;font-size:1em}.modal-container .search-wrapper input[type=text]:focus{background-color:transparent}.modal-container .search-results-wrapper{border:none;margin:0;padding:0;max-height:25em;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;display:flex;flex-direction:column;align-items:stretch;min-width:0}.modal-container .search-results-wrapper::-webkit-scrollbar{width:6px}.modal-container .search-results-wrapper::-webkit-scrollbar-track{background:#e6e6e6}.modal-container .search-results-wrapper::-webkit-scrollbar-thumb{background-color:#b3b3b3;border-radius:5px}.modal-container .search-results-wrapper::-webkit-scrollbar-thumb:hover{background-color:#888}.modal-container .search-results-wrapper .result-field{font-style:italic;display:flex;align-items:center;justify-content:space-between;padding:.8em}.modal-container .search-results-wrapper .result-field .lib-spinner{margin:auto;display:grid;place-items:center}.modal-container .search-results-wrapper .result-field.result{font-style:normal;padding:0}.modal-container .search-results-wrapper .result-field.result label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;padding:.8em;display:flex;align-items:center}.modal-container .search-results-wrapper .result-field.result label .icon{font-size:1.2em;margin-right:.4em}.modal-container .search-results-wrapper .result-field.result .impersonate-button{cursor:pointer;display:none;color:#ca7ad1cc;padding:.1em .6em;border:1px solid currentColor;border-radius:4px;background-color:#fff;flex-shrink:0;margin-block:.6em;margin-right:.8em}.modal-container .search-results-wrapper .result-field.result .impersonate-button:hover{color:#ca7ad1;background-color:#fff8}.modal-container .search-results-wrapper .result-field.result:active,.modal-container .search-results-wrapper .result-field.result.focus{background:#f2f2f2}.modal-container .search-results-wrapper .result-field.result.focus .impersonate-button{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: ImpersonateUserPipe, name: "impersonateUser" }], animations: [libHbllFadeInOut] }); }
608
- }
609
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImpersonateModalComponent, decorators: [{
610
- type: Component,
611
- args: [{ standalone: true, imports: [CommonModule, ReactiveFormsModule, ImpersonateUserPipe], selector: 'lib-impersonate-modal', animations: [libHbllFadeInOut], template: "@if (isOpen) {\n <div @libHbllFadeInOut class=\"modal-wrapper\" id=\"modalBackdrop\" data-testid=\"backdrop\">\n <div class=\"modal-container\" data-testid=\"modal\">\n <div class=\"modal-header\">\n <h2>Impersonate</h2>\n <button type=\"button\" (click)=\"close()\" aria-label=\"Close\" data-testid=\"close\">\n <span class=\"material-symbols-outlined icon-close\"> close </span>\n </button>\n </div>\n <form [formGroup]=\"form\" (submit)=\"handleFormSubmit($event)\" data-testid=\"searchForm\">\n <div class=\"search-header\">\n <div class=\"secondary\" [class.disabled]=\"!form.valid\">\n <span class=\"keyboard-key\">Enter</span> to search\n </div>\n </div>\n <label\n for=\"searchInput\"\n class=\"search-wrapper\"\n [class.invalid]=\"form.invalid && form.dirty\"\n >\n <span class=\"material-symbols-outlined icon-search\"> search </span>\n <input\n id=\"searchInput\"\n type=\"text\"\n autocomplete=\"off\"\n formControlName=\"search\"\n placeholder=\"Search patrons...\"\n (keydown)=\"handleSearchKeyPress($event)\"\n #searchBox\n data-testid=\"searchInput\"\n />\n @if (!!searchBox.value && form.valid) {\n <span class=\"material-symbols-outlined icon-checkmark\"> check </span>\n }\n @if (searchBox.value.length) {\n <span\n (click)=\"clearSearch()\"\n @libHbllFadeInOut\n class=\"material-symbols-outlined icon-close\"\n >\n close\n </span>\n }\n </label>\n </form>\n <fieldset\n class=\"search-results-wrapper\"\n id=\"resultsScrollContainer\"\n (change)=\"handleSelectUser($event)\"\n >\n @if (!loading && results()) {\n @for (user of results(); track user.netId; let idx = $index) {\n <div\n class=\"result-field result\"\n [class.focus]=\"user.username === selectedUsername\"\n data-testid=\"result\"\n >\n <label\n [for]=\"'result_' + idx\"\n [class.warning]=\"user.restricted\"\n (mouseover)=\"selectedUsername = user.username\"\n >\n @if (user.restricted) {\n <span class=\"material-symbols-outlined icon\"> warning </span>\n } @else {\n <span class=\"material-symbols-outlined icon\"> person </span>\n }\n &nbsp; &nbsp;\n <span [title]=\"user\" data-testid=\"resultText\">{{\n user | impersonateUser\n }}</span>\n <input\n type=\"radio\"\n [value]=\"user.username\"\n class=\"hidden\"\n [id]=\"'result_' + idx\"\n name=\"resultSelect\"\n (keydown)=\"handleResultKeyPress($event)\"\n />\n </label>\n <button\n class=\"impersonate-button\"\n data-testid=\"impersonateBtn\"\n (click)=\"startImpersonation(user.username)\"\n >\n Impersonate\n </button>\n </div>\n } @empty {\n <div class=\"result-field\">\n No results. Try searching by Net ID or BYU ID.\n </div>\n }\n }\n @if (loading) {\n <div class=\"result-field\">\n <div class=\"lib-spinner\"></div>\n </div>\n }\n @if (hasError) {\n <div class=\"result-field\">Something went wrong. We'll keep trying.</div>\n }\n </fieldset>\n </div>\n </div>\n}\n", styles: [".lib-spinner{border:.3em solid #dfe9f7;border-top:.3em solid #4070b0;border-radius:100%;width:30px;height:30px;animation:loadingSpinnerAnimate 1s ease infinite;position:relative}@keyframes loadingSpinnerAnimate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}h2{font-size:1.2em;font-weight:600;margin:0;color:#404040}.warning{color:#b04940}.modal-wrapper{position:fixed;inset:0;background-color:#0000007f;z-index:6001;display:grid;place-items:center}.modal-container{color:#404040;padding:1.2em 1.4em;width:90%;max-width:30em;border-radius:4px;border:1px solid #b7b7b7;box-shadow:0 3px 6px #002e5d20;background-color:#fff;display:grid;grid-template-columns:1fr;gap:1em}.modal-container .modal-header{display:flex;justify-content:space-between;border-bottom:1px solid #e6e6e6;padding-bottom:.8em}.modal-container .modal-header .icon-close{transition:opacity .15s;color:#707070;opacity:1;cursor:pointer}.modal-container .modal-header .icon-close:hover{opacity:.8}.modal-container .hidden{opacity:0;width:0;height:0}.modal-container .search-header{display:flex;align-items:center;justify-content:flex-end;margin-bottom:.8em}.modal-container .search-header .secondary{color:#70707095}.modal-container .search-header .keyboard-key{padding:.1em .4em;border:1px solid currentColor;border-radius:4px}.modal-container .search-wrapper{display:flex;align-items:center;border-radius:4px;border:solid 1px currentColor;color:#ca7ad1cc;background-color:#e6e6e655;padding:.1em .3em .1em .5em;transition:background-color .15s,color .15s}.modal-container .search-wrapper.invalid{background-color:#b0494022}.modal-container .search-wrapper .icon-search{font-size:1.2em}.modal-container .search-wrapper .icon-checkmark{color:#1dce7b}.modal-container .search-wrapper .icon-close{color:#ca7ad1cc;cursor:pointer}.modal-container .search-wrapper .icon-close:hover{color:#ca7ad1}.modal-container .search-wrapper input[type=text]{background:transparent;border:none;outline:none;width:100%;color:#404040;padding:.5em .4em;font-size:1em}.modal-container .search-wrapper input[type=text]:focus{background-color:transparent}.modal-container .search-results-wrapper{border:none;margin:0;padding:0;max-height:25em;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;display:flex;flex-direction:column;align-items:stretch;min-width:0}.modal-container .search-results-wrapper::-webkit-scrollbar{width:6px}.modal-container .search-results-wrapper::-webkit-scrollbar-track{background:#e6e6e6}.modal-container .search-results-wrapper::-webkit-scrollbar-thumb{background-color:#b3b3b3;border-radius:5px}.modal-container .search-results-wrapper::-webkit-scrollbar-thumb:hover{background-color:#888}.modal-container .search-results-wrapper .result-field{font-style:italic;display:flex;align-items:center;justify-content:space-between;padding:.8em}.modal-container .search-results-wrapper .result-field .lib-spinner{margin:auto;display:grid;place-items:center}.modal-container .search-results-wrapper .result-field.result{font-style:normal;padding:0}.modal-container .search-results-wrapper .result-field.result label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;padding:.8em;display:flex;align-items:center}.modal-container .search-results-wrapper .result-field.result label .icon{font-size:1.2em;margin-right:.4em}.modal-container .search-results-wrapper .result-field.result .impersonate-button{cursor:pointer;display:none;color:#ca7ad1cc;padding:.1em .6em;border:1px solid currentColor;border-radius:4px;background-color:#fff;flex-shrink:0;margin-block:.6em;margin-right:.8em}.modal-container .search-results-wrapper .result-field.result .impersonate-button:hover{color:#ca7ad1;background-color:#fff8}.modal-container .search-results-wrapper .result-field.result:active,.modal-container .search-results-wrapper .result-field.result.focus{background:#f2f2f2}.modal-container .search-results-wrapper .result-field.result.focus .impersonate-button{display:block}\n"] }]
612
- }], propDecorators: { showModal: [{
613
- type: Input
614
- }], dismiss: [{
615
- type: Output
616
- }], init: [{
617
- type: Output
618
- }], outsideClick: [{
619
- type: HostListener,
620
- args: ['document:mousedown', ['$event']]
621
- }], handleKeyDown: [{
622
- type: HostListener,
623
- args: ['document:keydown', ['$event']]
624
- }] } });
471
+ standalone: true,
472
+ }]
473
+ }] });
625
474
 
626
475
  const LIBRARY_HOURS_API_URL = 'https://apps.lib.byu.edu/libraryhours/api/hours';
627
476
  class HbllHeaderComponent {
@@ -630,27 +479,20 @@ class HbllHeaderComponent {
630
479
  // TODO: does this increase bundle size more than it's worth? vs fetch?
631
480
  this.http = inject(HttpClient);
632
481
  this.bo = inject(BreakpointObserver);
482
+ this.doc = inject(DOCUMENT);
633
483
  // --- API ---
634
- // Require an object here so that access tokens are not visible/extractable from the DOM in consuming applications. Instead they are only stored in memory.
635
- this.accessTokenPayload = input({ token: '' });
636
- this.oidcBaseUri = input('https://keycloak.lib.byu.edu/');
637
- this.oidcDefaultIdp = input('byu-realm');
484
+ // TODO: Convert these to signal inputs: https://github.com/angular/angular/issues/57755
485
+ this.name = '';
486
+ this.mainsitebaseurl = 'https://lib.byu.edu';
487
+ // TODO: this is a singal input currently because it won't be used by any other applications than Angular ones.
488
+ this.showImpersonateButton = input(false);
489
+ this.openImpersonationModal = new EventEmitter();
638
490
  this.login = new EventEmitter();
639
491
  this.logout = new EventEmitter();
640
- this.endImpersonation = new EventEmitter();
641
492
  // -----------
642
493
  this.formatDateForHours = (date) => `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
643
494
  this.accountInfoEl = viewChild('accountInfo');
644
495
  this.hoursEl = viewChild('hours');
645
- // Auth info
646
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
647
- this.parsedToken = computed(() => this.accessTokenPayload().token ? jwtDecode(this.accessTokenPayload().token) : {});
648
- this.isLoggedIn = computed(() => !!this.accessTokenPayload().token &&
649
- this.parsedToken().exp > Math.floor(new Date().getTime() / 1000));
650
- this.isImpersonating = computed(() => !!this.parsedToken()['impersonator']);
651
- this.showImpersonateButton = computed(() => this.parsedToken()['resource_access']['realm-management']?.['roles']?.includes('impersonation') && !this.isImpersonating());
652
- this.name = computed(() => this.parsedToken()['given_name']);
653
- // Hours
654
496
  // Hours
655
497
  this.libraryHours = toSignal(this.http.get(LIBRARY_HOURS_API_URL));
656
498
  this.hoursExceptions$ = of(null).pipe(map(() => {
@@ -661,18 +503,29 @@ class HbllHeaderComponent {
661
503
  newDate.setMonth(today.getMonth() + 2);
662
504
  const stop = this.formatDateForHours(newDate);
663
505
  return [start, stop];
664
- }), switchMap$1(([start, stop]) => this.http
506
+ }), switchMap(([start, stop]) => this.http
665
507
  .get(`${LIBRARY_HOURS_API_URL}?start=${start}&stop=${stop}`)
666
508
  .pipe(map((res) => res.filter((day) => day.has_exception).slice(0, 5)))), shareReplay(1));
667
509
  this.showAccountDropdown = false;
668
510
  this.showLibraryHours = false;
669
511
  this.mobileSidebarHeight = 0;
670
512
  this.showNavBar = false;
671
- this.showImpersonationModal = false;
672
513
  this.isScreenSmall = isScreenSmallSignal(this.bo);
514
+ this.openSidebarNav = () => {
515
+ this.showNavBar = true;
516
+ window.scrollTo(0, 0);
517
+ this.r2.setStyle(this.doc.body, 'overflow', 'hidden');
518
+ };
519
+ this.closeSidebarNav = () => {
520
+ this.showNavBar = false;
521
+ this.r2.removeStyle(this.doc.body, 'overflow');
522
+ };
673
523
  this.setMobileSidebarHeight = () => (this.mobileSidebarHeight =
674
524
  window.innerHeight - this.header.nativeElement.getBoundingClientRect().height);
675
525
  }
526
+ get isLoggedIn() {
527
+ return !!this.name;
528
+ }
676
529
  ngAfterViewInit() {
677
530
  this.r2.listen('window', 'click', (e) => {
678
531
  if (!this.accountInfoEl()?.nativeElement.contains(e.target))
@@ -686,7 +539,7 @@ class HbllHeaderComponent {
686
539
  this.setMobileSidebarHeight();
687
540
  }
688
541
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
689
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HbllHeaderComponent, isStandalone: true, selector: "lib-hbll-header", inputs: { accessTokenPayload: { classPropertyName: "accessTokenPayload", publicName: "accessTokenPayload", isSignal: true, isRequired: false, transformFunction: null }, oidcBaseUri: { classPropertyName: "oidcBaseUri", publicName: "oidcBaseUri", isSignal: true, isRequired: false, transformFunction: null }, oidcDefaultIdp: { classPropertyName: "oidcDefaultIdp", publicName: "oidcDefaultIdp", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { login: "login", logout: "logout", endImpersonation: "endImpersonation" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "accountInfoEl", first: true, predicate: ["accountInfo"], descendants: true, isSignal: true }, { propertyName: "hoursEl", first: true, predicate: ["hours"], descendants: true, isSignal: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }], ngImport: i0, template: "<header role=\"banner\" class=\"wrapper\" #header [ngClass]=\"{ desktop: !isScreenSmall() }\">\n <a href=\"https://lib.byu.edu/\">\n <h1>\n <img\n src=\"https://media.lib.byu.edu/web-assets/images/2.0.0/byu-hbll-logo-full.svg\"\n alt=\"BYU Library Logo\"\n />\n </h1>\n </a>\n <div id=\"libraryInfo\" class=\"wrapper\">\n @if (!isScreenSmall()) {\n <div #hours id=\"mainLibraryHours\" data-testid=\"desktopHours\">\n <button\n (click)=\"showLibraryHours = !showLibraryHours\"\n class=\"wrapper\"\n data-testid=\"hoursBtn\"\n >\n <ng-container *ngTemplateOutlet=\"hoursTextBlock\"></ng-container>\n </button>\n @if (!isScreenSmall() && showLibraryHours) {\n <div\n @libHbllFadeInOut\n id=\"libraryHoursDropdown\"\n data-testid=\"libraryHoursDropdown\"\n >\n <section class=\"section\">\n <h2 class=\"header\">Regular Hours</h2>\n <div class=\"detail\">\n <h3 class=\"item\">Monday - Friday</h3>\n <h3 class=\"item\">Saturday</h3>\n <h3 class=\"item\">Sunday</h3>\n </div>\n <div class=\"hours\">\n <div class=\"item\">7 a.m - midnight</div>\n <div class=\"item\">8 a.m - midnight</div>\n <div class=\"item\">Closed*</div>\n </div>\n <div class=\"hours-note\">\n * Family history ONLY 4 p.m. - 8 p.m\n <ul>\n <li><span>No checkouts after 11:45 p.m.</span></li>\n <li>\n <span>All services closed 10:45 to noon on Tuesdays</span>\n </li>\n </ul>\n </div>\n </section>\n <section class=\"section\">\n <h2 class=\"header\">Upcoming Exceptions</h2>\n @if (hoursExceptions$ | async; as exceptions) {\n <div class=\"detail\" data-testid=\"exceptionsDetail\">\n @for (exception of exceptions; track exception.date) {\n <h3 class=\"item\">\n {{ exception.date | date: 'MMM. d, YYYY' }}\n </h3>\n } @empty {\n No upcoming exceptions\n }\n </div>\n <div class=\"hours\" data-testid=\"exceptionsHours\">\n @for (exception of exceptions; track exception.date) {\n <div class=\"item\">{{ exception.exception_title }}</div>\n }\n </div>\n } @else {\n <div class=\"lib-spinner\" data-testid=\"exceptionsSpinner\"></div>\n }\n </section>\n <section class=\"section\">\n <h2 class=\"header\">Library Cafe</h2>\n <div class=\"detail\">\n <h3 class=\"item\">Bagel Bubble</h3>\n <h3 class=\"item\">Provecho</h3>\n </div>\n <div class=\"hours\">\n <div class=\"item\">7 a.m - 11 p.m.</div>\n <div class=\"item\">10:30 a.m - 2 p.m.</div>\n </div>\n </section>\n <a href=\"https:/lib.byu.edu/about/hours\"\n >See all hours\n <span class=\"material-symbols-outlined\"> chevron_right </span></a\n >\n </div>\n }\n </div>\n }\n <div id=\"accountInfo\" #accountInfo>\n <button\n (click)=\"isLoggedIn() ? (showAccountDropdown = !showAccountDropdown) : login.emit()\"\n class=\"wrapper\"\n id=\"accountBtn\"\n data-testid=\"accountBtn\"\n >\n <span class=\"material-symbols-outlined icon\"> person </span>\n @if (!isScreenSmall()) {\n <span class=\"name\" data-testid=\"name\">{{\n isLoggedIn() ? name() : 'Login'\n }}</span>\n }\n @if (isLoggedIn()) {\n <span class=\"material-symbols-outlined\" data-testid=\"loginDropdown\">\n arrow_drop_down\n </span>\n }\n </button>\n @if (isLoggedIn() && showAccountDropdown) {\n <div @libHbllFadeInOut id=\"accountDropdown\" data-testid=\"accountDropdown\">\n <a href=\"https://lib.byu.edu/account\">My Account</a>\n <a href=\"https://lib.byu.edu/account\">My Items</a>\n <a href=\"https://lib.byu.edu/account/request\">Request an item</a>\n <a href=\"https://lib.byu.edu/account/saved\">Saved</a>\n <a href=\"https://lib.byu.edu/account/course\">Courses</a>\n <a href=\"https://lib.byu.edu/account/rooms\">Rooms</a>\n <a href=\"https://lib.byu.edu/account/preferences\">Preferences</a>\n @if (showImpersonateButton()) {\n <button\n href=\"https://lib.byu.edu/account/preferences\"\n (click)=\"showImpersonationModal = true; showAccountDropdown = false\"\n class=\"impersonate-btn\"\n >\n Impersonate\n </button>\n }\n <button (click)=\"logout.emit()\" data-testid=\"logout\">Logout</button>\n </div>\n }\n </div>\n @if (isScreenSmall()) {\n <div id=\"mobileNav\">\n <button class=\"wrapper\" data-testid=\"mobileNavBtn\" (click)=\"showNavBar = true\">\n <span class=\"material-symbols-outlined icon\"> menu </span>\n </button>\n @if (showNavBar) {\n <div id=\"navWrapper\" data-testid=\"mobileNav\" @libHbllSlideInOutRightLeft>\n <button\n id=\"closeMobileNavBtn\"\n class=\"wrapper\"\n data-testid=\"closeMobileNavBtn\"\n (click)=\"showNavBar = false\"\n >\n <span class=\"material-symbols-outlined icon\"> close </span>\n </button>\n <lib-nav-bar [height]=\"mobileSidebarHeight\" />\n </div>\n }\n </div>\n }\n </div>\n</header>\n\n@if (!isScreenSmall()) {\n <div id=\"mainNav\">\n <lib-nav-bar />\n </div>\n}\n@if (isScreenSmall()) {\n <a\n id=\"mobileLibraryHours\"\n href=\"https:/lib.byu.edu/about/hours\"\n class=\"wrapper\"\n data-testid=\"mobileHours\"\n >\n <ng-container *ngTemplateOutlet=\"hoursTextBlock\"></ng-container>\n </a>\n}\n\n<ng-template #hoursTextBlock>\n @if (libraryHours()) {\n <span class=\"material-symbols-outlined left-icon\"> schedule </span>\n {{\n libraryHours()?.is_closed\n ? 'CLOSED'\n : \"Today's hours: \" +\n (libraryHours()!.date | libraryHours: libraryHours()!.open_time) +\n ' - ' +\n (libraryHours()!.date | libraryHours: libraryHours()!.close_time)\n }}\n }\n</ng-template>\n\n<lib-impersonate-modal\n [showModal]=\"showImpersonationModal\"\n [oidcBaseUri]=\"oidcBaseUri()\"\n [oidcDefaultIdp]=\"oidcDefaultIdp()\"\n [accessTokenPayload]=\"accessTokenPayload()\"\n (dismiss)=\"showImpersonationModal = false\"\n (init)=\"showImpersonationModal = true\"\n></lib-impersonate-modal>\n", styles: [".lib-spinner{border:.3em solid #dfe9f7;border-top:.3em solid #4070b0;border-radius:100%;width:30px;height:30px;animation:loadingSpinnerAnimate 1s ease infinite;position:relative}@keyframes loadingSpinnerAnimate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{box-sizing:border-box}.wrapper{display:flex;align-items:center;font-size:1em}#mobileLibraryHours{color:#141414;background-color:#e6e6e6;font-size:1em;min-height:2em}#mobileLibraryHours.wrapper{width:100%;justify-content:center;padding:.2em}.icon,.left-icon{font-size:1.2em}.left-icon{margin-right:.4em}header{background-color:#002e5d;display:flex;align-items:center;position:relative}header a h1{font-size:100%;margin:0;height:1.8em}header a h1 img{height:100%;padding:0 0 0 .6em}header #libraryInfo{margin-left:auto;color:#fff}header #libraryInfo a,header #libraryInfo button{transition:color .2s ease-in-out;color:#fffc}header #libraryInfo a:hover,header #libraryInfo button:hover{color:#fff}header #libraryInfo #accountInfo button,header #libraryInfo #mobileNav button{padding:.8em .6em}header #libraryInfo #accountBtn .name{margin-left:.4em}header #libraryInfo #mobileNav{position:relative;z-index:11}header #libraryInfo #mobileNav #navWrapper{color:#fff;position:absolute;width:100vw;top:0;right:0}header #libraryInfo #mobileNav #navWrapper #closeMobileNavBtn{background-color:#0047ba;margin-left:auto;padding-left:.9em}header #libraryInfo :last-child button{padding-right:1em!important}header #libraryInfo .icon{font-size:1.8em}header #libraryInfo #accountInfo{position:relative}header #libraryInfo #accountInfo #accountDropdown{font-size:1em;text-wrap:nowrap;position:absolute;background-color:#002e5d;top:100%;right:-32px;z-index:11;background-color:#233753}header #libraryInfo #accountInfo #accountDropdown .impersonate-btn{color:#ca7ad1cc}header #libraryInfo #accountInfo #accountDropdown .impersonate-btn:hover{color:#ca7ad1}header #libraryInfo #accountInfo #accountDropdown a,header #libraryInfo #accountInfo #accountDropdown button{display:block;width:100%;text-align:left;padding:.4em 1.2em}header #libraryInfo #accountInfo #accountDropdown a:first-child,header #libraryInfo #accountInfo #accountDropdown button:first-child{margin-bottom:.4em;border-bottom:1px solid rgba(255,255,255,.3)}header #libraryInfo #accountInfo #accountDropdown a:last-child,header #libraryInfo #accountInfo #accountDropdown button:last-child{margin-top:.4em;border-top:1px solid rgba(255,255,255,.3);padding-bottom:.6em}header #libraryInfo #accountInfo #accountDropdown:before{content:\"\";width:0;height:0;border-style:solid;border-width:0 .6em .6em .6em;border-color:transparent transparent hsl(214,41%,23%) transparent;position:absolute;bottom:100%;right:50%;transform:translate(50%);z-index:inherit}header.desktop{padding:0 2em}header.desktop #libraryInfo #mainLibraryHours{position:relative;margin-right:1em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown{z-index:11;background-color:#fff;border-radius:4px;border:1px solid #d2d2d2;position:absolute;color:#000;padding:2em;top:100%;max-width:400%;right:50%;transform:translate(50%);margin-top:.6em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section{display:grid;grid-template-columns:repeat(3,9em);grid-template-rows:1fr;grid-column-gap:0px;grid-row-gap:0px;margin-bottom:1em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section h2{margin:0}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours-note{grid-column:2/4;font-size:.8em;margin-top:1em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours-note ul{list-style-type:disc;list-style-position:inside;margin-left:.8em;padding:0}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours-note ul li span{left:-8px;position:relative}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .header{font-weight:600;font-size:1.2em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .detail,header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours{margin-top:.2em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .detail .item+.item,header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours .item+.item{margin-top:.2em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .detail h3,header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours h3{margin:0;font-size:inherit}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .detail{font-weight:600;white-space:nowrap}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours{white-space:nowrap}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown a{color:#4070b0;display:flex;align-items:center;float:right}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown a:hover{color:#6892ca}header.desktop #libraryInfo #accountInfo #accountDropdown{right:auto;left:50%;transform:translate(-50%)}button{background-color:transparent;border:none;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;padding:0}\n"], dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: LibraryHoursPipe, name: "libraryHours" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: NavBarComponent, selector: "lib-nav-bar", inputs: ["height"] }, { kind: "component", type: ImpersonateModalComponent, selector: "lib-impersonate-modal", inputs: ["showModal", "oidcBaseUri", "oidcDefaultIdp", "accessTokenPayload"], outputs: ["dismiss", "init"] }], animations: [libHbllSlideInOutRightLeft, libHbllFadeInOut] }); }
542
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HbllHeaderComponent, isStandalone: true, selector: "lib-hbll-header", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, mainsitebaseurl: { classPropertyName: "mainsitebaseurl", publicName: "mainsitebaseurl", isSignal: false, isRequired: false, transformFunction: null }, showImpersonateButton: { classPropertyName: "showImpersonateButton", publicName: "showImpersonateButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openImpersonationModal: "openImpersonationModal", login: "login", logout: "logout" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "accountInfoEl", first: true, predicate: ["accountInfo"], descendants: true, isSignal: true }, { propertyName: "hoursEl", first: true, predicate: ["hours"], descendants: true, isSignal: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }], ngImport: i0, template: "<header\n role=\"banner\"\n class=\"hbll-header-wrapper\"\n #header\n [ngClass]=\"{ 'hbll-header-desktop': !isScreenSmall() }\"\n>\n <a [href]=\"mainsitebaseurl\">\n <h1>\n <img\n src=\"https://media.lib.byu.edu/web-assets/images/2.0.0/byu-hbll-logo-full.svg\"\n alt=\"BYU Library Logo\"\n />\n </h1>\n </a>\n <div id=\"libraryInfo\" class=\"hbll-header-wrapper\">\n @if (!isScreenSmall()) {\n <div #hours id=\"mainLibraryHours\" data-testid=\"desktopHours\">\n <button\n (click)=\"showLibraryHours = !showLibraryHours\"\n class=\"hbll-header-wrapper\"\n data-testid=\"hoursBtn\"\n >\n <ng-container *ngTemplateOutlet=\"hoursTextBlock\"></ng-container>\n </button>\n @if (!isScreenSmall() && showLibraryHours) {\n <div\n @libHbllFadeInOut\n id=\"libraryHoursDropdown\"\n data-testid=\"libraryHoursDropdown\"\n >\n <section class=\"hbll-header-section\">\n <h2 class=\"hbll-header-header\">Regular Hours</h2>\n <div class=\"hbll-header-detail\">\n <h3 class=\"hbll-header-item\">Monday - Friday</h3>\n <h3 class=\"hbll-header-item\">Saturday</h3>\n <h3 class=\"hbll-header-item\">Sunday</h3>\n </div>\n <div class=\"hbll-header-hours\">\n <div class=\"hbll-header-item\">7 a.m - midnight</div>\n <div class=\"hbll-header-item\">8 a.m - midnight</div>\n <div class=\"hbll-header-item\">Closed*</div>\n </div>\n <div class=\"hbll-header-hours-note\">\n * Family history ONLY 4 p.m. - 8 p.m\n <ul>\n <li><span>No checkouts after 11:45 p.m.</span></li>\n <li>\n <span>All services closed 10:45 to noon on Tuesdays</span>\n </li>\n </ul>\n </div>\n </section>\n <section class=\"hbll-header-section\">\n <h2 class=\"hbll-header-header\">Upcoming Exceptions</h2>\n @if (hoursExceptions$ | async; as exceptions) {\n <div class=\"hbll-header-detail\" data-testid=\"exceptionsDetail\">\n @for (exception of exceptions; track exception.date) {\n <h3 class=\"hbll-header-item\">\n {{ exception.date | date: 'MMM. d, YYYY' }}\n </h3>\n } @empty {\n No upcoming exceptions\n }\n </div>\n <div class=\"hbll-header-hours\" data-testid=\"exceptionsHours\">\n @for (exception of exceptions; track exception.date) {\n <div class=\"hbll-header-item\">\n {{ exception.exception_title }}\n </div>\n }\n </div>\n } @else {\n <div class=\"lib-spinner\" data-testid=\"exceptionsSpinner\"></div>\n }\n </section>\n <section class=\"hbll-header-section\">\n <h2 class=\"hbll-header-header\">Library Cafe</h2>\n <div class=\"hbll-header-detail\">\n <h3 class=\"hbll-header-item\">Bagel Bubble</h3>\n <h3 class=\"hbll-header-item\">Provecho</h3>\n </div>\n <div class=\"hbll-header-hours\">\n <div class=\"hbll-header-item\">7 a.m - 11 p.m.</div>\n <div class=\"hbll-header-item\">10:30 a.m - 2 p.m.</div>\n </div>\n </section>\n <a [href]=\"mainsitebaseurl + '/about/hours'\"\n >See all hours\n <span class=\"material-symbols-outlined\"> chevron_right </span></a\n >\n </div>\n }\n </div>\n }\n <div id=\"accountInfo\" #accountInfo>\n <button\n (click)=\"isLoggedIn ? (showAccountDropdown = !showAccountDropdown) : login.emit()\"\n class=\"hbll-header-wrapper\"\n id=\"accountBtn\"\n data-testid=\"accountBtn\"\n >\n <span class=\"material-symbols-outlined hbll-header-left-icon\"> person </span>\n @if (!isScreenSmall()) {\n <span class=\"hbll-header-name\" data-testid=\"name\">{{\n isLoggedIn ? '&nbsp;' + name : 'Login'\n }}</span>\n }\n @if (isLoggedIn) {\n <span class=\"material-symbols-outlined\" data-testid=\"loginDropdown\">\n arrow_drop_down\n </span>\n }\n </button>\n @if (isLoggedIn && showAccountDropdown) {\n <div @libHbllFadeInOut id=\"accountDropdown\" data-testid=\"accountDropdown\">\n <a [href]=\"mainsitebaseurl + '/account'\">My Account</a>\n <a [href]=\"mainsitebaseurl + '/account'\">My Items</a>\n <a [href]=\"mainsitebaseurl + '/account/request'\">Request an item</a>\n <a [href]=\"mainsitebaseurl + '/account/saved'\">Saved</a>\n <a [href]=\"mainsitebaseurl + '/account/course'\">Courses</a>\n <a [href]=\"mainsitebaseurl + '/account/rooms'\">Rooms</a>\n <a [href]=\"mainsitebaseurl + '/account/preferences'\">Preferences</a>\n @if (showImpersonateButton()) {\n <button\n (click)=\"openImpersonationModal.emit(); showAccountDropdown = false\"\n class=\"hbll-header-impersonate-btn\"\n >\n Impersonate\n </button>\n }\n <button (click)=\"logout.emit()\" data-testid=\"logout\">Logout</button>\n </div>\n }\n </div>\n @if (isScreenSmall()) {\n <div id=\"mobileNav\">\n <button\n class=\"hbll-header-wrapper\"\n data-testid=\"mobileNavBtn\"\n (click)=\"openSidebarNav()\"\n >\n <span class=\"material-symbols-outlined hbll-header-icon\"> menu </span>\n </button>\n @if (showNavBar) {\n <div\n id=\"navWrapper\"\n data-testid=\"mobileNav\"\n [@libHbllSlideInOutRightLeft]=\"{\n value: '',\n params: { xOffset: '400px' },\n }\"\n >\n <button\n id=\"closeMobileNavBtn\"\n class=\"hbll-header-wrapper\"\n data-testid=\"closeMobileNavBtn\"\n (click)=\"closeSidebarNav()\"\n >\n <span class=\"material-symbols-outlined hbll-header-icon\"> close </span>\n </button>\n <lib-nav-bar\n [mainSiteBaseUrl]=\"mainsitebaseurl\"\n [height]=\"mobileSidebarHeight\"\n />\n </div>\n <div\n @libHbllFadeInOut\n (click)=\"showNavBar = false\"\n class=\"hbll-nav-backdrop\"\n data-testid=\"mobileNavBackdrop\"\n ></div>\n }\n </div>\n }\n </div>\n</header>\n\n@if (!isScreenSmall()) {\n <div id=\"mainNav\">\n <lib-nav-bar [mainSiteBaseUrl]=\"mainsitebaseurl\" />\n </div>\n}\n@if (isScreenSmall()) {\n <a\n id=\"mobileLibraryHours\"\n [href]=\"mainsitebaseurl + '/about/hours'\"\n class=\"hbll-header-wrapper\"\n data-testid=\"mobileHours\"\n >\n <ng-container *ngTemplateOutlet=\"hoursTextBlock\"></ng-container>\n </a>\n}\n\n<ng-template #hoursTextBlock>\n @if (libraryHours()) {\n <span class=\"material-symbols-outlined hbll-header-left-icon\"> schedule </span>\n {{\n libraryHours()?.is_closed\n ? 'CLOSED'\n : \"Today's hours: \" +\n (libraryHours()!.date | libraryHours: libraryHours()!.open_time) +\n ' - ' +\n (libraryHours()!.date | libraryHours: libraryHours()!.close_time)\n }}\n }\n</ng-template>\n", styles: [".lib-spinner{border:.3em solid #dfe9f7;border-top:.3em solid #4070b0;border-radius:100%;width:30px;height:30px;animation:loadingSpinnerAnimate 1s ease infinite;position:relative}@keyframes loadingSpinnerAnimate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-wrapper{display:flex;align-items:center;font-size:1em}.hbll-nav-backdrop{background-color:#000;opacity:.3;height:100vh;width:100vw;left:0;top:0;transform:translate(-100vw);position:absolute;z-index:-1}#mobileLibraryHours{color:#141414;background-color:#e6e6e6;font-size:1em;min-height:2em}#mobileLibraryHours.hbll-header-wrapper{width:100%;justify-content:center;padding:.2em}.hbll-header-icon,.hbll-header-left-icon{font-size:1.2em}.hbll-header-left-icon{margin-right:.2em}header{background-color:#002e5d;display:flex;align-items:center}header a h1{font-size:100%;margin:0;height:1.8em}header a h1 img{height:100%;padding:0 0 0 .6em}header #libraryInfo{margin-left:auto;color:#fff}header #libraryInfo a,header #libraryInfo button{transition:color .2s ease-in-out;color:#fffc}header #libraryInfo a:hover,header #libraryInfo button:hover{color:#fff}header #libraryInfo #accountInfo button,header #libraryInfo #mobileNav button{padding:.8em .6em}header #libraryInfo #accountBtn .name{margin-left:.4em}header #libraryInfo #mobileNav{position:relative;z-index:11}header #libraryInfo #mobileNav #navWrapper{color:#fff;position:absolute;top:0;right:0}header #libraryInfo #mobileNav #navWrapper #closeMobileNavBtn{background-color:#0047ba;margin-left:auto;padding-left:.9em}header #libraryInfo :last-child button{padding-right:1em!important}header #libraryInfo .hbll-header-icon,header #libraryInfo .hbll-header-left-icon{font-size:1.6em}header #libraryInfo #accountInfo{position:relative}header #libraryInfo #accountInfo #accountDropdown{font-size:1em;text-wrap:nowrap;position:absolute;background-color:#002e5d;top:100%;right:-32px;z-index:11;background-color:#233753}header #libraryInfo #accountInfo #accountDropdown .hbll-header-impersonate-btn{color:#ca7ad1cc}header #libraryInfo #accountInfo #accountDropdown .hbll-header-impersonate-btn:hover{color:#ca7ad1}header #libraryInfo #accountInfo #accountDropdown a,header #libraryInfo #accountInfo #accountDropdown button{display:block;width:100%;text-align:left;padding:.4em 1.2em;font-size:1.1em}header #libraryInfo #accountInfo #accountDropdown a:first-child,header #libraryInfo #accountInfo #accountDropdown button:first-child{margin-bottom:.4em;padding-top:.6em;padding-bottom:.6em;border-bottom:1px solid rgba(255,255,255,.3)}header #libraryInfo #accountInfo #accountDropdown a:last-child,header #libraryInfo #accountInfo #accountDropdown button:last-child{margin-top:.4em;border-top:1px solid rgba(255,255,255,.3);padding-top:.6em;padding-bottom:.6em}header #libraryInfo #accountInfo #accountDropdown:before{content:\"\";width:0;height:0;border-style:solid;border-width:0 .6em .6em .6em;border-color:transparent transparent hsl(214,41%,23%) transparent;position:absolute;bottom:100%;right:50%;transform:translate(50%);z-index:inherit}header.hbll-header-desktop{padding:0 2em}header.hbll-header-desktop #libraryInfo #mainLibraryHours{position:relative;margin-right:1em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown{z-index:12;background-color:#fff;border-radius:4px;border:1px solid #d2d2d2;position:absolute;color:#000;padding:2em;top:100%;max-width:400%;right:50%;transform:translate(50%);margin-top:.6em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section{display:grid;grid-template-columns:repeat(3,9em);grid-template-rows:1fr;grid-column-gap:0px;grid-row-gap:0px;margin-bottom:1em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section h2{margin:0}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours-note{grid-column:2/4;font-size:.8em;margin-top:1em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours-note ul{list-style-type:disc;list-style-position:inside;margin-left:.8em;padding:0}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours-note ul li span{left:-8px;position:relative}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-header{font-weight:600;font-size:1.2em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-detail,header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours{margin-top:.2em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-detail .hbll-header-item+.hbll-header-item,header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours .hbll-header-item+.hbll-header-item{margin-top:.3em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-detail h3,header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours h3{margin:0;font-size:inherit}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-detail{font-weight:600;white-space:nowrap}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours{white-space:nowrap}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown a{color:#4070b0;display:flex;align-items:center;float:right}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown a:hover{color:#6892ca}header.hbll-header-desktop #libraryInfo #accountInfo #accountDropdown{right:auto;left:50%;transform:translate(-50%)}button{background-color:transparent;border:none;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;padding:0}\n"], dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: LibraryHoursPipe, name: "libraryHours" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: NavBarComponent, selector: "lib-nav-bar", inputs: ["mainSiteBaseUrl", "height"] }], animations: [libHbllSlideInOutRightLeft, libHbllFadeInOut] }); }
690
543
  }
691
544
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllHeaderComponent, decorators: [{
692
545
  type: Component,
@@ -697,22 +550,281 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
697
550
  CommonModule,
698
551
  NavBarComponent,
699
552
  ExpandCollapseComponent,
700
- ImpersonateModalComponent,
701
- ], animations: [libHbllSlideInOutRightLeft, libHbllFadeInOut], template: "<header role=\"banner\" class=\"wrapper\" #header [ngClass]=\"{ desktop: !isScreenSmall() }\">\n <a href=\"https://lib.byu.edu/\">\n <h1>\n <img\n src=\"https://media.lib.byu.edu/web-assets/images/2.0.0/byu-hbll-logo-full.svg\"\n alt=\"BYU Library Logo\"\n />\n </h1>\n </a>\n <div id=\"libraryInfo\" class=\"wrapper\">\n @if (!isScreenSmall()) {\n <div #hours id=\"mainLibraryHours\" data-testid=\"desktopHours\">\n <button\n (click)=\"showLibraryHours = !showLibraryHours\"\n class=\"wrapper\"\n data-testid=\"hoursBtn\"\n >\n <ng-container *ngTemplateOutlet=\"hoursTextBlock\"></ng-container>\n </button>\n @if (!isScreenSmall() && showLibraryHours) {\n <div\n @libHbllFadeInOut\n id=\"libraryHoursDropdown\"\n data-testid=\"libraryHoursDropdown\"\n >\n <section class=\"section\">\n <h2 class=\"header\">Regular Hours</h2>\n <div class=\"detail\">\n <h3 class=\"item\">Monday - Friday</h3>\n <h3 class=\"item\">Saturday</h3>\n <h3 class=\"item\">Sunday</h3>\n </div>\n <div class=\"hours\">\n <div class=\"item\">7 a.m - midnight</div>\n <div class=\"item\">8 a.m - midnight</div>\n <div class=\"item\">Closed*</div>\n </div>\n <div class=\"hours-note\">\n * Family history ONLY 4 p.m. - 8 p.m\n <ul>\n <li><span>No checkouts after 11:45 p.m.</span></li>\n <li>\n <span>All services closed 10:45 to noon on Tuesdays</span>\n </li>\n </ul>\n </div>\n </section>\n <section class=\"section\">\n <h2 class=\"header\">Upcoming Exceptions</h2>\n @if (hoursExceptions$ | async; as exceptions) {\n <div class=\"detail\" data-testid=\"exceptionsDetail\">\n @for (exception of exceptions; track exception.date) {\n <h3 class=\"item\">\n {{ exception.date | date: 'MMM. d, YYYY' }}\n </h3>\n } @empty {\n No upcoming exceptions\n }\n </div>\n <div class=\"hours\" data-testid=\"exceptionsHours\">\n @for (exception of exceptions; track exception.date) {\n <div class=\"item\">{{ exception.exception_title }}</div>\n }\n </div>\n } @else {\n <div class=\"lib-spinner\" data-testid=\"exceptionsSpinner\"></div>\n }\n </section>\n <section class=\"section\">\n <h2 class=\"header\">Library Cafe</h2>\n <div class=\"detail\">\n <h3 class=\"item\">Bagel Bubble</h3>\n <h3 class=\"item\">Provecho</h3>\n </div>\n <div class=\"hours\">\n <div class=\"item\">7 a.m - 11 p.m.</div>\n <div class=\"item\">10:30 a.m - 2 p.m.</div>\n </div>\n </section>\n <a href=\"https:/lib.byu.edu/about/hours\"\n >See all hours\n <span class=\"material-symbols-outlined\"> chevron_right </span></a\n >\n </div>\n }\n </div>\n }\n <div id=\"accountInfo\" #accountInfo>\n <button\n (click)=\"isLoggedIn() ? (showAccountDropdown = !showAccountDropdown) : login.emit()\"\n class=\"wrapper\"\n id=\"accountBtn\"\n data-testid=\"accountBtn\"\n >\n <span class=\"material-symbols-outlined icon\"> person </span>\n @if (!isScreenSmall()) {\n <span class=\"name\" data-testid=\"name\">{{\n isLoggedIn() ? name() : 'Login'\n }}</span>\n }\n @if (isLoggedIn()) {\n <span class=\"material-symbols-outlined\" data-testid=\"loginDropdown\">\n arrow_drop_down\n </span>\n }\n </button>\n @if (isLoggedIn() && showAccountDropdown) {\n <div @libHbllFadeInOut id=\"accountDropdown\" data-testid=\"accountDropdown\">\n <a href=\"https://lib.byu.edu/account\">My Account</a>\n <a href=\"https://lib.byu.edu/account\">My Items</a>\n <a href=\"https://lib.byu.edu/account/request\">Request an item</a>\n <a href=\"https://lib.byu.edu/account/saved\">Saved</a>\n <a href=\"https://lib.byu.edu/account/course\">Courses</a>\n <a href=\"https://lib.byu.edu/account/rooms\">Rooms</a>\n <a href=\"https://lib.byu.edu/account/preferences\">Preferences</a>\n @if (showImpersonateButton()) {\n <button\n href=\"https://lib.byu.edu/account/preferences\"\n (click)=\"showImpersonationModal = true; showAccountDropdown = false\"\n class=\"impersonate-btn\"\n >\n Impersonate\n </button>\n }\n <button (click)=\"logout.emit()\" data-testid=\"logout\">Logout</button>\n </div>\n }\n </div>\n @if (isScreenSmall()) {\n <div id=\"mobileNav\">\n <button class=\"wrapper\" data-testid=\"mobileNavBtn\" (click)=\"showNavBar = true\">\n <span class=\"material-symbols-outlined icon\"> menu </span>\n </button>\n @if (showNavBar) {\n <div id=\"navWrapper\" data-testid=\"mobileNav\" @libHbllSlideInOutRightLeft>\n <button\n id=\"closeMobileNavBtn\"\n class=\"wrapper\"\n data-testid=\"closeMobileNavBtn\"\n (click)=\"showNavBar = false\"\n >\n <span class=\"material-symbols-outlined icon\"> close </span>\n </button>\n <lib-nav-bar [height]=\"mobileSidebarHeight\" />\n </div>\n }\n </div>\n }\n </div>\n</header>\n\n@if (!isScreenSmall()) {\n <div id=\"mainNav\">\n <lib-nav-bar />\n </div>\n}\n@if (isScreenSmall()) {\n <a\n id=\"mobileLibraryHours\"\n href=\"https:/lib.byu.edu/about/hours\"\n class=\"wrapper\"\n data-testid=\"mobileHours\"\n >\n <ng-container *ngTemplateOutlet=\"hoursTextBlock\"></ng-container>\n </a>\n}\n\n<ng-template #hoursTextBlock>\n @if (libraryHours()) {\n <span class=\"material-symbols-outlined left-icon\"> schedule </span>\n {{\n libraryHours()?.is_closed\n ? 'CLOSED'\n : \"Today's hours: \" +\n (libraryHours()!.date | libraryHours: libraryHours()!.open_time) +\n ' - ' +\n (libraryHours()!.date | libraryHours: libraryHours()!.close_time)\n }}\n }\n</ng-template>\n\n<lib-impersonate-modal\n [showModal]=\"showImpersonationModal\"\n [oidcBaseUri]=\"oidcBaseUri()\"\n [oidcDefaultIdp]=\"oidcDefaultIdp()\"\n [accessTokenPayload]=\"accessTokenPayload()\"\n (dismiss)=\"showImpersonationModal = false\"\n (init)=\"showImpersonationModal = true\"\n></lib-impersonate-modal>\n", styles: [".lib-spinner{border:.3em solid #dfe9f7;border-top:.3em solid #4070b0;border-radius:100%;width:30px;height:30px;animation:loadingSpinnerAnimate 1s ease infinite;position:relative}@keyframes loadingSpinnerAnimate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{box-sizing:border-box}.wrapper{display:flex;align-items:center;font-size:1em}#mobileLibraryHours{color:#141414;background-color:#e6e6e6;font-size:1em;min-height:2em}#mobileLibraryHours.wrapper{width:100%;justify-content:center;padding:.2em}.icon,.left-icon{font-size:1.2em}.left-icon{margin-right:.4em}header{background-color:#002e5d;display:flex;align-items:center;position:relative}header a h1{font-size:100%;margin:0;height:1.8em}header a h1 img{height:100%;padding:0 0 0 .6em}header #libraryInfo{margin-left:auto;color:#fff}header #libraryInfo a,header #libraryInfo button{transition:color .2s ease-in-out;color:#fffc}header #libraryInfo a:hover,header #libraryInfo button:hover{color:#fff}header #libraryInfo #accountInfo button,header #libraryInfo #mobileNav button{padding:.8em .6em}header #libraryInfo #accountBtn .name{margin-left:.4em}header #libraryInfo #mobileNav{position:relative;z-index:11}header #libraryInfo #mobileNav #navWrapper{color:#fff;position:absolute;width:100vw;top:0;right:0}header #libraryInfo #mobileNav #navWrapper #closeMobileNavBtn{background-color:#0047ba;margin-left:auto;padding-left:.9em}header #libraryInfo :last-child button{padding-right:1em!important}header #libraryInfo .icon{font-size:1.8em}header #libraryInfo #accountInfo{position:relative}header #libraryInfo #accountInfo #accountDropdown{font-size:1em;text-wrap:nowrap;position:absolute;background-color:#002e5d;top:100%;right:-32px;z-index:11;background-color:#233753}header #libraryInfo #accountInfo #accountDropdown .impersonate-btn{color:#ca7ad1cc}header #libraryInfo #accountInfo #accountDropdown .impersonate-btn:hover{color:#ca7ad1}header #libraryInfo #accountInfo #accountDropdown a,header #libraryInfo #accountInfo #accountDropdown button{display:block;width:100%;text-align:left;padding:.4em 1.2em}header #libraryInfo #accountInfo #accountDropdown a:first-child,header #libraryInfo #accountInfo #accountDropdown button:first-child{margin-bottom:.4em;border-bottom:1px solid rgba(255,255,255,.3)}header #libraryInfo #accountInfo #accountDropdown a:last-child,header #libraryInfo #accountInfo #accountDropdown button:last-child{margin-top:.4em;border-top:1px solid rgba(255,255,255,.3);padding-bottom:.6em}header #libraryInfo #accountInfo #accountDropdown:before{content:\"\";width:0;height:0;border-style:solid;border-width:0 .6em .6em .6em;border-color:transparent transparent hsl(214,41%,23%) transparent;position:absolute;bottom:100%;right:50%;transform:translate(50%);z-index:inherit}header.desktop{padding:0 2em}header.desktop #libraryInfo #mainLibraryHours{position:relative;margin-right:1em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown{z-index:11;background-color:#fff;border-radius:4px;border:1px solid #d2d2d2;position:absolute;color:#000;padding:2em;top:100%;max-width:400%;right:50%;transform:translate(50%);margin-top:.6em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section{display:grid;grid-template-columns:repeat(3,9em);grid-template-rows:1fr;grid-column-gap:0px;grid-row-gap:0px;margin-bottom:1em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section h2{margin:0}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours-note{grid-column:2/4;font-size:.8em;margin-top:1em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours-note ul{list-style-type:disc;list-style-position:inside;margin-left:.8em;padding:0}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours-note ul li span{left:-8px;position:relative}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .header{font-weight:600;font-size:1.2em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .detail,header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours{margin-top:.2em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .detail .item+.item,header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours .item+.item{margin-top:.2em}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .detail h3,header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours h3{margin:0;font-size:inherit}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .detail{font-weight:600;white-space:nowrap}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .section .hours{white-space:nowrap}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown a{color:#4070b0;display:flex;align-items:center;float:right}header.desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown a:hover{color:#6892ca}header.desktop #libraryInfo #accountInfo #accountDropdown{right:auto;left:50%;transform:translate(-50%)}button{background-color:transparent;border:none;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;padding:0}\n"] }]
553
+ ], animations: [libHbllSlideInOutRightLeft, libHbllFadeInOut], template: "<header\n role=\"banner\"\n class=\"hbll-header-wrapper\"\n #header\n [ngClass]=\"{ 'hbll-header-desktop': !isScreenSmall() }\"\n>\n <a [href]=\"mainsitebaseurl\">\n <h1>\n <img\n src=\"https://media.lib.byu.edu/web-assets/images/2.0.0/byu-hbll-logo-full.svg\"\n alt=\"BYU Library Logo\"\n />\n </h1>\n </a>\n <div id=\"libraryInfo\" class=\"hbll-header-wrapper\">\n @if (!isScreenSmall()) {\n <div #hours id=\"mainLibraryHours\" data-testid=\"desktopHours\">\n <button\n (click)=\"showLibraryHours = !showLibraryHours\"\n class=\"hbll-header-wrapper\"\n data-testid=\"hoursBtn\"\n >\n <ng-container *ngTemplateOutlet=\"hoursTextBlock\"></ng-container>\n </button>\n @if (!isScreenSmall() && showLibraryHours) {\n <div\n @libHbllFadeInOut\n id=\"libraryHoursDropdown\"\n data-testid=\"libraryHoursDropdown\"\n >\n <section class=\"hbll-header-section\">\n <h2 class=\"hbll-header-header\">Regular Hours</h2>\n <div class=\"hbll-header-detail\">\n <h3 class=\"hbll-header-item\">Monday - Friday</h3>\n <h3 class=\"hbll-header-item\">Saturday</h3>\n <h3 class=\"hbll-header-item\">Sunday</h3>\n </div>\n <div class=\"hbll-header-hours\">\n <div class=\"hbll-header-item\">7 a.m - midnight</div>\n <div class=\"hbll-header-item\">8 a.m - midnight</div>\n <div class=\"hbll-header-item\">Closed*</div>\n </div>\n <div class=\"hbll-header-hours-note\">\n * Family history ONLY 4 p.m. - 8 p.m\n <ul>\n <li><span>No checkouts after 11:45 p.m.</span></li>\n <li>\n <span>All services closed 10:45 to noon on Tuesdays</span>\n </li>\n </ul>\n </div>\n </section>\n <section class=\"hbll-header-section\">\n <h2 class=\"hbll-header-header\">Upcoming Exceptions</h2>\n @if (hoursExceptions$ | async; as exceptions) {\n <div class=\"hbll-header-detail\" data-testid=\"exceptionsDetail\">\n @for (exception of exceptions; track exception.date) {\n <h3 class=\"hbll-header-item\">\n {{ exception.date | date: 'MMM. d, YYYY' }}\n </h3>\n } @empty {\n No upcoming exceptions\n }\n </div>\n <div class=\"hbll-header-hours\" data-testid=\"exceptionsHours\">\n @for (exception of exceptions; track exception.date) {\n <div class=\"hbll-header-item\">\n {{ exception.exception_title }}\n </div>\n }\n </div>\n } @else {\n <div class=\"lib-spinner\" data-testid=\"exceptionsSpinner\"></div>\n }\n </section>\n <section class=\"hbll-header-section\">\n <h2 class=\"hbll-header-header\">Library Cafe</h2>\n <div class=\"hbll-header-detail\">\n <h3 class=\"hbll-header-item\">Bagel Bubble</h3>\n <h3 class=\"hbll-header-item\">Provecho</h3>\n </div>\n <div class=\"hbll-header-hours\">\n <div class=\"hbll-header-item\">7 a.m - 11 p.m.</div>\n <div class=\"hbll-header-item\">10:30 a.m - 2 p.m.</div>\n </div>\n </section>\n <a [href]=\"mainsitebaseurl + '/about/hours'\"\n >See all hours\n <span class=\"material-symbols-outlined\"> chevron_right </span></a\n >\n </div>\n }\n </div>\n }\n <div id=\"accountInfo\" #accountInfo>\n <button\n (click)=\"isLoggedIn ? (showAccountDropdown = !showAccountDropdown) : login.emit()\"\n class=\"hbll-header-wrapper\"\n id=\"accountBtn\"\n data-testid=\"accountBtn\"\n >\n <span class=\"material-symbols-outlined hbll-header-left-icon\"> person </span>\n @if (!isScreenSmall()) {\n <span class=\"hbll-header-name\" data-testid=\"name\">{{\n isLoggedIn ? '&nbsp;' + name : 'Login'\n }}</span>\n }\n @if (isLoggedIn) {\n <span class=\"material-symbols-outlined\" data-testid=\"loginDropdown\">\n arrow_drop_down\n </span>\n }\n </button>\n @if (isLoggedIn && showAccountDropdown) {\n <div @libHbllFadeInOut id=\"accountDropdown\" data-testid=\"accountDropdown\">\n <a [href]=\"mainsitebaseurl + '/account'\">My Account</a>\n <a [href]=\"mainsitebaseurl + '/account'\">My Items</a>\n <a [href]=\"mainsitebaseurl + '/account/request'\">Request an item</a>\n <a [href]=\"mainsitebaseurl + '/account/saved'\">Saved</a>\n <a [href]=\"mainsitebaseurl + '/account/course'\">Courses</a>\n <a [href]=\"mainsitebaseurl + '/account/rooms'\">Rooms</a>\n <a [href]=\"mainsitebaseurl + '/account/preferences'\">Preferences</a>\n @if (showImpersonateButton()) {\n <button\n (click)=\"openImpersonationModal.emit(); showAccountDropdown = false\"\n class=\"hbll-header-impersonate-btn\"\n >\n Impersonate\n </button>\n }\n <button (click)=\"logout.emit()\" data-testid=\"logout\">Logout</button>\n </div>\n }\n </div>\n @if (isScreenSmall()) {\n <div id=\"mobileNav\">\n <button\n class=\"hbll-header-wrapper\"\n data-testid=\"mobileNavBtn\"\n (click)=\"openSidebarNav()\"\n >\n <span class=\"material-symbols-outlined hbll-header-icon\"> menu </span>\n </button>\n @if (showNavBar) {\n <div\n id=\"navWrapper\"\n data-testid=\"mobileNav\"\n [@libHbllSlideInOutRightLeft]=\"{\n value: '',\n params: { xOffset: '400px' },\n }\"\n >\n <button\n id=\"closeMobileNavBtn\"\n class=\"hbll-header-wrapper\"\n data-testid=\"closeMobileNavBtn\"\n (click)=\"closeSidebarNav()\"\n >\n <span class=\"material-symbols-outlined hbll-header-icon\"> close </span>\n </button>\n <lib-nav-bar\n [mainSiteBaseUrl]=\"mainsitebaseurl\"\n [height]=\"mobileSidebarHeight\"\n />\n </div>\n <div\n @libHbllFadeInOut\n (click)=\"showNavBar = false\"\n class=\"hbll-nav-backdrop\"\n data-testid=\"mobileNavBackdrop\"\n ></div>\n }\n </div>\n }\n </div>\n</header>\n\n@if (!isScreenSmall()) {\n <div id=\"mainNav\">\n <lib-nav-bar [mainSiteBaseUrl]=\"mainsitebaseurl\" />\n </div>\n}\n@if (isScreenSmall()) {\n <a\n id=\"mobileLibraryHours\"\n [href]=\"mainsitebaseurl + '/about/hours'\"\n class=\"hbll-header-wrapper\"\n data-testid=\"mobileHours\"\n >\n <ng-container *ngTemplateOutlet=\"hoursTextBlock\"></ng-container>\n </a>\n}\n\n<ng-template #hoursTextBlock>\n @if (libraryHours()) {\n <span class=\"material-symbols-outlined hbll-header-left-icon\"> schedule </span>\n {{\n libraryHours()?.is_closed\n ? 'CLOSED'\n : \"Today's hours: \" +\n (libraryHours()!.date | libraryHours: libraryHours()!.open_time) +\n ' - ' +\n (libraryHours()!.date | libraryHours: libraryHours()!.close_time)\n }}\n }\n</ng-template>\n", styles: [".lib-spinner{border:.3em solid #dfe9f7;border-top:.3em solid #4070b0;border-radius:100%;width:30px;height:30px;animation:loadingSpinnerAnimate 1s ease infinite;position:relative}@keyframes loadingSpinnerAnimate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-wrapper{display:flex;align-items:center;font-size:1em}.hbll-nav-backdrop{background-color:#000;opacity:.3;height:100vh;width:100vw;left:0;top:0;transform:translate(-100vw);position:absolute;z-index:-1}#mobileLibraryHours{color:#141414;background-color:#e6e6e6;font-size:1em;min-height:2em}#mobileLibraryHours.hbll-header-wrapper{width:100%;justify-content:center;padding:.2em}.hbll-header-icon,.hbll-header-left-icon{font-size:1.2em}.hbll-header-left-icon{margin-right:.2em}header{background-color:#002e5d;display:flex;align-items:center}header a h1{font-size:100%;margin:0;height:1.8em}header a h1 img{height:100%;padding:0 0 0 .6em}header #libraryInfo{margin-left:auto;color:#fff}header #libraryInfo a,header #libraryInfo button{transition:color .2s ease-in-out;color:#fffc}header #libraryInfo a:hover,header #libraryInfo button:hover{color:#fff}header #libraryInfo #accountInfo button,header #libraryInfo #mobileNav button{padding:.8em .6em}header #libraryInfo #accountBtn .name{margin-left:.4em}header #libraryInfo #mobileNav{position:relative;z-index:11}header #libraryInfo #mobileNav #navWrapper{color:#fff;position:absolute;top:0;right:0}header #libraryInfo #mobileNav #navWrapper #closeMobileNavBtn{background-color:#0047ba;margin-left:auto;padding-left:.9em}header #libraryInfo :last-child button{padding-right:1em!important}header #libraryInfo .hbll-header-icon,header #libraryInfo .hbll-header-left-icon{font-size:1.6em}header #libraryInfo #accountInfo{position:relative}header #libraryInfo #accountInfo #accountDropdown{font-size:1em;text-wrap:nowrap;position:absolute;background-color:#002e5d;top:100%;right:-32px;z-index:11;background-color:#233753}header #libraryInfo #accountInfo #accountDropdown .hbll-header-impersonate-btn{color:#ca7ad1cc}header #libraryInfo #accountInfo #accountDropdown .hbll-header-impersonate-btn:hover{color:#ca7ad1}header #libraryInfo #accountInfo #accountDropdown a,header #libraryInfo #accountInfo #accountDropdown button{display:block;width:100%;text-align:left;padding:.4em 1.2em;font-size:1.1em}header #libraryInfo #accountInfo #accountDropdown a:first-child,header #libraryInfo #accountInfo #accountDropdown button:first-child{margin-bottom:.4em;padding-top:.6em;padding-bottom:.6em;border-bottom:1px solid rgba(255,255,255,.3)}header #libraryInfo #accountInfo #accountDropdown a:last-child,header #libraryInfo #accountInfo #accountDropdown button:last-child{margin-top:.4em;border-top:1px solid rgba(255,255,255,.3);padding-top:.6em;padding-bottom:.6em}header #libraryInfo #accountInfo #accountDropdown:before{content:\"\";width:0;height:0;border-style:solid;border-width:0 .6em .6em .6em;border-color:transparent transparent hsl(214,41%,23%) transparent;position:absolute;bottom:100%;right:50%;transform:translate(50%);z-index:inherit}header.hbll-header-desktop{padding:0 2em}header.hbll-header-desktop #libraryInfo #mainLibraryHours{position:relative;margin-right:1em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown{z-index:12;background-color:#fff;border-radius:4px;border:1px solid #d2d2d2;position:absolute;color:#000;padding:2em;top:100%;max-width:400%;right:50%;transform:translate(50%);margin-top:.6em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section{display:grid;grid-template-columns:repeat(3,9em);grid-template-rows:1fr;grid-column-gap:0px;grid-row-gap:0px;margin-bottom:1em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section h2{margin:0}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours-note{grid-column:2/4;font-size:.8em;margin-top:1em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours-note ul{list-style-type:disc;list-style-position:inside;margin-left:.8em;padding:0}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours-note ul li span{left:-8px;position:relative}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-header{font-weight:600;font-size:1.2em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-detail,header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours{margin-top:.2em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-detail .hbll-header-item+.hbll-header-item,header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours .hbll-header-item+.hbll-header-item{margin-top:.3em}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-detail h3,header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours h3{margin:0;font-size:inherit}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-detail{font-weight:600;white-space:nowrap}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-hours{white-space:nowrap}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown a{color:#4070b0;display:flex;align-items:center;float:right}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown a:hover{color:#6892ca}header.hbll-header-desktop #libraryInfo #accountInfo #accountDropdown{right:auto;left:50%;transform:translate(-50%)}button{background-color:transparent;border:none;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;padding:0}\n"] }]
702
554
  }], propDecorators: { header: [{
703
555
  type: ViewChild,
704
556
  args: ['header']
557
+ }], name: [{
558
+ type: Input
559
+ }], mainsitebaseurl: [{
560
+ type: Input
561
+ }], openImpersonationModal: [{
562
+ type: Output
705
563
  }], login: [{
706
564
  type: Output
707
565
  }], logout: [{
708
566
  type: Output
709
- }], endImpersonation: [{
710
- type: Output
711
567
  }], onResize: [{
712
568
  type: HostListener,
713
569
  args: ['window:resize', ['$event']]
714
570
  }] } });
715
571
 
572
+ const typeToIconMap = {
573
+ archive: 'inventory_2',
574
+ article: 'article',
575
+ audio: 'mic',
576
+ audiobook: 'mic',
577
+ 'blu-ray': 'album',
578
+ book: 'book_4',
579
+ 'book-chapter': 'book_6',
580
+ 'book-review': 'reviews',
581
+ broadside: 'image',
582
+ calculator: 'calculate',
583
+ cassette: 'album',
584
+ cd: 'album',
585
+ 'cd-rom': 'album',
586
+ clothing: 'album',
587
+ 'clothing-pattern': 'album',
588
+ collection: 'library_books',
589
+ conference: 'podium',
590
+ 'conference-proceeding': 'podium',
591
+ cuneiform: 'aod_tablet',
592
+ curricula: 'aod_tablet',
593
+ database: 'database',
594
+ dataset: 'dataset',
595
+ diary: 'book_2',
596
+ dissertation: 'school',
597
+ dvd: 'album',
598
+ ebook: 'two_pager',
599
+ ebookreader: 'chrome_reader_mode',
600
+ ejournal: 'two_pager',
601
+ 'electronic-resource': 'description',
602
+ equipment: 'service_toolbox',
603
+ filmstrip: 'theaters',
604
+ 'finding-aid': 'travel_explore',
605
+ 'government-document': 'travel_explore',
606
+ 'government-novel': 'book_4',
607
+ guide: 'travel_explore',
608
+ image: 'image',
609
+ index: 'list',
610
+ journal: 'book_2',
611
+ 'juv-book': 'book_4',
612
+ kit: 'home_repair_service',
613
+ laserdisc: 'album',
614
+ 'legal-document': 'gavel',
615
+ letter: 'mail',
616
+ magazine: 'newsmode',
617
+ manuscript: 'article',
618
+ 'manuscript-archive': 'inventory_2',
619
+ map: 'map',
620
+ media: 'play_circle',
621
+ microfiche: 'theaters',
622
+ microfilm: 'theaters',
623
+ microform: 'theaters',
624
+ model: 'modeling',
625
+ movie: 'movie',
626
+ multimedia: 'play_circle',
627
+ 'music-recording': 'album',
628
+ 'musical-recording': 'play_circle',
629
+ newsletter: 'article',
630
+ newspaper: 'newspaper',
631
+ 'newspaper-article': 'newspaper',
632
+ ostracon: 'description',
633
+ other: 'description',
634
+ painting: 'palette',
635
+ palmleaf: 'eco',
636
+ pamphlet: 'article',
637
+ papyrus: 'article',
638
+ performance: 'music_note',
639
+ periodical: 'article',
640
+ photograph: 'image',
641
+ picture: 'image',
642
+ poem: 'article',
643
+ poster: 'image',
644
+ presentation: 'slideshow',
645
+ 'primary-source': 'inventory_2',
646
+ 'primary-source-document': 'article',
647
+ record: 'album',
648
+ 'reel-to-reel': 'video_camera_back',
649
+ 'reference-entry': 'article',
650
+ report: 'summarize',
651
+ 'research-data-set': 'dataset',
652
+ review: 'summarize',
653
+ score: 'music_note',
654
+ script: 'article',
655
+ serial: 'article',
656
+ slide: 'slideshow',
657
+ software: 'terminal',
658
+ 'sound-recording': 'mic',
659
+ standards: 'article',
660
+ 'statistical-data-set': 'dataset',
661
+ 'streaming-audio': 'play_circle',
662
+ 'streaming-media': 'play_circle',
663
+ 'streaming-video': 'play_circle',
664
+ 'student-project': 'article',
665
+ 'technical-report': 'summarize',
666
+ 'text-resource': 'summarize',
667
+ unknown: 'article',
668
+ vhs: 'theaters',
669
+ video: 'movie',
670
+ website: 'globe',
671
+ };
672
+ /**
673
+ * Converts an item type to an icon type to be used with Google Material Icons
674
+ *
675
+ * Intended to be used with an imported font, such as: `<link
676
+ rel="stylesheet"
677
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,1,0"
678
+ />`
679
+ *
680
+ * Reference: https://fonts.google.com/icons?selected=Material+Symbols+Outlined:inventory_2:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=invent&icon.size=24&icon.color=%235f6368
681
+ */
682
+ class HbllItemTypeIconPipe {
683
+ transform(itemType) {
684
+ const type = itemType.replace(/_/g, '-').toLowerCase();
685
+ return typeToIconMap[type] ?? 'article';
686
+ }
687
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllItemTypeIconPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
688
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: HbllItemTypeIconPipe, isStandalone: true, name: "libByuItemTypeIcon" }); }
689
+ }
690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllItemTypeIconPipe, decorators: [{
691
+ type: Pipe,
692
+ args: [{
693
+ name: 'libByuItemTypeIcon',
694
+ standalone: true,
695
+ }]
696
+ }] });
697
+
698
+ const EMAIL_PATH = 'email';
699
+ const FEEDBACK_PATH = 'feedback';
700
+ const USER_STATUSES = [
701
+ '',
702
+ 'Undergraduate',
703
+ 'Graduate',
704
+ 'Faculty',
705
+ 'Staff',
706
+ 'Library Employee',
707
+ 'Other',
708
+ ];
709
+ const createContactForm = (fb) => fb.nonNullable.group({
710
+ name: [''],
711
+ email: [''],
712
+ message: ['', Validators.required],
713
+ status: [''],
714
+ });
715
+ const submitEmail = (payload, http, apiBaseUrl) => submitContactForm(payload, http, EMAIL_PATH, apiBaseUrl);
716
+ const submitFeedback = (payload, http, apiBaseUrl) => submitContactForm({ ...payload, origin: location.href }, http, FEEDBACK_PATH, apiBaseUrl);
717
+ const submitContactForm = (payload, http, path, apiBaseUrl) => http.post(`${apiBaseUrl}/${path}`, payload);
718
+ const getUserStatusFromRoles = (roles) => {
719
+ let userStatus = '';
720
+ if (roles.includes('undergraduateStudent')) {
721
+ userStatus = 'Undergraduate';
722
+ }
723
+ if (roles.includes('graduateStudent')) {
724
+ userStatus = 'Graduate';
725
+ }
726
+ if (roles.includes('staffEmployee')) {
727
+ userStatus = 'Staff';
728
+ }
729
+ if (roles.includes('facultyEmployee')) {
730
+ userStatus = 'Faculty';
731
+ }
732
+ if (roles.includes('libraryEmployee')) {
733
+ userStatus = 'Library Employee';
734
+ }
735
+ return userStatus;
736
+ };
737
+
738
+ class HbllFooterComponent {
739
+ constructor() {
740
+ this.fb = inject(FormBuilder);
741
+ this.http = inject(HttpClient);
742
+ // TODO: Convert these to signal inputs: https://github.com/angular/angular/issues/57755
743
+ this.mainsitebaseurl = 'https://lib.byu.edu';
744
+ this.libraryapibaseuri = 'https://apps.lib.byu.edu/v1';
745
+ this.date = new Date();
746
+ this.isSubmitted = false;
747
+ this.isLoading = false;
748
+ this.hasConnectionError = false;
749
+ this.isEmailSent = false;
750
+ this.emailForm = createContactForm(this.fb);
751
+ this.userStatuses = USER_STATUSES;
752
+ this.sendEmail = () => {
753
+ this.isSubmitted = true;
754
+ if (this.emailForm.invalid)
755
+ return;
756
+ this.isLoading = true;
757
+ submitEmail(this.emailForm.value, this.http, this.libraryapibaseuri).subscribe({
758
+ error: () => {
759
+ this.hasConnectionError = true;
760
+ this.isLoading = false;
761
+ },
762
+ complete: () => {
763
+ this.hasConnectionError = false;
764
+ this.isLoading = false;
765
+ this.isEmailSent = true;
766
+ this.emailForm.reset();
767
+ },
768
+ });
769
+ };
770
+ this.handleClose = () => {
771
+ if (this.isEmailSent) {
772
+ this.isEmailSent = false;
773
+ this.hasConnectionError = false;
774
+ this.isLoading = false;
775
+ }
776
+ this.isSubmitted = false;
777
+ };
778
+ // Expose this to be called from consuming applications.
779
+ this.openEmailForm = (formValues) => {
780
+ if (formValues) {
781
+ if (formValues.name)
782
+ this.emailForm.controls.name.setValue(formValues.name);
783
+ if (formValues.email)
784
+ this.emailForm.controls.email.setValue(formValues.email);
785
+ if (formValues.message)
786
+ this.emailForm.controls.message.setValue(formValues.message);
787
+ if (formValues.status)
788
+ this.emailForm.controls.status.setValue(formValues.status);
789
+ }
790
+ this.emailDialog.nativeElement.showModal();
791
+ };
792
+ }
793
+ set emailname(name) {
794
+ this.emailForm.controls.name.setValue(name);
795
+ }
796
+ set emailemail(email) {
797
+ this.emailForm.controls.email.setValue(email);
798
+ }
799
+ set emailmessage(message) {
800
+ this.emailForm.controls.message.setValue(message);
801
+ }
802
+ set emailstatus(status) {
803
+ this.emailForm.controls.status.setValue(status);
804
+ }
805
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
806
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HbllFooterComponent, isStandalone: true, selector: "lib-hbll-footer", inputs: { mainsitebaseurl: "mainsitebaseurl", libraryapibaseuri: "libraryapibaseuri", emailname: "emailname", emailemail: "emailemail", emailmessage: "emailmessage", emailstatus: "emailstatus" }, viewQueries: [{ propertyName: "emailDialog", first: true, predicate: ["emailDialog"], descendants: true }], ngImport: i0, template: "<footer>\n <div class=\"hbll-footer-wrapper\">\n <div class=\"hbll-footer-links\">\n <section>\n <h3>Contact</h3>\n <ul>\n <li>\n <address>\n P.O. Box 26800<br />\n Provo, UT 84602-6800\n </address>\n </li>\n <li>\n <span class=\"material-symbols-outlined hbll-footer-icon\">\n phone_in_talk </span\n >&nbsp;\n <a href=\"tel:801-422-6061\"><strong>Call</strong>&nbsp;(801) 422-6061</a>\n </li>\n <li>\n <span class=\"material-symbols-outlined hbll-footer-icon\"> sms </span>&nbsp;\n <a href=\"sms:801-623-6838\"><strong>Text</strong>&nbsp;(801) 623-6838</a>\n </li>\n <li>\n <span class=\"material-symbols-outlined hbll-footer-icon\"> mail </span\n >&nbsp;<button (click)=\"emailDialog.showModal()\" data-testid=\"emailUsBtn\">\n <strong>Email us</strong>\n </button>\n </li>\n </ul>\n </section>\n <section>\n <h3>Resources</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/site-index/\"\n >A-Z Site Index</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/policies/\">Policies</a>\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/location/\"\n >Parking & Directions</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://uac.byu.edu/accessibility-lab\"\n >Accessibility Resources</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Friends in the Library</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://ctl.byu.edu\"\n >Center for Teaching and Learning</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://copyright.byu.edu\"\n >Copyright Licensing Office</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://facultycenter.byu.edu/aboutus\"\n >Faculty Center</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://dining.byu.edu/library-cafe\"\n >Library Cafe</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Connect</h3>\n <ul class=\"hbll-footer-social-list\">\n <li>\n <a target=\"_blank\" href=\"https://www.facebook.com/byuhbll\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/facebook-color-round.svg\"\n alt=\"Facebook\"\n title=\"Facebook\"\n />\n </a>\n </li>\n <li>\n <a target=\"_blank\" href=\"https://www.instagram.com/byu_hbll/\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/instagram-color.svg\"\n alt=\"Instagram\"\n title=\"Instagram\"\n />\n </a>\n </li>\n </ul>\n </section>\n </div>\n <section class=\"hbll-footer-bottom\">\n <div class=\"hbll-footer-title\">\n <a href=\"https://byu.edu\" target=\"_blank\">BRIGHAM YOUNG UNIVERSITY</a>\n </div>\n <br />\n PROVO, UT 84602, USA | <a href=\"sms:801-422-6061\">(801) 422-6061</a>\n <br />&copy;&nbsp;{{ date | date: 'yyyy' }}\n ALL RIGHTS RESERVED\n <div class=\"hbll-footer-privacy\">\n <a href=\"https://privacy.byu.edu/\" target=\"_blank\">Privacy Notice</a>\n |\n <a href=\"https://infosec.byu.edu/cookie-prefs\" target=\"_blank\"\n >Cookie Preferences</a\n >\n </div>\n </section>\n </div>\n</footer>\n\n<dialog\n #emailDialog\n onmousedown=\"event.target === this && this.close()\"\n (close)=\"handleClose()\"\n data-testid=\"dialog\"\n>\n @if (!isEmailSent) {\n <form [formGroup]=\"emailForm\" (submit)=\"sendEmail()\" data-testid=\"form\">\n <div class=\"hbll-footer-email-top\">\n <h1>Email Us</h1>\n <button (click)=\"emailDialog.close()\" type=\"button\" data-testid=\"closeBtn\">\n <span class=\"material-symbols-outlined\"> close </span>\n </button>\n </div>\n <label for=\"hbllFooterEmailName\">Name</label>\n <input\n id=\"hbllFooterEmailName\"\n type=\"text\"\n formControlName=\"name\"\n data-testid=\"emailNameInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Email (please provide if you would like a response)</label\n >\n <input\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"email\"\n data-testid=\"emailEmailInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Question or comment&nbsp;<span class=\"hbll-footer-email-required\">*</span>\n </label>\n <textarea\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"message\"\n data-testid=\"emailMessageInput\"\n ></textarea>\n @if (isSubmitted && emailForm.controls.message.invalid) {\n <div\n class=\"hbll-footer-email-required hbll-footer-email-error\"\n data-testid=\"commentError\"\n >\n <span class=\"material-symbols-outlined hbll-footer-email-error-icon\">\n warning\n </span>\n <strong>Please fill out this field</strong>\n </div>\n }\n <label for=\"hbllFooterEmailStatus\">Role</label>\n <span class=\"hbll-footer-select-wrapper\">\n <select\n id=\"hbllFooterEmailStatus\"\n formControlName=\"status\"\n data-testid=\"emailStatusInput\"\n >\n <option selected value=\"\"></option>\n @for (status of userStatuses | slice: 1; track status) {\n <option [value]=\"status\">{{ status }}</option>\n }\n </select>\n </span>\n <div class=\"hbll-footer-email-bottom-bar\">\n @if (hasConnectionError) {\n <p class=\"hbll-footer-connection-error\" data-testid=\"connectionError\">\n <i>There was an error sending your email. Please try again later.</i>\n </p>\n }\n <button\n class=\"pill-btn--components\"\n type=\"submit\"\n [disabled]=\"isLoading\"\n data-testid=\"sendEmailBtn\"\n >\n Send\n </button>\n </div>\n </form>\n } @else {\n <div class=\"hbll-footer-email-success\" data-testid=\"successMessage\">\n <p>\n Your email was sent successfully. If you supplied your email address, we will get\n back to you shortly.<br />Thank you!\n </p>\n <button class=\"pill-btn--components\" (click)=\"emailDialog.close()\" type=\"button\">\n Close\n </button>\n </div>\n }\n</dialog>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,200..400;1,200..400&display=swap\";*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}dialog form input,dialog form textarea,dialog form select{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}dialog form input:focus,dialog form textarea:focus,dialog form select:focus{outline-color:#3a6093}dialog form .hbll-footer-select-wrapper{position:relative}dialog form .hbll-footer-select-wrapper select{cursor:pointer;padding-right:2em}dialog form .hbll-footer-select-wrapper:after{font-family:Material Symbols Outlined;content:\"arrow_drop_down\";pointer-events:none;top:0;font-size:1.5em;right:.2em;height:100%;position:absolute;display:flex;align-items:center;opacity:70%}.pill-btn--components{background-color:#4070b0;font-size:1em;transition:all .15s;color:#fff;cursor:pointer;font-weight:600;text-align:center}.pill-btn--components:disabled{color:#707070;background-color:#e6e6e6;pointer-events:none}.pill-btn--components:hover{background-color:#6892ca;color:#fff}.destructive.pill-btn--components{background-color:#b04940}.destructive.pill-btn--components:hover{background-color:#c7574d}.pill-btn--components{border-radius:100em;padding:.4em 1.3em}button{border:none;background-color:transparent;font-size:1em}button :hover{cursor:pointer}footer{line-height:1.2em;background-color:#e6e6e6}footer .hbll-footer-wrapper{display:flex;flex-direction:column;align-items:center}footer .hbll-footer-wrapper .hbll-footer-links{max-width:90em;display:flex;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;padding-bottom:2em;white-space:nowrap}footer .hbll-footer-wrapper .hbll-footer-links strong{font-weight:600}footer .hbll-footer-wrapper .hbll-footer-links address{font-style:normal}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-icon{font-size:1em;margin-right:.2em;color:#002e5d}footer .hbll-footer-wrapper .hbll-footer-links section{padding:2em 1.8em 0;background-color:#e6e6e6;flex:1}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list{display:flex}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list .hbll-footer-social{height:1.5em;margin-right:1em}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list li{margin-bottom:0}footer .hbll-footer-wrapper h3{font-weight:600;color:#002e5d;font-size:1.4em;margin-bottom:1em;margin-top:0}footer .hbll-footer-wrapper ul{list-style:none;margin:.4em 0 0;padding:0}footer .hbll-footer-wrapper ul li{display:flex;align-items:center}footer .hbll-footer-wrapper ul li a,footer .hbll-footer-wrapper ul li button{display:inline-flex;align-items:center;color:#305f9c}footer .hbll-footer-wrapper ul li a:hover,footer .hbll-footer-wrapper ul li button:hover{color:#6892ca}footer .hbll-footer-wrapper ul li:not(:last-of-type){margin-bottom:.6em}footer .hbll-footer-wrapper .hbll-footer-bottom{text-align:center;background-color:#002e5d;color:#fff;font-family:Public Sans,sans-serif;font-optical-sizing:auto;font-weight:200;font-style:normal;font-size:.9em;line-height:1.6em;padding:1.8em;width:100%}footer .hbll-footer-wrapper .hbll-footer-bottom a{color:#fff}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-title{font-size:2em;font-weight:400;line-height:1em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy{margin-top:.4em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy a{text-decoration:underline}@media screen and (max-width: 40em){.hbll-footer-links{flex-direction:column;justify-content:flex-start;width:100%}}dialog{border:solid 1px #888;border-radius:4px;width:90%;max-width:50em;padding:0;transition:all 5s ease-in-out}dialog .hbll-footer-email-success,dialog form{padding:1.6em 2em}dialog .hbll-footer-email-success p,dialog form p{text-align:center;line-height:1.4em}dialog .hbll-footer-email-success{display:flex;justify-content:center;align-items:center;flex-direction:column}dialog .hbll-footer-email-success button{margin-top:1em}dialog form{display:flex;flex-direction:column;position:relative}dialog form textarea{min-height:100px;resize:vertical}dialog form input,dialog form textarea,dialog form .hbll-footer-select-wrapper{margin-bottom:.6em}dialog form .hbll-footer-email-bottom-bar{display:flex;align-items:center;justify-content:flex-end}dialog form .hbll-footer-email-bottom-bar .hbll-footer-connection-error{text-align:right;flex-grow:1;margin:0 1em 0 0}dialog form label{margin-bottom:.4em;margin-top:.4em}dialog form .hbll-footer-email-error{display:flex;justify-content:center;align-items:center;margin-right:auto;margin-bottom:.6em;font-size:.8em}dialog form .hbll-footer-email-error .hbll-footer-email-error-icon{font-size:1.2em;margin-right:.2em}dialog form .hbll-footer-email-top{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;margin-bottom:1em}dialog form .hbll-footer-email-top h1{font-size:1.4em;margin:0}dialog form .hbll-footer-email-required-message{float:right}dialog form .hbll-footer-select-wrapper{margin-right:auto}dialog form .hbll-footer-email-required{color:#d03a3a}dialog form button:not([type=submit]){color:#333}dialog form button:not([type=submit]):hover{color:#696969}dialog form button[type=submit]{margin-left:auto}dialog::backdrop{background-color:#000;opacity:.75}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
807
+ }
808
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllFooterComponent, decorators: [{
809
+ type: Component,
810
+ args: [{ selector: 'lib-hbll-footer', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "<footer>\n <div class=\"hbll-footer-wrapper\">\n <div class=\"hbll-footer-links\">\n <section>\n <h3>Contact</h3>\n <ul>\n <li>\n <address>\n P.O. Box 26800<br />\n Provo, UT 84602-6800\n </address>\n </li>\n <li>\n <span class=\"material-symbols-outlined hbll-footer-icon\">\n phone_in_talk </span\n >&nbsp;\n <a href=\"tel:801-422-6061\"><strong>Call</strong>&nbsp;(801) 422-6061</a>\n </li>\n <li>\n <span class=\"material-symbols-outlined hbll-footer-icon\"> sms </span>&nbsp;\n <a href=\"sms:801-623-6838\"><strong>Text</strong>&nbsp;(801) 623-6838</a>\n </li>\n <li>\n <span class=\"material-symbols-outlined hbll-footer-icon\"> mail </span\n >&nbsp;<button (click)=\"emailDialog.showModal()\" data-testid=\"emailUsBtn\">\n <strong>Email us</strong>\n </button>\n </li>\n </ul>\n </section>\n <section>\n <h3>Resources</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/site-index/\"\n >A-Z Site Index</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/policies/\">Policies</a>\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/location/\"\n >Parking & Directions</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://uac.byu.edu/accessibility-lab\"\n >Accessibility Resources</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Friends in the Library</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://ctl.byu.edu\"\n >Center for Teaching and Learning</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://copyright.byu.edu\"\n >Copyright Licensing Office</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://facultycenter.byu.edu/aboutus\"\n >Faculty Center</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://dining.byu.edu/library-cafe\"\n >Library Cafe</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Connect</h3>\n <ul class=\"hbll-footer-social-list\">\n <li>\n <a target=\"_blank\" href=\"https://www.facebook.com/byuhbll\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/facebook-color-round.svg\"\n alt=\"Facebook\"\n title=\"Facebook\"\n />\n </a>\n </li>\n <li>\n <a target=\"_blank\" href=\"https://www.instagram.com/byu_hbll/\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/instagram-color.svg\"\n alt=\"Instagram\"\n title=\"Instagram\"\n />\n </a>\n </li>\n </ul>\n </section>\n </div>\n <section class=\"hbll-footer-bottom\">\n <div class=\"hbll-footer-title\">\n <a href=\"https://byu.edu\" target=\"_blank\">BRIGHAM YOUNG UNIVERSITY</a>\n </div>\n <br />\n PROVO, UT 84602, USA | <a href=\"sms:801-422-6061\">(801) 422-6061</a>\n <br />&copy;&nbsp;{{ date | date: 'yyyy' }}\n ALL RIGHTS RESERVED\n <div class=\"hbll-footer-privacy\">\n <a href=\"https://privacy.byu.edu/\" target=\"_blank\">Privacy Notice</a>\n |\n <a href=\"https://infosec.byu.edu/cookie-prefs\" target=\"_blank\"\n >Cookie Preferences</a\n >\n </div>\n </section>\n </div>\n</footer>\n\n<dialog\n #emailDialog\n onmousedown=\"event.target === this && this.close()\"\n (close)=\"handleClose()\"\n data-testid=\"dialog\"\n>\n @if (!isEmailSent) {\n <form [formGroup]=\"emailForm\" (submit)=\"sendEmail()\" data-testid=\"form\">\n <div class=\"hbll-footer-email-top\">\n <h1>Email Us</h1>\n <button (click)=\"emailDialog.close()\" type=\"button\" data-testid=\"closeBtn\">\n <span class=\"material-symbols-outlined\"> close </span>\n </button>\n </div>\n <label for=\"hbllFooterEmailName\">Name</label>\n <input\n id=\"hbllFooterEmailName\"\n type=\"text\"\n formControlName=\"name\"\n data-testid=\"emailNameInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Email (please provide if you would like a response)</label\n >\n <input\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"email\"\n data-testid=\"emailEmailInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Question or comment&nbsp;<span class=\"hbll-footer-email-required\">*</span>\n </label>\n <textarea\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"message\"\n data-testid=\"emailMessageInput\"\n ></textarea>\n @if (isSubmitted && emailForm.controls.message.invalid) {\n <div\n class=\"hbll-footer-email-required hbll-footer-email-error\"\n data-testid=\"commentError\"\n >\n <span class=\"material-symbols-outlined hbll-footer-email-error-icon\">\n warning\n </span>\n <strong>Please fill out this field</strong>\n </div>\n }\n <label for=\"hbllFooterEmailStatus\">Role</label>\n <span class=\"hbll-footer-select-wrapper\">\n <select\n id=\"hbllFooterEmailStatus\"\n formControlName=\"status\"\n data-testid=\"emailStatusInput\"\n >\n <option selected value=\"\"></option>\n @for (status of userStatuses | slice: 1; track status) {\n <option [value]=\"status\">{{ status }}</option>\n }\n </select>\n </span>\n <div class=\"hbll-footer-email-bottom-bar\">\n @if (hasConnectionError) {\n <p class=\"hbll-footer-connection-error\" data-testid=\"connectionError\">\n <i>There was an error sending your email. Please try again later.</i>\n </p>\n }\n <button\n class=\"pill-btn--components\"\n type=\"submit\"\n [disabled]=\"isLoading\"\n data-testid=\"sendEmailBtn\"\n >\n Send\n </button>\n </div>\n </form>\n } @else {\n <div class=\"hbll-footer-email-success\" data-testid=\"successMessage\">\n <p>\n Your email was sent successfully. If you supplied your email address, we will get\n back to you shortly.<br />Thank you!\n </p>\n <button class=\"pill-btn--components\" (click)=\"emailDialog.close()\" type=\"button\">\n Close\n </button>\n </div>\n }\n</dialog>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,200..400;1,200..400&display=swap\";*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}dialog form input,dialog form textarea,dialog form select{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}dialog form input:focus,dialog form textarea:focus,dialog form select:focus{outline-color:#3a6093}dialog form .hbll-footer-select-wrapper{position:relative}dialog form .hbll-footer-select-wrapper select{cursor:pointer;padding-right:2em}dialog form .hbll-footer-select-wrapper:after{font-family:Material Symbols Outlined;content:\"arrow_drop_down\";pointer-events:none;top:0;font-size:1.5em;right:.2em;height:100%;position:absolute;display:flex;align-items:center;opacity:70%}.pill-btn--components{background-color:#4070b0;font-size:1em;transition:all .15s;color:#fff;cursor:pointer;font-weight:600;text-align:center}.pill-btn--components:disabled{color:#707070;background-color:#e6e6e6;pointer-events:none}.pill-btn--components:hover{background-color:#6892ca;color:#fff}.destructive.pill-btn--components{background-color:#b04940}.destructive.pill-btn--components:hover{background-color:#c7574d}.pill-btn--components{border-radius:100em;padding:.4em 1.3em}button{border:none;background-color:transparent;font-size:1em}button :hover{cursor:pointer}footer{line-height:1.2em;background-color:#e6e6e6}footer .hbll-footer-wrapper{display:flex;flex-direction:column;align-items:center}footer .hbll-footer-wrapper .hbll-footer-links{max-width:90em;display:flex;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;padding-bottom:2em;white-space:nowrap}footer .hbll-footer-wrapper .hbll-footer-links strong{font-weight:600}footer .hbll-footer-wrapper .hbll-footer-links address{font-style:normal}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-icon{font-size:1em;margin-right:.2em;color:#002e5d}footer .hbll-footer-wrapper .hbll-footer-links section{padding:2em 1.8em 0;background-color:#e6e6e6;flex:1}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list{display:flex}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list .hbll-footer-social{height:1.5em;margin-right:1em}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list li{margin-bottom:0}footer .hbll-footer-wrapper h3{font-weight:600;color:#002e5d;font-size:1.4em;margin-bottom:1em;margin-top:0}footer .hbll-footer-wrapper ul{list-style:none;margin:.4em 0 0;padding:0}footer .hbll-footer-wrapper ul li{display:flex;align-items:center}footer .hbll-footer-wrapper ul li a,footer .hbll-footer-wrapper ul li button{display:inline-flex;align-items:center;color:#305f9c}footer .hbll-footer-wrapper ul li a:hover,footer .hbll-footer-wrapper ul li button:hover{color:#6892ca}footer .hbll-footer-wrapper ul li:not(:last-of-type){margin-bottom:.6em}footer .hbll-footer-wrapper .hbll-footer-bottom{text-align:center;background-color:#002e5d;color:#fff;font-family:Public Sans,sans-serif;font-optical-sizing:auto;font-weight:200;font-style:normal;font-size:.9em;line-height:1.6em;padding:1.8em;width:100%}footer .hbll-footer-wrapper .hbll-footer-bottom a{color:#fff}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-title{font-size:2em;font-weight:400;line-height:1em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy{margin-top:.4em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy a{text-decoration:underline}@media screen and (max-width: 40em){.hbll-footer-links{flex-direction:column;justify-content:flex-start;width:100%}}dialog{border:solid 1px #888;border-radius:4px;width:90%;max-width:50em;padding:0;transition:all 5s ease-in-out}dialog .hbll-footer-email-success,dialog form{padding:1.6em 2em}dialog .hbll-footer-email-success p,dialog form p{text-align:center;line-height:1.4em}dialog .hbll-footer-email-success{display:flex;justify-content:center;align-items:center;flex-direction:column}dialog .hbll-footer-email-success button{margin-top:1em}dialog form{display:flex;flex-direction:column;position:relative}dialog form textarea{min-height:100px;resize:vertical}dialog form input,dialog form textarea,dialog form .hbll-footer-select-wrapper{margin-bottom:.6em}dialog form .hbll-footer-email-bottom-bar{display:flex;align-items:center;justify-content:flex-end}dialog form .hbll-footer-email-bottom-bar .hbll-footer-connection-error{text-align:right;flex-grow:1;margin:0 1em 0 0}dialog form label{margin-bottom:.4em;margin-top:.4em}dialog form .hbll-footer-email-error{display:flex;justify-content:center;align-items:center;margin-right:auto;margin-bottom:.6em;font-size:.8em}dialog form .hbll-footer-email-error .hbll-footer-email-error-icon{font-size:1.2em;margin-right:.2em}dialog form .hbll-footer-email-top{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;margin-bottom:1em}dialog form .hbll-footer-email-top h1{font-size:1.4em;margin:0}dialog form .hbll-footer-email-required-message{float:right}dialog form .hbll-footer-select-wrapper{margin-right:auto}dialog form .hbll-footer-email-required{color:#d03a3a}dialog form button:not([type=submit]){color:#333}dialog form button:not([type=submit]):hover{color:#696969}dialog form button[type=submit]{margin-left:auto}dialog::backdrop{background-color:#000;opacity:.75}\n"] }]
811
+ }], propDecorators: { emailDialog: [{
812
+ type: ViewChild,
813
+ args: ['emailDialog']
814
+ }], mainsitebaseurl: [{
815
+ type: Input
816
+ }], libraryapibaseuri: [{
817
+ type: Input
818
+ }], emailname: [{
819
+ type: Input
820
+ }], emailemail: [{
821
+ type: Input
822
+ }], emailmessage: [{
823
+ type: Input
824
+ }], emailstatus: [{
825
+ type: Input
826
+ }] } });
827
+
716
828
  var AccessStatus;
717
829
  (function (AccessStatus) {
718
830
  AccessStatus["OK"] = "ok";
@@ -750,11 +862,11 @@ class CopyTooltipComponent {
750
862
  };
751
863
  }
752
864
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CopyTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
753
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: CopyTooltipComponent, isStandalone: true, selector: "lib-copy-tooltip", inputs: { position: "position", copyText: "copyText" }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: MatTooltip, descendants: true }], ngImport: i0, template: "<div\n (click)=\"copyToClipboard(copyText)\"\n [matTooltip]=\"clipboardCopyMessage\"\n [matTooltipPosition]=\"position\"\n (mouseleave)=\"handleMouseLeave()\"\n data-testid=\"tooltip\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
865
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: CopyTooltipComponent, isStandalone: true, selector: "lib-copy-tooltip", inputs: { position: "position", copyText: "copyText" }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: MatTooltip, descendants: true }], ngImport: i0, template: "<div\n (click)=\"copyToClipboard(copyText)\"\n [matTooltip]=\"clipboardCopyMessage\"\n [matTooltipPosition]=\"position\"\n (mouseleave)=\"handleMouseLeave()\"\n data-testid=\"tooltip\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
754
866
  }
755
867
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CopyTooltipComponent, decorators: [{
756
868
  type: Component,
757
- args: [{ selector: 'lib-copy-tooltip', standalone: true, imports: [CommonModule, MatTooltipModule], template: "<div\n (click)=\"copyToClipboard(copyText)\"\n [matTooltip]=\"clipboardCopyMessage\"\n [matTooltipPosition]=\"position\"\n (mouseleave)=\"handleMouseLeave()\"\n data-testid=\"tooltip\"\n>\n <ng-content></ng-content>\n</div>\n" }]
869
+ args: [{ selector: 'lib-copy-tooltip', standalone: true, imports: [CommonModule, MatTooltipModule], template: "<div\n (click)=\"copyToClipboard(copyText)\"\n [matTooltip]=\"clipboardCopyMessage\"\n [matTooltipPosition]=\"position\"\n (mouseleave)=\"handleMouseLeave()\"\n data-testid=\"tooltip\"\n>\n <ng-content></ng-content>\n</div>\n" }]
758
870
  }], propDecorators: { position: [{
759
871
  type: Input
760
872
  }], copyText: [{
@@ -766,21 +878,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
766
878
 
767
879
  const USER_PHOTO_URL = 'https://y.byu.edu/ry/ae/prod/person/cgi/personPhoto.cgi?n=';
768
880
  const PERSON_SUMMARY_PATH = '/summary/:libraryId/';
769
- const PERSON_BASE_URI = 'https://apps.lib.byu.edu/person/v2/';
770
881
  const INDEPENDENT_STUDY_RESPONSE_PATH = '/independent-study/:libraryId/';
771
882
  const PATRON_ACCOUNTS_PATH = '/patron/accounts';
772
- const LIBRARY_API_BASE_URI = 'https://apps.lib.byu.edu/v1';
773
- class HbllImpersonationBannerComponent {
883
+ class ImpersonationBannerComponent {
774
884
  constructor() {
775
885
  this.http = inject(HttpClient);
776
886
  this.accessTokenPayload = input.required();
887
+ this.personBaseUri = input('https://apps.lib.byu.edu/person/v2/');
888
+ this.libraryApiBaseUri = input('https://apps.lib.byu.edu/v1');
777
889
  this.endImpersonation = new EventEmitter();
778
890
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
779
891
  this.parsedToken = computed(() => this.accessTokenPayload().token ? jwtDecode(this.accessTokenPayload().token) : {});
780
892
  this.isImpersonating = computed(() => !!this.parsedToken()['impersonator']);
781
893
  this.libraryId = computed(() => this.parsedToken()['library_id']);
782
- this.user = toSignal(combineLatest([toObservable(this.libraryId), toObservable(this.isImpersonating)]).pipe(switchMap(([libraryId, isImpersonating]) => libraryId && isImpersonating
783
- ? this.http.get(urlcat(PERSON_BASE_URI, PERSON_SUMMARY_PATH, {
894
+ this.user = toSignal(combineLatest([toObservable(this.libraryId), toObservable(this.isImpersonating)]).pipe(switchMap$1(([libraryId, isImpersonating]) => libraryId && isImpersonating
895
+ ? this.http.get(urlcat(this.personBaseUri(), PERSON_SUMMARY_PATH, {
784
896
  libraryId,
785
897
  }), {
786
898
  headers: {
@@ -826,9 +938,9 @@ class HbllImpersonationBannerComponent {
826
938
  }
827
939
  return description ?? null;
828
940
  });
829
- this.independentStudyStatus = toSignal(combineLatest([toObservable(this.libraryId), toObservable(this.isImpersonating)]).pipe(switchMap(([libraryId, isImpersonating]) => libraryId && isImpersonating
941
+ this.independentStudyStatus = toSignal(combineLatest([toObservable(this.libraryId), toObservable(this.isImpersonating)]).pipe(switchMap$1(([libraryId, isImpersonating]) => libraryId && isImpersonating
830
942
  ? this.http
831
- .get(urlcat(PERSON_BASE_URI, INDEPENDENT_STUDY_RESPONSE_PATH, {
943
+ .get(urlcat(this.personBaseUri(), INDEPENDENT_STUDY_RESPONSE_PATH, {
832
944
  libraryId,
833
945
  }), {
834
946
  headers: {
@@ -837,12 +949,12 @@ class HbllImpersonationBannerComponent {
837
949
  })
838
950
  .pipe(map$1((response) => response?.is_enrolled))
839
951
  : of(null))));
840
- this.accountStatuses = toSignal(toObservable(this.isImpersonating).pipe(switchMap((isImpersonating) => {
952
+ this.accountStatuses = toSignal(toObservable(this.isImpersonating).pipe(switchMap$1((isImpersonating) => {
841
953
  if (!isImpersonating) {
842
954
  return of(null);
843
955
  }
844
956
  return this.http
845
- .get(urlcat(LIBRARY_API_BASE_URI, PATRON_ACCOUNTS_PATH), {
957
+ .get(urlcat(this.libraryApiBaseUri(), PATRON_ACCOUNTS_PATH), {
846
958
  headers: {
847
959
  Authorization: `Bearer ${this.accessTokenPayload().token}`,
848
960
  },
@@ -869,18 +981,229 @@ class HbllImpersonationBannerComponent {
869
981
  return accountStatuses;
870
982
  }));
871
983
  })));
872
- this.STATUSES = AccessStatus;
873
984
  }
874
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllImpersonationBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
875
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HbllImpersonationBannerComponent, isStandalone: true, selector: "lib-hbll-impersonation-banner", inputs: { accessTokenPayload: { classPropertyName: "accessTokenPayload", publicName: "accessTokenPayload", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { endImpersonation: "endImpersonation" }, ngImport: i0, template: "@if (isImpersonating()) {\n <div class=\"banner-padding\"></div>\n <div class=\"top-banner\">\n <div class=\"banner-group profile-name-container\">\n <div class=\"profile-avatar\">\n <div class=\"profile-image\">\n <img\n [src]=\"userPhotoUrl()\"\n [alt]=\"userFullName()\"\n alt=\"user photo\"\n onerror=\"this.remove()\"\n />\n </div>\n <span class=\"material-symbols-outlined profile-icon\"> person </span>\n </div>\n <div class=\"profile-name-group\">\n <span class=\"soft\">Impersonating</span>\n <div class=\"profile-name-wrapper\">\n <span class=\"profile-name\">{{ userFullName() }}</span>\n @if (accountStatuses()) {\n <div class=\"application-status-bar\">\n @if (accountStatuses()!.ok.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-ok application-status\">\n <span class=\"material-symbols-outlined icon-checkmark\">\n check\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.ok.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n OK Applications\n <hr />\n @for (\n application of accountStatuses()!.ok;\n track application.label\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-checkmark\"\n >\n check\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (accountStatuses()!.blocked.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-blocked application-status\">\n <span class=\"material-symbols-outlined icon-warning\">\n warning\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.blocked.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n Blocked Applications\n <hr />\n @for (\n application of accountStatuses()!.blocked;\n track application.code\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-warning\"\n >\n warning\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (accountStatuses()!.none.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-none application-status\">\n <span class=\"material-symbols-outlined icon-lock\">\n lock\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.none.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n No Account\n <hr />\n @for (\n application of accountStatuses()!.none;\n track application.label\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-lock\"\n >\n lock\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n </div>\n <div class=\"profile-details-container banner-group\">\n @for (detail of userInfoTabs() | keyvalue; track detail.key) {\n <div class=\"profile-detail\">\n <span class=\"soft label\">{{ detail.key }}</span>\n <lib-copy-tooltip [copyText]=\"detail.value\">\n <div class=\"profile-detail-tag white-tag clickable\">\n {{ detail.value || 'Unknown' }}\n </div>\n </lib-copy-tooltip>\n </div>\n }\n </div>\n <div class=\"profile-details-container banner-group\">\n <div class=\"profile-detail\">\n <span class=\"soft label\">Status</span>\n <div class=\"multiple-detail-tags\">\n <div\n class=\"profile-detail-tag color-tag\"\n title=\"{{ employeeStatusDescription() }}\"\n >\n {{ user()?.primary_position_type_display ?? 'Non-employee' }}\n @if (activityStatus()) {\n <span\n class=\"profile-status-circle\"\n [class.status-active]=\"activityStatus() === 'active'\"\n [class.status-inactive]=\"activityStatus() === 'inactive'\"\n [class.status-retired]=\"activityStatus() === 'retired'\"\n ></span>\n }\n </div>\n <div class=\"profile-detail-tag color-tag\">\n {{ (user()?.undergrad_graduate_status | titlecase) || 'Non-student' }}\n </div>\n <div class=\"profile-detail-tag color-tag\">\n {{ independentStudyStatus() ? 'Independent Study' : 'No Ind. Study' }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"spacer\"></div>\n <button class=\"end-impersonation-button shadow\" (click)=\"this.endImpersonation.emit()\">\n <span class=\"material-symbols-outlined icon\"> close </span>\n <span class=\"exit-text\">Exit</span>\n </button>\n </div>\n @if (isRestricted()) {\n <div class=\"restricted-bar-padding\"></div>\n <div class=\"restricted-bar\">\n <span class=\"title\">restricted person</span>\n <span class=\"text\">\n If anyone asks about this person, you are instructed to respond,\n <span class=\"emphasize\">\"We have no records for this person.\"</span>\n </span>\n </div>\n }\n <div class=\"right-border\"></div>\n <div class=\"bottom-border\"></div>\n <div class=\"left-border\"></div>\n}\n", styles: [".top-banner,.bottom-border,.right-border,.left-border{background-color:#9070bf;border:none;position:fixed;box-sizing:border-box;z-index:6000;font-size:1em}lib-copy-tooltip{z-index:10000;display:block}.top-banner,.bottom-border{left:0;right:0}.right-border,.left-border{width:7px;top:0;bottom:0}.top-banner{top:0;height:5em;display:flex;justify-content:space-between;width:100%;align-items:center;padding:2.5em;color:#f3f3f3}.bottom-border{bottom:0;height:7px}.right-border{right:0}.left-border{left:0}.banner-padding{padding-top:5em}.banner-group{display:flex;margin-right:1.6em}.profile-details-container{height:2.4em;display:flex;min-width:0}.profile-details-container .profile-detail{display:flex;flex-flow:column nowrap;align-items:flex-start;justify-content:space-between;margin-right:.6em;font-weight:600;min-width:0}.profile-details-container .profile-detail .label{font-size:.75em;white-space:nowrap;min-width:0;max-width:100%}.profile-details-container .profile-detail .profile-detail-tag{font-size:.8em;padding:.2em .4em;border-radius:5px;display:inline-flex;align-items:center;gap:.5em;white-space:nowrap;min-width:0;max-width:100%}.profile-details-container .profile-detail .profile-detail-tag:hover{min-width:max-content;z-index:1000}.profile-details-container .profile-detail .profile-detail-tag:last-of-type{margin-right:0}.profile-details-container .profile-detail .multiple-detail-tags{display:flex;flex-flow:row nowrap;min-width:0;max-width:100%}.profile-details-container .profile-detail .multiple-detail-tags .profile-detail-tag{margin-right:.6em}.profile-name-container{display:flex;align-items:center}.profile-name-container .profile-avatar{border-radius:50%;background-color:#fff;padding:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;color:#a9a9a9;align-self:center;font-size:15px;overflow:hidden;height:3.5em;width:3.5em;margin-right:.6em;flex-shrink:0}.profile-name-container .profile-avatar .profile-icon{margin:-.25em}.profile-name-container .profile-avatar .profile-image{height:100%;width:100%;object-fit:cover;font-size:1em}.profile-name-container .profile-avatar .profile-image+.profile-icon{display:none;font-size:3.5em}.profile-name-container .profile-avatar .profile-image:empty{display:none}.profile-name-container .profile-avatar .profile-image:empty+.profile-icon{display:block}.profile-name-container .profile-name-group{font-size:1em;font-weight:600}.profile-name-container .profile-name-group .profile-name-wrapper{display:flex;align-items:center;white-space:nowrap}.profile-name-container .profile-name-group .profile-name-wrapper .profile-name{font-size:1.6em;line-height:1em}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar{margin-left:1em;opacity:1;display:flex;align-items:center}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator{position:relative;margin-right:.8em}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator .application-count{margin-left:.5em;vertical-align:middle}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator:last-child{margin-right:0}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status:hover+.status-tooltip-container{opacity:1}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-ok{color:#87ed8f}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-ok .icon-checkmark{background-color:#87ed8f;color:#9070bf;border-radius:50%;padding:.2em;font-size:1em;vertical-align:middle}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked{color:#e9ce34}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked .icon-warning{font-size:1.7em;vertical-align:middle}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked .application-count{margin-left:.1em}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-none{color:#f4785b}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-none .icon-lock{background-color:#f4785b;color:#9070bf;border-radius:50%;padding:.2em;font-size:1em;vertical-align:middle}.profile-status-circle{width:.8em;height:.8em;border-radius:50%;flex-shrink:0}.status-active{background-color:#00e732}.status-retired{background-color:#ffba38}.status-inactive{border:2px white solid}.soft{opacity:.7}.end-impersonation-button{height:2.4em;cursor:pointer;border-radius:2em;font-size:1em;padding:0 1.4em 0 1em;border:none;outline:none;flex-shrink:0;background-color:#fff;color:#c63d3d;font-weight:600;transition:box-shadow .2s;display:flex;align-items:center}.end-impersonation-button:hover{box-shadow:#0003 0 8px 10px}.end-impersonation-button .icon{font-size:1.2em;margin-right:.2em}.spacer{flex-grow:1}.shadow{box-shadow:#0003 0 2px 10px}.white-tag{cursor:pointer;background-color:#ffffff26}.white-tag:hover{background-color:#614979}.color-tag:nth-of-type(1){background-color:#26acffcc}.color-tag:nth-of-type(2){background-color:#9394ffcc}.color-tag:nth-of-type(3){background-color:#a28ceecc}.status-tooltip-container{color:#fff;background-color:#2e2e2e;opacity:0;transition:all .1s ease-in-out;position:absolute;top:calc(100% + 1em);left:50%;transform:translate(-50%);border-radius:.4em}.status-tooltip-container:before{content:\"\";position:absolute;top:-.5em;left:50%;transform:translate(-50%);border-style:solid;border-width:0 1em 1em 1em;border-color:transparent transparent rgb(46,46,46) transparent}.status-tooltip{text-align:left;padding:.8em;line-height:2em;font-weight:700}.status-tooltip .application-status{display:flex;align-items:center;font-weight:400}.status-tooltip .application-status [class*=icon-]{font-size:1.2em;margin-right:.2em}.status-tooltip .application-status .icon-checkmark{color:#87ed8f}.status-tooltip .application-status .icon-warning{color:#e9ce34}.status-tooltip .application-status .icon-lock{color:#f4785b}.restricted-bar-padding{padding-top:40px}.restricted-bar{position:fixed;top:5em;left:7px;right:7px;height:40px;display:flex;align-items:center;color:#f3f3f3;background:repeating-linear-gradient(315deg,#c23737,#c23737 35px,#c25050 35px 70px);z-index:6000;font-size:1.6em}.restricted-bar .title{text-transform:uppercase;font-weight:600;margin:0 2em}.restricted-bar .text{margin:0 1em}.restricted-bar .text .emphasize{font-weight:600;font-style:italic}@media screen and (max-width: 1100px){.profile-name-group .soft{font-size:.7em}.profile-name-group .profile-name{font-size:1.3em}.end-impersonation-button{border-radius:50%;height:auto;padding:.6em}.end-impersonation-button .icon{margin:0}.end-impersonation-button .exit-text{display:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }, { kind: "component", type: CopyTooltipComponent, selector: "lib-copy-tooltip", inputs: ["position", "copyText"] }] }); }
985
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImpersonationBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
986
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ImpersonationBannerComponent, isStandalone: true, selector: "lib-impersonation-banner", inputs: { accessTokenPayload: { classPropertyName: "accessTokenPayload", publicName: "accessTokenPayload", isSignal: true, isRequired: true, transformFunction: null }, personBaseUri: { classPropertyName: "personBaseUri", publicName: "personBaseUri", isSignal: true, isRequired: false, transformFunction: null }, libraryApiBaseUri: { classPropertyName: "libraryApiBaseUri", publicName: "libraryApiBaseUri", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { endImpersonation: "endImpersonation" }, ngImport: i0, template: "@if (isImpersonating()) {\n <div class=\"banner-padding\"></div>\n <div class=\"top-banner\" data-testid=\"banner\">\n <div class=\"banner-group profile-name-container\">\n <div class=\"profile-avatar\">\n <div class=\"profile-image\">\n <img\n [src]=\"userPhotoUrl()\"\n [alt]=\"userFullName()\"\n alt=\"user photo\"\n onerror=\"this.remove()\"\n />\n </div>\n <span class=\"material-symbols-outlined profile-icon\"> person </span>\n </div>\n <div class=\"profile-name-group\">\n <span class=\"soft\">Impersonating</span>\n <div class=\"profile-name-wrapper\">\n <span class=\"profile-name\">{{ userFullName() }}</span>\n @if (accountStatuses()) {\n <div class=\"application-status-bar\">\n @if (accountStatuses()!.ok.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-ok application-status\">\n <span class=\"material-symbols-outlined icon-checkmark\">\n check\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.ok.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n OK Applications\n <hr />\n @for (\n application of accountStatuses()!.ok;\n track application.label\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-checkmark\"\n >\n check\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (accountStatuses()!.blocked.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-blocked application-status\">\n <span class=\"material-symbols-outlined icon-warning\">\n warning\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.blocked.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n Blocked Applications\n <hr />\n @for (\n application of accountStatuses()!.blocked;\n track application.code\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-warning\"\n >\n warning\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (accountStatuses()!.none.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-none application-status\">\n <span class=\"material-symbols-outlined icon-lock\">\n lock\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.none.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n No Account\n <hr />\n @for (\n application of accountStatuses()!.none;\n track application.label\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-lock\"\n >\n lock\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n </div>\n <div class=\"profile-details-container banner-group\">\n @for (detail of userInfoTabs() | keyvalue; track detail.key) {\n <div class=\"profile-detail\">\n <span class=\"soft label\">{{ detail.key }}</span>\n <lib-copy-tooltip [copyText]=\"detail.value\">\n <div class=\"profile-detail-tag white-tag clickable\">\n {{ detail.value || 'Unknown' }}\n </div>\n </lib-copy-tooltip>\n </div>\n }\n </div>\n <div class=\"profile-details-container banner-group\">\n <div class=\"profile-detail\">\n <span class=\"soft label\">Status</span>\n <div class=\"multiple-detail-tags\">\n <div\n class=\"profile-detail-tag color-tag\"\n title=\"{{ employeeStatusDescription() }}\"\n >\n {{ user()?.primary_position_type_display ?? 'Non-employee' }}\n @if (activityStatus()) {\n <span\n class=\"profile-status-circle\"\n [class.status-active]=\"activityStatus() === 'active'\"\n [class.status-inactive]=\"activityStatus() === 'inactive'\"\n [class.status-retired]=\"activityStatus() === 'retired'\"\n ></span>\n }\n </div>\n <div class=\"profile-detail-tag color-tag\">\n {{ (user()?.undergrad_graduate_status | titlecase) || 'Non-student' }}\n </div>\n <div class=\"profile-detail-tag color-tag\">\n {{ independentStudyStatus() ? 'Independent Study' : 'No Ind. Study' }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"spacer\"></div>\n <button class=\"end-impersonation-button shadow\" (click)=\"this.endImpersonation.emit()\">\n <span class=\"material-symbols-outlined icon\"> close </span>\n <span class=\"exit-text\">Exit</span>\n </button>\n </div>\n @if (isRestricted()) {\n <div class=\"restricted-bar-padding\"></div>\n <div class=\"restricted-bar\">\n <span class=\"title\">restricted person</span>\n <span class=\"text\">\n If anyone asks about this person, you are instructed to respond,\n <span class=\"emphasize\">\"We have no records for this person.\"</span>\n </span>\n </div>\n }\n <div class=\"right-border\"></div>\n <div class=\"bottom-border\"></div>\n <div class=\"left-border\"></div>\n}\n", styles: ["*{box-sizing:border-box}.top-banner,.bottom-border,.right-border,.left-border{background-color:#9070bf;border:none;position:fixed;box-sizing:border-box;z-index:1000}lib-copy-tooltip{z-index:10000;display:block}.top-banner,.bottom-border{left:0;right:0}.right-border,.left-border{width:7px;top:0;bottom:0}.bottom-border{bottom:0;height:7px}.right-border{right:0}.left-border{left:0}.banner-padding{padding-top:5em}.restricted-bar-padding{padding-top:40px}.restricted-bar{position:fixed;top:5em;left:7px;right:7px;height:40px;display:flex;align-items:center;color:#f3f3f3;background:repeating-linear-gradient(315deg,#c23737,#c23737 35px,#c25050 35px 70px);z-index:6000;font-size:1.6em}.restricted-bar .title{text-transform:uppercase;font-weight:600;margin:0 2em}.restricted-bar .text{margin:0 1em}.restricted-bar .text .emphasize{font-weight:600;font-style:italic}.top-banner{top:0;height:5em;display:flex;justify-content:space-between;width:100%;align-items:center;padding:2.5em;color:#f3f3f3;font-size:1em}.top-banner .banner-group{display:flex;margin-right:1.6em}.top-banner .profile-details-container{height:2.4em;display:flex;min-width:0}.top-banner .profile-details-container .profile-detail{display:flex;flex-flow:column nowrap;align-items:flex-start;justify-content:space-between;margin-right:.6em;font-weight:600;min-width:0;position:relative;z-index:6001}.top-banner .profile-details-container .profile-detail .label{font-size:.75em;white-space:nowrap;min-width:0;max-width:100%}.top-banner .profile-details-container .profile-detail .profile-detail-tag{font-size:.8em;padding:.2em .4em;border-radius:5px;display:inline-flex;align-items:center;gap:.5em;white-space:nowrap;min-width:0;max-width:100%}.top-banner .profile-details-container .profile-detail .profile-detail-tag:hover{min-width:max-content;z-index:1000}.top-banner .profile-details-container .profile-detail .profile-detail-tag:last-of-type{margin-right:0}.top-banner .profile-details-container .profile-detail .profile-detail-tag .profile-status-circle{font-size:1em;width:10px;height:10px;border-radius:50%;flex-shrink:0}.top-banner .profile-details-container .profile-detail .profile-detail-tag .status-active{background-color:#00e732}.top-banner .profile-details-container .profile-detail .profile-detail-tag .status-retired{background-color:#ffba38}.top-banner .profile-details-container .profile-detail .profile-detail-tag .status-inactive{border:2px white solid}.top-banner .profile-details-container .profile-detail .multiple-detail-tags{display:flex;flex-flow:row nowrap;min-width:0;max-width:100%}.top-banner .profile-details-container .profile-detail .multiple-detail-tags .profile-detail-tag{margin-right:.6em}.top-banner .profile-name-container{display:flex;align-items:center}.top-banner .profile-name-container .profile-avatar{border-radius:50%;background-color:#fff;padding:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;color:#a9a9a9;align-self:center;font-size:15px;overflow:hidden;height:3.5em;width:3.5em;margin-right:.6em;flex-shrink:0}.top-banner .profile-name-container .profile-avatar .profile-icon{margin:-.25em}.top-banner .profile-name-container .profile-avatar .profile-image{height:100%;width:100%;object-fit:cover;font-size:1em}.top-banner .profile-name-container .profile-avatar .profile-image+.profile-icon{display:none;font-size:3.5em}.top-banner .profile-name-container .profile-avatar .profile-image:empty{display:none}.top-banner .profile-name-container .profile-avatar .profile-image:empty+.profile-icon{display:block}.top-banner .profile-name-container .profile-name-group{font-size:1em;font-weight:600}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper{display:flex;align-items:center;white-space:nowrap}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .profile-name{font-size:1.6em;line-height:1em}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar{margin-left:1em;opacity:1;display:flex;align-items:center}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator{position:relative;margin-right:.8em}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator .application-count{margin-left:.5em;vertical-align:middle}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator:last-child{margin-right:0}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status:hover+.status-tooltip-container{display:block}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-ok{color:#87ed8f}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-ok .icon-checkmark{background-color:#87ed8f;color:#9070bf;border-radius:50%;padding:.2em;font-size:1em;vertical-align:middle}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked{color:#e9ce34}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked .icon-warning{font-size:1.7em;vertical-align:middle}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked .application-count{margin-left:.1em}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-none{color:#f4785b}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-none .icon-lock{background-color:#f4785b;color:#9070bf;border-radius:50%;padding:.2em;font-size:1em;vertical-align:middle}.top-banner .soft{opacity:.7}.top-banner .end-impersonation-button{height:2.4em;cursor:pointer;border-radius:2em;font-size:1em;padding:0 1.4em 0 1em;border:none;outline:none;flex-shrink:0;background-color:#fff;color:#c63d3d;font-weight:600;transition:box-shadow .2s;display:flex;align-items:center}.top-banner .end-impersonation-button:hover{box-shadow:#0003 0 8px 10px}.top-banner .end-impersonation-button .icon{font-size:1.2em;margin-right:.2em}.top-banner .spacer{flex-grow:1}.top-banner .shadow{box-shadow:#0003 0 2px 10px}.top-banner .white-tag{cursor:pointer;background-color:#ffffff26}.top-banner .white-tag:hover{background-color:#614979}.top-banner .color-tag:nth-of-type(1){background-color:#26acffcc}.top-banner .color-tag:nth-of-type(2){background-color:#9394ffcc}.top-banner .color-tag:nth-of-type(3){background-color:#a28ceecc}.top-banner .status-tooltip-container{color:#fff;background-color:#2e2e2e;display:none;transition:all .1s ease-in-out;position:absolute;top:calc(100% + 1em);left:50%;transform:translate(-50%);border-radius:.4em}.top-banner .status-tooltip-container:before{content:\"\";position:absolute;top:-.5em;left:50%;transform:translate(-50%);border-style:solid;border-width:0 1em 1em 1em;border-color:transparent transparent rgb(46,46,46) transparent}.top-banner .status-tooltip{text-align:left;padding:.8em;line-height:2em;font-weight:700}.top-banner .status-tooltip .application-status{display:flex;align-items:center;font-weight:400}.top-banner .status-tooltip .application-status [class*=icon-]{font-size:1.2em;margin-right:.2em}.top-banner .status-tooltip .application-status .icon-checkmark{color:#87ed8f}.top-banner .status-tooltip .application-status .icon-warning{color:#e9ce34}.top-banner .status-tooltip .application-status .icon-lock{color:#f4785b}@media screen and (max-width: 1100px){.top-banner .profile-name-group .soft{font-size:.7em}.top-banner .profile-name-group .profile-name{font-size:1.3em}.top-banner .end-impersonation-button{border-radius:50%;height:auto;padding:.6em}.top-banner .end-impersonation-button .icon{margin:0}.top-banner .end-impersonation-button .exit-text{display:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }, { kind: "component", type: CopyTooltipComponent, selector: "lib-copy-tooltip", inputs: ["position", "copyText"] }] }); }
876
987
  }
877
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllImpersonationBannerComponent, decorators: [{
988
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImpersonationBannerComponent, decorators: [{
878
989
  type: Component,
879
- args: [{ standalone: true, imports: [CommonModule, CopyTooltipComponent], selector: 'lib-hbll-impersonation-banner', template: "@if (isImpersonating()) {\n <div class=\"banner-padding\"></div>\n <div class=\"top-banner\">\n <div class=\"banner-group profile-name-container\">\n <div class=\"profile-avatar\">\n <div class=\"profile-image\">\n <img\n [src]=\"userPhotoUrl()\"\n [alt]=\"userFullName()\"\n alt=\"user photo\"\n onerror=\"this.remove()\"\n />\n </div>\n <span class=\"material-symbols-outlined profile-icon\"> person </span>\n </div>\n <div class=\"profile-name-group\">\n <span class=\"soft\">Impersonating</span>\n <div class=\"profile-name-wrapper\">\n <span class=\"profile-name\">{{ userFullName() }}</span>\n @if (accountStatuses()) {\n <div class=\"application-status-bar\">\n @if (accountStatuses()!.ok.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-ok application-status\">\n <span class=\"material-symbols-outlined icon-checkmark\">\n check\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.ok.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n OK Applications\n <hr />\n @for (\n application of accountStatuses()!.ok;\n track application.label\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-checkmark\"\n >\n check\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (accountStatuses()!.blocked.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-blocked application-status\">\n <span class=\"material-symbols-outlined icon-warning\">\n warning\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.blocked.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n Blocked Applications\n <hr />\n @for (\n application of accountStatuses()!.blocked;\n track application.code\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-warning\"\n >\n warning\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (accountStatuses()!.none.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-none application-status\">\n <span class=\"material-symbols-outlined icon-lock\">\n lock\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.none.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n No Account\n <hr />\n @for (\n application of accountStatuses()!.none;\n track application.label\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-lock\"\n >\n lock\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n </div>\n <div class=\"profile-details-container banner-group\">\n @for (detail of userInfoTabs() | keyvalue; track detail.key) {\n <div class=\"profile-detail\">\n <span class=\"soft label\">{{ detail.key }}</span>\n <lib-copy-tooltip [copyText]=\"detail.value\">\n <div class=\"profile-detail-tag white-tag clickable\">\n {{ detail.value || 'Unknown' }}\n </div>\n </lib-copy-tooltip>\n </div>\n }\n </div>\n <div class=\"profile-details-container banner-group\">\n <div class=\"profile-detail\">\n <span class=\"soft label\">Status</span>\n <div class=\"multiple-detail-tags\">\n <div\n class=\"profile-detail-tag color-tag\"\n title=\"{{ employeeStatusDescription() }}\"\n >\n {{ user()?.primary_position_type_display ?? 'Non-employee' }}\n @if (activityStatus()) {\n <span\n class=\"profile-status-circle\"\n [class.status-active]=\"activityStatus() === 'active'\"\n [class.status-inactive]=\"activityStatus() === 'inactive'\"\n [class.status-retired]=\"activityStatus() === 'retired'\"\n ></span>\n }\n </div>\n <div class=\"profile-detail-tag color-tag\">\n {{ (user()?.undergrad_graduate_status | titlecase) || 'Non-student' }}\n </div>\n <div class=\"profile-detail-tag color-tag\">\n {{ independentStudyStatus() ? 'Independent Study' : 'No Ind. Study' }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"spacer\"></div>\n <button class=\"end-impersonation-button shadow\" (click)=\"this.endImpersonation.emit()\">\n <span class=\"material-symbols-outlined icon\"> close </span>\n <span class=\"exit-text\">Exit</span>\n </button>\n </div>\n @if (isRestricted()) {\n <div class=\"restricted-bar-padding\"></div>\n <div class=\"restricted-bar\">\n <span class=\"title\">restricted person</span>\n <span class=\"text\">\n If anyone asks about this person, you are instructed to respond,\n <span class=\"emphasize\">\"We have no records for this person.\"</span>\n </span>\n </div>\n }\n <div class=\"right-border\"></div>\n <div class=\"bottom-border\"></div>\n <div class=\"left-border\"></div>\n}\n", styles: [".top-banner,.bottom-border,.right-border,.left-border{background-color:#9070bf;border:none;position:fixed;box-sizing:border-box;z-index:6000;font-size:1em}lib-copy-tooltip{z-index:10000;display:block}.top-banner,.bottom-border{left:0;right:0}.right-border,.left-border{width:7px;top:0;bottom:0}.top-banner{top:0;height:5em;display:flex;justify-content:space-between;width:100%;align-items:center;padding:2.5em;color:#f3f3f3}.bottom-border{bottom:0;height:7px}.right-border{right:0}.left-border{left:0}.banner-padding{padding-top:5em}.banner-group{display:flex;margin-right:1.6em}.profile-details-container{height:2.4em;display:flex;min-width:0}.profile-details-container .profile-detail{display:flex;flex-flow:column nowrap;align-items:flex-start;justify-content:space-between;margin-right:.6em;font-weight:600;min-width:0}.profile-details-container .profile-detail .label{font-size:.75em;white-space:nowrap;min-width:0;max-width:100%}.profile-details-container .profile-detail .profile-detail-tag{font-size:.8em;padding:.2em .4em;border-radius:5px;display:inline-flex;align-items:center;gap:.5em;white-space:nowrap;min-width:0;max-width:100%}.profile-details-container .profile-detail .profile-detail-tag:hover{min-width:max-content;z-index:1000}.profile-details-container .profile-detail .profile-detail-tag:last-of-type{margin-right:0}.profile-details-container .profile-detail .multiple-detail-tags{display:flex;flex-flow:row nowrap;min-width:0;max-width:100%}.profile-details-container .profile-detail .multiple-detail-tags .profile-detail-tag{margin-right:.6em}.profile-name-container{display:flex;align-items:center}.profile-name-container .profile-avatar{border-radius:50%;background-color:#fff;padding:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;color:#a9a9a9;align-self:center;font-size:15px;overflow:hidden;height:3.5em;width:3.5em;margin-right:.6em;flex-shrink:0}.profile-name-container .profile-avatar .profile-icon{margin:-.25em}.profile-name-container .profile-avatar .profile-image{height:100%;width:100%;object-fit:cover;font-size:1em}.profile-name-container .profile-avatar .profile-image+.profile-icon{display:none;font-size:3.5em}.profile-name-container .profile-avatar .profile-image:empty{display:none}.profile-name-container .profile-avatar .profile-image:empty+.profile-icon{display:block}.profile-name-container .profile-name-group{font-size:1em;font-weight:600}.profile-name-container .profile-name-group .profile-name-wrapper{display:flex;align-items:center;white-space:nowrap}.profile-name-container .profile-name-group .profile-name-wrapper .profile-name{font-size:1.6em;line-height:1em}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar{margin-left:1em;opacity:1;display:flex;align-items:center}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator{position:relative;margin-right:.8em}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator .application-count{margin-left:.5em;vertical-align:middle}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator:last-child{margin-right:0}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status:hover+.status-tooltip-container{opacity:1}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-ok{color:#87ed8f}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-ok .icon-checkmark{background-color:#87ed8f;color:#9070bf;border-radius:50%;padding:.2em;font-size:1em;vertical-align:middle}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked{color:#e9ce34}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked .icon-warning{font-size:1.7em;vertical-align:middle}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked .application-count{margin-left:.1em}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-none{color:#f4785b}.profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-none .icon-lock{background-color:#f4785b;color:#9070bf;border-radius:50%;padding:.2em;font-size:1em;vertical-align:middle}.profile-status-circle{width:.8em;height:.8em;border-radius:50%;flex-shrink:0}.status-active{background-color:#00e732}.status-retired{background-color:#ffba38}.status-inactive{border:2px white solid}.soft{opacity:.7}.end-impersonation-button{height:2.4em;cursor:pointer;border-radius:2em;font-size:1em;padding:0 1.4em 0 1em;border:none;outline:none;flex-shrink:0;background-color:#fff;color:#c63d3d;font-weight:600;transition:box-shadow .2s;display:flex;align-items:center}.end-impersonation-button:hover{box-shadow:#0003 0 8px 10px}.end-impersonation-button .icon{font-size:1.2em;margin-right:.2em}.spacer{flex-grow:1}.shadow{box-shadow:#0003 0 2px 10px}.white-tag{cursor:pointer;background-color:#ffffff26}.white-tag:hover{background-color:#614979}.color-tag:nth-of-type(1){background-color:#26acffcc}.color-tag:nth-of-type(2){background-color:#9394ffcc}.color-tag:nth-of-type(3){background-color:#a28ceecc}.status-tooltip-container{color:#fff;background-color:#2e2e2e;opacity:0;transition:all .1s ease-in-out;position:absolute;top:calc(100% + 1em);left:50%;transform:translate(-50%);border-radius:.4em}.status-tooltip-container:before{content:\"\";position:absolute;top:-.5em;left:50%;transform:translate(-50%);border-style:solid;border-width:0 1em 1em 1em;border-color:transparent transparent rgb(46,46,46) transparent}.status-tooltip{text-align:left;padding:.8em;line-height:2em;font-weight:700}.status-tooltip .application-status{display:flex;align-items:center;font-weight:400}.status-tooltip .application-status [class*=icon-]{font-size:1.2em;margin-right:.2em}.status-tooltip .application-status .icon-checkmark{color:#87ed8f}.status-tooltip .application-status .icon-warning{color:#e9ce34}.status-tooltip .application-status .icon-lock{color:#f4785b}.restricted-bar-padding{padding-top:40px}.restricted-bar{position:fixed;top:5em;left:7px;right:7px;height:40px;display:flex;align-items:center;color:#f3f3f3;background:repeating-linear-gradient(315deg,#c23737,#c23737 35px,#c25050 35px 70px);z-index:6000;font-size:1.6em}.restricted-bar .title{text-transform:uppercase;font-weight:600;margin:0 2em}.restricted-bar .text{margin:0 1em}.restricted-bar .text .emphasize{font-weight:600;font-style:italic}@media screen and (max-width: 1100px){.profile-name-group .soft{font-size:.7em}.profile-name-group .profile-name{font-size:1.3em}.end-impersonation-button{border-radius:50%;height:auto;padding:.6em}.end-impersonation-button .icon{margin:0}.end-impersonation-button .exit-text{display:none}}\n"] }]
990
+ args: [{ standalone: true, imports: [CommonModule, CopyTooltipComponent], selector: 'lib-impersonation-banner', template: "@if (isImpersonating()) {\n <div class=\"banner-padding\"></div>\n <div class=\"top-banner\" data-testid=\"banner\">\n <div class=\"banner-group profile-name-container\">\n <div class=\"profile-avatar\">\n <div class=\"profile-image\">\n <img\n [src]=\"userPhotoUrl()\"\n [alt]=\"userFullName()\"\n alt=\"user photo\"\n onerror=\"this.remove()\"\n />\n </div>\n <span class=\"material-symbols-outlined profile-icon\"> person </span>\n </div>\n <div class=\"profile-name-group\">\n <span class=\"soft\">Impersonating</span>\n <div class=\"profile-name-wrapper\">\n <span class=\"profile-name\">{{ userFullName() }}</span>\n @if (accountStatuses()) {\n <div class=\"application-status-bar\">\n @if (accountStatuses()!.ok.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-ok application-status\">\n <span class=\"material-symbols-outlined icon-checkmark\">\n check\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.ok.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n OK Applications\n <hr />\n @for (\n application of accountStatuses()!.ok;\n track application.label\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-checkmark\"\n >\n check\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (accountStatuses()!.blocked.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-blocked application-status\">\n <span class=\"material-symbols-outlined icon-warning\">\n warning\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.blocked.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n Blocked Applications\n <hr />\n @for (\n application of accountStatuses()!.blocked;\n track application.code\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-warning\"\n >\n warning\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (accountStatuses()!.none.length) {\n <div class=\"application-status-indicator\">\n <span class=\"application-status-none application-status\">\n <span class=\"material-symbols-outlined icon-lock\">\n lock\n </span>\n <span class=\"application-count\">{{\n accountStatuses()!.none.length\n }}</span>\n </span>\n <div class=\"status-tooltip-container\">\n <div class=\"status-tooltip\">\n No Account\n <hr />\n @for (\n application of accountStatuses()!.none;\n track application.label\n ) {\n <div class=\"application-status\">\n <span\n class=\"material-symbols-outlined icon-lock\"\n >\n lock\n </span>\n <span>{{ application.label }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n </div>\n <div class=\"profile-details-container banner-group\">\n @for (detail of userInfoTabs() | keyvalue; track detail.key) {\n <div class=\"profile-detail\">\n <span class=\"soft label\">{{ detail.key }}</span>\n <lib-copy-tooltip [copyText]=\"detail.value\">\n <div class=\"profile-detail-tag white-tag clickable\">\n {{ detail.value || 'Unknown' }}\n </div>\n </lib-copy-tooltip>\n </div>\n }\n </div>\n <div class=\"profile-details-container banner-group\">\n <div class=\"profile-detail\">\n <span class=\"soft label\">Status</span>\n <div class=\"multiple-detail-tags\">\n <div\n class=\"profile-detail-tag color-tag\"\n title=\"{{ employeeStatusDescription() }}\"\n >\n {{ user()?.primary_position_type_display ?? 'Non-employee' }}\n @if (activityStatus()) {\n <span\n class=\"profile-status-circle\"\n [class.status-active]=\"activityStatus() === 'active'\"\n [class.status-inactive]=\"activityStatus() === 'inactive'\"\n [class.status-retired]=\"activityStatus() === 'retired'\"\n ></span>\n }\n </div>\n <div class=\"profile-detail-tag color-tag\">\n {{ (user()?.undergrad_graduate_status | titlecase) || 'Non-student' }}\n </div>\n <div class=\"profile-detail-tag color-tag\">\n {{ independentStudyStatus() ? 'Independent Study' : 'No Ind. Study' }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"spacer\"></div>\n <button class=\"end-impersonation-button shadow\" (click)=\"this.endImpersonation.emit()\">\n <span class=\"material-symbols-outlined icon\"> close </span>\n <span class=\"exit-text\">Exit</span>\n </button>\n </div>\n @if (isRestricted()) {\n <div class=\"restricted-bar-padding\"></div>\n <div class=\"restricted-bar\">\n <span class=\"title\">restricted person</span>\n <span class=\"text\">\n If anyone asks about this person, you are instructed to respond,\n <span class=\"emphasize\">\"We have no records for this person.\"</span>\n </span>\n </div>\n }\n <div class=\"right-border\"></div>\n <div class=\"bottom-border\"></div>\n <div class=\"left-border\"></div>\n}\n", styles: ["*{box-sizing:border-box}.top-banner,.bottom-border,.right-border,.left-border{background-color:#9070bf;border:none;position:fixed;box-sizing:border-box;z-index:1000}lib-copy-tooltip{z-index:10000;display:block}.top-banner,.bottom-border{left:0;right:0}.right-border,.left-border{width:7px;top:0;bottom:0}.bottom-border{bottom:0;height:7px}.right-border{right:0}.left-border{left:0}.banner-padding{padding-top:5em}.restricted-bar-padding{padding-top:40px}.restricted-bar{position:fixed;top:5em;left:7px;right:7px;height:40px;display:flex;align-items:center;color:#f3f3f3;background:repeating-linear-gradient(315deg,#c23737,#c23737 35px,#c25050 35px 70px);z-index:6000;font-size:1.6em}.restricted-bar .title{text-transform:uppercase;font-weight:600;margin:0 2em}.restricted-bar .text{margin:0 1em}.restricted-bar .text .emphasize{font-weight:600;font-style:italic}.top-banner{top:0;height:5em;display:flex;justify-content:space-between;width:100%;align-items:center;padding:2.5em;color:#f3f3f3;font-size:1em}.top-banner .banner-group{display:flex;margin-right:1.6em}.top-banner .profile-details-container{height:2.4em;display:flex;min-width:0}.top-banner .profile-details-container .profile-detail{display:flex;flex-flow:column nowrap;align-items:flex-start;justify-content:space-between;margin-right:.6em;font-weight:600;min-width:0;position:relative;z-index:6001}.top-banner .profile-details-container .profile-detail .label{font-size:.75em;white-space:nowrap;min-width:0;max-width:100%}.top-banner .profile-details-container .profile-detail .profile-detail-tag{font-size:.8em;padding:.2em .4em;border-radius:5px;display:inline-flex;align-items:center;gap:.5em;white-space:nowrap;min-width:0;max-width:100%}.top-banner .profile-details-container .profile-detail .profile-detail-tag:hover{min-width:max-content;z-index:1000}.top-banner .profile-details-container .profile-detail .profile-detail-tag:last-of-type{margin-right:0}.top-banner .profile-details-container .profile-detail .profile-detail-tag .profile-status-circle{font-size:1em;width:10px;height:10px;border-radius:50%;flex-shrink:0}.top-banner .profile-details-container .profile-detail .profile-detail-tag .status-active{background-color:#00e732}.top-banner .profile-details-container .profile-detail .profile-detail-tag .status-retired{background-color:#ffba38}.top-banner .profile-details-container .profile-detail .profile-detail-tag .status-inactive{border:2px white solid}.top-banner .profile-details-container .profile-detail .multiple-detail-tags{display:flex;flex-flow:row nowrap;min-width:0;max-width:100%}.top-banner .profile-details-container .profile-detail .multiple-detail-tags .profile-detail-tag{margin-right:.6em}.top-banner .profile-name-container{display:flex;align-items:center}.top-banner .profile-name-container .profile-avatar{border-radius:50%;background-color:#fff;padding:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;color:#a9a9a9;align-self:center;font-size:15px;overflow:hidden;height:3.5em;width:3.5em;margin-right:.6em;flex-shrink:0}.top-banner .profile-name-container .profile-avatar .profile-icon{margin:-.25em}.top-banner .profile-name-container .profile-avatar .profile-image{height:100%;width:100%;object-fit:cover;font-size:1em}.top-banner .profile-name-container .profile-avatar .profile-image+.profile-icon{display:none;font-size:3.5em}.top-banner .profile-name-container .profile-avatar .profile-image:empty{display:none}.top-banner .profile-name-container .profile-avatar .profile-image:empty+.profile-icon{display:block}.top-banner .profile-name-container .profile-name-group{font-size:1em;font-weight:600}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper{display:flex;align-items:center;white-space:nowrap}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .profile-name{font-size:1.6em;line-height:1em}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar{margin-left:1em;opacity:1;display:flex;align-items:center}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator{position:relative;margin-right:.8em}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator .application-count{margin-left:.5em;vertical-align:middle}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-indicator:last-child{margin-right:0}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status:hover+.status-tooltip-container{display:block}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-ok{color:#87ed8f}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-ok .icon-checkmark{background-color:#87ed8f;color:#9070bf;border-radius:50%;padding:.2em;font-size:1em;vertical-align:middle}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked{color:#e9ce34}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked .icon-warning{font-size:1.7em;vertical-align:middle}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-blocked .application-count{margin-left:.1em}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-none{color:#f4785b}.top-banner .profile-name-container .profile-name-group .profile-name-wrapper .application-status-bar .application-status-none .icon-lock{background-color:#f4785b;color:#9070bf;border-radius:50%;padding:.2em;font-size:1em;vertical-align:middle}.top-banner .soft{opacity:.7}.top-banner .end-impersonation-button{height:2.4em;cursor:pointer;border-radius:2em;font-size:1em;padding:0 1.4em 0 1em;border:none;outline:none;flex-shrink:0;background-color:#fff;color:#c63d3d;font-weight:600;transition:box-shadow .2s;display:flex;align-items:center}.top-banner .end-impersonation-button:hover{box-shadow:#0003 0 8px 10px}.top-banner .end-impersonation-button .icon{font-size:1.2em;margin-right:.2em}.top-banner .spacer{flex-grow:1}.top-banner .shadow{box-shadow:#0003 0 2px 10px}.top-banner .white-tag{cursor:pointer;background-color:#ffffff26}.top-banner .white-tag:hover{background-color:#614979}.top-banner .color-tag:nth-of-type(1){background-color:#26acffcc}.top-banner .color-tag:nth-of-type(2){background-color:#9394ffcc}.top-banner .color-tag:nth-of-type(3){background-color:#a28ceecc}.top-banner .status-tooltip-container{color:#fff;background-color:#2e2e2e;display:none;transition:all .1s ease-in-out;position:absolute;top:calc(100% + 1em);left:50%;transform:translate(-50%);border-radius:.4em}.top-banner .status-tooltip-container:before{content:\"\";position:absolute;top:-.5em;left:50%;transform:translate(-50%);border-style:solid;border-width:0 1em 1em 1em;border-color:transparent transparent rgb(46,46,46) transparent}.top-banner .status-tooltip{text-align:left;padding:.8em;line-height:2em;font-weight:700}.top-banner .status-tooltip .application-status{display:flex;align-items:center;font-weight:400}.top-banner .status-tooltip .application-status [class*=icon-]{font-size:1.2em;margin-right:.2em}.top-banner .status-tooltip .application-status .icon-checkmark{color:#87ed8f}.top-banner .status-tooltip .application-status .icon-warning{color:#e9ce34}.top-banner .status-tooltip .application-status .icon-lock{color:#f4785b}@media screen and (max-width: 1100px){.top-banner .profile-name-group .soft{font-size:.7em}.top-banner .profile-name-group .profile-name{font-size:1.3em}.top-banner .end-impersonation-button{border-radius:50%;height:auto;padding:.6em}.top-banner .end-impersonation-button .icon{margin:0}.top-banner .end-impersonation-button .exit-text{display:none}}\n"] }]
880
991
  }], propDecorators: { endImpersonation: [{
881
992
  type: Output
882
993
  }] } });
883
994
 
995
+ const defaultOidcBaseUri = 'https://keycloak.lib.byu.edu/';
996
+ const defaultOidcDefaultIdp = 'byu-realm';
997
+ class ImpersonateUserPipe {
998
+ transform(user) {
999
+ return `${user.name} (${user.netId || 'Unknown'})${user.restricted ? ' — Restricted' : ''}`;
1000
+ }
1001
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImpersonateUserPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1002
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: ImpersonateUserPipe, isStandalone: true, name: "impersonateUser" }); }
1003
+ }
1004
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImpersonateUserPipe, decorators: [{
1005
+ type: Pipe,
1006
+ args: [{
1007
+ name: 'impersonateUser',
1008
+ standalone: true,
1009
+ }]
1010
+ }] });
1011
+ const SEARCH_USERS_PATH = '/impersonate/api/search/';
1012
+ const START_IMPERSONATE_PATH = '/impersonate/:username';
1013
+ class ImpersonateModalComponent {
1014
+ constructor() {
1015
+ this.http = inject(HttpClient);
1016
+ this.fb = inject(FormBuilder);
1017
+ this.eref = inject(ElementRef);
1018
+ this.oidcBaseUri = input(defaultOidcBaseUri);
1019
+ this.oidcDefaultIdp = input(defaultOidcDefaultIdp);
1020
+ // Require an object here so that access tokens are not visible/extractable from the DOM in consuming applications. Instead they are only stored in memory.
1021
+ this.accessTokenPayload = input.required();
1022
+ this.dismiss = new EventEmitter();
1023
+ this.init = new EventEmitter();
1024
+ this.isOpen = false;
1025
+ this.hasError = false;
1026
+ this.form = this.fb.nonNullable.group({
1027
+ search: this.fb.control('', { validators: Validators.minLength(3) }),
1028
+ });
1029
+ this.loading = false;
1030
+ this.handleSearchSubject = new Subject();
1031
+ this.results = toSignal(this.form.controls.search.valueChanges.pipe(switchMap$1((search) => this.handleSearchSubject.pipe(startWith(false), switchMap$1((handleSearch) => {
1032
+ this.selectedUsername = undefined;
1033
+ this.hasError = false;
1034
+ if (!search || !handleSearch) {
1035
+ return of(null);
1036
+ }
1037
+ this.loading = true;
1038
+ const results = this.searchUsers(search);
1039
+ return results.pipe(catchError((e) => {
1040
+ this.hasError = true;
1041
+ console.error(e);
1042
+ return of(null);
1043
+ }));
1044
+ }))), tap(() => {
1045
+ this.loading = false;
1046
+ })));
1047
+ this.subs = new Subscription();
1048
+ this.handleKeyDown = (event) => {
1049
+ switch (event.key) {
1050
+ case 'Esc':
1051
+ case 'Escape': {
1052
+ this.close();
1053
+ break;
1054
+ }
1055
+ case 'I':
1056
+ case 'i': {
1057
+ if (event.ctrlKey || event.metaKey) {
1058
+ if (this.isOpen) {
1059
+ this.close();
1060
+ }
1061
+ else {
1062
+ this.init.emit();
1063
+ }
1064
+ event.preventDefault();
1065
+ }
1066
+ break;
1067
+ }
1068
+ default:
1069
+ break;
1070
+ }
1071
+ };
1072
+ /** Redirect to Keycloak impersonate page, which will redirect back
1073
+ * after impersonation begins.
1074
+ */
1075
+ this.startImpersonation = (username) => {
1076
+ const _username = username ?? this.selectedUsername;
1077
+ if (!_username) {
1078
+ return;
1079
+ }
1080
+ const url = urlcat(this.oidcBaseUri(), START_IMPERSONATE_PATH, {
1081
+ username,
1082
+ returnUri: window.location.href,
1083
+ defaultIdp: this.oidcDefaultIdp(),
1084
+ });
1085
+ this.replaceUrl(url);
1086
+ };
1087
+ this.handleSelectUser = (event) => {
1088
+ this.selectedUsername = event.target.value;
1089
+ };
1090
+ this.clearSearch = () => {
1091
+ this.form.reset();
1092
+ };
1093
+ this.close = () => {
1094
+ this.dismiss.emit();
1095
+ this.clearSearch();
1096
+ };
1097
+ this.handleFormSubmit = (event) => {
1098
+ event.preventDefault();
1099
+ if (this.form.valid) {
1100
+ this.handleSearchSubject.next(true);
1101
+ }
1102
+ };
1103
+ this.handleSearchKeyPress = (event) => {
1104
+ if (!['ArrowDown', 'Down'].includes(event.key)) {
1105
+ return;
1106
+ }
1107
+ event.preventDefault();
1108
+ if (this.results()?.length) {
1109
+ const firstResult = this.eref.nativeElement.querySelector(`#result_0`);
1110
+ firstResult?.click();
1111
+ firstResult?.focus();
1112
+ }
1113
+ };
1114
+ this.handleResultKeyPress = (event) => {
1115
+ if (['ArrowUp', 'Up'].includes(event.key) &&
1116
+ event.target?.id === 'result_0') {
1117
+ event.preventDefault();
1118
+ this.eref.nativeElement.querySelector('#searchInput')?.focus();
1119
+ }
1120
+ else if (event.key === 'Enter') {
1121
+ event.preventDefault();
1122
+ this.startImpersonation();
1123
+ }
1124
+ };
1125
+ /** Search Keycloak users using a generic search query. */
1126
+ this.searchUsers = (query) => {
1127
+ const uri = urlcat(this.oidcBaseUri(), SEARCH_USERS_PATH, {
1128
+ query,
1129
+ });
1130
+ return this.http.get(uri, {
1131
+ headers: {
1132
+ Authorization: `Bearer ${this.accessTokenPayload().token}`,
1133
+ },
1134
+ });
1135
+ };
1136
+ this.replaceUrl = (url) => window.location.replace(url);
1137
+ }
1138
+ set showModal(open) {
1139
+ this.isOpen = open;
1140
+ if (open) {
1141
+ // Set focus on search input shortly after opening modal so user notices
1142
+ // the input receiving focus.
1143
+ setTimeout(() => this.eref.nativeElement.querySelector('#searchInput')?.focus(), 250);
1144
+ }
1145
+ }
1146
+ outsideClick(event) {
1147
+ if (event.target?.id === 'modalBackdrop') {
1148
+ this.close();
1149
+ }
1150
+ }
1151
+ ngOnDestroy() {
1152
+ this.subs.unsubscribe();
1153
+ }
1154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImpersonateModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1155
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ImpersonateModalComponent, isStandalone: true, selector: "lib-impersonate-modal", inputs: { showModal: { classPropertyName: "showModal", publicName: "showModal", isSignal: false, isRequired: false, transformFunction: null }, oidcBaseUri: { classPropertyName: "oidcBaseUri", publicName: "oidcBaseUri", isSignal: true, isRequired: false, transformFunction: null }, oidcDefaultIdp: { classPropertyName: "oidcDefaultIdp", publicName: "oidcDefaultIdp", isSignal: true, isRequired: false, transformFunction: null }, accessTokenPayload: { classPropertyName: "accessTokenPayload", publicName: "accessTokenPayload", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { dismiss: "dismiss", init: "init" }, host: { listeners: { "document:mousedown": "outsideClick($event)", "document:keydown": "handleKeyDown($event)" } }, ngImport: i0, template: "@if (isOpen) {\n <div @libHbllFadeInOut class=\"modal-wrapper\" id=\"modalBackdrop\" data-testid=\"backdrop\">\n <div class=\"modal-container\" data-testid=\"modal\">\n <div class=\"modal-header\">\n <h2>Impersonate</h2>\n <button type=\"button\" (click)=\"close()\" aria-label=\"Close\" data-testid=\"close\">\n <span class=\"material-symbols-outlined icon-close\"> close </span>\n </button>\n </div>\n <form [formGroup]=\"form\" (submit)=\"handleFormSubmit($event)\" data-testid=\"searchForm\">\n <div class=\"search-header\">\n <div class=\"secondary\" [class.disabled]=\"!form.valid\">\n <span class=\"keyboard-key\">Enter</span> to search\n </div>\n </div>\n <label\n for=\"searchInput\"\n class=\"search-wrapper\"\n [class.invalid]=\"form.invalid && form.dirty\"\n >\n <span class=\"material-symbols-outlined icon-search\"> search </span>\n <input\n id=\"searchInput\"\n type=\"text\"\n autocomplete=\"off\"\n formControlName=\"search\"\n placeholder=\"Search patrons...\"\n (keydown)=\"handleSearchKeyPress($event)\"\n #searchBox\n data-testid=\"searchInput\"\n />\n @if (!!searchBox.value && form.valid) {\n <span class=\"material-symbols-outlined icon-checkmark\"> check </span>\n }\n @if (searchBox.value.length) {\n <span\n (click)=\"clearSearch()\"\n @libHbllFadeInOut\n class=\"material-symbols-outlined icon-close\"\n >\n close\n </span>\n }\n </label>\n </form>\n <fieldset\n class=\"search-results-wrapper\"\n id=\"resultsScrollContainer\"\n (change)=\"handleSelectUser($event)\"\n >\n @if (!loading && results()) {\n @for (user of results(); track user.netId; let idx = $index) {\n <div\n class=\"result-field result\"\n [class.focus]=\"user.username === selectedUsername\"\n data-testid=\"result\"\n >\n <label\n [for]=\"'result_' + idx\"\n [class.warning]=\"user.restricted\"\n (mouseover)=\"selectedUsername = user.username\"\n >\n @if (user.restricted) {\n <span class=\"material-symbols-outlined icon\"> warning </span>\n } @else {\n <span class=\"material-symbols-outlined icon\"> person </span>\n }\n &nbsp; &nbsp;\n <span [title]=\"user\" data-testid=\"resultText\">{{\n user | impersonateUser\n }}</span>\n <input\n type=\"radio\"\n [value]=\"user.username\"\n class=\"hidden\"\n [id]=\"'result_' + idx\"\n name=\"resultSelect\"\n (keydown)=\"handleResultKeyPress($event)\"\n />\n </label>\n <button\n class=\"impersonate-button\"\n data-testid=\"impersonateBtn\"\n (click)=\"startImpersonation(user.username)\"\n >\n Impersonate\n </button>\n </div>\n } @empty {\n <div class=\"result-field\">\n No results. Try searching by Net ID or BYU ID.\n </div>\n }\n }\n @if (loading) {\n <div class=\"result-field\">\n <div class=\"lib-spinner\"></div>\n </div>\n }\n @if (hasError) {\n <div class=\"result-field\">Something went wrong. We'll keep trying.</div>\n }\n </fieldset>\n </div>\n </div>\n}\n", styles: [".lib-spinner{border:.3em solid #dfe9f7;border-top:.3em solid #4070b0;border-radius:100%;width:30px;height:30px;animation:loadingSpinnerAnimate 1s ease infinite;position:relative}@keyframes loadingSpinnerAnimate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{box-sizing:border-box}h2{font-size:1.2em;font-weight:600;margin:0;color:#404040}.warning{color:#b04940}.modal-wrapper{position:fixed;inset:0;background-color:#0000007f;z-index:10000;display:grid;place-items:center}.modal-container{color:#404040;padding:1.2em 1.4em;width:90%;max-width:30em;border-radius:4px;border:1px solid #b7b7b7;box-shadow:0 3px 6px #002e5d20;background-color:#fff;display:grid;grid-template-columns:1fr;gap:1em}.modal-container .modal-header{display:flex;justify-content:space-between;border-bottom:1px solid #e6e6e6;padding-bottom:.8em}.modal-container .modal-header .icon-close{transition:opacity .15s;color:#707070;opacity:1;cursor:pointer}.modal-container .modal-header .icon-close:hover{opacity:.8}.modal-container .hidden{opacity:0;width:0;height:0}.modal-container .search-header{display:flex;align-items:center;justify-content:flex-end;margin-bottom:.8em}.modal-container .search-header .secondary{color:#70707095}.modal-container .search-header .keyboard-key{padding:.1em .4em;border:1px solid currentColor;border-radius:4px}.modal-container .search-wrapper{display:flex;align-items:center;border-radius:4px;border:solid 1px currentColor;color:#ca7ad1cc;background-color:#e6e6e655;padding:.1em .3em .1em .5em;transition:background-color .15s,color .15s}.modal-container .search-wrapper.invalid{background-color:#b0494022}.modal-container .search-wrapper .icon-search{font-size:1.2em}.modal-container .search-wrapper .icon-checkmark{color:#1dce7b}.modal-container .search-wrapper .icon-close{color:#ca7ad1cc;cursor:pointer}.modal-container .search-wrapper .icon-close:hover{color:#ca7ad1}.modal-container .search-wrapper input[type=text]{background:transparent;border:none;outline:none;width:100%;color:#404040;padding:.5em .4em;font-size:1em}.modal-container .search-wrapper input[type=text]:focus{background-color:transparent}.modal-container .search-results-wrapper{border:none;margin:0;padding:0;max-height:25em;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;display:flex;flex-direction:column;align-items:stretch;min-width:0}.modal-container .search-results-wrapper::-webkit-scrollbar{width:6px}.modal-container .search-results-wrapper::-webkit-scrollbar-track{background:#e6e6e6}.modal-container .search-results-wrapper::-webkit-scrollbar-thumb{background-color:#b3b3b3;border-radius:5px}.modal-container .search-results-wrapper::-webkit-scrollbar-thumb:hover{background-color:#888}.modal-container .search-results-wrapper .result-field{font-style:italic;display:flex;align-items:center;justify-content:space-between;padding:.8em}.modal-container .search-results-wrapper .result-field .lib-spinner{margin:auto;display:grid;place-items:center}.modal-container .search-results-wrapper .result-field.result{font-style:normal;padding:0}.modal-container .search-results-wrapper .result-field.result label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;padding:.8em;display:flex;align-items:center}.modal-container .search-results-wrapper .result-field.result label .icon{font-size:1.2em;margin-right:.4em}.modal-container .search-results-wrapper .result-field.result .impersonate-button{cursor:pointer;display:none;color:#ca7ad1cc;padding:.1em .6em;border:1px solid currentColor;border-radius:4px;background-color:#fff;flex-shrink:0;margin-block:.6em;margin-right:.8em}.modal-container .search-results-wrapper .result-field.result .impersonate-button:hover{color:#ca7ad1;background-color:#fff8}.modal-container .search-results-wrapper .result-field.result:active,.modal-container .search-results-wrapper .result-field.result.focus{background:#f2f2f2}.modal-container .search-results-wrapper .result-field.result.focus .impersonate-button{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: ImpersonateUserPipe, name: "impersonateUser" }], animations: [libHbllFadeInOut] }); }
1156
+ }
1157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImpersonateModalComponent, decorators: [{
1158
+ type: Component,
1159
+ args: [{ standalone: true, imports: [CommonModule, ReactiveFormsModule, ImpersonateUserPipe], selector: 'lib-impersonate-modal', animations: [libHbllFadeInOut], template: "@if (isOpen) {\n <div @libHbllFadeInOut class=\"modal-wrapper\" id=\"modalBackdrop\" data-testid=\"backdrop\">\n <div class=\"modal-container\" data-testid=\"modal\">\n <div class=\"modal-header\">\n <h2>Impersonate</h2>\n <button type=\"button\" (click)=\"close()\" aria-label=\"Close\" data-testid=\"close\">\n <span class=\"material-symbols-outlined icon-close\"> close </span>\n </button>\n </div>\n <form [formGroup]=\"form\" (submit)=\"handleFormSubmit($event)\" data-testid=\"searchForm\">\n <div class=\"search-header\">\n <div class=\"secondary\" [class.disabled]=\"!form.valid\">\n <span class=\"keyboard-key\">Enter</span> to search\n </div>\n </div>\n <label\n for=\"searchInput\"\n class=\"search-wrapper\"\n [class.invalid]=\"form.invalid && form.dirty\"\n >\n <span class=\"material-symbols-outlined icon-search\"> search </span>\n <input\n id=\"searchInput\"\n type=\"text\"\n autocomplete=\"off\"\n formControlName=\"search\"\n placeholder=\"Search patrons...\"\n (keydown)=\"handleSearchKeyPress($event)\"\n #searchBox\n data-testid=\"searchInput\"\n />\n @if (!!searchBox.value && form.valid) {\n <span class=\"material-symbols-outlined icon-checkmark\"> check </span>\n }\n @if (searchBox.value.length) {\n <span\n (click)=\"clearSearch()\"\n @libHbllFadeInOut\n class=\"material-symbols-outlined icon-close\"\n >\n close\n </span>\n }\n </label>\n </form>\n <fieldset\n class=\"search-results-wrapper\"\n id=\"resultsScrollContainer\"\n (change)=\"handleSelectUser($event)\"\n >\n @if (!loading && results()) {\n @for (user of results(); track user.netId; let idx = $index) {\n <div\n class=\"result-field result\"\n [class.focus]=\"user.username === selectedUsername\"\n data-testid=\"result\"\n >\n <label\n [for]=\"'result_' + idx\"\n [class.warning]=\"user.restricted\"\n (mouseover)=\"selectedUsername = user.username\"\n >\n @if (user.restricted) {\n <span class=\"material-symbols-outlined icon\"> warning </span>\n } @else {\n <span class=\"material-symbols-outlined icon\"> person </span>\n }\n &nbsp; &nbsp;\n <span [title]=\"user\" data-testid=\"resultText\">{{\n user | impersonateUser\n }}</span>\n <input\n type=\"radio\"\n [value]=\"user.username\"\n class=\"hidden\"\n [id]=\"'result_' + idx\"\n name=\"resultSelect\"\n (keydown)=\"handleResultKeyPress($event)\"\n />\n </label>\n <button\n class=\"impersonate-button\"\n data-testid=\"impersonateBtn\"\n (click)=\"startImpersonation(user.username)\"\n >\n Impersonate\n </button>\n </div>\n } @empty {\n <div class=\"result-field\">\n No results. Try searching by Net ID or BYU ID.\n </div>\n }\n }\n @if (loading) {\n <div class=\"result-field\">\n <div class=\"lib-spinner\"></div>\n </div>\n }\n @if (hasError) {\n <div class=\"result-field\">Something went wrong. We'll keep trying.</div>\n }\n </fieldset>\n </div>\n </div>\n}\n", styles: [".lib-spinner{border:.3em solid #dfe9f7;border-top:.3em solid #4070b0;border-radius:100%;width:30px;height:30px;animation:loadingSpinnerAnimate 1s ease infinite;position:relative}@keyframes loadingSpinnerAnimate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{box-sizing:border-box}h2{font-size:1.2em;font-weight:600;margin:0;color:#404040}.warning{color:#b04940}.modal-wrapper{position:fixed;inset:0;background-color:#0000007f;z-index:10000;display:grid;place-items:center}.modal-container{color:#404040;padding:1.2em 1.4em;width:90%;max-width:30em;border-radius:4px;border:1px solid #b7b7b7;box-shadow:0 3px 6px #002e5d20;background-color:#fff;display:grid;grid-template-columns:1fr;gap:1em}.modal-container .modal-header{display:flex;justify-content:space-between;border-bottom:1px solid #e6e6e6;padding-bottom:.8em}.modal-container .modal-header .icon-close{transition:opacity .15s;color:#707070;opacity:1;cursor:pointer}.modal-container .modal-header .icon-close:hover{opacity:.8}.modal-container .hidden{opacity:0;width:0;height:0}.modal-container .search-header{display:flex;align-items:center;justify-content:flex-end;margin-bottom:.8em}.modal-container .search-header .secondary{color:#70707095}.modal-container .search-header .keyboard-key{padding:.1em .4em;border:1px solid currentColor;border-radius:4px}.modal-container .search-wrapper{display:flex;align-items:center;border-radius:4px;border:solid 1px currentColor;color:#ca7ad1cc;background-color:#e6e6e655;padding:.1em .3em .1em .5em;transition:background-color .15s,color .15s}.modal-container .search-wrapper.invalid{background-color:#b0494022}.modal-container .search-wrapper .icon-search{font-size:1.2em}.modal-container .search-wrapper .icon-checkmark{color:#1dce7b}.modal-container .search-wrapper .icon-close{color:#ca7ad1cc;cursor:pointer}.modal-container .search-wrapper .icon-close:hover{color:#ca7ad1}.modal-container .search-wrapper input[type=text]{background:transparent;border:none;outline:none;width:100%;color:#404040;padding:.5em .4em;font-size:1em}.modal-container .search-wrapper input[type=text]:focus{background-color:transparent}.modal-container .search-results-wrapper{border:none;margin:0;padding:0;max-height:25em;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;display:flex;flex-direction:column;align-items:stretch;min-width:0}.modal-container .search-results-wrapper::-webkit-scrollbar{width:6px}.modal-container .search-results-wrapper::-webkit-scrollbar-track{background:#e6e6e6}.modal-container .search-results-wrapper::-webkit-scrollbar-thumb{background-color:#b3b3b3;border-radius:5px}.modal-container .search-results-wrapper::-webkit-scrollbar-thumb:hover{background-color:#888}.modal-container .search-results-wrapper .result-field{font-style:italic;display:flex;align-items:center;justify-content:space-between;padding:.8em}.modal-container .search-results-wrapper .result-field .lib-spinner{margin:auto;display:grid;place-items:center}.modal-container .search-results-wrapper .result-field.result{font-style:normal;padding:0}.modal-container .search-results-wrapper .result-field.result label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;padding:.8em;display:flex;align-items:center}.modal-container .search-results-wrapper .result-field.result label .icon{font-size:1.2em;margin-right:.4em}.modal-container .search-results-wrapper .result-field.result .impersonate-button{cursor:pointer;display:none;color:#ca7ad1cc;padding:.1em .6em;border:1px solid currentColor;border-radius:4px;background-color:#fff;flex-shrink:0;margin-block:.6em;margin-right:.8em}.modal-container .search-results-wrapper .result-field.result .impersonate-button:hover{color:#ca7ad1;background-color:#fff8}.modal-container .search-results-wrapper .result-field.result:active,.modal-container .search-results-wrapper .result-field.result.focus{background:#f2f2f2}.modal-container .search-results-wrapper .result-field.result.focus .impersonate-button{display:block}\n"] }]
1160
+ }], propDecorators: { showModal: [{
1161
+ type: Input
1162
+ }], dismiss: [{
1163
+ type: Output
1164
+ }], init: [{
1165
+ type: Output
1166
+ }], outsideClick: [{
1167
+ type: HostListener,
1168
+ args: ['document:mousedown', ['$event']]
1169
+ }], handleKeyDown: [{
1170
+ type: HostListener,
1171
+ args: ['document:keydown', ['$event']]
1172
+ }] } });
1173
+
1174
+ class HeaderWithImpersonationComponent {
1175
+ constructor() {
1176
+ this.accessTokenPayload = input.required();
1177
+ this.oidcBaseUri = input(defaultOidcBaseUri);
1178
+ this.oidcDefaultIdp = input(defaultOidcDefaultIdp);
1179
+ this.mainSiteBaseUrl = input('https://lib.byu.edu');
1180
+ this.login = new EventEmitter();
1181
+ this.logout = new EventEmitter();
1182
+ this.endImpersonation = new EventEmitter();
1183
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1184
+ this.parsedToken = computed(() => this.accessTokenPayload().token ? jwtDecode(this.accessTokenPayload().token) : null);
1185
+ this.name = computed(() => (this.parsedToken() ? this.parsedToken()['given_name'] : ''));
1186
+ this.showImpersonateButton = computed(() => this.parsedToken()
1187
+ ? !!(!this.isImpersonating() &&
1188
+ this.parsedToken()['resource_access']['realm-management']?.['roles']?.includes('impersonation'))
1189
+ : false);
1190
+ this.showImpersonationModal = false;
1191
+ this.isImpersonating = computed(() => !!this.parsedToken()?.['impersonator']);
1192
+ }
1193
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HeaderWithImpersonationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1194
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.0", type: HeaderWithImpersonationComponent, isStandalone: true, selector: "lib-header-with-impersonation", inputs: { accessTokenPayload: { classPropertyName: "accessTokenPayload", publicName: "accessTokenPayload", isSignal: true, isRequired: true, transformFunction: null }, oidcBaseUri: { classPropertyName: "oidcBaseUri", publicName: "oidcBaseUri", isSignal: true, isRequired: false, transformFunction: null }, oidcDefaultIdp: { classPropertyName: "oidcDefaultIdp", publicName: "oidcDefaultIdp", isSignal: true, isRequired: false, transformFunction: null }, mainSiteBaseUrl: { classPropertyName: "mainSiteBaseUrl", publicName: "mainSiteBaseUrl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { login: "login", logout: "logout", endImpersonation: "endImpersonation" }, ngImport: i0, template: "<lib-impersonation-banner\n [accessTokenPayload]=\"accessTokenPayload()\"\n (endImpersonation)=\"endImpersonation.emit()\"\n></lib-impersonation-banner>\n<lib-hbll-header\n [name]=\"name()\"\n [showImpersonateButton]=\"showImpersonateButton()\"\n (openImpersonationModal)=\"showImpersonationModal = true\"\n (login)=\"login.emit()\"\n (logout)=\"logout.emit()\"\n [mainsitebaseurl]=\"mainSiteBaseUrl()\"\n/>\n<lib-impersonate-modal\n [showModal]=\"showImpersonationModal\"\n [oidcBaseUri]=\"oidcBaseUri()\"\n [oidcDefaultIdp]=\"oidcDefaultIdp()\"\n [accessTokenPayload]=\"accessTokenPayload()\"\n (dismiss)=\"showImpersonationModal = false\"\n (init)=\"showImpersonationModal = true\"\n></lib-impersonate-modal>\n", styles: [""], dependencies: [{ kind: "component", type: HbllHeaderComponent, selector: "lib-hbll-header", inputs: ["name", "mainsitebaseurl", "showImpersonateButton"], outputs: ["openImpersonationModal", "login", "logout"] }, { kind: "component", type: ImpersonationBannerComponent, selector: "lib-impersonation-banner", inputs: ["accessTokenPayload", "personBaseUri", "libraryApiBaseUri"], outputs: ["endImpersonation"] }, { kind: "component", type: ImpersonateModalComponent, selector: "lib-impersonate-modal", inputs: ["showModal", "oidcBaseUri", "oidcDefaultIdp", "accessTokenPayload"], outputs: ["dismiss", "init"] }] }); }
1195
+ }
1196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HeaderWithImpersonationComponent, decorators: [{
1197
+ type: Component,
1198
+ args: [{ selector: 'lib-header-with-impersonation', standalone: true, imports: [HbllHeaderComponent, ImpersonationBannerComponent, ImpersonateModalComponent], template: "<lib-impersonation-banner\n [accessTokenPayload]=\"accessTokenPayload()\"\n (endImpersonation)=\"endImpersonation.emit()\"\n></lib-impersonation-banner>\n<lib-hbll-header\n [name]=\"name()\"\n [showImpersonateButton]=\"showImpersonateButton()\"\n (openImpersonationModal)=\"showImpersonationModal = true\"\n (login)=\"login.emit()\"\n (logout)=\"logout.emit()\"\n [mainsitebaseurl]=\"mainSiteBaseUrl()\"\n/>\n<lib-impersonate-modal\n [showModal]=\"showImpersonationModal\"\n [oidcBaseUri]=\"oidcBaseUri()\"\n [oidcDefaultIdp]=\"oidcDefaultIdp()\"\n [accessTokenPayload]=\"accessTokenPayload()\"\n (dismiss)=\"showImpersonationModal = false\"\n (init)=\"showImpersonationModal = true\"\n></lib-impersonate-modal>\n" }]
1199
+ }], propDecorators: { login: [{
1200
+ type: Output
1201
+ }], logout: [{
1202
+ type: Output
1203
+ }], endImpersonation: [{
1204
+ type: Output
1205
+ }] } });
1206
+
884
1207
  const ADVANCED_SEARCH_QUALIFIER_MAP = {
885
1208
  contains: 'contains',
886
1209
  begins_with: 'begins with',
@@ -1178,11 +1501,11 @@ class HbllMultiSelectComponent {
1178
1501
  }
1179
1502
  }
1180
1503
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllMultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1181
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HbllMultiSelectComponent, isStandalone: true, selector: "lib-hbll-multi-select", inputs: { allOptions: "allOptions", label: "label", selectedKeys: "selectedKeys" }, outputs: { selectedKeysChange: "selectedKeysChange" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"components-multi-select\">\n <mat-form-field appearance=\"outline\">\n <mat-chip-grid #chipGrid [attr.aria-label]=\"label + ' selection'\">\n @for (key of selectedKeys; track key) {\n @if (allOptions[key]) {\n <mat-chip-row (removed)=\"removeOption(key)\" data-testid=\"matChipRow\">\n {{ allOptions[key] }}\n <button\n matChipRemove\n [attr.aria-label]=\"'remove ' + allOptions[key]\"\n [attr.data-testid]=\"'remove' + key\"\n >\n <span class=\"material-symbols-outlined components-icon\"> cancel </span>\n </button>\n </mat-chip-row>\n }\n }\n </mat-chip-grid>\n <label class=\"components-hidden\" for=\"input\">{{ label }}</label>\n <input\n [placeholder]=\"label | titlecase\"\n #input\n id=\"input\"\n [formControl]=\"inputControl\"\n [matChipInputFor]=\"chipGrid\"\n [matAutocomplete]=\"auto\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n (matChipInputTokenEnd)=\"addOption($event)\"\n data-testid=\"input\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"selectOption($event)\"\n data-testid=\"autocomplete\"\n >\n @for (key of filteredOptions$ | async; track key) {\n <mat-option [value]=\"key\" data-testid=\"autocompleteOption\">\n {{ allOptions[key] }}\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</div>\n", styles: [".components-multi-select{font:inherit}.components-multi-select mat-form-field{font:inherit;background-color:#fff;width:100%}.components-multi-select mat-form-field .mat-mdc-form-field-infix{padding:.35em 0;min-height:0}.components-multi-select mat-form-field .mat-mdc-chip-input{font:inherit;margin-left:0}.components-multi-select mat-form-field .mat-mdc-chip-input::placeholder{opacity:.75}.components-multi-select mat-form-field .mat-mdc-text-field-wrapper{padding:0 .5em}.components-multi-select .components-icon{font-size:1em}.components-multi-select .mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{font:inherit}.components-multi-select .components-hidden{display:none}.mat-mdc-option.mdc-list-item{background-color:#fff;font:inherit}.mat-mdc-autocomplete-panel{background-color:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i2$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i2$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i2$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i2$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1504
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HbllMultiSelectComponent, isStandalone: true, selector: "lib-multi-select", inputs: { allOptions: "allOptions", label: "label", selectedKeys: "selectedKeys" }, outputs: { selectedKeysChange: "selectedKeysChange" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"components-multi-select\">\n <mat-form-field appearance=\"outline\">\n <mat-chip-grid #chipGrid [attr.aria-label]=\"label + ' selection'\">\n @for (key of selectedKeys; track key) {\n @if (allOptions[key]) {\n <mat-chip-row (removed)=\"removeOption(key)\" data-testid=\"matChipRow\">\n {{ allOptions[key] }}\n <button\n matChipRemove\n [attr.aria-label]=\"'remove ' + allOptions[key]\"\n [attr.data-testid]=\"'remove' + key\"\n >\n <span class=\"material-symbols-outlined components-icon\"> cancel </span>\n </button>\n </mat-chip-row>\n }\n }\n </mat-chip-grid>\n <label class=\"components-hidden\" for=\"input\">{{ label }}</label>\n <input\n [placeholder]=\"label | titlecase\"\n #input\n id=\"input\"\n [formControl]=\"inputControl\"\n [matChipInputFor]=\"chipGrid\"\n [matAutocomplete]=\"auto\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n (matChipInputTokenEnd)=\"addOption($event)\"\n data-testid=\"input\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"selectOption($event)\"\n data-testid=\"autocomplete\"\n >\n @for (key of filteredOptions$ | async; track key) {\n <mat-option [value]=\"key\" data-testid=\"autocompleteOption\">\n {{ allOptions[key] }}\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</div>\n", styles: [".components-multi-select{font:inherit}.components-multi-select mat-form-field{font:inherit;background-color:#fff;width:100%}.components-multi-select mat-form-field .mat-mdc-form-field-infix{padding:.35em 0;min-height:0}.components-multi-select mat-form-field .mat-mdc-chip-input{font:inherit;margin-left:0}.components-multi-select mat-form-field .mat-mdc-chip-input::placeholder{opacity:.75}.components-multi-select mat-form-field .mat-mdc-text-field-wrapper{padding:0 .5em}.components-multi-select .components-icon{font-size:1em}.components-multi-select .mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{font:inherit}.components-multi-select .components-hidden{display:none}.mat-mdc-option.mdc-list-item{background-color:#fff;font:inherit}.mat-mdc-autocomplete-panel{background-color:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i2$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i2$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i2$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i2$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1182
1505
  }
1183
1506
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllMultiSelectComponent, decorators: [{
1184
1507
  type: Component,
1185
- args: [{ selector: 'lib-hbll-multi-select', standalone: true, imports: [
1508
+ args: [{ selector: 'lib-multi-select', standalone: true, imports: [
1186
1509
  CommonModule,
1187
1510
  MatChipsModule,
1188
1511
  MatFormFieldModule,
@@ -1208,11 +1531,11 @@ class HbllCheckboxComponent {
1208
1531
  this.isChecked = input(false);
1209
1532
  }
1210
1533
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HbllCheckboxComponent, isStandalone: true, selector: "lib-hbll-checkbox", inputs: { isChecked: { classPropertyName: "isChecked", publicName: "isChecked", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<span class=\"components-checkbox-container\" [class.components-checked]=\"isChecked()\">\n @if (isChecked()) {\n <span class=\"material-symbols-outlined components-icon\"> check </span>\n }\n</span>\n", styles: [".components-checkbox-container{transition:.15s;height:1.13em;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border-radius:4px;border:solid 1px #707070;color:#fff;box-sizing:border-box;position:relative}.components-checkbox-container.components-checked{border-color:#3a6093;background-color:#3a6093}.components-checkbox-container.components-checked .components-icon{position:absolute;font-size:1.1em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
1534
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HbllCheckboxComponent, isStandalone: true, selector: "lib-checkbox", inputs: { isChecked: { classPropertyName: "isChecked", publicName: "isChecked", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<span class=\"components-checkbox-container\" [class.components-checked]=\"isChecked()\">\n @if (isChecked()) {\n <span class=\"material-symbols-outlined components-icon\"> check </span>\n }\n</span>\n", styles: [".components-checkbox-container{transition:.15s;height:1.13em;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border-radius:4px;border:solid 1px #707070;color:#fff;box-sizing:border-box;position:relative}.components-checkbox-container.components-checked{border-color:#3a6093;background-color:#3a6093}.components-checkbox-container.components-checked .components-icon{position:absolute;font-size:1.1em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
1212
1535
  }
1213
1536
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllCheckboxComponent, decorators: [{
1214
1537
  type: Component,
1215
- args: [{ selector: 'lib-hbll-checkbox', standalone: true, imports: [CommonModule], template: "<span class=\"components-checkbox-container\" [class.components-checked]=\"isChecked()\">\n @if (isChecked()) {\n <span class=\"material-symbols-outlined components-icon\"> check </span>\n }\n</span>\n", styles: [".components-checkbox-container{transition:.15s;height:1.13em;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border-radius:4px;border:solid 1px #707070;color:#fff;box-sizing:border-box;position:relative}.components-checkbox-container.components-checked{border-color:#3a6093;background-color:#3a6093}.components-checkbox-container.components-checked .components-icon{position:absolute;font-size:1.1em}\n"] }]
1538
+ args: [{ selector: 'lib-checkbox', standalone: true, imports: [CommonModule], template: "<span class=\"components-checkbox-container\" [class.components-checked]=\"isChecked()\">\n @if (isChecked()) {\n <span class=\"material-symbols-outlined components-icon\"> check </span>\n }\n</span>\n", styles: [".components-checkbox-container{transition:.15s;height:1.13em;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border-radius:4px;border:solid 1px #707070;color:#fff;box-sizing:border-box;position:relative}.components-checkbox-container.components-checked{border-color:#3a6093;background-color:#3a6093}.components-checkbox-container.components-checked .components-icon{position:absolute;font-size:1.1em}\n"] }]
1216
1539
  }] });
1217
1540
 
1218
1541
  class DateRangeComponent {
@@ -1262,11 +1585,11 @@ class DateRangeComponent {
1262
1585
  this.dateForm.controls.to.setValue(to);
1263
1586
  }
1264
1587
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DateRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1265
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DateRangeComponent, isStandalone: true, selector: "lib-date-range", inputs: { from: "from", to: "to" }, outputs: { validDateChange: "validDateChange", fromChange: "fromChange", toChange: "toChange" }, ngImport: i0, template: "<form id=\"fromTo\" data-testid=\"fromTo\" [formGroup]=\"dateForm\">\n <label for=\"fromFacet\">Between</label>\n <input\n formControlName=\"from\"\n id=\"fromFacet\"\n name=\"fromFacet\"\n data-testid=\"from\"\n placeholder=\"YYYY\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n (input)=\"onFromChange()\"\n [class.error]=\"\n dateForm.errors?.['fromInvalid'] || dateForm.controls.from.errors?.['pattern']\n \"\n />\n <label for=\"toFacet\">and</label>\n <input\n formControlName=\"to\"\n id=\"toFacet\"\n name=\"toFacet\"\n data-testid=\"to\"\n placeholder=\"YYYY\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n (input)=\"onToChange()\"\n [class.error]=\"dateForm.errors?.['toInvalid'] || dateForm.controls.to.errors?.['pattern']\"\n />\n</form>\n", styles: ["input{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}input:focus{border-color:#3a6093}#fromTo{margin-top:.6rem;margin-bottom:.8rem}#fromTo label{margin-right:.7em}#fromTo label:not(:first-of-type){margin-left:.7em}#fromTo input{font-size:inherit;width:3.5em}#fromTo input.error{border-color:#b04940}@media screen and (min-width: 690px){#fromTo{margin-bottom:1.4rem}#fromTo label{margin-right:.65em}#fromTo label:not(:first-of-type){margin-left:.65em}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], animations: [libHbllFadeInOut], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1588
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DateRangeComponent, isStandalone: true, selector: "lib-date-range", inputs: { from: "from", to: "to" }, outputs: { validDateChange: "validDateChange", fromChange: "fromChange", toChange: "toChange" }, ngImport: i0, template: "<form id=\"fromTo\" data-testid=\"fromTo\" [formGroup]=\"dateForm\">\n <label for=\"fromFacet\">Between</label>\n <input\n formControlName=\"from\"\n id=\"fromFacet\"\n name=\"fromFacet\"\n data-testid=\"from\"\n placeholder=\"YYYY\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n (input)=\"onFromChange()\"\n [class.error]=\"\n dateForm.errors?.['fromInvalid'] || dateForm.controls.from.errors?.['pattern']\n \"\n />\n <label for=\"toFacet\">and</label>\n <input\n formControlName=\"to\"\n id=\"toFacet\"\n name=\"toFacet\"\n data-testid=\"to\"\n placeholder=\"YYYY\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n (input)=\"onToChange()\"\n [class.error]=\"dateForm.errors?.['toInvalid'] || dateForm.controls.to.errors?.['pattern']\"\n />\n</form>\n", styles: ["input{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}input:focus{outline-color:#3a6093}#fromTo{margin-top:.6rem;margin-bottom:.8rem}#fromTo label{margin-right:.7em}#fromTo label:not(:first-of-type){margin-left:.7em}#fromTo input{font-size:inherit;width:3.5em}#fromTo input.error{border-color:#b04940}@media screen and (min-width: 690px){#fromTo{margin-bottom:1.4rem}#fromTo label{margin-right:.65em}#fromTo label:not(:first-of-type){margin-left:.65em}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], animations: [libHbllFadeInOut], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1266
1589
  }
1267
1590
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DateRangeComponent, decorators: [{
1268
1591
  type: Component,
1269
- args: [{ selector: 'lib-date-range', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, ReactiveFormsModule], animations: [libHbllFadeInOut], template: "<form id=\"fromTo\" data-testid=\"fromTo\" [formGroup]=\"dateForm\">\n <label for=\"fromFacet\">Between</label>\n <input\n formControlName=\"from\"\n id=\"fromFacet\"\n name=\"fromFacet\"\n data-testid=\"from\"\n placeholder=\"YYYY\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n (input)=\"onFromChange()\"\n [class.error]=\"\n dateForm.errors?.['fromInvalid'] || dateForm.controls.from.errors?.['pattern']\n \"\n />\n <label for=\"toFacet\">and</label>\n <input\n formControlName=\"to\"\n id=\"toFacet\"\n name=\"toFacet\"\n data-testid=\"to\"\n placeholder=\"YYYY\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n (input)=\"onToChange()\"\n [class.error]=\"dateForm.errors?.['toInvalid'] || dateForm.controls.to.errors?.['pattern']\"\n />\n</form>\n", styles: ["input{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}input:focus{border-color:#3a6093}#fromTo{margin-top:.6rem;margin-bottom:.8rem}#fromTo label{margin-right:.7em}#fromTo label:not(:first-of-type){margin-left:.7em}#fromTo input{font-size:inherit;width:3.5em}#fromTo input.error{border-color:#b04940}@media screen and (min-width: 690px){#fromTo{margin-bottom:1.4rem}#fromTo label{margin-right:.65em}#fromTo label:not(:first-of-type){margin-left:.65em}}\n"] }]
1592
+ args: [{ selector: 'lib-date-range', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, ReactiveFormsModule], animations: [libHbllFadeInOut], template: "<form id=\"fromTo\" data-testid=\"fromTo\" [formGroup]=\"dateForm\">\n <label for=\"fromFacet\">Between</label>\n <input\n formControlName=\"from\"\n id=\"fromFacet\"\n name=\"fromFacet\"\n data-testid=\"from\"\n placeholder=\"YYYY\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n (input)=\"onFromChange()\"\n [class.error]=\"\n dateForm.errors?.['fromInvalid'] || dateForm.controls.from.errors?.['pattern']\n \"\n />\n <label for=\"toFacet\">and</label>\n <input\n formControlName=\"to\"\n id=\"toFacet\"\n name=\"toFacet\"\n data-testid=\"to\"\n placeholder=\"YYYY\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n (input)=\"onToChange()\"\n [class.error]=\"dateForm.errors?.['toInvalid'] || dateForm.controls.to.errors?.['pattern']\"\n />\n</form>\n", styles: ["input{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}input:focus{outline-color:#3a6093}#fromTo{margin-top:.6rem;margin-bottom:.8rem}#fromTo label{margin-right:.7em}#fromTo label:not(:first-of-type){margin-left:.7em}#fromTo input{font-size:inherit;width:3.5em}#fromTo input.error{border-color:#b04940}@media screen and (min-width: 690px){#fromTo{margin-bottom:1.4rem}#fromTo label{margin-right:.65em}#fromTo label:not(:first-of-type){margin-left:.65em}}\n"] }]
1270
1593
  }], propDecorators: { validDateChange: [{
1271
1594
  type: Output
1272
1595
  }], fromChange: [{
@@ -1509,7 +1832,7 @@ class AdvancedSearchComponent {
1509
1832
  return this.advancedSearchForm.controls.expandResults.controls.applyEquivalentSubjects;
1510
1833
  }
1511
1834
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AdvancedSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1512
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: AdvancedSearchComponent, isStandalone: true, selector: "lib-ss-advanced-search", inputs: { config: "config" }, outputs: { advancedSearch: "advancedSearch" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "inputTooltip", first: true, predicate: MatTooltip, descendants: true }], ngImport: i0, template: "<form\n data-testid=\"advancedSearchForm\"\n (submit)=\"config.scope === 'local' ? doLocalAdvancedSearch() : doExternalAdvancedSearch()\"\n [formGroup]=\"advancedSearchForm\"\n class=\"ss-adv-search-wrapper\"\n>\n <h3>Advanced Search</h3>\n <!-- Queries -->\n @for (query of queries.controls; track $index; let queryIndex = $index) {\n <div class=\"ss-adv-search-row\" [formGroup]=\"query\">\n <!-- Boolean operator -->\n <!-- Add boolean for each row except for first -->\n @if (!$first) {\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'boolean' + queryIndex\"\n [formControlName]=\"'boolean'\"\n [attr.data-testid]=\"'boolean' + queryIndex\"\n >\n @for (boolean of advancedSearchOptions.boolean; track boolean) {\n <option [ngValue]=\"boolean\">\n {{ boolean }}\n </option>\n }\n </select>\n </div>\n }\n <!-- Field -->\n <label [for]=\"'field' + queryIndex\" class=\"ss-hidden\">Field {{ queryIndex }}</label>\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'field' + queryIndex\"\n [formControlName]=\"'field'\"\n [attr.data-testid]=\"'field' + queryIndex\"\n >\n @for (field of advancedSearchOptions.fields; track field) {\n <option [ngValue]=\"field\">\n {{ advancedSearchFieldMap[field] }}\n </option>\n }\n <optgroup\n [label]=\"(config.scope === 'external' ? 'Online' : 'Library') + ' Specific'\"\n >\n @for (\n field of config.scope === 'external'\n ? advancedSearchOptions.externalFields\n : advancedSearchOptions.localFields;\n track field\n ) {\n <option [ngValue]=\"field\">\n {{ advancedSearchFieldMap[field] }}\n </option>\n }\n </optgroup>\n </select>\n </div>\n <!-- Qualifiers are only available for local searches -->\n @if (config.scope === 'local') {\n <label [for]=\"'qualifier' + queryIndex\" class=\"ss-hidden\"\n >Match Criteria {{ queryIndex }}</label\n >\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'qualifier' + queryIndex\"\n [formControlName]=\"'qualifier'\"\n [attr.data-testid]=\"'qualifier' + queryIndex\"\n >\n <!-- $any because a field can technically be local or external, though this block is scoped strictly to local fields -->\n @for (\n qualifier of $any(advancedSearchOptions.qualifiers)[\n query.controls.field.value\n ];\n track qualifier;\n let optionIndex = $index\n ) {\n <option\n [ngValue]=\"qualifier\"\n [attr.data-testid]=\"\n 'qualifier' + queryIndex + '-option' + optionIndex\n \"\n >\n {{ $any(advancedSearchQualifierMap)[qualifier] }}\n </option>\n }\n </select>\n </div>\n }\n <!-- Query -->\n <label [for]=\"'query' + queryIndex\" class=\"ss-hidden\">Query {{ queryIndex }}</label>\n <div class=\"ss-query-input\">\n <input\n #searchInput\n [id]=\"'query' + queryIndex\"\n [formControlName]=\"'query'\"\n [attr.data-testid]=\"'query' + queryIndex\"\n required\n aria-required=\"true\"\n matTooltip=\"Fill out this field\"\n [matTooltipPosition]=\"'above'\"\n [matTooltipDisabled]=\"true\"\n [attr.aria-invalid]=\"isSubmitted && queries.at(0).controls.query.invalid\"\n aria-describedby=\"invalidInputDesc\"\n />\n </div>\n @if (!$first) {\n <button\n class=\"ss-row-cancel\"\n type=\"button\"\n (click)=\"removeQuery(queryIndex)\"\n [attr.data-testid]=\"'cancelRow' + queryIndex\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> cancel </span>\n </button>\n }\n </div>\n }\n <button\n type=\"button\"\n (click)=\"addQuery()\"\n id=\"addQueryBtn\"\n data-testid=\"addQuery\"\n [disabled]=\"queries.length > 11\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> add </span>\n Add a row\n </button>\n <!-- OTHER OPTIONS -->\n <div class=\"ss-other-options\">\n <!-- LOCAL -->\n @if (config.scope === 'local') {\n <!-- Type -->\n <div data-testid=\"resourceType\">\n <h4>Resource Type</h4>\n <div class=\"ss-multi-select-wrapper\">\n <lib-hbll-multi-select\n [label]=\"'Resource Type'\"\n [allOptions]=\"advancedSearchOptions.types[config.institution]\"\n [selectedKeys]=\"types.value\"\n (selectedKeysChange)=\"types.setValue($event)\"\n ></lib-hbll-multi-select>\n </div>\n </div>\n <!-- Collection -->\n <div data-testid=\"collection\">\n <h4>Collection</h4>\n <div class=\"ss-multi-select-wrapper\">\n <lib-hbll-multi-select\n [label]=\"'Collection'\"\n [allOptions]=\"advancedSearchOptions.collections[config.institution]\"\n [selectedKeys]=\"collections.value\"\n (selectedKeysChange)=\"collections.setValue($event)\"\n ></lib-hbll-multi-select>\n </div>\n </div>\n <!-- Language -->\n <ng-container *ngTemplateOutlet=\"languageBlock\"></ng-container>\n <!-- Date -->\n <ng-container\n *ngTemplateOutlet=\"dateBlock; context: { header: 'Creation Date' }\"\n ></ng-container>\n }\n <!-- EXTERNAL -->\n @if (config.scope === 'external') {\n <div formGroupName=\"limitResults\" class=\"ss-checkbox-section\">\n <h4>For Fewer Results Try</h4>\n <!-- Peer reviewed -->\n <label class=\"ss-checkbox-label\" for=\"peerReviewed\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"peerReviewed\"\n type=\"checkbox\"\n [formControlName]=\"'peerReviewed'\"\n data-testid=\"peerReviewed\"\n />\n <lib-hbll-checkbox [isChecked]=\"peerReviewed.value\"></lib-hbll-checkbox>\n <span class=\"ss-label-text\">Peer reviewed journal articles</span>\n </label>\n </div>\n <div formGroupName=\"expandResults\" class=\"ss-checkbox-section\">\n <h4>For More Results Try</h4>\n <!-- Apply equivalent subjects -->\n <label class=\"ss-checkbox-label\" for=\"applyEquivalentSubjects\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"applyEquivalentSubjects\"\n type=\"checkbox\"\n [formControlName]=\"'applyEquivalentSubjects'\"\n data-testid=\"applyEquivalentSubjects\"\n />\n <lib-hbll-checkbox\n [isChecked]=\"applyEquivalentSubjects.value\"\n ></lib-hbll-checkbox>\n <span class=\"ss-label-text\">Apply equivalent subjects</span>\n </label>\n <!-- Full text -->\n <label class=\"ss-checkbox-label\" for=\"fullText\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"fullText\"\n type=\"checkbox\"\n [formControlName]=\"'fullText'\"\n data-testid=\"fullText\"\n />\n <lib-hbll-checkbox [isChecked]=\"fullText.value\"></lib-hbll-checkbox>\n <span class=\"ss-label-text\"\n >Include results the library doesn't have access to</span\n >\n </label>\n </div>\n <!-- Date -->\n <ng-container\n *ngTemplateOutlet=\"dateBlock; context: { header: 'Date Published' }\"\n ></ng-container>\n <!-- Language -->\n <ng-container *ngTemplateOutlet=\"languageBlock\"></ng-container>\n }\n </div>\n <div id=\"advSearchFooter\">\n <a [href]=\"'https://lib.byu.edu/browse/' + config.institution\">Alphabetic Browse</a>\n <button\n class=\"pill-btn--components\"\n [ngClass]=\"{\n ensign: config.institution === 'ensign',\n }\"\n type=\"submit\"\n data-testid=\"advSearchSubmitButton\"\n >\n Search\n </button>\n </div>\n</form>\n\n<ng-template #languageBlock>\n <div>\n <h4>Language</h4>\n <lib-hbll-multi-select\n [label]=\"'language'\"\n [allOptions]=\"advancedSearchOptions.languages\"\n [selectedKeys]=\"languages.value\"\n (selectedKeysChange)=\"languages.setValue($any($event))\"\n ></lib-hbll-multi-select>\n </div>\n</ng-template>\n<ng-template #dateBlock let-header=\"header\">\n <div id=\"dateOptions\" class=\"external\">\n <h4>{{ header }}</h4>\n <lib-date-range\n [from]=\"from.value\"\n [to]=\"to.value\"\n (fromChange)=\"from.setValue($event)\"\n (toChange)=\"to.setValue($event)\"\n ></lib-date-range>\n </div>\n</ng-template>\n", styles: ["button.ensign{background-color:#2b6042!important;border-color:#2a6142}button.ensign:hover{background-color:#357551!important}a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}select,textarea,input{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}select:focus,textarea:focus,input:focus{border-color:#3a6093}.ss-select-wrapper{position:relative}.ss-select-wrapper select{cursor:pointer;padding-right:2em}.ss-select-wrapper:after{font-family:Material Symbols Outlined;content:\"arrow_drop_down\";pointer-events:none;top:0;font-size:1.5em;right:.2em;height:100%;position:absolute;display:flex;align-items:center;opacity:70%}.pill-btn--components{background-color:#4070b0;font-size:1em;transition:all .15s;color:#fff;cursor:pointer;font-weight:600;text-align:center}.pill-btn--components:disabled{color:#707070;background-color:#e6e6e6;pointer-events:none}.pill-btn--components:hover{background-color:#6892ca;color:#fff}.destructive.pill-btn--components{background-color:#b04940}.destructive.pill-btn--components:hover{background-color:#c7574d}.pill-btn--components{border-radius:100em;padding:.4em 1.3em}:host{box-sizing:border-box}:host *{box-sizing:inherit}.ss-select-wrapper{margin-right:.3em}.ss-row-cancel{color:#aaa;margin-left:.4em;margin-top:.4em}.ss-row-cancel:hover{color:#666}.ss-row-cancel .ss-icon{font-size:1em}.ss-hidden{display:none}#addQueryBtn{display:flex;align-items:center}#addQueryBtn:disabled{color:#999;pointer-events:none}#addQueryBtn .icon{font-size:1em}.ss-adv-search-wrapper{width:100%}h3{font-size:1.13em;font-weight:300;margin-bottom:.7em;margin-top:0}h4{margin-bottom:.3em;font-weight:600}#dateOptions h4{margin-bottom:.8em}.ss-adv-search-row{display:flex;flex-wrap:wrap;width:100%;margin-bottom:.6em}.ss-query-input{display:inline-block;width:100%;margin-top:.4rem}.ss-query-input input{width:100%}.ss-other-options{display:grid;grid-template-columns:repeat(1,1fr);gap:.6em 1.6em;grid-auto-rows:minmax(1em,auto);margin-top:1.4em}.ss-other-options label{margin-right:1rem}.ss-checkbox-label{display:inline-flex;align-items:flex-start;cursor:pointer}.ss-checkbox-label:not(:last-of-type){margin-bottom:.75em}.ss-checkbox-label .ss-label-text{margin-top:-.1em;margin-left:.45em}.ss-checkbox-section{margin-bottom:.8em}#advSearchFooter{margin-bottom:.5em;display:flex;justify-content:space-between;align-items:center;font-size:1.2em}#advSearchFooter a{font-size:.8em}@media screen and (min-width: 615px){.ss-adv-search-row{flex-wrap:nowrap}.ss-other-options{grid-template-columns:repeat(2,1fr)}.ss-query-input{margin-top:0}#dateOptions .external{grid-column:span 2}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: HbllMultiSelectComponent, selector: "lib-hbll-multi-select", inputs: ["allOptions", "label", "selectedKeys"], outputs: ["selectedKeysChange"] }, { kind: "component", type: HbllCheckboxComponent, selector: "lib-hbll-checkbox", inputs: ["isChecked"] }, { kind: "component", type: DateRangeComponent, selector: "lib-date-range", inputs: ["from", "to"], outputs: ["validDateChange", "fromChange", "toChange"] }] }); }
1835
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: AdvancedSearchComponent, isStandalone: true, selector: "lib-ss-advanced-search", inputs: { config: "config" }, outputs: { advancedSearch: "advancedSearch" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "inputTooltip", first: true, predicate: MatTooltip, descendants: true }], ngImport: i0, template: "<form\n data-testid=\"advancedSearchForm\"\n (submit)=\"config.scope === 'local' ? doLocalAdvancedSearch() : doExternalAdvancedSearch()\"\n [formGroup]=\"advancedSearchForm\"\n class=\"ss-adv-search-wrapper\"\n>\n <h3>Advanced Search</h3>\n <!-- Queries -->\n @for (query of queries.controls; track $index; let queryIndex = $index) {\n <div class=\"ss-adv-search-row\" [formGroup]=\"query\">\n <!-- Boolean operator -->\n <!-- Add boolean for each row except for first -->\n @if (!$first) {\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'boolean' + queryIndex\"\n [formControlName]=\"'boolean'\"\n [attr.data-testid]=\"'boolean' + queryIndex\"\n >\n @for (boolean of advancedSearchOptions.boolean; track boolean) {\n <option [ngValue]=\"boolean\">\n {{ boolean }}\n </option>\n }\n </select>\n </div>\n }\n <!-- Field -->\n <label [for]=\"'field' + queryIndex\" class=\"ss-hidden\">Field {{ queryIndex }}</label>\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'field' + queryIndex\"\n [formControlName]=\"'field'\"\n [attr.data-testid]=\"'field' + queryIndex\"\n >\n @for (field of advancedSearchOptions.fields; track field) {\n <option [ngValue]=\"field\">\n {{ advancedSearchFieldMap[field] }}\n </option>\n }\n <optgroup\n [label]=\"(config.scope === 'external' ? 'Online' : 'Library') + ' Specific'\"\n >\n @for (\n field of config.scope === 'external'\n ? advancedSearchOptions.externalFields\n : advancedSearchOptions.localFields;\n track field\n ) {\n <option [ngValue]=\"field\">\n {{ advancedSearchFieldMap[field] }}\n </option>\n }\n </optgroup>\n </select>\n </div>\n <!-- Qualifiers are only available for local searches -->\n @if (config.scope === 'local') {\n <label [for]=\"'qualifier' + queryIndex\" class=\"ss-hidden\"\n >Match Criteria {{ queryIndex }}</label\n >\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'qualifier' + queryIndex\"\n [formControlName]=\"'qualifier'\"\n [attr.data-testid]=\"'qualifier' + queryIndex\"\n >\n <!-- $any because a field can technically be local or external, though this block is scoped strictly to local fields -->\n @for (\n qualifier of $any(advancedSearchOptions.qualifiers)[\n query.controls.field.value\n ];\n track qualifier;\n let optionIndex = $index\n ) {\n <option\n [ngValue]=\"qualifier\"\n [attr.data-testid]=\"\n 'qualifier' + queryIndex + '-option' + optionIndex\n \"\n >\n {{ $any(advancedSearchQualifierMap)[qualifier] }}\n </option>\n }\n </select>\n </div>\n }\n <!-- Query -->\n <label [for]=\"'query' + queryIndex\" class=\"ss-hidden\">Query {{ queryIndex }}</label>\n <div class=\"ss-query-input\">\n <input\n #searchInput\n [id]=\"'query' + queryIndex\"\n [formControlName]=\"'query'\"\n [attr.data-testid]=\"'query' + queryIndex\"\n required\n aria-required=\"true\"\n matTooltip=\"Fill out this field\"\n [matTooltipPosition]=\"'above'\"\n [matTooltipDisabled]=\"true\"\n [attr.aria-invalid]=\"isSubmitted && queries.at(0).controls.query.invalid\"\n aria-describedby=\"invalidInputDesc\"\n />\n </div>\n @if (!$first) {\n <button\n class=\"ss-row-cancel\"\n type=\"button\"\n (click)=\"removeQuery(queryIndex)\"\n [attr.data-testid]=\"'cancelRow' + queryIndex\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> cancel </span>\n </button>\n }\n </div>\n }\n <button\n type=\"button\"\n (click)=\"addQuery()\"\n id=\"addQueryBtn\"\n data-testid=\"addQuery\"\n [disabled]=\"queries.length > 11\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> add </span>\n Add a row\n </button>\n <!-- OTHER OPTIONS -->\n <div class=\"ss-other-options\">\n <!-- LOCAL -->\n @if (config.scope === 'local') {\n <!-- Type -->\n <div data-testid=\"resourceType\">\n <h4>Resource Type</h4>\n <div class=\"ss-multi-select-wrapper\">\n <lib-multi-select\n [label]=\"'Resource Type'\"\n [allOptions]=\"advancedSearchOptions.types[config.institution]\"\n [selectedKeys]=\"types.value\"\n (selectedKeysChange)=\"types.setValue($event)\"\n ></lib-multi-select>\n </div>\n </div>\n <!-- Collection -->\n <div data-testid=\"collection\">\n <h4>Collection</h4>\n <div class=\"ss-multi-select-wrapper\">\n <lib-multi-select\n [label]=\"'Collection'\"\n [allOptions]=\"advancedSearchOptions.collections[config.institution]\"\n [selectedKeys]=\"collections.value\"\n (selectedKeysChange)=\"collections.setValue($event)\"\n ></lib-multi-select>\n </div>\n </div>\n <!-- Language -->\n <ng-container *ngTemplateOutlet=\"languageBlock\"></ng-container>\n <!-- Date -->\n <ng-container\n *ngTemplateOutlet=\"dateBlock; context: { header: 'Creation Date' }\"\n ></ng-container>\n }\n <!-- EXTERNAL -->\n @if (config.scope === 'external') {\n <div formGroupName=\"limitResults\" class=\"ss-checkbox-section\">\n <h4>For Fewer Results Try</h4>\n <!-- Peer reviewed -->\n <label class=\"ss-checkbox-label\" for=\"peerReviewed\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"peerReviewed\"\n type=\"checkbox\"\n [formControlName]=\"'peerReviewed'\"\n data-testid=\"peerReviewed\"\n />\n <lib-checkbox [isChecked]=\"peerReviewed.value\"></lib-checkbox>\n <span class=\"ss-label-text\">Peer reviewed journal articles</span>\n </label>\n </div>\n <div formGroupName=\"expandResults\" class=\"ss-checkbox-section\">\n <h4>For More Results Try</h4>\n <!-- Apply equivalent subjects -->\n <label class=\"ss-checkbox-label\" for=\"applyEquivalentSubjects\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"applyEquivalentSubjects\"\n type=\"checkbox\"\n [formControlName]=\"'applyEquivalentSubjects'\"\n data-testid=\"applyEquivalentSubjects\"\n />\n <lib-checkbox [isChecked]=\"applyEquivalentSubjects.value\"></lib-checkbox>\n <span class=\"ss-label-text\">Apply equivalent subjects</span>\n </label>\n <!-- Full text -->\n <label class=\"ss-checkbox-label\" for=\"fullText\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"fullText\"\n type=\"checkbox\"\n [formControlName]=\"'fullText'\"\n data-testid=\"fullText\"\n />\n <lib-checkbox [isChecked]=\"fullText.value\"></lib-checkbox>\n <span class=\"ss-label-text\"\n >Include results the library doesn't have access to</span\n >\n </label>\n </div>\n <!-- Date -->\n <ng-container\n *ngTemplateOutlet=\"dateBlock; context: { header: 'Date Published' }\"\n ></ng-container>\n <!-- Language -->\n <ng-container *ngTemplateOutlet=\"languageBlock\"></ng-container>\n }\n </div>\n <div id=\"advSearchFooter\">\n <a [href]=\"'https://lib.byu.edu/browse/' + config.institution\">Alphabetic Browse</a>\n <button\n class=\"pill-btn--components\"\n [ngClass]=\"{\n ensign: config.institution === 'ensign',\n }\"\n type=\"submit\"\n data-testid=\"advSearchSubmitButton\"\n >\n Search\n </button>\n </div>\n</form>\n\n<ng-template #languageBlock>\n <div>\n <h4>Language</h4>\n <lib-multi-select\n [label]=\"'language'\"\n [allOptions]=\"advancedSearchOptions.languages\"\n [selectedKeys]=\"languages.value\"\n (selectedKeysChange)=\"languages.setValue($any($event))\"\n ></lib-multi-select>\n </div>\n</ng-template>\n<ng-template #dateBlock let-header=\"header\">\n <div id=\"dateOptions\" class=\"external\">\n <h4>{{ header }}</h4>\n <lib-date-range\n [from]=\"from.value\"\n [to]=\"to.value\"\n (fromChange)=\"from.setValue($event)\"\n (toChange)=\"to.setValue($event)\"\n ></lib-date-range>\n </div>\n</ng-template>\n", styles: ["button.ensign{background-color:#2b6042!important;border-color:#2a6142}button.ensign:hover{background-color:#357551!important}a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}select,textarea,input{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}select:focus,textarea:focus,input:focus{outline-color:#3a6093}.ss-select-wrapper{position:relative}.ss-select-wrapper select{cursor:pointer;padding-right:2em}.ss-select-wrapper:after{font-family:Material Symbols Outlined;content:\"arrow_drop_down\";pointer-events:none;top:0;font-size:1.5em;right:.2em;height:100%;position:absolute;display:flex;align-items:center;opacity:70%}.pill-btn--components{background-color:#4070b0;font-size:1em;transition:all .15s;color:#fff;cursor:pointer;font-weight:600;text-align:center}.pill-btn--components:disabled{color:#707070;background-color:#e6e6e6;pointer-events:none}.pill-btn--components:hover{background-color:#6892ca;color:#fff}.destructive.pill-btn--components{background-color:#b04940}.destructive.pill-btn--components:hover{background-color:#c7574d}.pill-btn--components{border-radius:100em;padding:.4em 1.3em}:host{box-sizing:border-box}:host *{box-sizing:inherit}.ss-select-wrapper{margin-right:.3em}.ss-row-cancel{color:#aaa;margin-left:.4em;margin-top:.4em}.ss-row-cancel:hover{color:#666}.ss-row-cancel .ss-icon{font-size:1em}.ss-hidden{display:none}#addQueryBtn{display:flex;align-items:center}#addQueryBtn:disabled{color:#999;pointer-events:none}#addQueryBtn .icon{font-size:1em}.ss-adv-search-wrapper{width:100%}h3{font-size:1.13em;font-weight:300;margin-bottom:.7em;margin-top:0}h4{margin-bottom:.3em;font-weight:600}#dateOptions h4{margin-bottom:.8em}.ss-adv-search-row{display:flex;flex-wrap:wrap;width:100%;margin-bottom:.6em}.ss-query-input{display:inline-block;width:100%;margin-top:.4rem}.ss-query-input input{width:100%}.ss-other-options{display:grid;grid-template-columns:repeat(1,1fr);gap:.6em 1.6em;grid-auto-rows:minmax(1em,auto);margin-top:1.4em}.ss-other-options label{margin-right:1rem}.ss-checkbox-label{display:inline-flex;align-items:flex-start;cursor:pointer}.ss-checkbox-label:not(:last-of-type){margin-bottom:.75em}.ss-checkbox-label .ss-label-text{margin-top:-.1em;margin-left:.45em}.ss-checkbox-section{margin-bottom:.8em}#advSearchFooter{margin-bottom:.5em;display:flex;justify-content:space-between;align-items:center;font-size:1.2em}#advSearchFooter a{font-size:.8em}@media screen and (min-width: 615px){.ss-adv-search-row{flex-wrap:nowrap}.ss-other-options{grid-template-columns:repeat(2,1fr)}.ss-query-input{margin-top:0}#dateOptions .external{grid-column:span 2}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: HbllMultiSelectComponent, selector: "lib-multi-select", inputs: ["allOptions", "label", "selectedKeys"], outputs: ["selectedKeysChange"] }, { kind: "component", type: HbllCheckboxComponent, selector: "lib-checkbox", inputs: ["isChecked"] }, { kind: "component", type: DateRangeComponent, selector: "lib-date-range", inputs: ["from", "to"], outputs: ["validDateChange", "fromChange", "toChange"] }] }); }
1513
1836
  }
1514
1837
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AdvancedSearchComponent, decorators: [{
1515
1838
  type: Component,
@@ -1521,7 +1844,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
1521
1844
  HbllMultiSelectComponent,
1522
1845
  HbllCheckboxComponent,
1523
1846
  DateRangeComponent,
1524
- ], template: "<form\n data-testid=\"advancedSearchForm\"\n (submit)=\"config.scope === 'local' ? doLocalAdvancedSearch() : doExternalAdvancedSearch()\"\n [formGroup]=\"advancedSearchForm\"\n class=\"ss-adv-search-wrapper\"\n>\n <h3>Advanced Search</h3>\n <!-- Queries -->\n @for (query of queries.controls; track $index; let queryIndex = $index) {\n <div class=\"ss-adv-search-row\" [formGroup]=\"query\">\n <!-- Boolean operator -->\n <!-- Add boolean for each row except for first -->\n @if (!$first) {\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'boolean' + queryIndex\"\n [formControlName]=\"'boolean'\"\n [attr.data-testid]=\"'boolean' + queryIndex\"\n >\n @for (boolean of advancedSearchOptions.boolean; track boolean) {\n <option [ngValue]=\"boolean\">\n {{ boolean }}\n </option>\n }\n </select>\n </div>\n }\n <!-- Field -->\n <label [for]=\"'field' + queryIndex\" class=\"ss-hidden\">Field {{ queryIndex }}</label>\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'field' + queryIndex\"\n [formControlName]=\"'field'\"\n [attr.data-testid]=\"'field' + queryIndex\"\n >\n @for (field of advancedSearchOptions.fields; track field) {\n <option [ngValue]=\"field\">\n {{ advancedSearchFieldMap[field] }}\n </option>\n }\n <optgroup\n [label]=\"(config.scope === 'external' ? 'Online' : 'Library') + ' Specific'\"\n >\n @for (\n field of config.scope === 'external'\n ? advancedSearchOptions.externalFields\n : advancedSearchOptions.localFields;\n track field\n ) {\n <option [ngValue]=\"field\">\n {{ advancedSearchFieldMap[field] }}\n </option>\n }\n </optgroup>\n </select>\n </div>\n <!-- Qualifiers are only available for local searches -->\n @if (config.scope === 'local') {\n <label [for]=\"'qualifier' + queryIndex\" class=\"ss-hidden\"\n >Match Criteria {{ queryIndex }}</label\n >\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'qualifier' + queryIndex\"\n [formControlName]=\"'qualifier'\"\n [attr.data-testid]=\"'qualifier' + queryIndex\"\n >\n <!-- $any because a field can technically be local or external, though this block is scoped strictly to local fields -->\n @for (\n qualifier of $any(advancedSearchOptions.qualifiers)[\n query.controls.field.value\n ];\n track qualifier;\n let optionIndex = $index\n ) {\n <option\n [ngValue]=\"qualifier\"\n [attr.data-testid]=\"\n 'qualifier' + queryIndex + '-option' + optionIndex\n \"\n >\n {{ $any(advancedSearchQualifierMap)[qualifier] }}\n </option>\n }\n </select>\n </div>\n }\n <!-- Query -->\n <label [for]=\"'query' + queryIndex\" class=\"ss-hidden\">Query {{ queryIndex }}</label>\n <div class=\"ss-query-input\">\n <input\n #searchInput\n [id]=\"'query' + queryIndex\"\n [formControlName]=\"'query'\"\n [attr.data-testid]=\"'query' + queryIndex\"\n required\n aria-required=\"true\"\n matTooltip=\"Fill out this field\"\n [matTooltipPosition]=\"'above'\"\n [matTooltipDisabled]=\"true\"\n [attr.aria-invalid]=\"isSubmitted && queries.at(0).controls.query.invalid\"\n aria-describedby=\"invalidInputDesc\"\n />\n </div>\n @if (!$first) {\n <button\n class=\"ss-row-cancel\"\n type=\"button\"\n (click)=\"removeQuery(queryIndex)\"\n [attr.data-testid]=\"'cancelRow' + queryIndex\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> cancel </span>\n </button>\n }\n </div>\n }\n <button\n type=\"button\"\n (click)=\"addQuery()\"\n id=\"addQueryBtn\"\n data-testid=\"addQuery\"\n [disabled]=\"queries.length > 11\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> add </span>\n Add a row\n </button>\n <!-- OTHER OPTIONS -->\n <div class=\"ss-other-options\">\n <!-- LOCAL -->\n @if (config.scope === 'local') {\n <!-- Type -->\n <div data-testid=\"resourceType\">\n <h4>Resource Type</h4>\n <div class=\"ss-multi-select-wrapper\">\n <lib-hbll-multi-select\n [label]=\"'Resource Type'\"\n [allOptions]=\"advancedSearchOptions.types[config.institution]\"\n [selectedKeys]=\"types.value\"\n (selectedKeysChange)=\"types.setValue($event)\"\n ></lib-hbll-multi-select>\n </div>\n </div>\n <!-- Collection -->\n <div data-testid=\"collection\">\n <h4>Collection</h4>\n <div class=\"ss-multi-select-wrapper\">\n <lib-hbll-multi-select\n [label]=\"'Collection'\"\n [allOptions]=\"advancedSearchOptions.collections[config.institution]\"\n [selectedKeys]=\"collections.value\"\n (selectedKeysChange)=\"collections.setValue($event)\"\n ></lib-hbll-multi-select>\n </div>\n </div>\n <!-- Language -->\n <ng-container *ngTemplateOutlet=\"languageBlock\"></ng-container>\n <!-- Date -->\n <ng-container\n *ngTemplateOutlet=\"dateBlock; context: { header: 'Creation Date' }\"\n ></ng-container>\n }\n <!-- EXTERNAL -->\n @if (config.scope === 'external') {\n <div formGroupName=\"limitResults\" class=\"ss-checkbox-section\">\n <h4>For Fewer Results Try</h4>\n <!-- Peer reviewed -->\n <label class=\"ss-checkbox-label\" for=\"peerReviewed\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"peerReviewed\"\n type=\"checkbox\"\n [formControlName]=\"'peerReviewed'\"\n data-testid=\"peerReviewed\"\n />\n <lib-hbll-checkbox [isChecked]=\"peerReviewed.value\"></lib-hbll-checkbox>\n <span class=\"ss-label-text\">Peer reviewed journal articles</span>\n </label>\n </div>\n <div formGroupName=\"expandResults\" class=\"ss-checkbox-section\">\n <h4>For More Results Try</h4>\n <!-- Apply equivalent subjects -->\n <label class=\"ss-checkbox-label\" for=\"applyEquivalentSubjects\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"applyEquivalentSubjects\"\n type=\"checkbox\"\n [formControlName]=\"'applyEquivalentSubjects'\"\n data-testid=\"applyEquivalentSubjects\"\n />\n <lib-hbll-checkbox\n [isChecked]=\"applyEquivalentSubjects.value\"\n ></lib-hbll-checkbox>\n <span class=\"ss-label-text\">Apply equivalent subjects</span>\n </label>\n <!-- Full text -->\n <label class=\"ss-checkbox-label\" for=\"fullText\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"fullText\"\n type=\"checkbox\"\n [formControlName]=\"'fullText'\"\n data-testid=\"fullText\"\n />\n <lib-hbll-checkbox [isChecked]=\"fullText.value\"></lib-hbll-checkbox>\n <span class=\"ss-label-text\"\n >Include results the library doesn't have access to</span\n >\n </label>\n </div>\n <!-- Date -->\n <ng-container\n *ngTemplateOutlet=\"dateBlock; context: { header: 'Date Published' }\"\n ></ng-container>\n <!-- Language -->\n <ng-container *ngTemplateOutlet=\"languageBlock\"></ng-container>\n }\n </div>\n <div id=\"advSearchFooter\">\n <a [href]=\"'https://lib.byu.edu/browse/' + config.institution\">Alphabetic Browse</a>\n <button\n class=\"pill-btn--components\"\n [ngClass]=\"{\n ensign: config.institution === 'ensign',\n }\"\n type=\"submit\"\n data-testid=\"advSearchSubmitButton\"\n >\n Search\n </button>\n </div>\n</form>\n\n<ng-template #languageBlock>\n <div>\n <h4>Language</h4>\n <lib-hbll-multi-select\n [label]=\"'language'\"\n [allOptions]=\"advancedSearchOptions.languages\"\n [selectedKeys]=\"languages.value\"\n (selectedKeysChange)=\"languages.setValue($any($event))\"\n ></lib-hbll-multi-select>\n </div>\n</ng-template>\n<ng-template #dateBlock let-header=\"header\">\n <div id=\"dateOptions\" class=\"external\">\n <h4>{{ header }}</h4>\n <lib-date-range\n [from]=\"from.value\"\n [to]=\"to.value\"\n (fromChange)=\"from.setValue($event)\"\n (toChange)=\"to.setValue($event)\"\n ></lib-date-range>\n </div>\n</ng-template>\n", styles: ["button.ensign{background-color:#2b6042!important;border-color:#2a6142}button.ensign:hover{background-color:#357551!important}a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}select,textarea,input{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}select:focus,textarea:focus,input:focus{border-color:#3a6093}.ss-select-wrapper{position:relative}.ss-select-wrapper select{cursor:pointer;padding-right:2em}.ss-select-wrapper:after{font-family:Material Symbols Outlined;content:\"arrow_drop_down\";pointer-events:none;top:0;font-size:1.5em;right:.2em;height:100%;position:absolute;display:flex;align-items:center;opacity:70%}.pill-btn--components{background-color:#4070b0;font-size:1em;transition:all .15s;color:#fff;cursor:pointer;font-weight:600;text-align:center}.pill-btn--components:disabled{color:#707070;background-color:#e6e6e6;pointer-events:none}.pill-btn--components:hover{background-color:#6892ca;color:#fff}.destructive.pill-btn--components{background-color:#b04940}.destructive.pill-btn--components:hover{background-color:#c7574d}.pill-btn--components{border-radius:100em;padding:.4em 1.3em}:host{box-sizing:border-box}:host *{box-sizing:inherit}.ss-select-wrapper{margin-right:.3em}.ss-row-cancel{color:#aaa;margin-left:.4em;margin-top:.4em}.ss-row-cancel:hover{color:#666}.ss-row-cancel .ss-icon{font-size:1em}.ss-hidden{display:none}#addQueryBtn{display:flex;align-items:center}#addQueryBtn:disabled{color:#999;pointer-events:none}#addQueryBtn .icon{font-size:1em}.ss-adv-search-wrapper{width:100%}h3{font-size:1.13em;font-weight:300;margin-bottom:.7em;margin-top:0}h4{margin-bottom:.3em;font-weight:600}#dateOptions h4{margin-bottom:.8em}.ss-adv-search-row{display:flex;flex-wrap:wrap;width:100%;margin-bottom:.6em}.ss-query-input{display:inline-block;width:100%;margin-top:.4rem}.ss-query-input input{width:100%}.ss-other-options{display:grid;grid-template-columns:repeat(1,1fr);gap:.6em 1.6em;grid-auto-rows:minmax(1em,auto);margin-top:1.4em}.ss-other-options label{margin-right:1rem}.ss-checkbox-label{display:inline-flex;align-items:flex-start;cursor:pointer}.ss-checkbox-label:not(:last-of-type){margin-bottom:.75em}.ss-checkbox-label .ss-label-text{margin-top:-.1em;margin-left:.45em}.ss-checkbox-section{margin-bottom:.8em}#advSearchFooter{margin-bottom:.5em;display:flex;justify-content:space-between;align-items:center;font-size:1.2em}#advSearchFooter a{font-size:.8em}@media screen and (min-width: 615px){.ss-adv-search-row{flex-wrap:nowrap}.ss-other-options{grid-template-columns:repeat(2,1fr)}.ss-query-input{margin-top:0}#dateOptions .external{grid-column:span 2}}\n"] }]
1847
+ ], template: "<form\n data-testid=\"advancedSearchForm\"\n (submit)=\"config.scope === 'local' ? doLocalAdvancedSearch() : doExternalAdvancedSearch()\"\n [formGroup]=\"advancedSearchForm\"\n class=\"ss-adv-search-wrapper\"\n>\n <h3>Advanced Search</h3>\n <!-- Queries -->\n @for (query of queries.controls; track $index; let queryIndex = $index) {\n <div class=\"ss-adv-search-row\" [formGroup]=\"query\">\n <!-- Boolean operator -->\n <!-- Add boolean for each row except for first -->\n @if (!$first) {\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'boolean' + queryIndex\"\n [formControlName]=\"'boolean'\"\n [attr.data-testid]=\"'boolean' + queryIndex\"\n >\n @for (boolean of advancedSearchOptions.boolean; track boolean) {\n <option [ngValue]=\"boolean\">\n {{ boolean }}\n </option>\n }\n </select>\n </div>\n }\n <!-- Field -->\n <label [for]=\"'field' + queryIndex\" class=\"ss-hidden\">Field {{ queryIndex }}</label>\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'field' + queryIndex\"\n [formControlName]=\"'field'\"\n [attr.data-testid]=\"'field' + queryIndex\"\n >\n @for (field of advancedSearchOptions.fields; track field) {\n <option [ngValue]=\"field\">\n {{ advancedSearchFieldMap[field] }}\n </option>\n }\n <optgroup\n [label]=\"(config.scope === 'external' ? 'Online' : 'Library') + ' Specific'\"\n >\n @for (\n field of config.scope === 'external'\n ? advancedSearchOptions.externalFields\n : advancedSearchOptions.localFields;\n track field\n ) {\n <option [ngValue]=\"field\">\n {{ advancedSearchFieldMap[field] }}\n </option>\n }\n </optgroup>\n </select>\n </div>\n <!-- Qualifiers are only available for local searches -->\n @if (config.scope === 'local') {\n <label [for]=\"'qualifier' + queryIndex\" class=\"ss-hidden\"\n >Match Criteria {{ queryIndex }}</label\n >\n <div class=\"ss-select-wrapper\">\n <select\n [id]=\"'qualifier' + queryIndex\"\n [formControlName]=\"'qualifier'\"\n [attr.data-testid]=\"'qualifier' + queryIndex\"\n >\n <!-- $any because a field can technically be local or external, though this block is scoped strictly to local fields -->\n @for (\n qualifier of $any(advancedSearchOptions.qualifiers)[\n query.controls.field.value\n ];\n track qualifier;\n let optionIndex = $index\n ) {\n <option\n [ngValue]=\"qualifier\"\n [attr.data-testid]=\"\n 'qualifier' + queryIndex + '-option' + optionIndex\n \"\n >\n {{ $any(advancedSearchQualifierMap)[qualifier] }}\n </option>\n }\n </select>\n </div>\n }\n <!-- Query -->\n <label [for]=\"'query' + queryIndex\" class=\"ss-hidden\">Query {{ queryIndex }}</label>\n <div class=\"ss-query-input\">\n <input\n #searchInput\n [id]=\"'query' + queryIndex\"\n [formControlName]=\"'query'\"\n [attr.data-testid]=\"'query' + queryIndex\"\n required\n aria-required=\"true\"\n matTooltip=\"Fill out this field\"\n [matTooltipPosition]=\"'above'\"\n [matTooltipDisabled]=\"true\"\n [attr.aria-invalid]=\"isSubmitted && queries.at(0).controls.query.invalid\"\n aria-describedby=\"invalidInputDesc\"\n />\n </div>\n @if (!$first) {\n <button\n class=\"ss-row-cancel\"\n type=\"button\"\n (click)=\"removeQuery(queryIndex)\"\n [attr.data-testid]=\"'cancelRow' + queryIndex\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> cancel </span>\n </button>\n }\n </div>\n }\n <button\n type=\"button\"\n (click)=\"addQuery()\"\n id=\"addQueryBtn\"\n data-testid=\"addQuery\"\n [disabled]=\"queries.length > 11\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> add </span>\n Add a row\n </button>\n <!-- OTHER OPTIONS -->\n <div class=\"ss-other-options\">\n <!-- LOCAL -->\n @if (config.scope === 'local') {\n <!-- Type -->\n <div data-testid=\"resourceType\">\n <h4>Resource Type</h4>\n <div class=\"ss-multi-select-wrapper\">\n <lib-multi-select\n [label]=\"'Resource Type'\"\n [allOptions]=\"advancedSearchOptions.types[config.institution]\"\n [selectedKeys]=\"types.value\"\n (selectedKeysChange)=\"types.setValue($event)\"\n ></lib-multi-select>\n </div>\n </div>\n <!-- Collection -->\n <div data-testid=\"collection\">\n <h4>Collection</h4>\n <div class=\"ss-multi-select-wrapper\">\n <lib-multi-select\n [label]=\"'Collection'\"\n [allOptions]=\"advancedSearchOptions.collections[config.institution]\"\n [selectedKeys]=\"collections.value\"\n (selectedKeysChange)=\"collections.setValue($event)\"\n ></lib-multi-select>\n </div>\n </div>\n <!-- Language -->\n <ng-container *ngTemplateOutlet=\"languageBlock\"></ng-container>\n <!-- Date -->\n <ng-container\n *ngTemplateOutlet=\"dateBlock; context: { header: 'Creation Date' }\"\n ></ng-container>\n }\n <!-- EXTERNAL -->\n @if (config.scope === 'external') {\n <div formGroupName=\"limitResults\" class=\"ss-checkbox-section\">\n <h4>For Fewer Results Try</h4>\n <!-- Peer reviewed -->\n <label class=\"ss-checkbox-label\" for=\"peerReviewed\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"peerReviewed\"\n type=\"checkbox\"\n [formControlName]=\"'peerReviewed'\"\n data-testid=\"peerReviewed\"\n />\n <lib-checkbox [isChecked]=\"peerReviewed.value\"></lib-checkbox>\n <span class=\"ss-label-text\">Peer reviewed journal articles</span>\n </label>\n </div>\n <div formGroupName=\"expandResults\" class=\"ss-checkbox-section\">\n <h4>For More Results Try</h4>\n <!-- Apply equivalent subjects -->\n <label class=\"ss-checkbox-label\" for=\"applyEquivalentSubjects\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"applyEquivalentSubjects\"\n type=\"checkbox\"\n [formControlName]=\"'applyEquivalentSubjects'\"\n data-testid=\"applyEquivalentSubjects\"\n />\n <lib-checkbox [isChecked]=\"applyEquivalentSubjects.value\"></lib-checkbox>\n <span class=\"ss-label-text\">Apply equivalent subjects</span>\n </label>\n <!-- Full text -->\n <label class=\"ss-checkbox-label\" for=\"fullText\" tabindex=\"0\">\n <input\n class=\"ss-hidden\"\n id=\"fullText\"\n type=\"checkbox\"\n [formControlName]=\"'fullText'\"\n data-testid=\"fullText\"\n />\n <lib-checkbox [isChecked]=\"fullText.value\"></lib-checkbox>\n <span class=\"ss-label-text\"\n >Include results the library doesn't have access to</span\n >\n </label>\n </div>\n <!-- Date -->\n <ng-container\n *ngTemplateOutlet=\"dateBlock; context: { header: 'Date Published' }\"\n ></ng-container>\n <!-- Language -->\n <ng-container *ngTemplateOutlet=\"languageBlock\"></ng-container>\n }\n </div>\n <div id=\"advSearchFooter\">\n <a [href]=\"'https://lib.byu.edu/browse/' + config.institution\">Alphabetic Browse</a>\n <button\n class=\"pill-btn--components\"\n [ngClass]=\"{\n ensign: config.institution === 'ensign',\n }\"\n type=\"submit\"\n data-testid=\"advSearchSubmitButton\"\n >\n Search\n </button>\n </div>\n</form>\n\n<ng-template #languageBlock>\n <div>\n <h4>Language</h4>\n <lib-multi-select\n [label]=\"'language'\"\n [allOptions]=\"advancedSearchOptions.languages\"\n [selectedKeys]=\"languages.value\"\n (selectedKeysChange)=\"languages.setValue($any($event))\"\n ></lib-multi-select>\n </div>\n</ng-template>\n<ng-template #dateBlock let-header=\"header\">\n <div id=\"dateOptions\" class=\"external\">\n <h4>{{ header }}</h4>\n <lib-date-range\n [from]=\"from.value\"\n [to]=\"to.value\"\n (fromChange)=\"from.setValue($event)\"\n (toChange)=\"to.setValue($event)\"\n ></lib-date-range>\n </div>\n</ng-template>\n", styles: ["button.ensign{background-color:#2b6042!important;border-color:#2a6142}button.ensign:hover{background-color:#357551!important}a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}select,textarea,input{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}select:focus,textarea:focus,input:focus{outline-color:#3a6093}.ss-select-wrapper{position:relative}.ss-select-wrapper select{cursor:pointer;padding-right:2em}.ss-select-wrapper:after{font-family:Material Symbols Outlined;content:\"arrow_drop_down\";pointer-events:none;top:0;font-size:1.5em;right:.2em;height:100%;position:absolute;display:flex;align-items:center;opacity:70%}.pill-btn--components{background-color:#4070b0;font-size:1em;transition:all .15s;color:#fff;cursor:pointer;font-weight:600;text-align:center}.pill-btn--components:disabled{color:#707070;background-color:#e6e6e6;pointer-events:none}.pill-btn--components:hover{background-color:#6892ca;color:#fff}.destructive.pill-btn--components{background-color:#b04940}.destructive.pill-btn--components:hover{background-color:#c7574d}.pill-btn--components{border-radius:100em;padding:.4em 1.3em}:host{box-sizing:border-box}:host *{box-sizing:inherit}.ss-select-wrapper{margin-right:.3em}.ss-row-cancel{color:#aaa;margin-left:.4em;margin-top:.4em}.ss-row-cancel:hover{color:#666}.ss-row-cancel .ss-icon{font-size:1em}.ss-hidden{display:none}#addQueryBtn{display:flex;align-items:center}#addQueryBtn:disabled{color:#999;pointer-events:none}#addQueryBtn .icon{font-size:1em}.ss-adv-search-wrapper{width:100%}h3{font-size:1.13em;font-weight:300;margin-bottom:.7em;margin-top:0}h4{margin-bottom:.3em;font-weight:600}#dateOptions h4{margin-bottom:.8em}.ss-adv-search-row{display:flex;flex-wrap:wrap;width:100%;margin-bottom:.6em}.ss-query-input{display:inline-block;width:100%;margin-top:.4rem}.ss-query-input input{width:100%}.ss-other-options{display:grid;grid-template-columns:repeat(1,1fr);gap:.6em 1.6em;grid-auto-rows:minmax(1em,auto);margin-top:1.4em}.ss-other-options label{margin-right:1rem}.ss-checkbox-label{display:inline-flex;align-items:flex-start;cursor:pointer}.ss-checkbox-label:not(:last-of-type){margin-bottom:.75em}.ss-checkbox-label .ss-label-text{margin-top:-.1em;margin-left:.45em}.ss-checkbox-section{margin-bottom:.8em}#advSearchFooter{margin-bottom:.5em;display:flex;justify-content:space-between;align-items:center;font-size:1.2em}#advSearchFooter a{font-size:.8em}@media screen and (min-width: 615px){.ss-adv-search-row{flex-wrap:nowrap}.ss-other-options{grid-template-columns:repeat(2,1fr)}.ss-query-input{margin-top:0}#dateOptions .external{grid-column:span 2}}\n"] }]
1525
1848
  }], propDecorators: { config: [{
1526
1849
  type: Input,
1527
1850
  args: [{ required: true }]
@@ -1698,7 +2021,7 @@ class SsSearchBarComponent {
1698
2021
  return this._config;
1699
2022
  }
1700
2023
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SsSearchBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1701
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SsSearchBarComponent, isStandalone: true, selector: "lib-ss-search-bar", inputs: { config: "config" }, outputs: { simpleSearch: "simpleSearch", clearSimpleSearch: "clearSimpleSearch", advancedSearch: "advancedSearch", advancedSearchClosed: "advancedSearchClosed", advancedSearchOpen: "advancedSearchOpen", tabChange: "tabChange" }, providers: [FieldByScopePipe], viewQueries: [{ propertyName: "barWrapperRef", first: true, predicate: ["barWrapperRef"], descendants: true }], ngImport: i0, template: "<div id=\"ssSearchBar\">\n <div class=\"tabs\">\n <button\n (click)=\"emitTabChange('local')\"\n class=\"ss-tab\"\n id=\"localTab\"\n [ngClass]=\"{\n 'ss-active': config.scope === 'local',\n ensign: config.institution === 'ensign' && config.scope !== 'local',\n }\"\n data-testid=\"localTab\"\n [disabled]=\"config.scope === 'local'\"\n >\n In the Library\n </button>\n @if (config.institution !== 'law') {\n <div class=\"tab-spacer\"></div>\n <button\n (click)=\"emitTabChange('external')\"\n class=\"ss-tab\"\n id=\"externalTab\"\n [ngClass]=\"{\n 'ss-active': config.scope === 'external',\n ensign: config.institution === 'ensign' && config.scope !== 'external',\n }\"\n data-testid=\"externalTab\"\n [disabled]=\"config.scope === 'external'\"\n >\n Available Online\n </button>\n }\n <div class=\"tab-spacer full\"></div>\n </div>\n <div\n class=\"ss-bar-wrapper\"\n #barWrapperRef\n [@libHbllExpandCollapse]=\"{\n value: config.showAdvancedSearch ? (!config.showAdvancedSearchAsText ? 1 : 2) : 3,\n params: { startHeight: heightOfContainer },\n }\"\n >\n <div class=\"ss-bar-content\" data-testid=\"searchForm\">\n @if (!config.showAdvancedSearch) {\n <div class=\"ss-search-bar\">\n <lib-ss-simple-search\n [config]=\"config\"\n (simpleSearch)=\"emitSimpleSearch($event)\"\n (clearSimpleSearch)=\"emitClearSimpleSearch()\"\n ></lib-ss-simple-search>\n </div>\n } @else {\n <button\n id=\"advSearchCloseBtn\"\n (click)=\"emitAdvancedSearchClosed()\"\n data-testid=\"advSearchCloseBtn\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> close </span>\n </button>\n <div id=\"advSearchWrapper\">\n @if (config.showAdvancedSearch && !config.showAdvancedSearchAsText) {\n <div>\n <lib-ss-advanced-search\n [config]=\"config\"\n (advancedSearch)=\"emitAdvancedSearch($event)\"\n ></lib-ss-advanced-search>\n </div>\n } @else {\n <div\n class=\"ss-adv-search-text\"\n data-testid=\"advancedSearchText\"\n [innerHTML]=\"\n config.advancedSearchQueryRows | ssAdvancedQueries: config.scope\n \"\n ></div>\n <div\n [innerHTML]=\"\n config.advancedSearchQueryRows | advancedFieldWarning: config.scope\n \"\n ></div>\n }\n </div>\n }\n </div>\n @if (!config.showAdvancedSearch || config.showAdvancedSearchAsText) {\n <button\n data-testid=\"toggleAdvSearchButton\"\n class=\"ss-adv-search-btn\"\n id=\"advSearchBtn\"\n (click)=\"emitAdvancedSearchOpen()\"\n >\n Advanced\n <span class=\"material-symbols-outlined ss-icon\"> keyboard_arrow_down </span>\n </button>\n }\n </div>\n</div>\n", styles: ["#ssSearchBar .tabs .ss-tab.ensign{background-color:#2b6042!important;border-color:#2a6142}#ssSearchBar .tabs .ss-tab.ensign:hover{background-color:#357551!important}a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active .mat-ripple-element,.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-app-background, transparent));color:var(--mat-app-text-color, var(--mat-app-on-background, inherit))}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, none)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, none)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, none)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, none)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, none)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, none)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, none)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, none)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, none)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, none)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, none)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, none)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, none)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, none)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, none)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, none)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, none)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, none)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, none)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, none)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, none)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, none)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, none)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, none)}.mat-mdc-tooltip-surface{background-color:#333!important;border-radius:3px!important;color:#fff!important;font:inherit!important;font-size:.8em!important}#ssSearchBar{--mat-app-background-color: #faf9fd;--mat-app-text-color: #1a1b1f;--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-ripple-color: rgba(26, 27, 31, .1);--mat-option-selected-state-label-text-color: #131c2b;--mat-option-label-text-color: #1a1b1f;--mat-option-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-option-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-option-selected-state-layer-color: #dae2f9;--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 1.25rem;--mat-option-label-text-size: 1rem;--mat-option-label-text-tracking: .006rem;--mat-option-label-text-weight: 400;--mat-optgroup-label-text-color: #44474e;--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 1.25rem;--mat-optgroup-label-text-size: .875rem;--mat-optgroup-label-text-tracking: .006rem;--mat-optgroup-label-text-weight: 500;--mat-full-pseudo-checkbox-selected-icon-color: #005cbb;--mat-full-pseudo-checkbox-selected-checkmark-color: #ffffff;--mat-full-pseudo-checkbox-unselected-icon-color: #44474e;--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #faf9fd;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: rgba(26, 27, 31, .38);--mat-full-pseudo-checkbox-disabled-selected-icon-color: rgba(26, 27, 31, .38);--mat-minimal-pseudo-checkbox-selected-checkmark-color: #005cbb;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: rgba(26, 27, 31, .38);--mdc-elevated-card-container-color: #faf9fd;--mdc-elevated-card-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-elevated-card-container-shape: 12px;--mdc-outlined-card-container-color: #faf9fd;--mdc-outlined-card-outline-color: #c4c6d0;--mdc-outlined-card-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-outlined-card-container-shape: 12px;--mdc-outlined-card-outline-width: 1px;--mat-card-subtitle-text-color: #1a1b1f;--mat-card-title-text-font: Roboto, sans-serif;--mat-card-title-text-line-height: 1.75rem;--mat-card-title-text-size: 1.375rem;--mat-card-title-text-tracking: 0;--mat-card-title-text-weight: 400;--mat-card-subtitle-text-font: Roboto, sans-serif;--mat-card-subtitle-text-line-height: 1.5rem;--mat-card-subtitle-text-size: 1rem;--mat-card-subtitle-text-tracking: .009rem;--mat-card-subtitle-text-weight: 500;--mdc-linear-progress-active-indicator-color: #005cbb;--mdc-linear-progress-track-color: #e0e2ec;--mdc-linear-progress-active-indicator-height: 4px;--mdc-linear-progress-track-height: 4px;--mdc-linear-progress-track-shape: 0;--mdc-plain-tooltip-container-color: #2f3033;--mdc-plain-tooltip-supporting-text-color: #f2f0f4;--mdc-plain-tooltip-supporting-text-line-height: 1rem;--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: .75rem;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: .025rem;--mdc-plain-tooltip-container-shape: 4px;--mdc-filled-text-field-caret-color: #005cbb;--mdc-filled-text-field-focus-active-indicator-color: #005cbb;--mdc-filled-text-field-focus-label-text-color: #005cbb;--mdc-filled-text-field-container-color: #e0e2ec;--mdc-filled-text-field-disabled-container-color: rgba(26, 27, 31, .04);--mdc-filled-text-field-label-text-color: #44474e;--mdc-filled-text-field-hover-label-text-color: #44474e;--mdc-filled-text-field-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-input-text-color: #1a1b1f;--mdc-filled-text-field-disabled-input-text-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-input-text-placeholder-color: #44474e;--mdc-filled-text-field-error-hover-label-text-color: #410002;--mdc-filled-text-field-error-focus-label-text-color: #ba1a1a;--mdc-filled-text-field-error-label-text-color: #ba1a1a;--mdc-filled-text-field-active-indicator-color: #44474e;--mdc-filled-text-field-disabled-active-indicator-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-hover-active-indicator-color: #1a1b1f;--mdc-filled-text-field-error-active-indicator-color: #ba1a1a;--mdc-filled-text-field-error-focus-active-indicator-color: #ba1a1a;--mdc-filled-text-field-error-hover-active-indicator-color: #410002;--mdc-filled-text-field-label-text-font: Roboto, sans-serif;--mdc-filled-text-field-label-text-size: 1rem;--mdc-filled-text-field-label-text-tracking: .031rem;--mdc-filled-text-field-label-text-weight: 400;--mdc-filled-text-field-active-indicator-height: 1px;--mdc-filled-text-field-focus-active-indicator-height: 2px;--mdc-filled-text-field-container-shape: 4px;--mdc-outlined-text-field-caret-color: #005cbb;--mdc-outlined-text-field-focus-outline-color: #005cbb;--mdc-outlined-text-field-focus-label-text-color: #005cbb;--mdc-outlined-text-field-label-text-color: #44474e;--mdc-outlined-text-field-hover-label-text-color: #1a1b1f;--mdc-outlined-text-field-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-outlined-text-field-input-text-color: #1a1b1f;--mdc-outlined-text-field-disabled-input-text-color: rgba(26, 27, 31, .38);--mdc-outlined-text-field-input-text-placeholder-color: #44474e;--mdc-outlined-text-field-error-focus-label-text-color: #ba1a1a;--mdc-outlined-text-field-error-label-text-color: #ba1a1a;--mdc-outlined-text-field-error-hover-label-text-color: #410002;--mdc-outlined-text-field-outline-color: #74777f;--mdc-outlined-text-field-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-outlined-text-field-hover-outline-color: #1a1b1f;--mdc-outlined-text-field-error-focus-outline-color: #ba1a1a;--mdc-outlined-text-field-error-hover-outline-color: #410002;--mdc-outlined-text-field-error-outline-color: #ba1a1a;--mdc-outlined-text-field-label-text-font: Roboto, sans-serif;--mdc-outlined-text-field-label-text-size: 1rem;--mdc-outlined-text-field-label-text-tracking: .031rem;--mdc-outlined-text-field-label-text-weight: 400;--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 2px;--mdc-outlined-text-field-container-shape: 4px;--mat-form-field-focus-select-arrow-color: #005cbb;--mat-form-field-disabled-input-text-placeholder-color: rgba(26, 27, 31, .38);--mat-form-field-state-layer-color: #1a1b1f;--mat-form-field-error-text-color: #ba1a1a;--mat-form-field-select-option-text-color: #1a1b1f;--mat-form-field-select-disabled-option-text-color: rgba(26, 27, 31, .38);--mat-form-field-leading-icon-color: #44474e;--mat-form-field-disabled-leading-icon-color: rgba(26, 27, 31, .38);--mat-form-field-trailing-icon-color: #44474e;--mat-form-field-disabled-trailing-icon-color: rgba(26, 27, 31, .38);--mat-form-field-error-focus-trailing-icon-color: #ba1a1a;--mat-form-field-error-hover-trailing-icon-color: #410002;--mat-form-field-error-trailing-icon-color: #ba1a1a;--mat-form-field-enabled-select-arrow-color: #44474e;--mat-form-field-disabled-select-arrow-color: rgba(26, 27, 31, .38);--mat-form-field-hover-state-layer-opacity: .08;--mat-form-field-container-text-font: Roboto, sans-serif;--mat-form-field-container-text-line-height: 1.5rem;--mat-form-field-container-text-size: 1rem;--mat-form-field-container-text-tracking: .031rem;--mat-form-field-container-text-weight: 400;--mat-form-field-subscript-text-font: Roboto, sans-serif;--mat-form-field-subscript-text-line-height: 1rem;--mat-form-field-subscript-text-size: .75rem;--mat-form-field-subscript-text-tracking: .025rem;--mat-form-field-subscript-text-weight: 400;--mat-form-field-container-height: 56px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 16px;--mat-form-field-filled-with-label-container-padding-top: 24px;--mat-form-field-filled-with-label-container-padding-bottom: 8px;--mat-form-field-focus-state-layer-opacity: 0;--mat-select-panel-background-color: #efedf0;--mat-select-enabled-trigger-text-color: #1a1b1f;--mat-select-disabled-trigger-text-color: rgba(26, 27, 31, .38);--mat-select-placeholder-text-color: #44474e;--mat-select-enabled-arrow-color: #44474e;--mat-select-disabled-arrow-color: rgba(26, 27, 31, .38);--mat-select-focused-arrow-color: #005cbb;--mat-select-invalid-arrow-color: #ba1a1a;--mat-select-trigger-text-font: Roboto, sans-serif;--mat-select-trigger-text-line-height: 1.5rem;--mat-select-trigger-text-size: 1rem;--mat-select-trigger-text-tracking: .031rem;--mat-select-trigger-text-weight: 400;--mat-select-arrow-transform: translateY(-8px);--mat-select-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-autocomplete-background-color: #efedf0;--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-dialog-container-color: #faf9fd;--mdc-dialog-subhead-color: #1a1b1f;--mdc-dialog-supporting-text-color: #44474e;--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 2rem;--mdc-dialog-subhead-size: 1.5rem;--mdc-dialog-subhead-weight: 400;--mdc-dialog-subhead-tracking: 0;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 1.25rem;--mdc-dialog-supporting-text-size: .875rem;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: .016rem;--mdc-dialog-container-shape: 28px;--mat-dialog-container-elevation-shadow: none;--mat-dialog-container-max-width: 560px;--mat-dialog-container-small-max-width: calc(100vw - 32px) ;--mat-dialog-container-min-width: 280px;--mat-dialog-actions-alignment: flex-end;--mat-dialog-actions-padding: 16px 24px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px 0;--mat-dialog-headline-padding: 6px 24px 13px;--mdc-chip-outline-color: #74777f;--mdc-chip-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-chip-focus-outline-color: #44474e;--mdc-chip-hover-state-layer-opacity: .08;--mdc-chip-selected-hover-state-layer-opacity: .08;--mdc-chip-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-chip-elevated-selected-container-color: #dae2f9;--mdc-chip-flat-disabled-selected-container-color: rgba(26, 27, 31, .12);--mdc-chip-focus-state-layer-color: #44474e;--mdc-chip-hover-state-layer-color: #44474e;--mdc-chip-selected-hover-state-layer-color: #131c2b;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: #131c2b;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: #44474e;--mdc-chip-selected-label-text-color: #131c2b;--mdc-chip-with-icon-icon-color: #44474e;--mdc-chip-with-icon-disabled-icon-color: #1a1b1f;--mdc-chip-with-icon-selected-icon-color: #131c2b;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: #1a1b1f;--mdc-chip-with-trailing-icon-trailing-icon-color: #44474e;--mdc-chip-label-text-font: Roboto, sans-serif;--mdc-chip-label-text-line-height: 1.25rem;--mdc-chip-label-text-size: .875rem;--mdc-chip-label-text-tracking: .006rem;--mdc-chip-label-text-weight: 500;--mdc-chip-container-height: 32px;--mdc-chip-container-shape-radius: 8px;--mdc-chip-with-avatar-avatar-shape-radius: 24px;--mdc-chip-with-avatar-avatar-size: 24px;--mdc-chip-with-icon-icon-size: 18px;--mdc-chip-outline-width: 1px;--mdc-chip-with-avatar-disabled-avatar-opacity: .38;--mdc-chip-flat-selected-outline-width: 0;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity: .38;--mdc-chip-with-icon-disabled-icon-opacity: .38;--mdc-chip-elevated-container-color: transparent;--mat-chip-trailing-action-state-layer-color: #44474e;--mat-chip-selected-trailing-action-state-layer-color: #131c2b;--mat-chip-trailing-action-hover-state-layer-opacity: .08;--mat-chip-trailing-action-focus-state-layer-opacity: .12;--mat-chip-selected-disabled-trailing-icon-color: #1a1b1f;--mat-chip-selected-trailing-icon-color: #131c2b;--mat-chip-disabled-container-opacity: 1;--mat-chip-trailing-action-opacity: 1;--mat-chip-trailing-action-focus-opacity: 1;--mdc-switch-selected-focus-state-layer-opacity: .12;--mdc-switch-selected-hover-state-layer-opacity: .08;--mdc-switch-selected-pressed-state-layer-opacity: .12;--mdc-switch-unselected-focus-state-layer-opacity: .12;--mdc-switch-unselected-hover-state-layer-opacity: .08;--mdc-switch-unselected-pressed-state-layer-opacity: .12;--mdc-switch-selected-focus-state-layer-color: #005cbb;--mdc-switch-selected-handle-color: #ffffff;--mdc-switch-selected-hover-state-layer-color: #005cbb;--mdc-switch-selected-pressed-state-layer-color: #005cbb;--mdc-switch-selected-focus-handle-color: #d7e3ff;--mdc-switch-selected-hover-handle-color: #d7e3ff;--mdc-switch-selected-pressed-handle-color: #d7e3ff;--mdc-switch-selected-focus-track-color: #005cbb;--mdc-switch-selected-hover-track-color: #005cbb;--mdc-switch-selected-pressed-track-color: #005cbb;--mdc-switch-selected-track-color: #005cbb;--mdc-switch-disabled-selected-handle-color: #faf9fd;--mdc-switch-disabled-selected-icon-color: #1a1b1f;--mdc-switch-disabled-selected-track-color: #1a1b1f;--mdc-switch-disabled-unselected-handle-color: #1a1b1f;--mdc-switch-disabled-unselected-icon-color: #e0e2ec;--mdc-switch-disabled-unselected-track-color: #e0e2ec;--mdc-switch-selected-icon-color: #001b3f;--mdc-switch-unselected-focus-handle-color: #44474e;--mdc-switch-unselected-focus-state-layer-color: #1a1b1f;--mdc-switch-unselected-focus-track-color: #e0e2ec;--mdc-switch-unselected-handle-color: #74777f;--mdc-switch-unselected-hover-handle-color: #44474e;--mdc-switch-unselected-hover-state-layer-color: #1a1b1f;--mdc-switch-unselected-hover-track-color: #e0e2ec;--mdc-switch-unselected-icon-color: #e0e2ec;--mdc-switch-unselected-pressed-handle-color: #44474e;--mdc-switch-unselected-pressed-state-layer-color: #1a1b1f;--mdc-switch-unselected-pressed-track-color: #e0e2ec;--mdc-switch-unselected-track-color: #e0e2ec;--mdc-switch-disabled-selected-icon-opacity: .38;--mdc-switch-disabled-track-opacity: .12;--mdc-switch-disabled-unselected-icon-opacity: .38;--mdc-switch-handle-shape: 9999px;--mdc-switch-selected-icon-size: 16px;--mdc-switch-track-height: 32px;--mdc-switch-track-shape: 9999px;--mdc-switch-track-width: 52px;--mdc-switch-unselected-icon-size: 16px;--mdc-switch-state-layer-size: 40px;--mat-switch-track-outline-color: #74777f;--mat-switch-disabled-unselected-track-outline-color: #1a1b1f;--mat-switch-label-text-color: #1a1b1f;--mat-switch-label-text-font: Roboto, sans-serif;--mat-switch-label-text-line-height: 1.25rem;--mat-switch-label-text-size: .875rem;--mat-switch-label-text-tracking: .016rem;--mat-switch-label-text-weight: 400;--mat-switch-disabled-selected-handle-opacity: 1;--mat-switch-disabled-unselected-handle-opacity: .38;--mat-switch-unselected-handle-size: 16px;--mat-switch-selected-handle-size: 24px;--mat-switch-pressed-handle-size: 28px;--mat-switch-with-icon-handle-size: 24px;--mat-switch-selected-handle-horizontal-margin: 0 24px;--mat-switch-selected-with-icon-handle-horizontal-margin: 0 24px;--mat-switch-selected-pressed-handle-horizontal-margin: 0 22px;--mat-switch-unselected-handle-horizontal-margin: 0 8px;--mat-switch-unselected-with-icon-handle-horizontal-margin: 0 4px;--mat-switch-unselected-pressed-handle-horizontal-margin: 0 2px;--mat-switch-visible-track-opacity: 1;--mat-switch-hidden-track-opacity: 0;--mat-switch-visible-track-transition: opacity 75ms;--mat-switch-hidden-track-transition: opacity 75ms;--mat-switch-track-outline-width: 2px;--mat-switch-selected-track-outline-width: 2px;--mat-switch-selected-track-outline-color: transparent;--mat-switch-disabled-unselected-track-outline-width: 2px;--mdc-radio-disabled-selected-icon-color: #1a1b1f;--mdc-radio-disabled-unselected-icon-color: #1a1b1f;--mdc-radio-unselected-hover-icon-color: #1a1b1f;--mdc-radio-unselected-icon-color: #44474e;--mdc-radio-unselected-pressed-icon-color: #1a1b1f;--mdc-radio-selected-focus-icon-color: #005cbb;--mdc-radio-selected-hover-icon-color: #005cbb;--mdc-radio-selected-icon-color: #005cbb;--mdc-radio-selected-pressed-icon-color: #005cbb;--mdc-radio-state-layer-size: 40px;--mdc-radio-disabled-selected-icon-opacity: .38;--mdc-radio-disabled-unselected-icon-opacity: .38;--mat-radio-ripple-color: #1a1b1f;--mat-radio-checked-ripple-color: #005cbb;--mat-radio-disabled-label-color: rgba(26, 27, 31, .38);--mat-radio-label-text-color: #1a1b1f;--mat-radio-label-text-font: Roboto, sans-serif;--mat-radio-label-text-line-height: 1.25rem;--mat-radio-label-text-size: .875rem;--mat-radio-label-text-tracking: .016rem;--mat-radio-label-text-weight: 400;--mat-radio-touch-target-display: block;--mdc-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-slider-handle-color: #005cbb;--mdc-slider-focus-handle-color: #005cbb;--mdc-slider-hover-handle-color: #005cbb;--mdc-slider-active-track-color: #005cbb;--mdc-slider-inactive-track-color: #e0e2ec;--mdc-slider-with-tick-marks-inactive-container-color: #44474e;--mdc-slider-with-tick-marks-active-container-color: #ffffff;--mdc-slider-disabled-active-track-color: #1a1b1f;--mdc-slider-disabled-handle-color: #1a1b1f;--mdc-slider-disabled-inactive-track-color: #1a1b1f;--mdc-slider-label-container-color: #005cbb;--mdc-slider-label-label-text-color: #ffffff;--mdc-slider-with-overlap-handle-outline-color: #ffffff;--mdc-slider-with-tick-marks-disabled-container-color: #1a1b1f;--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: .75rem;--mdc-slider-label-label-text-line-height: 1rem;--mdc-slider-label-label-text-tracking: .031rem;--mdc-slider-label-label-text-weight: 500;--mdc-slider-active-track-height: 4px;--mdc-slider-active-track-shape: 9999px;--mdc-slider-handle-height: 20px;--mdc-slider-handle-shape: 9999px;--mdc-slider-handle-width: 20px;--mdc-slider-inactive-track-height: 4px;--mdc-slider-inactive-track-shape: 9999px;--mdc-slider-with-overlap-handle-outline-width: 1px;--mdc-slider-with-tick-marks-active-container-opacity: .38;--mdc-slider-with-tick-marks-container-shape: 9999px;--mdc-slider-with-tick-marks-container-size: 2px;--mdc-slider-with-tick-marks-inactive-container-opacity: .38;--mat-slider-ripple-color: #005cbb;--mat-slider-hover-state-layer-color: rgba(0, 92, 187, .05);--mat-slider-focus-state-layer-color: rgba(0, 92, 187, .2);--mat-slider-value-indicator-width: 28px;--mat-slider-value-indicator-height: 28px;--mat-slider-value-indicator-caret-display: none;--mat-slider-value-indicator-border-radius: 50% 50% 50% 0;--mat-slider-value-indicator-padding: 0;--mat-slider-value-indicator-text-transform: rotate(45deg);--mat-slider-value-indicator-container-transform: translateX(-50%) rotate(-45deg);--mat-slider-value-indicator-opacity: 1;--mat-menu-item-label-text-color: #1a1b1f;--mat-menu-item-icon-color: #44474e;--mat-menu-item-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-menu-item-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-menu-container-color: #efedf0;--mat-menu-divider-color: #e0e2ec;--mat-menu-item-label-text-font: Roboto, sans-serif;--mat-menu-item-label-text-size: .875rem;--mat-menu-item-label-text-tracking: .006rem;--mat-menu-item-label-text-line-height: 1.25rem;--mat-menu-item-label-text-weight: 500;--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 8px;--mat-menu-divider-top-spacing: 8px;--mat-menu-item-spacing: 12px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 12px;--mat-menu-item-trailing-spacing: 12px;--mat-menu-item-with-icon-leading-spacing: 12px;--mat-menu-item-with-icon-trailing-spacing: 12px;--mat-menu-base-elevation-level: 2;--mdc-list-list-item-container-color: transparent;--mdc-list-list-item-leading-avatar-color: #d7e3ff;--mdc-list-list-item-disabled-state-layer-color: #1a1b1f;--mdc-list-list-item-disabled-state-layer-opacity: .12;--mdc-list-list-item-label-text-color: #1a1b1f;--mdc-list-list-item-supporting-text-color: #44474e;--mdc-list-list-item-leading-icon-color: #44474e;--mdc-list-list-item-trailing-supporting-text-color: #44474e;--mdc-list-list-item-trailing-icon-color: #44474e;--mdc-list-list-item-selected-trailing-icon-color: #005cbb;--mdc-list-list-item-disabled-label-text-color: #1a1b1f;--mdc-list-list-item-disabled-leading-icon-color: #1a1b1f;--mdc-list-list-item-disabled-trailing-icon-color: #1a1b1f;--mdc-list-list-item-hover-label-text-color: #1a1b1f;--mdc-list-list-item-focus-label-text-color: #1a1b1f;--mdc-list-list-item-hover-state-layer-color: #1a1b1f;--mdc-list-list-item-hover-state-layer-opacity: .08;--mdc-list-list-item-focus-state-layer-color: #1a1b1f;--mdc-list-list-item-focus-state-layer-opacity: .12;--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 1.5rem;--mdc-list-list-item-label-text-size: 1rem;--mdc-list-list-item-label-text-tracking: .031rem;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 1.25rem;--mdc-list-list-item-supporting-text-size: .875rem;--mdc-list-list-item-supporting-text-tracking: .016rem;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 1rem;--mdc-list-list-item-trailing-supporting-text-size: .688rem;--mdc-list-list-item-trailing-supporting-text-tracking: .031rem;--mdc-list-list-item-trailing-supporting-text-weight: 500;--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px;--mdc-list-list-item-container-shape: 0;--mdc-list-list-item-leading-avatar-shape: 9999px;--mdc-list-list-item-leading-icon-size: 24px;--mdc-list-list-item-leading-avatar-size: 40px;--mdc-list-list-item-trailing-icon-size: 24px;--mdc-list-list-item-disabled-label-text-opacity: .3;--mdc-list-list-item-disabled-leading-icon-opacity: .38;--mdc-list-list-item-disabled-trailing-icon-opacity: .38;--mat-list-active-indicator-color: #dae2f9;--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 16px;--mat-list-active-indicator-shape: 9999px;--mat-paginator-container-text-color: #1a1b1f;--mat-paginator-container-background-color: #faf9fd;--mat-paginator-enabled-icon-color: #44474e;--mat-paginator-disabled-icon-color: rgba(26, 27, 31, .38);--mat-paginator-container-text-font: Roboto, sans-serif;--mat-paginator-container-text-line-height: 1rem;--mat-paginator-container-text-size: .75rem;--mat-paginator-container-text-tracking: .025rem;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: .75rem;--mat-paginator-container-size: 56px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block;--mdc-secondary-navigation-tab-container-height: 48px;--mdc-tab-indicator-active-indicator-color: #005cbb;--mdc-tab-indicator-active-indicator-height: 2px;--mdc-tab-indicator-active-indicator-shape: 0;--mat-tab-header-divider-color: #e0e2ec;--mat-tab-header-pagination-icon-color: #1a1b1f;--mat-tab-header-inactive-label-text-color: #1a1b1f;--mat-tab-header-active-label-text-color: #1a1b1f;--mat-tab-header-active-ripple-color: #1a1b1f;--mat-tab-header-inactive-ripple-color: #1a1b1f;--mat-tab-header-inactive-focus-label-text-color: #1a1b1f;--mat-tab-header-inactive-hover-label-text-color: #1a1b1f;--mat-tab-header-active-focus-label-text-color: #1a1b1f;--mat-tab-header-active-hover-label-text-color: #1a1b1f;--mat-tab-header-active-focus-indicator-color: #005cbb;--mat-tab-header-active-hover-indicator-color: #005cbb;--mat-tab-header-label-text-font: Roboto, sans-serif;--mat-tab-header-label-text-size: .875rem;--mat-tab-header-label-text-tracking: .006rem;--mat-tab-header-label-text-line-height: 1.25rem;--mat-tab-header-label-text-weight: 500;--mat-tab-header-divider-height: 1px;--mdc-checkbox-disabled-selected-checkmark-color: #faf9fd;--mdc-checkbox-selected-focus-state-layer-opacity: .12;--mdc-checkbox-selected-hover-state-layer-opacity: .08;--mdc-checkbox-selected-pressed-state-layer-opacity: .12;--mdc-checkbox-unselected-focus-state-layer-opacity: .12;--mdc-checkbox-unselected-hover-state-layer-opacity: .08;--mdc-checkbox-unselected-pressed-state-layer-opacity: .12;--mdc-checkbox-selected-pressed-icon-color: #005cbb;--mdc-checkbox-disabled-selected-icon-color: rgba(26, 27, 31, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(26, 27, 31, .38);--mdc-checkbox-selected-checkmark-color: #ffffff;--mdc-checkbox-selected-focus-icon-color: #005cbb;--mdc-checkbox-selected-hover-icon-color: #005cbb;--mdc-checkbox-selected-icon-color: #005cbb;--mdc-checkbox-unselected-focus-icon-color: #1a1b1f;--mdc-checkbox-unselected-hover-icon-color: #1a1b1f;--mdc-checkbox-unselected-icon-color: #44474e;--mdc-checkbox-selected-focus-state-layer-color: #005cbb;--mdc-checkbox-selected-hover-state-layer-color: #005cbb;--mdc-checkbox-selected-pressed-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-focus-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-hover-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-pressed-state-layer-color: #005cbb;--mdc-checkbox-state-layer-size: 40px;--mat-checkbox-disabled-label-color: rgba(26, 27, 31, .38);--mat-checkbox-label-text-color: #1a1b1f;--mat-checkbox-label-text-font: Roboto, sans-serif;--mat-checkbox-label-text-line-height: 1.25rem;--mat-checkbox-label-text-size: .875rem;--mat-checkbox-label-text-tracking: .016rem;--mat-checkbox-label-text-weight: 400;--mat-checkbox-touch-target-display: block;--mdc-text-button-label-text-color: #005cbb;--mdc-text-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-text-button-label-text-font: Roboto, sans-serif;--mdc-text-button-label-text-size: .875rem;--mdc-text-button-label-text-tracking: .006rem;--mdc-text-button-label-text-weight: 500;--mdc-text-button-container-height: 40px;--mdc-text-button-container-shape: 9999px;--mdc-protected-button-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-container-color: #faf9fd;--mdc-protected-button-label-text-color: #005cbb;--mdc-protected-button-disabled-container-color: rgba(26, 27, 31, .12);--mdc-protected-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-protected-button-label-text-font: Roboto, sans-serif;--mdc-protected-button-label-text-size: .875rem;--mdc-protected-button-label-text-tracking: .006rem;--mdc-protected-button-label-text-weight: 500;--mdc-protected-button-container-height: 40px;--mdc-protected-button-container-shape: 9999px;--mdc-filled-button-container-color: #005cbb;--mdc-filled-button-label-text-color: #ffffff;--mdc-filled-button-disabled-container-color: rgba(26, 27, 31, .12);--mdc-filled-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-filled-button-label-text-font: Roboto, sans-serif;--mdc-filled-button-label-text-size: .875rem;--mdc-filled-button-label-text-tracking: .006rem;--mdc-filled-button-label-text-weight: 500;--mdc-filled-button-container-height: 40px;--mdc-filled-button-container-shape: 9999px;--mdc-outlined-button-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-outlined-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-outlined-button-label-text-color: #005cbb;--mdc-outlined-button-outline-color: #74777f;--mdc-outlined-button-label-text-font: Roboto, sans-serif;--mdc-outlined-button-label-text-size: .875rem;--mdc-outlined-button-label-text-tracking: .006rem;--mdc-outlined-button-label-text-weight: 500;--mdc-outlined-button-container-height: 40px;--mdc-outlined-button-outline-width: 1px;--mdc-outlined-button-container-shape: 9999px;--mat-text-button-state-layer-color: #005cbb;--mat-text-button-disabled-state-layer-color: #44474e;--mat-text-button-ripple-color: rgba(0, 92, 187, .12);--mat-text-button-hover-state-layer-opacity: .08;--mat-text-button-focus-state-layer-opacity: .12;--mat-text-button-pressed-state-layer-opacity: .12;--mat-text-button-touch-target-display: block;--mat-text-button-horizontal-padding: 12px;--mat-text-button-with-icon-horizontal-padding: 16px;--mat-text-button-icon-spacing: 8px;--mat-text-button-icon-offset: -4px;--mat-protected-button-state-layer-color: #005cbb;--mat-protected-button-disabled-state-layer-color: #44474e;--mat-protected-button-ripple-color: rgba(0, 92, 187, .12);--mat-protected-button-hover-state-layer-opacity: .08;--mat-protected-button-focus-state-layer-opacity: .12;--mat-protected-button-pressed-state-layer-opacity: .12;--mat-protected-button-touch-target-display: block;--mat-protected-button-horizontal-padding: 24px;--mat-protected-button-icon-spacing: 8px;--mat-protected-button-icon-offset: -8px;--mat-filled-button-state-layer-color: #ffffff;--mat-filled-button-disabled-state-layer-color: #44474e;--mat-filled-button-ripple-color: rgba(255, 255, 255, .12);--mat-filled-button-hover-state-layer-opacity: .08;--mat-filled-button-focus-state-layer-opacity: .12;--mat-filled-button-pressed-state-layer-opacity: .12;--mat-filled-button-touch-target-display: block;--mat-filled-button-horizontal-padding: 24px;--mat-filled-button-icon-spacing: 8px;--mat-filled-button-icon-offset: -8px;--mat-outlined-button-state-layer-color: #005cbb;--mat-outlined-button-disabled-state-layer-color: #44474e;--mat-outlined-button-ripple-color: rgba(0, 92, 187, .12);--mat-outlined-button-hover-state-layer-opacity: .08;--mat-outlined-button-focus-state-layer-opacity: .12;--mat-outlined-button-pressed-state-layer-opacity: .12;--mat-outlined-button-touch-target-display: block;--mat-outlined-button-horizontal-padding: 24px;--mat-outlined-button-icon-spacing: 8px;--mat-outlined-button-icon-offset: -8px;--mdc-icon-button-icon-color: #44474e;--mdc-icon-button-disabled-icon-color: rgba(26, 27, 31, .38);--mdc-icon-button-state-layer-size: 40px;--mdc-icon-button-icon-size: 24px;--mat-icon-button-state-layer-color: #44474e;--mat-icon-button-disabled-state-layer-color: #44474e;--mat-icon-button-ripple-color: rgba(68, 71, 78, .12);--mat-icon-button-hover-state-layer-opacity: .08;--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-touch-target-display: block;--mdc-extended-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-label-text-font: Roboto, sans-serif;--mdc-extended-fab-label-text-size: .875rem;--mdc-extended-fab-label-text-tracking: .006rem;--mdc-extended-fab-label-text-weight: 500;--mdc-extended-fab-container-height: 56px;--mdc-extended-fab-container-shape: 16px;--mdc-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-container-color: #d7e3ff;--mdc-fab-container-shape: 16px;--mdc-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-container-color: #d7e3ff;--mdc-fab-small-container-shape: 12px;--mat-fab-foreground-color: #001b3f;--mat-fab-state-layer-color: #001b3f;--mat-fab-ripple-color: rgba(0, 27, 63, .12);--mat-fab-hover-state-layer-opacity: .08;--mat-fab-focus-state-layer-opacity: .12;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-disabled-state-container-color: rgba(26, 27, 31, .12);--mat-fab-disabled-state-foreground-color: rgba(26, 27, 31, .38);--mat-fab-touch-target-display: block;--mat-fab-small-foreground-color: #001b3f;--mat-fab-small-state-layer-color: #001b3f;--mat-fab-small-ripple-color: rgba(0, 27, 63, .12);--mat-fab-small-hover-state-layer-opacity: .08;--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-disabled-state-container-color: rgba(26, 27, 31, .12);--mat-fab-small-disabled-state-foreground-color: rgba(26, 27, 31, .38);--mdc-snackbar-container-color: #2f3033;--mdc-snackbar-supporting-text-color: #f2f0f4;--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 1.25rem;--mdc-snackbar-supporting-text-size: .875rem;--mdc-snackbar-supporting-text-weight: 400;--mdc-snackbar-container-shape: 4px;--mat-snack-bar-button-color: #abc7ff;--mat-table-background-color: #faf9fd;--mat-table-header-headline-color: #1a1b1f;--mat-table-row-item-label-text-color: #1a1b1f;--mat-table-row-item-outline-color: #74777f;--mat-table-header-headline-font: Roboto, sans-serif;--mat-table-header-headline-line-height: 1.25rem;--mat-table-header-headline-size: .875rem;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .006rem;--mat-table-row-item-label-text-font: Roboto, sans-serif;--mat-table-row-item-label-text-line-height: 1.25rem;--mat-table-row-item-label-text-size: .875rem;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .016rem;--mat-table-footer-supporting-text-font: Roboto, sans-serif;--mat-table-footer-supporting-text-line-height: 1.25rem;--mat-table-footer-supporting-text-size: .875rem;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .016rem;--mat-table-header-container-height: 56px;--mat-table-footer-container-height: 52px;--mat-table-row-item-container-height: 52px;--mat-table-row-item-outline-width: 1px;--mdc-circular-progress-active-indicator-color: #005cbb;--mdc-circular-progress-active-indicator-width: 4px;--mdc-circular-progress-size: 48px;--mat-badge-background-color: #ba1a1a;--mat-badge-text-color: #ffffff;--mat-badge-disabled-state-background-color: rgba(186, 26, 26, .38);--mat-badge-disabled-state-text-color: #ffffff;--mat-badge-text-font: Roboto, sans-serif;--mat-badge-text-size: .688rem;--mat-badge-text-weight: 500;--mat-badge-large-size-text-size: .688rem;--mat-badge-container-shape: 9999px;--mat-badge-container-size: 16px;--mat-badge-small-size-container-size: 6px;--mat-badge-large-size-container-size: 16px;--mat-badge-legacy-container-size: 16px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 16px;--mat-badge-container-offset: -12px 0;--mat-badge-small-size-container-offset: -6px 0;--mat-badge-large-size-container-offset: -12px 0;--mat-badge-container-overlap-offset: -12px;--mat-badge-small-size-container-overlap-offset: -6px;--mat-badge-large-size-container-overlap-offset: -12px;--mat-badge-container-padding: 0 4px;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0 4px;--mat-badge-small-size-text-size: 0;--mat-bottom-sheet-container-text-color: #1a1b1f;--mat-bottom-sheet-container-background-color: #f4f3f6;--mat-bottom-sheet-container-text-font: Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height: 1.5rem;--mat-bottom-sheet-container-text-size: 1rem;--mat-bottom-sheet-container-text-tracking: .031rem;--mat-bottom-sheet-container-text-weight: 400;--mat-bottom-sheet-container-shape: 28px;--mat-standard-button-toggle-hover-state-layer-opacity: .08;--mat-standard-button-toggle-focus-state-layer-opacity: .12;--mat-standard-button-toggle-text-color: #1a1b1f;--mat-standard-button-toggle-state-layer-color: #1a1b1f;--mat-standard-button-toggle-selected-state-background-color: #dae2f9;--mat-standard-button-toggle-selected-state-text-color: #131c2b;--mat-standard-button-toggle-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-standard-button-toggle-disabled-selected-state-text-color: rgba(26, 27, 31, .38);--mat-standard-button-toggle-disabled-selected-state-background-color: rgba(26, 27, 31, .12);--mat-standard-button-toggle-divider-color: #74777f;--mat-standard-button-toggle-label-text-font: Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height: 1.25rem;--mat-standard-button-toggle-label-text-size: .875rem;--mat-standard-button-toggle-label-text-tracking: .006rem;--mat-standard-button-toggle-label-text-weight: 500;--mat-standard-button-toggle-height: 40px;--mat-standard-button-toggle-shape: 9999px;--mat-standard-button-toggle-background-color: transparent;--mat-standard-button-toggle-disabled-state-background-color: transparent;--mat-datepicker-calendar-date-selected-state-text-color: #ffffff;--mat-datepicker-calendar-date-selected-state-background-color: #005cbb;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-today-selected-state-outline-color: #005cbb;--mat-datepicker-calendar-date-focus-state-background-color: rgba(26, 27, 31, .12);--mat-datepicker-calendar-date-hover-state-background-color: rgba(26, 27, 31, .08);--mat-datepicker-toggle-active-state-icon-color: #44474e;--mat-datepicker-calendar-date-in-range-state-background-color: #d7e3ff;--mat-datepicker-calendar-date-in-comparison-range-state-background-color: #d7e3ff;--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #dae2f9;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: #565e71;--mat-datepicker-toggle-icon-color: #44474e;--mat-datepicker-calendar-body-label-text-color: #1a1b1f;--mat-datepicker-calendar-period-button-text-color: #44474e;--mat-datepicker-calendar-period-button-icon-color: #44474e;--mat-datepicker-calendar-navigation-button-icon-color: #44474e;--mat-datepicker-calendar-header-text-color: #44474e;--mat-datepicker-calendar-date-today-outline-color: #005cbb;--mat-datepicker-calendar-date-today-disabled-state-outline-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-text-color: #1a1b1f;--mat-datepicker-calendar-date-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-preview-state-outline-color: #005cbb;--mat-datepicker-range-input-separator-color: #1a1b1f;--mat-datepicker-range-input-disabled-state-separator-color: rgba(26, 27, 31, .38);--mat-datepicker-range-input-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-container-background-color: #e9e7eb;--mat-datepicker-calendar-container-text-color: #1a1b1f;--mat-datepicker-calendar-text-font: Roboto, sans-serif;--mat-datepicker-calendar-text-size: .875rem;--mat-datepicker-calendar-body-label-text-size: .875rem;--mat-datepicker-calendar-body-label-text-weight: 500;--mat-datepicker-calendar-period-button-text-size: .875rem;--mat-datepicker-calendar-period-button-text-weight: 500;--mat-datepicker-calendar-header-text-size: .875rem;--mat-datepicker-calendar-header-text-weight: 500;--mat-datepicker-calendar-container-shape: 16px;--mat-datepicker-calendar-container-touch-shape: 28px;--mat-datepicker-calendar-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-divider-color: transparent;--mat-datepicker-calendar-date-outline-color: transparent;--mat-divider-color: #74777f;--mat-divider-width: 1px;--mat-expansion-container-background-color: #faf9fd;--mat-expansion-container-text-color: #1a1b1f;--mat-expansion-actions-divider-color: #74777f;--mat-expansion-header-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-expansion-header-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-expansion-header-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-expansion-header-text-color: #1a1b1f;--mat-expansion-header-description-color: #44474e;--mat-expansion-header-indicator-color: #44474e;--mat-expansion-header-text-font: Roboto, sans-serif;--mat-expansion-header-text-size: 1rem;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: 1.5rem;--mat-expansion-header-text-tracking: .009rem;--mat-expansion-container-text-font: Roboto, sans-serif;--mat-expansion-container-text-line-height: 1.5rem;--mat-expansion-container-text-size: 1rem;--mat-expansion-container-text-tracking: .031rem;--mat-expansion-container-text-weight: 400;--mat-expansion-header-collapsed-state-height: 48px;--mat-expansion-header-expanded-state-height: 64px;--mat-expansion-container-shape: 12px;--mat-expansion-legacy-header-indicator-display: none;--mat-expansion-header-indicator-display: inline-block;--mat-grid-list-tile-header-primary-text-size: 400 1rem / 1.5rem Roboto, sans-serif;--mat-grid-list-tile-header-secondary-text-size: 400 .875rem / 1.25rem Roboto, sans-serif;--mat-grid-list-tile-footer-primary-text-size: 400 1rem / 1.5rem Roboto, sans-serif;--mat-grid-list-tile-footer-secondary-text-size: 400 .875rem / 1.25rem Roboto, sans-serif;--mat-icon-color: inherit;--mat-sidenav-container-background-color: #faf9fd;--mat-sidenav-container-text-color: #44474e;--mat-sidenav-content-background-color: #faf9fd;--mat-sidenav-content-text-color: #1a1b1f;--mat-sidenav-scrim-color: rgba(45, 48, 56, .4);--mat-sidenav-container-shape: 16px;--mat-sidenav-container-elevation-shadow: none;--mat-sidenav-container-width: 360px;--mat-sidenav-container-divider-color: transparent;--mat-stepper-header-icon-foreground-color: #faf9fd;--mat-stepper-header-selected-state-icon-background-color: #005cbb;--mat-stepper-header-selected-state-icon-foreground-color: #ffffff;--mat-stepper-header-edit-state-icon-background-color: #005cbb;--mat-stepper-header-edit-state-icon-foreground-color: #ffffff;--mat-stepper-container-color: #faf9fd;--mat-stepper-line-color: #74777f;--mat-stepper-header-hover-state-layer-color: rgba(47, 48, 51, .08);--mat-stepper-header-focus-state-layer-color: rgba(47, 48, 51, .12);--mat-stepper-header-label-text-color: #44474e;--mat-stepper-header-optional-label-text-color: #44474e;--mat-stepper-header-selected-state-label-text-color: #44474e;--mat-stepper-header-error-state-label-text-color: #ba1a1a;--mat-stepper-header-icon-background-color: #44474e;--mat-stepper-header-error-state-icon-foreground-color: #ba1a1a;--mat-stepper-container-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-size: .875rem;--mat-stepper-header-label-text-weight: 500;--mat-stepper-header-error-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-weight: 500;--mat-stepper-header-height: 72px;--mat-stepper-header-focus-state-layer-shape: 12px;--mat-stepper-header-hover-state-layer-shape: 12px;--mat-stepper-header-error-state-icon-background-color: transparent;--mat-sort-arrow-color: #1a1b1f;--mat-toolbar-container-background-color: #faf9fd;--mat-toolbar-container-text-color: #1a1b1f;--mat-toolbar-title-text-font: Roboto, sans-serif;--mat-toolbar-title-text-line-height: 1.75rem;--mat-toolbar-title-text-size: 1.375rem;--mat-toolbar-title-text-tracking: 0;--mat-toolbar-title-text-weight: 400;--mat-toolbar-standard-height: 64px;--mat-toolbar-mobile-height: 56px;--mat-tree-container-background-color: #faf9fd;--mat-tree-node-text-color: #1a1b1f;--mat-tree-node-text-font: Roboto, sans-serif;--mat-tree-node-text-size: 1rem;--mat-tree-node-text-weight: 400;--mat-tree-node-min-height: 48px;display:flex;align-items:flex-start;flex-wrap:wrap;position:relative;color:#444}.mat-theme-loaded-marker{display:none}#ssSearchBar .tabs{display:flex;width:100%;margin-bottom:-1px;z-index:10}#ssSearchBar .tabs .ss-tab{border-radius:4px 4px 0 0;border:#b7b7b7 solid 1px;border-color:#6892ca;border-bottom:none;padding:.3em 1.4em;font-size:.94em;letter-spacing:.4px;font-weight:600;background-color:#4070b0;color:#fff;white-space:nowrap;position:relative}#ssSearchBar .tabs .ss-tab:after{content:\"\";height:1px;width:calc(100% + 2px);position:absolute;bottom:0;left:-1px;background-color:#b7b7b7}#ssSearchBar .tabs .ss-tab:hover{background-color:#6892ca}#ssSearchBar .tabs .ss-tab.ss-active{color:#002e5d;margin-bottom:1px;border-color:#b7b7b7;background-color:#fffffff2}#ssSearchBar .tabs .ss-tab.ss-active:after{display:none}#ssSearchBar .tabs .ss-tab:disabled{cursor:auto}#ssSearchBar .tabs .tab-spacer{width:.3em;border-bottom:#b7b7b7 solid 1px;position:relative}#ssSearchBar .tabs .tab-spacer:before{content:\"\";position:absolute;left:-1px;bottom:-1px;width:1px;height:1px;background-color:#b7b7b7}#ssSearchBar .tabs .tab-spacer:after{content:\"\";position:absolute;right:-1px;bottom:-1px;width:1px;height:1px;background-color:#b7b7b7}#ssSearchBar .tabs .tab-spacer.full{width:100%;margin-right:4px;position:relative}#ssSearchBar .ss-adv-search-text{padding-bottom:1em;padding-right:2rem;pointer-events:none}#ssSearchBar .ss-bar-wrapper{padding:1em 1em .25em;border-right:#b7b7b7 solid 1px;border-left:#b7b7b7 solid 1px;border-bottom:#b7b7b7 solid 1px;width:100%;display:flex;align-items:center;flex-wrap:wrap;position:relative;background-color:#fffffff2;border-radius:0 4px 4px;overflow:hidden}#ssSearchBar .ss-bar-wrapper:after{content:\"\";position:absolute;top:0;right:-1px;background-color:transparent;border-radius:0 4px 0 0;width:4px;height:4px;border-top:#b7b7b7 solid 1px;border-right:#b7b7b7 solid 1px}#ssSearchBar .ss-bar-content{position:relative;width:100%;height:initial}#ssSearchBar .ss-search-bar{border-radius:4px;border:#b7b7b7 solid 1px;width:100%}#ssSearchBar #advSearchCloseBtn{float:right;padding:.4em;margin:-.4em 0;color:#666;transition:all .1s}#ssSearchBar #advSearchCloseBtn:hover{color:#292929}#ssSearchBar #advSearchCloseBtn .ss-icon{font-size:1.2em;font-weight:600}#ssSearchBar .ss-adv-search-btn{font-size:.9em;color:#4070b0;margin:.2em 4em 0 auto;padding-right:.4rem;display:flex;justify-content:center;align-items:center}#ssSearchBar .ss-adv-search-btn .ss-icon{font-size:1.4em;opacity:.75;margin-top:.2rem}#ssSearchBar .ss-adv-search-btn:hover{color:#6892ca}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SsAdvancedQueriesPipe, name: "ssAdvancedQueries" }, { kind: "component", type: AdvancedSearchComponent, selector: "lib-ss-advanced-search", inputs: ["config"], outputs: ["advancedSearch"] }, { kind: "component", type: SimpleSearchComponent, selector: "lib-ss-simple-search", inputs: ["config"], outputs: ["simpleSearch", "clearSimpleSearch"] }, { kind: "pipe", type: AdvancedFieldWarningPipe, name: "advancedFieldWarning" }], animations: [libHbllExpandCollapse], encapsulation: i0.ViewEncapsulation.None }); }
2024
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SsSearchBarComponent, isStandalone: true, selector: "lib-ss-search-bar", inputs: { config: "config" }, outputs: { simpleSearch: "simpleSearch", clearSimpleSearch: "clearSimpleSearch", advancedSearch: "advancedSearch", advancedSearchClosed: "advancedSearchClosed", advancedSearchOpen: "advancedSearchOpen", tabChange: "tabChange" }, providers: [FieldByScopePipe], viewQueries: [{ propertyName: "barWrapperRef", first: true, predicate: ["barWrapperRef"], descendants: true }], ngImport: i0, template: "<div id=\"ssSearchBar\">\n <div class=\"tabs\">\n <button\n (click)=\"emitTabChange('local')\"\n class=\"ss-tab\"\n id=\"localTab\"\n [ngClass]=\"{\n 'ss-active': config.scope === 'local',\n ensign: config.institution === 'ensign' && config.scope !== 'local',\n }\"\n data-testid=\"localTab\"\n [disabled]=\"config.scope === 'local'\"\n >\n In the Library\n </button>\n @if (config.institution !== 'law') {\n <div class=\"tab-spacer\"></div>\n <button\n (click)=\"emitTabChange('external')\"\n class=\"ss-tab\"\n id=\"externalTab\"\n [ngClass]=\"{\n 'ss-active': config.scope === 'external',\n ensign: config.institution === 'ensign' && config.scope !== 'external',\n }\"\n data-testid=\"externalTab\"\n [disabled]=\"config.scope === 'external'\"\n >\n Available Online\n </button>\n }\n <div class=\"tab-spacer full\"></div>\n </div>\n <div\n class=\"ss-bar-wrapper\"\n #barWrapperRef\n [@libHbllExpandCollapse]=\"{\n value: config.showAdvancedSearch ? (!config.showAdvancedSearchAsText ? 1 : 2) : 3,\n params: { startHeight: heightOfContainer },\n }\"\n >\n <div class=\"ss-bar-content\" data-testid=\"searchForm\">\n @if (!config.showAdvancedSearch) {\n <div class=\"ss-search-bar\">\n <lib-ss-simple-search\n [config]=\"config\"\n (simpleSearch)=\"emitSimpleSearch($event)\"\n (clearSimpleSearch)=\"emitClearSimpleSearch()\"\n ></lib-ss-simple-search>\n </div>\n } @else {\n <button\n id=\"advSearchCloseBtn\"\n (click)=\"emitAdvancedSearchClosed()\"\n data-testid=\"advSearchCloseBtn\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> close </span>\n </button>\n <div id=\"advSearchWrapper\">\n @if (config.showAdvancedSearch && !config.showAdvancedSearchAsText) {\n <div>\n <lib-ss-advanced-search\n [config]=\"config\"\n (advancedSearch)=\"emitAdvancedSearch($event)\"\n ></lib-ss-advanced-search>\n </div>\n } @else {\n <div\n class=\"ss-adv-search-text\"\n data-testid=\"advancedSearchText\"\n [innerHTML]=\"\n config.advancedSearchQueryRows | ssAdvancedQueries: config.scope\n \"\n ></div>\n <div\n [innerHTML]=\"\n config.advancedSearchQueryRows | advancedFieldWarning: config.scope\n \"\n ></div>\n }\n </div>\n }\n </div>\n @if (!config.showAdvancedSearch || config.showAdvancedSearchAsText) {\n <button\n data-testid=\"toggleAdvSearchButton\"\n class=\"ss-adv-search-btn\"\n id=\"advSearchBtn\"\n (click)=\"emitAdvancedSearchOpen()\"\n >\n Advanced\n <span class=\"material-symbols-outlined ss-icon\"> keyboard_arrow_down </span>\n </button>\n }\n </div>\n</div>\n", styles: ["#ssSearchBar .tabs .ss-tab.ensign{background-color:#2b6042!important;border-color:#2a6142}#ssSearchBar .tabs .ss-tab.ensign:hover{background-color:#357551!important}a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active .mat-ripple-element,.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-app-background, transparent));color:var(--mat-app-text-color, var(--mat-app-on-background, inherit))}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, none)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, none)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, none)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, none)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, none)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, none)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, none)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, none)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, none)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, none)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, none)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, none)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, none)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, none)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, none)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, none)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, none)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, none)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, none)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, none)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, none)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, none)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, none)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, none)}.mat-mdc-tooltip-surface{background-color:#333!important;border-radius:3px!important;color:#fff!important;font:inherit!important;font-size:.8em!important}#ssSearchBar{--mat-app-background-color: #faf9fd;--mat-app-text-color: #1a1b1f;--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-ripple-color: rgba(26, 27, 31, .1);--mat-option-selected-state-label-text-color: #131c2b;--mat-option-label-text-color: #1a1b1f;--mat-option-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-option-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-option-selected-state-layer-color: #dae2f9;--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 1.25rem;--mat-option-label-text-size: 1rem;--mat-option-label-text-tracking: .006rem;--mat-option-label-text-weight: 400;--mat-optgroup-label-text-color: #44474e;--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 1.25rem;--mat-optgroup-label-text-size: .875rem;--mat-optgroup-label-text-tracking: .006rem;--mat-optgroup-label-text-weight: 500;--mat-full-pseudo-checkbox-selected-icon-color: #005cbb;--mat-full-pseudo-checkbox-selected-checkmark-color: #ffffff;--mat-full-pseudo-checkbox-unselected-icon-color: #44474e;--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #faf9fd;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: rgba(26, 27, 31, .38);--mat-full-pseudo-checkbox-disabled-selected-icon-color: rgba(26, 27, 31, .38);--mat-minimal-pseudo-checkbox-selected-checkmark-color: #005cbb;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: rgba(26, 27, 31, .38);--mdc-elevated-card-container-color: #faf9fd;--mdc-elevated-card-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-elevated-card-container-shape: 12px;--mdc-outlined-card-container-color: #faf9fd;--mdc-outlined-card-outline-color: #c4c6d0;--mdc-outlined-card-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-outlined-card-container-shape: 12px;--mdc-outlined-card-outline-width: 1px;--mat-card-subtitle-text-color: #1a1b1f;--mat-card-title-text-font: Roboto, sans-serif;--mat-card-title-text-line-height: 1.75rem;--mat-card-title-text-size: 1.375rem;--mat-card-title-text-tracking: 0;--mat-card-title-text-weight: 400;--mat-card-subtitle-text-font: Roboto, sans-serif;--mat-card-subtitle-text-line-height: 1.5rem;--mat-card-subtitle-text-size: 1rem;--mat-card-subtitle-text-tracking: .009rem;--mat-card-subtitle-text-weight: 500;--mdc-linear-progress-active-indicator-color: #005cbb;--mdc-linear-progress-track-color: #e0e2ec;--mdc-linear-progress-active-indicator-height: 4px;--mdc-linear-progress-track-height: 4px;--mdc-linear-progress-track-shape: 0;--mdc-plain-tooltip-container-color: #2f3033;--mdc-plain-tooltip-supporting-text-color: #f2f0f4;--mdc-plain-tooltip-supporting-text-line-height: 1rem;--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: .75rem;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: .025rem;--mdc-plain-tooltip-container-shape: 4px;--mdc-filled-text-field-caret-color: #005cbb;--mdc-filled-text-field-focus-active-indicator-color: #005cbb;--mdc-filled-text-field-focus-label-text-color: #005cbb;--mdc-filled-text-field-container-color: #e0e2ec;--mdc-filled-text-field-disabled-container-color: rgba(26, 27, 31, .04);--mdc-filled-text-field-label-text-color: #44474e;--mdc-filled-text-field-hover-label-text-color: #44474e;--mdc-filled-text-field-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-input-text-color: #1a1b1f;--mdc-filled-text-field-disabled-input-text-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-input-text-placeholder-color: #44474e;--mdc-filled-text-field-error-hover-label-text-color: #410002;--mdc-filled-text-field-error-focus-label-text-color: #ba1a1a;--mdc-filled-text-field-error-label-text-color: #ba1a1a;--mdc-filled-text-field-active-indicator-color: #44474e;--mdc-filled-text-field-disabled-active-indicator-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-hover-active-indicator-color: #1a1b1f;--mdc-filled-text-field-error-active-indicator-color: #ba1a1a;--mdc-filled-text-field-error-focus-active-indicator-color: #ba1a1a;--mdc-filled-text-field-error-hover-active-indicator-color: #410002;--mdc-filled-text-field-label-text-font: Roboto, sans-serif;--mdc-filled-text-field-label-text-size: 1rem;--mdc-filled-text-field-label-text-tracking: .031rem;--mdc-filled-text-field-label-text-weight: 400;--mdc-filled-text-field-active-indicator-height: 1px;--mdc-filled-text-field-focus-active-indicator-height: 2px;--mdc-filled-text-field-container-shape: 4px;--mdc-outlined-text-field-caret-color: #005cbb;--mdc-outlined-text-field-focus-outline-color: #005cbb;--mdc-outlined-text-field-focus-label-text-color: #005cbb;--mdc-outlined-text-field-label-text-color: #44474e;--mdc-outlined-text-field-hover-label-text-color: #1a1b1f;--mdc-outlined-text-field-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-outlined-text-field-input-text-color: #1a1b1f;--mdc-outlined-text-field-disabled-input-text-color: rgba(26, 27, 31, .38);--mdc-outlined-text-field-input-text-placeholder-color: #44474e;--mdc-outlined-text-field-error-focus-label-text-color: #ba1a1a;--mdc-outlined-text-field-error-label-text-color: #ba1a1a;--mdc-outlined-text-field-error-hover-label-text-color: #410002;--mdc-outlined-text-field-outline-color: #74777f;--mdc-outlined-text-field-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-outlined-text-field-hover-outline-color: #1a1b1f;--mdc-outlined-text-field-error-focus-outline-color: #ba1a1a;--mdc-outlined-text-field-error-hover-outline-color: #410002;--mdc-outlined-text-field-error-outline-color: #ba1a1a;--mdc-outlined-text-field-label-text-font: Roboto, sans-serif;--mdc-outlined-text-field-label-text-size: 1rem;--mdc-outlined-text-field-label-text-tracking: .031rem;--mdc-outlined-text-field-label-text-weight: 400;--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 2px;--mdc-outlined-text-field-container-shape: 4px;--mat-form-field-focus-select-arrow-color: #005cbb;--mat-form-field-disabled-input-text-placeholder-color: rgba(26, 27, 31, .38);--mat-form-field-state-layer-color: #1a1b1f;--mat-form-field-error-text-color: #ba1a1a;--mat-form-field-select-option-text-color: #1a1b1f;--mat-form-field-select-disabled-option-text-color: rgba(26, 27, 31, .38);--mat-form-field-leading-icon-color: #44474e;--mat-form-field-disabled-leading-icon-color: rgba(26, 27, 31, .38);--mat-form-field-trailing-icon-color: #44474e;--mat-form-field-disabled-trailing-icon-color: rgba(26, 27, 31, .38);--mat-form-field-error-focus-trailing-icon-color: #ba1a1a;--mat-form-field-error-hover-trailing-icon-color: #410002;--mat-form-field-error-trailing-icon-color: #ba1a1a;--mat-form-field-enabled-select-arrow-color: #44474e;--mat-form-field-disabled-select-arrow-color: rgba(26, 27, 31, .38);--mat-form-field-hover-state-layer-opacity: .08;--mat-form-field-container-text-font: Roboto, sans-serif;--mat-form-field-container-text-line-height: 1.5rem;--mat-form-field-container-text-size: 1rem;--mat-form-field-container-text-tracking: .031rem;--mat-form-field-container-text-weight: 400;--mat-form-field-subscript-text-font: Roboto, sans-serif;--mat-form-field-subscript-text-line-height: 1rem;--mat-form-field-subscript-text-size: .75rem;--mat-form-field-subscript-text-tracking: .025rem;--mat-form-field-subscript-text-weight: 400;--mat-form-field-container-height: 56px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 16px;--mat-form-field-filled-with-label-container-padding-top: 24px;--mat-form-field-filled-with-label-container-padding-bottom: 8px;--mat-form-field-focus-state-layer-opacity: 0;--mat-select-panel-background-color: #efedf0;--mat-select-enabled-trigger-text-color: #1a1b1f;--mat-select-disabled-trigger-text-color: rgba(26, 27, 31, .38);--mat-select-placeholder-text-color: #44474e;--mat-select-enabled-arrow-color: #44474e;--mat-select-disabled-arrow-color: rgba(26, 27, 31, .38);--mat-select-focused-arrow-color: #005cbb;--mat-select-invalid-arrow-color: #ba1a1a;--mat-select-trigger-text-font: Roboto, sans-serif;--mat-select-trigger-text-line-height: 1.5rem;--mat-select-trigger-text-size: 1rem;--mat-select-trigger-text-tracking: .031rem;--mat-select-trigger-text-weight: 400;--mat-select-arrow-transform: translateY(-8px);--mat-select-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-autocomplete-background-color: #efedf0;--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-dialog-container-color: #faf9fd;--mdc-dialog-subhead-color: #1a1b1f;--mdc-dialog-supporting-text-color: #44474e;--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 2rem;--mdc-dialog-subhead-size: 1.5rem;--mdc-dialog-subhead-weight: 400;--mdc-dialog-subhead-tracking: 0;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 1.25rem;--mdc-dialog-supporting-text-size: .875rem;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: .016rem;--mdc-dialog-container-shape: 28px;--mat-dialog-container-elevation-shadow: none;--mat-dialog-container-max-width: 560px;--mat-dialog-container-small-max-width: calc(100vw - 32px) ;--mat-dialog-container-min-width: 280px;--mat-dialog-actions-alignment: flex-end;--mat-dialog-actions-padding: 16px 24px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px 0;--mat-dialog-headline-padding: 6px 24px 13px;--mdc-chip-outline-color: #74777f;--mdc-chip-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-chip-focus-outline-color: #44474e;--mdc-chip-hover-state-layer-opacity: .08;--mdc-chip-selected-hover-state-layer-opacity: .08;--mdc-chip-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-chip-elevated-selected-container-color: #dae2f9;--mdc-chip-flat-disabled-selected-container-color: rgba(26, 27, 31, .12);--mdc-chip-focus-state-layer-color: #44474e;--mdc-chip-hover-state-layer-color: #44474e;--mdc-chip-selected-hover-state-layer-color: #131c2b;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: #131c2b;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: #44474e;--mdc-chip-selected-label-text-color: #131c2b;--mdc-chip-with-icon-icon-color: #44474e;--mdc-chip-with-icon-disabled-icon-color: #1a1b1f;--mdc-chip-with-icon-selected-icon-color: #131c2b;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: #1a1b1f;--mdc-chip-with-trailing-icon-trailing-icon-color: #44474e;--mdc-chip-label-text-font: Roboto, sans-serif;--mdc-chip-label-text-line-height: 1.25rem;--mdc-chip-label-text-size: .875rem;--mdc-chip-label-text-tracking: .006rem;--mdc-chip-label-text-weight: 500;--mdc-chip-container-height: 32px;--mdc-chip-container-shape-radius: 8px;--mdc-chip-with-avatar-avatar-shape-radius: 24px;--mdc-chip-with-avatar-avatar-size: 24px;--mdc-chip-with-icon-icon-size: 18px;--mdc-chip-outline-width: 1px;--mdc-chip-with-avatar-disabled-avatar-opacity: .38;--mdc-chip-flat-selected-outline-width: 0;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity: .38;--mdc-chip-with-icon-disabled-icon-opacity: .38;--mdc-chip-elevated-container-color: transparent;--mat-chip-trailing-action-state-layer-color: #44474e;--mat-chip-selected-trailing-action-state-layer-color: #131c2b;--mat-chip-trailing-action-hover-state-layer-opacity: .08;--mat-chip-trailing-action-focus-state-layer-opacity: .12;--mat-chip-selected-disabled-trailing-icon-color: #1a1b1f;--mat-chip-selected-trailing-icon-color: #131c2b;--mat-chip-disabled-container-opacity: 1;--mat-chip-trailing-action-opacity: 1;--mat-chip-trailing-action-focus-opacity: 1;--mdc-switch-selected-focus-state-layer-opacity: .12;--mdc-switch-selected-hover-state-layer-opacity: .08;--mdc-switch-selected-pressed-state-layer-opacity: .12;--mdc-switch-unselected-focus-state-layer-opacity: .12;--mdc-switch-unselected-hover-state-layer-opacity: .08;--mdc-switch-unselected-pressed-state-layer-opacity: .12;--mdc-switch-selected-focus-state-layer-color: #005cbb;--mdc-switch-selected-handle-color: #ffffff;--mdc-switch-selected-hover-state-layer-color: #005cbb;--mdc-switch-selected-pressed-state-layer-color: #005cbb;--mdc-switch-selected-focus-handle-color: #d7e3ff;--mdc-switch-selected-hover-handle-color: #d7e3ff;--mdc-switch-selected-pressed-handle-color: #d7e3ff;--mdc-switch-selected-focus-track-color: #005cbb;--mdc-switch-selected-hover-track-color: #005cbb;--mdc-switch-selected-pressed-track-color: #005cbb;--mdc-switch-selected-track-color: #005cbb;--mdc-switch-disabled-selected-handle-color: #faf9fd;--mdc-switch-disabled-selected-icon-color: #1a1b1f;--mdc-switch-disabled-selected-track-color: #1a1b1f;--mdc-switch-disabled-unselected-handle-color: #1a1b1f;--mdc-switch-disabled-unselected-icon-color: #e0e2ec;--mdc-switch-disabled-unselected-track-color: #e0e2ec;--mdc-switch-selected-icon-color: #001b3f;--mdc-switch-unselected-focus-handle-color: #44474e;--mdc-switch-unselected-focus-state-layer-color: #1a1b1f;--mdc-switch-unselected-focus-track-color: #e0e2ec;--mdc-switch-unselected-handle-color: #74777f;--mdc-switch-unselected-hover-handle-color: #44474e;--mdc-switch-unselected-hover-state-layer-color: #1a1b1f;--mdc-switch-unselected-hover-track-color: #e0e2ec;--mdc-switch-unselected-icon-color: #e0e2ec;--mdc-switch-unselected-pressed-handle-color: #44474e;--mdc-switch-unselected-pressed-state-layer-color: #1a1b1f;--mdc-switch-unselected-pressed-track-color: #e0e2ec;--mdc-switch-unselected-track-color: #e0e2ec;--mdc-switch-disabled-selected-icon-opacity: .38;--mdc-switch-disabled-track-opacity: .12;--mdc-switch-disabled-unselected-icon-opacity: .38;--mdc-switch-handle-shape: 9999px;--mdc-switch-selected-icon-size: 16px;--mdc-switch-track-height: 32px;--mdc-switch-track-shape: 9999px;--mdc-switch-track-width: 52px;--mdc-switch-unselected-icon-size: 16px;--mdc-switch-state-layer-size: 40px;--mat-switch-track-outline-color: #74777f;--mat-switch-disabled-unselected-track-outline-color: #1a1b1f;--mat-switch-label-text-color: #1a1b1f;--mat-switch-label-text-font: Roboto, sans-serif;--mat-switch-label-text-line-height: 1.25rem;--mat-switch-label-text-size: .875rem;--mat-switch-label-text-tracking: .016rem;--mat-switch-label-text-weight: 400;--mat-switch-disabled-selected-handle-opacity: 1;--mat-switch-disabled-unselected-handle-opacity: .38;--mat-switch-unselected-handle-size: 16px;--mat-switch-selected-handle-size: 24px;--mat-switch-pressed-handle-size: 28px;--mat-switch-with-icon-handle-size: 24px;--mat-switch-selected-handle-horizontal-margin: 0 24px;--mat-switch-selected-with-icon-handle-horizontal-margin: 0 24px;--mat-switch-selected-pressed-handle-horizontal-margin: 0 22px;--mat-switch-unselected-handle-horizontal-margin: 0 8px;--mat-switch-unselected-with-icon-handle-horizontal-margin: 0 4px;--mat-switch-unselected-pressed-handle-horizontal-margin: 0 2px;--mat-switch-visible-track-opacity: 1;--mat-switch-hidden-track-opacity: 0;--mat-switch-visible-track-transition: opacity 75ms;--mat-switch-hidden-track-transition: opacity 75ms;--mat-switch-track-outline-width: 2px;--mat-switch-selected-track-outline-width: 2px;--mat-switch-selected-track-outline-color: transparent;--mat-switch-disabled-unselected-track-outline-width: 2px;--mdc-radio-disabled-selected-icon-color: #1a1b1f;--mdc-radio-disabled-unselected-icon-color: #1a1b1f;--mdc-radio-unselected-hover-icon-color: #1a1b1f;--mdc-radio-unselected-icon-color: #44474e;--mdc-radio-unselected-pressed-icon-color: #1a1b1f;--mdc-radio-selected-focus-icon-color: #005cbb;--mdc-radio-selected-hover-icon-color: #005cbb;--mdc-radio-selected-icon-color: #005cbb;--mdc-radio-selected-pressed-icon-color: #005cbb;--mdc-radio-state-layer-size: 40px;--mdc-radio-disabled-selected-icon-opacity: .38;--mdc-radio-disabled-unselected-icon-opacity: .38;--mat-radio-ripple-color: #1a1b1f;--mat-radio-checked-ripple-color: #005cbb;--mat-radio-disabled-label-color: rgba(26, 27, 31, .38);--mat-radio-label-text-color: #1a1b1f;--mat-radio-label-text-font: Roboto, sans-serif;--mat-radio-label-text-line-height: 1.25rem;--mat-radio-label-text-size: .875rem;--mat-radio-label-text-tracking: .016rem;--mat-radio-label-text-weight: 400;--mat-radio-touch-target-display: block;--mdc-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-slider-handle-color: #005cbb;--mdc-slider-focus-handle-color: #005cbb;--mdc-slider-hover-handle-color: #005cbb;--mdc-slider-active-track-color: #005cbb;--mdc-slider-inactive-track-color: #e0e2ec;--mdc-slider-with-tick-marks-inactive-container-color: #44474e;--mdc-slider-with-tick-marks-active-container-color: #ffffff;--mdc-slider-disabled-active-track-color: #1a1b1f;--mdc-slider-disabled-handle-color: #1a1b1f;--mdc-slider-disabled-inactive-track-color: #1a1b1f;--mdc-slider-label-container-color: #005cbb;--mdc-slider-label-label-text-color: #ffffff;--mdc-slider-with-overlap-handle-outline-color: #ffffff;--mdc-slider-with-tick-marks-disabled-container-color: #1a1b1f;--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: .75rem;--mdc-slider-label-label-text-line-height: 1rem;--mdc-slider-label-label-text-tracking: .031rem;--mdc-slider-label-label-text-weight: 500;--mdc-slider-active-track-height: 4px;--mdc-slider-active-track-shape: 9999px;--mdc-slider-handle-height: 20px;--mdc-slider-handle-shape: 9999px;--mdc-slider-handle-width: 20px;--mdc-slider-inactive-track-height: 4px;--mdc-slider-inactive-track-shape: 9999px;--mdc-slider-with-overlap-handle-outline-width: 1px;--mdc-slider-with-tick-marks-active-container-opacity: .38;--mdc-slider-with-tick-marks-container-shape: 9999px;--mdc-slider-with-tick-marks-container-size: 2px;--mdc-slider-with-tick-marks-inactive-container-opacity: .38;--mat-slider-ripple-color: #005cbb;--mat-slider-hover-state-layer-color: rgba(0, 92, 187, .05);--mat-slider-focus-state-layer-color: rgba(0, 92, 187, .2);--mat-slider-value-indicator-width: 28px;--mat-slider-value-indicator-height: 28px;--mat-slider-value-indicator-caret-display: none;--mat-slider-value-indicator-border-radius: 50% 50% 50% 0;--mat-slider-value-indicator-padding: 0;--mat-slider-value-indicator-text-transform: rotate(45deg);--mat-slider-value-indicator-container-transform: translateX(-50%) rotate(-45deg);--mat-slider-value-indicator-opacity: 1;--mat-menu-item-label-text-color: #1a1b1f;--mat-menu-item-icon-color: #44474e;--mat-menu-item-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-menu-item-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-menu-container-color: #efedf0;--mat-menu-divider-color: #e0e2ec;--mat-menu-item-label-text-font: Roboto, sans-serif;--mat-menu-item-label-text-size: .875rem;--mat-menu-item-label-text-tracking: .006rem;--mat-menu-item-label-text-line-height: 1.25rem;--mat-menu-item-label-text-weight: 500;--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 8px;--mat-menu-divider-top-spacing: 8px;--mat-menu-item-spacing: 12px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 12px;--mat-menu-item-trailing-spacing: 12px;--mat-menu-item-with-icon-leading-spacing: 12px;--mat-menu-item-with-icon-trailing-spacing: 12px;--mat-menu-base-elevation-level: 2;--mdc-list-list-item-container-color: transparent;--mdc-list-list-item-leading-avatar-color: #d7e3ff;--mdc-list-list-item-disabled-state-layer-color: #1a1b1f;--mdc-list-list-item-disabled-state-layer-opacity: .12;--mdc-list-list-item-label-text-color: #1a1b1f;--mdc-list-list-item-supporting-text-color: #44474e;--mdc-list-list-item-leading-icon-color: #44474e;--mdc-list-list-item-trailing-supporting-text-color: #44474e;--mdc-list-list-item-trailing-icon-color: #44474e;--mdc-list-list-item-selected-trailing-icon-color: #005cbb;--mdc-list-list-item-disabled-label-text-color: #1a1b1f;--mdc-list-list-item-disabled-leading-icon-color: #1a1b1f;--mdc-list-list-item-disabled-trailing-icon-color: #1a1b1f;--mdc-list-list-item-hover-label-text-color: #1a1b1f;--mdc-list-list-item-focus-label-text-color: #1a1b1f;--mdc-list-list-item-hover-state-layer-color: #1a1b1f;--mdc-list-list-item-hover-state-layer-opacity: .08;--mdc-list-list-item-focus-state-layer-color: #1a1b1f;--mdc-list-list-item-focus-state-layer-opacity: .12;--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 1.5rem;--mdc-list-list-item-label-text-size: 1rem;--mdc-list-list-item-label-text-tracking: .031rem;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 1.25rem;--mdc-list-list-item-supporting-text-size: .875rem;--mdc-list-list-item-supporting-text-tracking: .016rem;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 1rem;--mdc-list-list-item-trailing-supporting-text-size: .688rem;--mdc-list-list-item-trailing-supporting-text-tracking: .031rem;--mdc-list-list-item-trailing-supporting-text-weight: 500;--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px;--mdc-list-list-item-container-shape: 0;--mdc-list-list-item-leading-avatar-shape: 9999px;--mdc-list-list-item-leading-icon-size: 24px;--mdc-list-list-item-leading-avatar-size: 40px;--mdc-list-list-item-trailing-icon-size: 24px;--mdc-list-list-item-disabled-label-text-opacity: .3;--mdc-list-list-item-disabled-leading-icon-opacity: .38;--mdc-list-list-item-disabled-trailing-icon-opacity: .38;--mat-list-active-indicator-color: #dae2f9;--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 16px;--mat-list-active-indicator-shape: 9999px;--mat-paginator-container-text-color: #1a1b1f;--mat-paginator-container-background-color: #faf9fd;--mat-paginator-enabled-icon-color: #44474e;--mat-paginator-disabled-icon-color: rgba(26, 27, 31, .38);--mat-paginator-container-text-font: Roboto, sans-serif;--mat-paginator-container-text-line-height: 1rem;--mat-paginator-container-text-size: .75rem;--mat-paginator-container-text-tracking: .025rem;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: .75rem;--mat-paginator-container-size: 56px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block;--mdc-secondary-navigation-tab-container-height: 48px;--mdc-tab-indicator-active-indicator-color: #005cbb;--mdc-tab-indicator-active-indicator-height: 2px;--mdc-tab-indicator-active-indicator-shape: 0;--mat-tab-header-divider-color: #e0e2ec;--mat-tab-header-pagination-icon-color: #1a1b1f;--mat-tab-header-inactive-label-text-color: #1a1b1f;--mat-tab-header-active-label-text-color: #1a1b1f;--mat-tab-header-active-ripple-color: #1a1b1f;--mat-tab-header-inactive-ripple-color: #1a1b1f;--mat-tab-header-inactive-focus-label-text-color: #1a1b1f;--mat-tab-header-inactive-hover-label-text-color: #1a1b1f;--mat-tab-header-active-focus-label-text-color: #1a1b1f;--mat-tab-header-active-hover-label-text-color: #1a1b1f;--mat-tab-header-active-focus-indicator-color: #005cbb;--mat-tab-header-active-hover-indicator-color: #005cbb;--mat-tab-header-label-text-font: Roboto, sans-serif;--mat-tab-header-label-text-size: .875rem;--mat-tab-header-label-text-tracking: .006rem;--mat-tab-header-label-text-line-height: 1.25rem;--mat-tab-header-label-text-weight: 500;--mat-tab-header-divider-height: 1px;--mdc-checkbox-disabled-selected-checkmark-color: #faf9fd;--mdc-checkbox-selected-focus-state-layer-opacity: .12;--mdc-checkbox-selected-hover-state-layer-opacity: .08;--mdc-checkbox-selected-pressed-state-layer-opacity: .12;--mdc-checkbox-unselected-focus-state-layer-opacity: .12;--mdc-checkbox-unselected-hover-state-layer-opacity: .08;--mdc-checkbox-unselected-pressed-state-layer-opacity: .12;--mdc-checkbox-selected-pressed-icon-color: #005cbb;--mdc-checkbox-disabled-selected-icon-color: rgba(26, 27, 31, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(26, 27, 31, .38);--mdc-checkbox-selected-checkmark-color: #ffffff;--mdc-checkbox-selected-focus-icon-color: #005cbb;--mdc-checkbox-selected-hover-icon-color: #005cbb;--mdc-checkbox-selected-icon-color: #005cbb;--mdc-checkbox-unselected-focus-icon-color: #1a1b1f;--mdc-checkbox-unselected-hover-icon-color: #1a1b1f;--mdc-checkbox-unselected-icon-color: #44474e;--mdc-checkbox-selected-focus-state-layer-color: #005cbb;--mdc-checkbox-selected-hover-state-layer-color: #005cbb;--mdc-checkbox-selected-pressed-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-focus-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-hover-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-pressed-state-layer-color: #005cbb;--mdc-checkbox-state-layer-size: 40px;--mat-checkbox-disabled-label-color: rgba(26, 27, 31, .38);--mat-checkbox-label-text-color: #1a1b1f;--mat-checkbox-label-text-font: Roboto, sans-serif;--mat-checkbox-label-text-line-height: 1.25rem;--mat-checkbox-label-text-size: .875rem;--mat-checkbox-label-text-tracking: .016rem;--mat-checkbox-label-text-weight: 400;--mat-checkbox-touch-target-display: block;--mdc-text-button-label-text-color: #005cbb;--mdc-text-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-text-button-label-text-font: Roboto, sans-serif;--mdc-text-button-label-text-size: .875rem;--mdc-text-button-label-text-tracking: .006rem;--mdc-text-button-label-text-weight: 500;--mdc-text-button-container-height: 40px;--mdc-text-button-container-shape: 9999px;--mdc-protected-button-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-container-color: #faf9fd;--mdc-protected-button-label-text-color: #005cbb;--mdc-protected-button-disabled-container-color: rgba(26, 27, 31, .12);--mdc-protected-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-protected-button-label-text-font: Roboto, sans-serif;--mdc-protected-button-label-text-size: .875rem;--mdc-protected-button-label-text-tracking: .006rem;--mdc-protected-button-label-text-weight: 500;--mdc-protected-button-container-height: 40px;--mdc-protected-button-container-shape: 9999px;--mdc-filled-button-container-color: #005cbb;--mdc-filled-button-label-text-color: #ffffff;--mdc-filled-button-disabled-container-color: rgba(26, 27, 31, .12);--mdc-filled-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-filled-button-label-text-font: Roboto, sans-serif;--mdc-filled-button-label-text-size: .875rem;--mdc-filled-button-label-text-tracking: .006rem;--mdc-filled-button-label-text-weight: 500;--mdc-filled-button-container-height: 40px;--mdc-filled-button-container-shape: 9999px;--mdc-outlined-button-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-outlined-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-outlined-button-label-text-color: #005cbb;--mdc-outlined-button-outline-color: #74777f;--mdc-outlined-button-label-text-font: Roboto, sans-serif;--mdc-outlined-button-label-text-size: .875rem;--mdc-outlined-button-label-text-tracking: .006rem;--mdc-outlined-button-label-text-weight: 500;--mdc-outlined-button-container-height: 40px;--mdc-outlined-button-outline-width: 1px;--mdc-outlined-button-container-shape: 9999px;--mat-text-button-state-layer-color: #005cbb;--mat-text-button-disabled-state-layer-color: #44474e;--mat-text-button-ripple-color: rgba(0, 92, 187, .12);--mat-text-button-hover-state-layer-opacity: .08;--mat-text-button-focus-state-layer-opacity: .12;--mat-text-button-pressed-state-layer-opacity: .12;--mat-text-button-touch-target-display: block;--mat-text-button-horizontal-padding: 12px;--mat-text-button-with-icon-horizontal-padding: 16px;--mat-text-button-icon-spacing: 8px;--mat-text-button-icon-offset: -4px;--mat-protected-button-state-layer-color: #005cbb;--mat-protected-button-disabled-state-layer-color: #44474e;--mat-protected-button-ripple-color: rgba(0, 92, 187, .12);--mat-protected-button-hover-state-layer-opacity: .08;--mat-protected-button-focus-state-layer-opacity: .12;--mat-protected-button-pressed-state-layer-opacity: .12;--mat-protected-button-touch-target-display: block;--mat-protected-button-horizontal-padding: 24px;--mat-protected-button-icon-spacing: 8px;--mat-protected-button-icon-offset: -8px;--mat-filled-button-state-layer-color: #ffffff;--mat-filled-button-disabled-state-layer-color: #44474e;--mat-filled-button-ripple-color: rgba(255, 255, 255, .12);--mat-filled-button-hover-state-layer-opacity: .08;--mat-filled-button-focus-state-layer-opacity: .12;--mat-filled-button-pressed-state-layer-opacity: .12;--mat-filled-button-touch-target-display: block;--mat-filled-button-horizontal-padding: 24px;--mat-filled-button-icon-spacing: 8px;--mat-filled-button-icon-offset: -8px;--mat-outlined-button-state-layer-color: #005cbb;--mat-outlined-button-disabled-state-layer-color: #44474e;--mat-outlined-button-ripple-color: rgba(0, 92, 187, .12);--mat-outlined-button-hover-state-layer-opacity: .08;--mat-outlined-button-focus-state-layer-opacity: .12;--mat-outlined-button-pressed-state-layer-opacity: .12;--mat-outlined-button-touch-target-display: block;--mat-outlined-button-horizontal-padding: 24px;--mat-outlined-button-icon-spacing: 8px;--mat-outlined-button-icon-offset: -8px;--mdc-icon-button-icon-color: #44474e;--mdc-icon-button-disabled-icon-color: rgba(26, 27, 31, .38);--mdc-icon-button-state-layer-size: 40px;--mdc-icon-button-icon-size: 24px;--mat-icon-button-state-layer-color: #44474e;--mat-icon-button-disabled-state-layer-color: #44474e;--mat-icon-button-ripple-color: rgba(68, 71, 78, .12);--mat-icon-button-hover-state-layer-opacity: .08;--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-touch-target-display: block;--mdc-extended-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-label-text-font: Roboto, sans-serif;--mdc-extended-fab-label-text-size: .875rem;--mdc-extended-fab-label-text-tracking: .006rem;--mdc-extended-fab-label-text-weight: 500;--mdc-extended-fab-container-height: 56px;--mdc-extended-fab-container-shape: 16px;--mdc-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-container-color: #d7e3ff;--mdc-fab-container-shape: 16px;--mdc-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-container-color: #d7e3ff;--mdc-fab-small-container-shape: 12px;--mat-fab-foreground-color: #001b3f;--mat-fab-state-layer-color: #001b3f;--mat-fab-ripple-color: rgba(0, 27, 63, .12);--mat-fab-hover-state-layer-opacity: .08;--mat-fab-focus-state-layer-opacity: .12;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-disabled-state-container-color: rgba(26, 27, 31, .12);--mat-fab-disabled-state-foreground-color: rgba(26, 27, 31, .38);--mat-fab-touch-target-display: block;--mat-fab-small-foreground-color: #001b3f;--mat-fab-small-state-layer-color: #001b3f;--mat-fab-small-ripple-color: rgba(0, 27, 63, .12);--mat-fab-small-hover-state-layer-opacity: .08;--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-disabled-state-container-color: rgba(26, 27, 31, .12);--mat-fab-small-disabled-state-foreground-color: rgba(26, 27, 31, .38);--mdc-snackbar-container-color: #2f3033;--mdc-snackbar-supporting-text-color: #f2f0f4;--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 1.25rem;--mdc-snackbar-supporting-text-size: .875rem;--mdc-snackbar-supporting-text-weight: 400;--mdc-snackbar-container-shape: 4px;--mat-snack-bar-button-color: #abc7ff;--mat-table-background-color: #faf9fd;--mat-table-header-headline-color: #1a1b1f;--mat-table-row-item-label-text-color: #1a1b1f;--mat-table-row-item-outline-color: #74777f;--mat-table-header-headline-font: Roboto, sans-serif;--mat-table-header-headline-line-height: 1.25rem;--mat-table-header-headline-size: .875rem;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .006rem;--mat-table-row-item-label-text-font: Roboto, sans-serif;--mat-table-row-item-label-text-line-height: 1.25rem;--mat-table-row-item-label-text-size: .875rem;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .016rem;--mat-table-footer-supporting-text-font: Roboto, sans-serif;--mat-table-footer-supporting-text-line-height: 1.25rem;--mat-table-footer-supporting-text-size: .875rem;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .016rem;--mat-table-header-container-height: 56px;--mat-table-footer-container-height: 52px;--mat-table-row-item-container-height: 52px;--mat-table-row-item-outline-width: 1px;--mdc-circular-progress-active-indicator-color: #005cbb;--mdc-circular-progress-active-indicator-width: 4px;--mdc-circular-progress-size: 48px;--mat-badge-background-color: #ba1a1a;--mat-badge-text-color: #ffffff;--mat-badge-disabled-state-background-color: rgba(186, 26, 26, .38);--mat-badge-disabled-state-text-color: #ffffff;--mat-badge-text-font: Roboto, sans-serif;--mat-badge-text-size: .688rem;--mat-badge-text-weight: 500;--mat-badge-large-size-text-size: .688rem;--mat-badge-container-shape: 9999px;--mat-badge-container-size: 16px;--mat-badge-small-size-container-size: 6px;--mat-badge-large-size-container-size: 16px;--mat-badge-legacy-container-size: 16px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 16px;--mat-badge-container-offset: -12px 0;--mat-badge-small-size-container-offset: -6px 0;--mat-badge-large-size-container-offset: -12px 0;--mat-badge-container-overlap-offset: -12px;--mat-badge-small-size-container-overlap-offset: -6px;--mat-badge-large-size-container-overlap-offset: -12px;--mat-badge-container-padding: 0 4px;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0 4px;--mat-badge-small-size-text-size: 0;--mat-bottom-sheet-container-text-color: #1a1b1f;--mat-bottom-sheet-container-background-color: #f4f3f6;--mat-bottom-sheet-container-text-font: Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height: 1.5rem;--mat-bottom-sheet-container-text-size: 1rem;--mat-bottom-sheet-container-text-tracking: .031rem;--mat-bottom-sheet-container-text-weight: 400;--mat-bottom-sheet-container-shape: 28px;--mat-standard-button-toggle-hover-state-layer-opacity: .08;--mat-standard-button-toggle-focus-state-layer-opacity: .12;--mat-standard-button-toggle-text-color: #1a1b1f;--mat-standard-button-toggle-state-layer-color: #1a1b1f;--mat-standard-button-toggle-selected-state-background-color: #dae2f9;--mat-standard-button-toggle-selected-state-text-color: #131c2b;--mat-standard-button-toggle-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-standard-button-toggle-disabled-selected-state-text-color: rgba(26, 27, 31, .38);--mat-standard-button-toggle-disabled-selected-state-background-color: rgba(26, 27, 31, .12);--mat-standard-button-toggle-divider-color: #74777f;--mat-standard-button-toggle-label-text-font: Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height: 1.25rem;--mat-standard-button-toggle-label-text-size: .875rem;--mat-standard-button-toggle-label-text-tracking: .006rem;--mat-standard-button-toggle-label-text-weight: 500;--mat-standard-button-toggle-height: 40px;--mat-standard-button-toggle-shape: 9999px;--mat-standard-button-toggle-background-color: transparent;--mat-standard-button-toggle-disabled-state-background-color: transparent;--mat-datepicker-calendar-date-selected-state-text-color: #ffffff;--mat-datepicker-calendar-date-selected-state-background-color: #005cbb;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-today-selected-state-outline-color: #005cbb;--mat-datepicker-calendar-date-focus-state-background-color: rgba(26, 27, 31, .12);--mat-datepicker-calendar-date-hover-state-background-color: rgba(26, 27, 31, .08);--mat-datepicker-toggle-active-state-icon-color: #44474e;--mat-datepicker-calendar-date-in-range-state-background-color: #d7e3ff;--mat-datepicker-calendar-date-in-comparison-range-state-background-color: #d7e3ff;--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #dae2f9;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: #565e71;--mat-datepicker-toggle-icon-color: #44474e;--mat-datepicker-calendar-body-label-text-color: #1a1b1f;--mat-datepicker-calendar-period-button-text-color: #44474e;--mat-datepicker-calendar-period-button-icon-color: #44474e;--mat-datepicker-calendar-navigation-button-icon-color: #44474e;--mat-datepicker-calendar-header-text-color: #44474e;--mat-datepicker-calendar-date-today-outline-color: #005cbb;--mat-datepicker-calendar-date-today-disabled-state-outline-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-text-color: #1a1b1f;--mat-datepicker-calendar-date-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-preview-state-outline-color: #005cbb;--mat-datepicker-range-input-separator-color: #1a1b1f;--mat-datepicker-range-input-disabled-state-separator-color: rgba(26, 27, 31, .38);--mat-datepicker-range-input-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-container-background-color: #e9e7eb;--mat-datepicker-calendar-container-text-color: #1a1b1f;--mat-datepicker-calendar-text-font: Roboto, sans-serif;--mat-datepicker-calendar-text-size: .875rem;--mat-datepicker-calendar-body-label-text-size: .875rem;--mat-datepicker-calendar-body-label-text-weight: 500;--mat-datepicker-calendar-period-button-text-size: .875rem;--mat-datepicker-calendar-period-button-text-weight: 500;--mat-datepicker-calendar-header-text-size: .875rem;--mat-datepicker-calendar-header-text-weight: 500;--mat-datepicker-calendar-container-shape: 16px;--mat-datepicker-calendar-container-touch-shape: 28px;--mat-datepicker-calendar-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-divider-color: transparent;--mat-datepicker-calendar-date-outline-color: transparent;--mat-divider-color: #74777f;--mat-divider-width: 1px;--mat-expansion-container-background-color: #faf9fd;--mat-expansion-container-text-color: #1a1b1f;--mat-expansion-actions-divider-color: #74777f;--mat-expansion-header-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-expansion-header-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-expansion-header-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-expansion-header-text-color: #1a1b1f;--mat-expansion-header-description-color: #44474e;--mat-expansion-header-indicator-color: #44474e;--mat-expansion-header-text-font: Roboto, sans-serif;--mat-expansion-header-text-size: 1rem;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: 1.5rem;--mat-expansion-header-text-tracking: .009rem;--mat-expansion-container-text-font: Roboto, sans-serif;--mat-expansion-container-text-line-height: 1.5rem;--mat-expansion-container-text-size: 1rem;--mat-expansion-container-text-tracking: .031rem;--mat-expansion-container-text-weight: 400;--mat-expansion-header-collapsed-state-height: 48px;--mat-expansion-header-expanded-state-height: 64px;--mat-expansion-container-shape: 12px;--mat-expansion-legacy-header-indicator-display: none;--mat-expansion-header-indicator-display: inline-block;--mat-grid-list-tile-header-primary-text-size: 400 1rem / 1.5rem Roboto, sans-serif;--mat-grid-list-tile-header-secondary-text-size: 400 .875rem / 1.25rem Roboto, sans-serif;--mat-grid-list-tile-footer-primary-text-size: 400 1rem / 1.5rem Roboto, sans-serif;--mat-grid-list-tile-footer-secondary-text-size: 400 .875rem / 1.25rem Roboto, sans-serif;--mat-icon-color: inherit;--mat-sidenav-container-background-color: #faf9fd;--mat-sidenav-container-text-color: #44474e;--mat-sidenav-content-background-color: #faf9fd;--mat-sidenav-content-text-color: #1a1b1f;--mat-sidenav-scrim-color: rgba(45, 48, 56, .4);--mat-sidenav-container-shape: 16px;--mat-sidenav-container-elevation-shadow: none;--mat-sidenav-container-width: 360px;--mat-sidenav-container-divider-color: transparent;--mat-stepper-header-icon-foreground-color: #faf9fd;--mat-stepper-header-selected-state-icon-background-color: #005cbb;--mat-stepper-header-selected-state-icon-foreground-color: #ffffff;--mat-stepper-header-edit-state-icon-background-color: #005cbb;--mat-stepper-header-edit-state-icon-foreground-color: #ffffff;--mat-stepper-container-color: #faf9fd;--mat-stepper-line-color: #74777f;--mat-stepper-header-hover-state-layer-color: rgba(47, 48, 51, .08);--mat-stepper-header-focus-state-layer-color: rgba(47, 48, 51, .12);--mat-stepper-header-label-text-color: #44474e;--mat-stepper-header-optional-label-text-color: #44474e;--mat-stepper-header-selected-state-label-text-color: #44474e;--mat-stepper-header-error-state-label-text-color: #ba1a1a;--mat-stepper-header-icon-background-color: #44474e;--mat-stepper-header-error-state-icon-foreground-color: #ba1a1a;--mat-stepper-container-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-size: .875rem;--mat-stepper-header-label-text-weight: 500;--mat-stepper-header-error-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-weight: 500;--mat-stepper-header-height: 72px;--mat-stepper-header-focus-state-layer-shape: 12px;--mat-stepper-header-hover-state-layer-shape: 12px;--mat-stepper-header-error-state-icon-background-color: transparent;--mat-sort-arrow-color: #1a1b1f;--mat-toolbar-container-background-color: #faf9fd;--mat-toolbar-container-text-color: #1a1b1f;--mat-toolbar-title-text-font: Roboto, sans-serif;--mat-toolbar-title-text-line-height: 1.75rem;--mat-toolbar-title-text-size: 1.375rem;--mat-toolbar-title-text-tracking: 0;--mat-toolbar-title-text-weight: 400;--mat-toolbar-standard-height: 64px;--mat-toolbar-mobile-height: 56px;--mat-tree-container-background-color: #faf9fd;--mat-tree-node-text-color: #1a1b1f;--mat-tree-node-text-font: Roboto, sans-serif;--mat-tree-node-text-size: 1rem;--mat-tree-node-text-weight: 400;--mat-tree-node-min-height: 48px;display:flex;align-items:flex-start;flex-wrap:wrap;position:relative;color:#444}.mat-theme-loaded-marker{display:none}#ssSearchBar .tabs{display:flex;width:100%;margin-bottom:-1px;z-index:10;pointer-events:none}#ssSearchBar .tabs .ss-tab{border-radius:4px 4px 0 0;border:#b7b7b7 solid 1px;border-color:#1967e5;border-bottom:none;padding:.3em 1.4em;font-size:.94em;letter-spacing:.4px;font-weight:600;background-color:#0047ba;color:#fff;white-space:nowrap;position:relative;pointer-events:auto}#ssSearchBar .tabs .ss-tab:after{content:\"\";height:1px;width:calc(100% + 2px);position:absolute;bottom:0;left:-1px;background-color:#b7b7b7}#ssSearchBar .tabs .ss-tab:hover{background-color:#1967e5}#ssSearchBar .tabs .ss-tab.ss-active{color:#002e5d;margin-bottom:1px;border-color:#b7b7b7;background-color:#fffffff2}#ssSearchBar .tabs .ss-tab.ss-active:after{display:none}#ssSearchBar .tabs .ss-tab:disabled{cursor:auto}#ssSearchBar .tabs .tab-spacer{width:.3em;border-bottom:#b7b7b7 solid 1px;position:relative}#ssSearchBar .tabs .tab-spacer:before{content:\"\";position:absolute;left:-1px;bottom:-1px;width:1px;height:1px;background-color:#b7b7b7}#ssSearchBar .tabs .tab-spacer:after{content:\"\";position:absolute;right:-1px;bottom:-1px;width:1px;height:1px;background-color:#b7b7b7}#ssSearchBar .tabs .tab-spacer.full{width:100%;margin-right:4px;position:relative}#ssSearchBar .ss-adv-search-text{padding-bottom:1em;padding-right:2rem;pointer-events:none}#ssSearchBar .ss-bar-wrapper{padding:1em 1em .25em;border-right:#b7b7b7 solid 1px;border-left:#b7b7b7 solid 1px;border-bottom:#b7b7b7 solid 1px;width:100%;display:flex;align-items:center;flex-wrap:wrap;position:relative;background-color:#fffffff2;border-radius:0 4px 4px;overflow:hidden}#ssSearchBar .ss-bar-wrapper:after{content:\"\";position:absolute;top:0;right:-1px;background-color:transparent;border-radius:0 4px 0 0;width:4px;height:4px;border-top:#b7b7b7 solid 1px;border-right:#b7b7b7 solid 1px}#ssSearchBar .ss-bar-content{position:relative;width:100%;height:initial}#ssSearchBar .ss-search-bar{border-radius:4px;border:#b7b7b7 solid 1px;width:100%}#ssSearchBar #advSearchCloseBtn{float:right;padding:.4em;margin:-.4em 0;color:#666;transition:all .1s}#ssSearchBar #advSearchCloseBtn:hover{color:#292929}#ssSearchBar #advSearchCloseBtn .ss-icon{font-size:1.2em;font-weight:600}#ssSearchBar .ss-adv-search-btn{font-size:.9em;color:#4070b0;margin:.2em 4em 0 auto;padding-right:.4rem;display:flex;justify-content:center;align-items:center}#ssSearchBar .ss-adv-search-btn .ss-icon{font-size:1.4em;opacity:.75;margin-top:.2rem}#ssSearchBar .ss-adv-search-btn:hover{color:#6892ca}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SsAdvancedQueriesPipe, name: "ssAdvancedQueries" }, { kind: "component", type: AdvancedSearchComponent, selector: "lib-ss-advanced-search", inputs: ["config"], outputs: ["advancedSearch"] }, { kind: "component", type: SimpleSearchComponent, selector: "lib-ss-simple-search", inputs: ["config"], outputs: ["simpleSearch", "clearSimpleSearch"] }, { kind: "pipe", type: AdvancedFieldWarningPipe, name: "advancedFieldWarning" }], animations: [libHbllExpandCollapse], encapsulation: i0.ViewEncapsulation.None }); }
1702
2025
  }
1703
2026
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SsSearchBarComponent, decorators: [{
1704
2027
  type: Component,
@@ -1708,7 +2031,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
1708
2031
  AdvancedSearchComponent,
1709
2032
  SimpleSearchComponent,
1710
2033
  AdvancedFieldWarningPipe,
1711
- ], providers: [FieldByScopePipe], animations: [libHbllExpandCollapse], encapsulation: ViewEncapsulation.None, template: "<div id=\"ssSearchBar\">\n <div class=\"tabs\">\n <button\n (click)=\"emitTabChange('local')\"\n class=\"ss-tab\"\n id=\"localTab\"\n [ngClass]=\"{\n 'ss-active': config.scope === 'local',\n ensign: config.institution === 'ensign' && config.scope !== 'local',\n }\"\n data-testid=\"localTab\"\n [disabled]=\"config.scope === 'local'\"\n >\n In the Library\n </button>\n @if (config.institution !== 'law') {\n <div class=\"tab-spacer\"></div>\n <button\n (click)=\"emitTabChange('external')\"\n class=\"ss-tab\"\n id=\"externalTab\"\n [ngClass]=\"{\n 'ss-active': config.scope === 'external',\n ensign: config.institution === 'ensign' && config.scope !== 'external',\n }\"\n data-testid=\"externalTab\"\n [disabled]=\"config.scope === 'external'\"\n >\n Available Online\n </button>\n }\n <div class=\"tab-spacer full\"></div>\n </div>\n <div\n class=\"ss-bar-wrapper\"\n #barWrapperRef\n [@libHbllExpandCollapse]=\"{\n value: config.showAdvancedSearch ? (!config.showAdvancedSearchAsText ? 1 : 2) : 3,\n params: { startHeight: heightOfContainer },\n }\"\n >\n <div class=\"ss-bar-content\" data-testid=\"searchForm\">\n @if (!config.showAdvancedSearch) {\n <div class=\"ss-search-bar\">\n <lib-ss-simple-search\n [config]=\"config\"\n (simpleSearch)=\"emitSimpleSearch($event)\"\n (clearSimpleSearch)=\"emitClearSimpleSearch()\"\n ></lib-ss-simple-search>\n </div>\n } @else {\n <button\n id=\"advSearchCloseBtn\"\n (click)=\"emitAdvancedSearchClosed()\"\n data-testid=\"advSearchCloseBtn\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> close </span>\n </button>\n <div id=\"advSearchWrapper\">\n @if (config.showAdvancedSearch && !config.showAdvancedSearchAsText) {\n <div>\n <lib-ss-advanced-search\n [config]=\"config\"\n (advancedSearch)=\"emitAdvancedSearch($event)\"\n ></lib-ss-advanced-search>\n </div>\n } @else {\n <div\n class=\"ss-adv-search-text\"\n data-testid=\"advancedSearchText\"\n [innerHTML]=\"\n config.advancedSearchQueryRows | ssAdvancedQueries: config.scope\n \"\n ></div>\n <div\n [innerHTML]=\"\n config.advancedSearchQueryRows | advancedFieldWarning: config.scope\n \"\n ></div>\n }\n </div>\n }\n </div>\n @if (!config.showAdvancedSearch || config.showAdvancedSearchAsText) {\n <button\n data-testid=\"toggleAdvSearchButton\"\n class=\"ss-adv-search-btn\"\n id=\"advSearchBtn\"\n (click)=\"emitAdvancedSearchOpen()\"\n >\n Advanced\n <span class=\"material-symbols-outlined ss-icon\"> keyboard_arrow_down </span>\n </button>\n }\n </div>\n</div>\n", styles: ["#ssSearchBar .tabs .ss-tab.ensign{background-color:#2b6042!important;border-color:#2a6142}#ssSearchBar .tabs .ss-tab.ensign:hover{background-color:#357551!important}a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active .mat-ripple-element,.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-app-background, transparent));color:var(--mat-app-text-color, var(--mat-app-on-background, inherit))}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, none)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, none)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, none)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, none)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, none)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, none)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, none)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, none)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, none)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, none)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, none)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, none)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, none)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, none)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, none)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, none)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, none)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, none)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, none)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, none)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, none)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, none)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, none)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, none)}.mat-mdc-tooltip-surface{background-color:#333!important;border-radius:3px!important;color:#fff!important;font:inherit!important;font-size:.8em!important}#ssSearchBar{--mat-app-background-color: #faf9fd;--mat-app-text-color: #1a1b1f;--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-ripple-color: rgba(26, 27, 31, .1);--mat-option-selected-state-label-text-color: #131c2b;--mat-option-label-text-color: #1a1b1f;--mat-option-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-option-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-option-selected-state-layer-color: #dae2f9;--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 1.25rem;--mat-option-label-text-size: 1rem;--mat-option-label-text-tracking: .006rem;--mat-option-label-text-weight: 400;--mat-optgroup-label-text-color: #44474e;--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 1.25rem;--mat-optgroup-label-text-size: .875rem;--mat-optgroup-label-text-tracking: .006rem;--mat-optgroup-label-text-weight: 500;--mat-full-pseudo-checkbox-selected-icon-color: #005cbb;--mat-full-pseudo-checkbox-selected-checkmark-color: #ffffff;--mat-full-pseudo-checkbox-unselected-icon-color: #44474e;--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #faf9fd;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: rgba(26, 27, 31, .38);--mat-full-pseudo-checkbox-disabled-selected-icon-color: rgba(26, 27, 31, .38);--mat-minimal-pseudo-checkbox-selected-checkmark-color: #005cbb;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: rgba(26, 27, 31, .38);--mdc-elevated-card-container-color: #faf9fd;--mdc-elevated-card-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-elevated-card-container-shape: 12px;--mdc-outlined-card-container-color: #faf9fd;--mdc-outlined-card-outline-color: #c4c6d0;--mdc-outlined-card-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-outlined-card-container-shape: 12px;--mdc-outlined-card-outline-width: 1px;--mat-card-subtitle-text-color: #1a1b1f;--mat-card-title-text-font: Roboto, sans-serif;--mat-card-title-text-line-height: 1.75rem;--mat-card-title-text-size: 1.375rem;--mat-card-title-text-tracking: 0;--mat-card-title-text-weight: 400;--mat-card-subtitle-text-font: Roboto, sans-serif;--mat-card-subtitle-text-line-height: 1.5rem;--mat-card-subtitle-text-size: 1rem;--mat-card-subtitle-text-tracking: .009rem;--mat-card-subtitle-text-weight: 500;--mdc-linear-progress-active-indicator-color: #005cbb;--mdc-linear-progress-track-color: #e0e2ec;--mdc-linear-progress-active-indicator-height: 4px;--mdc-linear-progress-track-height: 4px;--mdc-linear-progress-track-shape: 0;--mdc-plain-tooltip-container-color: #2f3033;--mdc-plain-tooltip-supporting-text-color: #f2f0f4;--mdc-plain-tooltip-supporting-text-line-height: 1rem;--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: .75rem;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: .025rem;--mdc-plain-tooltip-container-shape: 4px;--mdc-filled-text-field-caret-color: #005cbb;--mdc-filled-text-field-focus-active-indicator-color: #005cbb;--mdc-filled-text-field-focus-label-text-color: #005cbb;--mdc-filled-text-field-container-color: #e0e2ec;--mdc-filled-text-field-disabled-container-color: rgba(26, 27, 31, .04);--mdc-filled-text-field-label-text-color: #44474e;--mdc-filled-text-field-hover-label-text-color: #44474e;--mdc-filled-text-field-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-input-text-color: #1a1b1f;--mdc-filled-text-field-disabled-input-text-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-input-text-placeholder-color: #44474e;--mdc-filled-text-field-error-hover-label-text-color: #410002;--mdc-filled-text-field-error-focus-label-text-color: #ba1a1a;--mdc-filled-text-field-error-label-text-color: #ba1a1a;--mdc-filled-text-field-active-indicator-color: #44474e;--mdc-filled-text-field-disabled-active-indicator-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-hover-active-indicator-color: #1a1b1f;--mdc-filled-text-field-error-active-indicator-color: #ba1a1a;--mdc-filled-text-field-error-focus-active-indicator-color: #ba1a1a;--mdc-filled-text-field-error-hover-active-indicator-color: #410002;--mdc-filled-text-field-label-text-font: Roboto, sans-serif;--mdc-filled-text-field-label-text-size: 1rem;--mdc-filled-text-field-label-text-tracking: .031rem;--mdc-filled-text-field-label-text-weight: 400;--mdc-filled-text-field-active-indicator-height: 1px;--mdc-filled-text-field-focus-active-indicator-height: 2px;--mdc-filled-text-field-container-shape: 4px;--mdc-outlined-text-field-caret-color: #005cbb;--mdc-outlined-text-field-focus-outline-color: #005cbb;--mdc-outlined-text-field-focus-label-text-color: #005cbb;--mdc-outlined-text-field-label-text-color: #44474e;--mdc-outlined-text-field-hover-label-text-color: #1a1b1f;--mdc-outlined-text-field-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-outlined-text-field-input-text-color: #1a1b1f;--mdc-outlined-text-field-disabled-input-text-color: rgba(26, 27, 31, .38);--mdc-outlined-text-field-input-text-placeholder-color: #44474e;--mdc-outlined-text-field-error-focus-label-text-color: #ba1a1a;--mdc-outlined-text-field-error-label-text-color: #ba1a1a;--mdc-outlined-text-field-error-hover-label-text-color: #410002;--mdc-outlined-text-field-outline-color: #74777f;--mdc-outlined-text-field-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-outlined-text-field-hover-outline-color: #1a1b1f;--mdc-outlined-text-field-error-focus-outline-color: #ba1a1a;--mdc-outlined-text-field-error-hover-outline-color: #410002;--mdc-outlined-text-field-error-outline-color: #ba1a1a;--mdc-outlined-text-field-label-text-font: Roboto, sans-serif;--mdc-outlined-text-field-label-text-size: 1rem;--mdc-outlined-text-field-label-text-tracking: .031rem;--mdc-outlined-text-field-label-text-weight: 400;--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 2px;--mdc-outlined-text-field-container-shape: 4px;--mat-form-field-focus-select-arrow-color: #005cbb;--mat-form-field-disabled-input-text-placeholder-color: rgba(26, 27, 31, .38);--mat-form-field-state-layer-color: #1a1b1f;--mat-form-field-error-text-color: #ba1a1a;--mat-form-field-select-option-text-color: #1a1b1f;--mat-form-field-select-disabled-option-text-color: rgba(26, 27, 31, .38);--mat-form-field-leading-icon-color: #44474e;--mat-form-field-disabled-leading-icon-color: rgba(26, 27, 31, .38);--mat-form-field-trailing-icon-color: #44474e;--mat-form-field-disabled-trailing-icon-color: rgba(26, 27, 31, .38);--mat-form-field-error-focus-trailing-icon-color: #ba1a1a;--mat-form-field-error-hover-trailing-icon-color: #410002;--mat-form-field-error-trailing-icon-color: #ba1a1a;--mat-form-field-enabled-select-arrow-color: #44474e;--mat-form-field-disabled-select-arrow-color: rgba(26, 27, 31, .38);--mat-form-field-hover-state-layer-opacity: .08;--mat-form-field-container-text-font: Roboto, sans-serif;--mat-form-field-container-text-line-height: 1.5rem;--mat-form-field-container-text-size: 1rem;--mat-form-field-container-text-tracking: .031rem;--mat-form-field-container-text-weight: 400;--mat-form-field-subscript-text-font: Roboto, sans-serif;--mat-form-field-subscript-text-line-height: 1rem;--mat-form-field-subscript-text-size: .75rem;--mat-form-field-subscript-text-tracking: .025rem;--mat-form-field-subscript-text-weight: 400;--mat-form-field-container-height: 56px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 16px;--mat-form-field-filled-with-label-container-padding-top: 24px;--mat-form-field-filled-with-label-container-padding-bottom: 8px;--mat-form-field-focus-state-layer-opacity: 0;--mat-select-panel-background-color: #efedf0;--mat-select-enabled-trigger-text-color: #1a1b1f;--mat-select-disabled-trigger-text-color: rgba(26, 27, 31, .38);--mat-select-placeholder-text-color: #44474e;--mat-select-enabled-arrow-color: #44474e;--mat-select-disabled-arrow-color: rgba(26, 27, 31, .38);--mat-select-focused-arrow-color: #005cbb;--mat-select-invalid-arrow-color: #ba1a1a;--mat-select-trigger-text-font: Roboto, sans-serif;--mat-select-trigger-text-line-height: 1.5rem;--mat-select-trigger-text-size: 1rem;--mat-select-trigger-text-tracking: .031rem;--mat-select-trigger-text-weight: 400;--mat-select-arrow-transform: translateY(-8px);--mat-select-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-autocomplete-background-color: #efedf0;--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-dialog-container-color: #faf9fd;--mdc-dialog-subhead-color: #1a1b1f;--mdc-dialog-supporting-text-color: #44474e;--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 2rem;--mdc-dialog-subhead-size: 1.5rem;--mdc-dialog-subhead-weight: 400;--mdc-dialog-subhead-tracking: 0;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 1.25rem;--mdc-dialog-supporting-text-size: .875rem;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: .016rem;--mdc-dialog-container-shape: 28px;--mat-dialog-container-elevation-shadow: none;--mat-dialog-container-max-width: 560px;--mat-dialog-container-small-max-width: calc(100vw - 32px) ;--mat-dialog-container-min-width: 280px;--mat-dialog-actions-alignment: flex-end;--mat-dialog-actions-padding: 16px 24px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px 0;--mat-dialog-headline-padding: 6px 24px 13px;--mdc-chip-outline-color: #74777f;--mdc-chip-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-chip-focus-outline-color: #44474e;--mdc-chip-hover-state-layer-opacity: .08;--mdc-chip-selected-hover-state-layer-opacity: .08;--mdc-chip-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-chip-elevated-selected-container-color: #dae2f9;--mdc-chip-flat-disabled-selected-container-color: rgba(26, 27, 31, .12);--mdc-chip-focus-state-layer-color: #44474e;--mdc-chip-hover-state-layer-color: #44474e;--mdc-chip-selected-hover-state-layer-color: #131c2b;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: #131c2b;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: #44474e;--mdc-chip-selected-label-text-color: #131c2b;--mdc-chip-with-icon-icon-color: #44474e;--mdc-chip-with-icon-disabled-icon-color: #1a1b1f;--mdc-chip-with-icon-selected-icon-color: #131c2b;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: #1a1b1f;--mdc-chip-with-trailing-icon-trailing-icon-color: #44474e;--mdc-chip-label-text-font: Roboto, sans-serif;--mdc-chip-label-text-line-height: 1.25rem;--mdc-chip-label-text-size: .875rem;--mdc-chip-label-text-tracking: .006rem;--mdc-chip-label-text-weight: 500;--mdc-chip-container-height: 32px;--mdc-chip-container-shape-radius: 8px;--mdc-chip-with-avatar-avatar-shape-radius: 24px;--mdc-chip-with-avatar-avatar-size: 24px;--mdc-chip-with-icon-icon-size: 18px;--mdc-chip-outline-width: 1px;--mdc-chip-with-avatar-disabled-avatar-opacity: .38;--mdc-chip-flat-selected-outline-width: 0;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity: .38;--mdc-chip-with-icon-disabled-icon-opacity: .38;--mdc-chip-elevated-container-color: transparent;--mat-chip-trailing-action-state-layer-color: #44474e;--mat-chip-selected-trailing-action-state-layer-color: #131c2b;--mat-chip-trailing-action-hover-state-layer-opacity: .08;--mat-chip-trailing-action-focus-state-layer-opacity: .12;--mat-chip-selected-disabled-trailing-icon-color: #1a1b1f;--mat-chip-selected-trailing-icon-color: #131c2b;--mat-chip-disabled-container-opacity: 1;--mat-chip-trailing-action-opacity: 1;--mat-chip-trailing-action-focus-opacity: 1;--mdc-switch-selected-focus-state-layer-opacity: .12;--mdc-switch-selected-hover-state-layer-opacity: .08;--mdc-switch-selected-pressed-state-layer-opacity: .12;--mdc-switch-unselected-focus-state-layer-opacity: .12;--mdc-switch-unselected-hover-state-layer-opacity: .08;--mdc-switch-unselected-pressed-state-layer-opacity: .12;--mdc-switch-selected-focus-state-layer-color: #005cbb;--mdc-switch-selected-handle-color: #ffffff;--mdc-switch-selected-hover-state-layer-color: #005cbb;--mdc-switch-selected-pressed-state-layer-color: #005cbb;--mdc-switch-selected-focus-handle-color: #d7e3ff;--mdc-switch-selected-hover-handle-color: #d7e3ff;--mdc-switch-selected-pressed-handle-color: #d7e3ff;--mdc-switch-selected-focus-track-color: #005cbb;--mdc-switch-selected-hover-track-color: #005cbb;--mdc-switch-selected-pressed-track-color: #005cbb;--mdc-switch-selected-track-color: #005cbb;--mdc-switch-disabled-selected-handle-color: #faf9fd;--mdc-switch-disabled-selected-icon-color: #1a1b1f;--mdc-switch-disabled-selected-track-color: #1a1b1f;--mdc-switch-disabled-unselected-handle-color: #1a1b1f;--mdc-switch-disabled-unselected-icon-color: #e0e2ec;--mdc-switch-disabled-unselected-track-color: #e0e2ec;--mdc-switch-selected-icon-color: #001b3f;--mdc-switch-unselected-focus-handle-color: #44474e;--mdc-switch-unselected-focus-state-layer-color: #1a1b1f;--mdc-switch-unselected-focus-track-color: #e0e2ec;--mdc-switch-unselected-handle-color: #74777f;--mdc-switch-unselected-hover-handle-color: #44474e;--mdc-switch-unselected-hover-state-layer-color: #1a1b1f;--mdc-switch-unselected-hover-track-color: #e0e2ec;--mdc-switch-unselected-icon-color: #e0e2ec;--mdc-switch-unselected-pressed-handle-color: #44474e;--mdc-switch-unselected-pressed-state-layer-color: #1a1b1f;--mdc-switch-unselected-pressed-track-color: #e0e2ec;--mdc-switch-unselected-track-color: #e0e2ec;--mdc-switch-disabled-selected-icon-opacity: .38;--mdc-switch-disabled-track-opacity: .12;--mdc-switch-disabled-unselected-icon-opacity: .38;--mdc-switch-handle-shape: 9999px;--mdc-switch-selected-icon-size: 16px;--mdc-switch-track-height: 32px;--mdc-switch-track-shape: 9999px;--mdc-switch-track-width: 52px;--mdc-switch-unselected-icon-size: 16px;--mdc-switch-state-layer-size: 40px;--mat-switch-track-outline-color: #74777f;--mat-switch-disabled-unselected-track-outline-color: #1a1b1f;--mat-switch-label-text-color: #1a1b1f;--mat-switch-label-text-font: Roboto, sans-serif;--mat-switch-label-text-line-height: 1.25rem;--mat-switch-label-text-size: .875rem;--mat-switch-label-text-tracking: .016rem;--mat-switch-label-text-weight: 400;--mat-switch-disabled-selected-handle-opacity: 1;--mat-switch-disabled-unselected-handle-opacity: .38;--mat-switch-unselected-handle-size: 16px;--mat-switch-selected-handle-size: 24px;--mat-switch-pressed-handle-size: 28px;--mat-switch-with-icon-handle-size: 24px;--mat-switch-selected-handle-horizontal-margin: 0 24px;--mat-switch-selected-with-icon-handle-horizontal-margin: 0 24px;--mat-switch-selected-pressed-handle-horizontal-margin: 0 22px;--mat-switch-unselected-handle-horizontal-margin: 0 8px;--mat-switch-unselected-with-icon-handle-horizontal-margin: 0 4px;--mat-switch-unselected-pressed-handle-horizontal-margin: 0 2px;--mat-switch-visible-track-opacity: 1;--mat-switch-hidden-track-opacity: 0;--mat-switch-visible-track-transition: opacity 75ms;--mat-switch-hidden-track-transition: opacity 75ms;--mat-switch-track-outline-width: 2px;--mat-switch-selected-track-outline-width: 2px;--mat-switch-selected-track-outline-color: transparent;--mat-switch-disabled-unselected-track-outline-width: 2px;--mdc-radio-disabled-selected-icon-color: #1a1b1f;--mdc-radio-disabled-unselected-icon-color: #1a1b1f;--mdc-radio-unselected-hover-icon-color: #1a1b1f;--mdc-radio-unselected-icon-color: #44474e;--mdc-radio-unselected-pressed-icon-color: #1a1b1f;--mdc-radio-selected-focus-icon-color: #005cbb;--mdc-radio-selected-hover-icon-color: #005cbb;--mdc-radio-selected-icon-color: #005cbb;--mdc-radio-selected-pressed-icon-color: #005cbb;--mdc-radio-state-layer-size: 40px;--mdc-radio-disabled-selected-icon-opacity: .38;--mdc-radio-disabled-unselected-icon-opacity: .38;--mat-radio-ripple-color: #1a1b1f;--mat-radio-checked-ripple-color: #005cbb;--mat-radio-disabled-label-color: rgba(26, 27, 31, .38);--mat-radio-label-text-color: #1a1b1f;--mat-radio-label-text-font: Roboto, sans-serif;--mat-radio-label-text-line-height: 1.25rem;--mat-radio-label-text-size: .875rem;--mat-radio-label-text-tracking: .016rem;--mat-radio-label-text-weight: 400;--mat-radio-touch-target-display: block;--mdc-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-slider-handle-color: #005cbb;--mdc-slider-focus-handle-color: #005cbb;--mdc-slider-hover-handle-color: #005cbb;--mdc-slider-active-track-color: #005cbb;--mdc-slider-inactive-track-color: #e0e2ec;--mdc-slider-with-tick-marks-inactive-container-color: #44474e;--mdc-slider-with-tick-marks-active-container-color: #ffffff;--mdc-slider-disabled-active-track-color: #1a1b1f;--mdc-slider-disabled-handle-color: #1a1b1f;--mdc-slider-disabled-inactive-track-color: #1a1b1f;--mdc-slider-label-container-color: #005cbb;--mdc-slider-label-label-text-color: #ffffff;--mdc-slider-with-overlap-handle-outline-color: #ffffff;--mdc-slider-with-tick-marks-disabled-container-color: #1a1b1f;--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: .75rem;--mdc-slider-label-label-text-line-height: 1rem;--mdc-slider-label-label-text-tracking: .031rem;--mdc-slider-label-label-text-weight: 500;--mdc-slider-active-track-height: 4px;--mdc-slider-active-track-shape: 9999px;--mdc-slider-handle-height: 20px;--mdc-slider-handle-shape: 9999px;--mdc-slider-handle-width: 20px;--mdc-slider-inactive-track-height: 4px;--mdc-slider-inactive-track-shape: 9999px;--mdc-slider-with-overlap-handle-outline-width: 1px;--mdc-slider-with-tick-marks-active-container-opacity: .38;--mdc-slider-with-tick-marks-container-shape: 9999px;--mdc-slider-with-tick-marks-container-size: 2px;--mdc-slider-with-tick-marks-inactive-container-opacity: .38;--mat-slider-ripple-color: #005cbb;--mat-slider-hover-state-layer-color: rgba(0, 92, 187, .05);--mat-slider-focus-state-layer-color: rgba(0, 92, 187, .2);--mat-slider-value-indicator-width: 28px;--mat-slider-value-indicator-height: 28px;--mat-slider-value-indicator-caret-display: none;--mat-slider-value-indicator-border-radius: 50% 50% 50% 0;--mat-slider-value-indicator-padding: 0;--mat-slider-value-indicator-text-transform: rotate(45deg);--mat-slider-value-indicator-container-transform: translateX(-50%) rotate(-45deg);--mat-slider-value-indicator-opacity: 1;--mat-menu-item-label-text-color: #1a1b1f;--mat-menu-item-icon-color: #44474e;--mat-menu-item-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-menu-item-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-menu-container-color: #efedf0;--mat-menu-divider-color: #e0e2ec;--mat-menu-item-label-text-font: Roboto, sans-serif;--mat-menu-item-label-text-size: .875rem;--mat-menu-item-label-text-tracking: .006rem;--mat-menu-item-label-text-line-height: 1.25rem;--mat-menu-item-label-text-weight: 500;--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 8px;--mat-menu-divider-top-spacing: 8px;--mat-menu-item-spacing: 12px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 12px;--mat-menu-item-trailing-spacing: 12px;--mat-menu-item-with-icon-leading-spacing: 12px;--mat-menu-item-with-icon-trailing-spacing: 12px;--mat-menu-base-elevation-level: 2;--mdc-list-list-item-container-color: transparent;--mdc-list-list-item-leading-avatar-color: #d7e3ff;--mdc-list-list-item-disabled-state-layer-color: #1a1b1f;--mdc-list-list-item-disabled-state-layer-opacity: .12;--mdc-list-list-item-label-text-color: #1a1b1f;--mdc-list-list-item-supporting-text-color: #44474e;--mdc-list-list-item-leading-icon-color: #44474e;--mdc-list-list-item-trailing-supporting-text-color: #44474e;--mdc-list-list-item-trailing-icon-color: #44474e;--mdc-list-list-item-selected-trailing-icon-color: #005cbb;--mdc-list-list-item-disabled-label-text-color: #1a1b1f;--mdc-list-list-item-disabled-leading-icon-color: #1a1b1f;--mdc-list-list-item-disabled-trailing-icon-color: #1a1b1f;--mdc-list-list-item-hover-label-text-color: #1a1b1f;--mdc-list-list-item-focus-label-text-color: #1a1b1f;--mdc-list-list-item-hover-state-layer-color: #1a1b1f;--mdc-list-list-item-hover-state-layer-opacity: .08;--mdc-list-list-item-focus-state-layer-color: #1a1b1f;--mdc-list-list-item-focus-state-layer-opacity: .12;--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 1.5rem;--mdc-list-list-item-label-text-size: 1rem;--mdc-list-list-item-label-text-tracking: .031rem;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 1.25rem;--mdc-list-list-item-supporting-text-size: .875rem;--mdc-list-list-item-supporting-text-tracking: .016rem;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 1rem;--mdc-list-list-item-trailing-supporting-text-size: .688rem;--mdc-list-list-item-trailing-supporting-text-tracking: .031rem;--mdc-list-list-item-trailing-supporting-text-weight: 500;--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px;--mdc-list-list-item-container-shape: 0;--mdc-list-list-item-leading-avatar-shape: 9999px;--mdc-list-list-item-leading-icon-size: 24px;--mdc-list-list-item-leading-avatar-size: 40px;--mdc-list-list-item-trailing-icon-size: 24px;--mdc-list-list-item-disabled-label-text-opacity: .3;--mdc-list-list-item-disabled-leading-icon-opacity: .38;--mdc-list-list-item-disabled-trailing-icon-opacity: .38;--mat-list-active-indicator-color: #dae2f9;--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 16px;--mat-list-active-indicator-shape: 9999px;--mat-paginator-container-text-color: #1a1b1f;--mat-paginator-container-background-color: #faf9fd;--mat-paginator-enabled-icon-color: #44474e;--mat-paginator-disabled-icon-color: rgba(26, 27, 31, .38);--mat-paginator-container-text-font: Roboto, sans-serif;--mat-paginator-container-text-line-height: 1rem;--mat-paginator-container-text-size: .75rem;--mat-paginator-container-text-tracking: .025rem;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: .75rem;--mat-paginator-container-size: 56px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block;--mdc-secondary-navigation-tab-container-height: 48px;--mdc-tab-indicator-active-indicator-color: #005cbb;--mdc-tab-indicator-active-indicator-height: 2px;--mdc-tab-indicator-active-indicator-shape: 0;--mat-tab-header-divider-color: #e0e2ec;--mat-tab-header-pagination-icon-color: #1a1b1f;--mat-tab-header-inactive-label-text-color: #1a1b1f;--mat-tab-header-active-label-text-color: #1a1b1f;--mat-tab-header-active-ripple-color: #1a1b1f;--mat-tab-header-inactive-ripple-color: #1a1b1f;--mat-tab-header-inactive-focus-label-text-color: #1a1b1f;--mat-tab-header-inactive-hover-label-text-color: #1a1b1f;--mat-tab-header-active-focus-label-text-color: #1a1b1f;--mat-tab-header-active-hover-label-text-color: #1a1b1f;--mat-tab-header-active-focus-indicator-color: #005cbb;--mat-tab-header-active-hover-indicator-color: #005cbb;--mat-tab-header-label-text-font: Roboto, sans-serif;--mat-tab-header-label-text-size: .875rem;--mat-tab-header-label-text-tracking: .006rem;--mat-tab-header-label-text-line-height: 1.25rem;--mat-tab-header-label-text-weight: 500;--mat-tab-header-divider-height: 1px;--mdc-checkbox-disabled-selected-checkmark-color: #faf9fd;--mdc-checkbox-selected-focus-state-layer-opacity: .12;--mdc-checkbox-selected-hover-state-layer-opacity: .08;--mdc-checkbox-selected-pressed-state-layer-opacity: .12;--mdc-checkbox-unselected-focus-state-layer-opacity: .12;--mdc-checkbox-unselected-hover-state-layer-opacity: .08;--mdc-checkbox-unselected-pressed-state-layer-opacity: .12;--mdc-checkbox-selected-pressed-icon-color: #005cbb;--mdc-checkbox-disabled-selected-icon-color: rgba(26, 27, 31, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(26, 27, 31, .38);--mdc-checkbox-selected-checkmark-color: #ffffff;--mdc-checkbox-selected-focus-icon-color: #005cbb;--mdc-checkbox-selected-hover-icon-color: #005cbb;--mdc-checkbox-selected-icon-color: #005cbb;--mdc-checkbox-unselected-focus-icon-color: #1a1b1f;--mdc-checkbox-unselected-hover-icon-color: #1a1b1f;--mdc-checkbox-unselected-icon-color: #44474e;--mdc-checkbox-selected-focus-state-layer-color: #005cbb;--mdc-checkbox-selected-hover-state-layer-color: #005cbb;--mdc-checkbox-selected-pressed-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-focus-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-hover-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-pressed-state-layer-color: #005cbb;--mdc-checkbox-state-layer-size: 40px;--mat-checkbox-disabled-label-color: rgba(26, 27, 31, .38);--mat-checkbox-label-text-color: #1a1b1f;--mat-checkbox-label-text-font: Roboto, sans-serif;--mat-checkbox-label-text-line-height: 1.25rem;--mat-checkbox-label-text-size: .875rem;--mat-checkbox-label-text-tracking: .016rem;--mat-checkbox-label-text-weight: 400;--mat-checkbox-touch-target-display: block;--mdc-text-button-label-text-color: #005cbb;--mdc-text-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-text-button-label-text-font: Roboto, sans-serif;--mdc-text-button-label-text-size: .875rem;--mdc-text-button-label-text-tracking: .006rem;--mdc-text-button-label-text-weight: 500;--mdc-text-button-container-height: 40px;--mdc-text-button-container-shape: 9999px;--mdc-protected-button-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-container-color: #faf9fd;--mdc-protected-button-label-text-color: #005cbb;--mdc-protected-button-disabled-container-color: rgba(26, 27, 31, .12);--mdc-protected-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-protected-button-label-text-font: Roboto, sans-serif;--mdc-protected-button-label-text-size: .875rem;--mdc-protected-button-label-text-tracking: .006rem;--mdc-protected-button-label-text-weight: 500;--mdc-protected-button-container-height: 40px;--mdc-protected-button-container-shape: 9999px;--mdc-filled-button-container-color: #005cbb;--mdc-filled-button-label-text-color: #ffffff;--mdc-filled-button-disabled-container-color: rgba(26, 27, 31, .12);--mdc-filled-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-filled-button-label-text-font: Roboto, sans-serif;--mdc-filled-button-label-text-size: .875rem;--mdc-filled-button-label-text-tracking: .006rem;--mdc-filled-button-label-text-weight: 500;--mdc-filled-button-container-height: 40px;--mdc-filled-button-container-shape: 9999px;--mdc-outlined-button-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-outlined-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-outlined-button-label-text-color: #005cbb;--mdc-outlined-button-outline-color: #74777f;--mdc-outlined-button-label-text-font: Roboto, sans-serif;--mdc-outlined-button-label-text-size: .875rem;--mdc-outlined-button-label-text-tracking: .006rem;--mdc-outlined-button-label-text-weight: 500;--mdc-outlined-button-container-height: 40px;--mdc-outlined-button-outline-width: 1px;--mdc-outlined-button-container-shape: 9999px;--mat-text-button-state-layer-color: #005cbb;--mat-text-button-disabled-state-layer-color: #44474e;--mat-text-button-ripple-color: rgba(0, 92, 187, .12);--mat-text-button-hover-state-layer-opacity: .08;--mat-text-button-focus-state-layer-opacity: .12;--mat-text-button-pressed-state-layer-opacity: .12;--mat-text-button-touch-target-display: block;--mat-text-button-horizontal-padding: 12px;--mat-text-button-with-icon-horizontal-padding: 16px;--mat-text-button-icon-spacing: 8px;--mat-text-button-icon-offset: -4px;--mat-protected-button-state-layer-color: #005cbb;--mat-protected-button-disabled-state-layer-color: #44474e;--mat-protected-button-ripple-color: rgba(0, 92, 187, .12);--mat-protected-button-hover-state-layer-opacity: .08;--mat-protected-button-focus-state-layer-opacity: .12;--mat-protected-button-pressed-state-layer-opacity: .12;--mat-protected-button-touch-target-display: block;--mat-protected-button-horizontal-padding: 24px;--mat-protected-button-icon-spacing: 8px;--mat-protected-button-icon-offset: -8px;--mat-filled-button-state-layer-color: #ffffff;--mat-filled-button-disabled-state-layer-color: #44474e;--mat-filled-button-ripple-color: rgba(255, 255, 255, .12);--mat-filled-button-hover-state-layer-opacity: .08;--mat-filled-button-focus-state-layer-opacity: .12;--mat-filled-button-pressed-state-layer-opacity: .12;--mat-filled-button-touch-target-display: block;--mat-filled-button-horizontal-padding: 24px;--mat-filled-button-icon-spacing: 8px;--mat-filled-button-icon-offset: -8px;--mat-outlined-button-state-layer-color: #005cbb;--mat-outlined-button-disabled-state-layer-color: #44474e;--mat-outlined-button-ripple-color: rgba(0, 92, 187, .12);--mat-outlined-button-hover-state-layer-opacity: .08;--mat-outlined-button-focus-state-layer-opacity: .12;--mat-outlined-button-pressed-state-layer-opacity: .12;--mat-outlined-button-touch-target-display: block;--mat-outlined-button-horizontal-padding: 24px;--mat-outlined-button-icon-spacing: 8px;--mat-outlined-button-icon-offset: -8px;--mdc-icon-button-icon-color: #44474e;--mdc-icon-button-disabled-icon-color: rgba(26, 27, 31, .38);--mdc-icon-button-state-layer-size: 40px;--mdc-icon-button-icon-size: 24px;--mat-icon-button-state-layer-color: #44474e;--mat-icon-button-disabled-state-layer-color: #44474e;--mat-icon-button-ripple-color: rgba(68, 71, 78, .12);--mat-icon-button-hover-state-layer-opacity: .08;--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-touch-target-display: block;--mdc-extended-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-label-text-font: Roboto, sans-serif;--mdc-extended-fab-label-text-size: .875rem;--mdc-extended-fab-label-text-tracking: .006rem;--mdc-extended-fab-label-text-weight: 500;--mdc-extended-fab-container-height: 56px;--mdc-extended-fab-container-shape: 16px;--mdc-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-container-color: #d7e3ff;--mdc-fab-container-shape: 16px;--mdc-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-container-color: #d7e3ff;--mdc-fab-small-container-shape: 12px;--mat-fab-foreground-color: #001b3f;--mat-fab-state-layer-color: #001b3f;--mat-fab-ripple-color: rgba(0, 27, 63, .12);--mat-fab-hover-state-layer-opacity: .08;--mat-fab-focus-state-layer-opacity: .12;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-disabled-state-container-color: rgba(26, 27, 31, .12);--mat-fab-disabled-state-foreground-color: rgba(26, 27, 31, .38);--mat-fab-touch-target-display: block;--mat-fab-small-foreground-color: #001b3f;--mat-fab-small-state-layer-color: #001b3f;--mat-fab-small-ripple-color: rgba(0, 27, 63, .12);--mat-fab-small-hover-state-layer-opacity: .08;--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-disabled-state-container-color: rgba(26, 27, 31, .12);--mat-fab-small-disabled-state-foreground-color: rgba(26, 27, 31, .38);--mdc-snackbar-container-color: #2f3033;--mdc-snackbar-supporting-text-color: #f2f0f4;--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 1.25rem;--mdc-snackbar-supporting-text-size: .875rem;--mdc-snackbar-supporting-text-weight: 400;--mdc-snackbar-container-shape: 4px;--mat-snack-bar-button-color: #abc7ff;--mat-table-background-color: #faf9fd;--mat-table-header-headline-color: #1a1b1f;--mat-table-row-item-label-text-color: #1a1b1f;--mat-table-row-item-outline-color: #74777f;--mat-table-header-headline-font: Roboto, sans-serif;--mat-table-header-headline-line-height: 1.25rem;--mat-table-header-headline-size: .875rem;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .006rem;--mat-table-row-item-label-text-font: Roboto, sans-serif;--mat-table-row-item-label-text-line-height: 1.25rem;--mat-table-row-item-label-text-size: .875rem;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .016rem;--mat-table-footer-supporting-text-font: Roboto, sans-serif;--mat-table-footer-supporting-text-line-height: 1.25rem;--mat-table-footer-supporting-text-size: .875rem;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .016rem;--mat-table-header-container-height: 56px;--mat-table-footer-container-height: 52px;--mat-table-row-item-container-height: 52px;--mat-table-row-item-outline-width: 1px;--mdc-circular-progress-active-indicator-color: #005cbb;--mdc-circular-progress-active-indicator-width: 4px;--mdc-circular-progress-size: 48px;--mat-badge-background-color: #ba1a1a;--mat-badge-text-color: #ffffff;--mat-badge-disabled-state-background-color: rgba(186, 26, 26, .38);--mat-badge-disabled-state-text-color: #ffffff;--mat-badge-text-font: Roboto, sans-serif;--mat-badge-text-size: .688rem;--mat-badge-text-weight: 500;--mat-badge-large-size-text-size: .688rem;--mat-badge-container-shape: 9999px;--mat-badge-container-size: 16px;--mat-badge-small-size-container-size: 6px;--mat-badge-large-size-container-size: 16px;--mat-badge-legacy-container-size: 16px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 16px;--mat-badge-container-offset: -12px 0;--mat-badge-small-size-container-offset: -6px 0;--mat-badge-large-size-container-offset: -12px 0;--mat-badge-container-overlap-offset: -12px;--mat-badge-small-size-container-overlap-offset: -6px;--mat-badge-large-size-container-overlap-offset: -12px;--mat-badge-container-padding: 0 4px;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0 4px;--mat-badge-small-size-text-size: 0;--mat-bottom-sheet-container-text-color: #1a1b1f;--mat-bottom-sheet-container-background-color: #f4f3f6;--mat-bottom-sheet-container-text-font: Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height: 1.5rem;--mat-bottom-sheet-container-text-size: 1rem;--mat-bottom-sheet-container-text-tracking: .031rem;--mat-bottom-sheet-container-text-weight: 400;--mat-bottom-sheet-container-shape: 28px;--mat-standard-button-toggle-hover-state-layer-opacity: .08;--mat-standard-button-toggle-focus-state-layer-opacity: .12;--mat-standard-button-toggle-text-color: #1a1b1f;--mat-standard-button-toggle-state-layer-color: #1a1b1f;--mat-standard-button-toggle-selected-state-background-color: #dae2f9;--mat-standard-button-toggle-selected-state-text-color: #131c2b;--mat-standard-button-toggle-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-standard-button-toggle-disabled-selected-state-text-color: rgba(26, 27, 31, .38);--mat-standard-button-toggle-disabled-selected-state-background-color: rgba(26, 27, 31, .12);--mat-standard-button-toggle-divider-color: #74777f;--mat-standard-button-toggle-label-text-font: Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height: 1.25rem;--mat-standard-button-toggle-label-text-size: .875rem;--mat-standard-button-toggle-label-text-tracking: .006rem;--mat-standard-button-toggle-label-text-weight: 500;--mat-standard-button-toggle-height: 40px;--mat-standard-button-toggle-shape: 9999px;--mat-standard-button-toggle-background-color: transparent;--mat-standard-button-toggle-disabled-state-background-color: transparent;--mat-datepicker-calendar-date-selected-state-text-color: #ffffff;--mat-datepicker-calendar-date-selected-state-background-color: #005cbb;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-today-selected-state-outline-color: #005cbb;--mat-datepicker-calendar-date-focus-state-background-color: rgba(26, 27, 31, .12);--mat-datepicker-calendar-date-hover-state-background-color: rgba(26, 27, 31, .08);--mat-datepicker-toggle-active-state-icon-color: #44474e;--mat-datepicker-calendar-date-in-range-state-background-color: #d7e3ff;--mat-datepicker-calendar-date-in-comparison-range-state-background-color: #d7e3ff;--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #dae2f9;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: #565e71;--mat-datepicker-toggle-icon-color: #44474e;--mat-datepicker-calendar-body-label-text-color: #1a1b1f;--mat-datepicker-calendar-period-button-text-color: #44474e;--mat-datepicker-calendar-period-button-icon-color: #44474e;--mat-datepicker-calendar-navigation-button-icon-color: #44474e;--mat-datepicker-calendar-header-text-color: #44474e;--mat-datepicker-calendar-date-today-outline-color: #005cbb;--mat-datepicker-calendar-date-today-disabled-state-outline-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-text-color: #1a1b1f;--mat-datepicker-calendar-date-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-preview-state-outline-color: #005cbb;--mat-datepicker-range-input-separator-color: #1a1b1f;--mat-datepicker-range-input-disabled-state-separator-color: rgba(26, 27, 31, .38);--mat-datepicker-range-input-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-container-background-color: #e9e7eb;--mat-datepicker-calendar-container-text-color: #1a1b1f;--mat-datepicker-calendar-text-font: Roboto, sans-serif;--mat-datepicker-calendar-text-size: .875rem;--mat-datepicker-calendar-body-label-text-size: .875rem;--mat-datepicker-calendar-body-label-text-weight: 500;--mat-datepicker-calendar-period-button-text-size: .875rem;--mat-datepicker-calendar-period-button-text-weight: 500;--mat-datepicker-calendar-header-text-size: .875rem;--mat-datepicker-calendar-header-text-weight: 500;--mat-datepicker-calendar-container-shape: 16px;--mat-datepicker-calendar-container-touch-shape: 28px;--mat-datepicker-calendar-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-divider-color: transparent;--mat-datepicker-calendar-date-outline-color: transparent;--mat-divider-color: #74777f;--mat-divider-width: 1px;--mat-expansion-container-background-color: #faf9fd;--mat-expansion-container-text-color: #1a1b1f;--mat-expansion-actions-divider-color: #74777f;--mat-expansion-header-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-expansion-header-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-expansion-header-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-expansion-header-text-color: #1a1b1f;--mat-expansion-header-description-color: #44474e;--mat-expansion-header-indicator-color: #44474e;--mat-expansion-header-text-font: Roboto, sans-serif;--mat-expansion-header-text-size: 1rem;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: 1.5rem;--mat-expansion-header-text-tracking: .009rem;--mat-expansion-container-text-font: Roboto, sans-serif;--mat-expansion-container-text-line-height: 1.5rem;--mat-expansion-container-text-size: 1rem;--mat-expansion-container-text-tracking: .031rem;--mat-expansion-container-text-weight: 400;--mat-expansion-header-collapsed-state-height: 48px;--mat-expansion-header-expanded-state-height: 64px;--mat-expansion-container-shape: 12px;--mat-expansion-legacy-header-indicator-display: none;--mat-expansion-header-indicator-display: inline-block;--mat-grid-list-tile-header-primary-text-size: 400 1rem / 1.5rem Roboto, sans-serif;--mat-grid-list-tile-header-secondary-text-size: 400 .875rem / 1.25rem Roboto, sans-serif;--mat-grid-list-tile-footer-primary-text-size: 400 1rem / 1.5rem Roboto, sans-serif;--mat-grid-list-tile-footer-secondary-text-size: 400 .875rem / 1.25rem Roboto, sans-serif;--mat-icon-color: inherit;--mat-sidenav-container-background-color: #faf9fd;--mat-sidenav-container-text-color: #44474e;--mat-sidenav-content-background-color: #faf9fd;--mat-sidenav-content-text-color: #1a1b1f;--mat-sidenav-scrim-color: rgba(45, 48, 56, .4);--mat-sidenav-container-shape: 16px;--mat-sidenav-container-elevation-shadow: none;--mat-sidenav-container-width: 360px;--mat-sidenav-container-divider-color: transparent;--mat-stepper-header-icon-foreground-color: #faf9fd;--mat-stepper-header-selected-state-icon-background-color: #005cbb;--mat-stepper-header-selected-state-icon-foreground-color: #ffffff;--mat-stepper-header-edit-state-icon-background-color: #005cbb;--mat-stepper-header-edit-state-icon-foreground-color: #ffffff;--mat-stepper-container-color: #faf9fd;--mat-stepper-line-color: #74777f;--mat-stepper-header-hover-state-layer-color: rgba(47, 48, 51, .08);--mat-stepper-header-focus-state-layer-color: rgba(47, 48, 51, .12);--mat-stepper-header-label-text-color: #44474e;--mat-stepper-header-optional-label-text-color: #44474e;--mat-stepper-header-selected-state-label-text-color: #44474e;--mat-stepper-header-error-state-label-text-color: #ba1a1a;--mat-stepper-header-icon-background-color: #44474e;--mat-stepper-header-error-state-icon-foreground-color: #ba1a1a;--mat-stepper-container-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-size: .875rem;--mat-stepper-header-label-text-weight: 500;--mat-stepper-header-error-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-weight: 500;--mat-stepper-header-height: 72px;--mat-stepper-header-focus-state-layer-shape: 12px;--mat-stepper-header-hover-state-layer-shape: 12px;--mat-stepper-header-error-state-icon-background-color: transparent;--mat-sort-arrow-color: #1a1b1f;--mat-toolbar-container-background-color: #faf9fd;--mat-toolbar-container-text-color: #1a1b1f;--mat-toolbar-title-text-font: Roboto, sans-serif;--mat-toolbar-title-text-line-height: 1.75rem;--mat-toolbar-title-text-size: 1.375rem;--mat-toolbar-title-text-tracking: 0;--mat-toolbar-title-text-weight: 400;--mat-toolbar-standard-height: 64px;--mat-toolbar-mobile-height: 56px;--mat-tree-container-background-color: #faf9fd;--mat-tree-node-text-color: #1a1b1f;--mat-tree-node-text-font: Roboto, sans-serif;--mat-tree-node-text-size: 1rem;--mat-tree-node-text-weight: 400;--mat-tree-node-min-height: 48px;display:flex;align-items:flex-start;flex-wrap:wrap;position:relative;color:#444}.mat-theme-loaded-marker{display:none}#ssSearchBar .tabs{display:flex;width:100%;margin-bottom:-1px;z-index:10}#ssSearchBar .tabs .ss-tab{border-radius:4px 4px 0 0;border:#b7b7b7 solid 1px;border-color:#6892ca;border-bottom:none;padding:.3em 1.4em;font-size:.94em;letter-spacing:.4px;font-weight:600;background-color:#4070b0;color:#fff;white-space:nowrap;position:relative}#ssSearchBar .tabs .ss-tab:after{content:\"\";height:1px;width:calc(100% + 2px);position:absolute;bottom:0;left:-1px;background-color:#b7b7b7}#ssSearchBar .tabs .ss-tab:hover{background-color:#6892ca}#ssSearchBar .tabs .ss-tab.ss-active{color:#002e5d;margin-bottom:1px;border-color:#b7b7b7;background-color:#fffffff2}#ssSearchBar .tabs .ss-tab.ss-active:after{display:none}#ssSearchBar .tabs .ss-tab:disabled{cursor:auto}#ssSearchBar .tabs .tab-spacer{width:.3em;border-bottom:#b7b7b7 solid 1px;position:relative}#ssSearchBar .tabs .tab-spacer:before{content:\"\";position:absolute;left:-1px;bottom:-1px;width:1px;height:1px;background-color:#b7b7b7}#ssSearchBar .tabs .tab-spacer:after{content:\"\";position:absolute;right:-1px;bottom:-1px;width:1px;height:1px;background-color:#b7b7b7}#ssSearchBar .tabs .tab-spacer.full{width:100%;margin-right:4px;position:relative}#ssSearchBar .ss-adv-search-text{padding-bottom:1em;padding-right:2rem;pointer-events:none}#ssSearchBar .ss-bar-wrapper{padding:1em 1em .25em;border-right:#b7b7b7 solid 1px;border-left:#b7b7b7 solid 1px;border-bottom:#b7b7b7 solid 1px;width:100%;display:flex;align-items:center;flex-wrap:wrap;position:relative;background-color:#fffffff2;border-radius:0 4px 4px;overflow:hidden}#ssSearchBar .ss-bar-wrapper:after{content:\"\";position:absolute;top:0;right:-1px;background-color:transparent;border-radius:0 4px 0 0;width:4px;height:4px;border-top:#b7b7b7 solid 1px;border-right:#b7b7b7 solid 1px}#ssSearchBar .ss-bar-content{position:relative;width:100%;height:initial}#ssSearchBar .ss-search-bar{border-radius:4px;border:#b7b7b7 solid 1px;width:100%}#ssSearchBar #advSearchCloseBtn{float:right;padding:.4em;margin:-.4em 0;color:#666;transition:all .1s}#ssSearchBar #advSearchCloseBtn:hover{color:#292929}#ssSearchBar #advSearchCloseBtn .ss-icon{font-size:1.2em;font-weight:600}#ssSearchBar .ss-adv-search-btn{font-size:.9em;color:#4070b0;margin:.2em 4em 0 auto;padding-right:.4rem;display:flex;justify-content:center;align-items:center}#ssSearchBar .ss-adv-search-btn .ss-icon{font-size:1.4em;opacity:.75;margin-top:.2rem}#ssSearchBar .ss-adv-search-btn:hover{color:#6892ca}\n"] }]
2034
+ ], providers: [FieldByScopePipe], animations: [libHbllExpandCollapse], encapsulation: ViewEncapsulation.None, template: "<div id=\"ssSearchBar\">\n <div class=\"tabs\">\n <button\n (click)=\"emitTabChange('local')\"\n class=\"ss-tab\"\n id=\"localTab\"\n [ngClass]=\"{\n 'ss-active': config.scope === 'local',\n ensign: config.institution === 'ensign' && config.scope !== 'local',\n }\"\n data-testid=\"localTab\"\n [disabled]=\"config.scope === 'local'\"\n >\n In the Library\n </button>\n @if (config.institution !== 'law') {\n <div class=\"tab-spacer\"></div>\n <button\n (click)=\"emitTabChange('external')\"\n class=\"ss-tab\"\n id=\"externalTab\"\n [ngClass]=\"{\n 'ss-active': config.scope === 'external',\n ensign: config.institution === 'ensign' && config.scope !== 'external',\n }\"\n data-testid=\"externalTab\"\n [disabled]=\"config.scope === 'external'\"\n >\n Available Online\n </button>\n }\n <div class=\"tab-spacer full\"></div>\n </div>\n <div\n class=\"ss-bar-wrapper\"\n #barWrapperRef\n [@libHbllExpandCollapse]=\"{\n value: config.showAdvancedSearch ? (!config.showAdvancedSearchAsText ? 1 : 2) : 3,\n params: { startHeight: heightOfContainer },\n }\"\n >\n <div class=\"ss-bar-content\" data-testid=\"searchForm\">\n @if (!config.showAdvancedSearch) {\n <div class=\"ss-search-bar\">\n <lib-ss-simple-search\n [config]=\"config\"\n (simpleSearch)=\"emitSimpleSearch($event)\"\n (clearSimpleSearch)=\"emitClearSimpleSearch()\"\n ></lib-ss-simple-search>\n </div>\n } @else {\n <button\n id=\"advSearchCloseBtn\"\n (click)=\"emitAdvancedSearchClosed()\"\n data-testid=\"advSearchCloseBtn\"\n >\n <span class=\"material-symbols-outlined ss-icon\"> close </span>\n </button>\n <div id=\"advSearchWrapper\">\n @if (config.showAdvancedSearch && !config.showAdvancedSearchAsText) {\n <div>\n <lib-ss-advanced-search\n [config]=\"config\"\n (advancedSearch)=\"emitAdvancedSearch($event)\"\n ></lib-ss-advanced-search>\n </div>\n } @else {\n <div\n class=\"ss-adv-search-text\"\n data-testid=\"advancedSearchText\"\n [innerHTML]=\"\n config.advancedSearchQueryRows | ssAdvancedQueries: config.scope\n \"\n ></div>\n <div\n [innerHTML]=\"\n config.advancedSearchQueryRows | advancedFieldWarning: config.scope\n \"\n ></div>\n }\n </div>\n }\n </div>\n @if (!config.showAdvancedSearch || config.showAdvancedSearchAsText) {\n <button\n data-testid=\"toggleAdvSearchButton\"\n class=\"ss-adv-search-btn\"\n id=\"advSearchBtn\"\n (click)=\"emitAdvancedSearchOpen()\"\n >\n Advanced\n <span class=\"material-symbols-outlined ss-icon\"> keyboard_arrow_down </span>\n </button>\n }\n </div>\n</div>\n", styles: ["#ssSearchBar .tabs .ss-tab.ensign{background-color:#2b6042!important;border-color:#2a6142}#ssSearchBar .tabs .ss-tab.ensign:hover{background-color:#357551!important}a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active .mat-ripple-element,.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-app-background, transparent));color:var(--mat-app-text-color, var(--mat-app-on-background, inherit))}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, none)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, none)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, none)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, none)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, none)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, none)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, none)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, none)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, none)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, none)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, none)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, none)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, none)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, none)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, none)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, none)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, none)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, none)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, none)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, none)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, none)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, none)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, none)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, none)}.mat-mdc-tooltip-surface{background-color:#333!important;border-radius:3px!important;color:#fff!important;font:inherit!important;font-size:.8em!important}#ssSearchBar{--mat-app-background-color: #faf9fd;--mat-app-text-color: #1a1b1f;--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-ripple-color: rgba(26, 27, 31, .1);--mat-option-selected-state-label-text-color: #131c2b;--mat-option-label-text-color: #1a1b1f;--mat-option-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-option-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-option-selected-state-layer-color: #dae2f9;--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 1.25rem;--mat-option-label-text-size: 1rem;--mat-option-label-text-tracking: .006rem;--mat-option-label-text-weight: 400;--mat-optgroup-label-text-color: #44474e;--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 1.25rem;--mat-optgroup-label-text-size: .875rem;--mat-optgroup-label-text-tracking: .006rem;--mat-optgroup-label-text-weight: 500;--mat-full-pseudo-checkbox-selected-icon-color: #005cbb;--mat-full-pseudo-checkbox-selected-checkmark-color: #ffffff;--mat-full-pseudo-checkbox-unselected-icon-color: #44474e;--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #faf9fd;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: rgba(26, 27, 31, .38);--mat-full-pseudo-checkbox-disabled-selected-icon-color: rgba(26, 27, 31, .38);--mat-minimal-pseudo-checkbox-selected-checkmark-color: #005cbb;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: rgba(26, 27, 31, .38);--mdc-elevated-card-container-color: #faf9fd;--mdc-elevated-card-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-elevated-card-container-shape: 12px;--mdc-outlined-card-container-color: #faf9fd;--mdc-outlined-card-outline-color: #c4c6d0;--mdc-outlined-card-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-outlined-card-container-shape: 12px;--mdc-outlined-card-outline-width: 1px;--mat-card-subtitle-text-color: #1a1b1f;--mat-card-title-text-font: Roboto, sans-serif;--mat-card-title-text-line-height: 1.75rem;--mat-card-title-text-size: 1.375rem;--mat-card-title-text-tracking: 0;--mat-card-title-text-weight: 400;--mat-card-subtitle-text-font: Roboto, sans-serif;--mat-card-subtitle-text-line-height: 1.5rem;--mat-card-subtitle-text-size: 1rem;--mat-card-subtitle-text-tracking: .009rem;--mat-card-subtitle-text-weight: 500;--mdc-linear-progress-active-indicator-color: #005cbb;--mdc-linear-progress-track-color: #e0e2ec;--mdc-linear-progress-active-indicator-height: 4px;--mdc-linear-progress-track-height: 4px;--mdc-linear-progress-track-shape: 0;--mdc-plain-tooltip-container-color: #2f3033;--mdc-plain-tooltip-supporting-text-color: #f2f0f4;--mdc-plain-tooltip-supporting-text-line-height: 1rem;--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: .75rem;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: .025rem;--mdc-plain-tooltip-container-shape: 4px;--mdc-filled-text-field-caret-color: #005cbb;--mdc-filled-text-field-focus-active-indicator-color: #005cbb;--mdc-filled-text-field-focus-label-text-color: #005cbb;--mdc-filled-text-field-container-color: #e0e2ec;--mdc-filled-text-field-disabled-container-color: rgba(26, 27, 31, .04);--mdc-filled-text-field-label-text-color: #44474e;--mdc-filled-text-field-hover-label-text-color: #44474e;--mdc-filled-text-field-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-input-text-color: #1a1b1f;--mdc-filled-text-field-disabled-input-text-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-input-text-placeholder-color: #44474e;--mdc-filled-text-field-error-hover-label-text-color: #410002;--mdc-filled-text-field-error-focus-label-text-color: #ba1a1a;--mdc-filled-text-field-error-label-text-color: #ba1a1a;--mdc-filled-text-field-active-indicator-color: #44474e;--mdc-filled-text-field-disabled-active-indicator-color: rgba(26, 27, 31, .38);--mdc-filled-text-field-hover-active-indicator-color: #1a1b1f;--mdc-filled-text-field-error-active-indicator-color: #ba1a1a;--mdc-filled-text-field-error-focus-active-indicator-color: #ba1a1a;--mdc-filled-text-field-error-hover-active-indicator-color: #410002;--mdc-filled-text-field-label-text-font: Roboto, sans-serif;--mdc-filled-text-field-label-text-size: 1rem;--mdc-filled-text-field-label-text-tracking: .031rem;--mdc-filled-text-field-label-text-weight: 400;--mdc-filled-text-field-active-indicator-height: 1px;--mdc-filled-text-field-focus-active-indicator-height: 2px;--mdc-filled-text-field-container-shape: 4px;--mdc-outlined-text-field-caret-color: #005cbb;--mdc-outlined-text-field-focus-outline-color: #005cbb;--mdc-outlined-text-field-focus-label-text-color: #005cbb;--mdc-outlined-text-field-label-text-color: #44474e;--mdc-outlined-text-field-hover-label-text-color: #1a1b1f;--mdc-outlined-text-field-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-outlined-text-field-input-text-color: #1a1b1f;--mdc-outlined-text-field-disabled-input-text-color: rgba(26, 27, 31, .38);--mdc-outlined-text-field-input-text-placeholder-color: #44474e;--mdc-outlined-text-field-error-focus-label-text-color: #ba1a1a;--mdc-outlined-text-field-error-label-text-color: #ba1a1a;--mdc-outlined-text-field-error-hover-label-text-color: #410002;--mdc-outlined-text-field-outline-color: #74777f;--mdc-outlined-text-field-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-outlined-text-field-hover-outline-color: #1a1b1f;--mdc-outlined-text-field-error-focus-outline-color: #ba1a1a;--mdc-outlined-text-field-error-hover-outline-color: #410002;--mdc-outlined-text-field-error-outline-color: #ba1a1a;--mdc-outlined-text-field-label-text-font: Roboto, sans-serif;--mdc-outlined-text-field-label-text-size: 1rem;--mdc-outlined-text-field-label-text-tracking: .031rem;--mdc-outlined-text-field-label-text-weight: 400;--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 2px;--mdc-outlined-text-field-container-shape: 4px;--mat-form-field-focus-select-arrow-color: #005cbb;--mat-form-field-disabled-input-text-placeholder-color: rgba(26, 27, 31, .38);--mat-form-field-state-layer-color: #1a1b1f;--mat-form-field-error-text-color: #ba1a1a;--mat-form-field-select-option-text-color: #1a1b1f;--mat-form-field-select-disabled-option-text-color: rgba(26, 27, 31, .38);--mat-form-field-leading-icon-color: #44474e;--mat-form-field-disabled-leading-icon-color: rgba(26, 27, 31, .38);--mat-form-field-trailing-icon-color: #44474e;--mat-form-field-disabled-trailing-icon-color: rgba(26, 27, 31, .38);--mat-form-field-error-focus-trailing-icon-color: #ba1a1a;--mat-form-field-error-hover-trailing-icon-color: #410002;--mat-form-field-error-trailing-icon-color: #ba1a1a;--mat-form-field-enabled-select-arrow-color: #44474e;--mat-form-field-disabled-select-arrow-color: rgba(26, 27, 31, .38);--mat-form-field-hover-state-layer-opacity: .08;--mat-form-field-container-text-font: Roboto, sans-serif;--mat-form-field-container-text-line-height: 1.5rem;--mat-form-field-container-text-size: 1rem;--mat-form-field-container-text-tracking: .031rem;--mat-form-field-container-text-weight: 400;--mat-form-field-subscript-text-font: Roboto, sans-serif;--mat-form-field-subscript-text-line-height: 1rem;--mat-form-field-subscript-text-size: .75rem;--mat-form-field-subscript-text-tracking: .025rem;--mat-form-field-subscript-text-weight: 400;--mat-form-field-container-height: 56px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 16px;--mat-form-field-filled-with-label-container-padding-top: 24px;--mat-form-field-filled-with-label-container-padding-bottom: 8px;--mat-form-field-focus-state-layer-opacity: 0;--mat-select-panel-background-color: #efedf0;--mat-select-enabled-trigger-text-color: #1a1b1f;--mat-select-disabled-trigger-text-color: rgba(26, 27, 31, .38);--mat-select-placeholder-text-color: #44474e;--mat-select-enabled-arrow-color: #44474e;--mat-select-disabled-arrow-color: rgba(26, 27, 31, .38);--mat-select-focused-arrow-color: #005cbb;--mat-select-invalid-arrow-color: #ba1a1a;--mat-select-trigger-text-font: Roboto, sans-serif;--mat-select-trigger-text-line-height: 1.5rem;--mat-select-trigger-text-size: 1rem;--mat-select-trigger-text-tracking: .031rem;--mat-select-trigger-text-weight: 400;--mat-select-arrow-transform: translateY(-8px);--mat-select-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-autocomplete-background-color: #efedf0;--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-dialog-container-color: #faf9fd;--mdc-dialog-subhead-color: #1a1b1f;--mdc-dialog-supporting-text-color: #44474e;--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 2rem;--mdc-dialog-subhead-size: 1.5rem;--mdc-dialog-subhead-weight: 400;--mdc-dialog-subhead-tracking: 0;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 1.25rem;--mdc-dialog-supporting-text-size: .875rem;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: .016rem;--mdc-dialog-container-shape: 28px;--mat-dialog-container-elevation-shadow: none;--mat-dialog-container-max-width: 560px;--mat-dialog-container-small-max-width: calc(100vw - 32px) ;--mat-dialog-container-min-width: 280px;--mat-dialog-actions-alignment: flex-end;--mat-dialog-actions-padding: 16px 24px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px 0;--mat-dialog-headline-padding: 6px 24px 13px;--mdc-chip-outline-color: #74777f;--mdc-chip-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-chip-focus-outline-color: #44474e;--mdc-chip-hover-state-layer-opacity: .08;--mdc-chip-selected-hover-state-layer-opacity: .08;--mdc-chip-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-chip-elevated-selected-container-color: #dae2f9;--mdc-chip-flat-disabled-selected-container-color: rgba(26, 27, 31, .12);--mdc-chip-focus-state-layer-color: #44474e;--mdc-chip-hover-state-layer-color: #44474e;--mdc-chip-selected-hover-state-layer-color: #131c2b;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: #131c2b;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: #44474e;--mdc-chip-selected-label-text-color: #131c2b;--mdc-chip-with-icon-icon-color: #44474e;--mdc-chip-with-icon-disabled-icon-color: #1a1b1f;--mdc-chip-with-icon-selected-icon-color: #131c2b;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: #1a1b1f;--mdc-chip-with-trailing-icon-trailing-icon-color: #44474e;--mdc-chip-label-text-font: Roboto, sans-serif;--mdc-chip-label-text-line-height: 1.25rem;--mdc-chip-label-text-size: .875rem;--mdc-chip-label-text-tracking: .006rem;--mdc-chip-label-text-weight: 500;--mdc-chip-container-height: 32px;--mdc-chip-container-shape-radius: 8px;--mdc-chip-with-avatar-avatar-shape-radius: 24px;--mdc-chip-with-avatar-avatar-size: 24px;--mdc-chip-with-icon-icon-size: 18px;--mdc-chip-outline-width: 1px;--mdc-chip-with-avatar-disabled-avatar-opacity: .38;--mdc-chip-flat-selected-outline-width: 0;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity: .38;--mdc-chip-with-icon-disabled-icon-opacity: .38;--mdc-chip-elevated-container-color: transparent;--mat-chip-trailing-action-state-layer-color: #44474e;--mat-chip-selected-trailing-action-state-layer-color: #131c2b;--mat-chip-trailing-action-hover-state-layer-opacity: .08;--mat-chip-trailing-action-focus-state-layer-opacity: .12;--mat-chip-selected-disabled-trailing-icon-color: #1a1b1f;--mat-chip-selected-trailing-icon-color: #131c2b;--mat-chip-disabled-container-opacity: 1;--mat-chip-trailing-action-opacity: 1;--mat-chip-trailing-action-focus-opacity: 1;--mdc-switch-selected-focus-state-layer-opacity: .12;--mdc-switch-selected-hover-state-layer-opacity: .08;--mdc-switch-selected-pressed-state-layer-opacity: .12;--mdc-switch-unselected-focus-state-layer-opacity: .12;--mdc-switch-unselected-hover-state-layer-opacity: .08;--mdc-switch-unselected-pressed-state-layer-opacity: .12;--mdc-switch-selected-focus-state-layer-color: #005cbb;--mdc-switch-selected-handle-color: #ffffff;--mdc-switch-selected-hover-state-layer-color: #005cbb;--mdc-switch-selected-pressed-state-layer-color: #005cbb;--mdc-switch-selected-focus-handle-color: #d7e3ff;--mdc-switch-selected-hover-handle-color: #d7e3ff;--mdc-switch-selected-pressed-handle-color: #d7e3ff;--mdc-switch-selected-focus-track-color: #005cbb;--mdc-switch-selected-hover-track-color: #005cbb;--mdc-switch-selected-pressed-track-color: #005cbb;--mdc-switch-selected-track-color: #005cbb;--mdc-switch-disabled-selected-handle-color: #faf9fd;--mdc-switch-disabled-selected-icon-color: #1a1b1f;--mdc-switch-disabled-selected-track-color: #1a1b1f;--mdc-switch-disabled-unselected-handle-color: #1a1b1f;--mdc-switch-disabled-unselected-icon-color: #e0e2ec;--mdc-switch-disabled-unselected-track-color: #e0e2ec;--mdc-switch-selected-icon-color: #001b3f;--mdc-switch-unselected-focus-handle-color: #44474e;--mdc-switch-unselected-focus-state-layer-color: #1a1b1f;--mdc-switch-unselected-focus-track-color: #e0e2ec;--mdc-switch-unselected-handle-color: #74777f;--mdc-switch-unselected-hover-handle-color: #44474e;--mdc-switch-unselected-hover-state-layer-color: #1a1b1f;--mdc-switch-unselected-hover-track-color: #e0e2ec;--mdc-switch-unselected-icon-color: #e0e2ec;--mdc-switch-unselected-pressed-handle-color: #44474e;--mdc-switch-unselected-pressed-state-layer-color: #1a1b1f;--mdc-switch-unselected-pressed-track-color: #e0e2ec;--mdc-switch-unselected-track-color: #e0e2ec;--mdc-switch-disabled-selected-icon-opacity: .38;--mdc-switch-disabled-track-opacity: .12;--mdc-switch-disabled-unselected-icon-opacity: .38;--mdc-switch-handle-shape: 9999px;--mdc-switch-selected-icon-size: 16px;--mdc-switch-track-height: 32px;--mdc-switch-track-shape: 9999px;--mdc-switch-track-width: 52px;--mdc-switch-unselected-icon-size: 16px;--mdc-switch-state-layer-size: 40px;--mat-switch-track-outline-color: #74777f;--mat-switch-disabled-unselected-track-outline-color: #1a1b1f;--mat-switch-label-text-color: #1a1b1f;--mat-switch-label-text-font: Roboto, sans-serif;--mat-switch-label-text-line-height: 1.25rem;--mat-switch-label-text-size: .875rem;--mat-switch-label-text-tracking: .016rem;--mat-switch-label-text-weight: 400;--mat-switch-disabled-selected-handle-opacity: 1;--mat-switch-disabled-unselected-handle-opacity: .38;--mat-switch-unselected-handle-size: 16px;--mat-switch-selected-handle-size: 24px;--mat-switch-pressed-handle-size: 28px;--mat-switch-with-icon-handle-size: 24px;--mat-switch-selected-handle-horizontal-margin: 0 24px;--mat-switch-selected-with-icon-handle-horizontal-margin: 0 24px;--mat-switch-selected-pressed-handle-horizontal-margin: 0 22px;--mat-switch-unselected-handle-horizontal-margin: 0 8px;--mat-switch-unselected-with-icon-handle-horizontal-margin: 0 4px;--mat-switch-unselected-pressed-handle-horizontal-margin: 0 2px;--mat-switch-visible-track-opacity: 1;--mat-switch-hidden-track-opacity: 0;--mat-switch-visible-track-transition: opacity 75ms;--mat-switch-hidden-track-transition: opacity 75ms;--mat-switch-track-outline-width: 2px;--mat-switch-selected-track-outline-width: 2px;--mat-switch-selected-track-outline-color: transparent;--mat-switch-disabled-unselected-track-outline-width: 2px;--mdc-radio-disabled-selected-icon-color: #1a1b1f;--mdc-radio-disabled-unselected-icon-color: #1a1b1f;--mdc-radio-unselected-hover-icon-color: #1a1b1f;--mdc-radio-unselected-icon-color: #44474e;--mdc-radio-unselected-pressed-icon-color: #1a1b1f;--mdc-radio-selected-focus-icon-color: #005cbb;--mdc-radio-selected-hover-icon-color: #005cbb;--mdc-radio-selected-icon-color: #005cbb;--mdc-radio-selected-pressed-icon-color: #005cbb;--mdc-radio-state-layer-size: 40px;--mdc-radio-disabled-selected-icon-opacity: .38;--mdc-radio-disabled-unselected-icon-opacity: .38;--mat-radio-ripple-color: #1a1b1f;--mat-radio-checked-ripple-color: #005cbb;--mat-radio-disabled-label-color: rgba(26, 27, 31, .38);--mat-radio-label-text-color: #1a1b1f;--mat-radio-label-text-font: Roboto, sans-serif;--mat-radio-label-text-line-height: 1.25rem;--mat-radio-label-text-size: .875rem;--mat-radio-label-text-tracking: .016rem;--mat-radio-label-text-weight: 400;--mat-radio-touch-target-display: block;--mdc-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-slider-handle-color: #005cbb;--mdc-slider-focus-handle-color: #005cbb;--mdc-slider-hover-handle-color: #005cbb;--mdc-slider-active-track-color: #005cbb;--mdc-slider-inactive-track-color: #e0e2ec;--mdc-slider-with-tick-marks-inactive-container-color: #44474e;--mdc-slider-with-tick-marks-active-container-color: #ffffff;--mdc-slider-disabled-active-track-color: #1a1b1f;--mdc-slider-disabled-handle-color: #1a1b1f;--mdc-slider-disabled-inactive-track-color: #1a1b1f;--mdc-slider-label-container-color: #005cbb;--mdc-slider-label-label-text-color: #ffffff;--mdc-slider-with-overlap-handle-outline-color: #ffffff;--mdc-slider-with-tick-marks-disabled-container-color: #1a1b1f;--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: .75rem;--mdc-slider-label-label-text-line-height: 1rem;--mdc-slider-label-label-text-tracking: .031rem;--mdc-slider-label-label-text-weight: 500;--mdc-slider-active-track-height: 4px;--mdc-slider-active-track-shape: 9999px;--mdc-slider-handle-height: 20px;--mdc-slider-handle-shape: 9999px;--mdc-slider-handle-width: 20px;--mdc-slider-inactive-track-height: 4px;--mdc-slider-inactive-track-shape: 9999px;--mdc-slider-with-overlap-handle-outline-width: 1px;--mdc-slider-with-tick-marks-active-container-opacity: .38;--mdc-slider-with-tick-marks-container-shape: 9999px;--mdc-slider-with-tick-marks-container-size: 2px;--mdc-slider-with-tick-marks-inactive-container-opacity: .38;--mat-slider-ripple-color: #005cbb;--mat-slider-hover-state-layer-color: rgba(0, 92, 187, .05);--mat-slider-focus-state-layer-color: rgba(0, 92, 187, .2);--mat-slider-value-indicator-width: 28px;--mat-slider-value-indicator-height: 28px;--mat-slider-value-indicator-caret-display: none;--mat-slider-value-indicator-border-radius: 50% 50% 50% 0;--mat-slider-value-indicator-padding: 0;--mat-slider-value-indicator-text-transform: rotate(45deg);--mat-slider-value-indicator-container-transform: translateX(-50%) rotate(-45deg);--mat-slider-value-indicator-opacity: 1;--mat-menu-item-label-text-color: #1a1b1f;--mat-menu-item-icon-color: #44474e;--mat-menu-item-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-menu-item-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-menu-container-color: #efedf0;--mat-menu-divider-color: #e0e2ec;--mat-menu-item-label-text-font: Roboto, sans-serif;--mat-menu-item-label-text-size: .875rem;--mat-menu-item-label-text-tracking: .006rem;--mat-menu-item-label-text-line-height: 1.25rem;--mat-menu-item-label-text-weight: 500;--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 8px;--mat-menu-divider-top-spacing: 8px;--mat-menu-item-spacing: 12px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 12px;--mat-menu-item-trailing-spacing: 12px;--mat-menu-item-with-icon-leading-spacing: 12px;--mat-menu-item-with-icon-trailing-spacing: 12px;--mat-menu-base-elevation-level: 2;--mdc-list-list-item-container-color: transparent;--mdc-list-list-item-leading-avatar-color: #d7e3ff;--mdc-list-list-item-disabled-state-layer-color: #1a1b1f;--mdc-list-list-item-disabled-state-layer-opacity: .12;--mdc-list-list-item-label-text-color: #1a1b1f;--mdc-list-list-item-supporting-text-color: #44474e;--mdc-list-list-item-leading-icon-color: #44474e;--mdc-list-list-item-trailing-supporting-text-color: #44474e;--mdc-list-list-item-trailing-icon-color: #44474e;--mdc-list-list-item-selected-trailing-icon-color: #005cbb;--mdc-list-list-item-disabled-label-text-color: #1a1b1f;--mdc-list-list-item-disabled-leading-icon-color: #1a1b1f;--mdc-list-list-item-disabled-trailing-icon-color: #1a1b1f;--mdc-list-list-item-hover-label-text-color: #1a1b1f;--mdc-list-list-item-focus-label-text-color: #1a1b1f;--mdc-list-list-item-hover-state-layer-color: #1a1b1f;--mdc-list-list-item-hover-state-layer-opacity: .08;--mdc-list-list-item-focus-state-layer-color: #1a1b1f;--mdc-list-list-item-focus-state-layer-opacity: .12;--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 1.5rem;--mdc-list-list-item-label-text-size: 1rem;--mdc-list-list-item-label-text-tracking: .031rem;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 1.25rem;--mdc-list-list-item-supporting-text-size: .875rem;--mdc-list-list-item-supporting-text-tracking: .016rem;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 1rem;--mdc-list-list-item-trailing-supporting-text-size: .688rem;--mdc-list-list-item-trailing-supporting-text-tracking: .031rem;--mdc-list-list-item-trailing-supporting-text-weight: 500;--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px;--mdc-list-list-item-container-shape: 0;--mdc-list-list-item-leading-avatar-shape: 9999px;--mdc-list-list-item-leading-icon-size: 24px;--mdc-list-list-item-leading-avatar-size: 40px;--mdc-list-list-item-trailing-icon-size: 24px;--mdc-list-list-item-disabled-label-text-opacity: .3;--mdc-list-list-item-disabled-leading-icon-opacity: .38;--mdc-list-list-item-disabled-trailing-icon-opacity: .38;--mat-list-active-indicator-color: #dae2f9;--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 16px;--mat-list-active-indicator-shape: 9999px;--mat-paginator-container-text-color: #1a1b1f;--mat-paginator-container-background-color: #faf9fd;--mat-paginator-enabled-icon-color: #44474e;--mat-paginator-disabled-icon-color: rgba(26, 27, 31, .38);--mat-paginator-container-text-font: Roboto, sans-serif;--mat-paginator-container-text-line-height: 1rem;--mat-paginator-container-text-size: .75rem;--mat-paginator-container-text-tracking: .025rem;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: .75rem;--mat-paginator-container-size: 56px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block;--mdc-secondary-navigation-tab-container-height: 48px;--mdc-tab-indicator-active-indicator-color: #005cbb;--mdc-tab-indicator-active-indicator-height: 2px;--mdc-tab-indicator-active-indicator-shape: 0;--mat-tab-header-divider-color: #e0e2ec;--mat-tab-header-pagination-icon-color: #1a1b1f;--mat-tab-header-inactive-label-text-color: #1a1b1f;--mat-tab-header-active-label-text-color: #1a1b1f;--mat-tab-header-active-ripple-color: #1a1b1f;--mat-tab-header-inactive-ripple-color: #1a1b1f;--mat-tab-header-inactive-focus-label-text-color: #1a1b1f;--mat-tab-header-inactive-hover-label-text-color: #1a1b1f;--mat-tab-header-active-focus-label-text-color: #1a1b1f;--mat-tab-header-active-hover-label-text-color: #1a1b1f;--mat-tab-header-active-focus-indicator-color: #005cbb;--mat-tab-header-active-hover-indicator-color: #005cbb;--mat-tab-header-label-text-font: Roboto, sans-serif;--mat-tab-header-label-text-size: .875rem;--mat-tab-header-label-text-tracking: .006rem;--mat-tab-header-label-text-line-height: 1.25rem;--mat-tab-header-label-text-weight: 500;--mat-tab-header-divider-height: 1px;--mdc-checkbox-disabled-selected-checkmark-color: #faf9fd;--mdc-checkbox-selected-focus-state-layer-opacity: .12;--mdc-checkbox-selected-hover-state-layer-opacity: .08;--mdc-checkbox-selected-pressed-state-layer-opacity: .12;--mdc-checkbox-unselected-focus-state-layer-opacity: .12;--mdc-checkbox-unselected-hover-state-layer-opacity: .08;--mdc-checkbox-unselected-pressed-state-layer-opacity: .12;--mdc-checkbox-selected-pressed-icon-color: #005cbb;--mdc-checkbox-disabled-selected-icon-color: rgba(26, 27, 31, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(26, 27, 31, .38);--mdc-checkbox-selected-checkmark-color: #ffffff;--mdc-checkbox-selected-focus-icon-color: #005cbb;--mdc-checkbox-selected-hover-icon-color: #005cbb;--mdc-checkbox-selected-icon-color: #005cbb;--mdc-checkbox-unselected-focus-icon-color: #1a1b1f;--mdc-checkbox-unselected-hover-icon-color: #1a1b1f;--mdc-checkbox-unselected-icon-color: #44474e;--mdc-checkbox-selected-focus-state-layer-color: #005cbb;--mdc-checkbox-selected-hover-state-layer-color: #005cbb;--mdc-checkbox-selected-pressed-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-focus-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-hover-state-layer-color: #1a1b1f;--mdc-checkbox-unselected-pressed-state-layer-color: #005cbb;--mdc-checkbox-state-layer-size: 40px;--mat-checkbox-disabled-label-color: rgba(26, 27, 31, .38);--mat-checkbox-label-text-color: #1a1b1f;--mat-checkbox-label-text-font: Roboto, sans-serif;--mat-checkbox-label-text-line-height: 1.25rem;--mat-checkbox-label-text-size: .875rem;--mat-checkbox-label-text-tracking: .016rem;--mat-checkbox-label-text-weight: 400;--mat-checkbox-touch-target-display: block;--mdc-text-button-label-text-color: #005cbb;--mdc-text-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-text-button-label-text-font: Roboto, sans-serif;--mdc-text-button-label-text-size: .875rem;--mdc-text-button-label-text-tracking: .006rem;--mdc-text-button-label-text-weight: 500;--mdc-text-button-container-height: 40px;--mdc-text-button-container-shape: 9999px;--mdc-protected-button-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-protected-button-container-color: #faf9fd;--mdc-protected-button-label-text-color: #005cbb;--mdc-protected-button-disabled-container-color: rgba(26, 27, 31, .12);--mdc-protected-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-protected-button-label-text-font: Roboto, sans-serif;--mdc-protected-button-label-text-size: .875rem;--mdc-protected-button-label-text-tracking: .006rem;--mdc-protected-button-label-text-weight: 500;--mdc-protected-button-container-height: 40px;--mdc-protected-button-container-shape: 9999px;--mdc-filled-button-container-color: #005cbb;--mdc-filled-button-label-text-color: #ffffff;--mdc-filled-button-disabled-container-color: rgba(26, 27, 31, .12);--mdc-filled-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-filled-button-label-text-font: Roboto, sans-serif;--mdc-filled-button-label-text-size: .875rem;--mdc-filled-button-label-text-tracking: .006rem;--mdc-filled-button-label-text-weight: 500;--mdc-filled-button-container-height: 40px;--mdc-filled-button-container-shape: 9999px;--mdc-outlined-button-disabled-outline-color: rgba(26, 27, 31, .12);--mdc-outlined-button-disabled-label-text-color: rgba(26, 27, 31, .38);--mdc-outlined-button-label-text-color: #005cbb;--mdc-outlined-button-outline-color: #74777f;--mdc-outlined-button-label-text-font: Roboto, sans-serif;--mdc-outlined-button-label-text-size: .875rem;--mdc-outlined-button-label-text-tracking: .006rem;--mdc-outlined-button-label-text-weight: 500;--mdc-outlined-button-container-height: 40px;--mdc-outlined-button-outline-width: 1px;--mdc-outlined-button-container-shape: 9999px;--mat-text-button-state-layer-color: #005cbb;--mat-text-button-disabled-state-layer-color: #44474e;--mat-text-button-ripple-color: rgba(0, 92, 187, .12);--mat-text-button-hover-state-layer-opacity: .08;--mat-text-button-focus-state-layer-opacity: .12;--mat-text-button-pressed-state-layer-opacity: .12;--mat-text-button-touch-target-display: block;--mat-text-button-horizontal-padding: 12px;--mat-text-button-with-icon-horizontal-padding: 16px;--mat-text-button-icon-spacing: 8px;--mat-text-button-icon-offset: -4px;--mat-protected-button-state-layer-color: #005cbb;--mat-protected-button-disabled-state-layer-color: #44474e;--mat-protected-button-ripple-color: rgba(0, 92, 187, .12);--mat-protected-button-hover-state-layer-opacity: .08;--mat-protected-button-focus-state-layer-opacity: .12;--mat-protected-button-pressed-state-layer-opacity: .12;--mat-protected-button-touch-target-display: block;--mat-protected-button-horizontal-padding: 24px;--mat-protected-button-icon-spacing: 8px;--mat-protected-button-icon-offset: -8px;--mat-filled-button-state-layer-color: #ffffff;--mat-filled-button-disabled-state-layer-color: #44474e;--mat-filled-button-ripple-color: rgba(255, 255, 255, .12);--mat-filled-button-hover-state-layer-opacity: .08;--mat-filled-button-focus-state-layer-opacity: .12;--mat-filled-button-pressed-state-layer-opacity: .12;--mat-filled-button-touch-target-display: block;--mat-filled-button-horizontal-padding: 24px;--mat-filled-button-icon-spacing: 8px;--mat-filled-button-icon-offset: -8px;--mat-outlined-button-state-layer-color: #005cbb;--mat-outlined-button-disabled-state-layer-color: #44474e;--mat-outlined-button-ripple-color: rgba(0, 92, 187, .12);--mat-outlined-button-hover-state-layer-opacity: .08;--mat-outlined-button-focus-state-layer-opacity: .12;--mat-outlined-button-pressed-state-layer-opacity: .12;--mat-outlined-button-touch-target-display: block;--mat-outlined-button-horizontal-padding: 24px;--mat-outlined-button-icon-spacing: 8px;--mat-outlined-button-icon-offset: -8px;--mdc-icon-button-icon-color: #44474e;--mdc-icon-button-disabled-icon-color: rgba(26, 27, 31, .38);--mdc-icon-button-state-layer-size: 40px;--mdc-icon-button-icon-size: 24px;--mat-icon-button-state-layer-color: #44474e;--mat-icon-button-disabled-state-layer-color: #44474e;--mat-icon-button-ripple-color: rgba(68, 71, 78, .12);--mat-icon-button-hover-state-layer-opacity: .08;--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-touch-target-display: block;--mdc-extended-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-label-text-font: Roboto, sans-serif;--mdc-extended-fab-label-text-size: .875rem;--mdc-extended-fab-label-text-tracking: .006rem;--mdc-extended-fab-label-text-weight: 500;--mdc-extended-fab-container-height: 56px;--mdc-extended-fab-container-shape: 16px;--mdc-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-container-color: #d7e3ff;--mdc-fab-container-shape: 16px;--mdc-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-focus-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-pressed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-container-color: #d7e3ff;--mdc-fab-small-container-shape: 12px;--mat-fab-foreground-color: #001b3f;--mat-fab-state-layer-color: #001b3f;--mat-fab-ripple-color: rgba(0, 27, 63, .12);--mat-fab-hover-state-layer-opacity: .08;--mat-fab-focus-state-layer-opacity: .12;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-disabled-state-container-color: rgba(26, 27, 31, .12);--mat-fab-disabled-state-foreground-color: rgba(26, 27, 31, .38);--mat-fab-touch-target-display: block;--mat-fab-small-foreground-color: #001b3f;--mat-fab-small-state-layer-color: #001b3f;--mat-fab-small-ripple-color: rgba(0, 27, 63, .12);--mat-fab-small-hover-state-layer-opacity: .08;--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-disabled-state-container-color: rgba(26, 27, 31, .12);--mat-fab-small-disabled-state-foreground-color: rgba(26, 27, 31, .38);--mdc-snackbar-container-color: #2f3033;--mdc-snackbar-supporting-text-color: #f2f0f4;--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 1.25rem;--mdc-snackbar-supporting-text-size: .875rem;--mdc-snackbar-supporting-text-weight: 400;--mdc-snackbar-container-shape: 4px;--mat-snack-bar-button-color: #abc7ff;--mat-table-background-color: #faf9fd;--mat-table-header-headline-color: #1a1b1f;--mat-table-row-item-label-text-color: #1a1b1f;--mat-table-row-item-outline-color: #74777f;--mat-table-header-headline-font: Roboto, sans-serif;--mat-table-header-headline-line-height: 1.25rem;--mat-table-header-headline-size: .875rem;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .006rem;--mat-table-row-item-label-text-font: Roboto, sans-serif;--mat-table-row-item-label-text-line-height: 1.25rem;--mat-table-row-item-label-text-size: .875rem;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .016rem;--mat-table-footer-supporting-text-font: Roboto, sans-serif;--mat-table-footer-supporting-text-line-height: 1.25rem;--mat-table-footer-supporting-text-size: .875rem;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .016rem;--mat-table-header-container-height: 56px;--mat-table-footer-container-height: 52px;--mat-table-row-item-container-height: 52px;--mat-table-row-item-outline-width: 1px;--mdc-circular-progress-active-indicator-color: #005cbb;--mdc-circular-progress-active-indicator-width: 4px;--mdc-circular-progress-size: 48px;--mat-badge-background-color: #ba1a1a;--mat-badge-text-color: #ffffff;--mat-badge-disabled-state-background-color: rgba(186, 26, 26, .38);--mat-badge-disabled-state-text-color: #ffffff;--mat-badge-text-font: Roboto, sans-serif;--mat-badge-text-size: .688rem;--mat-badge-text-weight: 500;--mat-badge-large-size-text-size: .688rem;--mat-badge-container-shape: 9999px;--mat-badge-container-size: 16px;--mat-badge-small-size-container-size: 6px;--mat-badge-large-size-container-size: 16px;--mat-badge-legacy-container-size: 16px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 16px;--mat-badge-container-offset: -12px 0;--mat-badge-small-size-container-offset: -6px 0;--mat-badge-large-size-container-offset: -12px 0;--mat-badge-container-overlap-offset: -12px;--mat-badge-small-size-container-overlap-offset: -6px;--mat-badge-large-size-container-overlap-offset: -12px;--mat-badge-container-padding: 0 4px;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0 4px;--mat-badge-small-size-text-size: 0;--mat-bottom-sheet-container-text-color: #1a1b1f;--mat-bottom-sheet-container-background-color: #f4f3f6;--mat-bottom-sheet-container-text-font: Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height: 1.5rem;--mat-bottom-sheet-container-text-size: 1rem;--mat-bottom-sheet-container-text-tracking: .031rem;--mat-bottom-sheet-container-text-weight: 400;--mat-bottom-sheet-container-shape: 28px;--mat-standard-button-toggle-hover-state-layer-opacity: .08;--mat-standard-button-toggle-focus-state-layer-opacity: .12;--mat-standard-button-toggle-text-color: #1a1b1f;--mat-standard-button-toggle-state-layer-color: #1a1b1f;--mat-standard-button-toggle-selected-state-background-color: #dae2f9;--mat-standard-button-toggle-selected-state-text-color: #131c2b;--mat-standard-button-toggle-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-standard-button-toggle-disabled-selected-state-text-color: rgba(26, 27, 31, .38);--mat-standard-button-toggle-disabled-selected-state-background-color: rgba(26, 27, 31, .12);--mat-standard-button-toggle-divider-color: #74777f;--mat-standard-button-toggle-label-text-font: Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height: 1.25rem;--mat-standard-button-toggle-label-text-size: .875rem;--mat-standard-button-toggle-label-text-tracking: .006rem;--mat-standard-button-toggle-label-text-weight: 500;--mat-standard-button-toggle-height: 40px;--mat-standard-button-toggle-shape: 9999px;--mat-standard-button-toggle-background-color: transparent;--mat-standard-button-toggle-disabled-state-background-color: transparent;--mat-datepicker-calendar-date-selected-state-text-color: #ffffff;--mat-datepicker-calendar-date-selected-state-background-color: #005cbb;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-today-selected-state-outline-color: #005cbb;--mat-datepicker-calendar-date-focus-state-background-color: rgba(26, 27, 31, .12);--mat-datepicker-calendar-date-hover-state-background-color: rgba(26, 27, 31, .08);--mat-datepicker-toggle-active-state-icon-color: #44474e;--mat-datepicker-calendar-date-in-range-state-background-color: #d7e3ff;--mat-datepicker-calendar-date-in-comparison-range-state-background-color: #d7e3ff;--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #dae2f9;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: #565e71;--mat-datepicker-toggle-icon-color: #44474e;--mat-datepicker-calendar-body-label-text-color: #1a1b1f;--mat-datepicker-calendar-period-button-text-color: #44474e;--mat-datepicker-calendar-period-button-icon-color: #44474e;--mat-datepicker-calendar-navigation-button-icon-color: #44474e;--mat-datepicker-calendar-header-text-color: #44474e;--mat-datepicker-calendar-date-today-outline-color: #005cbb;--mat-datepicker-calendar-date-today-disabled-state-outline-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-text-color: #1a1b1f;--mat-datepicker-calendar-date-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-date-preview-state-outline-color: #005cbb;--mat-datepicker-range-input-separator-color: #1a1b1f;--mat-datepicker-range-input-disabled-state-separator-color: rgba(26, 27, 31, .38);--mat-datepicker-range-input-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-datepicker-calendar-container-background-color: #e9e7eb;--mat-datepicker-calendar-container-text-color: #1a1b1f;--mat-datepicker-calendar-text-font: Roboto, sans-serif;--mat-datepicker-calendar-text-size: .875rem;--mat-datepicker-calendar-body-label-text-size: .875rem;--mat-datepicker-calendar-body-label-text-weight: 500;--mat-datepicker-calendar-period-button-text-size: .875rem;--mat-datepicker-calendar-period-button-text-weight: 500;--mat-datepicker-calendar-header-text-size: .875rem;--mat-datepicker-calendar-header-text-weight: 500;--mat-datepicker-calendar-container-shape: 16px;--mat-datepicker-calendar-container-touch-shape: 28px;--mat-datepicker-calendar-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-divider-color: transparent;--mat-datepicker-calendar-date-outline-color: transparent;--mat-divider-color: #74777f;--mat-divider-width: 1px;--mat-expansion-container-background-color: #faf9fd;--mat-expansion-container-text-color: #1a1b1f;--mat-expansion-actions-divider-color: #74777f;--mat-expansion-header-hover-state-layer-color: rgba(26, 27, 31, .08);--mat-expansion-header-focus-state-layer-color: rgba(26, 27, 31, .12);--mat-expansion-header-disabled-state-text-color: rgba(26, 27, 31, .38);--mat-expansion-header-text-color: #1a1b1f;--mat-expansion-header-description-color: #44474e;--mat-expansion-header-indicator-color: #44474e;--mat-expansion-header-text-font: Roboto, sans-serif;--mat-expansion-header-text-size: 1rem;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: 1.5rem;--mat-expansion-header-text-tracking: .009rem;--mat-expansion-container-text-font: Roboto, sans-serif;--mat-expansion-container-text-line-height: 1.5rem;--mat-expansion-container-text-size: 1rem;--mat-expansion-container-text-tracking: .031rem;--mat-expansion-container-text-weight: 400;--mat-expansion-header-collapsed-state-height: 48px;--mat-expansion-header-expanded-state-height: 64px;--mat-expansion-container-shape: 12px;--mat-expansion-legacy-header-indicator-display: none;--mat-expansion-header-indicator-display: inline-block;--mat-grid-list-tile-header-primary-text-size: 400 1rem / 1.5rem Roboto, sans-serif;--mat-grid-list-tile-header-secondary-text-size: 400 .875rem / 1.25rem Roboto, sans-serif;--mat-grid-list-tile-footer-primary-text-size: 400 1rem / 1.5rem Roboto, sans-serif;--mat-grid-list-tile-footer-secondary-text-size: 400 .875rem / 1.25rem Roboto, sans-serif;--mat-icon-color: inherit;--mat-sidenav-container-background-color: #faf9fd;--mat-sidenav-container-text-color: #44474e;--mat-sidenav-content-background-color: #faf9fd;--mat-sidenav-content-text-color: #1a1b1f;--mat-sidenav-scrim-color: rgba(45, 48, 56, .4);--mat-sidenav-container-shape: 16px;--mat-sidenav-container-elevation-shadow: none;--mat-sidenav-container-width: 360px;--mat-sidenav-container-divider-color: transparent;--mat-stepper-header-icon-foreground-color: #faf9fd;--mat-stepper-header-selected-state-icon-background-color: #005cbb;--mat-stepper-header-selected-state-icon-foreground-color: #ffffff;--mat-stepper-header-edit-state-icon-background-color: #005cbb;--mat-stepper-header-edit-state-icon-foreground-color: #ffffff;--mat-stepper-container-color: #faf9fd;--mat-stepper-line-color: #74777f;--mat-stepper-header-hover-state-layer-color: rgba(47, 48, 51, .08);--mat-stepper-header-focus-state-layer-color: rgba(47, 48, 51, .12);--mat-stepper-header-label-text-color: #44474e;--mat-stepper-header-optional-label-text-color: #44474e;--mat-stepper-header-selected-state-label-text-color: #44474e;--mat-stepper-header-error-state-label-text-color: #ba1a1a;--mat-stepper-header-icon-background-color: #44474e;--mat-stepper-header-error-state-icon-foreground-color: #ba1a1a;--mat-stepper-container-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-size: .875rem;--mat-stepper-header-label-text-weight: 500;--mat-stepper-header-error-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-weight: 500;--mat-stepper-header-height: 72px;--mat-stepper-header-focus-state-layer-shape: 12px;--mat-stepper-header-hover-state-layer-shape: 12px;--mat-stepper-header-error-state-icon-background-color: transparent;--mat-sort-arrow-color: #1a1b1f;--mat-toolbar-container-background-color: #faf9fd;--mat-toolbar-container-text-color: #1a1b1f;--mat-toolbar-title-text-font: Roboto, sans-serif;--mat-toolbar-title-text-line-height: 1.75rem;--mat-toolbar-title-text-size: 1.375rem;--mat-toolbar-title-text-tracking: 0;--mat-toolbar-title-text-weight: 400;--mat-toolbar-standard-height: 64px;--mat-toolbar-mobile-height: 56px;--mat-tree-container-background-color: #faf9fd;--mat-tree-node-text-color: #1a1b1f;--mat-tree-node-text-font: Roboto, sans-serif;--mat-tree-node-text-size: 1rem;--mat-tree-node-text-weight: 400;--mat-tree-node-min-height: 48px;display:flex;align-items:flex-start;flex-wrap:wrap;position:relative;color:#444}.mat-theme-loaded-marker{display:none}#ssSearchBar .tabs{display:flex;width:100%;margin-bottom:-1px;z-index:10;pointer-events:none}#ssSearchBar .tabs .ss-tab{border-radius:4px 4px 0 0;border:#b7b7b7 solid 1px;border-color:#1967e5;border-bottom:none;padding:.3em 1.4em;font-size:.94em;letter-spacing:.4px;font-weight:600;background-color:#0047ba;color:#fff;white-space:nowrap;position:relative;pointer-events:auto}#ssSearchBar .tabs .ss-tab:after{content:\"\";height:1px;width:calc(100% + 2px);position:absolute;bottom:0;left:-1px;background-color:#b7b7b7}#ssSearchBar .tabs .ss-tab:hover{background-color:#1967e5}#ssSearchBar .tabs .ss-tab.ss-active{color:#002e5d;margin-bottom:1px;border-color:#b7b7b7;background-color:#fffffff2}#ssSearchBar .tabs .ss-tab.ss-active:after{display:none}#ssSearchBar .tabs .ss-tab:disabled{cursor:auto}#ssSearchBar .tabs .tab-spacer{width:.3em;border-bottom:#b7b7b7 solid 1px;position:relative}#ssSearchBar .tabs .tab-spacer:before{content:\"\";position:absolute;left:-1px;bottom:-1px;width:1px;height:1px;background-color:#b7b7b7}#ssSearchBar .tabs .tab-spacer:after{content:\"\";position:absolute;right:-1px;bottom:-1px;width:1px;height:1px;background-color:#b7b7b7}#ssSearchBar .tabs .tab-spacer.full{width:100%;margin-right:4px;position:relative}#ssSearchBar .ss-adv-search-text{padding-bottom:1em;padding-right:2rem;pointer-events:none}#ssSearchBar .ss-bar-wrapper{padding:1em 1em .25em;border-right:#b7b7b7 solid 1px;border-left:#b7b7b7 solid 1px;border-bottom:#b7b7b7 solid 1px;width:100%;display:flex;align-items:center;flex-wrap:wrap;position:relative;background-color:#fffffff2;border-radius:0 4px 4px;overflow:hidden}#ssSearchBar .ss-bar-wrapper:after{content:\"\";position:absolute;top:0;right:-1px;background-color:transparent;border-radius:0 4px 0 0;width:4px;height:4px;border-top:#b7b7b7 solid 1px;border-right:#b7b7b7 solid 1px}#ssSearchBar .ss-bar-content{position:relative;width:100%;height:initial}#ssSearchBar .ss-search-bar{border-radius:4px;border:#b7b7b7 solid 1px;width:100%}#ssSearchBar #advSearchCloseBtn{float:right;padding:.4em;margin:-.4em 0;color:#666;transition:all .1s}#ssSearchBar #advSearchCloseBtn:hover{color:#292929}#ssSearchBar #advSearchCloseBtn .ss-icon{font-size:1.2em;font-weight:600}#ssSearchBar .ss-adv-search-btn{font-size:.9em;color:#4070b0;margin:.2em 4em 0 auto;padding-right:.4rem;display:flex;justify-content:center;align-items:center}#ssSearchBar .ss-adv-search-btn .ss-icon{font-size:1.4em;opacity:.75;margin-top:.2rem}#ssSearchBar .ss-adv-search-btn:hover{color:#6892ca}\n"] }]
1712
2035
  }], propDecorators: { config: [{
1713
2036
  type: Input,
1714
2037
  args: [{ required: true }]
@@ -1740,5 +2063,5 @@ const isSearchScope = (scope) => searchScopeValues.includes(scope);
1740
2063
  * Generated bundle index. Do not edit.
1741
2064
  */
1742
2065
 
1743
- export { ADVANCED_SEARCH_FIELD_MAP, ADVANCED_SEARCH_OPTIONS, ADVANCED_SEARCH_QUALIFIER_MAP, HbllHeaderComponent, HbllImpersonationBannerComponent, LIBRARY_HOURS_API_URL, SsSearchBarComponent, isAdvancedSearchExternalFieldOption, isAdvancedSearchFieldOption, isAdvancedSearchLocalFieldOption, isSearchScope };
2066
+ export { ADVANCED_SEARCH_FIELD_MAP, ADVANCED_SEARCH_OPTIONS, ADVANCED_SEARCH_QUALIFIER_MAP, HbllFooterComponent, HbllHeaderComponent, HbllItemTypeIconPipe, HeaderWithImpersonationComponent, ImpersonateModalComponent, ImpersonateUserPipe, ImpersonationBannerComponent, LIBRARY_HOURS_API_URL, SsSearchBarComponent, defaultOidcBaseUri, defaultOidcDefaultIdp, getUserStatusFromRoles, isAdvancedSearchExternalFieldOption, isAdvancedSearchFieldOption, isAdvancedSearchLocalFieldOption, isSearchScope };
1744
2067
  //# sourceMappingURL=byuhbll-components.mjs.map