@retalia/sidebar-navigation 13.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +43 -0
  2. package/esm2020/lib/data/support-routes.mjs +55 -0
  3. package/esm2020/lib/data/test-data.mjs +621 -0
  4. package/esm2020/lib/models/cookie-names.mjs +14 -0
  5. package/esm2020/lib/models/environment.mjs +2 -0
  6. package/esm2020/lib/models/http-response.mjs +2 -0
  7. package/esm2020/lib/models/module.mjs +2 -0
  8. package/esm2020/lib/navigation-lib.component.mjs +28 -0
  9. package/esm2020/lib/navigation-lib.module.mjs +50 -0
  10. package/esm2020/lib/navigation-lib.service.mjs +14 -0
  11. package/esm2020/lib/services/auth.service.mjs +43 -0
  12. package/esm2020/lib/services/cookie.service.mjs +34 -0
  13. package/esm2020/lib/services/http.service.mjs +19 -0
  14. package/esm2020/lib/services/module.service.mjs +133 -0
  15. package/esm2020/lib/services/sub-item.service.mjs +47 -0
  16. package/esm2020/lib/sidebar/shop-modal/shop-modal.component.mjs +40 -0
  17. package/esm2020/lib/sidebar/sidebar.component.mjs +182 -0
  18. package/esm2020/lib/sidebar/sub-item/sub-item.component.mjs +52 -0
  19. package/esm2020/lib/topbar/topbar.component.mjs +68 -0
  20. package/esm2020/public-api.mjs +12 -0
  21. package/esm2020/retalia-sidebar-navigation.mjs +5 -0
  22. package/fesm2015/retalia-sidebar-navigation.mjs +1367 -0
  23. package/fesm2015/retalia-sidebar-navigation.mjs.map +1 -0
  24. package/fesm2020/retalia-sidebar-navigation.mjs +1358 -0
  25. package/fesm2020/retalia-sidebar-navigation.mjs.map +1 -0
  26. package/lib/data/support-routes.d.ts +2 -0
  27. package/lib/data/test-data.d.ts +2 -0
  28. package/lib/models/cookie-names.d.ts +12 -0
  29. package/lib/models/environment.d.ts +4 -0
  30. package/lib/models/http-response.d.ts +3 -0
  31. package/lib/models/module.d.ts +32 -0
  32. package/lib/navigation-lib.component.d.ts +12 -0
  33. package/lib/navigation-lib.module.d.ts +14 -0
  34. package/lib/navigation-lib.service.d.ts +6 -0
  35. package/lib/services/auth.service.d.ts +12 -0
  36. package/lib/services/cookie.service.d.ts +12 -0
  37. package/lib/services/http.service.d.ts +2 -0
  38. package/lib/services/module.service.d.ts +20 -0
  39. package/lib/services/sub-item.service.d.ts +12 -0
  40. package/lib/sidebar/shop-modal/shop-modal.component.d.ts +17 -0
  41. package/lib/sidebar/sidebar.component.d.ts +47 -0
  42. package/lib/sidebar/sub-item/sub-item.component.d.ts +16 -0
  43. package/lib/topbar/topbar.component.d.ts +20 -0
  44. package/package.json +44 -0
  45. package/public-api.d.ts +8 -0
  46. package/retalia-sidebar-navigation.d.ts +5 -0
@@ -0,0 +1,182 @@
1
+ import { Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { supportRoutes } from '../data/support-routes';
3
+ import { CookieNames } from '../models/cookie-names';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../services/module.service";
6
+ import * as i2 from "../services/sub-item.service";
7
+ import * as i3 from "../services/cookie.service";
8
+ import * as i4 from "ngx-smart-modal";
9
+ import * as i5 from "./sub-item/sub-item.component";
10
+ import * as i6 from "./shop-modal/shop-modal.component";
11
+ import * as i7 from "@angular/common";
12
+ export class SidebarComponent {
13
+ constructor(moduleService, subItemService, cookieService, ngxSmartModalService) {
14
+ this.moduleService = moduleService;
15
+ this.subItemService = subItemService;
16
+ this.cookieService = cookieService;
17
+ this.ngxSmartModalService = ngxSmartModalService;
18
+ this.selectedRoute = new EventEmitter();
19
+ this.moduleSearchValue = '';
20
+ this.modules = [];
21
+ this.modulesCopy = [];
22
+ this.supportRoutes = supportRoutes;
23
+ this.availableShops = [];
24
+ this.availableShopsCopy = [];
25
+ this.moduleSearchPlaceholder = 'Search Modules ...';
26
+ this.isSidebarOpen = this.getSidebarState();
27
+ this.hideStatus = true;
28
+ this.panelButtonStates = {
29
+ isModuleOpen: false,
30
+ isSupportOpen: false,
31
+ };
32
+ this.subItemService.subItemClickEvent.subscribe((item) => {
33
+ this.subItemClicked(item);
34
+ });
35
+ }
36
+ ngOnChanges(changes) {
37
+ if (changes.environment && changes.environment.currentValue.apiRequestUrl) {
38
+ this.getModules(true);
39
+ }
40
+ }
41
+ // SIDEBAR
42
+ toggleSidebar(e, option) {
43
+ e.stopPropagation();
44
+ // Allows us to expand the panel items in future without needing to change the toggle logic
45
+ for (let item in Object(this.panelButtonStates)) {
46
+ item === option
47
+ ? (this.panelButtonStates[item] = !this.panelButtonStates[item])
48
+ : (this.panelButtonStates[item] = false);
49
+ }
50
+ this.isSidebarOpen = this.panelButtonStates[option];
51
+ this.setSidebarState();
52
+ }
53
+ setSidebarState() {
54
+ this.cookieService.setCookie(CookieNames.isSidebarOpen, this.isSidebarOpen);
55
+ }
56
+ getSidebarState() {
57
+ let isSidebarOpen = this.cookieService.getCookie(CookieNames.isSidebarOpen) == 'true';
58
+ if (typeof isSidebarOpen === 'undefined') {
59
+ return true;
60
+ }
61
+ return isSidebarOpen;
62
+ }
63
+ goToPortal() {
64
+ window.location.href = this.environment.portalUrl;
65
+ }
66
+ handleModuleSearch(e) {
67
+ if (this.modulesCopy.length < 1) {
68
+ this.modulesCopy = [...this.modules];
69
+ }
70
+ this.moduleSearchValue = e && e.target ? e.target.value : '';
71
+ const searchString = this.moduleSearchValue.toLowerCase();
72
+ const moduleCopy = JSON.parse(JSON.stringify(this.modulesCopy));
73
+ this.modules = this.filterModules(moduleCopy, searchString);
74
+ }
75
+ filterModules(moduleItems, searchTerm) {
76
+ const matches = [];
77
+ if (!Array.isArray(this.modules))
78
+ return matches;
79
+ moduleItems.forEach((i) => {
80
+ if (i.name.toLowerCase().includes(searchTerm)) {
81
+ i.visible = true;
82
+ matches.push(i);
83
+ }
84
+ else {
85
+ const childResults = this.filterModules(i.children, searchTerm);
86
+ if (childResults.length) {
87
+ matches.push(Object.assign({}, i, { children: childResults }));
88
+ }
89
+ }
90
+ });
91
+ return matches;
92
+ }
93
+ subItemClicked(item) {
94
+ this.selectedModule = this.modules.find((m) => m.authorizationId ===
95
+ (item.authorizationId || item.moduleAuthorizationId));
96
+ if (this.selectedItem)
97
+ this.selectedItem.active = false;
98
+ this.selectedItem = item;
99
+ this.selectedItem.active = true;
100
+ if (this.selectedItem.relationName === 'Documentation') {
101
+ window.open(this.selectedItem.url, '_blank', 'noopener noreferrer');
102
+ }
103
+ else if ((this.selectedModule && !this.selectedModule.entityAccess) ||
104
+ !this.selectedModule.entityAccess.length) {
105
+ this.routeToUrl();
106
+ }
107
+ else if (this.selectedModule &&
108
+ this.selectedModule.entityAccess.length === 1) {
109
+ const soleShop = this.selectedModule.entityAccess[0];
110
+ this.subItemService.saveItemInfo(this.selectedModule, soleShop);
111
+ this.routeToUrl();
112
+ }
113
+ else {
114
+ this.mapShopModal();
115
+ this.ngxSmartModalService.getModal('shopModal').open();
116
+ }
117
+ }
118
+ selectedShop(selectedShop) {
119
+ this.subItemService.saveItemInfo(this.selectedModule, selectedShop.id);
120
+ this.routeToUrl();
121
+ }
122
+ mapShopModal() {
123
+ if (this.availableShopsCopy.length < 1) {
124
+ this.availableShopsCopy = [...this.availableShops];
125
+ }
126
+ this.availableShops = this.availableShopsCopy.filter((shop) => this.selectedModule.entityAccess.includes(shop.id));
127
+ }
128
+ goToStatusPage() {
129
+ window.open('https://status.retalia.cloud', '_blank', 'noopener noreferrer');
130
+ }
131
+ routeToUrl() {
132
+ let currentModule = this.moduleService.getCurrentModule(this.selectedItem);
133
+ if (currentModule &&
134
+ this.selectedItem &&
135
+ (currentModule.authorizationId === this.selectedItem.authorizationId ||
136
+ currentModule.authorizationId === this.selectedItem.moduleAuthorizationId)) {
137
+ let currentItem = JSON.parse(JSON.stringify(this.selectedItem));
138
+ const pathArray = this.selectedItem.url.split('/');
139
+ pathArray.splice(0, 2);
140
+ currentItem.url = pathArray.join('/');
141
+ this.selectedRoute.emit(currentItem);
142
+ }
143
+ else {
144
+ const itemUrl = this.selectedItem.url;
145
+ window.location.href = itemUrl;
146
+ }
147
+ }
148
+ getModules(isFirstCall) {
149
+ let apiUrl = this.environment.apiRequestUrl;
150
+ if (apiUrl.endsWith("/"))
151
+ apiUrl = apiUrl.slice(0, -1);
152
+ this.moduleService.getUserModules(apiUrl, '').then((moduleObject) => {
153
+ if (!moduleObject || !moduleObject.modulesDetails) {
154
+ if (isFirstCall) {
155
+ // If the UI relies on an interceptor to refire failed API calls, the initial module call will fail
156
+ setTimeout(() => this.getModules(false), 1000);
157
+ }
158
+ else {
159
+ console.log(`No modules were found using: ${apiUrl}`);
160
+ }
161
+ return;
162
+ }
163
+ this.availableShops = moduleObject.shops;
164
+ this.modules = this.moduleService.mapModuleItems(moduleObject.modulesDetails);
165
+ this.selectedItem = this.moduleService.findNestedUrlMatch(this.modules, window.location.pathname);
166
+ this.panelButtonStates.isModuleOpen = this.isSidebarOpen;
167
+ });
168
+ }
169
+ }
170
+ SidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SidebarComponent, deps: [{ token: i1.ModuleService }, { token: i2.SubItemService }, { token: i3.CookieService }, { token: i4.NgxSmartModalService }], target: i0.ɵɵFactoryTarget.Component });
171
+ SidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SidebarComponent, selector: "sidebar", inputs: { environment: "environment", moduleSearchValue: "moduleSearchValue" }, outputs: { selectedRoute: "selectedRoute" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"sidebar-panel\">\r\n <div class=\"panel-item\" (click)=\"toggleSidebar($event, 'isModuleOpen')\" data-testid=\"nav-menu\">\r\n <svg class=\"panel-icon\" *ngIf=\"!panelButtonStates.isModuleOpen\" height=\"14\" width=\"21\" viewBox=\"0 0 18 12\"\r\n fill=\"#3e3e3e\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMinYMin meet\">\r\n <path d=\"M0 12H18V10H0V12ZM0 7H18V5H0V7ZM0 0V2H18V0H0Z\" />\r\n </svg>\r\n <svg class=\"panel-icon\" *ngIf=\"panelButtonStates.isModuleOpen\" height=\"13\" width=\"13\" viewBox=\"0 0 14 14\"\r\n fill=\"#3e3e3e\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMinYMin meet\">\r\n <path\r\n d=\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\" />\r\n </svg>\r\n </div>\r\n <div class=\"panel-item\" (click)=\"toggleSidebar($event, 'isSupportOpen')\" data-testid=\"nav-support\">\r\n <svg class=\"panel-icon\" *ngIf=\"!panelButtonStates.isSupportOpen\" width=\"18\" height=\"21\" viewBox=\"0 0 18 21\"\r\n fill=\"#3e3e3e\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M16 0H2C0.89 0 0 0.9 0 2V16C0 17.1 0.89 18 2 18H6L9 21L12 18H16C17.1 18 18 17.1 18 16V2C18 0.9 17.1 0 16 0ZM10 16H8V14H10V16ZM12.07 8.25L11.17 9.17C10.45 9.9 10 10.5 10 12H8V11.5C8 10.4 8.45 9.4 9.17 8.67L10.41 7.41C10.78 7.05 11 6.55 11 6C11 4.9 10.1 4 9 4C7.9 4 7 4.9 7 6H5C5 3.79 6.79 2 9 2C11.21 2 13 3.79 13 6C13 6.88 12.64 7.68 12.07 8.25Z\" />\r\n </svg>\r\n <svg class=\"panel-icon\" *ngIf=\"panelButtonStates.isSupportOpen\" height=\"13\" width=\"13\" viewBox=\"0 0 14 14\"\r\n fill=\"#3e3e3e\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMinYMin meet\">\r\n <path\r\n d=\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n <div class=\"status-button\" (mouseover)=\"hideStatus = false\" (mouseleave)=\"hideStatus = true\"\r\n (click)=\"goToStatusPage()\" data-testid=\"sidebar-status\">\r\n <svg class=\"panel-icon\" width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"#FFFFFF\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M20.625 6.5H1.375C0.615613 6.5 0 5.82842 0 5V2C0 1.17158 0.615613 0.5 1.375 0.5H20.625C21.3844 0.5 22 1.17158 22 2V5C22 5.82842 21.3844 6.5 20.625 6.5ZM18.5625 2.375C17.9929 2.375 17.5312 2.87867 17.5312 3.5C17.5312 4.12133 17.9929 4.625 18.5625 4.625C19.1321 4.625 19.5938 4.12133 19.5938 3.5C19.5938 2.87867 19.1321 2.375 18.5625 2.375ZM15.8125 2.375C15.2429 2.375 14.7812 2.87867 14.7812 3.5C14.7812 4.12133 15.2429 4.625 15.8125 4.625C16.3821 4.625 16.8438 4.12133 16.8438 3.5C16.8438 2.87867 16.3821 2.375 15.8125 2.375ZM20.625 14H1.375C0.615613 14 0 13.3284 0 12.5V9.5C0 8.67158 0.615613 8 1.375 8H20.625C21.3844 8 22 8.67158 22 9.5V12.5C22 13.3284 21.3844 14 20.625 14ZM18.5625 9.875C17.9929 9.875 17.5312 10.3787 17.5312 11C17.5312 11.6213 17.9929 12.125 18.5625 12.125C19.1321 12.125 19.5938 11.6213 19.5938 11C19.5938 10.3787 19.1321 9.875 18.5625 9.875ZM15.8125 9.875C15.2429 9.875 14.7812 10.3787 14.7812 11C14.7812 11.6213 15.2429 12.125 15.8125 12.125C16.3821 12.125 16.8438 11.6213 16.8438 11C16.8438 10.3787 16.3821 9.875 15.8125 9.875ZM20.625 21.5H1.375C0.615613 21.5 0 20.8284 0 20V17C0 16.1716 0.615613 15.5 1.375 15.5H20.625C21.3844 15.5 22 16.1716 22 17V20C22 20.8284 21.3844 21.5 20.625 21.5ZM18.5625 17.375C17.9929 17.375 17.5312 17.8787 17.5312 18.5C17.5312 19.1213 17.9929 19.625 18.5625 19.625C19.1321 19.625 19.5938 19.1213 19.5938 18.5C19.5938 17.8787 19.1321 17.375 18.5625 17.375ZM15.8125 17.375C15.2429 17.375 14.7812 17.8787 14.7812 18.5C14.7812 19.1213 15.2429 19.625 15.8125 19.625C16.3821 19.625 16.8438 19.1213 16.8438 18.5C16.8438 17.8787 16.3821 17.375 15.8125 17.375Z\" />\r\n </svg>\r\n <iframe id=\"status-frame\" [ngClass]=\"{'isOpen': !hideStatus, 'isClosed': hideStatus }\"\r\n src=\"//status.retalia.cloud/embed-status/light-sm\" name=\"statusPage\" width=\"230\" height=\"61\" frameBorder=\"0\"\r\n scrolling=\"no\">\r\n </iframe>\r\n </div>\r\n</div>\r\n\r\n<div id=\"sidebar-container\" [class.open-sidebar]=\"isSidebarOpen\">\r\n <div id=\"sticky-header\">\r\n <img class=\"logo-full\" height=\"40px\" src=\"https://imagineshared.blob.core.windows.net/portal/retalia_files/logos/sidebar_logo.png\" (click)=\"goToPortal()\"\r\n data-testid=\"nav-logo\" />\r\n <div class=\"module-divider\"></div>\r\n <div class=\"moduleSearchbar\" *ngIf=\"panelButtonStates.isModuleOpen\">\r\n <input class=\"moduleSearchInput\" type=\"search\" autocomplete=\"off\" id=\"search\" [value]=\"moduleSearchValue\"\r\n required=\"false\" [placeholder]=\"moduleSearchPlaceholder\" (keyup)=\"handleModuleSearch($event)\"\r\n (click)=\"handleModuleSearch($event)\" />\r\n </div>\r\n </div>\r\n <div id=\"menu\" *ngIf=\"panelButtonStates.isModuleOpen\">\r\n <sub-item [items]=\"modules\"></sub-item>\r\n </div>\r\n <div id=\"menu\" *ngIf=\"panelButtonStates.isSupportOpen\">\r\n <sub-item [items]=\"supportRoutes\"></sub-item>\r\n </div>\r\n</div>\r\n\r\n<shop-modal [availableShops]=\"availableShops\" (selectedShop)=\"selectedShop($event)\"></shop-modal>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;1,300;1,400;1,600&display=swap\";body.dialog-open{overflow:hidden}.nsm-dialog-btn-close{border:0;background:none;position:absolute;top:8px;right:8px;font-size:1.2em;cursor:pointer}.overlay{position:fixed;inset:0;overflow-x:hidden;overflow-y:auto;transition:background-color .5s;background-color:transparent;z-index:999}.overlay.nsm-overlay-open{background-color:#00000080}.overlay.transparent{background-color:transparent}.nsm-dialog{position:relative;opacity:1;visibility:visible;min-height:200px;width:100%;max-width:520px;margin:0 auto;pointer-events:none;outline:none}.nsm-dialog.nsm-dialog-close{opacity:0}.nsm-dialog.nsm-centered{display:flex;align-items:center;min-height:calc(100% - 3.5rem)}.nsm-content{position:relative;display:flex;flex-direction:column;pointer-events:auto;background-clip:padding-box;background-color:#fff;border-radius:2px;padding:1rem;margin:1.75rem;box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f;outline:0;transform:translate(0)}.nsm-body{position:relative;flex:1 1 auto}.nsm-dialog[class*=nsm-dialog-animation-]{transition:transform .5s ease-in-out,opacity .5s}.nsm-dialog-animation-ltr{transform:translate(-50%)}.nsm-dialog-animation-ltr.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ltr.nsm-dialog-close{transform:translate(-50%)}.nsm-dialog-animation-rtl{transform:translate(50%)}.nsm-dialog-animation-rtl.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-rtl.nsm-dialog-close{transform:translate(50%)}.nsm-dialog-animation-ttb{transform:translateY(-50%)}.nsm-dialog-animation-ttb.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ttb.nsm-dialog-close{transform:translateY(-50%)}.nsm-dialog-animation-btt{transform:translateY(50%)}.nsm-dialog-animation-btt.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-btt.nsm-dialog-close{transform:translateY(50%)}.imagine-body{background-color:#fafbfc}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Regular.ttf) format(\"truetype\");font-weight:400;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Bold.ttf) format(\"truetype\");font-weight:700;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Italic.ttf) format(\"truetype\");font-weight:400;font-style:italic}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-SemiBold.ttf) format(\"truetype\");font-weight:600;font-style:normal}#sidebar-panel{z-index:1;position:fixed;float:left;width:60px;height:100vh;color:#000;text-align:center;transition:.2s linear;background-color:#fff;box-shadow:0 0 4px #0003}@media (max-width: 37.5em){#sidebar-panel{height:100%}}.panel-item{cursor:pointer;position:relative;height:40px;margin:10px;transition:.2s linear;border-radius:50%}.panel-item:hover{background-color:#919295}.panel-item:hover .panel-icon{fill:#fff}.panel-item:active,.panel-item:focus{background:rgba(84,84,84,.2)}.panel-item:active .panel-icon,.panel-item:focus .panel-icon{fill:#545454}.panel-item .panel-icon{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#sidebar-container{position:sticky;top:0;height:100vh;overflow:hidden;font-size:12px;font-family:Poppins,sans-serif;width:0px;background:#f2f2f2;padding-left:60px;transition:.3s;transition-timing-function:cubic-bezier(.11,.95,.91,.93);-ms-overflow-style:none;scrollbar-width:none;box-shadow:0 0 4px #0003}@media (max-width: 37.5em){#sidebar-container{top:auto;position:relative;border-right:0px}}.open-sidebar{width:260px!important}@media (max-width: 37.5em){.open-sidebar{width:160px!important}}@media print{#container{display:none}}.module-divider{width:240px;margin:10px;border-top:.2px solid rgba(128,128,128,.2);background-clip:padding-box}@media (max-width: 37.5em){.module-divider{width:240px!important}}div#menu{display:flex;flex-flow:column;background-color:transparent;z-index:10;direction:ltr;float:left;width:258px;height:85%;overflow-y:overlay;overflow-x:hidden;transition:.2s linear}@media (max-width: 37.5em){div#menu{width:160px!important}}.moduleSearchbar{z-index:20;position:inherit;cursor:pointer;width:240px;height:28px;border-radius:4px;margin:10px;background:#e2e2e2}@media (max-width: 37.5em){.moduleSearchbar{width:140px!important;height:40px}}.moduleSearchbar .moduleSearchInput{direction:ltr;width:inherit;height:inherit;padding-left:10px;color:#545454;background-color:transparent;border-style:none;outline:none;-webkit-appearance:none}.moduleSearchbar input:invalid{box-shadow:none}.moduleSearchbar ::placeholder{color:#919295;font-size:11px;opacity:1}#sticky-header{margin-top:10px;width:100%;text-align:center;position:sticky;transition:1s ease}#sticky-header .logo-full{cursor:pointer;padding:5px 21px 0}.status-button{cursor:pointer;position:inherit;bottom:0;margin-left:8px;margin-bottom:15px;width:40px;height:32px;padding-top:8px;border-radius:50%;transition:.2s linear}.status-button .panel-icon{fill:#0c1830}.status-button:hover{background-color:#545454}.status-button:hover .panel-icon{fill:#fff}#status-frame{position:inherit;bottom:-8px;padding-left:25px;transition:.2s linear}.isOpen{opacity:1;visibility:visible}.isClosed{opacity:0;visibility:hidden}::-webkit-scrollbar{width:5px;background:transparent}::-webkit-scrollbar-thumb{background-color:#5454544d;border-radius:10px;-webkit-transition:.2s linear;transition:.2s linear}::-webkit-scrollbar-thumb:hover{background-color:#545454e6}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}\n"], components: [{ type: i5.SubItemComponent, selector: "sub-item", inputs: ["items"] }, { type: i6.ShopModalComponent, selector: "shop-modal", inputs: ["availableShops", "shopSearchValue"], outputs: ["selectedShop"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SidebarComponent, decorators: [{
173
+ type: Component,
174
+ args: [{ selector: 'sidebar', template: "<div id=\"sidebar-panel\">\r\n <div class=\"panel-item\" (click)=\"toggleSidebar($event, 'isModuleOpen')\" data-testid=\"nav-menu\">\r\n <svg class=\"panel-icon\" *ngIf=\"!panelButtonStates.isModuleOpen\" height=\"14\" width=\"21\" viewBox=\"0 0 18 12\"\r\n fill=\"#3e3e3e\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMinYMin meet\">\r\n <path d=\"M0 12H18V10H0V12ZM0 7H18V5H0V7ZM0 0V2H18V0H0Z\" />\r\n </svg>\r\n <svg class=\"panel-icon\" *ngIf=\"panelButtonStates.isModuleOpen\" height=\"13\" width=\"13\" viewBox=\"0 0 14 14\"\r\n fill=\"#3e3e3e\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMinYMin meet\">\r\n <path\r\n d=\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\" />\r\n </svg>\r\n </div>\r\n <div class=\"panel-item\" (click)=\"toggleSidebar($event, 'isSupportOpen')\" data-testid=\"nav-support\">\r\n <svg class=\"panel-icon\" *ngIf=\"!panelButtonStates.isSupportOpen\" width=\"18\" height=\"21\" viewBox=\"0 0 18 21\"\r\n fill=\"#3e3e3e\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M16 0H2C0.89 0 0 0.9 0 2V16C0 17.1 0.89 18 2 18H6L9 21L12 18H16C17.1 18 18 17.1 18 16V2C18 0.9 17.1 0 16 0ZM10 16H8V14H10V16ZM12.07 8.25L11.17 9.17C10.45 9.9 10 10.5 10 12H8V11.5C8 10.4 8.45 9.4 9.17 8.67L10.41 7.41C10.78 7.05 11 6.55 11 6C11 4.9 10.1 4 9 4C7.9 4 7 4.9 7 6H5C5 3.79 6.79 2 9 2C11.21 2 13 3.79 13 6C13 6.88 12.64 7.68 12.07 8.25Z\" />\r\n </svg>\r\n <svg class=\"panel-icon\" *ngIf=\"panelButtonStates.isSupportOpen\" height=\"13\" width=\"13\" viewBox=\"0 0 14 14\"\r\n fill=\"#3e3e3e\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMinYMin meet\">\r\n <path\r\n d=\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n <div class=\"status-button\" (mouseover)=\"hideStatus = false\" (mouseleave)=\"hideStatus = true\"\r\n (click)=\"goToStatusPage()\" data-testid=\"sidebar-status\">\r\n <svg class=\"panel-icon\" width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"#FFFFFF\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M20.625 6.5H1.375C0.615613 6.5 0 5.82842 0 5V2C0 1.17158 0.615613 0.5 1.375 0.5H20.625C21.3844 0.5 22 1.17158 22 2V5C22 5.82842 21.3844 6.5 20.625 6.5ZM18.5625 2.375C17.9929 2.375 17.5312 2.87867 17.5312 3.5C17.5312 4.12133 17.9929 4.625 18.5625 4.625C19.1321 4.625 19.5938 4.12133 19.5938 3.5C19.5938 2.87867 19.1321 2.375 18.5625 2.375ZM15.8125 2.375C15.2429 2.375 14.7812 2.87867 14.7812 3.5C14.7812 4.12133 15.2429 4.625 15.8125 4.625C16.3821 4.625 16.8438 4.12133 16.8438 3.5C16.8438 2.87867 16.3821 2.375 15.8125 2.375ZM20.625 14H1.375C0.615613 14 0 13.3284 0 12.5V9.5C0 8.67158 0.615613 8 1.375 8H20.625C21.3844 8 22 8.67158 22 9.5V12.5C22 13.3284 21.3844 14 20.625 14ZM18.5625 9.875C17.9929 9.875 17.5312 10.3787 17.5312 11C17.5312 11.6213 17.9929 12.125 18.5625 12.125C19.1321 12.125 19.5938 11.6213 19.5938 11C19.5938 10.3787 19.1321 9.875 18.5625 9.875ZM15.8125 9.875C15.2429 9.875 14.7812 10.3787 14.7812 11C14.7812 11.6213 15.2429 12.125 15.8125 12.125C16.3821 12.125 16.8438 11.6213 16.8438 11C16.8438 10.3787 16.3821 9.875 15.8125 9.875ZM20.625 21.5H1.375C0.615613 21.5 0 20.8284 0 20V17C0 16.1716 0.615613 15.5 1.375 15.5H20.625C21.3844 15.5 22 16.1716 22 17V20C22 20.8284 21.3844 21.5 20.625 21.5ZM18.5625 17.375C17.9929 17.375 17.5312 17.8787 17.5312 18.5C17.5312 19.1213 17.9929 19.625 18.5625 19.625C19.1321 19.625 19.5938 19.1213 19.5938 18.5C19.5938 17.8787 19.1321 17.375 18.5625 17.375ZM15.8125 17.375C15.2429 17.375 14.7812 17.8787 14.7812 18.5C14.7812 19.1213 15.2429 19.625 15.8125 19.625C16.3821 19.625 16.8438 19.1213 16.8438 18.5C16.8438 17.8787 16.3821 17.375 15.8125 17.375Z\" />\r\n </svg>\r\n <iframe id=\"status-frame\" [ngClass]=\"{'isOpen': !hideStatus, 'isClosed': hideStatus }\"\r\n src=\"//status.retalia.cloud/embed-status/light-sm\" name=\"statusPage\" width=\"230\" height=\"61\" frameBorder=\"0\"\r\n scrolling=\"no\">\r\n </iframe>\r\n </div>\r\n</div>\r\n\r\n<div id=\"sidebar-container\" [class.open-sidebar]=\"isSidebarOpen\">\r\n <div id=\"sticky-header\">\r\n <img class=\"logo-full\" height=\"40px\" src=\"https://imagineshared.blob.core.windows.net/portal/retalia_files/logos/sidebar_logo.png\" (click)=\"goToPortal()\"\r\n data-testid=\"nav-logo\" />\r\n <div class=\"module-divider\"></div>\r\n <div class=\"moduleSearchbar\" *ngIf=\"panelButtonStates.isModuleOpen\">\r\n <input class=\"moduleSearchInput\" type=\"search\" autocomplete=\"off\" id=\"search\" [value]=\"moduleSearchValue\"\r\n required=\"false\" [placeholder]=\"moduleSearchPlaceholder\" (keyup)=\"handleModuleSearch($event)\"\r\n (click)=\"handleModuleSearch($event)\" />\r\n </div>\r\n </div>\r\n <div id=\"menu\" *ngIf=\"panelButtonStates.isModuleOpen\">\r\n <sub-item [items]=\"modules\"></sub-item>\r\n </div>\r\n <div id=\"menu\" *ngIf=\"panelButtonStates.isSupportOpen\">\r\n <sub-item [items]=\"supportRoutes\"></sub-item>\r\n </div>\r\n</div>\r\n\r\n<shop-modal [availableShops]=\"availableShops\" (selectedShop)=\"selectedShop($event)\"></shop-modal>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;1,300;1,400;1,600&display=swap\";body.dialog-open{overflow:hidden}.nsm-dialog-btn-close{border:0;background:none;position:absolute;top:8px;right:8px;font-size:1.2em;cursor:pointer}.overlay{position:fixed;inset:0;overflow-x:hidden;overflow-y:auto;transition:background-color .5s;background-color:transparent;z-index:999}.overlay.nsm-overlay-open{background-color:#00000080}.overlay.transparent{background-color:transparent}.nsm-dialog{position:relative;opacity:1;visibility:visible;min-height:200px;width:100%;max-width:520px;margin:0 auto;pointer-events:none;outline:none}.nsm-dialog.nsm-dialog-close{opacity:0}.nsm-dialog.nsm-centered{display:flex;align-items:center;min-height:calc(100% - 3.5rem)}.nsm-content{position:relative;display:flex;flex-direction:column;pointer-events:auto;background-clip:padding-box;background-color:#fff;border-radius:2px;padding:1rem;margin:1.75rem;box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f;outline:0;transform:translate(0)}.nsm-body{position:relative;flex:1 1 auto}.nsm-dialog[class*=nsm-dialog-animation-]{transition:transform .5s ease-in-out,opacity .5s}.nsm-dialog-animation-ltr{transform:translate(-50%)}.nsm-dialog-animation-ltr.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ltr.nsm-dialog-close{transform:translate(-50%)}.nsm-dialog-animation-rtl{transform:translate(50%)}.nsm-dialog-animation-rtl.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-rtl.nsm-dialog-close{transform:translate(50%)}.nsm-dialog-animation-ttb{transform:translateY(-50%)}.nsm-dialog-animation-ttb.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ttb.nsm-dialog-close{transform:translateY(-50%)}.nsm-dialog-animation-btt{transform:translateY(50%)}.nsm-dialog-animation-btt.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-btt.nsm-dialog-close{transform:translateY(50%)}.imagine-body{background-color:#fafbfc}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Regular.ttf) format(\"truetype\");font-weight:400;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Bold.ttf) format(\"truetype\");font-weight:700;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Italic.ttf) format(\"truetype\");font-weight:400;font-style:italic}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-SemiBold.ttf) format(\"truetype\");font-weight:600;font-style:normal}#sidebar-panel{z-index:1;position:fixed;float:left;width:60px;height:100vh;color:#000;text-align:center;transition:.2s linear;background-color:#fff;box-shadow:0 0 4px #0003}@media (max-width: 37.5em){#sidebar-panel{height:100%}}.panel-item{cursor:pointer;position:relative;height:40px;margin:10px;transition:.2s linear;border-radius:50%}.panel-item:hover{background-color:#919295}.panel-item:hover .panel-icon{fill:#fff}.panel-item:active,.panel-item:focus{background:rgba(84,84,84,.2)}.panel-item:active .panel-icon,.panel-item:focus .panel-icon{fill:#545454}.panel-item .panel-icon{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#sidebar-container{position:sticky;top:0;height:100vh;overflow:hidden;font-size:12px;font-family:Poppins,sans-serif;width:0px;background:#f2f2f2;padding-left:60px;transition:.3s;transition-timing-function:cubic-bezier(.11,.95,.91,.93);-ms-overflow-style:none;scrollbar-width:none;box-shadow:0 0 4px #0003}@media (max-width: 37.5em){#sidebar-container{top:auto;position:relative;border-right:0px}}.open-sidebar{width:260px!important}@media (max-width: 37.5em){.open-sidebar{width:160px!important}}@media print{#container{display:none}}.module-divider{width:240px;margin:10px;border-top:.2px solid rgba(128,128,128,.2);background-clip:padding-box}@media (max-width: 37.5em){.module-divider{width:240px!important}}div#menu{display:flex;flex-flow:column;background-color:transparent;z-index:10;direction:ltr;float:left;width:258px;height:85%;overflow-y:overlay;overflow-x:hidden;transition:.2s linear}@media (max-width: 37.5em){div#menu{width:160px!important}}.moduleSearchbar{z-index:20;position:inherit;cursor:pointer;width:240px;height:28px;border-radius:4px;margin:10px;background:#e2e2e2}@media (max-width: 37.5em){.moduleSearchbar{width:140px!important;height:40px}}.moduleSearchbar .moduleSearchInput{direction:ltr;width:inherit;height:inherit;padding-left:10px;color:#545454;background-color:transparent;border-style:none;outline:none;-webkit-appearance:none}.moduleSearchbar input:invalid{box-shadow:none}.moduleSearchbar ::placeholder{color:#919295;font-size:11px;opacity:1}#sticky-header{margin-top:10px;width:100%;text-align:center;position:sticky;transition:1s ease}#sticky-header .logo-full{cursor:pointer;padding:5px 21px 0}.status-button{cursor:pointer;position:inherit;bottom:0;margin-left:8px;margin-bottom:15px;width:40px;height:32px;padding-top:8px;border-radius:50%;transition:.2s linear}.status-button .panel-icon{fill:#0c1830}.status-button:hover{background-color:#545454}.status-button:hover .panel-icon{fill:#fff}#status-frame{position:inherit;bottom:-8px;padding-left:25px;transition:.2s linear}.isOpen{opacity:1;visibility:visible}.isClosed{opacity:0;visibility:hidden}::-webkit-scrollbar{width:5px;background:transparent}::-webkit-scrollbar-thumb{background-color:#5454544d;border-radius:10px;-webkit-transition:.2s linear;transition:.2s linear}::-webkit-scrollbar-thumb:hover{background-color:#545454e6}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}\n"] }]
175
+ }], ctorParameters: function () { return [{ type: i1.ModuleService }, { type: i2.SubItemService }, { type: i3.CookieService }, { type: i4.NgxSmartModalService }]; }, propDecorators: { selectedRoute: [{
176
+ type: Output
177
+ }], environment: [{
178
+ type: Input
179
+ }], moduleSearchValue: [{
180
+ type: Input
181
+ }] } });
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlYmFyLW5hdmlnYXRpb24vc3JjL2xpYi9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZWJhci1uYXZpZ2F0aW9uL3NyYy9saWIvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7O0FBUXJELE1BQU0sT0FBTyxnQkFBZ0I7SUFtQjNCLFlBQ1UsYUFBNEIsRUFDNUIsY0FBOEIsRUFDOUIsYUFBNEIsRUFDN0Isb0JBQTBDO1FBSHpDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBdEJ6QyxrQkFBYSxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWhFLHNCQUFpQixHQUFRLEVBQUUsQ0FBQztRQUNyQyxZQUFPLEdBQWlCLEVBQUUsQ0FBQztRQUMzQixnQkFBVyxHQUFpQixFQUFFLENBQUM7UUFDL0Isa0JBQWEsR0FBaUIsYUFBYSxDQUFDO1FBRzVDLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQzVCLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUNoQyw0QkFBdUIsR0FBRyxvQkFBb0IsQ0FBQztRQUMvQyxrQkFBYSxHQUFZLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoRCxl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TCxDQUFDOzs2R0F0TVUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsaU1DdEI3Qiw2NktBMkRpRzsyRkRyQ3BGLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxTQUFTO2dNQUtULGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb2R1bGVJdGVtLCBTaG9wLCBTaWRlYmFyRW50cnkgfSBmcm9tICcuLi9tb2RlbHMvbW9kdWxlJztcclxuaW1wb3J0IHsgU3ViSXRlbVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdWItaXRlbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmd4U21hcnRNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtc21hcnQtbW9kYWwnO1xyXG5pbXBvcnQgeyBNb2R1bGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kdWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL21vZGVscy9lbnZpcm9ubWVudCc7XHJcbmltcG9ydCB7IHN1cHBvcnRSb3V0ZXMgfSBmcm9tICcuLi9kYXRhL3N1cHBvcnQtcm91dGVzJztcclxuaW1wb3J0IHsgQ29va2llTmFtZXMgfSBmcm9tICcuLi9tb2RlbHMvY29va2llLW5hbWVzJztcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Nvb2tpZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2lkZWJhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NpZGViYXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZFJvdXRlOiBFdmVudEVtaXR0ZXI8U2lkZWJhckVudHJ5PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQ7XHJcbiAgQElucHV0KCkgbW9kdWxlU2VhcmNoVmFsdWU6IGFueSA9ICcnO1xyXG4gIG1vZHVsZXM6IE1vZHVsZUl0ZW1bXSA9IFtdO1xyXG4gIG1vZHVsZXNDb3B5OiBNb2R1bGVJdGVtW10gPSBbXTtcclxuICBzdXBwb3J0Um91dGVzOiBNb2R1bGVJdGVtW10gPSBzdXBwb3J0Um91dGVzO1xyXG4gIHNlbGVjdGVkTW9kdWxlOiBNb2R1bGVJdGVtO1xyXG4gIHNlbGVjdGVkSXRlbTtcclxuICBhdmFpbGFibGVTaG9wczogU2hvcFtdID0gW107XHJcbiAgYXZhaWxhYmxlU2hvcHNDb3B5OiBTaG9wW10gPSBbXTtcclxuICBtb2R1bGVTZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2ggTW9kdWxlcyAuLi4nO1xyXG4gIGlzU2lkZWJhck9wZW46IGJvb2xlYW4gPSB0aGlzLmdldFNpZGViYXJTdGF0ZSgpO1xyXG4gIGhpZGVTdGF0dXM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHBhbmVsQnV0dG9uU3RhdGVzID0ge1xyXG4gICAgaXNNb2R1bGVPcGVuOiBmYWxzZSxcclxuICAgIGlzU3VwcG9ydE9wZW46IGZhbHNlLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtb2R1bGVTZXJ2aWNlOiBNb2R1bGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdWJJdGVtU2VydmljZTogU3ViSXRlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgbmd4U21hcnRNb2RhbFNlcnZpY2U6IE5neFNtYXJ0TW9kYWxTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnN1Ykl0ZW1TZXJ2aWNlLnN1Ykl0ZW1DbGlja0V2ZW50LnN1YnNjcmliZSgoaXRlbSkgPT4ge1xyXG4gICAgICB0aGlzLnN1Ykl0ZW1DbGlja2VkKGl0ZW0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5lbnZpcm9ubWVudCAmJiBjaGFuZ2VzLmVudmlyb25tZW50LmN1cnJlbnRWYWx1ZS5hcGlSZXF1ZXN0VXJsKSB7XHJcbiAgICAgIHRoaXMuZ2V0TW9kdWxlcyh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFNJREVCQVJcclxuICBwdWJsaWMgdG9nZ2xlU2lkZWJhcihlOiBFdmVudCwgb3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAvLyBBbGxvd3MgdXMgdG8gZXhwYW5kIHRoZSBwYW5lbCBpdGVtcyBpbiBmdXR1cmUgd2l0aG91dCBuZWVkaW5nIHRvIGNoYW5nZSB0aGUgdG9nZ2xlIGxvZ2ljXHJcbiAgICBmb3IgKGxldCBpdGVtIGluIE9iamVjdCh0aGlzLnBhbmVsQnV0dG9uU3RhdGVzKSkge1xyXG4gICAgICBpdGVtID09PSBvcHRpb25cclxuICAgICAgICA/ICh0aGlzLnBhbmVsQnV0dG9uU3RhdGVzW2l0ZW1dID0gIXRoaXMucGFuZWxCdXR0b25TdGF0ZXNbaXRlbV0pXHJcbiAgICAgICAgOiAodGhpcy5wYW5lbEJ1dHRvblN0YXRlc1tpdGVtXSA9IGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNTaWRlYmFyT3BlbiA9IHRoaXMucGFuZWxCdXR0b25TdGF0ZXNbb3B0aW9uXTtcclxuICAgIHRoaXMuc2V0U2lkZWJhclN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0U2lkZWJhclN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldENvb2tpZShDb29raWVOYW1lcy5pc1NpZGViYXJPcGVuLCB0aGlzLmlzU2lkZWJhck9wZW4pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNpZGViYXJTdGF0ZSgpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1NpZGViYXJPcGVuOiBib29sZWFuID1cclxuICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLmdldENvb2tpZShDb29raWVOYW1lcy5pc1NpZGViYXJPcGVuKSA9PSAndHJ1ZSc7XHJcbiAgICBpZiAodHlwZW9mIGlzU2lkZWJhck9wZW4gPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzU2lkZWJhck9wZW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ29Ub1BvcnRhbCgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5lbnZpcm9ubWVudC5wb3J0YWxVcmw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTW9kdWxlU2VhcmNoKGUpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm1vZHVsZXNDb3B5Lmxlbmd0aCA8IDEpIHtcclxuICAgICAgdGhpcy5tb2R1bGVzQ29weSA9IFsuLi50aGlzLm1vZHVsZXNdO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubW9kdWxlU2VhcmNoVmFsdWUgPSBlICYmIGUudGFyZ2V0ID8gZS50YXJnZXQudmFsdWUgOiAnJztcclxuICAgIGNvbnN0IHNlYXJjaFN0cmluZyA9IHRoaXMubW9kdWxlU2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICBjb25zdCBtb2R1bGVDb3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLm1vZHVsZXNDb3B5KSk7XHJcbiAgICB0aGlzLm1vZHVsZXMgPSB0aGlzLmZpbHRlck1vZHVsZXMobW9kdWxlQ29weSwgc2VhcmNoU3RyaW5nKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWx0ZXJNb2R1bGVzKFxyXG4gICAgbW9kdWxlSXRlbXM6IE1vZHVsZUl0ZW1bXSB8IFNpZGViYXJFbnRyeVtdLFxyXG4gICAgc2VhcmNoVGVybTogc3RyaW5nXHJcbiAgKTogYW55W10ge1xyXG4gICAgY29uc3QgbWF0Y2hlcyA9IFtdO1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMubW9kdWxlcykpIHJldHVybiBtYXRjaGVzO1xyXG5cclxuICAgIG1vZHVsZUl0ZW1zLmZvckVhY2goKGkpID0+IHtcclxuICAgICAgaWYgKGkubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pKSB7XHJcbiAgICAgICAgaS52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBtYXRjaGVzLnB1c2goaSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgY2hpbGRSZXN1bHRzOiBTaWRlYmFyRW50cnlbXSA9IHRoaXMuZmlsdGVyTW9kdWxlcyhcclxuICAgICAgICAgIGkuY2hpbGRyZW4sXHJcbiAgICAgICAgICBzZWFyY2hUZXJtXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoY2hpbGRSZXN1bHRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgbWF0Y2hlcy5wdXNoKE9iamVjdC5hc3NpZ24oe30sIGksIHsgY2hpbGRyZW46IGNoaWxkUmVzdWx0cyB9KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbWF0Y2hlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdWJJdGVtQ2xpY2tlZChpdGVtKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTW9kdWxlID0gdGhpcy5tb2R1bGVzLmZpbmQoXHJcbiAgICAgIChtKSA9PlxyXG4gICAgICAgIG0uYXV0aG9yaXphdGlvbklkID09PVxyXG4gICAgICAgIChpdGVtLmF1dGhvcml6YXRpb25JZCB8fCBpdGVtLm1vZHVsZUF1dGhvcml6YXRpb25JZClcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtKSB0aGlzLnNlbGVjdGVkSXRlbS5hY3RpdmUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtLnJlbGF0aW9uTmFtZSA9PT0gJ0RvY3VtZW50YXRpb24nKSB7XHJcbiAgICAgIHdpbmRvdy5vcGVuKHRoaXMuc2VsZWN0ZWRJdGVtLnVybCwgJ19ibGFuaycsICdub29wZW5lciBub3JlZmVycmVyJyk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAodGhpcy5zZWxlY3RlZE1vZHVsZSAmJiAhdGhpcy5zZWxlY3RlZE1vZHVsZS5lbnRpdHlBY2Nlc3MpIHx8XHJcbiAgICAgICF0aGlzLnNlbGVjdGVkTW9kdWxlLmVudGl0eUFjY2Vzcy5sZW5ndGhcclxuICAgICkge1xyXG4gICAgICB0aGlzLnJvdXRlVG9VcmwoKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb2R1bGUgJiZcclxuICAgICAgdGhpcy5zZWxlY3RlZE1vZHVsZS5lbnRpdHlBY2Nlc3MubGVuZ3RoID09PSAxXHJcbiAgICApIHtcclxuICAgICAgY29uc3Qgc29sZVNob3AgPSB0aGlzLnNlbGVjdGVkTW9kdWxlLmVudGl0eUFjY2Vzc1swXTtcclxuICAgICAgdGhpcy5zdWJJdGVtU2VydmljZS5zYXZlSXRlbUluZm8odGhpcy5zZWxlY3RlZE1vZHVsZSwgc29sZVNob3ApO1xyXG4gICAgICB0aGlzLnJvdXRlVG9VcmwoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWFwU2hvcE1vZGFsKCk7XHJcbiAgICAgIHRoaXMubmd4U21hcnRNb2RhbFNlcnZpY2UuZ2V0TW9kYWwoJ3Nob3BNb2RhbCcpLm9wZW4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZFNob3Aoc2VsZWN0ZWRTaG9wOiBTaG9wKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1Ykl0ZW1TZXJ2aWNlLnNhdmVJdGVtSW5mbyh0aGlzLnNlbGVjdGVkTW9kdWxlLCBzZWxlY3RlZFNob3AuaWQpO1xyXG4gICAgdGhpcy5yb3V0ZVRvVXJsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbWFwU2hvcE1vZGFsKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXZhaWxhYmxlU2hvcHNDb3B5Lmxlbmd0aCA8IDEpIHtcclxuICAgICAgdGhpcy5hdmFpbGFibGVTaG9wc0NvcHkgPSBbLi4udGhpcy5hdmFpbGFibGVTaG9wc107XHJcbiAgICB9XHJcbiAgICB0aGlzLmF2YWlsYWJsZVNob3BzID0gdGhpcy5hdmFpbGFibGVTaG9wc0NvcHkuZmlsdGVyKChzaG9wKSA9PlxyXG4gICAgICB0aGlzLnNlbGVjdGVkTW9kdWxlLmVudGl0eUFjY2Vzcy5pbmNsdWRlcyhzaG9wLmlkKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnb1RvU3RhdHVzUGFnZSgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5vcGVuKFxyXG4gICAgICAnaHR0cHM6Ly9zdGF0dXMucmV0YWxpYS5jbG91ZCcsXHJcbiAgICAgICdfYmxhbmsnLFxyXG4gICAgICAnbm9vcGVuZXIgbm9yZWZlcnJlcidcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcm91dGVUb1VybCgpOiB2b2lkIHtcclxuICAgIGxldCBjdXJyZW50TW9kdWxlID0gdGhpcy5tb2R1bGVTZXJ2aWNlLmdldEN1cnJlbnRNb2R1bGUodGhpcy5zZWxlY3RlZEl0ZW0pO1xyXG4gICAgaWYgKFxyXG4gICAgICBjdXJyZW50TW9kdWxlICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtICYmXHJcbiAgICAgIChjdXJyZW50TW9kdWxlLmF1dGhvcml6YXRpb25JZCA9PT0gdGhpcy5zZWxlY3RlZEl0ZW0uYXV0aG9yaXphdGlvbklkIHx8XHJcbiAgICAgICBjdXJyZW50TW9kdWxlLmF1dGhvcml6YXRpb25JZCA9PT0gdGhpcy5zZWxlY3RlZEl0ZW0ubW9kdWxlQXV0aG9yaXphdGlvbklkKVxyXG4gICAgKSB7XHJcbiAgICAgIGxldCBjdXJyZW50SXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZEl0ZW0pKTtcclxuICAgICAgY29uc3QgcGF0aEFycmF5ID0gdGhpcy5zZWxlY3RlZEl0ZW0udXJsLnNwbGl0KCcvJyk7XHJcbiAgICAgIHBhdGhBcnJheS5zcGxpY2UoMCwgMik7XHJcbiAgICAgIGN1cnJlbnRJdGVtLnVybCA9IHBhdGhBcnJheS5qb2luKCcvJyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS5lbWl0KGN1cnJlbnRJdGVtKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGl0ZW1VcmwgPSB0aGlzLnNlbGVjdGVkSXRlbS51cmw7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gaXRlbVVybDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TW9kdWxlcyhpc0ZpcnN0Q2FsbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgbGV0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBpUmVxdWVzdFVybDtcclxuICAgIGlmIChhcGlVcmwuZW5kc1dpdGgoXCIvXCIpKVxyXG4gICAgIGFwaVVybCA9IGFwaVVybC5zbGljZSgwLCAtMSk7XHJcblxyXG4gICAgdGhpcy5tb2R1bGVTZXJ2aWNlLmdldFVzZXJNb2R1bGVzKGFwaVVybCwgJycpLnRoZW4oKG1vZHVsZU9iamVjdCkgPT4ge1xyXG4gICAgICBpZiAoIW1vZHVsZU9iamVjdCB8fCAhbW9kdWxlT2JqZWN0Lm1vZHVsZXNEZXRhaWxzKSB7XHJcbiAgICAgICAgaWYgKGlzRmlyc3RDYWxsKSB7XHJcbiAgICAgICAgICAvLyBJZiB0aGUgVUkgcmVsaWVzIG9uIGFuIGludGVyY2VwdG9yIHRvIHJlZmlyZSBmYWlsZWQgQVBJIGNhbGxzLCB0aGUgaW5pdGlhbCBtb2R1bGUgY2FsbCB3aWxsIGZhaWxcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5nZXRNb2R1bGVzKGZhbHNlKSwgMTAwMCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGBObyBtb2R1bGVzIHdlcmUgZm91bmQgdXNpbmc6ICR7YXBpVXJsfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuYXZhaWxhYmxlU2hvcHMgPSBtb2R1bGVPYmplY3Quc2hvcHM7XHJcbiAgICAgIHRoaXMubW9kdWxlcyA9IHRoaXMubW9kdWxlU2VydmljZS5tYXBNb2R1bGVJdGVtcyhcclxuICAgICAgICBtb2R1bGVPYmplY3QubW9kdWxlc0RldGFpbHNcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLm1vZHVsZVNlcnZpY2UuZmluZE5lc3RlZFVybE1hdGNoKHRoaXMubW9kdWxlcyx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpO1xyXG4gICAgICB0aGlzLnBhbmVsQnV0dG9uU3RhdGVzLmlzTW9kdWxlT3BlbiA9IHRoaXMuaXNTaWRlYmFyT3BlbjtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGlkPVwic2lkZWJhci1wYW5lbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInBhbmVsLWl0ZW1cIiAoY2xpY2spPVwidG9nZ2xlU2lkZWJhcigkZXZlbnQsICdpc01vZHVsZU9wZW4nKVwiIGRhdGEtdGVzdGlkPVwibmF2LW1lbnVcIj5cclxuICAgICAgICA8c3ZnIGNsYXNzPVwicGFuZWwtaWNvblwiICpuZ0lmPVwiIXBhbmVsQnV0dG9uU3RhdGVzLmlzTW9kdWxlT3BlblwiIGhlaWdodD1cIjE0XCIgd2lkdGg9XCIyMVwiIHZpZXdCb3g9XCIwIDAgMTggMTJcIlxyXG4gICAgICAgICAgICBmaWxsPVwiIzNlM2UzZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pbllNaW4gbWVldFwiPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTAgMTJIMThWMTBIMFYxMlpNMCA3SDE4VjVIMFY3Wk0wIDBWMkgxOFYwSDBaXCIgLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8c3ZnIGNsYXNzPVwicGFuZWwtaWNvblwiICpuZ0lmPVwicGFuZWxCdXR0b25TdGF0ZXMuaXNNb2R1bGVPcGVuXCIgaGVpZ2h0PVwiMTNcIiB3aWR0aD1cIjEzXCIgdmlld0JveD1cIjAgMCAxNCAxNFwiXHJcbiAgICAgICAgICAgIGZpbGw9XCIjM2UzZTNlXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWluWU1pbiBtZWV0XCI+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTE0IDEuNDFMMTIuNTkgMEw3IDUuNTlMMS40MSAwTDAgMS40MUw1LjU5IDdMMCAxMi41OUwxLjQxIDE0TDcgOC40MUwxMi41OSAxNEwxNCAxMi41OUw4LjQxIDdMMTQgMS40MVpcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGFuZWwtaXRlbVwiIChjbGljayk9XCJ0b2dnbGVTaWRlYmFyKCRldmVudCwgJ2lzU3VwcG9ydE9wZW4nKVwiIGRhdGEtdGVzdGlkPVwibmF2LXN1cHBvcnRcIj5cclxuICAgICAgICA8c3ZnIGNsYXNzPVwicGFuZWwtaWNvblwiICpuZ0lmPVwiIXBhbmVsQnV0dG9uU3RhdGVzLmlzU3VwcG9ydE9wZW5cIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMjFcIiB2aWV3Qm94PVwiMCAwIDE4IDIxXCJcclxuICAgICAgICAgICAgZmlsbD1cIiMzZTNlM2VcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTE2IDBIMkMwLjg5IDAgMCAwLjkgMCAyVjE2QzAgMTcuMSAwLjg5IDE4IDIgMThINkw5IDIxTDEyIDE4SDE2QzE3LjEgMTggMTggMTcuMSAxOCAxNlYyQzE4IDAuOSAxNy4xIDAgMTYgMFpNMTAgMTZIOFYxNEgxMFYxNlpNMTIuMDcgOC4yNUwxMS4xNyA5LjE3QzEwLjQ1IDkuOSAxMCAxMC41IDEwIDEySDhWMTEuNUM4IDEwLjQgOC40NSA5LjQgOS4xNyA4LjY3TDEwLjQxIDcuNDFDMTAuNzggNy4wNSAxMSA2LjU1IDExIDZDMTEgNC45IDEwLjEgNCA5IDRDNy45IDQgNyA0LjkgNyA2SDVDNSAzLjc5IDYuNzkgMiA5IDJDMTEuMjEgMiAxMyAzLjc5IDEzIDZDMTMgNi44OCAxMi42NCA3LjY4IDEyLjA3IDguMjVaXCIgLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8c3ZnIGNsYXNzPVwicGFuZWwtaWNvblwiICpuZ0lmPVwicGFuZWxCdXR0b25TdGF0ZXMuaXNTdXBwb3J0T3BlblwiIGhlaWdodD1cIjEzXCIgd2lkdGg9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIlxyXG4gICAgICAgICAgICBmaWxsPVwiIzNlM2UzZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pbllNaW4gbWVldFwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xNCAxLjQxTDEyLjU5IDBMNyA1LjU5TDEuNDEgMEwwIDEuNDFMNS41OSA3TDAgMTIuNTlMMS40MSAxNEw3IDguNDFMMTIuNTkgMTRMMTQgMTIuNTlMOC40MSA3TDE0IDEuNDFaXCIgLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWJ1dHRvblwiIChtb3VzZW92ZXIpPVwiaGlkZVN0YXR1cyA9IGZhbHNlXCIgKG1vdXNlbGVhdmUpPVwiaGlkZVN0YXR1cyA9IHRydWVcIlxyXG4gICAgICAgIChjbGljayk9XCJnb1RvU3RhdHVzUGFnZSgpXCIgZGF0YS10ZXN0aWQ9XCJzaWRlYmFyLXN0YXR1c1wiPlxyXG4gICAgICAgIDxzdmcgY2xhc3M9XCJwYW5lbC1pY29uXCIgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyMiAyMlwiIGZpbGw9XCIjRkZGRkZGXCJcclxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0yMC42MjUgNi41SDEuMzc1QzAuNjE1NjEzIDYuNSAwIDUuODI4NDIgMCA1VjJDMCAxLjE3MTU4IDAuNjE1NjEzIDAuNSAxLjM3NSAwLjVIMjAuNjI1QzIxLjM4NDQgMC41IDIyIDEuMTcxNTggMjIgMlY1QzIyIDUuODI4NDIgMjEuMzg0NCA2LjUgMjAuNjI1IDYuNVpNMTguNTYyNSAyLjM3NUMxNy45OTI5IDIuMzc1IDE3LjUzMTIgMi44Nzg2NyAxNy41MzEyIDMuNUMxNy41MzEyIDQuMTIxMzMgMTcuOTkyOSA0LjYyNSAxOC41NjI1IDQuNjI1QzE5LjEzMjEgNC42MjUgMTkuNTkzOCA0LjEyMTMzIDE5LjU5MzggMy41QzE5LjU5MzggMi44Nzg2NyAxOS4xMzIxIDIuMzc1IDE4LjU2MjUgMi4zNzVaTTE1LjgxMjUgMi4zNzVDMTUuMjQyOSAyLjM3NSAxNC43ODEyIDIuODc4NjcgMTQuNzgxMiAzLjVDMTQuNzgxMiA0LjEyMTMzIDE1LjI0MjkgNC42MjUgMTUuODEyNSA0LjYyNUMxNi4zODIxIDQuNjI1IDE2Ljg0MzggNC4xMjEzMyAxNi44NDM4IDMuNUMxNi44NDM4IDIuODc4NjcgMTYuMzgyMSAyLjM3NSAxNS44MTI1IDIuMzc1Wk0yMC42MjUgMTRIMS4zNzVDMC42MTU2MTMgMTQgMCAxMy4zMjg0IDAgMTIuNVY5LjVDMCA4LjY3MTU4IDAuNjE1NjEzIDggMS4zNzUgOEgyMC42MjVDMjEuMzg0NCA4IDIyIDguNjcxNTggMjIgOS41VjEyLjVDMjIgMTMuMzI4NCAyMS4zODQ0IDE0IDIwLjYyNSAxNFpNMTguNTYyNSA5Ljg3NUMxNy45OTI5IDkuODc1IDE3LjUzMTIgMTAuMzc4NyAxNy41MzEyIDExQzE3LjUzMTIgMTEuNjIxMyAxNy45OTI5IDEyLjEyNSAxOC41NjI1IDEyLjEyNUMxOS4xMzIxIDEyLjEyNSAxOS41OTM4IDExLjYyMTMgMTkuNTkzOCAxMUMxOS41OTM4IDEwLjM3ODcgMTkuMTMyMSA5Ljg3NSAxOC41NjI1IDkuODc1Wk0xNS44MTI1IDkuODc1QzE1LjI0MjkgOS44NzUgMTQuNzgxMiAxMC4zNzg3IDE0Ljc4MTIgMTFDMTQuNzgxMiAxMS42MjEzIDE1LjI0MjkgMTIuMTI1IDE1LjgxMjUgMTIuMTI1QzE2LjM4MjEgMTIuMTI1IDE2Ljg0MzggMTEuNjIxMyAxNi44NDM4IDExQzE2Ljg0MzggMTAuMzc4NyAxNi4zODIxIDkuODc1IDE1LjgxMjUgOS44NzVaTTIwLjYyNSAyMS41SDEuMzc1QzAuNjE1NjEzIDIxLjUgMCAyMC44Mjg0IDAgMjBWMTdDMCAxNi4xNzE2IDAuNjE1NjEzIDE1LjUgMS4zNzUgMTUuNUgyMC42MjVDMjEuMzg0NCAxNS41IDIyIDE2LjE3MTYgMjIgMTdWMjBDMjIgMjAuODI4NCAyMS4zODQ0IDIxLjUgMjAuNjI1IDIxLjVaTTE4LjU2MjUgMTcuMzc1QzE3Ljk5MjkgMTcuMzc1IDE3LjUzMTIgMTcuODc4NyAxNy41MzEyIDE4LjVDMTcuNTMxMiAxOS4xMjEzIDE3Ljk5MjkgMTkuNjI1IDE4LjU2MjUgMTkuNjI1QzE5LjEzMjEgMTkuNjI1IDE5LjU5MzggMTkuMTIxMyAxOS41OTM4IDE4LjVDMTkuNTkzOCAxNy44Nzg3IDE5LjEzMjEgMTcuMzc1IDE4LjU2MjUgMTcuMzc1Wk0xNS44MTI1IDE3LjM3NUMxNS4yNDI5IDE3LjM3NSAxNC43ODEyIDE3Ljg3ODcgMTQuNzgxMiAxOC41QzE0Ljc4MTIgMTkuMTIxMyAxNS4yNDI5IDE5LjYyNSAxNS44MTI1IDE5LjYyNUMxNi4zODIxIDE5LjYyNSAxNi44NDM4IDE5LjEyMTMgMTYuODQzOCAxOC41QzE2Ljg0MzggMTcuODc4NyAxNi4zODIxIDE3LjM3NSAxNS44MTI1IDE3LjM3NVpcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDxpZnJhbWUgaWQ9XCJzdGF0dXMtZnJhbWVcIiBbbmdDbGFzc109XCJ7J2lzT3Blbic6ICFoaWRlU3RhdHVzLCAnaXNDbG9zZWQnOiBoaWRlU3RhdHVzIH1cIlxyXG4gICAgICAgICAgICBzcmM9XCIvL3N0YXR1cy5yZXRhbGlhLmNsb3VkL2VtYmVkLXN0YXR1cy9saWdodC1zbVwiIG5hbWU9XCJzdGF0dXNQYWdlXCIgd2lkdGg9XCIyMzBcIiBoZWlnaHQ9XCI2MVwiIGZyYW1lQm9yZGVyPVwiMFwiXHJcbiAgICAgICAgICAgIHNjcm9sbGluZz1cIm5vXCI+XHJcbiAgICAgICAgPC9pZnJhbWU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGlkPVwic2lkZWJhci1jb250YWluZXJcIiBbY2xhc3Mub3Blbi1zaWRlYmFyXT1cImlzU2lkZWJhck9wZW5cIj5cclxuICAgIDxkaXYgaWQ9XCJzdGlja3ktaGVhZGVyXCI+XHJcbiAgICAgICAgPGltZyBjbGFzcz1cImxvZ28tZnVsbFwiIGhlaWdodD1cIjQwcHhcIiBzcmM9XCJodHRwczovL2ltYWdpbmVzaGFyZWQuYmxvYi5jb3JlLndpbmRvd3MubmV0L3BvcnRhbC9yZXRhbGlhX2ZpbGVzL2xvZ29zL3NpZGViYXJfbG9nby5wbmdcIiAoY2xpY2spPVwiZ29Ub1BvcnRhbCgpXCJcclxuICAgICAgICBkYXRhLXRlc3RpZD1cIm5hdi1sb2dvXCIgLz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kdWxlLWRpdmlkZXJcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kdWxlU2VhcmNoYmFyXCIgKm5nSWY9XCJwYW5lbEJ1dHRvblN0YXRlcy5pc01vZHVsZU9wZW5cIj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwibW9kdWxlU2VhcmNoSW5wdXRcIiB0eXBlPVwic2VhcmNoXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgaWQ9XCJzZWFyY2hcIiBbdmFsdWVdPVwibW9kdWxlU2VhcmNoVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9XCJmYWxzZVwiIFtwbGFjZWhvbGRlcl09XCJtb2R1bGVTZWFyY2hQbGFjZWhvbGRlclwiIChrZXl1cCk9XCJoYW5kbGVNb2R1bGVTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlTW9kdWxlU2VhcmNoKCRldmVudClcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGlkPVwibWVudVwiICpuZ0lmPVwicGFuZWxCdXR0b25TdGF0ZXMuaXNNb2R1bGVPcGVuXCI+XHJcbiAgICAgICAgPHN1Yi1pdGVtIFtpdGVtc109XCJtb2R1bGVzXCI+PC9zdWItaXRlbT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBpZD1cIm1lbnVcIiAqbmdJZj1cInBhbmVsQnV0dG9uU3RhdGVzLmlzU3VwcG9ydE9wZW5cIj5cclxuICAgICAgICA8c3ViLWl0ZW0gW2l0ZW1zXT1cInN1cHBvcnRSb3V0ZXNcIj48L3N1Yi1pdGVtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHNob3AtbW9kYWwgW2F2YWlsYWJsZVNob3BzXT1cImF2YWlsYWJsZVNob3BzXCIgKHNlbGVjdGVkU2hvcCk9XCJzZWxlY3RlZFNob3AoJGV2ZW50KVwiPjwvc2hvcC1tb2RhbD4iXX0=
@@ -0,0 +1,52 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/sub-item.service";
4
+ import * as i2 from "@angular/common";
5
+ export class SubItemComponent {
6
+ constructor(subItemService) {
7
+ this.subItemService = subItemService;
8
+ this.activeItem = 'Yes';
9
+ this.getClass = (item, items) => {
10
+ let className = `item ${item.name}`;
11
+ if (item.children.length > 0 && !items[0].authorizationId) {
12
+ className = `item-group ${item.name}`;
13
+ }
14
+ else if (!item.authorizationId) {
15
+ className = `sub-item ${item.name}`;
16
+ }
17
+ if (item.active) {
18
+ className += ' active';
19
+ }
20
+ return className;
21
+ };
22
+ }
23
+ subItemClicked(e, item) {
24
+ e.stopPropagation();
25
+ item.children.length > 0
26
+ ? this.toggleSubItems(item)
27
+ : this.onSubItemClick(item);
28
+ }
29
+ onSubItemClick(item) {
30
+ this.subItemService.subItemclicked(item);
31
+ }
32
+ toggleSubItems(item) {
33
+ item.children.map((si) => {
34
+ si.visible = !si.visible;
35
+ if (si.children && !si.visible) {
36
+ si.children.map((si2) => (si2.visible = false)); // ensure nested items close with parent
37
+ }
38
+ });
39
+ }
40
+ checkVisibleSubItems(item) {
41
+ return item && item.visible && item.children.some((se) => se.visible);
42
+ }
43
+ }
44
+ SubItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SubItemComponent, deps: [{ token: i1.SubItemService }], target: i0.ɵɵFactoryTarget.Component });
45
+ SubItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SubItemComponent, selector: "sub-item", inputs: { items: "items" }, ngImport: i0, template: "<div *ngFor=\"let item of items; let i = index\"\r\n [attr.data-testid]=\"'nav-' + (item.authorizationId || item.name)\"\r\n [class]=\"this.getClass(item, items)\" (click)=\"subItemClicked($event, item)\">\r\n <ng-container *ngIf=\"item.visible\">\r\n {{ item.translatedName || item.name }}\r\n <img src=\"assets/icons/subItem-arrow.svg\" class=\"sub-item-arrow\"\r\n [ngClass]=\"{'rotated': checkVisibleSubItems(item)}\" *ngIf=\"item.children.length > 0\" />\r\n </ng-container>\r\n <sub-item [items]=\"item.children\" *ngIf=\"item.children\">\r\n </sub-item>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;1,300;1,400;1,600&display=swap\";body.dialog-open{overflow:hidden}.nsm-dialog-btn-close{border:0;background:none;position:absolute;top:8px;right:8px;font-size:1.2em;cursor:pointer}.overlay{position:fixed;inset:0;overflow-x:hidden;overflow-y:auto;transition:background-color .5s;background-color:transparent;z-index:999}.overlay.nsm-overlay-open{background-color:#00000080}.overlay.transparent{background-color:transparent}.nsm-dialog{position:relative;opacity:1;visibility:visible;min-height:200px;width:100%;max-width:520px;margin:0 auto;pointer-events:none;outline:none}.nsm-dialog.nsm-dialog-close{opacity:0}.nsm-dialog.nsm-centered{display:flex;align-items:center;min-height:calc(100% - 3.5rem)}.nsm-content{position:relative;display:flex;flex-direction:column;pointer-events:auto;background-clip:padding-box;background-color:#fff;border-radius:2px;padding:1rem;margin:1.75rem;box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f;outline:0;transform:translate(0)}.nsm-body{position:relative;flex:1 1 auto}.nsm-dialog[class*=nsm-dialog-animation-]{transition:transform .5s ease-in-out,opacity .5s}.nsm-dialog-animation-ltr{transform:translate(-50%)}.nsm-dialog-animation-ltr.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ltr.nsm-dialog-close{transform:translate(-50%)}.nsm-dialog-animation-rtl{transform:translate(50%)}.nsm-dialog-animation-rtl.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-rtl.nsm-dialog-close{transform:translate(50%)}.nsm-dialog-animation-ttb{transform:translateY(-50%)}.nsm-dialog-animation-ttb.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ttb.nsm-dialog-close{transform:translateY(-50%)}.nsm-dialog-animation-btt{transform:translateY(50%)}.nsm-dialog-animation-btt.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-btt.nsm-dialog-close{transform:translateY(50%)}.imagine-body{background-color:#fafbfc}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Regular.ttf) format(\"truetype\");font-weight:400;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Bold.ttf) format(\"truetype\");font-weight:700;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Italic.ttf) format(\"truetype\");font-weight:400;font-style:italic}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-SemiBold.ttf) format(\"truetype\");font-weight:600;font-style:normal}.sub-item,.item-group{position:relative;list-style:none;pointer-events:all;text-transform:capitalize;color:#919295;transition:background-color .1s ease-in-out;width:258px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-weight:400}@media (max-width: 37.5em){.sub-item,.item-group{width:100%;line-height:45px}}.sub-item:hover,.item-group:hover{color:#454fef;background:rgba(255,255,255,.8);font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.2);transform:scale(1.02)}.item-group>*{text-indent:30px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.item{display:inline-block;position:relative;list-style:none;text-transform:uppercase;text-indent:12px;align-items:center;line-height:30px;border:0px;cursor:pointer;font-weight:600;color:#545454;transition:background-color .1s ease-in-out;padding:4px 0;padding-right:15px!important;width:245px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (max-width: 37.5em){.item{width:100%;padding:10px 0!important}}.item:hover{background:rgba(255,255,255,.4)}.sub-item-arrow{position:absolute!important;all:initial;pointer-events:none;height:5px;right:10px;padding:12px 0;transition:.1s linear all;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;transform:rotate(180deg)}.rotated{transform:rotate(0)}.active{color:#454fef;background:rgba(255,255,255,.8);font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.2);transform:scale(1.02)}\n"], components: [{ type: SubItemComponent, selector: "sub-item", inputs: ["items"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SubItemComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'sub-item', template: "<div *ngFor=\"let item of items; let i = index\"\r\n [attr.data-testid]=\"'nav-' + (item.authorizationId || item.name)\"\r\n [class]=\"this.getClass(item, items)\" (click)=\"subItemClicked($event, item)\">\r\n <ng-container *ngIf=\"item.visible\">\r\n {{ item.translatedName || item.name }}\r\n <img src=\"assets/icons/subItem-arrow.svg\" class=\"sub-item-arrow\"\r\n [ngClass]=\"{'rotated': checkVisibleSubItems(item)}\" *ngIf=\"item.children.length > 0\" />\r\n </ng-container>\r\n <sub-item [items]=\"item.children\" *ngIf=\"item.children\">\r\n </sub-item>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;1,300;1,400;1,600&display=swap\";body.dialog-open{overflow:hidden}.nsm-dialog-btn-close{border:0;background:none;position:absolute;top:8px;right:8px;font-size:1.2em;cursor:pointer}.overlay{position:fixed;inset:0;overflow-x:hidden;overflow-y:auto;transition:background-color .5s;background-color:transparent;z-index:999}.overlay.nsm-overlay-open{background-color:#00000080}.overlay.transparent{background-color:transparent}.nsm-dialog{position:relative;opacity:1;visibility:visible;min-height:200px;width:100%;max-width:520px;margin:0 auto;pointer-events:none;outline:none}.nsm-dialog.nsm-dialog-close{opacity:0}.nsm-dialog.nsm-centered{display:flex;align-items:center;min-height:calc(100% - 3.5rem)}.nsm-content{position:relative;display:flex;flex-direction:column;pointer-events:auto;background-clip:padding-box;background-color:#fff;border-radius:2px;padding:1rem;margin:1.75rem;box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f;outline:0;transform:translate(0)}.nsm-body{position:relative;flex:1 1 auto}.nsm-dialog[class*=nsm-dialog-animation-]{transition:transform .5s ease-in-out,opacity .5s}.nsm-dialog-animation-ltr{transform:translate(-50%)}.nsm-dialog-animation-ltr.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ltr.nsm-dialog-close{transform:translate(-50%)}.nsm-dialog-animation-rtl{transform:translate(50%)}.nsm-dialog-animation-rtl.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-rtl.nsm-dialog-close{transform:translate(50%)}.nsm-dialog-animation-ttb{transform:translateY(-50%)}.nsm-dialog-animation-ttb.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ttb.nsm-dialog-close{transform:translateY(-50%)}.nsm-dialog-animation-btt{transform:translateY(50%)}.nsm-dialog-animation-btt.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-btt.nsm-dialog-close{transform:translateY(50%)}.imagine-body{background-color:#fafbfc}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Regular.ttf) format(\"truetype\");font-weight:400;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Bold.ttf) format(\"truetype\");font-weight:700;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Italic.ttf) format(\"truetype\");font-weight:400;font-style:italic}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-SemiBold.ttf) format(\"truetype\");font-weight:600;font-style:normal}.sub-item,.item-group{position:relative;list-style:none;pointer-events:all;text-transform:capitalize;color:#919295;transition:background-color .1s ease-in-out;width:258px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-weight:400}@media (max-width: 37.5em){.sub-item,.item-group{width:100%;line-height:45px}}.sub-item:hover,.item-group:hover{color:#454fef;background:rgba(255,255,255,.8);font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.2);transform:scale(1.02)}.item-group>*{text-indent:30px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.item{display:inline-block;position:relative;list-style:none;text-transform:uppercase;text-indent:12px;align-items:center;line-height:30px;border:0px;cursor:pointer;font-weight:600;color:#545454;transition:background-color .1s ease-in-out;padding:4px 0;padding-right:15px!important;width:245px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (max-width: 37.5em){.item{width:100%;padding:10px 0!important}}.item:hover{background:rgba(255,255,255,.4)}.sub-item-arrow{position:absolute!important;all:initial;pointer-events:none;height:5px;right:10px;padding:12px 0;transition:.1s linear all;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;transform:rotate(180deg)}.rotated{transform:rotate(0)}.active{color:#454fef;background:rgba(255,255,255,.8);font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.2);transform:scale(1.02)}\n"] }]
49
+ }], ctorParameters: function () { return [{ type: i1.SubItemService }]; }, propDecorators: { items: [{
50
+ type: Input
51
+ }] } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZWJhci1uYXZpZ2F0aW9uL3NyYy9saWIvc2lkZWJhci9zdWItaXRlbS9zdWItaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlYmFyLW5hdmlnYXRpb24vc3JjL2xpYi9zaWRlYmFyL3N1Yi1pdGVtL3N1Yi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBU2pELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBRGxELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFHbkIsYUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pCLElBQUksU0FBUyxHQUFHLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRTtnQkFDekQsU0FBUyxHQUFHLGNBQWMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3ZDO2lCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNoQyxTQUFTLEdBQUcsWUFBWSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDckM7WUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsU0FBUyxJQUFJLFNBQVMsQ0FBQzthQUN4QjtZQUVELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQztJQWZtRCxDQUFDO0lBaUJ0RCxjQUFjLENBQUMsQ0FBQyxFQUFFLElBQUk7UUFDcEIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBZ0I7UUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFnQjtRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDO1lBQ3pCLElBQUksRUFBRSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdDQUF3QzthQUMxRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQStCO1FBQ2xELE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDOzs2R0ExQ1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsNEVDVDdCLHVtQkFVTSx3N0hERE8sZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsVUFBVTtxR0FLWCxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1vZHVsZUl0ZW0sIFNpZGViYXJFbnRyeSB9IGZyb20gJy4uLy4uL21vZGVscy9tb2R1bGUnO1xyXG5pbXBvcnQgeyBTdWJJdGVtU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N1Yi1pdGVtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzdWItaXRlbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N1Yi1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdWItaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3ViSXRlbUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgaXRlbXM6IE1vZHVsZUl0ZW1bXSB8IFNpZGViYXJFbnRyeVtdO1xyXG4gIGFjdGl2ZUl0ZW0gPSAnWWVzJztcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN1Ykl0ZW1TZXJ2aWNlOiBTdWJJdGVtU2VydmljZSkge31cclxuXHJcbiAgZ2V0Q2xhc3MgPSAoaXRlbSwgaXRlbXMpID0+IHtcclxuICAgIGxldCBjbGFzc05hbWUgPSBgaXRlbSAke2l0ZW0ubmFtZX1gO1xyXG4gICAgaWYgKGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCAmJiAhaXRlbXNbMF0uYXV0aG9yaXphdGlvbklkKSB7XHJcbiAgICAgIGNsYXNzTmFtZSA9IGBpdGVtLWdyb3VwICR7aXRlbS5uYW1lfWA7XHJcbiAgICB9IGVsc2UgaWYgKCFpdGVtLmF1dGhvcml6YXRpb25JZCkge1xyXG4gICAgICBjbGFzc05hbWUgPSBgc3ViLWl0ZW0gJHtpdGVtLm5hbWV9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXRlbS5hY3RpdmUpIHtcclxuICAgICAgY2xhc3NOYW1lICs9ICcgYWN0aXZlJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY2xhc3NOYW1lO1xyXG4gIH07XHJcblxyXG4gIHN1Ykl0ZW1DbGlja2VkKGUsIGl0ZW0pOiB2b2lkIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDBcclxuICAgICAgPyB0aGlzLnRvZ2dsZVN1Ykl0ZW1zKGl0ZW0pXHJcbiAgICAgIDogdGhpcy5vblN1Ykl0ZW1DbGljayhpdGVtKTtcclxuICB9XHJcblxyXG4gIG9uU3ViSXRlbUNsaWNrKGl0ZW06IE1vZHVsZUl0ZW0pOiB2b2lkIHtcclxuICAgIHRoaXMuc3ViSXRlbVNlcnZpY2Uuc3ViSXRlbWNsaWNrZWQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVTdWJJdGVtcyhpdGVtOiBNb2R1bGVJdGVtKTogdm9pZCB7XHJcbiAgICBpdGVtLmNoaWxkcmVuLm1hcCgoc2kpID0+IHtcclxuICAgICAgc2kudmlzaWJsZSA9ICFzaS52aXNpYmxlO1xyXG4gICAgICBpZiAoc2kuY2hpbGRyZW4gJiYgIXNpLnZpc2libGUpIHtcclxuICAgICAgICBzaS5jaGlsZHJlbi5tYXAoKHNpMikgPT4gKHNpMi52aXNpYmxlID0gZmFsc2UpKTsgLy8gZW5zdXJlIG5lc3RlZCBpdGVtcyBjbG9zZSB3aXRoIHBhcmVudFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoZWNrVmlzaWJsZVN1Ykl0ZW1zKGl0ZW06IE1vZHVsZUl0ZW0gfCBTaWRlYmFyRW50cnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpdGVtICYmIGl0ZW0udmlzaWJsZSAmJiBpdGVtLmNoaWxkcmVuLnNvbWUoKHNlKSA9PiBzZS52aXNpYmxlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCInbmF2LScgKyAoaXRlbS5hdXRob3JpemF0aW9uSWQgfHwgaXRlbS5uYW1lKVwiXHJcbiAgICBbY2xhc3NdPVwidGhpcy5nZXRDbGFzcyhpdGVtLCBpdGVtcylcIiAoY2xpY2spPVwic3ViSXRlbUNsaWNrZWQoJGV2ZW50LCBpdGVtKVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udmlzaWJsZVwiPlxyXG4gICAgICAgIHt7IGl0ZW0udHJhbnNsYXRlZE5hbWUgfHwgaXRlbS5uYW1lIH19XHJcbiAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvc3ViSXRlbS1hcnJvdy5zdmdcIiBjbGFzcz1cInN1Yi1pdGVtLWFycm93XCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyb3RhdGVkJzogY2hlY2tWaXNpYmxlU3ViSXRlbXMoaXRlbSl9XCIgKm5nSWY9XCJpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDBcIiAvPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8c3ViLWl0ZW0gW2l0ZW1zXT1cIml0ZW0uY2hpbGRyZW5cIiAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIj5cclxuICAgIDwvc3ViLWl0ZW0+XHJcbjwvZGl2PiJdfQ==
@@ -0,0 +1,68 @@
1
+ import { Component, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../services/module.service";
4
+ import * as i2 from "../services/auth.service";
5
+ import * as i3 from "@angular/common";
6
+ export class TopbarComponent {
7
+ constructor(moduleService, authService) {
8
+ this.moduleService = moduleService;
9
+ this.authService = authService;
10
+ this.isTenantAdmin = false;
11
+ this.showProfileDropdown = false;
12
+ this.moduleService.storedModuleFlagsChange.subscribe((value) => {
13
+ value ? (this.isTenantAdmin = value.includes('TenantAdmin')) : '';
14
+ });
15
+ this.moduleService.currentRouteName.subscribe((value) => {
16
+ this.currentRouteName = value;
17
+ });
18
+ }
19
+ clickout(event) {
20
+ this.closeDropdown(event);
21
+ }
22
+ showDropdownOptions(dropdownName) {
23
+ if (dropdownName === 'profile') {
24
+ this.showProfileDropdown = true;
25
+ }
26
+ }
27
+ closeDropdown(event) {
28
+ if (!(event.target instanceof Element)) {
29
+ this.showProfileDropdown = false;
30
+ return;
31
+ }
32
+ const element = event.composedPath()[0];
33
+ if (!(element instanceof Element)) {
34
+ this.showProfileDropdown = false;
35
+ return;
36
+ }
37
+ if (event.target.id !== 'avatar' && element.id !== 'avatar') {
38
+ this.showProfileDropdown = false;
39
+ }
40
+ }
41
+ clickDetails(e) {
42
+ if (this.environment.portalUrl.slice(-1) !== `/`) {
43
+ this.environment.portalUrl += `/`;
44
+ }
45
+ const detailsUrl = this.environment.portalUrl + 'profile/general';
46
+ window.location.href = detailsUrl;
47
+ }
48
+ logout() {
49
+ if (this.environment.portalUrl.slice(-1) !== `/`) {
50
+ this.environment.portalUrl += `/`;
51
+ }
52
+ this.authService.logout();
53
+ const loginUrl = this.environment.portalUrl + 'auth/login';
54
+ window.location.href = loginUrl;
55
+ }
56
+ }
57
+ TopbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TopbarComponent, deps: [{ token: i1.ModuleService }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component });
58
+ TopbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TopbarComponent, selector: "topbar", inputs: { environment: "environment" }, host: { listeners: { "document:click": "clickout($event)" } }, ngImport: i0, template: "<nav class=\"top-menu\">\r\n\r\n <div id=\"profile\">\r\n\r\n <div id=\"avatar\" (click)=\"showDropdownOptions('profile')\" data-testid=\"nav-profile\">\r\n <svg class=\"profile-icon\" width=\"24\" height=\"24\" viewBox=\"0 0 32 32\" fill=\"#213244\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M16 20C20.4183 20 24 16.4183 24 12C24 7.58172 20.4183 4 16 4C11.5817 4 8 7.58172 8 12C8 16.4183 11.5817 20 16 20Z\"\r\n stroke=\"white\" stroke-width=\"2\" stroke-miterlimit=\"10\" />\r\n <path\r\n d=\"M3.87354 26.9988C5.10299 24.8708 6.8708 23.1037 8.99939 21.8752C11.128 20.6467 13.5424 20 16.0001 20C18.4577 20 20.8721 20.6468 23.0007 21.8754C25.1292 23.1039 26.897 24.871 28.1264 26.9991\"\r\n stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div *ngIf=\"showProfileDropdown\" class=\"dropdown-items\">\r\n <div class=\"option-text\" (click)=\"clickDetails($event)\" data-testid=\"nav-profile-settings\">\r\n <img class=\"dropdown-icon\" src=\"assets/icons/topbar-settings.svg\" />\r\n Update details\r\n </div>\r\n <div class=\"option-text\" (click)=\"logout()\" data-testid=\"nav-profile-logout\">\r\n <img class=\"dropdown-icon\" src=\"assets/icons/topbar-logout.svg\" />\r\n Logout\r\n </div>\r\n </div>\r\n </div>\r\n</nav>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;1,300;1,400;1,600&display=swap\";body.dialog-open{overflow:hidden}.nsm-dialog-btn-close{border:0;background:none;position:absolute;top:8px;right:8px;font-size:1.2em;cursor:pointer}.overlay{position:fixed;inset:0;overflow-x:hidden;overflow-y:auto;transition:background-color .5s;background-color:transparent;z-index:999}.overlay.nsm-overlay-open{background-color:#00000080}.overlay.transparent{background-color:transparent}.nsm-dialog{position:relative;opacity:1;visibility:visible;min-height:200px;width:100%;max-width:520px;margin:0 auto;pointer-events:none;outline:none}.nsm-dialog.nsm-dialog-close{opacity:0}.nsm-dialog.nsm-centered{display:flex;align-items:center;min-height:calc(100% - 3.5rem)}.nsm-content{position:relative;display:flex;flex-direction:column;pointer-events:auto;background-clip:padding-box;background-color:#fff;border-radius:2px;padding:1rem;margin:1.75rem;box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f;outline:0;transform:translate(0)}.nsm-body{position:relative;flex:1 1 auto}.nsm-dialog[class*=nsm-dialog-animation-]{transition:transform .5s ease-in-out,opacity .5s}.nsm-dialog-animation-ltr{transform:translate(-50%)}.nsm-dialog-animation-ltr.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ltr.nsm-dialog-close{transform:translate(-50%)}.nsm-dialog-animation-rtl{transform:translate(50%)}.nsm-dialog-animation-rtl.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-rtl.nsm-dialog-close{transform:translate(50%)}.nsm-dialog-animation-ttb{transform:translateY(-50%)}.nsm-dialog-animation-ttb.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ttb.nsm-dialog-close{transform:translateY(-50%)}.nsm-dialog-animation-btt{transform:translateY(50%)}.nsm-dialog-animation-btt.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-btt.nsm-dialog-close{transform:translateY(50%)}.imagine-body{background-color:#fafbfc}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Regular.ttf) format(\"truetype\");font-weight:400;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Bold.ttf) format(\"truetype\");font-weight:700;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Italic.ttf) format(\"truetype\");font-weight:400;font-style:italic}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-SemiBold.ttf) format(\"truetype\");font-weight:600;font-style:normal}#item-name{font-family:Poppins,sans-serif;font-size:24px;font-weight:700;padding-left:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-transform:capitalize}@media (max-width: 37.5em){#item-name{padding-left:70px}}.top-menu{z-index:20;margin:0;top:0;position:fixed;display:flex;align-items:center;height:67px;width:100vw;overflow:hidden;background-color:none}@media (max-width: 37.5em){.top-menu{min-height:60px;height:60px}}.top-menu .dropdown-items{position:fixed;list-style-type:none;white-space:nowrap;padding:0;min-width:120px;border-radius:10px;border:1px solid #d8dde6;background-color:#fff;box-shadow:0 2px 3px;text-align-last:center}@media (max-width: 37.5em){.top-menu .dropdown-items{top:110px}}.top-menu .dropdown-items .option-text{cursor:pointer;font-family:Poppins,sans-serif;font-size:12px;text-align:left;margin:0;padding:10px 0;color:#000}.top-menu .dropdown-items .option-text:hover{background-color:#f5f5f5;border-radius:10px}.top-menu .dropdown-icon{pointer-events:none;float:left;margin-top:2px;padding:0 8px;height:10px}.top-menu #profile{position:fixed;right:20px;display:flex;align-items:center}@media (max-width: 37.5em){.top-menu #profile{height:60px}}.top-menu #profile img{margin-left:0}.top-menu #profile #avatar{cursor:pointer;position:relative;height:30px;width:30px;transition:.2s linear;border-radius:50%;padding:5px;background-color:#213244}.top-menu #profile #avatar:hover{background-color:#545454}.top-menu #profile #avatar .profile-icon{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.top-menu #profile #info{cursor:pointer;height:30px;transition:.2s linear all}.top-menu #profile #info:hover{transform:scale(1.1)}.top-menu #profile .admin-group{right:110px!important}.top-menu #profile .info-group{right:10px!important}.top-menu #profile .dropdown-items{position:fixed;top:70px;right:30px}@media (max-width: 37.5em){.top-menu #profile .dropdown-items{top:70px}}@media print{.top-menu{display:none}}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TopbarComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ selector: 'topbar', template: "<nav class=\"top-menu\">\r\n\r\n <div id=\"profile\">\r\n\r\n <div id=\"avatar\" (click)=\"showDropdownOptions('profile')\" data-testid=\"nav-profile\">\r\n <svg class=\"profile-icon\" width=\"24\" height=\"24\" viewBox=\"0 0 32 32\" fill=\"#213244\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M16 20C20.4183 20 24 16.4183 24 12C24 7.58172 20.4183 4 16 4C11.5817 4 8 7.58172 8 12C8 16.4183 11.5817 20 16 20Z\"\r\n stroke=\"white\" stroke-width=\"2\" stroke-miterlimit=\"10\" />\r\n <path\r\n d=\"M3.87354 26.9988C5.10299 24.8708 6.8708 23.1037 8.99939 21.8752C11.128 20.6467 13.5424 20 16.0001 20C18.4577 20 20.8721 20.6468 23.0007 21.8754C25.1292 23.1039 26.897 24.871 28.1264 26.9991\"\r\n stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div *ngIf=\"showProfileDropdown\" class=\"dropdown-items\">\r\n <div class=\"option-text\" (click)=\"clickDetails($event)\" data-testid=\"nav-profile-settings\">\r\n <img class=\"dropdown-icon\" src=\"assets/icons/topbar-settings.svg\" />\r\n Update details\r\n </div>\r\n <div class=\"option-text\" (click)=\"logout()\" data-testid=\"nav-profile-logout\">\r\n <img class=\"dropdown-icon\" src=\"assets/icons/topbar-logout.svg\" />\r\n Logout\r\n </div>\r\n </div>\r\n </div>\r\n</nav>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;1,300;1,400;1,600&display=swap\";body.dialog-open{overflow:hidden}.nsm-dialog-btn-close{border:0;background:none;position:absolute;top:8px;right:8px;font-size:1.2em;cursor:pointer}.overlay{position:fixed;inset:0;overflow-x:hidden;overflow-y:auto;transition:background-color .5s;background-color:transparent;z-index:999}.overlay.nsm-overlay-open{background-color:#00000080}.overlay.transparent{background-color:transparent}.nsm-dialog{position:relative;opacity:1;visibility:visible;min-height:200px;width:100%;max-width:520px;margin:0 auto;pointer-events:none;outline:none}.nsm-dialog.nsm-dialog-close{opacity:0}.nsm-dialog.nsm-centered{display:flex;align-items:center;min-height:calc(100% - 3.5rem)}.nsm-content{position:relative;display:flex;flex-direction:column;pointer-events:auto;background-clip:padding-box;background-color:#fff;border-radius:2px;padding:1rem;margin:1.75rem;box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f;outline:0;transform:translate(0)}.nsm-body{position:relative;flex:1 1 auto}.nsm-dialog[class*=nsm-dialog-animation-]{transition:transform .5s ease-in-out,opacity .5s}.nsm-dialog-animation-ltr{transform:translate(-50%)}.nsm-dialog-animation-ltr.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ltr.nsm-dialog-close{transform:translate(-50%)}.nsm-dialog-animation-rtl{transform:translate(50%)}.nsm-dialog-animation-rtl.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-rtl.nsm-dialog-close{transform:translate(50%)}.nsm-dialog-animation-ttb{transform:translateY(-50%)}.nsm-dialog-animation-ttb.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-ttb.nsm-dialog-close{transform:translateY(-50%)}.nsm-dialog-animation-btt{transform:translateY(50%)}.nsm-dialog-animation-btt.nsm-dialog-open{transform:translate(0)}.nsm-dialog-animation-btt.nsm-dialog-close{transform:translateY(50%)}.imagine-body{background-color:#fafbfc}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Regular.ttf) format(\"truetype\");font-weight:400;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Bold.ttf) format(\"truetype\");font-weight:700;font-style:normal}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-Italic.ttf) format(\"truetype\");font-weight:400;font-style:italic}@font-face{font-family:Poppins;src:url(../assets/fonts/Poppins-SemiBold.ttf) format(\"truetype\");font-weight:600;font-style:normal}#item-name{font-family:Poppins,sans-serif;font-size:24px;font-weight:700;padding-left:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-transform:capitalize}@media (max-width: 37.5em){#item-name{padding-left:70px}}.top-menu{z-index:20;margin:0;top:0;position:fixed;display:flex;align-items:center;height:67px;width:100vw;overflow:hidden;background-color:none}@media (max-width: 37.5em){.top-menu{min-height:60px;height:60px}}.top-menu .dropdown-items{position:fixed;list-style-type:none;white-space:nowrap;padding:0;min-width:120px;border-radius:10px;border:1px solid #d8dde6;background-color:#fff;box-shadow:0 2px 3px;text-align-last:center}@media (max-width: 37.5em){.top-menu .dropdown-items{top:110px}}.top-menu .dropdown-items .option-text{cursor:pointer;font-family:Poppins,sans-serif;font-size:12px;text-align:left;margin:0;padding:10px 0;color:#000}.top-menu .dropdown-items .option-text:hover{background-color:#f5f5f5;border-radius:10px}.top-menu .dropdown-icon{pointer-events:none;float:left;margin-top:2px;padding:0 8px;height:10px}.top-menu #profile{position:fixed;right:20px;display:flex;align-items:center}@media (max-width: 37.5em){.top-menu #profile{height:60px}}.top-menu #profile img{margin-left:0}.top-menu #profile #avatar{cursor:pointer;position:relative;height:30px;width:30px;transition:.2s linear;border-radius:50%;padding:5px;background-color:#213244}.top-menu #profile #avatar:hover{background-color:#545454}.top-menu #profile #avatar .profile-icon{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.top-menu #profile #info{cursor:pointer;height:30px;transition:.2s linear all}.top-menu #profile #info:hover{transform:scale(1.1)}.top-menu #profile .admin-group{right:110px!important}.top-menu #profile .info-group{right:10px!important}.top-menu #profile .dropdown-items{position:fixed;top:70px;right:30px}@media (max-width: 37.5em){.top-menu #profile .dropdown-items{top:70px}}@media print{.top-menu{display:none}}\n"] }]
62
+ }], ctorParameters: function () { return [{ type: i1.ModuleService }, { type: i2.AuthService }]; }, propDecorators: { environment: [{
63
+ type: Input
64
+ }], clickout: [{
65
+ type: HostListener,
66
+ args: ['document:click', ['$event']]
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGViYXItbmF2aWdhdGlvbi9zcmMvbGliL3RvcGJhci90b3BiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZWJhci1uYXZpZ2F0aW9uL3NyYy9saWIvdG9wYmFyL3RvcGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVS9ELE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQ1UsYUFBNEIsRUFDNUIsV0FBd0I7UUFEeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFMbEMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBTTFCLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDN0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsUUFBUSxDQUFDLEtBQVk7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sbUJBQW1CLENBQUMsWUFBb0I7UUFDN0MsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQzlCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQVk7UUFDL0IsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sWUFBWSxPQUFPLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLE9BQU87U0FDUjtRQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsQ0FBQyxPQUFPLFlBQVksT0FBTyxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztZQUNqQyxPQUFPO1NBQ1I7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLFFBQVEsRUFBRTtZQUMzRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVNLFlBQVksQ0FBQyxDQUFRO1FBQzFCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQztTQUNuQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDO1FBQ2xFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQztTQUNuQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO1FBQzNELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztJQUNsQyxDQUFDOzs0R0EvRFUsZUFBZTtnR0FBZixlQUFlLHFKQ1Y1Qiw0akRBMEJNOzJGRGhCTyxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFFBQVE7OEhBS1QsV0FBVztzQkFBbkIsS0FBSztnQkFrQk4sUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbW9kZWxzL2Vudmlyb25tZW50JztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2R1bGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kdWxlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0b3BiYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3BiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RvcGJhci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9wYmFyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQ7XHJcbiAgY3VycmVudFJvdXRlTmFtZTogc3RyaW5nO1xyXG4gIGlzVGVuYW50QWRtaW4gPSBmYWxzZTtcclxuICBzaG93UHJvZmlsZURyb3Bkb3duID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtb2R1bGVTZXJ2aWNlOiBNb2R1bGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMubW9kdWxlU2VydmljZS5zdG9yZWRNb2R1bGVGbGFnc0NoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHZhbHVlID8gKHRoaXMuaXNUZW5hbnRBZG1pbiA9IHZhbHVlLmluY2x1ZGVzKCdUZW5hbnRBZG1pbicpKSA6ICcnO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm1vZHVsZVNlcnZpY2UuY3VycmVudFJvdXRlTmFtZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuY3VycmVudFJvdXRlTmFtZSA9IHZhbHVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgY2xpY2tvdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmNsb3NlRHJvcGRvd24oZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dEcm9wZG93bk9wdGlvbnMoZHJvcGRvd25OYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChkcm9wZG93bk5hbWUgPT09ICdwcm9maWxlJykge1xyXG4gICAgICB0aGlzLnNob3dQcm9maWxlRHJvcGRvd24gPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlRHJvcGRvd24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xyXG4gICAgICB0aGlzLnNob3dQcm9maWxlRHJvcGRvd24gPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC5jb21wb3NlZFBhdGgoKVswXTtcclxuICAgIGlmICghKGVsZW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xyXG4gICAgICB0aGlzLnNob3dQcm9maWxlRHJvcGRvd24gPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChldmVudC50YXJnZXQuaWQgIT09ICdhdmF0YXInICYmIGVsZW1lbnQuaWQgIT09ICdhdmF0YXInKSB7XHJcbiAgICAgIHRoaXMuc2hvd1Byb2ZpbGVEcm9wZG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsaWNrRGV0YWlscyhlOiBFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZW52aXJvbm1lbnQucG9ydGFsVXJsLnNsaWNlKC0xKSAhPT0gYC9gKSB7XHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQucG9ydGFsVXJsICs9IGAvYDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkZXRhaWxzVXJsID0gdGhpcy5lbnZpcm9ubWVudC5wb3J0YWxVcmwgKyAncHJvZmlsZS9nZW5lcmFsJztcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZGV0YWlsc1VybDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2dvdXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5lbnZpcm9ubWVudC5wb3J0YWxVcmwuc2xpY2UoLTEpICE9PSBgL2ApIHtcclxuICAgICAgdGhpcy5lbnZpcm9ubWVudC5wb3J0YWxVcmwgKz0gYC9gO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XHJcbiAgICBjb25zdCBsb2dpblVybCA9IHRoaXMuZW52aXJvbm1lbnQucG9ydGFsVXJsICsgJ2F1dGgvbG9naW4nO1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2dpblVybDtcclxuICB9XHJcbn1cclxuIiwiPG5hdiBjbGFzcz1cInRvcC1tZW51XCI+XHJcblxyXG4gICAgPGRpdiBpZD1cInByb2ZpbGVcIj5cclxuXHJcbiAgICAgICAgPGRpdiBpZD1cImF2YXRhclwiIChjbGljayk9XCJzaG93RHJvcGRvd25PcHRpb25zKCdwcm9maWxlJylcIiBkYXRhLXRlc3RpZD1cIm5hdi1wcm9maWxlXCI+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJwcm9maWxlLWljb25cIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgZmlsbD1cIiMyMTMyNDRcIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTE2IDIwQzIwLjQxODMgMjAgMjQgMTYuNDE4MyAyNCAxMkMyNCA3LjU4MTcyIDIwLjQxODMgNCAxNiA0QzExLjU4MTcgNCA4IDcuNTgxNzIgOCAxMkM4IDE2LjQxODMgMTEuNTgxNyAyMCAxNiAyMFpcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTMuODczNTQgMjYuOTk4OEM1LjEwMjk5IDI0Ljg3MDggNi44NzA4IDIzLjEwMzcgOC45OTkzOSAyMS44NzUyQzExLjEyOCAyMC42NDY3IDEzLjU0MjQgMjAgMTYuMDAwMSAyMEMxOC40NTc3IDIwIDIwLjg3MjEgMjAuNjQ2OCAyMy4wMDA3IDIxLjg3NTRDMjUuMTI5MiAyMy4xMDM5IDI2Ljg5NyAyNC44NzEgMjguMTI2NCAyNi45OTkxXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1Byb2ZpbGVEcm9wZG93blwiIGNsYXNzPVwiZHJvcGRvd24taXRlbXNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi10ZXh0XCIgKGNsaWNrKT1cImNsaWNrRGV0YWlscygkZXZlbnQpXCIgIGRhdGEtdGVzdGlkPVwibmF2LXByb2ZpbGUtc2V0dGluZ3NcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJkcm9wZG93bi1pY29uXCIgc3JjPVwiYXNzZXRzL2ljb25zL3RvcGJhci1zZXR0aW5ncy5zdmdcIiAvPlxyXG4gICAgICAgICAgICAgICAgVXBkYXRlIGRldGFpbHNcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24tdGV4dFwiIChjbGljayk9XCJsb2dvdXQoKVwiICBkYXRhLXRlc3RpZD1cIm5hdi1wcm9maWxlLWxvZ291dFwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImRyb3Bkb3duLWljb25cIiBzcmM9XCJhc3NldHMvaWNvbnMvdG9wYmFyLWxvZ291dC5zdmdcIiAvPlxyXG4gICAgICAgICAgICAgICAgTG9nb3V0XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmF2PiJdfQ==
@@ -0,0 +1,12 @@
1
+ /*
2
+ * Public API Surface of sidebar-navigation
3
+ */
4
+ export * from './lib/navigation-lib.service';
5
+ export * from './lib/navigation-lib.component';
6
+ export * from './lib/navigation-lib.module';
7
+ export * from './lib/models/module';
8
+ export * from './lib/services/auth.service';
9
+ export * from './lib/services/http.service';
10
+ export * from './lib/services/module.service';
11
+ export * from './lib/services/sub-item.service';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NpZGViYXItbmF2aWdhdGlvbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzaWRlYmFyLW5hdmlnYXRpb25cclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uYXZpZ2F0aW9uLWxpYi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmF2aWdhdGlvbi1saWIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmF2aWdhdGlvbi1saWIubW9kdWxlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9tb2R1bGUnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbW9kdWxlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9zdWItaXRlbS5zZXJ2aWNlJzsiXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0YWxpYS1zaWRlYmFyLW5hdmlnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9zaWRlYmFyLW5hdmlnYXRpb24vc3JjL3JldGFsaWEtc2lkZWJhci1uYXZpZ2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=