@thetradeengineorg1/snova-shell-module 0.0.262 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/bundles/thetradeengineorg1-snova-shell-module.umd.js +4522 -1014
  2. package/bundles/thetradeengineorg1-snova-shell-module.umd.js.map +1 -1
  3. package/esm2015/lib/globaldependencies/components/componentbase.js +9 -9
  4. package/esm2015/lib/globaldependencies/helpers/dom.helper.js +2 -1
  5. package/esm2015/lib/globaldependencies/helpers/moment-utc-date-adapter.js +11 -11
  6. package/esm2015/lib/globaldependencies/intercepter/jwt.interceptor.js +6 -6
  7. package/esm2015/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.js +11 -11
  8. package/esm2015/lib/globaldependencies/pipes/highLightText.pipe.js +13 -13
  9. package/esm2015/lib/globaldependencies/pipes/orderby-pipe.js +11 -11
  10. package/esm2015/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.js +11 -11
  11. package/esm2015/lib/globaldependencies/pipes/sanitize.pipe.js +13 -13
  12. package/esm2015/lib/globaldependencies/pipes/softlabels.pipes.js +13 -13
  13. package/esm2015/lib/globaldependencies/pipes/utctolocaltime.pipe.js +11 -11
  14. package/esm2015/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.js +11 -11
  15. package/esm2015/lib/globaldependencies/pipes/workflowstatus.pipes.js +11 -11
  16. package/esm2015/lib/shell-components/components/Payments/account.component.js +91 -20
  17. package/esm2015/lib/shell-components/components/Payments/company-information.js +322 -26
  18. package/esm2015/lib/shell-components/components/Payments/company-plans.component.js +509 -11
  19. package/esm2015/lib/shell-components/components/Payments/document.component.js +90 -18
  20. package/esm2015/lib/shell-components/components/Payments/payment-method.component.js +76 -18
  21. package/esm2015/lib/shell-components/components/Payments/product-service.component.js +317 -22
  22. package/esm2015/lib/shell-components/components/Payments/purchase-more-licenses.js +119 -22
  23. package/esm2015/lib/shell-components/components/Payments/transactions.component.js +132 -20
  24. package/esm2015/lib/shell-components/components/admin-layout/admin-layout.component.js +79 -22
  25. package/esm2015/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.js +29 -16
  26. package/esm2015/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.js +55 -19
  27. package/esm2015/lib/shell-components/components/export-import-configuration/export-configuration.component.js +174 -29
  28. package/esm2015/lib/shell-components/components/feed-time/feed-time-dialog.component.js +29 -16
  29. package/esm2015/lib/shell-components/components/feed-time/feed-time.component.js +20 -16
  30. package/esm2015/lib/shell-components/components/header-side/header-side.component.js +443 -102
  31. package/esm2015/lib/shell-components/components/header-top/header-top.component.js +143 -22
  32. package/esm2015/lib/shell-components/components/lives/lives-welcome-page.js +39 -10
  33. package/esm2015/lib/shell-components/components/menu/menu.component.js +182 -83
  34. package/esm2015/lib/shell-components/components/notifications/announcement-dialog.component.js +57 -20
  35. package/esm2015/lib/shell-components/components/notifications/notifications.component.js +99 -14
  36. package/esm2015/lib/shell-components/components/sidebar-top/sidebar-top.component.js +19 -13
  37. package/esm2015/lib/shell-components/components/sidenav/side-bar.component.js +226 -57
  38. package/esm2015/lib/shell-components/components/sidenav/sidenav.component.js +419 -23
  39. package/esm2015/lib/shell-components/components/submit-feedback/submit-feedback.component.js +17 -13
  40. package/esm2015/lib/shell-components/services/authentication.service.js +7 -7
  41. package/esm2015/lib/shell-components/services/chat.service.js +9 -9
  42. package/esm2015/lib/shell-components/services/common-used.service.js +7 -7
  43. package/esm2015/lib/shell-components/services/feature.service.js +7 -7
  44. package/esm2015/lib/shell-components/services/google-analytics.service.js +6 -6
  45. package/esm2015/lib/shell-components/services/layout.service.js +6 -6
  46. package/esm2015/lib/shell-components/services/payment.service.js +7 -7
  47. package/esm2015/lib/shell-components/services/recentSearch.service.js +9 -9
  48. package/esm2015/lib/shell-components/services/shell.modules.service.js +11 -11
  49. package/esm2015/lib/shell-components/services/signalr.service.js +9 -9
  50. package/esm2015/lib/shell-components/services/theme.service.js +115 -182
  51. package/esm2015/lib/shell-components/shell.module.js +190 -201
  52. package/esm2015/lib/shell-components/store/effects/authentication.effects.js +9 -9
  53. package/esm2015/lib/shell-components/store/effects/chat.effects.js +6 -6
  54. package/esm2015/lib/shell-components/store/effects/menuitems.effects.js +6 -6
  55. package/esm2015/lib/shell-components/store/effects/notification-validator.effects.js +6 -6
  56. package/esm2015/lib/shell-components/store/effects/notifications.effects.js +6 -6
  57. package/esm2015/public-api.js +1 -3
  58. package/fesm2015/thetradeengineorg1-snova-shell-module.js +4208 -1238
  59. package/fesm2015/thetradeengineorg1-snova-shell-module.js.map +1 -1
  60. package/lib/shell-components/components/Payments/document.component.d.ts +1 -1
  61. package/lib/shell-components/components/header-side/header-side.component.d.ts +2 -6
  62. package/lib/shell-components/components/sidenav/side-bar.component.d.ts +16 -15
  63. package/lib/shell-components/shell.module.d.ts +42 -44
  64. package/package.json +5 -2
  65. package/public-api.d.ts +0 -2
  66. package/esm2015/lib/globaldependencies/components/avatar.component.js +0 -28
  67. package/lib/globaldependencies/components/avatar.component.d.ts +0 -10
@@ -9,17 +9,60 @@ import * as i2 from "../../services/theme.service";
9
9
  import * as i3 from "@ngx-translate/core";
10
10
  import * as i4 from "@ngrx/store";
11
11
  import * as i5 from "ngx-cookie-service";
12
- import * as i6 from "@angular/material/icon";
13
- import * as i7 from "@angular/material/menu";
14
- import * as i8 from "@angular/material/select";
15
- import * as i9 from "@angular/material/core";
16
- import * as i10 from "@angular/material/button";
17
- import * as i11 from "@angular/material/grid-list";
18
- import * as i12 from "@angular/common";
12
+ import * as i6 from "@angular/common";
13
+ import * as i7 from "@angular/material/select";
14
+ import * as i8 from "@angular/forms";
15
+ import * as i9 from "@angular/material/button";
16
+ import * as i10 from "@angular/material/tooltip";
17
+ import * as i11 from "@angular/material/icon";
18
+ import * as i12 from "@angular/material/menu";
19
19
  import * as i13 from "@angular/router";
20
- import * as i14 from "@angular/flex-layout/flex";
21
- import * as i15 from "@angular/forms";
22
- import * as i16 from "@angular/material/tooltip";
20
+ import * as i14 from "@angular/material/core";
21
+ function HeaderTopComponent_li_7_a_1_Template(rf, ctx) { if (rf & 1) {
22
+ i0.ɵɵelementStart(0, "a", 22);
23
+ i0.ɵɵelementStart(1, "mat-icon", 23);
24
+ i0.ɵɵtext(2);
25
+ i0.ɵɵelementEnd();
26
+ i0.ɵɵtext(3);
27
+ i0.ɵɵpipe(4, "translate");
28
+ i0.ɵɵelementEnd();
29
+ } if (rf & 2) {
30
+ const item_r5 = i0.ɵɵnextContext().$implicit;
31
+ i0.ɵɵpropertyInterpolate1("routerLink", "/", item_r5.state, "");
32
+ i0.ɵɵadvance(2);
33
+ i0.ɵɵtextInterpolate(item_r5.icon);
34
+ i0.ɵɵadvance(1);
35
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 3, item_r5.name), " ");
36
+ } }
37
+ function HeaderTopComponent_li_7_Template(rf, ctx) { if (rf & 1) {
38
+ i0.ɵɵelementStart(0, "li", 20);
39
+ i0.ɵɵtemplate(1, HeaderTopComponent_li_7_a_1_Template, 5, 5, "a", 21);
40
+ i0.ɵɵelementEnd();
41
+ } if (rf & 2) {
42
+ const item_r5 = ctx.$implicit;
43
+ i0.ɵɵadvance(1);
44
+ i0.ɵɵproperty("ngIf", item_r5.type === "link");
45
+ } }
46
+ function HeaderTopComponent_mat_option_10_Template(rf, ctx) { if (rf & 1) {
47
+ i0.ɵɵelementStart(0, "mat-option", 24);
48
+ i0.ɵɵtext(1);
49
+ i0.ɵɵelementEnd();
50
+ } if (rf & 2) {
51
+ const lang_r9 = ctx.$implicit;
52
+ i0.ɵɵproperty("value", lang_r9.code);
53
+ i0.ɵɵadvance(1);
54
+ i0.ɵɵtextInterpolate1(" ", lang_r9.name, " ");
55
+ } }
56
+ function HeaderTopComponent_img_20_Template(rf, ctx) { if (rf & 1) {
57
+ i0.ɵɵelement(0, "img", 25);
58
+ i0.ɵɵpipe(1, "async");
59
+ } if (rf & 2) {
60
+ const ctx_r2 = i0.ɵɵnextContext();
61
+ i0.ɵɵproperty("src", i0.ɵɵpipeBind1(1, 1, ctx_r2.authenticatedUserRecord$).profileImage, i0.ɵɵsanitizeUrl);
62
+ } }
63
+ function HeaderTopComponent_img_22_Template(rf, ctx) { if (rf & 1) {
64
+ i0.ɵɵelement(0, "img", 26);
65
+ } }
23
66
  export class HeaderTopComponent {
24
67
  constructor(layout, themeService, translate, renderer, store, cookieService) {
25
68
  this.layout = layout;
@@ -79,15 +122,93 @@ export class HeaderTopComponent {
79
122
  });
80
123
  }
81
124
  }
82
- HeaderTopComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: HeaderTopComponent, deps: [{ token: i1.LayoutService }, { token: i2.ThemeService }, { token: i3.TranslateService }, { token: i0.Renderer2 }, { token: i4.Store }, { token: i5.CookieService }], target: i0.ɵɵFactoryTarget.Component });
83
- HeaderTopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.1", type: HeaderTopComponent, selector: "app-header-top", inputs: { notificPanel: "notificPanel" }, ngImport: i0, template: "<div class=\"header-topnav mat-elevation-z2\">\r\n <div class=\"container\">\r\n <div class=\"topnav\">\r\n <!-- App Logo -->\r\n <div class=\"topbar-branding\">\r\n <img src=\"(themeModel$ | async).companyMiniLogo\" alt=\"\" class=\"app-logo\">\r\n </div>\r\n\r\n <ul class=\"menu\" *ngIf=\"!layoutConf.isMobile\">\r\n <li *ngFor=\"let item of menuItems; let i = index;\">\r\n <div *ngIf=\"item.type !== 'separator'\" routerLinkActive=\"open\">\r\n <a matRipple routerLink=\"/{{item.state}}\" *ngIf=\"item.type === 'link'\">\r\n <mat-icon>{{item.icon}}</mat-icon>\r\n {{item.name | translate}}\r\n </a>\r\n <div *ngIf=\"item.type === 'dropDown'\">\r\n <label matRipple for=\"drop-{{i}}\" class=\"toggle\">\r\n <mat-icon>{{item.icon}}</mat-icon> {{item.name | translate}}\r\n </label>\r\n <a matRipple>\r\n <mat-icon>{{item.icon}}</mat-icon> {{item.name | translate}}\r\n </a>\r\n <input type=\"checkbox\" id=\"drop-{{i}}\" />\r\n <ul>\r\n <li *ngFor=\"let itemLvL2 of item.sub; let j = index;\" routerLinkActive=\"open\">\r\n\r\n <a routerLink=\"{{ itemLvL2.state ? '/'+itemLvL2.state : ''}}\" appDropdownToggle\r\n *ngIf=\"itemLvL2.type === 'applicationlink'\" matRipple>\r\n <span class=\"item-name lvl2\">{{\r\n itemLvL2.name | translate\r\n }}\r\n </span>\r\n <span fxFlex></span>\r\n </a>\r\n\r\n <a matRipple routerLink=\"{{item.state ? '/'+item.state : ''}}/{{itemLvL2.state}}\"\r\n *ngIf=\"itemLvL2.type !== 'dropDown' && itemLvL2.type !== 'applicationlink'\">\r\n <mat-icon *ngIf=\"itemLvL2.icon\">{{itemLvL2.icon}}</mat-icon>\r\n {{itemLvL2.name | translate}}\r\n </a>\r\n\r\n\r\n\r\n <div *ngIf=\"itemLvL2.type === 'dropDown'\">\r\n <label matRipple for=\"drop-{{i}}{{j}}\" class=\"toggle\">{{itemLvL2.name | translate}}</label>\r\n <a matRipple>\r\n <mat-icon *ngIf=\"itemLvL2.icon\">{{itemLvL2.icon}}</mat-icon> {{itemLvL2.name | translate}}\r\n </a>\r\n <input type=\"checkbox\" id=\"drop-{{i}}{{j}}\" />\r\n <!-- Level 3 -->\r\n <ul>\r\n <li *ngFor=\"let itemLvL3 of itemLvL2.sub\" routerLinkActive=\"open\">\r\n <a matRipple\r\n routerLink=\"{{item.state ? '/'+item.state : ''}}{{itemLvL2.state ? '/'+itemLvL2.state : ''}}/{{itemLvL3.state}}\">\r\n <mat-icon *ngIf=\"itemLvL3.icon\">{{itemLvL3.icon}}</mat-icon>\r\n {{itemLvL3.name | translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n <span fxFlex></span>\r\n <!-- End Navigation -->\r\n\r\n <!-- Language Switcher -->\r\n <mat-menu #languageChange=\"matMenu\">\r\n <mat-select *ngIf=\"!layoutConf.isMobile\" placeholder=\"\" id=\"langToggle\" [style.width]=\"'auto'\"\r\n name=\"currentLang\" [(ngModel)]=\"currentLang\" (selectionChange)=\"setLang()\" class=\"topbar-button-right\">\r\n <mat-option *ngFor=\"let lang of availableLangs\" [value]=\"lang.code\" ngDefaultControl>{{ lang.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-menu>\r\n <!-- Theme Switcher -->\r\n <button mat-icon-button id=\"schemeToggle\" [style.overflow]=\"'visible'\" matTooltipClass=\"tooltipClass-mat\" matTooltip=\"Color Schemes\"\r\n [matMenuTriggerFor]=\"themeMenu\" class=\"topbar-button-right\">\r\n <mat-icon>format_color_fill</mat-icon>\r\n </button>\r\n <mat-menu #themeMenu=\"matMenu\">\r\n <mat-grid-list class=\"theme-list\" cols=\"2\" rowHeight=\"48px\">\r\n <mat-grid-tile *ngFor=\"let theme of egretThemes\" (click)=\"changeTheme(theme)\">\r\n <div mat-menu-item [title]=\"theme.name\">\r\n <div [style.background]=\"theme.baseColor\" class=\"egret-swatch\"></div>\r\n <mat-icon class=\"active-icon\" *ngIf=\"theme.isActive\">check</mat-icon>\r\n </div>\r\n </mat-grid-tile>\r\n </mat-grid-list>\r\n </mat-menu>\r\n\r\n <!-- Notification toggle button -->\r\n <button mat-icon-button matTooltip=\"{{ 'SHELL.NOTIFICATIONS' | translate}}\" matTooltipClass=\"tooltipClass-mat\" (click)=\"toggleNotific()\"\r\n [style.overflow]=\"'visible'\" class=\"topbar-button-right\">\r\n <mat-icon>notifications</mat-icon>\r\n <span class=\"notification-number mat-bg-warn\">3</span>\r\n </button>\r\n <!-- Top left user menu -->\r\n <button mat-icon-button [matMenuTriggerFor]=\"accountMenu\" class=\"topbar-button-right mr-1 img-button\">\r\n <img *ngIf=\"(authenticatedUserRecord$ | async) && (authenticatedUserRecord$ | async).profileImage != null\"\r\n [src]=\"(authenticatedUserRecord$ | async).profileImage\">\r\n <img\r\n *ngIf=\"(authenticatedUserRecord$ | async) == null || (authenticatedUserRecord$ | async).profileImage == null\"\r\n src=\"../../../../assets/images/faces/18.png\">\r\n </button>\r\n <mat-menu #accountMenu=\"matMenu\">\r\n <button mat-menu-item [routerLink]=\"['/profile/overview']\">\r\n <mat-icon>account_box</mat-icon>\r\n <span>Profile</span>\r\n </button>\r\n <button mat-menu-item [matMenuTriggerFor]=\"languageChange\">\r\n <mat-icon>language</mat-icon>\r\n <span>Language</span>\r\n </button>\r\n <button mat-menu-item [routerLink]=\"['/profile/settings']\">\r\n <mat-icon>settings</mat-icon>\r\n <span>Account Settings</span>\r\n </button>\r\n <button mat-menu-item>\r\n <mat-icon>notifications_off</mat-icon>\r\n <span>Disable alerts</span>\r\n </button>\r\n <button mat-menu-item [routerLink]=\"['/sessions/signin']\">\r\n <mat-icon>exit_to_app</mat-icon>\r\n <span>Sign out</span>\r\n </button>\r\n </mat-menu>\r\n <!-- Mobile screen menu toggle -->\r\n <button mat-icon-button class=\"mr-1\" (click)=\"toggleSidenav()\" *ngIf=\"layoutConf.isMobile\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>", components: [{ type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i11.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i11.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i13.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i14.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i15.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i15.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i15.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i16.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i13.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["routerLink", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "translate": i3.TranslatePipe, "async": i12.AsyncPipe } });
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: HeaderTopComponent, decorators: [{
85
- type: Component,
86
- args: [{
87
- selector: "app-header-top",
88
- templateUrl: "./header-top.component.html",
89
- }]
90
- }], ctorParameters: function () { return [{ type: i1.LayoutService }, { type: i2.ThemeService }, { type: i3.TranslateService }, { type: i0.Renderer2 }, { type: i4.Store }, { type: i5.CookieService }]; }, propDecorators: { notificPanel: [{
91
- type: Input
92
- }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXRvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2hlYWRlci10b3AvaGVhZGVyLXRvcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2hlYWRlci10b3AvaGVhZGVyLXRvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBaUQsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxFQUFTLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEtBQUssb0JBQW9CLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsT0FBTyx1REFBdUQsQ0FBQztBQU0vRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT3ZHLE1BQU0sT0FBTyxrQkFBa0I7SUF1QjdCLFlBQ1UsTUFBcUIsRUFDdEIsWUFBMEIsRUFDMUIsU0FBMkIsRUFDMUIsUUFBbUIsRUFDbkIsS0FBbUIsRUFDcEIsYUFBNEI7UUFMM0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDcEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUF6QnJDLGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLG1CQUFjLEdBQUc7WUFDZjtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsSUFBSTthQUNYO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLElBQUk7YUFDWDtZQUNEO2dCQUNFLElBQUksRUFBRSxLQUFLO2dCQUNYLElBQUksRUFBRSxJQUFJO2FBQ1g7U0FDRixDQUFDO0lBWUUsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUNqRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzdDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxDQUN2RCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsS0FBSyxDQUFDO0lBRWpCLE9BQU87UUFFTCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbkYsSUFBSSxjQUFjLEtBQUssTUFBTSxJQUFJLGNBQWMsS0FBSyxXQUFXLEVBQUU7WUFDN0QsY0FBYyxHQUFHLElBQUksQ0FBQztTQUN6QjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDO1FBQ2xDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzSixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDZix1REFBdUQ7SUFDekQsQ0FBQztJQUNELGFBQWE7UUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksS0FBSyxRQUFRLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDO2dCQUNyQyxZQUFZLEVBQUUsTUFBTTthQUNyQixDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7WUFDOUIsWUFBWSxFQUFFLFFBQVE7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7K0dBeEVVLGtCQUFrQjttR0FBbEIsa0JBQWtCLGdHQ25CL0IscXJOQXVJTTsyRkRwSE8sa0JBQWtCO2tCQUw5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSw2QkFBNkI7aUJBQzNDO3NPQXNCVSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHsgU3RvcmUsIHNlbGVjdCB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBTdGF0ZSB9IGZyb20gXCIuLi8uLi9zdG9yZS9yZWR1Y2Vycy9pbmRleFwiO1xyXG5pbXBvcnQgKiBhcyBzaGFyZWRNb2R1bGVSZWR1Y2VycyBmcm9tIFwiLi4vLi4vc3RvcmUvcmVkdWNlcnMvaW5kZXhcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCAnLi4vLi4vLi4vZ2xvYmFsZGVwZW5kZW5jaWVzL2hlbHBlcnMvZm9udGF3ZXNvbWUtaWNvbnMnO1xyXG5pbXBvcnQgeyBUaGVtZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RoZW1lcy5tb2RlbCc7XHJcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGhlbWUuc2VydmljZSc7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFsZGVwZW5kZW5jaWVzL2NvbnN0YW50cy9sb2NhbHN0b3JhZ2UtcHJvcGVydGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtaGVhZGVyLXRvcFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaGVhZGVyLXRvcC5jb21wb25lbnQuaHRtbFwiLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEhlYWRlclRvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICB0aGVtZU1vZGVsJDogT2JzZXJ2YWJsZTxUaGVtZU1vZGVsPjtcclxuICBsYXlvdXRDb25mOiBhbnk7XHJcbiAgbWVudUl0ZW1zOiBhbnk7XHJcbiAgZWdyZXRUaGVtZXM6IGFueVtdID0gW107XHJcbiAgY3VycmVudExhbmcgPSBcImVuXCI7XHJcbiAgYXZhaWxhYmxlTGFuZ3MgPSBbXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6IFwiRW5nbGlzaFwiLFxyXG4gICAgICBjb2RlOiBcImVuXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6IFwi4LCk4LGG4LCy4LGB4LCX4LGBXCIsXHJcbiAgICAgIGNvZGU6IFwidGVcIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogXCLtlZzqta3slrRcIixcclxuICAgICAgY29kZTogXCJrb1wiXHJcbiAgICB9XHJcbiAgXTtcclxuICBASW5wdXQoKSBub3RpZmljUGFuZWw7XHJcbiAgYXV0aGVudGljYXRlZFVzZXJSZWNvcmQkOiBPYnNlcnZhYmxlPFVzZXJNb2RlbD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsYXlvdXQ6IExheW91dFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdGhlbWVTZXJ2aWNlOiBUaGVtZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8U3RhdGU+LFxyXG4gICAgcHVibGljIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsXHJcbiAgICBcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudGhlbWVNb2RlbCQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNoYXJlZE1vZHVsZVJlZHVjZXJzLmdldFRoZW1lTW9kZWwpKTtcclxuICAgIHRoaXMubGF5b3V0Q29uZiA9IHRoaXMubGF5b3V0LmxheW91dENvbmY7XHJcbiAgICB0aGlzLmVncmV0VGhlbWVzID0gdGhpcy50aGVtZVNlcnZpY2UuZWdyZXRUaGVtZXM7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZWRVc2VyUmVjb3JkJCA9IHRoaXMuc3RvcmUucGlwZShcclxuICAgICAgc2VsZWN0KHNoYXJlZE1vZHVsZVJlZHVjZXJzLmdldEF1dGhlbnRpY2F0ZWRVc2VyTW9kZWwpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7IH1cclxuXHJcbiAgc2V0TGFuZygpIHtcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UodGhpcy5jdXJyZW50TGFuZyk7XHJcbiAgICBsZXQgY3VycmVudEN1bHR1cmUgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KExvY2FsU3RvcmFnZVByb3BlcnRpZXMuQ3VycmVudEN1bHR1cmUpO1xyXG5cclxuICAgIGlmIChjdXJyZW50Q3VsdHVyZSA9PT0gJ251bGwnIHx8IGN1cnJlbnRDdWx0dXJlID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIGN1cnJlbnRDdWx0dXJlID0gJ2VuJztcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudExhbmcgPSBjdXJyZW50Q3VsdHVyZTtcclxuICAgIGxldCBlbnZpcm9ubWVudCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oTG9jYWxTdG9yYWdlUHJvcGVydGllcy5FbnZpcm9ubWVudCkpO1xyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLkN1cnJlbnRDdWx0dXJlLCB0aGlzLmN1cnJlbnRMYW5nLCBudWxsLCBlbnZpcm9ubWVudC5jb29raWVQYXRoLCB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsIGZhbHNlLCBcIlN0cmljdFwiKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVRoZW1lKHRoZW1lKSB7XHJcbiAgICAvLyB0aGlzLnRoZW1lU2VydmljZS5jaGFuZ2VUaGVtZSh0aGlzLnJlbmRlcmVyLCB0aGVtZSk7XHJcbiAgfVxyXG4gIHRvZ2dsZU5vdGlmaWMoKSB7XHJcbiAgICB0aGlzLm5vdGlmaWNQYW5lbC50b2dnbGUoKTtcclxuICB9XHJcbiAgdG9nZ2xlU2lkZW5hdigpIHtcclxuICAgIGlmICh0aGlzLmxheW91dENvbmYuc2lkZWJhclN0eWxlID09PSBcImNsb3NlZFwiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxheW91dC5wdWJsaXNoTGF5b3V0Q2hhbmdlKHtcclxuICAgICAgICBzaWRlYmFyU3R5bGU6IFwiZnVsbFwiXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sYXlvdXQucHVibGlzaExheW91dENoYW5nZSh7XHJcbiAgICAgIHNpZGViYXJTdHlsZTogXCJjbG9zZWRcIlxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXItdG9wbmF2IG1hdC1lbGV2YXRpb24tejJcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidG9wbmF2XCI+XHJcbiAgICAgIDwhLS0gQXBwIExvZ28gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b3BiYXItYnJhbmRpbmdcIj5cclxuICAgICAgICA8aW1nIHNyYz1cIih0aGVtZU1vZGVsJCAgfCBhc3luYykuY29tcGFueU1pbmlMb2dvXCIgYWx0PVwiXCIgY2xhc3M9XCJhcHAtbG9nb1wiPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDx1bCBjbGFzcz1cIm1lbnVcIiAqbmdJZj1cIiFsYXlvdXRDb25mLmlzTW9iaWxlXCI+XHJcbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1lbnVJdGVtczsgbGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgIT09ICdzZXBhcmF0b3InXCIgcm91dGVyTGlua0FjdGl2ZT1cIm9wZW5cIj5cclxuICAgICAgICAgICAgPGEgbWF0UmlwcGxlIHJvdXRlckxpbms9XCIve3tpdGVtLnN0YXRlfX1cIiAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2xpbmsnXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPnt7aXRlbS5pY29ufX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIHt7aXRlbS5uYW1lIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZHJvcERvd24nXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIG1hdFJpcHBsZSBmb3I9XCJkcm9wLXt7aX19XCIgY2xhc3M9XCJ0b2dnbGVcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj57e2l0ZW0uaWNvbn19PC9tYXQtaWNvbj4ge3tpdGVtLm5hbWUgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGEgbWF0UmlwcGxlPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPnt7aXRlbS5pY29ufX08L21hdC1pY29uPiB7e2l0ZW0ubmFtZSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImRyb3Ate3tpfX1cIiAvPlxyXG4gICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbUx2TDIgb2YgaXRlbS5zdWI7IGxldCBqID0gaW5kZXg7XCIgcm91dGVyTGlua0FjdGl2ZT1cIm9wZW5cIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxhIHJvdXRlckxpbms9XCJ7eyBpdGVtTHZMMi5zdGF0ZSA/ICcvJytpdGVtTHZMMi5zdGF0ZSA6ICcnfX1cIiBhcHBEcm9wZG93blRvZ2dsZVxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbUx2TDIudHlwZSA9PT0gJ2FwcGxpY2F0aW9ubGluaydcIiBtYXRSaXBwbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLW5hbWUgbHZsMlwiPnt7XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW1MdkwyLm5hbWUgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZ4RmxleD48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxhIG1hdFJpcHBsZSByb3V0ZXJMaW5rPVwie3tpdGVtLnN0YXRlID8gJy8nK2l0ZW0uc3RhdGUgOiAnJ319L3t7aXRlbUx2TDIuc3RhdGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtTHZMMi50eXBlICE9PSAnZHJvcERvd24nICYmIGl0ZW1MdkwyLnR5cGUgIT09ICdhcHBsaWNhdGlvbmxpbmsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbUx2TDIuaWNvblwiPnt7aXRlbUx2TDIuaWNvbn19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICB7e2l0ZW1MdkwyLm5hbWUgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICA8L2E+XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtTHZMMi50eXBlID09PSAnZHJvcERvd24nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIG1hdFJpcHBsZSBmb3I9XCJkcm9wLXt7aX19e3tqfX1cIiBjbGFzcz1cInRvZ2dsZVwiPnt7aXRlbUx2TDIubmFtZSB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8YSBtYXRSaXBwbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpdGVtTHZMMi5pY29uXCI+e3tpdGVtTHZMMi5pY29ufX08L21hdC1pY29uPiB7e2l0ZW1MdkwyLm5hbWUgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJkcm9wLXt7aX19e3tqfX1cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gTGV2ZWwgMyAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW1MdkwzIG9mIGl0ZW1MdkwyLnN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJvcGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIG1hdFJpcHBsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms9XCJ7e2l0ZW0uc3RhdGUgPyAnLycraXRlbS5zdGF0ZSA6ICcnfX17e2l0ZW1MdkwyLnN0YXRlID8gJy8nK2l0ZW1MdkwyLnN0YXRlIDogJyd9fS97e2l0ZW1MdkwzLnN0YXRlfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpdGVtTHZMMy5pY29uXCI+e3tpdGVtTHZMMy5pY29ufX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbUx2TDMubmFtZSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgICAgPHNwYW4gZnhGbGV4Pjwvc3Bhbj5cclxuICAgICAgPCEtLSBFbmQgTmF2aWdhdGlvbiAtLT5cclxuXHJcbiAgICAgIDwhLS0gTGFuZ3VhZ2UgU3dpdGNoZXIgLS0+XHJcbiAgICAgIDxtYXQtbWVudSAjbGFuZ3VhZ2VDaGFuZ2U9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgKm5nSWY9XCIhbGF5b3V0Q29uZi5pc01vYmlsZVwiIHBsYWNlaG9sZGVyPVwiXCIgaWQ9XCJsYW5nVG9nZ2xlXCIgW3N0eWxlLndpZHRoXT1cIidhdXRvJ1wiXHJcbiAgICAgICAgICBuYW1lPVwiY3VycmVudExhbmdcIiBbKG5nTW9kZWwpXT1cImN1cnJlbnRMYW5nXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZXRMYW5nKClcIiBjbGFzcz1cInRvcGJhci1idXR0b24tcmlnaHRcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBsYW5nIG9mIGF2YWlsYWJsZUxhbmdzXCIgW3ZhbHVlXT1cImxhbmcuY29kZVwiIG5nRGVmYXVsdENvbnRyb2w+e3sgbGFuZy5uYW1lIH19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1tZW51PlxyXG4gICAgICA8IS0tIFRoZW1lIFN3aXRjaGVyIC0tPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBpZD1cInNjaGVtZVRvZ2dsZVwiIFtzdHlsZS5vdmVyZmxvd109XCIndmlzaWJsZSdcIiBtYXRUb29sdGlwQ2xhc3M9XCJ0b29sdGlwQ2xhc3MtbWF0XCIgbWF0VG9vbHRpcD1cIkNvbG9yIFNjaGVtZXNcIlxyXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJ0aGVtZU1lbnVcIiBjbGFzcz1cInRvcGJhci1idXR0b24tcmlnaHRcIj5cclxuICAgICAgICA8bWF0LWljb24+Zm9ybWF0X2NvbG9yX2ZpbGw8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPG1hdC1tZW51ICN0aGVtZU1lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgPG1hdC1ncmlkLWxpc3QgY2xhc3M9XCJ0aGVtZS1saXN0XCIgY29scz1cIjJcIiByb3dIZWlnaHQ9XCI0OHB4XCI+XHJcbiAgICAgICAgICA8bWF0LWdyaWQtdGlsZSAqbmdGb3I9XCJsZXQgdGhlbWUgb2YgZWdyZXRUaGVtZXNcIiAoY2xpY2spPVwiY2hhbmdlVGhlbWUodGhlbWUpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSBbdGl0bGVdPVwidGhlbWUubmFtZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgW3N0eWxlLmJhY2tncm91bmRdPVwidGhlbWUuYmFzZUNvbG9yXCIgY2xhc3M9XCJlZ3JldC1zd2F0Y2hcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhY3RpdmUtaWNvblwiICpuZ0lmPVwidGhlbWUuaXNBY3RpdmVcIj5jaGVjazwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tYXQtZ3JpZC10aWxlPlxyXG4gICAgICAgIDwvbWF0LWdyaWQtbGlzdD5cclxuICAgICAgPC9tYXQtbWVudT5cclxuXHJcbiAgICAgIDwhLS0gTm90aWZpY2F0aW9uIHRvZ2dsZSBidXR0b24gLS0+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFRvb2x0aXA9XCJ7eyAnU0hFTEwuTk9USUZJQ0FUSU9OUycgfCB0cmFuc2xhdGV9fVwiIG1hdFRvb2x0aXBDbGFzcz1cInRvb2x0aXBDbGFzcy1tYXRcIiAoY2xpY2spPVwidG9nZ2xlTm90aWZpYygpXCJcclxuICAgICAgICBbc3R5bGUub3ZlcmZsb3ddPVwiJ3Zpc2libGUnXCIgY2xhc3M9XCJ0b3BiYXItYnV0dG9uLXJpZ2h0XCI+XHJcbiAgICAgICAgPG1hdC1pY29uPm5vdGlmaWNhdGlvbnM8L21hdC1pY29uPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9uLW51bWJlciBtYXQtYmctd2FyblwiPjM8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8IS0tIFRvcCBsZWZ0IHVzZXIgbWVudSAtLT5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFjY291bnRNZW51XCIgY2xhc3M9XCJ0b3BiYXItYnV0dG9uLXJpZ2h0IG1yLTEgaW1nLWJ1dHRvblwiPlxyXG4gICAgICAgIDxpbWcgKm5nSWY9XCIoYXV0aGVudGljYXRlZFVzZXJSZWNvcmQkIHwgYXN5bmMpICYmIChhdXRoZW50aWNhdGVkVXNlclJlY29yZCQgfCBhc3luYykucHJvZmlsZUltYWdlICE9IG51bGxcIlxyXG4gICAgICAgICAgW3NyY109XCIoYXV0aGVudGljYXRlZFVzZXJSZWNvcmQkIHwgYXN5bmMpLnByb2ZpbGVJbWFnZVwiPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICpuZ0lmPVwiKGF1dGhlbnRpY2F0ZWRVc2VyUmVjb3JkJCB8IGFzeW5jKSA9PSBudWxsIHx8IChhdXRoZW50aWNhdGVkVXNlclJlY29yZCQgfCBhc3luYykucHJvZmlsZUltYWdlID09IG51bGxcIlxyXG4gICAgICAgICAgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9mYWNlcy8xOC5wbmdcIj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxtYXQtbWVudSAjYWNjb3VudE1lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2ZpbGUvb3ZlcnZpZXcnXVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmFjY291bnRfYm94PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuPlByb2ZpbGU8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFttYXRNZW51VHJpZ2dlckZvcl09XCJsYW5ndWFnZUNoYW5nZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmxhbmd1YWdlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuPkxhbmd1YWdlPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbcm91dGVyTGlua109XCJbJy9wcm9maWxlL3NldHRpbmdzJ11cIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5zZXR0aW5nczwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3Bhbj5BY2NvdW50IFNldHRpbmdzPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT5cclxuICAgICAgICAgIDxtYXQtaWNvbj5ub3RpZmljYXRpb25zX29mZjwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3Bhbj5EaXNhYmxlIGFsZXJ0czwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gW3JvdXRlckxpbmtdPVwiWycvc2Vzc2lvbnMvc2lnbmluJ11cIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5leGl0X3RvX2FwcDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3Bhbj5TaWduIG91dDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgPCEtLSBNb2JpbGUgc2NyZWVuIG1lbnUgdG9nZ2xlIC0tPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm1yLTFcIiAoY2xpY2spPVwidG9nZ2xlU2lkZW5hdigpXCIgKm5nSWY9XCJsYXlvdXRDb25mLmlzTW9iaWxlXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPm1lbnU8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
125
+ HeaderTopComponent.ɵfac = function HeaderTopComponent_Factory(t) { return new (t || HeaderTopComponent)(i0.ɵɵdirectiveInject(i1.LayoutService), i0.ɵɵdirectiveInject(i2.ThemeService), i0.ɵɵdirectiveInject(i3.TranslateService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i4.Store), i0.ɵɵdirectiveInject(i5.CookieService)); };
126
+ HeaderTopComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HeaderTopComponent, selectors: [["app-header-top"]], inputs: { notificPanel: "notificPanel" }, decls: 38, vars: 13, consts: [[1, "navbar", "navbar-expand-lg", "navbar-dark", 2, "background-color", "#2c3e50", "padding", "0 20px", "height", "60px"], [1, "container-fluid", "d-flex", "align-items-center"], ["href", "#", 1, "navbar-brand", "d-flex", "align-items-center"], ["alt", "Logo", 2, "height", "40px", 3, "src"], [1, "collapse", "navbar-collapse", "justify-content-center"], [1, "navbar-nav", "mb-0"], ["class", "nav-item", 4, "ngFor", "ngForOf"], [1, "d-flex", "align-items-center"], [2, "color", "white", "background", "transparent", "border", "none", "margin-right", "15px", "min-width", "100px", 3, "ngModel", "ngModelChange", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], ["mat-icon-button", "", "matTooltip", "Themes", 2, "color", "white", "margin-right", "15px"], ["mat-icon-button", "", 2, "color", "white", "margin-right", "15px", "position", "relative", 3, "click"], [1, "badge", "bg-danger", 2, "position", "absolute", "top", "5px", "right", "5px", "font-size", "10px"], ["mat-icon-button", "", 2, "margin-left", "10px", 3, "matMenuTriggerFor"], ["style", "height:35px; width:35px; border-radius:50%;", 3, "src", 4, "ngIf"], ["src", "../../../../assets/images/faces/18.png", "style", "height:35px; width:35px; border-radius:50%;", 4, "ngIf"], ["accountMenu", "matMenu"], ["mat-menu-item", "", "routerLink", "/profile/overview"], ["mat-menu-item", "", "routerLink", "/profile/settings"], ["mat-menu-item", "", "routerLink", "/sessions/signin"], [1, "nav-item"], ["class", "nav-link d-flex align-items-center", 3, "routerLink", 4, "ngIf"], [1, "nav-link", "d-flex", "align-items-center", 3, "routerLink"], [2, "font-size", "20px", "color", "#FAF9F6", "margin-right", "6px"], [3, "value"], [2, "height", "35px", "width", "35px", "border-radius", "50%", 3, "src"], ["src", "../../../../assets/images/faces/18.png", 2, "height", "35px", "width", "35px", "border-radius", "50%"]], template: function HeaderTopComponent_Template(rf, ctx) { if (rf & 1) {
127
+ i0.ɵɵelementStart(0, "nav", 0);
128
+ i0.ɵɵelementStart(1, "div", 1);
129
+ i0.ɵɵelementStart(2, "a", 2);
130
+ i0.ɵɵelement(3, "img", 3);
131
+ i0.ɵɵpipe(4, "async");
132
+ i0.ɵɵelementEnd();
133
+ i0.ɵɵelementStart(5, "div", 4);
134
+ i0.ɵɵelementStart(6, "ul", 5);
135
+ i0.ɵɵtemplate(7, HeaderTopComponent_li_7_Template, 2, 1, "li", 6);
136
+ i0.ɵɵelementEnd();
137
+ i0.ɵɵelementEnd();
138
+ i0.ɵɵelementStart(8, "div", 7);
139
+ i0.ɵɵelementStart(9, "mat-select", 8);
140
+ i0.ɵɵlistener("ngModelChange", function HeaderTopComponent_Template_mat_select_ngModelChange_9_listener($event) { return ctx.currentLang = $event; })("selectionChange", function HeaderTopComponent_Template_mat_select_selectionChange_9_listener() { return ctx.setLang(); });
141
+ i0.ɵɵtemplate(10, HeaderTopComponent_mat_option_10_Template, 2, 2, "mat-option", 9);
142
+ i0.ɵɵelementEnd();
143
+ i0.ɵɵelementStart(11, "button", 10);
144
+ i0.ɵɵelementStart(12, "mat-icon");
145
+ i0.ɵɵtext(13, "format_color_fill");
146
+ i0.ɵɵelementEnd();
147
+ i0.ɵɵelementEnd();
148
+ i0.ɵɵelementStart(14, "button", 11);
149
+ i0.ɵɵlistener("click", function HeaderTopComponent_Template_button_click_14_listener() { return ctx.toggleNotific(); });
150
+ i0.ɵɵelementStart(15, "mat-icon");
151
+ i0.ɵɵtext(16, "notifications");
152
+ i0.ɵɵelementEnd();
153
+ i0.ɵɵelementStart(17, "span", 12);
154
+ i0.ɵɵtext(18, "3");
155
+ i0.ɵɵelementEnd();
156
+ i0.ɵɵelementEnd();
157
+ i0.ɵɵelementStart(19, "button", 13);
158
+ i0.ɵɵtemplate(20, HeaderTopComponent_img_20_Template, 2, 3, "img", 14);
159
+ i0.ɵɵpipe(21, "async");
160
+ i0.ɵɵtemplate(22, HeaderTopComponent_img_22_Template, 1, 0, "img", 15);
161
+ i0.ɵɵpipe(23, "async");
162
+ i0.ɵɵelementEnd();
163
+ i0.ɵɵelementEnd();
164
+ i0.ɵɵelementEnd();
165
+ i0.ɵɵelementEnd();
166
+ i0.ɵɵelementStart(24, "mat-menu", null, 16);
167
+ i0.ɵɵelementStart(26, "button", 17);
168
+ i0.ɵɵelementStart(27, "mat-icon");
169
+ i0.ɵɵtext(28, "account_box");
170
+ i0.ɵɵelementEnd();
171
+ i0.ɵɵtext(29, " Profile ");
172
+ i0.ɵɵelementEnd();
173
+ i0.ɵɵelementStart(30, "button", 18);
174
+ i0.ɵɵelementStart(31, "mat-icon");
175
+ i0.ɵɵtext(32, "settings");
176
+ i0.ɵɵelementEnd();
177
+ i0.ɵɵtext(33, " Settings ");
178
+ i0.ɵɵelementEnd();
179
+ i0.ɵɵelementStart(34, "button", 19);
180
+ i0.ɵɵelementStart(35, "mat-icon");
181
+ i0.ɵɵtext(36, "exit_to_app");
182
+ i0.ɵɵelementEnd();
183
+ i0.ɵɵtext(37, " Sign Out ");
184
+ i0.ɵɵelementEnd();
185
+ i0.ɵɵelementEnd();
186
+ } if (rf & 2) {
187
+ const _r4 = i0.ɵɵreference(25);
188
+ let tmp_5_0;
189
+ let tmp_6_0;
190
+ i0.ɵɵadvance(3);
191
+ i0.ɵɵpropertyInterpolate("src", i0.ɵɵpipeBind1(4, 7, ctx.themeModel$).companyMiniLogo, i0.ɵɵsanitizeUrl);
192
+ i0.ɵɵadvance(4);
193
+ i0.ɵɵproperty("ngForOf", ctx.menuItems);
194
+ i0.ɵɵadvance(2);
195
+ i0.ɵɵproperty("ngModel", ctx.currentLang);
196
+ i0.ɵɵadvance(1);
197
+ i0.ɵɵproperty("ngForOf", ctx.availableLangs);
198
+ i0.ɵɵadvance(9);
199
+ i0.ɵɵproperty("matMenuTriggerFor", _r4);
200
+ i0.ɵɵadvance(1);
201
+ i0.ɵɵproperty("ngIf", (tmp_5_0 = i0.ɵɵpipeBind1(21, 9, ctx.authenticatedUserRecord$)) == null ? null : tmp_5_0.profileImage);
202
+ i0.ɵɵadvance(2);
203
+ i0.ɵɵproperty("ngIf", !((tmp_6_0 = i0.ɵɵpipeBind1(23, 11, ctx.authenticatedUserRecord$)) == null ? null : tmp_6_0.profileImage));
204
+ } }, directives: [i6.NgForOf, i7.MatSelect, i8.NgControlStatus, i8.NgModel, i9.MatButton, i10.MatTooltip, i11.MatIcon, i12.MatMenuTrigger, i6.NgIf, i12.MatMenu, i12.MatMenuItem, i13.RouterLink, i13.RouterLinkWithHref, i14.MatOption], pipes: [i6.AsyncPipe, i3.TranslatePipe], encapsulation: 2 });
205
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HeaderTopComponent, [{
206
+ type: Component,
207
+ args: [{
208
+ selector: "app-header-top",
209
+ templateUrl: "./header-top.component.html",
210
+ }]
211
+ }], function () { return [{ type: i1.LayoutService }, { type: i2.ThemeService }, { type: i3.TranslateService }, { type: i0.Renderer2 }, { type: i4.Store }, { type: i5.CookieService }]; }, { notificPanel: [{
212
+ type: Input
213
+ }] }); })();
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXRvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2hlYWRlci10b3AvaGVhZGVyLXRvcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2hlYWRlci10b3AvaGVhZGVyLXRvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBaUQsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxFQUFTLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEtBQUssb0JBQW9CLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsT0FBTyx1REFBdUQsQ0FBQztBQU0vRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNBN0YsNkJBQXdHO0lBQ3RHLG9DQUFtRTtJQUFBLFlBQWE7SUFBQSxpQkFBVztJQUMzRixZQUNGOztJQUFBLGlCQUFJOzs7SUFIMEMsK0RBQTRCO0lBQ0wsZUFBYTtJQUFiLGtDQUFhO0lBQ2hGLGVBQ0Y7SUFERSxtRUFDRjs7O0lBSkYsOEJBQW9FO0lBQ2xFLHFFQUdJO0lBQ04saUJBQUs7OztJQUp5RSxlQUEwQjtJQUExQiw4Q0FBMEI7OztJQWF4RyxzQ0FBb0U7SUFDbEUsWUFDRjtJQUFBLGlCQUFhOzs7SUFGbUMsb0NBQW1CO0lBQ2pFLGVBQ0Y7SUFERSw2Q0FDRjs7O0lBZ0JBLDBCQUM4Rzs7OztJQUE1RywwR0FBdUQ7OztJQUN6RCwwQkFDc0Q7O0FE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QkFBNkI7YUFDM0M7a01Bc0JVLFlBQVk7a0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IFN0YXRlIH0gZnJvbSBcIi4uLy4uL3N0b3JlL3JlZHVjZXJzL2luZGV4XCI7XHJcbmltcG9ydCAqIGFzIHNoYXJlZE1vZHVsZVJlZHVjZXJzIGZyb20gXCIuLi8uLi9zdG9yZS9yZWR1Y2Vycy9pbmRleFwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0ICcuLi8uLi8uLi9nbG9iYWxkZXBlbmRlbmNpZXMvaGVscGVycy9mb250YXdlc29tZS1pY29ucyc7XHJcbmltcG9ydCB7IFRoZW1lTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGhlbWVzLm1vZGVsJztcclxuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXInO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxkZXBlbmRlbmNpZXMvY29uc3RhbnRzL2xvY2Fsc3RvcmFnZS1wcm9wZXJ0aWVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC1oZWFkZXItdG9wXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9oZWFkZXItdG9wLmNvbXBvbmVudC5odG1sXCIsXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgSGVhZGVyVG9wQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHRoZW1lTW9kZWwkOiBPYnNlcnZhYmxlPFRoZW1lTW9kZWw+O1xyXG4gIGxheW91dENvbmY6IGFueTtcclxuICBtZW51SXRlbXM6IGFueTtcclxuICBlZ3JldFRoZW1lczogYW55W10gPSBbXTtcclxuICBjdXJyZW50TGFuZyA9IFwiZW5cIjtcclxuICBhdmFpbGFibGVMYW5ncyA9IFtcclxuICAgIHtcclxuICAgICAgbmFtZTogXCJFbmdsaXNoXCIsXHJcbiAgICAgIGNvZGU6IFwiZW5cIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogXCLgsKTgsYbgsLLgsYHgsJfgsYFcIixcclxuICAgICAgY29kZTogXCJ0ZVwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiBcIu2VnOq1reyWtFwiLFxyXG4gICAgICBjb2RlOiBcImtvXCJcclxuICAgIH1cclxuICBdO1xyXG4gIEBJbnB1dCgpIG5vdGlmaWNQYW5lbDtcclxuICBhdXRoZW50aWNhdGVkVXNlclJlY29yZCQ6IE9ic2VydmFibGU8VXNlck1vZGVsPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxheW91dDogTGF5b3V0U2VydmljZSxcclxuICAgIHB1YmxpYyB0aGVtZVNlcnZpY2U6IFRoZW1lU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxTdGF0ZT4sXHJcbiAgICBwdWJsaWMgY29va2llU2VydmljZTogQ29va2llU2VydmljZSxcclxuXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRoZW1lTW9kZWwkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChzaGFyZWRNb2R1bGVSZWR1Y2Vycy5nZXRUaGVtZU1vZGVsKSk7XHJcbiAgICB0aGlzLmxheW91dENvbmYgPSB0aGlzLmxheW91dC5sYXlvdXRDb25mO1xyXG4gICAgdGhpcy5lZ3JldFRoZW1lcyA9IHRoaXMudGhlbWVTZXJ2aWNlLmVncmV0VGhlbWVzO1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkVXNlclJlY29yZCQgPSB0aGlzLnN0b3JlLnBpcGUoXHJcbiAgICAgIHNlbGVjdChzaGFyZWRNb2R1bGVSZWR1Y2Vycy5nZXRBdXRoZW50aWNhdGVkVXNlck1vZGVsKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkgeyB9XHJcblxyXG4gIHNldExhbmcoKSB7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGUudXNlKHRoaXMuY3VycmVudExhbmcpO1xyXG4gICAgbGV0IGN1cnJlbnRDdWx0dXJlID0gdGhpcy5jb29raWVTZXJ2aWNlLmdldChMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLkN1cnJlbnRDdWx0dXJlKTtcclxuXHJcbiAgICBpZiAoY3VycmVudEN1bHR1cmUgPT09ICdudWxsJyB8fCBjdXJyZW50Q3VsdHVyZSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgY3VycmVudEN1bHR1cmUgPSAnZW4nO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50TGFuZyA9IGN1cnJlbnRDdWx0dXJlO1xyXG4gICAgbGV0IGVudmlyb25tZW50ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLkVudmlyb25tZW50KSk7XHJcbiAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KExvY2FsU3RvcmFnZVByb3BlcnRpZXMuQ3VycmVudEN1bHR1cmUsIHRoaXMuY3VycmVudExhbmcsIG51bGwsIGVudmlyb25tZW50LmNvb2tpZVBhdGgsIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSwgZmFsc2UsIFwiU3RyaWN0XCIpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlVGhlbWUodGhlbWUpIHtcclxuICAgIC8vIHRoaXMudGhlbWVTZXJ2aWNlLmNoYW5nZVRoZW1lKHRoaXMucmVuZGVyZXIsIHRoZW1lKTtcclxuICB9XHJcbiAgdG9nZ2xlTm90aWZpYygpIHtcclxuICAgIHRoaXMubm90aWZpY1BhbmVsLnRvZ2dsZSgpO1xyXG4gIH1cclxuICB0b2dnbGVTaWRlbmF2KCkge1xyXG4gICAgaWYgKHRoaXMubGF5b3V0Q29uZi5zaWRlYmFyU3R5bGUgPT09IFwiY2xvc2VkXCIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGF5b3V0LnB1Ymxpc2hMYXlvdXRDaGFuZ2Uoe1xyXG4gICAgICAgIHNpZGViYXJTdHlsZTogXCJmdWxsXCJcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxheW91dC5wdWJsaXNoTGF5b3V0Q2hhbmdlKHtcclxuICAgICAgc2lkZWJhclN0eWxlOiBcImNsb3NlZFwiXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPG5hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLWxnIG5hdmJhci1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiMyYzNlNTA7IHBhZGRpbmc6IDAgMjBweDsgaGVpZ2h0OjYwcHg7XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcblxyXG4gICAgPCEtLSBMZWZ0OiBCcmFuZGluZyAvIExvZ28gLS0+XHJcbiAgICA8YSBjbGFzcz1cIm5hdmJhci1icmFuZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgaHJlZj1cIiNcIj5cclxuICAgICAgPGltZyBzcmM9XCJ7eyh0aGVtZU1vZGVsJCB8IGFzeW5jKS5jb21wYW55TWluaUxvZ299fVwiIGFsdD1cIkxvZ29cIiBzdHlsZT1cImhlaWdodDo0MHB4O1wiPlxyXG4gICAgPC9hPlxyXG5cclxuICAgIDwhLS0gQ2VudGVyOiBOYXZpZ2F0aW9uIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZSBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgIDx1bCBjbGFzcz1cIm5hdmJhci1uYXYgbWItMFwiPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWVudUl0ZW1zOyBsZXQgaSA9IGluZGV4O1wiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGluayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgcm91dGVyTGluaz1cIi97e2l0ZW0uc3RhdGV9fVwiICpuZ0lmPVwiaXRlbS50eXBlID09PSAnbGluaydcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOjIwcHg7IGNvbG9yOiNGQUY5RjY7IG1hcmdpbi1yaWdodDo2cHg7XCI+e3tpdGVtLmljb259fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIHt7aXRlbS5uYW1lIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBSaWdodDogQWN0aW9ucyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDwhLS0gTGFuZ3VhZ2UgU3dpdGNoZXIgLS0+XHJcbiAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiY3VycmVudExhbmdcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cInNldExhbmcoKVwiXHJcbiAgICAgICAgc3R5bGU9XCJjb2xvcjp3aGl0ZTsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyOm5vbmU7IG1hcmdpbi1yaWdodDoxNXB4OyBtaW4td2lkdGg6MTAwcHg7XCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGxhbmcgb2YgYXZhaWxhYmxlTGFuZ3NcIiBbdmFsdWVdPVwibGFuZy5jb2RlXCI+XHJcbiAgICAgICAgICB7eyBsYW5nLm5hbWUgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuXHJcbiAgICAgIDwhLS0gVGhlbWUgU3dpdGNoZXIgLS0+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFRvb2x0aXA9XCJUaGVtZXNcIiBzdHlsZT1cImNvbG9yOndoaXRlOyBtYXJnaW4tcmlnaHQ6MTVweDtcIj5cclxuICAgICAgICA8bWF0LWljb24+Zm9ybWF0X2NvbG9yX2ZpbGw8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDwhLS0gTm90aWZpY2F0aW9ucyAtLT5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZU5vdGlmaWMoKVwiIHN0eWxlPVwiY29sb3I6d2hpdGU7IG1hcmdpbi1yaWdodDoxNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTtcIj5cclxuICAgICAgICA8bWF0LWljb24+bm90aWZpY2F0aW9uczwvbWF0LWljb24+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiZy1kYW5nZXJcIiBzdHlsZT1cInBvc2l0aW9uOmFic29sdXRlOyB0b3A6NXB4OyByaWdodDo1cHg7IGZvbnQtc2l6ZToxMHB4O1wiPjM8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPCEtLSBVc2VyIEF2YXRhciAtLT5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFjY291bnRNZW51XCIgc3R5bGU9XCJtYXJnaW4tbGVmdDoxMHB4O1wiPlxyXG4gICAgICAgIDxpbWcgKm5nSWY9XCIoYXV0aGVudGljYXRlZFVzZXJSZWNvcmQkIHwgYXN5bmMpPy5wcm9maWxlSW1hZ2VcIlxyXG4gICAgICAgICAgW3NyY109XCIoYXV0aGVudGljYXRlZFVzZXJSZWNvcmQkIHwgYXN5bmMpLnByb2ZpbGVJbWFnZVwiIHN0eWxlPVwiaGVpZ2h0OjM1cHg7IHdpZHRoOjM1cHg7IGJvcmRlci1yYWRpdXM6NTAlO1wiPlxyXG4gICAgICAgIDxpbWcgKm5nSWY9XCIhKGF1dGhlbnRpY2F0ZWRVc2VyUmVjb3JkJCB8IGFzeW5jKT8ucHJvZmlsZUltYWdlXCIgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9mYWNlcy8xOC5wbmdcIlxyXG4gICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6MzVweDsgd2lkdGg6MzVweDsgYm9yZGVyLXJhZGl1czo1MCU7XCI+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmF2PlxyXG5cclxuPCEtLSBVc2VyIE1lbnUgLS0+XHJcbjxtYXQtbWVudSAjYWNjb3VudE1lbnU9XCJtYXRNZW51XCI+XHJcbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIHJvdXRlckxpbms9XCIvcHJvZmlsZS9vdmVydmlld1wiPlxyXG4gICAgPG1hdC1pY29uPmFjY291bnRfYm94PC9tYXQtaWNvbj4gUHJvZmlsZVxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LW1lbnUtaXRlbSByb3V0ZXJMaW5rPVwiL3Byb2ZpbGUvc2V0dGluZ3NcIj5cclxuICAgIDxtYXQtaWNvbj5zZXR0aW5nczwvbWF0LWljb24+IFNldHRpbmdzXHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIHJvdXRlckxpbms9XCIvc2Vzc2lvbnMvc2lnbmluXCI+XHJcbiAgICA8bWF0LWljb24+ZXhpdF90b19hcHA8L21hdC1pY29uPiBTaWduIE91dFxyXG4gIDwvYnV0dG9uPlxyXG48L21hdC1tZW51PiJdfQ==
@@ -14,13 +14,42 @@ export class LiveWelcomePageComponent {
14
14
  this.router.navigate(['lives/lives-search']);
15
15
  }
16
16
  }
17
- LiveWelcomePageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: LiveWelcomePageComponent, deps: [{ token: i1.Router }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
18
- LiveWelcomePageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.1", type: LiveWelcomePageComponent, selector: "app-lives-welocme-page", ngImport: i0, template: "<div\r\n style=\"height:100vh;background-image: url(https://bviewstorage.blob.core.windows.net/3d19eb4e-9015-4e83-9d1f-2a2936e0c171/hrm/b52ce424-5d4d-49d4-8d0f-eea378853d39/version-1/Picture1.jpg); \">\r\n <div>\r\n <img src=\"https://bviewstorage.blob.core.windows.net/3d19eb4e-9015-4e83-9d1f-2a2936e0c171/hrm/b52ce424-5d4d-49d4-8d0f-eea378853d39/version-1/Picture2.png\"\r\n style=\"margin-left: 45%; height:250px; margin-top:10%;\">\r\n </div>\r\n <div>\r\n <div class=\"mt-1\" style=\"font-family: Bradley Hand ITC;color:#002060; font-size: x-large;margin-left:42%;\">\r\n <b>Livelihoods Enrichment System</b></div>\r\n <div class=\"mt-5\" style=\"font-family: Century Gothic;color:#73c2fb; font-size: xx-large;margin-left:38%;\">\r\n <b>Bring Sustainable Projects to LIVE</b></div>\r\n \u00A0<p style=\"font-family: Century Gothic; font-size:large;color:#002060; margin-left: 33%; width:40%; text-align: center;\"> LIVES a\r\n digital marketplace channelising impact investments in sustainable palm oil.</p>\r\n <p align=\"center\" style=\"font-family: Century Gothic; font-size:large;color:#002060; margin-left: 33%; width:42%; text-align: center;\"> An ecosystem\r\n bringing together all the participants of the Global Palm Oil Supply Chain with the aim of empowering Small\r\n Holder Farmers to adopt sustainable agronomic practices and become integrated with global economy.</p>\r\n </div>\r\n <button style=\"\r\n display: block;\r\n color: #00259C;\r\n font-size: 15px;\r\n margin-left: 47%;\r\n margin-top: 2%;\r\n padding: 10px 20px;\r\n border-radius: 10px;\r\n border: 2px solid #00259C;\" (click)=\"navigateToModule()\">Click here to proceed</button>\r\n</div>" });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: LiveWelcomePageComponent, decorators: [{
20
- type: Component,
21
- args: [{
22
- selector: "app-lives-welocme-page",
23
- templateUrl: "./lives-welcome-page.html"
24
- }]
25
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.TranslateService }]; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZXMtd2VsY29tZS1wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvY29tcG9uZW50cy9saXZlcy9saXZlcy13ZWxjb21lLXBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2xpdmVzL2xpdmVzLXdlbGNvbWUtcGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTZELE1BQU0sZUFBZSxDQUFDO0FBR3JHLE9BQU8sdURBQXVELENBQUM7Ozs7QUFPL0QsTUFBTSxPQUFPLHdCQUF3QjtJQUdqQyxZQUNZLE1BQWMsRUFDZixTQUEyQjtRQUQxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFFdEMsQ0FBQztJQUNELFFBQVE7SUFDUixDQUFDO0lBQ0QsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7cUhBWlEsd0JBQXdCO3lHQUF4Qix3QkFBd0IsOERDVnJDLDh6REEwQk07MkZEaEJPLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxXQUFXLEVBQUUsMkJBQTJCO2lCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZUNvbmZpZ0xvYWRTdGFydCwgUm91dGVDb25maWdMb2FkRW5kLCBSZXNvbHZlU3RhcnQsIFJlc29sdmVFbmQsIE5hdmlnYXRpb25TdGFydCwgTmF2aWdhdGlvbkNhbmNlbCwgTmF2aWdhdGlvbkVycm9yLCBFdmVudCwgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgJy4uLy4uLy4uL2dsb2JhbGRlcGVuZGVuY2llcy9oZWxwZXJzL2ZvbnRhd2Vzb21lLWljb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYXBwLWxpdmVzLXdlbG9jbWUtcGFnZVwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9saXZlcy13ZWxjb21lLXBhZ2UuaHRtbFwiXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTGl2ZVdlbGNvbWVQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgfVxyXG4gICAgbmF2aWdhdGVUb01vZHVsZSgpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2xpdmVzL2xpdmVzLXNlYXJjaCddKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBzdHlsZT1cImhlaWdodDoxMDB2aDtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly9idmlld3N0b3JhZ2UuYmxvYi5jb3JlLndpbmRvd3MubmV0LzNkMTllYjRlLTkwMTUtNGU4My05ZDFmLTJhMjkzNmUwYzE3MS9ocm0vYjUyY2U0MjQtNWQ0ZC00OWQ0LThkMGYtZWVhMzc4ODUzZDM5L3ZlcnNpb24tMS9QaWN0dXJlMS5qcGcpOyBcIj5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2J2aWV3c3RvcmFnZS5ibG9iLmNvcmUud2luZG93cy5uZXQvM2QxOWViNGUtOTAxNS00ZTgzLTlkMWYtMmEyOTM2ZTBjMTcxL2hybS9iNTJjZTQyNC01ZDRkLTQ5ZDQtOGQwZi1lZWEzNzg4NTNkMzkvdmVyc2lvbi0xL1BpY3R1cmUyLnBuZ1wiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDQ1JTsgaGVpZ2h0OjI1MHB4OyBtYXJnaW4tdG9wOjEwJTtcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMVwiIHN0eWxlPVwiZm9udC1mYW1pbHk6IEJyYWRsZXkgSGFuZCBJVEM7Y29sb3I6IzAwMjA2MDsgZm9udC1zaXplOiB4LWxhcmdlO21hcmdpbi1sZWZ0OjQyJTtcIj5cclxuICAgICAgICAgICAgPGI+TGl2ZWxpaG9vZHMgRW5yaWNobWVudCBTeXN0ZW08L2I+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIiBzdHlsZT1cImZvbnQtZmFtaWx5OiBDZW50dXJ5IEdvdGhpYztjb2xvcjojNzNjMmZiOyBmb250LXNpemU6IHh4LWxhcmdlO21hcmdpbi1sZWZ0OjM4JTtcIj5cclxuICAgICAgICAgICAgPGI+QnJpbmcgU3VzdGFpbmFibGUgUHJvamVjdHMgdG8gTElWRTwvYj48L2Rpdj5cclxuICAgICAgICDCoDxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IENlbnR1cnkgR290aGljOyBmb250LXNpemU6bGFyZ2U7Y29sb3I6IzAwMjA2MDsgbWFyZ2luLWxlZnQ6IDMzJTsgd2lkdGg6NDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7XCI+IExJVkVTIGFcclxuICAgICAgICAgICAgZGlnaXRhbCBtYXJrZXRwbGFjZSBjaGFubmVsaXNpbmcgaW1wYWN0IGludmVzdG1lbnRzIGluIHN1c3RhaW5hYmxlIHBhbG0gb2lsLjwvcD5cclxuICAgICAgICA8cCBhbGlnbj1cImNlbnRlclwiIHN0eWxlPVwiZm9udC1mYW1pbHk6IENlbnR1cnkgR290aGljOyBmb250LXNpemU6bGFyZ2U7Y29sb3I6IzAwMjA2MDsgbWFyZ2luLWxlZnQ6IDMzJTsgd2lkdGg6NDIlOyB0ZXh0LWFsaWduOiBjZW50ZXI7XCI+IEFuIGVjb3N5c3RlbVxyXG4gICAgICAgICAgICBicmluZ2luZyB0b2dldGhlciBhbGwgdGhlIHBhcnRpY2lwYW50cyBvZiB0aGUgR2xvYmFsIFBhbG0gT2lsIFN1cHBseSBDaGFpbiB3aXRoIHRoZSBhaW0gb2YgZW1wb3dlcmluZyBTbWFsbFxyXG4gICAgICAgICAgICBIb2xkZXIgRmFybWVycyB0byBhZG9wdCBzdXN0YWluYWJsZSBhZ3Jvbm9taWMgcHJhY3RpY2VzIGFuZCBiZWNvbWUgaW50ZWdyYXRlZCB3aXRoIGdsb2JhbCBlY29ub215LjwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiBzdHlsZT1cIlxyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGNvbG9yOiAjMDAyNTlDO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDclO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDIlO1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDI1OUM7XCIgKGNsaWNrKT1cIm5hdmlnYXRlVG9Nb2R1bGUoKVwiPkNsaWNrIGhlcmUgdG8gcHJvY2VlZDwvYnV0dG9uPlxyXG48L2Rpdj4iXX0=
17
+ LiveWelcomePageComponent.ɵfac = function LiveWelcomePageComponent_Factory(t) { return new (t || LiveWelcomePageComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.TranslateService)); };
18
+ LiveWelcomePageComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LiveWelcomePageComponent, selectors: [["app-lives-welocme-page"]], decls: 17, vars: 0, consts: [[2, "height", "100vh", "background-image", "url(https://bviewstorage.blob.core.windows.net/3d19eb4e-9015-4e83-9d1f-2a2936e0c171/hrm/b52ce424-5d4d-49d4-8d0f-eea378853d39/version-1/Picture1.jpg)"], ["src", "https://bviewstorage.blob.core.windows.net/3d19eb4e-9015-4e83-9d1f-2a2936e0c171/hrm/b52ce424-5d4d-49d4-8d0f-eea378853d39/version-1/Picture2.png", 2, "margin-left", "45%", "height", "250px", "margin-top", "10%"], [1, "mt-1", 2, "font-family", "Bradley Hand ITC", "color", "#002060", "font-size", "x-large", "margin-left", "42%"], [1, "mt-5", 2, "font-family", "Century Gothic", "color", "#73c2fb", "font-size", "xx-large", "margin-left", "38%"], [2, "font-family", "Century Gothic", "font-size", "large", "color", "#002060", "margin-left", "33%", "width", "40%", "text-align", "center"], ["align", "center", 2, "font-family", "Century Gothic", "font-size", "large", "color", "#002060", "margin-left", "33%", "width", "42%", "text-align", "center"], [2, "display", "block", "color", "#00259C", "font-size", "15px", "margin-left", "47%", "margin-top", "2%", "padding", "10px 20px", "border-radius", "10px", "border", "2px solid #00259C", 3, "click"]], template: function LiveWelcomePageComponent_Template(rf, ctx) { if (rf & 1) {
19
+ i0.ɵɵelementStart(0, "div", 0);
20
+ i0.ɵɵelementStart(1, "div");
21
+ i0.ɵɵelement(2, "img", 1);
22
+ i0.ɵɵelementEnd();
23
+ i0.ɵɵelementStart(3, "div");
24
+ i0.ɵɵelementStart(4, "div", 2);
25
+ i0.ɵɵelementStart(5, "b");
26
+ i0.ɵɵtext(6, "Livelihoods Enrichment System");
27
+ i0.ɵɵelementEnd();
28
+ i0.ɵɵelementEnd();
29
+ i0.ɵɵelementStart(7, "div", 3);
30
+ i0.ɵɵelementStart(8, "b");
31
+ i0.ɵɵtext(9, "Bring Sustainable Projects to LIVE");
32
+ i0.ɵɵelementEnd();
33
+ i0.ɵɵelementEnd();
34
+ i0.ɵɵtext(10, " \u00A0");
35
+ i0.ɵɵelementStart(11, "p", 4);
36
+ i0.ɵɵtext(12, " LIVES a digital marketplace channelising impact investments in sustainable palm oil.");
37
+ i0.ɵɵelementEnd();
38
+ i0.ɵɵelementStart(13, "p", 5);
39
+ i0.ɵɵtext(14, " An ecosystem bringing together all the participants of the Global Palm Oil Supply Chain with the aim of empowering Small Holder Farmers to adopt sustainable agronomic practices and become integrated with global economy.");
40
+ i0.ɵɵelementEnd();
41
+ i0.ɵɵelementEnd();
42
+ i0.ɵɵelementStart(15, "button", 6);
43
+ i0.ɵɵlistener("click", function LiveWelcomePageComponent_Template_button_click_15_listener() { return ctx.navigateToModule(); });
44
+ i0.ɵɵtext(16, "Click here to proceed");
45
+ i0.ɵɵelementEnd();
46
+ i0.ɵɵelementEnd();
47
+ } }, encapsulation: 2 });
48
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LiveWelcomePageComponent, [{
49
+ type: Component,
50
+ args: [{
51
+ selector: "app-lives-welocme-page",
52
+ templateUrl: "./lives-welcome-page.html"
53
+ }]
54
+ }], function () { return [{ type: i1.Router }, { type: i2.TranslateService }]; }, null); })();
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZXMtd2VsY29tZS1wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvY29tcG9uZW50cy9saXZlcy9saXZlcy13ZWxjb21lLXBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2xpdmVzL2xpdmVzLXdlbGNvbWUtcGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTZELE1BQU0sZUFBZSxDQUFDO0FBR3JHLE9BQU8sdURBQXVELENBQUM7Ozs7QUFPL0QsTUFBTSxPQUFPLHdCQUF3QjtJQUdqQyxZQUNZLE1BQWMsRUFDZixTQUEyQjtRQUQxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFFdEMsQ0FBQztJQUNELFFBQVE7SUFDUixDQUFDO0lBQ0QsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7Z0dBWlEsd0JBQXdCOzJFQUF4Qix3QkFBd0I7UUNWckMsOEJBQ2tNO1FBQzlMLDJCQUFLO1FBQ0QseUJBQzREO1FBQ2hFLGlCQUFNO1FBQ04sMkJBQUs7UUFDRCw4QkFBMkc7UUFDdkcseUJBQUc7UUFBQSw2Q0FBNkI7UUFBQSxpQkFBSTtRQUFBLGlCQUFNO1FBQzlDLDhCQUEwRztRQUN0Ryx5QkFBRztRQUFBLGtEQUFrQztRQUFBLGlCQUFJO1FBQUEsaUJBQU07UUFDbkQsd0JBQUM7UUFBQSw2QkFBd0g7UUFBQyxzR0FDMUM7UUFBQSxpQkFBSTtRQUNwRiw2QkFBdUk7UUFBQyw2T0FFbEM7UUFBQSxpQkFBSTtRQUM5RyxpQkFBTTtRQUNOLGtDQVE2RDtRQUE3QixzR0FBUyxzQkFBa0IsSUFBQztRQUFDLHNDQUFxQjtRQUFBLGlCQUFTO1FBQy9GLGlCQUFNOzt1RkRoQk8sd0JBQXdCO2NBTHBDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxXQUFXLEVBQUUsMkJBQTJCO2FBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FbmQsIFJvdXRlQ29uZmlnTG9hZFN0YXJ0LCBSb3V0ZUNvbmZpZ0xvYWRFbmQsIFJlc29sdmVTdGFydCwgUmVzb2x2ZUVuZCwgTmF2aWdhdGlvblN0YXJ0LCBOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRXJyb3IsIEV2ZW50LCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCAnLi4vLi4vLi4vZ2xvYmFsZGVwZW5kZW5jaWVzL2hlbHBlcnMvZm9udGF3ZXNvbWUtaWNvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhcHAtbGl2ZXMtd2Vsb2NtZS1wYWdlXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2xpdmVzLXdlbGNvbWUtcGFnZS5odG1sXCJcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBMaXZlV2VsY29tZVBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICB9XHJcbiAgICBuYXZpZ2F0ZVRvTW9kdWxlKCkge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbGl2ZXMvbGl2ZXMtc2VhcmNoJ10pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAgIHN0eWxlPVwiaGVpZ2h0OjEwMHZoO2JhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL2J2aWV3c3RvcmFnZS5ibG9iLmNvcmUud2luZG93cy5uZXQvM2QxOWViNGUtOTAxNS00ZTgzLTlkMWYtMmEyOTM2ZTBjMTcxL2hybS9iNTJjZTQyNC01ZDRkLTQ5ZDQtOGQwZi1lZWEzNzg4NTNkMzkvdmVyc2lvbi0xL1BpY3R1cmUxLmpwZyk7IFwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vYnZpZXdzdG9yYWdlLmJsb2IuY29yZS53aW5kb3dzLm5ldC8zZDE5ZWI0ZS05MDE1LTRlODMtOWQxZi0yYTI5MzZlMGMxNzEvaHJtL2I1MmNlNDI0LTVkNGQtNDlkNC04ZDBmLWVlYTM3ODg1M2QzOS92ZXJzaW9uLTEvUGljdHVyZTIucG5nXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNDUlOyBoZWlnaHQ6MjUwcHg7IG1hcmdpbi10b3A6MTAlO1wiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xXCIgc3R5bGU9XCJmb250LWZhbWlseTogQnJhZGxleSBIYW5kIElUQztjb2xvcjojMDAyMDYwOyBmb250LXNpemU6IHgtbGFyZ2U7bWFyZ2luLWxlZnQ6NDIlO1wiPlxyXG4gICAgICAgICAgICA8Yj5MaXZlbGlob29kcyBFbnJpY2htZW50IFN5c3RlbTwvYj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiIHN0eWxlPVwiZm9udC1mYW1pbHk6IENlbnR1cnkgR290aGljO2NvbG9yOiM3M2MyZmI7IGZvbnQtc2l6ZTogeHgtbGFyZ2U7bWFyZ2luLWxlZnQ6MzglO1wiPlxyXG4gICAgICAgICAgICA8Yj5CcmluZyBTdXN0YWluYWJsZSBQcm9qZWN0cyB0byBMSVZFPC9iPjwvZGl2PlxyXG4gICAgICAgIMKgPHAgc3R5bGU9XCJmb250LWZhbWlseTogQ2VudHVyeSBHb3RoaWM7IGZvbnQtc2l6ZTpsYXJnZTtjb2xvcjojMDAyMDYwOyBtYXJnaW4tbGVmdDogMzMlOyB3aWR0aDo0MCU7IHRleHQtYWxpZ246IGNlbnRlcjtcIj4gTElWRVMgYVxyXG4gICAgICAgICAgICBkaWdpdGFsIG1hcmtldHBsYWNlIGNoYW5uZWxpc2luZyBpbXBhY3QgaW52ZXN0bWVudHMgaW4gc3VzdGFpbmFibGUgcGFsbSBvaWwuPC9wPlxyXG4gICAgICAgIDxwIGFsaWduPVwiY2VudGVyXCIgc3R5bGU9XCJmb250LWZhbWlseTogQ2VudHVyeSBHb3RoaWM7IGZvbnQtc2l6ZTpsYXJnZTtjb2xvcjojMDAyMDYwOyBtYXJnaW4tbGVmdDogMzMlOyB3aWR0aDo0MiU7IHRleHQtYWxpZ246IGNlbnRlcjtcIj4gQW4gZWNvc3lzdGVtXHJcbiAgICAgICAgICAgIGJyaW5naW5nIHRvZ2V0aGVyIGFsbCB0aGUgcGFydGljaXBhbnRzIG9mIHRoZSBHbG9iYWwgUGFsbSBPaWwgU3VwcGx5IENoYWluIHdpdGggdGhlIGFpbSBvZiBlbXBvd2VyaW5nIFNtYWxsXHJcbiAgICAgICAgICAgIEhvbGRlciBGYXJtZXJzIHRvIGFkb3B0IHN1c3RhaW5hYmxlIGFncm9ub21pYyBwcmFjdGljZXMgYW5kIGJlY29tZSBpbnRlZ3JhdGVkIHdpdGggZ2xvYmFsIGVjb25vbXkuPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnV0dG9uIHN0eWxlPVwiXHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgY29sb3I6ICMwMDI1OUM7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0NyU7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMiU7XHJcbiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwMjU5QztcIiAoY2xpY2spPVwibmF2aWdhdGVUb01vZHVsZSgpXCI+Q2xpY2sgaGVyZSB0byBwcm9jZWVkPC9idXR0b24+XHJcbjwvZGl2PiJdfQ==