aril 1.0.11 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +248 -0
- package/esm2022/theme/layout/app/layout/app.layout.component.mjs +14 -6
- package/esm2022/theme/layout/service/app.layout.service.mjs +7 -2
- package/esm2022/ui/table/src/table.component.mjs +4 -4
- package/fesm2022/aril-theme-layout.mjs +270 -23
- package/fesm2022/aril-theme-layout.mjs.map +1 -1
- package/fesm2022/aril-ui-table.mjs +3 -3
- package/fesm2022/aril-ui-table.mjs.map +1 -1
- package/package.json +86 -86
- package/theme/layout/app/expandableMenu/expandable-menu.component.d.ts +73 -0
- package/theme/layout/app/expandableMenu/expandable-menu.component.html +112 -0
- package/theme/layout/app/expandableMenu/expandable-menu.component.ts +294 -0
- package/theme/layout/app/layout/app.layout.component.d.ts +4 -0
- package/theme/layout/app/layout/app.layout.component.html +3 -2
- package/theme/layout/app/layout/app.layout.component.ts +10 -3
- package/theme/layout/service/app.layout.service.d.ts +6 -1
- package/theme/layout/service/app.layout.service.ts +9 -2
- package/theme/styles/layout/_content.scss +30 -0
- package/theme/styles/layout/_expanded_sidebar.scss +583 -0
- package/theme/styles/layout/_responsive.scss +0 -1
- package/theme/styles/layout/_topbar.scss +33 -0
- package/theme/styles/layout/layout.scss +1 -0
- package/theme/styles/theme/light/custom/theme.scss +3 -3
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { Component, HostListener } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { NavigationEnd, RouterLink } from '@angular/router';
|
|
5
|
+
import { TooltipModule } from 'primeng/tooltip';
|
|
6
|
+
import { filter } from 'rxjs';
|
|
7
|
+
import { TranslateJsonPipe } from 'aril/util/pipes';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "aril/util/pipes";
|
|
10
|
+
import * as i2 from "../../service/app.menu.service";
|
|
11
|
+
import * as i3 from "@angular/router";
|
|
12
|
+
import * as i4 from "keycloak-angular";
|
|
13
|
+
import * as i5 from "@ngneat/transloco";
|
|
14
|
+
import * as i6 from "../../service/app.layout.service";
|
|
15
|
+
import * as i7 from "primeng/tooltip";
|
|
16
|
+
export class ExpandableMenuComponent {
|
|
17
|
+
constructor(translateJsonPipe, menuService, router, keycloak, translocoService, layoutService) {
|
|
18
|
+
this.translateJsonPipe = translateJsonPipe;
|
|
19
|
+
this.menuService = menuService;
|
|
20
|
+
this.router = router;
|
|
21
|
+
this.keycloak = keycloak;
|
|
22
|
+
this.translocoService = translocoService;
|
|
23
|
+
this.layoutService = layoutService;
|
|
24
|
+
this.activeLang = toSignal(this.translocoService.langChanges$, { initialValue: 'tr' });
|
|
25
|
+
this.overlayMenuOpenSubscription = null;
|
|
26
|
+
this.routerSubscription = null;
|
|
27
|
+
this.username = this.keycloak.getUsername().charAt(0).toUpperCase();
|
|
28
|
+
this.sidebarIsLocked = false;
|
|
29
|
+
this.isHostMode = globalThis.isHostMode;
|
|
30
|
+
this.hostMenuItems = globalThis.hostMenuItems;
|
|
31
|
+
this.cachedMenuItems = [];
|
|
32
|
+
// Track selected main menu item
|
|
33
|
+
this.selectedMainItem = null;
|
|
34
|
+
this.selectedMainMenuItem = null;
|
|
35
|
+
this.secondarySidebarExpanded = false;
|
|
36
|
+
this.tooltipText = {
|
|
37
|
+
toggleButton: {
|
|
38
|
+
expanded: {
|
|
39
|
+
tr: 'Menüyü Gizle',
|
|
40
|
+
en: 'Hide Menu'
|
|
41
|
+
},
|
|
42
|
+
collapsed: {
|
|
43
|
+
tr: 'Menüyü Göster',
|
|
44
|
+
en: 'Show Menu'
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
lockButton: {
|
|
48
|
+
locked: {
|
|
49
|
+
tr: 'Otomatik Kapanmayı Aç',
|
|
50
|
+
en: 'Enable Auto-Close'
|
|
51
|
+
},
|
|
52
|
+
unlocked: {
|
|
53
|
+
tr: 'Menüyü Kilitle',
|
|
54
|
+
en: 'Lock Menu'
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
this.MAX_LENGTH = {
|
|
59
|
+
main: 8,
|
|
60
|
+
secondary: 20,
|
|
61
|
+
tertiary: 20
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// Check if text is truncated and needs tooltip
|
|
65
|
+
isTextTruncated(label, lang, menuType = 'secondary') {
|
|
66
|
+
if (!label || !lang || !label[lang])
|
|
67
|
+
return false;
|
|
68
|
+
const text = label[lang];
|
|
69
|
+
const textLength = text.length;
|
|
70
|
+
const maxLength = menuType === 'nested' ? this.MAX_LENGTH.tertiary : this.MAX_LENGTH[menuType];
|
|
71
|
+
return textLength > maxLength;
|
|
72
|
+
}
|
|
73
|
+
// Recursively check if a menu item or its children match the current route
|
|
74
|
+
isActiveRoute(menuItem) {
|
|
75
|
+
if (!menuItem || !menuItem.routerLink)
|
|
76
|
+
return false;
|
|
77
|
+
// Get current URL path after the hash
|
|
78
|
+
const currentUrl = this.router.url;
|
|
79
|
+
const hashUrl = currentUrl.indexOf('#') > -1 ? currentUrl.split('#')[1] : currentUrl;
|
|
80
|
+
// Check for exact match first
|
|
81
|
+
if (hashUrl === menuItem.routerLink || hashUrl === '/' + menuItem.routerLink) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
// Check if current URL starts with the routerLink (handles child routes)
|
|
85
|
+
if (menuItem.routerLink !== '/' &&
|
|
86
|
+
(hashUrl.startsWith(menuItem.routerLink + '/') || hashUrl.startsWith('/' + menuItem.routerLink + '/'))) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
// Check child items if they exist
|
|
90
|
+
if (menuItem.items && menuItem.items.length > 0) {
|
|
91
|
+
return menuItem.items.some((childItem) => this.isActiveRoute(childItem));
|
|
92
|
+
}
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
ngOnInit() {
|
|
96
|
+
this.updateMenuItems();
|
|
97
|
+
this.initializeMenu();
|
|
98
|
+
this.loadSidebarLockState();
|
|
99
|
+
this.updateActiveMenuFromCurrentRoute();
|
|
100
|
+
// Subscribe to route changes to handle secondary sidebar closing
|
|
101
|
+
this.routerSubscription = this.router.events
|
|
102
|
+
.pipe(filter((event) => event instanceof NavigationEnd))
|
|
103
|
+
.subscribe(() => {
|
|
104
|
+
// Update active menu based on the new route
|
|
105
|
+
this.updateActiveMenuFromCurrentRoute();
|
|
106
|
+
// Close secondary sidebar on navigation if not locked
|
|
107
|
+
if (!this.sidebarIsLocked) {
|
|
108
|
+
this.secondarySidebarExpanded = false;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
// Subscribe to overlay menu open notifications
|
|
112
|
+
this.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {
|
|
113
|
+
if (this.layoutService.state.staticMenuMobileActive) {
|
|
114
|
+
this.secondarySidebarExpanded = true;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
ngOnDestroy() {
|
|
119
|
+
if (this.overlayMenuOpenSubscription) {
|
|
120
|
+
this.overlayMenuOpenSubscription.unsubscribe();
|
|
121
|
+
}
|
|
122
|
+
if (this.routerSubscription) {
|
|
123
|
+
this.routerSubscription.unsubscribe();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
loadSidebarLockState() {
|
|
127
|
+
const storedState = localStorage.getItem('sidebarIsLocked');
|
|
128
|
+
this.sidebarIsLocked = storedState === 'true';
|
|
129
|
+
}
|
|
130
|
+
saveSidebarLockState() {
|
|
131
|
+
localStorage.setItem('sidebarIsLocked', this.sidebarIsLocked.toString());
|
|
132
|
+
}
|
|
133
|
+
toggleSidebarLock() {
|
|
134
|
+
this.sidebarIsLocked = !this.sidebarIsLocked;
|
|
135
|
+
this.saveSidebarLockState();
|
|
136
|
+
}
|
|
137
|
+
// Initialize the menu with proper active state
|
|
138
|
+
initializeMenu() {
|
|
139
|
+
this.selectedMainItem = null;
|
|
140
|
+
this.selectedMainMenuItem = null;
|
|
141
|
+
this.secondarySidebarExpanded = false;
|
|
142
|
+
this.updateMenuItems();
|
|
143
|
+
}
|
|
144
|
+
updateMenuFromRootKey(index) {
|
|
145
|
+
this.updateMenuItems();
|
|
146
|
+
const menuItems = this.getMenuItems();
|
|
147
|
+
if (index >= 0 && index < menuItems.length) {
|
|
148
|
+
const item = menuItems[index];
|
|
149
|
+
if (!item.separator) {
|
|
150
|
+
this.selectedMainItem = index;
|
|
151
|
+
this.selectedMainMenuItem = item;
|
|
152
|
+
this.secondarySidebarExpanded = true;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
updateMenuItems() {
|
|
157
|
+
this.cachedMenuItems = this.isHostMode ? this.hostMenuItems() : this.menuService.menuItems();
|
|
158
|
+
}
|
|
159
|
+
getMenuItems() {
|
|
160
|
+
return this.cachedMenuItems;
|
|
161
|
+
}
|
|
162
|
+
selectMainItem(index, item) {
|
|
163
|
+
if (item.routerLink && (!item.items || item.items.length === 0)) {
|
|
164
|
+
this.secondarySidebarExpanded = false;
|
|
165
|
+
this.selectedMainItem = index;
|
|
166
|
+
this.selectedMainMenuItem = item;
|
|
167
|
+
this.router.navigate([item.routerLink]);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
// Handle regular menu items with submenu
|
|
171
|
+
if (this.selectedMainItem === index) {
|
|
172
|
+
this.secondarySidebarExpanded = !this.secondarySidebarExpanded;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
this.selectedMainItem = index;
|
|
176
|
+
this.selectedMainMenuItem = item;
|
|
177
|
+
if (item.items && item.items.length > 0) {
|
|
178
|
+
this.secondarySidebarExpanded = true;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
this.secondarySidebarExpanded = false;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// For mobile devices, ensure the menu stays open
|
|
185
|
+
if (this.isMobile()) {
|
|
186
|
+
this.layoutService.state.staticMenuMobileActive = true;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
toggleSecondarySidebar() {
|
|
190
|
+
this.secondarySidebarExpanded = !this.secondarySidebarExpanded;
|
|
191
|
+
}
|
|
192
|
+
isMobile() {
|
|
193
|
+
return this.layoutService.isMobile();
|
|
194
|
+
}
|
|
195
|
+
// Listen for resize events to handle responsive behavior for mobile
|
|
196
|
+
onResize() {
|
|
197
|
+
if (!this.isMobile() && this.layoutService.state.staticMenuMobileActive) {
|
|
198
|
+
this.layoutService.state.staticMenuMobileActive = false;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
updateActiveMenuFromCurrentRoute() {
|
|
202
|
+
const menuItems = this.getMenuItems();
|
|
203
|
+
for (let i = 0; i < menuItems.length; i++) {
|
|
204
|
+
const menuItem = menuItems[i];
|
|
205
|
+
if (this.isActiveRoute(menuItem)) {
|
|
206
|
+
this.selectedMainItem = i;
|
|
207
|
+
this.selectedMainMenuItem = menuItem;
|
|
208
|
+
if (menuItem.items && menuItem.items.length > 0) {
|
|
209
|
+
if (!this.isMobile() && !this.secondarySidebarExpanded && !this.layoutService.state.staticMenuMobileActive) {
|
|
210
|
+
this.secondarySidebarExpanded = true;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
this.secondarySidebarExpanded = false;
|
|
215
|
+
}
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
isHaveSelectedChildItem(item) {
|
|
221
|
+
if (!item || !item.items || item.items.length === 0)
|
|
222
|
+
return false;
|
|
223
|
+
for (const child of item.items) {
|
|
224
|
+
if (this.isActiveRoute(child)) {
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
if (child.items && child.items.length > 0) {
|
|
228
|
+
if (this.isHaveSelectedChildItem(child)) {
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
getLocalText(text) {
|
|
236
|
+
return this.translateJsonPipe.transform(text);
|
|
237
|
+
}
|
|
238
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ExpandableMenuComponent, deps: [{ token: i1.TranslateJsonPipe }, { token: i2.AppMenuService }, { token: i3.Router }, { token: i4.KeycloakService }, { token: i5.TranslocoService }, { token: i6.LayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
239
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ExpandableMenuComponent, isStandalone: true, selector: "app-expandable-menu", host: { listeners: { "window:resize": "onResize()" } }, providers: [TranslateJsonPipe], ngImport: i0, template: "<div class=\"new-layout-sidebar\">\r\n\t<!-- Main sidebar (first level) -->\r\n\t<div class=\"main-sidebar\">\r\n\t\t<div class=\"main-sidebar-header\">\r\n\t\t\t<div class=\"user-avatar\">\r\n\t\t\t\t<span>{{ username }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"main-sidebar-content\">\r\n\t\t\t<ul class=\"main-menu\">\r\n\t\t\t\t@for(item of getMenuItems(); track item; let i = $index){\r\n\t\t\t\t\t@if(!item.separator){\r\n\t\t\t\t\t\t<li\r\n\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(item) || isHaveSelectedChildItem(item)}\"\r\n\t\t\t\t\t\t(click)=\"selectMainItem(i, item)\"\r\n\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(item.label, activeLang(), 'main') ? (item.label && activeLang() ? item.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t<div class=\"main-menu-item\">\r\n\t\t\t\t\t\t\t<i [ngClass]=\"item.icon\" class=\"menu-icon\"></i>\r\n\t\t\t\t\t\t\t<small class=\"menu-label\">{{ item.label && activeLang() ? item.label[activeLang()!] || '' : '' }}</small>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</ul>\r\n\t\t</div>\r\n\t\t<!-- Toggle button at the bottom of main sidebar -->\r\n\t\t<div class=\"main-sidebar-footer\">\r\n\t\t\t<button class=\"sidebar-toggle-button\" (click)=\"toggleSecondarySidebar()\" \r\n\t\t\t\t[pTooltip]=\"!isMobile() ? (secondarySidebarExpanded ? getLocalText(tooltipText.toggleButton.expanded) : getLocalText(tooltipText.toggleButton.collapsed)) : ''\" \r\n\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t<i class=\"pi\" [ngClass]=\"secondarySidebarExpanded ? 'pi-angle-left' : 'pi-angle-right'\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<!-- Secondary sidebar (second level) -->\r\n\t<div class=\"secondary-sidebar\" [ngClass]=\"{'expanded': secondarySidebarExpanded}\">\r\n\t\t<!-- Content container wrapper to prevent jumps during transitions -->\r\n\t\t<div class=\"secondary-content-wrapper\">\r\n\t\t\t<!-- Secondary sidebar header -->\r\n\t\t\t<div class=\"secondary-sidebar-header\">\r\n\t\t\t\t<div class=\"secondary-header-content\">\r\n\t\t\t\t\t@if(selectedMainMenuItem){\r\n\t\t\t\t\t\t<h3 class=\"section-title\">\r\n\t\t\t\t\t\t\t<i [ngClass]=\"selectedMainMenuItem.icon\" class=\"section-icon\"></i>\r\n\t\t\t\t\t\t\t<span>{{ selectedMainMenuItem.label && activeLang() ? selectedMainMenuItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t<button class=\"sidebar-lock-button\" (click)=\"toggleSidebarLock()\" \r\n\t\t\t\t\t\t[pTooltip]=\"sidebarIsLocked ? getLocalText(tooltipText.lockButton.locked) : getLocalText(tooltipText.lockButton.unlocked)\" \r\n\t\t\t\t\t\ttooltipPosition=\"left\">\r\n\t\t\t\t\t\t<i class=\"pi\" [ngClass]=\"sidebarIsLocked ? 'pi-lock' : 'pi-lock-open'\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t\t<!-- Secondary sidebar content -->\r\n\t\t\t<div class=\"secondary-sidebar-content\">\r\n\t\t\t\t@if(selectedMainMenuItem){\r\n\t\t\t\t\t<ul class=\"secondary-menu\">\r\n\t\t\t\t\t\t@for(subItem of selectedMainMenuItem.items; track subItem; let i = $index){\r\n\t\t\t\t\t\t\t\t<!-- Create menu item -->\r\n\t\t\t\t\t\t\t\t<li class=\"secondary-menu-item\" [ngClass]=\"{'active': isActiveRoute(subItem)}\">\r\n\t\t\t\t\t\t\t\t\t<a [routerLink]=\"subItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\tclass=\"secondary-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(subItem.label, activeLang(), 'secondary') ? (subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t<i [ngClass]=\"subItem.icon\" class=\"submenu-icon\"></i>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"submenu-label\">{{ subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t<!-- Always render submenu if it exists -->\r\n\t\t\t\t\t\t\t\t\t @if(subItem.items && subItem.items.length > 0){\r\n\t\t\t\t\t\t\t\t\t\t <ul class=\"tertiary-menu always-open\">\r\n\t\t\t\t\t\t\t\t\t\t\t@for(childItem of subItem.items; track childItem; let i = $index){\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"tertiary-menu-item\" [ngClass]=\"{'active': isActiveRoute(childItem)}\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"childItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"tertiary-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(childItem.label, activeLang(), 'tertiary') ? (childItem.label && activeLang() ? childItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"tertiary-label\">{{ childItem.label && activeLang() ? childItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!-- Always render deeper levels if they exist, also visible by default -->\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t@if(childItem.items && childItem.items.length > 0){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"nested-menu always-open\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t@for(nestedItem of childItem.items; track nestedItem; let i = $index){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-item\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(nestedItem)}\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"nestedItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(nestedItem.label, activeLang(), 'nested') ? (nestedItem.label && activeLang() ? nestedItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"nested-label\">{{ nestedItem.label && activeLang() ? nestedItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t </ul>\r\n\t\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</ul>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t\r\n</div>\r\n", dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] }); }
|
|
240
|
+
}
|
|
241
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ExpandableMenuComponent, decorators: [{
|
|
242
|
+
type: Component,
|
|
243
|
+
args: [{ standalone: true, selector: 'app-expandable-menu', imports: [RouterLink, NgClass, TooltipModule], providers: [TranslateJsonPipe], template: "<div class=\"new-layout-sidebar\">\r\n\t<!-- Main sidebar (first level) -->\r\n\t<div class=\"main-sidebar\">\r\n\t\t<div class=\"main-sidebar-header\">\r\n\t\t\t<div class=\"user-avatar\">\r\n\t\t\t\t<span>{{ username }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"main-sidebar-content\">\r\n\t\t\t<ul class=\"main-menu\">\r\n\t\t\t\t@for(item of getMenuItems(); track item; let i = $index){\r\n\t\t\t\t\t@if(!item.separator){\r\n\t\t\t\t\t\t<li\r\n\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(item) || isHaveSelectedChildItem(item)}\"\r\n\t\t\t\t\t\t(click)=\"selectMainItem(i, item)\"\r\n\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(item.label, activeLang(), 'main') ? (item.label && activeLang() ? item.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t<div class=\"main-menu-item\">\r\n\t\t\t\t\t\t\t<i [ngClass]=\"item.icon\" class=\"menu-icon\"></i>\r\n\t\t\t\t\t\t\t<small class=\"menu-label\">{{ item.label && activeLang() ? item.label[activeLang()!] || '' : '' }}</small>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</ul>\r\n\t\t</div>\r\n\t\t<!-- Toggle button at the bottom of main sidebar -->\r\n\t\t<div class=\"main-sidebar-footer\">\r\n\t\t\t<button class=\"sidebar-toggle-button\" (click)=\"toggleSecondarySidebar()\" \r\n\t\t\t\t[pTooltip]=\"!isMobile() ? (secondarySidebarExpanded ? getLocalText(tooltipText.toggleButton.expanded) : getLocalText(tooltipText.toggleButton.collapsed)) : ''\" \r\n\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t<i class=\"pi\" [ngClass]=\"secondarySidebarExpanded ? 'pi-angle-left' : 'pi-angle-right'\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<!-- Secondary sidebar (second level) -->\r\n\t<div class=\"secondary-sidebar\" [ngClass]=\"{'expanded': secondarySidebarExpanded}\">\r\n\t\t<!-- Content container wrapper to prevent jumps during transitions -->\r\n\t\t<div class=\"secondary-content-wrapper\">\r\n\t\t\t<!-- Secondary sidebar header -->\r\n\t\t\t<div class=\"secondary-sidebar-header\">\r\n\t\t\t\t<div class=\"secondary-header-content\">\r\n\t\t\t\t\t@if(selectedMainMenuItem){\r\n\t\t\t\t\t\t<h3 class=\"section-title\">\r\n\t\t\t\t\t\t\t<i [ngClass]=\"selectedMainMenuItem.icon\" class=\"section-icon\"></i>\r\n\t\t\t\t\t\t\t<span>{{ selectedMainMenuItem.label && activeLang() ? selectedMainMenuItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t<button class=\"sidebar-lock-button\" (click)=\"toggleSidebarLock()\" \r\n\t\t\t\t\t\t[pTooltip]=\"sidebarIsLocked ? getLocalText(tooltipText.lockButton.locked) : getLocalText(tooltipText.lockButton.unlocked)\" \r\n\t\t\t\t\t\ttooltipPosition=\"left\">\r\n\t\t\t\t\t\t<i class=\"pi\" [ngClass]=\"sidebarIsLocked ? 'pi-lock' : 'pi-lock-open'\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t\t<!-- Secondary sidebar content -->\r\n\t\t\t<div class=\"secondary-sidebar-content\">\r\n\t\t\t\t@if(selectedMainMenuItem){\r\n\t\t\t\t\t<ul class=\"secondary-menu\">\r\n\t\t\t\t\t\t@for(subItem of selectedMainMenuItem.items; track subItem; let i = $index){\r\n\t\t\t\t\t\t\t\t<!-- Create menu item -->\r\n\t\t\t\t\t\t\t\t<li class=\"secondary-menu-item\" [ngClass]=\"{'active': isActiveRoute(subItem)}\">\r\n\t\t\t\t\t\t\t\t\t<a [routerLink]=\"subItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\tclass=\"secondary-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(subItem.label, activeLang(), 'secondary') ? (subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t<i [ngClass]=\"subItem.icon\" class=\"submenu-icon\"></i>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"submenu-label\">{{ subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t<!-- Always render submenu if it exists -->\r\n\t\t\t\t\t\t\t\t\t @if(subItem.items && subItem.items.length > 0){\r\n\t\t\t\t\t\t\t\t\t\t <ul class=\"tertiary-menu always-open\">\r\n\t\t\t\t\t\t\t\t\t\t\t@for(childItem of subItem.items; track childItem; let i = $index){\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"tertiary-menu-item\" [ngClass]=\"{'active': isActiveRoute(childItem)}\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"childItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"tertiary-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(childItem.label, activeLang(), 'tertiary') ? (childItem.label && activeLang() ? childItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"tertiary-label\">{{ childItem.label && activeLang() ? childItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!-- Always render deeper levels if they exist, also visible by default -->\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t@if(childItem.items && childItem.items.length > 0){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"nested-menu always-open\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t@for(nestedItem of childItem.items; track nestedItem; let i = $index){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-item\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(nestedItem)}\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"nestedItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(nestedItem.label, activeLang(), 'nested') ? (nestedItem.label && activeLang() ? nestedItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"nested-label\">{{ nestedItem.label && activeLang() ? nestedItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t </ul>\r\n\t\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</ul>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t\r\n</div>\r\n" }]
|
|
244
|
+
}], ctorParameters: () => [{ type: i1.TranslateJsonPipe }, { type: i2.AppMenuService }, { type: i3.Router }, { type: i4.KeycloakService }, { type: i5.TranslocoService }, { type: i6.LayoutService }], propDecorators: { onResize: [{
|
|
245
|
+
type: HostListener,
|
|
246
|
+
args: ['window:resize']
|
|
247
|
+
}] } });
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9leHBhbmRhYmxlTWVudS9leHBhbmRhYmxlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2V4cGFuZGFibGVNZW51L2V4cGFuZGFibGUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFVLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUloRCxPQUFPLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7O0FBWXBELE1BQU0sT0FBTyx1QkFBdUI7SUErQ25DLFlBQ1MsaUJBQW9DLEVBQ3BDLFdBQTJCLEVBQzNCLE1BQWMsRUFDZCxRQUF5QixFQUN6QixnQkFBa0MsRUFDbEMsYUFBNEI7UUFMNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFuRHJD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SSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDO1lBQ2IsQ0FBQztZQUVFLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDekMsT0FBTyxJQUFJLENBQUM7Z0JBQ2IsQ0FBQztZQUNGLENBQUM7UUFDRixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVM7UUFDckIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7OEdBNVFXLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDBIQUZ4QixDQUFDLGlCQUFpQixDQUFDLDBCQ3RCL0IsczBNQWdIQSw0Q0Q1RlcsVUFBVSxvT0FBRSxPQUFPLG1GQUFFLGFBQWE7OzJGQUloQyx1QkFBdUI7a0JBUG5DLFNBQVM7aUNBQ0csSUFBSSxZQUNOLHFCQUFxQixXQUN0QixDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLGFBRWxDLENBQUMsaUJBQWlCLENBQUM7aU9BK045QixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciwgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IEtleWNsb2FrU2VydmljZSB9IGZyb20gJ2tleWNsb2FrLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgUGx1Z2luTWVudUl0ZW0gfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVKc29uUGlwZSB9IGZyb20gJ2FyaWwvdXRpbC9waXBlcyc7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLm1lbnUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXBwLWV4cGFuZGFibGUtbWVudScsXHJcblx0aW1wb3J0czogW1JvdXRlckxpbmssIE5nQ2xhc3MsIFRvb2x0aXBNb2R1bGVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnZXhwYW5kYWJsZS1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuXHRwcm92aWRlcnM6IFtUcmFuc2xhdGVKc29uUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEV4cGFuZGFibGVNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuXHRhY3RpdmVMYW5nID0gdG9TaWduYWwodGhpcy50cmFuc2xvY29TZXJ2aWNlLmxhbmdDaGFuZ2VzJCwgeyBpbml0aWFsVmFsdWU6ICd0cicgfSk7XHJcblx0b3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuXHRyb3V0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cdHVzZXJuYW1lID0gdGhpcy5rZXljbG9hay5nZXRVc2VybmFtZSgpLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpO1xyXG5cdHNpZGViYXJJc0xvY2tlZCA9IGZhbHNlO1xyXG5cclxuICBpc0hvc3RNb2RlID0gKDxhbnk+Z2xvYmFsVGhpcykuaXNIb3N0TW9kZTtcclxuXHRob3N0TWVudUl0ZW1zID0gKDxhbnk+Z2xvYmFsVGhpcykuaG9zdE1lbnVJdGVtcztcclxuXHRjYWNoZWRNZW51SXRlbXM6IFBsdWdpbk1lbnVJdGVtW10gPSBbXTtcclxuXHJcblxyXG5cdC8vIFRyYWNrIHNlbGVjdGVkIG1haW4gbWVudSBpdGVtXHJcblx0c2VsZWN0ZWRNYWluSXRlbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblx0c2VsZWN0ZWRNYWluTWVudUl0ZW06IFBsdWdpbk1lbnVJdGVtIHwgbnVsbCA9IG51bGw7XHJcblx0c2Vjb25kYXJ5U2lkZWJhckV4cGFuZGVkID0gZmFsc2U7XHJcblxyXG5cdHRvb2x0aXBUZXh0ID0ge1xyXG5cdFx0dG9nZ2xlQnV0dG9uOiB7XHJcblx0XHRcdGV4cGFuZGVkOiB7XHJcblx0XHRcdFx0dHI6ICdNZW7DvHnDvCBHaXpsZScsXHJcblx0XHRcdFx0ZW46ICdIaWRlIE1lbnUnXHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbGxhcHNlZDoge1xyXG5cdFx0XHRcdHRyOiAnTWVuw7x5w7wgR8O2c3RlcicsXHJcblx0XHRcdFx0ZW46ICdTaG93IE1lbnUnXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRsb2NrQnV0dG9uOiB7XHJcblx0XHRcdGxvY2tlZDoge1xyXG5cdFx0XHRcdHRyOiAnT3RvbWF0aWsgS2FwYW5tYXnEsSBBw6cnLFxyXG5cdFx0XHRcdGVuOiAnRW5hYmxlIEF1dG8tQ2xvc2UnXHJcblx0XHRcdH0sXHJcblx0XHRcdHVubG9ja2VkOiB7XHJcblx0XHRcdFx0dHI6ICdNZW7DvHnDvCBLaWxpdGxlJyxcclxuXHRcdFx0XHRlbjogJ0xvY2sgTWVudSdcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgTUFYX0xFTkdUSCA9IHtcclxuXHRcdG1haW46IDgsIFxyXG5cdFx0c2Vjb25kYXJ5OiAyMCxcclxuXHRcdHRlcnRpYXJ5OiAyMCBcclxuXHR9O1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgdHJhbnNsYXRlSnNvblBpcGU6IFRyYW5zbGF0ZUpzb25QaXBlLFxyXG5cdFx0cHJpdmF0ZSBtZW51U2VydmljZTogQXBwTWVudVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG5cdFx0cHJpdmF0ZSBrZXljbG9hazogS2V5Y2xvYWtTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHQvLyBDaGVjayBpZiB0ZXh0IGlzIHRydW5jYXRlZCBhbmQgbmVlZHMgdG9vbHRpcFxyXG5cdGlzVGV4dFRydW5jYXRlZChcclxuXHRcdGxhYmVsOiBhbnksXHJcblx0XHRsYW5nOiBzdHJpbmcgfCBudWxsLFxyXG5cdFx0bWVudVR5cGU6ICdtYWluJyB8ICdzZWNvbmRhcnknIHwgJ3RlcnRpYXJ5JyB8ICduZXN0ZWQnID0gJ3NlY29uZGFyeSdcclxuXHQpOiBib29sZWFuIHtcclxuXHRcdGlmICghbGFiZWwgfHwgIWxhbmcgfHwgIWxhYmVsW2xhbmddKSByZXR1cm4gZmFsc2U7XHJcblxyXG5cdFx0Y29uc3QgdGV4dCA9IGxhYmVsW2xhbmddO1xyXG5cdFx0Y29uc3QgdGV4dExlbmd0aCA9IHRleHQubGVuZ3RoO1xyXG5cdFx0Y29uc3QgbWF4TGVuZ3RoID0gbWVudVR5cGUgPT09ICduZXN0ZWQnID8gdGhpcy5NQVhfTEVOR1RILnRlcnRpYXJ5IDogdGhpcy5NQVhfTEVOR1RIW21lbnVUeXBlXTtcclxuXHRcdHJldHVybiB0ZXh0TGVuZ3RoID4gbWF4TGVuZ3RoO1xyXG5cdH1cclxuXHJcblx0Ly8gUmVjdXJzaXZlbHkgY2hlY2sgaWYgYSBtZW51IGl0ZW0gb3IgaXRzIGNoaWxkcmVuIG1hdGNoIHRoZSBjdXJyZW50IHJvdXRlXHJcblx0aXNBY3RpdmVSb3V0ZShtZW51SXRlbTogUGx1Z2luTWVudUl0ZW0pOiBib29sZWFuIHtcclxuXHRcdGlmICghbWVudUl0ZW0gfHwgIW1lbnVJdGVtLnJvdXRlckxpbmspIHJldHVybiBmYWxzZTtcclxuXHJcblx0XHQvLyBHZXQgY3VycmVudCBVUkwgcGF0aCBhZnRlciB0aGUgaGFzaFxyXG5cdFx0Y29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuXHRcdGNvbnN0IGhhc2hVcmwgPSBjdXJyZW50VXJsLmluZGV4T2YoJyMnKSA+IC0xID8gY3VycmVudFVybC5zcGxpdCgnIycpWzFdIDogY3VycmVudFVybDtcclxuXHJcblx0XHQvLyBDaGVjayBmb3IgZXhhY3QgbWF0Y2ggZmlyc3RcclxuXHRcdGlmIChoYXNoVXJsID09PSBtZW51SXRlbS5yb3V0ZXJMaW5rIHx8IGhhc2hVcmwgPT09ICcvJyArIG1lbnVJdGVtLnJvdXRlckxpbmspIHtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQ2hlY2sgaWYgY3VycmVudCBVUkwgc3RhcnRzIHdpdGggdGhlIHJvdXRlckxpbmsgKGhhbmRsZXMgY2hpbGQgcm91dGVzKVxyXG5cdFx0aWYgKFxyXG5cdFx0XHRtZW51SXRlbS5yb3V0ZXJMaW5rICE9PSAnLycgJiZcclxuXHRcdFx0KGhhc2hVcmwuc3RhcnRzV2l0aChtZW51SXRlbS5yb3V0ZXJMaW5rICsgJy8nKSB8fCBoYXNoVXJsLnN0YXJ0c1dpdGgoJy8nICsgbWVudUl0ZW0ucm91dGVyTGluayArICcvJykpXHJcblx0XHQpIHtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQ2hlY2sgY2hpbGQgaXRlbXMgaWYgdGhleSBleGlzdFxyXG5cdFx0aWYgKG1lbnVJdGVtLml0ZW1zICYmIG1lbnVJdGVtLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0cmV0dXJuIG1lbnVJdGVtLml0ZW1zLnNvbWUoKGNoaWxkSXRlbSkgPT4gdGhpcy5pc0FjdGl2ZVJvdXRlKGNoaWxkSXRlbSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cclxuXHRcdHRoaXMudXBkYXRlTWVudUl0ZW1zKCk7XHJcblx0XHR0aGlzLmluaXRpYWxpemVNZW51KCk7XHJcblxyXG5cdFx0dGhpcy5sb2FkU2lkZWJhckxvY2tTdGF0ZSgpO1xyXG5cdFx0dGhpcy51cGRhdGVBY3RpdmVNZW51RnJvbUN1cnJlbnRSb3V0ZSgpO1xyXG5cclxuXHRcdC8vIFN1YnNjcmliZSB0byByb3V0ZSBjaGFuZ2VzIHRvIGhhbmRsZSBzZWNvbmRhcnkgc2lkZWJhciBjbG9zaW5nXHJcblx0XHR0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xyXG5cdFx0XHQucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcclxuXHRcdFx0XHQvLyBVcGRhdGUgYWN0aXZlIG1lbnUgYmFzZWQgb24gdGhlIG5ldyByb3V0ZVxyXG5cdFx0XHRcdHRoaXMudXBkYXRlQWN0aXZlTWVudUZyb21DdXJyZW50Um91dGUoKTtcclxuXHJcblx0XHRcdFx0Ly8gQ2xvc2Ugc2Vjb25kYXJ5IHNpZGViYXIgb24gbmF2aWdhdGlvbiBpZiBub3QgbG9ja2VkXHJcblx0XHRcdFx0aWYgKCF0aGlzLnNpZGViYXJJc0xvY2tlZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5zZWNvbmRhcnlTaWRlYmFyRXhwYW5kZWQgPSBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdC8vIFN1YnNjcmliZSB0byBvdmVybGF5IG1lbnUgb3BlbiBub3RpZmljYXRpb25zXHJcblx0XHR0aGlzLm92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbiA9IHRoaXMubGF5b3V0U2VydmljZS5vdmVybGF5T3BlbiQuc3Vic2NyaWJlKCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlKSB7XHJcblx0XHRcdFx0dGhpcy5zZWNvbmRhcnlTaWRlYmFyRXhwYW5kZWQgPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0aWYgKHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uKSB7XHJcblx0XHRcdHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMucm91dGVyU3Vic2NyaXB0aW9uKSB7XHJcblx0XHRcdHRoaXMucm91dGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRsb2FkU2lkZWJhckxvY2tTdGF0ZSgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHN0b3JlZFN0YXRlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NpZGViYXJJc0xvY2tlZCcpO1xyXG5cdFx0dGhpcy5zaWRlYmFySXNMb2NrZWQgPSBzdG9yZWRTdGF0ZSA9PT0gJ3RydWUnO1xyXG5cdH1cclxuXHJcblx0c2F2ZVNpZGViYXJMb2NrU3RhdGUoKTogdm9pZCB7XHJcblx0XHRsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2lkZWJhcklzTG9ja2VkJywgdGhpcy5zaWRlYmFySXNMb2NrZWQudG9TdHJpbmcoKSk7XHJcblx0fVxyXG5cclxuXHR0b2dnbGVTaWRlYmFyTG9jaygpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2lkZWJhcklzTG9ja2VkID0gIXRoaXMuc2lkZWJhcklzTG9ja2VkO1xyXG5cdFx0dGhpcy5zYXZlU2lkZWJhckxvY2tTdGF0ZSgpO1xyXG5cdH1cclxuXHJcblx0Ly8gSW5pdGlhbGl6ZSB0aGUgbWVudSB3aXRoIHByb3BlciBhY3RpdmUgc3RhdGVcclxuXHRpbml0aWFsaXplTWVudSgpIHtcclxuXHRcdHRoaXMuc2VsZWN0ZWRNYWluSXRlbSA9IG51bGw7XHJcblx0XHR0aGlzLnNlbGVjdGVkTWFpbk1lbnVJdGVtID0gbnVsbDtcclxuXHRcdHRoaXMuc2Vjb25kYXJ5U2lkZWJhckV4cGFuZGVkID0gZmFsc2U7XHJcblx0XHR0aGlzLnVwZGF0ZU1lbnVJdGVtcygpO1xyXG5cdH1cclxuXHJcblx0dXBkYXRlTWVudUZyb21Sb290S2V5KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuXHRcdHRoaXMudXBkYXRlTWVudUl0ZW1zKCk7IFxyXG5cdFx0Y29uc3QgbWVudUl0ZW1zID0gdGhpcy5nZXRNZW51SXRlbXMoKTtcclxuXHJcblx0XHRpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IG1lbnVJdGVtcy5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgaXRlbSA9IG1lbnVJdGVtc1tpbmRleF07XHJcblx0XHRcdGlmICghaXRlbS5zZXBhcmF0b3IpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkTWFpbkl0ZW0gPSBpbmRleDtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkTWFpbk1lbnVJdGVtID0gaXRlbTtcclxuXHRcdFx0XHR0aGlzLnNlY29uZGFyeVNpZGViYXJFeHBhbmRlZCA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHVwZGF0ZU1lbnVJdGVtcygpOiB2b2lkIHtcclxuXHRcdHRoaXMuY2FjaGVkTWVudUl0ZW1zID0gdGhpcy5pc0hvc3RNb2RlID8gdGhpcy5ob3N0TWVudUl0ZW1zKCkgOiB0aGlzLm1lbnVTZXJ2aWNlLm1lbnVJdGVtcygpO1xyXG5cdH1cclxuXHJcblx0Z2V0TWVudUl0ZW1zKCk6IFBsdWdpbk1lbnVJdGVtW10ge1xyXG5cdFx0cmV0dXJuIHRoaXMuY2FjaGVkTWVudUl0ZW1zO1xyXG5cdH1cclxuXHJcblx0c2VsZWN0TWFpbkl0ZW0oaW5kZXg6IG51bWJlciwgaXRlbTogUGx1Z2luTWVudUl0ZW0pOiB2b2lkIHtcclxuXHRcdGlmIChpdGVtLnJvdXRlckxpbmsgJiYgKCFpdGVtLml0ZW1zIHx8IGl0ZW0uaXRlbXMubGVuZ3RoID09PSAwKSkge1xyXG5cdFx0XHR0aGlzLnNlY29uZGFyeVNpZGViYXJFeHBhbmRlZCA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkTWFpbkl0ZW0gPSBpbmRleDtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZE1haW5NZW51SXRlbSA9IGl0ZW07XHJcblx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFtpdGVtLnJvdXRlckxpbmtdKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEhhbmRsZSByZWd1bGFyIG1lbnUgaXRlbXMgd2l0aCBzdWJtZW51XHJcblx0XHRpZiAodGhpcy5zZWxlY3RlZE1haW5JdGVtID09PSBpbmRleCkge1xyXG5cdFx0XHR0aGlzLnNlY29uZGFyeVNpZGViYXJFeHBhbmRlZCA9ICF0aGlzLnNlY29uZGFyeVNpZGViYXJFeHBhbmRlZDtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRNYWluSXRlbSA9IGluZGV4O1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkTWFpbk1lbnVJdGVtID0gaXRlbTtcclxuXHJcbiAgICAgIGlmIChpdGVtLml0ZW1zICYmIGl0ZW0uaXRlbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdHRoaXMuc2Vjb25kYXJ5U2lkZWJhckV4cGFuZGVkID0gdHJ1ZTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnNlY29uZGFyeVNpZGViYXJFeHBhbmRlZCA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gRm9yIG1vYmlsZSBkZXZpY2VzLCBlbnN1cmUgdGhlIG1lbnUgc3RheXMgb3BlblxyXG5cdFx0aWYgKHRoaXMuaXNNb2JpbGUoKSkge1xyXG5cdFx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSA9IHRydWU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0b2dnbGVTZWNvbmRhcnlTaWRlYmFyKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zZWNvbmRhcnlTaWRlYmFyRXhwYW5kZWQgPSAhdGhpcy5zZWNvbmRhcnlTaWRlYmFyRXhwYW5kZWQ7XHJcblx0fVxyXG5cclxuXHRpc01vYmlsZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuaXNNb2JpbGUoKTtcclxuXHR9XHJcblxyXG5cdC8vIExpc3RlbiBmb3IgcmVzaXplIGV2ZW50cyB0byBoYW5kbGUgcmVzcG9uc2l2ZSBiZWhhdmlvciBmb3IgbW9iaWxlXHJcblx0QEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcblx0b25SZXNpemUoKSB7XHJcblx0XHRpZiAoIXRoaXMuaXNNb2JpbGUoKSAmJiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSkge1xyXG5cdFx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSA9IGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dXBkYXRlQWN0aXZlTWVudUZyb21DdXJyZW50Um91dGUoKTogdm9pZCB7XHJcblx0XHRjb25zdCBtZW51SXRlbXMgPSB0aGlzLmdldE1lbnVJdGVtcygpO1xyXG5cclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdGNvbnN0IG1lbnVJdGVtID0gbWVudUl0ZW1zW2ldO1xyXG5cdFx0XHRpZiAodGhpcy5pc0FjdGl2ZVJvdXRlKG1lbnVJdGVtKSkge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRNYWluSXRlbSA9IGk7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZE1haW5NZW51SXRlbSA9IG1lbnVJdGVtO1xyXG5cclxuXHRcdFx0XHRpZiAobWVudUl0ZW0uaXRlbXMgJiYgbWVudUl0ZW0uaXRlbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0aWYgKCF0aGlzLmlzTW9iaWxlKCkgJiYgIXRoaXMuc2Vjb25kYXJ5U2lkZWJhckV4cGFuZGVkICYmICF0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNlY29uZGFyeVNpZGViYXJFeHBhbmRlZCA9IHRydWU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuc2Vjb25kYXJ5U2lkZWJhckV4cGFuZGVkID0gZmFsc2U7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aXNIYXZlU2VsZWN0ZWRDaGlsZEl0ZW0oaXRlbTogUGx1Z2luTWVudUl0ZW0pOiBib29sZWFuIHtcclxuXHRcdGlmICghaXRlbSB8fCAhaXRlbS5pdGVtcyB8fCBpdGVtLml0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuXHRcdGZvciAoY29uc3QgY2hpbGQgb2YgaXRlbS5pdGVtcykge1xyXG5cdFx0XHRpZiAodGhpcy5pc0FjdGl2ZVJvdXRlKGNoaWxkKSkge1xyXG5cdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHR9XHJcblxyXG4gICAgICBpZiAoY2hpbGQuaXRlbXMgJiYgY2hpbGQuaXRlbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGlmICh0aGlzLmlzSGF2ZVNlbGVjdGVkQ2hpbGRJdGVtKGNoaWxkKSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxuXHJcblx0Z2V0TG9jYWxUZXh0KHRleHQ6IGFueSk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy50cmFuc2xhdGVKc29uUGlwZS50cmFuc2Zvcm0odGV4dCk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJuZXctbGF5b3V0LXNpZGViYXJcIj5cclxuXHQ8IS0tIE1haW4gc2lkZWJhciAoZmlyc3QgbGV2ZWwpIC0tPlxyXG5cdDxkaXYgY2xhc3M9XCJtYWluLXNpZGViYXJcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJtYWluLXNpZGViYXItaGVhZGVyXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJ1c2VyLWF2YXRhclwiPlxyXG5cdFx0XHRcdDxzcGFuPnt7IHVzZXJuYW1lIH19PC9zcGFuPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdiBjbGFzcz1cIm1haW4tc2lkZWJhci1jb250ZW50XCI+XHJcblx0XHRcdDx1bCBjbGFzcz1cIm1haW4tbWVudVwiPlxyXG5cdFx0XHRcdEBmb3IoaXRlbSBvZiBnZXRNZW51SXRlbXMoKTsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXgpe1xyXG5cdFx0XHRcdFx0QGlmKCFpdGVtLnNlcGFyYXRvcil7XHJcblx0XHRcdFx0XHRcdDxsaVxyXG5cdFx0XHRcdFx0XHRbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGlzQWN0aXZlUm91dGUoaXRlbSkgfHwgaXNIYXZlU2VsZWN0ZWRDaGlsZEl0ZW0oaXRlbSl9XCJcclxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cInNlbGVjdE1haW5JdGVtKGksIGl0ZW0pXCJcclxuXHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cIiFpc01vYmlsZSgpICYmIGlzVGV4dFRydW5jYXRlZChpdGVtLmxhYmVsLCBhY3RpdmVMYW5nKCksICdtYWluJykgPyAoaXRlbS5sYWJlbCAmJiBhY3RpdmVMYW5nKCkgPyBpdGVtLmxhYmVsW2FjdGl2ZUxhbmcoKSFdIHx8ICcnIDogJycpIDogJydcIlxyXG5cdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJyaWdodFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWFpbi1tZW51LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHQ8aSBbbmdDbGFzc109XCJpdGVtLmljb25cIiBjbGFzcz1cIm1lbnUtaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8c21hbGwgY2xhc3M9XCJtZW51LWxhYmVsXCI+e3sgaXRlbS5sYWJlbCAmJiBhY3RpdmVMYW5nKCkgPyBpdGVtLmxhYmVsW2FjdGl2ZUxhbmcoKSFdIHx8ICcnIDogJycgfX08L3NtYWxsPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbGk+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQ8L3VsPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8IS0tIFRvZ2dsZSBidXR0b24gYXQgdGhlIGJvdHRvbSBvZiBtYWluIHNpZGViYXIgLS0+XHJcblx0XHQ8ZGl2IGNsYXNzPVwibWFpbi1zaWRlYmFyLWZvb3RlclwiPlxyXG5cdFx0XHQ8YnV0dG9uIGNsYXNzPVwic2lkZWJhci10b2dnbGUtYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVNlY29uZGFyeVNpZGViYXIoKVwiIFxyXG5cdFx0XHRcdFtwVG9vbHRpcF09XCIhaXNNb2JpbGUoKSA/IChzZWNvbmRhcnlTaWRlYmFyRXhwYW5kZWQgPyBnZXRMb2NhbFRleHQodG9vbHRpcFRleHQudG9nZ2xlQnV0dG9uLmV4cGFuZGVkKSA6IGdldExvY2FsVGV4dCh0b29sdGlwVGV4dC50b2dnbGVCdXR0b24uY29sbGFwc2VkKSkgOiAnJ1wiIFxyXG5cdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCI+XHJcblx0XHRcdFx0PGkgY2xhc3M9XCJwaVwiIFtuZ0NsYXNzXT1cInNlY29uZGFyeVNpZGViYXJFeHBhbmRlZCA/ICdwaS1hbmdsZS1sZWZ0JyA6ICdwaS1hbmdsZS1yaWdodCdcIj48L2k+XHJcblx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblxyXG5cdDwhLS0gU2Vjb25kYXJ5IHNpZGViYXIgKHNlY29uZCBsZXZlbCkgLS0+XHJcblx0PGRpdiBjbGFzcz1cInNlY29uZGFyeS1zaWRlYmFyXCIgW25nQ2xhc3NdPVwieydleHBhbmRlZCc6IHNlY29uZGFyeVNpZGViYXJFeHBhbmRlZH1cIj5cclxuXHRcdDwhLS0gQ29udGVudCBjb250YWluZXIgd3JhcHBlciB0byBwcmV2ZW50IGp1bXBzIGR1cmluZyB0cmFuc2l0aW9ucyAtLT5cclxuXHRcdDxkaXYgY2xhc3M9XCJzZWNvbmRhcnktY29udGVudC13cmFwcGVyXCI+XHJcblx0XHRcdDwhLS0gU2Vjb25kYXJ5IHNpZGViYXIgaGVhZGVyIC0tPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwic2Vjb25kYXJ5LXNpZGViYXItaGVhZGVyXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cInNlY29uZGFyeS1oZWFkZXItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0QGlmKHNlbGVjdGVkTWFpbk1lbnVJdGVtKXtcclxuXHRcdFx0XHRcdFx0PGgzIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpIFtuZ0NsYXNzXT1cInNlbGVjdGVkTWFpbk1lbnVJdGVtLmljb25cIiBjbGFzcz1cInNlY3Rpb24taWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8c3Bhbj57eyBzZWxlY3RlZE1haW5NZW51SXRlbS5sYWJlbCAmJiBhY3RpdmVMYW5nKCkgPyBzZWxlY3RlZE1haW5NZW51SXRlbS5sYWJlbFthY3RpdmVMYW5nKCkhXSB8fCAnJyA6ICcnIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2gzPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cInNpZGViYXItbG9jay1idXR0b25cIiAoY2xpY2spPVwidG9nZ2xlU2lkZWJhckxvY2soKVwiIFxyXG5cdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwic2lkZWJhcklzTG9ja2VkID8gZ2V0TG9jYWxUZXh0KHRvb2x0aXBUZXh0LmxvY2tCdXR0b24ubG9ja2VkKSA6IGdldExvY2FsVGV4dCh0b29sdGlwVGV4dC5sb2NrQnV0dG9uLnVubG9ja2VkKVwiIFxyXG5cdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJsZWZ0XCI+XHJcblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGlcIiBbbmdDbGFzc109XCJzaWRlYmFySXNMb2NrZWQgPyAncGktbG9jaycgOiAncGktbG9jay1vcGVuJ1wiPjwvaT5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHJcblx0XHRcdDwhLS0gU2Vjb25kYXJ5IHNpZGViYXIgY29udGVudCAtLT5cclxuXHRcdFx0PGRpdiBjbGFzcz1cInNlY29uZGFyeS1zaWRlYmFyLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRAaWYoc2VsZWN0ZWRNYWluTWVudUl0ZW0pe1xyXG5cdFx0XHRcdFx0PHVsIGNsYXNzPVwic2Vjb25kYXJ5LW1lbnVcIj5cclxuXHRcdFx0XHRcdFx0QGZvcihzdWJJdGVtIG9mIHNlbGVjdGVkTWFpbk1lbnVJdGVtLml0ZW1zOyB0cmFjayBzdWJJdGVtOyBsZXQgaSA9ICRpbmRleCl7XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIENyZWF0ZSBtZW51IGl0ZW0gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGkgY2xhc3M9XCJzZWNvbmRhcnktbWVudS1pdGVtXCIgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpc0FjdGl2ZVJvdXRlKHN1Ykl0ZW0pfVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8YSBbcm91dGVyTGlua109XCJzdWJJdGVtLnJvdXRlckxpbmtcIiBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInNlY29uZGFyeS1tZW51LWxpbmtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCIhaXNNb2JpbGUoKSAmJiBpc1RleHRUcnVuY2F0ZWQoc3ViSXRlbS5sYWJlbCwgYWN0aXZlTGFuZygpLCAnc2Vjb25kYXJ5JykgPyAoc3ViSXRlbS5sYWJlbCAmJiBhY3RpdmVMYW5nKCkgPyBzdWJJdGVtLmxhYmVsW2FjdGl2ZUxhbmcoKSFdIHx8ICcnIDogJycpIDogJydcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGkgW25nQ2xhc3NdPVwic3ViSXRlbS5pY29uXCIgY2xhc3M9XCJzdWJtZW51LWljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJzdWJtZW51LWxhYmVsXCI+e3sgc3ViSXRlbS5sYWJlbCAmJiBhY3RpdmVMYW5nKCkgPyBzdWJJdGVtLmxhYmVsW2FjdGl2ZUxhbmcoKSFdIHx8ICcnIDogJycgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvYT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PCEtLSBBbHdheXMgcmVuZGVyIHN1Ym1lbnUgaWYgaXQgZXhpc3RzIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQgQGlmKHN1Ykl0ZW0uaXRlbXMgJiYgc3ViSXRlbS5pdGVtcy5sZW5ndGggPiAwKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQgPHVsIGNsYXNzPVwidGVydGlhcnktbWVudSBhbHdheXMtb3BlblwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0QGZvcihjaGlsZEl0ZW0gb2Ygc3ViSXRlbS5pdGVtczsgdHJhY2sgY2hpbGRJdGVtOyBsZXQgaSA9ICRpbmRleCl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxsaSBjbGFzcz1cInRlcnRpYXJ5LW1lbnUtaXRlbVwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogaXNBY3RpdmVSb3V0ZShjaGlsZEl0ZW0pfVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhIFtyb3V0ZXJMaW5rXT1cImNoaWxkSXRlbS5yb3V0ZXJMaW5rXCIgXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInRlcnRpYXJ5LW1lbnUtbGlua1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiIWlzTW9iaWxlKCkgJiYgaXNUZXh0VHJ1bmNhdGVkKGNoaWxkSXRlbS5sYWJlbCwgYWN0aXZlTGFuZygpLCAndGVydGlhcnknKSA/IChjaGlsZEl0ZW0ubGFiZWwgJiYgYWN0aXZlTGFuZygpID8gY2hpbGRJdGVtLmxhYmVsW2FjdGl2ZUxhbmcoKSFdIHx8ICcnIDogJycpIDogJydcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidGVydGlhcnktbGFiZWxcIj57eyBjaGlsZEl0ZW0ubGFiZWwgJiYgYWN0aXZlTGFuZygpID8gY2hpbGRJdGVtLmxhYmVsW2FjdGl2ZUxhbmcoKSFdIHx8ICcnIDogJycgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9hPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gQWx3YXlzIHJlbmRlciBkZWVwZXIgbGV2ZWxzIGlmIHRoZXkgZXhpc3QsIGFsc28gdmlzaWJsZSBieSBkZWZhdWx0IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdEBpZihjaGlsZEl0ZW0uaXRlbXMgJiYgY2hpbGRJdGVtLml0ZW1zLmxlbmd0aCA+IDApe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHVsIGNsYXNzPVwibmVzdGVkLW1lbnUgYWx3YXlzLW9wZW5cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0QGZvcihuZXN0ZWRJdGVtIG9mIGNoaWxkSXRlbS5pdGVtczsgdHJhY2sgbmVzdGVkSXRlbTsgbGV0IGkgPSAkaW5kZXgpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxsaSBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibmVzdGVkLW1lbnUtaXRlbVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGlzQWN0aXZlUm91dGUobmVzdGVkSXRlbSl9XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YSBbcm91dGVyTGlua109XCJuZXN0ZWRJdGVtLnJvdXRlckxpbmtcIiBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJuZXN0ZWQtbWVudS1saW5rXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cIiFpc01vYmlsZSgpICYmIGlzVGV4dFRydW5jYXRlZChuZXN0ZWRJdGVtLmxhYmVsLCBhY3RpdmVMYW5nKCksICduZXN0ZWQnKSA/IChuZXN0ZWRJdGVtLmxhYmVsICYmIGFjdGl2ZUxhbmcoKSA/IG5lc3RlZEl0ZW0ubGFiZWxbYWN0aXZlTGFuZygpIV0gfHwgJycgOiAnJykgOiAnJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwibmVzdGVkLWxhYmVsXCI+e3sgbmVzdGVkSXRlbS5sYWJlbCAmJiBhY3RpdmVMYW5nKCkgPyBuZXN0ZWRJdGVtLmxhYmVsW2FjdGl2ZUxhbmcoKSFdIHx8ICcnIDogJycgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2E+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9saT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC91bD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvbGk+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0IDwvdWw+XHJcblx0XHRcdFx0XHRcdFx0XHRcdCB9XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2xpPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L3VsPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHRcclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -11,6 +11,7 @@ import { AppProfileSidebarComponent } from '../profileSidebar/app.profilesidebar
|
|
|
11
11
|
import { AppSidebarComponent } from '../sidebar/app.sidebar.component';
|
|
12
12
|
import { AppTopbarComponent } from '../topbar/app.topbar.component';
|
|
13
13
|
import { AppChatbotComponent } from '../chatbot/app.chatbot.component';
|
|
14
|
+
import { ExpandableMenuComponent } from '../expandableMenu/expandable-menu.component';
|
|
14
15
|
import * as i0 from "@angular/core";
|
|
15
16
|
import * as i1 from "../../service/app.menu.service";
|
|
16
17
|
import * as i2 from "../../service/app.layout.service";
|
|
@@ -108,7 +109,10 @@ export class AppLayoutComponent {
|
|
|
108
109
|
'p-input-filled': this.layoutService.config().inputStyle === 'filled',
|
|
109
110
|
'p-ripple-disabled': !this.layoutService.config().ripple,
|
|
110
111
|
'layout-sidebar-active': this.layoutService.state.sidebarActive,
|
|
111
|
-
'layout-sidebar-anchored': this.layoutService.state.anchored
|
|
112
|
+
'layout-sidebar-anchored': this.layoutService.state.anchored,
|
|
113
|
+
// if expandableMenuComponent is present, add the class 'new-sidebar-layout'
|
|
114
|
+
'new-sidebar-layout': this.layoutService.config().menuMode === 'expandable',
|
|
115
|
+
'secondary-expanded': this.expandableMenuComponent?.secondarySidebarExpanded
|
|
112
116
|
};
|
|
113
117
|
}
|
|
114
118
|
ngOnDestroy() {
|
|
@@ -120,7 +124,7 @@ export class AppLayoutComponent {
|
|
|
120
124
|
}
|
|
121
125
|
}
|
|
122
126
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppLayoutComponent, deps: [{ token: i1.AppMenuService }, { token: i2.LayoutService }, { token: i0.Renderer2 }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
123
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppLayoutComponent, isStandalone: true, selector: "app-layout", viewQueries: [{ propertyName: "appSidebar", first: true, predicate: AppSidebarComponent, descendants: true }, { propertyName: "appTopbar", first: true, predicate: AppTopbarComponent, descendants: true }], ngImport: i0, template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\r\n\t<app-sidebar />\r\n\t<div class=\"layout-content-wrapper\">\r\n\t\t<app-topbar />\r\n\t\t<div class=\"layout-content card\">\r\n\t\t\t<router-outlet />\r\n\t\t</div>\r\n\t</div>\r\n\t<app-profilemenu />\r\n\t<!--<app-config></app-config>-->\r\n\t<app-chatbot></app-chatbot>\r\n\t<div class=\"layout-mask\"></div>\r\n</div>\r\n\r\n<p-toast key=\"toast-root\" />\r\n<p-dialog key=\"dialog-root\" />\r\n<p-messages key=\"messages-root\" />\r\n<p-confirmPopup key=\"confirmPopup-root\" />\r\n<p-confirmDialog key=\"confirmDialog-root\" />\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i4.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i5.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i6.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i7.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i8.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type:
|
|
127
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppLayoutComponent, isStandalone: true, selector: "app-layout", viewQueries: [{ propertyName: "appSidebar", first: true, predicate: AppSidebarComponent, descendants: true }, { propertyName: "expandableMenuComponent", first: true, predicate: ExpandableMenuComponent, descendants: true }, { propertyName: "appTopbar", first: true, predicate: AppTopbarComponent, descendants: true }], ngImport: i0, template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\r\n\t\t<app-expandable-menu />\r\n\t\t<!-- <app-sidebar />\t -->\r\n\t\t<div class=\"layout-content-wrapper\">\r\n\t\t<app-topbar />\r\n\t\t<div class=\"layout-content card\">\r\n\t\t\t<router-outlet />\r\n\t\t</div>\r\n\t</div>\r\n\t<app-profilemenu />\r\n\t<!--<app-config></app-config>-->\r\n\t<app-chatbot></app-chatbot>\r\n\t<div class=\"layout-mask\"></div>\r\n</div>\r\n\r\n<p-toast key=\"toast-root\" />\r\n<p-dialog key=\"dialog-root\" />\r\n<p-messages key=\"messages-root\" />\r\n<p-confirmPopup key=\"confirmPopup-root\" />\r\n<p-confirmDialog key=\"confirmDialog-root\" />\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i4.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i5.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i6.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i7.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i8.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: AppTopbarComponent, selector: "app-topbar" }, { kind: "component", type: AppProfileSidebarComponent, selector: "app-profilemenu" }, { kind: "component", type: AppChatbotComponent, selector: "app-chatbot" }, { kind: "component", type: ExpandableMenuComponent, selector: "app-expandable-menu" }] }); }
|
|
124
128
|
}
|
|
125
129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppLayoutComponent, decorators: [{
|
|
126
130
|
type: Component,
|
|
@@ -132,16 +136,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
132
136
|
DialogModule,
|
|
133
137
|
MessagesModule,
|
|
134
138
|
ToastModule,
|
|
135
|
-
AppSidebarComponent,
|
|
136
139
|
AppTopbarComponent,
|
|
137
140
|
AppProfileSidebarComponent,
|
|
138
|
-
AppChatbotComponent
|
|
139
|
-
|
|
141
|
+
AppChatbotComponent,
|
|
142
|
+
AppSidebarComponent,
|
|
143
|
+
ExpandableMenuComponent
|
|
144
|
+
], template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\r\n\t\t<app-expandable-menu />\r\n\t\t<!-- <app-sidebar />\t -->\r\n\t\t<div class=\"layout-content-wrapper\">\r\n\t\t<app-topbar />\r\n\t\t<div class=\"layout-content card\">\r\n\t\t\t<router-outlet />\r\n\t\t</div>\r\n\t</div>\r\n\t<app-profilemenu />\r\n\t<!--<app-config></app-config>-->\r\n\t<app-chatbot></app-chatbot>\r\n\t<div class=\"layout-mask\"></div>\r\n</div>\r\n\r\n<p-toast key=\"toast-root\" />\r\n<p-dialog key=\"dialog-root\" />\r\n<p-messages key=\"messages-root\" />\r\n<p-confirmPopup key=\"confirmPopup-root\" />\r\n<p-confirmDialog key=\"confirmDialog-root\" />\r\n" }]
|
|
140
145
|
}], ctorParameters: () => [{ type: i1.AppMenuService }, { type: i2.LayoutService }, { type: i0.Renderer2 }, { type: i3.Router }], propDecorators: { appSidebar: [{
|
|
141
146
|
type: ViewChild,
|
|
142
147
|
args: [AppSidebarComponent]
|
|
148
|
+
}], expandableMenuComponent: [{
|
|
149
|
+
type: ViewChild,
|
|
150
|
+
args: [ExpandableMenuComponent]
|
|
143
151
|
}], appTopbar: [{
|
|
144
152
|
type: ViewChild,
|
|
145
153
|
args: [AppTopbarComponent]
|
|
146
154
|
}] } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbGF5b3V0L2FwcC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2xheW91dC9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUF3QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFnQixNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJNUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7QUFvQnZFLE1BQU0sT0FBTyxrQkFBa0I7SUFhOUIsWUFDUyxXQUEyQixF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SUFBSSxZQUNOLFlBQVksV0FDYjt3QkFDUixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLG1CQUFtQjtxQkFDbkI7NEpBWStCLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUVDLFNBQVM7c0JBQXZDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlck91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtZGlhbG9nJztcclxuaW1wb3J0IHsgQ29uZmlybVBvcHVwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtcG9wdXAnO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1lc3NhZ2VzTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9tZXNzYWdlcyc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLmxheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5tZW51LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBQcm9maWxlU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4uL3Byb2ZpbGVTaWRlYmFyL2FwcC5wcm9maWxlc2lkZWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2lkZWJhci9hcHAuc2lkZWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBUb3BiYXJDb21wb25lbnQgfSBmcm9tICcuLi90b3BiYXIvYXBwLnRvcGJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBDaGF0Ym90Q29tcG9uZW50IH0gZnJvbSAnLi4vY2hhdGJvdC9hcHAuY2hhdGJvdC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FwcC1sYXlvdXQnLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdE5nQ2xhc3MsXHJcblx0XHRSb3V0ZXJPdXRsZXQsXHJcblx0XHRDb25maXJtRGlhbG9nTW9kdWxlLFxyXG5cdFx0Q29uZmlybVBvcHVwTW9kdWxlLFxyXG5cdFx0RGlhbG9nTW9kdWxlLFxyXG5cdFx0TWVzc2FnZXNNb2R1bGUsXHJcblx0XHRUb2FzdE1vZHVsZSxcclxuXHRcdEFwcFNpZGViYXJDb21wb25lbnQsXHJcblx0XHRBcHBUb3BiYXJDb21wb25lbnQsXHJcblx0XHRBcHBQcm9maWxlU2lkZWJhckNvbXBvbmVudCxcclxuXHRcdEFwcENoYXRib3RDb21wb25lbnRcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHRvdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcblx0bWVudU91dHNpZGVDbGlja0xpc3RlbmVyOiBhbnk7XHJcblxyXG5cdG1lbnVTY3JvbGxMaXN0ZW5lcjogYW55O1xyXG5cclxuXHRnbG9iYWxUaGlzOiBhbnkgPSBnbG9iYWxUaGlzO1xyXG5cclxuXHRAVmlld0NoaWxkKEFwcFNpZGViYXJDb21wb25lbnQpIGFwcFNpZGViYXIhOiBBcHBTaWRlYmFyQ29tcG9uZW50O1xyXG5cclxuXHRAVmlld0NoaWxkKEFwcFRvcGJhckNvbXBvbmVudCkgYXBwVG9wYmFyITogQXBwVG9wYmFyQ29tcG9uZW50O1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWVudVNlcnZpY2U6IEFwcE1lbnVTZXJ2aWNlLFxyXG5cdFx0cHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcblx0XHRwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHRcdHB1YmxpYyByb3V0ZXI6IFJvdXRlclxyXG5cdCkge1xyXG5cdFx0dGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24gPSB0aGlzLmxheW91dFNlcnZpY2Uub3ZlcmxheU9wZW4kLnN1YnNjcmliZSgoKSA9PiB7XHJcblx0XHRcdGlmICghdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcclxuXHRcdFx0XHR0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsIChldmVudCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgaXNPdXRzaWRlQ2xpY2tlZCA9ICEoXHJcblx0XHRcdFx0XHRcdHRoaXMuYXBwU2lkZWJhci5lbC5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoZXZlbnQudGFyZ2V0KSB8fFxyXG5cdFx0XHRcdFx0XHR0aGlzLmFwcFNpZGViYXIuZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpIHx8XHJcblx0XHRcdFx0XHRcdHRoaXMuYXBwVG9wYmFyLm1lbnVCdXR0b24ubmF0aXZlRWxlbWVudC5pc1NhbWVOb2RlKGV2ZW50LnRhcmdldCkgfHxcclxuXHRcdFx0XHRcdFx0dGhpcy5hcHBUb3BiYXIubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRpZiAoaXNPdXRzaWRlQ2xpY2tlZCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmhpZGVNZW51KCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHQodGhpcy5sYXlvdXRTZXJ2aWNlLmlzSG9yaXpvbnRhbCgpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSAmJlxyXG5cdFx0XHRcdCF0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lclxyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHR0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxyXG5cdFx0XHRcdFx0dGhpcy5hcHBTaWRlYmFyLm1lbnVDb250YWluZXIubmF0aXZlRWxlbWVudCxcclxuXHRcdFx0XHRcdCdzY3JvbGwnLFxyXG5cdFx0XHRcdFx0KGV2ZW50KSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLmxheW91dFNlcnZpY2UuaXNEZXNrdG9wKCkpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhpZGVNZW51KCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUpIHtcclxuXHRcdFx0XHR0aGlzLmJsb2NrQm9keVNjcm9sbCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRpZiAoIXRoaXMubGF5b3V0U2VydmljZS5tZmVBcHBJdGVtQ2xpY2tlZCgpKSB0aGlzLmhpZGVNZW51KCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGJsb2NrQm9keVNjcm9sbCgpOiB2b2lkIHtcclxuXHRcdGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCkge1xyXG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2Jsb2NrZWQtc2Nyb2xsJyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSArPSAnIGJsb2NrZWQtc2Nyb2xsJztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHVuYmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xyXG5cdFx0aWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnYmxvY2tlZC1zY3JvbGwnKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lID0gZG9jdW1lbnQuYm9keS5jbGFzc05hbWUucmVwbGFjZShcclxuXHRcdFx0XHRuZXcgUmVnRXhwKCcoXnxcXFxcYiknICsgJ2Jsb2NrZWQtc2Nyb2xsJy5zcGxpdCgnICcpLmpvaW4oJ3wnKSArICcoXFxcXGJ8JCknLCAnZ2knKSxcclxuXHRcdFx0XHQnICdcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGhpZGVNZW51KCkge1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm92ZXJsYXlNZW51QWN0aXZlID0gZmFsc2U7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSA9IGZhbHNlO1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm1lbnVIb3ZlckFjdGl2ZSA9IGZhbHNlO1xyXG5cdFx0dGhpcy5tZW51U2VydmljZS5yZXNldCgpO1xyXG5cclxuXHRcdGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xyXG5cdFx0XHR0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xyXG5cdFx0XHR0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lciA9IG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMubWVudVNjcm9sbExpc3RlbmVyKSB7XHJcblx0XHRcdHRoaXMubWVudVNjcm9sbExpc3RlbmVyKCk7XHJcblx0XHRcdHRoaXMubWVudVNjcm9sbExpc3RlbmVyID0gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnVuYmxvY2tCb2R5U2Nyb2xsKCk7XHJcblx0fVxyXG5cclxuXHRnZXQgY29udGFpbmVyQ2xhc3MoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHQnbGF5b3V0LWxpZ2h0JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lID09PSAnbGlnaHQnLFxyXG5cdFx0XHQnbGF5b3V0LWRpbSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5jb2xvclNjaGVtZSA9PT0gJ2RpbScsXHJcblx0XHRcdCdsYXlvdXQtZGFyayc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5jb2xvclNjaGVtZSA9PT0gJ2RhcmsnLFxyXG5cdFx0XHQnbGF5b3V0LWNvbG9yc2NoZW1lLW1lbnUnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudVRoZW1lID09PSAnY29sb3JTY2hlbWUnLFxyXG5cdFx0XHQnbGF5b3V0LXByaW1hcnljb2xvci1tZW51JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVUaGVtZSA9PT0gJ3ByaW1hcnlDb2xvcicsXHJcblx0XHRcdCdsYXlvdXQtdHJhbnNwYXJlbnQtbWVudSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51VGhlbWUgPT09ICd0cmFuc3BhcmVudCcsXHJcblx0XHRcdCdsYXlvdXQtb3ZlcmxheSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ292ZXJsYXknLFxyXG5cdFx0XHQnbGF5b3V0LXN0YXRpYyc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3N0YXRpYycsXHJcblx0XHRcdCdsYXlvdXQtc2xpbSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3NsaW0nLFxyXG5cdFx0XHQnbGF5b3V0LXNsaW0tcGx1cyc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3NsaW0tcGx1cycsXHJcblx0XHRcdCdsYXlvdXQtaG9yaXpvbnRhbCc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ2hvcml6b250YWwnLFxyXG5cdFx0XHQnbGF5b3V0LXJldmVhbCc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3JldmVhbCcsXHJcblx0XHRcdCdsYXlvdXQtZHJhd2VyJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnZHJhd2VyJyxcclxuXHRcdFx0J2xheW91dC1zdGF0aWMtaW5hY3RpdmUnOlxyXG5cdFx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlICYmIHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3N0YXRpYycsXHJcblx0XHRcdCdsYXlvdXQtb3ZlcmxheS1hY3RpdmUnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUub3ZlcmxheU1lbnVBY3RpdmUsXHJcblx0XHRcdCdsYXlvdXQtbW9iaWxlLWFjdGl2ZSc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlLFxyXG5cdFx0XHQncC1pbnB1dC1maWxsZWQnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuaW5wdXRTdHlsZSA9PT0gJ2ZpbGxlZCcsXHJcblx0XHRcdCdwLXJpcHBsZS1kaXNhYmxlZCc6ICF0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkucmlwcGxlLFxyXG5cdFx0XHQnbGF5b3V0LXNpZGViYXItYWN0aXZlJzogdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnNpZGViYXJBY3RpdmUsXHJcblx0XHRcdCdsYXlvdXQtc2lkZWJhci1hbmNob3JlZCc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5hbmNob3JlZFxyXG5cdFx0fTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0aWYgKHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uKSB7XHJcblx0XHRcdHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XHJcblx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIj5cclxuXHQ8YXBwLXNpZGViYXIgLz5cclxuXHQ8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRlbnQtd3JhcHBlclwiPlxyXG5cdFx0PGFwcC10b3BiYXIgLz5cclxuXHRcdDxkaXYgY2xhc3M9XCJsYXlvdXQtY29udGVudCBjYXJkXCI+XHJcblx0XHRcdDxyb3V0ZXItb3V0bGV0IC8+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8YXBwLXByb2ZpbGVtZW51IC8+XHJcblx0PCEtLTxhcHAtY29uZmlnPjwvYXBwLWNvbmZpZz4tLT5cclxuXHQ8YXBwLWNoYXRib3Q+PC9hcHAtY2hhdGJvdD5cclxuXHQ8ZGl2IGNsYXNzPVwibGF5b3V0LW1hc2tcIj48L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48cC10b2FzdCBrZXk9XCJ0b2FzdC1yb290XCIgLz5cclxuPHAtZGlhbG9nIGtleT1cImRpYWxvZy1yb290XCIgLz5cclxuPHAtbWVzc2FnZXMga2V5PVwibWVzc2FnZXMtcm9vdFwiIC8+XHJcbjxwLWNvbmZpcm1Qb3B1cCBrZXk9XCJjb25maXJtUG9wdXAtcm9vdFwiIC8+XHJcbjxwLWNvbmZpcm1EaWFsb2cga2V5PVwiY29uZmlybURpYWxvZy1yb290XCIgLz5cclxuIl19
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbGF5b3V0L2FwcC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2xheW91dC9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUF3QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFnQixNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJNUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7Ozs7QUFxQnRGLE1BQU0sT0FBTyxrQkFBa0I7SUFlOUIsWUFDUyxXQUEyQixFQUM1QixhQUE0QixFQUM1QixRQUFtQixFQUNuQixNQUFjO1FBSGIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVp0QixlQUFVLEdBQVEsVUFBVSxDQUFDO1FBYzVCLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pGLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDbkYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQzt3QkFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO3dCQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7d0JBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUM5RCxDQUFDO29CQUNGLElBQUksZ0JBQWdCLEVBQUUsQ0FBQzt3QkFDdEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNqQixDQUFDO2dCQUNGLENBQUMsQ0FBQyxDQUFDO1lBQ0osQ0FBQztZQUVELElBQ0MsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDckcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQzNDLFFBQVEsRUFDUixDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNULElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO3dCQUNwQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2pCLENBQUM7Z0JBQ0YsQ0FBQyxDQUNELENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6RixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRTtnQkFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQyxDQUFDO2FBQU0sQ0FBQztZQUNQLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLGlCQUFpQixDQUFDO1FBQzlDLENBQUM7SUFDRixDQUFDO0lBRUQsaUJBQWlCO1FBQ2hCLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxDQUFDO2FBQU0sQ0FBQztZQUNQLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDeEQsSUFBSSxNQUFNLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUMvRSxHQUFHLENBQ0gsQ0FBQztRQUNILENBQUM7SUFDRixDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXpCLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2pCLE9BQU87WUFDTixjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEtBQUssT0FBTztZQUNuRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEtBQUssS0FBSztZQUMvRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEtBQUssTUFBTTtZQUNqRSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsS0FBSyxhQUFhO1lBQ2xGLDBCQUEwQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxLQUFLLGNBQWM7WUFDcEYseUJBQXlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLEtBQUssYUFBYTtZQUNsRixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsS0FBSyxTQUFTO1lBQ3BFLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsS0FBSyxRQUFRO1lBQ2xFLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsS0FBSyxNQUFNO1lBQzlELGtCQUFrQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxLQUFLLFdBQVc7WUFDeEUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEtBQUssWUFBWTtZQUMxRSxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEtBQUssUUFBUTtZQUNsRSxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEtBQUssUUFBUTtZQUNsRSx3QkFBd0IsRUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEtBQUssUUFBUTtZQUN4Ryx1QkFBdUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7WUFDbkUsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsc0JBQXNCO1lBQ3ZFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxLQUFLLFFBQVE7WUFDckUsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU07WUFDeEQsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYTtZQUMvRCx5QkFBeUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQzVELDRFQUE0RTtZQUM1RSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsS0FBSyxZQUFZO1lBQzNFLG9CQUFvQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSx3QkFBd0I7U0FDNUUsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNGLENBQUM7OEdBeElXLGtCQUFrQjtrR0FBbEIsa0JBQWtCLGtIQVNuQixtQkFBbUIsMEZBRW5CLHVCQUF1Qiw0RUFFdkIsa0JBQWtCLGdEQ3BEOUIsNm9CQW9CQSw0Q0RJRSxPQUFPLG9GQUNQLFlBQVksMEpBQ1osbUJBQW1CLG9tQkFDbkIsa0JBQWtCLHlQQUNsQixZQUFZLHV1QkFDWixjQUFjLDJSQUNkLFdBQVcsd1dBQ1gsa0JBQWtCLHVEQUNsQiwwQkFBMEIsNERBQzFCLG1CQUFtQix3REFFbkIsdUJBQXVCOzsyRkFJWixrQkFBa0I7a0JBbkI5QixTQUFTO2lDQUNHLElBQUksWUFDTixZQUFZLFdBQ2I7d0JBQ1IsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLHVCQUF1QjtxQkFDdkI7NEpBWStCLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUVNLHVCQUF1QjtzQkFBMUQsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBRUgsU0FBUztzQkFBdkMsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciwgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb25maXJtUG9wdXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1wb3B1cCc7XHJcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcclxuaW1wb3J0IHsgTWVzc2FnZXNNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lc3NhZ2VzJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLm1lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFByb2ZpbGVTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZmlsZVNpZGViYXIvYXBwLnByb2ZpbGVzaWRlYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcFNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9zaWRlYmFyL2FwcC5zaWRlYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcFRvcGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3RvcGJhci9hcHAudG9wYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcENoYXRib3RDb21wb25lbnQgfSBmcm9tICcuLi9jaGF0Ym90L2FwcC5jaGF0Ym90LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV4cGFuZGFibGVNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vZXhwYW5kYWJsZU1lbnUvZXhwYW5kYWJsZS1tZW51LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXBwLWxheW91dCcsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0TmdDbGFzcyxcclxuXHRcdFJvdXRlck91dGxldCxcclxuXHRcdENvbmZpcm1EaWFsb2dNb2R1bGUsXHJcblx0XHRDb25maXJtUG9wdXBNb2R1bGUsXHJcblx0XHREaWFsb2dNb2R1bGUsXHJcblx0XHRNZXNzYWdlc01vZHVsZSxcclxuXHRcdFRvYXN0TW9kdWxlLFxyXG5cdFx0QXBwVG9wYmFyQ29tcG9uZW50LFxyXG5cdFx0QXBwUHJvZmlsZVNpZGViYXJDb21wb25lbnQsXHJcblx0XHRBcHBDaGF0Ym90Q29tcG9uZW50LFxyXG5cdFx0QXBwU2lkZWJhckNvbXBvbmVudCxcclxuXHRcdEV4cGFuZGFibGVNZW51Q29tcG9uZW50XHJcblx0XSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vYXBwLmxheW91dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblx0b3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG5cdG1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcjogYW55O1xyXG5cclxuXHRtZW51U2Nyb2xsTGlzdGVuZXI6IGFueTtcclxuXHJcblx0Z2xvYmFsVGhpczogYW55ID0gZ2xvYmFsVGhpcztcclxuXHJcblx0QFZpZXdDaGlsZChBcHBTaWRlYmFyQ29tcG9uZW50KSBhcHBTaWRlYmFyITogQXBwU2lkZWJhckNvbXBvbmVudDtcclxuXHJcblx0QFZpZXdDaGlsZChFeHBhbmRhYmxlTWVudUNvbXBvbmVudCkgZXhwYW5kYWJsZU1lbnVDb21wb25lbnQhOiBFeHBhbmRhYmxlTWVudUNvbXBvbmVudDtcclxuXHJcblx0QFZpZXdDaGlsZChBcHBUb3BiYXJDb21wb25lbnQpIGFwcFRvcGJhciE6IEFwcFRvcGJhckNvbXBvbmVudDtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG1lbnVTZXJ2aWNlOiBBcHBNZW51U2VydmljZSxcclxuXHRcdHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG5cdFx0cHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcblx0XHRwdWJsaWMgcm91dGVyOiBSb3V0ZXJcclxuXHQpIHtcclxuXHRcdHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uID0gdGhpcy5sYXlvdXRTZXJ2aWNlLm92ZXJsYXlPcGVuJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRpZiAoIXRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XHJcblx0XHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoZXZlbnQpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IGlzT3V0c2lkZUNsaWNrZWQgPSAhKFxyXG5cdFx0XHRcdFx0XHR0aGlzLmFwcFNpZGViYXIuZWwubmF0aXZlRWxlbWVudC5pc1NhbWVOb2RlKGV2ZW50LnRhcmdldCkgfHxcclxuXHRcdFx0XHRcdFx0dGhpcy5hcHBTaWRlYmFyLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSB8fFxyXG5cdFx0XHRcdFx0XHR0aGlzLmFwcFRvcGJhci5tZW51QnV0dG9uLm5hdGl2ZUVsZW1lbnQuaXNTYW1lTm9kZShldmVudC50YXJnZXQpIHx8XHJcblx0XHRcdFx0XHRcdHRoaXMuYXBwVG9wYmFyLm1lbnVCdXR0b24ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0aWYgKGlzT3V0c2lkZUNsaWNrZWQpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5oaWRlTWVudSgpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0KHRoaXMubGF5b3V0U2VydmljZS5pc0hvcml6b250YWwoKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKSkgJiZcclxuXHRcdFx0XHQhdGhpcy5tZW51U2Nyb2xsTGlzdGVuZXJcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0dGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcclxuXHRcdFx0XHRcdHRoaXMuYXBwU2lkZWJhci5tZW51Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXHJcblx0XHRcdFx0XHQnc2Nyb2xsJyxcclxuXHRcdFx0XHRcdChldmVudCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLmlzRGVza3RvcCgpKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5oaWRlTWVudSgpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlKSB7XHJcblx0XHRcdFx0dGhpcy5ibG9ja0JvZHlTY3JvbGwoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuXHRcdFx0aWYgKCF0aGlzLmxheW91dFNlcnZpY2UubWZlQXBwSXRlbUNsaWNrZWQoKSkgdGhpcy5oaWRlTWVudSgpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRibG9ja0JvZHlTY3JvbGwoKTogdm9pZCB7XHJcblx0XHRpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QpIHtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdibG9ja2VkLXNjcm9sbCcpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgKz0gJyBibG9ja2VkLXNjcm9sbCc7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR1bmJsb2NrQm9keVNjcm9sbCgpOiB2b2lkIHtcclxuXHRcdGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCkge1xyXG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2Jsb2NrZWQtc2Nyb2xsJyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSA9IGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lLnJlcGxhY2UoXHJcblx0XHRcdFx0bmV3IFJlZ0V4cCgnKF58XFxcXGIpJyArICdibG9ja2VkLXNjcm9sbCcuc3BsaXQoJyAnKS5qb2luKCd8JykgKyAnKFxcXFxifCQpJywgJ2dpJyksXHJcblx0XHRcdFx0JyAnXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRoaWRlTWVudSgpIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5vdmVybGF5TWVudUFjdGl2ZSA9IGZhbHNlO1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUgPSBmYWxzZTtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5tZW51SG92ZXJBY3RpdmUgPSBmYWxzZTtcclxuXHRcdHRoaXMubWVudVNlcnZpY2UucmVzZXQoKTtcclxuXHJcblx0XHRpZiAodGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcclxuXHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcclxuXHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lcikge1xyXG5cdFx0XHR0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lcigpO1xyXG5cdFx0XHR0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lciA9IG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy51bmJsb2NrQm9keVNjcm9sbCgpO1xyXG5cdH1cclxuXHJcblx0Z2V0IGNvbnRhaW5lckNsYXNzKCkge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0J2xheW91dC1saWdodCc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5jb2xvclNjaGVtZSA9PT0gJ2xpZ2h0JyxcclxuXHRcdFx0J2xheW91dC1kaW0nOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuY29sb3JTY2hlbWUgPT09ICdkaW0nLFxyXG5cdFx0XHQnbGF5b3V0LWRhcmsnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuY29sb3JTY2hlbWUgPT09ICdkYXJrJyxcclxuXHRcdFx0J2xheW91dC1jb2xvcnNjaGVtZS1tZW51JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVUaGVtZSA9PT0gJ2NvbG9yU2NoZW1lJyxcclxuXHRcdFx0J2xheW91dC1wcmltYXJ5Y29sb3ItbWVudSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51VGhlbWUgPT09ICdwcmltYXJ5Q29sb3InLFxyXG5cdFx0XHQnbGF5b3V0LXRyYW5zcGFyZW50LW1lbnUnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudVRoZW1lID09PSAndHJhbnNwYXJlbnQnLFxyXG5cdFx0XHQnbGF5b3V0LW92ZXJsYXknOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdvdmVybGF5JyxcclxuXHRcdFx0J2xheW91dC1zdGF0aWMnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdzdGF0aWMnLFxyXG5cdFx0XHQnbGF5b3V0LXNsaW0nOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdzbGltJyxcclxuXHRcdFx0J2xheW91dC1zbGltLXBsdXMnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdzbGltLXBsdXMnLFxyXG5cdFx0XHQnbGF5b3V0LWhvcml6b250YWwnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdob3Jpem9udGFsJyxcclxuXHRcdFx0J2xheW91dC1yZXZlYWwnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdyZXZlYWwnLFxyXG5cdFx0XHQnbGF5b3V0LWRyYXdlcic6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ2RyYXdlcicsXHJcblx0XHRcdCdsYXlvdXQtc3RhdGljLWluYWN0aXZlJzpcclxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSAmJiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdzdGF0aWMnLFxyXG5cdFx0XHQnbGF5b3V0LW92ZXJsYXktYWN0aXZlJzogdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm92ZXJsYXlNZW51QWN0aXZlLFxyXG5cdFx0XHQnbGF5b3V0LW1vYmlsZS1hY3RpdmUnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSxcclxuXHRcdFx0J3AtaW5wdXQtZmlsbGVkJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmlucHV0U3R5bGUgPT09ICdmaWxsZWQnLFxyXG5cdFx0XHQncC1yaXBwbGUtZGlzYWJsZWQnOiAhdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLnJpcHBsZSxcclxuXHRcdFx0J2xheW91dC1zaWRlYmFyLWFjdGl2ZSc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zaWRlYmFyQWN0aXZlLFxyXG5cdFx0XHQnbGF5b3V0LXNpZGViYXItYW5jaG9yZWQnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuYW5jaG9yZWQsXHJcblx0XHRcdC8vIGlmIGV4cGFuZGFibGVNZW51Q29tcG9uZW50IGlzIHByZXNlbnQsIGFkZCB0aGUgY2xhc3MgJ25ldy1zaWRlYmFyLWxheW91dCdcclxuXHRcdFx0J25ldy1zaWRlYmFyLWxheW91dCc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ2V4cGFuZGFibGUnLFxyXG5cdFx0XHQnc2Vjb25kYXJ5LWV4cGFuZGVkJzogdGhpcy5leHBhbmRhYmxlTWVudUNvbXBvbmVudD8uc2Vjb25kYXJ5U2lkZWJhckV4cGFuZGVkXHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHRpZiAodGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24pIHtcclxuXHRcdFx0dGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcclxuXHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb250YWluZXJcIiBbbmdDbGFzc109XCJjb250YWluZXJDbGFzc1wiPlxyXG5cdFx0PGFwcC1leHBhbmRhYmxlLW1lbnUgLz5cclxuXHRcdDwhLS0gPGFwcC1zaWRlYmFyIC8+XHQgLS0+XHJcblx0XHQ8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRlbnQtd3JhcHBlclwiPlxyXG5cdFx0PGFwcC10b3BiYXIgLz5cclxuXHRcdDxkaXYgY2xhc3M9XCJsYXlvdXQtY29udGVudCBjYXJkXCI+XHJcblx0XHRcdDxyb3V0ZXItb3V0bGV0IC8+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8YXBwLXByb2ZpbGVtZW51IC8+XHJcblx0PCEtLTxhcHAtY29uZmlnPjwvYXBwLWNvbmZpZz4tLT5cclxuXHQ8YXBwLWNoYXRib3Q+PC9hcHAtY2hhdGJvdD5cclxuXHQ8ZGl2IGNsYXNzPVwibGF5b3V0LW1hc2tcIj48L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48cC10b2FzdCBrZXk9XCJ0b2FzdC1yb290XCIgLz5cclxuPHAtZGlhbG9nIGtleT1cImRpYWxvZy1yb290XCIgLz5cclxuPHAtbWVzc2FnZXMga2V5PVwibWVzc2FnZXMtcm9vdFwiIC8+XHJcbjxwLWNvbmZpcm1Qb3B1cCBrZXk9XCJjb25maXJtUG9wdXAtcm9vdFwiIC8+XHJcbjxwLWNvbmZpcm1EaWFsb2cga2V5PVwiY29uZmlybURpYWxvZy1yb290XCIgLz5cclxuIl19
|
|
@@ -3,10 +3,15 @@ import { Subject } from 'rxjs';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class LayoutService {
|
|
5
5
|
constructor() {
|
|
6
|
+
/**
|
|
7
|
+
* @description
|
|
8
|
+
* Eğer menuMode expandable ise app.layout.component.html içindeki <app-sidebar />
|
|
9
|
+
* yerine <app-expandable-menu /> aktif edilmeli
|
|
10
|
+
*/
|
|
6
11
|
this._config = {
|
|
7
12
|
ripple: false,
|
|
8
13
|
inputStyle: 'outlined',
|
|
9
|
-
menuMode: '
|
|
14
|
+
menuMode: 'expandable',
|
|
10
15
|
colorScheme: 'light',
|
|
11
16
|
theme: 'indigo',
|
|
12
17
|
scale: 12,
|
|
@@ -125,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
125
130
|
providedIn: 'root'
|
|
126
131
|
}]
|
|
127
132
|
}], ctorParameters: () => [] });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBZ0MvQixNQUFNLE9BQU8sYUFBYTtJQW1DekI7UUFsQ0EsWUFBTyxHQUFjO1lBQ3BCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLFdBQVc7WUFDckIsV0FBVyxFQUFFLE9BQU87WUFDcEIsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSxhQUFhO1NBQ3hCLENBQUM7UUFFRix3QkFBd0I7UUFDeEIsV0FBTSxHQUFHLE1BQU0sQ0FBWSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekMsVUFBSyxHQUFnQjtZQUNwQix5QkFBeUIsRUFBRSxLQUFLO1lBQ2hDLGlCQUFpQixFQUFFLEtBQUs7WUFDeEIscUJBQXFCLEVBQUUsS0FBSztZQUM1QixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLHNCQUFzQixFQUFFLEtBQUs7WUFDN0IsZUFBZSxFQUFFLEtBQUs7WUFDdEIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsUUFBUSxFQUFFLEtBQUs7U0FDZixDQUFDO1FBRU0saUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBYSxDQUFDO1FBRXhDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUV6QyxrQkFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFakQsaUJBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFD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LEdBQUcsUUFBUSxDQUFDLENBQUM7UUFFbkQsU0FBUyxDQUFDLFVBQVcsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVFLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDOUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDeEIsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDeEQsQ0FBQzs4R0FoSlcsYUFBYTtrSEFBYixhQUFhLGNBRmIsTUFBTTs7MkZBRU4sYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IHR5cGUgTWVudU1vZGUgPSAnc3RhdGljJyB8ICdvdmVybGF5JyB8ICdob3Jpem9udGFsJyB8ICdzbGltJyB8ICdzbGltLXBsdXMnIHwgJ3JldmVhbCcgfCAnZHJhd2VyJztcclxuXHJcbmV4cG9ydCB0eXBlIENvbG9yU2NoZW1lID0gJ2xpZ2h0JyB8ICdkYXJrJyB8ICdkaW0nO1xyXG5cclxuZXhwb3J0IHR5cGUgTWVudUNvbG9yU2NoZW1lID0gJ2NvbG9yU2NoZW1lJyB8ICdwcmltYXJ5Q29sb3InIHwgJ3RyYW5zcGFyZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBwQ29uZmlnIHtcclxuXHRpbnB1dFN0eWxlOiBzdHJpbmc7XHJcblx0Y29sb3JTY2hlbWU6IENvbG9yU2NoZW1lO1xyXG5cdHRoZW1lOiBzdHJpbmc7XHJcblx0cmlwcGxlOiBib29sZWFuO1xyXG5cdG1lbnVNb2RlOiBNZW51TW9kZTtcclxuXHRzY2FsZTogbnVtYmVyO1xyXG5cdG1lbnVUaGVtZTogTWVudUNvbG9yU2NoZW1lO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTGF5b3V0U3RhdGUge1xyXG5cdHN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmU6IGJvb2xlYW47XHJcblx0b3ZlcmxheU1lbnVBY3RpdmU6IGJvb2xlYW47XHJcblx0cHJvZmlsZVNpZGViYXJWaXNpYmxlOiBib29sZWFuO1xyXG5cdGNvbmZpZ1NpZGViYXJWaXNpYmxlOiBib29sZWFuO1xyXG5cdHN0YXRpY01lbnVNb2JpbGVBY3RpdmU6IGJvb2xlYW47XHJcblx0bWVudUhvdmVyQWN0aXZlOiBib29sZWFuO1xyXG5cdHNpZGViYXJBY3RpdmU6IGJvb2xlYW47XHJcblx0YW5jaG9yZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExheW91dFNlcnZpY2Uge1xyXG5cdF9jb25maWc6IEFwcENvbmZpZyA9IHtcclxuXHRcdHJpcHBsZTogZmFsc2UsXHJcblx0XHRpbnB1dFN0eWxlOiAnb3V0bGluZWQnLFxyXG5cdFx0bWVudU1vZGU6ICdzbGltLXBsdXMnLFxyXG5cdFx0Y29sb3JTY2hlbWU6ICdsaWdodCcsXHJcblx0XHR0aGVtZTogJ2luZGlnbycsXHJcblx0XHRzY2FsZTogMTIsXHJcblx0XHRtZW51VGhlbWU6ICdjb2xvclNjaGVtZSdcclxuXHR9O1xyXG5cclxuXHQvLyBUT0RPOiBTZXQgVXNlciBDb25maWdcclxuXHRjb25maWcgPSBzaWduYWw8QXBwQ29uZmlnPih0aGlzLl9jb25maWcpO1xyXG5cclxuXHRzdGF0ZTogTGF5b3V0U3RhdGUgPSB7XHJcblx0XHRzdGF0aWNNZW51RGVza3RvcEluYWN0aXZlOiBmYWxzZSxcclxuXHRcdG92ZXJsYXlNZW51QWN0aXZlOiBmYWxzZSxcclxuXHRcdHByb2ZpbGVTaWRlYmFyVmlzaWJsZTogZmFsc2UsXHJcblx0XHRjb25maWdTaWRlYmFyVmlzaWJsZTogZmFsc2UsXHJcblx0XHRzdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBmYWxzZSxcclxuXHRcdG1lbnVIb3ZlckFjdGl2ZTogZmFsc2UsXHJcblx0XHRzaWRlYmFyQWN0aXZlOiBmYWxzZSxcclxuXHRcdGFuY2hvcmVkOiBmYWxzZVxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgY29uZmlnVXBkYXRlID0gbmV3IFN1YmplY3Q8QXBwQ29uZmlnPigpO1xyXG5cclxuXHRwcml2YXRlIG92ZXJsYXlPcGVuID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuXHRjb25maWdVcGRhdGUkID0gdGhpcy5jb25maWdVcGRhdGUuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdG92ZXJsYXlPcGVuJCA9IHRoaXMub3ZlcmxheU9wZW4uYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdG1mZUFwcEl0ZW1DbGlja2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xyXG5cdFx0XHRpZiAodGhpcy51cGRhdGVTdHlsZShjb25maWcpKSB7XHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VUaGVtZSgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuY2hhbmdlU2NhbGUoY29uZmlnLnNjYWxlKTtcclxuXHRcdFx0dGhpcy5vbkNvbmZpZ1VwZGF0ZSgpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVTdHlsZShjb25maWc6IEFwcENvbmZpZykge1xyXG5cdFx0cmV0dXJuIGNvbmZpZy50aGVtZSAhPT0gdGhpcy5fY29uZmlnLnRoZW1lIHx8IGNvbmZpZy5jb2xvclNjaGVtZSAhPT0gdGhpcy5fY29uZmlnLmNvbG9yU2NoZW1lO1xyXG5cdH1cclxuXHJcblx0b25NZW51VG9nZ2xlKCkge1xyXG5cdFx0aWYgKHRoaXMuaXNPdmVybGF5KCkpIHtcclxuXHRcdFx0dGhpcy5zdGF0ZS5vdmVybGF5TWVudUFjdGl2ZSA9ICF0aGlzLnN0YXRlLm92ZXJsYXlNZW51QWN0aXZlO1xyXG5cclxuXHRcdFx0aWYgKHRoaXMuc3RhdGUub3ZlcmxheU1lbnVBY3RpdmUpIHtcclxuXHRcdFx0XHR0aGlzLm92ZXJsYXlPcGVuLm5leHQobnVsbCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5pc0Rlc2t0b3AoKSkge1xyXG5cdFx0XHR0aGlzLnN0YXRlLnN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmUgPSAhdGhpcy5zdGF0ZS5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlID0gIXRoaXMuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUpIHtcclxuXHRcdFx0XHR0aGlzLm92ZXJsYXlPcGVuLm5leHQobnVsbCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uT3ZlcmxheVN1Ym1lbnVPcGVuKCkge1xyXG5cdFx0dGhpcy5vdmVybGF5T3Blbi5uZXh0KG51bGwpO1xyXG5cdH1cclxuXHJcblx0c2hvd1Byb2ZpbGVTaWRlYmFyKCkge1xyXG5cdFx0dGhpcy5zdGF0ZS5wcm9maWxlU2lkZWJhclZpc2libGUgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0c2hvd0NvbmZpZ1NpZGViYXIoKSB7XHJcblx0XHR0aGlzLnN0YXRlLmNvbmZpZ1NpZGViYXJWaXNpYmxlID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGlzT3ZlcmxheSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnb3ZlcmxheSc7XHJcblx0fVxyXG5cclxuXHRpc0Rlc2t0b3AoKSB7XHJcblx0XHRyZXR1cm4gd2luZG93LmlubmVyV2lkdGggPiA5OTE7XHJcblx0fVxyXG5cclxuXHRpc1NsaW0oKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3NsaW0nO1xyXG5cdH1cclxuXHJcblx0aXNTbGltUGx1cygpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc2xpbS1wbHVzJztcclxuXHR9XHJcblxyXG5cdGlzSG9yaXpvbnRhbCgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnaG9yaXpvbnRhbCc7XHJcblx0fVxyXG5cclxuXHRpc01vYmlsZSgpIHtcclxuXHRcdHJldHVybiAhdGhpcy5pc0Rlc2t0b3AoKTtcclxuXHR9XHJcblxyXG5cdG9uQ29uZmlnVXBkYXRlKCkge1xyXG5cdFx0dGhpcy5fY29uZmlnID0geyAuLi50aGlzLmNvbmZpZygpIH07XHJcblx0XHR0aGlzLmNvbmZpZ1VwZGF0ZS5uZXh0KHRoaXMuY29uZmlnKCkpO1xyXG5cdH1cclxuXHJcblx0Y2hhbmdlVGhlbWUoKSB7XHJcblx0XHRjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xyXG5cdFx0Y29uc3QgdGhlbWVMaW5rID0gPEhUTUxMaW5rRWxlbWVudD5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhlbWUtbGluaycpO1xyXG5cdFx0Y29uc3QgdGhlbWVMaW5rSHJlZiA9IHRoZW1lTGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSE7XHJcblx0XHRjb25zdCBuZXdIcmVmID0gdGhlbWVMaW5rSHJlZlxyXG5cdFx0XHQuc3BsaXQoJy8nKVxyXG5cdFx0XHQubWFwKChlbCkgPT5cclxuXHRcdFx0XHRlbCA9PSB0aGlzLl9jb25maWcudGhlbWUgPyAoZWwgPSBjb25maWcudGhlbWUpXHJcblx0XHRcdFx0OiBlbCA9PSBgdGhlbWUtJHt0aGlzLl9jb25maWcuY29sb3JTY2hlbWV9YCA/IChlbCA9IGB0aGVtZS0ke2NvbmZpZy5jb2xvclNjaGVtZX1gKVxyXG5cdFx0XHRcdDogZWxcclxuXHRcdFx0KVxyXG5cdFx0XHQuam9pbignLycpO1xyXG5cclxuXHRcdHRoaXMucmVwbGFjZVRoZW1lTGluayhuZXdIcmVmKTtcclxuXHR9XHJcblxyXG5cdHJlcGxhY2VUaGVtZUxpbmsoaHJlZjogc3RyaW5nKSB7XHJcblx0XHRjb25zdCBpZCA9ICd0aGVtZS1saW5rJztcclxuXHRcdGxldCB0aGVtZUxpbmsgPSA8SFRNTExpbmtFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuXHRcdGNvbnN0IGNsb25lTGlua0VsZW1lbnQgPSA8SFRNTExpbmtFbGVtZW50PnRoZW1lTGluay5jbG9uZU5vZGUodHJ1ZSk7XHJcblxyXG5cdFx0Y2xvbmVMaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTtcclxuXHRcdGNsb25lTGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGlkICsgJy1jbG9uZScpO1xyXG5cclxuXHRcdHRoZW1lTGluay5wYXJlbnROb2RlIS5pbnNlcnRCZWZvcmUoY2xvbmVMaW5rRWxlbWVudCwgdGhlbWVMaW5rLm5leHRTaWJsaW5nKTtcclxuXHRcdGNsb25lTGlua0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcclxuXHRcdFx0dGhlbWVMaW5rLnJlbW92ZSgpO1xyXG5cdFx0XHRjbG9uZUxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBpZCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGNoYW5nZVNjYWxlKHZhbHVlOiBudW1iZXIpIHtcclxuXHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5mb250U2l6ZSA9IGAke3ZhbHVlfXB4YDtcclxuXHR9XHJcbn1cclxuIl19
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBZ0MvQixNQUFNLE9BQU8sYUFBYTtJQTBDekI7UUF4Q0E7Ozs7V0FJRztRQUVILFlBQU8sR0FBYztZQUNwQixNQUFNLEVBQUUsS0FBSztZQUNiLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFdBQVcsRUFBRSxPQUFPO1lBQ3BCLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsYUFBYTtTQUN4QixDQUFDO1FBRUYsd0JBQXdCO1FBQ3hCLFdBQU0sR0FBRyxNQUFNLENBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLFVBQUssR0FBZ0I7WUFDcEIseUJBQXlCLEVBQUUsS0FBSztZQUNoQyxpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLHFCQUFxQixFQUFFLEtBQUs7WUFDNUIsb0JBQW9CLEVBQUUsS0FBSztZQUMzQixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFFBQVEsRUFBRSxLQUFLO1NBQ2YsQ0FBQztRQUVNLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWEsQ0FBQztRQUV4QyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFFekMsa0JBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWpELGlCQUFZLEdBQUcsSUFBSSxD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QUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBRW5ELFNBQVMsQ0FBQyxVQUFXLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQzlDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3hCLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLEtBQUssSUFBSSxDQUFDO0lBQ3hELENBQUM7OEdBdkpXLGFBQWE7a0hBQWIsYUFBYSxjQUZiLE1BQU07OzJGQUVOLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgZWZmZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCB0eXBlIE1lbnVNb2RlID0gJ3N0YXRpYycgfCAnb3ZlcmxheScgfCAnaG9yaXpvbnRhbCcgfCAnc2xpbScgfCAnc2xpbS1wbHVzJyB8ICdyZXZlYWwnIHwgJ2RyYXdlcicgfCAnZXhwYW5kYWJsZSc7XHJcblxyXG5leHBvcnQgdHlwZSBDb2xvclNjaGVtZSA9ICdsaWdodCcgfCAnZGFyaycgfCAnZGltJztcclxuXHJcbmV4cG9ydCB0eXBlIE1lbnVDb2xvclNjaGVtZSA9ICdjb2xvclNjaGVtZScgfCAncHJpbWFyeUNvbG9yJyB8ICd0cmFuc3BhcmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZyB7XHJcblx0aW5wdXRTdHlsZTogc3RyaW5nO1xyXG5cdGNvbG9yU2NoZW1lOiBDb2xvclNjaGVtZTtcclxuXHR0aGVtZTogc3RyaW5nO1xyXG5cdHJpcHBsZTogYm9vbGVhbjtcclxuXHRtZW51TW9kZTogTWVudU1vZGU7XHJcblx0c2NhbGU6IG51bWJlcjtcclxuXHRtZW51VGhlbWU6IE1lbnVDb2xvclNjaGVtZTtcclxufVxyXG5cclxuaW50ZXJmYWNlIExheW91dFN0YXRlIHtcclxuXHRzdGF0aWNNZW51RGVza3RvcEluYWN0aXZlOiBib29sZWFuO1xyXG5cdG92ZXJsYXlNZW51QWN0aXZlOiBib29sZWFuO1xyXG5cdHByb2ZpbGVTaWRlYmFyVmlzaWJsZTogYm9vbGVhbjtcclxuXHRjb25maWdTaWRlYmFyVmlzaWJsZTogYm9vbGVhbjtcclxuXHRzdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBib29sZWFuO1xyXG5cdG1lbnVIb3ZlckFjdGl2ZTogYm9vbGVhbjtcclxuXHRzaWRlYmFyQWN0aXZlOiBib29sZWFuO1xyXG5cdGFuY2hvcmVkOiBib29sZWFuO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXlvdXRTZXJ2aWNlIHtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb25cclxuXHQgKiBFxJ9lciBtZW51TW9kZSBleHBhbmRhYmxlIGlzZSBhcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIGnDp2luZGVraSAgPGFwcC1zaWRlYmFyIC8+XHQgXHJcblx0ICogeWVyaW5lIDxhcHAtZXhwYW5kYWJsZS1tZW51IC8+IGFrdGlmIGVkaWxtZWxpXHJcblx0ICovXHJcblx0XHJcblx0X2NvbmZpZzogQXBwQ29uZmlnID0ge1xyXG5cdFx0cmlwcGxlOiBmYWxzZSxcclxuXHRcdGlucHV0U3R5bGU6ICdvdXRsaW5lZCcsXHJcblx0XHRtZW51TW9kZTogJ2V4cGFuZGFibGUnLFxyXG5cdFx0Y29sb3JTY2hlbWU6ICdsaWdodCcsXHJcblx0XHR0aGVtZTogJ2luZGlnbycsXHJcblx0XHRzY2FsZTogMTIsXHJcblx0XHRtZW51VGhlbWU6ICdjb2xvclNjaGVtZSdcclxuXHR9O1xyXG5cclxuXHQvLyBUT0RPOiBTZXQgVXNlciBDb25maWdcclxuXHRjb25maWcgPSBzaWduYWw8QXBwQ29uZmlnPih0aGlzLl9jb25maWcpO1xyXG5cclxuXHRzdGF0ZTogTGF5b3V0U3RhdGUgPSB7XHJcblx0XHRzdGF0aWNNZW51RGVza3RvcEluYWN0aXZlOiBmYWxzZSxcclxuXHRcdG92ZXJsYXlNZW51QWN0aXZlOiBmYWxzZSxcclxuXHRcdHByb2ZpbGVTaWRlYmFyVmlzaWJsZTogZmFsc2UsXHJcblx0XHRjb25maWdTaWRlYmFyVmlzaWJsZTogZmFsc2UsXHJcblx0XHRzdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBmYWxzZSxcclxuXHRcdG1lbnVIb3ZlckFjdGl2ZTogZmFsc2UsXHJcblx0XHRzaWRlYmFyQWN0aXZlOiBmYWxzZSxcclxuXHRcdGFuY2hvcmVkOiBmYWxzZVxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgY29uZmlnVXBkYXRlID0gbmV3IFN1YmplY3Q8QXBwQ29uZmlnPigpO1xyXG5cclxuXHRwcml2YXRlIG92ZXJsYXlPcGVuID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuXHRjb25maWdVcGRhdGUkID0gdGhpcy5jb25maWdVcGRhdGUuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdG92ZXJsYXlPcGVuJCA9IHRoaXMub3ZlcmxheU9wZW4uYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdG1mZUFwcEl0ZW1DbGlja2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xyXG5cdFx0XHRpZiAodGhpcy51cGRhdGVTdHlsZShjb25maWcpKSB7XHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VUaGVtZSgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuY2hhbmdlU2NhbGUoY29uZmlnLnNjYWxlKTtcclxuXHRcdFx0dGhpcy5vbkNvbmZpZ1VwZGF0ZSgpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVTdHlsZShjb25maWc6IEFwcENvbmZpZykge1xyXG5cdFx0cmV0dXJuIGNvbmZpZy50aGVtZSAhPT0gdGhpcy5fY29uZmlnLnRoZW1lIHx8IGNvbmZpZy5jb2xvclNjaGVtZSAhPT0gdGhpcy5fY29uZmlnLmNvbG9yU2NoZW1lO1xyXG5cdH1cclxuXHJcblx0b25NZW51VG9nZ2xlKCkge1xyXG5cdFx0aWYgKHRoaXMuaXNPdmVybGF5KCkpIHtcclxuXHRcdFx0dGhpcy5zdGF0ZS5vdmVybGF5TWVudUFjdGl2ZSA9ICF0aGlzLnN0YXRlLm92ZXJsYXlNZW51QWN0aXZlO1xyXG5cclxuXHRcdFx0aWYgKHRoaXMuc3RhdGUub3ZlcmxheU1lbnVBY3RpdmUpIHtcclxuXHRcdFx0XHR0aGlzLm92ZXJsYXlPcGVuLm5leHQobnVsbCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5pc0Rlc2t0b3AoKSkge1xyXG5cdFx0XHR0aGlzLnN0YXRlLnN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmUgPSAhdGhpcy5zdGF0ZS5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlID0gIXRoaXMuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUpIHtcclxuXHRcdFx0XHR0aGlzLm92ZXJsYXlPcGVuLm5leHQobnVsbCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uT3ZlcmxheVN1Ym1lbnVPcGVuKCkge1xyXG5cdFx0dGhpcy5vdmVybGF5T3Blbi5uZXh0KG51bGwpO1xyXG5cdH1cclxuXHJcblx0c2hvd1Byb2ZpbGVTaWRlYmFyKCkge1xyXG5cdFx0dGhpcy5zdGF0ZS5wcm9maWxlU2lkZWJhclZpc2libGUgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0c2hvd0NvbmZpZ1NpZGViYXIoKSB7XHJcblx0XHR0aGlzLnN0YXRlLmNvbmZpZ1NpZGViYXJWaXNpYmxlID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGlzT3ZlcmxheSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnb3ZlcmxheSc7XHJcblx0fVxyXG5cclxuXHRpc0Rlc2t0b3AoKSB7XHJcblx0XHRyZXR1cm4gd2luZG93LmlubmVyV2lkdGggPiA5OTE7XHJcblx0fVxyXG5cclxuXHRpc1NsaW0oKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3NsaW0nO1xyXG5cdH1cclxuXHJcblx0aXNTbGltUGx1cygpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc2xpbS1wbHVzJztcclxuXHR9XHJcblxyXG5cdGlzSG9yaXpvbnRhbCgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZygpLm1lbnVNb2RlID09PSAnaG9yaXpvbnRhbCc7XHJcblx0fVxyXG5cclxuXHRpc01vYmlsZSgpIHtcclxuXHRcdHJldHVybiAhdGhpcy5pc0Rlc2t0b3AoKTtcclxuXHR9XHJcblxyXG5cdG9uQ29uZmlnVXBkYXRlKCkge1xyXG5cdFx0dGhpcy5fY29uZmlnID0geyAuLi50aGlzLmNvbmZpZygpIH07XHJcblx0XHR0aGlzLmNvbmZpZ1VwZGF0ZS5uZXh0KHRoaXMuY29uZmlnKCkpO1xyXG5cdH1cclxuXHJcblx0Y2hhbmdlVGhlbWUoKSB7XHJcblx0XHRjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xyXG5cdFx0Y29uc3QgdGhlbWVMaW5rID0gPEhUTUxMaW5rRWxlbWVudD5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhlbWUtbGluaycpO1xyXG5cdFx0Y29uc3QgdGhlbWVMaW5rSHJlZiA9IHRoZW1lTGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSE7XHJcblx0XHRjb25zdCBuZXdIcmVmID0gdGhlbWVMaW5rSHJlZlxyXG5cdFx0XHQuc3BsaXQoJy8nKVxyXG5cdFx0XHQubWFwKChlbCkgPT5cclxuXHRcdFx0XHRlbCA9PSB0aGlzLl9jb25maWcudGhlbWUgPyAoZWwgPSBjb25maWcudGhlbWUpXHJcblx0XHRcdFx0OiBlbCA9PSBgdGhlbWUtJHt0aGlzLl9jb25maWcuY29sb3JTY2hlbWV9YCA/IChlbCA9IGB0aGVtZS0ke2NvbmZpZy5jb2xvclNjaGVtZX1gKVxyXG5cdFx0XHRcdDogZWxcclxuXHRcdFx0KVxyXG5cdFx0XHQuam9pbignLycpO1xyXG5cclxuXHRcdHRoaXMucmVwbGFjZVRoZW1lTGluayhuZXdIcmVmKTtcclxuXHR9XHJcblxyXG5cdHJlcGxhY2VUaGVtZUxpbmsoaHJlZjogc3RyaW5nKSB7XHJcblx0XHRjb25zdCBpZCA9ICd0aGVtZS1saW5rJztcclxuXHRcdGxldCB0aGVtZUxpbmsgPSA8SFRNTExpbmtFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuXHRcdGNvbnN0IGNsb25lTGlua0VsZW1lbnQgPSA8SFRNTExpbmtFbGVtZW50PnRoZW1lTGluay5jbG9uZU5vZGUodHJ1ZSk7XHJcblxyXG5cdFx0Y2xvbmVMaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTtcclxuXHRcdGNsb25lTGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGlkICsgJy1jbG9uZScpO1xyXG5cclxuXHRcdHRoZW1lTGluay5wYXJlbnROb2RlIS5pbnNlcnRCZWZvcmUoY2xvbmVMaW5rRWxlbWVudCwgdGhlbWVMaW5rLm5leHRTaWJsaW5nKTtcclxuXHRcdGNsb25lTGlua0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcclxuXHRcdFx0dGhlbWVMaW5rLnJlbW92ZSgpO1xyXG5cdFx0XHRjbG9uZUxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBpZCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGNoYW5nZVNjYWxlKHZhbHVlOiBudW1iZXIpIHtcclxuXHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5mb250U2l6ZSA9IGAke3ZhbHVlfXB4YDtcclxuXHR9XHJcbn1cclxuIl19
|