@byuhbll/components 5.0.0-beta.1 → 5.0.0-beta.2
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.
- package/esm2022/lib/hbll-footer/hbll-footer.component.mjs +3 -3
- package/esm2022/lib/hbll-header/hbll-header.component.mjs +3 -3
- package/esm2022/lib/snackbar/snackbar.component.mjs +3 -3
- package/esm2022/lib/ss-search-bar/advanced-search/advanced-search.component.mjs +3 -3
- package/esm2022/lib/ss-search-bar/date-range/date-range.component.mjs +3 -3
- package/esm2022/lib/ss-search-bar/simple-search/simple-search.component.mjs +3 -3
- package/esm2022/lib/ss-search-bar/ss-search-bar.component.mjs +3 -3
- package/fesm2022/byuhbll-components.mjs +14 -14
- package/fesm2022/byuhbll-components.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/scss/base.scss +15 -19
|
@@ -103,7 +103,7 @@ export class HbllHeaderComponent {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
106
|
-
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 }, { propertyName: "navWrapper", first: true, predicate: ["navWrapper"], descendants: true }, { propertyName: "backdrop", first: true, predicate: ["backdrop"], 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 <button (click)=\"focusMainContent()\" class=\"skip-link\">Skip to main content</button>\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:00 a.m. - 11:45 p.m.</div>\n <div class=\"hbll-header-item\">8:00 a.m. - 11:45 p.m.</div>\n <div class=\"hbll-header-item\">Closed*</div>\n </div>\n <div class=\"hbll-header-hours-note\">\n * Family history ONLY 4:00 p.m. - 8:00 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 [attr.title]=\"exception.exception_title\"\n [attr.aria-label]=\"exception.exception_title\">\n {{ exception.exception_title | truncate:32:'...' }}\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:00 a.m. - 11:00 p.m.</div>\n <div class=\"hbll-header-item\">10:30 a.m. - 2:00 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 ? ' ' + 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\" [class.collapsed]=\"!showNavBar\">\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 <div\n #navWrapper\n id=\"navWrapper\"\n data-testid=\"mobileNav\"\n [class.open]=\"showNavBar\"\n [attr.inert]=\"!showNavBar ? true : null\"\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 #backdrop\n (click)=\"closeSidebarNav()\"\n class=\"hbll-nav-backdrop\"\n [class.open]=\"showNavBar\"\n data-testid=\"mobileNavBackdrop\"\n ></div>\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}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{position:static;width:auto;height:auto;overflow:visible;margin-left:1rem;background:#fff;color:#00285b;font-size:1.5rem;font-weight:580;padding:.5rem 1rem;z-index:1000;text-decoration:none;border:.1875rem solid #0050b7;border-radius:.25rem;cursor:pointer}.skip-link:hover{color:#00285b;background-color:#e3edf8;border:.1875rem solid #e3edf8}.hbll-nav-backdrop{background-color:#000;opacity:.3;height:100vh;width:100vw;left:0;top:0;transform:translate(-100vw);position:absolute;z-index:-1}.hbll-nav-backdrop.open{animation-name:fadeIn;animation-duration:.15s;animation-timing-function:ease-in;animation-fill-mode:forwards}.hbll-nav-backdrop.is-closing{animation-name:fadeOut;animation-duration:.15s;animation-timing-function:ease-out;animation-fill-mode:forwards}#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.collapsed #navWrapper{left:-9999px;top:auto;overflow:hidden;width:1px;height:1px}header #libraryInfo #mobileNav.collapsed .hbll-nav-backdrop{display:none}header #libraryInfo #mobileNav.collapsed nav{left:-9999px;top:auto;overflow:hidden;width:1px;height:1px}header #libraryInfo #mobileNav #navWrapper{color:#fff;position:fixed;top:0}header #libraryInfo #mobileNav #navWrapper.open{animation-name:slideInFromRight;animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}header #libraryInfo #mobileNav #navWrapper.is-closing{animation-name:slideOutToRight;animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}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;margin-right:2rem}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section{display:grid;grid-template-columns:repeat(4,7.5em);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/-1;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{position:relative}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-header{font-weight:600;font-size:1em}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}@keyframes slideInFromRight{0%{transform:translate(calc(min(100vw,400px) - 55px))}to{transform:translate(0)}}@keyframes slideOutToRight{0%{transform:translate(0)}to{transform:translate(min(100vw,400px))}}@keyframes fadeIn{0%{opacity:0}to{opacity:.3}}@keyframes fadeOut{0%{opacity:.3}to{opacity: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"] }, { kind: "pipe", type: TruncatePipe, name: "truncate" }], animations: [libHbllFadeInOut] }); }
|
|
106
|
+
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 }, { propertyName: "navWrapper", first: true, predicate: ["navWrapper"], descendants: true }, { propertyName: "backdrop", first: true, predicate: ["backdrop"], 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 <button (click)=\"focusMainContent()\" class=\"skip-link\">Skip to main content</button>\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:00 a.m. - 11:45 p.m.</div>\n <div class=\"hbll-header-item\">8:00 a.m. - 11:45 p.m.</div>\n <div class=\"hbll-header-item\">Closed*</div>\n </div>\n <div class=\"hbll-header-hours-note\">\n * Family history ONLY 4:00 p.m. - 8:00 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 [attr.title]=\"exception.exception_title\"\n [attr.aria-label]=\"exception.exception_title\">\n {{ exception.exception_title | truncate:32:'...' }}\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:00 a.m. - 11:00 p.m.</div>\n <div class=\"hbll-header-item\">10:30 a.m. - 2:00 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 ? ' ' + 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\" [class.collapsed]=\"!showNavBar\">\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 <div\n #navWrapper\n id=\"navWrapper\"\n data-testid=\"mobileNav\"\n [class.open]=\"showNavBar\"\n [attr.inert]=\"!showNavBar ? true : null\"\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 #backdrop\n (click)=\"closeSidebarNav()\"\n class=\"hbll-nav-backdrop\"\n [class.open]=\"showNavBar\"\n data-testid=\"mobileNavBackdrop\"\n ></div>\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}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{position:static;width:auto;height:auto;overflow:visible;margin-left:.625rem;background:#fff;color:#00285b;font-size:.9375rem;font-weight:580;padding:.3125rem .625rem;z-index:1000;text-decoration:none;border:.1171875rem solid #0050b7;border-radius:.15625rem;cursor:pointer}.skip-link:hover{color:#00285b;background-color:#e3edf8;border:.1171875rem solid #e3edf8}.hbll-nav-backdrop{background-color:#000;opacity:.3;height:100vh;width:100vw;left:0;top:0;transform:translate(-100vw);position:absolute;z-index:-1}.hbll-nav-backdrop.open{animation-name:fadeIn;animation-duration:.15s;animation-timing-function:ease-in;animation-fill-mode:forwards}.hbll-nav-backdrop.is-closing{animation-name:fadeOut;animation-duration:.15s;animation-timing-function:ease-out;animation-fill-mode:forwards}#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.collapsed #navWrapper{left:-9999px;top:auto;overflow:hidden;width:1px;height:1px}header #libraryInfo #mobileNav.collapsed .hbll-nav-backdrop{display:none}header #libraryInfo #mobileNav.collapsed nav{left:-9999px;top:auto;overflow:hidden;width:1px;height:1px}header #libraryInfo #mobileNav #navWrapper{color:#fff;position:fixed;top:0}header #libraryInfo #mobileNav #navWrapper.open{animation-name:slideInFromRight;animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}header #libraryInfo #mobileNav #navWrapper.is-closing{animation-name:slideOutToRight;animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}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;margin-right:1.25rem}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section{display:grid;grid-template-columns:repeat(4,7.5em);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/-1;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{position:relative}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-header{font-weight:600;font-size:1em}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}@keyframes slideInFromRight{0%{transform:translate(calc(min(100vw,400px) - 55px))}to{transform:translate(0)}}@keyframes slideOutToRight{0%{transform:translate(0)}to{transform:translate(min(100vw,400px))}}@keyframes fadeIn{0%{opacity:0}to{opacity:.3}}@keyframes fadeOut{0%{opacity:.3}to{opacity: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"] }, { kind: "pipe", type: TruncatePipe, name: "truncate" }], animations: [libHbllFadeInOut] }); }
|
|
107
107
|
}
|
|
108
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllHeaderComponent, decorators: [{
|
|
109
109
|
type: Component,
|
|
@@ -115,7 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
115
115
|
NavBarComponent,
|
|
116
116
|
ExpandCollapseComponent,
|
|
117
117
|
TruncatePipe,
|
|
118
|
-
], animations: [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 <button (click)=\"focusMainContent()\" class=\"skip-link\">Skip to main content</button>\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:00 a.m. - 11:45 p.m.</div>\n <div class=\"hbll-header-item\">8:00 a.m. - 11:45 p.m.</div>\n <div class=\"hbll-header-item\">Closed*</div>\n </div>\n <div class=\"hbll-header-hours-note\">\n * Family history ONLY 4:00 p.m. - 8:00 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 [attr.title]=\"exception.exception_title\"\n [attr.aria-label]=\"exception.exception_title\">\n {{ exception.exception_title | truncate:32:'...' }}\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:00 a.m. - 11:00 p.m.</div>\n <div class=\"hbll-header-item\">10:30 a.m. - 2:00 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 ? ' ' + 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\" [class.collapsed]=\"!showNavBar\">\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 <div\n #navWrapper\n id=\"navWrapper\"\n data-testid=\"mobileNav\"\n [class.open]=\"showNavBar\"\n [attr.inert]=\"!showNavBar ? true : null\"\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 #backdrop\n (click)=\"closeSidebarNav()\"\n class=\"hbll-nav-backdrop\"\n [class.open]=\"showNavBar\"\n data-testid=\"mobileNavBackdrop\"\n ></div>\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}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{position:static;width:auto;height:auto;overflow:visible;margin-left:1rem;background:#fff;color:#00285b;font-size:1.5rem;font-weight:580;padding:.5rem 1rem;z-index:1000;text-decoration:none;border:.1875rem solid #0050b7;border-radius:.25rem;cursor:pointer}.skip-link:hover{color:#00285b;background-color:#e3edf8;border:.1875rem solid #e3edf8}.hbll-nav-backdrop{background-color:#000;opacity:.3;height:100vh;width:100vw;left:0;top:0;transform:translate(-100vw);position:absolute;z-index:-1}.hbll-nav-backdrop.open{animation-name:fadeIn;animation-duration:.15s;animation-timing-function:ease-in;animation-fill-mode:forwards}.hbll-nav-backdrop.is-closing{animation-name:fadeOut;animation-duration:.15s;animation-timing-function:ease-out;animation-fill-mode:forwards}#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.collapsed #navWrapper{left:-9999px;top:auto;overflow:hidden;width:1px;height:1px}header #libraryInfo #mobileNav.collapsed .hbll-nav-backdrop{display:none}header #libraryInfo #mobileNav.collapsed nav{left:-9999px;top:auto;overflow:hidden;width:1px;height:1px}header #libraryInfo #mobileNav #navWrapper{color:#fff;position:fixed;top:0}header #libraryInfo #mobileNav #navWrapper.open{animation-name:slideInFromRight;animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}header #libraryInfo #mobileNav #navWrapper.is-closing{animation-name:slideOutToRight;animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}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;margin-right:2rem}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section{display:grid;grid-template-columns:repeat(4,7.5em);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/-1;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{position:relative}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-header{font-weight:600;font-size:1em}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}@keyframes slideInFromRight{0%{transform:translate(calc(min(100vw,400px) - 55px))}to{transform:translate(0)}}@keyframes slideOutToRight{0%{transform:translate(0)}to{transform:translate(min(100vw,400px))}}@keyframes fadeIn{0%{opacity:0}to{opacity:.3}}@keyframes fadeOut{0%{opacity:.3}to{opacity:0}}\n"] }]
|
|
118
|
+
], animations: [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 <button (click)=\"focusMainContent()\" class=\"skip-link\">Skip to main content</button>\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:00 a.m. - 11:45 p.m.</div>\n <div class=\"hbll-header-item\">8:00 a.m. - 11:45 p.m.</div>\n <div class=\"hbll-header-item\">Closed*</div>\n </div>\n <div class=\"hbll-header-hours-note\">\n * Family history ONLY 4:00 p.m. - 8:00 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 [attr.title]=\"exception.exception_title\"\n [attr.aria-label]=\"exception.exception_title\">\n {{ exception.exception_title | truncate:32:'...' }}\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:00 a.m. - 11:00 p.m.</div>\n <div class=\"hbll-header-item\">10:30 a.m. - 2:00 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 ? ' ' + 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\" [class.collapsed]=\"!showNavBar\">\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 <div\n #navWrapper\n id=\"navWrapper\"\n data-testid=\"mobileNav\"\n [class.open]=\"showNavBar\"\n [attr.inert]=\"!showNavBar ? true : null\"\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 #backdrop\n (click)=\"closeSidebarNav()\"\n class=\"hbll-nav-backdrop\"\n [class.open]=\"showNavBar\"\n data-testid=\"mobileNavBackdrop\"\n ></div>\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}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{position:static;width:auto;height:auto;overflow:visible;margin-left:.625rem;background:#fff;color:#00285b;font-size:.9375rem;font-weight:580;padding:.3125rem .625rem;z-index:1000;text-decoration:none;border:.1171875rem solid #0050b7;border-radius:.15625rem;cursor:pointer}.skip-link:hover{color:#00285b;background-color:#e3edf8;border:.1171875rem solid #e3edf8}.hbll-nav-backdrop{background-color:#000;opacity:.3;height:100vh;width:100vw;left:0;top:0;transform:translate(-100vw);position:absolute;z-index:-1}.hbll-nav-backdrop.open{animation-name:fadeIn;animation-duration:.15s;animation-timing-function:ease-in;animation-fill-mode:forwards}.hbll-nav-backdrop.is-closing{animation-name:fadeOut;animation-duration:.15s;animation-timing-function:ease-out;animation-fill-mode:forwards}#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.collapsed #navWrapper{left:-9999px;top:auto;overflow:hidden;width:1px;height:1px}header #libraryInfo #mobileNav.collapsed .hbll-nav-backdrop{display:none}header #libraryInfo #mobileNav.collapsed nav{left:-9999px;top:auto;overflow:hidden;width:1px;height:1px}header #libraryInfo #mobileNav #navWrapper{color:#fff;position:fixed;top:0}header #libraryInfo #mobileNav #navWrapper.open{animation-name:slideInFromRight;animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}header #libraryInfo #mobileNav #navWrapper.is-closing{animation-name:slideOutToRight;animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}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;margin-right:1.25rem}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section{display:grid;grid-template-columns:repeat(4,7.5em);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/-1;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{position:relative}header.hbll-header-desktop #libraryInfo #mainLibraryHours #libraryHoursDropdown .hbll-header-section .hbll-header-header{font-weight:600;font-size:1em}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}@keyframes slideInFromRight{0%{transform:translate(calc(min(100vw,400px) - 55px))}to{transform:translate(0)}}@keyframes slideOutToRight{0%{transform:translate(0)}to{transform:translate(min(100vw,400px))}}@keyframes fadeIn{0%{opacity:0}to{opacity:.3}}@keyframes fadeOut{0%{opacity:.3}to{opacity:0}}\n"] }]
|
|
119
119
|
}], propDecorators: { header: [{
|
|
120
120
|
type: ViewChild,
|
|
121
121
|
args: ['header']
|
|
@@ -139,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
139
139
|
type: HostListener,
|
|
140
140
|
args: ['window:resize', ['$event']]
|
|
141
141
|
}] } });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGJsbC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2hibGwtaGVhZGVyL2hibGwtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9oYmxsLWhlYWRlci9oYmxsLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV2RixPQUFP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Q0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQzFDLGtDQUFrQyxDQUN0QixDQUFDO1lBRWpCLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7OEdBbEhRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGlwQ0M3Q2hDLDQ0VEErTUEsa3hQRDlLUSxRQUFRLHdDQUVSLGdCQUFnQixvREFDaEIsWUFBWSx5VkFDWixlQUFlLDBGQUVmLFlBQVksbUNBSUosQ0FBQyxnQkFBZ0IsQ0FBQzs7MkZBRXJCLG1CQUFtQjtrQkFoQi9CLFNBQVM7K0JBQ0ksaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNMLFFBQVE7d0JBQ1IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLFlBQVk7cUJBQ2YsY0FHVyxDQUFDLGdCQUFnQixDQUFDOzhCQVNULE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDTSxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0EsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUlaLElBQUk7c0JBQVosS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQXdFQyxRQUFRO3NCQURmLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgRE9DVU1FTlQsIExvd2VyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZCYXJDb21wb25lbnQgfSBmcm9tICcuL25hdi1iYXIvbmF2LWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgbGliSGJsbEZhZGVJbk91dCB9IGZyb20gJy4uL2FuaW1hdGlvbnMvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IGlzU2NyZWVuU21hbGxTaWduYWwgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBMaWJyYXJ5SG91cnNQaXBlIH0gZnJvbSAnLi9waXBlcy9saWJyYXJ5LWhvdXJzLnBpcGUnO1xuaW1wb3J0IHsgbWFwLCBvZiwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRXhwYW5kQ29sbGFwc2VDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbmQtY29sbGFwc2UvZXhwYW5kLWNvbGxhcHNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJyYXJ5SG91cnMgfSBmcm9tICcuL21vZGVscy9saWJyYXJ5LWhvdXJzJztcbmltcG9ydCB7IFRydW5jYXRlUGlwZSB9IGZyb20gJy4vcGlwZXMvdHJ1bmNhdGUucGlwZSc7XG5cbmV4cG9ydCBjb25zdCBMSUJSQVJZX0hPVVJTX0FQSV9VUkwgPSAnaHR0cHM6Ly9hcHBzLmxpYi5ieXUuZWR1L2xpYnJhcnlob3Vycy9hcGkvaG91cnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1oYmxsLWhlYWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERhdGVQaXBlLFxuICAgICAgICBMb3dlckNhc2VQaXBlLFxuICAgICAgICBMaWJyYXJ5SG91cnNQaXBlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE5hdkJhckNvbXBvbmVudCxcbiAgICAgICAgRXhwYW5kQ29sbGFwc2VDb21wb25lbnQsXG4gICAgICAgIFRydW5jYXRlUGlwZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oYmxsLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2hibGwtaGVhZGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgICBhbmltYXRpb25zOiBbbGliSGJsbEZhZGVJbk91dF0sXG59KVxuZXhwb3J0IGNsYXNzIEhibGxIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgLy8gVE9ETzogZG9lcyB0aGlzIGluY3JlYXNlIGJ1bmRsZSBzaXplIG1vcmUgdGhhbiBpdCdzIHdvcnRoPyB2cyBmZXRjaD9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBibyA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xuICAgIHByaXZhdGUgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIGhlYWRlciE6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnbmF2V3JhcHBlcicpIG5hdldyYXBwZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdiYWNrZHJvcCcpIGJhY2tkcm9wITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvLyAtLS0gQVBJIC0tLVxuICAgIC8vIFRPRE86IENvbnZlcnQgdGhlc2UgdG8gc2lnbmFsIGlucHV0czogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNTc3NTVcbiAgICBASW5wdXQoKSBuYW1lID0gJyc7XG4gICAgQElucHV0KCkgbWFpbnNpdGViYXNldXJsID0gJ2h0dHBzOi8vbGliLmJ5dS5lZHUnO1xuICAgIC8vIFRPRE86IHRoaXMgaXMgYSBzaW5nYWwgaW5wdXQgY3VycmVudGx5IGJlY2F1c2UgaXQgd29uJ3QgYmUgdXNlZCBieSBhbnkgb3RoZXIgYXBwbGljYXRpb25zIHRoYW4gQW5ndWxhciBvbmVzLlxuICAgIHNob3dJbXBlcnNvbmF0ZUJ1dHRvbiA9IGlucHV0KGZhbHNlKTtcbiAgICBAT3V0cHV0KCkgb3BlbkltcGVyc29uYXRpb25Nb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgbG9naW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIGxvZ291dCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICAvLyAtLS0tLS0tLS0tLVxuICAgIHByaXZhdGUgZm9ybWF0RGF0ZUZvckhvdXJzID0gKGRhdGU6IERhdGUpID0+XG4gICAgICAgIGAke2RhdGUuZ2V0RnVsbFllYXIoKX0tJHtTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKX0tJHtTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgICBwcml2YXRlIGFjY291bnRJbmZvRWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2FjY291bnRJbmZvJyk7XG4gICAgcHJpdmF0ZSBob3Vyc0VsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdob3VycycpO1xuXG4gICAgcHJvdGVjdGVkIGdldCBpc0xvZ2dlZEluKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLm5hbWU7XG4gICAgfVxuXG4gICAgLy8gSG91cnNcbiAgICBwcm90ZWN0ZWQgbGlicmFyeUhvdXJzID0gdG9TaWduYWwodGhpcy5odHRwLmdldDxMaWJyYXJ5SG91cnM+KExJQlJBUllfSE9VUlNfQVBJX1VSTCkpO1xuICAgIHByb3RlY3RlZCBob3Vyc0V4Y2VwdGlvbnMkID0gb2YobnVsbCkucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgIC8vIEdldCBleGNlcHRpb25zIGZyb20gdG9kYXkgdG8gdHdvIG1vbnRocyBvdXRcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5mb3JtYXREYXRlRm9ySG91cnModG9kYXkpO1xuICAgICAgICAgICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBuZXdEYXRlLnNldE1vbnRoKHRvZGF5LmdldE1vbnRoKCkgKyAyKTtcbiAgICAgICAgICAgIGNvbnN0IHN0b3AgPSB0aGlzLmZvcm1hdERhdGVGb3JIb3VycyhuZXdEYXRlKTtcbiAgICAgICAgICAgIHJldHVybiBbc3RhcnQsIHN0b3BdO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKChbc3RhcnQsIHN0b3BdOiBzdHJpbmdbXSkgPT5cbiAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgIC5nZXQ8TGlicmFyeUhvdXJzW10+KGAke0xJQlJBUllfSE9VUlNfQVBJX1VSTH0/c3RhcnQ9JHtzdGFydH0mc3RvcD0ke3N0b3B9YClcbiAgICAgICAgICAgICAgICAucGlwZShtYXAoKHJlcykgPT4gcmVzLmZpbHRlcigoZGF5KSA9PiBkYXkuaGFzX2V4Y2VwdGlvbikuc2xpY2UoMCwgNSkpKSxcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCBzaG93QWNjb3VudERyb3Bkb3duID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHNob3dMaWJyYXJ5SG91cnMgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgbW9iaWxlU2lkZWJhckhlaWdodCA9IDA7XG4gICAgcHJvdGVjdGVkIHNob3dOYXZCYXIgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgaXNTY3JlZW5TbWFsbCA9IGlzU2NyZWVuU21hbGxTaWduYWwodGhpcy5ibyk7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucjIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hY2NvdW50SW5mb0VsKCk/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0FjY291bnREcm9wZG93biA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmhvdXJzRWwoKT8ubmF0aXZlRWxlbWVudC5jb250YWlucyhlLnRhcmdldCkpIHRoaXMuc2hvd0xpYnJhcnlIb3VycyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLnNldE1vYmlsZVNpZGViYXJIZWlnaHQoKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9wZW5TaWRlYmFyTmF2ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dOYXZCYXIgPSB0cnVlO1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgIHRoaXMucjIuc2V0U3R5bGUodGhpcy5kb2MuYm9keSwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgY2xvc2VTaWRlYmFyTmF2ID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBuYXZXcmFwcGVyID0gdGhpcy5uYXZXcmFwcGVyPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBiYWNrZHJvcCA9IHRoaXMuYmFja2Ryb3A/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChuYXZXcmFwcGVyKSB7XG4gICAgICAgICAgICB0aGlzLnIyLmFkZENsYXNzKG5hdldyYXBwZXIsICdpcy1jbG9zaW5nJyk7XG4gICAgICAgICAgICB0aGlzLnIyLmFkZENsYXNzKGJhY2tkcm9wLCAnaXMtY2xvc2luZycpO1xuICAgICAgICAgICAgbmF2V3JhcHBlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgICAgICdhbmltYXRpb25lbmQnLFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93TmF2QmFyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucjIucmVtb3ZlQ2xhc3MobmF2V3JhcHBlciwgJ2lzLWNsb3NpbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yMi5yZW1vdmVDbGFzcyhiYWNrZHJvcCwgJ2lzLWNsb3NpbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yMi5yZW1vdmVTdHlsZSh0aGlzLmRvYy5ib2R5LCAnb3ZlcmZsb3cnKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHsgb25jZTogdHJ1ZSB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBwcml2YXRlIG9uUmVzaXplKCkge1xuICAgICAgICB0aGlzLnNldE1vYmlsZVNpZGViYXJIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE1vYmlsZVNpZGViYXJIZWlnaHQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgICB0aGlzLm1vYmlsZVNpZGViYXJIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBoZWFkZXJIZWlnaHQ7XG4gICAgfTtcblxuICAgIGZvY3VzTWFpbkNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1haW5Db250ZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1haW4tY29udGVudCcpIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGlmIChtYWluQ29udGVudCkge1xuICAgICAgICAgICAgbWFpbkNvbnRlbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG1haW5Db250ZW50QXJpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgJ1thcmlhLWxhYmVsPVwiTWFpbiBjb250ZW50IGFyZWFcIl0nLFxuICAgICAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKG1haW5Db250ZW50QXJpYSkge1xuICAgICAgICAgICAgICAgIG1haW5Db250ZW50QXJpYS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGhlYWRlclxuICAgIHJvbGU9XCJiYW5uZXJcIlxuICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItd3JhcHBlclwiXG4gICAgI2hlYWRlclxuICAgIFtuZ0NsYXNzXT1cInsgJ2hibGwtaGVhZGVyLWRlc2t0b3AnOiAhaXNTY3JlZW5TbWFsbCgpIH1cIlxuPlxuICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybFwiPlxuICAgICAgICA8aDE+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9tZWRpYS5saWIuYnl1LmVkdS93ZWItYXNzZXRzL2ltYWdlcy8yLjAuMC9ieXUtaGJsbC1sb2dvLWZ1bGwuc3ZnXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJCWVUgTGlicmFyeSBMb2dvXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvaDE+XG4gICAgPC9hPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImZvY3VzTWFpbkNvbnRlbnQoKVwiIGNsYXNzPVwic2tpcC1saW5rXCI+U2tpcCB0byBtYWluIGNvbnRlbnQ8L2J1dHRvbj5cbiAgICA8ZGl2IGlkPVwibGlicmFyeUluZm9cIiBjbGFzcz1cImhibGwtaGVhZGVyLXdyYXBwZXJcIj5cbiAgICAgICAgQGlmICghaXNTY3JlZW5TbWFsbCgpKSB7XG4gICAgICAgICAgICA8ZGl2ICNob3VycyBpZD1cIm1haW5MaWJyYXJ5SG91cnNcIiBkYXRhLXRlc3RpZD1cImRlc2t0b3BIb3Vyc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dMaWJyYXJ5SG91cnMgPSAhc2hvd0xpYnJhcnlIb3Vyc1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaG91cnNCdG5cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhvdXJzVGV4dEJsb2NrXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgQGlmICghaXNTY3JlZW5TbWFsbCgpICYmIHNob3dMaWJyYXJ5SG91cnMpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgQGxpYkhibGxGYWRlSW5PdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibGlicmFyeUhvdXJzRHJvcGRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJsaWJyYXJ5SG91cnNEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiaGJsbC1oZWFkZXItc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImhibGwtaGVhZGVyLWhlYWRlclwiPlJlZ3VsYXIgSG91cnM8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1kZXRhaWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPk1vbmRheSAtIEZyaWRheTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5TYXR1cmRheTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5TdW5kYXk8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1ob3Vyc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPjc6MDAgYS5tLiAtIDExOjQ1IHAubS48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj44OjAwIGEubS4gLSAxMTo0NSBwLm0uPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+Q2xvc2VkKjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1ob3Vycy1ub3RlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRmFtaWx5IGhpc3RvcnkgT05MWSA0OjAwIHAubS4gLSA4OjAwIHAubVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4+Tm8gY2hlY2tvdXRzIGFmdGVyIDExOjQ1IHAubS48L3NwYW4+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BbGwgc2VydmljZXMgY2xvc2VkIDEwOjQ1IHRvIG5vb24gb24gVHVlc2RheXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJoYmxsLWhlYWRlci1zZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiaGJsbC1oZWFkZXItaGVhZGVyXCI+VXBjb21pbmcgRXhjZXB0aW9uczwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChob3Vyc0V4Y2VwdGlvbnMkIHwgYXN5bmM7IGFzIGV4Y2VwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWRldGFpbFwiIGRhdGEtdGVzdGlkPVwiZXhjZXB0aW9uc0RldGFpbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZXhjZXB0aW9uIG9mIGV4Y2VwdGlvbnM7IHRyYWNrIGV4Y2VwdGlvbi5kYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBleGNlcHRpb24uZGF0ZSB8IGRhdGU6ICdNTU0uIGQsIFlZWVknIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVtcHR5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBObyB1cGNvbWluZyBleGNlcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaG91cnNcIiBkYXRhLXRlc3RpZD1cImV4Y2VwdGlvbnNIb3Vyc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZXhjZXB0aW9uIG9mIGV4Y2VwdGlvbnM7IHRyYWNrIGV4Y2VwdGlvbi5kYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJleGNlcHRpb24uZXhjZXB0aW9uX3RpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJleGNlcHRpb24uZXhjZXB0aW9uX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZXhjZXB0aW9uLmV4Y2VwdGlvbl90aXRsZSB8IHRydW5jYXRlOjMyOicuLi4nIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGliLXNwaW5uZXJcIiBkYXRhLXRlc3RpZD1cImV4Y2VwdGlvbnNTcGlubmVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJoYmxsLWhlYWRlci1zZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiaGJsbC1oZWFkZXItaGVhZGVyXCI+TGlicmFyeSBDYWZlPC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItZGV0YWlsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5CYWdlbCBCdWJibGU8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+UHJvdmVjaG88L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1ob3Vyc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPjc6MDAgYS5tLiAtIDExOjAwIHAubS48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj4xMDozMCBhLm0uIC0gMjowMCBwLm0uPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmwgKyAnL2Fib3V0L2hvdXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlNlZSBhbGwgaG91cnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj4gY2hldnJvbl9yaWdodCA8L3NwYW4+PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgaWQ9XCJhY2NvdW50SW5mb1wiICNhY2NvdW50SW5mbz5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXNMb2dnZWRJbiA/IChzaG93QWNjb3VudERyb3Bkb3duID0gIXNob3dBY2NvdW50RHJvcGRvd24pIDogbG9naW4uZW1pdCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgIGlkPVwiYWNjb3VudEJ0blwiXG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJhY2NvdW50QnRuXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1oZWFkZXItbGVmdC1pY29uXCI+IHBlcnNvbiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgQGlmICghaXNTY3JlZW5TbWFsbCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGJsbC1oZWFkZXItbmFtZVwiIGRhdGEtdGVzdGlkPVwibmFtZVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xvZ2dlZEluID8gJyZuYnNwOycgKyBuYW1lIDogJ0xvZ2luJ1xuICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChpc0xvZ2dlZEluKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiIGRhdGEtdGVzdGlkPVwibG9naW5Ecm9wZG93blwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyb3dfZHJvcF9kb3duXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIEBpZiAoaXNMb2dnZWRJbiAmJiBzaG93QWNjb3VudERyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBAbGliSGJsbEZhZGVJbk91dCBpZD1cImFjY291bnREcm9wZG93blwiIGRhdGEtdGVzdGlkPVwiYWNjb3VudERyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWNjb3VudCdcIj5NeSBBY2NvdW50PC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmwgKyAnL2FjY291bnQnXCI+TXkgSXRlbXM8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWNjb3VudC9yZXF1ZXN0J1wiPlJlcXVlc3QgYW4gaXRlbTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibWFpbnNpdGViYXNldXJsICsgJy9hY2NvdW50L3NhdmVkJ1wiPlNhdmVkPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmwgKyAnL2FjY291bnQvY291cnNlJ1wiPkNvdXJzZXM8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWNjb3VudC9yb29tcydcIj5Sb29tczwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibWFpbnNpdGViYXNldXJsICsgJy9hY2NvdW50L3ByZWZlcmVuY2VzJ1wiPlByZWZlcmVuY2VzPC9hPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dJbXBlcnNvbmF0ZUJ1dHRvbigpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbXBlcnNvbmF0aW9uTW9kYWwuZW1pdCgpOyBzaG93QWNjb3VudERyb3Bkb3duID0gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItaW1wZXJzb25hdGUtYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbXBlcnNvbmF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibG9nb3V0LmVtaXQoKVwiIGRhdGEtdGVzdGlkPVwibG9nb3V0XCI+TG9nb3V0PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKGlzU2NyZWVuU21hbGwoKSkge1xuICAgICAgICAgICAgPGRpdiBpZD1cIm1vYmlsZU5hdlwiIFtjbGFzcy5jb2xsYXBzZWRdPVwiIXNob3dOYXZCYXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwibW9iaWxlTmF2QnRuXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TaWRlYmFyTmF2KClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGhibGwtaGVhZGVyLWljb25cIj4gbWVudSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAjbmF2V3JhcHBlclxuICAgICAgICAgICAgICAgICAgICBpZD1cIm5hdldyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vYmlsZU5hdlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5vcGVuXT1cInNob3dOYXZCYXJcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5pbmVydF09XCIhc2hvd05hdkJhciA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2xvc2VNb2JpbGVOYXZCdG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoYmxsLWhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2xvc2VNb2JpbGVOYXZCdG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlU2lkZWJhck5hdigpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGhibGwtaGVhZGVyLWljb25cIj4gY2xvc2UgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1uYXYtYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWFpblNpdGVCYXNlVXJsXT1cIm1haW5zaXRlYmFzZXVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIm1vYmlsZVNpZGViYXJIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgI2JhY2tkcm9wXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVNpZGViYXJOYXYoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1uYXYtYmFja2Ryb3BcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3Blbl09XCJzaG93TmF2QmFyXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJtb2JpbGVOYXZCYWNrZHJvcFwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvaGVhZGVyPlxuXG5AaWYgKCFpc1NjcmVlblNtYWxsKCkpIHtcbiAgICA8ZGl2IGlkPVwibWFpbk5hdlwiPlxuICAgICAgICA8bGliLW5hdi1iYXIgW21haW5TaXRlQmFzZVVybF09XCJtYWluc2l0ZWJhc2V1cmxcIiAvPlxuICAgIDwvZGl2PlxufVxuQGlmIChpc1NjcmVlblNtYWxsKCkpIHtcbiAgICA8YVxuICAgICAgICBpZD1cIm1vYmlsZUxpYnJhcnlIb3Vyc1wiXG4gICAgICAgIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWJvdXQvaG91cnMnXCJcbiAgICAgICAgY2xhc3M9XCJoYmxsLWhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJtb2JpbGVIb3Vyc1wiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaG91cnNUZXh0QmxvY2tcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG59XG5cbjxuZy10ZW1wbGF0ZSAjaG91cnNUZXh0QmxvY2s+XG4gICAgQGlmIChsaWJyYXJ5SG91cnMoKSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1oZWFkZXItbGVmdC1pY29uXCI+IHNjaGVkdWxlIDwvc3Bhbj5cbiAgICAgICAge3tcbiAgICAgICAgICAgIGxpYnJhcnlIb3VycygpPy5pc19jbG9zZWRcbiAgICAgICAgICAgICAgICA/ICdDTE9TRUQnXG4gICAgICAgICAgICAgICAgOiBcIlRvZGF5J3MgaG91cnM6IFwiICtcbiAgICAgICAgICAgICAgICAgIChsaWJyYXJ5SG91cnMoKSEuZGF0ZSB8IGxpYnJhcnlIb3VyczogbGlicmFyeUhvdXJzKCkhLm9wZW5fdGltZSkgK1xuICAgICAgICAgICAgICAgICAgJyAtICcgK1xuICAgICAgICAgICAgICAgICAgKGxpYnJhcnlIb3VycygpIS5kYXRlIHwgbGlicmFyeUhvdXJzOiBsaWJyYXJ5SG91cnMoKSEuY2xvc2VfdGltZSlcbiAgICAgICAgfX1cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGJsbC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2hibGwtaGVhZGVyL2hibGwtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9oYmxsLWhlYWRlci9oYmxsLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV2RixPQUFP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Q0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQzFDLGtDQUFrQyxDQUN0QixDQUFDO1lBRWpCLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7OEdBbEhRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGlwQ0M3Q2hDLDQ0VEErTUEseXlQRDlLUSxRQUFRLHdDQUVSLGdCQUFnQixvREFDaEIsWUFBWSx5VkFDWixlQUFlLDBGQUVmLFlBQVksbUNBSUosQ0FBQyxnQkFBZ0IsQ0FBQzs7MkZBRXJCLG1CQUFtQjtrQkFoQi9CLFNBQVM7K0JBQ0ksaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNMLFFBQVE7d0JBQ1IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLFlBQVk7cUJBQ2YsY0FHVyxDQUFDLGdCQUFnQixDQUFDOzhCQVNULE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDTSxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0EsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUlaLElBQUk7c0JBQVosS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQXdFQyxRQUFRO3NCQURmLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgRE9DVU1FTlQsIExvd2VyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZCYXJDb21wb25lbnQgfSBmcm9tICcuL25hdi1iYXIvbmF2LWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgbGliSGJsbEZhZGVJbk91dCB9IGZyb20gJy4uL2FuaW1hdGlvbnMvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IGlzU2NyZWVuU21hbGxTaWduYWwgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBMaWJyYXJ5SG91cnNQaXBlIH0gZnJvbSAnLi9waXBlcy9saWJyYXJ5LWhvdXJzLnBpcGUnO1xuaW1wb3J0IHsgbWFwLCBvZiwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRXhwYW5kQ29sbGFwc2VDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbmQtY29sbGFwc2UvZXhwYW5kLWNvbGxhcHNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJyYXJ5SG91cnMgfSBmcm9tICcuL21vZGVscy9saWJyYXJ5LWhvdXJzJztcbmltcG9ydCB7IFRydW5jYXRlUGlwZSB9IGZyb20gJy4vcGlwZXMvdHJ1bmNhdGUucGlwZSc7XG5cbmV4cG9ydCBjb25zdCBMSUJSQVJZX0hPVVJTX0FQSV9VUkwgPSAnaHR0cHM6Ly9hcHBzLmxpYi5ieXUuZWR1L2xpYnJhcnlob3Vycy9hcGkvaG91cnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1oYmxsLWhlYWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERhdGVQaXBlLFxuICAgICAgICBMb3dlckNhc2VQaXBlLFxuICAgICAgICBMaWJyYXJ5SG91cnNQaXBlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE5hdkJhckNvbXBvbmVudCxcbiAgICAgICAgRXhwYW5kQ29sbGFwc2VDb21wb25lbnQsXG4gICAgICAgIFRydW5jYXRlUGlwZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oYmxsLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2hibGwtaGVhZGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgICBhbmltYXRpb25zOiBbbGliSGJsbEZhZGVJbk91dF0sXG59KVxuZXhwb3J0IGNsYXNzIEhibGxIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgLy8gVE9ETzogZG9lcyB0aGlzIGluY3JlYXNlIGJ1bmRsZSBzaXplIG1vcmUgdGhhbiBpdCdzIHdvcnRoPyB2cyBmZXRjaD9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBibyA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xuICAgIHByaXZhdGUgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIGhlYWRlciE6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnbmF2V3JhcHBlcicpIG5hdldyYXBwZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdiYWNrZHJvcCcpIGJhY2tkcm9wITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvLyAtLS0gQVBJIC0tLVxuICAgIC8vIFRPRE86IENvbnZlcnQgdGhlc2UgdG8gc2lnbmFsIGlucHV0czogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNTc3NTVcbiAgICBASW5wdXQoKSBuYW1lID0gJyc7XG4gICAgQElucHV0KCkgbWFpbnNpdGViYXNldXJsID0gJ2h0dHBzOi8vbGliLmJ5dS5lZHUnO1xuICAgIC8vIFRPRE86IHRoaXMgaXMgYSBzaW5nYWwgaW5wdXQgY3VycmVudGx5IGJlY2F1c2UgaXQgd29uJ3QgYmUgdXNlZCBieSBhbnkgb3RoZXIgYXBwbGljYXRpb25zIHRoYW4gQW5ndWxhciBvbmVzLlxuICAgIHNob3dJbXBlcnNvbmF0ZUJ1dHRvbiA9IGlucHV0KGZhbHNlKTtcbiAgICBAT3V0cHV0KCkgb3BlbkltcGVyc29uYXRpb25Nb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgbG9naW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIGxvZ291dCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICAvLyAtLS0tLS0tLS0tLVxuICAgIHByaXZhdGUgZm9ybWF0RGF0ZUZvckhvdXJzID0gKGRhdGU6IERhdGUpID0+XG4gICAgICAgIGAke2RhdGUuZ2V0RnVsbFllYXIoKX0tJHtTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKX0tJHtTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgICBwcml2YXRlIGFjY291bnRJbmZvRWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2FjY291bnRJbmZvJyk7XG4gICAgcHJpdmF0ZSBob3Vyc0VsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdob3VycycpO1xuXG4gICAgcHJvdGVjdGVkIGdldCBpc0xvZ2dlZEluKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLm5hbWU7XG4gICAgfVxuXG4gICAgLy8gSG91cnNcbiAgICBwcm90ZWN0ZWQgbGlicmFyeUhvdXJzID0gdG9TaWduYWwodGhpcy5odHRwLmdldDxMaWJyYXJ5SG91cnM+KExJQlJBUllfSE9VUlNfQVBJX1VSTCkpO1xuICAgIHByb3RlY3RlZCBob3Vyc0V4Y2VwdGlvbnMkID0gb2YobnVsbCkucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgIC8vIEdldCBleGNlcHRpb25zIGZyb20gdG9kYXkgdG8gdHdvIG1vbnRocyBvdXRcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5mb3JtYXREYXRlRm9ySG91cnModG9kYXkpO1xuICAgICAgICAgICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBuZXdEYXRlLnNldE1vbnRoKHRvZGF5LmdldE1vbnRoKCkgKyAyKTtcbiAgICAgICAgICAgIGNvbnN0IHN0b3AgPSB0aGlzLmZvcm1hdERhdGVGb3JIb3VycyhuZXdEYXRlKTtcbiAgICAgICAgICAgIHJldHVybiBbc3RhcnQsIHN0b3BdO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKChbc3RhcnQsIHN0b3BdOiBzdHJpbmdbXSkgPT5cbiAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgIC5nZXQ8TGlicmFyeUhvdXJzW10+KGAke0xJQlJBUllfSE9VUlNfQVBJX1VSTH0/c3RhcnQ9JHtzdGFydH0mc3RvcD0ke3N0b3B9YClcbiAgICAgICAgICAgICAgICAucGlwZShtYXAoKHJlcykgPT4gcmVzLmZpbHRlcigoZGF5KSA9PiBkYXkuaGFzX2V4Y2VwdGlvbikuc2xpY2UoMCwgNSkpKSxcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCBzaG93QWNjb3VudERyb3Bkb3duID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHNob3dMaWJyYXJ5SG91cnMgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgbW9iaWxlU2lkZWJhckhlaWdodCA9IDA7XG4gICAgcHJvdGVjdGVkIHNob3dOYXZCYXIgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgaXNTY3JlZW5TbWFsbCA9IGlzU2NyZWVuU21hbGxTaWduYWwodGhpcy5ibyk7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucjIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hY2NvdW50SW5mb0VsKCk/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0FjY291bnREcm9wZG93biA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmhvdXJzRWwoKT8ubmF0aXZlRWxlbWVudC5jb250YWlucyhlLnRhcmdldCkpIHRoaXMuc2hvd0xpYnJhcnlIb3VycyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLnNldE1vYmlsZVNpZGViYXJIZWlnaHQoKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9wZW5TaWRlYmFyTmF2ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dOYXZCYXIgPSB0cnVlO1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgIHRoaXMucjIuc2V0U3R5bGUodGhpcy5kb2MuYm9keSwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgY2xvc2VTaWRlYmFyTmF2ID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBuYXZXcmFwcGVyID0gdGhpcy5uYXZXcmFwcGVyPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBiYWNrZHJvcCA9IHRoaXMuYmFja2Ryb3A/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChuYXZXcmFwcGVyKSB7XG4gICAgICAgICAgICB0aGlzLnIyLmFkZENsYXNzKG5hdldyYXBwZXIsICdpcy1jbG9zaW5nJyk7XG4gICAgICAgICAgICB0aGlzLnIyLmFkZENsYXNzKGJhY2tkcm9wLCAnaXMtY2xvc2luZycpO1xuICAgICAgICAgICAgbmF2V3JhcHBlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgICAgICdhbmltYXRpb25lbmQnLFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93TmF2QmFyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucjIucmVtb3ZlQ2xhc3MobmF2V3JhcHBlciwgJ2lzLWNsb3NpbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yMi5yZW1vdmVDbGFzcyhiYWNrZHJvcCwgJ2lzLWNsb3NpbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yMi5yZW1vdmVTdHlsZSh0aGlzLmRvYy5ib2R5LCAnb3ZlcmZsb3cnKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHsgb25jZTogdHJ1ZSB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBwcml2YXRlIG9uUmVzaXplKCkge1xuICAgICAgICB0aGlzLnNldE1vYmlsZVNpZGViYXJIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE1vYmlsZVNpZGViYXJIZWlnaHQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgICB0aGlzLm1vYmlsZVNpZGViYXJIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBoZWFkZXJIZWlnaHQ7XG4gICAgfTtcblxuICAgIGZvY3VzTWFpbkNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1haW5Db250ZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1haW4tY29udGVudCcpIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGlmIChtYWluQ29udGVudCkge1xuICAgICAgICAgICAgbWFpbkNvbnRlbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG1haW5Db250ZW50QXJpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgJ1thcmlhLWxhYmVsPVwiTWFpbiBjb250ZW50IGFyZWFcIl0nLFxuICAgICAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKG1haW5Db250ZW50QXJpYSkge1xuICAgICAgICAgICAgICAgIG1haW5Db250ZW50QXJpYS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGhlYWRlclxuICAgIHJvbGU9XCJiYW5uZXJcIlxuICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItd3JhcHBlclwiXG4gICAgI2hlYWRlclxuICAgIFtuZ0NsYXNzXT1cInsgJ2hibGwtaGVhZGVyLWRlc2t0b3AnOiAhaXNTY3JlZW5TbWFsbCgpIH1cIlxuPlxuICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybFwiPlxuICAgICAgICA8aDE+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9tZWRpYS5saWIuYnl1LmVkdS93ZWItYXNzZXRzL2ltYWdlcy8yLjAuMC9ieXUtaGJsbC1sb2dvLWZ1bGwuc3ZnXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJCWVUgTGlicmFyeSBMb2dvXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvaDE+XG4gICAgPC9hPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImZvY3VzTWFpbkNvbnRlbnQoKVwiIGNsYXNzPVwic2tpcC1saW5rXCI+U2tpcCB0byBtYWluIGNvbnRlbnQ8L2J1dHRvbj5cbiAgICA8ZGl2IGlkPVwibGlicmFyeUluZm9cIiBjbGFzcz1cImhibGwtaGVhZGVyLXdyYXBwZXJcIj5cbiAgICAgICAgQGlmICghaXNTY3JlZW5TbWFsbCgpKSB7XG4gICAgICAgICAgICA8ZGl2ICNob3VycyBpZD1cIm1haW5MaWJyYXJ5SG91cnNcIiBkYXRhLXRlc3RpZD1cImRlc2t0b3BIb3Vyc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dMaWJyYXJ5SG91cnMgPSAhc2hvd0xpYnJhcnlIb3Vyc1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaG91cnNCdG5cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhvdXJzVGV4dEJsb2NrXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgQGlmICghaXNTY3JlZW5TbWFsbCgpICYmIHNob3dMaWJyYXJ5SG91cnMpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgQGxpYkhibGxGYWRlSW5PdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibGlicmFyeUhvdXJzRHJvcGRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJsaWJyYXJ5SG91cnNEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiaGJsbC1oZWFkZXItc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImhibGwtaGVhZGVyLWhlYWRlclwiPlJlZ3VsYXIgSG91cnM8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1kZXRhaWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPk1vbmRheSAtIEZyaWRheTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5TYXR1cmRheTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5TdW5kYXk8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1ob3Vyc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPjc6MDAgYS5tLiAtIDExOjQ1IHAubS48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj44OjAwIGEubS4gLSAxMTo0NSBwLm0uPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+Q2xvc2VkKjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1ob3Vycy1ub3RlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRmFtaWx5IGhpc3RvcnkgT05MWSA0OjAwIHAubS4gLSA4OjAwIHAubVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4+Tm8gY2hlY2tvdXRzIGFmdGVyIDExOjQ1IHAubS48L3NwYW4+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BbGwgc2VydmljZXMgY2xvc2VkIDEwOjQ1IHRvIG5vb24gb24gVHVlc2RheXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJoYmxsLWhlYWRlci1zZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiaGJsbC1oZWFkZXItaGVhZGVyXCI+VXBjb21pbmcgRXhjZXB0aW9uczwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChob3Vyc0V4Y2VwdGlvbnMkIHwgYXN5bmM7IGFzIGV4Y2VwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWRldGFpbFwiIGRhdGEtdGVzdGlkPVwiZXhjZXB0aW9uc0RldGFpbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZXhjZXB0aW9uIG9mIGV4Y2VwdGlvbnM7IHRyYWNrIGV4Y2VwdGlvbi5kYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBleGNlcHRpb24uZGF0ZSB8IGRhdGU6ICdNTU0uIGQsIFlZWVknIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVtcHR5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBObyB1cGNvbWluZyBleGNlcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaG91cnNcIiBkYXRhLXRlc3RpZD1cImV4Y2VwdGlvbnNIb3Vyc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZXhjZXB0aW9uIG9mIGV4Y2VwdGlvbnM7IHRyYWNrIGV4Y2VwdGlvbi5kYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJleGNlcHRpb24uZXhjZXB0aW9uX3RpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJleGNlcHRpb24uZXhjZXB0aW9uX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZXhjZXB0aW9uLmV4Y2VwdGlvbl90aXRsZSB8IHRydW5jYXRlOjMyOicuLi4nIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGliLXNwaW5uZXJcIiBkYXRhLXRlc3RpZD1cImV4Y2VwdGlvbnNTcGlubmVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJoYmxsLWhlYWRlci1zZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiaGJsbC1oZWFkZXItaGVhZGVyXCI+TGlicmFyeSBDYWZlPC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItZGV0YWlsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5CYWdlbCBCdWJibGU8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+UHJvdmVjaG88L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1ob3Vyc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPjc6MDAgYS5tLiAtIDExOjAwIHAubS48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj4xMDozMCBhLm0uIC0gMjowMCBwLm0uPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmwgKyAnL2Fib3V0L2hvdXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlNlZSBhbGwgaG91cnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj4gY2hldnJvbl9yaWdodCA8L3NwYW4+PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgaWQ9XCJhY2NvdW50SW5mb1wiICNhY2NvdW50SW5mbz5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXNMb2dnZWRJbiA/IChzaG93QWNjb3VudERyb3Bkb3duID0gIXNob3dBY2NvdW50RHJvcGRvd24pIDogbG9naW4uZW1pdCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgIGlkPVwiYWNjb3VudEJ0blwiXG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJhY2NvdW50QnRuXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1oZWFkZXItbGVmdC1pY29uXCI+IHBlcnNvbiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgQGlmICghaXNTY3JlZW5TbWFsbCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGJsbC1oZWFkZXItbmFtZVwiIGRhdGEtdGVzdGlkPVwibmFtZVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xvZ2dlZEluID8gJyZuYnNwOycgKyBuYW1lIDogJ0xvZ2luJ1xuICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChpc0xvZ2dlZEluKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiIGRhdGEtdGVzdGlkPVwibG9naW5Ecm9wZG93blwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyb3dfZHJvcF9kb3duXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIEBpZiAoaXNMb2dnZWRJbiAmJiBzaG93QWNjb3VudERyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBAbGliSGJsbEZhZGVJbk91dCBpZD1cImFjY291bnREcm9wZG93blwiIGRhdGEtdGVzdGlkPVwiYWNjb3VudERyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWNjb3VudCdcIj5NeSBBY2NvdW50PC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmwgKyAnL2FjY291bnQnXCI+TXkgSXRlbXM8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWNjb3VudC9yZXF1ZXN0J1wiPlJlcXVlc3QgYW4gaXRlbTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibWFpbnNpdGViYXNldXJsICsgJy9hY2NvdW50L3NhdmVkJ1wiPlNhdmVkPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmwgKyAnL2FjY291bnQvY291cnNlJ1wiPkNvdXJzZXM8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWNjb3VudC9yb29tcydcIj5Sb29tczwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibWFpbnNpdGViYXNldXJsICsgJy9hY2NvdW50L3ByZWZlcmVuY2VzJ1wiPlByZWZlcmVuY2VzPC9hPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dJbXBlcnNvbmF0ZUJ1dHRvbigpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbXBlcnNvbmF0aW9uTW9kYWwuZW1pdCgpOyBzaG93QWNjb3VudERyb3Bkb3duID0gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItaW1wZXJzb25hdGUtYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbXBlcnNvbmF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibG9nb3V0LmVtaXQoKVwiIGRhdGEtdGVzdGlkPVwibG9nb3V0XCI+TG9nb3V0PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKGlzU2NyZWVuU21hbGwoKSkge1xuICAgICAgICAgICAgPGRpdiBpZD1cIm1vYmlsZU5hdlwiIFtjbGFzcy5jb2xsYXBzZWRdPVwiIXNob3dOYXZCYXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwibW9iaWxlTmF2QnRuXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TaWRlYmFyTmF2KClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGhibGwtaGVhZGVyLWljb25cIj4gbWVudSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAjbmF2V3JhcHBlclxuICAgICAgICAgICAgICAgICAgICBpZD1cIm5hdldyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vYmlsZU5hdlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5vcGVuXT1cInNob3dOYXZCYXJcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5pbmVydF09XCIhc2hvd05hdkJhciA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2xvc2VNb2JpbGVOYXZCdG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoYmxsLWhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2xvc2VNb2JpbGVOYXZCdG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlU2lkZWJhck5hdigpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGhibGwtaGVhZGVyLWljb25cIj4gY2xvc2UgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1uYXYtYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWFpblNpdGVCYXNlVXJsXT1cIm1haW5zaXRlYmFzZXVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIm1vYmlsZVNpZGViYXJIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgI2JhY2tkcm9wXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVNpZGViYXJOYXYoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1uYXYtYmFja2Ryb3BcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3Blbl09XCJzaG93TmF2QmFyXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJtb2JpbGVOYXZCYWNrZHJvcFwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvaGVhZGVyPlxuXG5AaWYgKCFpc1NjcmVlblNtYWxsKCkpIHtcbiAgICA8ZGl2IGlkPVwibWFpbk5hdlwiPlxuICAgICAgICA8bGliLW5hdi1iYXIgW21haW5TaXRlQmFzZVVybF09XCJtYWluc2l0ZWJhc2V1cmxcIiAvPlxuICAgIDwvZGl2PlxufVxuQGlmIChpc1NjcmVlblNtYWxsKCkpIHtcbiAgICA8YVxuICAgICAgICBpZD1cIm1vYmlsZUxpYnJhcnlIb3Vyc1wiXG4gICAgICAgIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWJvdXQvaG91cnMnXCJcbiAgICAgICAgY2xhc3M9XCJoYmxsLWhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJtb2JpbGVIb3Vyc1wiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaG91cnNUZXh0QmxvY2tcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG59XG5cbjxuZy10ZW1wbGF0ZSAjaG91cnNUZXh0QmxvY2s+XG4gICAgQGlmIChsaWJyYXJ5SG91cnMoKSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1oZWFkZXItbGVmdC1pY29uXCI+IHNjaGVkdWxlIDwvc3Bhbj5cbiAgICAgICAge3tcbiAgICAgICAgICAgIGxpYnJhcnlIb3VycygpPy5pc19jbG9zZWRcbiAgICAgICAgICAgICAgICA/ICdDTE9TRUQnXG4gICAgICAgICAgICAgICAgOiBcIlRvZGF5J3MgaG91cnM6IFwiICtcbiAgICAgICAgICAgICAgICAgIChsaWJyYXJ5SG91cnMoKSEuZGF0ZSB8IGxpYnJhcnlIb3VyczogbGlicmFyeUhvdXJzKCkhLm9wZW5fdGltZSkgK1xuICAgICAgICAgICAgICAgICAgJyAtICcgK1xuICAgICAgICAgICAgICAgICAgKGxpYnJhcnlIb3VycygpIS5kYXRlIHwgbGlicmFyeUhvdXJzOiBsaWJyYXJ5SG91cnMoKSEuY2xvc2VfdGltZSlcbiAgICAgICAgfX1cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -93,11 +93,11 @@ export class SnackbarComponent {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SnackbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SnackbarComponent, isStandalone: true, selector: "lib-snackbar", inputs: { purpose: "purpose", title: "title", description: "description", fieldPlaceholder: "fieldPlaceholder", titleIcon: "titleIcon", showTitle: ["showTitle", "showTitle", booleanAttribute], showTitleIcon: ["showTitleIcon", "showTitleIcon", booleanAttribute], titleIconFilled: ["titleIconFilled", "titleIconFilled", booleanAttribute], showClose: ["showClose", "showClose", booleanAttribute], showProgressBar: ["showProgressBar", "showProgressBar", booleanAttribute], showField: ["showField", "showField", booleanAttribute], showButton: ["showButton", "showButton", booleanAttribute], autoDismiss: ["autoDismiss", "autoDismiss", booleanAttribute], visible: ["visible", "visible", booleanAttribute], progressMs: "progressMs", y: "y", statusButtonInputs: "statusButtonInputs" }, outputs: { closed: "closed", visibleChange: "visibleChange", buttonClicked: "buttonClicked" }, usesOnChanges: true, ngImport: i0, template: "@if (visible) {\n <section\n class=\"snackbar\"\n [ngClass]=\"{\n 'is-default': purpose === 'default',\n 'is-info': purpose === 'info',\n 'is-success': purpose === 'success',\n 'is-error': purpose === 'error',\n 'is-warning': purpose === 'warning',\n 'is-open': isOpen,\n }\"\n role=\"status\"\n aria-live=\"polite\"\n [style.--snackbar-progress-duration]=\"progressMs + 'ms'\"\n [style.top.px]=\"y\"\n >\n <div class=\"snackbar__left\">\n @if(showTitle) {\n <div class=\"snackbar__title-row\">\n <span \n [ngClass]=\"{\n 'snackbar__title-icon': true,\n 'has-icon': showTitle && showTitleIcon\n }\"\n aria-hidden=\"true\"\n >\n @if (showTitle && showTitleIcon) {\n <i [ngClass]=\"titleIconFilled ? 'material-icons' : 'material-icons-outlined'\"\n id=\"snackbar-title-icon\"\n aria-hidden=\"true\"\n >\n {{ titleIcon }}\n </i>\n }\n </span>\n @if (showTitle) {\n <h3 class=\"snackbar__title\">{{ title }}</h3>\n }\n </div>\n }\n <p class=\"snackbar__desc\">\n {{ description }}\n </p>\n @if (showField) {\n <input class=\"snackbar__input\" type=\"text\" [placeholder]=\"fieldPlaceholder\" />\n }\n @if (showButton) {\n <lib-status-button\n label={{statusButtonInputs?.label}}\n [status]=\"status\"\n leftIcon={{statusButtonInputs?.leftIcon}}\n rightIcon={{statusButtonInputs?.rightIcon}}\n [hideLeftIcon]=\"statusButtonInputs?.hideLeftIcon\"\n [hideRightIcon]=\"statusButtonInputs?.hideRightIcon\"\n [clearVariant]=\"statusButtonInputs?.clearVariant\"\n (click)=\"close(true)\"\n ></lib-status-button>\n\n }\n </div>\n <button \n type=\"button\"\n (click)=\"close()\"\n class=\"snackbar__close\"\n aria-label=\"Dismiss\"\n [style.visibility]=\"showClose ? 'visible' : 'hidden'\"\n >\n \u00D7\n </button>\n @if (showProgressBar) {\n <div class=\"snackbar__progress\">\n <div class=\"snackbar__progress-fill\"></div>\n </div>\n }\n </section>\n}\n", styles: [":root{--border-radius-md: 4px;--colors-border-primary: #d0d0d0;--colors-surface-primary: white;--colors-border-information: #457fa6;--colors-surface-information: #ecf2f6;--colors-border-success: #3ba35a;--colors-surface-success: #ebf6ee;--colors-border-warning: #d1c844;--colors-surface-warning: #faf9ec;--colors-border-error: #c73e3d;--colors-surface-error: #f9ecec}.snackbar{--snackbar-border-color: var(--colors-border-primary);--snackbar-bg: var(--colors-surface-primary);--snackbar-text: #141414;--snackbar-title-color: var(--snackbar-text);--snackbar-icon-bg: #e5edf8;--snackbar-accent: #0047ba;--snackbar-input-border: var(--snackbar-border-color);--snackbar-progress: var(--snackbar-accent);display:flex;width:
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SnackbarComponent, isStandalone: true, selector: "lib-snackbar", inputs: { purpose: "purpose", title: "title", description: "description", fieldPlaceholder: "fieldPlaceholder", titleIcon: "titleIcon", showTitle: ["showTitle", "showTitle", booleanAttribute], showTitleIcon: ["showTitleIcon", "showTitleIcon", booleanAttribute], titleIconFilled: ["titleIconFilled", "titleIconFilled", booleanAttribute], showClose: ["showClose", "showClose", booleanAttribute], showProgressBar: ["showProgressBar", "showProgressBar", booleanAttribute], showField: ["showField", "showField", booleanAttribute], showButton: ["showButton", "showButton", booleanAttribute], autoDismiss: ["autoDismiss", "autoDismiss", booleanAttribute], visible: ["visible", "visible", booleanAttribute], progressMs: "progressMs", y: "y", statusButtonInputs: "statusButtonInputs" }, outputs: { closed: "closed", visibleChange: "visibleChange", buttonClicked: "buttonClicked" }, usesOnChanges: true, ngImport: i0, template: "@if (visible) {\n <section\n class=\"snackbar\"\n [ngClass]=\"{\n 'is-default': purpose === 'default',\n 'is-info': purpose === 'info',\n 'is-success': purpose === 'success',\n 'is-error': purpose === 'error',\n 'is-warning': purpose === 'warning',\n 'is-open': isOpen,\n }\"\n role=\"status\"\n aria-live=\"polite\"\n [style.--snackbar-progress-duration]=\"progressMs + 'ms'\"\n [style.top.px]=\"y\"\n >\n <div class=\"snackbar__left\">\n @if(showTitle) {\n <div class=\"snackbar__title-row\">\n <span \n [ngClass]=\"{\n 'snackbar__title-icon': true,\n 'has-icon': showTitle && showTitleIcon\n }\"\n aria-hidden=\"true\"\n >\n @if (showTitle && showTitleIcon) {\n <i [ngClass]=\"titleIconFilled ? 'material-icons' : 'material-icons-outlined'\"\n id=\"snackbar-title-icon\"\n aria-hidden=\"true\"\n >\n {{ titleIcon }}\n </i>\n }\n </span>\n @if (showTitle) {\n <h3 class=\"snackbar__title\">{{ title }}</h3>\n }\n </div>\n }\n <p class=\"snackbar__desc\">\n {{ description }}\n </p>\n @if (showField) {\n <input class=\"snackbar__input\" type=\"text\" [placeholder]=\"fieldPlaceholder\" />\n }\n @if (showButton) {\n <lib-status-button\n label={{statusButtonInputs?.label}}\n [status]=\"status\"\n leftIcon={{statusButtonInputs?.leftIcon}}\n rightIcon={{statusButtonInputs?.rightIcon}}\n [hideLeftIcon]=\"statusButtonInputs?.hideLeftIcon\"\n [hideRightIcon]=\"statusButtonInputs?.hideRightIcon\"\n [clearVariant]=\"statusButtonInputs?.clearVariant\"\n (click)=\"close(true)\"\n ></lib-status-button>\n\n }\n </div>\n <button \n type=\"button\"\n (click)=\"close()\"\n class=\"snackbar__close\"\n aria-label=\"Dismiss\"\n [style.visibility]=\"showClose ? 'visible' : 'hidden'\"\n >\n \u00D7\n </button>\n @if (showProgressBar) {\n <div class=\"snackbar__progress\">\n <div class=\"snackbar__progress-fill\"></div>\n </div>\n }\n </section>\n}\n", styles: [":root{--border-radius-md: 4px;--colors-border-primary: #d0d0d0;--colors-surface-primary: white;--colors-border-information: #457fa6;--colors-surface-information: #ecf2f6;--colors-border-success: #3ba35a;--colors-surface-success: #ebf6ee;--colors-border-warning: #d1c844;--colors-surface-warning: #faf9ec;--colors-border-error: #c73e3d;--colors-surface-error: #f9ecec}.snackbar{--snackbar-border-color: var(--colors-border-primary);--snackbar-bg: var(--colors-surface-primary);--snackbar-text: #141414;--snackbar-title-color: var(--snackbar-text);--snackbar-icon-bg: #e5edf8;--snackbar-accent: #0047ba;--snackbar-input-border: var(--snackbar-border-color);--snackbar-progress: var(--snackbar-accent);display:flex;width:16.40625rem;padding:.78125rem .625rem;justify-content:space-between;align-items:flex-start;gap:.15625rem;position:relative;border-radius:var(--border-radius-md, 4px);border:1px solid var(--snackbar-border-color);background:var(--snackbar-bg);box-shadow:1px 1px 4px #00000040;color:var(--snackbar-text)}.snackbar__left{display:grid;gap:.3125rem;flex:1 1 auto}.snackbar__left>.snackbar__title-row~*{margin-left:var(--snackbar-right-gutter, 1.85rem)}.snackbar__title-row{display:flex;align-items:center;gap:.15625rem}.snackbar__title{margin:0;font-weight:400;font-size:.75rem;line-height:1.2;color:var(--snackbar-title-color)}.snackbar__title-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em}.snackbar__title-icon.has-icon{border-radius:50%;color:var(--snackbar-accent)}.snackbar__icon{font-weight:700;font-size:.625rem;line-height:1}.snackbar__desc{margin:0;opacity:.9}.snackbar__input{width:100%;max-width:100%;box-sizing:border-box;padding:.5em;border-radius:4px;border:1px solid var(--snackbar-input-border);background:#fff;color:inherit}.snackbar__close{margin-left:.5em;border:0;background:transparent;color:inherit;opacity:.7;font-size:9375rem;padding:.15625rem;line-height:1;cursor:pointer}.snackbar__progress{position:absolute;left:0;right:0;bottom:-1px;height:4px;overflow:hidden;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.snackbar__progress-fill{height:100%;width:0%;background:var(--snackbar-progress);animation:fill var(--snackbar-progress-duration, 4s) linear forwards}@keyframes fill{to{width:100%}}.snackbar.is-default{--snackbar-border-color: var(--colors-border-primary, #d0d0d0);--snackbar-bg: var(--colors-surface-primary, white);--snackbar-text: #141414;--snackbar-title-color: #003995;--snackbar-icon-bg: #e5edf8;--snackbar-accent: #003995;--snackbar-input-border: #d0d0d0;--snackbar-progress: #003995}.snackbar.is-info{--snackbar-border-color: var(--colors-border-information, #457fa6);--snackbar-bg: var(--colors-surface-information, #ecf2f6);--snackbar-text: #24495c;--snackbar-title-color: #24495c;--snackbar-icon-bg: #a2bfd3;--snackbar-accent: #306a88;--snackbar-input-border: #a2bfd3;--snackbar-progress: #306a88}.snackbar.is-success{--snackbar-border-color: var(--colors-border-success, #3ba35a);--snackbar-bg: var(--colors-surface-success, #ebf6ee);--snackbar-text: #20522e;--snackbar-title-color: #20522e;--snackbar-icon-bg: #9dd1ac;--snackbar-accent: #2e7d3f;--snackbar-input-border: #9dd1ac;--snackbar-progress: #2e7d3f}.snackbar.is-warning{--snackbar-border-color: var(--colors-border-warning, #d1c844);--snackbar-bg: var(--colors-surface-warning, #faf9ec);--snackbar-text: #514a18;--snackbar-title-color: #514a18;--snackbar-icon-bg: #e8e3a1;--snackbar-accent: #7a6f13;--snackbar-input-border: #d1c844;--snackbar-progress: #7a6f13}.snackbar.is-error{--snackbar-border-color: var(--colors-border-error, #c73e3d);--snackbar-bg: var(--colors-surface-error, #f9ecec);--snackbar-text: #611a1a;--snackbar-title-color: #611a1a;--snackbar-icon-bg: #e39e9e;--snackbar-accent: #912525;--snackbar-input-border: #c73e3d;--snackbar-progress: #912525}.snackbar{position:fixed;top:24px;right:24px;z-index:1000;transform:translate(120%);transition:transform .6s ease}.snackbar.is-open{transform:translate(0)}lib-status-button{--status-button-padding: .25em .5em .25em 0}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: StatusButtonComponent, selector: "lib-status-button", inputs: ["label", "status", "leftIcon", "rightIcon", "hideLeftIcon", "hideRightIcon", "clearVariant"] }] }); }
|
|
97
97
|
}
|
|
98
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SnackbarComponent, decorators: [{
|
|
99
99
|
type: Component,
|
|
100
|
-
args: [{ selector: 'lib-snackbar', standalone: true, imports: [NgClass, StatusButtonComponent], template: "@if (visible) {\n <section\n class=\"snackbar\"\n [ngClass]=\"{\n 'is-default': purpose === 'default',\n 'is-info': purpose === 'info',\n 'is-success': purpose === 'success',\n 'is-error': purpose === 'error',\n 'is-warning': purpose === 'warning',\n 'is-open': isOpen,\n }\"\n role=\"status\"\n aria-live=\"polite\"\n [style.--snackbar-progress-duration]=\"progressMs + 'ms'\"\n [style.top.px]=\"y\"\n >\n <div class=\"snackbar__left\">\n @if(showTitle) {\n <div class=\"snackbar__title-row\">\n <span \n [ngClass]=\"{\n 'snackbar__title-icon': true,\n 'has-icon': showTitle && showTitleIcon\n }\"\n aria-hidden=\"true\"\n >\n @if (showTitle && showTitleIcon) {\n <i [ngClass]=\"titleIconFilled ? 'material-icons' : 'material-icons-outlined'\"\n id=\"snackbar-title-icon\"\n aria-hidden=\"true\"\n >\n {{ titleIcon }}\n </i>\n }\n </span>\n @if (showTitle) {\n <h3 class=\"snackbar__title\">{{ title }}</h3>\n }\n </div>\n }\n <p class=\"snackbar__desc\">\n {{ description }}\n </p>\n @if (showField) {\n <input class=\"snackbar__input\" type=\"text\" [placeholder]=\"fieldPlaceholder\" />\n }\n @if (showButton) {\n <lib-status-button\n label={{statusButtonInputs?.label}}\n [status]=\"status\"\n leftIcon={{statusButtonInputs?.leftIcon}}\n rightIcon={{statusButtonInputs?.rightIcon}}\n [hideLeftIcon]=\"statusButtonInputs?.hideLeftIcon\"\n [hideRightIcon]=\"statusButtonInputs?.hideRightIcon\"\n [clearVariant]=\"statusButtonInputs?.clearVariant\"\n (click)=\"close(true)\"\n ></lib-status-button>\n\n }\n </div>\n <button \n type=\"button\"\n (click)=\"close()\"\n class=\"snackbar__close\"\n aria-label=\"Dismiss\"\n [style.visibility]=\"showClose ? 'visible' : 'hidden'\"\n >\n \u00D7\n </button>\n @if (showProgressBar) {\n <div class=\"snackbar__progress\">\n <div class=\"snackbar__progress-fill\"></div>\n </div>\n }\n </section>\n}\n", styles: [":root{--border-radius-md: 4px;--colors-border-primary: #d0d0d0;--colors-surface-primary: white;--colors-border-information: #457fa6;--colors-surface-information: #ecf2f6;--colors-border-success: #3ba35a;--colors-surface-success: #ebf6ee;--colors-border-warning: #d1c844;--colors-surface-warning: #faf9ec;--colors-border-error: #c73e3d;--colors-surface-error: #f9ecec}.snackbar{--snackbar-border-color: var(--colors-border-primary);--snackbar-bg: var(--colors-surface-primary);--snackbar-text: #141414;--snackbar-title-color: var(--snackbar-text);--snackbar-icon-bg: #e5edf8;--snackbar-accent: #0047ba;--snackbar-input-border: var(--snackbar-border-color);--snackbar-progress: var(--snackbar-accent);display:flex;width:
|
|
100
|
+
args: [{ selector: 'lib-snackbar', standalone: true, imports: [NgClass, StatusButtonComponent], template: "@if (visible) {\n <section\n class=\"snackbar\"\n [ngClass]=\"{\n 'is-default': purpose === 'default',\n 'is-info': purpose === 'info',\n 'is-success': purpose === 'success',\n 'is-error': purpose === 'error',\n 'is-warning': purpose === 'warning',\n 'is-open': isOpen,\n }\"\n role=\"status\"\n aria-live=\"polite\"\n [style.--snackbar-progress-duration]=\"progressMs + 'ms'\"\n [style.top.px]=\"y\"\n >\n <div class=\"snackbar__left\">\n @if(showTitle) {\n <div class=\"snackbar__title-row\">\n <span \n [ngClass]=\"{\n 'snackbar__title-icon': true,\n 'has-icon': showTitle && showTitleIcon\n }\"\n aria-hidden=\"true\"\n >\n @if (showTitle && showTitleIcon) {\n <i [ngClass]=\"titleIconFilled ? 'material-icons' : 'material-icons-outlined'\"\n id=\"snackbar-title-icon\"\n aria-hidden=\"true\"\n >\n {{ titleIcon }}\n </i>\n }\n </span>\n @if (showTitle) {\n <h3 class=\"snackbar__title\">{{ title }}</h3>\n }\n </div>\n }\n <p class=\"snackbar__desc\">\n {{ description }}\n </p>\n @if (showField) {\n <input class=\"snackbar__input\" type=\"text\" [placeholder]=\"fieldPlaceholder\" />\n }\n @if (showButton) {\n <lib-status-button\n label={{statusButtonInputs?.label}}\n [status]=\"status\"\n leftIcon={{statusButtonInputs?.leftIcon}}\n rightIcon={{statusButtonInputs?.rightIcon}}\n [hideLeftIcon]=\"statusButtonInputs?.hideLeftIcon\"\n [hideRightIcon]=\"statusButtonInputs?.hideRightIcon\"\n [clearVariant]=\"statusButtonInputs?.clearVariant\"\n (click)=\"close(true)\"\n ></lib-status-button>\n\n }\n </div>\n <button \n type=\"button\"\n (click)=\"close()\"\n class=\"snackbar__close\"\n aria-label=\"Dismiss\"\n [style.visibility]=\"showClose ? 'visible' : 'hidden'\"\n >\n \u00D7\n </button>\n @if (showProgressBar) {\n <div class=\"snackbar__progress\">\n <div class=\"snackbar__progress-fill\"></div>\n </div>\n }\n </section>\n}\n", styles: [":root{--border-radius-md: 4px;--colors-border-primary: #d0d0d0;--colors-surface-primary: white;--colors-border-information: #457fa6;--colors-surface-information: #ecf2f6;--colors-border-success: #3ba35a;--colors-surface-success: #ebf6ee;--colors-border-warning: #d1c844;--colors-surface-warning: #faf9ec;--colors-border-error: #c73e3d;--colors-surface-error: #f9ecec}.snackbar{--snackbar-border-color: var(--colors-border-primary);--snackbar-bg: var(--colors-surface-primary);--snackbar-text: #141414;--snackbar-title-color: var(--snackbar-text);--snackbar-icon-bg: #e5edf8;--snackbar-accent: #0047ba;--snackbar-input-border: var(--snackbar-border-color);--snackbar-progress: var(--snackbar-accent);display:flex;width:16.40625rem;padding:.78125rem .625rem;justify-content:space-between;align-items:flex-start;gap:.15625rem;position:relative;border-radius:var(--border-radius-md, 4px);border:1px solid var(--snackbar-border-color);background:var(--snackbar-bg);box-shadow:1px 1px 4px #00000040;color:var(--snackbar-text)}.snackbar__left{display:grid;gap:.3125rem;flex:1 1 auto}.snackbar__left>.snackbar__title-row~*{margin-left:var(--snackbar-right-gutter, 1.85rem)}.snackbar__title-row{display:flex;align-items:center;gap:.15625rem}.snackbar__title{margin:0;font-weight:400;font-size:.75rem;line-height:1.2;color:var(--snackbar-title-color)}.snackbar__title-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em}.snackbar__title-icon.has-icon{border-radius:50%;color:var(--snackbar-accent)}.snackbar__icon{font-weight:700;font-size:.625rem;line-height:1}.snackbar__desc{margin:0;opacity:.9}.snackbar__input{width:100%;max-width:100%;box-sizing:border-box;padding:.5em;border-radius:4px;border:1px solid var(--snackbar-input-border);background:#fff;color:inherit}.snackbar__close{margin-left:.5em;border:0;background:transparent;color:inherit;opacity:.7;font-size:9375rem;padding:.15625rem;line-height:1;cursor:pointer}.snackbar__progress{position:absolute;left:0;right:0;bottom:-1px;height:4px;overflow:hidden;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.snackbar__progress-fill{height:100%;width:0%;background:var(--snackbar-progress);animation:fill var(--snackbar-progress-duration, 4s) linear forwards}@keyframes fill{to{width:100%}}.snackbar.is-default{--snackbar-border-color: var(--colors-border-primary, #d0d0d0);--snackbar-bg: var(--colors-surface-primary, white);--snackbar-text: #141414;--snackbar-title-color: #003995;--snackbar-icon-bg: #e5edf8;--snackbar-accent: #003995;--snackbar-input-border: #d0d0d0;--snackbar-progress: #003995}.snackbar.is-info{--snackbar-border-color: var(--colors-border-information, #457fa6);--snackbar-bg: var(--colors-surface-information, #ecf2f6);--snackbar-text: #24495c;--snackbar-title-color: #24495c;--snackbar-icon-bg: #a2bfd3;--snackbar-accent: #306a88;--snackbar-input-border: #a2bfd3;--snackbar-progress: #306a88}.snackbar.is-success{--snackbar-border-color: var(--colors-border-success, #3ba35a);--snackbar-bg: var(--colors-surface-success, #ebf6ee);--snackbar-text: #20522e;--snackbar-title-color: #20522e;--snackbar-icon-bg: #9dd1ac;--snackbar-accent: #2e7d3f;--snackbar-input-border: #9dd1ac;--snackbar-progress: #2e7d3f}.snackbar.is-warning{--snackbar-border-color: var(--colors-border-warning, #d1c844);--snackbar-bg: var(--colors-surface-warning, #faf9ec);--snackbar-text: #514a18;--snackbar-title-color: #514a18;--snackbar-icon-bg: #e8e3a1;--snackbar-accent: #7a6f13;--snackbar-input-border: #d1c844;--snackbar-progress: #7a6f13}.snackbar.is-error{--snackbar-border-color: var(--colors-border-error, #c73e3d);--snackbar-bg: var(--colors-surface-error, #f9ecec);--snackbar-text: #611a1a;--snackbar-title-color: #611a1a;--snackbar-icon-bg: #e39e9e;--snackbar-accent: #912525;--snackbar-input-border: #c73e3d;--snackbar-progress: #912525}.snackbar{position:fixed;top:24px;right:24px;z-index:1000;transform:translate(120%);transition:transform .6s ease}.snackbar.is-open{transform:translate(0)}lib-status-button{--status-button-padding: .25em .5em .25em 0}\n"] }]
|
|
101
101
|
}], propDecorators: { purpose: [{
|
|
102
102
|
type: Input
|
|
103
103
|
}], title: [{
|
|
@@ -148,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
148
148
|
}], buttonClicked: [{
|
|
149
149
|
type: Output
|
|
150
150
|
}] } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NuYWNrYmFyL3NuYWNrYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zbmFja2Jhci9zbmFja2Jhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUtOLGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNILHFCQUFxQixHQUd4QixNQUFNLDBDQUEwQyxDQUFDOztBQXlCbEQsTUFBTSxrQkFBa0IsR0FBb0M7SUFDeEQsT0FBTyxFQUFFLE1BQU07SUFDZixJQUFJLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEtBQUssRUFBRSxPQUFPO0lBQ2QsT0FBTyxFQUFFLFNBQVM7Q0FDckIsQ0FBQztBQVNGLE1BQU0sT0FBTyxpQkFBaUI7SUFQOUI7UUFRYSxZQUFPLEdBQW9CLFNBQVMsQ0FBQztRQUNyQyxVQUFLLEdBQUcsZ0JBQWdCLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxhQUFhLENBQUM7UUFDNUIscUJBQWdCLEdBQUcsYUFBYSxDQUFDO1FBQ2pDLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFDSSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixlQUFVLEdBQUcsSUFB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QUNFLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsT0FBTztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDN0IsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxDQUFDO3NCQUFULEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgU3RhdHVzQnV0dG9uQ29tcG9uZW50LFxuICAgIFN0YXR1cyxcbiAgICBTdGF0dXNCdXR0b25JbnB1dHMsXG59IGZyb20gJy4uL3N0YXR1cy1idXR0b24vc3RhdHVzLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBTbmFja2JhclB1cnBvc2UgPSAnZGVmYXVsdCcgfCAnaW5mbycgfCAnc3VjY2VzcycgfCAnZXJyb3InIHwgJ3dhcm5pbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNuYWNrYmFySW5wdXRzIHtcbiAgICBwdXJwb3NlPzogU25hY2tiYXJQdXJwb3NlO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHRpdGxlSWNvbj86IHN0cmluZztcbiAgICBmaWVsZFBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAgc2hvd1RpdGxlSWNvbj86IGJvb2xlYW47XG4gICAgdGl0bGVJY29uRmlsbGVkPzogYm9vbGVhbjtcbiAgICBzaG93Q2xvc2U/OiBib29sZWFuO1xuICAgIHNob3dQcm9ncmVzc0Jhcj86IGJvb2xlYW47XG4gICAgc2hvd0ZpZWxkPzogYm9vbGVhbjtcbiAgICBzaG93QnV0dG9uPzogYm9vbGVhbjtcbiAgICBwcm9ncmVzc01zPzogbnVtYmVyO1xuICAgIGF1dG9EaXNtaXNzPzogYm9vbGVhbjtcbiAgICB5PzogbnVtYmVyO1xuICAgIHJpZ2h0PzogbnVtYmVyO1xuICAgIHpJbmRleD86IG51bWJlcjtcbiAgICBzdGF0dXNCdXR0b25JbnB1dHM/OiBTdGF0dXNCdXR0b25JbnB1dHM7XG59XG5cbmNvbnN0IHB1cnBvc2VUb1N0YXR1c01hcDogUmVjb3JkPFNuYWNrYmFyUHVycG9zZSwgU3RhdHVzPiA9IHtcbiAgICBkZWZhdWx0OiAnaW5mbycsXG4gICAgaW5mbzogJ2luZm8nLFxuICAgIHN1Y2Nlc3M6ICdzdWNjZXNzJyxcbiAgICBlcnJvcjogJ2Vycm9yJyxcbiAgICB3YXJuaW5nOiAnd2FybmluZycsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1zbmFja2JhcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgU3RhdHVzQnV0dG9uQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc25hY2tiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zbmFja2Jhci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFNuYWNrYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgcHVycG9zZTogU25hY2tiYXJQdXJwb3NlID0gJ2RlZmF1bHQnO1xuICAgIEBJbnB1dCgpIHRpdGxlID0gJ1NuYWNrYmFyIFRpdGxlJztcbiAgICBASW5wdXQoKSBkZXNjcmlwdGlvbiA9ICdMb3JlbSBpcHN1bSc7XG4gICAgQElucHV0KCkgZmllbGRQbGFjZWhvbGRlciA9ICdQbGFjZWhvbGRlcic7XG4gICAgQElucHV0KCkgdGl0bGVJY29uOiBzdHJpbmcgPSAnaW5mbyc7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dUaXRsZUljb24gPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aXRsZUljb25GaWxsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0Nsb3NlID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd1Byb2dyZXNzQmFyID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0ZpZWxkID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0J1dHRvbiA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGF1dG9EaXNtaXNzID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KCkgcHJvZ3Jlc3NNcyA9IDUwMDA7XG4gICAgQElucHV0KCkgeSA9IDI0O1xuICAgIEBJbnB1dCgpIHN0YXR1c0J1dHRvbklucHV0cz86IFN0YXR1c0J1dHRvbklucHV0cztcblxuICAgIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBpc09wZW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGlzbWlzc1RpbWVyPzogbnVtYmVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgRVhJVF9NUyA9IDMwMDtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52aXNpYmxlKSB7XG4gICAgICAgICAgICAvLyBlbnRlciBvbiBuZXh0IHRpY2tcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuaXNPcGVuID0gdHJ1ZSksIDApO1xuICAgICAgICAgICAgdGhpcy5zdGFydERpc21pc3NUaW1lcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ3Zpc2libGUnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIC8vIHdoZW4gcGFyZW50IHRvZ2dsZXMgdmlzaWJsZVxuICAgICAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIC8vIGJlY29taW5nIHZpc2libGUgLT4gb3BlbiArIChyZSlzdGFydCB0aW1lclxuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiAodGhpcy5pc09wZW4gPSB0cnVlKSwgMCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydERpc21pc3NUaW1lcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBiZWNvbWluZyBoaWRkZW4gLT4gc3RvcCB0aW1lcnMgYW5kIGVuc3VyZSBjbG9zZWQgc3RhdGVcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRGlzbWlzc1RpbWVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyRGlzbWlzc1RpbWVyKCk7XG4gICAgfVxuXG4gICAgLy8gdXNlZCBieSB0aGUgw5cgYnV0dG9uLCBkb25lIGJ1dHRvbiwgYW5kIGF1dG8tZGlzbWlzc1xuICAgIGNsb3NlKGVtaXRCdXR0b25DbGlja2VkOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT3BlbiAmJiAhdGhpcy52aXNpYmxlKSByZXR1cm47XG4gICAgICAgIHRoaXMuY2xlYXJEaXNtaXNzVGltZXIoKTtcbiAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTsgLy8gdHJpZ2dlcnMgZXhpdCB0cmFuc2l0aW9uXG5cbiAgICAgICAgLy8gYWZ0ZXIgZXhpdCBhbmltYXRpb24sIGhpZGUgKyBub3RpZnlcbiAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbWl0QnV0dG9uQ2xpY2tlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uQ2xpY2tlZC5lbWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgICAgIH0sIHRoaXMuRVhJVF9NUyk7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXR1cygpOiBTdGF0dXMge1xuICAgICAgICByZXR1cm4gcHVycG9zZVRvU3RhdHVzTWFwW3RoaXMucHVycG9zZV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydERpc21pc3NUaW1lcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dG9EaXNtaXNzKSByZXR1cm47XG4gICAgICAgIHRoaXMuY2xlYXJEaXNtaXNzVGltZXIoKTtcbiAgICAgICAgdGhpcy5kaXNtaXNzVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIHRoaXMucHJvZ3Jlc3NNcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckRpc21pc3NUaW1lcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzbWlzc1RpbWVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5kaXNtaXNzVGltZXIpO1xuICAgICAgICAgICAgdGhpcy5kaXNtaXNzVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKHZpc2libGUpIHtcbiAgICA8c2VjdGlvblxuICAgICAgICBjbGFzcz1cInNuYWNrYmFyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2lzLWRlZmF1bHQnOiBwdXJwb3NlID09PSAnZGVmYXVsdCcsXG4gICAgICAgICAgICAnaXMtaW5mbyc6IHB1cnBvc2UgPT09ICdpbmZvJyxcbiAgICAgICAgICAgICdpcy1zdWNjZXNzJzogcHVycG9zZSA9PT0gJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgJ2lzLWVycm9yJzogcHVycG9zZSA9PT0gJ2Vycm9yJyxcbiAgICAgICAgICAgICdpcy13YXJuaW5nJzogcHVycG9zZSA9PT0gJ3dhcm5pbmcnLFxuICAgICAgICAgICAgJ2lzLW9wZW4nOiBpc09wZW4sXG4gICAgICAgIH1cIlxuICAgICAgICByb2xlPVwic3RhdHVzXCJcbiAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgW3N0eWxlLi0tc25hY2tiYXItcHJvZ3Jlc3MtZHVyYXRpb25dPVwicHJvZ3Jlc3NNcyArICdtcydcIlxuICAgICAgICBbc3R5bGUudG9wLnB4XT1cInlcIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNuYWNrYmFyX19sZWZ0XCI+XG4gICAgICAgICAgICBAaWYoc2hvd1RpdGxlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNuYWNrYmFyX190aXRsZS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NuYWNrYmFyX190aXRsZS1pY29uJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFzLWljb24nOiBzaG93VGl0bGUgJiYgc2hvd1RpdGxlSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dUaXRsZSAmJiBzaG93VGl0bGVJY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwidGl0bGVJY29uRmlsbGVkID8gJ21hdGVyaWFsLWljb25zJyA6ICdtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNuYWNrYmFyLXRpdGxlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGl0bGVJY29uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd1RpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJzbmFja2Jhcl9fdGl0bGVcIj57eyB0aXRsZSB9fTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxwIGNsYXNzPVwic25hY2tiYXJfX2Rlc2NcIj5cbiAgICAgICAgICAgICAgICB7eyBkZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgQGlmIChzaG93RmllbGQpIHtcbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJzbmFja2Jhcl9faW5wdXRcIiB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJmaWVsZFBsYWNlaG9sZGVyXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc2hvd0J1dHRvbikge1xuICAgICAgICAgICAgICAgIDxsaWItc3RhdHVzLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBsYWJlbD17e3N0YXR1c0J1dHRvbklucHV0cz8ubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgIGxlZnRJY29uPXt7c3RhdHVzQnV0dG9uSW5wdXRzPy5sZWZ0SWNvbn19XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0SWNvbj17e3N0YXR1c0J1dHRvbklucHV0cz8ucmlnaHRJY29ufX1cbiAgICAgICAgICAgICAgICAgICAgW2hpZGVMZWZ0SWNvbl09XCJzdGF0dXNCdXR0b25JbnB1dHM/LmhpZGVMZWZ0SWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRlUmlnaHRJY29uXT1cInN0YXR1c0J1dHRvbklucHV0cz8uaGlkZVJpZ2h0SWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGVhclZhcmlhbnRdPVwic3RhdHVzQnV0dG9uSW5wdXRzPy5jbGVhclZhcmlhbnRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UodHJ1ZSlcIlxuICAgICAgICAgICAgICAgID48L2xpYi1zdGF0dXMtYnV0dG9uPlxuXG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInNuYWNrYmFyX19jbG9zZVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGlzbWlzc1wiXG4gICAgICAgICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJzaG93Q2xvc2UgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIMOXXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICBAaWYgKHNob3dQcm9ncmVzc0Jhcikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNuYWNrYmFyX19wcm9ncmVzc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFja2Jhcl9fcHJvZ3Jlc3MtZmlsbFwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L3NlY3Rpb24+XG59XG4iXX0=
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NuYWNrYmFyL3NuYWNrYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zbmFja2Jhci9zbmFja2Jhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUtOLGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNILHFCQUFxQixHQUd4QixNQUFNLDBDQUEwQyxDQUFDOztBQXlCbEQsTUFBTSxrQkFBa0IsR0FBb0M7SUFDeEQsT0FBTyxFQUFFLE1BQU07SUFDZixJQUFJLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEtBQUssRUFBRSxPQUFPO0lBQ2QsT0FBTyxFQUFFLFNBQVM7Q0FDckIsQ0FBQztBQVNGLE1BQU0sT0FBTyxpQkFBaUI7SUFQOUI7UUFRYSxZQUFPLEdBQW9CLFNBQVMsQ0FBQztRQUNyQyxVQUFLLEdBQUcsZ0JBQWdCLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxhQUFhLENBQUM7UUFDNUIscUJBQWdCLEdBQUcsYUFBYSxDQUFDO1FBQ2pDLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFDSSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixlQUFVLEdBQUcsSUFB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QUNFLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsT0FBTztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDN0IsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxDQUFDO3NCQUFULEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgU3RhdHVzQnV0dG9uQ29tcG9uZW50LFxuICAgIFN0YXR1cyxcbiAgICBTdGF0dXNCdXR0b25JbnB1dHMsXG59IGZyb20gJy4uL3N0YXR1cy1idXR0b24vc3RhdHVzLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBTbmFja2JhclB1cnBvc2UgPSAnZGVmYXVsdCcgfCAnaW5mbycgfCAnc3VjY2VzcycgfCAnZXJyb3InIHwgJ3dhcm5pbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNuYWNrYmFySW5wdXRzIHtcbiAgICBwdXJwb3NlPzogU25hY2tiYXJQdXJwb3NlO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHRpdGxlSWNvbj86IHN0cmluZztcbiAgICBmaWVsZFBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAgc2hvd1RpdGxlSWNvbj86IGJvb2xlYW47XG4gICAgdGl0bGVJY29uRmlsbGVkPzogYm9vbGVhbjtcbiAgICBzaG93Q2xvc2U/OiBib29sZWFuO1xuICAgIHNob3dQcm9ncmVzc0Jhcj86IGJvb2xlYW47XG4gICAgc2hvd0ZpZWxkPzogYm9vbGVhbjtcbiAgICBzaG93QnV0dG9uPzogYm9vbGVhbjtcbiAgICBwcm9ncmVzc01zPzogbnVtYmVyO1xuICAgIGF1dG9EaXNtaXNzPzogYm9vbGVhbjtcbiAgICB5PzogbnVtYmVyO1xuICAgIHJpZ2h0PzogbnVtYmVyO1xuICAgIHpJbmRleD86IG51bWJlcjtcbiAgICBzdGF0dXNCdXR0b25JbnB1dHM/OiBTdGF0dXNCdXR0b25JbnB1dHM7XG59XG5cbmNvbnN0IHB1cnBvc2VUb1N0YXR1c01hcDogUmVjb3JkPFNuYWNrYmFyUHVycG9zZSwgU3RhdHVzPiA9IHtcbiAgICBkZWZhdWx0OiAnaW5mbycsXG4gICAgaW5mbzogJ2luZm8nLFxuICAgIHN1Y2Nlc3M6ICdzdWNjZXNzJyxcbiAgICBlcnJvcjogJ2Vycm9yJyxcbiAgICB3YXJuaW5nOiAnd2FybmluZycsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1zbmFja2JhcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgU3RhdHVzQnV0dG9uQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc25hY2tiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zbmFja2Jhci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFNuYWNrYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgcHVycG9zZTogU25hY2tiYXJQdXJwb3NlID0gJ2RlZmF1bHQnO1xuICAgIEBJbnB1dCgpIHRpdGxlID0gJ1NuYWNrYmFyIFRpdGxlJztcbiAgICBASW5wdXQoKSBkZXNjcmlwdGlvbiA9ICdMb3JlbSBpcHN1bSc7XG4gICAgQElucHV0KCkgZmllbGRQbGFjZWhvbGRlciA9ICdQbGFjZWhvbGRlcic7XG4gICAgQElucHV0KCkgdGl0bGVJY29uOiBzdHJpbmcgPSAnaW5mbyc7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dUaXRsZUljb24gPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aXRsZUljb25GaWxsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0Nsb3NlID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd1Byb2dyZXNzQmFyID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0ZpZWxkID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0J1dHRvbiA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGF1dG9EaXNtaXNzID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KCkgcHJvZ3Jlc3NNcyA9IDUwMDA7XG4gICAgQElucHV0KCkgeSA9IDI0O1xuICAgIEBJbnB1dCgpIHN0YXR1c0J1dHRvbklucHV0cz86IFN0YXR1c0J1dHRvbklucHV0cztcblxuICAgIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBpc09wZW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGlzbWlzc1RpbWVyPzogbnVtYmVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgRVhJVF9NUyA9IDMwMDtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52aXNpYmxlKSB7XG4gICAgICAgICAgICAvLyBlbnRlciBvbiBuZXh0IHRpY2tcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuaXNPcGVuID0gdHJ1ZSksIDApO1xuICAgICAgICAgICAgdGhpcy5zdGFydERpc21pc3NUaW1lcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ3Zpc2libGUnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIC8vIHdoZW4gcGFyZW50IHRvZ2dsZXMgdmlzaWJsZVxuICAgICAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIC8vIGJlY29taW5nIHZpc2libGUgLT4gb3BlbiArIChyZSlzdGFydCB0aW1lclxuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiAodGhpcy5pc09wZW4gPSB0cnVlKSwgMCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydERpc21pc3NUaW1lcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBiZWNvbWluZyBoaWRkZW4gLT4gc3RvcCB0aW1lcnMgYW5kIGVuc3VyZSBjbG9zZWQgc3RhdGVcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRGlzbWlzc1RpbWVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyRGlzbWlzc1RpbWVyKCk7XG4gICAgfVxuXG4gICAgLy8gdXNlZCBieSB0aGUgw5cgYnV0dG9uLCBkb25lIGJ1dHRvbiwgYW5kIGF1dG8tZGlzbWlzc1xuICAgIGNsb3NlKGVtaXRCdXR0b25DbGlja2VkOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT3BlbiAmJiAhdGhpcy52aXNpYmxlKSByZXR1cm47XG4gICAgICAgIHRoaXMuY2xlYXJEaXNtaXNzVGltZXIoKTtcbiAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTsgLy8gdHJpZ2dlcnMgZXhpdCB0cmFuc2l0aW9uXG5cbiAgICAgICAgLy8gYWZ0ZXIgZXhpdCBhbmltYXRpb24sIGhpZGUgKyBub3RpZnlcbiAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbWl0QnV0dG9uQ2xpY2tlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uQ2xpY2tlZC5lbWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgICAgIH0sIHRoaXMuRVhJVF9NUyk7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXR1cygpOiBTdGF0dXMge1xuICAgICAgICByZXR1cm4gcHVycG9zZVRvU3RhdHVzTWFwW3RoaXMucHVycG9zZV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydERpc21pc3NUaW1lcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dG9EaXNtaXNzKSByZXR1cm47XG4gICAgICAgIHRoaXMuY2xlYXJEaXNtaXNzVGltZXIoKTtcbiAgICAgICAgdGhpcy5kaXNtaXNzVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIHRoaXMucHJvZ3Jlc3NNcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckRpc21pc3NUaW1lcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzbWlzc1RpbWVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5kaXNtaXNzVGltZXIpO1xuICAgICAgICAgICAgdGhpcy5kaXNtaXNzVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKHZpc2libGUpIHtcbiAgICA8c2VjdGlvblxuICAgICAgICBjbGFzcz1cInNuYWNrYmFyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2lzLWRlZmF1bHQnOiBwdXJwb3NlID09PSAnZGVmYXVsdCcsXG4gICAgICAgICAgICAnaXMtaW5mbyc6IHB1cnBvc2UgPT09ICdpbmZvJyxcbiAgICAgICAgICAgICdpcy1zdWNjZXNzJzogcHVycG9zZSA9PT0gJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgJ2lzLWVycm9yJzogcHVycG9zZSA9PT0gJ2Vycm9yJyxcbiAgICAgICAgICAgICdpcy13YXJuaW5nJzogcHVycG9zZSA9PT0gJ3dhcm5pbmcnLFxuICAgICAgICAgICAgJ2lzLW9wZW4nOiBpc09wZW4sXG4gICAgICAgIH1cIlxuICAgICAgICByb2xlPVwic3RhdHVzXCJcbiAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgW3N0eWxlLi0tc25hY2tiYXItcHJvZ3Jlc3MtZHVyYXRpb25dPVwicHJvZ3Jlc3NNcyArICdtcydcIlxuICAgICAgICBbc3R5bGUudG9wLnB4XT1cInlcIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNuYWNrYmFyX19sZWZ0XCI+XG4gICAgICAgICAgICBAaWYoc2hvd1RpdGxlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNuYWNrYmFyX190aXRsZS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NuYWNrYmFyX190aXRsZS1pY29uJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFzLWljb24nOiBzaG93VGl0bGUgJiYgc2hvd1RpdGxlSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dUaXRsZSAmJiBzaG93VGl0bGVJY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwidGl0bGVJY29uRmlsbGVkID8gJ21hdGVyaWFsLWljb25zJyA6ICdtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNuYWNrYmFyLXRpdGxlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGl0bGVJY29uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd1RpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJzbmFja2Jhcl9fdGl0bGVcIj57eyB0aXRsZSB9fTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxwIGNsYXNzPVwic25hY2tiYXJfX2Rlc2NcIj5cbiAgICAgICAgICAgICAgICB7eyBkZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgQGlmIChzaG93RmllbGQpIHtcbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJzbmFja2Jhcl9faW5wdXRcIiB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJmaWVsZFBsYWNlaG9sZGVyXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc2hvd0J1dHRvbikge1xuICAgICAgICAgICAgICAgIDxsaWItc3RhdHVzLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBsYWJlbD17e3N0YXR1c0J1dHRvbklucHV0cz8ubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgIGxlZnRJY29uPXt7c3RhdHVzQnV0dG9uSW5wdXRzPy5sZWZ0SWNvbn19XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0SWNvbj17e3N0YXR1c0J1dHRvbklucHV0cz8ucmlnaHRJY29ufX1cbiAgICAgICAgICAgICAgICAgICAgW2hpZGVMZWZ0SWNvbl09XCJzdGF0dXNCdXR0b25JbnB1dHM/LmhpZGVMZWZ0SWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRlUmlnaHRJY29uXT1cInN0YXR1c0J1dHRvbklucHV0cz8uaGlkZVJpZ2h0SWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGVhclZhcmlhbnRdPVwic3RhdHVzQnV0dG9uSW5wdXRzPy5jbGVhclZhcmlhbnRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UodHJ1ZSlcIlxuICAgICAgICAgICAgICAgID48L2xpYi1zdGF0dXMtYnV0dG9uPlxuXG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInNuYWNrYmFyX19jbG9zZVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGlzbWlzc1wiXG4gICAgICAgICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJzaG93Q2xvc2UgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIMOXXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICBAaWYgKHNob3dQcm9ncmVzc0Jhcikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNuYWNrYmFyX19wcm9ncmVzc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFja2Jhcl9fcHJvZ3Jlc3MtZmlsbFwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L3NlY3Rpb24+XG59XG4iXX0=
|