@sarasanalytics-com/design-system 0.0.122 → 0.0.124
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/interfaces/left-nav-interface.mjs +1 -1
- package/esm2022/interfaces/menu.interface.mjs +1 -1
- package/esm2022/lib/left-nav/left-nav.component.mjs +35 -3
- package/esm2022/lib/menu/menu.component.mjs +17 -6
- package/esm2022/lib/menu/menu.directive.mjs +64 -21
- package/fesm2022/sarasanalytics-com-design-system.mjs +113 -28
- package/fesm2022/sarasanalytics-com-design-system.mjs.map +1 -1
- package/interfaces/left-nav-interface.d.ts +2 -7
- package/interfaces/menu.interface.d.ts +1 -0
- package/lib/left-nav/left-nav.component.d.ts +4 -2
- package/lib/menu/menu.component.d.ts +3 -3
- package/lib/menu/menu.directive.d.ts +9 -2
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export var ILeftNavTypes;
|
|
2
2
|
(function (ILeftNavTypes) {
|
|
3
3
|
})(ILeftNavTypes || (ILeftNavTypes = {}));
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVmdC1uYXYtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2ludGVyZmFjZXMvbGVmdC1uYXYtaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDRSxNQUFNLENBQU4sSUFBWSxhQUVYO0FBRkQsV0FBWSxhQUFhO0FBRXpCLENBQUMsRUFGVyxhQUFhLEtBQWIsYUFBYSxRQUV4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElNZW51IH0gZnJvbSBcIi4vbWVudS5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJTGVmdE5hdiB7XG4gICAgbG9nbz86IElMZWZ0TmF2TG9nbztcbiAgICBpdGVtcz86IElMZWZ0TmF2SXRlbVtdO1xuICAgIHRlbXBsYXRlSXRlbXM/OiBJVGVtcGxhdGVJdGVtW107XG4gICAgZm9vdGVySXRlbXM/OiBJTGVmdE5hdkl0ZW1bXTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUxlZnROYXZMb2dvIGV4dGVuZHMgSUxlZnROYXZJdGVtIHtcbiAgICBcbiAgfVxuICBcbiAgZXhwb3J0IGludGVyZmFjZSBJTGVmdE5hdkl0ZW0ge1xuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgLy8gaWNvbl91cmw/OiBzdHJpbmcsXG4gICAgaWNvbj86IHN0cmluZyxcbiAgICBpY29uU2l6ZT86IHN0cmluZyxcbiAgICBjb2xvcj86IHN0cmluZyxcbiAgICBkaXNhYmxlPzogYm9vbGVhbixcbiAgICB0b29sdGlwPzogc3RyaW5nLFxuICAgIHJlbGF0aXZlUGF0aD86IGJvb2xlYW4sXG4gICAgcGF0aD86IHN0cmluZyxcbiAgICBhY3RpdmU/OiBib29sZWFuLFxuICAgIHR5cGU/OiAnSUNPTicgfCAnQVZBVEFSJztcbiAgICBtZW51PzogSU1lbnU7XG4gICAgYWx0VGV4dD86IHN0cmluZyxcbiAgICBzaG93U2VhcmNoPzogYm9vbGVhbixcbiAgICBpY29uTGFiZWw/OiBzdHJpbmcsXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICB9XG4gIFxuICBleHBvcnQgaW50ZXJmYWNlIElMZWZ0TmF2Q2xpY2tFdmVudCB7XG4gICAgdHlwZTogJ05BVl9JVEVNX0NMSUNLJyB8ICdGT09URVJfSVRFTV9DTElDSycgfCAnTE9HT19DTElDSycgfCAnVEVNUExBVEVfSVRFTV9DTElDSycgfCAnQ0xJQ0snO1xuICAgIGV2ZW50OiBhbnksXG4gICAgaXRlbTogSUxlZnROYXZJdGVtXG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJTGVmdE5hdkJsdXJFdmVudCB7XG4gICAgdHlwZTogJ05BVl9JVEVNX0hPVkVSJyB8ICdGT09URVJfSVRFTV9IT1ZFUicgfCAnTE9HT19IT1ZFUic7XG4gICAgZXZlbnQ6IGFueSxcbiAgICBpdGVtOiBJTGVmdE5hdkl0ZW1cbiAgfVxuICBcbiAgZXhwb3J0IGVudW0gSUxlZnROYXZUeXBlcyB7XG4gIFxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBJVGVtcGxhdGVJdGVtIGV4dGVuZHMgSUxlZnROYXZJdGVtIHtcbiAgICBpY29uU2l6ZT86IHN0cmluZztcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIH0iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvaW50ZXJmYWNlcy9tZW51LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IHNhSWNvbiB9IGZyb20gXCIuL2ljb24taW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBJQ2hpcCB9IGZyb20gXCIuLi9saWIvY2hpcHMvY2hpcHMuY29tcG9uZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lbnUge1xuICAgIHdpZHRoPzogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHNob3dUcmF5PzogYm9vbGVhbjtcbiAgICBpdGVtcz86IElNZW51SXRlbVtdO1xuICAgIHNob3dTZWFyY2g/OiBib29sZWFuO1xuICAgIHNob3dBZGRJY29uPzogYm9vbGVhbjtcbiAgICBzZWFyY2hQbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICB0YWJzPzogbWVudWVUYWJzW107XG4gICAgaXRlbUdyb3Vwcz86IElNZW51R3JvdXBbXTtcbiAgICBvdmVybGF5Q29uZmlnPzoge1xuICAgICAgICBvZmZzZXRYPzogbnVtYmVyLFxuICAgICAgICBvZmZzZXRZPzogbnVtYmVyXG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIG1lbnVlVGFicyB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgc3RhdHVzPzogJ2FjdGl2ZScgfCAnaW5hY3RpdmUnIHwgJ2Rpc2FibGVkJztcbiAgICBpdGVtR3JvdXBzPzogSU1lbnVHcm91cFtdO1xufVxuZXhwb3J0IGludGVyZmFjZSBJTWVudUl0ZW0ge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIGlkPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHN0YXR1cz86ICdhY3RpdmUnIHwgJ2luYWN0aXZlJyB8ICdkaXNhYmxlZCc7XG4gICAgY2hpcHM/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvaW50ZXJmYWNlcy9tZW51LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IHNhSWNvbiB9IGZyb20gXCIuL2ljb24taW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBJQ2hpcCB9IGZyb20gXCIuLi9saWIvY2hpcHMvY2hpcHMuY29tcG9uZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lbnUge1xuICAgIHdpZHRoPzogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHNob3dUcmF5PzogYm9vbGVhbjtcbiAgICBpdGVtcz86IElNZW51SXRlbVtdO1xuICAgIHNob3dTZWFyY2g/OiBib29sZWFuO1xuICAgIHNob3dBZGRJY29uPzogYm9vbGVhbjtcbiAgICBzZWFyY2hQbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICB0YWJzPzogbWVudWVUYWJzW107XG4gICAgaXRlbUdyb3Vwcz86IElNZW51R3JvdXBbXTtcbiAgICBvdmVybGF5Q29uZmlnPzoge1xuICAgICAgICBvZmZzZXRYPzogbnVtYmVyLFxuICAgICAgICBvZmZzZXRZPzogbnVtYmVyXG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIG1lbnVlVGFicyB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgc3RhdHVzPzogJ2FjdGl2ZScgfCAnaW5hY3RpdmUnIHwgJ2Rpc2FibGVkJztcbiAgICBpdGVtR3JvdXBzPzogSU1lbnVHcm91cFtdO1xufVxuZXhwb3J0IGludGVyZmFjZSBJTWVudUl0ZW0ge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIGlkPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHN0YXR1cz86ICdhY3RpdmUnIHwgJ2luYWN0aXZlJyB8ICdkaXNhYmxlZCc7XG4gICAgY2hpcHM/OiBBcnJheTxJQ2hpcD47XG4gICAgaWNvbj86IHNhSWNvbjtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lbnVHcm91cCB7XG4gICAgZ3JvdXBUaXRsZT86IHN0cmluZztcbiAgICBpdGVtcz86IElNZW51SXRlbVtdO1xufVxuXG5leHBvcnQgdHlwZSBNeU92ZXJsYXlQb3NpdGlvbnMgPSB7XG4gICAgW2tleTogc3RyaW5nXTogQ29ubmVjdGVkUG9zaXRpb247ICAvLyBLZXlzIGNhbiBiZSBhbnkgc3RyaW5nLCB2YWx1ZXMgbXVzdCBiZSBDb25uZWN0ZWRQb3NpdGlvblxufTsiXX0=
|
|
@@ -14,7 +14,10 @@ export class LeftNavComponent {
|
|
|
14
14
|
constructor(route, router) {
|
|
15
15
|
this.route = route;
|
|
16
16
|
this.router = router;
|
|
17
|
+
// Signal to track if a menu is currently attached/open
|
|
17
18
|
this.isMenuAttached = signal(false);
|
|
19
|
+
// Track which menu is currently open
|
|
20
|
+
this.activeMenuItemRef = null;
|
|
18
21
|
this.onEvent = new EventEmitter();
|
|
19
22
|
this.clickEvent = new EventEmitter();
|
|
20
23
|
this.hoverEvent = new EventEmitter();
|
|
@@ -31,6 +34,31 @@ export class LeftNavComponent {
|
|
|
31
34
|
}
|
|
32
35
|
ngAfterViewInit() {
|
|
33
36
|
}
|
|
37
|
+
ngOnChanges(changes) {
|
|
38
|
+
if (changes['config'] && !changes['config'].firstChange) {
|
|
39
|
+
// Handle config changes
|
|
40
|
+
console.log('Config changed:', changes['config'].currentValue);
|
|
41
|
+
// Update any derived state or trigger UI updates
|
|
42
|
+
if (this.config?.items) {
|
|
43
|
+
// Find and maintain active state when config changes
|
|
44
|
+
const activeItemIndex = this.config.items.findIndex(item => item.active);
|
|
45
|
+
if (activeItemIndex >= 0) {
|
|
46
|
+
this.activeItem = this.config.items[activeItemIndex];
|
|
47
|
+
}
|
|
48
|
+
// To ensure Angular's change detection properly propagates changes to the menu directive,
|
|
49
|
+
// we can use the Object.assign approach which preserves object references but updates properties
|
|
50
|
+
// This is important for Angular's OnPush change detection strategy in child components
|
|
51
|
+
// Update menu objects in items without changing their references
|
|
52
|
+
if (this.activeMenuItemRef && this.activeMenuItemRef.itemType === 'nav') {
|
|
53
|
+
const activeIndex = this.activeMenuItemRef.index;
|
|
54
|
+
if (this.config.items[activeIndex]?.menu) {
|
|
55
|
+
// Using a console.log to visually verify the approach is being applied
|
|
56
|
+
console.log('Maintaining menu reference for active nav item:', activeIndex);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
34
62
|
setItemActive(index) {
|
|
35
63
|
try {
|
|
36
64
|
if (this.activeItem) {
|
|
@@ -121,6 +149,8 @@ export class LeftNavComponent {
|
|
|
121
149
|
// Emit an event that can be captured by parent applications
|
|
122
150
|
console.log('Menu attached:', event);
|
|
123
151
|
this.isMenuAttached.set(true);
|
|
152
|
+
// Track which menu is open
|
|
153
|
+
this.activeMenuItemRef = { itemType, index };
|
|
124
154
|
this.onEvent.emit({
|
|
125
155
|
type: 'MENU_ATTACHED',
|
|
126
156
|
itemType,
|
|
@@ -141,6 +171,8 @@ export class LeftNavComponent {
|
|
|
141
171
|
onMenuDetached(event, itemType, item, index) {
|
|
142
172
|
console.log('Menu detached:', event);
|
|
143
173
|
this.isMenuAttached.set(false);
|
|
174
|
+
// Clear the active menu reference
|
|
175
|
+
this.activeMenuItemRef = null;
|
|
144
176
|
this.onEvent.emit({
|
|
145
177
|
type: 'MENU_DETACHED',
|
|
146
178
|
itemType,
|
|
@@ -151,7 +183,7 @@ export class LeftNavComponent {
|
|
|
151
183
|
});
|
|
152
184
|
}
|
|
153
185
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LeftNavComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
154
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: LeftNavComponent, isStandalone: true, selector: "sa-left-nav", inputs: { config: "config" }, outputs: { clickEvent: "clickEvent", hoverEvent: "hoverEvent", onEvent: "onEvent" }, ngImport: i0, template: "<div class=\"sa-left-nav\" >\n\n <div class=\"sa-left-nav-container {{isMenuAttached() ? 'menu-attached' : ''}}\">\n <div class=\"sa-left-nav-logo\">\n <sa-icon (click)=\"onLogoClick($event, config?.logo)\" [matTooltip]=\"config?.logo?.tooltip\" [matTooltipPosition]=\"'right'\" [icon]=\"config?.logo?.icon\" [size]=\"config?.logo?.size\"></sa-icon>\n </div>\n <div class=\"sa-left-nav-items-container\">\n @if(config && config?.items && !!config?.items?.length){\n <div class=\"sa-left-nav-items-group\">\n <ng-container *ngFor=\"let item of config?.items; let i = index\">\n <div class=\"sa-left-nav-items\">\n <div class=\"sa-left-nav-item\" [ngClass]=\"item.active ? 'active' : '' \"\n [saMenu]=\"item.menu\" (onEvent)=\"onEvent.emit($event)\" (onMenuEvent)=\"onMenuEvent($event)\"\n (onAttached)=\"onMenuAttached($event, 'nav', item, i)\" (onDetached)=\"onMenuDetached($event, 'nav', item, i)\"\n (click)=\"onNavItemClick(item, i, $event)\" (mouseenter)=\"onNavItemBlur(item,i,$event,tooltip)\"\n #tooltip=\"matTooltip\" [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\">\n\n <sa-icon class=\"sa-left-nav-item-icon\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color || 'white'\"></sa-icon>\n <!-- <span>{{item.tooltip}}</span> -->\n <!-- <span class=\"sa-left-nav-item-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url + ')' }\"></span> -->\n </div>\n <p class=\"sa-icon-label\">{{item.iconLabel}}</p>\n </div>\n </ng-container>\n </div>\n }\n </div>\n <div class=\"sa-template-item-container\">\n @if(config && config.templateItems && !!config.templateItems.length){\n <div (click)=\"onTemplateItemClick($event, i, item)\" class=\"sa-template-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.templateItems; let i = index\">\n <sa-icon [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color\"></sa-icon>\n </div>\n }\n </div>\n <div class=\"sa-left-nav-footer\">\n @if(config && config.footerItems && !!config.footerItems.length){\n <div class=\"sa-left-nav-footer-container\">\n <div class=\"sa-left-nav-footer-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.footerItems; let i = index\">\n <div class=\"footer-item-icon\" [ngClass]=\"item.active ? 'active' : '' \"\n (click)=\"onFooterItemClick(item, i, $event)\"\n [saMenu]=\"item.menu\" (onAttached)=\"onMenuAttached($event, 'footer', item, i)\" (onDetached)=\"onMenuDetached($event, 'footer', item, i)\"\n (mouseenter)=\"onFooterItemBlur(item,i,$event,tooltip)\" #tooltip=\"matTooltip\"\n [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\">\n @if(item.type === 'AVATAR'){\n <!-- <span class=\"sa-left-nav-footer-name\">ET</span> -->\n <sa-avatar [altText]=\"item.altText\" [imagePath]=\"''\" size=\"extra-small\"></sa-avatar>\n }@else{\n <sa-icon class=\"sa-left-nav-footer-icon\" [icon]=\"item.icon\" size=\"24\" color=\"white\"></sa-icon>\n <!-- <span class=\"sa-left-nav-footer-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url || '' + ')' }\"></span> -->\n }\n </div>\n <p class=\"sa-icon-label\">{{item.iconLabel}}</p>\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"sa-left-nav-content\">\n <ng-content></ng-content>\n </div>\n\n</div>", styles: [".sa-left-nav{height:calc(100vh - 16px);padding:8px;display:flex}.sa-left-nav-logo{display:flex;align-items:center;justify-content:center;width:40px;margin:auto;padding:5px 0;border-bottom:1px #fff solid;min-height:48px}.sa-logo{height:40px;width:20px;display:block;margin:auto;background-position:center;background:url('data:image/svg+xml,<svg viewBox=\"0 0 20 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.554 13.549c-.05 0-.101 0-.152-.003v.003s-.541-.013-2.395-.024c-3.047-.026-4.175 1.237-4.532 1.816H8.47c-.26.49-.332 1.061-.202 1.603l-.004.01c.02.13.303 1.624 2.762 1.573 1.971-.042 3.15-.165 3.626-.225a3.881 3.881 0 0 1 1.815.004c.596.145 1.152.43 1.623.831.472.402.846.91 1.093 1.484a4.156 4.156 0 0 1-.158 3.617 4.037 4.037 0 0 1-1.22 1.377 3.883 3.883 0 0 1-3.498.516c-.29-.068-.68-.169-1.207-.315-3.167-.789-4.906 4.081-4.906 4.081l-.006.005a4.069 4.069 0 0 1-1.244 1.785 3.926 3.926 0 0 1-1.968.866 3.888 3.888 0 0 1-2.12-.307c-.667-.3-1.24-.78-1.658-1.39a4.153 4.153 0 0 1-.273-4.216 4.033 4.033 0 0 1 1.463-1.6 3.904 3.904 0 0 1 2.408-.576c.44-.004 1.353 0 3.19.032 3.136.057 3.556-1.442 3.596-2.056 0-.058-.003-.116-.003-.173v-.083a2.288 2.288 0 0 0-.448-1.238 2.204 2.204 0 0 0-1.048-.768c-1.543-.684-5.413-.377-5.413-.377v-.005a3.893 3.893 0 0 1-1.805-.345 3.978 3.978 0 0 1-1.33-.985 4.093 4.093 0 0 1-.829-1.453 4.162 4.162 0 0 1 .308-3.277 4.04 4.04 0 0 1 1.084-1.264c.443-.34.95-.58 1.49-.707a3.882 3.882 0 0 1 1.643-.03c1.257.082 2.52.034 3.768-.144 2.02-.254 2.48-1.434 2.58-2.079V9.48c0-.805.233-1.592.67-2.261a3.996 3.996 0 0 1 1.782-1.5 3.886 3.886 0 0 1 2.296-.23c.77.156 1.478.544 2.034 1.113.556.57.934 1.294 1.087 2.084.154.789.075 1.607-.226 2.35a4.05 4.05 0 0 1-1.463 1.827 3.906 3.906 0 0 1-2.207.686h.003ZM4.476 9.043a3.906 3.906 0 0 1-2.207-.686A4.05 4.05 0 0 1 .806 6.531 4.161 4.161 0 0 1 .58 4.18a4.1 4.1 0 0 1 1.087-2.084A3.945 3.945 0 0 1 3.7.982a3.885 3.885 0 0 1 2.295.232c.726.308 1.347.83 1.783 1.499.437.67.67 1.456.67 2.26a4.12 4.12 0 0 1-1.164 2.878 3.926 3.926 0 0 1-2.809 1.192Z\" fill=\"%23fff\"/><path d=\"M15.531 37.095c2.194 0 3.973-1.822 3.973-4.07 0-2.246-1.779-4.068-3.973-4.068s-3.972 1.822-3.972 4.069 1.779 4.069 3.972 4.069Z\" fill=\"%23fff\"/></svg>') no-repeat}.sa-left-nav-container{height:inherit;width:64px;background-color:var(--primary-800, #42307D);border-radius:var(--small-8px, 8px) var(--small-8px, 8px);padding:16px 6px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-evenly}.sa-left-nav-container.menu-attached{border-radius:var(--small-8px, 8px) 0 0 var(--small-8px, 8px)}.sa-left-nav-items{flex:1;overflow-y:auto}.sa-left-nav-items-container{padding:var(--medium-28px) 0;height:100%;overflow:auto;box-sizing:border-box}.sa-left-nav-items-group{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-8px, 8px);align-self:stretch}.sa-left-nav-items{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-2px, 2px);align-self:stretch}.sa-left-nav-item,.sa-left-nav-footer-item .footer-item-icon{height:40px;width:40px;margin:0 auto;cursor:pointer;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center}.sa-icon-label{color:var(--icon-white,#fff);font-size:var(--small-10px,10px);text-align:center;margin:0}::-webkit-scrollbar{display:none}.sa-left-nav-footer-item{margin:0 auto;gap:var(--small-2px, 2px);display:flex;flex-direction:column;align-items:center}.sa-left-nav-item:hover,.sa-left-nav-item.active,.sa-left-nav-footer-item .footer-item-icon.active,.sa-left-nav-footer-item .footer-item-icon:hover{background-color:var(--primary-500)}.sa-left-nav-item-name,.sa-left-nav-item-icon,.sa-left-nav-footer-icon,.sa-left-nav-footer-name{height:24px;width:24px;display:block}.sa-left-nav-item-name,mn.sa-left-nav-footer-name{display:flex;justify-content:center;align-items:center}.sa-left-nav-footer{min-height:fit-content;border-top:1px solid #fff}.sa-left-nav-content{width:calc(100% - 64px)}.sa-template-item-container{margin-bottom:.8rem;display:flex;justify-content:center}.sa-left-nav-footer-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-16px, 16px);align-self:stretch;margin-top:var(--small-16px, 16px)}.sa-template-item-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-8px, 8px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: AvatarComponent, selector: "sa-avatar", inputs: ["id", "imagePath", "altText", "size"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MenuDirective, selector: "[saMenu]", inputs: ["saMenuRef", "saMenu", "saManuPosition"], outputs: ["onMenuEvent", "onEvent", "onAttached", "onDetached"] }] }); }
|
|
186
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: LeftNavComponent, isStandalone: true, selector: "sa-left-nav", inputs: { config: "config" }, outputs: { clickEvent: "clickEvent", hoverEvent: "hoverEvent", onEvent: "onEvent" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"sa-left-nav\" >\n\n <div class=\"sa-left-nav-container {{isMenuAttached() ? 'menu-attached' : ''}}\">\n <div class=\"sa-left-nav-logo\">\n <sa-icon (click)=\"onLogoClick($event, config?.logo)\" [matTooltip]=\"config?.logo?.tooltip\" [matTooltipPosition]=\"'right'\" [icon]=\"config?.logo?.icon\" [size]=\"config?.logo?.iconSize\"></sa-icon>\n </div>\n <div class=\"sa-left-nav-items-container\">\n @if(config && config?.items && !!config?.items?.length){\n <div class=\"sa-left-nav-items-group\">\n <ng-container *ngFor=\"let item of config?.items; let i = index\">\n <div class=\"sa-left-nav-items\">\n <div class=\"sa-left-nav-item\" [ngClass]=\"item.active ? 'active' : '' \"\n [saMenu]=\"item.menu\" (onEvent)=\"onEvent.emit($event)\" (onMenuEvent)=\"onMenuEvent($event)\"\n (onAttached)=\"onMenuAttached($event, 'nav', item, i)\" (onDetached)=\"onMenuDetached($event, 'nav', item, i)\"\n (click)=\"onNavItemClick(item, i, $event)\" (mouseenter)=\"onNavItemBlur(item,i,$event,tooltip)\"\n #tooltip=\"matTooltip\" [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\">\n\n <sa-icon class=\"sa-left-nav-item-icon\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color || 'white'\"></sa-icon>\n <!-- <span>{{item.tooltip}}</span> -->\n <!-- <span class=\"sa-left-nav-item-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url + ')' }\"></span> -->\n </div>\n <p class=\"sa-icon-label\">{{item.iconLabel}}</p>\n </div>\n </ng-container>\n </div>\n }\n </div>\n <div class=\"sa-template-item-container\">\n @if(config && config.templateItems && !!config.templateItems.length){\n <div (click)=\"onTemplateItemClick($event, i, item)\" class=\"sa-template-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.templateItems; let i = index\">\n <sa-icon [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color\"></sa-icon>\n </div>\n }\n </div>\n <div class=\"sa-left-nav-footer\">\n @if(config && config.footerItems && !!config.footerItems.length){\n <div class=\"sa-left-nav-footer-container\">\n <div class=\"sa-left-nav-footer-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.footerItems; let i = index\">\n <div class=\"footer-item-icon\" [ngClass]=\"item.active ? 'active' : '' \"\n (click)=\"onFooterItemClick(item, i, $event)\"\n [saMenu]=\"item.menu\" (onAttached)=\"onMenuAttached($event, 'footer', item, i)\" (onDetached)=\"onMenuDetached($event, 'footer', item, i)\"\n (mouseenter)=\"onFooterItemBlur(item,i,$event,tooltip)\" #tooltip=\"matTooltip\"\n [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\">\n @if(item.type === 'AVATAR'){\n <!-- <span class=\"sa-left-nav-footer-name\">ET</span> -->\n <sa-avatar [altText]=\"item.altText\" [imagePath]=\"''\" size=\"extra-small\"></sa-avatar>\n }@else{\n <sa-icon class=\"sa-left-nav-footer-icon\" [icon]=\"item.icon\" size=\"24\" color=\"white\"></sa-icon>\n <!-- <span class=\"sa-left-nav-footer-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url || '' + ')' }\"></span> -->\n }\n </div>\n <p class=\"sa-icon-label\">{{item.iconLabel}}</p>\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"sa-left-nav-content\">\n <ng-content></ng-content>\n </div>\n\n</div>", styles: [".sa-left-nav{height:calc(100vh - 16px);padding:8px;display:flex}.sa-left-nav-logo{display:flex;align-items:center;justify-content:center;width:40px;margin:auto;padding:5px 0;border-bottom:1px #fff solid;min-height:48px}.sa-logo{height:40px;width:20px;display:block;margin:auto;background-position:center;background:url('data:image/svg+xml,<svg viewBox=\"0 0 20 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.554 13.549c-.05 0-.101 0-.152-.003v.003s-.541-.013-2.395-.024c-3.047-.026-4.175 1.237-4.532 1.816H8.47c-.26.49-.332 1.061-.202 1.603l-.004.01c.02.13.303 1.624 2.762 1.573 1.971-.042 3.15-.165 3.626-.225a3.881 3.881 0 0 1 1.815.004c.596.145 1.152.43 1.623.831.472.402.846.91 1.093 1.484a4.156 4.156 0 0 1-.158 3.617 4.037 4.037 0 0 1-1.22 1.377 3.883 3.883 0 0 1-3.498.516c-.29-.068-.68-.169-1.207-.315-3.167-.789-4.906 4.081-4.906 4.081l-.006.005a4.069 4.069 0 0 1-1.244 1.785 3.926 3.926 0 0 1-1.968.866 3.888 3.888 0 0 1-2.12-.307c-.667-.3-1.24-.78-1.658-1.39a4.153 4.153 0 0 1-.273-4.216 4.033 4.033 0 0 1 1.463-1.6 3.904 3.904 0 0 1 2.408-.576c.44-.004 1.353 0 3.19.032 3.136.057 3.556-1.442 3.596-2.056 0-.058-.003-.116-.003-.173v-.083a2.288 2.288 0 0 0-.448-1.238 2.204 2.204 0 0 0-1.048-.768c-1.543-.684-5.413-.377-5.413-.377v-.005a3.893 3.893 0 0 1-1.805-.345 3.978 3.978 0 0 1-1.33-.985 4.093 4.093 0 0 1-.829-1.453 4.162 4.162 0 0 1 .308-3.277 4.04 4.04 0 0 1 1.084-1.264c.443-.34.95-.58 1.49-.707a3.882 3.882 0 0 1 1.643-.03c1.257.082 2.52.034 3.768-.144 2.02-.254 2.48-1.434 2.58-2.079V9.48c0-.805.233-1.592.67-2.261a3.996 3.996 0 0 1 1.782-1.5 3.886 3.886 0 0 1 2.296-.23c.77.156 1.478.544 2.034 1.113.556.57.934 1.294 1.087 2.084.154.789.075 1.607-.226 2.35a4.05 4.05 0 0 1-1.463 1.827 3.906 3.906 0 0 1-2.207.686h.003ZM4.476 9.043a3.906 3.906 0 0 1-2.207-.686A4.05 4.05 0 0 1 .806 6.531 4.161 4.161 0 0 1 .58 4.18a4.1 4.1 0 0 1 1.087-2.084A3.945 3.945 0 0 1 3.7.982a3.885 3.885 0 0 1 2.295.232c.726.308 1.347.83 1.783 1.499.437.67.67 1.456.67 2.26a4.12 4.12 0 0 1-1.164 2.878 3.926 3.926 0 0 1-2.809 1.192Z\" fill=\"%23fff\"/><path d=\"M15.531 37.095c2.194 0 3.973-1.822 3.973-4.07 0-2.246-1.779-4.068-3.973-4.068s-3.972 1.822-3.972 4.069 1.779 4.069 3.972 4.069Z\" fill=\"%23fff\"/></svg>') no-repeat}.sa-left-nav-container{height:inherit;width:64px;background-color:var(--primary-800, #42307D);border-radius:var(--small-8px, 8px) var(--small-8px, 8px);padding:16px 6px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-evenly}.sa-left-nav-container.menu-attached{border-radius:var(--small-8px, 8px) 0 0 var(--small-8px, 8px)}.sa-left-nav-items{flex:1;overflow-y:auto}.sa-left-nav-items-container{padding:var(--medium-28px) 0;height:100%;overflow:auto;box-sizing:border-box}.sa-left-nav-items-group{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-8px, 8px);align-self:stretch}.sa-left-nav-items{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-2px, 2px);align-self:stretch}.sa-left-nav-item,.sa-left-nav-footer-item .footer-item-icon{height:40px;width:40px;margin:0 auto;cursor:pointer;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center}.sa-icon-label{color:var(--icon-white,#fff);font-size:var(--small-10px,10px);text-align:center;margin:0}::-webkit-scrollbar{display:none}.sa-left-nav-footer-item{margin:0 auto;gap:var(--small-2px, 2px);display:flex;flex-direction:column;align-items:center}.sa-left-nav-item:hover,.sa-left-nav-item.active,.sa-left-nav-footer-item .footer-item-icon.active,.sa-left-nav-footer-item .footer-item-icon:hover{background-color:var(--primary-500)}.sa-left-nav-item-name,.sa-left-nav-item-icon,.sa-left-nav-footer-icon,.sa-left-nav-footer-name{height:24px;width:24px;display:block}.sa-left-nav-item-name,mn.sa-left-nav-footer-name{display:flex;justify-content:center;align-items:center}.sa-left-nav-footer{min-height:fit-content;border-top:1px solid #fff}.sa-left-nav-content{width:calc(100% - 64px)}.sa-template-item-container{margin-bottom:.8rem;display:flex;justify-content:center}.sa-left-nav-footer-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-16px, 16px);align-self:stretch;margin-top:var(--small-16px, 16px)}.sa-template-item-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-8px, 8px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: AvatarComponent, selector: "sa-avatar", inputs: ["id", "imagePath", "altText", "size"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MenuDirective, selector: "[saMenu]", inputs: ["saMenuRef", "saMenu", "saManuPosition"], outputs: ["onMenuEvent", "onEvent", "onAttached", "onDetached"] }] }); }
|
|
155
187
|
}
|
|
156
188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LeftNavComponent, decorators: [{
|
|
157
189
|
type: Component,
|
|
@@ -163,7 +195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
163
195
|
MenuDirective,
|
|
164
196
|
SAMenuComponent,
|
|
165
197
|
IconComponent
|
|
166
|
-
], template: "<div class=\"sa-left-nav\" >\n\n <div class=\"sa-left-nav-container {{isMenuAttached() ? 'menu-attached' : ''}}\">\n <div class=\"sa-left-nav-logo\">\n <sa-icon (click)=\"onLogoClick($event, config?.logo)\" [matTooltip]=\"config?.logo?.tooltip\" [matTooltipPosition]=\"'right'\" [icon]=\"config?.logo?.icon\" [size]=\"config?.logo?.
|
|
198
|
+
], template: "<div class=\"sa-left-nav\" >\n\n <div class=\"sa-left-nav-container {{isMenuAttached() ? 'menu-attached' : ''}}\">\n <div class=\"sa-left-nav-logo\">\n <sa-icon (click)=\"onLogoClick($event, config?.logo)\" [matTooltip]=\"config?.logo?.tooltip\" [matTooltipPosition]=\"'right'\" [icon]=\"config?.logo?.icon\" [size]=\"config?.logo?.iconSize\"></sa-icon>\n </div>\n <div class=\"sa-left-nav-items-container\">\n @if(config && config?.items && !!config?.items?.length){\n <div class=\"sa-left-nav-items-group\">\n <ng-container *ngFor=\"let item of config?.items; let i = index\">\n <div class=\"sa-left-nav-items\">\n <div class=\"sa-left-nav-item\" [ngClass]=\"item.active ? 'active' : '' \"\n [saMenu]=\"item.menu\" (onEvent)=\"onEvent.emit($event)\" (onMenuEvent)=\"onMenuEvent($event)\"\n (onAttached)=\"onMenuAttached($event, 'nav', item, i)\" (onDetached)=\"onMenuDetached($event, 'nav', item, i)\"\n (click)=\"onNavItemClick(item, i, $event)\" (mouseenter)=\"onNavItemBlur(item,i,$event,tooltip)\"\n #tooltip=\"matTooltip\" [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\">\n\n <sa-icon class=\"sa-left-nav-item-icon\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color || 'white'\"></sa-icon>\n <!-- <span>{{item.tooltip}}</span> -->\n <!-- <span class=\"sa-left-nav-item-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url + ')' }\"></span> -->\n </div>\n <p class=\"sa-icon-label\">{{item.iconLabel}}</p>\n </div>\n </ng-container>\n </div>\n }\n </div>\n <div class=\"sa-template-item-container\">\n @if(config && config.templateItems && !!config.templateItems.length){\n <div (click)=\"onTemplateItemClick($event, i, item)\" class=\"sa-template-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.templateItems; let i = index\">\n <sa-icon [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color\"></sa-icon>\n </div>\n }\n </div>\n <div class=\"sa-left-nav-footer\">\n @if(config && config.footerItems && !!config.footerItems.length){\n <div class=\"sa-left-nav-footer-container\">\n <div class=\"sa-left-nav-footer-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.footerItems; let i = index\">\n <div class=\"footer-item-icon\" [ngClass]=\"item.active ? 'active' : '' \"\n (click)=\"onFooterItemClick(item, i, $event)\"\n [saMenu]=\"item.menu\" (onAttached)=\"onMenuAttached($event, 'footer', item, i)\" (onDetached)=\"onMenuDetached($event, 'footer', item, i)\"\n (mouseenter)=\"onFooterItemBlur(item,i,$event,tooltip)\" #tooltip=\"matTooltip\"\n [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\">\n @if(item.type === 'AVATAR'){\n <!-- <span class=\"sa-left-nav-footer-name\">ET</span> -->\n <sa-avatar [altText]=\"item.altText\" [imagePath]=\"''\" size=\"extra-small\"></sa-avatar>\n }@else{\n <sa-icon class=\"sa-left-nav-footer-icon\" [icon]=\"item.icon\" size=\"24\" color=\"white\"></sa-icon>\n <!-- <span class=\"sa-left-nav-footer-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url || '' + ')' }\"></span> -->\n }\n </div>\n <p class=\"sa-icon-label\">{{item.iconLabel}}</p>\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"sa-left-nav-content\">\n <ng-content></ng-content>\n </div>\n\n</div>", styles: [".sa-left-nav{height:calc(100vh - 16px);padding:8px;display:flex}.sa-left-nav-logo{display:flex;align-items:center;justify-content:center;width:40px;margin:auto;padding:5px 0;border-bottom:1px #fff solid;min-height:48px}.sa-logo{height:40px;width:20px;display:block;margin:auto;background-position:center;background:url('data:image/svg+xml,<svg viewBox=\"0 0 20 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.554 13.549c-.05 0-.101 0-.152-.003v.003s-.541-.013-2.395-.024c-3.047-.026-4.175 1.237-4.532 1.816H8.47c-.26.49-.332 1.061-.202 1.603l-.004.01c.02.13.303 1.624 2.762 1.573 1.971-.042 3.15-.165 3.626-.225a3.881 3.881 0 0 1 1.815.004c.596.145 1.152.43 1.623.831.472.402.846.91 1.093 1.484a4.156 4.156 0 0 1-.158 3.617 4.037 4.037 0 0 1-1.22 1.377 3.883 3.883 0 0 1-3.498.516c-.29-.068-.68-.169-1.207-.315-3.167-.789-4.906 4.081-4.906 4.081l-.006.005a4.069 4.069 0 0 1-1.244 1.785 3.926 3.926 0 0 1-1.968.866 3.888 3.888 0 0 1-2.12-.307c-.667-.3-1.24-.78-1.658-1.39a4.153 4.153 0 0 1-.273-4.216 4.033 4.033 0 0 1 1.463-1.6 3.904 3.904 0 0 1 2.408-.576c.44-.004 1.353 0 3.19.032 3.136.057 3.556-1.442 3.596-2.056 0-.058-.003-.116-.003-.173v-.083a2.288 2.288 0 0 0-.448-1.238 2.204 2.204 0 0 0-1.048-.768c-1.543-.684-5.413-.377-5.413-.377v-.005a3.893 3.893 0 0 1-1.805-.345 3.978 3.978 0 0 1-1.33-.985 4.093 4.093 0 0 1-.829-1.453 4.162 4.162 0 0 1 .308-3.277 4.04 4.04 0 0 1 1.084-1.264c.443-.34.95-.58 1.49-.707a3.882 3.882 0 0 1 1.643-.03c1.257.082 2.52.034 3.768-.144 2.02-.254 2.48-1.434 2.58-2.079V9.48c0-.805.233-1.592.67-2.261a3.996 3.996 0 0 1 1.782-1.5 3.886 3.886 0 0 1 2.296-.23c.77.156 1.478.544 2.034 1.113.556.57.934 1.294 1.087 2.084.154.789.075 1.607-.226 2.35a4.05 4.05 0 0 1-1.463 1.827 3.906 3.906 0 0 1-2.207.686h.003ZM4.476 9.043a3.906 3.906 0 0 1-2.207-.686A4.05 4.05 0 0 1 .806 6.531 4.161 4.161 0 0 1 .58 4.18a4.1 4.1 0 0 1 1.087-2.084A3.945 3.945 0 0 1 3.7.982a3.885 3.885 0 0 1 2.295.232c.726.308 1.347.83 1.783 1.499.437.67.67 1.456.67 2.26a4.12 4.12 0 0 1-1.164 2.878 3.926 3.926 0 0 1-2.809 1.192Z\" fill=\"%23fff\"/><path d=\"M15.531 37.095c2.194 0 3.973-1.822 3.973-4.07 0-2.246-1.779-4.068-3.973-4.068s-3.972 1.822-3.972 4.069 1.779 4.069 3.972 4.069Z\" fill=\"%23fff\"/></svg>') no-repeat}.sa-left-nav-container{height:inherit;width:64px;background-color:var(--primary-800, #42307D);border-radius:var(--small-8px, 8px) var(--small-8px, 8px);padding:16px 6px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-evenly}.sa-left-nav-container.menu-attached{border-radius:var(--small-8px, 8px) 0 0 var(--small-8px, 8px)}.sa-left-nav-items{flex:1;overflow-y:auto}.sa-left-nav-items-container{padding:var(--medium-28px) 0;height:100%;overflow:auto;box-sizing:border-box}.sa-left-nav-items-group{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-8px, 8px);align-self:stretch}.sa-left-nav-items{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-2px, 2px);align-self:stretch}.sa-left-nav-item,.sa-left-nav-footer-item .footer-item-icon{height:40px;width:40px;margin:0 auto;cursor:pointer;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center}.sa-icon-label{color:var(--icon-white,#fff);font-size:var(--small-10px,10px);text-align:center;margin:0}::-webkit-scrollbar{display:none}.sa-left-nav-footer-item{margin:0 auto;gap:var(--small-2px, 2px);display:flex;flex-direction:column;align-items:center}.sa-left-nav-item:hover,.sa-left-nav-item.active,.sa-left-nav-footer-item .footer-item-icon.active,.sa-left-nav-footer-item .footer-item-icon:hover{background-color:var(--primary-500)}.sa-left-nav-item-name,.sa-left-nav-item-icon,.sa-left-nav-footer-icon,.sa-left-nav-footer-name{height:24px;width:24px;display:block}.sa-left-nav-item-name,mn.sa-left-nav-footer-name{display:flex;justify-content:center;align-items:center}.sa-left-nav-footer{min-height:fit-content;border-top:1px solid #fff}.sa-left-nav-content{width:calc(100% - 64px)}.sa-template-item-container{margin-bottom:.8rem;display:flex;justify-content:center}.sa-left-nav-footer-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-16px, 16px);align-self:stretch;margin-top:var(--small-16px, 16px)}.sa-template-item-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-8px, 8px)}\n"] }]
|
|
167
199
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }], propDecorators: { config: [{
|
|
168
200
|
type: Input,
|
|
169
201
|
args: ['config']
|
|
@@ -217,4 +249,4 @@ const data = {
|
|
|
217
249
|
tooltip: ''
|
|
218
250
|
}]
|
|
219
251
|
};
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVmdC1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9sZWZ0LW5hdi9sZWZ0LW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2xlZnQtbmF2L2xlZnQtbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBa0IsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBRWpJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsZ0VBQWdFO0FBRWhFLE9BQU8sRUFFTCxnQkFBZ0IsRUFDakIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQWtCekQsTUFBTSxPQUFPLGdCQUFnQjtJQWEzQixZQUFvQixLQUFxQixFQUFVLE1BQWM7UUFBN0MsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWGpFLG1CQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBSVosWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBUWpFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFD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O1NBQ2IsRUFBRTtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxFQUFFO1NBQ1QsRUFBRTtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsYUFBYTtZQUN0QixZQUFZLEVBQUUsSUFBSTtZQUNsQixJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7SUFDRixXQUFXLEVBQUUsQ0FBQztZQUNaLEtBQUssRUFBRSxNQUFNO1lBQ2IsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxhQUFhO1NBQ3ZCLEVBQUU7WUFDRCxLQUFLLEVBQUUsTUFBTTtZQUNiLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUFFLEVBQUU7WUFDWCxJQUFJLEVBQUUsUUFBUTtTQUNmLEVBQUU7WUFDRCxLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO0NBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3QsIElucHV0LCBPdXRwdXQsIHNpZ25hbCwgVmlld0NoaWxkLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuLy8gaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBNYXRUb29sdGlwLFxuICBNYXRUb29sdGlwTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWVudURpcmVjdGl2ZSB9IGZyb20gJy4uL21lbnUvbWVudS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU0FNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vbWVudS9tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJTGVmdE5hdiwgSUxlZnROYXZCbHVyRXZlbnQsIElMZWZ0TmF2Q2xpY2tFdmVudCwgSUxlZnROYXZJdGVtLCBJTGVmdE5hdkxvZ28gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2xlZnQtbmF2LWludGVyZmFjZSc7XG5pbXBvcnQgeyBJTWVudSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbWVudS5pbnRlcmZhY2UnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2EtbGVmdC1uYXYnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEF2YXRhckNvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWVudURpcmVjdGl2ZSxcbiAgICBTQU1lbnVDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbGVmdC1uYXYuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbGVmdC1uYXYuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgTGVmdE5hdkNvbXBvbmVudCB7XG5cbiAgaXNNZW51QXR0YWNoZWQgPSBzaWduYWwoZmFsc2UpO1xuICBASW5wdXQoJ2NvbmZpZycpIGNvbmZpZzogSUxlZnROYXY7XG4gIEBPdXRwdXQoJ2NsaWNrRXZlbnQnKSBjbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8SUxlZnROYXZDbGlja0V2ZW50PjtcbiAgQE91dHB1dCgnaG92ZXJFdmVudCcpIGhvdmVyRXZlbnQ6IEV2ZW50RW1pdHRlcjxJTGVmdE5hdkJsdXJFdmVudD47XG4gIEBPdXRwdXQoJ29uRXZlbnQnKSBvbkV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBASW5qZWN0KEFjdGl2YXRlZFJvdXRlKSBhY3RpdmVSb3V0ZVNlcnZpY2U6IEFjdGl2YXRlZFJvdXRlO1xuICAvLyBASW5qZWN0KFJvdXRlcikgcm91dGVyU2VydmljZTogUm91dGVyO1xuXG4gIHByaXZhdGUgYWN0aXZlSXRlbTogSUxlZnROYXZJdGVtIHwgbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIHRoaXMuY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLmhvdmVyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNvbmZpZy5pdGVtcyk7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5mb290ZXJJdGVtcykge1xuICAgICAgdGhpcy5jb25maWcuZm9vdGVySXRlbXMgPSBkYXRhLmZvb3Rlckl0ZW1zO1xuICAgIH1cblxuICAgIC8vIFRoaXMgbG9naWMgc2hvdWxkIG5vdCBiZSBhcyBwYXJ0IG9mIHRoZSBsaWJyYXJ5LiBJdCBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAgLy8gaWYgKHRoaXMuY29uZmlnPy5pdGVtcz8ubGVuZ3RoKSB7XG4gICAgLy8gICB0aGlzLm9uTmF2SXRlbUNsaWNrKHRoaXMuY29uZmlnLml0ZW1zWzBdLCAwKTtcbiAgICAvLyB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgXG4gIH1cblxuICBzZXRJdGVtQWN0aXZlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuYWN0aXZlSXRlbSkge1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0uYWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jb25maWc/Lml0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtID0gdGhpcy5jb25maWcuaXRlbXNbaW5kZXhdO1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICB9XG4gIH1cblxuICBvbk5hdkl0ZW1DbGljayhpdGVtOiBJTGVmdE5hdkl0ZW0sIGluZGV4OiBudW1iZXIsIGV2ZW50OiBhbnkgPSBudWxsKSB7XG4gICAgLy8gY29uc29sZS5sb2coaXRlbSwgaW5kZXgpO1xuXG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoe1xuICAgICAgZXZlbnQsXG4gICAgICB0eXBlOiAnTkFWX0lURU1fQ0xJQ0snLFxuICAgICAgaXRlbVxuICAgIH0pO1xuICAgIHRoaXMuY29uZmlnLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uYWN0aXZlID0gZmFsc2UpO1xuICAgIHRoaXMuY29uZmlnLml0ZW1zW2luZGV4XS5hY3RpdmUgPSB0cnVlO1xuICAgIFxuICAgIGlmICghaXRlbS5kaXNhYmxlICYmIGl0ZW0ucGF0aCkge1xuICAgICAgdGhpcy5zZXRJdGVtQWN0aXZlKGluZGV4KTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtpdGVtLnBhdGhdKVxuICAgIH1cbiAgICB0aGlzLm9uRXZlbnQuZW1pdCh7IGl0ZW0sIGluZGV4LCBldmVudCB9KTtcbiAgfVxuXG4gIG9uRm9vdGVySXRlbUNsaWNrKGl0ZW06IElMZWZ0TmF2SXRlbSwgaW5kZXg6IG51bWJlciwgZXZlbnQ6IGFueSA9IG51bGwpIHtcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7XG4gICAgICBldmVudCxcbiAgICAgIHR5cGU6ICdGT09URVJfSVRFTV9DTElDSycsXG4gICAgICBpdGVtXG4gICAgfSk7XG4gIH1cbiAgb25Gb290ZXJJdGVtQmx1cihpdGVtOiBJTGVmdE5hdkl0ZW0sIGluZGV4OiBudW1iZXIsIGV2ZW50OiBhbnkgPSBudWxsLCB0b29sdGlwOiBNYXRUb29sdGlwKSB7XG4gICAgLy8gY29uc29sZS5sb2coXCJibHVyXCIsIGl0ZW0sIGluZGV4KTtcbiAgICB0aGlzLmhvdmVyRXZlbnQuZW1pdCh7XG4gICAgICBldmVudCxcbiAgICAgIHR5cGU6ICdGT09URVJfSVRFTV9IT1ZFUicsXG4gICAgICBpdGVtXG4gICAgfSk7XG4gICAgaWYgKHRvb2x0aXApIHtcbiAgICAgIHRvb2x0aXAuc2hvdygpO1xuICAgIH1cbiAgfVxuICBvbk5hdkl0ZW1CbHVyKGl0ZW06IElMZWZ0TmF2SXRlbSwgaW5kZXg6IG51bWJlciwgZXZlbnQ6IGFueSA9IG51bGwsIHRvb2x0aXA6IE1hdFRvb2x0aXApIHtcbiAgICAvLyBjb25zb2xlLmxvZyhpdGVtLCBpbmRleCk7XG4gICAgdGhpcy5ob3ZlckV2ZW50LmVtaXQoe1xuICAgICAgZXZlbnQsXG4gICAgICB0eXBlOiAnTkFWX0lURU1fSE9WRVInLFxuICAgICAgaXRlbVxuICAgIH0pO1xuICAgIGlmICh0b29sdGlwKSB7XG4gICAgICB0b29sdGlwLnNob3coKTtcbiAgICB9XG4gIH1cblxuICBvblRlbXBsYXRlSXRlbUNsaWNrKGV2ZW50OiBhbnksIGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KHtcbiAgICAgIGV2ZW50LFxuICAgICAgaXRlbSxcbiAgICAgIHR5cGU6ICdURU1QTEFURV9JVEVNX0NMSUNLJ1xuICAgIH0pO1xuICB9XG5cbiAgb25NZW51RXZlbnQoZXZlbnQ6IGFueSl7XG4gICAgY29uc29sZS5sb2coJ29uTWVudUV2ZW50JywgZXZlbnQpXG4gIH1cblxuICBvbkxvZ29DbGljayhldmVudDogYW55LCBsb2dvOiBJTGVmdE5hdkxvZ28pIHtcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7XG4gICAgICBldmVudCxcbiAgICAgIHR5cGU6ICdMT0dPX0NMSUNLJyxcbiAgICAgIGl0ZW06IHtcbiAgICAgICAgLi4ubG9nbyxcbiAgICAgICAgdGl0bGU6IGxvZ28uYWx0VGV4dFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXIgZm9yIHRoZSBvbkF0dGFjaGVkIGV2ZW50IGZyb20gdGhlIE1lbnVEaXJlY3RpdmVcbiAgICogVGhpcyBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgc2FNZW51IGRpcmVjdGl2ZSBpcyBhdHRhY2hlZCB0byBhbiBlbGVtZW50XG4gICAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgZGF0YSBjb250YWluaW5nIHRoZSBlbGVtZW50IGFuZCBtZW51IGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIGl0ZW1UeXBlIFRoZSB0eXBlIG9mIGl0ZW0gKCduYXYnIG9yICdmb290ZXInKVxuICAgKiBAcGFyYW0gaXRlbSBUaGUgbmF2L2Zvb3RlciBpdGVtIHRoYXQgdGhlIG1lbnUgaXMgYXR0YWNoZWQgdG9cbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgaXRlbSBpbiB0aGUgaXRlbXMgYXJyYXlcbiAgICovXG4gIG9uTWVudUF0dGFjaGVkKGV2ZW50OiB7IGVsZW1lbnQ6IEVsZW1lbnRSZWYsIG1lbnU6IElNZW51IH0sIGl0ZW1UeXBlOiAnbmF2JyB8ICdmb290ZXInLCBpdGVtOiBJTGVmdE5hdkl0ZW0sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAvLyBFbWl0IGFuIGV2ZW50IHRoYXQgY2FuIGJlIGNhcHR1cmVkIGJ5IHBhcmVudCBhcHBsaWNhdGlvbnNcbiAgICBjb25zb2xlLmxvZygnTWVudSBhdHRhY2hlZDonLCBldmVudCk7XG4gICAgdGhpcy5pc01lbnVBdHRhY2hlZC5zZXQodHJ1ZSk7XG4gICAgdGhpcy5vbkV2ZW50LmVtaXQoe1xuICAgICAgdHlwZTogJ01FTlVfQVRUQUNIRUQnLFxuICAgICAgaXRlbVR5cGUsXG4gICAgICBpdGVtLFxuICAgICAgaW5kZXgsXG4gICAgICBlbGVtZW50OiBldmVudC5lbGVtZW50LFxuICAgICAgbWVudTogZXZlbnQubWVudVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXIgZm9yIHRoZSBvbkRldGFjaGVkIGV2ZW50IGZyb20gdGhlIE1lbnVEaXJlY3RpdmVcbiAgICogVGhpcyBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgbWVudSBpcyBjbG9zZWQvZGV0YWNoZWRcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCBkYXRhIGNvbnRhaW5pbmcgdGhlIGVsZW1lbnQgYW5kIG1lbnUgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gaXRlbVR5cGUgVGhlIHR5cGUgb2YgaXRlbSAoJ25hdicgb3IgJ2Zvb3RlcicpXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBuYXYvZm9vdGVyIGl0ZW0gdGhhdCB0aGUgbWVudSB3YXMgYXR0YWNoZWQgdG9cbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgaXRlbSBpbiB0aGUgaXRlbXMgYXJyYXlcbiAgICovXG4gIG9uTWVudURldGFjaGVkKGV2ZW50OiB7IGVsZW1lbnQ6IEVsZW1lbnRSZWYsIG1lbnU6IElNZW51IH0sIGl0ZW1UeXBlOiAnbmF2JyB8ICdmb290ZXInLCBpdGVtOiBJTGVmdE5hdkl0ZW0sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnTWVudSBkZXRhY2hlZDonLCBldmVudCk7XG4gICAgdGhpcy5pc01lbnVBdHRhY2hlZC5zZXQoZmFsc2UpO1xuICAgIHRoaXMub25FdmVudC5lbWl0KHtcbiAgICAgIHR5cGU6ICdNRU5VX0RFVEFDSEVEJyxcbiAgICAgIGl0ZW1UeXBlLFxuICAgICAgaXRlbSxcbiAgICAgIGluZGV4LFxuICAgICAgZWxlbWVudDogZXZlbnQuZWxlbWVudCxcbiAgICAgIG1lbnU6IGV2ZW50Lm1lbnVcbiAgICB9KTtcbiAgfVxuXG5cbn1cblxuXG5jb25zdCBkYXRhOiBJTGVmdE5hdiA9IHtcbiAgaXRlbXM6IFt7XG4gICAgdGl0bGU6ICdIb21lJyxcbiAgICBpY29uOiAnJyxcbiAgICBkaXNhYmxlOiBmYWxzZSxcbiAgICB0b29sdGlwOiAnJyxcbiAgICByZWxhdGl2ZVBhdGg6IHRydWUsXG4gICAgcGF0aDogJ2hvbWUnXG4gIH0sIHtcbiAgICB0aXRsZTogJ1ByaWNpbmcnLFxuICAgIGljb246ICcnLFxuICAgIGRpc2FibGU6IHRydWUsXG4gICAgdG9vbHRpcDogJycsXG4gICAgcmVsYXRpdmVQYXRoOiB0cnVlLFxuICAgIHBhdGg6ICcnXG4gIH0sIHtcbiAgICB0aXRsZTogJ1NldHRpbmcnLFxuICAgIGljb246ICdzZXR0aW5nc091dGxpbmVkJyxcbiAgICBkaXNhYmxlOiB0cnVlLFxuICAgIHRvb2x0aXA6ICdjb21pbmcgc29vbicsXG4gICAgcmVsYXRpdmVQYXRoOiB0cnVlLFxuICAgIHBhdGg6ICcnXG4gIH1dLFxuICBmb290ZXJJdGVtczogW3tcbiAgICB0aXRsZTogJ0hlbHAnLFxuICAgIGljb246ICdjaGF0SGVscE91dGxpbmVkJyxcbiAgICBkaXNhYmxlOiB0cnVlLFxuICAgIHRvb2x0aXA6ICdjb21pbmcgc29vbidcbiAgfSwge1xuICAgIHRpdGxlOiAnTmFtZScsXG4gICAgZGlzYWJsZTogZmFsc2UsXG4gICAgdG9vbHRpcDogJycsXG4gICAgdHlwZTogJ0FWQVRBUidcbiAgfSwge1xuICAgIHRpdGxlOiAnQ2hldnJvbicsXG4gICAgaWNvbjogJ2RvdWJsZURvd25PdXRsaW5lZCcsXG4gICAgZGlzYWJsZTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnJ1xuICB9XVxufSIsIjxkaXYgY2xhc3M9XCJzYS1sZWZ0LW5hdlwiID5cblxuICAgIDxkaXYgY2xhc3M9XCJzYS1sZWZ0LW5hdi1jb250YWluZXIge3tpc01lbnVBdHRhY2hlZCgpID8gJ21lbnUtYXR0YWNoZWQnIDogJyd9fVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtbG9nb1wiPlxuICAgICAgICAgICAgPHNhLWljb24gKGNsaWNrKT1cIm9uTG9nb0NsaWNrKCRldmVudCwgY29uZmlnPy5sb2dvKVwiIFttYXRUb29sdGlwXT1cImNvbmZpZz8ubG9nbz8udG9vbHRpcFwiIFttYXRUb29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiIFtpY29uXT1cImNvbmZpZz8ubG9nbz8uaWNvblwiIFtzaXplXT1cImNvbmZpZz8ubG9nbz8uc2l6ZVwiPjwvc2EtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYS1sZWZ0LW5hdi1pdGVtcy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIEBpZihjb25maWcgJiYgY29uZmlnPy5pdGVtcyAmJiAhIWNvbmZpZz8uaXRlbXM/Lmxlbmd0aCl7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtaXRlbXMtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZz8uaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtaXRlbVwiIFtuZ0NsYXNzXT1cIml0ZW0uYWN0aXZlID8gJ2FjdGl2ZScgOiAnJyBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NhTWVudV09XCJpdGVtLm1lbnVcIiAob25FdmVudCk9XCJvbkV2ZW50LmVtaXQoJGV2ZW50KVwiICAob25NZW51RXZlbnQpPVwib25NZW51RXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAob25BdHRhY2hlZCk9XCJvbk1lbnVBdHRhY2hlZCgkZXZlbnQsICduYXYnLCBpdGVtLCBpKVwiIChvbkRldGFjaGVkKT1cIm9uTWVudURldGFjaGVkKCRldmVudCwgJ25hdicsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkl0ZW1DbGljayhpdGVtLCBpLCAkZXZlbnQpXCIgKG1vdXNlZW50ZXIpPVwib25OYXZJdGVtQmx1cihpdGVtLGksJGV2ZW50LHRvb2x0aXApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICN0b29sdGlwPVwibWF0VG9vbHRpcFwiIFttYXRUb29sdGlwXT1cIml0ZW0udG9vbHRpcFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1pY29uIGNsYXNzPVwic2EtbGVmdC1uYXYtaXRlbS1pY29uXCIgW2ljb25dPVwiaXRlbS5pY29uXCIgW3NpemVdPVwiaXRlbS5pY29uU2l6ZSB8fCAnMjQnXCIgW2NvbG9yXT1cIml0ZW0uY29sb3IgfHwgJ3doaXRlJ1wiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+e3tpdGVtLnRvb2x0aXB9fTwvc3Bhbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwic2EtbGVmdC1uYXYtaXRlbS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyBpdGVtLmljb25fdXJsICsgJyknIH1cIj48L3NwYW4+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNhLWljb24tbGFiZWxcIj57e2l0ZW0uaWNvbkxhYmVsfX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2EtdGVtcGxhdGUtaXRlbS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIEBpZihjb25maWcgJiYgY29uZmlnLnRlbXBsYXRlSXRlbXMgJiYgISFjb25maWcudGVtcGxhdGVJdGVtcy5sZW5ndGgpe1xuICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwib25UZW1wbGF0ZUl0ZW1DbGljaygkZXZlbnQsIGksIGl0ZW0pXCIgY2xhc3M9XCJzYS10ZW1wbGF0ZS1pdGVtXCIgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc05hbWVcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb25maWcudGVtcGxhdGVJdGVtczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxzYS1pY29uIFttYXRUb29sdGlwXT1cIml0ZW0udG9vbHRpcFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCIgW2ljb25dPVwiaXRlbS5pY29uXCIgW3NpemVdPVwiaXRlbS5pY29uU2l6ZSB8fCAnMjQnXCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIj48L3NhLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYS1sZWZ0LW5hdi1mb290ZXJcIj5cbiAgICAgICAgICAgIEBpZihjb25maWcgJiYgY29uZmlnLmZvb3Rlckl0ZW1zICYmICEhY29uZmlnLmZvb3Rlckl0ZW1zLmxlbmd0aCl7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtZm9vdGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1sZWZ0LW5hdi1mb290ZXItaXRlbVwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NOYW1lXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29uZmlnLmZvb3Rlckl0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItaXRlbS1pY29uXCIgW25nQ2xhc3NdPVwiaXRlbS5hY3RpdmUgPyAnYWN0aXZlJyA6ICcnIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Gb290ZXJJdGVtQ2xpY2soaXRlbSwgaSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2FNZW51XT1cIml0ZW0ubWVudVwiIChvbkF0dGFjaGVkKT1cIm9uTWVudUF0dGFjaGVkKCRldmVudCwgJ2Zvb3RlcicsIGl0ZW0sIGkpXCIgKG9uRGV0YWNoZWQpPVwib25NZW51RGV0YWNoZWQoJGV2ZW50LCAnZm9vdGVyJywgaXRlbSwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Gb290ZXJJdGVtQmx1cihpdGVtLGksJGV2ZW50LHRvb2x0aXApXCIgI3Rvb2x0aXA9XCJtYXRUb29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIml0ZW0udG9vbHRpcFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYoaXRlbS50eXBlID09PSAnQVZBVEFSJyl7XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwic2EtbGVmdC1uYXYtZm9vdGVyLW5hbWVcIj5FVDwvc3Bhbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2EtYXZhdGFyIFthbHRUZXh0XT1cIml0ZW0uYWx0VGV4dFwiIFtpbWFnZVBhdGhdPVwiJydcIiBzaXplPVwiZXh0cmEtc21hbGxcIj48L3NhLWF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZXtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1pY29uIGNsYXNzPVwic2EtbGVmdC1uYXYtZm9vdGVyLWljb25cIiBbaWNvbl09XCJpdGVtLmljb25cIiBzaXplPVwiMjRcIiBjb2xvcj1cIndoaXRlXCI+PC9zYS1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInNhLWxlZnQtbmF2LWZvb3Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWltYWdlJzogJ3VybCgnICsgaXRlbS5pY29uX3VybCB8fCAnJyArICcpJyB9XCI+PC9zcGFuPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic2EtaWNvbi1sYWJlbFwiPnt7aXRlbS5pY29uTGFiZWx9fTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJzYS1sZWZ0LW5hdi1jb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuPC9kaXY+Il19
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVmdC1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9sZWZ0LW5hdi9sZWZ0LW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2xlZnQtbmF2L2xlZnQtbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBa0IsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBRTNKLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsZ0VBQWdFO0FBRWhFLE9BQU8sRUFFTCxnQkFBZ0IsRUFDakIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQWtCekQsTUFBTSxPQUFPLGdCQUFnQjtJQWlCM0IsWUFBb0IsS0FBcUIsRUFBVSxNQUFjO1FBQTdDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWZqRSx1REFBdUQ7UUFDdkQsbUJBQWMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0IscUNBQXFDO1FBQzdCLHNCQUFpQixHQUF5RCxJQUFJLENBQUM7UUFJcEUsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBUWpFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVB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TUFBTSxJQUFJLEdBQWE7SUFDckIsS0FBSyxFQUFFLENBQUM7WUFDTixLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxNQUFNO1NBQ2IsRUFBRTtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxFQUFFO1NBQ1QsRUFBRTtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsYUFBYTtZQUN0QixZQUFZLEVBQUUsSUFBSTtZQUNsQixJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7SUFDRixXQUFXLEVBQUUsQ0FBQztZQUNaLEtBQUssRUFBRSxNQUFNO1lBQ2IsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxhQUFhO1NBQ3ZCLEVBQUU7WUFDRCxLQUFLLEVBQUUsTUFBTTtZQUNiLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUFFLEVBQUU7WUFDWCxJQUFJLEVBQUUsUUFBUTtTQUNmLEVBQUU7WUFDRCxLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO0NBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgc2lnbmFsLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG4vLyBpbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIE1hdFRvb2x0aXAsXG4gIE1hdFRvb2x0aXBNb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNZW51RGlyZWN0aXZlIH0gZnJvbSAnLi4vbWVudS9tZW51LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTQU1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9tZW51L21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IElMZWZ0TmF2LCBJTGVmdE5hdkJsdXJFdmVudCwgSUxlZnROYXZDbGlja0V2ZW50LCBJTGVmdE5hdkl0ZW0sIElMZWZ0TmF2TG9nbyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbGVmdC1uYXYtaW50ZXJmYWNlJztcbmltcG9ydCB7IElNZW51IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9tZW51LmludGVyZmFjZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYS1sZWZ0LW5hdicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNZW51RGlyZWN0aXZlLFxuICAgIFNBTWVudUNvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9sZWZ0LW5hdi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9sZWZ0LW5hdi5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBMZWZ0TmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICAvLyBTaWduYWwgdG8gdHJhY2sgaWYgYSBtZW51IGlzIGN1cnJlbnRseSBhdHRhY2hlZC9vcGVuXG4gIGlzTWVudUF0dGFjaGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgXG4gIC8vIFRyYWNrIHdoaWNoIG1lbnUgaXMgY3VycmVudGx5IG9wZW5cbiAgcHJpdmF0ZSBhY3RpdmVNZW51SXRlbVJlZjogeyBpdGVtVHlwZTogJ25hdicgfCAnZm9vdGVyJywgaW5kZXg6IG51bWJlciB9IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgnY29uZmlnJykgY29uZmlnOiBJTGVmdE5hdjtcbiAgQE91dHB1dCgnY2xpY2tFdmVudCcpIGNsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxJTGVmdE5hdkNsaWNrRXZlbnQ+O1xuICBAT3V0cHV0KCdob3ZlckV2ZW50JykgaG92ZXJFdmVudDogRXZlbnRFbWl0dGVyPElMZWZ0TmF2Qmx1ckV2ZW50PjtcbiAgQE91dHB1dCgnb25FdmVudCcpIG9uRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8vIEBJbmplY3QoQWN0aXZhdGVkUm91dGUpIGFjdGl2ZVJvdXRlU2VydmljZTogQWN0aXZhdGVkUm91dGU7XG4gIC8vIEBJbmplY3QoUm91dGVyKSByb3V0ZXJTZXJ2aWNlOiBSb3V0ZXI7XG5cbiAgcHJpdmF0ZSBhY3RpdmVJdGVtOiBJTGVmdE5hdkl0ZW0gfCBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgdGhpcy5jbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIHRoaXMuaG92ZXJFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnNvbGUubG9nKHRoaXMuY29uZmlnLml0ZW1zKTtcbiAgICBpZiAoIXRoaXMuY29uZmlnLmZvb3Rlckl0ZW1zKSB7XG4gICAgICB0aGlzLmNvbmZpZy5mb290ZXJJdGVtcyA9IGRhdGEuZm9vdGVySXRlbXM7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBsb2dpYyBzaG91bGQgbm90IGJlIGFzIHBhcnQgb2YgdGhlIGxpYnJhcnkuIEl0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBhcHBsaWNhdGlvbi5cbiAgICAvLyBpZiAodGhpcy5jb25maWc/Lml0ZW1zPy5sZW5ndGgpIHtcbiAgICAvLyAgIHRoaXMub25OYXZJdGVtQ2xpY2sodGhpcy5jb25maWcuaXRlbXNbMF0sIDApO1xuICAgIC8vIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10gJiYgIWNoYW5nZXNbJ2NvbmZpZyddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAvLyBIYW5kbGUgY29uZmlnIGNoYW5nZXNcbiAgICAgIGNvbnNvbGUubG9nKCdDb25maWcgY2hhbmdlZDonLCBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgXG4gICAgICAvLyBVcGRhdGUgYW55IGRlcml2ZWQgc3RhdGUgb3IgdHJpZ2dlciBVSSB1cGRhdGVzXG4gICAgICBpZiAodGhpcy5jb25maWc/Lml0ZW1zKSB7XG4gICAgICAgIC8vIEZpbmQgYW5kIG1haW50YWluIGFjdGl2ZSBzdGF0ZSB3aGVuIGNvbmZpZyBjaGFuZ2VzXG4gICAgICAgIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHRoaXMuY29uZmlnLml0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uYWN0aXZlKTtcbiAgICAgICAgaWYgKGFjdGl2ZUl0ZW1JbmRleCA+PSAwKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVJdGVtID0gdGhpcy5jb25maWcuaXRlbXNbYWN0aXZlSXRlbUluZGV4XTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gVG8gZW5zdXJlIEFuZ3VsYXIncyBjaGFuZ2UgZGV0ZWN0aW9uIHByb3Blcmx5IHByb3BhZ2F0ZXMgY2hhbmdlcyB0byB0aGUgbWVudSBkaXJlY3RpdmUsXG4gICAgICAgIC8vIHdlIGNhbiB1c2UgdGhlIE9iamVjdC5hc3NpZ24gYXBwcm9hY2ggd2hpY2ggcHJlc2VydmVzIG9iamVjdCByZWZlcmVuY2VzIGJ1dCB1cGRhdGVzIHByb3BlcnRpZXNcbiAgICAgICAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIEFuZ3VsYXIncyBPblB1c2ggY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneSBpbiBjaGlsZCBjb21wb25lbnRzXG4gICAgICAgIFxuICAgICAgICAvLyBVcGRhdGUgbWVudSBvYmplY3RzIGluIGl0ZW1zIHdpdGhvdXQgY2hhbmdpbmcgdGhlaXIgcmVmZXJlbmNlc1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVNZW51SXRlbVJlZiAmJiB0aGlzLmFjdGl2ZU1lbnVJdGVtUmVmLml0ZW1UeXBlID09PSAnbmF2Jykge1xuICAgICAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gdGhpcy5hY3RpdmVNZW51SXRlbVJlZi5pbmRleDtcbiAgICAgICAgICBpZiAodGhpcy5jb25maWcuaXRlbXNbYWN0aXZlSW5kZXhdPy5tZW51KSB7XG4gICAgICAgICAgICAvLyBVc2luZyBhIGNvbnNvbGUubG9nIHRvIHZpc3VhbGx5IHZlcmlmeSB0aGUgYXBwcm9hY2ggaXMgYmVpbmcgYXBwbGllZFxuICAgICAgICAgICAgY29uc29sZS5sb2coJ01haW50YWluaW5nIG1lbnUgcmVmZXJlbmNlIGZvciBhY3RpdmUgbmF2IGl0ZW06JywgYWN0aXZlSW5kZXgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldEl0ZW1BY3RpdmUoaW5kZXg6IG51bWJlcikge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlSXRlbS5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNvbmZpZz8uaXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0gPSB0aGlzLmNvbmZpZy5pdGVtc1tpbmRleF07XG4gICAgICAgIHRoaXMuYWN0aXZlSXRlbS5hY3RpdmUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgIH1cbiAgfVxuXG4gIG9uTmF2SXRlbUNsaWNrKGl0ZW06IElMZWZ0TmF2SXRlbSwgaW5kZXg6IG51bWJlciwgZXZlbnQ6IGFueSA9IG51bGwpIHtcbiAgICAvLyBjb25zb2xlLmxvZyhpdGVtLCBpbmRleCk7XG5cbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7XG4gICAgICBldmVudCxcbiAgICAgIHR5cGU6ICdOQVZfSVRFTV9DTElDSycsXG4gICAgICBpdGVtXG4gICAgfSk7XG4gICAgdGhpcy5jb25maWcuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5hY3RpdmUgPSBmYWxzZSk7XG4gICAgdGhpcy5jb25maWcuaXRlbXNbaW5kZXhdLmFjdGl2ZSA9IHRydWU7XG4gICAgXG4gICAgaWYgKCFpdGVtLmRpc2FibGUgJiYgaXRlbS5wYXRoKSB7XG4gICAgICB0aGlzLnNldEl0ZW1BY3RpdmUoaW5kZXgpO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2l0ZW0ucGF0aF0pXG4gICAgfVxuICAgIHRoaXMub25FdmVudC5lbWl0KHsgaXRlbSwgaW5kZXgsIGV2ZW50IH0pO1xuICB9XG5cbiAgb25Gb290ZXJJdGVtQ2xpY2soaXRlbTogSUxlZnROYXZJdGVtLCBpbmRleDogbnVtYmVyLCBldmVudDogYW55ID0gbnVsbCkge1xuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KHtcbiAgICAgIGV2ZW50LFxuICAgICAgdHlwZTogJ0ZPT1RFUl9JVEVNX0NMSUNLJyxcbiAgICAgIGl0ZW1cbiAgICB9KTtcbiAgfVxuICBvbkZvb3Rlckl0ZW1CbHVyKGl0ZW06IElMZWZ0TmF2SXRlbSwgaW5kZXg6IG51bWJlciwgZXZlbnQ6IGFueSA9IG51bGwsIHRvb2x0aXA6IE1hdFRvb2x0aXApIHtcbiAgICAvLyBjb25zb2xlLmxvZyhcImJsdXJcIiwgaXRlbSwgaW5kZXgpO1xuICAgIHRoaXMuaG92ZXJFdmVudC5lbWl0KHtcbiAgICAgIGV2ZW50LFxuICAgICAgdHlwZTogJ0ZPT1RFUl9JVEVNX0hPVkVSJyxcbiAgICAgIGl0ZW1cbiAgICB9KTtcbiAgICBpZiAodG9vbHRpcCkge1xuICAgICAgdG9vbHRpcC5zaG93KCk7XG4gICAgfVxuICB9XG4gIG9uTmF2SXRlbUJsdXIoaXRlbTogSUxlZnROYXZJdGVtLCBpbmRleDogbnVtYmVyLCBldmVudDogYW55ID0gbnVsbCwgdG9vbHRpcDogTWF0VG9vbHRpcCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGl0ZW0sIGluZGV4KTtcbiAgICB0aGlzLmhvdmVyRXZlbnQuZW1pdCh7XG4gICAgICBldmVudCxcbiAgICAgIHR5cGU6ICdOQVZfSVRFTV9IT1ZFUicsXG4gICAgICBpdGVtXG4gICAgfSk7XG4gICAgaWYgKHRvb2x0aXApIHtcbiAgICAgIHRvb2x0aXAuc2hvdygpO1xuICAgIH1cbiAgfVxuXG4gIG9uVGVtcGxhdGVJdGVtQ2xpY2soZXZlbnQ6IGFueSwgaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoe1xuICAgICAgZXZlbnQsXG4gICAgICBpdGVtLFxuICAgICAgdHlwZTogJ1RFTVBMQVRFX0lURU1fQ0xJQ0snXG4gICAgfSk7XG4gIH1cblxuICBvbk1lbnVFdmVudChldmVudDogYW55KXtcbiAgICBjb25zb2xlLmxvZygnb25NZW51RXZlbnQnLCBldmVudClcbiAgfVxuXG4gIG9uTG9nb0NsaWNrKGV2ZW50OiBhbnksIGxvZ286IElMZWZ0TmF2TG9nbykge1xuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KHtcbiAgICAgIGV2ZW50LFxuICAgICAgdHlwZTogJ0xPR09fQ0xJQ0snLFxuICAgICAgaXRlbToge1xuICAgICAgICAuLi5sb2dvLFxuICAgICAgICB0aXRsZTogbG9nby5hbHRUZXh0XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlciBmb3IgdGhlIG9uQXR0YWNoZWQgZXZlbnQgZnJvbSB0aGUgTWVudURpcmVjdGl2ZVxuICAgKiBUaGlzIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBzYU1lbnUgZGlyZWN0aXZlIGlzIGF0dGFjaGVkIHRvIGFuIGVsZW1lbnRcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCBkYXRhIGNvbnRhaW5pbmcgdGhlIGVsZW1lbnQgYW5kIG1lbnUgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gaXRlbVR5cGUgVGhlIHR5cGUgb2YgaXRlbSAoJ25hdicgb3IgJ2Zvb3RlcicpXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBuYXYvZm9vdGVyIGl0ZW0gdGhhdCB0aGUgbWVudSBpcyBhdHRhY2hlZCB0b1xuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBpdGVtIGluIHRoZSBpdGVtcyBhcnJheVxuICAgKi9cbiAgb25NZW51QXR0YWNoZWQoZXZlbnQ6IHsgZWxlbWVudDogRWxlbWVudFJlZiwgbWVudTogSU1lbnUgfSwgaXRlbVR5cGU6ICduYXYnIHwgJ2Zvb3RlcicsIGl0ZW06IElMZWZ0TmF2SXRlbSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIC8vIEVtaXQgYW4gZXZlbnQgdGhhdCBjYW4gYmUgY2FwdHVyZWQgYnkgcGFyZW50IGFwcGxpY2F0aW9uc1xuICAgIGNvbnNvbGUubG9nKCdNZW51IGF0dGFjaGVkOicsIGV2ZW50KTtcbiAgICB0aGlzLmlzTWVudUF0dGFjaGVkLnNldCh0cnVlKTtcbiAgICBcbiAgICAvLyBUcmFjayB3aGljaCBtZW51IGlzIG9wZW5cbiAgICB0aGlzLmFjdGl2ZU1lbnVJdGVtUmVmID0geyBpdGVtVHlwZSwgaW5kZXggfTtcbiAgICBcbiAgICB0aGlzLm9uRXZlbnQuZW1pdCh7XG4gICAgICB0eXBlOiAnTUVOVV9BVFRBQ0hFRCcsXG4gICAgICBpdGVtVHlwZSxcbiAgICAgIGl0ZW0sXG4gICAgICBpbmRleCxcbiAgICAgIGVsZW1lbnQ6IGV2ZW50LmVsZW1lbnQsXG4gICAgICBtZW51OiBldmVudC5tZW51XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlciBmb3IgdGhlIG9uRGV0YWNoZWQgZXZlbnQgZnJvbSB0aGUgTWVudURpcmVjdGl2ZVxuICAgKiBUaGlzIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBtZW51IGlzIGNsb3NlZC9kZXRhY2hlZFxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IGRhdGEgY29udGFpbmluZyB0aGUgZWxlbWVudCBhbmQgbWVudSBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSBpdGVtVHlwZSBUaGUgdHlwZSBvZiBpdGVtICgnbmF2JyBvciAnZm9vdGVyJylcbiAgICogQHBhcmFtIGl0ZW0gVGhlIG5hdi9mb290ZXIgaXRlbSB0aGF0IHRoZSBtZW51IHdhcyBhdHRhY2hlZCB0b1xuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBpdGVtIGluIHRoZSBpdGVtcyBhcnJheVxuICAgKi9cbiAgb25NZW51RGV0YWNoZWQoZXZlbnQ6IHsgZWxlbWVudDogRWxlbWVudFJlZiwgbWVudTogSU1lbnUgfSwgaXRlbVR5cGU6ICduYXYnIHwgJ2Zvb3RlcicsIGl0ZW06IElMZWZ0TmF2SXRlbSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdNZW51IGRldGFjaGVkOicsIGV2ZW50KTtcbiAgICB0aGlzLmlzTWVudUF0dGFjaGVkLnNldChmYWxzZSk7XG4gICAgXG4gICAgLy8gQ2xlYXIgdGhlIGFjdGl2ZSBtZW51IHJlZmVyZW5jZVxuICAgIHRoaXMuYWN0aXZlTWVudUl0ZW1SZWYgPSBudWxsO1xuICAgIFxuICAgIHRoaXMub25FdmVudC5lbWl0KHtcbiAgICAgIHR5cGU6ICdNRU5VX0RFVEFDSEVEJyxcbiAgICAgIGl0ZW1UeXBlLFxuICAgICAgaXRlbSxcbiAgICAgIGluZGV4LFxuICAgICAgZWxlbWVudDogZXZlbnQuZWxlbWVudCxcbiAgICAgIG1lbnU6IGV2ZW50Lm1lbnVcbiAgICB9KTtcbiAgfVxuXG5cbn1cblxuXG5jb25zdCBkYXRhOiBJTGVmdE5hdiA9IHtcbiAgaXRlbXM6IFt7XG4gICAgdGl0bGU6ICdIb21lJyxcbiAgICBpY29uOiAnJyxcbiAgICBkaXNhYmxlOiBmYWxzZSxcbiAgICB0b29sdGlwOiAnJyxcbiAgICByZWxhdGl2ZVBhdGg6IHRydWUsXG4gICAgcGF0aDogJ2hvbWUnXG4gIH0sIHtcbiAgICB0aXRsZTogJ1ByaWNpbmcnLFxuICAgIGljb246ICcnLFxuICAgIGRpc2FibGU6IHRydWUsXG4gICAgdG9vbHRpcDogJycsXG4gICAgcmVsYXRpdmVQYXRoOiB0cnVlLFxuICAgIHBhdGg6ICcnXG4gIH0sIHtcbiAgICB0aXRsZTogJ1NldHRpbmcnLFxuICAgIGljb246ICdzZXR0aW5nc091dGxpbmVkJyxcbiAgICBkaXNhYmxlOiB0cnVlLFxuICAgIHRvb2x0aXA6ICdjb21pbmcgc29vbicsXG4gICAgcmVsYXRpdmVQYXRoOiB0cnVlLFxuICAgIHBhdGg6ICcnXG4gIH1dLFxuICBmb290ZXJJdGVtczogW3tcbiAgICB0aXRsZTogJ0hlbHAnLFxuICAgIGljb246ICdjaGF0SGVscE91dGxpbmVkJyxcbiAgICBkaXNhYmxlOiB0cnVlLFxuICAgIHRvb2x0aXA6ICdjb21pbmcgc29vbidcbiAgfSwge1xuICAgIHRpdGxlOiAnTmFtZScsXG4gICAgZGlzYWJsZTogZmFsc2UsXG4gICAgdG9vbHRpcDogJycsXG4gICAgdHlwZTogJ0FWQVRBUidcbiAgfSwge1xuICAgIHRpdGxlOiAnQ2hldnJvbicsXG4gICAgaWNvbjogJ2RvdWJsZURvd25PdXRsaW5lZCcsXG4gICAgZGlzYWJsZTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnJ1xuICB9XVxufSIsIjxkaXYgY2xhc3M9XCJzYS1sZWZ0LW5hdlwiID5cblxuICAgIDxkaXYgY2xhc3M9XCJzYS1sZWZ0LW5hdi1jb250YWluZXIge3tpc01lbnVBdHRhY2hlZCgpID8gJ21lbnUtYXR0YWNoZWQnIDogJyd9fVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtbG9nb1wiPlxuICAgICAgICAgICAgPHNhLWljb24gKGNsaWNrKT1cIm9uTG9nb0NsaWNrKCRldmVudCwgY29uZmlnPy5sb2dvKVwiIFttYXRUb29sdGlwXT1cImNvbmZpZz8ubG9nbz8udG9vbHRpcFwiIFttYXRUb29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiIFtpY29uXT1cImNvbmZpZz8ubG9nbz8uaWNvblwiIFtzaXplXT1cImNvbmZpZz8ubG9nbz8uaWNvblNpemVcIj48L3NhLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtaXRlbXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICBAaWYoY29uZmlnICYmIGNvbmZpZz8uaXRlbXMgJiYgISFjb25maWc/Lml0ZW1zPy5sZW5ndGgpe1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWl0ZW1zLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb25maWc/Lml0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1sZWZ0LW5hdi1pdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWl0ZW1cIiBbbmdDbGFzc109XCJpdGVtLmFjdGl2ZSA/ICdhY3RpdmUnIDogJycgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzYU1lbnVdPVwiaXRlbS5tZW51XCIgKG9uRXZlbnQpPVwib25FdmVudC5lbWl0KCRldmVudClcIiAgKG9uTWVudUV2ZW50KT1cIm9uTWVudUV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uQXR0YWNoZWQpPVwib25NZW51QXR0YWNoZWQoJGV2ZW50LCAnbmF2JywgaXRlbSwgaSlcIiAob25EZXRhY2hlZCk9XCJvbk1lbnVEZXRhY2hlZCgkZXZlbnQsICduYXYnLCBpdGVtLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZJdGVtQ2xpY2soaXRlbSwgaSwgJGV2ZW50KVwiIChtb3VzZWVudGVyKT1cIm9uTmF2SXRlbUJsdXIoaXRlbSxpLCRldmVudCx0b29sdGlwKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjdG9vbHRpcD1cIm1hdFRvb2x0aXBcIiBbbWF0VG9vbHRpcF09XCJpdGVtLnRvb2x0aXBcIiBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2EtaWNvbiBjbGFzcz1cInNhLWxlZnQtbmF2LWl0ZW0taWNvblwiIFtpY29uXT1cIml0ZW0uaWNvblwiIFtzaXplXT1cIml0ZW0uaWNvblNpemUgfHwgJzI0J1wiIFtjb2xvcl09XCJpdGVtLmNvbG9yIHx8ICd3aGl0ZSdcIj48L3NhLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuPnt7aXRlbS50b29sdGlwfX08L3NwYW4+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInNhLWxlZnQtbmF2LWl0ZW0taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWltYWdlJzogJ3VybCgnICsgaXRlbS5pY29uX3VybCArICcpJyB9XCI+PC9zcGFuPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzYS1pY29uLWxhYmVsXCI+e3tpdGVtLmljb25MYWJlbH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNhLXRlbXBsYXRlLWl0ZW0tY29udGFpbmVyXCI+XG4gICAgICAgICAgICBAaWYoY29uZmlnICYmIGNvbmZpZy50ZW1wbGF0ZUl0ZW1zICYmICEhY29uZmlnLnRlbXBsYXRlSXRlbXMubGVuZ3RoKXtcbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm9uVGVtcGxhdGVJdGVtQ2xpY2soJGV2ZW50LCBpLCBpdGVtKVwiIGNsYXNzPVwic2EtdGVtcGxhdGUtaXRlbVwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NOYW1lXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29uZmlnLnRlbXBsYXRlSXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8c2EtaWNvbiBbbWF0VG9vbHRpcF09XCJpdGVtLnRvb2x0aXBcIiBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiIFtpY29uXT1cIml0ZW0uaWNvblwiIFtzaXplXT1cIml0ZW0uaWNvblNpemUgfHwgJzI0J1wiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCI+PC9zYS1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtZm9vdGVyXCI+XG4gICAgICAgICAgICBAaWYoY29uZmlnICYmIGNvbmZpZy5mb290ZXJJdGVtcyAmJiAhIWNvbmZpZy5mb290ZXJJdGVtcy5sZW5ndGgpe1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWZvb3Rlci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtZm9vdGVyLWl0ZW1cIiBbbmdDbGFzc109XCJpdGVtLmNsYXNzTmFtZVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZy5mb290ZXJJdGVtczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWl0ZW0taWNvblwiIFtuZ0NsYXNzXT1cIml0ZW0uYWN0aXZlID8gJ2FjdGl2ZScgOiAnJyBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRm9vdGVySXRlbUNsaWNrKGl0ZW0sIGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NhTWVudV09XCJpdGVtLm1lbnVcIiAob25BdHRhY2hlZCk9XCJvbk1lbnVBdHRhY2hlZCgkZXZlbnQsICdmb290ZXInLCBpdGVtLCBpKVwiIChvbkRldGFjaGVkKT1cIm9uTWVudURldGFjaGVkKCRldmVudCwgJ2Zvb3RlcicsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uRm9vdGVySXRlbUJsdXIoaXRlbSxpLCRldmVudCx0b29sdGlwKVwiICN0b29sdGlwPVwibWF0VG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJpdGVtLnRvb2x0aXBcIiBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGl0ZW0udHlwZSA9PT0gJ0FWQVRBUicpe1xuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInNhLWxlZnQtbmF2LWZvb3Rlci1uYW1lXCI+RVQ8L3NwYW4+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWF2YXRhciBbYWx0VGV4dF09XCJpdGVtLmFsdFRleHRcIiBbaW1hZ2VQYXRoXT1cIicnXCIgc2l6ZT1cImV4dHJhLXNtYWxsXCI+PC9zYS1hdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2V7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2EtaWNvbiBjbGFzcz1cInNhLWxlZnQtbmF2LWZvb3Rlci1pY29uXCIgW2ljb25dPVwiaXRlbS5pY29uXCIgc2l6ZT1cIjI0XCIgY29sb3I9XCJ3aGl0ZVwiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJzYS1sZWZ0LW5hdi1mb290ZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGl0ZW0uaWNvbl91cmwgfHwgJycgKyAnKScgfVwiPjwvc3Bhbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNhLWljb24tbGFiZWxcIj57e2l0ZW0uaWNvbkxhYmVsfX08L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
|
|
@@ -19,8 +19,18 @@ export class SAMenuComponent {
|
|
|
19
19
|
this.activeTabIndex = 0; // Track the active tab index
|
|
20
20
|
}
|
|
21
21
|
ngOnChanges(changes) {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
if (changes['menu'] && changes['menu'].currentValue) {
|
|
23
|
+
console.log('Menu component detected changes:', changes['menu'].currentValue);
|
|
24
|
+
// Reset active tab index if tabs have changed
|
|
25
|
+
if (this.menu?.tabs?.length && this.activeTabIndex >= this.menu.tabs.length) {
|
|
26
|
+
this.activeTabIndex = 0;
|
|
27
|
+
}
|
|
28
|
+
// Prevent the menu from closing by stopping propagation of any events
|
|
29
|
+
// that might trigger menu closing during this update cycle
|
|
30
|
+
setTimeout(() => {
|
|
31
|
+
// This ensures the menu stays open after the change detection cycle completes
|
|
32
|
+
console.log('Menu update complete, menu should remain open');
|
|
33
|
+
}, 0);
|
|
24
34
|
}
|
|
25
35
|
}
|
|
26
36
|
ngAfterViewInit() {
|
|
@@ -47,11 +57,12 @@ export class SAMenuComponent {
|
|
|
47
57
|
onSearch(event) {
|
|
48
58
|
this.onEvent.emit({ type: 'SEARCH', value: event.target.value });
|
|
49
59
|
}
|
|
50
|
-
setActiveTab(index) {
|
|
60
|
+
setActiveTab(index, tabname) {
|
|
51
61
|
this.activeTabIndex = index; // Update the active tab index
|
|
62
|
+
this.onEvent.emit({ type: 'TAB_CLICK', activeTab: tabname, menu: this.menu });
|
|
52
63
|
}
|
|
53
64
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SAMenuComponent, deps: [{ token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: SAMenuComponent, isStandalone: true, selector: "sa-menu", inputs: { position: "position", menu: "menu", hostEl: "hostEl" }, outputs: { onEvent: "onEvent", onKeyUpEvent: "onKeyUpEvent", closeEvent: "closeEvent" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"sa-menu\" [ngClass]=\"menu.showTray ? 'sa-menu-tray sa-round-border' : ''\"
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: SAMenuComponent, isStandalone: true, selector: "sa-menu", inputs: { position: "position", menu: "menu", hostEl: "hostEl" }, outputs: { onEvent: "onEvent", onKeyUpEvent: "onKeyUpEvent", closeEvent: "closeEvent" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"sa-menu\" [ngClass]=\"menu.showTray ? 'sa-menu-tray sa-round-border' : ''\"\n [ngStyle]=\"{width: menu.width || 'max-content'}\">\n\n @if(menu?.title){\n <div class=\"sa-menu-title\">\n <h1>{{menu?.title}}</h1>\n <sa-icon [icon]=\"'closeOutlined'\" [size]=\"'20'\" class=\"sa-menu-close-icon\"\n (click)=\"closeEvent.emit($event)\"></sa-icon>\n </div>\n }\n\n @if(menu?.showSearch){\n <div class=\"search-container\">\n <sa-icon icon=\"search\"></sa-icon>\n <input class=\"search-input\" (keyup)=\"onSearch($event)\" type=\"text\" [placeholder]=\"menu.searchPlaceholder\" />\n <button *ngIf=\"menu?.showAddIcon\"><i class=\"fas fa-plus\"></i></button>\n </div>\n }\n\n <!-- @if(menu?.itemGroups && menu.itemGroups.length){\n @for (groupItem of menu.itemGroups; track groupItem) {\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n \n @for (item of groupItem.items; track $index) {\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n }\n } @else if(menu?.items && menu.items.length){\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n } -->\n\n\n <!-- Tab Content or Item Groups -->\n <div class=\"sa-menu-content\" *ngIf=\"menu?.itemGroups?.length || menu?.tabs?.length\">\n <!-- Tabs -->\n @if(menu?.tabs){\n <div class=\"sa-menu-tabs\">\n <button *ngFor=\"let tab of menu.tabs; let i = index\" [class.active]=\"i === activeTabIndex\"\n (click)=\"setActiveTab(i,tab.label)\">\n {{ tab.label }}\n <!-- ({{ tab.itemGroups.length }}) -->\n </button>\n </div>\n }\n <!-- Tabs End -->\n\n @if(menu?.tabs?.length){\n @if(menu.tabs[activeTabIndex]?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.tabs[activeTabIndex].itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n } @else if(menu?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n </div>\n\n @if(menu?.items && menu.items.length){\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n }\n\n</div>", styles: [".sa-menu{background-color:var(--primary-900);box-shadow:3px 4px 16px 4px #00000014;width:max-content;color:#fff;overflow-y:auto;max-height:100%}.sa-round-border{border-radius:8px}.sa-menu-tray{height:calc(100vh - 16px);margin-top:8px;border-top-left-radius:0;border-bottom-left-radius:0;background:var(--grey-700, #1D2939);padding:0 1rem 1rem}sa-menu-item{cursor:pointer;display:block}.sa-menu-title{display:flex;justify-content:space-between;align-items:center;position:fixed;padding:1rem 0 .5rem;height:64px;width:calc(100% - 2rem);border-bottom:1px solid var(--primary-50, #F4EBFF);background:var(--grey-700, #1D2939)}.sa-menu-title h1{color:var(--grey-100, #EAECF0);font-family:var(--font-family, Roboto);font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.5px;margin-bottom:0;margin-top:0}.sa-menu-close-icon{cursor:pointer;margin-left:auto;height:20px}.search-container{position:relative;display:flex;align-items:center;margin-bottom:1rem}.search-container input{flex:1;padding:.5rem .5rem .5rem 2rem;background-color:#4a5568;border-radius:.25rem;font-size:.875rem;border:none;outline:none;color:#fff;box-sizing:border-box}.search-container .search-icon{position:absolute;left:.5rem;font-size:1rem;color:#888;pointer-events:none}.search-container button{margin-left:.5rem;background-color:#6b46c1;padding:.5rem;border-radius:.25rem;border:none;cursor:pointer}.sa-menu-group{margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid #ccc}.sa-menu-group:last-child{border-bottom:none}.sa-menu-group h2{color:var(--grey-300, #D0D5DD);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:.5rem}.MenuBar{width:max-content;margin-top:8px;background-color:var(--grey-400);border-top-left-radius:0;border-bottom-left-radius:0;background-color:#2d3748;padding:0}.sa-menu-tabs{display:flex;border-bottom:1px solid #ccc;margin-bottom:1rem}.sa-menu-tabs button{flex:1;padding:.5rem 1rem;background:none;border:none;cursor:pointer;font-size:12px;font-style:normal;font-weight:400;line-height:16px;color:#888;border-bottom:2px solid transparent;transition:all .5s ease}.sa-menu-tabs button.active{color:#f7f3f3;border-bottom:2px solid #f7f7f7;font-size:12px;font-style:normal;font-weight:600;line-height:16px;letter-spacing:.5px}.sa-menu-content{padding:5rem 0}.sa-menu-group{margin-bottom:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SAMenuItemComponent, selector: "sa-menu-item", inputs: ["item", "showRound"] }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget"], outputs: ["onClickEvent"] }] }); }
|
|
55
66
|
}
|
|
56
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SAMenuComponent, decorators: [{
|
|
57
68
|
type: Component,
|
|
@@ -62,7 +73,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
62
73
|
MatMenuItem,
|
|
63
74
|
ChipsComponent,
|
|
64
75
|
IconComponent
|
|
65
|
-
], template: "<div class=\"sa-menu\" [ngClass]=\"menu.showTray ? 'sa-menu-tray sa-round-border' : ''\"
|
|
76
|
+
], template: "<div class=\"sa-menu\" [ngClass]=\"menu.showTray ? 'sa-menu-tray sa-round-border' : ''\"\n [ngStyle]=\"{width: menu.width || 'max-content'}\">\n\n @if(menu?.title){\n <div class=\"sa-menu-title\">\n <h1>{{menu?.title}}</h1>\n <sa-icon [icon]=\"'closeOutlined'\" [size]=\"'20'\" class=\"sa-menu-close-icon\"\n (click)=\"closeEvent.emit($event)\"></sa-icon>\n </div>\n }\n\n @if(menu?.showSearch){\n <div class=\"search-container\">\n <sa-icon icon=\"search\"></sa-icon>\n <input class=\"search-input\" (keyup)=\"onSearch($event)\" type=\"text\" [placeholder]=\"menu.searchPlaceholder\" />\n <button *ngIf=\"menu?.showAddIcon\"><i class=\"fas fa-plus\"></i></button>\n </div>\n }\n\n <!-- @if(menu?.itemGroups && menu.itemGroups.length){\n @for (groupItem of menu.itemGroups; track groupItem) {\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n \n @for (item of groupItem.items; track $index) {\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n }\n } @else if(menu?.items && menu.items.length){\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n } -->\n\n\n <!-- Tab Content or Item Groups -->\n <div class=\"sa-menu-content\" *ngIf=\"menu?.itemGroups?.length || menu?.tabs?.length\">\n <!-- Tabs -->\n @if(menu?.tabs){\n <div class=\"sa-menu-tabs\">\n <button *ngFor=\"let tab of menu.tabs; let i = index\" [class.active]=\"i === activeTabIndex\"\n (click)=\"setActiveTab(i,tab.label)\">\n {{ tab.label }}\n <!-- ({{ tab.itemGroups.length }}) -->\n </button>\n </div>\n }\n <!-- Tabs End -->\n\n @if(menu?.tabs?.length){\n @if(menu.tabs[activeTabIndex]?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.tabs[activeTabIndex].itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n } @else if(menu?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n </div>\n\n @if(menu?.items && menu.items.length){\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n }\n\n</div>", styles: [".sa-menu{background-color:var(--primary-900);box-shadow:3px 4px 16px 4px #00000014;width:max-content;color:#fff;overflow-y:auto;max-height:100%}.sa-round-border{border-radius:8px}.sa-menu-tray{height:calc(100vh - 16px);margin-top:8px;border-top-left-radius:0;border-bottom-left-radius:0;background:var(--grey-700, #1D2939);padding:0 1rem 1rem}sa-menu-item{cursor:pointer;display:block}.sa-menu-title{display:flex;justify-content:space-between;align-items:center;position:fixed;padding:1rem 0 .5rem;height:64px;width:calc(100% - 2rem);border-bottom:1px solid var(--primary-50, #F4EBFF);background:var(--grey-700, #1D2939)}.sa-menu-title h1{color:var(--grey-100, #EAECF0);font-family:var(--font-family, Roboto);font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.5px;margin-bottom:0;margin-top:0}.sa-menu-close-icon{cursor:pointer;margin-left:auto;height:20px}.search-container{position:relative;display:flex;align-items:center;margin-bottom:1rem}.search-container input{flex:1;padding:.5rem .5rem .5rem 2rem;background-color:#4a5568;border-radius:.25rem;font-size:.875rem;border:none;outline:none;color:#fff;box-sizing:border-box}.search-container .search-icon{position:absolute;left:.5rem;font-size:1rem;color:#888;pointer-events:none}.search-container button{margin-left:.5rem;background-color:#6b46c1;padding:.5rem;border-radius:.25rem;border:none;cursor:pointer}.sa-menu-group{margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid #ccc}.sa-menu-group:last-child{border-bottom:none}.sa-menu-group h2{color:var(--grey-300, #D0D5DD);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:.5rem}.MenuBar{width:max-content;margin-top:8px;background-color:var(--grey-400);border-top-left-radius:0;border-bottom-left-radius:0;background-color:#2d3748;padding:0}.sa-menu-tabs{display:flex;border-bottom:1px solid #ccc;margin-bottom:1rem}.sa-menu-tabs button{flex:1;padding:.5rem 1rem;background:none;border:none;cursor:pointer;font-size:12px;font-style:normal;font-weight:400;line-height:16px;color:#888;border-bottom:2px solid transparent;transition:all .5s ease}.sa-menu-tabs button.active{color:#f7f3f3;border-bottom:2px solid #f7f7f7;font-size:12px;font-style:normal;font-weight:600;line-height:16px;letter-spacing:.5px}.sa-menu-content{padding:5rem 0}.sa-menu-group{margin-bottom:1rem}\n"] }]
|
|
66
77
|
}], ctorParameters: () => [{ type: i1.Overlay }], propDecorators: { position: [{
|
|
67
78
|
type: Input
|
|
68
79
|
}], menu: [{
|
|
@@ -76,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
76
87
|
}], closeEvent: [{
|
|
77
88
|
type: Output
|
|
78
89
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL21lbnUvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL21lbnUvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBSU4sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxPQUFPLEVBRVAsV0FBVyxHQUVaLE1BQU0sd0JBQXdCLENBQUM7QUFTaEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUE4QnZELE1BQU0sT0FBTyxlQUFlO0lBVzFCLFlBQ1UsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQVhqQixhQUFRLEdBQXdDLFFBQVEsQ0FBQyxDQUFDLG1CQUFtQjtRQUc1RSxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEQsaUJBQVksR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRCxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0QsMkNBQTJDO1FBRTNDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUF5QzVCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDLENBQUMsNkJBQTZCO0lBcEN6RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzdDLElBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBQyxDQUFDO1FBRWpDLENBQUM7SUFDSCxDQUFDO0lBQ0QsZUFBZTtRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxXQUFXO1FBQ1QsNERBQTREO1FBQzVELG9GQUFvRjtRQUNwRixpRkFBaUY7UUFDakYsd0ZBQXdGO1FBQ3hGLDBGQUEwRjtRQUMxRixLQUFLO1FBRUwsNENBQTRDO1FBQzVDLGdFQUFnRTtRQUNoRSx3REFBd0Q7UUFDeEQsK0NBQStDO1FBQy9DLG9HQUFvRztRQUNwRyxtREFBbUQ7SUFDckQsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFVLEVBQUUsSUFBZTtRQUN6QyxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFJRCxZQUFZLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLDhCQUE4QjtJQUMvRCxDQUFDOzhHQXREVSxlQUFlO2tHQUFmLGVBQWUsbVBDN0Q1QixzcUdBMEVNLHUwRURwQ0YsWUFBWSxtYkFDWixtQkFBbUIsd0ZBSW5CLGFBQWE7OzJGQWtCSixlQUFlO2tCQTNCM0IsU0FBUzsrQkFDRSxTQUFTLGNBQ1AsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxhQUFhO3FCQUNkOzRFQWtCUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBOZ1pvbmUsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1hdE1lbnUsXG4gIE1hdE1lbnVEZWZhdWx0T3B0aW9ucyxcbiAgTWF0TWVudUl0ZW0sXG4gIE1hdE1lbnVUcmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7XG4gIE92ZXJsYXksXG4gIFBvc2l0aW9uU3RyYXRlZ3ksXG4gIENvbm5lY3RlZFBvc2l0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkL2NhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnO1xuaW1wb3J0IHsgU0FNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbWVudS1saXN0L21lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ2hpcHNDb21wb25lbnQgfSBmcm9tICcuLi9jaGlwcy9jaGlwcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSU1lbnUsIElNZW51SXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbWVudS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYS1tZW51JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTQU1lbnVJdGVtQ29tcG9uZW50LFxuICAgIE1hdE1lbnUsXG4gICAgTWF0TWVudUl0ZW0sXG4gICAgQ2hpcHNDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5jc3MnLFxuICAvLyBhbmltYXRpb25zOiBbXG4gIC8vICAgdHJpZ2dlcignc2xpZGVJbk91dCcsIFtcbiAgLy8gICAgIHN0YXRlKCdpbicsIHN0eWxlKHtcbiAgLy8gICAgICAgd2lkdGg6ICcnLCAvLyBXaGVuIGV4cGFuZGVkIChmdWxseSBzaG93bilcbiAgLy8gICAgIH0pKSxcbiAgLy8gICAgIHN0YXRlKCdvdXQnLCBzdHlsZSh7XG4gIC8vICAgICAgIHdpZHRoOiAnMCcsIC8vIFdoZW4gY29sbGFwc2VkIChoaWRkZW4pXG4gIC8vICAgICB9KSksXG4gIC8vICAgICB0cmFuc2l0aW9uKCdpbiA8PT4gb3V0JywgW1xuICAvLyAgICAgICBhbmltYXRlKCcwLjJzIGVhc2UtaW4tb3V0JyksIC8vIEFuaW1hdGlvbiBzcGVlZCBhbmQgZWFzaW5nXG4gIC8vICAgICBdKVxuICAvLyAgIF0pXG4gIC8vIF1cbn0pXG5leHBvcnQgY2xhc3MgU0FNZW51Q29tcG9uZW50IHtcbiAgQElucHV0KCkgcG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nID0gJ2JvdHRvbSc7IC8vIERlZmF1bHQgcG9zaXRpb25cbiAgQElucHV0KCkgbWVudTogSU1lbnU7XG4gIEBJbnB1dCgpIGhvc3RFbDogYW55O1xuICBAT3V0cHV0KCkgb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbktleVVwRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2xvc2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIEBWaWV3Q2hpbGQoJ21lbnUnLCB7c3RhdGljOiB0cnVlfSkgbWVudTtcblxuICBpc0V4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICkge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyl7XG4gICAgY29uc29sZS5sb2coJ25nT25DaGFuZ2VzIG1lbnUgLT4nLCB0aGlzLm1lbnUpXG4gICAgaWYoY2hhbmdlc1snbWVudSddLmN1cnJlbnRWYWx1ZSl7XG4gICAgICBcbiAgICB9XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNFeHBhbmRlZCA9IHRydWU7XG4gIH1cbiAgc2V0UG9zaXRpb24oKSB7XG4gICAgLy8gY29uc3QgcG9zaXRpb25zOiB7IFtrZXk6IHN0cmluZ106IENvbm5lY3RlZFBvc2l0aW9uIH0gPSB7XG4gICAgLy8gICBsZWZ0OiB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICd0b3AnIH0sXG4gICAgLy8gICByaWdodDogeyBvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnIH0sXG4gICAgLy8gICB0b3A6IHsgb3JpZ2luWDogJ2NlbnRlcicsIG9yaWdpblk6ICdib3R0b20nLCBvdmVybGF5WDogJ2NlbnRlcicsIG92ZXJsYXlZOiAndG9wJyB9LFxuICAgIC8vICAgYm90dG9tOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ2JvdHRvbScgfVxuICAgIC8vIH07XG5cbiAgICAvLyBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSgpO1xuICAgIC8vIGNvbnN0IHVzZXJQcm9maWxlUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChDYXJkQ29tcG9uZW50KTtcbiAgICAvLyBjb25zdCBjb21wUmVmID0gb3ZlcmxheVJlZi5hdHRhY2godXNlclByb2ZpbGVQb3J0YWwpO1xuICAgIC8vIGNvbXBSZWYuaW5zdGFuY2UudGl0bGUgPSAnbmVlZCBuZHVrIHJhIGJoYWknXG4gICAgLy8gY29tcFJlZi5pbnN0YW5jZS5ib2R5ID0gJ3NvbWV0aW1lIGxpdHRsZSBiaXQgdGhpcyBzb21ldGltZXMgbGl0dGxlIGJpdCB0aGF0LiBDb21taW5nIG5vdCBjb21taW5nJ1xuICAgIC8vIGNvbXBSZWYuaW5zdGFuY2UuYXZhdGFyID0gJy4uL2Fzc2V0cy9hdmF0YXIuc3ZnJ1xuICB9XG5cbiAgb25NZW51SXRlbUNsaWNrKGV2ZW50OiBhbnksIGl0ZW06IElNZW51SXRlbSl7XG4gICAgLy8gaXRlbS5pc1NlbGVjdGVkID0gIWl0ZW0uaXNTZWxlY3RlZDtcbiAgICB0aGlzLm9uRXZlbnQuZW1pdCh7dHlwZTogJ0NMSUNLJywgaXRlbSwgbWVudTogdGhpcy5tZW51fSlcbiAgfVxuXG4gIG9uU2VhcmNoKGV2ZW50OiBhbnkpe1xuICAgIHRoaXMub25FdmVudC5lbWl0KHt0eXBlOiAnU0VBUkNIJywgdmFsdWU6ZXZlbnQudGFyZ2V0LnZhbHVlfSlcbiAgfVxuXG4gIGFjdGl2ZVRhYkluZGV4OiBudW1iZXIgPSAwOyAvLyBUcmFjayB0aGUgYWN0aXZlIHRhYiBpbmRleFxuXG4gIHNldEFjdGl2ZVRhYihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7IC8vIFVwZGF0ZSB0aGUgYWN0aXZlIHRhYiBpbmRleFxuICB9XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cInNhLW1lbnVcIiBbbmdDbGFzc109XCJtZW51LnNob3dUcmF5ID8gJ3NhLW1lbnUtdHJheSBzYS1yb3VuZC1ib3JkZXInIDogJydcIiBbbmdTdHlsZV09XCJ7d2lkdGg6IG1lbnUud2lkdGggfHwgJ21heC1jb250ZW50J31cIj5cblxuICAgIEBpZihtZW51Py50aXRsZSl7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYS1tZW51LXRpdGxlXCI+XG4gICAgICAgICAgICA8aDE+e3ttZW51Py50aXRsZX19PC9oMT5cbiAgICAgICAgICAgIDxzYS1pY29uIFtpY29uXT1cIidjbG9zZU91dGxpbmVkJ1wiICBbc2l6ZV09XCInMjAnXCIgY2xhc3M9XCJzYS1tZW51LWNsb3NlLWljb25cIiAoY2xpY2spPVwiY2xvc2VFdmVudC5lbWl0KCRldmVudClcIj48L3NhLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZihtZW51Py5zaG93U2VhcmNoKXtcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzYS1pY29uIGljb249XCJzZWFyY2hcIj48L3NhLWljb24+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIiAoa2V5dXApPVwib25TZWFyY2goJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cIm1lbnUuc2VhcmNoUGxhY2Vob2xkZXJcIiAvPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIm1lbnU/LnNob3dBZGRJY29uXCI+PGkgY2xhc3M9XCJmYXMgZmEtcGx1c1wiPjwvaT48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBAaWYobWVudT8uaXRlbUdyb3VwcyAmJiBtZW51Lml0ZW1Hcm91cHMubGVuZ3RoKXtcbiAgICAgICAgQGZvciAoZ3JvdXBJdGVtIG9mIG1lbnUuaXRlbUdyb3VwczsgdHJhY2sgZ3JvdXBJdGVtKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxoMj57e2dyb3VwSXRlbS5ncm91cFRpdGxlfX08L2gyPlxuICAgICAgICBcbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGdyb3VwSXRlbS5pdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPHNhLW1lbnUtaXRlbSBbaXRlbV09XCJpdGVtXCIgW3Nob3dSb3VuZF09XCJtZW51LnNob3dUcmF5XCIgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCI+PC9zYS1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmKG1lbnU/Lml0ZW1zICYmIG1lbnUuaXRlbXMubGVuZ3RoKXtcbiAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtaXRlbXNcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbWVudS5pdGVtczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgIDxzYS1tZW51LWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIChjbGljayk9XCJvbk1lbnVJdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiPjwvc2EtbWVudS1pdGVtPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9IC0tPlxuXG5cbiAgICAgPCEtLSBUYWJzIC0tPlxuICAgIEBpZihtZW51Py50YWJzPy5sZW5ndGgpe1xuICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS10YWJzXCI+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCB0YWIgb2YgbWVudS50YWJzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpID09PSBhY3RpdmVUYWJJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVUYWIoaSlcIj5cbiAgICAgICAgICAgICAgICB7eyB0YWIubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8IS0tICh7eyB0YWIuaXRlbUdyb3Vwcy5sZW5ndGggfX0pIC0tPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDwhLS0gVGFiIENvbnRlbnQgb3IgSXRlbSBHcm91cHMgLS0+XG4gICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtY29udGVudFwiPlxuICAgICAgICBAaWYobWVudT8udGFicz8ubGVuZ3RoKXtcbiAgICAgICAgICAgIEBpZihtZW51LnRhYnNbYWN0aXZlVGFiSW5kZXhdPy5pdGVtR3JvdXBzPy5sZW5ndGgpe1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGdyb3VwSXRlbSBvZiBtZW51LnRhYnNbYWN0aXZlVGFiSW5kZXhdLml0ZW1Hcm91cHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj57e2dyb3VwSXRlbS5ncm91cFRpdGxlfX08L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cEl0ZW0uaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2EtbWVudS1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbc2hvd1JvdW5kXT1cIm1lbnUuc2hvd1RyYXlcIiAoY2xpY2spPVwib25NZW51SXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIj48L3NhLW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSBpZihtZW51Py5pdGVtR3JvdXBzPy5sZW5ndGgpe1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXBJdGVtIG9mIG1lbnUuaXRlbUdyb3Vwc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1tZW51LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMj57e2dyb3VwSXRlbS5ncm91cFRpdGxlfX08L2gyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwSXRlbS5pdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNhLW1lbnUtaXRlbSBbaXRlbV09XCJpdGVtXCIgW3Nob3dSb3VuZF09XCJtZW51LnNob3dUcmF5XCIgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCI+PC9zYS1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cblxuXG48L2Rpdj4iXX0=
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL21lbnUvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL21lbnUvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBR04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxPQUFPLEVBRVAsV0FBVyxHQUVaLE1BQU0sd0JBQXdCLENBQUM7QUFTaEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUE4QnZELE1BQU0sT0FBTyxlQUFlO0lBVzFCLFlBQ1UsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQVhqQixhQUFRLEdBQXdDLFFBQVEsQ0FBQyxDQUFDLG1CQUFtQjtRQUc1RSxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEQsaUJBQVksR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRCxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0QsMkNBQTJDO1FBRTNDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFvRDVCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDLENBQUMsNkJBQTZCO0lBL0N6RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUU5RSw4Q0FBOEM7WUFDOUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDNUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7WUFDMUIsQ0FBQztZQUVELHNFQUFzRTtZQUN0RSwyREFBMkQ7WUFDM0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCw4RUFBOEU7Z0JBQzlFLE9BQU8sQ0FBQyxHQUFHLENBQUMsK0NBQStDLENBQUMsQ0FBQztZQUMvRCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDO0lBQ0gsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBQ0QsV0FBVztRQUNULDREQUE0RDtRQUM1RCxvRkFBb0Y7UUFDcEYsaUZBQWlGO1FBQ2pGLHdGQUF3RjtRQUN4RiwwRkFBMEY7UUFDMUYsS0FBSztRQUVMLDRDQUE0QztRQUM1QyxnRUFBZ0U7UUFDaEUsd0RBQXdEO1FBQ3hELCtDQUErQztRQUMvQyxvR0FBb0c7UUFDcEcsbURBQW1EO0lBQ3JELENBQUM7SUFFRCxlQUFlLENBQUMsS0FBVSxFQUFFLElBQWU7UUFDekMsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBO0lBQzNELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQTtJQUMvRCxDQUFDO0lBSUQsWUFBWSxDQUFDLEtBQWEsRUFBQyxPQUFPO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLENBQUMsOEJBQThCO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUM1RSxDQUFDOzhHQWxFVSxlQUFlO2tHQUFmLGVBQWUsbVBDMUQ1Qix3N0dBcUZNLDY3RURsREYsWUFBWSxtYkFDWixtQkFBbUIsd0ZBSW5CLGFBQWE7OzJGQWtCSixlQUFlO2tCQTNCM0IsU0FBUzsrQkFDRSxTQUFTLGNBQ1AsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxhQUFhO3FCQUNkOzRFQWtCUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbiAgRXZlbnRFbWl0dGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1hdE1lbnUsXG4gIE1hdE1lbnVEZWZhdWx0T3B0aW9ucyxcbiAgTWF0TWVudUl0ZW0sXG4gIE1hdE1lbnVUcmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7XG4gIE92ZXJsYXksXG4gIFBvc2l0aW9uU3RyYXRlZ3ksXG4gIENvbm5lY3RlZFBvc2l0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkL2NhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnO1xuaW1wb3J0IHsgU0FNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbWVudS1saXN0L21lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ2hpcHNDb21wb25lbnQgfSBmcm9tICcuLi9jaGlwcy9jaGlwcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSU1lbnUsIElNZW51SXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbWVudS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYS1tZW51JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTQU1lbnVJdGVtQ29tcG9uZW50LFxuICAgIE1hdE1lbnUsXG4gICAgTWF0TWVudUl0ZW0sXG4gICAgQ2hpcHNDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5jc3MnLFxuICAvLyBhbmltYXRpb25zOiBbXG4gIC8vICAgdHJpZ2dlcignc2xpZGVJbk91dCcsIFtcbiAgLy8gICAgIHN0YXRlKCdpbicsIHN0eWxlKHtcbiAgLy8gICAgICAgd2lkdGg6ICcnLCAvLyBXaGVuIGV4cGFuZGVkIChmdWxseSBzaG93bilcbiAgLy8gICAgIH0pKSxcbiAgLy8gICAgIHN0YXRlKCdvdXQnLCBzdHlsZSh7XG4gIC8vICAgICAgIHdpZHRoOiAnMCcsIC8vIFdoZW4gY29sbGFwc2VkIChoaWRkZW4pXG4gIC8vICAgICB9KSksXG4gIC8vICAgICB0cmFuc2l0aW9uKCdpbiA8PT4gb3V0JywgW1xuICAvLyAgICAgICBhbmltYXRlKCcwLjJzIGVhc2UtaW4tb3V0JyksIC8vIEFuaW1hdGlvbiBzcGVlZCBhbmQgZWFzaW5nXG4gIC8vICAgICBdKVxuICAvLyAgIF0pXG4gIC8vIF1cbn0pXG5leHBvcnQgY2xhc3MgU0FNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nID0gJ2JvdHRvbSc7IC8vIERlZmF1bHQgcG9zaXRpb25cbiAgQElucHV0KCkgbWVudTogSU1lbnU7XG4gIEBJbnB1dCgpIGhvc3RFbDogYW55O1xuICBAT3V0cHV0KCkgb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbktleVVwRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2xvc2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIEBWaWV3Q2hpbGQoJ21lbnUnLCB7c3RhdGljOiB0cnVlfSkgbWVudTtcblxuICBpc0V4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICkge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydtZW51J10gJiYgY2hhbmdlc1snbWVudSddLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgY29uc29sZS5sb2coJ01lbnUgY29tcG9uZW50IGRldGVjdGVkIGNoYW5nZXM6JywgY2hhbmdlc1snbWVudSddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICBcbiAgICAgIC8vIFJlc2V0IGFjdGl2ZSB0YWIgaW5kZXggaWYgdGFicyBoYXZlIGNoYW5nZWRcbiAgICAgIGlmICh0aGlzLm1lbnU/LnRhYnM/Lmxlbmd0aCAmJiB0aGlzLmFjdGl2ZVRhYkluZGV4ID49IHRoaXMubWVudS50YWJzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gUHJldmVudCB0aGUgbWVudSBmcm9tIGNsb3NpbmcgYnkgc3RvcHBpbmcgcHJvcGFnYXRpb24gb2YgYW55IGV2ZW50c1xuICAgICAgLy8gdGhhdCBtaWdodCB0cmlnZ2VyIG1lbnUgY2xvc2luZyBkdXJpbmcgdGhpcyB1cGRhdGUgY3ljbGVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAvLyBUaGlzIGVuc3VyZXMgdGhlIG1lbnUgc3RheXMgb3BlbiBhZnRlciB0aGUgY2hhbmdlIGRldGVjdGlvbiBjeWNsZSBjb21wbGV0ZXNcbiAgICAgICAgY29uc29sZS5sb2coJ01lbnUgdXBkYXRlIGNvbXBsZXRlLCBtZW51IHNob3VsZCByZW1haW4gb3BlbicpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSB0cnVlO1xuICB9XG4gIHNldFBvc2l0aW9uKCkge1xuICAgIC8vIGNvbnN0IHBvc2l0aW9uczogeyBba2V5OiBzdHJpbmddOiBDb25uZWN0ZWRQb3NpdGlvbiB9ID0ge1xuICAgIC8vICAgbGVmdDogeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJyB9LFxuICAgIC8vICAgcmlnaHQ6IHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAndG9wJyB9LFxuICAgIC8vICAgdG9wOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICAvLyAgIGJvdHRvbTogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnY2VudGVyJywgb3ZlcmxheVk6ICdib3R0b20nIH1cbiAgICAvLyB9O1xuXG4gICAgLy8gY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoKTtcbiAgICAvLyBjb25zdCB1c2VyUHJvZmlsZVBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoQ2FyZENvbXBvbmVudCk7XG4gICAgLy8gY29uc3QgY29tcFJlZiA9IG92ZXJsYXlSZWYuYXR0YWNoKHVzZXJQcm9maWxlUG9ydGFsKTtcbiAgICAvLyBjb21wUmVmLmluc3RhbmNlLnRpdGxlID0gJ25lZWQgbmR1ayByYSBiaGFpJ1xuICAgIC8vIGNvbXBSZWYuaW5zdGFuY2UuYm9keSA9ICdzb21ldGltZSBsaXR0bGUgYml0IHRoaXMgc29tZXRpbWVzIGxpdHRsZSBiaXQgdGhhdC4gQ29tbWluZyBub3QgY29tbWluZydcbiAgICAvLyBjb21wUmVmLmluc3RhbmNlLmF2YXRhciA9ICcuLi9hc3NldHMvYXZhdGFyLnN2ZydcbiAgfVxuXG4gIG9uTWVudUl0ZW1DbGljayhldmVudDogYW55LCBpdGVtOiBJTWVudUl0ZW0pe1xuICAgIC8vIGl0ZW0uaXNTZWxlY3RlZCA9ICFpdGVtLmlzU2VsZWN0ZWQ7XG4gICAgdGhpcy5vbkV2ZW50LmVtaXQoe3R5cGU6ICdDTElDSycsIGl0ZW0sIG1lbnU6IHRoaXMubWVudX0pXG4gIH1cblxuICBvblNlYXJjaChldmVudDogYW55KXtcbiAgICB0aGlzLm9uRXZlbnQuZW1pdCh7dHlwZTogJ1NFQVJDSCcsIHZhbHVlOmV2ZW50LnRhcmdldC52YWx1ZX0pXG4gIH1cblxuICBhY3RpdmVUYWJJbmRleDogbnVtYmVyID0gMDsgLy8gVHJhY2sgdGhlIGFjdGl2ZSB0YWIgaW5kZXhcblxuICBzZXRBY3RpdmVUYWIoaW5kZXg6IG51bWJlcix0YWJuYW1lKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4OyAvLyBVcGRhdGUgdGhlIGFjdGl2ZSB0YWIgaW5kZXhcbiAgICB0aGlzLm9uRXZlbnQuZW1pdCh7dHlwZTogJ1RBQl9DTElDSycsIGFjdGl2ZVRhYjp0YWJuYW1lLCBtZW51OiB0aGlzLm1lbnV9KVxuICB9XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cInNhLW1lbnVcIiBbbmdDbGFzc109XCJtZW51LnNob3dUcmF5ID8gJ3NhLW1lbnUtdHJheSBzYS1yb3VuZC1ib3JkZXInIDogJydcIlxuICAgIFtuZ1N0eWxlXT1cInt3aWR0aDogbWVudS53aWR0aCB8fCAnbWF4LWNvbnRlbnQnfVwiPlxuXG4gICAgQGlmKG1lbnU/LnRpdGxlKXtcbiAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS10aXRsZVwiPlxuICAgICAgICA8aDE+e3ttZW51Py50aXRsZX19PC9oMT5cbiAgICAgICAgPHNhLWljb24gW2ljb25dPVwiJ2Nsb3NlT3V0bGluZWQnXCIgW3NpemVdPVwiJzIwJ1wiIGNsYXNzPVwic2EtbWVudS1jbG9zZS1pY29uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZUV2ZW50LmVtaXQoJGV2ZW50KVwiPjwvc2EtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYobWVudT8uc2hvd1NlYXJjaCl7XG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cbiAgICAgICAgPHNhLWljb24gaWNvbj1cInNlYXJjaFwiPjwvc2EtaWNvbj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwic2VhcmNoLWlucHV0XCIgKGtleXVwKT1cIm9uU2VhcmNoKCRldmVudClcIiB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJtZW51LnNlYXJjaFBsYWNlaG9sZGVyXCIgLz5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIm1lbnU/LnNob3dBZGRJY29uXCI+PGkgY2xhc3M9XCJmYXMgZmEtcGx1c1wiPjwvaT48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8IS0tIEBpZihtZW51Py5pdGVtR3JvdXBzICYmIG1lbnUuaXRlbUdyb3Vwcy5sZW5ndGgpe1xuICAgICAgICBAZm9yIChncm91cEl0ZW0gb2YgbWVudS5pdGVtR3JvdXBzOyB0cmFjayBncm91cEl0ZW0pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1tZW51LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGgyPnt7Z3JvdXBJdGVtLmdyb3VwVGl0bGV9fTwvaDI+XG4gICAgICAgIFxuICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZ3JvdXBJdGVtLml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8c2EtbWVudS1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbc2hvd1JvdW5kXT1cIm1lbnUuc2hvd1RyYXlcIiAoY2xpY2spPVwib25NZW51SXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIj48L3NhLW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYobWVudT8uaXRlbXMgJiYgbWVudS5pdGVtcy5sZW5ndGgpe1xuICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS1pdGVtc1wiPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBtZW51Lml0ZW1zOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgPHNhLW1lbnUtaXRlbSBbaXRlbV09XCJpdGVtXCIgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCI+PC9zYS1tZW51LWl0ZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH0gLS0+XG5cblxuICAgIDwhLS0gVGFiIENvbnRlbnQgb3IgSXRlbSBHcm91cHMgLS0+XG4gICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtY29udGVudFwiICpuZ0lmPVwibWVudT8uaXRlbUdyb3Vwcz8ubGVuZ3RoIHx8IG1lbnU/LnRhYnM/Lmxlbmd0aFwiPlxuICAgICAgICA8IS0tIFRhYnMgLS0+XG4gICAgICAgIEBpZihtZW51Py50YWJzKXtcbiAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtdGFic1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgdGFiIG9mIG1lbnUudGFiczsgbGV0IGkgPSBpbmRleFwiIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0gYWN0aXZlVGFiSW5kZXhcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVUYWIoaSx0YWIubGFiZWwpXCI+XG4gICAgICAgICAgICAgICAge3sgdGFiLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgPCEtLSAoe3sgdGFiLml0ZW1Hcm91cHMubGVuZ3RoIH19KSAtLT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIFRhYnMgRW5kIC0tPlxuXG4gICAgICAgIEBpZihtZW51Py50YWJzPy5sZW5ndGgpe1xuICAgICAgICBAaWYobWVudS50YWJzW2FjdGl2ZVRhYkluZGV4XT8uaXRlbUdyb3Vwcz8ubGVuZ3RoKXtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXBJdGVtIG9mIG1lbnUudGFic1thY3RpdmVUYWJJbmRleF0uaXRlbUdyb3Vwc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8aDI+e3tncm91cEl0ZW0uZ3JvdXBUaXRsZX19PC9oMj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwSXRlbS5pdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICA8c2EtbWVudS1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbc2hvd1JvdW5kXT1cIm1lbnUuc2hvd1RyYXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCI+PC9zYS1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSBpZihtZW51Py5pdGVtR3JvdXBzPy5sZW5ndGgpe1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cEl0ZW0gb2YgbWVudS5pdGVtR3JvdXBzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxoMj57e2dyb3VwSXRlbS5ncm91cFRpdGxlfX08L2gyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXBJdGVtLml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzYS1tZW51LWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtzaG93Um91bmRdPVwibWVudS5zaG93VHJheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25NZW51SXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIj48L3NhLW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgQGlmKG1lbnU/Lml0ZW1zICYmIG1lbnUuaXRlbXMubGVuZ3RoKXtcbiAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtaXRlbXNcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbWVudS5pdGVtczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgPHNhLW1lbnUtaXRlbSBbaXRlbV09XCJpdGVtXCIgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCI+PC9zYS1tZW51LWl0ZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuPC9kaXY+Il19
|