@resolveio/client-lib-core 1.6.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/account-manager.service.mjs +3 -3
- package/esm2020/lib/auth/auth-guard.service.mjs +90 -139
- package/esm2020/lib/auth/auth-permissions.service.mjs +3 -3
- package/esm2020/lib/auth/auth.service.mjs +7 -7
- package/esm2020/lib/auth/auth365.component.mjs +3 -3
- package/esm2020/lib/auth/can-deactivate-guard.service.mjs +4 -13
- package/esm2020/lib/auth/enroll.component.mjs +5 -5
- package/esm2020/lib/auth/forgot-password.component.mjs +5 -5
- package/esm2020/lib/core.component.mjs +8 -8
- package/esm2020/lib/core.module.mjs +5 -11
- package/esm2020/lib/core.service.mjs +3 -3
- package/esm2020/lib/directive/focus.mjs +3 -3
- package/esm2020/lib/directive/scroll.mjs +3 -3
- package/esm2020/lib/home/home.component.mjs +3 -3
- package/esm2020/lib/logger/logger.component.mjs +5 -5
- package/esm2020/lib/models/permission.model.mjs +1 -1
- package/esm2020/lib/models/user.model.mjs +1 -1
- package/esm2020/lib/offline-manager.service.mjs +3 -3
- package/esm2020/lib/pipes/domsanitizor.pipe.mjs +3 -3
- package/esm2020/lib/pipes/filter.pipe.mjs +6 -6
- package/esm2020/lib/pipes/json-parse.pipe.mjs +3 -3
- package/esm2020/lib/pipes/minus-currency.pipe.mjs +3 -3
- package/esm2020/lib/pipes/phone.pipe.mjs +3 -3
- package/esm2020/lib/pipes/pipe.module.mjs +4 -4
- package/esm2020/lib/pipes/reverse-list.pipe.mjs +3 -3
- package/esm2020/lib/pipes/titlecase.pipe.mjs +3 -3
- package/esm2020/lib/report-builder.permission.mjs +5 -5
- package/esm2020/lib/resolveio-class.mjs +3 -3
- package/esm2020/lib/shared/shared.module.mjs +4 -4
- package/esm2020/lib/socket-manager.service.mjs +75 -59
- package/esm2020/lib/socket.service.mjs +9 -74
- package/esm2020/lib/super-admin.permission.mjs +4 -4
- package/esm2020/lib/support-ticket/detail/support-ticket-detail.component.mjs +5 -5
- package/esm2020/lib/support-ticket/edit/support-ticket-edit.component.mjs +5 -5
- package/esm2020/lib/support-ticket/list/support-ticket-list.component.mjs +3 -3
- package/esm2020/lib/support-ticket/new/support-ticket-new.component.mjs +5 -5
- package/esm2020/lib/support-ticket/support-ticket.component.mjs +3 -3
- package/esm2020/lib/support-ticket/support-ticket.module.mjs +4 -4
- package/esm2020/lib/support-ticket/support-ticket.service.mjs +3 -3
- package/esm2020/lib/token-manager.service.mjs +3 -3
- package/esm2020/lib/user-settings/settings/users-settings.component.mjs +5 -5
- package/esm2020/lib/user-settings/user-settings.component.mjs +3 -3
- package/esm2020/lib/user-settings/user-settings.module.mjs +4 -4
- package/esm2020/lib/user-settings/user-settings.permission.mjs +2 -2
- package/esm2020/lib/user-settings/user-settings.service.mjs +3 -3
- package/esm2020/lib/util/aws.service.mjs +3 -3
- package/esm2020/lib/util/common.helper.mjs +35 -28
- package/esm2020/lib/util/validation.service.mjs +4 -12
- package/esm2020/lib/util/window-resize.service.mjs +3 -3
- package/esm2020/lib/util/window.service.mjs +3 -3
- package/esm2020/lib/widgets/alert/alert.service.mjs +5 -7
- package/esm2020/lib/widgets/collapse-table/collapse-table.component.mjs +5 -5
- package/esm2020/lib/widgets/collapse-table/collapse-table.module.mjs +4 -4
- package/esm2020/lib/widgets/data-table/data-table.component.mjs +5 -5
- package/esm2020/lib/widgets/data-table/data-table.module.mjs +4 -4
- package/esm2020/lib/widgets/date-shortcut/date-shortcut.component.mjs +3 -3
- package/esm2020/lib/widgets/date-shortcut/date-shortcut.module.mjs +4 -4
- package/esm2020/lib/widgets/dialog/dialog.confirm.content.mjs +3 -3
- package/esm2020/lib/widgets/dialog/dialog.error.content.mjs +3 -3
- package/esm2020/lib/widgets/dialog/dialog.input.content.mjs +3 -3
- package/esm2020/lib/widgets/dialog/dialog.login.content.mjs +3 -3
- package/esm2020/lib/widgets/dialog/dialog.notify.content.mjs +3 -3
- package/esm2020/lib/widgets/dialog/dialog.register.content.mjs +3 -3
- package/esm2020/lib/widgets/dialog/dialog.select-array-objs.content.mjs +3 -3
- package/esm2020/lib/widgets/dialog/dialog.select-array.content.mjs +3 -3
- package/esm2020/lib/widgets/dialog/dialog.select-data-labels.content.mjs +3 -3
- package/esm2020/lib/widgets/dialog/dialog.select-datetime.content.mjs +9 -13
- package/esm2020/lib/widgets/dialog/dialog.select-with-buttons-url.content.mjs +3 -3
- package/esm2020/lib/widgets/dialog/dialog.service.mjs +3 -3
- package/esm2020/lib/widgets/file/file-upload.component.mjs +5 -5
- package/esm2020/lib/widgets/file/file-upload.module.mjs +4 -4
- package/esm2020/lib/widgets/form-button/form-button.component.mjs +4 -4
- package/esm2020/lib/widgets/form-button/form-button.module.mjs +4 -4
- package/esm2020/lib/widgets/navbar-main/navbar-main.component.mjs +5 -5
- package/esm2020/lib/widgets/navbar-module/navbar-module.component.mjs +57 -30
- package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +3 -3
- package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +4 -4
- package/esm2020/lib/widgets/scheduler/scheduler.component.mjs +3 -3
- package/esm2020/lib/widgets/scheduler/scheduler.module.mjs +4 -4
- package/esm2020/lib/widgets/sort-table/sort-table-header.component.mjs +3 -3
- package/esm2020/lib/widgets/sort-table/sort-table-ngfor.component.mjs +3 -3
- package/esm2020/lib/widgets/sort-table/sort-table.directive.mjs +3 -3
- package/esm2020/lib/widgets/sort-table/sort-table.module.mjs +4 -4
- package/esm2020/lib/widgets/user-role/user-role.component.mjs +3 -3
- package/esm2020/lib/widgets/user-role/user-role.module.mjs +4 -4
- package/fesm2015/resolveio-client-lib-core.mjs +556 -636
- package/fesm2015/resolveio-client-lib-core.mjs.map +1 -1
- package/fesm2020/resolveio-client-lib-core.mjs +556 -636
- package/fesm2020/resolveio-client-lib-core.mjs.map +1 -1
- package/lib/auth/auth-guard.service.d.ts +2 -26
- package/lib/auth/auth365.component.d.ts +1 -1
- package/lib/auth/can-deactivate-guard.service.d.ts +1 -11
- package/lib/auth/enroll.component.d.ts +1 -1
- package/lib/auth/forgot-password.component.d.ts +1 -1
- package/lib/core.component.d.ts +1 -1
- package/lib/directive/focus.d.ts +1 -1
- package/lib/directive/scroll.d.ts +1 -1
- package/lib/home/home.component.d.ts +1 -1
- package/lib/logger/logger.component.d.ts +1 -1
- package/lib/models/permission.model.d.ts +1 -2
- package/lib/models/user.model.d.ts +1 -1
- package/lib/socket-manager.service.d.ts +0 -1
- package/lib/socket.service.d.ts +3 -8
- package/lib/support-ticket/detail/support-ticket-detail.component.d.ts +1 -1
- package/lib/support-ticket/edit/support-ticket-edit.component.d.ts +1 -1
- package/lib/support-ticket/list/support-ticket-list.component.d.ts +1 -1
- package/lib/support-ticket/new/support-ticket-new.component.d.ts +1 -1
- package/lib/support-ticket/support-ticket.component.d.ts +1 -1
- package/lib/user-settings/settings/users-settings.component.d.ts +1 -1
- package/lib/user-settings/user-settings.component.d.ts +1 -1
- package/lib/util/common.helper.d.ts +1 -1
- package/lib/util/validation.service.d.ts +0 -3
- package/lib/widgets/collapse-table/collapse-table.component.d.ts +1 -1
- package/lib/widgets/data-table/data-table.component.d.ts +1 -1
- package/lib/widgets/date-shortcut/date-shortcut.component.d.ts +1 -1
- package/lib/widgets/dialog/dialog.confirm.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.error.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.input.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.login.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.notify.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.register.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.select-array-objs.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.select-array.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.select-data-labels.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.select-datetime.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.select-with-buttons-url.content.d.ts +1 -1
- package/lib/widgets/file/file-upload.component.d.ts +1 -1
- package/lib/widgets/form-button/form-button.component.d.ts +1 -1
- package/lib/widgets/navbar-main/navbar-main.component.d.ts +1 -1
- package/lib/widgets/navbar-module/navbar-module.component.d.ts +1 -1
- package/lib/widgets/responsive-button-group/responsive-button-group.component.d.ts +1 -1
- package/lib/widgets/scheduler/scheduler.component.d.ts +1 -1
- package/lib/widgets/sort-table/sort-table-header.component.d.ts +1 -1
- package/lib/widgets/sort-table/sort-table-ngfor.component.d.ts +1 -1
- package/lib/widgets/sort-table/sort-table.directive.d.ts +1 -1
- package/lib/widgets/user-role/user-role.component.d.ts +1 -1
- package/package.json +9 -9
|
@@ -189,11 +189,11 @@ export class NavbarMainComponent extends BaseComponent {
|
|
|
189
189
|
return window.innerWidth;
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
NavbarMainComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
193
|
-
NavbarMainComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
194
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
192
|
+
NavbarMainComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavbarMainComponent, deps: [{ token: i1.ProviderService }, { token: i2.AuthService }, { token: i3.DialogService }, { token: i4.CoreService }], target: i0.ɵɵFactoryTarget.Component });
|
|
193
|
+
NavbarMainComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NavbarMainComponent, selector: "navbar-main", inputs: { logo: "logo", navTabs: "navTabs", fontSize: "fontSize", publicProgram: "publicProgram" }, providers: [ProviderService], viewQueries: [{ propertyName: "scrollable", first: true, predicate: ["scrollable"], descendants: true, static: true }, { propertyName: "dropdowns", predicate: ["dropdowns"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<style>\n\t:root {\n --font-size: 12;\n }\n\n\t:host /deep/ * {\n\t\tfont-size: var(--font-size);\n\t}\n\n @media (max-width: 1200px) {\n .navbarMain a {\n font-size: 18px !important;\n }\n }\n @media (min-width: 1200px) {\n .scrollable-x {\n max-width: 60vw;\n overflow-x: auto;\n overflow-y: visible;\n align-items: center;\n }\n\n ::-webkit-scrollbar {\n display: none;\n }\n\n .verticalAlign {\n display: flex;\n align-items: center;\n }\n\n .dropdown {\n position: static;\n }\n }\n\n .navbar li {\n cursor: pointer;\n text-align: center;\n }\n\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: gray;\n }\n</style>\n\n<div class=\"row\">\n <nav class=\"navbar navbar-expand-xl navbar-dark bg-dark navbarMain\" style=\"width: 100%\">\n <a class=\"navbar-brand\" href=\"#\">\n <img [src]=\"logo\" style=\"width: auto; height: 36px;\" *ngIf=\"!isDemo\">\n </a>\n <button class=\"navbar-toggler\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\" aria-controls=\"navbarMainNav\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-collapse collapse\" id=\"navbarMainNav\">\n <ul class=\"navbar-nav\">\n <li class=\"nav-item\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\" *ngIf=\"!standardProgram\" [style.border-end]=\"getWindowWidth() > 1200 ? '1px solid white' : ''\">\n <a class=\"nav-link\" routerLink=\"home\" [class.disabled]=\"tourStarted ? true : null\" routerLinkActive=\"active\">Home</a>\n </li>\n </ul>\n <div *ngIf=\"hasScrolled()\" (mouseover)=\"startScrollRight()\" (mouseout)=\"stopScrollRight()\" (click)=\"scrollRightOnce()\">\n <i class=\"fa fa-arrow-left\" style=\"color: white; font-size: 20px\"></i>\n </div>\n <ul [ngClass]=\"['navbar-nav', 'scrollable-x']\" #scrollable detect-scroll (onScroll)=\"calculateDropdownsLeft()\">\n <ng-container *ngFor=\"let tab of navTabs; let i = index;\">\n <ng-container *ngIf=\"tab.type === 'link'\">\n <li class=\"nav-item\" *ngIf=\"(publicProgram || user) && isInRole(tab.links[0].role)\" data-bs-toggle=\"collapse\" [tourAnchor]=\"tab.tourAnchor\" data-bs-target=\"#navbarMainNav\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" [routerLink]=\"tab.links[0].routerLink\" routerLinkActive=\"active\">{{tab.links[0].label}}</a>\n </li>\n </ng-container>\n <ng-container *ngIf=\"tab.type === 'dropdown'\">\n <li #dropdowns class=\"nav-item dropdown\" *ngIf=\"(publicProgram || user) && isInOneRole(tab.roles)\">\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"tourStarted ? true : null\" id=\"navbarDropdownAsset\" role=\"button\" [tourAnchor]=\"tab.tourAnchor\" data-bs-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n {{tab.label}}\n </a>\n <div class=\"dropdown-menu bg-dark\" aria-labelledby=\"navbarDropdownAsset\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\" [style.left.px]=\"tab.left || 0\">\n <ng-container *ngFor=\"let link of tab.links\">\n <a class=\"dropdown-item nav-link\" *ngIf=\"(publicProgram || user) && isInRole(link.role)\" [routerLink]=\"link.routerLink\">{{link.label}}</a>\n </ng-container>\n </div>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n <div *ngIf=\"hasMoreScroll()\" (mouseover)=\"startScrollLeft()\" (mouseout)=\"stopScrollLeft()\" (click)=\"scrollLeftOnce()\">\n <i class=\"fa fa-arrow-right\" style=\"color: white; font-size: 20px\"></i>\n </div>\n <hr />\n <ul [ngClass]=\"['navbar-nav', getWindowWidth() > 1200 ? 'float-lg-right' : '']\">\n <!-- <li class=\"nav-item\" *ngIf=\"user\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\" [style.border-start]=\"getWindowWidth() > 1200 ? '1px solid white' : ''\" style=\"height: 30px;\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" (click)=\"print()\" style=\"cursor: pointer;\"><i style=\"font-size:20px; color: white;\" class=\"fa fa-print\" aria-hidden=\"true\"></i></a>\n </li> -->\n <li class=\"nav-item\" *ngIf=\"user && client\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\" style=\"height: 30px;\" tourAnchor=\"supportSection\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" routerLink=\"support-ticket\" routerLinkActive=\"active\">Support</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user && isInRole('super-admin')\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\">\n <a class=\"nav-link\" routerLink=\"logs\" routerLinkActive=\"active\">Logs</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user && isInRole('super-admin')\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\">\n <a class=\"nav-link\" routerLink=\"super-admin\" routerLinkActive=\"active\">Super Admin</a>\n </li>\n </ul>\n <hr />\n <ul [ngClass]=\"['navbar-nav', getWindowWidth() > 1200 ? 'float-lg-right' : '']\" *ngIf=\"!publicProgram\">\n <li class=\"nav-item\" *ngIf=\"!user\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\">\n <a class=\"nav-link\" (click)=\"login()\" style=\"cursor: pointer;\" routerLinkActive=\"active\">Login</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user\" tourAnchor=\"userSettings\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" routerLink=\"user-settings\">Hello {{user.fullname}}!</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user\" style=\"cursor: pointer\" (click)=\"logout()\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\">Logout</a>\n <li>\n </ul>\n </div>\n </nav>\n</div>", styles: ["\n\t:root {\n --font-size: 12;\n }\n\n\t:host /deep/ * {\n\t\tfont-size: var(--font-size);\n\t}\n\n @media (max-width: 1200px) {\n .navbarMain a {\n font-size: 18px !important;\n }\n }\n @media (min-width: 1200px) {\n .scrollable-x {\n max-width: 60vw;\n overflow-x: auto;\n overflow-y: visible;\n align-items: center;\n }\n\n ::-webkit-scrollbar {\n display: none;\n }\n\n .verticalAlign {\n display: flex;\n align-items: center;\n }\n\n .dropdown {\n position: static;\n }\n }\n\n .navbar li {\n cursor: pointer;\n text-align: center;\n }\n\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: gray;\n }\n"], dependencies: [{ kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i6.NgbNavbar, selector: ".navbar" }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.ScrollDirective, selector: "[detect-scroll]", inputs: ["bottomOffset", "topOffset"], outputs: ["onScroll"] }] });
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavbarMainComponent, decorators: [{
|
|
195
195
|
type: Component,
|
|
196
|
-
args: [{ selector: 'navbar-main', providers: [ProviderService], template: "<style>\n\t:root {\n --font-size: 12;\n }\n\n\t:host /deep/ * {\n\t\tfont-size: var(--font-size);\n\t}\n\n @media (max-width: 1200px) {\n .navbarMain a {\n font-size: 18px !important;\n }\n }\n @media (min-width: 1200px) {\n .scrollable-x {\n max-width: 60vw;\n overflow-x: auto;\n overflow-y: visible;\n align-items: center;\n }\n\n ::-webkit-scrollbar {\n display: none;\n }\n\n .verticalAlign {\n display: flex;\n align-items: center;\n }\n\n .dropdown {\n position: static;\n }\n }\n\n .navbar li {\n cursor: pointer;\n text-align: center;\n }\n\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: gray;\n }\n</style>\n\n<div class=\"row\">\n <nav class=\"navbar navbar-expand-xl navbar-dark bg-dark navbarMain\" style=\"width: 100%\">\n <a class=\"navbar-brand\" href=\"#\">\n <img [src]=\"logo\" style=\"width: auto; height: 36px;\" *ngIf=\"!isDemo\">\n </a>\n <button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarMainNav\" aria-controls=\"navbarMainNav\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-collapse collapse\" id=\"navbarMainNav\">\n <ul class=\"navbar-nav\">\n <li class=\"nav-item\" data-toggle=\"collapse\" data-target=\"#navbarMainNav\" *ngIf=\"!standardProgram\" [style.border-
|
|
196
|
+
args: [{ selector: 'navbar-main', providers: [ProviderService], template: "<style>\n\t:root {\n --font-size: 12;\n }\n\n\t:host /deep/ * {\n\t\tfont-size: var(--font-size);\n\t}\n\n @media (max-width: 1200px) {\n .navbarMain a {\n font-size: 18px !important;\n }\n }\n @media (min-width: 1200px) {\n .scrollable-x {\n max-width: 60vw;\n overflow-x: auto;\n overflow-y: visible;\n align-items: center;\n }\n\n ::-webkit-scrollbar {\n display: none;\n }\n\n .verticalAlign {\n display: flex;\n align-items: center;\n }\n\n .dropdown {\n position: static;\n }\n }\n\n .navbar li {\n cursor: pointer;\n text-align: center;\n }\n\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: gray;\n }\n</style>\n\n<div class=\"row\">\n <nav class=\"navbar navbar-expand-xl navbar-dark bg-dark navbarMain\" style=\"width: 100%\">\n <a class=\"navbar-brand\" href=\"#\">\n <img [src]=\"logo\" style=\"width: auto; height: 36px;\" *ngIf=\"!isDemo\">\n </a>\n <button class=\"navbar-toggler\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\" aria-controls=\"navbarMainNav\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-collapse collapse\" id=\"navbarMainNav\">\n <ul class=\"navbar-nav\">\n <li class=\"nav-item\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\" *ngIf=\"!standardProgram\" [style.border-end]=\"getWindowWidth() > 1200 ? '1px solid white' : ''\">\n <a class=\"nav-link\" routerLink=\"home\" [class.disabled]=\"tourStarted ? true : null\" routerLinkActive=\"active\">Home</a>\n </li>\n </ul>\n <div *ngIf=\"hasScrolled()\" (mouseover)=\"startScrollRight()\" (mouseout)=\"stopScrollRight()\" (click)=\"scrollRightOnce()\">\n <i class=\"fa fa-arrow-left\" style=\"color: white; font-size: 20px\"></i>\n </div>\n <ul [ngClass]=\"['navbar-nav', 'scrollable-x']\" #scrollable detect-scroll (onScroll)=\"calculateDropdownsLeft()\">\n <ng-container *ngFor=\"let tab of navTabs; let i = index;\">\n <ng-container *ngIf=\"tab.type === 'link'\">\n <li class=\"nav-item\" *ngIf=\"(publicProgram || user) && isInRole(tab.links[0].role)\" data-bs-toggle=\"collapse\" [tourAnchor]=\"tab.tourAnchor\" data-bs-target=\"#navbarMainNav\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" [routerLink]=\"tab.links[0].routerLink\" routerLinkActive=\"active\">{{tab.links[0].label}}</a>\n </li>\n </ng-container>\n <ng-container *ngIf=\"tab.type === 'dropdown'\">\n <li #dropdowns class=\"nav-item dropdown\" *ngIf=\"(publicProgram || user) && isInOneRole(tab.roles)\">\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"tourStarted ? true : null\" id=\"navbarDropdownAsset\" role=\"button\" [tourAnchor]=\"tab.tourAnchor\" data-bs-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n {{tab.label}}\n </a>\n <div class=\"dropdown-menu bg-dark\" aria-labelledby=\"navbarDropdownAsset\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\" [style.left.px]=\"tab.left || 0\">\n <ng-container *ngFor=\"let link of tab.links\">\n <a class=\"dropdown-item nav-link\" *ngIf=\"(publicProgram || user) && isInRole(link.role)\" [routerLink]=\"link.routerLink\">{{link.label}}</a>\n </ng-container>\n </div>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n <div *ngIf=\"hasMoreScroll()\" (mouseover)=\"startScrollLeft()\" (mouseout)=\"stopScrollLeft()\" (click)=\"scrollLeftOnce()\">\n <i class=\"fa fa-arrow-right\" style=\"color: white; font-size: 20px\"></i>\n </div>\n <hr />\n <ul [ngClass]=\"['navbar-nav', getWindowWidth() > 1200 ? 'float-lg-right' : '']\">\n <!-- <li class=\"nav-item\" *ngIf=\"user\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\" [style.border-start]=\"getWindowWidth() > 1200 ? '1px solid white' : ''\" style=\"height: 30px;\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" (click)=\"print()\" style=\"cursor: pointer;\"><i style=\"font-size:20px; color: white;\" class=\"fa fa-print\" aria-hidden=\"true\"></i></a>\n </li> -->\n <li class=\"nav-item\" *ngIf=\"user && client\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\" style=\"height: 30px;\" tourAnchor=\"supportSection\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" routerLink=\"support-ticket\" routerLinkActive=\"active\">Support</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user && isInRole('super-admin')\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\">\n <a class=\"nav-link\" routerLink=\"logs\" routerLinkActive=\"active\">Logs</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user && isInRole('super-admin')\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\">\n <a class=\"nav-link\" routerLink=\"super-admin\" routerLinkActive=\"active\">Super Admin</a>\n </li>\n </ul>\n <hr />\n <ul [ngClass]=\"['navbar-nav', getWindowWidth() > 1200 ? 'float-lg-right' : '']\" *ngIf=\"!publicProgram\">\n <li class=\"nav-item\" *ngIf=\"!user\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\">\n <a class=\"nav-link\" (click)=\"login()\" style=\"cursor: pointer;\" routerLinkActive=\"active\">Login</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user\" tourAnchor=\"userSettings\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" routerLink=\"user-settings\">Hello {{user.fullname}}!</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user\" style=\"cursor: pointer\" (click)=\"logout()\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarMainNav\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\">Logout</a>\n <li>\n </ul>\n </div>\n </nav>\n</div>" }]
|
|
197
197
|
}], ctorParameters: function () { return [{ type: i1.ProviderService }, { type: i2.AuthService }, { type: i3.DialogService }, { type: i4.CoreService }]; }, propDecorators: { dropdowns: [{
|
|
198
198
|
type: ViewChildren,
|
|
199
199
|
args: ['dropdowns']
|
|
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImpor
|
|
|
213
213
|
type: Input,
|
|
214
214
|
args: ['publicProgram']
|
|
215
215
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1haW4vbmF2YmFyLW1haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1haW4vbmF2YmFyLW1haW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWlCLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7OztBQU9qRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQXVCckQsWUFBb0IsU0FBMEIsRUFBVSxJQUFpQixFQUFVLEdBQWtCLEVBQVUsSUFBaUI7UUFDL0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFsQmpILFNBQUksR0FBRyxFQUFFLENBQUM7UUFDUCxZQUFPLEdBQXlCLEVBQUUsQ0FBQztRQUNsQyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ1Qs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IGZyb20gJy4uLy4uL3Jlc29sdmVpby1jbGFzcyc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBRdWVyeUxpc3QsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZHJlbiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmF2YmFyTWFpblRhYk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmJhci1tYWluLXRhYi5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmF2YmFyLW1haW4nLFxuXHR0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLW1haW4uY29tcG9uZW50Lmh0bWwnLFxuXHRwcm92aWRlcnM6IFtQcm92aWRlclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIE5hdmJhck1haW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuXHRAVmlld0NoaWxkcmVuKCdkcm9wZG93bnMnKSBkcm9wZG93bnM6IFF1ZXJ5TGlzdDxhbnk+O1xuXHRAVmlld0NoaWxkKCdzY3JvbGxhYmxlJywge3N0YXRpYzogdHJ1ZX0pIHNjcm9sbGFibGU6IEVsZW1lbnRSZWY7XG5cblx0QElucHV0KCdsb2dvJykgbG9nbyA9ICcnO1xuXHRASW5wdXQoJ25hdlRhYnMnKSBuYXZUYWJzOiBOYXZiYXJNYWluVGFiTW9kZWxbXSA9IFtdO1xuXHRASW5wdXQoJ2ZvbnRTaXplJykgZm9udFNpemUgPSAxMjtcblx0QElucHV0KCdwdWJsaWNQcm9ncmFtJykgcHVibGljUHJvZ3JhbSA9IGZhbHNlO1xuXG5cdHVzZXI6IFVzZXJNb2RlbCA9IG51bGw7XG5cdGNvbGxhcHNlU2hvd2luZyA9IGZhbHNlO1xuXG5cdGNsaWVudCA9ICcnO1xuXG5cdGlzUmVzb2x2ZUlPID0gZmFsc2U7XG5cdHN0YW5kYXJkUHJvZ3JhbSA9IGZhbHNlO1xuXHR0b3VyU3RhcnRlZCA9IGZhbHNlO1xuXG5cdHNjcm9sbFJpZ2h0SW50ZXJ2YWwgPSBudWxsO1xuXHRzY3JvbGxMZWZ0SW50ZXJ2YWwgPSBudWxsO1xuXHRpc0RlbW8gPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXJ2aWNlczogUHJvdmlkZXJTZXJ2aWNlLCBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIF9kczogRGlhbG9nU2VydmljZSwgcHJpdmF0ZSBfYXBwOiBDb3JlU2VydmljZSkge1xuXHRcdHN1cGVyKF9zZXJ2aWNlcyk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC51c2VyLnN1YnNjcmliZSh1c2VyID0+IHtcblx0XHRcdHRoaXMudXNlciA9IHVzZXI7XG5cdFx0fSk7XG5cblx0XHR0aGlzLmNsaWVudCA9IHRoaXMuX2FwcC5jbGllbnQuZ2V0VmFsdWUoKTtcblx0XHR0aGlzLnN0YW5kYXJkUHJvZ3JhbSA9IHRoaXMuX2FwcC5zdGFuZGFyZFByb2dyYW0uZ2V0VmFsdWUoKTtcblx0XHR0aGlzLnRvdXJTdGFydGVkID0gdGhpcy5fc2VydmljZXMuX2FwcC50b3VyU3RhcnRlZC5nZXRWYWx1ZSgpO1xuXG5cdFx0aWYgKCF0aGlzLmNsaWVudCkge1xuXHRcdFx0dGhpcy5pc1Jlc29sdmVJTyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC50b3VyU3RhcnRlZC5zdWJzY3JpYmUodG91clN0YXJ0ZWQgPT4ge1xuXHRcdFx0dGhpcy50b3VyU3RhcnRlZCA9IHRvdXJTdGFydGVkO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5pc0RlbW8uc3Vic2NyaWJlKGlzRGVtbyA9PiB7XG5cdFx0XHR0aGlzLmlzRGVtbyA9IGlzRGVtbztcblx0XHR9KTtcblx0fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHRzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHR0aGlzLmNhbGN1bGF0ZURyb3Bkb3duc0xlZnQoKTtcblx0XHR9LCA1MDApO1xuXHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1mb250LXNpemUnLCB0aGlzLmZvbnRTaXplICsgJ3B4Jyk7XG5cdH1cblxuXHRhc3luYyBsb2dvdXQoKSB7XG5cdFx0dGhpcy5fYXBwLmlzTG9nZ2luZ091dC5uZXh0KHRydWUpO1xuXHRcdGF3YWl0IHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmxvZ091dCgpO1xuXHRcdHRoaXMuX2FwcC5pc0xvZ2dpbmdPdXQubmV4dChmYWxzZSk7XG5cdH1cblxuXHRsb2dpbigpIHtcblx0XHR0aGlzLmF1dGgubG9naW5Vc2VyKCkudGhlbigoKSA9PiB7fSwgZXJyID0+IHt9KTtcblx0fVxuXG5cdGhhc1Njcm9sbGVkKCkge1xuXHRcdGlmICh0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0IDw9IDApIHtcblx0XHRcdHRoaXMuc3RvcFNjcm9sbFJpZ2h0KCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPiAwID8gdHJ1ZSA6IGZhbHNlO1xuXHR9XG5cblx0aGFzTW9yZVNjcm9sbCgpIHtcblx0XHRpZiAodGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGggPD0gdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggKyB0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0KSB7XG5cdFx0XHR0aGlzLnN0b3BTY3JvbGxMZWZ0KCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoID4gdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggKyB0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID8gdHJ1ZSA6IGZhbHNlO1xuXHR9XG5cblx0c3RhcnRTY3JvbGxSaWdodCgpIHtcblx0XHR0aGlzLnNjcm9sbFJpZ2h0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHR0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0IC09IDI7XG5cdFx0fSwgMSk7XG5cdH1cblxuXHRzdG9wU2Nyb2xsUmlnaHQoKSB7XG5cdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLnNjcm9sbFJpZ2h0SW50ZXJ2YWwpO1xuXHR9XG5cblx0c2Nyb2xsUmlnaHRPbmNlKCkge1xuXHRcdHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgLT0gNTA7XG5cdH1cblxuXHRzdGFydFNjcm9sbExlZnQoKSB7XG5cdFx0dGhpcy5zY3JvbGxMZWZ0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHR0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICs9IDI7XG5cdFx0fSwgMSk7XG5cdH1cblxuXHRzdG9wU2Nyb2xsTGVmdCgpIHtcblx0XHRjbGVhckludGVydmFsKHRoaXMuc2Nyb2xsTGVmdEludGVydmFsKTtcblx0fVxuXG5cdHNjcm9sbExlZnRPbmNlKCkge1xuXHRcdHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgKz0gNTA7XG5cdH1cblx0XG5cdGNhbGN1bGF0ZURyb3Bkb3duc0xlZnQoKSB7XG5cdFx0aWYgKHRoaXMuZHJvcGRvd25zICYmIHRoaXMuZHJvcGRvd25zLnRvQXJyYXkoKSAmJiB0aGlzLmRyb3Bkb3ducy50b0FycmF5KCkubGVuZ3RoICYmIHRoaXMuc2Nyb2xsYWJsZSkge1xuXHRcdFx0dGhpcy5uYXZUYWJzLmZpbHRlcihhID0+IGEudHlwZSA9PT0gJ2Ryb3Bkb3duJykuZm9yRWFjaCh0YWIgPT4ge1xuXHRcdFx0XHRsZXQgZHJvcERvd24gPSB0aGlzLmRyb3Bkb3ducy50b0FycmF5KCkuZmlsdGVyKGEgPT4gYS5uYXRpdmVFbGVtZW50LmlubmVyVGV4dC5zcGxpdCgnXFxuJylbMF0ucmVwbGFjZSgvW15BLVphLXowLTldL2csICcnKSA9PT0gdGFiLmxhYmVsLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCAnJykpWzBdO1xuXG5cdFx0XHRcdGlmIChkcm9wRG93bikge1xuXHRcdFx0XHRcdHRhYi5sZWZ0ID0gTWF0aC5tYXgoZHJvcERvd24ubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0IC0gdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCwgdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGFiLmxlZnQgPSAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdGlzSW5Sb2xlKHJvbGU6IGFueSkge1xuXHRcdGlmICghcm9sZSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuaXNTdXBlckFkbWluKCkpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnVzZXIpIHtcblx0XHRcdGlmICgoPGFueT50aGlzLnVzZXIucm9sZXMpLmdyb3Vwcykge1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8ICg8YW55PnRoaXMudXNlci5yb2xlcykuZ3JvdXBzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0bGV0IGdyb3VwID0gKDxhbnk+dGhpcy51c2VyLnJvbGVzKS5ncm91cHNbaV07XG5cdFx0XHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBncm91cC52aWV3cy5sZW5ndGg7IGorKykge1x0XG5cdFx0XHRcdFx0XHRsZXQgdmlldyA9IGdyb3VwLnZpZXdzW2pdO1xuXHRcdFx0XHRcdFx0aWYgKHZpZXcgPT09IHJvbGUgfHwgdmlldy5zdGFydHNXaXRoKHJvbGUgKyAnLycpKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdGlzU3VwZXJBZG1pbigpIHtcblx0XHRyZXR1cm4gdGhpcy51c2VyICYmIHRoaXMudXNlci5yb2xlcyA/ICg8YW55PnRoaXMudXNlci5yb2xlcykuc3VwZXJfYWRtaW4gOiBmYWxzZTtcblx0fVxuXG5cdGlzSW5PbmVSb2xlKHJvbGVzOiBzdHJpbmdbXSkge1xuXHRcdGlmICh0aGlzLmlzU3VwZXJBZG1pbigpKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJvbGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgcm9sZSA9IHJvbGVzW2ldO1xuXG5cdFx0XHRpZiAoIXJvbGUpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5pc1VzZXJJblZpZXcocm9sZSkpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0bmF2aWdhdGVUbyhyb3V0ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJvdXRlKTtcblx0fVxuXG5cdGhlbHAoKSB7XG5cdFx0dGhpcy5fZHMuaW5wdXQoJ1doYXQgZG8geW91IG5lZWQgaGVscCB3aXRoPycsIFtcblx0XHRcdHtcblx0XHRcdFx0bGFiZWw6ICdUaXRsZSBvZiBQcm9ibGVtJywgXG5cdFx0XHRcdGZvcm06ICdwcm9ibGVtX3RpdGxlJywgXG5cdFx0XHRcdGRhdGE6ICcnLCBcblx0XHRcdFx0dmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuXHRcdFx0XHR2YWxpZGF0b3JFcnJvcnM6IFsncmVxdWlyZWQnXSxcblx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ1Byb2JsZW0gdGl0bGUgaXMgcmVxdWlyZWQuJ10sXG5cdFx0XHRcdHJlcXVpcmVkOiB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRsYWJlbDogJ0Rlc2NyaXB0aW9uIG9mIFByb2JsZW0nLCBcblx0XHRcdFx0Zm9ybTogJ3Byb2JsZW1fZGVzYycsIFxuXHRcdFx0XHRkYXRhOiAnJywgXG5cdFx0XHRcdHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcblx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3JlcXVpcmVkJ10sXG5cdFx0XHRcdHZhbGlkYXRvck1zZzogWydQcm9ibGVtIGRlc2NyaXB0aW9uIGlzIHJlcXVpcmVkLiddLFxuXHRcdFx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRcdFx0dHlwZTogJ3RleHRhcmVhJ1xuXHRcdFx0fVxuXHRcdF0pLnRoZW4oaGVscFJlcyA9PiB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2dldEhlbHBOb3RpZmljYXRpb24nLCB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZnVsbG5hbWUsIGhlbHBSZXMucHJvYmxlbV90aXRsZS52YWx1ZSwgaGVscFJlcy5wcm9ibGVtX2Rlc2MudmFsdWUpO1xuXHRcdH0sICgpID0+IHt9KTtcblx0fVxuXG5cdGlzQ3VzdG9tZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmdldFVzZXIoKS5vdGhlci5jdXN0b21lcnMgJiYgdGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0VXNlcigpLm90aGVyLmN1c3RvbWVycy5sZW5ndGggPyB0cnVlIDogZmFsc2U7XG5cdH1cblxuXHRnZXRXaW5kb3dXaWR0aCgpIHtcblx0XHRyZXR1cm4gd2luZG93LmlubmVyV2lkdGg7XG5cdH1cblxuXHQvLyBwcmludCgpIHtcblx0Ly8gXHR3aW5kb3cucHJpbnQoKTtcblx0Ly8gfVxufSIsIjxzdHlsZT5cblx0OnJvb3Qge1xuICAgICAgICAtLWZvbnQtc2l6ZTogMTI7XG4gICAgfVxuXG5cdDpob3N0IC9kZWVwLyAqIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG5cdH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgLm5hdmJhck1haW4gYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgIC5zY3JvbGxhYmxlLXgge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2MHZ3O1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAudmVydGljYWxBbGlnbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5hdmJhciBsaSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbms6aG92ZXIsIC5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbms6Zm9jdXMge1xuICAgICAgICBjb2xvcjogZ3JheTtcbiAgICB9XG48L3N0eWxlPlxuXG48ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPG5hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLXhsIG5hdmJhci1kYXJrIGJnLWRhcmsgbmF2YmFyTWFpblwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJuYXZiYXItYnJhbmRcIiBocmVmPVwiI1wiPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cImxvZ29cIiBzdHlsZT1cIndpZHRoOiBhdXRvOyBoZWlnaHQ6IDM2cHg7XCIgKm5nSWY9XCIhaXNEZW1vXCI+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyXCIgdHlwZT1cImJ1dHRvblwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgYXJpYS1jb250cm9scz1cIm5hdmJhck1haW5OYXZcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXItaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXZiYXItY29sbGFwc2UgY29sbGFwc2VcIiBpZD1cIm5hdmJhck1haW5OYXZcIj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdmJhci1uYXZcIj5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgKm5nSWY9XCIhc3RhbmRhcmRQcm9ncmFtXCIgW3N0eWxlLmJvcmRlci1yaWdodF09XCJnZXRXaW5kb3dXaWR0aCgpID4gMTIwMCA/ICcxcHggc29saWQgd2hpdGUnIDogJydcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJob21lXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+SG9tZTwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNTY3JvbGxlZCgpXCIgKG1vdXNlb3Zlcik9XCJzdGFydFNjcm9sbFJpZ2h0KClcIiAobW91c2VvdXQpPVwic3RvcFNjcm9sbFJpZ2h0KClcIiAoY2xpY2spPVwic2Nyb2xsUmlnaHRPbmNlKClcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFycm93LWxlZnRcIiBzdHlsZT1cImNvbG9yOiB3aGl0ZTsgZm9udC1zaXplOiAyMHB4XCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dWwgW25nQ2xhc3NdPVwiWyduYXZiYXItbmF2JywgJ3Njcm9sbGFibGUteCddXCIgI3Njcm9sbGFibGUgZGV0ZWN0LXNjcm9sbCAob25TY3JvbGwpPVwiY2FsY3VsYXRlRHJvcGRvd25zTGVmdCgpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIG5hdlRhYnM7IGxldCBpID0gaW5kZXg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIudHlwZSA9PT0gJ2xpbmsnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwiKHB1YmxpY1Byb2dyYW0gfHwgdXNlcikgJiYgaXNJblJvbGUodGFiLmxpbmtzWzBdLnJvbGUpXCIgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiIFt0b3VyQW5jaG9yXT1cInRhYi50b3VyQW5jaG9yXCIgZGF0YS10YXJnZXQ9XCIjbmF2YmFyTWFpbk5hdlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIFtyb3V0ZXJMaW5rXT1cInRhYi5saW5rc1swXS5yb3V0ZXJMaW5rXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPnt7dGFiLmxpbmtzWzBdLmxhYmVsfX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi50eXBlID09PSAnZHJvcGRvd24nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgI2Ryb3Bkb3ducyBjbGFzcz1cIm5hdi1pdGVtIGRyb3Bkb3duXCIgKm5nSWY9XCIocHVibGljUHJvZ3JhbSB8fCB1c2VyKSAmJiBpc0luT25lUm9sZSh0YWIucm9sZXMpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGluayBkcm9wZG93bi10b2dnbGVcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIGlkPVwibmF2YmFyRHJvcGRvd25Bc3NldFwiIHJvbGU9XCJidXR0b25cIiBbdG91ckFuY2hvcl09XCJ0YWIudG91ckFuY2hvclwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3RhYi5sYWJlbH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGJnLWRhcmtcIiBhcmlhLWxhYmVsbGVkYnk9XCJuYXZiYXJEcm9wZG93bkFzc2V0XCIgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiIGRhdGEtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIiBbc3R5bGUubGVmdC5weF09XCJ0YWIubGVmdCB8fCAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgdGFiLmxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gbmF2LWxpbmtcIiAqbmdJZj1cIihwdWJsaWNQcm9ncmFtIHx8IHVzZXIpICYmIGlzSW5Sb2xlKGxpbmsucm9sZSlcIiBbcm91dGVyTGlua109XCJsaW5rLnJvdXRlckxpbmtcIj57e2xpbmsubGFiZWx9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzTW9yZVNjcm9sbCgpXCIgKG1vdXNlb3Zlcik9XCJzdGFydFNjcm9sbExlZnQoKVwiIChtb3VzZW91dCk9XCJzdG9wU2Nyb2xsTGVmdCgpXCIgKGNsaWNrKT1cInNjcm9sbExlZnRPbmNlKClcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFycm93LXJpZ2h0XCIgc3R5bGU9XCJjb2xvcjogd2hpdGU7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGhyIC8+XG4gICAgICAgICAgICA8dWwgW25nQ2xhc3NdPVwiWyduYXZiYXItbmF2JywgZ2V0V2luZG93V2lkdGgoKSA+IDEyMDAgPyAnZmxvYXQtbGctcmlnaHQnIDogJyddXCI+XG4gICAgICAgICAgICAgICAgPCEtLSA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwidXNlclwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgW3N0eWxlLmJvcmRlci1sZWZ0XT1cImdldFdpbmRvd1dpZHRoKCkgPiAxMjAwID8gJzFweCBzb2xpZCB3aGl0ZScgOiAnJ1wiIHN0eWxlPVwiaGVpZ2h0OiAzMHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiAoY2xpY2spPVwicHJpbnQoKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPjxpIHN0eWxlPVwiZm9udC1zaXplOjIwcHg7IGNvbG9yOiB3aGl0ZTtcIiBjbGFzcz1cImZhIGZhLXByaW50XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPiAtLT5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwidXNlciAmJiBjbGllbnRcIiBkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS10YXJnZXQ9XCIjbmF2YmFyTWFpbk5hdlwiIHN0eWxlPVwiaGVpZ2h0OiAzMHB4O1wiIHRvdXJBbmNob3I9XCJzdXBwb3J0U2VjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiByb3V0ZXJMaW5rPVwic3VwcG9ydC10aWNrZXRcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+U3VwcG9ydDwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyICYmIGlzSW5Sb2xlKCdzdXBlci1hZG1pbicpXCIgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiIGRhdGEtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJsb2dzXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPkxvZ3M8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwidXNlciAmJiBpc0luUm9sZSgnc3VwZXItYWRtaW4nKVwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiByb3V0ZXJMaW5rPVwic3VwZXItYWRtaW5cIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+U3VwZXIgQWRtaW48L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgIDx1bCBbbmdDbGFzc109XCJbJ25hdmJhci1uYXYnLCBnZXRXaW5kb3dXaWR0aCgpID4gMTIwMCA/ICdmbG9hdC1sZy1yaWdodCcgOiAnJ11cIiAqbmdJZj1cIiFwdWJsaWNQcm9ncmFtXCI+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cIiF1c2VyXCIgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiIGRhdGEtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIChjbGljayk9XCJsb2dpbigpXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPkxvZ2luPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cInVzZXJcIiB0b3VyQW5jaG9yPVwidXNlclNldHRpbmdzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIHJvdXRlckxpbms9XCJ1c2VyLXNldHRpbmdzXCI+SGVsbG8ge3t1c2VyLmZ1bGxuYW1lfX0hPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cInVzZXJcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiIChjbGljayk9XCJsb2dvdXQoKVwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiPkxvZ291dDwvYT5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25hdj5cbjwvZGl2PiJdfQ==
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1haW4vbmF2YmFyLW1haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1haW4vbmF2YmFyLW1haW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWlCLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7OztBQU9qRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQXVCckQsWUFBb0IsU0FBMEIsRUFBVSxJQUFpQixFQUFVLEdBQWtCLEVBQVUsSUFBaUI7UUFDL0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFsQmpILFNBQUksR0FBRyxFQUFFLENBQUM7UUFDUCxZQUFPLEdBQXlCLEVBQUUsQ0FBQztRQUNsQyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ1Qs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IGZyb20gJy4uLy4uL3Jlc29sdmVpby1jbGFzcyc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBRdWVyeUxpc3QsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZHJlbiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmF2YmFyTWFpblRhYk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmJhci1tYWluLXRhYi5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmF2YmFyLW1haW4nLFxuXHR0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLW1haW4uY29tcG9uZW50Lmh0bWwnLFxuXHRwcm92aWRlcnM6IFtQcm92aWRlclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIE5hdmJhck1haW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuXHRAVmlld0NoaWxkcmVuKCdkcm9wZG93bnMnKSBkcm9wZG93bnM6IFF1ZXJ5TGlzdDxhbnk+O1xuXHRAVmlld0NoaWxkKCdzY3JvbGxhYmxlJywge3N0YXRpYzogdHJ1ZX0pIHNjcm9sbGFibGU6IEVsZW1lbnRSZWY7XG5cblx0QElucHV0KCdsb2dvJykgbG9nbyA9ICcnO1xuXHRASW5wdXQoJ25hdlRhYnMnKSBuYXZUYWJzOiBOYXZiYXJNYWluVGFiTW9kZWxbXSA9IFtdO1xuXHRASW5wdXQoJ2ZvbnRTaXplJykgZm9udFNpemUgPSAxMjtcblx0QElucHV0KCdwdWJsaWNQcm9ncmFtJykgcHVibGljUHJvZ3JhbSA9IGZhbHNlO1xuXG5cdHVzZXI6IFVzZXJNb2RlbCA9IG51bGw7XG5cdGNvbGxhcHNlU2hvd2luZyA9IGZhbHNlO1xuXG5cdGNsaWVudCA9ICcnO1xuXG5cdGlzUmVzb2x2ZUlPID0gZmFsc2U7XG5cdHN0YW5kYXJkUHJvZ3JhbSA9IGZhbHNlO1xuXHR0b3VyU3RhcnRlZCA9IGZhbHNlO1xuXG5cdHNjcm9sbFJpZ2h0SW50ZXJ2YWwgPSBudWxsO1xuXHRzY3JvbGxMZWZ0SW50ZXJ2YWwgPSBudWxsO1xuXHRpc0RlbW8gPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXJ2aWNlczogUHJvdmlkZXJTZXJ2aWNlLCBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIF9kczogRGlhbG9nU2VydmljZSwgcHJpdmF0ZSBfYXBwOiBDb3JlU2VydmljZSkge1xuXHRcdHN1cGVyKF9zZXJ2aWNlcyk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC51c2VyLnN1YnNjcmliZSh1c2VyID0+IHtcblx0XHRcdHRoaXMudXNlciA9IHVzZXI7XG5cdFx0fSk7XG5cblx0XHR0aGlzLmNsaWVudCA9IHRoaXMuX2FwcC5jbGllbnQuZ2V0VmFsdWUoKTtcblx0XHR0aGlzLnN0YW5kYXJkUHJvZ3JhbSA9IHRoaXMuX2FwcC5zdGFuZGFyZFByb2dyYW0uZ2V0VmFsdWUoKTtcblx0XHR0aGlzLnRvdXJTdGFydGVkID0gdGhpcy5fc2VydmljZXMuX2FwcC50b3VyU3RhcnRlZC5nZXRWYWx1ZSgpO1xuXG5cdFx0aWYgKCF0aGlzLmNsaWVudCkge1xuXHRcdFx0dGhpcy5pc1Jlc29sdmVJTyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC50b3VyU3RhcnRlZC5zdWJzY3JpYmUodG91clN0YXJ0ZWQgPT4ge1xuXHRcdFx0dGhpcy50b3VyU3RhcnRlZCA9IHRvdXJTdGFydGVkO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5pc0RlbW8uc3Vic2NyaWJlKGlzRGVtbyA9PiB7XG5cdFx0XHR0aGlzLmlzRGVtbyA9IGlzRGVtbztcblx0XHR9KTtcblx0fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHRzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHR0aGlzLmNhbGN1bGF0ZURyb3Bkb3duc0xlZnQoKTtcblx0XHR9LCA1MDApO1xuXHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1mb250LXNpemUnLCB0aGlzLmZvbnRTaXplICsgJ3B4Jyk7XG5cdH1cblxuXHRhc3luYyBsb2dvdXQoKSB7XG5cdFx0dGhpcy5fYXBwLmlzTG9nZ2luZ091dC5uZXh0KHRydWUpO1xuXHRcdGF3YWl0IHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmxvZ091dCgpO1xuXHRcdHRoaXMuX2FwcC5pc0xvZ2dpbmdPdXQubmV4dChmYWxzZSk7XG5cdH1cblxuXHRsb2dpbigpIHtcblx0XHR0aGlzLmF1dGgubG9naW5Vc2VyKCkudGhlbigoKSA9PiB7fSwgZXJyID0+IHt9KTtcblx0fVxuXG5cdGhhc1Njcm9sbGVkKCkge1xuXHRcdGlmICh0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0IDw9IDApIHtcblx0XHRcdHRoaXMuc3RvcFNjcm9sbFJpZ2h0KCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPiAwID8gdHJ1ZSA6IGZhbHNlO1xuXHR9XG5cblx0aGFzTW9yZVNjcm9sbCgpIHtcblx0XHRpZiAodGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGggPD0gdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggKyB0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0KSB7XG5cdFx0XHR0aGlzLnN0b3BTY3JvbGxMZWZ0KCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoID4gdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggKyB0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID8gdHJ1ZSA6IGZhbHNlO1xuXHR9XG5cblx0c3RhcnRTY3JvbGxSaWdodCgpIHtcblx0XHR0aGlzLnNjcm9sbFJpZ2h0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHR0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0IC09IDI7XG5cdFx0fSwgMSk7XG5cdH1cblxuXHRzdG9wU2Nyb2xsUmlnaHQoKSB7XG5cdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLnNjcm9sbFJpZ2h0SW50ZXJ2YWwpO1xuXHR9XG5cblx0c2Nyb2xsUmlnaHRPbmNlKCkge1xuXHRcdHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgLT0gNTA7XG5cdH1cblxuXHRzdGFydFNjcm9sbExlZnQoKSB7XG5cdFx0dGhpcy5zY3JvbGxMZWZ0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHR0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICs9IDI7XG5cdFx0fSwgMSk7XG5cdH1cblxuXHRzdG9wU2Nyb2xsTGVmdCgpIHtcblx0XHRjbGVhckludGVydmFsKHRoaXMuc2Nyb2xsTGVmdEludGVydmFsKTtcblx0fVxuXG5cdHNjcm9sbExlZnRPbmNlKCkge1xuXHRcdHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgKz0gNTA7XG5cdH1cblx0XG5cdGNhbGN1bGF0ZURyb3Bkb3duc0xlZnQoKSB7XG5cdFx0aWYgKHRoaXMuZHJvcGRvd25zICYmIHRoaXMuZHJvcGRvd25zLnRvQXJyYXkoKSAmJiB0aGlzLmRyb3Bkb3ducy50b0FycmF5KCkubGVuZ3RoICYmIHRoaXMuc2Nyb2xsYWJsZSkge1xuXHRcdFx0dGhpcy5uYXZUYWJzLmZpbHRlcihhID0+IGEudHlwZSA9PT0gJ2Ryb3Bkb3duJykuZm9yRWFjaCh0YWIgPT4ge1xuXHRcdFx0XHRsZXQgZHJvcERvd24gPSB0aGlzLmRyb3Bkb3ducy50b0FycmF5KCkuZmlsdGVyKGEgPT4gYS5uYXRpdmVFbGVtZW50LmlubmVyVGV4dC5zcGxpdCgnXFxuJylbMF0ucmVwbGFjZSgvW15BLVphLXowLTldL2csICcnKSA9PT0gdGFiLmxhYmVsLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCAnJykpWzBdO1xuXG5cdFx0XHRcdGlmIChkcm9wRG93bikge1xuXHRcdFx0XHRcdHRhYi5sZWZ0ID0gTWF0aC5tYXgoZHJvcERvd24ubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0IC0gdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCwgdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGFiLmxlZnQgPSAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdGlzSW5Sb2xlKHJvbGU6IGFueSkge1xuXHRcdGlmICghcm9sZSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuaXNTdXBlckFkbWluKCkpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnVzZXIpIHtcblx0XHRcdGlmICgoPGFueT50aGlzLnVzZXIucm9sZXMpLmdyb3Vwcykge1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8ICg8YW55PnRoaXMudXNlci5yb2xlcykuZ3JvdXBzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0bGV0IGdyb3VwID0gKDxhbnk+dGhpcy51c2VyLnJvbGVzKS5ncm91cHNbaV07XG5cdFx0XHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBncm91cC52aWV3cy5sZW5ndGg7IGorKykge1x0XG5cdFx0XHRcdFx0XHRsZXQgdmlldyA9IGdyb3VwLnZpZXdzW2pdO1xuXHRcdFx0XHRcdFx0aWYgKHZpZXcgPT09IHJvbGUgfHwgdmlldy5zdGFydHNXaXRoKHJvbGUgKyAnLycpKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdGlzU3VwZXJBZG1pbigpIHtcblx0XHRyZXR1cm4gdGhpcy51c2VyICYmIHRoaXMudXNlci5yb2xlcyA/ICg8YW55PnRoaXMudXNlci5yb2xlcykuc3VwZXJfYWRtaW4gOiBmYWxzZTtcblx0fVxuXG5cdGlzSW5PbmVSb2xlKHJvbGVzOiBzdHJpbmdbXSkge1xuXHRcdGlmICh0aGlzLmlzU3VwZXJBZG1pbigpKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJvbGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgcm9sZSA9IHJvbGVzW2ldO1xuXG5cdFx0XHRpZiAoIXJvbGUpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5pc1VzZXJJblZpZXcocm9sZSkpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0bmF2aWdhdGVUbyhyb3V0ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJvdXRlKTtcblx0fVxuXG5cdGhlbHAoKSB7XG5cdFx0dGhpcy5fZHMuaW5wdXQoJ1doYXQgZG8geW91IG5lZWQgaGVscCB3aXRoPycsIFtcblx0XHRcdHtcblx0XHRcdFx0bGFiZWw6ICdUaXRsZSBvZiBQcm9ibGVtJywgXG5cdFx0XHRcdGZvcm06ICdwcm9ibGVtX3RpdGxlJywgXG5cdFx0XHRcdGRhdGE6ICcnLCBcblx0XHRcdFx0dmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuXHRcdFx0XHR2YWxpZGF0b3JFcnJvcnM6IFsncmVxdWlyZWQnXSxcblx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ1Byb2JsZW0gdGl0bGUgaXMgcmVxdWlyZWQuJ10sXG5cdFx0XHRcdHJlcXVpcmVkOiB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRsYWJlbDogJ0Rlc2NyaXB0aW9uIG9mIFByb2JsZW0nLCBcblx0XHRcdFx0Zm9ybTogJ3Byb2JsZW1fZGVzYycsIFxuXHRcdFx0XHRkYXRhOiAnJywgXG5cdFx0XHRcdHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcblx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3JlcXVpcmVkJ10sXG5cdFx0XHRcdHZhbGlkYXRvck1zZzogWydQcm9ibGVtIGRlc2NyaXB0aW9uIGlzIHJlcXVpcmVkLiddLFxuXHRcdFx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRcdFx0dHlwZTogJ3RleHRhcmVhJ1xuXHRcdFx0fVxuXHRcdF0pLnRoZW4oaGVscFJlcyA9PiB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2dldEhlbHBOb3RpZmljYXRpb24nLCB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZnVsbG5hbWUsIGhlbHBSZXMucHJvYmxlbV90aXRsZS52YWx1ZSwgaGVscFJlcy5wcm9ibGVtX2Rlc2MudmFsdWUpO1xuXHRcdH0sICgpID0+IHt9KTtcblx0fVxuXG5cdGlzQ3VzdG9tZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmdldFVzZXIoKS5vdGhlci5jdXN0b21lcnMgJiYgdGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0VXNlcigpLm90aGVyLmN1c3RvbWVycy5sZW5ndGggPyB0cnVlIDogZmFsc2U7XG5cdH1cblxuXHRnZXRXaW5kb3dXaWR0aCgpIHtcblx0XHRyZXR1cm4gd2luZG93LmlubmVyV2lkdGg7XG5cdH1cblxuXHQvLyBwcmludCgpIHtcblx0Ly8gXHR3aW5kb3cucHJpbnQoKTtcblx0Ly8gfVxufSIsIjxzdHlsZT5cblx0OnJvb3Qge1xuICAgICAgICAtLWZvbnQtc2l6ZTogMTI7XG4gICAgfVxuXG5cdDpob3N0IC9kZWVwLyAqIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG5cdH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgLm5hdmJhck1haW4gYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgIC5zY3JvbGxhYmxlLXgge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2MHZ3O1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAudmVydGljYWxBbGlnbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5hdmJhciBsaSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbms6aG92ZXIsIC5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbms6Zm9jdXMge1xuICAgICAgICBjb2xvcjogZ3JheTtcbiAgICB9XG48L3N0eWxlPlxuXG48ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPG5hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLXhsIG5hdmJhci1kYXJrIGJnLWRhcmsgbmF2YmFyTWFpblwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJuYXZiYXItYnJhbmRcIiBocmVmPVwiI1wiPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cImxvZ29cIiBzdHlsZT1cIndpZHRoOiBhdXRvOyBoZWlnaHQ6IDM2cHg7XCIgKm5nSWY9XCIhaXNEZW1vXCI+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyXCIgdHlwZT1cImJ1dHRvblwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLWJzLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgYXJpYS1jb250cm9scz1cIm5hdmJhck1haW5OYXZcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXItaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXZiYXItY29sbGFwc2UgY29sbGFwc2VcIiBpZD1cIm5hdmJhck1haW5OYXZcIj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdmJhci1uYXZcIj5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLWJzLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgKm5nSWY9XCIhc3RhbmRhcmRQcm9ncmFtXCIgW3N0eWxlLmJvcmRlci1lbmRdPVwiZ2V0V2luZG93V2lkdGgoKSA+IDEyMDAgPyAnMXB4IHNvbGlkIHdoaXRlJyA6ICcnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiByb3V0ZXJMaW5rPVwiaG9tZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJ0b3VyU3RhcnRlZCA/IHRydWUgOiBudWxsXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPkhvbWU8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzU2Nyb2xsZWQoKVwiIChtb3VzZW92ZXIpPVwic3RhcnRTY3JvbGxSaWdodCgpXCIgKG1vdXNlb3V0KT1cInN0b3BTY3JvbGxSaWdodCgpXCIgKGNsaWNrKT1cInNjcm9sbFJpZ2h0T25jZSgpXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1sZWZ0XCIgc3R5bGU9XCJjb2xvcjogd2hpdGU7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHVsIFtuZ0NsYXNzXT1cIlsnbmF2YmFyLW5hdicsICdzY3JvbGxhYmxlLXgnXVwiICNzY3JvbGxhYmxlIGRldGVjdC1zY3JvbGwgKG9uU2Nyb2xsKT1cImNhbGN1bGF0ZURyb3Bkb3duc0xlZnQoKVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiBuYXZUYWJzOyBsZXQgaSA9IGluZGV4O1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLnR5cGUgPT09ICdsaW5rJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cIihwdWJsaWNQcm9ncmFtIHx8IHVzZXIpICYmIGlzSW5Sb2xlKHRhYi5saW5rc1swXS5yb2xlKVwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIiBbdG91ckFuY2hvcl09XCJ0YWIudG91ckFuY2hvclwiIGRhdGEtYnMtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiBbcm91dGVyTGlua109XCJ0YWIubGlua3NbMF0ucm91dGVyTGlua1wiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj57e3RhYi5saW5rc1swXS5sYWJlbH19PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIudHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpICNkcm9wZG93bnMgY2xhc3M9XCJuYXYtaXRlbSBkcm9wZG93blwiICpuZ0lmPVwiKHB1YmxpY1Byb2dyYW0gfHwgdXNlcikgJiYgaXNJbk9uZVJvbGUodGFiLnJvbGVzKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgZHJvcGRvd24tdG9nZ2xlXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiBpZD1cIm5hdmJhckRyb3Bkb3duQXNzZXRcIiByb2xlPVwiYnV0dG9uXCIgW3RvdXJBbmNob3JdPVwidGFiLnRvdXJBbmNob3JcIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWIubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBiZy1kYXJrXCIgYXJpYS1sYWJlbGxlZGJ5PVwibmF2YmFyRHJvcGRvd25Bc3NldFwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLWJzLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgW3N0eWxlLmxlZnQucHhdPVwidGFiLmxlZnQgfHwgMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIHRhYi5saW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIG5hdi1saW5rXCIgKm5nSWY9XCIocHVibGljUHJvZ3JhbSB8fCB1c2VyKSAmJiBpc0luUm9sZShsaW5rLnJvbGUpXCIgW3JvdXRlckxpbmtdPVwibGluay5yb3V0ZXJMaW5rXCI+e3tsaW5rLmxhYmVsfX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImhhc01vcmVTY3JvbGwoKVwiIChtb3VzZW92ZXIpPVwic3RhcnRTY3JvbGxMZWZ0KClcIiAobW91c2VvdXQpPVwic3RvcFNjcm9sbExlZnQoKVwiIChjbGljayk9XCJzY3JvbGxMZWZ0T25jZSgpXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1yaWdodFwiIHN0eWxlPVwiY29sb3I6IHdoaXRlOyBmb250LXNpemU6IDIwcHhcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgPHVsIFtuZ0NsYXNzXT1cIlsnbmF2YmFyLW5hdicsIGdldFdpbmRvd1dpZHRoKCkgPiAxMjAwID8gJ2Zsb2F0LWxnLXJpZ2h0JyA6ICcnXVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cInVzZXJcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS1icy10YXJnZXQ9XCIjbmF2YmFyTWFpbk5hdlwiIFtzdHlsZS5ib3JkZXItc3RhcnRdPVwiZ2V0V2luZG93V2lkdGgoKSA+IDEyMDAgPyAnMXB4IHNvbGlkIHdoaXRlJyA6ICcnXCIgc3R5bGU9XCJoZWlnaHQ6IDMwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIChjbGljayk9XCJwcmludCgpXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+PGkgc3R5bGU9XCJmb250LXNpemU6MjBweDsgY29sb3I6IHdoaXRlO1wiIGNsYXNzPVwiZmEgZmEtcHJpbnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyICYmIGNsaWVudFwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLWJzLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgc3R5bGU9XCJoZWlnaHQ6IDMwcHg7XCIgdG91ckFuY2hvcj1cInN1cHBvcnRTZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIHJvdXRlckxpbms9XCJzdXBwb3J0LXRpY2tldFwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5TdXBwb3J0PC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cInVzZXIgJiYgaXNJblJvbGUoJ3N1cGVyLWFkbWluJylcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS1icy10YXJnZXQ9XCIjbmF2YmFyTWFpbk5hdlwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgcm91dGVyTGluaz1cImxvZ3NcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+TG9nczwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyICYmIGlzSW5Sb2xlKCdzdXBlci1hZG1pbicpXCIgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiIGRhdGEtYnMtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJzdXBlci1hZG1pblwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5TdXBlciBBZG1pbjwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgPHVsIFtuZ0NsYXNzXT1cIlsnbmF2YmFyLW5hdicsIGdldFdpbmRvd1dpZHRoKCkgPiAxMjAwID8gJ2Zsb2F0LWxnLXJpZ2h0JyA6ICcnXVwiICpuZ0lmPVwiIXB1YmxpY1Byb2dyYW1cIj5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwiIXVzZXJcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS1icy10YXJnZXQ9XCIjbmF2YmFyTWFpbk5hdlwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgKGNsaWNrKT1cImxvZ2luKClcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+TG9naW48L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwidXNlclwiIHRvdXJBbmNob3I9XCJ1c2VyU2V0dGluZ3NcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIFtjbGFzcy5kaXNhYmxlZF09XCJ0b3VyU3RhcnRlZCA/IHRydWUgOiBudWxsXCIgcm91dGVyTGluaz1cInVzZXItc2V0dGluZ3NcIj5IZWxsbyB7e3VzZXIuZnVsbG5hbWV9fSE8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwidXNlclwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgKGNsaWNrKT1cImxvZ291dCgpXCIgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiIGRhdGEtYnMtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIFtjbGFzcy5kaXNhYmxlZF09XCJ0b3VyU3RhcnRlZCA/IHRydWUgOiBudWxsXCI+TG9nb3V0PC9hPlxuICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmF2PlxuPC9kaXY+Il19
|
|
@@ -28,21 +28,35 @@ export class NavbarModuleComponent extends BaseComponent {
|
|
|
28
28
|
this.routerEvents$.push(this._services._router.events
|
|
29
29
|
//.filter(event => event instanceof NavigationEnd)
|
|
30
30
|
.subscribe((event) => {
|
|
31
|
-
|
|
32
|
-
this.selectTabFromRouter();
|
|
33
|
-
}
|
|
31
|
+
this.selectTabFromRouter();
|
|
34
32
|
}));
|
|
35
33
|
this.routerEvents$.push(this._services._router.events
|
|
36
34
|
//.filter(event => event instanceof NavigationCancel)
|
|
37
35
|
.subscribe((event) => {
|
|
38
|
-
|
|
39
|
-
this.selectTabFromRouter();
|
|
40
|
-
}
|
|
36
|
+
this.selectTabFromRouter();
|
|
41
37
|
}));
|
|
42
38
|
this.routerEvents$.push(this._services._app.navbarModuleData.subscribe(data => {
|
|
43
39
|
this.menuData = data;
|
|
44
|
-
if (this.
|
|
45
|
-
this.
|
|
40
|
+
if (!this.selectedTab && this.menuData.tabs.length) {
|
|
41
|
+
this.selectedTab = this.menuData.tabs[0];
|
|
42
|
+
}
|
|
43
|
+
if (this.selectedTab) {
|
|
44
|
+
for (let i = 0; i < this.menuData.tabs.length; i++) {
|
|
45
|
+
let tabLink = '';
|
|
46
|
+
if (this.menuData.tabs[i].link.startsWith('/customer-portal/frac') || this.menuData.tabs[i].link.startsWith('/customer-portal/production')) {
|
|
47
|
+
tabLink = this.menuData.tabs[i].link;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
tabLink = this.menuData.tabs[i].link.replace(/^(\/[-a-z]+\/[^\/]+)\/.*$/, '$1');
|
|
51
|
+
}
|
|
52
|
+
if (tabLink === this.currentRoute) {
|
|
53
|
+
this.selectedTab = this.menuData.tabs[i];
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (this.selectedTab === null) {
|
|
58
|
+
this.selectedTab = this.menuData.tabs[0];
|
|
59
|
+
}
|
|
46
60
|
}
|
|
47
61
|
}));
|
|
48
62
|
this.routerEvents$.push(this._services._app.tourStarted.subscribe(tourStarted => {
|
|
@@ -55,27 +69,38 @@ export class NavbarModuleComponent extends BaseComponent {
|
|
|
55
69
|
});
|
|
56
70
|
}
|
|
57
71
|
selectTabFromRouter() {
|
|
58
|
-
if (this.
|
|
59
|
-
|
|
60
|
-
|
|
72
|
+
if (this._services._router.url === '/') {
|
|
73
|
+
this.selectedTab = this.menuData.tabs[0];
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this.selectedTab = null;
|
|
77
|
+
let routerLink = '';
|
|
78
|
+
if (this._services._router.url.startsWith('/customer-portal/frac') || this._services._router.url.startsWith('/customer-portal/production')) {
|
|
79
|
+
routerLink = this._services._router.url;
|
|
61
80
|
}
|
|
62
81
|
else {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
this.currentRoute = this.currentRoute.replace(/(\/[^\/]+$)/, '');
|
|
82
|
+
routerLink = this._services._router.url.replace(/^(\/[-a-z]+\/[^\/]+)\/.*$/, '$1');
|
|
83
|
+
}
|
|
84
|
+
if (routerLink.includes('?')) {
|
|
85
|
+
routerLink = routerLink.substring(0, routerLink.indexOf('?'));
|
|
86
|
+
}
|
|
87
|
+
this.currentRoute = routerLink;
|
|
88
|
+
for (let i = 0; i < this.menuData.tabs.length; i++) {
|
|
89
|
+
let tabLink = '';
|
|
90
|
+
if (this.menuData.tabs[i].link.startsWith('/customer-portal/frac') || this.menuData.tabs[i].link.startsWith('/customer-portal/production')) {
|
|
91
|
+
tabLink = this.menuData.tabs[i].link;
|
|
74
92
|
}
|
|
75
|
-
|
|
76
|
-
|
|
93
|
+
else {
|
|
94
|
+
tabLink = this.menuData.tabs[i].link.replace(/^(\/[-a-z]+\/[^\/]+)\/.*$/, '$1');
|
|
95
|
+
}
|
|
96
|
+
if (tabLink === routerLink) {
|
|
97
|
+
this.selectedTab = this.menuData.tabs[i];
|
|
98
|
+
break;
|
|
77
99
|
}
|
|
78
100
|
}
|
|
101
|
+
if (this.selectedTab === null) {
|
|
102
|
+
this.selectedTab = this.menuData.tabs.filter(a => a.link === routerLink)[0] ? this.menuData.tabs.filter(a => a.link === routerLink)[0] : this.menuData.tabs[0];
|
|
103
|
+
}
|
|
79
104
|
}
|
|
80
105
|
}
|
|
81
106
|
tabClass(tab) {
|
|
@@ -83,8 +108,10 @@ export class NavbarModuleComponent extends BaseComponent {
|
|
|
83
108
|
if (this.selectedTab.label === tab.label) {
|
|
84
109
|
return 'active';
|
|
85
110
|
}
|
|
111
|
+
else {
|
|
112
|
+
return '';
|
|
113
|
+
}
|
|
86
114
|
}
|
|
87
|
-
return '';
|
|
88
115
|
}
|
|
89
116
|
navigateTo(tab) {
|
|
90
117
|
if (this.selectedTab !== tab) {
|
|
@@ -98,14 +125,14 @@ export class NavbarModuleComponent extends BaseComponent {
|
|
|
98
125
|
}
|
|
99
126
|
}
|
|
100
127
|
}
|
|
101
|
-
NavbarModuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
102
|
-
NavbarModuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
128
|
+
NavbarModuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavbarModuleComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
+
NavbarModuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NavbarModuleComponent, selector: "navbar-module", inputs: { sideNavHeight: "sideNavHeight", sideNavWidth: "sideNavWidth" }, providers: [ProviderService], usesInheritance: true, ngImport: i0, template: "<style>\n .navbarModule li {\n cursor: pointer;\n }\n .navbarModule li.active {\n border-start: 3px solid #d19b3d;\n }\n .navbarModule nav {\n width: 100%;\n }\n\n @media (min-width: 1200px) {\n .navbarModule {\n height: 95vh;\n margin-left: -10px;\n }\n\n hr {\n border-top: white 1px solid;\n }\n }\n\n @media (max-width: 1200px) {\n hr {\n display: none;\n }\n\n .navbarModule a {\n font-size: 18px !important;\n }\n }\n\n \n</style> \n\n<div style=\"margin-left: -15px; margin-right: -15px;\">\n <nav class=\"navbar navbar-expand-xl navbar-dark bg-dark flex-xl-column navbarModule\" [style.height]=\"sideNavHeight ? sideNavHeight + 'px' : ''\" [style.width]=\"sideNavWidth ? sideNavWidth : ''\">\n <div href=\"#\" style=\"color: white; font-size: 16px;\">\n {{ menuData.title }}\n </div>\n <button class=\"navbar-toggler\" type=\"button\" aria-controls=\"#navbarModuleNav\" data-bs-target=\"#navbarModuleNav\" data-bs-toggle=\"collapse\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-collapse collapse\" id=\"navbarModuleNav\" style=\"align-items:baseline; width: 100%; overflow-y: auto; overflow-x: hidden;\">\n <ul class=\"navbar-nav\" style=\"display: block; float: left; width: 100%;\">\n <div *ngFor=\"let tab of (menuData.tabs | filterNotEqual : 'params' : '0'); let i = index\">\n <div *ngIf=\"tab.params !== null && menuData.tabs[i - 1] && menuData.tabs[i - 1].params === null\">\n <hr>\n <div href=\"#\" style=\"color: white; font-size: 16px;\">\n Selected {{ menuData.module }}\n </div>\n <hr>\n <div style=\"color:white; margin-left: 5px; text-decoration: underline; font-size: 14px\">{{menuData.description_name}}:</div>\n <div style=\"color:white; margin-left: 8px; font-size: 12px\">{{menuData.description}}</div>\n <br />\n </div>\n <li [ngClass]=\"['nav-item', tabClass(tab)]\"data-bs-toggle=\"collapse\" data-bs-target=\"#navbarModuleNav\" [tourAnchor]=\"tab.tourAnchor\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" [routerLink]=\"[tab.params ? tab.link + '/' + tab.params : tab.link]\" routerLinkActive=\"active\">{{ tab.label }}</a>\n </li>\n </div>\n </ul>\n </div>\n </nav>\n</div>\n", styles: ["\n .navbarModule li {\n cursor: pointer;\n }\n .navbarModule li.active {\n border-start: 3px solid #d19b3d;\n }\n .navbarModule nav {\n width: 100%;\n }\n\n @media (min-width: 1200px) {\n .navbarModule {\n height: 95vh;\n margin-left: -10px;\n }\n\n hr {\n border-top: white 1px solid;\n }\n }\n\n @media (max-width: 1200px) {\n hr {\n display: none;\n }\n\n .navbarModule a {\n font-size: 18px !important;\n }\n }\n\n \n"], dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i3.NgbNavbar, selector: ".navbar" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.FilterNotEqualPipe, name: "filterNotEqual" }] });
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NavbarModuleComponent, decorators: [{
|
|
104
131
|
type: Component,
|
|
105
|
-
args: [{ providers: [ProviderService], selector: 'navbar-module', template: "<style>\n .navbarModule li {\n cursor: pointer;\n }\n .navbarModule li.active {\n border-
|
|
132
|
+
args: [{ providers: [ProviderService], selector: 'navbar-module', template: "<style>\n .navbarModule li {\n cursor: pointer;\n }\n .navbarModule li.active {\n border-start: 3px solid #d19b3d;\n }\n .navbarModule nav {\n width: 100%;\n }\n\n @media (min-width: 1200px) {\n .navbarModule {\n height: 95vh;\n margin-left: -10px;\n }\n\n hr {\n border-top: white 1px solid;\n }\n }\n\n @media (max-width: 1200px) {\n hr {\n display: none;\n }\n\n .navbarModule a {\n font-size: 18px !important;\n }\n }\n\n \n</style> \n\n<div style=\"margin-left: -15px; margin-right: -15px;\">\n <nav class=\"navbar navbar-expand-xl navbar-dark bg-dark flex-xl-column navbarModule\" [style.height]=\"sideNavHeight ? sideNavHeight + 'px' : ''\" [style.width]=\"sideNavWidth ? sideNavWidth : ''\">\n <div href=\"#\" style=\"color: white; font-size: 16px;\">\n {{ menuData.title }}\n </div>\n <button class=\"navbar-toggler\" type=\"button\" aria-controls=\"#navbarModuleNav\" data-bs-target=\"#navbarModuleNav\" data-bs-toggle=\"collapse\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-collapse collapse\" id=\"navbarModuleNav\" style=\"align-items:baseline; width: 100%; overflow-y: auto; overflow-x: hidden;\">\n <ul class=\"navbar-nav\" style=\"display: block; float: left; width: 100%;\">\n <div *ngFor=\"let tab of (menuData.tabs | filterNotEqual : 'params' : '0'); let i = index\">\n <div *ngIf=\"tab.params !== null && menuData.tabs[i - 1] && menuData.tabs[i - 1].params === null\">\n <hr>\n <div href=\"#\" style=\"color: white; font-size: 16px;\">\n Selected {{ menuData.module }}\n </div>\n <hr>\n <div style=\"color:white; margin-left: 5px; text-decoration: underline; font-size: 14px\">{{menuData.description_name}}:</div>\n <div style=\"color:white; margin-left: 8px; font-size: 12px\">{{menuData.description}}</div>\n <br />\n </div>\n <li [ngClass]=\"['nav-item', tabClass(tab)]\"data-bs-toggle=\"collapse\" data-bs-target=\"#navbarModuleNav\" [tourAnchor]=\"tab.tourAnchor\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" [routerLink]=\"[tab.params ? tab.link + '/' + tab.params : tab.link]\" routerLinkActive=\"active\">{{ tab.label }}</a>\n </li>\n </div>\n </ul>\n </div>\n </nav>\n</div>\n" }]
|
|
106
133
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ProviderService }]; }, propDecorators: { sideNavHeight: [{
|
|
107
134
|
type: Input
|
|
108
135
|
}], sideNavWidth: [{
|
|
109
136
|
type: Input
|
|
110
137
|
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW1vZHVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9uYXZiYXItbW9kdWxlL25hdmJhci1tb2R1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1vZHVsZS9uYXZiYXItbW9kdWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt2RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUXZFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBbUJ2RCxZQUFvQixNQUF5QixFQUFVLFNBQTBCO1FBQ2hGLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURFLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFkakYsYUFBUSxHQUFnQjtZQUN2QixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxJQUFJO1lBQ1osV0FBVyxFQUFFLElBQUk7WUFDakIsZ0JBQWdCLEVBQUUsYUFBYTtZQUMvQixJQUFJLEVBQUUsRUFBRTtTQUNSLENBQUM7UUFFRixnQkFBVyxHQUFtQixJQUFJLENBQUM7UUFDbkMsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBSXBCLENBQUM7SUFFRCxRQUFRO1FBRVAsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFOUQs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QUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMvQztpQkFDSTtnQkFDSixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2xFO1NBQ0Q7SUFDRixDQUFDOztrSEFqSFcscUJBQXFCO3NHQUFyQixxQkFBcUIsa0hBTHRCLENBQUMsZUFBZSxDQUFDLGlEQ1I3Qix3dUZBZ0VBOzJGRG5EYSxxQkFBcUI7a0JBTmpDLFNBQVM7Z0NBQ0UsQ0FBQyxlQUFlLENBQUMsWUFDbEIsZUFBZTtzSUFNaEIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uQ2FuY2VsIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5hdmJhck1vZGVsLCBOYXZiYXJUYWJNb2RlbCB9IGZyb20gJy4vbmF2YmFyLW1vZHVsZS5tb2RlbCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmVzb2x2ZWlvLWNsYXNzJztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHNlbGVjdG9yOiAnbmF2YmFyLW1vZHVsZScsXG5cdHRlbXBsYXRlVXJsOiAnLi9uYXZiYXItbW9kdWxlLmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIE5hdmJhck1vZHVsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuXG5cdEBJbnB1dCgpIHNpZGVOYXZIZWlnaHQ6IG51bWJlcjtcblx0QElucHV0KCkgc2lkZU5hdldpZHRoOiBudW1iZXI7XG5cblx0bWVudURhdGE6IE5hdmJhck1vZGVsID0ge1xuXHRcdHRpdGxlOiAnJyxcblx0XHRtb2R1bGU6IG51bGwsXG5cdFx0ZGVzY3JpcHRpb246IG51bGwsXG5cdFx0ZGVzY3JpcHRpb25fbmFtZTogJ0Rlc2NyaXB0aW9uJyxcblx0XHR0YWJzOiBbXVxuXHR9O1xuXG5cdHNlbGVjdGVkVGFiOiBOYXZiYXJUYWJNb2RlbCA9IG51bGw7XG5cdGN1cnJlbnRSb3V0ZTogU3RyaW5nID0gJyc7XG5cblx0cm91dGVyRXZlbnRzJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcblx0dG91clN0YXJ0ZWQgPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UpIHtcblx0XHRzdXBlcihfc2VydmljZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cblx0XHR0aGlzLnRvdXJTdGFydGVkID0gdGhpcy5fc2VydmljZXMuX2FwcC50b3VyU3RhcnRlZC5nZXRWYWx1ZSgpO1xuXG5cdFx0dGhpcy5yb3V0ZXJFdmVudHMkLnB1c2godGhpcy5fc2VydmljZXMuX3JvdXRlci5ldmVudHNcblx0XHRcdC8vLmZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpXG5cdFx0XHQuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwucmVwbGFjZSgvXFwvW2EtZjAtOV17MjR9JC8sICcnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJykgIT09IHRoaXMuY3VycmVudFJvdXRlIHx8ICF0aGlzLnNlbGVjdGVkVGFiKSB7XG5cdFx0XHRcdFx0dGhpcy5zZWxlY3RUYWJGcm9tUm91dGVyKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0KTtcblxuXHRcdHRoaXMucm91dGVyRXZlbnRzJC5wdXNoKHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXZlbnRzXG5cdFx0XHQvLy5maWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsKVxuXHRcdFx0LnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIudXJsLnJlcGxhY2UoL1xcL1thLWYwLTldezI0fSQvLCAnJykucmVwbGFjZSgvXFw/LiskLywgJycpICE9PSB0aGlzLmN1cnJlbnRSb3V0ZSB8fCAhdGhpcy5zZWxlY3RlZFRhYikge1xuXHRcdFx0XHRcdHRoaXMuc2VsZWN0VGFiRnJvbVJvdXRlcigpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdCk7XG5cblx0XHR0aGlzLnJvdXRlckV2ZW50cyQucHVzaCh0aGlzLl9zZXJ2aWNlcy5fYXBwLm5hdmJhck1vZHVsZURhdGEuc3Vic2NyaWJlKGRhdGEgPT4ge1xuXHRcdFx0dGhpcy5tZW51RGF0YSA9IGRhdGE7XG5cdFx0XHRpZiAodGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwucmVwbGFjZSgvXFwvW2EtZjAtOV17MjR9JC8sICcnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJykgIT09IHRoaXMuY3VycmVudFJvdXRlIHx8ICF0aGlzLnNlbGVjdGVkVGFiKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0VGFiRnJvbVJvdXRlcigpO1xuXHRcdFx0fVxuXHRcdH0pKTtcblxuXHRcdHRoaXMucm91dGVyRXZlbnRzJC5wdXNoKHRoaXMuX3NlcnZpY2VzLl9hcHAudG91clN0YXJ0ZWQuc3Vic2NyaWJlKHRvdXJTdGFydGVkID0+IHtcblx0XHRcdHRoaXMudG91clN0YXJ0ZWQgPSB0b3VyU3RhcnRlZDtcblx0XHR9KSk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLnJvdXRlckV2ZW50cyQuZm9yRWFjaChzdWIgPT4ge1xuXHRcdFx0c3ViLnVuc3Vic2NyaWJlKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRzZWxlY3RUYWJGcm9tUm91dGVyKCkge1xuXHRcdGlmICh0aGlzLm1lbnVEYXRhKSB7XG5cdFx0XHRpZiAodGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwgPT09ICcvJykge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5tZW51RGF0YS50YWJzWzBdO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuY3VycmVudFJvdXRlID0gdGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwucmVwbGFjZSgvXFwvW2EtZjAtOV17MjR9JC8sICcnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJyk7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSBudWxsO1xuXG5cdFx0XHRcdHdoaWxlICghdGhpcy5zZWxlY3RlZFRhYiAmJiB0aGlzLmN1cnJlbnRSb3V0ZS5zcGxpdCgnLycpLmxlbmd0aCA+IDIpIHtcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubWVudURhdGEudGFicy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0bGV0IHRhYiA9IHRoaXMubWVudURhdGEudGFic1tpXTtcblx0XG5cdFx0XHRcdFx0XHRpZiAodGFiLmxpbmsgPT09IHRoaXMuY3VycmVudFJvdXRlKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWI7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHRoaXMuY3VycmVudFJvdXRlID0gdGhpcy5jdXJyZW50Um91dGUucmVwbGFjZSgvKFxcL1teXFwvXSskKS8sICcnKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICghdGhpcy5zZWxlY3RlZFRhYikge1xuXHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLm1lbnVEYXRhLnRhYnNbMF07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHR0YWJDbGFzcyh0YWI6IE5hdmJhclRhYk1vZGVsKSB7XG5cdFx0aWYgKHRoaXMuc2VsZWN0ZWRUYWIpIHtcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkVGFiLmxhYmVsID09PSB0YWIubGFiZWwpIHtcblx0XHRcdFx0cmV0dXJuICdhY3RpdmUnO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdG5hdmlnYXRlVG8odGFiOiBOYXZiYXJUYWJNb2RlbCkge1xuXHRcdGlmICh0aGlzLnNlbGVjdGVkVGFiICE9PSB0YWIpIHtcblx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWI7XG5cblx0XHRcdGlmICh0YWIucGFyYW1zID09PSBudWxsKSB7XG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0YWIubGluayk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhYi5saW5rICsgJy8nICsgdGFiLnBhcmFtcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCI8c3R5bGU+XG4gICAgLm5hdmJhck1vZHVsZSBsaSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgLm5hdmJhck1vZHVsZSBsaS5hY3RpdmUge1xuICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNkMTliM2Q7XG4gICAgfVxuICAgIC5uYXZiYXJNb2R1bGUgbmF2IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgICAubmF2YmFyTW9kdWxlIHtcbiAgICAgICAgICAgIGhlaWdodDogOTV2aDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGhyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHdoaXRlIDFweCBzb2xpZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgaHIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXZiYXJNb2R1bGUgYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFxuPC9zdHlsZT4gXG5cbjxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTE1cHg7IG1hcmdpbi1yaWdodDogLTE1cHg7XCI+XG4gICAgPG5hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLXhsIG5hdmJhci1kYXJrIGJnLWRhcmsgZmxleC14bC1jb2x1bW4gbmF2YmFyTW9kdWxlXCIgW3N0eWxlLmhlaWdodF09XCJzaWRlTmF2SGVpZ2h0ID8gc2lkZU5hdkhlaWdodCArICdweCcgOiAnJ1wiIFtzdHlsZS53aWR0aF09XCJzaWRlTmF2V2lkdGggPyBzaWRlTmF2V2lkdGggOiAnJ1wiPlxuICAgICAgICA8ZGl2IGhyZWY9XCIjXCIgc3R5bGU9XCJjb2xvcjogd2hpdGU7IGZvbnQtc2l6ZTogMTZweDtcIj5cbiAgICAgICAgICAgIHt7IG1lbnVEYXRhLnRpdGxlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1jb250cm9scz1cIiNuYXZiYXJNb2R1bGVOYXZcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNb2R1bGVOYXZcIiBkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBuYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlIGNvbGxhcHNlXCIgaWQ9XCJuYXZiYXJNb2R1bGVOYXZcIiBzdHlsZT1cImFsaWduLWl0ZW1zOmJhc2VsaW5lOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuO1wiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2YmFyLW5hdlwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwJTtcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0YWIgb2YgKG1lbnVEYXRhLnRhYnMgfCBmaWx0ZXJOb3RFcXVhbCA6ICdwYXJhbXMnIDogJzAnKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFiLnBhcmFtcyAhPT0gbnVsbCAmJiBtZW51RGF0YS50YWJzW2kgLSAxXSAmJiBtZW51RGF0YS50YWJzW2kgLSAxXS5wYXJhbXMgPT09IG51bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxocj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaHJlZj1cIiNcIiBzdHlsZT1cImNvbG9yOiB3aGl0ZTsgZm9udC1zaXplOiAxNnB4O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkIHt7IG1lbnVEYXRhLm1vZHVsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiY29sb3I6d2hpdGU7IG1hcmdpbi1sZWZ0OiA1cHg7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBmb250LXNpemU6IDE0cHhcIj57e21lbnVEYXRhLmRlc2NyaXB0aW9uX25hbWV9fTo8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJjb2xvcjp3aGl0ZTsgbWFyZ2luLWxlZnQ6IDhweDsgIGZvbnQtc2l6ZTogMTJweFwiPnt7bWVudURhdGEuZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiWyduYXYtaXRlbScsIHRhYkNsYXNzKHRhYildXCJkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS10YXJnZXQ9XCIjbmF2YmFyTW9kdWxlTmF2XCIgW3RvdXJBbmNob3JdPVwidGFiLnRvdXJBbmNob3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIFtyb3V0ZXJMaW5rXT1cIlt0YWIucGFyYW1zID8gdGFiLmxpbmsgKyAnLycgKyB0YWIucGFyYW1zIDogdGFiLmxpbmtdXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPnt7IHRhYi5sYWJlbCB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmF2PlxuPC9kaXY+XG4iXX0=
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW1vZHVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9uYXZiYXItbW9kdWxlL25hdmJhci1tb2R1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1vZHVsZS9uYXZiYXItbW9kdWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt2RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUXZFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBbUJ2RCxZQUFvQixNQUF5QixFQUFVLFNBQTBCO1FBQ2hGLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURFLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFkakYsYUFBUSxHQUFnQjtZQUN2QixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxJQUFJO1lBQ1osV0FBVyxFQUFFLElBQUk7WUFDakIsZ0JBQWdCLEVBQUUsYUFBYTtZQUMvQixJQUFJLEVBQUUsRUFBRTtTQUNSLENBQUM7UUFFRixnQkFBVyxHQUFtQixJQUFJLENBQUM7UUFDbkMsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBSXBCLENBQUM7SUFFRCxRQUFRO1FBRVAsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFOUQs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T0FBTyxRQUFRLENBQUM7YUFDaEI7aUJBQ0k7Z0JBQ0osT0FBTyxFQUFFLENBQUM7YUFDVjtTQUNEO0lBQ0YsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFtQjtRQUM3QixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssR0FBRyxFQUFFO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1lBRXZCLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0M7aUJBQ0k7Z0JBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNsRTtTQUNEO0lBQ0YsQ0FBQzs7a0hBN0lXLHFCQUFxQjtzR0FBckIscUJBQXFCLGtIQUx0QixDQUFDLGVBQWUsQ0FBQyxpRENSN0IscXZGQWdFQTsyRkRuRGEscUJBQXFCO2tCQU5qQyxTQUFTO2dDQUNFLENBQUMsZUFBZSxDQUFDLFlBQ2xCLGVBQWU7c0lBTWhCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkNhbmNlbCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOYXZiYXJNb2RlbCwgTmF2YmFyVGFiTW9kZWwgfSBmcm9tICcuL25hdmJhci1tb2R1bGUubW9kZWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFByb3ZpZGVyU2VydmljZSwgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Jlc29sdmVpby1jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuXHRwcm92aWRlcnM6IFtQcm92aWRlclNlcnZpY2VdLFxuXHRzZWxlY3RvcjogJ25hdmJhci1tb2R1bGUnLFxuXHR0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLW1vZHVsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5cbmV4cG9ydCBjbGFzcyBOYXZiYXJNb2R1bGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kgeyBcblxuXHRASW5wdXQoKSBzaWRlTmF2SGVpZ2h0OiBudW1iZXI7XG5cdEBJbnB1dCgpIHNpZGVOYXZXaWR0aDogbnVtYmVyO1xuXG5cdG1lbnVEYXRhOiBOYXZiYXJNb2RlbCA9IHtcblx0XHR0aXRsZTogJycsXG5cdFx0bW9kdWxlOiBudWxsLFxuXHRcdGRlc2NyaXB0aW9uOiBudWxsLFxuXHRcdGRlc2NyaXB0aW9uX25hbWU6ICdEZXNjcmlwdGlvbicsXG5cdFx0dGFiczogW11cblx0fTtcblxuXHRzZWxlY3RlZFRhYjogTmF2YmFyVGFiTW9kZWwgPSBudWxsO1xuXHRjdXJyZW50Um91dGU6IFN0cmluZyA9ICcnO1xuXG5cdHJvdXRlckV2ZW50cyQ6IFN1YnNjcmlwdGlvbltdID0gW107XG5cdHRvdXJTdGFydGVkID0gZmFsc2U7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9zZXJ2aWNlczogUHJvdmlkZXJTZXJ2aWNlKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXG5cdFx0dGhpcy50b3VyU3RhcnRlZCA9IHRoaXMuX3NlcnZpY2VzLl9hcHAudG91clN0YXJ0ZWQuZ2V0VmFsdWUoKTtcblxuXHRcdHRoaXMucm91dGVyRXZlbnRzJC5wdXNoKHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXZlbnRzXG5cdFx0XHQvLy5maWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKVxuXHRcdFx0LnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25FbmQpID0+IHtcblx0XHRcdFx0dGhpcy5zZWxlY3RUYWJGcm9tUm91dGVyKCk7XG5cdFx0XHR9KVxuXHRcdCk7XG5cblx0XHR0aGlzLnJvdXRlckV2ZW50cyQucHVzaCh0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmV2ZW50c1xuXHRcdFx0Ly8uZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbClcblx0XHRcdC5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKSA9PiB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0VGFiRnJvbVJvdXRlcigpO1xuXHRcdFx0fSlcblx0XHQpO1xuXG5cdFx0dGhpcy5yb3V0ZXJFdmVudHMkLnB1c2godGhpcy5fc2VydmljZXMuX2FwcC5uYXZiYXJNb2R1bGVEYXRhLnN1YnNjcmliZShkYXRhID0+IHtcblx0XHRcdHRoaXMubWVudURhdGEgPSBkYXRhO1xuXG5cdFx0XHRpZiAoIXRoaXMuc2VsZWN0ZWRUYWIgJiYgdGhpcy5tZW51RGF0YS50YWJzLmxlbmd0aCkge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5tZW51RGF0YS50YWJzWzBdO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZFRhYikge1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubWVudURhdGEudGFicy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdGxldCB0YWJMaW5rID0gJyc7XG5cdFx0XHRcdFx0aWYgKHRoaXMubWVudURhdGEudGFic1tpXS5saW5rLnN0YXJ0c1dpdGgoJy9jdXN0b21lci1wb3J0YWwvZnJhYycpIHx8IHRoaXMubWVudURhdGEudGFic1tpXS5saW5rLnN0YXJ0c1dpdGgoJy9jdXN0b21lci1wb3J0YWwvcHJvZHVjdGlvbicpKSB7XG5cdFx0XHRcdFx0XHR0YWJMaW5rID0gdGhpcy5tZW51RGF0YS50YWJzW2ldLmxpbms7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0dGFiTGluayA9IHRoaXMubWVudURhdGEudGFic1tpXS5saW5rLnJlcGxhY2UoL14oXFwvWy1hLXpdK1xcL1teXFwvXSspXFwvLiokLywgJyQxJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICh0YWJMaW5rID09PSB0aGlzLmN1cnJlbnRSb3V0ZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RlZFRhYiA9IHRoaXMubWVudURhdGEudGFic1tpXTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLm1lbnVEYXRhLnRhYnNbMF07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KSk7XG5cblx0XHR0aGlzLnJvdXRlckV2ZW50cyQucHVzaCh0aGlzLl9zZXJ2aWNlcy5fYXBwLnRvdXJTdGFydGVkLnN1YnNjcmliZSh0b3VyU3RhcnRlZCA9PiB7XG5cdFx0XHR0aGlzLnRvdXJTdGFydGVkID0gdG91clN0YXJ0ZWQ7XG5cdFx0fSkpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5yb3V0ZXJFdmVudHMkLmZvckVhY2goc3ViID0+IHtcblx0XHRcdHN1Yi51bnN1YnNjcmliZSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0c2VsZWN0VGFiRnJvbVJvdXRlcigpIHtcblx0XHRpZiAodGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwgPT09ICcvJykge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5tZW51RGF0YS50YWJzWzBdO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSBudWxsO1xuXHRcdFx0bGV0IHJvdXRlckxpbmsgPSAnJztcblx0XHRcdFxuXHRcdFx0aWYgKHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIudXJsLnN0YXJ0c1dpdGgoJy9jdXN0b21lci1wb3J0YWwvZnJhYycpIHx8IHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIudXJsLnN0YXJ0c1dpdGgoJy9jdXN0b21lci1wb3J0YWwvcHJvZHVjdGlvbicpKSB7XG5cdFx0XHRcdHJvdXRlckxpbmsgPSB0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLnVybDtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRyb3V0ZXJMaW5rID0gdGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwucmVwbGFjZSgvXihcXC9bLWEtel0rXFwvW15cXC9dKylcXC8uKiQvLCAnJDEnKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHJvdXRlckxpbmsuaW5jbHVkZXMoJz8nKSkge1xuXHRcdFx0XHRyb3V0ZXJMaW5rID0gcm91dGVyTGluay5zdWJzdHJpbmcoMCwgcm91dGVyTGluay5pbmRleE9mKCc/JykpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmN1cnJlbnRSb3V0ZSA9IHJvdXRlckxpbms7XG5cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5tZW51RGF0YS50YWJzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGxldCB0YWJMaW5rID0gJyc7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWVudURhdGEudGFic1tpXS5saW5rLnN0YXJ0c1dpdGgoJy9jdXN0b21lci1wb3J0YWwvZnJhYycpIHx8IHRoaXMubWVudURhdGEudGFic1tpXS5saW5rLnN0YXJ0c1dpdGgoJy9jdXN0b21lci1wb3J0YWwvcHJvZHVjdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhYkxpbmsgPSB0aGlzLm1lbnVEYXRhLnRhYnNbaV0ubGluaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRhYkxpbmsgPSB0aGlzLm1lbnVEYXRhLnRhYnNbaV0ubGluay5yZXBsYWNlKC9eKFxcL1stYS16XStcXC9bXlxcL10rKVxcLy4qJC8sICckMScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGFiTGluayA9PT0gcm91dGVyTGluaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5tZW51RGF0YS50YWJzW2ldO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gbnVsbCkge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5tZW51RGF0YS50YWJzLmZpbHRlcihhID0+IGEubGluayA9PT0gcm91dGVyTGluaylbMF0gPyB0aGlzLm1lbnVEYXRhLnRhYnMuZmlsdGVyKGEgPT4gYS5saW5rID09PSByb3V0ZXJMaW5rKVswXSA6IHRoaXMubWVudURhdGEudGFic1swXTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHR0YWJDbGFzcyh0YWI6IE5hdmJhclRhYk1vZGVsKSB7XG5cdFx0aWYgKHRoaXMuc2VsZWN0ZWRUYWIpIHtcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkVGFiLmxhYmVsID09PSB0YWIubGFiZWwpIHtcblx0XHRcdFx0cmV0dXJuICdhY3RpdmUnO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHJldHVybiAnJztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRuYXZpZ2F0ZVRvKHRhYjogTmF2YmFyVGFiTW9kZWwpIHtcblx0XHRpZiAodGhpcy5zZWxlY3RlZFRhYiAhPT0gdGFiKSB7XG5cdFx0XHR0aGlzLnNlbGVjdGVkVGFiID0gdGFiO1xuXG5cdFx0XHRpZiAodGFiLnBhcmFtcyA9PT0gbnVsbCkge1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGFiLmxpbmspO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0YWIubGluayArICcvJyArIHRhYi5wYXJhbXMpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiPHN0eWxlPlxuICAgIC5uYXZiYXJNb2R1bGUgbGkge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICAgIC5uYXZiYXJNb2R1bGUgbGkuYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLXN0YXJ0OiAzcHggc29saWQgI2QxOWIzZDtcbiAgICB9XG4gICAgLm5hdmJhck1vZHVsZSBuYXYge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgIC5uYXZiYXJNb2R1bGUge1xuICAgICAgICAgICAgaGVpZ2h0OiA5NXZoO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgaHIge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogd2hpdGUgMXB4IHNvbGlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgICBociB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5hdmJhck1vZHVsZSBhIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgXG48L3N0eWxlPiBcblxuPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMTVweDsgbWFyZ2luLXJpZ2h0OiAtMTVweDtcIj5cbiAgICA8bmF2IGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQteGwgbmF2YmFyLWRhcmsgYmctZGFyayBmbGV4LXhsLWNvbHVtbiBuYXZiYXJNb2R1bGVcIiBbc3R5bGUuaGVpZ2h0XT1cInNpZGVOYXZIZWlnaHQgPyBzaWRlTmF2SGVpZ2h0ICsgJ3B4JyA6ICcnXCIgW3N0eWxlLndpZHRoXT1cInNpZGVOYXZXaWR0aCA/IHNpZGVOYXZXaWR0aCA6ICcnXCI+XG4gICAgICAgIDxkaXYgaHJlZj1cIiNcIiBzdHlsZT1cImNvbG9yOiB3aGl0ZTsgZm9udC1zaXplOiAxNnB4O1wiPlxuICAgICAgICAgICAge3sgbWVudURhdGEudGl0bGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJuYXZiYXItdG9nZ2xlclwiIHR5cGU9XCJidXR0b25cIiBhcmlhLWNvbnRyb2xzPVwiI25hdmJhck1vZHVsZU5hdlwiIGRhdGEtYnMtdGFyZ2V0PVwiI25hdmJhck1vZHVsZU5hdlwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXItaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXZiYXItY29sbGFwc2UgY29sbGFwc2VcIiBpZD1cIm5hdmJhck1vZHVsZU5hdlwiIHN0eWxlPVwiYWxpZ24taXRlbXM6YmFzZWxpbmU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47XCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJuYXZiYXItbmF2XCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jazsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMDAlO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRhYiBvZiAobWVudURhdGEudGFicyB8IGZpbHRlck5vdEVxdWFsIDogJ3BhcmFtcycgOiAnMCcpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YWIucGFyYW1zICE9PSBudWxsICYmIG1lbnVEYXRhLnRhYnNbaSAtIDFdICYmIG1lbnVEYXRhLnRhYnNbaSAtIDFdLnBhcmFtcyA9PT0gbnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGhyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBocmVmPVwiI1wiIHN0eWxlPVwiY29sb3I6IHdoaXRlOyBmb250LXNpemU6IDE2cHg7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWQge3sgbWVudURhdGEubW9kdWxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxocj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJjb2xvcjp3aGl0ZTsgbWFyZ2luLWxlZnQ6IDVweDsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IGZvbnQtc2l6ZTogMTRweFwiPnt7bWVudURhdGEuZGVzY3JpcHRpb25fbmFtZX19OjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImNvbG9yOndoaXRlOyBtYXJnaW4tbGVmdDogOHB4OyAgZm9udC1zaXplOiAxMnB4XCI+e3ttZW51RGF0YS5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJbJ25hdi1pdGVtJywgdGFiQ2xhc3ModGFiKV1cImRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLWJzLXRhcmdldD1cIiNuYXZiYXJNb2R1bGVOYXZcIiBbdG91ckFuY2hvcl09XCJ0YWIudG91ckFuY2hvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIFtjbGFzcy5kaXNhYmxlZF09XCJ0b3VyU3RhcnRlZCA/IHRydWUgOiBudWxsXCIgW3JvdXRlckxpbmtdPVwiW3RhYi5wYXJhbXMgPyB0YWIubGluayArICcvJyArIHRhYi5wYXJhbXMgOiB0YWIubGlua11cIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+e3sgdGFiLmxhYmVsIH19PC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uYXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -27,9 +27,9 @@ export class ResponsiveButtonGroupComponent extends BaseComponent {
|
|
|
27
27
|
this.windowSizeSubscription.unsubscribe();
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
ResponsiveButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
31
|
-
ResponsiveButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
30
|
+
ResponsiveButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResponsiveButtonGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ResizeService }, { token: i2.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
ResponsiveButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ResponsiveButtonGroupComponent, selector: "responsive-button-group", inputs: { collapseSize: "collapseSize" }, providers: [ProviderService], usesInheritance: true, ngImport: i0, template: "<style>\n\t@media screen and (min-width: 900px) {\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: inline-flex !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup button {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup a {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\t}\n\n\t@media screen and (max-width: 900px) {\n\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: inherit !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup button {\n\t\t\tmargin-top: 5px !important;\n\t\t\twidth: 100% !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup a {\n\t\t\tmargin-top: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n</style>\n\n<div [ngClass]=\"windowSize <= collapseSize ? ['btn-group-vertical', 'xsBtnGroup'] : ['btn-group', 'lgBtnGroup']\">\n\t<ng-content></ng-content>\n</div>\n", styles: ["\n\t@media screen and (min-width: 900px) {\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: inline-flex !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup button {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup a {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\t}\n\n\t@media screen and (max-width: 900px) {\n\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: inherit !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup button {\n\t\t\tmargin-top: 5px !important;\n\t\t\twidth: 100% !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup a {\n\t\t\tmargin-top: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResponsiveButtonGroupComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{ providers: [ProviderService], selector: 'responsive-button-group', template: "<style>\n\t@media screen and (min-width: 900px) {\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: inline-flex !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup button {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup a {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\t}\n\n\t@media screen and (max-width: 900px) {\n\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: inherit !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup button {\n\t\t\tmargin-top: 5px !important;\n\t\t\twidth: 100% !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup a {\n\t\t\tmargin-top: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n</style>\n\n<div [ngClass]=\"windowSize <= collapseSize ? ['btn-group-vertical', 'xsBtnGroup'] : ['btn-group', 'lgBtnGroup']\">\n\t<ng-content></ng-content>\n</div>\n" }]
|
|
35
35
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ResizeService }, { type: i2.ProviderService }]; }, propDecorators: { collapseSize: [{
|
|
@@ -4,10 +4,10 @@ import { ResponsiveButtonGroupComponent } from './responsive-button-group.compon
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class ResponsiveButtonGroupModule {
|
|
6
6
|
}
|
|
7
|
-
ResponsiveButtonGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8
|
-
ResponsiveButtonGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
9
|
-
ResponsiveButtonGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7
|
+
ResponsiveButtonGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResponsiveButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
ResponsiveButtonGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ResponsiveButtonGroupModule, declarations: [ResponsiveButtonGroupComponent], imports: [CommonModule], exports: [ResponsiveButtonGroupComponent] });
|
|
9
|
+
ResponsiveButtonGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResponsiveButtonGroupModule, imports: [CommonModule] });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResponsiveButtonGroupModule, decorators: [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
13
|
imports: [
|
|
@@ -160,9 +160,9 @@ export class SchedulerComponent extends BaseComponent {
|
|
|
160
160
|
this.size_cell.width += 10;
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
|
-
SchedulerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
164
|
-
SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
163
|
+
SchedulerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SchedulerComponent, deps: [{ token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
164
|
+
SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SchedulerComponent, selector: "scheduler", host: { listeners: { "mouseup": "onMouseup()", "mousedown": "onMousedown($event)", "mousemove": "onMousemove($event)", "mouseleave": "onMouseLeave($event)" } }, providers: [ProviderService], viewQueries: [{ propertyName: "svgChart", first: true, predicate: ["svgChart"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<style>\n\t.bar {\n\t\tfill: red; /* changes the background */\n\t\theight: 21px;\n\t\ttransition: fill .3s ease;\n\t\tcursor: pointer;\n\t\tfont-family: Helvetica, sans-serif;\n\t}\n\n\t.bar text {\n\t\tcolor: black;\n\t}\n\n\t.bar:hover,\n\t.bar:focus {\n\t\tfill: black;\n\t}\n\n\t.bar:hover text,\n\t.bar:focus text {\n\t\tfill: red;\n\t}\n\n\t.year {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.month {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.day {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.smallText {\n\t\tfont-size: 4px;\n\t}\n</style>\n\n<div class=\"scheduler\">\n\n\t<button class=\"btn btn-warning\" type=\"button\" (mouseenter)=\"overBackwards()\" (mouseleave)=\"leftBackwards()\">Go Backwards</button>\n\t<button class=\"btn btn-success\" type=\"button\" (mouseenter)=\"overForward()\" (mouseleave)=\"leftForward()\">Go Forward</button>\n\n\t<button style=\"margin-left: 20px;\" class=\"btn btn-warning\" type=\"button\" (click)=\"zoomOut()\">Zoom Out</button>\n\t<button class=\"btn btn-success\" type=\"button\" (click)=\"zoomIn()\">Zoom In</button>\n\n\t<svg class=\"chart\" width=\"100%\" height=\"100%\" aria-labelledby=\"title desc\" role=\"img\" #svgChart>\n\t\t<title id=\"title\">Scheduler</title>\n\t\t<desc id=\"desc\">Scheduler</desc>\n\n\t\t<g class=\"year\">\n\t\t\t<ng-container *ngFor=\"let year of buildYears()\">\n\t\t\t\t<rect [attr.width]=\"(year.index_end - year.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"year.index_start * size_cell.width\"></rect>\n\t\t\t\t<svg [attr.width]=\"(year.index_end - year.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"year.index_start * size_cell.width\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\">{{year.year}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\t\t<g class=\"month\">\n\t\t\t<ng-container *ngFor=\"let month of buildMonths()\">\n\t\t\t\t<rect [attr.width]=\"(month.index_end - month.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"month.index_start * size_cell.width\" [attr.y]=\"size_cell.height\"></rect>\n\t\t\t\t<svg [attr.width]=\"(month.index_end - month.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"month.index_start * size_cell.width\" [attr.y]=\"size_cell.height\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\">{{month.month}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\t\t<g class=\"day\">\n\t\t\t<ng-container *ngFor=\"let day of buildDays()\">\n\t\t\t\t<rect [attr.width]=\"size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"day.index * size_cell.width\" [attr.y]=\"size_cell.height * 2\"></rect>\n\t\t\t\t<svg [attr.width]=\"size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"day.index * size_cell.width\" [attr.y]=\"size_cell.height * 2\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\" [style.font-size.px]=\"[size_cell.width > 10 ? 12 : 6]\">{{day.day}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\n\n\t\t<!-- <g class=\"bar\">\n\t\t\t<rect width=\"40\" height=\"19\"></rect>\n\t\t\t<text x=\"45\" y=\"9.5\" dy=\".35em\">4 apples</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"80\" height=\"19\" y=\"20\"></rect>\n\t\t\t<text x=\"85\" y=\"28\" dy=\".35em\">8 bananas</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"150\" height=\"19\" y=\"40\"></rect>\n\t\t\t<text x=\"150\" y=\"48\" dy=\".35em\">15 kiwis</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"160\" height=\"19\" y=\"60\"></rect>\n\t\t\t<text x=\"161\" y=\"68\" dy=\".35em\">16 oranges</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"230\" height=\"19\" y=\"80\"></rect>\n\t\t\t<text x=\"235\" y=\"88\" dy=\".35em\">23 lemons</text>\n\t\t</g> -->\n\t</svg>\n</div>\n", styles: ["\n\t.bar {\n\t\tfill: red; /* changes the background */\n\t\theight: 21px;\n\t\ttransition: fill .3s ease;\n\t\tcursor: pointer;\n\t\tfont-family: Helvetica, sans-serif;\n\t}\n\n\t.bar text {\n\t\tcolor: black;\n\t}\n\n\t.bar:hover,\n\t.bar:focus {\n\t\tfill: black;\n\t}\n\n\t.bar:hover text,\n\t.bar:focus text {\n\t\tfill: red;\n\t}\n\n\t.year {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.month {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.day {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.smallText {\n\t\tfont-size: 4px;\n\t}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SchedulerComponent, decorators: [{
|
|
166
166
|
type: Component,
|
|
167
167
|
args: [{ providers: [ProviderService], selector: 'scheduler', template: "<style>\n\t.bar {\n\t\tfill: red; /* changes the background */\n\t\theight: 21px;\n\t\ttransition: fill .3s ease;\n\t\tcursor: pointer;\n\t\tfont-family: Helvetica, sans-serif;\n\t}\n\n\t.bar text {\n\t\tcolor: black;\n\t}\n\n\t.bar:hover,\n\t.bar:focus {\n\t\tfill: black;\n\t}\n\n\t.bar:hover text,\n\t.bar:focus text {\n\t\tfill: red;\n\t}\n\n\t.year {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.month {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.day {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.smallText {\n\t\tfont-size: 4px;\n\t}\n</style>\n\n<div class=\"scheduler\">\n\n\t<button class=\"btn btn-warning\" type=\"button\" (mouseenter)=\"overBackwards()\" (mouseleave)=\"leftBackwards()\">Go Backwards</button>\n\t<button class=\"btn btn-success\" type=\"button\" (mouseenter)=\"overForward()\" (mouseleave)=\"leftForward()\">Go Forward</button>\n\n\t<button style=\"margin-left: 20px;\" class=\"btn btn-warning\" type=\"button\" (click)=\"zoomOut()\">Zoom Out</button>\n\t<button class=\"btn btn-success\" type=\"button\" (click)=\"zoomIn()\">Zoom In</button>\n\n\t<svg class=\"chart\" width=\"100%\" height=\"100%\" aria-labelledby=\"title desc\" role=\"img\" #svgChart>\n\t\t<title id=\"title\">Scheduler</title>\n\t\t<desc id=\"desc\">Scheduler</desc>\n\n\t\t<g class=\"year\">\n\t\t\t<ng-container *ngFor=\"let year of buildYears()\">\n\t\t\t\t<rect [attr.width]=\"(year.index_end - year.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"year.index_start * size_cell.width\"></rect>\n\t\t\t\t<svg [attr.width]=\"(year.index_end - year.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"year.index_start * size_cell.width\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\">{{year.year}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\t\t<g class=\"month\">\n\t\t\t<ng-container *ngFor=\"let month of buildMonths()\">\n\t\t\t\t<rect [attr.width]=\"(month.index_end - month.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"month.index_start * size_cell.width\" [attr.y]=\"size_cell.height\"></rect>\n\t\t\t\t<svg [attr.width]=\"(month.index_end - month.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"month.index_start * size_cell.width\" [attr.y]=\"size_cell.height\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\">{{month.month}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\t\t<g class=\"day\">\n\t\t\t<ng-container *ngFor=\"let day of buildDays()\">\n\t\t\t\t<rect [attr.width]=\"size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"day.index * size_cell.width\" [attr.y]=\"size_cell.height * 2\"></rect>\n\t\t\t\t<svg [attr.width]=\"size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"day.index * size_cell.width\" [attr.y]=\"size_cell.height * 2\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\" [style.font-size.px]=\"[size_cell.width > 10 ? 12 : 6]\">{{day.day}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\n\n\t\t<!-- <g class=\"bar\">\n\t\t\t<rect width=\"40\" height=\"19\"></rect>\n\t\t\t<text x=\"45\" y=\"9.5\" dy=\".35em\">4 apples</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"80\" height=\"19\" y=\"20\"></rect>\n\t\t\t<text x=\"85\" y=\"28\" dy=\".35em\">8 bananas</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"150\" height=\"19\" y=\"40\"></rect>\n\t\t\t<text x=\"150\" y=\"48\" dy=\".35em\">15 kiwis</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"160\" height=\"19\" y=\"60\"></rect>\n\t\t\t<text x=\"161\" y=\"68\" dy=\".35em\">16 oranges</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"230\" height=\"19\" y=\"80\"></rect>\n\t\t\t<text x=\"235\" y=\"88\" dy=\".35em\">23 lemons</text>\n\t\t</g> -->\n\t</svg>\n</div>\n" }]
|
|
168
168
|
}], ctorParameters: function () { return [{ type: i1.ProviderService }]; }, propDecorators: { svgChart: [{
|