@thetradeengineorg1/snova-shell-module 1.0.0 → 1.0.2

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.
@@ -1,126 +1,225 @@
1
- import { Component, Input } from '@angular/core';
2
- import { select } from '@ngrx/store';
3
- import { NavigationEnd } from '@angular/router';
4
- import { tap } from 'rxjs/operators';
5
- import * as sharedModuleReducers from '../../store/reducers/index';
6
- import { GetAllMenuItemsTriggered } from '../../store/actions/menuitems.actions';
7
- import { MenuCategories } from '../../constants/menu-categories';
8
- import { LocalStorageProperties } from '../../../globaldependencies/constants/localstorage-properties';
9
- import * as bootstrap from 'bootstrap';
1
+ import { Component } from "@angular/core";
2
+ import { NavigationEnd } from "@angular/router";
3
+ import { select } from "@ngrx/store";
4
+ import { tap } from "rxjs/operators";
5
+ import * as sharedModuleReducers from "./../../store/reducers/index";
6
+ import { GetAllMenuItemsTriggered } from "../../store/actions/menuitems.actions";
7
+ import { MenuCategories } from "../../constants/menu-categories";
10
8
  import * as i0 from "@angular/core";
11
9
  import * as i1 from "@ngrx/store";
12
10
  import * as i2 from "@angular/router";
13
- import * as i3 from "../../services/recentSearch.service";
14
- import * as i4 from "@angular/common";
15
- import * as i5 from "@angular/flex-layout/extended";
16
- import * as i6 from "@angular/material/icon";
17
- const _c0 = function (a0, a1, a2) { return { "background-color": a0, "border": a1, "box-shadow": a2, "border-radius": "12px", "transition": "all 0.3s ease" }; };
18
- function SideBarComponent_div_9_Template(rf, ctx) { if (rf & 1) {
19
- const _r4 = i0.ɵɵgetCurrentView();
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "@angular/flex-layout/extended";
13
+ import * as i5 from "@angular/material/icon";
14
+ import * as i6 from "../../../globaldependencies/pipes/softlabels.pipes";
15
+ import * as i7 from "@ngx-translate/core";
16
+ function SideBarComponent_div_9_ng_container_3_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵelementContainerStart(0);
18
+ i0.ɵɵelementStart(1, "mat-icon", 5);
19
+ i0.ɵɵtext(2);
20
+ i0.ɵɵelementEnd();
21
+ i0.ɵɵelementStart(3, "h6", 6);
22
+ i0.ɵɵtext(4);
23
+ i0.ɵɵpipe(5, "softLabelsPipe");
24
+ i0.ɵɵpipe(6, "translate");
25
+ i0.ɵɵelementEnd();
26
+ i0.ɵɵelementContainerEnd();
27
+ } if (rf & 2) {
28
+ const item_r1 = i0.ɵɵnextContext().$implicit;
29
+ const ctx_r3 = i0.ɵɵnextContext();
30
+ i0.ɵɵadvance(2);
31
+ i0.ɵɵtextInterpolate(item_r1.icon);
32
+ i0.ɵɵadvance(2);
33
+ i0.ɵɵtextInterpolate1(" ", item_r1.menu ? i0.ɵɵpipeBind2(5, 2, item_r1.menu, ctx_r3.softLabels) : i0.ɵɵpipeBind1(6, 5, item_r1.name), " ");
34
+ } }
35
+ function SideBarComponent_div_9_ng_container_4_Template(rf, ctx) { if (rf & 1) {
36
+ i0.ɵɵelementContainerStart(0);
37
+ i0.ɵɵelementStart(1, "a", 12);
38
+ i0.ɵɵelementStart(2, "mat-icon", 5);
39
+ i0.ɵɵtext(3);
40
+ i0.ɵɵelementEnd();
41
+ i0.ɵɵelementStart(4, "h6", 6);
42
+ i0.ɵɵtext(5);
43
+ i0.ɵɵpipe(6, "softLabelsPipe");
44
+ i0.ɵɵpipe(7, "translate");
45
+ i0.ɵɵelementEnd();
46
+ i0.ɵɵelementEnd();
47
+ i0.ɵɵelementContainerEnd();
48
+ } if (rf & 2) {
49
+ const item_r1 = i0.ɵɵnextContext().$implicit;
50
+ const ctx_r4 = i0.ɵɵnextContext();
51
+ i0.ɵɵadvance(1);
52
+ i0.ɵɵproperty("href", item_r1.state, i0.ɵɵsanitizeUrl);
53
+ i0.ɵɵadvance(2);
54
+ i0.ɵɵtextInterpolate(item_r1.icon);
55
+ i0.ɵɵadvance(2);
56
+ i0.ɵɵtextInterpolate1(" ", item_r1.menu ? i0.ɵɵpipeBind2(6, 3, item_r1.menu, ctx_r4.softLabels) : i0.ɵɵpipeBind1(7, 6, item_r1.name), " ");
57
+ } }
58
+ function SideBarComponent_div_9_div_5_Template(rf, ctx) { if (rf & 1) {
59
+ const _r12 = i0.ɵɵgetCurrentView();
60
+ i0.ɵɵelementStart(0, "div", 13);
61
+ i0.ɵɵlistener("click", function SideBarComponent_div_9_div_5_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r12); const item_r1 = i0.ɵɵnextContext().$implicit; const ctx_r10 = i0.ɵɵnextContext(); return ctx_r10.toggleDropdown(item_r1); });
62
+ i0.ɵɵelementStart(1, "mat-icon", 5);
63
+ i0.ɵɵtext(2);
64
+ i0.ɵɵelementEnd();
65
+ i0.ɵɵelementStart(3, "h6", 6);
66
+ i0.ɵɵtext(4);
67
+ i0.ɵɵpipe(5, "softLabelsPipe");
68
+ i0.ɵɵpipe(6, "translate");
69
+ i0.ɵɵelementEnd();
70
+ i0.ɵɵelementStart(7, "mat-icon", 14);
71
+ i0.ɵɵtext(8);
72
+ i0.ɵɵelementEnd();
73
+ i0.ɵɵelementEnd();
74
+ } if (rf & 2) {
75
+ const item_r1 = i0.ɵɵnextContext().$implicit;
76
+ const ctx_r5 = i0.ɵɵnextContext();
77
+ i0.ɵɵadvance(2);
78
+ i0.ɵɵtextInterpolate(item_r1.icon);
79
+ i0.ɵɵadvance(2);
80
+ i0.ɵɵtextInterpolate1(" ", item_r1.menu ? i0.ɵɵpipeBind2(5, 3, item_r1.menu, ctx_r5.softLabels) : i0.ɵɵpipeBind1(6, 6, item_r1.name), " ");
81
+ i0.ɵɵadvance(4);
82
+ i0.ɵɵtextInterpolate1(" ", item_r1.open ? "expand_less" : "expand_more", " ");
83
+ } }
84
+ const _c0 = function (a0) { return { background: a0 }; };
85
+ function SideBarComponent_div_9_div_6_span_1_Template(rf, ctx) { if (rf & 1) {
86
+ i0.ɵɵelementStart(0, "span", 17);
87
+ i0.ɵɵtext(1);
88
+ i0.ɵɵelementEnd();
89
+ } if (rf & 2) {
90
+ const badge_r15 = ctx.$implicit;
91
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c0, badge_r15.color));
92
+ i0.ɵɵadvance(1);
93
+ i0.ɵɵtextInterpolate1(" ", badge_r15.value, " ");
94
+ } }
95
+ function SideBarComponent_div_9_div_6_Template(rf, ctx) { if (rf & 1) {
96
+ i0.ɵɵelementStart(0, "div", 15);
97
+ i0.ɵɵtemplate(1, SideBarComponent_div_9_div_6_span_1_Template, 2, 4, "span", 16);
98
+ i0.ɵɵelementEnd();
99
+ } if (rf & 2) {
100
+ const item_r1 = i0.ɵɵnextContext().$implicit;
101
+ i0.ɵɵadvance(1);
102
+ i0.ɵɵproperty("ngForOf", item_r1.badges);
103
+ } }
104
+ function SideBarComponent_div_9_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
105
+ const _r21 = i0.ɵɵgetCurrentView();
20
106
  i0.ɵɵelementStart(0, "div", 2);
21
- i0.ɵɵelementStart(1, "div", 8);
22
- i0.ɵɵlistener("mouseenter", function SideBarComponent_div_9_Template_div_mouseenter_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r4); const i_r2 = restoredCtx.index; const ctx_r3 = i0.ɵɵnextContext(); return ctx_r3.enter(i_r2); })("mouseleave", function SideBarComponent_div_9_Template_div_mouseleave_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r4); const i_r2 = restoredCtx.index; const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.leave(i_r2); })("click", function SideBarComponent_div_9_Template_div_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r4); const i_r2 = restoredCtx.index; const ctx_r6 = i0.ɵɵnextContext(); return ctx_r6.selectMenu(i_r2); });
107
+ i0.ɵɵelementStart(1, "div", 19);
108
+ i0.ɵɵlistener("click", function SideBarComponent_div_9_div_7_div_1_Template_div_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r21); const itemLvL2_r18 = restoredCtx.$implicit; const ctx_r20 = i0.ɵɵnextContext(2); const i_r2 = ctx_r20.index; const item_r1 = ctx_r20.$implicit; const ctx_r19 = i0.ɵɵnextContext(); return ctx_r19.selectMenu(i_r2, "/" + item_r1.state + "/" + itemLvL2_r18.state); });
23
109
  i0.ɵɵelementStart(2, "div", 4);
24
110
  i0.ɵɵelementStart(3, "mat-icon", 5);
25
111
  i0.ɵɵtext(4);
26
112
  i0.ɵɵelementEnd();
27
113
  i0.ɵɵelementStart(5, "h6", 6);
28
114
  i0.ɵɵtext(6);
115
+ i0.ɵɵpipe(7, "softLabelsPipe");
116
+ i0.ɵɵpipe(8, "translate");
117
+ i0.ɵɵelementEnd();
118
+ i0.ɵɵelementEnd();
119
+ i0.ɵɵelementEnd();
120
+ i0.ɵɵelementEnd();
121
+ } if (rf & 2) {
122
+ const itemLvL2_r18 = ctx.$implicit;
123
+ const ctx_r17 = i0.ɵɵnextContext(3);
124
+ i0.ɵɵadvance(4);
125
+ i0.ɵɵtextInterpolate(itemLvL2_r18.icon);
126
+ i0.ɵɵadvance(2);
127
+ i0.ɵɵtextInterpolate1(" ", itemLvL2_r18.menu ? i0.ɵɵpipeBind2(7, 2, itemLvL2_r18.menu, ctx_r17.softLabels) : i0.ɵɵpipeBind1(8, 5, itemLvL2_r18.name), " ");
128
+ } }
129
+ function SideBarComponent_div_9_div_7_Template(rf, ctx) { if (rf & 1) {
130
+ i0.ɵɵelementStart(0, "div", 18);
131
+ i0.ɵɵtemplate(1, SideBarComponent_div_9_div_7_div_1_Template, 9, 7, "div", 7);
29
132
  i0.ɵɵelementEnd();
133
+ } if (rf & 2) {
134
+ const item_r1 = i0.ɵɵnextContext().$implicit;
135
+ i0.ɵɵadvance(1);
136
+ i0.ɵɵproperty("ngForOf", item_r1.sub);
137
+ } }
138
+ const _c1 = function () { return { "background-color": "#DBEAFE", "border-image": "linear-gradient(135deg,#5de0e6,#004aad) 1", "box-shadow": "0 4px 15px rgba(0,0,0,0.15)" }; };
139
+ function SideBarComponent_div_9_Template(rf, ctx) { if (rf & 1) {
140
+ const _r24 = i0.ɵɵgetCurrentView();
141
+ i0.ɵɵelementStart(0, "div", 2);
142
+ i0.ɵɵelementStart(1, "div", 3);
143
+ i0.ɵɵlistener("mouseenter", function SideBarComponent_div_9_Template_div_mouseenter_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r24); const i_r2 = restoredCtx.index; const ctx_r23 = i0.ɵɵnextContext(); return ctx_r23.enter(i_r2); })("mouseleave", function SideBarComponent_div_9_Template_div_mouseleave_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r24); const i_r2 = restoredCtx.index; const ctx_r25 = i0.ɵɵnextContext(); return ctx_r25.leave(i_r2); })("click", function SideBarComponent_div_9_Template_div_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r24); const i_r2 = restoredCtx.index; const item_r1 = restoredCtx.$implicit; const ctx_r26 = i0.ɵɵnextContext(); return ctx_r26.selectMenu(i_r2, item_r1.state); });
144
+ i0.ɵɵelementStart(2, "div", 4);
145
+ i0.ɵɵtemplate(3, SideBarComponent_div_9_ng_container_3_Template, 7, 7, "ng-container", 8);
146
+ i0.ɵɵtemplate(4, SideBarComponent_div_9_ng_container_4_Template, 8, 8, "ng-container", 8);
147
+ i0.ɵɵtemplate(5, SideBarComponent_div_9_div_5_Template, 9, 8, "div", 9);
148
+ i0.ɵɵtemplate(6, SideBarComponent_div_9_div_6_Template, 2, 1, "div", 10);
30
149
  i0.ɵɵelementEnd();
31
150
  i0.ɵɵelementEnd();
151
+ i0.ɵɵtemplate(7, SideBarComponent_div_9_div_7_Template, 2, 1, "div", 11);
32
152
  i0.ɵɵelementEnd();
33
153
  } if (rf & 2) {
34
154
  const item_r1 = ctx.$implicit;
35
155
  const i_r2 = ctx.index;
36
156
  const ctx_r0 = i0.ɵɵnextContext();
37
157
  i0.ɵɵadvance(1);
38
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(4, _c0, ctx_r0.selectedRowIndex == i_r2 || ctx_r0.showBackGroundColor == i_r2 ? "#DBEAFE" : "#FFFFFF", ctx_r0.selectedRowIndex == i_r2 || ctx_r0.showBackGroundColor == i_r2 ? "2px solid #09555c" : "1px solid #E5E7EB", ctx_r0.selectedRowIndex == i_r2 || ctx_r0.showBackGroundColor == i_r2 ? "0 4px 15px rgba(0,0,0,0.15)" : "0 2px 6px rgba(0,0,0,0.08)"))("routerLink", item_r1.state);
39
- i0.ɵɵadvance(3);
40
- i0.ɵɵtextInterpolate(item_r1.icon);
158
+ i0.ɵɵproperty("ngStyle", (ctx_r0.selectedRowIndex == i_r2 || ctx_r0.showBackGroundColor == i_r2) && i0.ɵɵpureFunction0(6, _c1));
41
159
  i0.ɵɵadvance(2);
42
- i0.ɵɵtextInterpolate(item_r1.menu);
160
+ i0.ɵɵproperty("ngIf", item_r1.type === "link" || item_r1.type === "applicationlink");
161
+ i0.ɵɵadvance(1);
162
+ i0.ɵɵproperty("ngIf", item_r1.type === "extLink");
163
+ i0.ɵɵadvance(1);
164
+ i0.ɵɵproperty("ngIf", item_r1.type === "dropDown");
165
+ i0.ɵɵadvance(1);
166
+ i0.ɵɵproperty("ngIf", item_r1.badges == null ? null : item_r1.badges.length);
167
+ i0.ɵɵadvance(1);
168
+ i0.ɵɵproperty("ngIf", item_r1.open && item_r1.type === "dropDown");
43
169
  } }
44
170
  export class SideBarComponent {
45
- constructor(store, router, recentSearchService) {
171
+ constructor(store, router) {
46
172
  this.store = store;
47
173
  this.router = router;
48
- this.recentSearchService = recentSearchService;
49
- this.hasIconMenu = false;
50
- this.iconMenuTitle = 'Menu';
51
- this.menuItems = [];
52
- this.items = [];
53
- this.selectedRowIndex = null;
54
174
  this.showBackGroundColor = null;
55
175
  }
56
176
  ngOnInit() {
57
- this.loadSoftLabels();
58
- this.loadMenuItems();
59
- // Listen to route changes to update active menu
177
+ // load soft labels
178
+ this.softLabels = JSON.parse(localStorage.getItem("SoftLabels"));
179
+ // get menu items from store
180
+ this.menuItems$ = this.store.pipe(select(sharedModuleReducers.getCurrentActiveMenuCategoryMenuItems), tap(menuList => this.routerActive(menuList)));
181
+ // trigger menu load
182
+ this.store.dispatch(new GetAllMenuItemsTriggered(MenuCategories.Main));
183
+ // listen to route changes
60
184
  this.router.events.subscribe(event => {
61
185
  if (event instanceof NavigationEnd) {
62
- this.updateActiveRow();
186
+ this.menuItems$.subscribe(list => this.routerActive(list));
63
187
  }
64
188
  });
65
189
  }
66
- ngAfterViewInit() {
67
- const tooltipTriggerList = Array.from(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
68
- tooltipTriggerList.forEach(el => new bootstrap.Tooltip(el));
190
+ routerActive(menuList) {
191
+ if (menuList && menuList.length > 0) {
192
+ const index = menuList.findIndex(i => this.router.url == "/" + i.state);
193
+ this.selectedRowIndex = index;
194
+ if (this.router.url.includes("/dashboard-management")) {
195
+ this.selectedRowIndex = 99;
196
+ }
197
+ }
198
+ }
199
+ enter(i) {
200
+ this.showBackGroundColor = i;
69
201
  }
70
- loadSoftLabels() {
71
- const stored = localStorage.getItem('SoftLabels');
72
- if (stored)
73
- this.softLabels = JSON.parse(stored);
202
+ leave(i) {
203
+ this.showBackGroundColor = null;
74
204
  }
75
- loadMenuItems() {
76
- // Try NgRx store first
77
- this.menuItems$ = this.store.pipe(select(sharedModuleReducers.getCurrentActiveMenuCategoryMenuItems), tap(menuList => console.log('NgRx menu:', menuList)));
78
- this.store.dispatch(new GetAllMenuItemsTriggered(MenuCategories.Main));
79
- // Fallback: load from localStorage / service
80
- const storedItems = JSON.parse(localStorage.getItem(LocalStorageProperties.SideBarMenuItems));
81
- if (storedItems && storedItems.length) {
82
- this.menuItems = storedItems;
83
- this.items = this.menuItems.filter(i => i.type !== 'dropDown');
84
- }
85
- else {
86
- this.recentSearchService.searchMenuData(false).subscribe((res) => {
87
- var _a;
88
- if (res.success && ((_a = res.data) === null || _a === void 0 ? void 0 : _a.menuItems)) {
89
- this.menuItems = res.data.menuItems;
90
- localStorage.setItem(LocalStorageProperties.SideBarMenuItems, JSON.stringify(this.menuItems));
91
- this.items = this.menuItems.filter(i => i.type !== 'dropDown');
92
- }
93
- });
94
- }
205
+ toggleDropdown(item) {
206
+ item.open = !item.open;
95
207
  }
96
- updateActiveRow() {
97
- if (this.items && this.items.length) {
98
- const index = this.items.findIndex(i => this.router.url === '/' + i.state);
99
- this.selectedRowIndex = index >= 0 ? index : null;
100
- if (this.router.url.includes('/dashboard-management'))
101
- this.selectedRowIndex = 99;
208
+ // ✅ NEW: unified method
209
+ selectMenu(index, link) {
210
+ this.selectedRowIndex = index;
211
+ if (link) {
212
+ this.router.navigate([link]);
102
213
  }
103
214
  }
104
- // Hover events
105
- enter(i) { this.showBackGroundColor = i; }
106
- leave(i) { this.showBackGroundColor = null; }
107
- // Click event to set active menu
108
- selectMenu(i) { this.selectedRowIndex = i; }
109
- // Navigate and keep active
110
- openMenu(link) {
111
- this.router.navigate([link]);
112
- const index = this.items.findIndex(item => item.state === link);
113
- if (index >= 0)
114
- this.selectMenu(index);
115
- }
116
215
  }
117
- SideBarComponent.ɵfac = function SideBarComponent_Factory(t) { return new (t || SideBarComponent)(i0.ɵɵdirectiveInject(i1.Store), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i3.RecentSearchService)); };
118
- SideBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideBarComponent, selectors: [["app-sidebar"]], inputs: { hasIconMenu: "hasIconMenu", iconMenuTitle: "iconMenuTitle" }, decls: 10, vars: 6, consts: [[1, "d-flex", "flex-column", "justify-content-center", "align-items-center", 2, "width", "100vw", "height", "calc(100vh - 60px)", "background-color", "#F9FAFB", "padding", "30px", "overflow", "auto"], [1, "row", "justify-content-center", "align-items-center", 2, "height", "auto"], [1, "col-6", "col-md-3", "mb-4"], ["routerLink", "/dashboard-management", 1, "card", "h-100", "cursor-pointer", 3, "ngStyle", "mouseenter", "mouseleave", "click"], [1, "card-body", "d-flex", "flex-column", "align-items-center", "justify-content-center"], [2, "font-size", "40px", "color", "#09555c", "margin-bottom", "10px"], [2, "font-size", "14px", "margin", "0", "color", "#111827"], ["class", "col-6 col-md-3 mb-4", 4, "ngFor", "ngForOf"], [1, "card", "h-100", "cursor-pointer", 3, "ngStyle", "routerLink", "mouseenter", "mouseleave", "click"]], template: function SideBarComponent_Template(rf, ctx) { if (rf & 1) {
216
+ SideBarComponent.ɵfac = function SideBarComponent_Factory(t) { return new (t || SideBarComponent)(i0.ɵɵdirectiveInject(i1.Store), i0.ɵɵdirectiveInject(i2.Router)); };
217
+ SideBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideBarComponent, selectors: [["app-sidebar"]], decls: 11, vars: 5, consts: [[1, "d-flex", "flex-column", "justify-content-center", "align-items-center", 2, "width", "100vw", "height", "calc(100vh - 60px)", "background-color", "#F9FAFB", "padding", "30px", "overflow", "auto"], [1, "row", "justify-content-center", "align-items-center", 2, "height", "auto"], [1, "col-6", "col-md-3", "mb-4"], [1, "card", "cursor-pointer", 2, "height", "150px", "border-radius", "12px", "transition", "all 0.3s ease", "background", "#fff", "box-shadow", "0 2px 6px rgba(0,0,0,0.08)", "border", "2px solid transparent", 3, "ngStyle", "mouseenter", "mouseleave", "click"], [1, "card-body", "d-flex", "flex-column", "align-items-center", "justify-content-center"], [2, "font-size", "40px", "margin-bottom", "10px", "width", "48px", "height", "48px", "display", "flex", "align-items", "center", "justify-content", "center", "background", "linear-gradient(135deg,#5de0e6,#004aad)", "-webkit-background-clip", "text", "-webkit-text-fill-color", "transparent", "background-clip", "text", "text-fill-color", "transparent"], [2, "font-size", "14px", "margin", "0", "color", "#111827", "text-align", "center"], ["class", "col-6 col-md-3 mb-4", 4, "ngFor", "ngForOf"], [4, "ngIf"], ["class", "w-100 d-flex flex-column align-items-center cursor-pointer", 3, "click", 4, "ngIf"], ["class", "mt-2", 4, "ngIf"], ["class", "row w-100 mt-2", 4, "ngIf"], ["target", "_blank", 1, "w-100", "d-flex", "flex-column", "align-items-center", 3, "href"], [1, "w-100", "d-flex", "flex-column", "align-items-center", "cursor-pointer", 3, "click"], [2, "font-size", "24px", "margin-top", "5px", "width", "32px", "height", "32px", "background", "linear-gradient(135deg,#5de0e6,#004aad)", "-webkit-background-clip", "text", "-webkit-text-fill-color", "transparent", "background-clip", "text", "text-fill-color", "transparent"], [1, "mt-2"], ["class", "badge rounded-pill", 3, "ngStyle", 4, "ngFor", "ngForOf"], [1, "badge", "rounded-pill", 3, "ngStyle"], [1, "row", "w-100", "mt-2"], [1, "card", "cursor-pointer", 2, "height", "150px", "border-radius", "12px", "transition", "all 0.3s ease", "background", "#fff", "box-shadow", "0 2px 6px rgba(0,0,0,0.08)", "border", "2px solid transparent", 3, "click"]], template: function SideBarComponent_Template(rf, ctx) { if (rf & 1) {
119
218
  i0.ɵɵelementStart(0, "div", 0);
120
219
  i0.ɵɵelementStart(1, "div", 1);
121
220
  i0.ɵɵelementStart(2, "div", 2);
122
221
  i0.ɵɵelementStart(3, "div", 3);
123
- i0.ɵɵlistener("mouseenter", function SideBarComponent_Template_div_mouseenter_3_listener() { return ctx.enter(99); })("mouseleave", function SideBarComponent_Template_div_mouseleave_3_listener() { return ctx.leave(99); })("click", function SideBarComponent_Template_div_click_3_listener() { return ctx.selectMenu(99); });
222
+ i0.ɵɵlistener("mouseenter", function SideBarComponent_Template_div_mouseenter_3_listener() { return ctx.enter(99); })("mouseleave", function SideBarComponent_Template_div_mouseleave_3_listener() { return ctx.leave(99); })("click", function SideBarComponent_Template_div_click_3_listener() { return ctx.selectMenu(99, "/dashboard-management"); });
124
223
  i0.ɵɵelementStart(4, "div", 4);
125
224
  i0.ɵɵelementStart(5, "mat-icon", 5);
126
225
  i0.ɵɵtext(6, "home");
@@ -131,24 +230,21 @@ SideBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideBarCom
131
230
  i0.ɵɵelementEnd();
132
231
  i0.ɵɵelementEnd();
133
232
  i0.ɵɵelementEnd();
134
- i0.ɵɵtemplate(9, SideBarComponent_div_9_Template, 7, 8, "div", 7);
233
+ i0.ɵɵtemplate(9, SideBarComponent_div_9_Template, 8, 7, "div", 7);
234
+ i0.ɵɵpipe(10, "async");
135
235
  i0.ɵɵelementEnd();
136
236
  i0.ɵɵelementEnd();
137
237
  } if (rf & 2) {
138
238
  i0.ɵɵadvance(3);
139
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(2, _c0, ctx.selectedRowIndex == 99 || ctx.showBackGroundColor == 99 ? "#DBEAFE" : "#FFFFFF", ctx.selectedRowIndex == 99 || ctx.showBackGroundColor == 99 ? "2px solid #09555c" : "1px solid #E5E7EB", ctx.selectedRowIndex == 99 || ctx.showBackGroundColor == 99 ? "0 4px 15px rgba(0,0,0,0.15)" : "0 2px 6px rgba(0,0,0,0.08)"));
239
+ i0.ɵɵproperty("ngStyle", (ctx.selectedRowIndex == 99 || ctx.showBackGroundColor == 99) && i0.ɵɵpureFunction0(4, _c1));
140
240
  i0.ɵɵadvance(6);
141
- i0.ɵɵproperty("ngForOf", ctx.items);
142
- } }, directives: [i2.RouterLink, i4.NgStyle, i5.DefaultStyleDirective, i6.MatIcon, i4.NgForOf], encapsulation: 2 });
241
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(10, 2, ctx.menuItems$));
242
+ } }, directives: [i3.NgStyle, i4.DefaultStyleDirective, i5.MatIcon, i3.NgForOf, i3.NgIf], pipes: [i3.AsyncPipe, i6.SoftLabelPipe, i7.TranslatePipe], encapsulation: 2 });
143
243
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SideBarComponent, [{
144
244
  type: Component,
145
245
  args: [{
146
- selector: 'app-sidebar',
147
- templateUrl: './side-bar.component.html'
246
+ selector: "app-sidebar",
247
+ templateUrl: "./side-bar.component.html"
148
248
  }]
149
- }], function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i3.RecentSearchService }]; }, { hasIconMenu: [{
150
- type: Input
151
- }], iconMenuTitle: [{
152
- type: Input
153
- }] }); })();
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvY29tcG9uZW50cy9zaWRlbmF2L3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvc2lkZW5hdi9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFTLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQVUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxvQkFBb0IsTUFBTSw0QkFBNEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFdkcsT0FBTyxLQUFLLFNBQVMsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7Ozs7O0lDVy9CLDhCQUE0RTtJQUN4RSw4QkFPa0M7SUFQSyw4T0FBdUIsaU9BQUEsNE5BQUE7SUFRMUQsOEJBQW9GO0lBQ2hGLG1DQUFxRTtJQUFBLFlBQWU7SUFBQSxpQkFBVztJQUMvRiw2QkFBcUQ7SUFBQSxZQUFlO0lBQUEsaUJBQUs7SUFDN0UsaUJBQU07SUFD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LENBQUMsQ0FBQyxDQUFDO0lBRXBELDJCQUEyQjtJQUMzQixRQUFRLENBQUMsSUFBWTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksS0FBSyxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7O2dGQXBGUSxnQkFBZ0I7bUVBQWhCLGdCQUFnQjtRQ2xCN0IsOEJBQzJHO1FBRXZHLDhCQUFnRjtRQUc1RSw4QkFBaUM7UUFDN0IsOEJBTzJDO1FBUEosb0dBQWMsVUFBTSxFQUFFLENBQUMsSUFBQyx1RkFBZSxVQUFNLEVBQUUsQ0FBQyxJQUF4Qiw2RUFDbEQsZUFBVyxFQUFFLENBQUMsSUFEb0M7UUFRM0QsOEJBQW9GO1FBQ2hGLG1DQUFxRTtRQUFBLG9CQUFJO1FBQUEsaUJBQVc7UUFDcEYsNkJBQXFEO1FBQUEsb0JBQUk7UUFBQSxpQkFBSztRQUNsRSxpQkFBTTtRQUNWLGlCQUFNO1FBQ1YsaUJBQU07UUFHTixpRUFjTTtRQUVWLGlCQUFNO1FBQ1YsaUJBQU07O1FBaENtQyxlQU10QjtRQU5zQiw4V0FNdEI7UUFTdUMsZUFBVTtRQUFWLG1DQUFVOzt1RkRMdkQsZ0JBQWdCO2NBSjVCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsV0FBVyxFQUFFLDJCQUEyQjthQUMzQzsrR0FFWSxXQUFXO2tCQUFuQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3RvcmUsIHNlbGVjdCB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIHNoYXJlZE1vZHVsZVJlZHVjZXJzIGZyb20gJy4uLy4uL3N0b3JlL3JlZHVjZXJzL2luZGV4JztcclxuaW1wb3J0IHsgU3RhdGUgfSBmcm9tICcuLi8uLi9zdG9yZS9yZWR1Y2Vycy9pbmRleCc7XHJcbmltcG9ydCB7IEdldEFsbE1lbnVJdGVtc1RyaWdnZXJlZCB9IGZyb20gJy4uLy4uL3N0b3JlL2FjdGlvbnMvbWVudWl0ZW1zLmFjdGlvbnMnO1xyXG5pbXBvcnQgeyBJTWVudUl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvSU1lbnVJdGVtJztcclxuaW1wb3J0IHsgTWVudUNhdGVnb3JpZXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbWVudS1jYXRlZ29yaWVzJztcclxuaW1wb3J0IHsgUmVjZW50U2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlY2VudFNlYXJjaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlUHJvcGVydGllcyB9IGZyb20gJy4uLy4uLy4uL2dsb2JhbGRlcGVuZGVuY2llcy9jb25zdGFudHMvbG9jYWxzdG9yYWdlLXByb3BlcnRpZXMnO1xyXG5pbXBvcnQgeyBTb2Z0TGFiZWxDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc29mdGxhYmVscy1tb2RlbCc7XHJcbmltcG9ydCAqIGFzIGJvb3RzdHJhcCBmcm9tICdib290c3RyYXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1zaWRlYmFyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaWRlLWJhci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGVCYXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICAgIEBJbnB1dCgpIGhhc0ljb25NZW51OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBpY29uTWVudVRpdGxlOiBzdHJpbmcgPSAnTWVudSc7XHJcblxyXG4gICAgbWVudUl0ZW1zJDogT2JzZXJ2YWJsZTxJTWVudUl0ZW1bXT47XHJcbiAgICBtZW51SXRlbXM6IElNZW51SXRlbVtdID0gW107XHJcbiAgICBpdGVtczogSU1lbnVJdGVtW10gPSBbXTtcclxuICAgIHNvZnRMYWJlbHM6IFNvZnRMYWJlbENvbmZpZ3VyYXRpb25Nb2RlbFtdO1xyXG4gICAgc2VsZWN0ZWRSb3dJbmRleDogbnVtYmVyID0gbnVsbDtcclxuICAgIHNob3dCYWNrR3JvdW5kQ29sb3I6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8U3RhdGU+LFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSByZWNlbnRTZWFyY2hTZXJ2aWNlOiBSZWNlbnRTZWFyY2hTZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMubG9hZFNvZnRMYWJlbHMoKTtcclxuICAgICAgICB0aGlzLmxvYWRNZW51SXRlbXMoKTtcclxuXHJcbiAgICAgICAgLy8gTGlzdGVuIHRvIHJvdXRlIGNoYW5nZXMgdG8gdXBkYXRlIGFjdGl2ZSBtZW51XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQWN0aXZlUm93KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgY29uc3QgdG9vbHRpcFRyaWdnZXJMaXN0ID0gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykpO1xyXG4gICAgICAgIHRvb2x0aXBUcmlnZ2VyTGlzdC5mb3JFYWNoKGVsID0+IG5ldyBib290c3RyYXAuVG9vbHRpcChlbCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRTb2Z0TGFiZWxzKCkge1xyXG4gICAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdTb2Z0TGFiZWxzJyk7XHJcbiAgICAgICAgaWYgKHN0b3JlZCkgdGhpcy5zb2Z0TGFiZWxzID0gSlNPTi5wYXJzZShzdG9yZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRNZW51SXRlbXMoKSB7XHJcbiAgICAgICAgLy8gVHJ5IE5nUnggc3RvcmUgZmlyc3RcclxuICAgICAgICB0aGlzLm1lbnVJdGVtcyQgPSB0aGlzLnN0b3JlLnBpcGUoXHJcbiAgICAgICAgICAgIHNlbGVjdChzaGFyZWRNb2R1bGVSZWR1Y2Vycy5nZXRDdXJyZW50QWN0aXZlTWVudUNhdGVnb3J5TWVudUl0ZW1zKSxcclxuICAgICAgICAgICAgdGFwKG1lbnVMaXN0ID0+IGNvbnNvbGUubG9nKCdOZ1J4IG1lbnU6JywgbWVudUxpc3QpKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IEdldEFsbE1lbnVJdGVtc1RyaWdnZXJlZChNZW51Q2F0ZWdvcmllcy5NYWluKSk7XHJcblxyXG4gICAgICAgIC8vIEZhbGxiYWNrOiBsb2FkIGZyb20gbG9jYWxTdG9yYWdlIC8gc2VydmljZVxyXG4gICAgICAgIGNvbnN0IHN0b3JlZEl0ZW1zID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLlNpZGVCYXJNZW51SXRlbXMpKTtcclxuICAgICAgICBpZiAoc3RvcmVkSXRlbXMgJiYgc3RvcmVkSXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVudUl0ZW1zID0gc3RvcmVkSXRlbXM7XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLm1lbnVJdGVtcy5maWx0ZXIoaSA9PiBpLnR5cGUgIT09ICdkcm9wRG93bicpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVjZW50U2VhcmNoU2VydmljZS5zZWFyY2hNZW51RGF0YShmYWxzZSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5zdWNjZXNzICYmIHJlcy5kYXRhPy5tZW51SXRlbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lbnVJdGVtcyA9IHJlcy5kYXRhLm1lbnVJdGVtcztcclxuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLlNpZGVCYXJNZW51SXRlbXMsIEpTT04uc3RyaW5naWZ5KHRoaXMubWVudUl0ZW1zKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMubWVudUl0ZW1zLmZpbHRlcihpID0+IGkudHlwZSAhPT0gJ2Ryb3BEb3duJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVBY3RpdmVSb3coKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLml0ZW1zLmZpbmRJbmRleChpID0+IHRoaXMucm91dGVyLnVybCA9PT0gJy8nICsgaS5zdGF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9IGluZGV4ID49IDAgPyBpbmRleCA6IG51bGw7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJy9kYXNoYm9hcmQtbWFuYWdlbWVudCcpKSB0aGlzLnNlbGVjdGVkUm93SW5kZXggPSA5OTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSG92ZXIgZXZlbnRzXHJcbiAgICBlbnRlcihpOiBudW1iZXIpIHsgdGhpcy5zaG93QmFja0dyb3VuZENvbG9yID0gaTsgfVxyXG4gICAgbGVhdmUoaTogbnVtYmVyKSB7IHRoaXMuc2hvd0JhY2tHcm91bmRDb2xvciA9IG51bGw7IH1cclxuXHJcbiAgICAvLyBDbGljayBldmVudCB0byBzZXQgYWN0aXZlIG1lbnVcclxuICAgIHNlbGVjdE1lbnUoaTogbnVtYmVyKSB7IHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9IGk7IH1cclxuXHJcbiAgICAvLyBOYXZpZ2F0ZSBhbmQga2VlcCBhY3RpdmVcclxuICAgIG9wZW5NZW51KGxpbms6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaW5rXSk7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLml0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uc3RhdGUgPT09IGxpbmspO1xyXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB0aGlzLnNlbGVjdE1lbnUoaW5kZXgpO1xyXG4gICAgfVxyXG59XHJcbiIsIjwhLS0gZnVsbC1wYWdlLW1lbnUuY29tcG9uZW50Lmh0bWwgLS0+XHJcbjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgc3R5bGU9XCJ3aWR0aDoxMDB2dzsgaGVpZ2h0OmNhbGMoMTAwdmggLSA2MHB4KTsgYmFja2dyb3VuZC1jb2xvcjojRjlGQUZCOyBwYWRkaW5nOjMwcHg7IG92ZXJmbG93OmF1dG87XCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiaGVpZ2h0OmF1dG87XCI+XHJcblxyXG4gICAgICAgIDwhLS0gRml4ZWQgSG9tZSBDYXJkIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtbWQtMyBtYi00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGgtMTAwIGN1cnNvci1wb2ludGVyXCIgKG1vdXNlZW50ZXIpPVwiZW50ZXIoOTkpXCIgKG1vdXNlbGVhdmUpPVwibGVhdmUoOTkpXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNZW51KDk5KVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IChzZWxlY3RlZFJvd0luZGV4ID09IDk5IHx8IHNob3dCYWNrR3JvdW5kQ29sb3IgPT0gOTkpID8gJyNEQkVBRkUnIDogJyNGRkZGRkYnLFxyXG4gICAgICAgICAgICAgICAgICAgICdib3JkZXInOiAoc2VsZWN0ZWRSb3dJbmRleCA9PSA5OSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IDk5KSA/ICcycHggc29saWQgIzA5NTU1YycgOiAnMXB4IHNvbGlkICNFNUU3RUInLFxyXG4gICAgICAgICAgICAgICAgICAgICdib3gtc2hhZG93JzogKHNlbGVjdGVkUm93SW5kZXggPT0gOTkgfHwgc2hvd0JhY2tHcm91bmRDb2xvciA9PSA5OSkgPyAnMCA0cHggMTVweCByZ2JhKDAsMCwwLDAuMTUpJyA6ICcwIDJweCA2cHggcmdiYSgwLDAsMCwwLjA4KScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTJweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3RyYW5zaXRpb24nOiAnYWxsIDAuM3MgZWFzZSdcclxuICAgICAgICAgICAgICAgICB9XCIgcm91dGVyTGluaz1cIi9kYXNoYm9hcmQtbWFuYWdlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJmb250LXNpemU6NDBweDsgY29sb3I6IzA5NTU1YzsgbWFyZ2luLWJvdHRvbToxMHB4O1wiPmhvbWU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNztcIj5Ib21lPC9oNj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBEeW5hbWljIENhcmRzIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtbWQtMyBtYi00XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGgtMTAwIGN1cnNvci1wb2ludGVyXCIgKG1vdXNlZW50ZXIpPVwiZW50ZXIoaSlcIiAobW91c2VsZWF2ZSk9XCJsZWF2ZShpKVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TWVudShpKVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IChzZWxlY3RlZFJvd0luZGV4ID09IGkgfHwgc2hvd0JhY2tHcm91bmRDb2xvciA9PSBpKSA/ICcjREJFQUZFJyA6ICcjRkZGRkZGJyxcclxuICAgICAgICAgICAgICAgICAgICAnYm9yZGVyJzogKHNlbGVjdGVkUm93SW5kZXggPT0gaSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IGkpID8gJzJweCBzb2xpZCAjMDk1NTVjJyA6ICcxcHggc29saWQgI0U1RTdFQicsXHJcbiAgICAgICAgICAgICAgICAgICAgJ2JveC1zaGFkb3cnOiAoc2VsZWN0ZWRSb3dJbmRleCA9PSBpIHx8IHNob3dCYWNrR3JvdW5kQ29sb3IgPT0gaSkgPyAnMCA0cHggMTVweCByZ2JhKDAsMCwwLDAuMTUpJyA6ICcwIDJweCA2cHggcmdiYSgwLDAsMCwwLjA4KScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTJweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3RyYW5zaXRpb24nOiAnYWxsIDAuM3MgZWFzZSdcclxuICAgICAgICAgICAgICAgICB9XCIgW3JvdXRlckxpbmtdPVwiaXRlbS5zdGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJmb250LXNpemU6NDBweDsgY29sb3I6IzA5NTU1YzsgbWFyZ2luLWJvdHRvbToxMHB4O1wiPnt7IGl0ZW0uaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IHN0eWxlPVwiZm9udC1zaXplOjE0cHg7IG1hcmdpbjowOyBjb2xvcjojMTExODI3O1wiPnt7IGl0ZW0ubWVudSB9fTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
249
+ }], function () { return [{ type: i1.Store }, { type: i2.Router }]; }, null); })();
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvY29tcG9uZW50cy9zaWRlbmF2L3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvc2lkZW5hdi9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEtBQUssb0JBQW9CLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7O0lDNEI3Qyw2QkFBOEU7SUFDMUUsbUNBSTRDO0lBQUEsWUFBZTtJQUFBLGlCQUFXO0lBQ3RFLDZCQUF3RTtJQUNwRSxZQUNKOzs7SUFBQSxpQkFBSztJQUNULDBCQUFlOzs7O0lBSmlDLGVBQWU7SUFBZixrQ0FBZTtJQUV2RCxlQUNKO0lBREksMElBQ0o7OztJQUlKLDZCQUE4QztJQUMxQyw2QkFBMkY7SUFDdkYsbUNBSTBDO0lBQUEsWUFBZTtJQUFBLGlCQUFXO0lBQ3BFLDZCQUF3RTtJQUNwRSxZQUNKOzs7SUFBQSxpQkFB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QUNqRixVQUFNLEVBQUUsQ0FBQyxJQUR3RSw2RUFDN0QsZUFBVyxFQUFFLEVBQUUsdUJBQXVCLENBQUMsSUFEc0I7UUFNL0YsOEJBQW9GO1FBQ2hGLG1DQUk4QztRQUFBLG9CQUFJO1FBQUEsaUJBQVc7UUFDN0QsNkJBQXdFO1FBQUEsb0JBQUk7UUFBQSxpQkFBSztRQUNyRixpQkFBTTtRQUNWLGlCQUFNO1FBQ1YsaUJBQU07UUFHTixpRUF5Rk07O1FBQ1YsaUJBQU07UUFDVixpQkFBTTs7UUE1R3FGLGVBSS9FO1FBSitFLHFIQUkvRTtRQWE4QyxlQUF5QjtRQUF6QiwrREFBeUI7O3VGRFR0RSxnQkFBZ0I7Y0FKNUIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxhQUFhO2dCQUN2QixXQUFXLEVBQUUsMkJBQTJCO2FBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbmltcG9ydCB7IFN0YXRlIH0gZnJvbSBcIi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvaW5kZXhcIjtcclxuaW1wb3J0ICogYXMgc2hhcmVkTW9kdWxlUmVkdWNlcnMgZnJvbSBcIi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvaW5kZXhcIjtcclxuaW1wb3J0IHsgR2V0QWxsTWVudUl0ZW1zVHJpZ2dlcmVkIH0gZnJvbSBcIi4uLy4uL3N0b3JlL2FjdGlvbnMvbWVudWl0ZW1zLmFjdGlvbnNcIjtcclxuaW1wb3J0IHsgSU1lbnVJdGVtIH0gZnJvbSBcIi4uLy4uL21vZGVscy9JTWVudUl0ZW1cIjtcclxuaW1wb3J0IHsgTWVudUNhdGVnb3JpZXMgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzL21lbnUtY2F0ZWdvcmllc1wiO1xyXG5pbXBvcnQgeyBTb2Z0TGFiZWxDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NvZnRsYWJlbHMtbW9kZWxcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYXBwLXNpZGViYXJcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vc2lkZS1iYXIuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lkZUJhckNvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgbWVudUl0ZW1zJDogT2JzZXJ2YWJsZTxJTWVudUl0ZW1bXT47XHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRSb3dJbmRleDogbnVtYmVyO1xyXG4gICAgcHVibGljIHNob3dCYWNrR3JvdW5kQ29sb3I6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gICAgcHVibGljIHNvZnRMYWJlbHM6IFNvZnRMYWJlbENvbmZpZ3VyYXRpb25Nb2RlbFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPFN0YXRlPiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgLy8gbG9hZCBzb2Z0IGxhYmVsc1xyXG4gICAgICAgIHRoaXMuc29mdExhYmVscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJTb2Z0TGFiZWxzXCIpKTtcclxuXHJcbiAgICAgICAgLy8gZ2V0IG1lbnUgaXRlbXMgZnJvbSBzdG9yZVxyXG4gICAgICAgIHRoaXMubWVudUl0ZW1zJCA9IHRoaXMuc3RvcmUucGlwZShcclxuICAgICAgICAgICAgc2VsZWN0KHNoYXJlZE1vZHVsZVJlZHVjZXJzLmdldEN1cnJlbnRBY3RpdmVNZW51Q2F0ZWdvcnlNZW51SXRlbXMpLFxyXG4gICAgICAgICAgICB0YXAobWVudUxpc3QgPT4gdGhpcy5yb3V0ZXJBY3RpdmUobWVudUxpc3QpKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIC8vIHRyaWdnZXIgbWVudSBsb2FkXHJcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgR2V0QWxsTWVudUl0ZW1zVHJpZ2dlcmVkKE1lbnVDYXRlZ29yaWVzLk1haW4pKTtcclxuXHJcbiAgICAgICAgLy8gbGlzdGVuIHRvIHJvdXRlIGNoYW5nZXNcclxuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZW51SXRlbXMkLnN1YnNjcmliZShsaXN0ID0+IHRoaXMucm91dGVyQWN0aXZlKGxpc3QpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJvdXRlckFjdGl2ZShtZW51TGlzdDogSU1lbnVJdGVtW10pIHtcclxuICAgICAgICBpZiAobWVudUxpc3QgJiYgbWVudUxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IG1lbnVMaXN0LmZpbmRJbmRleChpID0+IHRoaXMucm91dGVyLnVybCA9PSBcIi9cIiArIGkuc3RhdGUpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm93SW5kZXggPSBpbmRleDtcclxuICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyLnVybC5pbmNsdWRlcyhcIi9kYXNoYm9hcmQtbWFuYWdlbWVudFwiKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJvd0luZGV4ID0gOTk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZW50ZXIoaTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zaG93QmFja0dyb3VuZENvbG9yID0gaTtcclxuICAgIH1cclxuXHJcbiAgICBsZWF2ZShpOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnNob3dCYWNrR3JvdW5kQ29sb3IgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZURyb3Bkb3duKGl0ZW06IGFueSkge1xyXG4gICAgICAgIGl0ZW0ub3BlbiA9ICFpdGVtLm9wZW47XHJcbiAgICB9XHJcblxyXG4gICAgLy8g4pyFIE5FVzogdW5pZmllZCBtZXRob2RcclxuICAgIHNlbGVjdE1lbnUoaW5kZXg6IG51bWJlciwgbGluaz86IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9IGluZGV4O1xyXG4gICAgICAgIGlmIChsaW5rKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaW5rXSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgc3R5bGU9XCJ3aWR0aDoxMDB2dzsgaGVpZ2h0OmNhbGMoMTAwdmggLSA2MHB4KTsgYmFja2dyb3VuZC1jb2xvcjojRjlGQUZCOyBwYWRkaW5nOjMwcHg7IG92ZXJmbG93OmF1dG87XCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiaGVpZ2h0OmF1dG87XCI+XHJcblxyXG4gICAgICAgIDwhLS0gRml4ZWQgSG9tZSBDYXJkIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtbWQtMyBtYi00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGN1cnNvci1wb2ludGVyXCIgc3R5bGU9XCJoZWlnaHQ6MTUwcHg7IGJvcmRlci1yYWRpdXM6MTJweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOyBiYWNrZ3JvdW5kOiNmZmY7IFxyXG4gICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6MCAycHggNnB4IHJnYmEoMCwwLDAsMC4wOCk7IGJvcmRlcjoycHggc29saWQgdHJhbnNwYXJlbnQ7XCIgKG1vdXNlZW50ZXIpPVwiZW50ZXIoOTkpXCJcclxuICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImxlYXZlKDk5KVwiIChjbGljayk9XCJzZWxlY3RNZW51KDk5LCAnL2Rhc2hib2FyZC1tYW5hZ2VtZW50JylcIiBbbmdTdHlsZV09XCIoc2VsZWN0ZWRSb3dJbmRleCA9PSA5OSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IDk5KSAmJiB7XHJcbiAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOicjREJFQUZFJyxcclxuICAgICAgICAgICAgICAnYm9yZGVyLWltYWdlJzonbGluZWFyLWdyYWRpZW50KDEzNWRlZywjNWRlMGU2LCMwMDRhYWQpIDEnLFxyXG4gICAgICAgICAgICAgICdib3gtc2hhZG93JzonMCA0cHggMTVweCByZ2JhKDAsMCwwLDAuMTUpJ1xyXG4gICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJmb250LXNpemU6NDBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB3aWR0aDo0OHB4OyBoZWlnaHQ6NDhweDtcclxuICAgICAgICAgICAgICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzVkZTBlNiwjMDA0YWFkKTtcclxuICAgICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6dGV4dDsgdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1wiPmhvbWU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNzsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+SG9tZTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gRHluYW1pYyBNZW51IENhcmRzIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtbWQtMyBtYi00XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgKG1lbnVJdGVtcyQgfCBhc3luYyk7IGxldCBpID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGN1cnNvci1wb2ludGVyXCIgc3R5bGU9XCJoZWlnaHQ6MTUwcHg7IGJvcmRlci1yYWRpdXM6MTJweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOyBiYWNrZ3JvdW5kOiNmZmY7XHJcbiAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwwLjA4KTsgYm9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDtcIiAobW91c2VlbnRlcik9XCJlbnRlcihpKVwiXHJcbiAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJsZWF2ZShpKVwiIChjbGljayk9XCJzZWxlY3RNZW51KGksIGl0ZW0uc3RhdGUpXCIgW25nU3R5bGVdPVwiKHNlbGVjdGVkUm93SW5kZXggPT0gaSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IGkpICYmIHtcclxuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6JyNEQkVBRkUnLFxyXG4gICAgICAgICAgICAgICdib3JkZXItaW1hZ2UnOidsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCM1ZGUwZTYsIzAwNGFhZCkgMScsXHJcbiAgICAgICAgICAgICAgJ2JveC1zaGFkb3cnOicwIDRweCAxNXB4IHJnYmEoMCwwLDAsMC4xNSknXHJcbiAgICAgICAgICB9XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBOb3JtYWwgbGluayAvIGFwcGxpY2F0aW9uIGxpbmsgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2xpbmsnIHx8IGl0ZW0udHlwZSA9PT0gJ2FwcGxpY2F0aW9ubGluaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOjQwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgd2lkdGg6NDhweDsgaGVpZ2h0OjQ4cHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjNWRlMGU2LCMwMDRhYWQpO1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6dGV4dDsgdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1wiPnt7IGl0ZW0uaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNzsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm1lbnUgPyAoaXRlbS5tZW51IHwgc29mdExhYmVsc1BpcGUgOiBzb2Z0TGFiZWxzKSA6IChpdGVtLm5hbWUgfCB0cmFuc2xhdGUpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gRXh0ZXJuYWwgbGluayAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZXh0TGluaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiaXRlbS5zdGF0ZVwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOjQwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgd2lkdGg6NDhweDsgaGVpZ2h0OjQ4cHg7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzVkZTBlNiwjMDA0YWFkKTtcclxuICAgICAgICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDp0ZXh0OyB0ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XCI+e3sgaXRlbS5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNzsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5tZW51ID8gKGl0ZW0ubWVudSB8IHNvZnRMYWJlbHNQaXBlIDogc29mdExhYmVscykgOiAoaXRlbS5uYW1lIHwgdHJhbnNsYXRlKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIERyb3Bkb3duIChwYXJlbnQpIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdkcm9wRG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMTAwIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOjQwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgd2lkdGg6NDhweDsgaGVpZ2h0OjQ4cHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjNWRlMGU2LCMwMDRhYWQpO1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6dGV4dDsgdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1wiPnt7IGl0ZW0uaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNzsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm1lbnUgPyAoaXRlbS5tZW51IHwgc29mdExhYmVsc1BpcGUgOiBzb2Z0TGFiZWxzKSA6IChpdGVtLm5hbWUgfCB0cmFuc2xhdGUpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZToyNHB4OyBtYXJnaW4tdG9wOjVweDsgd2lkdGg6MzJweDsgaGVpZ2h0OjMycHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzVkZTBlNiwjMDA0YWFkKTtcclxuICAgICAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOnRleHQ7IHRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ub3BlbiA/ICdleHBhbmRfbGVzcycgOiAnZXhwYW5kX21vcmUnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gQmFkZ2VzIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmJhZGdlcz8ubGVuZ3RoXCIgY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBpdGVtLmJhZGdlc1wiIGNsYXNzPVwiYmFkZ2Ugcm91bmRlZC1waWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogYmFkZ2UuY29sb3IgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYmFkZ2UudmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gRHJvcGRvd24gc3VibWVudSBhcyB1bmlmb3JtIGNhcmRzIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwIG10LTJcIiAqbmdJZj1cIml0ZW0ub3BlbiAmJiBpdGVtLnR5cGUgPT09ICdkcm9wRG93bidcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtbWQtMyBtYi00XCIgKm5nRm9yPVwibGV0IGl0ZW1MdkwyIG9mIGl0ZW0uc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY3Vyc29yLXBvaW50ZXJcIiBzdHlsZT1cImhlaWdodDoxNTBweDsgYm9yZGVyLXJhZGl1czoxMnB4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7IGJhY2tncm91bmQ6I2ZmZjtcclxuICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwwLjA4KTsgYm9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TWVudShpLCAnLycgKyBpdGVtLnN0YXRlICsgJy8nICsgaXRlbUx2TDIuc3RhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJmb250LXNpemU6NDBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB3aWR0aDo0OHB4OyBoZWlnaHQ6NDhweDtcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjNWRlMGU2LCMwMDRhYWQpO1xyXG4gICAgICAgICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOnRleHQ7IHRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcIj57eyBpdGVtTHZMMi5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNzsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbUx2TDIubWVudSA/IChpdGVtTHZMMi5tZW51IHwgc29mdExhYmVsc1BpcGUgOiBzb2Z0TGFiZWxzKSA6IChpdGVtTHZMMi5uYW1lIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGUpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19