tango-app-ui-shared 3.7.42 → 3.7.43

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.
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Tango Trax › Audit tabs a user may open, from Manage Users › Tango Trax › Audit's tab rows
3
+ * (TangoTrax_Audit_<Tab>_isAdd / _isEdit; Add or Edit shows the tab). A Tango (internal) user sees every tab. A user
4
+ * saved before the tab rows existed has no tab keys and keeps every tab while Audit itself is on (the user API fills
5
+ * them in from Audit too). Same rule as the audit pages (tango-analyse-trax audit-v2-access.ts auditTabsOn).
6
+ */
7
+ export const AUDIT_TAB_LINKS = [
8
+ { key: 'Audit_ActionCenter', path: '/manage/trax/audit-v2/actioncenter', label: 'Action Center' },
9
+ { key: 'Audit_Dashboard', path: '/manage/trax/audit-v2/dashboard', label: 'Dashboard' },
10
+ { key: 'Audit_Flags', path: '/manage/trax/audit-v2/flags', label: 'Flags' },
11
+ { key: 'Audit_Gallery', path: '/manage/trax/audit-v2/gallery', label: 'Gallery' },
12
+ { key: 'Audit_Manage', path: '/manage/trax/audit-v2/manage', label: 'Manage' },
13
+ { key: 'Audit_Reports', path: '/manage/trax/audit-v2/reports', label: 'Reports' }
14
+ ];
15
+ /**
16
+ * Whether Tango Trax -> Audit (or Schedules) is shown. A Tango user or client superadmin always sees it. A client user sees it
17
+ * when its Add or Edit key is true (TangoTrax_<module>_isAdd / _isEdit, from Manage Users; the user API fills Audit /
18
+ * Schedules in from Checklist for users saved before those rows); without those keys the Checklist keys decide.
19
+ */
20
+ export function traxModuleOn(p, module) {
21
+ if (!p) {
22
+ return false;
23
+ }
24
+ if (fullAuditAccess(p)) {
25
+ return true;
26
+ }
27
+ const add = p['TangoTrax_' + module + '_isAdd'];
28
+ const edit = p['TangoTrax_' + module + '_isEdit'];
29
+ if (add !== undefined || edit !== undefined) {
30
+ return !!add || !!edit;
31
+ }
32
+ return !!p.TangoTrax_checklist_isAdd || !!p.TangoTrax_checklist_isEdit;
33
+ }
34
+ /** The Audit tabs this user may open, in menu order; [] while permissions are loading or without Audit. */
35
+ export function auditTabsOn(p, auditOn) {
36
+ if (!p || !auditOn) {
37
+ return [];
38
+ }
39
+ if (fullAuditAccess(p)) {
40
+ return AUDIT_TAB_LINKS;
41
+ }
42
+ return AUDIT_TAB_LINKS.filter(t => {
43
+ const add = p['TangoTrax_' + t.key + '_isAdd'];
44
+ const edit = p['TangoTrax_' + t.key + '_isEdit'];
45
+ return add === undefined && edit === undefined ? true : !!add || !!edit;
46
+ });
47
+ }
48
+ /**
49
+ * Users who always get the whole Audit menu: Tango (internal) users, and a client's superadmin (Manage Users shows no
50
+ * permission table for a superadmin, so their Audit rows cannot be set). Client admins and users follow their rows.
51
+ */
52
+ function fullAuditAccess(p) {
53
+ return p?.userType === 'tango' || p?.role === 'superadmin';
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtdGFiLWFjY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC9hdWRpdC10YWItYWNjZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUF3RDtJQUNsRixFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsb0NBQW9DLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtJQUNqRyxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsaUNBQWlDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtJQUN2RixFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLDZCQUE2QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7SUFDM0UsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSwrQkFBK0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2pGLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsOEJBQThCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUM5RSxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLCtCQUErQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Q0FDbEYsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLENBQU0sRUFBRSxNQUE2QjtJQUNoRSxJQUFJLENBQUMsQ0FBQyxFQUFFO1FBQUUsT0FBTyxLQUFLLENBQUM7S0FBRTtJQUN6QixJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDO0tBQUU7SUFDeEMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFlBQVksR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDaEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFlBQVksR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDbEQsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7UUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztLQUFFO0lBQ3hFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO0FBQ3pFLENBQUM7QUFFRCwyR0FBMkc7QUFDM0csTUFBTSxVQUFVLFdBQVcsQ0FBQyxDQUFNLEVBQUUsT0FBZ0I7SUFDbEQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUFFLE9BQU8sRUFBRSxDQUFDO0tBQUU7SUFDbEMsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFBRSxPQUFPLGVBQWUsQ0FBQztLQUFFO0lBQ25ELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNoQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sR0FBRyxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGVBQWUsQ0FBQyxDQUFNO0lBQzdCLE9BQU8sQ0FBQyxFQUFFLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxFQUFFLElBQUksS0FBSyxZQUFZLENBQUM7QUFDN0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGFuZ28gVHJheCDigLogQXVkaXQgdGFicyBhIHVzZXIgbWF5IG9wZW4sIGZyb20gTWFuYWdlIFVzZXJzIOKAuiBUYW5nbyBUcmF4IOKAuiBBdWRpdCdzIHRhYiByb3dzXG4gKiAoVGFuZ29UcmF4X0F1ZGl0XzxUYWI+X2lzQWRkIC8gX2lzRWRpdDsgQWRkIG9yIEVkaXQgc2hvd3MgdGhlIHRhYikuIEEgVGFuZ28gKGludGVybmFsKSB1c2VyIHNlZXMgZXZlcnkgdGFiLiBBIHVzZXJcbiAqIHNhdmVkIGJlZm9yZSB0aGUgdGFiIHJvd3MgZXhpc3RlZCBoYXMgbm8gdGFiIGtleXMgYW5kIGtlZXBzIGV2ZXJ5IHRhYiB3aGlsZSBBdWRpdCBpdHNlbGYgaXMgb24gKHRoZSB1c2VyIEFQSSBmaWxsc1xuICogdGhlbSBpbiBmcm9tIEF1ZGl0IHRvbykuIFNhbWUgcnVsZSBhcyB0aGUgYXVkaXQgcGFnZXMgKHRhbmdvLWFuYWx5c2UtdHJheCBhdWRpdC12Mi1hY2Nlc3MudHMgYXVkaXRUYWJzT24pLlxuICovXG5leHBvcnQgY29uc3QgQVVESVRfVEFCX0xJTktTOiBBcnJheTx7IGtleTogc3RyaW5nOyBwYXRoOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfT4gPSBbXG4gIHsga2V5OiAnQXVkaXRfQWN0aW9uQ2VudGVyJywgcGF0aDogJy9tYW5hZ2UvdHJheC9hdWRpdC12Mi9hY3Rpb25jZW50ZXInLCBsYWJlbDogJ0FjdGlvbiBDZW50ZXInIH0sXG4gIHsga2V5OiAnQXVkaXRfRGFzaGJvYXJkJywgcGF0aDogJy9tYW5hZ2UvdHJheC9hdWRpdC12Mi9kYXNoYm9hcmQnLCBsYWJlbDogJ0Rhc2hib2FyZCcgfSxcbiAgeyBrZXk6ICdBdWRpdF9GbGFncycsIHBhdGg6ICcvbWFuYWdlL3RyYXgvYXVkaXQtdjIvZmxhZ3MnLCBsYWJlbDogJ0ZsYWdzJyB9LFxuICB7IGtleTogJ0F1ZGl0X0dhbGxlcnknLCBwYXRoOiAnL21hbmFnZS90cmF4L2F1ZGl0LXYyL2dhbGxlcnknLCBsYWJlbDogJ0dhbGxlcnknIH0sXG4gIHsga2V5OiAnQXVkaXRfTWFuYWdlJywgcGF0aDogJy9tYW5hZ2UvdHJheC9hdWRpdC12Mi9tYW5hZ2UnLCBsYWJlbDogJ01hbmFnZScgfSxcbiAgeyBrZXk6ICdBdWRpdF9SZXBvcnRzJywgcGF0aDogJy9tYW5hZ2UvdHJheC9hdWRpdC12Mi9yZXBvcnRzJywgbGFiZWw6ICdSZXBvcnRzJyB9XG5dO1xuXG4vKipcbiAqIFdoZXRoZXIgVGFuZ28gVHJheCAtPiBBdWRpdCAob3IgU2NoZWR1bGVzKSBpcyBzaG93bi4gQSBUYW5nbyB1c2VyIG9yIGNsaWVudCBzdXBlcmFkbWluIGFsd2F5cyBzZWVzIGl0LiBBIGNsaWVudCB1c2VyIHNlZXMgaXRcbiAqIHdoZW4gaXRzIEFkZCBvciBFZGl0IGtleSBpcyB0cnVlIChUYW5nb1RyYXhfPG1vZHVsZT5faXNBZGQgLyBfaXNFZGl0LCBmcm9tIE1hbmFnZSBVc2VyczsgdGhlIHVzZXIgQVBJIGZpbGxzIEF1ZGl0IC9cbiAqIFNjaGVkdWxlcyBpbiBmcm9tIENoZWNrbGlzdCBmb3IgdXNlcnMgc2F2ZWQgYmVmb3JlIHRob3NlIHJvd3MpOyB3aXRob3V0IHRob3NlIGtleXMgdGhlIENoZWNrbGlzdCBrZXlzIGRlY2lkZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYXhNb2R1bGVPbihwOiBhbnksIG1vZHVsZTogJ0F1ZGl0JyB8ICdTY2hlZHVsZXMnKTogYm9vbGVhbiB7XG4gIGlmICghcCkgeyByZXR1cm4gZmFsc2U7IH1cbiAgaWYgKGZ1bGxBdWRpdEFjY2VzcyhwKSkgeyByZXR1cm4gdHJ1ZTsgfVxuICBjb25zdCBhZGQgPSBwWydUYW5nb1RyYXhfJyArIG1vZHVsZSArICdfaXNBZGQnXTtcbiAgY29uc3QgZWRpdCA9IHBbJ1RhbmdvVHJheF8nICsgbW9kdWxlICsgJ19pc0VkaXQnXTtcbiAgaWYgKGFkZCAhPT0gdW5kZWZpbmVkIHx8IGVkaXQgIT09IHVuZGVmaW5lZCkgeyByZXR1cm4gISFhZGQgfHwgISFlZGl0OyB9XG4gIHJldHVybiAhIXAuVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0FkZCB8fCAhIXAuVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQ7XG59XG5cbi8qKiBUaGUgQXVkaXQgdGFicyB0aGlzIHVzZXIgbWF5IG9wZW4sIGluIG1lbnUgb3JkZXI7IFtdIHdoaWxlIHBlcm1pc3Npb25zIGFyZSBsb2FkaW5nIG9yIHdpdGhvdXQgQXVkaXQuICovXG5leHBvcnQgZnVuY3Rpb24gYXVkaXRUYWJzT24ocDogYW55LCBhdWRpdE9uOiBib29sZWFuKTogQXJyYXk8eyBrZXk6IHN0cmluZzsgcGF0aDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH0+IHtcbiAgaWYgKCFwIHx8ICFhdWRpdE9uKSB7IHJldHVybiBbXTsgfVxuICBpZiAoZnVsbEF1ZGl0QWNjZXNzKHApKSB7IHJldHVybiBBVURJVF9UQUJfTElOS1M7IH1cbiAgcmV0dXJuIEFVRElUX1RBQl9MSU5LUy5maWx0ZXIodCA9PiB7XG4gICAgY29uc3QgYWRkID0gcFsnVGFuZ29UcmF4XycgKyB0LmtleSArICdfaXNBZGQnXTtcbiAgICBjb25zdCBlZGl0ID0gcFsnVGFuZ29UcmF4XycgKyB0LmtleSArICdfaXNFZGl0J107XG4gICAgcmV0dXJuIGFkZCA9PT0gdW5kZWZpbmVkICYmIGVkaXQgPT09IHVuZGVmaW5lZCA/IHRydWUgOiAhIWFkZCB8fCAhIWVkaXQ7XG4gIH0pO1xufVxuXG4vKipcbiAqIFVzZXJzIHdobyBhbHdheXMgZ2V0IHRoZSB3aG9sZSBBdWRpdCBtZW51OiBUYW5nbyAoaW50ZXJuYWwpIHVzZXJzLCBhbmQgYSBjbGllbnQncyBzdXBlcmFkbWluIChNYW5hZ2UgVXNlcnMgc2hvd3Mgbm9cbiAqIHBlcm1pc3Npb24gdGFibGUgZm9yIGEgc3VwZXJhZG1pbiwgc28gdGhlaXIgQXVkaXQgcm93cyBjYW5ub3QgYmUgc2V0KS4gQ2xpZW50IGFkbWlucyBhbmQgdXNlcnMgZm9sbG93IHRoZWlyIHJvd3MuXG4gKi9cbmZ1bmN0aW9uIGZ1bGxBdWRpdEFjY2VzcyhwOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHA/LnVzZXJUeXBlID09PSAndGFuZ28nIHx8IHA/LnJvbGUgPT09ICdzdXBlcmFkbWluJztcbn1cbiJdfQ==
@@ -1,15 +1,23 @@
1
1
  import { Component } from '@angular/core';
2
+ import { map } from 'rxjs';
3
+ import { AUDIT_TAB_LINKS, auditTabsOn, traxModuleOn } from '../../audit-tab-access';
2
4
  import * as i0 from "@angular/core";
3
5
  import * as i1 from "../../../../services/auth.service";
4
6
  import * as i2 from "@angular/router";
5
- import * as i3 from "@angular/common";
7
+ import * as i3 from "tango-app-ui-global";
8
+ import * as i4 from "@angular/common";
6
9
  export class HeaderBannerComponent {
7
10
  service;
8
11
  router;
12
+ gs;
9
13
  showCreateOrder = 'UNAUTHORIZED';
10
- constructor(service, router) {
14
+ /** Audit tabs this user may open (Manage Users › Tango Trax › Audit's tab rows); every tab until permissions load. */
15
+ auditTabs$;
16
+ constructor(service, router, gs) {
11
17
  this.service = service;
12
18
  this.router = router;
19
+ this.gs = gs;
20
+ this.auditTabs$ = this.gs.userAccess.pipe(map((p) => (p ? auditTabsOn(p, traxModuleOn(p, 'Audit')) : AUDIT_TAB_LINKS)));
13
21
  }
14
22
  /** The Audit module has its own tab set, shown in place of the Checklist tabs. */
15
23
  get isAuditModule() {
@@ -23,11 +31,11 @@ export class HeaderBannerComponent {
23
31
  this.showCreateOrder = res?.message || 'UNAUTHORIZED';
24
32
  });
25
33
  }
26
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderBannerComponent, deps: [{ token: i1.AuthService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
27
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HeaderBannerComponent, selector: "lib-header-banner", ngImport: i0, template: " <div class=\"card pt-3\" style=\"border-radius: 0% !important;\">\r\n\r\n <div *ngIf=\"isAuditModule\" class=\"d-flex overflow-auto1 h-35px mb-2 mx-5\">\r\n <ul\r\n class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder flex-nowrap\">\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/actioncenter\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Action Center</a>\r\n </li>\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/dashboard\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Dashboard</a>\r\n </li>\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/flags\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Flags</a>\r\n </li>\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/gallery\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Gallery</a>\r\n </li>\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/manage\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Manage</a>\r\n </li>\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/reports\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Reports</a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div *ngIf=\"!isAuditModule\" class=\"d-flex overflow-auto1 h-35px mb-2 mx-5\">\r\n <ul\r\n class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder flex-nowrap\">\r\n <li\r\n class=\"nav-item\"><a routerLink=\"/manage/trax/actioncenter\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6 \">Action Center</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/dashboard\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6 \">Dashboard</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/flags\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6\">Flags</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/gallery\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6\">Gallery</a>\r\n </li>\r\n <li class=\"nav-item\" ><a routerLink=\"/manage/trax/checklist\"\r\n routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Manage</a>\r\n </li>\r\n <li class=\"nav-item\" *ngIf=\"users?.isEyetestUser\"><a routerLink=\"/manage/trax/audit\"\r\n routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Audit</a>\r\n </li>\r\n <!-- <li class=\"nav-item cursor-pointer\"><a (click)=\"changes('trax-reports')\"\r\n routerLink=\"/manage/trax/reports\" routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Reports</a>\r\n </li> -->\r\n <li *ngIf=\"showCreateOrder === 'AUTHORIZED'\" class=\"nav-item cursor-pointer\"><a \r\n routerLink=\"/manage/trax/create-order\" routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Create Order</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderBannerComponent, deps: [{ token: i1.AuthService }, { token: i2.Router }, { token: i3.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HeaderBannerComponent, selector: "lib-header-banner", ngImport: i0, template: " <div class=\"card pt-3\" style=\"border-radius: 0% !important;\">\r\n\r\n <div *ngIf=\"isAuditModule\" class=\"d-flex overflow-auto1 h-35px mb-2 mx-5\">\r\n <ul\r\n class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder flex-nowrap\">\r\n <!-- Only the tabs the user may open (Manage Users \u203A Tango Trax \u203A Audit's tab rows). -->\r\n <li class=\"nav-item\" *ngFor=\"let tab of auditTabs$ | async\"><a [routerLink]=\"tab.path\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">{{ tab.label }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div *ngIf=\"!isAuditModule\" class=\"d-flex overflow-auto1 h-35px mb-2 mx-5\">\r\n <ul\r\n class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder flex-nowrap\">\r\n <li\r\n class=\"nav-item\"><a routerLink=\"/manage/trax/actioncenter\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6 \">Action Center</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/dashboard\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6 \">Dashboard</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/flags\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6\">Flags</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/gallery\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6\">Gallery</a>\r\n </li>\r\n <li class=\"nav-item\" ><a routerLink=\"/manage/trax/checklist\"\r\n routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Manage</a>\r\n </li>\r\n <li class=\"nav-item\" *ngIf=\"users?.isEyetestUser\"><a routerLink=\"/manage/trax/audit\"\r\n routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Audit</a>\r\n </li>\r\n <!-- <li class=\"nav-item cursor-pointer\"><a (click)=\"changes('trax-reports')\"\r\n routerLink=\"/manage/trax/reports\" routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Reports</a>\r\n </li> -->\r\n <li *ngIf=\"showCreateOrder === 'AUTHORIZED'\" class=\"nav-item cursor-pointer\"><a \r\n routerLink=\"/manage/trax/create-order\" routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Create Order</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
28
36
  }
29
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderBannerComponent, decorators: [{
30
38
  type: Component,
31
- args: [{ selector: 'lib-header-banner', template: " <div class=\"card pt-3\" style=\"border-radius: 0% !important;\">\r\n\r\n <div *ngIf=\"isAuditModule\" class=\"d-flex overflow-auto1 h-35px mb-2 mx-5\">\r\n <ul\r\n class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder flex-nowrap\">\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/actioncenter\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Action Center</a>\r\n </li>\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/dashboard\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Dashboard</a>\r\n </li>\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/flags\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Flags</a>\r\n </li>\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/gallery\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Gallery</a>\r\n </li>\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/manage\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Manage</a>\r\n </li>\r\n <li class=\"nav-item\"><a routerLink=\"/manage/trax/audit-v2/reports\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">Reports</a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div *ngIf=\"!isAuditModule\" class=\"d-flex overflow-auto1 h-35px mb-2 mx-5\">\r\n <ul\r\n class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder flex-nowrap\">\r\n <li\r\n class=\"nav-item\"><a routerLink=\"/manage/trax/actioncenter\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6 \">Action Center</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/dashboard\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6 \">Dashboard</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/flags\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6\">Flags</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/gallery\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6\">Gallery</a>\r\n </li>\r\n <li class=\"nav-item\" ><a routerLink=\"/manage/trax/checklist\"\r\n routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Manage</a>\r\n </li>\r\n <li class=\"nav-item\" *ngIf=\"users?.isEyetestUser\"><a routerLink=\"/manage/trax/audit\"\r\n routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Audit</a>\r\n </li>\r\n <!-- <li class=\"nav-item cursor-pointer\"><a (click)=\"changes('trax-reports')\"\r\n routerLink=\"/manage/trax/reports\" routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Reports</a>\r\n </li> -->\r\n <li *ngIf=\"showCreateOrder === 'AUTHORIZED'\" class=\"nav-item cursor-pointer\"><a \r\n routerLink=\"/manage/trax/create-order\" routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Create Order</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>" }]
32
- }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.Router }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWJhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvaGVhZGVyL2hlYWRlci1iYW5uZXIvaGVhZGVyLWJhbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvaGVhZGVyL2hlYWRlci1iYW5uZXIvaGVhZGVyLWJhbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQVNsRCxNQUFNLE9BQU8scUJBQXFCO0lBR2Q7SUFBNkI7SUFGakQsZUFBZSxHQUFrQyxjQUFjLENBQUE7SUFFL0QsWUFBb0IsT0FBbUIsRUFBVSxNQUFjO1FBQTNDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRS9ELENBQUM7SUFFRCxrRkFBa0Y7SUFDbEYsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsS0FBSyxDQUFLO0lBQ1QsUUFBUTtRQUNMLE1BQU0sUUFBUSxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBTyxFQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQUUsT0FBTyxJQUFJLGNBQWMsQ0FBQTtRQUN2RCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7d0dBbEJZLHFCQUFxQjs0RkFBckIscUJBQXFCLHlEQ1RsQyxpM0pBK0RPOzs0RkR0RE0scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlci1iYW5uZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXItYmFubmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaGVhZGVyLWJhbm5lci5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlckJhbm5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbnNob3dDcmVhdGVPcmRlcjogJ0FVVEhPUklaRUQnIHwgJ1VOQVVUSE9SSVpFRCcgPSAnVU5BVVRIT1JJWkVEJ1xyXG5cclxuY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOkF1dGhTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyICl7XHJcblxyXG59XHJcblxyXG4vKiogVGhlIEF1ZGl0IG1vZHVsZSBoYXMgaXRzIG93biB0YWIgc2V0LCBzaG93biBpbiBwbGFjZSBvZiB0aGUgQ2hlY2tsaXN0IHRhYnMuICovXHJcbmdldCBpc0F1ZGl0TW9kdWxlKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJy9tYW5hZ2UvdHJheC9hdWRpdC12MicpO1xyXG59XHJcbnVzZXJzOmFueTtcclxuIG5nT25Jbml0KCk6IHZvaWR7XHJcbiAgICBjb25zdCB1c2VyRGF0YTogYW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcInt9XCIpO1xyXG4gIHRoaXMudXNlcnMgPSB1c2VyRGF0YTtcclxuICB0aGlzLnNlcnZpY2UuaXNMb2N1c0F1dGhvcml6ZWQoKS5zdWJzY3JpYmUoKHJlczphbnkpPT57XHJcbiAgICAgIHRoaXMuc2hvd0NyZWF0ZU9yZGVyID0gcmVzPy5tZXNzYWdlIHx8ICdVTkFVVEhPUklaRUQnXHJcbiAgICB9KVxyXG59XHJcbn1cclxuIiwiIDxkaXYgY2xhc3M9XCJjYXJkIHB0LTNcIiBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDAlICFpbXBvcnRhbnQ7XCI+XHJcblxyXG4gICAgIDxkaXYgICpuZ0lmPVwiaXNBdWRpdE1vZHVsZVwiIGNsYXNzPVwiZC1mbGV4IG92ZXJmbG93LWF1dG8xIGgtMzVweCBtYi0yIG14LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzIG5hdi1saW5lLXRhYnMtMnggYm9yZGVyLXRyYW5zcGFyZW50IGZzLTUgZnctYm9sZGVyIGZsZXgtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj48YSByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2F1ZGl0LXYyL2FjdGlvbmNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbWUtNlwiPkFjdGlvbiBDZW50ZXI8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPjxhIHJvdXRlckxpbms9XCIvbWFuYWdlL3RyYXgvYXVkaXQtdjIvZGFzaGJvYXJkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtZS02XCI+RGFzaGJvYXJkPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj48YSByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2F1ZGl0LXYyL2ZsYWdzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtZS02XCI+RmxhZ3M8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPjxhIHJvdXRlckxpbms9XCIvbWFuYWdlL3RyYXgvYXVkaXQtdjIvZ2FsbGVyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbWUtNlwiPkdhbGxlcnk8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPjxhIHJvdXRlckxpbms9XCIvbWFuYWdlL3RyYXgvYXVkaXQtdjIvbWFuYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtZS02XCI+TWFuYWdlPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj48YSByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2F1ZGl0LXYyL3JlcG9ydHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1lLTZcIj5SZXBvcnRzPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICA8ZGl2ICAqbmdJZj1cIiFpc0F1ZGl0TW9kdWxlXCIgY2xhc3M9XCJkLWZsZXggb3ZlcmZsb3ctYXV0bzEgaC0zNXB4IG1iLTIgbXgtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMgbmF2LWxpbmUtdGFicy0yeCBib3JkZXItdHJhbnNwYXJlbnQgZnMtNSBmdy1ib2xkZXIgZmxleC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtXCI+PGEgcm91dGVyTGluaz1cIi9tYW5hZ2UvdHJheC9hY3Rpb25jZW50ZXJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtZS02IFwiPkFjdGlvbiBDZW50ZXI8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtXCI+PGEgcm91dGVyTGluaz1cIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtZS02IFwiPkRhc2hib2FyZDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtXCI+PGEgcm91dGVyTGluaz1cIi9tYW5hZ2UvdHJheC9mbGFnc1wiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtZS02XCI+RmxhZ3M8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtaXRlbVwiPjxhIHJvdXRlckxpbms9XCIvbWFuYWdlL3RyYXgvZ2FsbGVyeVwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1lLTZcIj5HYWxsZXJ5PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiID48YSByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2NoZWNrbGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1lLTZcIj5NYW5hZ2U8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwidXNlcnM/LmlzRXlldGVzdFVzZXJcIj48YSByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2F1ZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbWUtNlwiPkF1ZGl0PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGkgIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj48YSAoY2xpY2spPVwiY2hhbmdlcygndHJheC1yZXBvcnRzJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L3JlcG9ydHNcIiAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1lLTZcIj5SZXBvcnRzPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cInNob3dDcmVhdGVPcmRlciA9PT0gJ0FVVEhPUklaRUQnXCIgIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj48YSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluaz1cIi9tYW5hZ2UvdHJheC9jcmVhdGUtb3JkZXJcIiAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1lLTZcIj5DcmVhdGUgT3JkZXI8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuIDwvZGl2PiJdfQ==
39
+ args: [{ selector: 'lib-header-banner', template: " <div class=\"card pt-3\" style=\"border-radius: 0% !important;\">\r\n\r\n <div *ngIf=\"isAuditModule\" class=\"d-flex overflow-auto1 h-35px mb-2 mx-5\">\r\n <ul\r\n class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder flex-nowrap\">\r\n <!-- Only the tabs the user may open (Manage Users \u203A Tango Trax \u203A Audit's tab rows). -->\r\n <li class=\"nav-item\" *ngFor=\"let tab of auditTabs$ | async\"><a [routerLink]=\"tab.path\"\r\n routerLinkActive=\"active\" class=\"nav-link text-active-primary me-6\">{{ tab.label }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div *ngIf=\"!isAuditModule\" class=\"d-flex overflow-auto1 h-35px mb-2 mx-5\">\r\n <ul\r\n class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder flex-nowrap\">\r\n <li\r\n class=\"nav-item\"><a routerLink=\"/manage/trax/actioncenter\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6 \">Action Center</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/dashboard\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6 \">Dashboard</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/flags\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6\">Flags</a>\r\n </li>\r\n <li \r\n class=\"nav-item\"><a routerLink=\"/manage/trax/gallery\" routerLinkActive=\"active\"\r\n class=\"nav-link text-active-primary me-6\">Gallery</a>\r\n </li>\r\n <li class=\"nav-item\" ><a routerLink=\"/manage/trax/checklist\"\r\n routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Manage</a>\r\n </li>\r\n <li class=\"nav-item\" *ngIf=\"users?.isEyetestUser\"><a routerLink=\"/manage/trax/audit\"\r\n routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Audit</a>\r\n </li>\r\n <!-- <li class=\"nav-item cursor-pointer\"><a (click)=\"changes('trax-reports')\"\r\n routerLink=\"/manage/trax/reports\" routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Reports</a>\r\n </li> -->\r\n <li *ngIf=\"showCreateOrder === 'AUTHORIZED'\" class=\"nav-item cursor-pointer\"><a \r\n routerLink=\"/manage/trax/create-order\" routerLinkActive=\"active\" \r\n class=\"nav-link text-active-primary me-6\">Create Order</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>" }]
40
+ }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.Router }, { type: i3.GlobalStateService }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWJhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvaGVhZGVyL2hlYWRlci1iYW5uZXIvaGVhZGVyLWJhbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvaGVhZGVyL2hlYWRlci1iYW5uZXIvaGVhZGVyLWJhbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBYyxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQU9wRixNQUFNLE9BQU8scUJBQXFCO0lBTWQ7SUFBNkI7SUFBd0I7SUFMekUsZUFBZSxHQUFrQyxjQUFjLENBQUE7SUFFL0Qsc0hBQXNIO0lBQzdHLFVBQVUsQ0FBa0U7SUFFckYsWUFBb0IsT0FBbUIsRUFBVSxNQUFjLEVBQVUsRUFBc0I7UUFBM0UsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUM3RixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9ILENBQUM7SUFFRCxrRkFBa0Y7SUFDbEYsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsS0FBSyxDQUFLO0lBQ1QsUUFBUTtRQUNMLE1BQU0sUUFBUSxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBTyxFQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQUUsT0FBTyxJQUFJLGNBQWMsQ0FBQTtRQUN2RCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7d0dBckJZLHFCQUFxQjs0RkFBckIscUJBQXFCLHlEQ1psQyxzc0hBaURPOzs0RkRyQ00scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBVURJVF9UQUJfTElOS1MsIGF1ZGl0VGFic09uLCB0cmF4TW9kdWxlT24gfSBmcm9tICcuLi8uLi9hdWRpdC10YWItYWNjZXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlci1iYW5uZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXItYmFubmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaGVhZGVyLWJhbm5lci5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlckJhbm5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbnNob3dDcmVhdGVPcmRlcjogJ0FVVEhPUklaRUQnIHwgJ1VOQVVUSE9SSVpFRCcgPSAnVU5BVVRIT1JJWkVEJ1xyXG5cclxuLyoqIEF1ZGl0IHRhYnMgdGhpcyB1c2VyIG1heSBvcGVuIChNYW5hZ2UgVXNlcnMg4oC6IFRhbmdvIFRyYXgg4oC6IEF1ZGl0J3MgdGFiIHJvd3MpOyBldmVyeSB0YWIgdW50aWwgcGVybWlzc2lvbnMgbG9hZC4gKi9cclxucmVhZG9ubHkgYXVkaXRUYWJzJDogT2JzZXJ2YWJsZTxBcnJheTx7IGtleTogc3RyaW5nOyBwYXRoOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfT4+O1xyXG5cclxuY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOkF1dGhTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UgKXtcclxuICB0aGlzLmF1ZGl0VGFicyQgPSB0aGlzLmdzLnVzZXJBY2Nlc3MucGlwZShtYXAoKHA6IGFueSkgPT4gKHAgPyBhdWRpdFRhYnNPbihwLCB0cmF4TW9kdWxlT24ocCwgJ0F1ZGl0JykpIDogQVVESVRfVEFCX0xJTktTKSkpO1xyXG59XHJcblxyXG4vKiogVGhlIEF1ZGl0IG1vZHVsZSBoYXMgaXRzIG93biB0YWIgc2V0LCBzaG93biBpbiBwbGFjZSBvZiB0aGUgQ2hlY2tsaXN0IHRhYnMuICovXHJcbmdldCBpc0F1ZGl0TW9kdWxlKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJy9tYW5hZ2UvdHJheC9hdWRpdC12MicpO1xyXG59XHJcbnVzZXJzOmFueTtcclxuIG5nT25Jbml0KCk6IHZvaWR7XHJcbiAgICBjb25zdCB1c2VyRGF0YTogYW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcInt9XCIpO1xyXG4gIHRoaXMudXNlcnMgPSB1c2VyRGF0YTtcclxuICB0aGlzLnNlcnZpY2UuaXNMb2N1c0F1dGhvcml6ZWQoKS5zdWJzY3JpYmUoKHJlczphbnkpPT57XHJcbiAgICAgIHRoaXMuc2hvd0NyZWF0ZU9yZGVyID0gcmVzPy5tZXNzYWdlIHx8ICdVTkFVVEhPUklaRUQnXHJcbiAgICB9KVxyXG59XHJcbn1cclxuIiwiIDxkaXYgY2xhc3M9XCJjYXJkIHB0LTNcIiBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDAlICFpbXBvcnRhbnQ7XCI+XHJcblxyXG4gICAgIDxkaXYgICpuZ0lmPVwiaXNBdWRpdE1vZHVsZVwiIGNsYXNzPVwiZC1mbGV4IG92ZXJmbG93LWF1dG8xIGgtMzVweCBtYi0yIG14LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzIG5hdi1saW5lLXRhYnMtMnggYm9yZGVyLXRyYW5zcGFyZW50IGZzLTUgZnctYm9sZGVyIGZsZXgtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBPbmx5IHRoZSB0YWJzIHRoZSB1c2VyIG1heSBvcGVuIChNYW5hZ2UgVXNlcnMg4oC6IFRhbmdvIFRyYXgg4oC6IEF1ZGl0J3MgdGFiIHJvd3MpLiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0Zvcj1cImxldCB0YWIgb2YgYXVkaXRUYWJzJCB8IGFzeW5jXCI+PGEgW3JvdXRlckxpbmtdPVwidGFiLnBhdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1lLTZcIj57eyB0YWIubGFiZWwgfX08L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgIDxkaXYgICpuZ0lmPVwiIWlzQXVkaXRNb2R1bGVcIiBjbGFzcz1cImQtZmxleCBvdmVyZmxvdy1hdXRvMSBoLTM1cHggbWItMiBteC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFicyBuYXYtbGluZS10YWJzLTJ4IGJvcmRlci10cmFuc3BhcmVudCBmcy01IGZ3LWJvbGRlciBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWl0ZW1cIj48YSByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2FjdGlvbmNlbnRlclwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1lLTYgXCI+QWN0aW9uIENlbnRlcjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWl0ZW1cIj48YSByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1lLTYgXCI+RGFzaGJvYXJkPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWl0ZW1cIj48YSByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2ZsYWdzXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1lLTZcIj5GbGFnczwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtXCI+PGEgcm91dGVyTGluaz1cIi9tYW5hZ2UvdHJheC9nYWxsZXJ5XCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbWUtNlwiPkdhbGxlcnk8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgPjxhIHJvdXRlckxpbms9XCIvbWFuYWdlL3RyYXgvY2hlY2tsaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbWUtNlwiPk1hbmFnZTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJ1c2Vycz8uaXNFeWV0ZXN0VXNlclwiPjxhIHJvdXRlckxpbms9XCIvbWFuYWdlL3RyYXgvYXVkaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtZS02XCI+QXVkaXQ8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaSAgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlclwiPjxhIChjbGljayk9XCJjaGFuZ2VzKCd0cmF4LXJlcG9ydHMnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms9XCIvbWFuYWdlL3RyYXgvcmVwb3J0c1wiICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbWUtNlwiPlJlcG9ydHM8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwic2hvd0NyZWF0ZU9yZGVyID09PSAnQVVUSE9SSVpFRCdcIiAgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlclwiPjxhIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2NyZWF0ZS1vcmRlclwiICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbWUtNlwiPkNyZWF0ZSBPcmRlcjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gPC9kaXY+Il19