@bnsights/bbsf-utilities 1.0.6 → 1.0.10

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.
@@ -2,7 +2,7 @@ import * as i1$2 from '@angular/common';
2
2
  import { DOCUMENT, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Injectable, Inject, NgModule, Injector } from '@angular/core';
5
- import * as i1$3 from '@angular/router';
5
+ import * as i4 from '@angular/router';
6
6
  import { Router, RouterModule } from '@angular/router';
7
7
  import * as i1 from '@ngx-translate/core';
8
8
  import { TranslateService } from '@ngx-translate/core';
@@ -13,9 +13,9 @@ import { __awaiter, __decorate } from 'tslib';
13
13
  import * as i1$1 from '@angular/common/http';
14
14
  import { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';
15
15
  import { UserManager, WebStorageStateStore } from 'oidc-client';
16
- import { BehaviorSubject, Subject } from 'rxjs';
17
- import { Observable } from 'rxjs/internal/Observable';
16
+ import { BehaviorSubject, Subject, Observable } from 'rxjs';
18
17
  import { takeUntil, tap, map } from 'rxjs/operators';
18
+ import { plainToClass } from 'class-transformer';
19
19
 
20
20
  // This file can be replaced during build by using the `fileReplacements` array.
21
21
  // `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.
@@ -54,6 +54,7 @@ class EnvironmentService {
54
54
  return Url;
55
55
  }
56
56
  }
57
+ EnvironmentService.AreaList = [];
57
58
  EnvironmentService.ɵprov = i0.ɵɵdefineInjectable({ factory: function EnvironmentService_Factory() { return new EnvironmentService(); }, token: EnvironmentService, providedIn: "root" });
58
59
  EnvironmentService.decorators = [
59
60
  { type: Injectable, args: [{
@@ -71,10 +72,11 @@ BBSFTranslateService.decorators = [
71
72
  ];
72
73
 
73
74
  class AuthService {
74
- constructor(http, environmentService, translateService) {
75
+ constructor(http, environmentService, translateService, router) {
75
76
  this.http = http;
76
77
  this.environmentService = environmentService;
77
78
  this.translateService = translateService;
79
+ this.router = router;
78
80
  // Observable navItem source
79
81
  this._authNavStatusSource = new BehaviorSubject(false);
80
82
  // Observable navItem stream
@@ -133,10 +135,11 @@ class AuthService {
133
135
  return __awaiter(this, void 0, void 0, function* () {
134
136
  this.user = yield this.manager.signinRedirectCallback();
135
137
  AuthService.user = this.user;
136
- localStorage.setItem("language", this.user.profile.locale);
137
- if (this.translateService.currentLang != this.user.profile.locale) {
138
+ if (!localStorage.getItem("language") || localStorage.getItem("language") == this.user.profile.locale)
139
+ localStorage.setItem("language", this.user.profile.locale);
140
+ if (this.translateService.currentLang != localStorage.getItem("language")) {
138
141
  this.translateService.resetLang(this.translateService.currentLang);
139
- yield this.translateService.reloadLang(this.user.profile.locale).subscribe((res) => {
142
+ yield this.translateService.reloadLang(localStorage.getItem("language")).subscribe((res) => {
140
143
  console.log(res);
141
144
  });
142
145
  }
@@ -172,7 +175,7 @@ class AuthService {
172
175
  });
173
176
  }
174
177
  isUserInRole(allowedPermission) {
175
- let selectedPermissionSetID = this.user.profile["selectedPermissionSetID"];
178
+ let selectedPermissionSetID = Number.parseInt(this.user.profile["selectedpermissionsetid"]);
176
179
  return allowedPermission.includes(selectedPermissionSetID);
177
180
  }
178
181
  authorizationHeaderValue() {
@@ -198,13 +201,15 @@ class AuthService {
198
201
  }
199
202
  signout() {
200
203
  return __awaiter(this, void 0, void 0, function* () {
201
- localStorage.clear();
204
+ if (yield !this.isAuthenticated())
205
+ this.router.navigate(['/Admin/account/login']),
206
+ localStorage.clear();
202
207
  yield this.manager.signoutRedirect();
203
208
  });
204
209
  }
205
210
  }
206
211
  AuthService.user = null;
207
- AuthService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthService_Factory() { return new AuthService(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(EnvironmentService), i0.ɵɵinject(BBSFTranslateService)); }, token: AuthService, providedIn: "root" });
212
+ AuthService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthService_Factory() { return new AuthService(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(EnvironmentService), i0.ɵɵinject(BBSFTranslateService), i0.ɵɵinject(i4.Router)); }, token: AuthService, providedIn: "root" });
208
213
  AuthService.decorators = [
209
214
  { type: Injectable, args: [{
210
215
  providedIn: 'root'
@@ -213,7 +218,8 @@ AuthService.decorators = [
213
218
  AuthService.ctorParameters = () => [
214
219
  { type: HttpClient },
215
220
  { type: EnvironmentService },
216
- { type: BBSFTranslateService }
221
+ { type: BBSFTranslateService },
222
+ { type: Router }
217
223
  ];
218
224
 
219
225
  class UtilityService {
@@ -335,7 +341,7 @@ class RequestHandlerService {
335
341
  }, 1000);
336
342
  }).pipe(takeUntil(this.onDestroy$));
337
343
  }
338
- get(Url, params, requestOptions) {
344
+ get(Url, params, responseType, requestOptions) {
339
345
  if (requestOptions)
340
346
  this.requestOptions = requestOptions;
341
347
  let headers = new HttpHeaders({
@@ -352,11 +358,10 @@ class RequestHandlerService {
352
358
  if (!this.requestOptions.disableBlockUI)
353
359
  this.utilityService.stopBlockUI();
354
360
  }), map((data) => {
355
- let result = data;
356
- return result;
361
+ return plainToClass(responseType, data, { excludeExtraneousValues: true });
357
362
  }));
358
363
  }
359
- post(Url, model, params, requestOptions) {
364
+ post(Url, model, responseType, params, requestOptions) {
360
365
  if (requestOptions)
361
366
  this.requestOptions = requestOptions;
362
367
  let headers = new HttpHeaders({
@@ -371,9 +376,11 @@ class RequestHandlerService {
371
376
  return this.http.post(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(takeUntil(this.onDestroy$), tap((result) => {
372
377
  if (!this.requestOptions.disableBlockUI)
373
378
  this.utilityService.stopBlockUI();
379
+ }), map((data) => {
380
+ return plainToClass(responseType, data, { excludeExtraneousValues: true });
374
381
  }));
375
382
  }
376
- delete(Url, deletedId, params, requestOptions) {
383
+ delete(Url, deletedId, requestOptions, responseType, params) {
377
384
  if (requestOptions)
378
385
  this.requestOptions = requestOptions;
379
386
  let headers = new HttpHeaders({
@@ -388,9 +395,11 @@ class RequestHandlerService {
388
395
  return this.http.delete(this.environmentService.getApiUrl() + Url + `/${deletedId}`, { headers: headers, params: params }).pipe(takeUntil(this.onDestroy$), tap((result) => {
389
396
  if (!this.requestOptions.disableBlockUI)
390
397
  this.utilityService.stopBlockUI();
398
+ }), map((data) => {
399
+ return plainToClass(responseType, data, { excludeExtraneousValues: true });
391
400
  }));
392
401
  }
393
- put(Url, model, params, requestOptions) {
402
+ put(Url, model, params, responseType, requestOptions) {
394
403
  if (requestOptions)
395
404
  this.requestOptions = requestOptions;
396
405
  let headers = new HttpHeaders({
@@ -405,6 +414,25 @@ class RequestHandlerService {
405
414
  return this.http.put(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(takeUntil(this.onDestroy$), tap((result) => {
406
415
  if (!this.requestOptions.disableBlockUI)
407
416
  this.utilityService.stopBlockUI();
417
+ }), map((data) => {
418
+ return plainToClass(responseType, data, { excludeExtraneousValues: true });
419
+ }));
420
+ }
421
+ download(Url, params, requestOptions) {
422
+ if (requestOptions)
423
+ this.requestOptions = requestOptions;
424
+ let headers = new HttpHeaders({
425
+ 'Content-Type': 'application/json',
426
+ 'Authorization': this.authService.authorizationHeaderValue(),
427
+ });
428
+ this.currentLanguage = localStorage.getItem('language');
429
+ headers = headers.set('Accept-Language', this.currentLanguage.toString());
430
+ headers = headers.set('ignore-cookies', 'true');
431
+ if (!this.requestOptions.disableBlockUI)
432
+ this.utilityService.startBlockUI();
433
+ return this.http.get(this.environmentService.getApiUrl() + Url, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(takeUntil(this.onDestroy$), tap((result) => {
434
+ if (!this.requestOptions.disableBlockUI)
435
+ this.utilityService.stopBlockUI();
408
436
  }));
409
437
  }
410
438
  destroyHandler() {
@@ -443,6 +471,12 @@ class StylesBundleService {
443
471
  document.querySelector('html').setAttribute("dir", "ltr");
444
472
  }
445
473
  }
474
+ loadThemesColor(theme, bundleDarkName, bundleLightName) {
475
+ if (theme == "Light")
476
+ this.loadStyleBundle(bundleLightName.toString());
477
+ else
478
+ this.loadStyleBundle(bundleDarkName.toString());
479
+ }
446
480
  loadStyleBundle(styleName) {
447
481
  const head = this.document.getElementsByTagName('head')[0];
448
482
  let themeLink = this.document.getElementById('client-theme');
@@ -477,12 +511,12 @@ class ControlValidationService {
477
511
  this.isCreatedBefor = false;
478
512
  }
479
513
  showGlobalError(errorMessage, formId, deleteOld) {
480
- let globalErorrElement = document.getElementsByClassName('alert alert-danger alert-InvalidValidation');
514
+ let globalErorrElement = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger');
481
515
  if (globalErorrElement.length > 0) {
482
- this.removeElementsByClass('alert alert-danger alert-InvalidValidation');
516
+ this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');
483
517
  }
484
518
  if (this.isCreatedBefor == true) {
485
- this.removeElementsByClass('alert alert-danger alert-InvalidValidation');
519
+ this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');
486
520
  }
487
521
  // tslint:disable-next-line: prefer-const
488
522
  if (!formId)
@@ -497,8 +531,8 @@ class ControlValidationService {
497
531
  message = errorMessage ? errorMessage : "لديك بعص الأخطاء . من فضلك قم بالمراجعه ";
498
532
  else
499
533
  message = errorMessage ? errorMessage : "You have some validation errors. Please check below";
500
- elementToAppend.innerHTML = "<ul><li>" + message + "</li></ul>";
501
- elementToAppend.className += 'alert alert-danger alert-InvalidValidation';
534
+ elementToAppend.innerHTML = "<ul class='list-unstyled m-0 py-3 d-flex align-items-center fs-6'><li><i class='fa fa-times-circle text-danger me-3 fs-2'></i>" + message + "</li></ul>";
535
+ elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';
502
536
  elementToAppend.id += 'errorId';
503
537
  // tslint:disable-next-line: prefer-for-of
504
538
  const elementToAppen = elementToAppend.cloneNode(true);
@@ -511,7 +545,7 @@ class ControlValidationService {
511
545
  elementToAppend.innerHTML = "<li>" + iterator + "</li>";
512
546
  }
513
547
  elementToAppend.innerHTML = "</ul>";
514
- elementToAppend.className += 'alert alert-danger alert-InvalidValidation';
548
+ elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';
515
549
  elementToAppend.id += 'errorId';
516
550
  // tslint:disable-next-line: prefer-for-of
517
551
  const elementToAppen = elementToAppend.cloneNode(true);
@@ -521,7 +555,7 @@ class ControlValidationService {
521
555
  this.isCreatedBefor = true;
522
556
  }
523
557
  RemoveGlobalError() {
524
- const removedList = document.getElementsByClassName('alert alert-danger alert-InvalidValidation');
558
+ const removedList = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger');
525
559
  // tslint:disable-next-line: prefer-for-of
526
560
  for (let index = 0; index < removedList.length; index++) {
527
561
  const element = removedList[index];
@@ -638,7 +672,7 @@ class MasterLayoutService {
638
672
  this.authService = authService;
639
673
  this.stylesBundleService = stylesBundleService;
640
674
  this.translate = translate;
641
- this.ApiUrl = "/api/admin/Users/";
675
+ this.ApiUrl = "/api/Home/";
642
676
  }
643
677
  switchLang(lang, bundleEnglishName, bundleArabicName) {
644
678
  this.changeLanguage(lang).subscribe((result) => {
@@ -663,13 +697,18 @@ class MasterLayoutService {
663
697
  let params = new HttpParams();
664
698
  params = params.append("UserId", this.authService.user.profile.id);
665
699
  params = params.append("LanguageKey", key);
666
- return this.http.post(this.ApiUrl + 'updateLaguage', null, params);
700
+ return this.http.post(this.ApiUrl + 'UpdateLanguage', null, null, params);
701
+ }
702
+ logError(error) {
703
+ let params = new HttpParams();
704
+ params = params.append("error", error);
705
+ return this.http.post(this.ApiUrl + 'LogError', null, null, params);
667
706
  }
668
707
  updateUserInfo() {
669
708
  return this.http.get('/connect/userinfo');
670
709
  }
671
710
  }
672
- MasterLayoutService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MasterLayoutService_Factory() { return new MasterLayoutService(i0.ɵɵinject(i1$3.Router), i0.ɵɵinject(RequestHandlerService), i0.ɵɵinject(AuthService), i0.ɵɵinject(StylesBundleService), i0.ɵɵinject(i1.TranslateService)); }, token: MasterLayoutService, providedIn: "root" });
711
+ MasterLayoutService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MasterLayoutService_Factory() { return new MasterLayoutService(i0.ɵɵinject(i4.Router), i0.ɵɵinject(RequestHandlerService), i0.ɵɵinject(AuthService), i0.ɵɵinject(StylesBundleService), i0.ɵɵinject(i1.TranslateService)); }, token: MasterLayoutService, providedIn: "root" });
673
712
  MasterLayoutService.decorators = [
674
713
  { type: Injectable, args: [{
675
714
  providedIn: 'root'
@@ -734,6 +773,33 @@ TranslationResolverService.ctorParameters = () => [
734
773
  { type: BBSFTranslateService }
735
774
  ];
736
775
 
776
+ class AppearanceConfigurationService {
777
+ getLayoutTheme() {
778
+ return localStorage.getItem('AnonymousLayout_Theme');
779
+ }
780
+ getFooterText() {
781
+ return localStorage.getItem('AnonymousLayout_FooterText');
782
+ }
783
+ getPageTitle() {
784
+ return localStorage.getItem('AnonymousLayout_PageTitle');
785
+ }
786
+ getFavIcon() {
787
+ return localStorage.getItem('AnonymousLayout_FavIcon');
788
+ }
789
+ getCustomStyles() {
790
+ return localStorage.getItem('AnonymousLayout_CustomStyles');
791
+ }
792
+ getLogo() {
793
+ return localStorage.getItem('AnonymousLayout_Logo');
794
+ }
795
+ }
796
+ AppearanceConfigurationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppearanceConfigurationService_Factory() { return new AppearanceConfigurationService(); }, token: AppearanceConfigurationService, providedIn: "root" });
797
+ AppearanceConfigurationService.decorators = [
798
+ { type: Injectable, args: [{
799
+ providedIn: 'root'
800
+ },] }
801
+ ];
802
+
737
803
  /*
738
804
  * Public API Surface of @bnsights/bbsf-utilities
739
805
  */
@@ -742,5 +808,5 @@ TranslationResolverService.ctorParameters = () => [
742
808
  * Generated bundle index. Do not edit.
743
809
  */
744
810
 
745
- export { AppInjector, AuthService, BBSFTranslateService, BBSFUtilitiesModule, ControlValidationService, EnvironmentService, MasterLayoutService, RequestHandlerService, RequestOptionsModel, StylesBundleService, TranslationResolverService, UtilityService, environment };
811
+ export { AppInjector, AppearanceConfigurationService, AuthService, BBSFTranslateService, BBSFUtilitiesModule, ControlValidationService, EnvironmentService, MasterLayoutService, RequestHandlerService, RequestOptionsModel, StylesBundleService, TranslationResolverService, UtilityService, environment };
746
812
  //# sourceMappingURL=bnsights-bbsf-utilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bnsights-bbsf-utilities.js","sources":["../../../projects/bbsf-utilities/src/lib/shared/config/environment.ts","../../../projects/bbsf-utilities/src/lib/shared/services/environment.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/translate.service.ts","../../../projects/bbsf-utilities/src/lib/shared/authentication/auth.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/utility.service.ts","../../../projects/bbsf-utilities/src/lib/shared/models/RequestOptionsModel.ts","../../../projects/bbsf-utilities/src/lib/shared/services/requesthandler.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/stylesbundle.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/controlvalidation.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/masterlayout.service.ts","../../../projects/bbsf-utilities/src/lib/bbsf-utilities.module.ts","../../../projects/bbsf-utilities/src/lib/shared/services/translationresolver.service.ts","../../../projects/bbsf-utilities/src/public-api.ts","../../../projects/bbsf-utilities/src/bnsights-bbsf-utilities.ts"],"sourcesContent":["// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = Object.assign({\r\n},\r\n(window as any).Envirnment);\r\n\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../config/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n\r\n getEnvironmentObject() {\r\n return environment;\r\n }\r\n\r\n getBaseUrl() {\r\n let Url = environment[\"BBSF_BaseUrl\"]\r\n return Url;\r\n }\r\n getApiUrl() {\r\n let Url = environment[\"BBSF_ApiUrl\"]\r\n return Url;\r\n }\r\n\r\n\r\n getProductionMode() {\r\n let Mode = environment[\"BBSF_IsProduction\"] as boolean\r\n return Mode;\r\n }\r\n\r\n getDefaultLanguage() {\r\n let Mode = environment[\"BBSF_DefaultLanguage\"] as string\r\n return Mode;\r\n }\r\n getIdentityServerUrl() {\r\n let Url = environment[\"BBSF_IdentityServerUrl\"]\r\n return Url;\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BBSFTranslateService extends TranslateService {\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { UserManager, UserManagerSettings, User, WebStorageStateStore } from 'oidc-client';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { EnvironmentService } from '../services/environment.service';\r\nimport { BBSFTranslateService } from '../services/translate.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthService {\r\n\r\n // Observable navItem source\r\n private _authNavStatusSource = new BehaviorSubject<boolean>(false);\r\n // Observable navItem stream\r\n authNavStatus$ = this._authNavStatusSource.asObservable();\r\n // Observable navItem source\r\n private _userSource: Subject<User> = new Subject<User>();\r\n UserStatus$ = this._userSource.asObservable();\r\n private manager = new UserManager(\r\n {\r\n authority: this.environmentService.getIdentityServerUrl(),\r\n client_id: 'angular_spa',\r\n redirect_uri: this.environmentService.getIdentityServerUrl() +'/Admin/authentication/auth-callback',\r\n post_logout_redirect_uri: this.environmentService.getBaseUrl(),\r\n response_type: \"id_token token\",\r\n scope: \"openid profile email IdentityServerApi\",\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n automaticSilentRenew: true,\r\n silent_redirect_uri: this.environmentService.getIdentityServerUrl() + '/assets/silent-callback.html',\r\n userStore: new WebStorageStateStore({ store: window.localStorage })\r\n }\r\n );\r\n public redirectUrl: string = \"\"\r\n static user: User | null = null;\r\n user: User | null;\r\n\r\n constructor(private http: HttpClient, private environmentService: EnvironmentService,private translateService:BBSFTranslateService) {\r\n this.manager.getUser().then(async user => {\r\n this.manager.storeUser(user);\r\n AuthService.user = user;\r\n this.user = user;\r\n this._authNavStatusSource.next(await this.isAuthenticated());\r\n });\r\n this.manager.events.addAccessTokenExpired(_ => {\r\n this._authNavStatusSource.next(false);\r\n })\r\n }\r\n\r\n login() {\r\n return this.manager.signinRedirect();\r\n }\r\n\r\n getUser() {\r\n this.manager.getUser().then(async user => {\r\n ;\r\n AuthService.user = user;\r\n this.user = user\r\n this._authNavStatusSource.next(await this.isAuthenticated());\r\n });\r\n }\r\n storUser(User: any) {\r\n this.manager.storeUser(User);\r\n }\r\n\r\n revokeAccessToken() {\r\n this.manager.revokeAccessToken();\r\n }\r\n\r\n signinSilent() {\r\n\r\n let x = this.manager.signinSilentCallback()\r\n x.then(s => {\r\n //console.log(s)\r\n })\r\n }\r\n\r\n async completeAuthentication() {\r\n this.user = await this.manager.signinRedirectCallback();\r\n AuthService.user = this.user\r\n localStorage.setItem(\"language\",this.user.profile.locale)\r\n if(this.translateService.currentLang!=this.user.profile.locale)\r\n {\r\n this.translateService.resetLang(this.translateService.currentLang)\r\n await this.translateService.reloadLang(this.user.profile.locale).subscribe((res)=>{\r\n console.log(res)\r\n })\r\n }\r\n this._userSource.next(AuthService.user)\r\n this._authNavStatusSource.next(await this.isAuthenticated());\r\n }\r\n\r\n \r\n\r\n\r\n async refreshToken(token) {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': token\r\n })\r\n };\r\n \r\n this.manager.revokeAccessToken()\r\n return await this.http.post<any>(`${this.environmentService.getIdentityServerUrl()}/users/refresh-token`, httpOptions, { withCredentials: true }).subscribe((user) => {\r\n this._userSource.next(user)\r\n AuthService.user = user\r\n this.user = user;\r\n })\r\n }\r\n\r\n getCurrentUser() {\r\n return this.manager.getUser()\r\n }\r\n\r\n async isAuthenticated(): Promise<boolean> {\r\n let user = await this.manager.getUser().then(user => {\r\n return user;\r\n })\r\n return this.user != null && !this.user.expired ;\r\n\r\n }\r\n isUserInRole(allowedPermission: number[]) {\r\n let selectedPermissionSetID = this.user.profile[\"selectedPermissionSetID\"] as number\r\n return allowedPermission.includes(selectedPermissionSetID);\r\n }\r\n\r\n authorizationHeaderValue(): string {\r\n return AuthService.user? `${AuthService.user.token_type} ${AuthService.user.access_token}`:\"\";\r\n }\r\n\r\n name(): string {\r\n return AuthService.user != null ? AuthService.user.profile.given_name : '';\r\n }\r\n setUrl(url) {\r\n localStorage.setItem(\"redirectUrl\", url)\r\n\r\n }\r\n getUrl() {\r\n return localStorage.getItem(\"redirectUrl\");\r\n }\r\n async signinSilentCallback() {\r\n let user = await this.manager.signinSilentCallback()\r\n //await this.manager.storeUser(user);\r\n AuthService.user = user;\r\n console.log(\"Token from signinSilentCallback :\"+AuthService.user)\r\n this.user = user;\r\n }\r\n async signout() {\r\n localStorage.clear();\r\n await this.manager.signoutRedirect();\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Injectable, Optional, Host, SkipSelf, Component } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { AuthService } from '../authentication/auth.service';\r\nimport { BBSFTranslateService } from './translate.service';\r\nimport { AppInjector } from '../../bbsf-utilities.module';\r\nimport { EnvironmentService } from './environment.service';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n\r\n isCreatedBefore = false;\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n constructor(private translator: BBSFTranslateService, private authService: AuthService , private environmentService: EnvironmentService,) {\r\n\r\n }\r\n\r\n\r\n getResourceValue(Key: string): string {\r\n let ResourceValue =this.translator.instant(Key)\r\n return ResourceValue;\r\n\r\n }\r\n\r\n getCurrentLanguage() {\r\n let currentLanguage = this.environmentService.getDefaultLanguage();\r\n let lang = localStorage.getItem('language');\r\n if ( lang) \r\n currentLanguage=lang;\r\n else \r\n localStorage.setItem('language', currentLanguage);\r\n return currentLanguage;\r\n }\r\n isCurrentLanguageEnglish() {\r\n return this.getCurrentLanguage() == \"en\"\r\n }\r\n isCurrentLanguageArabic() {\r\n return this.getCurrentLanguage() == \"ar\"\r\n }\r\n\r\n notifySuccessMessage(Message?: string, title?: string, time?: number) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"SuccessMessage\");\r\n let titleTemplate = this.getResourceValue(\"Success\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n let toaster = AppInjector.get(ToastrService);\r\n toaster.success(MessageTemplate, titleTemplate);\r\n }\r\n\r\n notifyErrorMessage(Message?: string, title?: string, time?: number) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"ErrorMessage\");\r\n let titleTemplate = this.getResourceValue(\"Error\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = AppInjector.get(ToastrService);\r\n toaster.error(MessageTemplate, titleTemplate);\r\n }\r\n\r\n notifyWarningMessage(Message?: string, title?: string, time?: number) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"WarningMessage\");\r\n let titleTemplate = this.getResourceValue(\"Warning\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = AppInjector.get(ToastrService);\r\n toaster.warning(MessageTemplate, titleTemplate);\r\n }\r\n\r\n startBlockUI() {\r\n this.blockUI.start();\r\n }\r\n stopBlockUI() {\r\n this.blockUI.stop();\r\n }\r\n}\r\n","import { FormGroup } from \"@angular/forms\";\r\n\r\nexport class RequestOptionsModel {\r\n disableSuccessNotification: boolean=false;\r\n disableBlockUI: boolean=false;\r\n customSuccessMessage: string;\r\n customErrorMessage: string;\r\n responseType:any=\"\"\r\n formGroup:FormGroup=null\r\n}\r\n","import { Injectable, OnDestroy, Pipe } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { RequestOptionsModel } from '../models/RequestOptionsModel';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { AuthService } from '../authentication/auth.service';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Subject } from 'rxjs';\r\nimport { UtilityService } from './utility.service';\r\nimport { map, takeUntil, tap } from 'rxjs/operators';\r\nimport { ControlValidationService } from './controlvalidation.service';\r\nimport { BBSFTranslateService } from './translate.service';\r\nimport { result } from 'lodash';\r\n\r\n\r\n@Injectable()\r\nexport class RequestHandlerService implements OnDestroy {\r\n private requestOptions: RequestOptionsModel = new RequestOptionsModel();\r\n private currentLanguage = \"\";\r\n public onDestroy$: Subject<void> = new Subject<void>();\r\n constructor\r\n (\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private environmentService: EnvironmentService,\r\n private utilityService: UtilityService,\r\n private bbsfTranslateService: BBSFTranslateService\r\n ) {\r\n //using localStorage to avoid call getCurrentLanguage() because it is not all to use async in constructor\r\n\r\n this.bbsfTranslateService.onLangChange.subscribe((event) => {\r\n if (this.currentLanguage != event.lang) {\r\n this.currentLanguage = event.lang;\r\n }\r\n })\r\n }\r\n\r\n public getLuckyNumber(): Observable<number> {\r\n \r\n return Observable.create((subject: Subject<number>) => {\r\n setInterval(() => {\r\n const number = Math.floor(Math.random() * 10);\r\n console.log(number)\r\n subject.next(number);\r\n }, 1000);\r\n }).pipe(\r\n takeUntil(this.onDestroy$));\r\n }\r\n\r\n\r\n get<T>(Url: string, params?: HttpParams, requestOptions?: RequestOptionsModel):Observable<T>{\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n let object:T;\r\n return this.http.get<T>(this.environmentService.getApiUrl() + Url, { headers: headers, params: params }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }),map((data: T) => {\r\n let result:T= <T>data;\r\n return result\r\n })\r\n );\r\n }\r\n\r\n post<T>(Url: string, model?: any, params?: HttpParams, requestOptions?: RequestOptionsModel):Observable<T> {\r\n \r\n \r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.post<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n })\r\n );\r\n }\r\n\r\n\r\n \r\n delete<T>(Url: string,deletedId:string,params?: HttpParams, requestOptions?: RequestOptionsModel):Observable<T>{\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.delete<T>(this.environmentService.getApiUrl() + Url+`/${deletedId}`, { headers: headers, params: params }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n })\r\n );\r\n }\r\n\r\n\r\n put<T>(Url: string, model?: any, params?: HttpParams, requestOptions?: RequestOptionsModel):Observable<T> {\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.put<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n })\r\n );\r\n }\r\n \r\n public destroyHandler(): void {\r\n this.onDestroy$.next();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n console.log(\"clearInterval\")\r\n this.destroyHandler()\r\n }\r\n}\r\n\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { BBSFTranslateService } from './translate.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StylesBundleService {\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document,private translateService: BBSFTranslateService){}\r\n\r\n loadThemes(lang: string,bundleEnglishName:string,bundleArabicName:string) {\r\n if (lang == \"ar\") {\r\n this.loadStyleBundle(bundleArabicName.toString())\r\n document.querySelector('html').setAttribute(\"lang\", \"ar\");\r\n document.querySelector('html').setAttribute(\"dir\", \"rtl\");\r\n } else {\r\n this.loadStyleBundle(bundleEnglishName.toString())\r\n document.querySelector('html').setAttribute(\"lang\", \"en\");\r\n document.querySelector('html').setAttribute(\"dir\", \"ltr\");\r\n }\r\n \r\n }\r\n\r\n loadStyleBundle(styleName: string) {\r\n const head = this.document.getElementsByTagName('head')[0];\r\n\r\n let themeLink = this.document.getElementById('client-theme') as HTMLLinkElement;\r\n\r\n if (themeLink && themeLink.href.includes(styleName)) {\r\n return;\r\n }\r\n else if (themeLink && !themeLink.href.includes(styleName)) {\r\n themeLink.remove();\r\n }\r\n const style = this.document.createElement('link');\r\n style.id = 'client-theme';\r\n style.rel = 'stylesheet';\r\n style.href = `${styleName}`;\r\n head.appendChild(style);\r\n }\r\n\r\n}\r\n\r\n","import { Injectable, Optional, Host, SkipSelf, Component } from '@angular/core';\r\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { AbstractControl, ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl, FormsModule, FormGroup } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { ErrorModel } from '../models/ErrorModel';\r\nimport { UtilityService } from './utility.service';\r\nimport { RequestOptionsModel } from '../models/RequestOptionsModel';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ControlValidationService {\r\n private requestOptions: RequestOptionsModel = new RequestOptionsModel();\r\n\r\n constructor\r\n (\r\n private utilityService: UtilityService\r\n ) {\r\n\r\n }\r\n\r\n isCreatedBefor = false;\r\n\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n showGlobalError(errorMessage?: string | string[], formId?: string, deleteOld?: boolean) {\r\n let globalErorrElement = document.getElementsByClassName('alert alert-danger alert-InvalidValidation')\r\n if (globalErorrElement.length > 0) {\r\n this.removeElementsByClass('alert alert-danger alert-InvalidValidation');\r\n }\r\n\r\n\r\n if (this.isCreatedBefor == true) {\r\n this.removeElementsByClass('alert alert-danger alert-InvalidValidation');\r\n }\r\n\r\n // tslint:disable-next-line: prefer-const\r\n if (!formId)\r\n formId = \"currentForm\"\r\n var object = document.getElementById(formId);\r\n const tagName = 'div';\r\n // tslint:disable-next-line: prefer-const\r\n var elementToAppend = document.createElement(tagName); // Your tag name here\r\n let message: string | string[] = \"\";\r\n\r\n\r\n if (!errorMessage || (typeof errorMessage == \"string\")) {\r\n if (localStorage.getItem('language') == \"ar\")\r\n message = errorMessage ? errorMessage : \"لديك بعص الأخطاء . من فضلك قم بالمراجعه \";\r\n else\r\n message = errorMessage ? errorMessage : \"You have some validation errors. Please check below\"\r\n elementToAppend.innerHTML = \"<ul><li>\" + message + \"</li></ul>\";\r\n elementToAppend.className += 'alert alert-danger alert-InvalidValidation';\r\n elementToAppend.id += 'errorId';\r\n // tslint:disable-next-line: prefer-for-of\r\n const elementToAppen = elementToAppend.cloneNode(true);\r\n // let targetElement = object.getElementsByClassName(\"b-control\")[0];\r\n object.insertBefore(elementToAppen, object.firstChild);\r\n }\r\n else {\r\n elementToAppend.innerHTML = \"<ul>\";\r\n\r\n for (const iterator of errorMessage) {\r\n\r\n elementToAppend.innerHTML = \"<li>\" + iterator + \"</li>\";\r\n }\r\n\r\n elementToAppend.innerHTML = \"</ul>\";\r\n elementToAppend.className += 'alert alert-danger alert-InvalidValidation';\r\n elementToAppend.id += 'errorId';\r\n // tslint:disable-next-line: prefer-for-of\r\n const elementToAppen = elementToAppend.cloneNode(true);\r\n // let targetElement = object.getElementsByClassName(\"b-control\")[0];\r\n object.insertBefore(elementToAppen, object.firstChild);\r\n }\r\n\r\n this.isCreatedBefor = true;\r\n\r\n }\r\n\r\n RemoveGlobalError() {\r\n const removedList = document.getElementsByClassName('alert alert-danger alert-InvalidValidation');\r\n // tslint:disable-next-line: prefer-for-of\r\n for (let index = 0; index < removedList.length; index++) {\r\n const element = removedList[index];\r\n element.remove();\r\n }\r\n this.isCreatedBefor = false;\r\n }\r\n\r\n showInputErro(errors: any) {\r\n\r\n // show error on top of form \r\n this.showGlobalError();\r\n // remove old error from server\r\n this.removeElementsByClass('errortemplet');\r\n // Looping in error Object\r\n for (const key in errors) {\r\n if (errors.hasOwnProperty(key)) {\r\n for (const iterator of errors[key]) {\r\n const input = document.querySelectorAll('[ng-reflect-name=' + key + ']')[0];\r\n if ((input.attributes['ng-reflect-name'].value as string) === key) {\r\n this.removeElementsByClass('erroclass-' + key);\r\n const tagName = 'p'\r\n const elementToAppend = document.createElement(tagName); // Your tag name here\r\n elementToAppend.innerHTML = iterator;\r\n elementToAppend.style.color = 'red'\r\n elementToAppend.className += 'errortemplet erroclass-' + key;\r\n const elementToappen = elementToAppend.cloneNode(true);\r\n input.parentNode.insertBefore(elementToappen, input.lastChild);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeElementsByClass(className) {\r\n const elements = document.getElementsByClassName(className);\r\n while (elements.length > 0) {\r\n elements[0].parentNode.removeChild(elements[0]);\r\n }\r\n }\r\n\r\n\r\n renderServerErrors(form: FormGroup, err: HttpErrorResponse, requestOptions: RequestOptionsModel, formId?: string) {\r\n if (err.error == null) {\r\n return;\r\n }\r\n let errorsArray: string[] = [];\r\n\r\n this.requestOptions = requestOptions;\r\n err.error.validation_errors.forEach((element: ErrorModel) => {\r\n let fieldName = element.field;\r\n let controlName = element.controlName;\r\n let message = element.message;\r\n if (form == null) {\r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${fieldName}: ${message}`);\r\n }\r\n else if (controlName && !this.hasControlName(form, controlName)) {\r\n errorsArray.push(`${fieldName}: ${message}`);\r\n // this.showGlobalError(`${fieldName}: ${message}`,formId )\r\n }\r\n else {\r\n this.setFieldError(form, controlName, fieldName, message);\r\n }\r\n });\r\n if (errorsArray.length > 0)\r\n this.showGlobalError(errorsArray, formId)\r\n\r\n\r\n }\r\n\r\n private hasControlName(form: FormGroup, controlName: string): boolean {\r\n let control = form.get(controlName);\r\n return control != null;\r\n }\r\n\r\n private setFieldError(form: FormGroup, controlName: string, fieldName: string, message: string) {\r\n let control = null\r\n if (controlName)\r\n control = form.get(controlName);\r\n else\r\n control = form.get(fieldName.split('.')[0]);\r\n let errors = { \"errorMassage\": message };\r\n let fieldNameArray = fieldName.split('.');\r\n if (fieldNameArray.length >= 1) {\r\n switch (fieldNameArray[fieldNameArray.length - 1].toLocaleLowerCase()) {\r\n case \"english\":\r\n let englishControl = control.get(\"English\")\r\n englishControl.setErrors(errors);\r\n break;\r\n case \"arabic\":\r\n let arabicControl = control.get(\"Arabic\")\r\n arabicControl.setErrors(errors);\r\n break;\r\n\r\n default:\r\n control.setErrors(errors);\r\n }\r\n\r\n }\r\n else if (fieldNameArray.length == 1) {\r\n control.setErrors(errors);\r\n }\r\n else {\r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${fieldName}: ${message}`)\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n}\r\n","import { HttpParams } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { AuthService } from \"../authentication/auth.service\";\r\nimport { RequestHandlerService } from \"./requesthandler.service\";\r\nimport { StylesBundleService } from \"./stylesbundle.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MasterLayoutService {\r\n ApiUrl=\"/api/admin/Users/\"\r\n constructor(private router: Router, private http: RequestHandlerService, private authService: AuthService,private stylesBundleService:StylesBundleService ,private translate:TranslateService) {\r\n }\r\n switchLang(lang: string, bundleEnglishName: string, bundleArabicName: string) {\r\n this.changeLanguage(lang).subscribe((result) => {\r\n this.updateUserInfo().subscribe((Value) => {\r\n let UserInfoObject =Value ;\r\n this.authService.getUser();\r\n this.authService.user.profile = Object.assign( this.authService.user.profile, UserInfoObject);\r\n this.authService.storUser(this.authService.user);\r\n this.stylesBundleService.loadThemes(lang,bundleEnglishName,bundleArabicName);\r\n localStorage.setItem('language', lang);\r\n this.translate.use(lang);\r\n });\r\n });\r\n }\r\n reloadComponent() {\r\n let currentUrl = this.router.url;\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate([currentUrl]);\r\n }\r\n\r\n private changeLanguage(key: string) {\r\n\r\n let params = new HttpParams();\r\n params = params.append(\"UserId\", this.authService.user.profile.id);\r\n params = params.append(\"LanguageKey\", key);\r\n return this.http.post(this.ApiUrl + 'updateLaguage', null, params)\r\n }\r\n\r\n private updateUserInfo() {\r\n return this.http.get('/connect/userinfo')\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injector, NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { HttpModule } from '@angular/http';\r\nimport { UtilityService } from './shared/services/utility.service';\r\nimport { EnvironmentService } from './shared/services/environment.service';\r\nimport { AuthService } from './shared/authentication/auth.service';\r\nimport { RequestHandlerService } from './shared/services/requesthandler.service';\r\nimport { StylesBundleService } from './shared/services/stylesbundle.service';\r\nimport { BBSFTranslateService } from './shared/services/translate.service';\r\nimport { ControlValidationService } from './shared/services/controlvalidation.service';\r\nimport { MasterLayoutService } from './shared/services/masterlayout.service';\r\n\r\nexport let AppInjector: Injector;\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n CommonModule,\r\n BlockUIModule.forRoot(),\r\n HttpModule,\r\n RouterModule,\r\n ToastrModule.forRoot(),\r\n\r\n ],\r\n exports: [\r\n \r\n ],\r\n providers:[\r\n UtilityService,\r\n EnvironmentService,\r\n AuthService,\r\n RequestHandlerService,\r\n StylesBundleService,\r\n TranslateService,\r\n BBSFTranslateService,\r\n ControlValidationService,\r\n MasterLayoutService\r\n ]\r\n})\r\nexport class BBSFUtilitiesModule { \r\n\r\n constructor(private injector: Injector) {\r\n AppInjector = this.injector;\r\n\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Resolve } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { BBSFTranslateService } from \"./translate.service\";\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TranslationResolverService implements Resolve<any> {\r\n constructor(private translateService: BBSFTranslateService) {}\r\n\r\n resolve(): Observable<any> {\r\n return this.translateService.getTranslation(\r\n this.translateService.currentLang\r\n );\r\n }\r\n}\r\n","/*\r\n * Public API Surface of @bnsights/bbsf-utilities\r\n */\r\n\r\nexport * from './lib/bbsf-utilities.module';\r\n\r\nexport * from './lib/shared/services/utility.service';\r\nexport * from './lib/shared/services/environment.service';\r\nexport * from './lib/shared/services/requesthandler.service'\r\nexport * from './lib/shared/services/stylesbundle.service'\r\nexport * from './lib/shared/services/translate.service'\r\nexport * from './lib/shared/services/controlvalidation.service'\r\nexport * from './lib/shared/services/masterlayout.service'\r\nexport * from './lib/shared/services/translationresolver.service'\r\n\r\n\r\nexport * from './lib/shared/config/environment';\r\n\r\n\r\nexport * from './lib/shared/authentication/auth.service';\r\n\r\n\r\nexport * from './lib/shared/models/RequestOptionsModel';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bnsights-bbsf-utilities.js","sources":["../../../projects/bbsf-utilities/src/lib/shared/config/environment.ts","../../../projects/bbsf-utilities/src/lib/shared/services/environment.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/translate.service.ts","../../../projects/bbsf-utilities/src/lib/shared/authentication/auth.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/utility.service.ts","../../../projects/bbsf-utilities/src/lib/shared/models/RequestOptionsModel.ts","../../../projects/bbsf-utilities/src/lib/shared/services/requesthandler.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/stylesbundle.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/controlvalidation.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/masterlayout.service.ts","../../../projects/bbsf-utilities/src/lib/bbsf-utilities.module.ts","../../../projects/bbsf-utilities/src/lib/shared/services/translationresolver.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/AppearanceConfiguration.service.ts","../../../projects/bbsf-utilities/src/public-api.ts","../../../projects/bbsf-utilities/src/bnsights-bbsf-utilities.ts"],"sourcesContent":["// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = Object.assign({\r\n},\r\n(window as any).Envirnment);\r\n\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../config/environment';\r\nimport { AreaModel } from '../models/AreaModel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n\r\n \r\n static AreaList: AreaModel[] = []\r\n \r\n getEnvironmentObject() {\r\n return environment;\r\n }\r\n\r\n getBaseUrl() {\r\n let Url = environment[\"BBSF_BaseUrl\"]\r\n return Url;\r\n }\r\n getApiUrl() {\r\n let Url = environment[\"BBSF_ApiUrl\"]\r\n return Url;\r\n }\r\n\r\n\r\n getProductionMode() {\r\n let Mode = environment[\"BBSF_IsProduction\"] as boolean\r\n return Mode;\r\n }\r\n\r\n getDefaultLanguage() {\r\n let Mode = environment[\"BBSF_DefaultLanguage\"] as string\r\n return Mode;\r\n }\r\n getIdentityServerUrl() {\r\n let Url = environment[\"BBSF_IdentityServerUrl\"]\r\n return Url;\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BBSFTranslateService extends TranslateService {\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { UserManager, UserManagerSettings, User, WebStorageStateStore } from 'oidc-client';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { EnvironmentService } from '../services/environment.service';\r\nimport { BBSFTranslateService } from '../services/translate.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthService {\r\n\r\n // Observable navItem source\r\n private _authNavStatusSource = new BehaviorSubject<boolean>(false);\r\n // Observable navItem stream\r\n authNavStatus$ = this._authNavStatusSource.asObservable();\r\n // Observable navItem source\r\n private _userSource: Subject<User> = new Subject<User>();\r\n UserStatus$ = this._userSource.asObservable();\r\n private manager = new UserManager(\r\n {\r\n authority: this.environmentService.getIdentityServerUrl(),\r\n client_id: 'angular_spa',\r\n redirect_uri: this.environmentService.getIdentityServerUrl() +'/Admin/authentication/auth-callback',\r\n post_logout_redirect_uri: this.environmentService.getBaseUrl(),\r\n response_type: \"id_token token\",\r\n scope: \"openid profile email IdentityServerApi\",\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n automaticSilentRenew: true,\r\n silent_redirect_uri: this.environmentService.getIdentityServerUrl() + '/assets/silent-callback.html',\r\n userStore: new WebStorageStateStore({ store: window.localStorage })\r\n }\r\n );\r\n public redirectUrl: string = \"\"\r\n static user: User | null = null;\r\n user: User | null;\r\n\r\n constructor(private http: HttpClient, private environmentService: EnvironmentService,private translateService:BBSFTranslateService,private router: Router) {\r\n this.manager.getUser().then(async user => {\r\n this.manager.storeUser(user);\r\n AuthService.user = user;\r\n this.user = user;\r\n this._authNavStatusSource.next(await this.isAuthenticated());\r\n });\r\n this.manager.events.addAccessTokenExpired(_ => {\r\n this._authNavStatusSource.next(false);\r\n })\r\n }\r\n\r\n login() {\r\n return this.manager.signinRedirect();\r\n }\r\n\r\n getUser() {\r\n this.manager.getUser().then(async user => {\r\n ;\r\n AuthService.user = user;\r\n this.user = user\r\n this._authNavStatusSource.next(await this.isAuthenticated());\r\n });\r\n }\r\n storUser(User: any) {\r\n this.manager.storeUser(User);\r\n }\r\n\r\n revokeAccessToken() {\r\n this.manager.revokeAccessToken();\r\n }\r\n\r\n signinSilent() {\r\n\r\n let x = this.manager.signinSilentCallback()\r\n x.then(s => {\r\n //console.log(s)\r\n })\r\n }\r\n\r\n async completeAuthentication() {\r\n this.user = await this.manager.signinRedirectCallback();\r\n AuthService.user = this.user\r\n if(!localStorage.getItem(\"language\")||localStorage.getItem(\"language\")==this.user.profile.locale)\r\n localStorage.setItem(\"language\",this.user.profile.locale)\r\n \r\n if(this.translateService.currentLang!=localStorage.getItem(\"language\"))\r\n {\r\n this.translateService.resetLang(this.translateService.currentLang)\r\n await this.translateService.reloadLang(localStorage.getItem(\"language\")).subscribe((res)=>{\r\n console.log(res)\r\n })\r\n }\r\n this._userSource.next(AuthService.user)\r\n this._authNavStatusSource.next(await this.isAuthenticated());\r\n }\r\n\r\n \r\n\r\n\r\n async refreshToken(token) {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': token\r\n })\r\n };\r\n \r\n this.manager.revokeAccessToken()\r\n return await this.http.post<any>(`${this.environmentService.getIdentityServerUrl()}/users/refresh-token`, httpOptions, { withCredentials: true }).subscribe((user) => {\r\n this._userSource.next(user)\r\n AuthService.user = user\r\n this.user = user;\r\n })\r\n }\r\n\r\n getCurrentUser() {\r\n return this.manager.getUser()\r\n }\r\n\r\n async isAuthenticated(): Promise<boolean> {\r\n let user = await this.manager.getUser().then(user => {\r\n return user;\r\n })\r\n return this.user != null && !this.user.expired ;\r\n\r\n }\r\n isUserInRole(allowedPermission: number[]) {\r\n let selectedPermissionSetID:number = Number.parseInt( this.user.profile[\"selectedpermissionsetid\"])\r\n return allowedPermission.includes(selectedPermissionSetID);\r\n }\r\n\r\n authorizationHeaderValue(): string {\r\n return AuthService.user? `${AuthService.user.token_type} ${AuthService.user.access_token}`:\"\";\r\n }\r\n\r\n name(): string {\r\n return AuthService.user != null ? AuthService.user.profile.given_name : '';\r\n }\r\n setUrl(url) {\r\n localStorage.setItem(\"redirectUrl\", url)\r\n\r\n }\r\n getUrl() {\r\n return localStorage.getItem(\"redirectUrl\");\r\n }\r\n async signinSilentCallback() {\r\n let user = await this.manager.signinSilentCallback()\r\n //await this.manager.storeUser(user);\r\n AuthService.user = user;\r\n console.log(\"Token from signinSilentCallback :\"+AuthService.user)\r\n this.user = user;\r\n }\r\n async signout() {\r\n if(await !this.isAuthenticated())\r\n this.router.navigate(['/Admin/account/login']),\r\n localStorage.clear();\r\n await this.manager.signoutRedirect();\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Injectable, Optional, Host, SkipSelf, Component } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { AuthService } from '../authentication/auth.service';\r\nimport { BBSFTranslateService } from './translate.service';\r\nimport { AppInjector } from '../../bbsf-utilities.module';\r\nimport { EnvironmentService } from './environment.service';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n\r\n isCreatedBefore = false;\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n constructor(private translator: BBSFTranslateService, private authService: AuthService , private environmentService: EnvironmentService,) {\r\n\r\n }\r\n\r\n\r\n getResourceValue(Key: string): string {\r\n let ResourceValue =this.translator.instant(Key)\r\n return ResourceValue;\r\n\r\n }\r\n\r\n getCurrentLanguage() {\r\n let currentLanguage = this.environmentService.getDefaultLanguage();\r\n let lang = localStorage.getItem('language');\r\n if ( lang) \r\n currentLanguage=lang;\r\n else \r\n localStorage.setItem('language', currentLanguage);\r\n return currentLanguage;\r\n }\r\n isCurrentLanguageEnglish() {\r\n return this.getCurrentLanguage() == \"en\"\r\n }\r\n isCurrentLanguageArabic() {\r\n return this.getCurrentLanguage() == \"ar\"\r\n }\r\n\r\n notifySuccessMessage(Message?: string, title?: string, time?: number) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"SuccessMessage\");\r\n let titleTemplate = this.getResourceValue(\"Success\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n let toaster = AppInjector.get(ToastrService);\r\n toaster.success(MessageTemplate, titleTemplate);\r\n }\r\n\r\n notifyErrorMessage(Message?: string, title?: string, time?: number) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"ErrorMessage\");\r\n let titleTemplate = this.getResourceValue(\"Error\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = AppInjector.get(ToastrService);\r\n toaster.error(MessageTemplate, titleTemplate);\r\n }\r\n\r\n notifyWarningMessage(Message?: string, title?: string, time?: number) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"WarningMessage\");\r\n let titleTemplate = this.getResourceValue(\"Warning\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = AppInjector.get(ToastrService);\r\n toaster.warning(MessageTemplate, titleTemplate);\r\n }\r\n\r\n startBlockUI() {\r\n this.blockUI.start();\r\n }\r\n stopBlockUI() {\r\n this.blockUI.stop();\r\n }\r\n}\r\n","import { FormGroup } from \"@angular/forms\";\r\n\r\nexport class RequestOptionsModel {\r\n disableSuccessNotification: boolean=false;\r\n disableBlockUI: boolean=false;\r\n customSuccessMessage: string;\r\n customErrorMessage: string;\r\n responseType:any=\"\"\r\n formGroup:FormGroup=null\r\n}\r\n","import { Injectable, OnDestroy, Pipe } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { RequestOptionsModel } from '../models/RequestOptionsModel';\r\nimport { AuthService } from '../authentication/auth.service';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { UtilityService } from './utility.service';\r\nimport { map, takeUntil, tap } from 'rxjs/operators';\r\nimport { BBSFTranslateService } from './translate.service';\r\nimport { plainToClass } from 'class-transformer';\r\n\r\n\r\n@Injectable()\r\nexport class RequestHandlerService implements OnDestroy {\r\n private requestOptions: RequestOptionsModel = new RequestOptionsModel();\r\n private currentLanguage = \"\";\r\n public onDestroy$: Subject<void> = new Subject<void>();\r\n constructor\r\n (\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private environmentService: EnvironmentService,\r\n private utilityService: UtilityService,\r\n private bbsfTranslateService: BBSFTranslateService\r\n ) {\r\n //using localStorage to avoid call getCurrentLanguage() because it is not all to use async in constructor\r\n\r\n this.bbsfTranslateService.onLangChange.subscribe((event) => {\r\n if (this.currentLanguage != event.lang) {\r\n this.currentLanguage = event.lang;\r\n }\r\n })\r\n }\r\n\r\n public getLuckyNumber(): Observable<number> {\r\n \r\n return Observable.create((subject: Subject<number>) => {\r\n setInterval(() => {\r\n const number = Math.floor(Math.random() * 10);\r\n console.log(number)\r\n subject.next(number);\r\n }, 1000);\r\n }).pipe(\r\n takeUntil(this.onDestroy$));\r\n }\r\n\r\n\r\n get<T>(Url: string, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel ):Observable<T>{\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n let object:T;\r\n return this.http.get<T>(this.environmentService.getApiUrl() + Url, { headers: headers, params: params }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }),map((data: T) => {\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true })\r\n }) \r\n ) as Observable<T>;\r\n }\r\n\r\n post<T>(Url: string, model?: any, responseType?: new () => T, params?: HttpParams, requestOptions?: RequestOptionsModel):Observable<T> {\r\n \r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.post<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }),map((data: T) => {\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true })\r\n }) \r\n );\r\n }\r\n\r\n\r\n \r\n delete<T>(Url: string,deletedId:string, requestOptions?: RequestOptionsModel, responseType?: new () => T,params?: HttpParams):Observable<T>{\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.delete<T>(this.environmentService.getApiUrl() + Url+`/${deletedId}`, { headers: headers, params: params }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }),map((data: T) => {\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true })\r\n }) \r\n );\r\n }\r\n\r\n\r\n put<T>(Url: string, model?: any, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel):Observable<T> {\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.put<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }),map((data: T) => {\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true })\r\n }) \r\n );\r\n }\r\n \r\n download<T>(Url: string, params?: HttpParams, requestOptions?: RequestOptionsModel):Observable<T> { \r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.get<T>(this.environmentService.getApiUrl() + Url, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n })\r\n );\r\n }\r\n\r\n public destroyHandler(): void {\r\n this.onDestroy$.next();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n console.log(\"clearInterval\")\r\n this.destroyHandler()\r\n }\r\n}\r\n\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { BBSFTranslateService } from './translate.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StylesBundleService {\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document,private translateService: BBSFTranslateService){}\r\n\r\n loadThemes(lang: string,bundleEnglishName:string,bundleArabicName:string) {\r\n if (lang == \"ar\") {\r\n this.loadStyleBundle(bundleArabicName.toString())\r\n document.querySelector('html').setAttribute(\"lang\", \"ar\");\r\n document.querySelector('html').setAttribute(\"dir\", \"rtl\");\r\n } else {\r\n this.loadStyleBundle(bundleEnglishName.toString())\r\n document.querySelector('html').setAttribute(\"lang\", \"en\");\r\n document.querySelector('html').setAttribute(\"dir\", \"ltr\");\r\n }\r\n \r\n }\r\n\r\n loadThemesColor(theme: string,bundleDarkName:string,bundleLightName:string) {\r\n if (theme == \"Light\") \r\n this.loadStyleBundle(bundleLightName.toString());\r\n else\r\n this.loadStyleBundle(bundleDarkName.toString())\r\n }\r\n\r\n loadStyleBundle(styleName: string) {\r\n const head = this.document.getElementsByTagName('head')[0];\r\n\r\n let themeLink = this.document.getElementById('client-theme') as HTMLLinkElement;\r\n\r\n if (themeLink && themeLink.href.includes(styleName)) {\r\n return;\r\n }\r\n else if (themeLink && !themeLink.href.includes(styleName)) {\r\n themeLink.remove();\r\n }\r\n const style = this.document.createElement('link');\r\n style.id = 'client-theme';\r\n style.rel = 'stylesheet';\r\n style.href = `${styleName}`;\r\n head.appendChild(style);\r\n }\r\n\r\n}\r\n\r\n","import { Injectable, Optional, Host, SkipSelf, Component } from '@angular/core';\r\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { AbstractControl, ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl, FormsModule, FormGroup } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { ErrorModel } from '../models/ErrorModel';\r\nimport { UtilityService } from './utility.service';\r\nimport { RequestOptionsModel } from '../models/RequestOptionsModel';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ControlValidationService {\r\n private requestOptions: RequestOptionsModel = new RequestOptionsModel();\r\n\r\n constructor\r\n (\r\n private utilityService: UtilityService\r\n ) {\r\n\r\n }\r\n\r\n isCreatedBefor = false;\r\n\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n showGlobalError(errorMessage?: string | string[], formId?: string, deleteOld?: boolean) {\r\n let globalErorrElement = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger')\r\n if (globalErorrElement.length > 0) {\r\n this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');\r\n }\r\n\r\n\r\n if (this.isCreatedBefor == true) {\r\n this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');\r\n }\r\n\r\n // tslint:disable-next-line: prefer-const\r\n if (!formId)\r\n formId = \"currentForm\"\r\n var object = document.getElementById(formId);\r\n const tagName = 'div';\r\n // tslint:disable-next-line: prefer-const\r\n var elementToAppend = document.createElement(tagName); // Your tag name here\r\n let message: string | string[] = \"\";\r\n\r\n\r\n if (!errorMessage || (typeof errorMessage == \"string\")) {\r\n if (localStorage.getItem('language') == \"ar\")\r\n message = errorMessage ? errorMessage : \"لديك بعص الأخطاء . من فضلك قم بالمراجعه \";\r\n else\r\n message = errorMessage ? errorMessage : \"You have some validation errors. Please check below\"\r\n elementToAppend.innerHTML = \"<ul class='list-unstyled m-0 py-3 d-flex align-items-center fs-6'><li><i class='fa fa-times-circle text-danger me-3 fs-2'></i>\" + message + \"</li></ul>\";\r\n elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';\r\n elementToAppend.id += 'errorId';\r\n // tslint:disable-next-line: prefer-for-of\r\n const elementToAppen = elementToAppend.cloneNode(true);\r\n // let targetElement = object.getElementsByClassName(\"b-control\")[0];\r\n object.insertBefore(elementToAppen, object.firstChild);\r\n }\r\n else {\r\n elementToAppend.innerHTML = \"<ul>\";\r\n\r\n for (const iterator of errorMessage) {\r\n\r\n elementToAppend.innerHTML = \"<li>\" + iterator + \"</li>\";\r\n }\r\n\r\n elementToAppend.innerHTML = \"</ul>\";\r\n elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';\r\n elementToAppend.id += 'errorId';\r\n // tslint:disable-next-line: prefer-for-of\r\n const elementToAppen = elementToAppend.cloneNode(true);\r\n // let targetElement = object.getElementsByClassName(\"b-control\")[0];\r\n object.insertBefore(elementToAppen, object.firstChild);\r\n }\r\n\r\n this.isCreatedBefor = true;\r\n\r\n }\r\n\r\n RemoveGlobalError() {\r\n const removedList = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger');\r\n // tslint:disable-next-line: prefer-for-of\r\n for (let index = 0; index < removedList.length; index++) {\r\n const element = removedList[index];\r\n element.remove();\r\n }\r\n this.isCreatedBefor = false;\r\n }\r\n\r\n showInputErro(errors: any) {\r\n\r\n // show error on top of form \r\n this.showGlobalError();\r\n // remove old error from server\r\n this.removeElementsByClass('errortemplet');\r\n // Looping in error Object\r\n for (const key in errors) {\r\n if (errors.hasOwnProperty(key)) {\r\n for (const iterator of errors[key]) {\r\n const input = document.querySelectorAll('[ng-reflect-name=' + key + ']')[0];\r\n if ((input.attributes['ng-reflect-name'].value as string) === key) {\r\n this.removeElementsByClass('erroclass-' + key);\r\n const tagName = 'p'\r\n const elementToAppend = document.createElement(tagName); // Your tag name here\r\n elementToAppend.innerHTML = iterator;\r\n elementToAppend.style.color = 'red'\r\n elementToAppend.className += 'errortemplet erroclass-' + key;\r\n const elementToappen = elementToAppend.cloneNode(true);\r\n input.parentNode.insertBefore(elementToappen, input.lastChild);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeElementsByClass(className) {\r\n const elements = document.getElementsByClassName(className);\r\n while (elements.length > 0) {\r\n elements[0].parentNode.removeChild(elements[0]);\r\n }\r\n }\r\n\r\n\r\n renderServerErrors(form: FormGroup, err: HttpErrorResponse, requestOptions: RequestOptionsModel, formId?: string) {\r\n if (err.error == null) {\r\n return;\r\n }\r\n let errorsArray: string[] = [];\r\n\r\n this.requestOptions = requestOptions;\r\n err.error.validation_errors.forEach((element: ErrorModel) => {\r\n let fieldName = element.field;\r\n let controlName = element.controlName;\r\n let message = element.message;\r\n if (form == null) {\r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${fieldName}: ${message}`);\r\n }\r\n else if (controlName && !this.hasControlName(form, controlName)) {\r\n errorsArray.push(`${fieldName}: ${message}`);\r\n // this.showGlobalError(`${fieldName}: ${message}`,formId )\r\n }\r\n else {\r\n this.setFieldError(form, controlName, fieldName, message);\r\n }\r\n });\r\n if (errorsArray.length > 0)\r\n this.showGlobalError(errorsArray, formId)\r\n\r\n\r\n }\r\n\r\n private hasControlName(form: FormGroup, controlName: string): boolean {\r\n let control = form.get(controlName);\r\n return control != null;\r\n }\r\n\r\n private setFieldError(form: FormGroup, controlName: string, fieldName: string, message: string) {\r\n let control = null\r\n if (controlName)\r\n control = form.get(controlName);\r\n else\r\n control = form.get(fieldName.split('.')[0]);\r\n let errors = { \"errorMassage\": message };\r\n let fieldNameArray = fieldName.split('.');\r\n if (fieldNameArray.length >= 1) {\r\n switch (fieldNameArray[fieldNameArray.length - 1].toLocaleLowerCase()) {\r\n case \"english\":\r\n let englishControl = control.get(\"English\")\r\n englishControl.setErrors(errors);\r\n break;\r\n case \"arabic\":\r\n let arabicControl = control.get(\"Arabic\")\r\n arabicControl.setErrors(errors);\r\n break;\r\n\r\n default:\r\n control.setErrors(errors);\r\n }\r\n\r\n }\r\n else if (fieldNameArray.length == 1) {\r\n control.setErrors(errors);\r\n }\r\n else {\r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${fieldName}: ${message}`)\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n}\r\n","import { HttpParams } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { AuthService } from \"../authentication/auth.service\";\r\nimport { RequestHandlerService } from \"./requesthandler.service\";\r\nimport { StylesBundleService } from \"./stylesbundle.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MasterLayoutService {\r\n ApiUrl=\"/api/Home/\"\r\n constructor(private router: Router, private http: RequestHandlerService, private authService: AuthService,private stylesBundleService:StylesBundleService ,private translate:TranslateService) {\r\n }\r\n switchLang(lang: string, bundleEnglishName: string, bundleArabicName: string) {\r\n this.changeLanguage(lang).subscribe((result) => {\r\n this.updateUserInfo().subscribe((Value) => {\r\n let UserInfoObject =Value ;\r\n this.authService.getUser();\r\n this.authService.user.profile = Object.assign( this.authService.user.profile, UserInfoObject);\r\n this.authService.storUser(this.authService.user);\r\n this.stylesBundleService.loadThemes(lang,bundleEnglishName,bundleArabicName);\r\n localStorage.setItem('language', lang);\r\n this.translate.use(lang);\r\n });\r\n });\r\n }\r\n \r\n reloadComponent() {\r\n let currentUrl = this.router.url;\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate([currentUrl]);\r\n }\r\n\r\n private changeLanguage(key: string) {\r\n let params = new HttpParams();\r\n params = params.append(\"UserId\", this.authService.user.profile.id);\r\n params = params.append(\"LanguageKey\", key);\r\n return this.http.post(this.ApiUrl + 'UpdateLanguage', null,null, params)\r\n }\r\n\r\n logError(error: string) {\r\n let params = new HttpParams();\r\n params = params.append(\"error\", error);\r\n return this.http.post(this.ApiUrl + 'LogError', null,null, params)\r\n }\r\n \r\n private updateUserInfo() {\r\n return this.http.get('/connect/userinfo')\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injector, NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { HttpModule } from '@angular/http';\r\nimport { UtilityService } from './shared/services/utility.service';\r\nimport { EnvironmentService } from './shared/services/environment.service';\r\nimport { AuthService } from './shared/authentication/auth.service';\r\nimport { RequestHandlerService } from './shared/services/requesthandler.service';\r\nimport { StylesBundleService } from './shared/services/stylesbundle.service';\r\nimport { BBSFTranslateService } from './shared/services/translate.service';\r\nimport { ControlValidationService } from './shared/services/controlvalidation.service';\r\nimport { MasterLayoutService } from './shared/services/masterlayout.service';\r\n\r\nexport let AppInjector: Injector;\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n CommonModule,\r\n BlockUIModule.forRoot(),\r\n HttpModule,\r\n RouterModule,\r\n ToastrModule.forRoot(),\r\n\r\n ],\r\n exports: [\r\n \r\n ],\r\n providers:[\r\n UtilityService,\r\n EnvironmentService,\r\n AuthService,\r\n RequestHandlerService,\r\n StylesBundleService,\r\n TranslateService,\r\n BBSFTranslateService,\r\n ControlValidationService,\r\n MasterLayoutService\r\n ]\r\n})\r\nexport class BBSFUtilitiesModule { \r\n\r\n constructor(private injector: Injector) {\r\n AppInjector = this.injector;\r\n\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Resolve } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { BBSFTranslateService } from \"./translate.service\";\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TranslationResolverService implements Resolve<any> {\r\n constructor(private translateService: BBSFTranslateService) {}\r\n\r\n resolve(): Observable<any> {\r\n return this.translateService.getTranslation(\r\n this.translateService.currentLang\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppearanceConfigurationService {\r\n getLayoutTheme() {\r\n return localStorage.getItem('AnonymousLayout_Theme');\r\n }\r\n getFooterText() {\r\n return localStorage.getItem('AnonymousLayout_FooterText');\r\n }\r\n getPageTitle() {\r\n return localStorage.getItem('AnonymousLayout_PageTitle');\r\n }\r\n getFavIcon() {\r\n return localStorage.getItem('AnonymousLayout_FavIcon');\r\n }\r\n getCustomStyles() {\r\n return localStorage.getItem('AnonymousLayout_CustomStyles');\r\n }\r\n getLogo() {\r\n return localStorage.getItem('AnonymousLayout_Logo');\r\n }\r\n}","/*\r\n * Public API Surface of @bnsights/bbsf-utilities\r\n */\r\n\r\nexport * from './lib/bbsf-utilities.module';\r\n\r\nexport * from './lib/shared/services/utility.service';\r\nexport * from './lib/shared/services/environment.service';\r\nexport * from './lib/shared/services/requesthandler.service'\r\nexport * from './lib/shared/services/stylesbundle.service'\r\nexport * from './lib/shared/services/translate.service'\r\nexport * from './lib/shared/services/controlvalidation.service'\r\nexport * from './lib/shared/services/masterlayout.service'\r\nexport * from './lib/shared/services/translationresolver.service'\r\nexport * from './lib/shared/services/AppearanceConfiguration.service'\r\n\r\nexport * from './lib/shared/config/environment';\r\n\r\n\r\nexport * from './lib/shared/authentication/auth.service';\r\n\r\n\r\nexport * from './lib/shared/models/RequestOptionsModel';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -2,10 +2,12 @@ import { HttpClient } from '@angular/common/http';
2
2
  import { User } from 'oidc-client';
3
3
  import { EnvironmentService } from '../services/environment.service';
4
4
  import { BBSFTranslateService } from '../services/translate.service';
5
+ import { Router } from '@angular/router';
5
6
  export declare class AuthService {
6
7
  private http;
7
8
  private environmentService;
8
9
  private translateService;
10
+ private router;
9
11
  private _authNavStatusSource;
10
12
  authNavStatus$: import("rxjs").Observable<boolean>;
11
13
  private _userSource;
@@ -14,7 +16,7 @@ export declare class AuthService {
14
16
  redirectUrl: string;
15
17
  static user: User | null;
16
18
  user: User | null;
17
- constructor(http: HttpClient, environmentService: EnvironmentService, translateService: BBSFTranslateService);
19
+ constructor(http: HttpClient, environmentService: EnvironmentService, translateService: BBSFTranslateService, router: Router);
18
20
  login(): Promise<void>;
19
21
  getUser(): void;
20
22
  storUser(User: any): void;
@@ -0,0 +1,4 @@
1
+ export declare class AreaModel {
2
+ PermissionSetID: number;
3
+ AreaUrl: string;
4
+ }
@@ -0,0 +1,8 @@
1
+ export declare class AppearanceConfigurationService {
2
+ getLayoutTheme(): string;
3
+ getFooterText(): string;
4
+ getPageTitle(): string;
5
+ getFavIcon(): string;
6
+ getCustomStyles(): string;
7
+ getLogo(): string;
8
+ }
@@ -1,4 +1,6 @@
1
+ import { AreaModel } from '../models/AreaModel';
1
2
  export declare class EnvironmentService {
3
+ static AreaList: AreaModel[];
2
4
  getEnvironmentObject(): any;
3
5
  getBaseUrl(): any;
4
6
  getApiUrl(): any;
@@ -14,5 +14,6 @@ export declare class MasterLayoutService {
14
14
  switchLang(lang: string, bundleEnglishName: string, bundleArabicName: string): void;
15
15
  reloadComponent(): void;
16
16
  private changeLanguage;
17
+ logError(error: string): import("rxjs").Observable<unknown>;
17
18
  private updateUserInfo;
18
19
  }