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,296 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { GlobalConstants } from '../model/data_model';
4
+ import { throwError } from 'rxjs';
5
+ import { map, catchError } from 'rxjs/operators';
6
+ import { CookieStorageManagerService } from './cookie-storage-manager.service';
7
+ import { EncrydecrydataService } from './encrydecrydata.service';
8
+ import { decode } from '@msgpack/msgpack';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common/http";
11
+ import * as i2 from "./cookie-storage-manager.service";
12
+ import * as i3 from "./encrydecrydata.service";
13
+ export class RESTLoginFormService {
14
+ constructor(_http, cookieService, _encryptDec) {
15
+ this._http = _http;
16
+ this.cookieService = cookieService;
17
+ this._encryptDec = _encryptDec;
18
+ }
19
+ /*Method : GET
20
+ Action : Fetch Domain List */
21
+ fetchDomainList() {
22
+ return this._http
23
+ .get(GlobalConstants.baseURL + 'meta/api/Metadata/Domains')
24
+ .pipe(map((response) => {
25
+ let result = [];
26
+ if (response['statusCode'] === 200) {
27
+ if (response['result'].length > 0) {
28
+ let result = response['result'];
29
+ return result;
30
+ }
31
+ else {
32
+ return [];
33
+ }
34
+ }
35
+ }), catchError((e) => throwError(this.errorHandler(e))));
36
+ }
37
+ errorHandler(e) {
38
+ throw new Error('Method not implemented.');
39
+ }
40
+ /*Method : POST
41
+ Parameter : subID , id
42
+ Action : Get configuration ID based on to show hide DOMAIN dropdown
43
+ */
44
+ getglobalConfigDetails(subid, id) {
45
+ return this._http
46
+ .post(GlobalConstants.baseURL +
47
+ 'meta/api/Metadata/GetArcosConfigsValues?subId=' +
48
+ subid, id)
49
+ .pipe(map((response) => {
50
+ let result = [];
51
+ if (response['statusCode'] === 200) {
52
+ let result = response['result'];
53
+ return result;
54
+ }
55
+ }), catchError((e) => throwError(this.errorHandler(e))));
56
+ }
57
+ /*Method : POST
58
+ Action : get login to user
59
+ */
60
+ // userAuthentication(userDetails: any) {
61
+ // return this._http
62
+ // .post(
63
+ // GlobalConstants.baseURL + 'xaccess/api/SecureAccess/Authenticate',
64
+ // userDetails
65
+ // )
66
+ // .pipe(
67
+ // map((response: any) => {
68
+ // if (response && response['data']) {
69
+ // return this.getDecryptAPIResponse(response['data']);
70
+ // }
71
+ // }),
72
+ // catchError((e) => throwError(this.errorHandler(e)))
73
+ // );
74
+ // }
75
+ /*Method : POST
76
+ Action : RESET Password for First Time User
77
+ */
78
+ setNewpassword(loggedInUserDetails) {
79
+ return this._http
80
+ .post(GlobalConstants.baseURL +
81
+ 'xaccess/api/SecureAccess/ChangeUserArcXwdManually', loggedInUserDetails)
82
+ .pipe(catchError((e) => throwError(this.errorHandler(e))));
83
+ }
84
+ /*Method : POST
85
+ Action :Will validate User entered PWD as
86
+ per Password Policy Set
87
+ */
88
+ validatePassword(userDetails) {
89
+ return this._http
90
+ .post(GlobalConstants.baseURL + 'xaccess/api/SecureAccess/ValidatePassword', userDetails)
91
+ .pipe(catchError((e) => throwError(this.errorHandler(e))));
92
+ }
93
+ /*Method : POST
94
+ Action : Get Public Key for encryption of Data */
95
+ getPrivateKey(params) {
96
+ return this._http
97
+ .post(GlobalConstants.baseURL + 'xaccess/api/SecureAccess/XKEDSync', params)
98
+ .pipe(catchError((e) => throwError(this.errorHandler(e))));
99
+ }
100
+ /* Method : POST
101
+ Action : Send request for OTP of MFA Authenticator */
102
+ sendMFAOTPRequest(mfaDetails) {
103
+ return this._http
104
+ .post(GlobalConstants.baseURL + 'xmfa/api/Mfa/mfa', mfaDetails)
105
+ .pipe(map((response) => {
106
+ let result = [];
107
+ if (response['success']) {
108
+ let result = response['result'];
109
+ return result;
110
+ }
111
+ }), catchError((e) => throwError(this.errorHandler(e))));
112
+ }
113
+ /* Method : POST
114
+ Action : Submit User Enter OTP of MFA Authenticator */
115
+ submitOtpForMfaVerification(mfaDetails) {
116
+ return this._http
117
+ .post(GlobalConstants.baseURL + 'xmfa/api/Mfa/mfavalidation', mfaDetails)
118
+ .pipe(map((response) => {
119
+ let result = [];
120
+ if (response['success']) {
121
+ let result = response['result'];
122
+ return result;
123
+ }
124
+ }), catchError((e) => throwError(this.errorHandler(e))));
125
+ }
126
+ /*Method : POST
127
+ Action : It will provide Token which used for multiple Application access */
128
+ getAuthToken(userDetails) {
129
+ return this._http
130
+ .post(GlobalConstants.baseURL + 'xauth/api/Token/GenerateJwtTokenApplication', userDetails)
131
+ .pipe(map((response) => {
132
+ if (response) {
133
+ return response;
134
+ }
135
+ else {
136
+ return '';
137
+ }
138
+ }), catchError((e) => throwError(this.errorHandler(e))));
139
+ }
140
+ /* Method : GET
141
+ Action : It will provide Token which used to established MFA Method */
142
+ // getMFAAccessTokenKey() {
143
+ // return this._http
144
+ // .get<any>(GlobalConstants.baseURL + 'xaccess/api/SecureAccess/GetMfaDetails')
145
+ // .pipe(
146
+ // map((response) => {
147
+ // if (response && response['data']) {
148
+ // return this.getDecryptAPIResponse(response['data']);
149
+ // }
150
+ // return {};
151
+ // }),
152
+ // catchError((e) => throwError(this.errorHandler(e)))
153
+ // );
154
+ // }
155
+ /* Method : POST
156
+ Action : It will check Valida User or not */
157
+ // checkUserExists(userDetails: any) {
158
+ // return this._http
159
+ // .post(
160
+ // GlobalConstants.baseURL + 'xaccess/api/SecureAccess/ValidateUser',
161
+ // userDetails
162
+ // )
163
+ // .pipe(
164
+ // map((response: any) => {
165
+ // if (response && response['data']) {
166
+ // return this.getDecryptAPIResponse(response['data']);
167
+ // }
168
+ // return {};
169
+ // }),
170
+ // catchError((e) => throwError(this.errorHandler(e)))
171
+ // );
172
+ // }
173
+ /* Method : POST
174
+ Action : Unlock User to enable login process */
175
+ unlockUserAccount(userDetails) {
176
+ return this._http
177
+ .post(GlobalConstants.baseURL + 'xaccess/api/SecureAccess/ValidateUser', userDetails)
178
+ .pipe(map((result) => {
179
+ return result;
180
+ }), catchError((e) => throwError(this.errorHandler(e))));
181
+ }
182
+ /* Method : GET
183
+ Action : It will provide Third Parth AUth Method etc. Google, Okta, Microsoft */
184
+ // getThirdPartySignInMethods() {
185
+ // return this._http
186
+ // .get(
187
+ // GlobalConstants.baseURL + 'xaccess/api/SecureAccess/GetThirdPartyDetail'
188
+ // )
189
+ // .pipe(
190
+ // map((response: any) => {
191
+ // let result: any = [];
192
+ // if (response['success']) {
193
+ // return response['result'];
194
+ // }
195
+ // return result;
196
+ // }),
197
+ // catchError((error: any) => throwError(this.errorHandler(error)))
198
+ // );
199
+ // }
200
+ /* Method : POST
201
+ Action : It will Verify plugin version is correct or not */
202
+ // public verifyUserInstalledPluginVersion(pluginInfo: any) {
203
+ // return this._http
204
+ // .post(GlobalConstants.baseURL + 'xaccess/api/SecureAccess/CheckAutoUpdatePAMPlugin',
205
+ // pluginInfo).pipe(
206
+ // map((response: any) => {
207
+ // return response['result'];
208
+ // }),
209
+ // catchError((error: any) => throwError(this.errorHandler(error)))
210
+ // );
211
+ // }
212
+ /**
213
+ * Verifies user authentication using Windows credentials.
214
+ */
215
+ // public checkAuthenticateWithWindowsCredentials(pluginInfo: any) {
216
+ // return this._http
217
+ // .post(GlobalConstants.baseURL + 'xdomainauth/api/DomainAuthentication/DomainAuth',
218
+ // // .post(GlobalConstants.baseURL + 'xaccess/api/SecureAccess/DomainAuth',
219
+ // pluginInfo).pipe(
220
+ // map((response: any) => {
221
+ // if (response && response['data']) {
222
+ // return this.getDecryptAPIResponse(response['data']);
223
+ // }
224
+ // return {};
225
+ // }),
226
+ // catchError((error: any) => throwError(this.errorHandler(error)))
227
+ // );
228
+ // }
229
+ /*Method : GET
230
+ Action : Get User Background Image and Logo */
231
+ getUserBackgroundImageAndLogo() {
232
+ return this._http
233
+ .get(GlobalConstants.baseURL + 'xaccess/api/SecureAccess/GetBackgroundImage')
234
+ .pipe(map((response) => {
235
+ return response;
236
+ }), catchError((error) => throwError(this.errorHandler(error))));
237
+ }
238
+ // public getVerifiedUserSessionDetails(authToken: string) {
239
+ // return this._http.post(
240
+ // GlobalConstants.baseURL + 'xaccess/api/SecureAccess/ValidateUserSessionDetail', { state: authToken }).pipe(
241
+ // map((response: any) => {
242
+ // if (response && response['data']) {
243
+ // return this.getDecryptAPIResponse(response['data']);
244
+ // }
245
+ // return {};
246
+ // }),
247
+ // catchError((error: any) => throwError(this.errorHandler(error)))
248
+ // );
249
+ // }
250
+ deleteCookieData(payload) {
251
+ const url = this.cookieService.getCookieValue('baseurl');
252
+ const delCookieEndpoint = `${url}xaccess/api/SecureAccess/cookiesUpdation`;
253
+ return this._http.post(delCookieEndpoint, payload);
254
+ }
255
+ /**
256
+ * Decrypts a base64-encoded, MessagePack-encoded ciphertext into its original tuple form.
257
+ *
258
+ * @param cipherText - The encrypted string received from the API.
259
+ * @returns The decoded tuple [key, value] if decryption is successful; otherwise, an empty object.
260
+ *
261
+ * Steps:
262
+ * 1. Decrypts the cipherText using custom crypto method.
263
+ * 2. Decodes the base64 response into a binary Uint8Array.
264
+ * 3. Deserializes the binary using MessagePack's decode to get the original data.
265
+ */
266
+ // private getDecryptAPIResponse_old(cipherText: string): any {
267
+ // if (cipherText) {
268
+ // const responseString =
269
+ // this._encryptDec.decryptResponseViaCrypto(cipherText);
270
+ // const binary = Uint8Array.from(atob(responseString), c => c.charCodeAt(0));
271
+ // const decodedArray = decode(binary) as [string, string];
272
+ // // console.log(decodedArray);
273
+ // return decodedArray
274
+ // }
275
+ // return {};
276
+ // }
277
+ async getDecryptAPIResponse(cipherText) {
278
+ if (cipherText) {
279
+ const responseString = await this._encryptDec.decryptResponseViaCrypto(cipherText); // await here
280
+ const binary = Uint8Array.from(atob(responseString), (c) => c.charCodeAt(0));
281
+ const decodedArray = decode(binary);
282
+ // console.log(decodedArray);
283
+ return decodedArray;
284
+ }
285
+ return {};
286
+ }
287
+ }
288
+ RESTLoginFormService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RESTLoginFormService, deps: [{ token: i1.HttpClient }, { token: i2.CookieStorageManagerService }, { token: i3.EncrydecrydataService }], target: i0.ɵɵFactoryTarget.Injectable });
289
+ RESTLoginFormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RESTLoginFormService, providedIn: 'root' });
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RESTLoginFormService, decorators: [{
291
+ type: Injectable,
292
+ args: [{
293
+ providedIn: 'root',
294
+ }]
295
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.CookieStorageManagerService }, { type: i3.EncrydecrydataService }]; } });
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1sb2dpbi1mb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyLWxpYi9zcmMvbGliL3NlcnZpY2VzL3Jlc3QtbG9naW4tZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQUsxQyxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQ21CLEtBQWlCLEVBQ2pCLGFBQTBDLEVBQzFDLFdBQWtDO1FBRmxDLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQTZCO1FBQzFDLGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtJQUNsRCxDQUFDO0lBRUo7bUNBQytCO0lBQy9CLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsMkJBQTJCLENBQUM7YUFDMUQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3BCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLFFBQVEsQ0FBQyxZQUFZ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QixNQUFNOzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbENvbnN0YW50cyB9IGZyb20gJy4uL21vZGVsL2RhdGFfbW9kZWwnO1xyXG5pbXBvcnQgeyB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29va2llU3RvcmFnZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9jb29raWUtc3RvcmFnZS1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbmNyeWRlY3J5ZGF0YVNlcnZpY2UgfSBmcm9tICcuL2VuY3J5ZGVjcnlkYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdAbXNncGFjay9tc2dwYWNrJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSRVNUTG9naW5Gb3JtU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9odHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb29raWVTZXJ2aWNlOiBDb29raWVTdG9yYWdlTWFuYWdlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbmNyeXB0RGVjOiBFbmNyeWRlY3J5ZGF0YVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIC8qTWV0aG9kIDogR0VUXHJcbiAgIEFjdGlvbiA6IEZldGNoIERvbWFpbiBMaXN0ICAqL1xyXG4gIGZldGNoRG9tYWluTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgIC5nZXQoR2xvYmFsQ29uc3RhbnRzLmJhc2VVUkwgKyAnbWV0YS9hcGkvTWV0YWRhdGEvRG9tYWlucycpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlWydzdGF0dXNDb2RlJ10gPT09IDIwMCkge1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2VbJ3Jlc3VsdCddLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVzcG9uc2VbJ3Jlc3VsdCddO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4gdGhyb3dFcnJvcih0aGlzLmVycm9ySGFuZGxlcihlKSkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBlcnJvckhhbmRsZXIoZTogYW55KTogYW55IHtcclxuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcclxuICB9XHJcblxyXG4gIC8qTWV0aG9kIDogUE9TVFxyXG4gIFBhcmFtZXRlciA6IHN1YklEICAsIGlkXHJcbiAgIEFjdGlvbiA6IEdldCBjb25maWd1cmF0aW9uIElEIGJhc2VkIG9uIHRvIHNob3cgaGlkZSBET01BSU4gZHJvcGRvd25cclxuICAgICAqL1xyXG5cclxuICBnZXRnbG9iYWxDb25maWdEZXRhaWxzKHN1YmlkOiBzdHJpbmcsIGlkOiBudW1iZXJbXSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgLnBvc3QoXHJcbiAgICAgICAgR2xvYmFsQ29uc3RhbnRzLmJhc2VVUkwgK1xyXG4gICAgICAgICAgJ21ldGEvYXBpL01ldGFkYXRhL0dldEFyY29zQ29uZmlnc1ZhbHVlcz9zdWJJZD0nICtcclxuICAgICAgICAgIHN1YmlkLFxyXG4gICAgICAgIGlkXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gW107XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2VbJ3N0YXR1c0NvZGUnXSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSByZXNwb25zZVsncmVzdWx0J107XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4gdGhyb3dFcnJvcih0aGlzLmVycm9ySGFuZGxlcihlKSkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKk1ldGhvZCA6IFBPU1RcclxuICAgQWN0aW9uIDogZ2V0IGxvZ2luIHRvIHVzZXJcclxuICAgICAqL1xyXG4gIC8vIHVzZXJBdXRoZW50aWNhdGlvbih1c2VyRGV0YWlsczogYW55KSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5faHR0cFxyXG4gIC8vICAgICAucG9zdChcclxuICAvLyAgICAgICBHbG9iYWxDb25zdGFudHMuYmFzZVVSTCArICd4YWNjZXNzL2FwaS9TZWN1cmVBY2Nlc3MvQXV0aGVudGljYXRlJyxcclxuICAvLyAgICAgICB1c2VyRGV0YWlsc1xyXG4gIC8vICAgICApXHJcbiAgLy8gICAgIC5waXBlKFxyXG4gIC8vICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlWydkYXRhJ10pIHtcclxuXHJcbiAgLy8gICAgICAgICAgIHJldHVybiB0aGlzLmdldERlY3J5cHRBUElSZXNwb25zZShyZXNwb25zZVsnZGF0YSddKTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9KSxcclxuICAvLyAgICAgICBjYXRjaEVycm9yKChlKSA9PiB0aHJvd0Vycm9yKHRoaXMuZXJyb3JIYW5kbGVyKGUpKSlcclxuICAvLyAgICAgKTtcclxuICAvLyB9XHJcblxyXG4gIC8qTWV0aG9kIDogUE9TVFxyXG4gICBBY3Rpb24gOiBSRVNFVCBQYXNzd29yZCBmb3IgRmlyc3QgVGltZSBVc2VyXHJcbiAgICAgKi9cclxuICBzZXROZXdwYXNzd29yZChsb2dnZWRJblVzZXJEZXRhaWxzOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgIC5wb3N0KFxyXG4gICAgICAgIEdsb2JhbENvbnN0YW50cy5iYXNlVVJMICtcclxuICAgICAgICAgICd4YWNjZXNzL2FwaS9TZWN1cmVBY2Nlc3MvQ2hhbmdlVXNlckFyY1h3ZE1hbnVhbGx5JyxcclxuICAgICAgICBsb2dnZWRJblVzZXJEZXRhaWxzXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZSkgPT4gdGhyb3dFcnJvcih0aGlzLmVycm9ySGFuZGxlcihlKSkpKTtcclxuICB9XHJcblxyXG4gIC8qTWV0aG9kIDogUE9TVFxyXG4gICBBY3Rpb24gOldpbGwgdmFsaWRhdGUgVXNlciBlbnRlcmVkIFBXRCBhc1xyXG4gIHBlciBQYXNzd29yZCBQb2xpY3kgU2V0XHJcbiAgICAgKi9cclxuICB2YWxpZGF0ZVBhc3N3b3JkKHVzZXJEZXRhaWxzOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgIC5wb3N0KFxyXG4gICAgICAgIEdsb2JhbENvbnN0YW50cy5iYXNlVVJMICsgJ3hhY2Nlc3MvYXBpL1NlY3VyZUFjY2Vzcy9WYWxpZGF0ZVBhc3N3b3JkJyxcclxuICAgICAgICB1c2VyRGV0YWlsc1xyXG4gICAgICApXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IoKGUpID0+IHRocm93RXJyb3IodGhpcy5lcnJvckhhbmRsZXIoZSkpKSk7XHJcbiAgfVxyXG5cclxuICAvKk1ldGhvZCA6IFBPU1RcclxuICAgIEFjdGlvbiA6IEdldCBQdWJsaWMgS2V5IGZvciBlbmNyeXB0aW9uIG9mIERhdGEgICovXHJcbiAgZ2V0UHJpdmF0ZUtleShwYXJhbXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgLnBvc3QoXHJcbiAgICAgICAgR2xvYmFsQ29uc3RhbnRzLmJhc2VVUkwgKyAneGFjY2Vzcy9hcGkvU2VjdXJlQWNjZXNzL1hLRURTeW5jJyxcclxuICAgICAgICBwYXJhbXNcclxuICAgICAgKVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKChlKSA9PiB0aHJvd0Vycm9yKHRoaXMuZXJyb3JIYW5kbGVyKGUpKSkpO1xyXG4gIH1cclxuXHJcbiAgLyogTWV0aG9kIDogUE9TVFxyXG4gICBBY3Rpb24gOiBTZW5kIHJlcXVlc3QgZm9yIE9UUCBvZiBNRkEgQXV0aGVudGljYXRvciAgKi9cclxuICBzZW5kTUZBT1RQUmVxdWVzdChtZmFEZXRhaWxzOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgIC5wb3N0KEdsb2JhbENvbnN0YW50cy5iYXNlVVJMICsgJ3htZmEvYXBpL01mYS9tZmEnLCBtZmFEZXRhaWxzKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCByZXN1bHQgPSBbXTtcclxuICAgICAgICAgIGlmIChyZXNwb25zZVsnc3VjY2VzcyddKSB7XHJcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSByZXNwb25zZVsncmVzdWx0J107XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4gdGhyb3dFcnJvcih0aGlzLmVycm9ySGFuZGxlcihlKSkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKiBNZXRob2QgOiBQT1NUXHJcbiAgIEFjdGlvbiA6IFN1Ym1pdCBVc2VyIEVudGVyIE9UUCBvZiBNRkEgQXV0aGVudGljYXRvciAgKi9cclxuICBzdWJtaXRPdHBGb3JNZmFWZXJpZmljYXRpb24obWZhRGV0YWlsczogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAucG9zdChHbG9iYWxDb25zdGFudHMuYmFzZVVSTCArICd4bWZhL2FwaS9NZmEvbWZhdmFsaWRhdGlvbicsIG1mYURldGFpbHMpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlWydzdWNjZXNzJ10pIHtcclxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHJlc3BvbnNlWydyZXN1bHQnXTtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB0aHJvd0Vycm9yKHRoaXMuZXJyb3JIYW5kbGVyKGUpKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qTWV0aG9kIDogUE9TVFxyXG4gICBBY3Rpb24gOiBJdCB3aWxsIHByb3ZpZGUgVG9rZW4gd2hpY2ggdXNlZCBmb3IgbXVsdGlwbGUgQXBwbGljYXRpb24gYWNjZXNzICovXHJcbiAgZ2V0QXV0aFRva2VuKHVzZXJEZXRhaWxzOiB7fSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgLnBvc3QoXHJcbiAgICAgICAgR2xvYmFsQ29uc3RhbnRzLmJhc2VVUkwgKyAneGF1dGgvYXBpL1Rva2VuL0dlbmVyYXRlSnd0VG9rZW5BcHBsaWNhdGlvbicsXHJcbiAgICAgICAgdXNlckRldGFpbHNcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHRocm93RXJyb3IodGhpcy5lcnJvckhhbmRsZXIoZSkpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyogTWV0aG9kIDogR0VUXHJcbiAgIEFjdGlvbiA6IEl0IHdpbGwgcHJvdmlkZSBUb2tlbiB3aGljaCB1c2VkIHRvIGVzdGFibGlzaGVkIE1GQSBNZXRob2QgICovXHJcbiAgLy8gZ2V0TUZBQWNjZXNzVG9rZW5LZXkoKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5faHR0cFxyXG4gIC8vICAgICAuZ2V0PGFueT4oR2xvYmFsQ29uc3RhbnRzLmJhc2VVUkwgKyAneGFjY2Vzcy9hcGkvU2VjdXJlQWNjZXNzL0dldE1mYURldGFpbHMnKVxyXG4gIC8vICAgICAucGlwZShcclxuICAvLyAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgLy8gICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2VbJ2RhdGEnXSkge1xyXG4gIC8vICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREZWNyeXB0QVBJUmVzcG9uc2UocmVzcG9uc2VbJ2RhdGEnXSk7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgICByZXR1cm4ge307XHJcbiAgLy8gICAgICAgfSksXHJcbiAgLy8gICAgICAgY2F0Y2hFcnJvcigoZSkgPT4gdGhyb3dFcnJvcih0aGlzLmVycm9ySGFuZGxlcihlKSkpXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gfVxyXG5cclxuICAvKiBNZXRob2QgOiBQT1NUXHJcbiAgIEFjdGlvbiA6IEl0IHdpbGwgY2hlY2sgVmFsaWRhIFVzZXIgb3Igbm90ICAqL1xyXG4gIC8vIGNoZWNrVXNlckV4aXN0cyh1c2VyRGV0YWlsczogYW55KSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5faHR0cFxyXG4gIC8vICAgICAucG9zdChcclxuICAvLyAgICAgICBHbG9iYWxDb25zdGFudHMuYmFzZVVSTCArICd4YWNjZXNzL2FwaS9TZWN1cmVBY2Nlc3MvVmFsaWRhdGVVc2VyJyxcclxuICAvLyAgICAgICB1c2VyRGV0YWlsc1xyXG4gIC8vICAgICApXHJcbiAgLy8gICAgIC5waXBlKFxyXG4gIC8vICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlWydkYXRhJ10pIHtcclxuICAvLyAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVjcnlwdEFQSVJlc3BvbnNlKHJlc3BvbnNlWydkYXRhJ10pO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgcmV0dXJuIHt9O1xyXG4gIC8vICAgICAgIH0pLFxyXG4gIC8vICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHRocm93RXJyb3IodGhpcy5lcnJvckhhbmRsZXIoZSkpKVxyXG4gIC8vICAgICApO1xyXG4gIC8vIH1cclxuXHJcbiAgLyogTWV0aG9kIDogUE9TVFxyXG4gICBBY3Rpb24gOiBVbmxvY2sgVXNlciB0byBlbmFibGUgbG9naW4gcHJvY2VzcyAqL1xyXG4gIHVubG9ja1VzZXJBY2NvdW50KHVzZXJEZXRhaWxzOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgIC5wb3N0KFxyXG4gICAgICAgIEdsb2JhbENvbnN0YW50cy5iYXNlVVJMICsgJ3hhY2Nlc3MvYXBpL1NlY3VyZUFjY2Vzcy9WYWxpZGF0ZVVzZXInLFxyXG4gICAgICAgIHVzZXJEZXRhaWxzXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4gdGhyb3dFcnJvcih0aGlzLmVycm9ySGFuZGxlcihlKSkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKiBNZXRob2QgOiBHRVRcclxuICAgQWN0aW9uIDogSXQgd2lsbCBwcm92aWRlIFRoaXJkIFBhcnRoIEFVdGggTWV0aG9kIGV0Yy4gR29vZ2xlLCBPa3RhLCBNaWNyb3NvZnQgICovXHJcbiAgLy8gZ2V0VGhpcmRQYXJ0eVNpZ25Jbk1ldGhvZHMoKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5faHR0cFxyXG4gIC8vICAgICAuZ2V0KFxyXG4gIC8vICAgICAgIEdsb2JhbENvbnN0YW50cy5iYXNlVVJMICsgJ3hhY2Nlc3MvYXBpL1NlY3VyZUFjY2Vzcy9HZXRUaGlyZFBhcnR5RGV0YWlsJ1xyXG4gIC8vICAgICApXHJcbiAgLy8gICAgIC5waXBlKFxyXG4gIC8vICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgICAgbGV0IHJlc3VsdDogYW55ID0gW107XHJcbiAgLy8gICAgICAgICBpZiAocmVzcG9uc2VbJ3N1Y2Nlc3MnXSkge1xyXG4gIC8vICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VbJ3Jlc3VsdCddO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAvLyAgICAgICB9KSxcclxuICAvLyAgICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB0aHJvd0Vycm9yKHRoaXMuZXJyb3JIYW5kbGVyKGVycm9yKSkpXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gfVxyXG5cclxuICAvKiBNZXRob2QgOiBQT1NUXHJcbiAgIEFjdGlvbiA6IEl0IHdpbGwgVmVyaWZ5IHBsdWdpbiB2ZXJzaW9uIGlzIGNvcnJlY3Qgb3Igbm90ICovXHJcbiAgLy8gcHVibGljIHZlcmlmeVVzZXJJbnN0YWxsZWRQbHVnaW5WZXJzaW9uKHBsdWdpbkluZm86IGFueSkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAvLyAgICAgLnBvc3QoR2xvYmFsQ29uc3RhbnRzLmJhc2VVUkwgKyAneGFjY2Vzcy9hcGkvU2VjdXJlQWNjZXNzL0NoZWNrQXV0b1VwZGF0ZVBBTVBsdWdpbicsXHJcbiAgLy8gICAgICAgcGx1Z2luSW5mbykucGlwZShcclxuICAvLyAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VbJ3Jlc3VsdCddO1xyXG4gIC8vICAgICAgICAgfSksXHJcbiAgLy8gICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB0aHJvd0Vycm9yKHRoaXMuZXJyb3JIYW5kbGVyKGVycm9yKSkpXHJcbiAgLy8gICAgICAgKTtcclxuICAvLyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZlcmlmaWVzIHVzZXIgYXV0aGVudGljYXRpb24gdXNpbmcgV2luZG93cyBjcmVkZW50aWFscy5cclxuICAgKi9cclxuICAvLyBwdWJsaWMgY2hlY2tBdXRoZW50aWNhdGVXaXRoV2luZG93c0NyZWRlbnRpYWxzKHBsdWdpbkluZm86IGFueSkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAvLyAgICAgLnBvc3QoR2xvYmFsQ29uc3RhbnRzLmJhc2VVUkwgKyAneGRvbWFpbmF1dGgvYXBpL0RvbWFpbkF1dGhlbnRpY2F0aW9uL0RvbWFpbkF1dGgnLFxyXG4gIC8vICAgICAgIC8vIC5wb3N0KEdsb2JhbENvbnN0YW50cy5iYXNlVVJMICsgJ3hhY2Nlc3MvYXBpL1NlY3VyZUFjY2Vzcy9Eb21haW5BdXRoJyxcclxuICAvLyAgICAgICBwbHVnaW5JbmZvKS5waXBlKFxyXG4gIC8vICAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZVsnZGF0YSddKSB7XHJcbiAgLy8gICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVjcnlwdEFQSVJlc3BvbnNlKHJlc3BvbnNlWydkYXRhJ10pO1xyXG4gIC8vICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICAgIHJldHVybiB7fTtcclxuICAvLyAgICAgICAgIH0pLFxyXG4gIC8vICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IGFueSkgPT4gdGhyb3dFcnJvcih0aGlzLmVycm9ySGFuZGxlcihlcnJvcikpKVxyXG4gIC8vICAgICAgICk7XHJcbiAgLy8gfVxyXG5cclxuICAvKk1ldGhvZCA6IEdFVFxyXG4gICBBY3Rpb24gOiBHZXQgVXNlciBCYWNrZ3JvdW5kIEltYWdlIGFuZCBMb2dvICAqL1xyXG4gIHB1YmxpYyBnZXRVc2VyQmFja2dyb3VuZEltYWdlQW5kTG9nbygpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgIC5nZXQoXHJcbiAgICAgICAgR2xvYmFsQ29uc3RhbnRzLmJhc2VVUkwgKyAneGFjY2Vzcy9hcGkvU2VjdXJlQWNjZXNzL0dldEJhY2tncm91bmRJbWFnZSdcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB0aHJvd0Vycm9yKHRoaXMuZXJyb3JIYW5kbGVyKGVycm9yKSkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgZ2V0VmVyaWZpZWRVc2VyU2Vzc2lvbkRldGFpbHMoYXV0aFRva2VuOiBzdHJpbmcpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLl9odHRwLnBvc3QoXHJcbiAgLy8gICAgIEdsb2JhbENvbnN0YW50cy5iYXNlVVJMICsgJ3hhY2Nlc3MvYXBpL1NlY3VyZUFjY2Vzcy9WYWxpZGF0ZVVzZXJTZXNzaW9uRGV0YWlsJywgeyBzdGF0ZTogYXV0aFRva2VuIH0pLnBpcGUoXHJcbiAgLy8gICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2VbJ2RhdGEnXSkge1xyXG4gIC8vICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREZWNyeXB0QVBJUmVzcG9uc2UocmVzcG9uc2VbJ2RhdGEnXSk7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgICByZXR1cm4ge307XHJcbiAgLy8gICAgICAgfSksXHJcbiAgLy8gICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IGFueSkgPT4gdGhyb3dFcnJvcih0aGlzLmVycm9ySGFuZGxlcihlcnJvcikpKVxyXG4gIC8vICAgICApO1xyXG4gIC8vIH1cclxuXHJcbiAgZGVsZXRlQ29va2llRGF0YShwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuY29va2llU2VydmljZS5nZXRDb29raWVWYWx1ZSgnYmFzZXVybCcpO1xyXG4gICAgY29uc3QgZGVsQ29va2llRW5kcG9pbnQgPSBgJHt1cmx9eGFjY2Vzcy9hcGkvU2VjdXJlQWNjZXNzL2Nvb2tpZXNVcGRhdGlvbmA7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0KGRlbENvb2tpZUVuZHBvaW50LCBwYXlsb2FkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlY3J5cHRzIGEgYmFzZTY0LWVuY29kZWQsIE1lc3NhZ2VQYWNrLWVuY29kZWQgY2lwaGVydGV4dCBpbnRvIGl0cyBvcmlnaW5hbCB0dXBsZSBmb3JtLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGNpcGhlclRleHQgLSBUaGUgZW5jcnlwdGVkIHN0cmluZyByZWNlaXZlZCBmcm9tIHRoZSBBUEkuXHJcbiAgICogQHJldHVybnMgVGhlIGRlY29kZWQgdHVwbGUgW2tleSwgdmFsdWVdIGlmIGRlY3J5cHRpb24gaXMgc3VjY2Vzc2Z1bDsgb3RoZXJ3aXNlLCBhbiBlbXB0eSBvYmplY3QuXHJcbiAgICpcclxuICAgKiBTdGVwczpcclxuICAgKiAxLiBEZWNyeXB0cyB0aGUgY2lwaGVyVGV4dCB1c2luZyBjdXN0b20gY3J5cHRvIG1ldGhvZC5cclxuICAgKiAyLiBEZWNvZGVzIHRoZSBiYXNlNjQgcmVzcG9uc2UgaW50byBhIGJpbmFyeSBVaW50OEFycmF5LlxyXG4gICAqIDMuIERlc2VyaWFsaXplcyB0aGUgYmluYXJ5IHVzaW5nIE1lc3NhZ2VQYWNrJ3MgZGVjb2RlIHRvIGdldCB0aGUgb3JpZ2luYWwgZGF0YS5cclxuICAgKi9cclxuICAvLyBwcml2YXRlIGdldERlY3J5cHRBUElSZXNwb25zZV9vbGQoY2lwaGVyVGV4dDogc3RyaW5nKTogYW55IHtcclxuICAvLyAgIGlmIChjaXBoZXJUZXh0KSB7XHJcbiAgLy8gICAgIGNvbnN0IHJlc3BvbnNlU3RyaW5nID1cclxuICAvLyAgICAgICB0aGlzLl9lbmNyeXB0RGVjLmRlY3J5cHRSZXNwb25zZVZpYUNyeXB0byhjaXBoZXJUZXh0KTtcclxuICAvLyAgICAgY29uc3QgYmluYXJ5ID0gVWludDhBcnJheS5mcm9tKGF0b2IocmVzcG9uc2VTdHJpbmcpLCBjID0+IGMuY2hhckNvZGVBdCgwKSk7XHJcbiAgLy8gICAgIGNvbnN0IGRlY29kZWRBcnJheSA9IGRlY29kZShiaW5hcnkpIGFzIFtzdHJpbmcsIHN0cmluZ107XHJcbiAgLy8gICAgIC8vIGNvbnNvbGUubG9nKGRlY29kZWRBcnJheSk7XHJcbiAgLy8gICAgIHJldHVybiBkZWNvZGVkQXJyYXlcclxuICAvLyAgIH1cclxuICAvLyAgIHJldHVybiB7fTtcclxuICAvLyB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZ2V0RGVjcnlwdEFQSVJlc3BvbnNlKGNpcGhlclRleHQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICBpZiAoY2lwaGVyVGV4dCkge1xyXG4gICAgICBjb25zdCByZXNwb25zZVN0cmluZyA9IGF3YWl0IHRoaXMuX2VuY3J5cHREZWMuZGVjcnlwdFJlc3BvbnNlVmlhQ3J5cHRvKFxyXG4gICAgICAgIGNpcGhlclRleHRcclxuICAgICAgKTsgLy8gYXdhaXQgaGVyZVxyXG4gICAgICBjb25zdCBiaW5hcnkgPSBVaW50OEFycmF5LmZyb20oYXRvYihyZXNwb25zZVN0cmluZyksIChjKSA9PlxyXG4gICAgICAgIGMuY2hhckNvZGVBdCgwKVxyXG4gICAgICApO1xyXG4gICAgICBjb25zdCBkZWNvZGVkQXJyYXkgPSBkZWNvZGUoYmluYXJ5KSBhcyBbc3RyaW5nLCBzdHJpbmddO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhkZWNvZGVkQXJyYXkpO1xyXG4gICAgICByZXR1cm4gZGVjb2RlZEFycmF5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHt9O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,100 @@
1
+ import { COOKIECONSTANT, GlobalConstants, } from '../model/data_model';
2
+ import { Injectable } from '@angular/core';
3
+ import * as signalR from '@microsoft/signalr';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import { StorageService } from './storage.service';
6
+ import { EncrpdataService } from './encrpdata.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./storage.service";
9
+ import * as i2 from "./encrpdata.service";
10
+ // import { CookieStorageManagerService } from '../cookie-storage-manager.service';
11
+ export class RestSignalRService {
12
+ constructor(_localStorage, _encrpdataService) {
13
+ this._localStorage = _localStorage;
14
+ this._encrpdataService = _encrpdataService;
15
+ this.eventMsg = new BehaviorSubject({});
16
+ this.AuthToken = "";
17
+ this.hubURLS = [];
18
+ //Method: Established the Connection With SignalR to get RealTime Data
19
+ this.establishedConnection = async () => {
20
+ // console.log('Token SingalR: ', this.AuthToken);
21
+ this.hubConnection = new signalR.HubConnectionBuilder()
22
+ .withUrl(`${GlobalConstants.signalRURL}/chatHub`, {
23
+ skipNegotiation: true,
24
+ transport: signalR.HttpTransportType.WebSockets,
25
+ headers: { Authorization: `Bearer ${this.AuthToken}` },
26
+ })
27
+ .build();
28
+ try {
29
+ await this.hubConnection.start();
30
+ console.log('SignalR connection established successfully');
31
+ this.addMessageListener();
32
+ }
33
+ catch (error) {
34
+ console.error('Error establishing SignalR connection:', error);
35
+ throw error;
36
+ }
37
+ };
38
+ }
39
+ async initializeSignalRConnection() {
40
+ if (!GlobalConstants.signalRURL) {
41
+ throw new Error('No hub URLs provided');
42
+ }
43
+ this.hubURLS = GlobalConstants.signalRURL ? GlobalConstants.signalRURL.split(',') : [];
44
+ if (this.hubURLS.length === 1) {
45
+ GlobalConstants.signalRURL = this.hubURLS[0];
46
+ await this.establishedConnection();
47
+ return;
48
+ }
49
+ let lastUsedIndex = this.getLastUsedIndex();
50
+ for (let i = 0; i < this.hubURLS.length; i++) {
51
+ const index = (lastUsedIndex + i) % this.hubURLS.length;
52
+ GlobalConstants.signalRURL = this.hubURLS[index];
53
+ try {
54
+ await this.establishedConnection();
55
+ this.setLastUsedIndex(index + 1); // Update for next round
56
+ break; // Exit the loop if connection is successful
57
+ }
58
+ catch (error) {
59
+ console.error(`Error connecting to hub ${this.hubURLS[index]}:`, error);
60
+ }
61
+ }
62
+ if (!this.hubConnection) {
63
+ throw new Error("All SignalR connections failed");
64
+ }
65
+ }
66
+ addMessageListener() {
67
+ this.hubConnection.on('ReceiveMessage', (user, data) => {
68
+ console.log('Rx SignalR: ', user, 'Data: ', data);
69
+ data = JSON.parse(data);
70
+ this.emitEventMsg(data);
71
+ });
72
+ }
73
+ emitEventMsg(data) {
74
+ this.eventMsg.next(data);
75
+ }
76
+ listenerEventMsg() {
77
+ return this.eventMsg.asObservable();
78
+ }
79
+ getLastUsedIndexv1() {
80
+ const lastIndex = this._localStorage.getData(COOKIECONSTANT.SIGNALR_INDEX);
81
+ return lastIndex ? Number(this._encrpdataService.decodeToBase64(lastIndex)) || 0 : 0;
82
+ }
83
+ getLastUsedIndex() {
84
+ const lastIndex = this._localStorage.getData(COOKIECONSTANT.SIGNALR_INDEX);
85
+ return lastIndex ? Number(this._encrpdataService.decodeToBase64(lastIndex)) || 0 : 0;
86
+ }
87
+ setLastUsedIndex(index) {
88
+ const lastIndex = this._encrpdataService.encodeToBase64(index.toString());
89
+ this._localStorage.saveData(COOKIECONSTANT.SIGNALR_INDEX, lastIndex);
90
+ }
91
+ }
92
+ RestSignalRService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RestSignalRService, deps: [{ token: i1.StorageService }, { token: i2.EncrpdataService }], target: i0.ɵɵFactoryTarget.Injectable });
93
+ RestSignalRService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RestSignalRService, providedIn: 'root' });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RestSignalRService, decorators: [{
95
+ type: Injectable,
96
+ args: [{
97
+ providedIn: 'root',
98
+ }]
99
+ }], ctorParameters: function () { return [{ type: i1.StorageService }, { type: i2.EncrpdataService }]; } });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1zaWduYWxyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyLWxpYi9zcmMvbGliL3NlcnZpY2VzL3Jlc3Qtc2lnbmFsci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBQ2QsZUFBZSxHQUNoQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUN2RCxtRkFBbUY7QUFLbkYsTUFBTSxPQUFPLGtCQUFrQjtJQU03QixZQUNtQixhQUE2QixFQUFtQixpQkFBbUM7UUFBbkYsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQW1CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFMNUYsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDekIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQU0vQixzRUFBc0U7UUFDL0QsMEJBQXFCLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDeEMsa0RBQWtEO1lBQ2xELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQUMsb0JBQW9CLEVBQUU7aUJBQ3BELE9BQU8sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxVQUFVLFVBQVUsRUFBRTtnQkFDaEQsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLFNBQVMsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsVUFBVTtnQkFD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WSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0UsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUNPLGdCQUFnQjtRQUN0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0UsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7OytHQTlGVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENPT0tJRUNPTlNUQU5ULFxyXG4gIEdsb2JhbENvbnN0YW50cyxcclxufSBmcm9tICcuLi9tb2RlbC9kYXRhX21vZGVsJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBzaWduYWxSIGZyb20gJ0BtaWNyb3NvZnQvc2lnbmFscic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW5jcnBkYXRhU2VydmljZSB9IGZyb20gJy4vZW5jcnBkYXRhLnNlcnZpY2UnO1xyXG4vLyBpbXBvcnQgeyBDb29raWVTdG9yYWdlTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9jb29raWUtc3RvcmFnZS1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc3RTaWduYWxSU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBodWJDb25uZWN0aW9uITogc2lnbmFsUi5IdWJDb25uZWN0aW9uO1xyXG4gIHByb3RlY3RlZCBldmVudE1zZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XHJcbiAgcHJvdGVjdGVkIEF1dGhUb2tlbjogc3RyaW5nID0gXCJcIjtcclxuICBwcml2YXRlIGh1YlVSTFM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbG9jYWxTdG9yYWdlOiBTdG9yYWdlU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBfZW5jcnBkYXRhU2VydmljZTogRW5jcnBkYXRhU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIC8vTWV0aG9kOiBFc3RhYmxpc2hlZCB0aGUgQ29ubmVjdGlvbiBXaXRoIFNpZ25hbFIgdG8gZ2V0IFJlYWxUaW1lIERhdGFcclxuICBwdWJsaWMgZXN0YWJsaXNoZWRDb25uZWN0aW9uID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ1Rva2VuIFNpbmdhbFI6ICcsIHRoaXMuQXV0aFRva2VuKTtcclxuICAgIHRoaXMuaHViQ29ubmVjdGlvbiA9IG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgLndpdGhVcmwoYCR7R2xvYmFsQ29uc3RhbnRzLnNpZ25hbFJVUkx9L2NoYXRIdWJgLCB7XHJcbiAgICAgICAgc2tpcE5lZ290aWF0aW9uOiB0cnVlLFxyXG4gICAgICAgIHRyYW5zcG9ydDogc2lnbmFsUi5IdHRwVHJhbnNwb3J0VHlwZS5XZWJTb2NrZXRzLFxyXG4gICAgICAgIGhlYWRlcnM6IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuQXV0aFRva2VufWAgfSxcclxuICAgICAgfSlcclxuICAgICAgLmJ1aWxkKCk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgYXdhaXQgdGhpcy5odWJDb25uZWN0aW9uLnN0YXJ0KCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdTaWduYWxSIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgc3VjY2Vzc2Z1bGx5Jyk7XHJcbiAgICAgIHRoaXMuYWRkTWVzc2FnZUxpc3RlbmVyKCk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXN0YWJsaXNoaW5nIFNpZ25hbFIgY29ubmVjdGlvbjonLCBlcnJvcik7XHJcbiAgICAgIHRocm93IGVycm9yO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemVTaWduYWxSQ29ubmVjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHJcbiAgICBpZiAoIUdsb2JhbENvbnN0YW50cy5zaWduYWxSVVJMKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gaHViIFVSTHMgcHJvdmlkZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmh1YlVSTFMgPSBHbG9iYWxDb25zdGFudHMuc2lnbmFsUlVSTCA/IEdsb2JhbENvbnN0YW50cy5zaWduYWxSVVJMLnNwbGl0KCcsJykgOiBbXTtcclxuICAgIGlmICh0aGlzLmh1YlVSTFMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIEdsb2JhbENvbnN0YW50cy5zaWduYWxSVVJMID0gdGhpcy5odWJVUkxTWzBdO1xyXG4gICAgICBhd2FpdCB0aGlzLmVzdGFibGlzaGVkQ29ubmVjdGlvbigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGxhc3RVc2VkSW5kZXggPSB0aGlzLmdldExhc3RVc2VkSW5kZXgoKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaHViVVJMUy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBpbmRleCA9IChsYXN0VXNlZEluZGV4ICsgaSkgJSB0aGlzLmh1YlVSTFMubGVuZ3RoO1xyXG4gICAgICBHbG9iYWxDb25zdGFudHMuc2lnbmFsUlVSTCA9IHRoaXMuaHViVVJMU1tpbmRleF07XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5lc3RhYmxpc2hlZENvbm5lY3Rpb24oKTtcclxuICAgICAgICB0aGlzLnNldExhc3RVc2VkSW5kZXgoaW5kZXggKyAxKTsgIC8vIFVwZGF0ZSBmb3IgbmV4dCByb3VuZFxyXG4gICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFeGl0IHRoZSBsb29wIGlmIGNvbm5lY3Rpb24gaXMgc3VjY2Vzc2Z1bFxyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGNvbm5lY3RpbmcgdG8gaHViICR7dGhpcy5odWJVUkxTW2luZGV4XX06YCwgZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmh1YkNvbm5lY3Rpb24pIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQWxsIFNpZ25hbFIgY29ubmVjdGlvbnMgZmFpbGVkXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZE1lc3NhZ2VMaXN0ZW5lcigpIHtcclxuICAgIHRoaXMuaHViQ29ubmVjdGlvbi5vbignUmVjZWl2ZU1lc3NhZ2UnLCAodXNlcjogYW55LCBkYXRhOiBhbnkpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coJ1J4IFNpZ25hbFI6ICcsIHVzZXIsICdEYXRhOiAnLCBkYXRhKTtcclxuICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZGF0YSk7XHJcbiAgICAgIHRoaXMuZW1pdEV2ZW50TXNnKGRhdGEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlbWl0RXZlbnRNc2coZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmV2ZW50TXNnLm5leHQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBsaXN0ZW5lckV2ZW50TXNnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZXZlbnRNc2cuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldExhc3RVc2VkSW5kZXh2MSgpOiBOdW1iZXIge1xyXG4gICAgY29uc3QgbGFzdEluZGV4ID0gdGhpcy5fbG9jYWxTdG9yYWdlLmdldERhdGEoQ09PS0lFQ09OU1RBTlQuU0lHTkFMUl9JTkRFWCk7XHJcbiAgICByZXR1cm4gbGFzdEluZGV4ID8gTnVtYmVyKHRoaXMuX2VuY3JwZGF0YVNlcnZpY2UuZGVjb2RlVG9CYXNlNjQobGFzdEluZGV4KSkgfHwgMCA6IDA7XHJcbiAgfVxyXG4gIHByaXZhdGUgZ2V0TGFzdFVzZWRJbmRleCgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgbGFzdEluZGV4ID0gdGhpcy5fbG9jYWxTdG9yYWdlLmdldERhdGEoQ09PS0lFQ09OU1RBTlQuU0lHTkFMUl9JTkRFWCk7XHJcbiAgICByZXR1cm4gbGFzdEluZGV4ID8gTnVtYmVyKHRoaXMuX2VuY3JwZGF0YVNlcnZpY2UuZGVjb2RlVG9CYXNlNjQobGFzdEluZGV4KSkgfHwgMCA6IDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldExhc3RVc2VkSW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgbGFzdEluZGV4ID0gdGhpcy5fZW5jcnBkYXRhU2VydmljZS5lbmNvZGVUb0Jhc2U2NChpbmRleC50b1N0cmluZygpKTtcclxuICAgIHRoaXMuX2xvY2FsU3RvcmFnZS5zYXZlRGF0YShDT09LSUVDT05TVEFOVC5TSUdOQUxSX0lOREVYLCBsYXN0SW5kZXgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,33 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class StorageService {
4
+ constructor() { }
5
+ saveData(key, value) {
6
+ localStorage.setItem(key, value);
7
+ }
8
+ getData(key) {
9
+ return localStorage.getItem(key);
10
+ }
11
+ removeData(key) {
12
+ localStorage.removeItem(key);
13
+ }
14
+ clearData() {
15
+ localStorage.clear();
16
+ }
17
+ checkData(key) {
18
+ const data = localStorage.getItem(key);
19
+ if (data) {
20
+ return true;
21
+ }
22
+ return false;
23
+ }
24
+ }
25
+ StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
+ StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StorageService, providedIn: 'root' });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StorageService, decorators: [{
28
+ type: Injectable,
29
+ args: [{
30
+ providedIn: 'root',
31
+ }]
32
+ }], ctorParameters: function () { return []; } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uLWhlYWRlci1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGNBQWM7SUFDekIsZ0JBQWUsQ0FBQztJQUVULFFBQVEsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUN4QyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVc7UUFDeEIsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDTSxVQUFVLENBQUMsR0FBVztRQUMzQixZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxTQUFTO1FBQ2QsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVztRQUMxQixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7MkdBeEJVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgcHVibGljIHNhdmVEYXRhKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREYXRhKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcclxuICB9XHJcbiAgcHVibGljIHJlbW92ZURhdGEoa2V5OiBzdHJpbmcpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJEYXRhKCkge1xyXG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tEYXRhKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBkYXRhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcclxuICAgIGlmIChkYXRhKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,95 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ToastrService } from 'ngx-toastr';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngx-toastr";
5
+ export class ToastMsgService {
6
+ constructor(toastr) {
7
+ this.toastr = toastr;
8
+ this.toastType_sucess = 'toast-success';
9
+ this.toastType_info = 'toast-info';
10
+ this.toastType_error = 'toast-error';
11
+ this.toastType_warning = 'toast-warn';
12
+ }
13
+ success(textMessage) {
14
+ console.log(this.isToastMsgActive(), textMessage);
15
+ if (this.isToastMsgActive()) {
16
+ if (this.checkActiveToastMessagesByType(this.toastType_sucess)) {
17
+ this.updateActiveToastMessage(textMessage, this.toastType_sucess);
18
+ }
19
+ else {
20
+ this.toastr.success(textMessage);
21
+ }
22
+ }
23
+ else {
24
+ this.toastr.success(textMessage);
25
+ }
26
+ }
27
+ error(textMessage) {
28
+ if (this.isToastMsgActive()) {
29
+ if (this.checkActiveToastMessagesByType(this.toastType_error)) {
30
+ this.updateActiveToastMessage(textMessage, this.toastType_error);
31
+ }
32
+ else {
33
+ this.toastr.error(textMessage);
34
+ }
35
+ }
36
+ else {
37
+ this.toastr.error(textMessage);
38
+ }
39
+ }
40
+ info(textMessage) {
41
+ if (this.isToastMsgActive()) {
42
+ if (this.checkActiveToastMessagesByType(this.toastType_info)) {
43
+ this.updateActiveToastMessage(textMessage, this.toastType_info);
44
+ }
45
+ else {
46
+ this.toastr.info(textMessage);
47
+ }
48
+ }
49
+ else {
50
+ this.toastr.info(textMessage);
51
+ }
52
+ }
53
+ warning(textMessage) {
54
+ if (this.isToastMsgActive()) {
55
+ if (this.checkActiveToastMessagesByType(this.toastType_warning)) {
56
+ this.updateActiveToastMessage(textMessage, this.toastType_warning);
57
+ }
58
+ else {
59
+ this.toastr.warning(textMessage);
60
+ }
61
+ }
62
+ else {
63
+ this.toastr.warning(textMessage);
64
+ }
65
+ }
66
+ updateActiveToastMessage(textMessage, ToastType) {
67
+ const activeToasts = this.getActiveToastMessagesByType(ToastType);
68
+ if (activeToasts.length > 0) {
69
+ const toastObj = activeToasts[0];
70
+ toastObj.toastRef.componentInstance.message = textMessage;
71
+ // console.log('Updated Toast: ', toastObj.toastRef.componentInstance);
72
+ }
73
+ }
74
+ isToastMsgActive() {
75
+ return this.toastr.currentlyActive ? true : false;
76
+ }
77
+ getActiveToastMessagesByType(type) {
78
+ return this.toastr.toasts.filter((toastItem) => toastItem.toastRef.componentInstance.toastPackage.toastType.includes(type));
79
+ }
80
+ checkActiveToastMessagesByType(type) {
81
+ return this.toastr.toasts.some((toastItem) => toastItem.toastRef.componentInstance.toastPackage.toastType == type);
82
+ }
83
+ clear() {
84
+ this.toastr.clear();
85
+ }
86
+ }
87
+ ToastMsgService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToastMsgService, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Injectable });
88
+ ToastMsgService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToastMsgService, providedIn: 'root' });
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToastMsgService, decorators: [{
90
+ type: Injectable,
91
+ args: [{
92
+ providedIn: 'root',
93
+ }]
94
+ }], ctorParameters: function () { return [{ type: i1.ToastrService }]; } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtbXNnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyLWxpYi9zcmMvbGliL3NlcnZpY2VzL3RvYXN0LW1zZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUE2QixhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQUt0RSxNQUFNLE9BQU8sZUFBZTtJQU0xQixZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBTGpDLHFCQUFnQixHQUFXLGVBQWUsQ0FBQztRQUMzQyxtQkFBYyxHQUFXLFlBQVksQ0FBQztRQUN0QyxvQkFBZSxHQUFXLGFBQWEsQ0FBQztRQUN4QyxzQkFBaUIsR0FBVyxZQUFZLENBQUM7SUFFTCxDQUFDO0lBRTdDLE9BQU8sQ0FBQyxXQUFtQjtRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRWxELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUU7WUFDM0IsSUFBSSxJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7Z0JBQzlELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDbkU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDbEM7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQW1CO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVB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VSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmVUb2FzdCwgVG9hc3RQYWNrYWdlLCBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9hc3RNc2dTZXJ2aWNlIHtcclxuICBwcml2YXRlIHRvYXN0VHlwZV9zdWNlc3M6IHN0cmluZyA9ICd0b2FzdC1zdWNjZXNzJztcclxuICBwcml2YXRlIHRvYXN0VHlwZV9pbmZvOiBzdHJpbmcgPSAndG9hc3QtaW5mbyc7XHJcbiAgcHJpdmF0ZSB0b2FzdFR5cGVfZXJyb3I6IHN0cmluZyA9ICd0b2FzdC1lcnJvcic7XHJcbiAgcHJpdmF0ZSB0b2FzdFR5cGVfd2FybmluZzogc3RyaW5nID0gJ3RvYXN0LXdhcm4nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSkge31cclxuXHJcbiAgc3VjY2Vzcyh0ZXh0TWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmlzVG9hc3RNc2dBY3RpdmUoKSwgdGV4dE1lc3NhZ2UpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzVG9hc3RNc2dBY3RpdmUoKSkge1xyXG4gICAgICBpZiAodGhpcy5jaGVja0FjdGl2ZVRvYXN0TWVzc2FnZXNCeVR5cGUodGhpcy50b2FzdFR5cGVfc3VjZXNzKSkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlQWN0aXZlVG9hc3RNZXNzYWdlKHRleHRNZXNzYWdlLCB0aGlzLnRvYXN0VHlwZV9zdWNlc3MpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3ModGV4dE1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKHRleHRNZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGVycm9yKHRleHRNZXNzYWdlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmlzVG9hc3RNc2dBY3RpdmUoKSkge1xyXG4gICAgICBpZiAodGhpcy5jaGVja0FjdGl2ZVRvYXN0TWVzc2FnZXNCeVR5cGUodGhpcy50b2FzdFR5cGVfZXJyb3IpKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVUb2FzdE1lc3NhZ2UodGV4dE1lc3NhZ2UsIHRoaXMudG9hc3RUeXBlX2Vycm9yKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcih0ZXh0TWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKHRleHRNZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluZm8odGV4dE1lc3NhZ2U6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuaXNUb2FzdE1zZ0FjdGl2ZSgpKSB7XHJcbiAgICAgIGlmICh0aGlzLmNoZWNrQWN0aXZlVG9hc3RNZXNzYWdlc0J5VHlwZSh0aGlzLnRvYXN0VHlwZV9pbmZvKSkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlQWN0aXZlVG9hc3RNZXNzYWdlKHRleHRNZXNzYWdlLCB0aGlzLnRvYXN0VHlwZV9pbmZvKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvYXN0ci5pbmZvKHRleHRNZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50b2FzdHIuaW5mbyh0ZXh0TWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3YXJuaW5nKHRleHRNZXNzYWdlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmlzVG9hc3RNc2dBY3RpdmUoKSkge1xyXG4gICAgICBpZiAodGhpcy5jaGVja0FjdGl2ZVRvYXN0TWVzc2FnZXNCeVR5cGUodGhpcy50b2FzdFR5cGVfd2FybmluZykpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVRvYXN0TWVzc2FnZSh0ZXh0TWVzc2FnZSwgdGhpcy50b2FzdFR5cGVfd2FybmluZyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b2FzdHIud2FybmluZyh0ZXh0TWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudG9hc3RyLndhcm5pbmcodGV4dE1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVBY3RpdmVUb2FzdE1lc3NhZ2UoXHJcbiAgICB0ZXh0TWVzc2FnZTogc3RyaW5nLFxyXG4gICAgVG9hc3RUeXBlOiBzdHJpbmdcclxuICApOiB2b2lkIHtcclxuICAgIGNvbnN0IGFjdGl2ZVRvYXN0cyA9IHRoaXMuZ2V0QWN0aXZlVG9hc3RNZXNzYWdlc0J5VHlwZShUb2FzdFR5cGUpO1xyXG5cclxuICAgIGlmIChhY3RpdmVUb2FzdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCB0b2FzdE9iaiA9IGFjdGl2ZVRvYXN0c1swXTtcclxuICAgICAgdG9hc3RPYmoudG9hc3RSZWYuY29tcG9uZW50SW5zdGFuY2UubWVzc2FnZSA9IHRleHRNZXNzYWdlO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZygnVXBkYXRlZCBUb2FzdDogJywgdG9hc3RPYmoudG9hc3RSZWYuY29tcG9uZW50SW5zdGFuY2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1RvYXN0TXNnQWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudG9hc3RyLmN1cnJlbnRseUFjdGl2ZSA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWN0aXZlVG9hc3RNZXNzYWdlc0J5VHlwZSh0eXBlOiBzdHJpbmcpOiBBY3RpdmVUb2FzdDxhbnk+W10ge1xyXG4gICAgcmV0dXJuIHRoaXMudG9hc3RyLnRvYXN0cy5maWx0ZXIoKHRvYXN0SXRlbSkgPT5cclxuICAgICAgdG9hc3RJdGVtLnRvYXN0UmVmLmNvbXBvbmVudEluc3RhbmNlLnRvYXN0UGFja2FnZS50b2FzdFR5cGUuaW5jbHVkZXModHlwZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrQWN0aXZlVG9hc3RNZXNzYWdlc0J5VHlwZSh0eXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRvYXN0ci50b2FzdHMuc29tZShcclxuICAgICAgKHRvYXN0SXRlbSkgPT5cclxuICAgICAgICB0b2FzdEl0ZW0udG9hc3RSZWYuY29tcG9uZW50SW5zdGFuY2UudG9hc3RQYWNrYWdlLnRvYXN0VHlwZSA9PSB0eXBlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyKCkge1xyXG4gICAgdGhpcy50b2FzdHIuY2xlYXIoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,31 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class VaptValidationService {
4
+ constructor() { }
5
+ hasUnsafeInput(formData) {
6
+ const dangerousPattern = /<\s*(script|iframe|object|embed|link|style)\b[^>]*>(.*?)<\s*\/\s*\1\s*>|<\s*(script|iframe|object|embed|link|style)\b[^>]*\/?>|<[^>]+>/gi;
7
+ function checkValue(value) {
8
+ if (typeof value === 'string') {
9
+ return dangerousPattern.test(value);
10
+ }
11
+ if (Array.isArray(value)) {
12
+ return value.some(checkValue);
13
+ }
14
+ if (typeof value === 'object' && value !== null) {
15
+ return Object.values(value).some(checkValue);
16
+ }
17
+ // If it's a number, boolean, null, or undefined, ignore
18
+ return false;
19
+ }
20
+ return checkValue(formData);
21
+ }
22
+ }
23
+ VaptValidationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: VaptValidationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
24
+ VaptValidationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: VaptValidationService, providedIn: 'root' });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: VaptValidationService, decorators: [{
26
+ type: Injectable,
27
+ args: [{
28
+ providedIn: 'root'
29
+ }]
30
+ }], ctorParameters: function () { return []; } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFwdC12YWxpZGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyLWxpYi9zcmMvbGliL3NlcnZpY2VzL3ZhcHQtdmFsaWRhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsZ0JBQWdCLENBQUM7SUFFakIsY0FBYyxDQUFDLFFBQWE7UUFDMUIsTUFBTSxnQkFBZ0IsR0FBRywwSUFBMEksQ0FBQztRQUVwSyxTQUFTLFVBQVUsQ0FBQyxLQUFVO1lBQzVCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUM3QixPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyQztZQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQy9CO1lBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDL0MsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM5QztZQUVELHdEQUF3RDtZQUN4RCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDOztrSEF6QlUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFwdFZhbGlkYXRpb25TZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgaGFzVW5zYWZlSW5wdXQoZm9ybURhdGE6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZGFuZ2Vyb3VzUGF0dGVybiA9IC88XFxzKihzY3JpcHR8aWZyYW1lfG9iamVjdHxlbWJlZHxsaW5rfHN0eWxlKVxcYltePl0qPiguKj8pPFxccypcXC9cXHMqXFwxXFxzKj58PFxccyooc2NyaXB0fGlmcmFtZXxvYmplY3R8ZW1iZWR8bGlua3xzdHlsZSlcXGJbXj5dKlxcLz8+fDxbXj5dKz4vZ2k7XHJcblxyXG4gICAgZnVuY3Rpb24gY2hlY2tWYWx1ZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhbmdlcm91c1BhdHRlcm4udGVzdCh2YWx1ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS5zb21lKGNoZWNrVmFsdWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHZhbHVlKS5zb21lKGNoZWNrVmFsdWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBJZiBpdCdzIGEgbnVtYmVyLCBib29sZWFuLCBudWxsLCBvciB1bmRlZmluZWQsIGlnbm9yZVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNoZWNrVmFsdWUoZm9ybURhdGEpO1xyXG4gIH1cclxufVxyXG4iXX0=