common-header-lib 0.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 (195) hide show
  1. package/README.md +24 -0
  2. package/assets/.gitkeep +0 -0
  3. package/assets/i18n/ar.json +83 -0
  4. package/assets/i18n/de.json +83 -0
  5. package/assets/i18n/en.json +83 -0
  6. package/assets/i18n/es.json +83 -0
  7. package/assets/i18n/fr.json +83 -0
  8. package/assets/i18n/hi.json +83 -0
  9. package/assets/i18n/ja.json +83 -0
  10. package/assets/i18n/ko.json +83 -0
  11. package/assets/images/APP019.svg +6 -0
  12. package/assets/images/APP020.svg +4 -0
  13. package/assets/images/APP021.svg +6 -0
  14. package/assets/images/APP022.svg +6 -0
  15. package/assets/images/APP023.svg +11 -0
  16. package/assets/images/APP024.svg +9 -0
  17. package/assets/images/APP025.svg +8 -0
  18. package/assets/images/APP026.svg +4 -0
  19. package/assets/images/APP027.svg +5 -0
  20. package/assets/images/APP028.svg +6 -0
  21. package/assets/images/APP029.svg +12 -0
  22. package/assets/images/APP030.svg +20 -0
  23. package/assets/images/APP031.svg +14 -0
  24. package/assets/images/APP032.svg +17 -0
  25. package/assets/images/Frame.svg +104 -0
  26. package/assets/images/apps-1.svg +22 -0
  27. package/assets/images/bell-icon.svg +3 -0
  28. package/assets/images/check_circle.svg +3 -0
  29. package/assets/images/close copy.svg +5 -0
  30. package/assets/images/close.svg +5 -0
  31. package/assets/images/copy-img.svg +3 -0
  32. package/assets/images/cross-search.svg +4 -0
  33. package/assets/images/domain_img.svg +3 -0
  34. package/assets/images/east.svg +3 -0
  35. package/assets/images/error.svg +3 -0
  36. package/assets/images/filepath.svg +8 -0
  37. package/assets/images/flag1.svg +3 -0
  38. package/assets/images/gc-mail.svg +3 -0
  39. package/assets/images/grey-arrow.svg +3 -0
  40. package/assets/images/info.svg +3 -0
  41. package/assets/images/local.svg +3 -0
  42. package/assets/images/lock-pass.svg +3 -0
  43. package/assets/images/lock1.svg +3 -0
  44. package/assets/images/login-bg/default_bg.svg +448 -0
  45. package/assets/images/login-bg/visibility.svg +3 -0
  46. package/assets/images/login-bg/visibility_off.svg +3 -0
  47. package/assets/images/logo.png +0 -0
  48. package/assets/images/logout.svg +3 -0
  49. package/assets/images/mail-icon.svg +3 -0
  50. package/assets/images/marker-pin.svg +4 -0
  51. package/assets/images/noti_ticket.svg +3 -0
  52. package/assets/images/pass-img.svg +3 -0
  53. package/assets/images/refresh-1.svg +3 -0
  54. package/assets/images/schedule.svg +1 -0
  55. package/assets/images/search-filter.svg +3 -0
  56. package/assets/images/search-icon.svg +3 -0
  57. package/assets/images/settings.svg +3 -0
  58. package/assets/images/successful.svg +10 -0
  59. package/assets/images/user-name.svg +3 -0
  60. package/assets/scss/_sidebar.scss +267 -0
  61. package/assets/scss/styles.scss +577 -0
  62. package/esm2020/common-header-lib.mjs +5 -0
  63. package/esm2020/lib/Validators/noSpaceAllowed.mjs +16 -0
  64. package/esm2020/lib/common-header-lib.component.mjs +612 -0
  65. package/esm2020/lib/common-header-lib.module.mjs +208 -0
  66. package/esm2020/lib/common-header-lib.service.mjs +200 -0
  67. package/esm2020/lib/components/confirm-dialog/confirm-dialog.component.mjs +49 -0
  68. package/esm2020/lib/components/general-configuration/general-configuration.component.mjs +402 -0
  69. package/esm2020/lib/components/general-configuration/landingpg-config/landingpg-config.component.mjs +124 -0
  70. package/esm2020/lib/components/general-configuration/timezone-configuration/timezone-configuration.component.mjs +138 -0
  71. package/esm2020/lib/components/grid-pagination/grid-pagination.component.mjs +39 -0
  72. package/esm2020/lib/components/ng-translation/ng-translation.component.mjs +65 -0
  73. package/esm2020/lib/components/no-service-my-access-pg/no-service-my-access-pg.component.mjs +19 -0
  74. package/esm2020/lib/components/notification-sidebar/notification-sidebar.component.mjs +40 -0
  75. package/esm2020/lib/components/side-popup/side-popup.component.mjs +34 -0
  76. package/esm2020/lib/components/user-mailbox/user-mailbox.component.mjs +173 -0
  77. package/esm2020/lib/components/user-sidebar/user-sidebar.component.mjs +279 -0
  78. package/esm2020/lib/components/viewpassword-popup/viewpassword-popup.component.mjs +196 -0
  79. package/esm2020/lib/model/data_model.mjs +217 -0
  80. package/esm2020/lib/pipes/custome-dateformat.pipe.mjs +27 -0
  81. package/esm2020/lib/pipes/date-diff.pipe.mjs +56 -0
  82. package/esm2020/lib/pipes/slice-to-two.pipe.mjs +34 -0
  83. package/esm2020/lib/services/EncrypDecryp_RSA.service.mjs +100 -0
  84. package/esm2020/lib/services/async-passwordcheck.service.mjs +72 -0
  85. package/esm2020/lib/services/cookie-storage-manager.service.mjs +78 -0
  86. package/esm2020/lib/services/encrpdata.service.mjs +55 -0
  87. package/esm2020/lib/services/encrydecrydata.service.mjs +207 -0
  88. package/esm2020/lib/services/event.service.mjs +133 -0
  89. package/esm2020/lib/services/http/http-common.service.mjs +216 -0
  90. package/esm2020/lib/services/http/http-general-config.service.mjs +84 -0
  91. package/esm2020/lib/services/rest-login-form.service.mjs +296 -0
  92. package/esm2020/lib/services/rest-signalr.service.mjs +100 -0
  93. package/esm2020/lib/services/storage.service.mjs +33 -0
  94. package/esm2020/lib/services/toast-msg.service.mjs +95 -0
  95. package/esm2020/lib/services/vapt-validation.service.mjs +31 -0
  96. package/esm2020/public-api.mjs +13 -0
  97. package/fesm2015/common-header-lib.mjs +4165 -0
  98. package/fesm2015/common-header-lib.mjs.map +1 -0
  99. package/fesm2020/common-header-lib.mjs +4146 -0
  100. package/fesm2020/common-header-lib.mjs.map +1 -0
  101. package/index.d.ts +5 -0
  102. package/lib/Validators/noSpaceAllowed.d.ts +2 -0
  103. package/lib/common-header-lib.component.d.ts +148 -0
  104. package/lib/common-header-lib.module.d.ts +43 -0
  105. package/lib/common-header-lib.service.d.ts +25 -0
  106. package/lib/components/confirm-dialog/confirm-dialog.component.d.ts +13 -0
  107. package/lib/components/general-configuration/general-configuration.component.d.ts +86 -0
  108. package/lib/components/general-configuration/landingpg-config/landingpg-config.component.d.ts +37 -0
  109. package/lib/components/general-configuration/timezone-configuration/timezone-configuration.component.d.ts +38 -0
  110. package/lib/components/grid-pagination/grid-pagination.component.d.ts +20 -0
  111. package/lib/components/ng-translation/ng-translation.component.d.ts +22 -0
  112. package/lib/components/no-service-my-access-pg/no-service-my-access-pg.component.d.ts +8 -0
  113. package/lib/components/notification-sidebar/notification-sidebar.component.d.ts +16 -0
  114. package/lib/components/side-popup/side-popup.component.d.ts +14 -0
  115. package/lib/components/user-mailbox/user-mailbox.component.d.ts +40 -0
  116. package/lib/components/user-sidebar/user-sidebar.component.d.ts +61 -0
  117. package/lib/components/viewpassword-popup/viewpassword-popup.component.d.ts +47 -0
  118. package/lib/model/data_model.d.ts +184 -0
  119. package/lib/pipes/custome-dateformat.pipe.d.ts +8 -0
  120. package/lib/pipes/date-diff.pipe.d.ts +9 -0
  121. package/lib/pipes/slice-to-two.pipe.d.ts +7 -0
  122. package/lib/services/EncrypDecryp_RSA.service.d.ts +15 -0
  123. package/lib/services/async-passwordcheck.service.d.ts +18 -0
  124. package/lib/services/cookie-storage-manager.service.d.ts +16 -0
  125. package/lib/services/encrpdata.service.d.ts +12 -0
  126. package/lib/services/encrydecrydata.service.d.ts +33 -0
  127. package/lib/services/event.service.d.ts +30 -0
  128. package/lib/services/http/http-common.service.d.ts +30 -0
  129. package/lib/services/http/http-general-config.service.d.ts +15 -0
  130. package/lib/services/rest-login-form.service.d.ts +39 -0
  131. package/lib/services/rest-signalr.service.d.ts +23 -0
  132. package/lib/services/storage.service.d.ts +11 -0
  133. package/lib/services/toast-msg.service.d.ts +21 -0
  134. package/lib/services/vapt-validation.service.d.ts +7 -0
  135. package/package.json +49 -0
  136. package/public-api.d.ts +8 -0
  137. package/src/assets/i18n/ar.json +83 -0
  138. package/src/assets/i18n/de.json +83 -0
  139. package/src/assets/i18n/en.json +83 -0
  140. package/src/assets/i18n/es.json +83 -0
  141. package/src/assets/i18n/fr.json +83 -0
  142. package/src/assets/i18n/hi.json +83 -0
  143. package/src/assets/i18n/ja.json +83 -0
  144. package/src/assets/i18n/ko.json +83 -0
  145. package/src/assets/images/APP019.svg +6 -0
  146. package/src/assets/images/APP020.svg +4 -0
  147. package/src/assets/images/APP021.svg +6 -0
  148. package/src/assets/images/APP022.svg +6 -0
  149. package/src/assets/images/APP023.svg +11 -0
  150. package/src/assets/images/APP024.svg +9 -0
  151. package/src/assets/images/APP025.svg +8 -0
  152. package/src/assets/images/APP026.svg +4 -0
  153. package/src/assets/images/APP027.svg +5 -0
  154. package/src/assets/images/APP028.svg +6 -0
  155. package/src/assets/images/APP029.svg +12 -0
  156. package/src/assets/images/APP030.svg +20 -0
  157. package/src/assets/images/APP031.svg +14 -0
  158. package/src/assets/images/APP032.svg +17 -0
  159. package/src/assets/images/Frame.svg +104 -0
  160. package/src/assets/images/apps-1.svg +22 -0
  161. package/src/assets/images/bell-icon.svg +3 -0
  162. package/src/assets/images/check_circle.svg +3 -0
  163. package/src/assets/images/close copy.svg +5 -0
  164. package/src/assets/images/close.svg +5 -0
  165. package/src/assets/images/copy-img.svg +3 -0
  166. package/src/assets/images/cross-search.svg +4 -0
  167. package/src/assets/images/domain_img.svg +3 -0
  168. package/src/assets/images/east.svg +3 -0
  169. package/src/assets/images/error.svg +3 -0
  170. package/src/assets/images/filepath.svg +8 -0
  171. package/src/assets/images/flag1.svg +3 -0
  172. package/src/assets/images/gc-mail.svg +3 -0
  173. package/src/assets/images/grey-arrow.svg +3 -0
  174. package/src/assets/images/info.svg +3 -0
  175. package/src/assets/images/local.svg +3 -0
  176. package/src/assets/images/lock-pass.svg +3 -0
  177. package/src/assets/images/lock1.svg +3 -0
  178. package/src/assets/images/login-bg/default_bg.svg +448 -0
  179. package/src/assets/images/login-bg/visibility.svg +3 -0
  180. package/src/assets/images/login-bg/visibility_off.svg +3 -0
  181. package/src/assets/images/logo.png +0 -0
  182. package/src/assets/images/logout.svg +3 -0
  183. package/src/assets/images/mail-icon.svg +3 -0
  184. package/src/assets/images/marker-pin.svg +4 -0
  185. package/src/assets/images/noti_ticket.svg +3 -0
  186. package/src/assets/images/pass-img.svg +3 -0
  187. package/src/assets/images/refresh-1.svg +3 -0
  188. package/src/assets/images/schedule.svg +1 -0
  189. package/src/assets/images/search-filter.svg +3 -0
  190. package/src/assets/images/search-icon.svg +3 -0
  191. package/src/assets/images/settings.svg +3 -0
  192. package/src/assets/images/successful.svg +10 -0
  193. package/src/assets/images/user-name.svg +3 -0
  194. package/src/assets/scss/_sidebar.scss +267 -0
  195. package/src/assets/scss/styles.scss +577 -0
@@ -0,0 +1,124 @@
1
+ import { Component } from '@angular/core';
2
+ import { FormGroup, FormBuilder, Validators } from '@angular/forms';
3
+ import { TranslateService } from '@ngx-translate/core';
4
+ import { Subject } from 'rxjs';
5
+ import { finalize, takeUntil } from 'rxjs/operators';
6
+ import { errorMsg } from '../../../model/data_model';
7
+ // import { EncrydecryRSAdataService } from '../../../services/EncrypDecryp_RSA.service';
8
+ import { CommonHeaderLibService } from '../../../common-header-lib.service';
9
+ import { HttpCommonService } from '../../../services/http/http-common.service';
10
+ import { EncrydecryRSAdataService } from '../../../services/EncrypDecryp_RSA.service';
11
+ import { ToastMsgService } from '../../../services/toast-msg.service';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "../../../common-header-lib.service";
14
+ import * as i2 from "@angular/forms";
15
+ import * as i3 from "../../../services/toast-msg.service";
16
+ import * as i4 from "@ngx-translate/core";
17
+ import * as i5 from "../../../services/EncrypDecryp_RSA.service";
18
+ import * as i6 from "../../../services/http/http-common.service";
19
+ import * as i7 from "@angular/common";
20
+ import * as i8 from "primeng/dropdown";
21
+ import * as i9 from "primeng/api";
22
+ import * as i10 from "primeng/button";
23
+ export class LandingpgConfigComponent {
24
+ constructor(libService, fb, msgService, translateService, _encryptRSAService, httpCommonService) {
25
+ this.libService = libService;
26
+ this.fb = fb;
27
+ this.msgService = msgService;
28
+ this.translateService = translateService;
29
+ this._encryptRSAService = _encryptRSAService;
30
+ this.httpCommonService = httpCommonService;
31
+ this.AppNameForm = new FormGroup({});
32
+ this.ListofApplicationNames = [];
33
+ this.isAppNameLoading = false;
34
+ this.isAppNameUpdate = false;
35
+ this.updateSuccess = errorMsg.LANDINGPGSUCCESS;
36
+ this.updateError = errorMsg.LANDINGPGERROR;
37
+ this.userConfiguredApp = {};
38
+ this.unsubscribeAPIEventListenerData = new Subject();
39
+ this.apiUrl = '';
40
+ }
41
+ ngAfterViewInit() {
42
+ this.getTranslateContent();
43
+ }
44
+ ngOnInit() {
45
+ this.getListofApplications();
46
+ this.getInitalizeForm();
47
+ }
48
+ getInitalizeForm() {
49
+ this.AppNameForm = this.fb.group({
50
+ userApp: [null, Validators.required],
51
+ });
52
+ }
53
+ //Method: Convert text one Lang. to another
54
+ getTranslateContent() {
55
+ this.translateService
56
+ .get([
57
+ 'Generic_lib.LandingPageSuccessMsg',
58
+ 'Generic_lib.LandingPageErrorMsg',
59
+ ])
60
+ .pipe(takeUntil(this.unsubscribeAPIEventListenerData))
61
+ .subscribe((trans) => {
62
+ this.updateSuccess = trans['Generic_lib.LandingPageSuccessMsg'];
63
+ this.updateError = trans['Generic_lib.LandingPageErrorMsg'];
64
+ });
65
+ }
66
+ /*Method : GET
67
+ Action : Get List of User Assign Application*/
68
+ getListofApplications() {
69
+ this.isAppNameLoading = true;
70
+ this.httpCommonService
71
+ .getUserAssignedApps()
72
+ .pipe(takeUntil(this.unsubscribeAPIEventListenerData), finalize(() => {
73
+ this.isAppNameLoading = false;
74
+ }))
75
+ .subscribe((response) => {
76
+ this.ListofApplicationNames = response;
77
+ this.userConfiguredApp = this.ListofApplicationNames.find((app) => app.isAssignedLanding);
78
+ this.setPostLoginModuleOption(this.userConfiguredApp);
79
+ });
80
+ }
81
+ /*Method : POST
82
+ Action : Used to Update User Preferred Landing App Name*/
83
+ getUpdateLandingPgPreference() {
84
+ const userApp = this.AppNameForm.get('userApp')?.value;
85
+ const moduleId = this._encryptRSAService.encryptViaRSA(userApp['appCode']);
86
+ this.showBtnLoadder(true);
87
+ this.httpCommonService
88
+ .setLandingPgPreference(moduleId)
89
+ .pipe(takeUntil(this.unsubscribeAPIEventListenerData), finalize(() => {
90
+ this.showBtnLoadder(false);
91
+ }))
92
+ .subscribe((result) => {
93
+ if (result) {
94
+ setTimeout(() => {
95
+ this.setPostLoginModuleOption(userApp);
96
+ }, 10);
97
+ this.msgService.success(this.updateSuccess);
98
+ this.AppNameForm.reset();
99
+ }
100
+ else {
101
+ this.msgService.error(this.updateError);
102
+ }
103
+ });
104
+ }
105
+ setPostLoginModuleOption(userConfiguredApp) {
106
+ if (userConfiguredApp) {
107
+ this.AppNameForm.get('userApp')?.setValue(userConfiguredApp);
108
+ }
109
+ }
110
+ showBtnLoadder(flag) {
111
+ this.isAppNameUpdate = flag;
112
+ }
113
+ ngOnDestroy() {
114
+ this.unsubscribeAPIEventListenerData.next(true);
115
+ this.unsubscribeAPIEventListenerData.complete();
116
+ }
117
+ }
118
+ LandingpgConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LandingpgConfigComponent, deps: [{ token: i1.CommonHeaderLibService }, { token: i2.FormBuilder }, { token: i3.ToastMsgService }, { token: i4.TranslateService }, { token: i5.EncrydecryRSAdataService }, { token: i6.HttpCommonService }], target: i0.ɵɵFactoryTarget.Component });
119
+ LandingpgConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: LandingpgConfigComponent, selector: "app-landingpg-config", ngImport: i0, template: "<div class=\"preference-container\">\r\n <form [formGroup]=\"AppNameForm\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">{{ \"Generic_lib.LandingPageConfig\" | translate }}</div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div class=\" timezone-dropdown\">\r\n <p-dropdown [options]=\"ListofApplicationNames\"\r\n placeholder='{{\"Generic_lib.LandingPagePlaceHolder\" | translate}}'\r\n filterPlaceholder='{{\"Generic_lib.Search\" | translate }}' formControlName=\"userApp\"\r\n [filter]=\"!isAppNameLoading ? true:false\" optionLabel=\"applicationName\" filterBy=\"applicationName\"\r\n [showClear]=\"false\" panelStyleClass=\"{'dropdown-loader': isAppNameLoading}\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <div *ngIf=\"isAppNameLoading\" class=\"dropdown-loader-container\">\r\n <i class=\"pi pi-spin pi-spinner\"></i>\r\n </div>\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n <ng-container *ngIf=\"AppNameForm.get('userApp')?.invalid && AppNameForm.get('userApp')?.touched\">\r\n <span class=\"error-msg mt-1\">{{'Generic_lib.LandingPageValidation' | translate}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"mt-2 update-btn\">\r\n <p-button class=\"submit-btn\" label=\"{{'Generic_lib.Update' | translate}}\" [disabled]=\"AppNameForm.invalid\"\r\n iconPos=\"right\" [loading]=\"isAppNameUpdate\" (onClick)=\"getUpdateLandingPgPreference()\"></p-button>\r\n </div>\r\n </form>\r\n</div>", styles: [".preference-container .path-title{font-size:20px;color:#292f4c}.preference-container .form-group{margin-bottom:15px}.preference-container .label-name{font-size:12px;color:#292f4c;line-height:26px;font-weight:600}.preference-container .cur-text{font-size:12px;color:#676879;line-height:26px;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "overlayDirection", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: i9.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i10.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LandingpgConfigComponent, decorators: [{
121
+ type: Component,
122
+ args: [{ selector: 'app-landingpg-config', template: "<div class=\"preference-container\">\r\n <form [formGroup]=\"AppNameForm\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">{{ \"Generic_lib.LandingPageConfig\" | translate }}</div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div class=\" timezone-dropdown\">\r\n <p-dropdown [options]=\"ListofApplicationNames\"\r\n placeholder='{{\"Generic_lib.LandingPagePlaceHolder\" | translate}}'\r\n filterPlaceholder='{{\"Generic_lib.Search\" | translate }}' formControlName=\"userApp\"\r\n [filter]=\"!isAppNameLoading ? true:false\" optionLabel=\"applicationName\" filterBy=\"applicationName\"\r\n [showClear]=\"false\" panelStyleClass=\"{'dropdown-loader': isAppNameLoading}\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <div *ngIf=\"isAppNameLoading\" class=\"dropdown-loader-container\">\r\n <i class=\"pi pi-spin pi-spinner\"></i>\r\n </div>\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n <ng-container *ngIf=\"AppNameForm.get('userApp')?.invalid && AppNameForm.get('userApp')?.touched\">\r\n <span class=\"error-msg mt-1\">{{'Generic_lib.LandingPageValidation' | translate}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"mt-2 update-btn\">\r\n <p-button class=\"submit-btn\" label=\"{{'Generic_lib.Update' | translate}}\" [disabled]=\"AppNameForm.invalid\"\r\n iconPos=\"right\" [loading]=\"isAppNameUpdate\" (onClick)=\"getUpdateLandingPgPreference()\"></p-button>\r\n </div>\r\n </form>\r\n</div>", styles: [".preference-container .path-title{font-size:20px;color:#292f4c}.preference-container .form-group{margin-bottom:15px}.preference-container .label-name{font-size:12px;color:#292f4c;line-height:26px;font-weight:600}.preference-container .cur-text{font-size:12px;color:#676879;line-height:26px;font-weight:600}\n"] }]
123
+ }], ctorParameters: function () { return [{ type: i1.CommonHeaderLibService }, { type: i2.FormBuilder }, { type: i3.ToastMsgService }, { type: i4.TranslateService }, { type: i5.EncrydecryRSAdataService }, { type: i6.HttpCommonService }]; } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZGluZ3BnLWNvbmZpZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZ2VuZXJhbC1jb25maWd1cmF0aW9uL2xhbmRpbmdwZy1jb25maWcvbGFuZGluZ3BnLWNvbmZpZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZ2VuZXJhbC1jb25maWd1cmF0aW9uL2xhbmRpbmdwZy1jb25maWcvbGFuZGluZ3BnLWNvbmZpZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckQseUZBQXlGO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT3RFLE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsWUFD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QUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsK0JBQStCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEQsQ0FBQzs7cUhBakhVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDREQ2pCckMsMHNEQWdDTTsyRkRmTyx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGVycm9yTXNnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZGF0YV9tb2RlbCc7XHJcbi8vIGltcG9ydCB7IEVuY3J5ZGVjcnlSU0FkYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL0VuY3J5cERlY3J5cF9SU0Euc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbkhlYWRlckxpYlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb21tb24taGVhZGVyLWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL2h0dHAtY29tbW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbmNyeWRlY3J5UlNBZGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9FbmNyeXBEZWNyeXBfUlNBLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2FzdE1zZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90b2FzdC1tc2cuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1sYW5kaW5ncGctY29uZmlnJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGFuZGluZ3BnLWNvbmZpZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGFuZGluZ3BnLWNvbmZpZy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGFuZGluZ3BnQ29uZmlnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgQXBwTmFtZUZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHB1YmxpYyBMaXN0b2ZBcHBsaWNhdGlvbk5hbWVzID0gW107XHJcbiAgcHVibGljIGlzQXBwTmFtZUxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNBcHBOYW1lVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHVwZGF0ZVN1Y2Nlc3M6IHN0cmluZyA9IGVycm9yTXNnLkxBTkRJTkdQR1NVQ0NFU1M7XHJcbiAgcHVibGljIHVwZGF0ZUVycm9yOiBzdHJpbmcgPSBlcnJvck1zZy5MQU5ESU5HUEdFUlJPUjtcclxuICBwdWJsaWMgdXNlckNvbmZpZ3VyZWRBcHA6IGFueSA9IHt9O1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBUElFdmVudExpc3RlbmVyRGF0YTogU3ViamVjdDxib29sZWFuPiA9XHJcbiAgICBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGFwaVVybDogc3RyaW5nID0gJyc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpYlNlcnZpY2U6IENvbW1vbkhlYWRlckxpYlNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbXNnU2VydmljZTogVG9hc3RNc2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZW5jcnlwdFJTQVNlcnZpY2U6IEVuY3J5ZGVjcnlSU0FkYXRhU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cENvbW1vblNlcnZpY2U6IEh0dHBDb21tb25TZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldFRyYW5zbGF0ZUNvbnRlbnQoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRMaXN0b2ZBcHBsaWNhdGlvbnMoKTtcclxuICAgIHRoaXMuZ2V0SW5pdGFsaXplRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5pdGFsaXplRm9ybSgpIHtcclxuICAgIHRoaXMuQXBwTmFtZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdXNlckFwcDogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL01ldGhvZDogQ29udmVydCB0ZXh0IG9uZSBMYW5nLiB0byBhbm90aGVyXHJcbiAgcHJpdmF0ZSBnZXRUcmFuc2xhdGVDb250ZW50KCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXHJcbiAgICAgIC5nZXQoW1xyXG4gICAgICAgICdHZW5lcmljX2xpYi5MYW5kaW5nUGFnZVN1Y2Nlc3NNc2cnLFxyXG4gICAgICAgICdHZW5lcmljX2xpYi5MYW5kaW5nUGFnZUVycm9yTXNnJyxcclxuICAgICAgXSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVBUElFdmVudExpc3RlbmVyRGF0YSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHRyYW5zKSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTdWNjZXNzID0gdHJhbnNbJ0dlbmVyaWNfbGliLkxhbmRpbmdQYWdlU3VjY2Vzc01zZyddO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRXJyb3IgPSB0cmFuc1snR2VuZXJpY19saWIuTGFuZGluZ1BhZ2VFcnJvck1zZyddO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qTWV0aG9kIDogR0VUXHJcbiAgIEFjdGlvbiA6IEdldCBMaXN0IG9mIFVzZXIgQXNzaWduIEFwcGxpY2F0aW9uKi9cclxuICBnZXRMaXN0b2ZBcHBsaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLmlzQXBwTmFtZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5odHRwQ29tbW9uU2VydmljZVxyXG4gICAgICAuZ2V0VXNlckFzc2lnbmVkQXBwcygpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlQVBJRXZlbnRMaXN0ZW5lckRhdGEpLFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNBcHBOYW1lTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuTGlzdG9mQXBwbGljYXRpb25OYW1lcyA9IHJlc3BvbnNlO1xyXG4gICAgICAgIHRoaXMudXNlckNvbmZpZ3VyZWRBcHAgPSB0aGlzLkxpc3RvZkFwcGxpY2F0aW9uTmFtZXMuZmluZChcclxuICAgICAgICAgIChhcHA6IGFueSkgPT4gYXBwLmlzQXNzaWduZWRMYW5kaW5nXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNldFBvc3RMb2dpbk1vZHVsZU9wdGlvbih0aGlzLnVzZXJDb25maWd1cmVkQXBwKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKk1ldGhvZCA6IFBPU1RcclxuICAgQWN0aW9uIDogVXNlZCB0byBVcGRhdGUgVXNlciBQcmVmZXJyZWQgTGFuZGluZyBBcHAgTmFtZSovXHJcbiAgcHJvdGVjdGVkIGdldFVwZGF0ZUxhbmRpbmdQZ1ByZWZlcmVuY2UoKSB7XHJcbiAgICBjb25zdCB1c2VyQXBwID0gdGhpcy5BcHBOYW1lRm9ybS5nZXQoJ3VzZXJBcHAnKT8udmFsdWU7XHJcbiAgICBjb25zdCBtb2R1bGVJZDogc3RyaW5nID0gdGhpcy5fZW5jcnlwdFJTQVNlcnZpY2UuZW5jcnlwdFZpYVJTQShcclxuICAgICAgdXNlckFwcFsnYXBwQ29kZSddXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuc2hvd0J0bkxvYWRkZXIodHJ1ZSk7XHJcbiAgICB0aGlzLmh0dHBDb21tb25TZXJ2aWNlXHJcbiAgICAgIC5zZXRMYW5kaW5nUGdQcmVmZXJlbmNlKG1vZHVsZUlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFQSUV2ZW50TGlzdGVuZXJEYXRhKSxcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dCdG5Mb2FkZGVyKGZhbHNlKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFBvc3RMb2dpbk1vZHVsZU9wdGlvbih1c2VyQXBwKTtcclxuICAgICAgICAgIH0sIDEwKTtcclxuICAgICAgICAgIHRoaXMubXNnU2VydmljZS5zdWNjZXNzKHRoaXMudXBkYXRlU3VjY2Vzcyk7XHJcbiAgICAgICAgICB0aGlzLkFwcE5hbWVGb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubXNnU2VydmljZS5lcnJvcih0aGlzLnVwZGF0ZUVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9zdExvZ2luTW9kdWxlT3B0aW9uKHVzZXJDb25maWd1cmVkQXBwOiBhbnkpIHtcclxuICAgIGlmICh1c2VyQ29uZmlndXJlZEFwcCkge1xyXG4gICAgICB0aGlzLkFwcE5hbWVGb3JtLmdldCgndXNlckFwcCcpPy5zZXRWYWx1ZSh1c2VyQ29uZmlndXJlZEFwcCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93QnRuTG9hZGRlcihmbGFnOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzQXBwTmFtZVVwZGF0ZSA9IGZsYWc7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVBUElFdmVudExpc3RlbmVyRGF0YS5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZUFQSUV2ZW50TGlzdGVuZXJEYXRhLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwcmVmZXJlbmNlLWNvbnRhaW5lclwiPlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiQXBwTmFtZUZvcm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLW5hbWVcIj57eyBcIkdlbmVyaWNfbGliLkxhbmRpbmdQYWdlQ29uZmlnXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFkb250YXJ5LWljb25cIj4qPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgdGltZXpvbmUtZHJvcGRvd25cIj5cclxuICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cIkxpc3RvZkFwcGxpY2F0aW9uTmFtZXNcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj0ne3tcIkdlbmVyaWNfbGliLkxhbmRpbmdQYWdlUGxhY2VIb2xkZXJcIiB8IHRyYW5zbGF0ZX19J1xyXG4gICAgICAgICAgICBmaWx0ZXJQbGFjZWhvbGRlcj0ne3tcIkdlbmVyaWNfbGliLlNlYXJjaFwiIHwgdHJhbnNsYXRlIH19JyBmb3JtQ29udHJvbE5hbWU9XCJ1c2VyQXBwXCJcclxuICAgICAgICAgICAgW2ZpbHRlcl09XCIhaXNBcHBOYW1lTG9hZGluZyA/IHRydWU6ZmFsc2VcIiBvcHRpb25MYWJlbD1cImFwcGxpY2F0aW9uTmFtZVwiIGZpbHRlckJ5PVwiYXBwbGljYXRpb25OYW1lXCJcclxuICAgICAgICAgICAgW3Nob3dDbGVhcl09XCJmYWxzZVwiIHBhbmVsU3R5bGVDbGFzcz1cInsnZHJvcGRvd24tbG9hZGVyJzogaXNBcHBOYW1lTG9hZGluZ31cIj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNBcHBOYW1lTG9hZGluZ1wiIGNsYXNzPVwiZHJvcGRvd24tbG9hZGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1zcGluIHBpLXNwaW5uZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3AtZHJvcGRvd24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkFwcE5hbWVGb3JtLmdldCgndXNlckFwcCcpPy5pbnZhbGlkICYmIEFwcE5hbWVGb3JtLmdldCgndXNlckFwcCcpPy50b3VjaGVkXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1zZyBtdC0xXCI+e3snR2VuZXJpY19saWIuTGFuZGluZ1BhZ2VWYWxpZGF0aW9uJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm10LTIgdXBkYXRlLWJ0blwiPlxyXG4gICAgICA8cC1idXR0b24gY2xhc3M9XCJzdWJtaXQtYnRuXCIgbGFiZWw9XCJ7eydHZW5lcmljX2xpYi5VcGRhdGUnIHwgdHJhbnNsYXRlfX1cIiBbZGlzYWJsZWRdPVwiQXBwTmFtZUZvcm0uaW52YWxpZFwiXHJcbiAgICAgICAgaWNvblBvcz1cInJpZ2h0XCIgW2xvYWRpbmddPVwiaXNBcHBOYW1lVXBkYXRlXCIgKG9uQ2xpY2spPVwiZ2V0VXBkYXRlTGFuZGluZ1BnUHJlZmVyZW5jZSgpXCI+PC9wLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+Il19
@@ -0,0 +1,138 @@
1
+ import { Component, EventEmitter, Output, } from '@angular/core';
2
+ import { FormBuilder, FormGroup, Validators } from '@angular/forms';
3
+ import { TranslateService } from '@ngx-translate/core';
4
+ import { Subject } from 'rxjs';
5
+ import { finalize, takeUntil } from 'rxjs/operators';
6
+ import { EventService } from '../../../services/event.service';
7
+ import { StorageService } from '../../../services/storage.service';
8
+ import { COOKIECONSTANT, errorMsg } from '../../../model/data_model';
9
+ import { HttpCommonService } from '../../../services/http/http-common.service';
10
+ import { ToastMsgService } from '../../../services/toast-msg.service';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/forms";
13
+ import * as i2 from "../../../services/toast-msg.service";
14
+ import * as i3 from "../../../services/storage.service";
15
+ import * as i4 from "../../../services/event.service";
16
+ import * as i5 from "@ngx-translate/core";
17
+ import * as i6 from "../../../services/http/http-common.service";
18
+ import * as i7 from "@angular/common";
19
+ import * as i8 from "primeng/dropdown";
20
+ import * as i9 from "primeng/api";
21
+ import * as i10 from "primeng/button";
22
+ export class TimezoneConfigurationComponent {
23
+ constructor(fb, msgService, _storageService, _eventService, translateService, httpCommonService) {
24
+ this.fb = fb;
25
+ this.msgService = msgService;
26
+ this._storageService = _storageService;
27
+ this._eventService = _eventService;
28
+ this.translateService = translateService;
29
+ this.httpCommonService = httpCommonService;
30
+ this.timeZoneForm = new FormGroup({}); //user Reset Password Form
31
+ this.ListOfTimeZones = [];
32
+ this.isTimezoneLoading = false;
33
+ this.isTimezoneupdate = false;
34
+ this.unsubscribeAPIEventListenerData = new Subject();
35
+ this.tzSuccessMsg = errorMsg.TIMEZONESUCCESS;
36
+ this.tzErrorMsg = errorMsg.TIMEZONERROR;
37
+ this.apiUrl = '';
38
+ this.closepopup = new EventEmitter();
39
+ }
40
+ ngAfterViewInit() {
41
+ this.getTranslateContent();
42
+ }
43
+ ngOnInit() {
44
+ //Get Initalize Form
45
+ // this.fetchUserDetails();
46
+ console.log('insisde timexzone cmp');
47
+ this.getListofTimeZones();
48
+ this.getInitalizeForm();
49
+ }
50
+ getInitalizeForm() {
51
+ this.timeZoneForm = this.fb.group({
52
+ timezone: [null, Validators.required], // Add Validators.required
53
+ });
54
+ }
55
+ //Method: Convert text one Lang. to another
56
+ getTranslateContent() {
57
+ this.translateService
58
+ .get(['Generic_lib.TimeZoneSuccessMsg', 'Generic_lib.TimeZoneErrorMsg'])
59
+ .pipe(takeUntil(this.unsubscribeAPIEventListenerData))
60
+ .subscribe((trans) => {
61
+ this.tzSuccessMsg = trans['Generic_lib.TimeZoneSuccessMsg'];
62
+ this.tzErrorMsg = trans['Generic_lib.TimeZoneErrorMsg'];
63
+ });
64
+ }
65
+ /*Method : GET
66
+ Action : Get List of Time Zone*/
67
+ getListofTimeZones() {
68
+ this.isTimezoneLoading = true;
69
+ this.httpCommonService
70
+ .getGlobalTimeZone()
71
+ .pipe(takeUntil(this.unsubscribeAPIEventListenerData), finalize(() => {
72
+ this.isTimezoneLoading = false;
73
+ }))
74
+ .subscribe((result) => {
75
+ if (result && result['timelist']) {
76
+ this.ListOfTimeZones = result['timelist'];
77
+ }
78
+ if (result && result['userTimeZone']) {
79
+ let userTz = result['userTimeZone'];
80
+ const selectedTZ = this.ListOfTimeZones.find((tz) => tz.id === userTz);
81
+ this.setTimezoneOptionValue(selectedTZ);
82
+ }
83
+ });
84
+ }
85
+ /*Method : POST
86
+ Action : Used to Update User Selected TimeZone*/
87
+ setUserTimeZone() {
88
+ const tz = this.timeZoneForm.get('timezone')?.value;
89
+ let tzName = tz['id'];
90
+ this.showBtnLoadder(true);
91
+ this.httpCommonService
92
+ .updateUserTimeZone(tzName)
93
+ .pipe(takeUntil(this.unsubscribeAPIEventListenerData), finalize(() => {
94
+ this.showBtnLoadder(false);
95
+ }))
96
+ .subscribe((result) => {
97
+ if (result) {
98
+ setTimeout(() => {
99
+ this.setTimezoneOptionValue(tz);
100
+ }, 10);
101
+ this.msgService.success(this.tzSuccessMsg);
102
+ this._storageService.removeData(COOKIECONSTANT.NEWUSER);
103
+ this._eventService.emitTimezone({
104
+ component: 'timezone',
105
+ usertimezoneAbbreviations: result,
106
+ userTimeZoneFullForm: '',
107
+ });
108
+ this.closepopup.emit(true);
109
+ this.timeZoneForm.reset();
110
+ }
111
+ else {
112
+ this.msgService.error(this.tzErrorMsg);
113
+ }
114
+ });
115
+ }
116
+ setTimezoneOptionValue(selectedTZ) {
117
+ if (selectedTZ) {
118
+ this.selectedTimeZone = selectedTZ;
119
+ this.timeZoneForm.get('timezone')?.setValue(this.selectedTimeZone);
120
+ }
121
+ }
122
+ showBtnLoadder(flag) {
123
+ this.isTimezoneupdate = flag;
124
+ }
125
+ ngOnDestroy() {
126
+ this.unsubscribeAPIEventListenerData.next(true);
127
+ this.unsubscribeAPIEventListenerData.complete();
128
+ }
129
+ }
130
+ TimezoneConfigurationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TimezoneConfigurationComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ToastMsgService }, { token: i3.StorageService }, { token: i4.EventService }, { token: i5.TranslateService }, { token: i6.HttpCommonService }], target: i0.ɵɵFactoryTarget.Component });
131
+ TimezoneConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TimezoneConfigurationComponent, selector: "app-timezone-configuration", outputs: { closepopup: "closepopup" }, ngImport: i0, template: "<div class=\"preference-container\">\r\n <form [formGroup]=\"timeZoneForm\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">{{\"Generic_lib.PreferredTimezone\" | translate }}</div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div class=\" timezone-dropdown\">\r\n <p-dropdown [options]=\"ListOfTimeZones\" filterPlaceholder='{{ \"Generic_lib.Search\" | translate }}'\r\n placeholder='{{\"Generic_lib.TimeZonePlaceHolder\" | translate}}' formControlName=\"timezone\"\r\n [(ngModel)]=\"selectedTimeZone\" [filter]=\"!isTimezoneLoading ? true:false\" optionLabel=\"displayName\"\r\n filterBy=\"displayName\" [showClear]=\"false\" panelStyleClass=\"{'dropdown-loader': isTimezoneLoading}\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <div *ngIf=\"isTimezoneLoading\" class=\"dropdown-loader-container\">\r\n <i class=\"pi pi-spin pi-spinner\"></i>\r\n </div>\r\n </ng-template></p-dropdown>\r\n </div>\r\n <ng-container *ngIf=\"\r\n timeZoneForm.get('timezone')?.invalid &&\r\n timeZoneForm.get('timezone')?.touched\r\n \">\r\n <span class=\"error-msg mt-1\">{{'Generic_lib.TimeZoneFieldValidation' | translate}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"mt-2 update-btn\">\r\n <p-button class=\"submit-btn\" label=\"{{'Generic_lib.Update' | translate}}\" [disabled]=\"timeZoneForm.invalid\"\r\n iconPos=\"right\" [loading]=\"isTimezoneupdate\" (onClick)=\"setUserTimeZone()\"></p-button>\r\n </div>\r\n </form>\r\n</div>", styles: [".preference-container .path-title{font-size:20px;color:#292f4c}.preference-container .form-group{margin-bottom:15px}.preference-container .label-name{font-size:12px;color:#292f4c;line-height:26px;font-weight:600}.preference-container .cur-text{font-size:12px;color:#676879;line-height:26px;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "overlayDirection", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: i9.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i10.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TimezoneConfigurationComponent, decorators: [{
133
+ type: Component,
134
+ args: [{ selector: 'app-timezone-configuration', template: "<div class=\"preference-container\">\r\n <form [formGroup]=\"timeZoneForm\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">{{\"Generic_lib.PreferredTimezone\" | translate }}</div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div class=\" timezone-dropdown\">\r\n <p-dropdown [options]=\"ListOfTimeZones\" filterPlaceholder='{{ \"Generic_lib.Search\" | translate }}'\r\n placeholder='{{\"Generic_lib.TimeZonePlaceHolder\" | translate}}' formControlName=\"timezone\"\r\n [(ngModel)]=\"selectedTimeZone\" [filter]=\"!isTimezoneLoading ? true:false\" optionLabel=\"displayName\"\r\n filterBy=\"displayName\" [showClear]=\"false\" panelStyleClass=\"{'dropdown-loader': isTimezoneLoading}\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <div *ngIf=\"isTimezoneLoading\" class=\"dropdown-loader-container\">\r\n <i class=\"pi pi-spin pi-spinner\"></i>\r\n </div>\r\n </ng-template></p-dropdown>\r\n </div>\r\n <ng-container *ngIf=\"\r\n timeZoneForm.get('timezone')?.invalid &&\r\n timeZoneForm.get('timezone')?.touched\r\n \">\r\n <span class=\"error-msg mt-1\">{{'Generic_lib.TimeZoneFieldValidation' | translate}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"mt-2 update-btn\">\r\n <p-button class=\"submit-btn\" label=\"{{'Generic_lib.Update' | translate}}\" [disabled]=\"timeZoneForm.invalid\"\r\n iconPos=\"right\" [loading]=\"isTimezoneupdate\" (onClick)=\"setUserTimeZone()\"></p-button>\r\n </div>\r\n </form>\r\n</div>", styles: [".preference-container .path-title{font-size:20px;color:#292f4c}.preference-container .form-group{margin-bottom:15px}.preference-container .label-name{font-size:12px;color:#292f4c;line-height:26px;font-weight:600}.preference-container .cur-text{font-size:12px;color:#676879;line-height:26px;font-weight:600}\n"] }]
135
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ToastMsgService }, { type: i3.StorageService }, { type: i4.EventService }, { type: i5.TranslateService }, { type: i6.HttpCommonService }]; }, propDecorators: { closepopup: [{
136
+ type: Output
137
+ }] } });
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXpvbmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZ2VuZXJhbC1jb25maWd1cmF0aW9uL3RpbWV6b25lLWNvbmZpZ3VyYXRpb24vdGltZXpvbmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZ2VuZXJhbC1jb25maWd1cmF0aW9uL3RpbWV6b25lLWNvbmZpZ3VyYXRpb24vdGltZXpvbmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFFWixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7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QkFBb0IsRUFBRSxFQUFFO2lCQUN6QixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDM0I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsVUFBZTtRQUNwQyxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFhO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQywrQkFBK0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsRCxDQUFDOzsySEE5SFUsOEJBQThCOytHQUE5Qiw4QkFBOEIseUdDdEIzQywrdURBaUNNOzJGRFhPLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSw0QkFBNEI7dVBBZXJCLFVBQVU7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmluYWxpemUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ09PS0lFQ09OU1RBTlQsIGVycm9yTXNnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZGF0YV9tb2RlbCc7XHJcbmltcG9ydCB7IEh0dHBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaHR0cC9odHRwLWNvbW1vbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RNc2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3QtbXNnLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGltZXpvbmUtY29uZmlndXJhdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWV6b25lLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RpbWV6b25lLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWV6b25lQ29uZmlndXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHVibGljIHNlbGVjdGVkVGltZVpvbmU6IGFueTtcclxuICBwdWJsaWMgdGltZVpvbmVGb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTsgLy91c2VyIFJlc2V0IFBhc3N3b3JkIEZvcm1cclxuICBwdWJsaWMgTGlzdE9mVGltZVpvbmVzID0gW107XHJcbiAgcHVibGljIGlzVGltZXpvbmVMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzVGltZXpvbmV1cGRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlQVBJRXZlbnRMaXN0ZW5lckRhdGE6IFN1YmplY3Q8Ym9vbGVhbj4gPVxyXG4gICAgbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwdWJsaWMgdHpTdWNjZXNzTXNnOiBzdHJpbmcgPSBlcnJvck1zZy5USU1FWk9ORVNVQ0NFU1M7XHJcbiAgcHVibGljIHR6RXJyb3JNc2c6IHN0cmluZyA9IGVycm9yTXNnLlRJTUVaT05FUlJPUjtcclxuICBhcGlVcmw6IHN0cmluZyA9ICcnO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xvc2Vwb3B1cCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbXNnU2VydmljZTogVG9hc3RNc2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh0dHBDb21tb25TZXJ2aWNlOiBIdHRwQ29tbW9uU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRUcmFuc2xhdGVDb250ZW50KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vR2V0IEluaXRhbGl6ZSBGb3JtXHJcbiAgICAvLyB0aGlzLmZldGNoVXNlckRldGFpbHMoKTtcclxuICAgIGNvbnNvbGUubG9nKCdpbnNpc2RlIHRpbWV4em9uZSBjbXAnKTtcclxuICAgIHRoaXMuZ2V0TGlzdG9mVGltZVpvbmVzKCk7XHJcbiAgICB0aGlzLmdldEluaXRhbGl6ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIGdldEluaXRhbGl6ZUZvcm0oKSB7XHJcbiAgICB0aGlzLnRpbWVab25lRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICB0aW1lem9uZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLCAvLyBBZGQgVmFsaWRhdG9ycy5yZXF1aXJlZFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL01ldGhvZDogQ29udmVydCB0ZXh0IG9uZSBMYW5nLiB0byBhbm90aGVyXHJcbiAgcHJpdmF0ZSBnZXRUcmFuc2xhdGVDb250ZW50KCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXHJcbiAgICAgIC5nZXQoWydHZW5lcmljX2xpYi5UaW1lWm9uZVN1Y2Nlc3NNc2cnLCAnR2VuZXJpY19saWIuVGltZVpvbmVFcnJvck1zZyddKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFQSUV2ZW50TGlzdGVuZXJEYXRhKSlcclxuICAgICAgLnN1YnNjcmliZSgodHJhbnMpID0+IHtcclxuICAgICAgICB0aGlzLnR6U3VjY2Vzc01zZyA9IHRyYW5zWydHZW5lcmljX2xpYi5UaW1lWm9uZVN1Y2Nlc3NNc2cnXTtcclxuICAgICAgICB0aGlzLnR6RXJyb3JNc2cgPSB0cmFuc1snR2VuZXJpY19saWIuVGltZVpvbmVFcnJvck1zZyddO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qTWV0aG9kIDogR0VUXHJcbiAgIEFjdGlvbiA6IEdldCBMaXN0IG9mIFRpbWUgWm9uZSovXHJcbiAgZ2V0TGlzdG9mVGltZVpvbmVzKCkge1xyXG4gICAgdGhpcy5pc1RpbWV6b25lTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmh0dHBDb21tb25TZXJ2aWNlXHJcbiAgICAgIC5nZXRHbG9iYWxUaW1lWm9uZSgpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlQVBJRXZlbnRMaXN0ZW5lckRhdGEpLFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNUaW1lem9uZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Wyd0aW1lbGlzdCddKSB7XHJcbiAgICAgICAgICB0aGlzLkxpc3RPZlRpbWVab25lcyA9IHJlc3VsdFsndGltZWxpc3QnXSBhcyBuZXZlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHRbJ3VzZXJUaW1lWm9uZSddKSB7XHJcbiAgICAgICAgICBsZXQgdXNlclR6ID0gcmVzdWx0Wyd1c2VyVGltZVpvbmUnXTtcclxuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkVFogPSB0aGlzLkxpc3RPZlRpbWVab25lcy5maW5kKFxyXG4gICAgICAgICAgICAodHo6IGFueSkgPT4gdHouaWQgPT09IHVzZXJUelxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuc2V0VGltZXpvbmVPcHRpb25WYWx1ZShzZWxlY3RlZFRaKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLypNZXRob2QgOiBQT1NUXHJcbiAgIEFjdGlvbiA6IFVzZWQgdG8gVXBkYXRlIFVzZXIgU2VsZWN0ZWQgVGltZVpvbmUqL1xyXG4gIHNldFVzZXJUaW1lWm9uZSgpIHtcclxuICAgIGNvbnN0IHR6ID0gdGhpcy50aW1lWm9uZUZvcm0uZ2V0KCd0aW1lem9uZScpPy52YWx1ZTtcclxuICAgIGxldCB0ek5hbWUgPSB0elsnaWQnXTtcclxuXHJcbiAgICB0aGlzLnNob3dCdG5Mb2FkZGVyKHRydWUpO1xyXG4gICAgdGhpcy5odHRwQ29tbW9uU2VydmljZVxyXG4gICAgICAudXBkYXRlVXNlclRpbWVab25lKHR6TmFtZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVBUElFdmVudExpc3RlbmVyRGF0YSksXHJcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93QnRuTG9hZGRlcihmYWxzZSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFRpbWV6b25lT3B0aW9uVmFsdWUodHopO1xyXG4gICAgICAgICAgfSwgMTApO1xyXG4gICAgICAgICAgdGhpcy5tc2dTZXJ2aWNlLnN1Y2Nlc3ModGhpcy50elN1Y2Nlc3NNc2cpO1xyXG4gICAgICAgICAgdGhpcy5fc3RvcmFnZVNlcnZpY2UucmVtb3ZlRGF0YShDT09LSUVDT05TVEFOVC5ORVdVU0VSKTtcclxuICAgICAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lbWl0VGltZXpvbmUoe1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6ICd0aW1lem9uZScsXHJcbiAgICAgICAgICAgIHVzZXJ0aW1lem9uZUFiYnJldmlhdGlvbnM6IHJlc3VsdCxcclxuICAgICAgICAgICAgdXNlclRpbWVab25lRnVsbEZvcm06ICcnLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlcG9wdXAuZW1pdCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMudGltZVpvbmVGb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubXNnU2VydmljZS5lcnJvcih0aGlzLnR6RXJyb3JNc2cpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRUaW1lem9uZU9wdGlvblZhbHVlKHNlbGVjdGVkVFo6IGFueSkge1xyXG4gICAgaWYgKHNlbGVjdGVkVFopIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRpbWVab25lID0gc2VsZWN0ZWRUWjtcclxuICAgICAgdGhpcy50aW1lWm9uZUZvcm0uZ2V0KCd0aW1lem9uZScpPy5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkVGltZVpvbmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hvd0J0bkxvYWRkZXIoZmxhZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc1RpbWV6b25ldXBkYXRlID0gZmxhZztcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZUFQSUV2ZW50TGlzdGVuZXJEYXRhLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlQVBJRXZlbnRMaXN0ZW5lckRhdGEuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInByZWZlcmVuY2UtY29udGFpbmVyXCI+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJ0aW1lWm9uZUZvcm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLW5hbWVcIj57e1wiR2VuZXJpY19saWIuUHJlZmVycmVkVGltZXpvbmVcIiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWRvbnRhcnktaWNvblwiPio8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIiB0aW1lem9uZS1kcm9wZG93blwiPlxyXG4gICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiTGlzdE9mVGltZVpvbmVzXCIgZmlsdGVyUGxhY2Vob2xkZXI9J3t7IFwiR2VuZXJpY19saWIuU2VhcmNoXCIgfCB0cmFuc2xhdGUgfX0nXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSd7e1wiR2VuZXJpY19saWIuVGltZVpvbmVQbGFjZUhvbGRlclwiIHwgdHJhbnNsYXRlfX0nIGZvcm1Db250cm9sTmFtZT1cInRpbWV6b25lXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFRpbWVab25lXCIgW2ZpbHRlcl09XCIhaXNUaW1lem9uZUxvYWRpbmcgPyB0cnVlOmZhbHNlXCIgb3B0aW9uTGFiZWw9XCJkaXNwbGF5TmFtZVwiXHJcbiAgICAgICAgICAgIGZpbHRlckJ5PVwiZGlzcGxheU5hbWVcIiBbc2hvd0NsZWFyXT1cImZhbHNlXCIgcGFuZWxTdHlsZUNsYXNzPVwieydkcm9wZG93bi1sb2FkZXInOiBpc1RpbWV6b25lTG9hZGluZ31cIj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNUaW1lem9uZUxvYWRpbmdcIiBjbGFzcz1cImRyb3Bkb3duLWxvYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktc3BpbiBwaS1zcGlubmVyXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPjwvcC1kcm9wZG93bj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgdGltZVpvbmVGb3JtLmdldCgndGltZXpvbmUnKT8uaW52YWxpZCAmJlxyXG4gICAgICAgICAgICAgIHRpbWVab25lRm9ybS5nZXQoJ3RpbWV6b25lJyk/LnRvdWNoZWRcclxuICAgICAgICAgICAgXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1zZyBtdC0xXCI+e3snR2VuZXJpY19saWIuVGltZVpvbmVGaWVsZFZhbGlkYXRpb24nIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXQtMiB1cGRhdGUtYnRuXCI+XHJcbiAgICAgIDxwLWJ1dHRvbiBjbGFzcz1cInN1Ym1pdC1idG5cIiBsYWJlbD1cInt7J0dlbmVyaWNfbGliLlVwZGF0ZScgfCB0cmFuc2xhdGV9fVwiIFtkaXNhYmxlZF09XCJ0aW1lWm9uZUZvcm0uaW52YWxpZFwiXHJcbiAgICAgICAgaWNvblBvcz1cInJpZ2h0XCIgW2xvYWRpbmddPVwiaXNUaW1lem9uZXVwZGF0ZVwiIChvbkNsaWNrKT1cInNldFVzZXJUaW1lWm9uZSgpXCI+PC9wLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+Il19
@@ -0,0 +1,39 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { GlobalConstants } from '../../model/data_model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "primeng/paginator";
5
+ export class GridPaginationComponent {
6
+ constructor() {
7
+ this.first = 0;
8
+ this.currentPgNo = 0;
9
+ this.rows = GlobalConstants.PAGEROW;
10
+ this.totalRecords = 0;
11
+ this.onPgChange = new EventEmitter();
12
+ }
13
+ onPageChange(event) {
14
+ console.log("pagechange event", event);
15
+ event['page'] = event['page'] + 1; // By default pg index 0 so add +1
16
+ this.currentPgNo = event.page;
17
+ this.rows = event.rows;
18
+ //Emit Page No and PageRow Size
19
+ this.onPgChange.emit({
20
+ currentPgNo: this.currentPgNo,
21
+ perPgRows: this.rows,
22
+ });
23
+ }
24
+ }
25
+ GridPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GridPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
+ GridPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: GridPaginationComponent, selector: "app-grid-pagination", inputs: { currentPgNo: "currentPgNo", rows: "rows", totalRecords: "totalRecords" }, outputs: { onPgChange: "onPgChange" }, ngImport: i0, template: "<p-paginator (onPageChange)=\"onPageChange($event)\" [first]=\"first\" [rows]=\"rows\" [totalRecords]=\"totalRecords\"\r\n [showFirstLastIcon]=\"true\" [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{first} - {last} of {totalRecords}\" [rowsPerPageOptions]=\"[10, 50, 100]\"></p-paginator>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "templateLeft", "templateRight", "dropdownAppendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "showPageLinks", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GridPaginationComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'app-grid-pagination', template: "<p-paginator (onPageChange)=\"onPageChange($event)\" [first]=\"first\" [rows]=\"rows\" [totalRecords]=\"totalRecords\"\r\n [showFirstLastIcon]=\"true\" [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{first} - {last} of {totalRecords}\" [rowsPerPageOptions]=\"[10, 50, 100]\"></p-paginator>\r\n" }]
30
+ }], ctorParameters: function () { return []; }, propDecorators: { currentPgNo: [{
31
+ type: Input
32
+ }], rows: [{
33
+ type: Input
34
+ }], totalRecords: [{
35
+ type: Input
36
+ }], onPgChange: [{
37
+ type: Output
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXItbGliL3NyYy9saWIvY29tcG9uZW50cy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXItbGliL3NyYy9saWIvY29tcG9uZW50cy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFhekQsTUFBTSxPQUFPLHVCQUF1QjtJQU9sQztRQU5BLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDVCxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixTQUFJLEdBQVcsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUN2QyxpQkFBWSxHQUFTLENBQUMsQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU0sQ0FBQztJQUU5QixDQUFDO0lBRWpCLFlBQVksQ0FBQyxLQUFnQjtRQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3RDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsa0NBQWtDO1FBQ3JFLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBbkJVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHNMQ2RwQywyVEFHQTsyRkRXYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOzBFQU10QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbENvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGFfbW9kZWwnO1xyXG5pbnRlcmZhY2UgUGFnZUV2ZW50IHtcclxuICBmaXJzdDogbnVtYmVyO1xyXG4gIHJvd3M6IG51bWJlcjtcclxuICBwYWdlOiBudW1iZXI7XHJcbiAgcGFnZUNvdW50OiBudW1iZXI7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWdyaWQtcGFnaW5hdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcmlkUGFnaW5hdGlvbkNvbXBvbmVudHtcclxuICBmaXJzdDogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBjdXJyZW50UGdObzogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSByb3dzOiBudW1iZXIgPSBHbG9iYWxDb25zdGFudHMuUEFHRVJPVztcclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHM6IG51bWJlcj0wO1xyXG4gIEBPdXRwdXQoKSBvblBnQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7fT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKGV2ZW50OiBQYWdlRXZlbnQpIHtcclxuICAgIGNvbnNvbGUubG9nKFwicGFnZWNoYW5nZSBldmVudFwiLCBldmVudClcclxuICAgIGV2ZW50WydwYWdlJ10gPSBldmVudFsncGFnZSddICsgMTsgLy8gQnkgZGVmYXVsdCBwZyBpbmRleCAwIHNvIGFkZCArMVxyXG4gICAgdGhpcy5jdXJyZW50UGdObyA9IGV2ZW50LnBhZ2U7XHJcbiAgICB0aGlzLnJvd3MgPSBldmVudC5yb3dzO1xyXG4gICAgLy9FbWl0IFBhZ2UgTm8gYW5kIFBhZ2VSb3cgU2l6ZVxyXG4gICAgdGhpcy5vblBnQ2hhbmdlLmVtaXQoe1xyXG4gICAgICBjdXJyZW50UGdObzogdGhpcy5jdXJyZW50UGdObyxcclxuICAgICAgcGVyUGdSb3dzOiB0aGlzLnJvd3MsXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPHAtcGFnaW5hdG9yIChvblBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIiBbZmlyc3RdPVwiZmlyc3RcIiBbcm93c109XCJyb3dzXCIgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gIFtzaG93Rmlyc3RMYXN0SWNvbl09XCJ0cnVlXCIgW3Nob3dDdXJyZW50UGFnZVJlcG9ydF09XCJ0cnVlXCJcclxuICBjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwie2ZpcnN0fSAtIHtsYXN0fSBvZiB7dG90YWxSZWNvcmRzfVwiIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzEwLCA1MCwgMTAwXVwiPjwvcC1wYWdpbmF0b3I+XHJcbiJdfQ==
@@ -0,0 +1,65 @@
1
+ import { Component } from '@angular/core';
2
+ import { COOKIECONSTANT, GlobalConstants } from '../../model/data_model';
3
+ import { TranslateService } from '@ngx-translate/core';
4
+ import { StorageService } from '../../services/storage.service';
5
+ import { CookieService } from 'ngx-cookie-service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ngx-translate/core";
8
+ import * as i2 from "../../services/storage.service";
9
+ import * as i3 from "ngx-cookie-service";
10
+ import * as i4 from "@angular/forms";
11
+ import * as i5 from "primeng/dropdown";
12
+ export class NgTranslationComponent {
13
+ constructor(_translate, _localstorage, cookieService) {
14
+ this._translate = _translate;
15
+ this._localstorage = _localstorage;
16
+ this.cookieService = cookieService;
17
+ // @Output('langChange') langChange = new EventEmitter<any>();
18
+ this.languages = GlobalConstants.USERLANGUAGES;
19
+ this.selectedLang = {};
20
+ }
21
+ ngOnInit() {
22
+ console.log('Init ng translate');
23
+ this.setDefaultLanguage();
24
+ }
25
+ setDefaultLanguage() {
26
+ // 1. Check if user has selected a language before
27
+ const saved = this._localstorage.getData(COOKIECONSTANT.USERLANG);
28
+ if (saved) {
29
+ try {
30
+ this.selectedLang = JSON.parse(saved);
31
+ }
32
+ catch (e) {
33
+ // If corrupted JSON, fallback to default
34
+ this.selectedLang = GlobalConstants.DEFAULTLANG;
35
+ this.saveUserLanguage(this.selectedLang);
36
+ }
37
+ }
38
+ else {
39
+ // 2. First time → set default
40
+ this.selectedLang = GlobalConstants.DEFAULTLANG;
41
+ this.saveUserLanguage(this.selectedLang);
42
+ }
43
+ // 3. Apply language
44
+ this._translate.use(this.selectedLang.langKey);
45
+ }
46
+ //* On Language Changes
47
+ selectLang(event) {
48
+ console.log('LangList:', this.languages);
49
+ this.selectedLang = event?.value;
50
+ console.log('selectLang:', this.selectedLang);
51
+ this._translate.use(this.selectedLang['langKey']);
52
+ this.saveUserLanguage(this.selectedLang);
53
+ // this.langChange.emit(this.selectedLang);
54
+ }
55
+ saveUserLanguage(lang) {
56
+ this._localstorage.saveData(COOKIECONSTANT.USERLANG, JSON.stringify(lang));
57
+ }
58
+ }
59
+ NgTranslationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgTranslationComponent, deps: [{ token: i1.TranslateService }, { token: i2.StorageService }, { token: i3.CookieService }], target: i0.ɵɵFactoryTarget.Component });
60
+ NgTranslationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NgTranslationComponent, selector: "ng-translation", ngImport: i0, template: "<p-dropdown [options]=\"languages\" optionLabel=\"langName\" placeholder='{{ \"Generic_lib.SelectLanguage\" | translate }}'\r\n (onChange)=\"selectLang($event)\" [filter]=\"true\" filterBy=\"langName\"\r\n filterPlaceholder='{{ \"Generic_lib.Search\" | translate }}' [showClear]=\"false\"\r\n [(ngModel)]=\"selectedLang\"></p-dropdown>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i5.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "overlayDirection", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgTranslationComponent, decorators: [{
62
+ type: Component,
63
+ args: [{ selector: 'ng-translation', template: "<p-dropdown [options]=\"languages\" optionLabel=\"langName\" placeholder='{{ \"Generic_lib.SelectLanguage\" | translate }}'\r\n (onChange)=\"selectLang($event)\" [filter]=\"true\" filterBy=\"langName\"\r\n filterPlaceholder='{{ \"Generic_lib.Search\" | translate }}' [showClear]=\"false\"\r\n [(ngModel)]=\"selectedLang\"></p-dropdown>\r\n" }]
64
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.StorageService }, { type: i3.CookieService }]; } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdHJhbnNsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uLWhlYWRlci1saWIvc3JjL2xpYi9jb21wb25lbnRzL25nLXRyYW5zbGF0aW9uL25nLXRyYW5zbGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXItbGliL3NyYy9saWIvY29tcG9uZW50cy9uZy10cmFuc2xhdGlvbi9uZy10cmFuc2xhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFPbkQsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQyxZQUNTLFVBQTRCLEVBQ2xCLGFBQTZCLEVBQzdCLGFBQTRCO1FBRnRDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVIvQyw4REFBOEQ7UUFFdkQsY0FBUyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUM7UUFDMUMsaUJBQVksR0FBUSxFQUFFLENBQUM7SUFNM0IsQ0FBQztJQUVKLFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixrREFBa0Q7UUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxFLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSTtnQkFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdkM7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVix5Q0FBeUM7Z0JBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUMxQztTQUNGO2FBQU07WUFDTCw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDO1lBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDMUM7UUFFRCxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUM7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pDLDJDQUEyQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBUztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDOzttSEFwRFUsc0JBQXNCO3VHQUF0QixzQkFBc0Isc0RDWG5DLHdWQUlBOzJGRE9hLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ09PS0lFQ09OU1RBTlQsIEdsb2JhbENvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGFfbW9kZWwnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25nLXRyYW5zbGF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmctdHJhbnNsYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25nLXRyYW5zbGF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ1RyYW5zbGF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvLyBAT3V0cHV0KCdsYW5nQ2hhbmdlJykgbGFuZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwdWJsaWMgbGFuZ3VhZ2VzID0gR2xvYmFsQ29uc3RhbnRzLlVTRVJMQU5HVUFHRVM7XHJcbiAgcHVibGljIHNlbGVjdGVkTGFuZzogYW55ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9sb2NhbHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZygnSW5pdCBuZyB0cmFuc2xhdGUnKTtcclxuICAgIHRoaXMuc2V0RGVmYXVsdExhbmd1YWdlKCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0TGFuZ3VhZ2UoKSB7XHJcbiAgICAvLyAxLiBDaGVjayBpZiB1c2VyIGhhcyBzZWxlY3RlZCBhIGxhbmd1YWdlIGJlZm9yZVxyXG4gICAgY29uc3Qgc2F2ZWQgPSB0aGlzLl9sb2NhbHN0b3JhZ2UuZ2V0RGF0YShDT09LSUVDT05TVEFOVC5VU0VSTEFORyk7XHJcblxyXG4gICAgaWYgKHNhdmVkKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZExhbmcgPSBKU09OLnBhcnNlKHNhdmVkKTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIC8vIElmIGNvcnJ1cHRlZCBKU09OLCBmYWxsYmFjayB0byBkZWZhdWx0XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZExhbmcgPSBHbG9iYWxDb25zdGFudHMuREVGQVVMVExBTkc7XHJcbiAgICAgICAgdGhpcy5zYXZlVXNlckxhbmd1YWdlKHRoaXMuc2VsZWN0ZWRMYW5nKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gMi4gRmlyc3QgdGltZSDihpIgc2V0IGRlZmF1bHRcclxuICAgICAgdGhpcy5zZWxlY3RlZExhbmcgPSBHbG9iYWxDb25zdGFudHMuREVGQVVMVExBTkc7XHJcbiAgICAgIHRoaXMuc2F2ZVVzZXJMYW5ndWFnZSh0aGlzLnNlbGVjdGVkTGFuZyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMy4gQXBwbHkgbGFuZ3VhZ2VcclxuICAgIHRoaXMuX3RyYW5zbGF0ZS51c2UodGhpcy5zZWxlY3RlZExhbmcubGFuZ0tleSk7XHJcbiAgfVxyXG5cclxuICAvLyogT24gTGFuZ3VhZ2UgQ2hhbmdlc1xyXG4gIHNlbGVjdExhbmcoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ0xhbmdMaXN0OicsIHRoaXMubGFuZ3VhZ2VzKTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkTGFuZyA9IGV2ZW50Py52YWx1ZTtcclxuICAgIGNvbnNvbGUubG9nKCdzZWxlY3RMYW5nOicsIHRoaXMuc2VsZWN0ZWRMYW5nKTtcclxuICAgIHRoaXMuX3RyYW5zbGF0ZS51c2UodGhpcy5zZWxlY3RlZExhbmdbJ2xhbmdLZXknXSk7XHJcbiAgICB0aGlzLnNhdmVVc2VyTGFuZ3VhZ2UodGhpcy5zZWxlY3RlZExhbmcpO1xyXG4gICAgLy8gdGhpcy5sYW5nQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZExhbmcpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZVVzZXJMYW5ndWFnZShsYW5nOiBhbnkpIHtcclxuICAgIHRoaXMuX2xvY2Fsc3RvcmFnZS5zYXZlRGF0YShDT09LSUVDT05TVEFOVC5VU0VSTEFORywgSlNPTi5zdHJpbmdpZnkobGFuZykpO1xyXG4gIH1cclxufVxyXG4iLCI8cC1kcm9wZG93biBbb3B0aW9uc109XCJsYW5ndWFnZXNcIiBvcHRpb25MYWJlbD1cImxhbmdOYW1lXCIgcGxhY2Vob2xkZXI9J3t7IFwiR2VuZXJpY19saWIuU2VsZWN0TGFuZ3VhZ2VcIiB8IHRyYW5zbGF0ZSB9fSdcclxuICAob25DaGFuZ2UpPVwic2VsZWN0TGFuZygkZXZlbnQpXCIgW2ZpbHRlcl09XCJ0cnVlXCIgZmlsdGVyQnk9XCJsYW5nTmFtZVwiXHJcbiAgZmlsdGVyUGxhY2Vob2xkZXI9J3t7IFwiR2VuZXJpY19saWIuU2VhcmNoXCIgfCB0cmFuc2xhdGUgfX0nIFtzaG93Q2xlYXJdPVwiZmFsc2VcIlxyXG4gIFsobmdNb2RlbCldPVwic2VsZWN0ZWRMYW5nXCI+PC9wLWRyb3Bkb3duPlxyXG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class NoServiceMyAccessPgComponent {
4
+ constructor() {
5
+ this.heading = "We couldn't find any service matching your search within the chosen LOB. Try refining your keywords or choosing a different LOB for better results"; //'Generic_lib.NoSearchResult';
6
+ this.subHeading = '';
7
+ }
8
+ }
9
+ NoServiceMyAccessPgComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NoServiceMyAccessPgComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ NoServiceMyAccessPgComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NoServiceMyAccessPgComponent, selector: "app-no-service-my-access-pg", inputs: { heading: "heading", subHeading: "subHeading" }, ngImport: i0, template: "<div class=\"no-service-content mt-5\">\r\n <div class=\"text-center\">\r\n <img src=\"assets/common-header-lib/images/Frame.svg\" class=\"frame-img w-75\" alt=\"Icon\">\r\n </div>\r\n <div class=\"no-service-description\">\r\n <!-- <div class=\"no-data-text\">{{heading | translate}}</div> -->\r\n <div class=\"no-data-text\">{{heading }}</div>\r\n <p>{{subHeading}}</p>\r\n </div>\r\n</div>", styles: [".no-service-content{display:flex;justify-content:center;align-items:center;flex-direction:column}@media screen and (min-width: 1744px){.no-service-content{margin-top:200px!important}}.no-service-description{width:55%;text-align:center;margin-top:16px}.no-data-text{font-size:14px;color:#212121;font-weight:400}\n"] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NoServiceMyAccessPgComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'app-no-service-my-access-pg', template: "<div class=\"no-service-content mt-5\">\r\n <div class=\"text-center\">\r\n <img src=\"assets/common-header-lib/images/Frame.svg\" class=\"frame-img w-75\" alt=\"Icon\">\r\n </div>\r\n <div class=\"no-service-description\">\r\n <!-- <div class=\"no-data-text\">{{heading | translate}}</div> -->\r\n <div class=\"no-data-text\">{{heading }}</div>\r\n <p>{{subHeading}}</p>\r\n </div>\r\n</div>", styles: [".no-service-content{display:flex;justify-content:center;align-items:center;flex-direction:column}@media screen and (min-width: 1744px){.no-service-content{margin-top:200px!important}}.no-service-description{width:55%;text-align:center;margin-top:16px}.no-data-text{font-size:14px;color:#212121;font-weight:400}\n"] }]
14
+ }], ctorParameters: function () { return []; }, propDecorators: { heading: [{
15
+ type: Input
16
+ }], subHeading: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tc2VydmljZS1teS1hY2Nlc3MtcGcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uLWhlYWRlci1saWIvc3JjL2xpYi9jb21wb25lbnRzL25vLXNlcnZpY2UtbXktYWNjZXNzLXBnL25vLXNlcnZpY2UtbXktYWNjZXNzLXBnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXItbGliL3NyYy9saWIvY29tcG9uZW50cy9uby1zZXJ2aWNlLW15LWFjY2Vzcy1wZy9uby1zZXJ2aWNlLW15LWFjY2Vzcy1wZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFPekQsTUFBTSxPQUFPLDRCQUE0QjtJQUt2QztRQUpTLFlBQU8sR0FDZCxvSkFBb0osQ0FBQyxDQUFDLCtCQUErQjtRQUM5SyxlQUFVLEdBQVcsRUFBRSxDQUFDO0lBRWxCLENBQUM7O3lIQUxMLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLDZIQ1B6QywwWkFTTTsyRkRGTyw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsNkJBQTZCOzBFQUs5QixPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbm8tc2VydmljZS1teS1hY2Nlc3MtcGcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uby1zZXJ2aWNlLW15LWFjY2Vzcy1wZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbm8tc2VydmljZS1teS1hY2Nlc3MtcGcuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vU2VydmljZU15QWNjZXNzUGdDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGhlYWRpbmc6IHN0cmluZyA9XHJcbiAgICBcIldlIGNvdWxkbid0IGZpbmQgYW55IHNlcnZpY2UgbWF0Y2hpbmcgeW91ciBzZWFyY2ggd2l0aGluIHRoZSBjaG9zZW4gTE9CLiBUcnkgcmVmaW5pbmcgeW91ciBrZXl3b3JkcyBvciBjaG9vc2luZyBhIGRpZmZlcmVudCBMT0IgZm9yIGJldHRlciByZXN1bHRzXCI7IC8vJ0dlbmVyaWNfbGliLk5vU2VhcmNoUmVzdWx0JztcclxuICBASW5wdXQoKSBzdWJIZWFkaW5nOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJuby1zZXJ2aWNlLWNvbnRlbnQgbXQtNVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgPGltZyBzcmM9XCJhc3NldHMvY29tbW9uLWhlYWRlci1saWIvaW1hZ2VzL0ZyYW1lLnN2Z1wiIGNsYXNzPVwiZnJhbWUtaW1nIHctNzVcIiBhbHQ9XCJJY29uXCI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm5vLXNlcnZpY2UtZGVzY3JpcHRpb25cIj5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cIm5vLWRhdGEtdGV4dFwiPnt7aGVhZGluZyB8IHRyYW5zbGF0ZX19PC9kaXY+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5vLWRhdGEtdGV4dFwiPnt7aGVhZGluZyB9fTwvZGl2PlxyXG4gICAgPHA+e3tzdWJIZWFkaW5nfX08L3A+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "primeng/skeleton";
5
+ import * as i3 from "../no-service-my-access-pg/no-service-my-access-pg.component";
6
+ export class NotificationSidebarComponent {
7
+ constructor() {
8
+ this.userNotificationCount = '';
9
+ this.userNotificationCountObj = {};
10
+ this.eventwiseNotificationCount = [];
11
+ this.refreshNotification = new EventEmitter();
12
+ this.isErrorOccured = false;
13
+ this.notificationLoadder = true;
14
+ this.NoServiceMsgText = 'Generic_lib.CommonError';
15
+ this.repeatLoader = Array(9).fill(0);
16
+ }
17
+ //Method: Call APi to Fetch New Notification Count
18
+ getEventwiseNotification() {
19
+ this.refreshNotification.emit(true);
20
+ }
21
+ }
22
+ NotificationSidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NotificationSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ NotificationSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NotificationSidebarComponent, selector: "app-notification-sidebar", inputs: { userNotificationCount: "userNotificationCount", userNotificationCountObj: "userNotificationCountObj", eventwiseNotificationCount: "eventwiseNotificationCount", isErrorOccured: "isErrorOccured", notificationLoadder: "notificationLoadder" }, outputs: { refreshNotification: "refreshNotification" }, ngImport: i0, template: "<div class=\"modal fade common-alert-modal\" id=\"Notify_SidebarModal\" tabindex=\"-1\" aria-hidden=\"true\">\r\n <div class=\"sidebar-container white-bg\">\r\n <div class=\"modal-dialog sidebar-outer white-bg\">\r\n <div class=\"sidebar-header grey-background\">\r\n <div class=\"sh-top\">\r\n <div class=\"sh-top-left d-flex align-items-center\">\r\n <div class=\"mx-2 log-text\">Notification</div>\r\n </div>\r\n <div class=\"sh-top-right\">\r\n <button type=\"button\" class=\"common-bn tertiary-btn\" data-bs-dismiss=\"modal\" aria-label=\"Close\">\r\n <img src=\"assets/common-header-lib/images/close.svg\" alt=\"Icon\" class=\"imgs mb-1\" title=\"Close\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-body\">\r\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\r\n <div class=\"noti-text\">You Have {{userNotificationCount}} Notification</div>\r\n <div class=\"d-flex align-items-center gap-1 refresh-icon\" (click)=\"getEventwiseNotification()\">\r\n <img src=\"assets/common-header-lib/images/refresh-1.svg\" alt=\"Icon\">\r\n <div class=\"refresh-text\">Refresh</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\">\r\n <ng-container *ngIf=\"!isErrorOccured && !notificationLoadder; else LoadingTemplate\">\r\n <div class=\"notify-border\" *ngFor=\"let event of eventwiseNotificationCount\">\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <div class=\"initial-text mx-1\">\r\n <img src=\"assets/common-header-lib/images/noti_ticket.svg\" alt=\"Icon\">\r\n </div>\r\n <div>\r\n <div><span class=\"service-count\">{{event['PendingCount']}} New </span><span\r\n class=\"service-request\">{{event['EventName'] }} Event requests</span>\r\n </div>\r\n <!-- <div class=\"time-text\">{{'2h ago'}}</div> -->\r\n </div>\r\n </div>\r\n <div class=\"grey-borders mt-2\"></div>\r\n </div>\r\n </ng-container>\r\n <ng-template #LoadingTemplate>\r\n <ng-container *ngIf=\"notificationLoadder; else errorTemplate\">\r\n <ng-container *ngFor=\"let item of repeatLoader\">\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <p-skeleton shape=\"circle\" size=\"60px\" styleClass=\"my-2\"></p-skeleton>\r\n <div class=\"ms-1\">\r\n <p-skeleton width=\"200%\" styleClass=\"mb-2\"></p-skeleton>\r\n <p-skeleton width=\"150px\" height=\"1rem\"></p-skeleton>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #errorTemplate>\r\n <app-no-service-my-access-pg [heading]=\"NoServiceMsgText\"></app-no-service-my-access-pg>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".grey-background{background-color:#f6f7fb}.white-bg{background:#ffffff;width:420px;overflow:hidden}.log-text{font-size:16px;color:#292f4c;font-weight:600}.imgs{width:20px}.sidebar-body{overflow:auto;height:calc(100vh - 70px);width:100%}.sidebar-body .noti-text{color:#292f4c;font-size:13px;font-weight:600;line-height:24px}.sidebar-body .refresh-icon{cursor:pointer}.sidebar-body .refresh-text{color:#676879;font-size:12px;line-height:24px}.sidebar-body .notify-border{padding:8px 8px 0 6px;cursor:pointer}.sidebar-body .notify-border:hover{background-color:#dcdfec;border-radius:8px}.sidebar-body .notify-border .initial-text{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:11px;border-radius:50%;color:var(--white-color);background-color:#f2edfa}.sidebar-body .notify-border .service-count{color:#323238;font-weight:600;font-size:13px}.sidebar-body .notify-border .service-request{color:#676879;font-size:12px;font-weight:500}.sidebar-body .notify-border .time-text{color:#676879;font-size:12px}.sidebar-body .notify-border .grey-borders{border-bottom:1px solid var(--layout-border)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i3.NoServiceMyAccessPgComponent, selector: "app-no-service-my-access-pg", inputs: ["heading", "subHeading"] }] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NotificationSidebarComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'app-notification-sidebar', template: "<div class=\"modal fade common-alert-modal\" id=\"Notify_SidebarModal\" tabindex=\"-1\" aria-hidden=\"true\">\r\n <div class=\"sidebar-container white-bg\">\r\n <div class=\"modal-dialog sidebar-outer white-bg\">\r\n <div class=\"sidebar-header grey-background\">\r\n <div class=\"sh-top\">\r\n <div class=\"sh-top-left d-flex align-items-center\">\r\n <div class=\"mx-2 log-text\">Notification</div>\r\n </div>\r\n <div class=\"sh-top-right\">\r\n <button type=\"button\" class=\"common-bn tertiary-btn\" data-bs-dismiss=\"modal\" aria-label=\"Close\">\r\n <img src=\"assets/common-header-lib/images/close.svg\" alt=\"Icon\" class=\"imgs mb-1\" title=\"Close\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-body\">\r\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\r\n <div class=\"noti-text\">You Have {{userNotificationCount}} Notification</div>\r\n <div class=\"d-flex align-items-center gap-1 refresh-icon\" (click)=\"getEventwiseNotification()\">\r\n <img src=\"assets/common-header-lib/images/refresh-1.svg\" alt=\"Icon\">\r\n <div class=\"refresh-text\">Refresh</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\">\r\n <ng-container *ngIf=\"!isErrorOccured && !notificationLoadder; else LoadingTemplate\">\r\n <div class=\"notify-border\" *ngFor=\"let event of eventwiseNotificationCount\">\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <div class=\"initial-text mx-1\">\r\n <img src=\"assets/common-header-lib/images/noti_ticket.svg\" alt=\"Icon\">\r\n </div>\r\n <div>\r\n <div><span class=\"service-count\">{{event['PendingCount']}} New </span><span\r\n class=\"service-request\">{{event['EventName'] }} Event requests</span>\r\n </div>\r\n <!-- <div class=\"time-text\">{{'2h ago'}}</div> -->\r\n </div>\r\n </div>\r\n <div class=\"grey-borders mt-2\"></div>\r\n </div>\r\n </ng-container>\r\n <ng-template #LoadingTemplate>\r\n <ng-container *ngIf=\"notificationLoadder; else errorTemplate\">\r\n <ng-container *ngFor=\"let item of repeatLoader\">\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <p-skeleton shape=\"circle\" size=\"60px\" styleClass=\"my-2\"></p-skeleton>\r\n <div class=\"ms-1\">\r\n <p-skeleton width=\"200%\" styleClass=\"mb-2\"></p-skeleton>\r\n <p-skeleton width=\"150px\" height=\"1rem\"></p-skeleton>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #errorTemplate>\r\n <app-no-service-my-access-pg [heading]=\"NoServiceMsgText\"></app-no-service-my-access-pg>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".grey-background{background-color:#f6f7fb}.white-bg{background:#ffffff;width:420px;overflow:hidden}.log-text{font-size:16px;color:#292f4c;font-weight:600}.imgs{width:20px}.sidebar-body{overflow:auto;height:calc(100vh - 70px);width:100%}.sidebar-body .noti-text{color:#292f4c;font-size:13px;font-weight:600;line-height:24px}.sidebar-body .refresh-icon{cursor:pointer}.sidebar-body .refresh-text{color:#676879;font-size:12px;line-height:24px}.sidebar-body .notify-border{padding:8px 8px 0 6px;cursor:pointer}.sidebar-body .notify-border:hover{background-color:#dcdfec;border-radius:8px}.sidebar-body .notify-border .initial-text{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:11px;border-radius:50%;color:var(--white-color);background-color:#f2edfa}.sidebar-body .notify-border .service-count{color:#323238;font-weight:600;font-size:13px}.sidebar-body .notify-border .service-request{color:#676879;font-size:12px;font-weight:500}.sidebar-body .notify-border .time-text{color:#676879;font-size:12px}.sidebar-body .notify-border .grey-borders{border-bottom:1px solid var(--layout-border)}\n"] }]
27
+ }], ctorParameters: function () { return []; }, propDecorators: { userNotificationCount: [{
28
+ type: Input
29
+ }], userNotificationCountObj: [{
30
+ type: Input
31
+ }], eventwiseNotificationCount: [{
32
+ type: Input
33
+ }], refreshNotification: [{
34
+ type: Output
35
+ }], isErrorOccured: [{
36
+ type: Input
37
+ }], notificationLoadder: [{
38
+ type: Input
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uLWhlYWRlci1saWIvc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1zaWRlYmFyL25vdGlmaWNhdGlvbi1zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXItbGliL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24tc2lkZWJhci9ub3RpZmljYXRpb24tc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVEvRSxNQUFNLE9BQU8sNEJBQTRCO0lBVXZDO1FBVGdCLDBCQUFxQixHQUFXLEVBQUUsQ0FBQztRQUNuQyw2QkFBd0IsR0FBRyxFQUFFLENBQUM7UUFDOUIsK0JBQTBCLEdBQUcsRUFBRSxDQUFDO1FBQy9CLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDbkQsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBQzdDLHFCQUFnQixHQUFXLHlCQUF5QixDQUFDO1FBQ3JELGlCQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV4QixDQUFDO0lBRWhCLGtEQUFrRDtJQUNsRCx3QkFBd0I7UUFDdEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOzt5SEFmVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixtWENSekMsMHFHQThEQTsyRkR0RGEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDBCQUEwQjswRUFLcEIscUJBQXFCO3NCQUFwQyxLQUFLO2dCQUNVLHdCQUF3QjtzQkFBdkMsS0FBSztnQkFDVSwwQkFBMEI7c0JBQXpDLEtBQUs7Z0JBQ1csbUJBQW1CO3NCQUFuQyxNQUFNO2dCQUNTLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsbUJBQW1CO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBlcnJvck1zZyB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGFfbW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbm90aWZpY2F0aW9uLXNpZGViYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24tc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9uLXNpZGViYXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNpZGViYXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB1c2VyTm90aWZpY2F0aW9uQ291bnQ6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB1c2VyTm90aWZpY2F0aW9uQ291bnRPYmogPSB7fTtcclxuICBASW5wdXQoKSBwdWJsaWMgZXZlbnR3aXNlTm90aWZpY2F0aW9uQ291bnQgPSBbXTtcclxuICBAT3V0cHV0KCkgcHVibGljIHJlZnJlc2hOb3RpZmljYXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQElucHV0KCkgcHVibGljIGlzRXJyb3JPY2N1cmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIG5vdGlmaWNhdGlvbkxvYWRkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBOb1NlcnZpY2VNc2dUZXh0OiBzdHJpbmcgPSAnR2VuZXJpY19saWIuQ29tbW9uRXJyb3InO1xyXG4gIHB1YmxpYyByZXBlYXRMb2FkZXIgPSBBcnJheSg5KS5maWxsKDApO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIC8vTWV0aG9kOiBDYWxsIEFQaSB0byBGZXRjaCBOZXcgTm90aWZpY2F0aW9uIENvdW50XHJcbiAgZ2V0RXZlbnR3aXNlTm90aWZpY2F0aW9uKCkge1xyXG4gICAgdGhpcy5yZWZyZXNoTm90aWZpY2F0aW9uLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlIGNvbW1vbi1hbGVydC1tb2RhbFwiIGlkPVwiTm90aWZ5X1NpZGViYXJNb2RhbFwiIHRhYmluZGV4PVwiLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICA8ZGl2IGNsYXNzPVwic2lkZWJhci1jb250YWluZXIgd2hpdGUtYmdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cgc2lkZWJhci1vdXRlciB3aGl0ZS1iZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1oZWFkZXIgZ3JleS1iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoLXRvcFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoLXRvcC1sZWZ0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgbG9nLXRleHRcIj5Ob3RpZmljYXRpb248L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoLXRvcC1yaWdodFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNvbW1vbi1ibiB0ZXJ0aWFyeS1idG5cIiBkYXRhLWJzLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2NvbW1vbi1oZWFkZXItbGliL2ltYWdlcy9jbG9zZS5zdmdcIiBhbHQ9XCJJY29uXCIgY2xhc3M9XCJpbWdzIG1iLTFcIiB0aXRsZT1cIkNsb3NlXCI+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGktdGV4dFwiPllvdSBIYXZlIHt7dXNlck5vdGlmaWNhdGlvbkNvdW50fX0gTm90aWZpY2F0aW9uPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSByZWZyZXNoLWljb25cIiAoY2xpY2spPVwiZ2V0RXZlbnR3aXNlTm90aWZpY2F0aW9uKClcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvY29tbW9uLWhlYWRlci1saWIvaW1hZ2VzL3JlZnJlc2gtMS5zdmdcIiBhbHQ9XCJJY29uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZyZXNoLXRleHRcIj5SZWZyZXNoPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFcnJvck9jY3VyZWQgJiYgIW5vdGlmaWNhdGlvbkxvYWRkZXI7IGVsc2UgTG9hZGluZ1RlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RpZnktYm9yZGVyXCIgKm5nRm9yPVwibGV0IGV2ZW50IG9mIGV2ZW50d2lzZU5vdGlmaWNhdGlvbkNvdW50XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbml0aWFsLXRleHQgbXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9jb21tb24taGVhZGVyLWxpYi9pbWFnZXMvbm90aV90aWNrZXQuc3ZnXCIgYWx0PVwiSWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPVwic2VydmljZS1jb3VudFwiPnt7ZXZlbnRbJ1BlbmRpbmdDb3VudCddfX0gTmV3IDwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZXJ2aWNlLXJlcXVlc3RcIj57e2V2ZW50WydFdmVudE5hbWUnXSB9fSBFdmVudCByZXF1ZXN0czwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInRpbWUtdGV4dFwiPnt7JzJoIGFnbyd9fTwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmV5LWJvcmRlcnMgbXQtMlwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNMb2FkaW5nVGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub3RpZmljYXRpb25Mb2FkZGVyOyBlbHNlIGVycm9yVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJlcGVhdExvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHAtc2tlbGV0b24gc2hhcGU9XCJjaXJjbGVcIiBzaXplPVwiNjBweFwiIHN0eWxlQ2xhc3M9XCJteS0yXCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiMjAwJVwiIHN0eWxlQ2xhc3M9XCJtYi0yXCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiMTUwcHhcIiBoZWlnaHQ9XCIxcmVtXCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vycm9yVGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxhcHAtbm8tc2VydmljZS1teS1hY2Nlc3MtcGcgW2hlYWRpbmddPVwiTm9TZXJ2aWNlTXNnVGV4dFwiPjwvYXBwLW5vLXNlcnZpY2UtbXktYWNjZXNzLXBnPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==