@thetradeengineorg1/snova-shell-module 1.0.6 → 1.0.7
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/bundles/thetradeengineorg1-snova-shell-module.umd.js +499 -4017
- package/bundles/thetradeengineorg1-snova-shell-module.umd.js.map +1 -1
- package/esm2015/lib/globaldependencies/components/componentbase.js +9 -9
- package/esm2015/lib/globaldependencies/helpers/moment-utc-date-adapter.js +11 -11
- package/esm2015/lib/globaldependencies/intercepter/jwt.interceptor.js +6 -6
- package/esm2015/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.js +11 -11
- package/esm2015/lib/globaldependencies/pipes/highLightText.pipe.js +13 -13
- package/esm2015/lib/globaldependencies/pipes/orderby-pipe.js +11 -11
- package/esm2015/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.js +11 -11
- package/esm2015/lib/globaldependencies/pipes/sanitize.pipe.js +13 -13
- package/esm2015/lib/globaldependencies/pipes/softlabels.pipes.js +13 -13
- package/esm2015/lib/globaldependencies/pipes/utctolocaltime.pipe.js +11 -11
- package/esm2015/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.js +11 -11
- package/esm2015/lib/globaldependencies/pipes/workflowstatus.pipes.js +11 -11
- package/esm2015/lib/shell-components/components/Payments/account.component.js +20 -91
- package/esm2015/lib/shell-components/components/Payments/company-information.js +26 -322
- package/esm2015/lib/shell-components/components/Payments/company-plans.component.js +11 -509
- package/esm2015/lib/shell-components/components/Payments/document.component.js +18 -90
- package/esm2015/lib/shell-components/components/Payments/payment-method.component.js +18 -76
- package/esm2015/lib/shell-components/components/Payments/product-service.component.js +22 -317
- package/esm2015/lib/shell-components/components/Payments/purchase-more-licenses.js +22 -119
- package/esm2015/lib/shell-components/components/Payments/transactions.component.js +20 -132
- package/esm2015/lib/shell-components/components/admin-layout/admin-layout.component.js +17 -85
- package/esm2015/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.js +16 -29
- package/esm2015/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.js +19 -55
- package/esm2015/lib/shell-components/components/export-import-configuration/export-configuration.component.js +29 -174
- package/esm2015/lib/shell-components/components/feed-time/feed-time-dialog.component.js +16 -29
- package/esm2015/lib/shell-components/components/feed-time/feed-time.component.js +16 -20
- package/esm2015/lib/shell-components/components/header-side/header-side.component.js +64 -387
- package/esm2015/lib/shell-components/components/header-top/header-top.component.js +19 -142
- package/esm2015/lib/shell-components/components/lives/lives-welcome-page.js +10 -39
- package/esm2015/lib/shell-components/components/menu/menu.component.js +64 -176
- package/esm2015/lib/shell-components/components/notifications/announcement-dialog.component.js +20 -57
- package/esm2015/lib/shell-components/components/notifications/notifications.component.js +14 -99
- package/esm2015/lib/shell-components/components/sidebar-top/sidebar-top.component.js +13 -19
- package/esm2015/lib/shell-components/components/sidenav/side-bar.component.js +60 -148
- package/esm2015/lib/shell-components/components/sidenav/sidenav.component.js +23 -419
- package/esm2015/lib/shell-components/components/submit-feedback/submit-feedback.component.js +13 -17
- package/esm2015/lib/shell-components/services/authentication.service.js +7 -7
- package/esm2015/lib/shell-components/services/chat.service.js +9 -9
- package/esm2015/lib/shell-components/services/common-used.service.js +7 -7
- package/esm2015/lib/shell-components/services/feature.service.js +7 -7
- package/esm2015/lib/shell-components/services/google-analytics.service.js +6 -6
- package/esm2015/lib/shell-components/services/layout.service.js +6 -6
- package/esm2015/lib/shell-components/services/payment.service.js +7 -7
- package/esm2015/lib/shell-components/services/recentSearch.service.js +9 -9
- package/esm2015/lib/shell-components/services/shell.modules.service.js +11 -11
- package/esm2015/lib/shell-components/services/signalr.service.js +9 -9
- package/esm2015/lib/shell-components/services/theme.service.js +6 -6
- package/esm2015/lib/shell-components/shell.module.js +175 -176
- package/esm2015/lib/shell-components/store/effects/authentication.effects.js +9 -9
- package/esm2015/lib/shell-components/store/effects/chat.effects.js +6 -6
- package/esm2015/lib/shell-components/store/effects/menuitems.effects.js +6 -6
- package/esm2015/lib/shell-components/store/effects/notification-validator.effects.js +6 -6
- package/esm2015/lib/shell-components/store/effects/notifications.effects.js +6 -6
- package/fesm2015/thetradeengineorg1-snova-shell-module.js +859 -3841
- package/fesm2015/thetradeengineorg1-snova-shell-module.js.map +1 -1
- package/lib/shell-components/components/sidenav/side-bar.component.d.ts +16 -6
- package/package.json +2 -5
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Component } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "
|
|
4
|
-
import * as i2 from "
|
|
5
|
-
import * as i3 from "
|
|
3
|
+
import * as i1 from "../sidenav/sidenav.component";
|
|
4
|
+
import * as i2 from "@angular/flex-layout/flex";
|
|
5
|
+
import * as i3 from "ngx-perfect-scrollbar";
|
|
6
6
|
// import PerfectScrollbar from 'perfect-scrollbar';
|
|
7
7
|
export class SidebarTopComponent {
|
|
8
8
|
// private sidebarPS: PerfectScrollbar;
|
|
@@ -21,19 +21,13 @@ export class SidebarTopComponent {
|
|
|
21
21
|
// }
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
SidebarTopComponent.ɵfac =
|
|
25
|
-
SidebarTopComponent.ɵcmp =
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
args: [{
|
|
35
|
-
selector: "app-sidebar-top",
|
|
36
|
-
templateUrl: "./sidebar-top.component.html"
|
|
37
|
-
}]
|
|
38
|
-
}], function () { return []; }, null); })();
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvY29tcG9uZW50cy9zaWRlYmFyLXRvcC9zaWRlYmFyLXRvcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL3NpZGViYXItdG9wL3NpZGViYXItdG9wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9DLE1BQU0sZUFBZSxDQUFDOzs7OztBQUM1RSxvREFBb0Q7QUFPcEQsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qix1Q0FBdUM7SUFDdkMsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQztJQUViLGVBQWU7UUFDYixxQkFBcUI7UUFDckIsd0VBQXdFO1FBQ3hFLDRCQUE0QjtRQUM1QixPQUFPO1FBQ1AsS0FBSztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsdUJBQXVCO1FBQ3ZCLDhCQUE4QjtRQUM5QixJQUFJO0lBQ04sQ0FBQzs7c0ZBbEJVLG1CQUFtQjtzRUFBbkIsbUJBQW1CO1FDUmhDLDhCQUEyQjtRQUN6Qiw4QkFBK0Y7UUFDN0YsOEJBQTJCO1FBQzdCLGlCQUFNO1FBQ1IsaUJBQU07O3VGRElPLG1CQUFtQjtjQUwvQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsV0FBVyxFQUFFLDhCQUE4QjthQUM1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG4vLyBpbXBvcnQgUGVyZmVjdFNjcm9sbGJhciBmcm9tICdwZXJmZWN0LXNjcm9sbGJhcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtc2lkZWJhci10b3BcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NpZGViYXItdG9wLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTaWRlYmFyVG9wQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIC8vIHByaXZhdGUgc2lkZWJhclBTOiBQZXJmZWN0U2Nyb2xsYmFyO1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIC8vICAgdGhpcy5zaWRlYmFyUFMgPSBuZXcgUGVyZmVjdFNjcm9sbGJhcignI3NpZGViYXItdG9wLXNjcm9sbC1hcmVhJywge1xyXG4gICAgLy8gICAgIHN1cHByZXNzU2Nyb2xsWDogdHJ1ZVxyXG4gICAgLy8gICB9KVxyXG4gICAgLy8gfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gaWYodGhpcy5zaWRlYmFyUFMpIHtcclxuICAgIC8vICAgdGhpcy5zaWRlYmFyUFMuZGVzdHJveSgpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2lkZWJhci1wYW5lbFwiPlxyXG4gIDxkaXYgaWQ9XCJzaWRlYmFyLXRvcC1zY3JvbGwtYXJlYVwiIFtwZXJmZWN0U2Nyb2xsYmFyXSBjbGFzcz1cIm5hdmlnYXRpb24taG9sZFwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICA8YXBwLXNpZGVuYXY+PC9hcHAtc2lkZW5hdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
24
|
+
SidebarTopComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: SidebarTopComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
SidebarTopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.1", type: SidebarTopComponent, selector: "app-sidebar-top", ngImport: i0, template: "<div class=\"sidebar-panel\">\r\n <div id=\"sidebar-top-scroll-area\" [perfectScrollbar] class=\"navigation-hold\" fxLayout=\"column\">\r\n <app-sidenav></app-sidenav>\r\n </div>\r\n</div>", components: [{ type: i1.SidenavComponent, selector: "app-sidenav", inputs: ["hasIconMenu", "iconMenuTitle"] }], directives: [{ type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i3.PerfectScrollbarDirective, selector: "[perfectScrollbar]", inputs: ["disabled", "perfectScrollbar"], outputs: ["psScrollY", "psScrollX", "psScrollUp", "psScrollDown", "psScrollLeft", "psScrollRight", "psYReachEnd", "psYReachStart", "psXReachEnd", "psXReachStart"], exportAs: ["ngxPerfectScrollbar"] }] });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: SidebarTopComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: "app-sidebar-top",
|
|
30
|
+
templateUrl: "./sidebar-top.component.html"
|
|
31
|
+
}]
|
|
32
|
+
}], ctorParameters: function () { return []; } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvY29tcG9uZW50cy9zaWRlYmFyLXRvcC9zaWRlYmFyLXRvcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL3NpZGViYXItdG9wL3NpZGViYXItdG9wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9DLE1BQU0sZUFBZSxDQUFDOzs7OztBQUM1RSxvREFBb0Q7QUFPcEQsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qix1Q0FBdUM7SUFDdkMsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQztJQUViLGVBQWU7UUFDYixxQkFBcUI7UUFDckIsd0VBQXdFO1FBQ3hFLDRCQUE0QjtRQUM1QixPQUFPO1FBQ1AsS0FBSztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsdUJBQXVCO1FBQ3ZCLDhCQUE4QjtRQUM5QixJQUFJO0lBQ04sQ0FBQzs7Z0hBbEJVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHVEQ1JoQyxtTUFJTTsyRkRJTyxtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsV0FBVyxFQUFFLDhCQUE4QjtpQkFDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuLy8gaW1wb3J0IFBlcmZlY3RTY3JvbGxiYXIgZnJvbSAncGVyZmVjdC1zY3JvbGxiYXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXNpZGViYXItdG9wXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9zaWRlYmFyLXRvcC5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU2lkZWJhclRvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICAvLyBwcml2YXRlIHNpZGViYXJQUzogUGVyZmVjdFNjcm9sbGJhcjtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMuc2lkZWJhclBTID0gbmV3IFBlcmZlY3RTY3JvbGxiYXIoJyNzaWRlYmFyLXRvcC1zY3JvbGwtYXJlYScsIHtcclxuICAgIC8vICAgICBzdXBwcmVzc1Njcm9sbFg6IHRydWVcclxuICAgIC8vICAgfSlcclxuICAgIC8vIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIC8vIGlmKHRoaXMuc2lkZWJhclBTKSB7XHJcbiAgICAvLyAgIHRoaXMuc2lkZWJhclBTLmRlc3Ryb3koKTtcclxuICAgIC8vIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNpZGViYXItcGFuZWxcIj5cclxuICA8ZGl2IGlkPVwic2lkZWJhci10b3Atc2Nyb2xsLWFyZWFcIiBbcGVyZmVjdFNjcm9sbGJhcl0gY2xhc3M9XCJuYXZpZ2F0aW9uLWhvbGRcIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gICAgPGFwcC1zaWRlbmF2PjwvYXBwLXNpZGVuYXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -1,119 +1,39 @@
|
|
|
1
1
|
import { Component } from "@angular/core";
|
|
2
2
|
import { NavigationEnd } from "@angular/router";
|
|
3
3
|
import { select } from "@ngrx/store";
|
|
4
|
-
import {
|
|
5
|
-
import * as
|
|
4
|
+
import { map, tap } from "rxjs/operators";
|
|
5
|
+
import * as sharedReducers from "../../store/reducers";
|
|
6
6
|
import { GetAllMenuItemsTriggered } from "../../store/actions/menuitems.actions";
|
|
7
7
|
import { MenuCategories } from "../../constants/menu-categories";
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@ngrx/store";
|
|
10
10
|
import * as i2 from "@angular/router";
|
|
11
|
-
import * as i3 from "@angular/
|
|
12
|
-
import * as i4 from "@angular/
|
|
13
|
-
import * as i5 from "@angular/
|
|
11
|
+
import * as i3 from "@angular/material/icon";
|
|
12
|
+
import * as i4 from "@angular/common";
|
|
13
|
+
import * as i5 from "@angular/flex-layout/extended";
|
|
14
14
|
import * as i6 from "../../../globaldependencies/pipes/softlabels.pipes";
|
|
15
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.ɵɵtextInterpolate1(" ", 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", 10);
|
|
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.ɵɵtextInterpolate1(" ", 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
|
-
const _c0 = function (a0) { return { background: a0 }; };
|
|
59
|
-
function SideBarComponent_div_9_div_5_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
60
|
-
i0.ɵɵelementStart(0, "span", 13);
|
|
61
|
-
i0.ɵɵtext(1);
|
|
62
|
-
i0.ɵɵelementEnd();
|
|
63
|
-
} if (rf & 2) {
|
|
64
|
-
const badge_r9 = ctx.$implicit;
|
|
65
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c0, badge_r9.color));
|
|
66
|
-
i0.ɵɵadvance(1);
|
|
67
|
-
i0.ɵɵtextInterpolate1(" ", badge_r9.value, " ");
|
|
68
|
-
} }
|
|
69
|
-
function SideBarComponent_div_9_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
70
|
-
i0.ɵɵelementStart(0, "div", 11);
|
|
71
|
-
i0.ɵɵtemplate(1, SideBarComponent_div_9_div_5_span_1_Template, 2, 4, "span", 12);
|
|
72
|
-
i0.ɵɵelementEnd();
|
|
73
|
-
} if (rf & 2) {
|
|
74
|
-
const item_r1 = i0.ɵɵnextContext().$implicit;
|
|
75
|
-
i0.ɵɵadvance(1);
|
|
76
|
-
i0.ɵɵproperty("ngForOf", item_r1.badges);
|
|
77
|
-
} }
|
|
78
|
-
const _c1 = "0 6px 20px rgba(241, 88, 12, 0.35), 0 0 10px rgba(241, 88, 12, 0.25)";
|
|
79
|
-
const _c2 = function () { return { "background-color": "#fff", "border": "2px solid #f1580c", "box-shadow": _c1 }; };
|
|
80
|
-
function SideBarComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
-
const _r12 = i0.ɵɵgetCurrentView();
|
|
82
|
-
i0.ɵɵelementStart(0, "div", 2);
|
|
83
|
-
i0.ɵɵelementStart(1, "div", 3);
|
|
84
|
-
i0.ɵɵlistener("mouseenter", function SideBarComponent_div_9_Template_div_mouseenter_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r12); const i_r2 = restoredCtx.index; const ctx_r11 = i0.ɵɵnextContext(); return ctx_r11.enter(i_r2); })("mouseleave", function SideBarComponent_div_9_Template_div_mouseleave_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r12); const i_r2 = restoredCtx.index; const ctx_r13 = i0.ɵɵnextContext(); return ctx_r13.leave(i_r2); })("click", function SideBarComponent_div_9_Template_div_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r12); const i_r2 = restoredCtx.index; const item_r1 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(); return ctx_r14.selectMenu(i_r2, item_r1.state); });
|
|
85
|
-
i0.ɵɵelementStart(2, "div", 4);
|
|
86
|
-
i0.ɵɵtemplate(3, SideBarComponent_div_9_ng_container_3_Template, 7, 7, "ng-container", 8);
|
|
87
|
-
i0.ɵɵtemplate(4, SideBarComponent_div_9_ng_container_4_Template, 8, 8, "ng-container", 8);
|
|
88
|
-
i0.ɵɵtemplate(5, SideBarComponent_div_9_div_5_Template, 2, 1, "div", 9);
|
|
89
|
-
i0.ɵɵelementEnd();
|
|
90
|
-
i0.ɵɵelementEnd();
|
|
91
|
-
i0.ɵɵelementEnd();
|
|
92
|
-
} if (rf & 2) {
|
|
93
|
-
const item_r1 = ctx.$implicit;
|
|
94
|
-
const i_r2 = ctx.index;
|
|
95
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
96
|
-
i0.ɵɵadvance(1);
|
|
97
|
-
i0.ɵɵproperty("ngStyle", (ctx_r0.selectedRowIndex == i_r2 || ctx_r0.showBackGroundColor == i_r2) && i0.ɵɵpureFunction0(4, _c2));
|
|
98
|
-
i0.ɵɵadvance(2);
|
|
99
|
-
i0.ɵɵproperty("ngIf", item_r1.type === "link" || item_r1.type === "applicationlink");
|
|
100
|
-
i0.ɵɵadvance(1);
|
|
101
|
-
i0.ɵɵproperty("ngIf", item_r1.type === "extLink");
|
|
102
|
-
i0.ɵɵadvance(1);
|
|
103
|
-
i0.ɵɵproperty("ngIf", item_r1.badges == null ? null : item_r1.badges.length);
|
|
104
|
-
} }
|
|
105
16
|
export class SideBarComponent {
|
|
106
17
|
constructor(store, router) {
|
|
107
18
|
this.store = store;
|
|
108
19
|
this.router = router;
|
|
20
|
+
/** index of selected card */
|
|
21
|
+
this.selectedRowIndex = null;
|
|
22
|
+
/** index of hovered card */
|
|
109
23
|
this.showBackGroundColor = null;
|
|
24
|
+
/** soft labels for translations */
|
|
25
|
+
this.softLabels = [];
|
|
110
26
|
}
|
|
111
27
|
ngOnInit() {
|
|
112
|
-
|
|
113
|
-
|
|
28
|
+
// load soft label translations
|
|
29
|
+
const storedLabels = localStorage.getItem("SoftLabels");
|
|
30
|
+
this.softLabels = storedLabels ? JSON.parse(storedLabels) : [];
|
|
31
|
+
// select & filter sidebar menu items from store
|
|
32
|
+
this.menuItems$ = this.store.pipe(select(sharedReducers.getCurrentActiveMenuCategoryMenuItems), map((list) => list.filter((item) => {
|
|
114
33
|
var _a, _b;
|
|
115
34
|
const menuLabel = ((_a = item.menu) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || "";
|
|
116
35
|
const state = ((_b = item.state) === null || _b === void 0 ? void 0 : _b.toLowerCase()) || "";
|
|
36
|
+
// Exclude HR, tracker or unwanted items
|
|
117
37
|
if (menuLabel === "hr" || state.startsWith("hrmanagment/employeelist"))
|
|
118
38
|
return false;
|
|
119
39
|
if (menuLabel.includes("hr managment") || menuLabel.includes("hr management"))
|
|
@@ -123,74 +43,66 @@ export class SideBarComponent {
|
|
|
123
43
|
if (menuLabel.includes("activity tracker") || state.startsWith("activitytracker"))
|
|
124
44
|
return false;
|
|
125
45
|
return true;
|
|
126
|
-
})), tap(menuList => this.routerActive(menuList)));
|
|
46
|
+
})), tap((menuList) => this.routerActive(menuList)));
|
|
47
|
+
// dispatch load event
|
|
127
48
|
this.store.dispatch(new GetAllMenuItemsTriggered(MenuCategories.Main));
|
|
128
|
-
|
|
49
|
+
// listen for route changes to update highlight
|
|
50
|
+
this.router.events.subscribe((event) => {
|
|
129
51
|
if (event instanceof NavigationEnd) {
|
|
130
|
-
this.menuItems$.subscribe(list => this.routerActive(list));
|
|
52
|
+
this.menuItems$.subscribe((list) => this.routerActive(list));
|
|
131
53
|
}
|
|
132
54
|
});
|
|
133
55
|
}
|
|
56
|
+
/** highlights the active card according to current route */
|
|
134
57
|
routerActive(menuList) {
|
|
135
|
-
if (menuList
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
58
|
+
if (!(menuList === null || menuList === void 0 ? void 0 : menuList.length))
|
|
59
|
+
return;
|
|
60
|
+
const foundIndex = menuList.findIndex((i) => this.router.url === "/" + i.state);
|
|
61
|
+
this.selectedRowIndex = foundIndex >= 0 ? foundIndex : null;
|
|
62
|
+
// Highlight report card when inside any dashboard route
|
|
63
|
+
if (this.router.url.startsWith("/dashboard-management/dashboard")) {
|
|
64
|
+
this.selectedRowIndex = 99;
|
|
142
65
|
}
|
|
143
66
|
}
|
|
144
|
-
enter
|
|
145
|
-
|
|
67
|
+
/** hover enter */
|
|
68
|
+
enter(index) {
|
|
69
|
+
this.showBackGroundColor = index;
|
|
146
70
|
}
|
|
147
|
-
leave
|
|
148
|
-
|
|
71
|
+
/** hover leave */
|
|
72
|
+
leave(index) {
|
|
73
|
+
if (this.showBackGroundColor === index) {
|
|
74
|
+
this.showBackGroundColor = null;
|
|
75
|
+
}
|
|
149
76
|
}
|
|
77
|
+
/** when clicking on dynamic menu card */
|
|
150
78
|
selectMenu(index, link) {
|
|
151
79
|
this.selectedRowIndex = index;
|
|
152
80
|
if (link) {
|
|
153
|
-
|
|
81
|
+
// ensure forward slash
|
|
82
|
+
const path = link.startsWith("/") ? link : "/" + link;
|
|
83
|
+
this.router.navigate([path]);
|
|
154
84
|
}
|
|
155
85
|
}
|
|
156
|
-
|
|
86
|
+
/** open report dashboard-management/dashboard/:id or root */
|
|
157
87
|
goToReport() {
|
|
158
88
|
this.selectedRowIndex = 99;
|
|
159
|
-
|
|
89
|
+
const stored = localStorage.getItem("DefaultDashboard");
|
|
90
|
+
const defaultDashboardId = stored ? JSON.parse(stored) : null;
|
|
91
|
+
if (defaultDashboardId) {
|
|
92
|
+
this.router.navigate([`/dashboard-management/dashboard/${defaultDashboardId}`]);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.router.navigate(["/dashboard-management"]);
|
|
96
|
+
}
|
|
160
97
|
}
|
|
161
98
|
}
|
|
162
|
-
SideBarComponent.ɵfac =
|
|
163
|
-
SideBarComponent.ɵcmp =
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
i0.ɵɵtext(6, " assessment ");
|
|
172
|
-
i0.ɵɵelementEnd();
|
|
173
|
-
i0.ɵɵelementStart(7, "h6", 6);
|
|
174
|
-
i0.ɵɵtext(8, "Report");
|
|
175
|
-
i0.ɵɵelementEnd();
|
|
176
|
-
i0.ɵɵelementEnd();
|
|
177
|
-
i0.ɵɵelementEnd();
|
|
178
|
-
i0.ɵɵelementEnd();
|
|
179
|
-
i0.ɵɵtemplate(9, SideBarComponent_div_9_Template, 6, 5, "div", 7);
|
|
180
|
-
i0.ɵɵpipe(10, "async");
|
|
181
|
-
i0.ɵɵelementEnd();
|
|
182
|
-
i0.ɵɵelementEnd();
|
|
183
|
-
} if (rf & 2) {
|
|
184
|
-
i0.ɵɵadvance(3);
|
|
185
|
-
i0.ɵɵproperty("ngStyle", (ctx.selectedRowIndex == 99 || ctx.showBackGroundColor == 99) && i0.ɵɵpureFunction0(4, _c2));
|
|
186
|
-
i0.ɵɵadvance(6);
|
|
187
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(10, 2, ctx.menuItems$));
|
|
188
|
-
} }, directives: [i3.NgStyle, i4.DefaultStyleDirective, i5.MatIcon, i3.NgForOf, i3.NgIf], pipes: [i3.AsyncPipe, i6.SoftLabelPipe, i7.TranslatePipe], encapsulation: 2 });
|
|
189
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SideBarComponent, [{
|
|
190
|
-
type: Component,
|
|
191
|
-
args: [{
|
|
192
|
-
selector: "app-sidebar",
|
|
193
|
-
templateUrl: "./side-bar.component.html"
|
|
194
|
-
}]
|
|
195
|
-
}], function () { return [{ type: i1.Store }, { type: i2.Router }]; }, null); })();
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvY29tcG9uZW50cy9zaWRlbmF2L3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvc2lkZW5hdi9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUMsT0FBTyxLQUFLLG9CQUFvQixNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztJQ21DN0MsNkJBQThFO0lBQzFFLG1DQUl5RDtJQUNyRCxZQUNKO0lBQUEsaUJBQVc7SUFDWCw2QkFBd0U7SUFDcEUsWUFDSjs7O0lBQUEsaUJBQUs7SUFDVCwwQkFBZTs7OztJQUxQLGVBQ0o7SUFESSw2Q0FDSjtJQUVJLGVBQ0o7SUFESSwwSUFDSjs7O0lBSUosNkJBQThDO0lBQzFDLDZCQUEyRjtJQUN2RixtQ0FJdUQ7SUFDbkQsWUFDSjtJQUFBLGlCQUFXO0lBQ1gsNkJBQXdFO0lBQ3BFLFlBQ0o7OztJ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RXBGLDhCQUFnRjtRQUk1RSw4QkFBaUM7UUFDN0IsOEJBT007UUFMK0Msb0dBQWMsVUFBTSxFQUFFLENBQUMsSUFBQyx1RkFBZSxVQUFNLEVBQUUsQ0FBQyxJQUF4Qiw2RUFDaEUsZ0JBQVksSUFEb0Q7UUFPekUsOEJBQW9GO1FBQ2hGLG1DQUkrRDtRQUMzRCw0QkFDSjtRQUFBLGlCQUFXO1FBQ1gsNkJBQXdFO1FBQUEsc0JBQU07UUFBQSxpQkFBSztRQUN2RixpQkFBTTtRQUNWLGlCQUFNO1FBQ1YsaUJBQU07UUFJTixpRUFvRE07O1FBQ1YsaUJBQU07UUFDVixpQkFBTTs7UUEzRWlDLGVBSXRCO1FBSnNCLHFIQUl0QjtRQWlCeUMsZUFBeUI7UUFBekIsK0RBQXlCOzt1RkRmdEUsZ0JBQWdCO2NBSjVCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsV0FBVyxFQUFFLDJCQUEyQjthQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkVuZCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgU3RvcmUsIHNlbGVjdCB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFwLCBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbmltcG9ydCB7IFN0YXRlIH0gZnJvbSBcIi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvaW5kZXhcIjtcclxuaW1wb3J0ICogYXMgc2hhcmVkTW9kdWxlUmVkdWNlcnMgZnJvbSBcIi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvaW5kZXhcIjtcclxuaW1wb3J0IHsgR2V0QWxsTWVudUl0ZW1zVHJpZ2dlcmVkIH0gZnJvbSBcIi4uLy4uL3N0b3JlL2FjdGlvbnMvbWVudWl0ZW1zLmFjdGlvbnNcIjtcclxuaW1wb3J0IHsgSU1lbnVJdGVtIH0gZnJvbSBcIi4uLy4uL21vZGVscy9JTWVudUl0ZW1cIjtcclxuaW1wb3J0IHsgTWVudUNhdGVnb3JpZXMgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzL21lbnUtY2F0ZWdvcmllc1wiO1xyXG5pbXBvcnQgeyBTb2Z0TGFiZWxDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NvZnRsYWJlbHMtbW9kZWxcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYXBwLXNpZGViYXJcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vc2lkZS1iYXIuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lkZUJhckNvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgbWVudUl0ZW1zJDogT2JzZXJ2YWJsZTxJTWVudUl0ZW1bXT47XHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRSb3dJbmRleDogbnVtYmVyO1xyXG4gICAgcHVibGljIHNob3dCYWNrR3JvdW5kQ29sb3I6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gICAgcHVibGljIHNvZnRMYWJlbHM6IFNvZnRMYWJlbENvbmZpZ3VyYXRpb25Nb2RlbFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPFN0YXRlPiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zb2Z0TGFiZWxzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlNvZnRMYWJlbHNcIikpO1xyXG5cclxuICAgICAgICB0aGlzLm1lbnVJdGVtcyQgPSB0aGlzLnN0b3JlLnBpcGUoXHJcbiAgICAgICAgICAgIHNlbGVjdChzaGFyZWRNb2R1bGVSZWR1Y2Vycy5nZXRDdXJyZW50QWN0aXZlTWVudUNhdGVnb3J5TWVudUl0ZW1zKSxcclxuICAgICAgICAgICAgbWFwKG1lbnVMaXN0ID0+XHJcbiAgICAgICAgICAgICAgICBtZW51TGlzdC5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVudUxhYmVsID0gKGl0ZW0gYXMgYW55KS5tZW51Py50b0xvd2VyQ2FzZSgpIHx8IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBpdGVtLnN0YXRlPy50b0xvd2VyQ2FzZSgpIHx8IFwiXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtZW51TGFiZWwgPT09IFwiaHJcIiB8fCBzdGF0ZS5zdGFydHNXaXRoKFwiaHJtYW5hZ21lbnQvZW1wbG95ZWVsaXN0XCIpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1lbnVMYWJlbC5pbmNsdWRlcyhcImhyIG1hbmFnbWVudFwiKSB8fCBtZW51TGFiZWwuaW5jbHVkZXMoXCJociBtYW5hZ2VtZW50XCIpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLnN0YXJ0c1dpdGgoXCJocm1hbmFnbWVudFwiKSB8fCBzdGF0ZS5zdGFydHNXaXRoKFwiaHJtZGV0YWlsc1wiKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtZW51TGFiZWwuaW5jbHVkZXMoXCJhY3Rpdml0eSB0cmFja2VyXCIpIHx8IHN0YXRlLnN0YXJ0c1dpdGgoXCJhY3Rpdml0eXRyYWNrZXJcIikpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB0YXAobWVudUxpc3QgPT4gdGhpcy5yb3V0ZXJBY3RpdmUobWVudUxpc3QpKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IEdldEFsbE1lbnVJdGVtc1RyaWdnZXJlZChNZW51Q2F0ZWdvcmllcy5NYWluKSk7XHJcblxyXG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVJdGVtcyQuc3Vic2NyaWJlKGxpc3QgPT4gdGhpcy5yb3V0ZXJBY3RpdmUobGlzdCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcm91dGVyQWN0aXZlKG1lbnVMaXN0OiBJTWVudUl0ZW1bXSkge1xyXG4gICAgICAgIGlmIChtZW51TGlzdCAmJiBtZW51TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gbWVudUxpc3QuZmluZEluZGV4KGkgPT4gdGhpcy5yb3V0ZXIudXJsID09IFwiL1wiICsgaS5zdGF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9IGluZGV4O1xyXG5cclxuICAgICAgICAgICAgLy8g8J+RiSBIaWdobGlnaHQgUmVwb3J0IGNhcmQgd2hlbiBpbnNpZGUgZGFzaGJvYXJkLW1hbmFnZW1lbnQvZGFzaGJvYXJkXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoXCIvZGFzaGJvYXJkLW1hbmFnZW1lbnQvZGFzaGJvYXJkXCIpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm93SW5kZXggPSA5OTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbnRlcihpOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnNob3dCYWNrR3JvdW5kQ29sb3IgPSBpO1xyXG4gICAgfVxyXG5cclxuICAgIGxlYXZlKGk6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc2hvd0JhY2tHcm91bmRDb2xvciA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0TWVudShpbmRleDogbnVtYmVyLCBsaW5rPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd0luZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgaWYgKGxpbmspIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2xpbmtdKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8g8J+RiSBSZXBvcnQgZ29lcyB0byAvZGFzaGJvYXJkLW1hbmFnZW1lbnQvZGFzaGJvYXJkXHJcbiAgICBnb1RvUmVwb3J0KCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9IDk5O1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9kYXNoYm9hcmQtbWFuYWdlbWVudC9kYXNoYm9hcmRcIl0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cIndpZHRoOjEwMHZ3OyBoZWlnaHQ6Y2FsYygxMDB2aCAtIDYwcHgpOyBwYWRkaW5nOjMwcHg7IG92ZXJmbG93OmF1dG87XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwyNTUsMjU1LDAuNyksIHJnYmEoMjU1LDI1NSwyNTUsMC43KSk7XCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiaGVpZ2h0OmF1dG87XCI+XHJcblxyXG4gICAgICAgIDwhLS0gRml4ZWQgUmVwb3J0IENhcmQgLS0+XHJcbiAgICAgICAgPCEtLSBGaXhlZCBSZXBvcnQgQ2FyZCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLW1kLTMgbWItNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjdXJzb3ItcG9pbnRlclwiIHN0eWxlPVwiaGVpZ2h0OjE1MHB4OyBib3JkZXItcmFkaXVzOjEycHg7IHRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6I2ZmZjsgYm94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwwLjA4KTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjoycHggc29saWQgcmdiYSgyNDEsIDg4LCAxMiwgMC4yNSk7XCIgKG1vdXNlZW50ZXIpPVwiZW50ZXIoOTkpXCIgKG1vdXNlbGVhdmUpPVwibGVhdmUoOTkpXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUmVwb3J0KClcIiBbbmdTdHlsZV09XCIoc2VsZWN0ZWRSb3dJbmRleCA9PSA5OSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IDk5KSAmJiB7XHJcbiAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOicjZmZmJyxcclxuICAgICAgICAgICAgICAgICAnYm9yZGVyJzonMnB4IHNvbGlkICNmMTU4MGMnLFxyXG4gICAgICAgICAgICAgICAgICdib3gtc2hhZG93JzonMCA2cHggMjBweCByZ2JhKDI0MSwgODgsIDEyLCAwLjM1KSwgMCAwIDEwcHggcmdiYSgyNDEsIDg4LCAxMiwgMC4yNSknXHJcbiAgICAgICAgICAgICAgIH1cIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTo0MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IHdpZHRoOjQ4cHg7IGhlaWdodDo0OHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2Y3OWE2YiwjZjE1ODBjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOnRleHQ7IHRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXNzbWVudFxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IHN0eWxlPVwiZm9udC1zaXplOjE0cHg7IG1hcmdpbjowOyBjb2xvcjojMTExODI3OyB0ZXh0LWFsaWduOmNlbnRlcjtcIj5SZXBvcnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPCEtLSBEeW5hbWljIE1lbnUgQ2FyZHMgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGNvbC1tZC0zIG1iLTRcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiAobWVudUl0ZW1zJCB8IGFzeW5jKTsgbGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY3Vyc29yLXBvaW50ZXJcIiBzdHlsZT1cImhlaWdodDoxNTBweDsgYm9yZGVyLXJhZGl1czoxMnB4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6I2ZmZjsgYm94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwwLjA4KTtcclxuICAgICAgICAgICAgICAgICAgYm9yZGVyOjJweCBzb2xpZCByZ2JhKDI0MSwgODgsIDEyLCAwLjI1KTtcIiAobW91c2VlbnRlcik9XCJlbnRlcihpKVwiIChtb3VzZWxlYXZlKT1cImxlYXZlKGkpXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNZW51KGksIGl0ZW0uc3RhdGUpXCIgW25nU3R5bGVdPVwiKHNlbGVjdGVkUm93SW5kZXggPT0gaSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IGkpICYmIHtcclxuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6JyNmZmYnLFxyXG4gICAgICAgICAgICAgICdib3JkZXInOicycHggc29saWQgI2YxNTgwYycsXHJcbiAgICAgICAgICAgICAgJ2JveC1zaGFkb3cnOicwIDZweCAyMHB4IHJnYmEoMjQxLCA4OCwgMTIsIDAuMzUpLCAwIDAgMTBweCByZ2JhKDI0MSwgODgsIDEyLCAwLjI1KSdcclxuICAgICAgICAgICB9XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBOb3JtYWwgbGluayAvIGFwcGxpY2F0aW9uIGxpbmsgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2xpbmsnIHx8IGl0ZW0udHlwZSA9PT0gJ2FwcGxpY2F0aW9ubGluaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOjQwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgd2lkdGg6NDhweDsgaGVpZ2h0OjQ4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNmNzlhNmIsI2YxNTgwYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOnRleHQ7IHRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uaWNvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDYgc3R5bGU9XCJmb250LXNpemU6MTRweDsgbWFyZ2luOjA7IGNvbG9yOiMxMTE4Mjc7IHRleHQtYWxpZ246Y2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5tZW51ID8gKGl0ZW0ubWVudSB8IHNvZnRMYWJlbHNQaXBlIDogc29mdExhYmVscykgOiAoaXRlbS5uYW1lIHwgdHJhbnNsYXRlKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIEV4dGVybmFsIGxpbmsgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2V4dExpbmsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIml0ZW0uc3RhdGVcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cInctMTAwIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTo0MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IHdpZHRoOjQ4cHg7IGhlaWdodDo0OHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2Y3OWE2YiwjZjE1ODBjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOnRleHQ7IHRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmljb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgc3R5bGU9XCJmb250LXNpemU6MTRweDsgbWFyZ2luOjA7IGNvbG9yOiMxMTE4Mjc7IHRleHQtYWxpZ246Y2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubWVudSA/IChpdGVtLm1lbnUgfCBzb2Z0TGFiZWxzUGlwZSA6IHNvZnRMYWJlbHMpIDogKGl0ZW0ubmFtZSB8IHRyYW5zbGF0ZSkgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBCYWRnZXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uYmFkZ2VzPy5sZW5ndGhcIiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGJhZGdlIG9mIGl0ZW0uYmFkZ2VzXCIgY2xhc3M9XCJiYWRnZSByb3VuZGVkLXBpbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBiYWRnZS5jb2xvciB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBiYWRnZS52YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
99
|
+
SideBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: SideBarComponent, deps: [{ token: i1.Store }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
100
|
+
SideBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.1", type: SideBarComponent, selector: "app-sidebar", ngImport: i0, template: "<div class=\"d-flex flex-column justify-content-center align-items-center\" style=\"width:100vw; height:calc(100vh - 60px); padding:30px; overflow:auto;\r\n background: linear-gradient(rgba(255,255,255,0.7), rgba(255,255,255,0.7));\">\r\n\r\n <div class=\"row justify-content-center align-items-center\" style=\"height:auto;\">\r\n\r\n <!-- Fixed Report Card -->\r\n <div class=\"col-6 col-md-3 mb-4\">\r\n <div class=\"card cursor-pointer\" style=\"height:150px; border-radius:12px; transition:all 0.3s ease;\r\n background:#fff; box-shadow:0 2px 6px rgba(0,0,0,0.08);\r\n border:2px solid rgba(241, 88, 12, 0.25);\" (mouseenter)=\"enter(99)\" (mouseleave)=\"leave(99)\"\r\n (click)=\"goToReport()\" [ngStyle]=\"(selectedRowIndex == 99 || showBackGroundColor == 99) && {\r\n 'background-color':'#fff',\r\n 'border':'2px solid #f1580c',\r\n 'box-shadow':'0 6px 20px rgba(241, 88, 12, 0.35), 0 0 10px rgba(241, 88, 12, 0.25)'\r\n }\">\r\n\r\n <div class=\"card-body d-flex flex-column align-items-center justify-content-center\">\r\n <mat-icon style=\"font-size:40px; margin-bottom:10px; width:48px; height:48px;\r\n display:flex; align-items:center; justify-content:center;\r\n background:linear-gradient(135deg,#f79a6b,#f1580c);\r\n -webkit-background-clip:text; -webkit-text-fill-color:transparent;\r\n background-clip:text; text-fill-color:transparent;\">\r\n assessment\r\n </mat-icon>\r\n <h6 style=\"font-size:14px; margin:0; color:#111827; text-align:center;\">Report</h6>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Dynamic Menu Cards -->\r\n <div class=\"col-6 col-md-3 mb-4\" *ngFor=\"let item of (menuItems$ | async); let i = index;\">\r\n <div class=\"card cursor-pointer\" style=\"height:150px; border-radius:12px; transition:all 0.3s ease;\r\n background:#fff; box-shadow:0 2px 6px rgba(0,0,0,0.08);\r\n border:2px solid rgba(241, 88, 12, 0.25);\" (mouseenter)=\"enter(i)\" (mouseleave)=\"leave(i)\"\r\n (click)=\"selectMenu(i, item.state)\" [ngStyle]=\"(selectedRowIndex == i || showBackGroundColor == i) && {\r\n 'background-color':'#fff',\r\n 'border':'2px solid #f1580c',\r\n 'box-shadow':'0 6px 20px rgba(241, 88, 12, 0.35), 0 0 10px rgba(241, 88, 12, 0.25)'\r\n }\">\r\n\r\n <div class=\"card-body d-flex flex-column align-items-center justify-content-center\">\r\n\r\n <!-- Normal link / application link -->\r\n <ng-container *ngIf=\"item.type === 'link' || item.type === 'applicationlink'\">\r\n <mat-icon style=\"font-size:40px; margin-bottom:10px; width:48px; height:48px;\r\n display:flex; align-items:center; justify-content:center;\r\n background:linear-gradient(135deg,#f79a6b,#f1580c);\r\n -webkit-background-clip:text; -webkit-text-fill-color:transparent;\r\n background-clip:text; text-fill-color:transparent;\">\r\n {{ item.icon }}\r\n </mat-icon>\r\n <h6 style=\"font-size:14px; margin:0; color:#111827; text-align:center;\">\r\n {{ item.menu ? (item.menu | softLabelsPipe : softLabels) : (item.name | translate) }}\r\n </h6>\r\n </ng-container>\r\n\r\n <!-- External link -->\r\n <ng-container *ngIf=\"item.type === 'extLink'\">\r\n <a [href]=\"item.state\" target=\"_blank\" class=\"w-100 d-flex flex-column align-items-center\">\r\n <mat-icon style=\"font-size:40px; margin-bottom:10px; width:48px; height:48px;\r\n display:flex; align-items:center; justify-content:center;\r\n background:linear-gradient(135deg,#f79a6b,#f1580c);\r\n -webkit-background-clip:text; -webkit-text-fill-color:transparent;\r\n background-clip:text; text-fill-color:transparent;\">\r\n {{ item.icon }}\r\n </mat-icon>\r\n <h6 style=\"font-size:14px; margin:0; color:#111827; text-align:center;\">\r\n {{ item.menu ? (item.menu | softLabelsPipe : softLabels) : (item.name | translate) }}\r\n </h6>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Badges -->\r\n <div *ngIf=\"item.badges?.length\" class=\"mt-2\">\r\n <span *ngFor=\"let badge of item.badges\" class=\"badge rounded-pill\"\r\n [ngStyle]=\"{ background: badge.color }\">\r\n {{ badge.value }}\r\n </span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4.AsyncPipe, "softLabelsPipe": i6.SoftLabelPipe, "translate": i7.TranslatePipe } });
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: SideBarComponent, decorators: [{
|
|
102
|
+
type: Component,
|
|
103
|
+
args: [{
|
|
104
|
+
selector: "app-sidebar",
|
|
105
|
+
templateUrl: "./side-bar.component.html"
|
|
106
|
+
}]
|
|
107
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }]; } });
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvY29tcG9uZW50cy9zaWRlbmF2L3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvc2lkZW5hdi9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUMsT0FBTyxLQUFLLGNBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7OztBQU9qRSxNQUFNLE9BQU8sZ0JBQWdCO0lBVXpCLFlBQW9CLEtBQW1CLEVBQVUsTUFBYztRQUEzQyxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVAvRCw2QkFBNkI7UUFDN0IscUJBQWdCLEdBQWtCLElBQUksQ0FBQztRQUN2Qyw0QkFBNEI7UUFDNUIsd0JBQW1CLEdBQWtCLElBQUksQ0FBQztRQUMxQyxtQ0FBbUM7UUFDbkMsZUFBVSxHQUFrQyxFQUFFLENBQUM7SUFFb0Is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QUMsUUFBUSxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1NBQ25EO0lBQ0wsQ0FBQzs7NkdBOUZRLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLG1EQ2pCN0IsdzNLQXFGTTsyRkRwRU8sZ0JBQWdCO2tCQUo1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxhQUFhO29CQUN2QixXQUFXLEVBQUUsMkJBQTJCO2lCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuaW1wb3J0IHsgU3RhdGUgfSBmcm9tIFwiLi4vLi4vc3RvcmUvcmVkdWNlcnNcIjtcclxuaW1wb3J0ICogYXMgc2hhcmVkUmVkdWNlcnMgZnJvbSBcIi4uLy4uL3N0b3JlL3JlZHVjZXJzXCI7XHJcbmltcG9ydCB7IEdldEFsbE1lbnVJdGVtc1RyaWdnZXJlZCB9IGZyb20gXCIuLi8uLi9zdG9yZS9hY3Rpb25zL21lbnVpdGVtcy5hY3Rpb25zXCI7XHJcbmltcG9ydCB7IElNZW51SXRlbSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvSU1lbnVJdGVtXCI7XHJcbmltcG9ydCB7IE1lbnVDYXRlZ29yaWVzIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9tZW51LWNhdGVnb3JpZXNcIjtcclxuaW1wb3J0IHsgU29mdExhYmVsQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9zb2Z0bGFiZWxzLW1vZGVsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFwcC1zaWRlYmFyXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3NpZGUtYmFyLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGVCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgLyoqIG1lbnUgaXRlbXMgb2JzZXJ2YWJsZSAqL1xyXG4gICAgbWVudUl0ZW1zJDogT2JzZXJ2YWJsZTxJTWVudUl0ZW1bXT47XHJcbiAgICAvKiogaW5kZXggb2Ygc2VsZWN0ZWQgY2FyZCAqL1xyXG4gICAgc2VsZWN0ZWRSb3dJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgICAvKiogaW5kZXggb2YgaG92ZXJlZCBjYXJkICovXHJcbiAgICBzaG93QmFja0dyb3VuZENvbG9yOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAgIC8qKiBzb2Z0IGxhYmVscyBmb3IgdHJhbnNsYXRpb25zICovXHJcbiAgICBzb2Z0TGFiZWxzOiBTb2Z0TGFiZWxDb25maWd1cmF0aW9uTW9kZWxbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPFN0YXRlPiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gbG9hZCBzb2Z0IGxhYmVsIHRyYW5zbGF0aW9uc1xyXG4gICAgICAgIGNvbnN0IHN0b3JlZExhYmVscyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiU29mdExhYmVsc1wiKTtcclxuICAgICAgICB0aGlzLnNvZnRMYWJlbHMgPSBzdG9yZWRMYWJlbHMgPyBKU09OLnBhcnNlKHN0b3JlZExhYmVscykgOiBbXTtcclxuXHJcbiAgICAgICAgLy8gc2VsZWN0ICYgZmlsdGVyIHNpZGViYXIgbWVudSBpdGVtcyBmcm9tIHN0b3JlXHJcbiAgICAgICAgdGhpcy5tZW51SXRlbXMkID0gdGhpcy5zdG9yZS5waXBlKFxyXG4gICAgICAgICAgICBzZWxlY3Qoc2hhcmVkUmVkdWNlcnMuZ2V0Q3VycmVudEFjdGl2ZU1lbnVDYXRlZ29yeU1lbnVJdGVtcyksXHJcbiAgICAgICAgICAgIG1hcCgobGlzdCkgPT5cclxuICAgICAgICAgICAgICAgIGxpc3QuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVudUxhYmVsID0gKGl0ZW0gYXMgYW55KS5tZW51Py50b0xvd2VyQ2FzZSgpIHx8IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBpdGVtLnN0YXRlPy50b0xvd2VyQ2FzZSgpIHx8IFwiXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIEV4Y2x1ZGUgSFIsIHRyYWNrZXIgb3IgdW53YW50ZWQgaXRlbXNcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWVudUxhYmVsID09PSBcImhyXCIgfHwgc3RhdGUuc3RhcnRzV2l0aChcImhybWFuYWdtZW50L2VtcGxveWVlbGlzdFwiKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtZW51TGFiZWwuaW5jbHVkZXMoXCJociBtYW5hZ21lbnRcIikgfHwgbWVudUxhYmVsLmluY2x1ZGVzKFwiaHIgbWFuYWdlbWVudFwiKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5zdGFydHNXaXRoKFwiaHJtYW5hZ21lbnRcIikgfHwgc3RhdGUuc3RhcnRzV2l0aChcImhybWRldGFpbHNcIikpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWVudUxhYmVsLmluY2x1ZGVzKFwiYWN0aXZpdHkgdHJhY2tlclwiKSB8fCBzdGF0ZS5zdGFydHNXaXRoKFwiYWN0aXZpdHl0cmFja2VyXCIpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB0YXAoKG1lbnVMaXN0KSA9PiB0aGlzLnJvdXRlckFjdGl2ZShtZW51TGlzdCkpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgLy8gZGlzcGF0Y2ggbG9hZCBldmVudFxyXG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IEdldEFsbE1lbnVJdGVtc1RyaWdnZXJlZChNZW51Q2F0ZWdvcmllcy5NYWluKSk7XHJcblxyXG4gICAgICAgIC8vIGxpc3RlbiBmb3Igcm91dGUgY2hhbmdlcyB0byB1cGRhdGUgaGlnaGxpZ2h0XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZW51SXRlbXMkLnN1YnNjcmliZSgobGlzdCkgPT4gdGhpcy5yb3V0ZXJBY3RpdmUobGlzdCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIGhpZ2hsaWdodHMgdGhlIGFjdGl2ZSBjYXJkIGFjY29yZGluZyB0byBjdXJyZW50IHJvdXRlICovXHJcbiAgICBwcml2YXRlIHJvdXRlckFjdGl2ZShtZW51TGlzdDogSU1lbnVJdGVtW10pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIW1lbnVMaXN0Py5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgZm91bmRJbmRleCA9IG1lbnVMaXN0LmZpbmRJbmRleCgoaSkgPT4gdGhpcy5yb3V0ZXIudXJsID09PSBcIi9cIiArIGkuc3RhdGUpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9IGZvdW5kSW5kZXggPj0gMCA/IGZvdW5kSW5kZXggOiBudWxsO1xyXG5cclxuICAgICAgICAvLyBIaWdobGlnaHQgcmVwb3J0IGNhcmQgd2hlbiBpbnNpZGUgYW55IGRhc2hib2FyZCByb3V0ZVxyXG4gICAgICAgIGlmICh0aGlzLnJvdXRlci51cmwuc3RhcnRzV2l0aChcIi9kYXNoYm9hcmQtbWFuYWdlbWVudC9kYXNoYm9hcmRcIikpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJvd0luZGV4ID0gOTk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBob3ZlciBlbnRlciAqL1xyXG4gICAgZW50ZXIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd0JhY2tHcm91bmRDb2xvciA9IGluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBob3ZlciBsZWF2ZSAqL1xyXG4gICAgbGVhdmUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNob3dCYWNrR3JvdW5kQ29sb3IgPT09IGluZGV4KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0JhY2tHcm91bmRDb2xvciA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiB3aGVuIGNsaWNraW5nIG9uIGR5bmFtaWMgbWVudSBjYXJkICovXHJcbiAgICBzZWxlY3RNZW51KGluZGV4OiBudW1iZXIsIGxpbms/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUm93SW5kZXggPSBpbmRleDtcclxuICAgICAgICBpZiAobGluaykge1xyXG4gICAgICAgICAgICAvLyBlbnN1cmUgZm9yd2FyZCBzbGFzaFxyXG4gICAgICAgICAgICBjb25zdCBwYXRoID0gbGluay5zdGFydHNXaXRoKFwiL1wiKSA/IGxpbmsgOiBcIi9cIiArIGxpbms7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYXRoXSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBvcGVuIHJlcG9ydCBkYXNoYm9hcmQtbWFuYWdlbWVudC9kYXNoYm9hcmQvOmlkIG9yIHJvb3QgKi9cclxuICAgIGdvVG9SZXBvcnQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd0luZGV4ID0gOTk7XHJcblxyXG4gICAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiRGVmYXVsdERhc2hib2FyZFwiKTtcclxuICAgICAgICBjb25zdCBkZWZhdWx0RGFzaGJvYXJkSWQgPSBzdG9yZWQgPyBKU09OLnBhcnNlKHN0b3JlZCkgOiBudWxsO1xyXG5cclxuICAgICAgICBpZiAoZGVmYXVsdERhc2hib2FyZElkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2Rhc2hib2FyZC1tYW5hZ2VtZW50L2Rhc2hib2FyZC8ke2RlZmF1bHREYXNoYm9hcmRJZH1gXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL2Rhc2hib2FyZC1tYW5hZ2VtZW50XCJdKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwid2lkdGg6MTAwdnc7IGhlaWdodDpjYWxjKDEwMHZoIC0gNjBweCk7IHBhZGRpbmc6MzBweDsgb3ZlcmZsb3c6YXV0bztcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LDI1NSwyNTUsMC43KSwgcmdiYSgyNTUsMjU1LDI1NSwwLjcpKTtcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6YXV0bztcIj5cclxuXHJcbiAgICAgICAgPCEtLSBGaXhlZCBSZXBvcnQgQ2FyZCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLW1kLTMgbWItNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjdXJzb3ItcG9pbnRlclwiIHN0eWxlPVwiaGVpZ2h0OjE1MHB4OyBib3JkZXItcmFkaXVzOjEycHg7IHRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6I2ZmZjsgYm94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwwLjA4KTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjoycHggc29saWQgcmdiYSgyNDEsIDg4LCAxMiwgMC4yNSk7XCIgKG1vdXNlZW50ZXIpPVwiZW50ZXIoOTkpXCIgKG1vdXNlbGVhdmUpPVwibGVhdmUoOTkpXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUmVwb3J0KClcIiBbbmdTdHlsZV09XCIoc2VsZWN0ZWRSb3dJbmRleCA9PSA5OSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IDk5KSAmJiB7XHJcbiAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOicjZmZmJyxcclxuICAgICAgICAgICAgICAgICAnYm9yZGVyJzonMnB4IHNvbGlkICNmMTU4MGMnLFxyXG4gICAgICAgICAgICAgICAgICdib3gtc2hhZG93JzonMCA2cHggMjBweCByZ2JhKDI0MSwgODgsIDEyLCAwLjM1KSwgMCAwIDEwcHggcmdiYSgyNDEsIDg4LCAxMiwgMC4yNSknXHJcbiAgICAgICAgICAgICAgIH1cIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTo0MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IHdpZHRoOjQ4cHg7IGhlaWdodDo0OHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2Y3OWE2YiwjZjE1ODBjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOnRleHQ7IHRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXNzbWVudFxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IHN0eWxlPVwiZm9udC1zaXplOjE0cHg7IG1hcmdpbjowOyBjb2xvcjojMTExODI3OyB0ZXh0LWFsaWduOmNlbnRlcjtcIj5SZXBvcnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPCEtLSBEeW5hbWljIE1lbnUgQ2FyZHMgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGNvbC1tZC0zIG1iLTRcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiAobWVudUl0ZW1zJCB8IGFzeW5jKTsgbGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY3Vyc29yLXBvaW50ZXJcIiBzdHlsZT1cImhlaWdodDoxNTBweDsgYm9yZGVyLXJhZGl1czoxMnB4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6I2ZmZjsgYm94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwwLjA4KTtcclxuICAgICAgICAgICAgICAgICAgYm9yZGVyOjJweCBzb2xpZCByZ2JhKDI0MSwgODgsIDEyLCAwLjI1KTtcIiAobW91c2VlbnRlcik9XCJlbnRlcihpKVwiIChtb3VzZWxlYXZlKT1cImxlYXZlKGkpXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNZW51KGksIGl0ZW0uc3RhdGUpXCIgW25nU3R5bGVdPVwiKHNlbGVjdGVkUm93SW5kZXggPT0gaSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IGkpICYmIHtcclxuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6JyNmZmYnLFxyXG4gICAgICAgICAgICAgICdib3JkZXInOicycHggc29saWQgI2YxNTgwYycsXHJcbiAgICAgICAgICAgICAgJ2JveC1zaGFkb3cnOicwIDZweCAyMHB4IHJnYmEoMjQxLCA4OCwgMTIsIDAuMzUpLCAwIDAgMTBweCByZ2JhKDI0MSwgODgsIDEyLCAwLjI1KSdcclxuICAgICAgICAgICB9XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBOb3JtYWwgbGluayAvIGFwcGxpY2F0aW9uIGxpbmsgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2xpbmsnIHx8IGl0ZW0udHlwZSA9PT0gJ2FwcGxpY2F0aW9ubGluaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOjQwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgd2lkdGg6NDhweDsgaGVpZ2h0OjQ4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNmNzlhNmIsI2YxNTgwYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOnRleHQ7IHRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uaWNvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDYgc3R5bGU9XCJmb250LXNpemU6MTRweDsgbWFyZ2luOjA7IGNvbG9yOiMxMTE4Mjc7IHRleHQtYWxpZ246Y2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5tZW51ID8gKGl0ZW0ubWVudSB8IHNvZnRMYWJlbHNQaXBlIDogc29mdExhYmVscykgOiAoaXRlbS5uYW1lIHwgdHJhbnNsYXRlKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIEV4dGVybmFsIGxpbmsgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2V4dExpbmsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIml0ZW0uc3RhdGVcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cInctMTAwIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTo0MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IHdpZHRoOjQ4cHg7IGhlaWdodDo0OHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2Y3OWE2YiwjZjE1ODBjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOnRleHQ7IHRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmljb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgc3R5bGU9XCJmb250LXNpemU6MTRweDsgbWFyZ2luOjA7IGNvbG9yOiMxMTE4Mjc7IHRleHQtYWxpZ246Y2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubWVudSA/IChpdGVtLm1lbnUgfCBzb2Z0TGFiZWxzUGlwZSA6IHNvZnRMYWJlbHMpIDogKGl0ZW0ubmFtZSB8IHRyYW5zbGF0ZSkgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBCYWRnZXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uYmFkZ2VzPy5sZW5ndGhcIiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGJhZGdlIG9mIGl0ZW0uYmFkZ2VzXCIgY2xhc3M9XCJiYWRnZSByb3VuZGVkLXBpbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBiYWRnZS5jb2xvciB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBiYWRnZS52YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|