@resolveio/client-lib-core 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/esm2020/lib/account-manager.service.mjs +3 -3
  2. package/esm2020/lib/auth/auth-guard.service.mjs +3 -3
  3. package/esm2020/lib/auth/auth-permissions.service.mjs +3 -3
  4. package/esm2020/lib/auth/auth.service.mjs +3 -3
  5. package/esm2020/lib/auth/auth365.component.mjs +3 -3
  6. package/esm2020/lib/auth/can-deactivate-guard.service.mjs +3 -3
  7. package/esm2020/lib/auth/enroll.component.mjs +3 -3
  8. package/esm2020/lib/auth/forgot-password.component.mjs +3 -3
  9. package/esm2020/lib/core.component.mjs +3 -3
  10. package/esm2020/lib/core.module.mjs +4 -4
  11. package/esm2020/lib/core.service.mjs +3 -3
  12. package/esm2020/lib/directive/focus.mjs +3 -3
  13. package/esm2020/lib/directive/scroll.mjs +3 -3
  14. package/esm2020/lib/home/home.component.mjs +3 -3
  15. package/esm2020/lib/logger/logger.component.mjs +3 -3
  16. package/esm2020/lib/offline-manager.service.mjs +3 -3
  17. package/esm2020/lib/pipes/domsanitizor.pipe.mjs +3 -3
  18. package/esm2020/lib/pipes/filter.pipe.mjs +6 -6
  19. package/esm2020/lib/pipes/json-parse.pipe.mjs +3 -3
  20. package/esm2020/lib/pipes/minus-currency.pipe.mjs +3 -3
  21. package/esm2020/lib/pipes/phone.pipe.mjs +3 -3
  22. package/esm2020/lib/pipes/pipe.module.mjs +4 -4
  23. package/esm2020/lib/pipes/reverse-list.pipe.mjs +3 -3
  24. package/esm2020/lib/pipes/titlecase.pipe.mjs +3 -3
  25. package/esm2020/lib/resolveio-class.mjs +3 -3
  26. package/esm2020/lib/shared/shared.module.mjs +4 -4
  27. package/esm2020/lib/socket-manager.service.mjs +3 -3
  28. package/esm2020/lib/socket.service.mjs +3 -3
  29. package/esm2020/lib/support-ticket/detail/support-ticket-detail.component.mjs +3 -3
  30. package/esm2020/lib/support-ticket/edit/support-ticket-edit.component.mjs +3 -3
  31. package/esm2020/lib/support-ticket/list/support-ticket-list.component.mjs +3 -3
  32. package/esm2020/lib/support-ticket/new/support-ticket-new.component.mjs +3 -3
  33. package/esm2020/lib/support-ticket/support-ticket.component.mjs +3 -3
  34. package/esm2020/lib/support-ticket/support-ticket.module.mjs +4 -4
  35. package/esm2020/lib/support-ticket/support-ticket.service.mjs +3 -3
  36. package/esm2020/lib/token-manager.service.mjs +3 -3
  37. package/esm2020/lib/user-settings/settings/users-settings.component.mjs +3 -3
  38. package/esm2020/lib/user-settings/user-settings.component.mjs +3 -3
  39. package/esm2020/lib/user-settings/user-settings.module.mjs +4 -4
  40. package/esm2020/lib/user-settings/user-settings.service.mjs +3 -3
  41. package/esm2020/lib/util/aws.service.mjs +3 -3
  42. package/esm2020/lib/util/validation.service.mjs +3 -3
  43. package/esm2020/lib/util/window-resize.service.mjs +3 -3
  44. package/esm2020/lib/util/window.service.mjs +3 -3
  45. package/esm2020/lib/widgets/alert/alert.service.mjs +3 -3
  46. package/esm2020/lib/widgets/collapse-table/collapse-table.component.mjs +3 -3
  47. package/esm2020/lib/widgets/collapse-table/collapse-table.module.mjs +4 -4
  48. package/esm2020/lib/widgets/data-table/data-table.component.mjs +3 -3
  49. package/esm2020/lib/widgets/data-table/data-table.module.mjs +4 -4
  50. package/esm2020/lib/widgets/date-shortcut/date-shortcut.component.mjs +3 -3
  51. package/esm2020/lib/widgets/date-shortcut/date-shortcut.module.mjs +4 -4
  52. package/esm2020/lib/widgets/dialog/dialog.confirm.content.mjs +3 -3
  53. package/esm2020/lib/widgets/dialog/dialog.error.content.mjs +3 -3
  54. package/esm2020/lib/widgets/dialog/dialog.input.content.mjs +3 -3
  55. package/esm2020/lib/widgets/dialog/dialog.login.content.mjs +3 -3
  56. package/esm2020/lib/widgets/dialog/dialog.notify.content.mjs +3 -3
  57. package/esm2020/lib/widgets/dialog/dialog.register.content.mjs +3 -3
  58. package/esm2020/lib/widgets/dialog/dialog.select-array-objs.content.mjs +3 -3
  59. package/esm2020/lib/widgets/dialog/dialog.select-array.content.mjs +3 -3
  60. package/esm2020/lib/widgets/dialog/dialog.select-data-labels.content.mjs +3 -3
  61. package/esm2020/lib/widgets/dialog/dialog.select-datetime.content.mjs +3 -3
  62. package/esm2020/lib/widgets/dialog/dialog.select-with-buttons-url.content.mjs +3 -3
  63. package/esm2020/lib/widgets/dialog/dialog.service.mjs +3 -3
  64. package/esm2020/lib/widgets/file/file-upload.component.mjs +3 -3
  65. package/esm2020/lib/widgets/file/file-upload.module.mjs +4 -4
  66. package/esm2020/lib/widgets/form-button/form-button.component.mjs +3 -3
  67. package/esm2020/lib/widgets/form-button/form-button.module.mjs +4 -4
  68. package/esm2020/lib/widgets/navbar-main/navbar-main.component.mjs +5 -5
  69. package/esm2020/lib/widgets/navbar-module/navbar-module.component.mjs +3 -3
  70. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +3 -3
  71. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +4 -4
  72. package/esm2020/lib/widgets/scheduler/scheduler.component.mjs +3 -3
  73. package/esm2020/lib/widgets/scheduler/scheduler.module.mjs +4 -4
  74. package/esm2020/lib/widgets/sort-table/sort-table-header.component.mjs +3 -3
  75. package/esm2020/lib/widgets/sort-table/sort-table-ngfor.component.mjs +3 -3
  76. package/esm2020/lib/widgets/sort-table/sort-table.directive.mjs +3 -3
  77. package/esm2020/lib/widgets/sort-table/sort-table.module.mjs +4 -4
  78. package/esm2020/lib/widgets/user-role/user-role.component.mjs +3 -3
  79. package/esm2020/lib/widgets/user-role/user-role.module.mjs +4 -4
  80. package/fesm2015/resolveio-client-lib-core.mjs +255 -255
  81. package/fesm2015/resolveio-client-lib-core.mjs.map +1 -1
  82. package/fesm2020/resolveio-client-lib-core.mjs +255 -255
  83. package/fesm2020/resolveio-client-lib-core.mjs.map +1 -1
  84. package/package.json +1 -1
@@ -10,15 +10,15 @@ import { NgxDocViewerModule } from 'ngx-doc-viewer';
10
10
  import * as i0 from "@angular/core";
11
11
  export class FileModule {
12
12
  }
13
- FileModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- FileModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FileModule, declarations: [FileUploadComponent], imports: [CommonModule,
13
+ FileModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ FileModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FileModule, declarations: [FileUploadComponent], imports: [CommonModule,
15
15
  FormsModule,
16
16
  CollapseTableModule,
17
17
  NgbModule,
18
18
  ResponsiveButtonGroupModule,
19
19
  NgxFileDropModule,
20
20
  NgxDocViewerModule], exports: [FileUploadComponent] });
21
- FileModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FileModule, imports: [[
21
+ FileModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FileModule, imports: [[
22
22
  CommonModule,
23
23
  FormsModule,
24
24
  CollapseTableModule,
@@ -27,7 +27,7 @@ FileModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13
27
27
  NgxFileDropModule,
28
28
  NgxDocViewerModule
29
29
  ]] });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FileModule, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FileModule, decorators: [{
31
31
  type: NgModule,
32
32
  args: [{
33
33
  imports: [
@@ -47,8 +47,8 @@ export class FormButtonComponent extends BaseComponent {
47
47
  return false;
48
48
  }
49
49
  }
50
- FormButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FormButtonComponent, deps: [{ token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
51
- FormButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: FormButtonComponent, selector: "form-button", inputs: { form: "form", disabled: "disabled" }, providers: [ProviderService], viewQueries: [{ propertyName: "formButton", first: true, predicate: ["formButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
50
+ FormButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FormButtonComponent, deps: [{ token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
51
+ FormButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: FormButtonComponent, selector: "form-button", inputs: { form: "form", disabled: "disabled" }, providers: [ProviderService], viewQueries: [{ propertyName: "formButton", first: true, predicate: ["formButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
52
52
  <div style="position: relative; text-align: left; width: 100%">
53
53
  <ng-template #tipContent>
54
54
  <span style="font-weight: bold">Errors:<br></span>
@@ -61,7 +61,7 @@ FormButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
61
61
  </div>
62
62
  </div>
63
63
  `, isInline: true, directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FormButtonComponent, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FormButtonComponent, decorators: [{
65
65
  type: Component,
66
66
  args: [{
67
67
  providers: [ProviderService],
@@ -5,14 +5,14 @@ import { FormButtonComponent } from './form-button.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export class FormButtonModule {
7
7
  }
8
- FormButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FormButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- FormButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FormButtonModule, declarations: [FormButtonComponent], imports: [CommonModule,
8
+ FormButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FormButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ FormButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FormButtonModule, declarations: [FormButtonComponent], imports: [CommonModule,
10
10
  NgbTooltipModule], exports: [FormButtonComponent] });
11
- FormButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FormButtonModule, imports: [[
11
+ FormButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FormButtonModule, imports: [[
12
12
  CommonModule,
13
13
  NgbTooltipModule
14
14
  ]] });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FormButtonModule, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: FormButtonModule, decorators: [{
16
16
  type: NgModule,
17
17
  args: [{
18
18
  imports: [
@@ -185,11 +185,11 @@ export class NavbarMainComponent extends BaseComponent {
185
185
  window.print();
186
186
  }
187
187
  }
188
- NavbarMainComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NavbarMainComponent, deps: [{ token: i1.ProviderService }, { token: i2.AuthService }, { token: i3.DialogService }, { token: i4.CoreService }], target: i0.ɵɵFactoryTarget.Component });
189
- NavbarMainComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: NavbarMainComponent, selector: "navbar-main", inputs: { logo: "logo", navTabs: "navTabs", fontSize: "fontSize" }, 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-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-right]=\"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=\"user && isInRole(tab.links[0].role)\" data-toggle=\"collapse\" [tourAnchor]=\"tab.tourAnchor\" data-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=\"user && isInOneRole(tab.roles)\">\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"tourStarted ? true : null\" id=\"navbarDropdownAsset\" role=\"button\" [tourAnchor]=\"tab.tourAnchor\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n {{tab.label}}\n </a>\n <div class=\"dropdown-menu bg-dark\" aria-labelledby=\"navbarDropdownAsset\" data-toggle=\"collapse\" data-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=\"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-toggle=\"collapse\" data-target=\"#navbarMainNav\" [style.border-left]=\"getWindowWidth() > 1200 ? '1px solid white' : ''\" style=\"height: 30px; min-width: 70px;\">\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-toggle=\"collapse\" data-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-toggle=\"collapse\" data-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-toggle=\"collapse\" data-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' : '']\">\n <li class=\"nav-item\" *ngIf=\"!user\" data-toggle=\"collapse\" data-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-toggle=\"collapse\" data-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"], directives: [{ type: i5.NgbNavbar, selector: ".navbar" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i7.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i8.ScrollDirective, selector: "[detect-scroll]", inputs: ["bottomOffset", "topOffset"], outputs: ["onScroll"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NavbarMainComponent, decorators: [{
188
+ NavbarMainComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NavbarMainComponent, deps: [{ token: i1.ProviderService }, { token: i2.AuthService }, { token: i3.DialogService }, { token: i4.CoreService }], target: i0.ɵɵFactoryTarget.Component });
189
+ NavbarMainComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NavbarMainComponent, selector: "navbar-main", inputs: { logo: "logo", navTabs: "navTabs", fontSize: "fontSize" }, 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 min-width: 70px;\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-right]=\"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=\"user && isInRole(tab.links[0].role)\" data-toggle=\"collapse\" [tourAnchor]=\"tab.tourAnchor\" data-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=\"user && isInOneRole(tab.roles)\">\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"tourStarted ? true : null\" id=\"navbarDropdownAsset\" role=\"button\" [tourAnchor]=\"tab.tourAnchor\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n {{tab.label}}\n </a>\n <div class=\"dropdown-menu bg-dark\" aria-labelledby=\"navbarDropdownAsset\" data-toggle=\"collapse\" data-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=\"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-toggle=\"collapse\" data-target=\"#navbarMainNav\" [style.border-left]=\"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-toggle=\"collapse\" data-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-toggle=\"collapse\" data-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-toggle=\"collapse\" data-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' : '']\">\n <li class=\"nav-item\" *ngIf=\"!user\" data-toggle=\"collapse\" data-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-toggle=\"collapse\" data-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 min-width: 70px;\n }\n\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: gray;\n }\n"], directives: [{ type: i5.NgbNavbar, selector: ".navbar" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i7.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i8.ScrollDirective, selector: "[detect-scroll]", inputs: ["bottomOffset", "topOffset"], outputs: ["onScroll"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NavbarMainComponent, decorators: [{
191
191
  type: Component,
192
- 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-right]=\"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=\"user && isInRole(tab.links[0].role)\" data-toggle=\"collapse\" [tourAnchor]=\"tab.tourAnchor\" data-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=\"user && isInOneRole(tab.roles)\">\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"tourStarted ? true : null\" id=\"navbarDropdownAsset\" role=\"button\" [tourAnchor]=\"tab.tourAnchor\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n {{tab.label}}\n </a>\n <div class=\"dropdown-menu bg-dark\" aria-labelledby=\"navbarDropdownAsset\" data-toggle=\"collapse\" data-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=\"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-toggle=\"collapse\" data-target=\"#navbarMainNav\" [style.border-left]=\"getWindowWidth() > 1200 ? '1px solid white' : ''\" style=\"height: 30px; min-width: 70px;\">\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-toggle=\"collapse\" data-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-toggle=\"collapse\" data-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-toggle=\"collapse\" data-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' : '']\">\n <li class=\"nav-item\" *ngIf=\"!user\" data-toggle=\"collapse\" data-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-toggle=\"collapse\" data-target=\"#navbarMainNav\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\">Logout</a>\n <li>\n </ul>\n </div>\n </nav>\n</div>" }]
192
+ 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 min-width: 70px;\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-right]=\"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=\"user && isInRole(tab.links[0].role)\" data-toggle=\"collapse\" [tourAnchor]=\"tab.tourAnchor\" data-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=\"user && isInOneRole(tab.roles)\">\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"tourStarted ? true : null\" id=\"navbarDropdownAsset\" role=\"button\" [tourAnchor]=\"tab.tourAnchor\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n {{tab.label}}\n </a>\n <div class=\"dropdown-menu bg-dark\" aria-labelledby=\"navbarDropdownAsset\" data-toggle=\"collapse\" data-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=\"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-toggle=\"collapse\" data-target=\"#navbarMainNav\" [style.border-left]=\"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-toggle=\"collapse\" data-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-toggle=\"collapse\" data-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-toggle=\"collapse\" data-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' : '']\">\n <li class=\"nav-item\" *ngIf=\"!user\" data-toggle=\"collapse\" data-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-toggle=\"collapse\" data-target=\"#navbarMainNav\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\">Logout</a>\n <li>\n </ul>\n </div>\n </nav>\n</div>" }]
193
193
  }], ctorParameters: function () { return [{ type: i1.ProviderService }, { type: i2.AuthService }, { type: i3.DialogService }, { type: i4.CoreService }]; }, propDecorators: { dropdowns: [{
194
194
  type: ViewChildren,
195
195
  args: ['dropdowns']
@@ -206,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
206
206
  type: Input,
207
207
  args: ['fontSize']
208
208
  }] } });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1haW4vbmF2YmFyLW1haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1haW4vbmF2YmFyLW1haW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWlCLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7OztBQU9qRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQXNCckQsWUFBb0IsU0FBMEIsRUFBVSxJQUFpQixFQUFVLEdBQWtCLEVBQVUsSUFBaUI7UUFDL0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFqQmpILFNBQUksR0FBRyxFQUFFLENBQUM7UUFDUCxZQUFPLEdBQXlCLEVBQUUsQ0FBQztRQUNsQyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWpD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Q0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6SixDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsVUFBVTtRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDckksQ0FBQztJQUVELGNBQWM7UUFDYixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUs7UUFDSixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEIsQ0FBQzs7Z0hBak5XLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDBHQUZwQixDQUFDLGVBQWUsQ0FBQyxxUENiN0IsZ3FOQW9ITTsyRkRyR08sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNDLGFBQWEsYUFFWixDQUFDLGVBQWUsQ0FBQztzTEFJRCxTQUFTO3NCQUFuQyxZQUFZO3VCQUFDLFdBQVc7Z0JBQ2dCLFVBQVU7c0JBQWxELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFeEIsSUFBSTtzQkFBbEIsS0FBSzt1QkFBQyxNQUFNO2dCQUNLLE9BQU87c0JBQXhCLEtBQUs7dUJBQUMsU0FBUztnQkFDRyxRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXNvbHZlaW8tY2xhc3MnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXIubW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgUXVlcnlMaXN0LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGRyZW4sIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5hdmJhck1haW5UYWJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZiYXItbWFpbi10YWIubW9kZWwnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBDb3JlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25hdmJhci1tYWluJyxcblx0dGVtcGxhdGVVcmw6ICcuL25hdmJhci1tYWluLmNvbXBvbmVudC5odG1sJyxcblx0cHJvdmlkZXJzOiBbUHJvdmlkZXJTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZiYXJNYWluQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cblx0QFZpZXdDaGlsZHJlbignZHJvcGRvd25zJykgZHJvcGRvd25zOiBRdWVyeUxpc3Q8YW55Pjtcblx0QFZpZXdDaGlsZCgnc2Nyb2xsYWJsZScsIHtzdGF0aWM6IHRydWV9KSBzY3JvbGxhYmxlOiBFbGVtZW50UmVmO1xuXG5cdEBJbnB1dCgnbG9nbycpIGxvZ28gPSAnJztcblx0QElucHV0KCduYXZUYWJzJykgbmF2VGFiczogTmF2YmFyTWFpblRhYk1vZGVsW10gPSBbXTtcblx0QElucHV0KCdmb250U2l6ZScpIGZvbnRTaXplID0gMTI7XG5cblx0dXNlcjogVXNlck1vZGVsID0gbnVsbDtcblx0Y29sbGFwc2VTaG93aW5nID0gZmFsc2U7XG5cblx0Y2xpZW50ID0gJyc7XG5cblx0aXNSZXNvbHZlSU8gPSBmYWxzZTtcblx0c3RhbmRhcmRQcm9ncmFtID0gZmFsc2U7XG5cdHRvdXJTdGFydGVkID0gZmFsc2U7XG5cblx0c2Nyb2xsUmlnaHRJbnRlcnZhbCA9IG51bGw7XG5cdHNjcm9sbExlZnRJbnRlcnZhbCA9IG51bGw7XG5cdGlzRGVtbyA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UsIHByaXZhdGUgYXV0aDogQXV0aFNlcnZpY2UsIHByaXZhdGUgX2RzOiBEaWFsb2dTZXJ2aWNlLCBwcml2YXRlIF9hcHA6IENvcmVTZXJ2aWNlKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LnVzZXIuc3Vic2NyaWJlKHVzZXIgPT4ge1xuXHRcdFx0dGhpcy51c2VyID0gdXNlcjtcblx0XHR9KTtcblxuXHRcdHRoaXMuY2xpZW50ID0gdGhpcy5fYXBwLmNsaWVudC5nZXRWYWx1ZSgpO1xuXHRcdHRoaXMuc3RhbmRhcmRQcm9ncmFtID0gdGhpcy5fYXBwLnN0YW5kYXJkUHJvZ3JhbS5nZXRWYWx1ZSgpO1xuXHRcdHRoaXMudG91clN0YXJ0ZWQgPSB0aGlzLl9zZXJ2aWNlcy5fYXBwLnRvdXJTdGFydGVkLmdldFZhbHVlKCk7XG5cblx0XHRpZiAoIXRoaXMuY2xpZW50KSB7XG5cdFx0XHR0aGlzLmlzUmVzb2x2ZUlPID0gdHJ1ZTtcblx0XHR9XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnRvdXJTdGFydGVkLnN1YnNjcmliZSh0b3VyU3RhcnRlZCA9PiB7XG5cdFx0XHR0aGlzLnRvdXJTdGFydGVkID0gdG91clN0YXJ0ZWQ7XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLmlzRGVtby5zdWJzY3JpYmUoaXNEZW1vID0+IHtcblx0XHRcdHRoaXMuaXNEZW1vID0gaXNEZW1vO1xuXHRcdH0pO1xuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdHRoaXMuY2FsY3VsYXRlRHJvcGRvd25zTGVmdCgpO1xuXHRcdH0sIDUwMCk7XG5cdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWZvbnQtc2l6ZScsIHRoaXMuZm9udFNpemUgKyAncHgnKTtcblx0fVxuXG5cdGxvZ291dCgpIHtcblx0XHR0aGlzLl9hcHAuaXNMb2dnaW5nT3V0Lm5leHQodHJ1ZSk7XG5cdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmxvZ091dCgpO1xuXHR9XG5cblx0bG9naW4oKSB7XG5cdFx0dGhpcy5hdXRoLmxvZ2luVXNlcigpLnRoZW4oKCkgPT4ge30sIGVyciA9PiB7fSk7XG5cdH1cblxuXHRoYXNTY3JvbGxlZCgpIHtcblx0XHRpZiAodGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA8PSAwKSB7XG5cdFx0XHR0aGlzLnN0b3BTY3JvbGxSaWdodCgpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID4gMCA/IHRydWUgOiBmYWxzZTtcblx0fVxuXG5cdGhhc01vcmVTY3JvbGwoKSB7XG5cdFx0aWYgKHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoIDw9IHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoICsgdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCkge1xuXHRcdFx0dGhpcy5zdG9wU2Nyb2xsTGVmdCgpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aCA+IHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoICsgdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA/IHRydWUgOiBmYWxzZTtcblx0fVxuXG5cdHN0YXJ0U2Nyb2xsUmlnaHQoKSB7XG5cdFx0dGhpcy5zY3JvbGxSaWdodEludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0dGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCAtPSAyO1xuXHRcdH0sIDEpO1xuXHR9XG5cblx0c3RvcFNjcm9sbFJpZ2h0KCkge1xuXHRcdGNsZWFySW50ZXJ2YWwodGhpcy5zY3JvbGxSaWdodEludGVydmFsKTtcblx0fVxuXG5cdHNjcm9sbFJpZ2h0T25jZSgpIHtcblx0XHR0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0IC09IDUwO1xuXHR9XG5cblx0c3RhcnRTY3JvbGxMZWZ0KCkge1xuXHRcdHRoaXMuc2Nyb2xsTGVmdEludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0dGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArPSAyO1xuXHRcdH0sIDEpO1xuXHR9XG5cblx0c3RvcFNjcm9sbExlZnQoKSB7XG5cdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLnNjcm9sbExlZnRJbnRlcnZhbCk7XG5cdH1cblxuXHRzY3JvbGxMZWZ0T25jZSgpIHtcblx0XHR0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICs9IDUwO1xuXHR9XG5cdFxuXHRjYWxjdWxhdGVEcm9wZG93bnNMZWZ0KCkge1xuXHRcdGlmICh0aGlzLmRyb3Bkb3ducyAmJiB0aGlzLmRyb3Bkb3ducy50b0FycmF5KCkgJiYgdGhpcy5kcm9wZG93bnMudG9BcnJheSgpLmxlbmd0aCAmJiB0aGlzLnNjcm9sbGFibGUpIHtcblx0XHRcdHRoaXMubmF2VGFicy5maWx0ZXIoYSA9PiBhLnR5cGUgPT09ICdkcm9wZG93bicpLmZvckVhY2godGFiID0+IHtcblx0XHRcdFx0bGV0IGRyb3BEb3duID0gdGhpcy5kcm9wZG93bnMudG9BcnJheSgpLmZpbHRlcihhID0+IGEubmF0aXZlRWxlbWVudC5pbm5lclRleHQuc3BsaXQoJ1xcbicpWzBdLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCAnJykgPT09IHRhYi5sYWJlbC5yZXBsYWNlKC9bXkEtWmEtejAtOV0vZywgJycpKVswXTtcblxuXHRcdFx0XHRpZiAoZHJvcERvd24pIHtcblx0XHRcdFx0XHR0YWIubGVmdCA9IE1hdGgubWF4KGRyb3BEb3duLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCAtIHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQsIHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRhYi5sZWZ0ID0gMDtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpc0luUm9sZShyb2xlOiBhbnkpIHtcblx0XHRpZiAodGhpcy5pc1N1cGVyQWRtaW4oKSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMudXNlcikge1xuXHRcdFx0aWYgKCg8YW55PnRoaXMudXNlci5yb2xlcykuZ3JvdXBzKSB7XG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgKDxhbnk+dGhpcy51c2VyLnJvbGVzKS5ncm91cHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRsZXQgZ3JvdXAgPSAoPGFueT50aGlzLnVzZXIucm9sZXMpLmdyb3Vwc1tpXTtcblx0XHRcdFx0XHRmb3IgKGxldCBqID0gMDsgaiA8IGdyb3VwLnZpZXdzLmxlbmd0aDsgaisrKSB7XHRcblx0XHRcdFx0XHRcdGxldCB2aWV3ID0gZ3JvdXAudmlld3Nbal07XG5cdFx0XHRcdFx0XHRpZiAodmlldyA9PT0gcm9sZSB8fCB2aWV3LnN0YXJ0c1dpdGgocm9sZSArICcvJykpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0aXNTdXBlckFkbWluKCkge1xuXHRcdHJldHVybiB0aGlzLnVzZXIgJiYgdGhpcy51c2VyLnJvbGVzID8gKDxhbnk+dGhpcy51c2VyLnJvbGVzKS5zdXBlcl9hZG1pbiA6IGZhbHNlO1xuXHR9XG5cblx0aXNJbk9uZVJvbGUocm9sZXM6IHN0cmluZ1tdKSB7XG5cdFx0aWYgKHRoaXMuaXNTdXBlckFkbWluKCkpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcm9sZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGxldCByb2xlID0gcm9sZXNbaV07XG5cblx0XHRcdGlmICh0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5pc1VzZXJJblZpZXcocm9sZSkpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0bmF2aWdhdGVUbyhyb3V0ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJvdXRlKTtcblx0fVxuXG5cdGhlbHAoKSB7XG5cdFx0dGhpcy5fZHMuaW5wdXQoJ1doYXQgZG8geW91IG5lZWQgaGVscCB3aXRoPycsIFtcblx0XHRcdHtcblx0XHRcdFx0bGFiZWw6ICdUaXRsZSBvZiBQcm9ibGVtJywgXG5cdFx0XHRcdGZvcm06ICdwcm9ibGVtX3RpdGxlJywgXG5cdFx0XHRcdGRhdGE6ICcnLCBcblx0XHRcdFx0dmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuXHRcdFx0XHR2YWxpZGF0b3JFcnJvcnM6IFsncmVxdWlyZWQnXSxcblx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ1Byb2JsZW0gdGl0bGUgaXMgcmVxdWlyZWQuJ10sXG5cdFx0XHRcdHJlcXVpcmVkOiB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRsYWJlbDogJ0Rlc2NyaXB0aW9uIG9mIFByb2JsZW0nLCBcblx0XHRcdFx0Zm9ybTogJ3Byb2JsZW1fZGVzYycsIFxuXHRcdFx0XHRkYXRhOiAnJywgXG5cdFx0XHRcdHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcblx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3JlcXVpcmVkJ10sXG5cdFx0XHRcdHZhbGlkYXRvck1zZzogWydQcm9ibGVtIGRlc2NyaXB0aW9uIGlzIHJlcXVpcmVkLiddLFxuXHRcdFx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRcdFx0dHlwZTogJ3RleHRhcmVhJ1xuXHRcdFx0fVxuXHRcdF0pLnRoZW4oaGVscFJlcyA9PiB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2dldEhlbHBOb3RpZmljYXRpb24nLCB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZnVsbG5hbWUsIGhlbHBSZXMucHJvYmxlbV90aXRsZS52YWx1ZSwgaGVscFJlcy5wcm9ibGVtX2Rlc2MudmFsdWUpO1xuXHRcdH0sICgpID0+IHt9KTtcblx0fVxuXG5cdGlzQ3VzdG9tZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmdldFVzZXIoKS5vdGhlci5jdXN0b21lcnMgJiYgdGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0VXNlcigpLm90aGVyLmN1c3RvbWVycy5sZW5ndGggPyB0cnVlIDogZmFsc2U7XG5cdH1cblxuXHRnZXRXaW5kb3dXaWR0aCgpIHtcblx0XHRyZXR1cm4gd2luZG93LmlubmVyV2lkdGg7XG5cdH1cblxuXHRwcmludCgpIHtcblx0XHR3aW5kb3cucHJpbnQoKTtcblx0fVxufSIsIjxzdHlsZT5cblx0OnJvb3Qge1xuICAgICAgICAtLWZvbnQtc2l6ZTogMTI7XG4gICAgfVxuXG5cdDpob3N0IC9kZWVwLyAqIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG5cdH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgLm5hdmJhck1haW4gYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgIC5zY3JvbGxhYmxlLXgge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2MHZ3O1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAudmVydGljYWxBbGlnbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5hdmJhciBsaSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbms6aG92ZXIsIC5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbms6Zm9jdXMge1xuICAgICAgICBjb2xvcjogZ3JheTtcbiAgICB9XG48L3N0eWxlPlxuXG48ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPG5hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLXhsIG5hdmJhci1kYXJrIGJnLWRhcmsgbmF2YmFyTWFpblwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJuYXZiYXItYnJhbmRcIiBocmVmPVwiI1wiPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cImxvZ29cIiBzdHlsZT1cIndpZHRoOiBhdXRvOyBoZWlnaHQ6IDM2cHg7XCIgKm5nSWY9XCIhaXNEZW1vXCI+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyXCIgdHlwZT1cImJ1dHRvblwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgYXJpYS1jb250cm9scz1cIm5hdmJhck1haW5OYXZcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXItaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXZiYXItY29sbGFwc2UgY29sbGFwc2VcIiBpZD1cIm5hdmJhck1haW5OYXZcIj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdmJhci1uYXZcIj5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgKm5nSWY9XCIhc3RhbmRhcmRQcm9ncmFtXCIgW3N0eWxlLmJvcmRlci1yaWdodF09XCJnZXRXaW5kb3dXaWR0aCgpID4gMTIwMCA/ICcxcHggc29saWQgd2hpdGUnIDogJydcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJob21lXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+SG9tZTwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNTY3JvbGxlZCgpXCIgKG1vdXNlb3Zlcik9XCJzdGFydFNjcm9sbFJpZ2h0KClcIiAobW91c2VvdXQpPVwic3RvcFNjcm9sbFJpZ2h0KClcIiAoY2xpY2spPVwic2Nyb2xsUmlnaHRPbmNlKClcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFycm93LWxlZnRcIiBzdHlsZT1cImNvbG9yOiB3aGl0ZTsgZm9udC1zaXplOiAyMHB4XCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dWwgW25nQ2xhc3NdPVwiWyduYXZiYXItbmF2JywgJ3Njcm9sbGFibGUteCddXCIgI3Njcm9sbGFibGUgZGV0ZWN0LXNjcm9sbCAob25TY3JvbGwpPVwiY2FsY3VsYXRlRHJvcGRvd25zTGVmdCgpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIG5hdlRhYnM7IGxldCBpID0gaW5kZXg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIudHlwZSA9PT0gJ2xpbmsnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwidXNlciAmJiBpc0luUm9sZSh0YWIubGlua3NbMF0ucm9sZSlcIiBkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgW3RvdXJBbmNob3JdPVwidGFiLnRvdXJBbmNob3JcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIFtjbGFzcy5kaXNhYmxlZF09XCJ0b3VyU3RhcnRlZCA/IHRydWUgOiBudWxsXCIgW3JvdXRlckxpbmtdPVwidGFiLmxpbmtzWzBdLnJvdXRlckxpbmtcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+e3t0YWIubGlua3NbMF0ubGFiZWx9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLnR5cGUgPT09ICdkcm9wZG93bidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAjZHJvcGRvd25zIGNsYXNzPVwibmF2LWl0ZW0gZHJvcGRvd25cIiAqbmdJZj1cInVzZXIgJiYgaXNJbk9uZVJvbGUodGFiLnJvbGVzKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgZHJvcGRvd24tdG9nZ2xlXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiBpZD1cIm5hdmJhckRyb3Bkb3duQXNzZXRcIiByb2xlPVwiYnV0dG9uXCIgW3RvdXJBbmNob3JdPVwidGFiLnRvdXJBbmNob3JcIiBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWIubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBiZy1kYXJrXCIgYXJpYS1sYWJlbGxlZGJ5PVwibmF2YmFyRHJvcGRvd25Bc3NldFwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgW3N0eWxlLmxlZnQucHhdPVwidGFiLmxlZnQgfHwgMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIHRhYi5saW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIG5hdi1saW5rXCIgKm5nSWY9XCJ1c2VyICYmIGlzSW5Sb2xlKGxpbmsucm9sZSlcIiBbcm91dGVyTGlua109XCJsaW5rLnJvdXRlckxpbmtcIj57e2xpbmsubGFiZWx9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzTW9yZVNjcm9sbCgpXCIgKG1vdXNlb3Zlcik9XCJzdGFydFNjcm9sbExlZnQoKVwiIChtb3VzZW91dCk9XCJzdG9wU2Nyb2xsTGVmdCgpXCIgKGNsaWNrKT1cInNjcm9sbExlZnRPbmNlKClcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFycm93LXJpZ2h0XCIgc3R5bGU9XCJjb2xvcjogd2hpdGU7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGhyIC8+XG4gICAgICAgICAgICA8dWwgW25nQ2xhc3NdPVwiWyduYXZiYXItbmF2JywgZ2V0V2luZG93V2lkdGgoKSA+IDEyMDAgPyAnZmxvYXQtbGctcmlnaHQnIDogJyddXCI+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cInVzZXJcIiBkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS10YXJnZXQ9XCIjbmF2YmFyTWFpbk5hdlwiIFtzdHlsZS5ib3JkZXItbGVmdF09XCJnZXRXaW5kb3dXaWR0aCgpID4gMTIwMCA/ICcxcHggc29saWQgd2hpdGUnIDogJydcIiBzdHlsZT1cImhlaWdodDogMzBweDsgbWluLXdpZHRoOiA3MHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiAoY2xpY2spPVwicHJpbnQoKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPjxpIHN0eWxlPVwiZm9udC1zaXplOjIwcHg7IGNvbG9yOiB3aGl0ZTtcIiBjbGFzcz1cImZhIGZhLXByaW50XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyICYmIGNsaWVudFwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgc3R5bGU9XCJoZWlnaHQ6IDMwcHg7XCIgdG91ckFuY2hvcj1cInN1cHBvcnRTZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIHJvdXRlckxpbms9XCJzdXBwb3J0LXRpY2tldFwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5TdXBwb3J0PC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cInVzZXIgJiYgaXNJblJvbGUoJ3N1cGVyLWFkbWluJylcIiBkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS10YXJnZXQ9XCIjbmF2YmFyTWFpbk5hdlwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgcm91dGVyTGluaz1cImxvZ3NcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+TG9nczwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyICYmIGlzSW5Sb2xlKCdzdXBlci1hZG1pbicpXCIgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiIGRhdGEtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJzdXBlci1hZG1pblwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5TdXBlciBBZG1pbjwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgPHVsIFtuZ0NsYXNzXT1cIlsnbmF2YmFyLW5hdicsIGdldFdpbmRvd1dpZHRoKCkgPiAxMjAwID8gJ2Zsb2F0LWxnLXJpZ2h0JyA6ICcnXVwiPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCIhdXNlclwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiAoY2xpY2spPVwibG9naW4oKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5Mb2dpbjwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyXCIgdG91ckFuY2hvcj1cInVzZXJTZXR0aW5nc1wiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiByb3V0ZXJMaW5rPVwidXNlci1zZXR0aW5nc1wiPkhlbGxvIHt7dXNlci5mdWxsbmFtZX19ITwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiAoY2xpY2spPVwibG9nb3V0KClcIiBkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS10YXJnZXQ9XCIjbmF2YmFyTWFpbk5hdlwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIj5Mb2dvdXQ8L2E+XG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uYXY+XG48L2Rpdj4iXX0=
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1haW4vbmF2YmFyLW1haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1haW4vbmF2YmFyLW1haW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWlCLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7OztBQU9qRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQXNCckQsWUFBb0IsU0FBMEIsRUFBVSxJQUFpQixFQUFVLEdBQWtCLEVBQVUsSUFBaUI7UUFDL0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFqQmpILFNBQUksR0FBRyxFQUFFLENBQUM7UUFDUCxZQUFPLEdBQXlCLEVBQUUsQ0FBQztRQUNsQyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWpDLFNBQUksR0FBYyxJQUFJLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUVaLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUMzQix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsV0FBTSxHQUFHLEtBQUssQ0FBQztJQUlmLENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU5RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUN4QjtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDZCxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQy9CLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNSLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsTUFBTTtRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDdkI7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxhQUFhO1FBQ1osSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUN0SSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdEI7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN4SixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztRQUMvQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZTtRQUNkLGFBQWEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELGVBQWU7UUFDZCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO1FBQ2IsYUFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxjQUFjO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3JCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDckcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDN0QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFekssSUFBSSxRQUFRLEVBQUU7b0JBQ2IsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDNUk7cUJBQ0k7b0JBQ0osR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7aUJBQ2I7WUFDRixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBUztRQUNqQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQztTQUNaO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUM5RCxJQUFJLEtBQUssR0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDNUMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDMUIsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFOzRCQUNqRCxPQUFPLElBQUksQ0FBQzt5QkFDWjtxQkFDRDtpQkFDRDthQUNEO1NBQ0Q7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFRCxZQUFZO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNsRixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWU7UUFDMUIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3RDLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDL0MsT0FBTyxJQUFJLENBQUM7YUFDWjtTQUNEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJO1FBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUU7WUFDN0M7Z0JBQ0MsS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLElBQUksRUFBRSxFQUFFO2dCQUNSLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ2pDLGVBQWUsRUFBRSxDQUFDLFVBQVUsQ0FBQztnQkFDN0IsWUFBWSxFQUFFLENBQUMsNEJBQTRCLENBQUM7Z0JBQzVDLFFBQVEsRUFBRSxJQUFJO2FBQ2Q7WUFDRDtnQkFDQyxLQUFLLEVBQUUsd0JBQXdCO2dCQUMvQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDakMsZUFBZSxFQUFFLENBQUMsVUFBVSxDQUFDO2dCQUM3QixZQUFZLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztnQkFDbEQsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsSUFBSSxFQUFFLFVBQVU7YUFDaEI7U0FDRCxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6SixDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsVUFBVTtRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDckksQ0FBQztJQUVELGNBQWM7UUFDYixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUs7UUFDSixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEIsQ0FBQzs7Z0hBak5XLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDBHQUZwQixDQUFDLGVBQWUsQ0FBQyxxUENiN0IseXFOQXFITTsyRkR0R08sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNDLGFBQWEsYUFFWixDQUFDLGVBQWUsQ0FBQztzTEFJRCxTQUFTO3NCQUFuQyxZQUFZO3VCQUFDLFdBQVc7Z0JBQ2dCLFVBQVU7c0JBQWxELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFeEIsSUFBSTtzQkFBbEIsS0FBSzt1QkFBQyxNQUFNO2dCQUNLLE9BQU87c0JBQXhCLEtBQUs7dUJBQUMsU0FBUztnQkFDRyxRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXNvbHZlaW8tY2xhc3MnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXIubW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgUXVlcnlMaXN0LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGRyZW4sIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5hdmJhck1haW5UYWJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZiYXItbWFpbi10YWIubW9kZWwnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBDb3JlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25hdmJhci1tYWluJyxcblx0dGVtcGxhdGVVcmw6ICcuL25hdmJhci1tYWluLmNvbXBvbmVudC5odG1sJyxcblx0cHJvdmlkZXJzOiBbUHJvdmlkZXJTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZiYXJNYWluQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cblx0QFZpZXdDaGlsZHJlbignZHJvcGRvd25zJykgZHJvcGRvd25zOiBRdWVyeUxpc3Q8YW55Pjtcblx0QFZpZXdDaGlsZCgnc2Nyb2xsYWJsZScsIHtzdGF0aWM6IHRydWV9KSBzY3JvbGxhYmxlOiBFbGVtZW50UmVmO1xuXG5cdEBJbnB1dCgnbG9nbycpIGxvZ28gPSAnJztcblx0QElucHV0KCduYXZUYWJzJykgbmF2VGFiczogTmF2YmFyTWFpblRhYk1vZGVsW10gPSBbXTtcblx0QElucHV0KCdmb250U2l6ZScpIGZvbnRTaXplID0gMTI7XG5cblx0dXNlcjogVXNlck1vZGVsID0gbnVsbDtcblx0Y29sbGFwc2VTaG93aW5nID0gZmFsc2U7XG5cblx0Y2xpZW50ID0gJyc7XG5cblx0aXNSZXNvbHZlSU8gPSBmYWxzZTtcblx0c3RhbmRhcmRQcm9ncmFtID0gZmFsc2U7XG5cdHRvdXJTdGFydGVkID0gZmFsc2U7XG5cblx0c2Nyb2xsUmlnaHRJbnRlcnZhbCA9IG51bGw7XG5cdHNjcm9sbExlZnRJbnRlcnZhbCA9IG51bGw7XG5cdGlzRGVtbyA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UsIHByaXZhdGUgYXV0aDogQXV0aFNlcnZpY2UsIHByaXZhdGUgX2RzOiBEaWFsb2dTZXJ2aWNlLCBwcml2YXRlIF9hcHA6IENvcmVTZXJ2aWNlKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LnVzZXIuc3Vic2NyaWJlKHVzZXIgPT4ge1xuXHRcdFx0dGhpcy51c2VyID0gdXNlcjtcblx0XHR9KTtcblxuXHRcdHRoaXMuY2xpZW50ID0gdGhpcy5fYXBwLmNsaWVudC5nZXRWYWx1ZSgpO1xuXHRcdHRoaXMuc3RhbmRhcmRQcm9ncmFtID0gdGhpcy5fYXBwLnN0YW5kYXJkUHJvZ3JhbS5nZXRWYWx1ZSgpO1xuXHRcdHRoaXMudG91clN0YXJ0ZWQgPSB0aGlzLl9zZXJ2aWNlcy5fYXBwLnRvdXJTdGFydGVkLmdldFZhbHVlKCk7XG5cblx0XHRpZiAoIXRoaXMuY2xpZW50KSB7XG5cdFx0XHR0aGlzLmlzUmVzb2x2ZUlPID0gdHJ1ZTtcblx0XHR9XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnRvdXJTdGFydGVkLnN1YnNjcmliZSh0b3VyU3RhcnRlZCA9PiB7XG5cdFx0XHR0aGlzLnRvdXJTdGFydGVkID0gdG91clN0YXJ0ZWQ7XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLmlzRGVtby5zdWJzY3JpYmUoaXNEZW1vID0+IHtcblx0XHRcdHRoaXMuaXNEZW1vID0gaXNEZW1vO1xuXHRcdH0pO1xuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdHRoaXMuY2FsY3VsYXRlRHJvcGRvd25zTGVmdCgpO1xuXHRcdH0sIDUwMCk7XG5cdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWZvbnQtc2l6ZScsIHRoaXMuZm9udFNpemUgKyAncHgnKTtcblx0fVxuXG5cdGxvZ291dCgpIHtcblx0XHR0aGlzLl9hcHAuaXNMb2dnaW5nT3V0Lm5leHQodHJ1ZSk7XG5cdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmxvZ091dCgpO1xuXHR9XG5cblx0bG9naW4oKSB7XG5cdFx0dGhpcy5hdXRoLmxvZ2luVXNlcigpLnRoZW4oKCkgPT4ge30sIGVyciA9PiB7fSk7XG5cdH1cblxuXHRoYXNTY3JvbGxlZCgpIHtcblx0XHRpZiAodGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA8PSAwKSB7XG5cdFx0XHR0aGlzLnN0b3BTY3JvbGxSaWdodCgpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID4gMCA/IHRydWUgOiBmYWxzZTtcblx0fVxuXG5cdGhhc01vcmVTY3JvbGwoKSB7XG5cdFx0aWYgKHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoIDw9IHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoICsgdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCkge1xuXHRcdFx0dGhpcy5zdG9wU2Nyb2xsTGVmdCgpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aCA+IHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoICsgdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA/IHRydWUgOiBmYWxzZTtcblx0fVxuXG5cdHN0YXJ0U2Nyb2xsUmlnaHQoKSB7XG5cdFx0dGhpcy5zY3JvbGxSaWdodEludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0dGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCAtPSAyO1xuXHRcdH0sIDEpO1xuXHR9XG5cblx0c3RvcFNjcm9sbFJpZ2h0KCkge1xuXHRcdGNsZWFySW50ZXJ2YWwodGhpcy5zY3JvbGxSaWdodEludGVydmFsKTtcblx0fVxuXG5cdHNjcm9sbFJpZ2h0T25jZSgpIHtcblx0XHR0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0IC09IDUwO1xuXHR9XG5cblx0c3RhcnRTY3JvbGxMZWZ0KCkge1xuXHRcdHRoaXMuc2Nyb2xsTGVmdEludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0dGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArPSAyO1xuXHRcdH0sIDEpO1xuXHR9XG5cblx0c3RvcFNjcm9sbExlZnQoKSB7XG5cdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLnNjcm9sbExlZnRJbnRlcnZhbCk7XG5cdH1cblxuXHRzY3JvbGxMZWZ0T25jZSgpIHtcblx0XHR0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICs9IDUwO1xuXHR9XG5cdFxuXHRjYWxjdWxhdGVEcm9wZG93bnNMZWZ0KCkge1xuXHRcdGlmICh0aGlzLmRyb3Bkb3ducyAmJiB0aGlzLmRyb3Bkb3ducy50b0FycmF5KCkgJiYgdGhpcy5kcm9wZG93bnMudG9BcnJheSgpLmxlbmd0aCAmJiB0aGlzLnNjcm9sbGFibGUpIHtcblx0XHRcdHRoaXMubmF2VGFicy5maWx0ZXIoYSA9PiBhLnR5cGUgPT09ICdkcm9wZG93bicpLmZvckVhY2godGFiID0+IHtcblx0XHRcdFx0bGV0IGRyb3BEb3duID0gdGhpcy5kcm9wZG93bnMudG9BcnJheSgpLmZpbHRlcihhID0+IGEubmF0aXZlRWxlbWVudC5pbm5lclRleHQuc3BsaXQoJ1xcbicpWzBdLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCAnJykgPT09IHRhYi5sYWJlbC5yZXBsYWNlKC9bXkEtWmEtejAtOV0vZywgJycpKVswXTtcblxuXHRcdFx0XHRpZiAoZHJvcERvd24pIHtcblx0XHRcdFx0XHR0YWIubGVmdCA9IE1hdGgubWF4KGRyb3BEb3duLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCAtIHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQsIHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRhYi5sZWZ0ID0gMDtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpc0luUm9sZShyb2xlOiBhbnkpIHtcblx0XHRpZiAodGhpcy5pc1N1cGVyQWRtaW4oKSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMudXNlcikge1xuXHRcdFx0aWYgKCg8YW55PnRoaXMudXNlci5yb2xlcykuZ3JvdXBzKSB7XG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgKDxhbnk+dGhpcy51c2VyLnJvbGVzKS5ncm91cHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRsZXQgZ3JvdXAgPSAoPGFueT50aGlzLnVzZXIucm9sZXMpLmdyb3Vwc1tpXTtcblx0XHRcdFx0XHRmb3IgKGxldCBqID0gMDsgaiA8IGdyb3VwLnZpZXdzLmxlbmd0aDsgaisrKSB7XHRcblx0XHRcdFx0XHRcdGxldCB2aWV3ID0gZ3JvdXAudmlld3Nbal07XG5cdFx0XHRcdFx0XHRpZiAodmlldyA9PT0gcm9sZSB8fCB2aWV3LnN0YXJ0c1dpdGgocm9sZSArICcvJykpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0aXNTdXBlckFkbWluKCkge1xuXHRcdHJldHVybiB0aGlzLnVzZXIgJiYgdGhpcy51c2VyLnJvbGVzID8gKDxhbnk+dGhpcy51c2VyLnJvbGVzKS5zdXBlcl9hZG1pbiA6IGZhbHNlO1xuXHR9XG5cblx0aXNJbk9uZVJvbGUocm9sZXM6IHN0cmluZ1tdKSB7XG5cdFx0aWYgKHRoaXMuaXNTdXBlckFkbWluKCkpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcm9sZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGxldCByb2xlID0gcm9sZXNbaV07XG5cblx0XHRcdGlmICh0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5pc1VzZXJJblZpZXcocm9sZSkpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0bmF2aWdhdGVUbyhyb3V0ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJvdXRlKTtcblx0fVxuXG5cdGhlbHAoKSB7XG5cdFx0dGhpcy5fZHMuaW5wdXQoJ1doYXQgZG8geW91IG5lZWQgaGVscCB3aXRoPycsIFtcblx0XHRcdHtcblx0XHRcdFx0bGFiZWw6ICdUaXRsZSBvZiBQcm9ibGVtJywgXG5cdFx0XHRcdGZvcm06ICdwcm9ibGVtX3RpdGxlJywgXG5cdFx0XHRcdGRhdGE6ICcnLCBcblx0XHRcdFx0dmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuXHRcdFx0XHR2YWxpZGF0b3JFcnJvcnM6IFsncmVxdWlyZWQnXSxcblx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ1Byb2JsZW0gdGl0bGUgaXMgcmVxdWlyZWQuJ10sXG5cdFx0XHRcdHJlcXVpcmVkOiB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRsYWJlbDogJ0Rlc2NyaXB0aW9uIG9mIFByb2JsZW0nLCBcblx0XHRcdFx0Zm9ybTogJ3Byb2JsZW1fZGVzYycsIFxuXHRcdFx0XHRkYXRhOiAnJywgXG5cdFx0XHRcdHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcblx0XHRcdFx0dmFsaWRhdG9yRXJyb3JzOiBbJ3JlcXVpcmVkJ10sXG5cdFx0XHRcdHZhbGlkYXRvck1zZzogWydQcm9ibGVtIGRlc2NyaXB0aW9uIGlzIHJlcXVpcmVkLiddLFxuXHRcdFx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRcdFx0dHlwZTogJ3RleHRhcmVhJ1xuXHRcdFx0fVxuXHRcdF0pLnRoZW4oaGVscFJlcyA9PiB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2dldEhlbHBOb3RpZmljYXRpb24nLCB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZnVsbG5hbWUsIGhlbHBSZXMucHJvYmxlbV90aXRsZS52YWx1ZSwgaGVscFJlcy5wcm9ibGVtX2Rlc2MudmFsdWUpO1xuXHRcdH0sICgpID0+IHt9KTtcblx0fVxuXG5cdGlzQ3VzdG9tZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmdldFVzZXIoKS5vdGhlci5jdXN0b21lcnMgJiYgdGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0VXNlcigpLm90aGVyLmN1c3RvbWVycy5sZW5ndGggPyB0cnVlIDogZmFsc2U7XG5cdH1cblxuXHRnZXRXaW5kb3dXaWR0aCgpIHtcblx0XHRyZXR1cm4gd2luZG93LmlubmVyV2lkdGg7XG5cdH1cblxuXHRwcmludCgpIHtcblx0XHR3aW5kb3cucHJpbnQoKTtcblx0fVxufSIsIjxzdHlsZT5cblx0OnJvb3Qge1xuICAgICAgICAtLWZvbnQtc2l6ZTogMTI7XG4gICAgfVxuXG5cdDpob3N0IC9kZWVwLyAqIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG5cdH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgLm5hdmJhck1haW4gYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgIC5zY3JvbGxhYmxlLXgge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2MHZ3O1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAudmVydGljYWxBbGlnbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5hdmJhciBsaSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDcwcHg7XG4gICAgfVxuXG4gICAgLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5uYXYtbGluazpob3ZlciwgLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5uYXYtbGluazpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBncmF5O1xuICAgIH1cbjwvc3R5bGU+XG5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8bmF2IGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQteGwgbmF2YmFyLWRhcmsgYmctZGFyayBuYXZiYXJNYWluXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuICAgICAgICA8YSBjbGFzcz1cIm5hdmJhci1icmFuZFwiIGhyZWY9XCIjXCI+XG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwibG9nb1wiIHN0eWxlPVwid2lkdGg6IGF1dG87IGhlaWdodDogMzZweDtcIiAqbmdJZj1cIiFpc0RlbW9cIj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIiB0eXBlPVwiYnV0dG9uXCIgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiIGRhdGEtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIiBhcmlhLWNvbnRyb2xzPVwibmF2YmFyTWFpbk5hdlwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIGFyaWEtbGFiZWw9XCJUb2dnbGUgbmF2aWdhdGlvblwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYXZiYXItdG9nZ2xlci1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdmJhci1jb2xsYXBzZSBjb2xsYXBzZVwiIGlkPVwibmF2YmFyTWFpbk5hdlwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2YmFyLW5hdlwiPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiIGRhdGEtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIiAqbmdJZj1cIiFzdGFuZGFyZFByb2dyYW1cIiBbc3R5bGUuYm9yZGVyLXJpZ2h0XT1cImdldFdpbmRvd1dpZHRoKCkgPiAxMjAwID8gJzFweCBzb2xpZCB3aGl0ZScgOiAnJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgcm91dGVyTGluaz1cImhvbWVcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5Ib21lPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImhhc1Njcm9sbGVkKClcIiAobW91c2VvdmVyKT1cInN0YXJ0U2Nyb2xsUmlnaHQoKVwiIChtb3VzZW91dCk9XCJzdG9wU2Nyb2xsUmlnaHQoKVwiIChjbGljayk9XCJzY3JvbGxSaWdodE9uY2UoKVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctbGVmdFwiIHN0eWxlPVwiY29sb3I6IHdoaXRlOyBmb250LXNpemU6IDIwcHhcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx1bCBbbmdDbGFzc109XCJbJ25hdmJhci1uYXYnLCAnc2Nyb2xsYWJsZS14J11cIiAjc2Nyb2xsYWJsZSBkZXRlY3Qtc2Nyb2xsIChvblNjcm9sbCk9XCJjYWxjdWxhdGVEcm9wZG93bnNMZWZ0KClcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgbmF2VGFiczsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi50eXBlID09PSAnbGluaydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyICYmIGlzSW5Sb2xlKHRhYi5saW5rc1swXS5yb2xlKVwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBbdG91ckFuY2hvcl09XCJ0YWIudG91ckFuY2hvclwiIGRhdGEtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiBbcm91dGVyTGlua109XCJ0YWIubGlua3NbMF0ucm91dGVyTGlua1wiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj57e3RhYi5saW5rc1swXS5sYWJlbH19PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIudHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpICNkcm9wZG93bnMgY2xhc3M9XCJuYXYtaXRlbSBkcm9wZG93blwiICpuZ0lmPVwidXNlciAmJiBpc0luT25lUm9sZSh0YWIucm9sZXMpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGluayBkcm9wZG93bi10b2dnbGVcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIGlkPVwibmF2YmFyRHJvcGRvd25Bc3NldFwiIHJvbGU9XCJidXR0b25cIiBbdG91ckFuY2hvcl09XCJ0YWIudG91ckFuY2hvclwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3RhYi5sYWJlbH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGJnLWRhcmtcIiBhcmlhLWxhYmVsbGVkYnk9XCJuYXZiYXJEcm9wZG93bkFzc2V0XCIgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiIGRhdGEtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIiBbc3R5bGUubGVmdC5weF09XCJ0YWIubGVmdCB8fCAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgdGFiLmxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gbmF2LWxpbmtcIiAqbmdJZj1cInVzZXIgJiYgaXNJblJvbGUobGluay5yb2xlKVwiIFtyb3V0ZXJMaW5rXT1cImxpbmsucm91dGVyTGlua1wiPnt7bGluay5sYWJlbH19PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNNb3JlU2Nyb2xsKClcIiAobW91c2VvdmVyKT1cInN0YXJ0U2Nyb2xsTGVmdCgpXCIgKG1vdXNlb3V0KT1cInN0b3BTY3JvbGxMZWZ0KClcIiAoY2xpY2spPVwic2Nyb2xsTGVmdE9uY2UoKVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctcmlnaHRcIiBzdHlsZT1cImNvbG9yOiB3aGl0ZTsgZm9udC1zaXplOiAyMHB4XCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgIDx1bCBbbmdDbGFzc109XCJbJ25hdmJhci1uYXYnLCBnZXRXaW5kb3dXaWR0aCgpID4gMTIwMCA/ICdmbG9hdC1sZy1yaWdodCcgOiAnJ11cIj5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwidXNlclwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgW3N0eWxlLmJvcmRlci1sZWZ0XT1cImdldFdpbmRvd1dpZHRoKCkgPiAxMjAwID8gJzFweCBzb2xpZCB3aGl0ZScgOiAnJ1wiIHN0eWxlPVwiaGVpZ2h0OiAzMHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiAoY2xpY2spPVwicHJpbnQoKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPjxpIHN0eWxlPVwiZm9udC1zaXplOjIwcHg7IGNvbG9yOiB3aGl0ZTtcIiBjbGFzcz1cImZhIGZhLXByaW50XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyICYmIGNsaWVudFwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCIgc3R5bGU9XCJoZWlnaHQ6IDMwcHg7XCIgdG91ckFuY2hvcj1cInN1cHBvcnRTZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIHJvdXRlckxpbms9XCJzdXBwb3J0LXRpY2tldFwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5TdXBwb3J0PC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cInVzZXIgJiYgaXNJblJvbGUoJ3N1cGVyLWFkbWluJylcIiBkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS10YXJnZXQ9XCIjbmF2YmFyTWFpbk5hdlwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgcm91dGVyTGluaz1cImxvZ3NcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+TG9nczwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyICYmIGlzSW5Sb2xlKCdzdXBlci1hZG1pbicpXCIgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiIGRhdGEtdGFyZ2V0PVwiI25hdmJhck1haW5OYXZcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJzdXBlci1hZG1pblwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5TdXBlciBBZG1pbjwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgPHVsIFtuZ0NsYXNzXT1cIlsnbmF2YmFyLW5hdicsIGdldFdpbmRvd1dpZHRoKCkgPiAxMjAwID8gJ2Zsb2F0LWxnLXJpZ2h0JyA6ICcnXVwiPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCIhdXNlclwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNYWluTmF2XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiAoY2xpY2spPVwibG9naW4oKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5Mb2dpbjwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyXCIgdG91ckFuY2hvcj1cInVzZXJTZXR0aW5nc1wiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIiByb3V0ZXJMaW5rPVwidXNlci1zZXR0aW5nc1wiPkhlbGxvIHt7dXNlci5mdWxsbmFtZX19ITwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2VyXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiAoY2xpY2spPVwibG9nb3V0KClcIiBkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS10YXJnZXQ9XCIjbmF2YmFyTWFpbk5hdlwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW2NsYXNzLmRpc2FibGVkXT1cInRvdXJTdGFydGVkID8gdHJ1ZSA6IG51bGxcIj5Mb2dvdXQ8L2E+XG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uYXY+XG48L2Rpdj4iXX0=
@@ -125,9 +125,9 @@ export class NavbarModuleComponent extends BaseComponent {
125
125
  }
126
126
  }
127
127
  }
128
- NavbarModuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NavbarModuleComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
129
- NavbarModuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", 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-left: 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-target=\"#navbarModuleNav\" data-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-toggle=\"collapse\" data-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-left: 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"], directives: [{ type: i2.NgbNavbar, selector: ".navbar" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], pipes: { "filterNotEqual": i5.FilterNotEqualPipe } });
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NavbarModuleComponent, decorators: [{
128
+ NavbarModuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NavbarModuleComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
129
+ NavbarModuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", 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-left: 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-target=\"#navbarModuleNav\" data-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-toggle=\"collapse\" data-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-left: 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"], directives: [{ type: i2.NgbNavbar, selector: ".navbar" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], pipes: { "filterNotEqual": i5.FilterNotEqualPipe } });
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NavbarModuleComponent, decorators: [{
131
131
  type: Component,
132
132
  args: [{ providers: [ProviderService], selector: 'navbar-module', template: "<style>\n .navbarModule li {\n cursor: pointer;\n }\n .navbarModule li.active {\n border-left: 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-target=\"#navbarModuleNav\" data-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-toggle=\"collapse\" data-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" }]
133
133
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ProviderService }]; }, propDecorators: { sideNavHeight: [{
@@ -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: "13.2.2", ngImport: i0, type: ResponsiveButtonGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ResizeService }, { token: i2.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
31
- ResponsiveButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", 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"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ResponsiveButtonGroupComponent, decorators: [{
30
+ ResponsiveButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ResponsiveButtonGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ResizeService }, { token: i2.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
31
+ ResponsiveButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", 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"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", 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,12 +4,12 @@ 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: "13.2.2", ngImport: i0, type: ResponsiveButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- ResponsiveButtonGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ResponsiveButtonGroupModule, declarations: [ResponsiveButtonGroupComponent], imports: [CommonModule], exports: [ResponsiveButtonGroupComponent] });
9
- ResponsiveButtonGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ResponsiveButtonGroupModule, imports: [[
7
+ ResponsiveButtonGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ResponsiveButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ ResponsiveButtonGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ResponsiveButtonGroupModule, declarations: [ResponsiveButtonGroupComponent], imports: [CommonModule], exports: [ResponsiveButtonGroupComponent] });
9
+ ResponsiveButtonGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ResponsiveButtonGroupModule, imports: [[
10
10
  CommonModule
11
11
  ]] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ResponsiveButtonGroupModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ResponsiveButtonGroupModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  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: "13.2.2", ngImport: i0, type: SchedulerComponent, deps: [{ token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
164
- SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", 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"], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SchedulerComponent, decorators: [{
163
+ SchedulerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SchedulerComponent, deps: [{ token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
164
+ SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", 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"], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", 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: [{
@@ -7,18 +7,18 @@ import { SchedulerComponent } from './scheduler.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export class SchedulerModule {
9
9
  }
10
- SchedulerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- SchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SchedulerModule, declarations: [SchedulerComponent], imports: [NgbModule,
10
+ SchedulerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ SchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SchedulerModule, declarations: [SchedulerComponent], imports: [NgbModule,
12
12
  FormsModule,
13
13
  CommonModule,
14
14
  RouterModule], exports: [SchedulerComponent] });
15
- SchedulerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SchedulerModule, providers: [], imports: [[
15
+ SchedulerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SchedulerModule, providers: [], imports: [[
16
16
  NgbModule,
17
17
  FormsModule,
18
18
  CommonModule,
19
19
  RouterModule
20
20
  ]] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SchedulerModule, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SchedulerModule, decorators: [{
22
22
  type: NgModule,
23
23
  args: [{
24
24
  imports: [
@@ -47,9 +47,9 @@ export class SortTableHeaderComponent {
47
47
  this._sort.sort(this);
48
48
  }
49
49
  }
50
- SortTableHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SortTableHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SortTableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
51
- SortTableHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: SortTableHeaderComponent, selector: "[sort-table-header]", inputs: { disabled: "disabled", id: ["sort-table-header", "id"], arrowPosition: "arrowPosition", start: "start" }, ngImport: i0, template: "<div (click)=\"onClick($event)\">\n <ng-content></ng-content>\n <i *ngIf=\"_isSorted() && _getSortDirection() === -1\" class=\"fa fa-arrow-down\" style=\"margin-left: 10px; font-size: 14px\"></i>\n <i *ngIf=\"_isSorted() && _getSortDirection() === 1\" class=\"fa fa-arrow-up\" style=\"margin-left: 10px; font-size: 14px\"></i>\n</div>", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SortTableHeaderComponent, decorators: [{
50
+ SortTableHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SortTableHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SortTableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
51
+ SortTableHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: SortTableHeaderComponent, selector: "[sort-table-header]", inputs: { disabled: "disabled", id: ["sort-table-header", "id"], arrowPosition: "arrowPosition", start: "start" }, ngImport: i0, template: "<div (click)=\"onClick($event)\">\n <ng-content></ng-content>\n <i *ngIf=\"_isSorted() && _getSortDirection() === -1\" class=\"fa fa-arrow-down\" style=\"margin-left: 10px; font-size: 14px\"></i>\n <i *ngIf=\"_isSorted() && _getSortDirection() === 1\" class=\"fa fa-arrow-up\" style=\"margin-left: 10px; font-size: 14px\"></i>\n</div>", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SortTableHeaderComponent, decorators: [{
53
53
  type: Component,
54
54
  args: [{ selector: '[sort-table-header]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, inputs: ['disabled'], template: "<div (click)=\"onClick($event)\">\n <ng-content></ng-content>\n <i *ngIf=\"_isSorted() && _getSortDirection() === -1\" class=\"fa fa-arrow-down\" style=\"margin-left: 10px; font-size: 14px\"></i>\n <i *ngIf=\"_isSorted() && _getSortDirection() === 1\" class=\"fa fa-arrow-up\" style=\"margin-left: 10px; font-size: 14px\"></i>\n</div>" }]
55
55
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SortTableDirective, decorators: [{
@@ -29,9 +29,9 @@ export class SortTableNgForComponent {
29
29
  this.sortSub$.unsubscribe();
30
30
  }
31
31
  }
32
- SortTableNgForComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SortTableNgForComponent, deps: [{ token: i1.SortTableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
33
- SortTableNgForComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: SortTableNgForComponent, selector: "[sort-table-ngfor]", inputs: { data: ["sort-table-ngfor", "data"] }, outputs: { dataChanged: "dataChanged" }, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SortTableNgForComponent, decorators: [{
32
+ SortTableNgForComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SortTableNgForComponent, deps: [{ token: i1.SortTableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
33
+ SortTableNgForComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: SortTableNgForComponent, selector: "[sort-table-ngfor]", inputs: { data: ["sort-table-ngfor", "data"] }, outputs: { dataChanged: "dataChanged" }, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SortTableNgForComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{
37
37
  selector: '[sort-table-ngfor]',
@@ -143,9 +143,9 @@ export class SortTableDirective {
143
143
  this._stateChanges.complete();
144
144
  }
145
145
  }
146
- SortTableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SortTableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
147
- SortTableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: SortTableDirective, selector: "[sortable]", inputs: { active: ["sortActive", "active"], start: ["sortStart", "start"], disabled: ["sortDisabled", "disabled"], tableFixed: "tableFixed", headerFixed: "headerFixed", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor" }, outputs: { sortChange: "sortChange" }, usesOnChanges: true, ngImport: i0 });
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SortTableDirective, decorators: [{
146
+ SortTableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SortTableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
147
+ SortTableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: SortTableDirective, selector: "[sortable]", inputs: { active: ["sortActive", "active"], start: ["sortStart", "start"], disabled: ["sortDisabled", "disabled"], tableFixed: "tableFixed", headerFixed: "headerFixed", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor" }, outputs: { sortChange: "sortChange" }, usesOnChanges: true, ngImport: i0 });
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SortTableDirective, decorators: [{
149
149
  type: Directive,
150
150
  args: [{
151
151
  selector: '[sortable]'
@@ -7,18 +7,18 @@ import { SortTableNgForComponent } from './sort-table-ngfor.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export class SortTableModule {
9
9
  }
10
- SortTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SortTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- SortTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SortTableModule, declarations: [SortTableDirective,
10
+ SortTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SortTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ SortTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SortTableModule, declarations: [SortTableDirective,
12
12
  SortTableHeaderComponent,
13
13
  SortTableNgForComponent], imports: [FormsModule,
14
14
  CommonModule], exports: [SortTableDirective,
15
15
  SortTableHeaderComponent,
16
16
  SortTableNgForComponent] });
17
- SortTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SortTableModule, imports: [[
17
+ SortTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SortTableModule, imports: [[
18
18
  FormsModule,
19
19
  CommonModule
20
20
  ]] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SortTableModule, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: SortTableModule, decorators: [{
22
22
  type: NgModule,
23
23
  args: [{
24
24
  imports: [
@@ -12,9 +12,9 @@ export class UserRoleComponent extends BaseComponent {
12
12
  return this._services._account.isUserInView(this.role);
13
13
  }
14
14
  }
15
- UserRoleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: UserRoleComponent, deps: [{ token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
16
- UserRoleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: UserRoleComponent, selector: "user-role", inputs: { role: "role" }, providers: [ProviderService], usesInheritance: true, ngImport: i0, template: '<ng-container *ngIf="userInRole()"><ng-content></ng-content></ng-container>', isInline: true, directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: UserRoleComponent, decorators: [{
15
+ UserRoleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: UserRoleComponent, deps: [{ token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
16
+ UserRoleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: UserRoleComponent, selector: "user-role", inputs: { role: "role" }, providers: [ProviderService], usesInheritance: true, ngImport: i0, template: '<ng-container *ngIf="userInRole()"><ng-content></ng-content></ng-container>', isInline: true, directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: UserRoleComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{
20
20
  providers: [ProviderService],