@esfaenza/core 15.2.0 → 15.2.2

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 (86) hide show
  1. package/assets/favicon.ico +0 -0
  2. package/assets/fonts/fontawesome/FontAwesome.otf +0 -0
  3. package/assets/fonts/fontawesome/fontawesome-webfont.eot +0 -0
  4. package/assets/fonts/fontawesome/fontawesome-webfont.svg +2671 -0
  5. package/assets/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
  6. package/assets/fonts/fontawesome/fontawesome-webfont.woff +0 -0
  7. package/assets/fonts/fontawesome/fontawesome-webfont.woff2 +0 -0
  8. package/assets/fonts/google/Roboto/Roboto-Black.ttf +0 -0
  9. package/assets/fonts/google/Roboto/Roboto-BlackItalic.ttf +0 -0
  10. package/assets/fonts/google/Roboto/Roboto-Bold.ttf +0 -0
  11. package/assets/fonts/google/Roboto/Roboto-BoldItalic.ttf +0 -0
  12. package/assets/fonts/google/Roboto/Roboto-Italic.ttf +0 -0
  13. package/assets/fonts/google/Roboto/Roboto-Light.ttf +0 -0
  14. package/assets/fonts/google/Roboto/Roboto-LightItalic.ttf +0 -0
  15. package/assets/fonts/google/Roboto/Roboto-Medium.ttf +0 -0
  16. package/assets/fonts/google/Roboto/Roboto-MediumItalic.ttf +0 -0
  17. package/assets/fonts/google/Roboto/Roboto-Regular.ttf +0 -0
  18. package/assets/fonts/google/Roboto/Roboto-Thin.ttf +0 -0
  19. package/assets/fonts/google/Roboto/Roboto-ThinItalic.ttf +0 -0
  20. package/assets/img/events/christmas.png +0 -0
  21. package/assets/img/events/halloween.png +0 -0
  22. package/assets/img/logo/cube-1.jpg +0 -0
  23. package/assets/img/logo/cube-2.jpg +0 -0
  24. package/assets/img/logo/cube-3.jpg +0 -0
  25. package/assets/img/logo/cube-4.jpg +0 -0
  26. package/assets/img/logo/cube-5.jpg +0 -0
  27. package/assets/img/logo/cube-6.jpg +0 -0
  28. package/assets/img/logo/cube-7.jpg +0 -0
  29. package/assets/img/logo/cube-8.jpg +0 -0
  30. package/assets/img/logo/cube-9.jpg +0 -0
  31. package/assets/img/users/user.jpg +0 -0
  32. package/assets/pwa/icons/JACE_072x072.png +0 -0
  33. package/assets/pwa/icons/JACE_096-x096.png +0 -0
  34. package/assets/pwa/icons/JACE_128x128.png +0 -0
  35. package/assets/pwa/icons/JACE_144x144.png +0 -0
  36. package/assets/pwa/icons/JACE_152x152.png +0 -0
  37. package/assets/pwa/icons/JACE_192x162.png +0 -0
  38. package/assets/pwa/icons/JACE_384x384.png +0 -0
  39. package/assets/pwa/icons/JACE_512x512.png +0 -0
  40. package/assets/scripts/index.html.js +44 -0
  41. package/assets/scripts/jquery-ui.min.js +6 -0
  42. package/assets/styles/font-awesome.min.css +2929 -0
  43. package/assets/styles/toastr.min.css +266 -0
  44. package/components/components.module.d.ts +2 -1
  45. package/components/navbar/navbar.component.d.ts +3 -6
  46. package/domain/models/core/classes/EnvOptions.d.ts +1 -0
  47. package/domain/models/jace/classes/JaceRole.d.ts +1 -0
  48. package/esm2020/components/components.module.mjs +5 -4
  49. package/esm2020/components/jace-login/jace-login.component.mjs +5 -2
  50. package/esm2020/components/navbar/navbar.component.mjs +19 -21
  51. package/esm2020/domain/models/core/classes/EnvOptions.mjs +10 -1
  52. package/esm2020/domain/models/jace/classes/JaceRole.mjs +6 -1
  53. package/esm2020/lib/app.component.mjs +2 -2
  54. package/esm2020/lib/core.module.mjs +35 -44
  55. package/esm2020/modules/classes/_shared.module.mjs +44 -0
  56. package/esm2020/modules/public-api.mjs +2 -1
  57. package/esm2020/public-api.mjs +1 -2
  58. package/esm2020/services/classes/app.session.mjs +2 -3
  59. package/esm2020/services/classes/app.state.mjs +5 -5
  60. package/esm2020/services/classes/preferences/app.cache.persistor.mjs +7 -7
  61. package/esm2020/services/classes/preferences/app.preference.persistor.mjs +6 -6
  62. package/fesm2015/esfaenza-core-components.mjs +25 -23
  63. package/fesm2015/esfaenza-core-components.mjs.map +1 -1
  64. package/fesm2015/esfaenza-core-domain.mjs +14 -0
  65. package/fesm2015/esfaenza-core-domain.mjs.map +1 -1
  66. package/fesm2015/esfaenza-core-modules.mjs +45 -4
  67. package/fesm2015/esfaenza-core-modules.mjs.map +1 -1
  68. package/fesm2015/esfaenza-core-services.mjs +16 -16
  69. package/fesm2015/esfaenza-core-services.mjs.map +1 -1
  70. package/fesm2015/esfaenza-core.mjs +36 -46
  71. package/fesm2015/esfaenza-core.mjs.map +1 -1
  72. package/fesm2020/esfaenza-core-components.mjs +24 -23
  73. package/fesm2020/esfaenza-core-components.mjs.map +1 -1
  74. package/fesm2020/esfaenza-core-domain.mjs +14 -0
  75. package/fesm2020/esfaenza-core-domain.mjs.map +1 -1
  76. package/fesm2020/esfaenza-core-modules.mjs +45 -4
  77. package/fesm2020/esfaenza-core-modules.mjs.map +1 -1
  78. package/fesm2020/esfaenza-core-services.mjs +15 -16
  79. package/fesm2020/esfaenza-core-services.mjs.map +1 -1
  80. package/fesm2020/esfaenza-core.mjs +36 -46
  81. package/fesm2020/esfaenza-core.mjs.map +1 -1
  82. package/lib/core.module.d.ts +29 -28
  83. package/modules/classes/_shared.module.d.ts +26 -0
  84. package/modules/public-api.d.ts +1 -0
  85. package/package.json +4 -3
  86. package/public-api.d.ts +0 -1
@@ -5,7 +5,7 @@ import { Injectable } from "@angular/core";
5
5
  import { CachePersistor } from "@esfaenza/preferences";
6
6
  // Direttive, Componenti, Librerie
7
7
  import { of } from "rxjs";
8
- import { map } from "rxjs/operators";
8
+ import { catchError, map } from "rxjs/operators";
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@esfaenza/localizations";
11
11
  import * as i2 from "@angular/common/http";
@@ -26,13 +26,13 @@ export class ApplicationCachePersistor extends CachePersistor {
26
26
  let sk = this.session.getSessionKey();
27
27
  if (!sk)
28
28
  return of(false);
29
- return this.http.post(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() });
29
+ return this.http.post(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
30
30
  }
31
31
  recover(key) {
32
32
  let sk = this.session.getSessionKey();
33
33
  if (!sk)
34
34
  return of(null);
35
- return this.http.get(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(map((res) => {
35
+ return this.http.get(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
36
36
  var resProp = null;
37
37
  try {
38
38
  resProp = JSON.parse(res);
@@ -45,7 +45,7 @@ export class ApplicationCachePersistor extends CachePersistor {
45
45
  let sk = this.session.getSessionKey();
46
46
  if (!sk)
47
47
  return of(null);
48
- return this.http.get(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(map((res) => {
48
+ return this.http.get(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
49
49
  for (var prop in res) {
50
50
  var resProp = null;
51
51
  try {
@@ -61,13 +61,13 @@ export class ApplicationCachePersistor extends CachePersistor {
61
61
  let sk = this.session.getSessionKey();
62
62
  if (!sk)
63
63
  return of(false);
64
- return this.http.delete(this.getItemUrl(sk, key), { headers: this.getHeaders() });
64
+ return this.http.delete(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
65
65
  }
66
66
  clear() {
67
67
  let sk = this.session.getSessionKey();
68
68
  if (!sk)
69
69
  return of(false);
70
- return this.http.delete(this.getItemsUrl(sk), { headers: this.getHeaders() });
70
+ return this.http.delete(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
71
71
  }
72
72
  getHeaders(contentType = 'application/json') {
73
73
  return new HttpHeaders()
@@ -91,4 +91,4 @@ ApplicationCachePersistor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.
91
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ApplicationCachePersistor, decorators: [{
92
92
  type: Injectable
93
93
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.HttpClient }, { type: i3.TokenService }, { type: i4.BaseSessionRetriever }]; } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNhY2hlLnBlcnNpc3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc2VydmljZXMvc3JjL2NsYXNzZXMvcHJlZmVyZW5jZXMvYXBwLmNhY2hlLnBlcnNpc3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBd0IsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJN0Usa0NBQWtDO0FBQ2xDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFFckMseUJBQXlCO0FBQ3pCLE1BQU0sbUJBQW1CLEdBQVkscUJBQXFCLENBQUM7QUFHM0QsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGNBQWM7SUFFekQsbUdBQW1HO0lBQ25HLHNHQUFzRztJQUN0RyxZQUFvQixFQUF1QixFQUFVLElBQWdCLEVBQVUsR0FBaUIsRUFBRSxPQUE2QjtRQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUE5SCxPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFjO0lBQW1ELENBQUM7SUFFN0ksT0FBTyxDQUFJLEdBQVcsRUFBRSxJQUFPO1FBQ2xDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFVLElB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QUM7YUFDbkMsTUFBTSxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQzthQUNwQyxNQUFNLENBQUMsZUFBZSxFQUFFLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQzlELE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTyxhQUFhLENBQUMsVUFBa0I7UUFDcEMsT0FBTyxHQUFHLG1CQUFtQixJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTyxXQUFXLENBQUMsVUFBa0I7UUFDbEMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUNyRCxDQUFDO0lBRU8sVUFBVSxDQUFDLFVBQWtCLEVBQUUsT0FBZTtRQUNsRCxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUN4RCxDQUFDOztzSEF4RVEseUJBQXlCOzBIQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBCYXNlU2Vzc2lvblJldHJpZXZlciwgQ2FjaGVQZXJzaXN0b3IgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIi4uL2FwcC5hY2Nlc3N0b2tlblwiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLy8gQ2hpYW1hdGUgYWkgUmVwb3NpdG9yeVxyXG5jb25zdCBCQVNFX0NhY2hlX1Nlc3Npb25zOiBzdHJpbmcgPSAgXCIvYXBpL0NhY2hlL3Nlc3Npb25zXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlUGVyc2lzdG9yIGV4dGVuZHMgQ2FjaGVQZXJzaXN0b3Ige1xyXG5cclxuICAgIC8vIFBhc3NvIGRpcmV0dGFtZW50ZSBkYWxsJ0h0dHBDbGllbnQgbmF0aXZvIGluIHF1YW50byBub24gcG9zc28gcGFzc2FyZSBkYWxsJ0h0dHBTZXJ2aWNlIGRhdG8gY2hlIFxyXG4gICAgLy8gbHVpIHJpY2hpZWRlIGlsIFByZWZlcmVuY2VzU2VydmljZSBjaGUgcmljaGllZGUgcXVlc3RhIGNsYXNzZSBjaGUgcmljaGllZGUgbCdIdHRwU2VydmljZSBlY2MgZWNjLi4uXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgdGtzOiBUb2tlblNlcnZpY2UsIHNlc3Npb246IEJhc2VTZXNzaW9uUmV0cmlldmVyKSB7IHN1cGVyKHNlc3Npb24pOyB9XHJcblxyXG4gICAgcHVibGljIHBlcnNpc3Q8VD4oa2V5OiBzdHJpbmcsIGl0ZW06IFQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBsZXQgc2sgPSB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpO1xyXG4gICAgICAgIGlmICghc2spIHJldHVybiBvZihmYWxzZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxib29sZWFuPih0aGlzLmdldEl0ZW1Vcmwoc2ssIGtleSksIEpTT04uc3RyaW5naWZ5KGl0ZW0pLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWNvdmVyPFQ+KGtleT86IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKG51bGwpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzdHJpbmc+KHRoaXMuZ2V0SXRlbVVybChzaywga2V5KSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KS5waXBlKG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciByZXNQcm9wID0gbnVsbDtcclxuICAgICAgICAgICAgdHJ5IHsgcmVzUHJvcCA9IDxUPkpTT04ucGFyc2UocmVzKTsgfVxyXG4gICAgICAgICAgICBjYXRjaCB7IH1cclxuICAgICAgICAgICAgcmV0dXJuIHJlc1Byb3A7XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWNvdmVyQWxsKCk6IE9ic2VydmFibGU8eyBbaW5kZXg6IHN0cmluZ106IGFueTsgfT4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKG51bGwpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDx7IFtpbmRleDogc3RyaW5nXTogYW55OyB9Pih0aGlzLmdldFNlc3Npb25Vcmwoc2spLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUobWFwKChyZXMpID0+IHtcclxuICAgICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiByZXMpIHtcclxuICAgICAgICAgICAgICAgIHZhciByZXNQcm9wID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHRyeSB7IHJlc1Byb3AgPSBKU09OLnBhcnNlKHJlc1twcm9wXSk7IH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIHsgfVxyXG4gICAgICAgICAgICAgICAgcmVzW3Byb3BdID0gcmVzUHJvcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzXHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmUoa2V5Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgbGV0IHNrID0gdGhpcy5zZXNzaW9uLmdldFNlc3Npb25LZXkoKTtcclxuICAgICAgICBpZiAoIXNrKSByZXR1cm4gb2YoZmFsc2UpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxib29sZWFuPih0aGlzLmdldEl0ZW1Vcmwoc2ssIGtleSksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsZWFyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKGZhbHNlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8Ym9vbGVhbj4odGhpcy5nZXRJdGVtc1VybChzayksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRIZWFkZXJzKGNvbnRlbnRUeXBlOiBzdHJpbmcgPSAnYXBwbGljYXRpb24vanNvbicpOiBIdHRwSGVhZGVycyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoXCJDb250ZW50LVR5cGVcIiwgY29udGVudFR5cGUpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoXCJBY2NlcHRcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoXCJBdXRob3JpemF0aW9uXCIsIFwiQmVhcmVyIFwiICsgdGhpcy50a3MuZ2V0QWNjZXNzVG9rZW4oKSlcclxuICAgICAgICAgICAgLmFwcGVuZChcIkFjY2VwdC1MYW5ndWFnZVwiLCB0aGlzLmxjLkxvY2FsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTZXNzaW9uVXJsKHNlc3Npb25LZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke0JBU0VfQ2FjaGVfU2Vzc2lvbnN9LyR7c2Vzc2lvbktleX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SXRlbXNVcmwoc2Vzc2lvbktleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRTZXNzaW9uVXJsKHNlc3Npb25LZXkpfS9pdGVtc2A7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRJdGVtVXJsKHNlc3Npb25LZXk6IHN0cmluZywgaXRlbUtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRJdGVtc1VybChzZXNzaW9uS2V5KX0vJHtpdGVtS2V5fWA7XHJcbiAgICB9XHJcbn0iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNhY2hlLnBlcnNpc3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc2VydmljZXMvc3JjL2NsYXNzZXMvcHJlZmVyZW5jZXMvYXBwLmNhY2hlLnBlcnNpc3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBd0IsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJN0Usa0NBQWtDO0FBQ2xDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBRWpELHlCQUF5QjtBQUN6QixNQUFNLG1CQUFtQixHQUFZLHFCQUFxQixDQUFDO0FBRzNELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxjQUFjO0lBRXpELG1HQUFtRztJQUNuRyxzR0FBc0c7SUFDdEcsWUFBb0IsRUFBdUIsRUFBVSxJQUFnQixFQUFVLEdBQWlCLEVBQUUsT0FBNkI7UUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFBOUgsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBYztJQUFtRCxDQUFDO0lBRTdJLE9BQU8sQ0FBSSxHQUFXLEVBQUUsSUFBTztRQUNsQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElB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clxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBCYXNlU2Vzc2lvblJldHJpZXZlciwgQ2FjaGVQZXJzaXN0b3IgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIi4uL2FwcC5hY2Nlc3N0b2tlblwiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLy8gQ2hpYW1hdGUgYWkgUmVwb3NpdG9yeVxyXG5jb25zdCBCQVNFX0NhY2hlX1Nlc3Npb25zOiBzdHJpbmcgPSAgXCIvYXBpL0NhY2hlL3Nlc3Npb25zXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlUGVyc2lzdG9yIGV4dGVuZHMgQ2FjaGVQZXJzaXN0b3Ige1xyXG5cclxuICAgIC8vIFBhc3NvIGRpcmV0dGFtZW50ZSBkYWxsJ0h0dHBDbGllbnQgbmF0aXZvIGluIHF1YW50byBub24gcG9zc28gcGFzc2FyZSBkYWxsJ0h0dHBTZXJ2aWNlIGRhdG8gY2hlIFxyXG4gICAgLy8gbHVpIHJpY2hpZWRlIGlsIFByZWZlcmVuY2VzU2VydmljZSBjaGUgcmljaGllZGUgcXVlc3RhIGNsYXNzZSBjaGUgcmljaGllZGUgbCdIdHRwU2VydmljZSBlY2MgZWNjLi4uXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgdGtzOiBUb2tlblNlcnZpY2UsIHNlc3Npb246IEJhc2VTZXNzaW9uUmV0cmlldmVyKSB7IHN1cGVyKHNlc3Npb24pOyB9XHJcblxyXG4gICAgcHVibGljIHBlcnNpc3Q8VD4oa2V5OiBzdHJpbmcsIGl0ZW06IFQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBsZXQgc2sgPSB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpO1xyXG4gICAgICAgIGlmICghc2spIHJldHVybiBvZihmYWxzZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxib29sZWFuPih0aGlzLmdldEl0ZW1Vcmwoc2ssIGtleSksIEpTT04uc3RyaW5naWZ5KGl0ZW0pLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKGZhbHNlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWNvdmVyPFQ+KGtleT86IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKG51bGwpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzdHJpbmc+KHRoaXMuZ2V0SXRlbVVybChzaywga2V5KSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KS5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKGUgPT4gb2YobnVsbCkpLFxyXG4gICAgICAgICAgICBtYXAoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc1Byb3AgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHsgcmVzUHJvcCA9IDxUPkpTT04ucGFyc2UocmVzKTsgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggeyB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzUHJvcDtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWNvdmVyQWxsKCk6IE9ic2VydmFibGU8eyBbaW5kZXg6IHN0cmluZ106IGFueTsgfT4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKG51bGwpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDx7IFtpbmRleDogc3RyaW5nXTogYW55OyB9Pih0aGlzLmdldFNlc3Npb25Vcmwoc2spLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZSA9PiBvZihudWxsKSksXHJcbiAgICAgICAgICAgIG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXNQcm9wID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB0cnkgeyByZXNQcm9wID0gSlNPTi5wYXJzZShyZXNbcHJvcF0pOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggeyB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzW3Byb3BdID0gcmVzUHJvcDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiByZXNcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmUoa2V5Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgbGV0IHNrID0gdGhpcy5zZXNzaW9uLmdldFNlc3Npb25LZXkoKTtcclxuICAgICAgICBpZiAoIXNrKSByZXR1cm4gb2YoZmFsc2UpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxib29sZWFuPih0aGlzLmdldEl0ZW1Vcmwoc2ssIGtleSksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSkucGlwZShjYXRjaEVycm9yKGUgPT4gb2YoZmFsc2UpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsZWFyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKGZhbHNlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8Ym9vbGVhbj4odGhpcy5nZXRJdGVtc1VybChzayksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSkucGlwZShjYXRjaEVycm9yKGUgPT4gb2YoZmFsc2UpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRIZWFkZXJzKGNvbnRlbnRUeXBlOiBzdHJpbmcgPSAnYXBwbGljYXRpb24vanNvbicpOiBIdHRwSGVhZGVycyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoXCJDb250ZW50LVR5cGVcIiwgY29udGVudFR5cGUpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoXCJBY2NlcHRcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoXCJBdXRob3JpemF0aW9uXCIsIFwiQmVhcmVyIFwiICsgdGhpcy50a3MuZ2V0QWNjZXNzVG9rZW4oKSlcclxuICAgICAgICAgICAgLmFwcGVuZChcIkFjY2VwdC1MYW5ndWFnZVwiLCB0aGlzLmxjLkxvY2FsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTZXNzaW9uVXJsKHNlc3Npb25LZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke0JBU0VfQ2FjaGVfU2Vzc2lvbnN9LyR7c2Vzc2lvbktleX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SXRlbXNVcmwoc2Vzc2lvbktleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRTZXNzaW9uVXJsKHNlc3Npb25LZXkpfS9pdGVtc2A7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRJdGVtVXJsKHNlc3Npb25LZXk6IHN0cmluZywgaXRlbUtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRJdGVtc1VybChzZXNzaW9uS2V5KX0vJHtpdGVtS2V5fWA7XHJcbiAgICB9XHJcbn0iXX0=
@@ -5,7 +5,7 @@ import { Injectable } from "@angular/core";
5
5
  import { PreferencesPersistor } from "@esfaenza/preferences";
6
6
  // Direttive, Componenti, Librerie
7
7
  import { of } from "rxjs";
8
- import { map } from "rxjs/operators";
8
+ import { catchError, map } from "rxjs/operators";
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@esfaenza/localizations";
11
11
  import * as i2 from "@angular/common/http";
@@ -26,7 +26,7 @@ export class ApplicationPreferencesPersistor extends PreferencesPersistor {
26
26
  let sk = this.session.getSessionKey();
27
27
  if (!sk)
28
28
  return of(false);
29
- return this.http.post(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() });
29
+ return this.http.post(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
30
30
  }
31
31
  recover(key) {
32
32
  let sk = this.session.getSessionKey();
@@ -45,7 +45,7 @@ export class ApplicationPreferencesPersistor extends PreferencesPersistor {
45
45
  let sk = this.session.getSessionKey();
46
46
  if (!sk)
47
47
  return of(null);
48
- return this.http.get(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(map((res) => {
48
+ return this.http.get(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
49
49
  for (var prop in res) {
50
50
  var resProp = null;
51
51
  try {
@@ -61,13 +61,13 @@ export class ApplicationPreferencesPersistor extends PreferencesPersistor {
61
61
  let sk = this.session.getSessionKey();
62
62
  if (!sk)
63
63
  return of(false);
64
- return this.http.delete(this.getItemUrl(sk, key), { headers: this.getHeaders() });
64
+ return this.http.delete(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
65
65
  }
66
66
  clear() {
67
67
  let sk = this.session.getSessionKey();
68
68
  if (!sk)
69
69
  return of(false);
70
- return this.http.delete(this.getItemsUrl(sk), { headers: this.getHeaders() });
70
+ return this.http.delete(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
71
71
  }
72
72
  getHeaders(contentType = 'application/json') {
73
73
  return new HttpHeaders()
@@ -91,4 +91,4 @@ ApplicationPreferencesPersistor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion
91
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ApplicationPreferencesPersistor, decorators: [{
92
92
  type: Injectable
93
93
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.HttpClient }, { type: i3.TokenService }, { type: i4.BaseSessionRetriever }]; } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnByZWZlcmVuY2UucGVyc2lzdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9wcmVmZXJlbmNlcy9hcHAucHJlZmVyZW5jZS5wZXJzaXN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLGlCQUFpQjtBQUNqQixPQUFPLEVBQXdCLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJbkYsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFFckMseUJBQXlCO0FBQ3pCLE1BQU0seUJBQXlCLEdBQVksMkJBQTJCLENBQUM7QUFHdkUsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLG9CQUFvQjtJQUVyRSxtR0FBbUc7SUFDbkcsc0dBQXNHO0lBQ3RHLFlBQW9CLEVBQXVCLEVBQVUsSUFBZ0IsRUFBVSxHQUFpQixFQUFFLE9BQTZCO1FBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQTlILE9BQUUsR0FBRixFQUFFLENBQXFCO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQWM7SUFBbUQsQ0FBQztJQUU3SSxPQUFPLENBQUksR0FBVyxFQUFFLElBQU87UUFDbEMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FB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YyxFQUFFLFdBQVcsQ0FBQzthQUNuQyxNQUFNLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDO2FBQ3BDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDOUQsTUFBTSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLGFBQWEsQ0FBQyxVQUFrQjtRQUNwQyxPQUFPLEdBQUcseUJBQXlCLElBQUksVUFBVSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxVQUFrQjtRQUNsQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0lBQ3JELENBQUM7SUFFTyxVQUFVLENBQUMsVUFBa0IsRUFBRSxPQUFlO1FBQ2xELE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3hELENBQUM7OzRIQXhFUSwrQkFBK0I7Z0lBQS9CLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEJhc2VTZXNzaW9uUmV0cmlldmVyLCBQcmVmZXJlbmNlc1BlcnNpc3RvciB9IGZyb20gXCJAZXNmYWVuemEvcHJlZmVyZW5jZXNcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tIFwiLi4vYXBwLmFjY2Vzc3Rva2VuXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG4vLyBDaGlhbWF0ZSBhaSBSZXBvc2l0b3J5XHJcbmNvbnN0IEJBU0VfUHJlZmVyZW5jZXNfU2Vzc2lvbnM6IHN0cmluZyA9ICBcIi9hcGkvUHJlZmVyZW5jZXMvc2Vzc2lvbnNcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uUHJlZmVyZW5jZXNQZXJzaXN0b3IgZXh0ZW5kcyBQcmVmZXJlbmNlc1BlcnNpc3RvciB7XHJcblxyXG4gICAgLy8gUGFzc28gZGlyZXR0YW1lbnRlIGRhbGwnSHR0cENsaWVudCBuYXRpdm8gaW4gcXVhbnRvIG5vbiBwb3NzbyBwYXNzYXJlIGRhbGwnSHR0cFNlcnZpY2UgZGF0byBjaGUgXHJcbiAgICAvLyBsdWkgcmljaGllZGUgaWwgUHJlZmVyZW5jZXNTZXJ2aWNlIGNoZSByaWNoaWVkZSBxdWVzdGEgY2xhc3NlIGNoZSByaWNoaWVkZSBsJ0h0dHBTZXJ2aWNlIGVjYyBlY2MuLi5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSB0a3M6IFRva2VuU2VydmljZSwgc2Vzc2lvbjogQmFzZVNlc3Npb25SZXRyaWV2ZXIpIHsgc3VwZXIoc2Vzc2lvbik7IH1cclxuXHJcbiAgICBwdWJsaWMgcGVyc2lzdDxUPihrZXk6IHN0cmluZywgaXRlbTogVCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKGZhbHNlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGJvb2xlYW4+KHRoaXMuZ2V0SXRlbVVybChzaywga2V5KSwgSlNPTi5zdHJpbmdpZnkoaXRlbSksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlY292ZXI8VD4oa2V5Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgbGV0IHNrID0gdGhpcy5zZXNzaW9uLmdldFNlc3Npb25LZXkoKTtcclxuICAgICAgICBpZiAoIXNrKSByZXR1cm4gb2YobnVsbCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHN0cmluZz4odGhpcy5nZXRJdGVtVXJsKHNrLCBrZXkpLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUobWFwKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdmFyIHJlc1Byb3AgPSBudWxsO1xyXG4gICAgICAgICAgICB0cnkgeyByZXNQcm9wID0gPFQ+SlNPTi5wYXJzZShyZXMpOyB9XHJcbiAgICAgICAgICAgIGNhdGNoIHsgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzUHJvcDtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlY292ZXJBbGwoKTogT2JzZXJ2YWJsZTx7IFtpbmRleDogc3RyaW5nXTogYW55OyB9PiB7XHJcbiAgICAgICAgbGV0IHNrID0gdGhpcy5zZXNzaW9uLmdldFNlc3Npb25LZXkoKTtcclxuICAgICAgICBpZiAoIXNrKSByZXR1cm4gb2YobnVsbCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHsgW2luZGV4OiBzdHJpbmddOiBhbnk7IH0+KHRoaXMuZ2V0U2Vzc2lvblVybChzayksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSkucGlwZShtYXAoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIHJlcykge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc1Byb3AgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHsgcmVzUHJvcCA9IEpTT04ucGFyc2UocmVzW3Byb3BdKTsgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggeyB9XHJcbiAgICAgICAgICAgICAgICByZXNbcHJvcF0gPSByZXNQcm9wO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiByZXNcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZShrZXk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBsZXQgc2sgPSB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpO1xyXG4gICAgICAgIGlmICghc2spIHJldHVybiBvZihmYWxzZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGJvb2xlYW4+KHRoaXMuZ2V0SXRlbVVybChzaywga2V5KSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xlYXIoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgbGV0IHNrID0gdGhpcy5zZXNzaW9uLmdldFNlc3Npb25LZXkoKTtcclxuICAgICAgICBpZiAoIXNrKSByZXR1cm4gb2YoZmFsc2UpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxib29sZWFuPih0aGlzLmdldEl0ZW1zVXJsKHNrKSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEhlYWRlcnMoY29udGVudFR5cGU6IHN0cmluZyA9ICdhcHBsaWNhdGlvbi9qc29uJyk6IEh0dHBIZWFkZXJzIHtcclxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgICAgICAgLmFwcGVuZChcIkNvbnRlbnQtVHlwZVwiLCBjb250ZW50VHlwZSlcclxuICAgICAgICAgICAgLmFwcGVuZChcIkFjY2VwdFwiLCBcImFwcGxpY2F0aW9uL2pzb25cIilcclxuICAgICAgICAgICAgLmFwcGVuZChcIkF1dGhvcml6YXRpb25cIiwgXCJCZWFyZXIgXCIgKyB0aGlzLnRrcy5nZXRBY2Nlc3NUb2tlbigpKVxyXG4gICAgICAgICAgICAuYXBwZW5kKFwiQWNjZXB0LUxhbmd1YWdlXCIsIHRoaXMubGMuTG9jYWxlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFNlc3Npb25Vcmwoc2Vzc2lvbktleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7QkFTRV9QcmVmZXJlbmNlc19TZXNzaW9uc30vJHtzZXNzaW9uS2V5fWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRJdGVtc1VybChzZXNzaW9uS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldFNlc3Npb25Vcmwoc2Vzc2lvbktleSl9L2l0ZW1zYDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEl0ZW1Vcmwoc2Vzc2lvbktleTogc3RyaW5nLCBpdGVtS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldEl0ZW1zVXJsKHNlc3Npb25LZXkpfS8ke2l0ZW1LZXl9YDtcclxuICAgIH1cclxufSJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnByZWZlcmVuY2UucGVyc2lzdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9wcmVmZXJlbmNlcy9hcHAucHJlZmVyZW5jZS5wZXJzaXN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLGlCQUFpQjtBQUNqQixPQUFPLEVBQXdCLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJbkYsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBRWpELHlCQUF5QjtBQUN6QixNQUFNLHlCQUF5QixHQUFZLDJCQUEyQixDQUFDO0FBR3ZFLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxvQkFBb0I7SUFFckUsbUdBQW1HO0lBQ25HLHNHQUFzRztJQUN0RyxZQUFvQixFQUF1QixFQUFVLElBQWdCLEVBQVUsR0FBaUIsRUFBRSxPQUE2QjtRQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUE5SCxPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFjO0lBQW1ELENBQUM7SUFFN0ksT0FBTyxDQUFJLEdBQVcsRUFBRSxJQUFPO1FBQ2xDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixPQUFPLElBQUksQ0FB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LENBQUMsQ0FBQztRQUUxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFVLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRU8sVUFBVSxDQUFDLGNBQXNCLGtCQUFrQjtRQUN2RCxPQUFPLElBQUksV0FBVyxFQUFFO2FBQ25CLE1BQU0sQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUM7YUFDcEMsTUFBTSxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUM5RCxNQUFNLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sYUFBYSxDQUFDLFVBQWtCO1FBQ3BDLE9BQU8sR0FBRyx5QkFBeUIsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRU8sV0FBVyxDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDckQsQ0FBQztJQUVPLFVBQVUsQ0FBQyxVQUFrQixFQUFFLE9BQWU7UUFDbEQsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUM7SUFDeEQsQ0FBQzs7NEhBMUVRLCtCQUErQjtnSUFBL0IsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBRDNDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQmFzZVNlc3Npb25SZXRyaWV2ZXIsIFByZWZlcmVuY2VzUGVyc2lzdG9yIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gXCIuLi9hcHAuYWNjZXNzdG9rZW5cIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8vIENoaWFtYXRlIGFpIFJlcG9zaXRvcnlcclxuY29uc3QgQkFTRV9QcmVmZXJlbmNlc19TZXNzaW9uczogc3RyaW5nID0gIFwiL2FwaS9QcmVmZXJlbmNlcy9zZXNzaW9uc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25QcmVmZXJlbmNlc1BlcnNpc3RvciBleHRlbmRzIFByZWZlcmVuY2VzUGVyc2lzdG9yIHtcclxuXHJcbiAgICAvLyBQYXNzbyBkaXJldHRhbWVudGUgZGFsbCdIdHRwQ2xpZW50IG5hdGl2byBpbiBxdWFudG8gbm9uIHBvc3NvIHBhc3NhcmUgZGFsbCdIdHRwU2VydmljZSBkYXRvIGNoZSBcclxuICAgIC8vIGx1aSByaWNoaWVkZSBpbCBQcmVmZXJlbmNlc1NlcnZpY2UgY2hlIHJpY2hpZWRlIHF1ZXN0YSBjbGFzc2UgY2hlIHJpY2hpZWRlIGwnSHR0cFNlcnZpY2UgZWNjIGVjYy4uLlxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHRrczogVG9rZW5TZXJ2aWNlLCBzZXNzaW9uOiBCYXNlU2Vzc2lvblJldHJpZXZlcikgeyBzdXBlcihzZXNzaW9uKTsgfVxyXG5cclxuICAgIHB1YmxpYyBwZXJzaXN0PFQ+KGtleTogc3RyaW5nLCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgbGV0IHNrID0gdGhpcy5zZXNzaW9uLmdldFNlc3Npb25LZXkoKTtcclxuICAgICAgICBpZiAoIXNrKSByZXR1cm4gb2YoZmFsc2UpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Ym9vbGVhbj4odGhpcy5nZXRJdGVtVXJsKHNrLCBrZXkpLCBKU09OLnN0cmluZ2lmeShpdGVtKSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KS5waXBlKGNhdGNoRXJyb3IoZSA9PiBvZihmYWxzZSkpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVjb3ZlcjxUPihrZXk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICBsZXQgc2sgPSB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpO1xyXG4gICAgICAgIGlmICghc2spIHJldHVybiBvZihudWxsKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8c3RyaW5nPih0aGlzLmdldEl0ZW1Vcmwoc2ssIGtleSksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSkucGlwZShtYXAoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgcmVzUHJvcCA9IG51bGw7XHJcbiAgICAgICAgICAgIHRyeSB7IHJlc1Byb3AgPSA8VD5KU09OLnBhcnNlKHJlcyk7IH1cclxuICAgICAgICAgICAgY2F0Y2ggeyB9XHJcbiAgICAgICAgICAgIHJldHVybiByZXNQcm9wO1xyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVjb3ZlckFsbCgpOiBPYnNlcnZhYmxlPHsgW2luZGV4OiBzdHJpbmddOiBhbnk7IH0+IHtcclxuICAgICAgICBsZXQgc2sgPSB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpO1xyXG4gICAgICAgIGlmICghc2spIHJldHVybiBvZihudWxsKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyBbaW5kZXg6IHN0cmluZ106IGFueTsgfT4odGhpcy5nZXRTZXNzaW9uVXJsKHNrKSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KS5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKGUgPT4gb2YobnVsbCkpLFxyXG4gICAgICAgICAgICBtYXAoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiByZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzUHJvcCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHsgcmVzUHJvcCA9IEpTT04ucGFyc2UocmVzW3Byb3BdKTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIHsgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IHJlc1Byb3A7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVtb3ZlKGtleT86IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKGZhbHNlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8Ym9vbGVhbj4odGhpcy5nZXRJdGVtVXJsKHNrLCBrZXkpLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKGZhbHNlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGVhcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBsZXQgc2sgPSB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpO1xyXG4gICAgICAgIGlmICghc2spIHJldHVybiBvZihmYWxzZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGJvb2xlYW4+KHRoaXMuZ2V0SXRlbXNVcmwoc2spLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKGZhbHNlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SGVhZGVycyhjb250ZW50VHlwZTogc3RyaW5nID0gJ2FwcGxpY2F0aW9uL2pzb24nKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAgICAgICAuYXBwZW5kKFwiQ29udGVudC1UeXBlXCIsIGNvbnRlbnRUeXBlKVxyXG4gICAgICAgICAgICAuYXBwZW5kKFwiQWNjZXB0XCIsIFwiYXBwbGljYXRpb24vanNvblwiKVxyXG4gICAgICAgICAgICAuYXBwZW5kKFwiQXV0aG9yaXphdGlvblwiLCBcIkJlYXJlciBcIiArIHRoaXMudGtzLmdldEFjY2Vzc1Rva2VuKCkpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoXCJBY2NlcHQtTGFuZ3VhZ2VcIiwgdGhpcy5sYy5Mb2NhbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U2Vzc2lvblVybChzZXNzaW9uS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgJHtCQVNFX1ByZWZlcmVuY2VzX1Nlc3Npb25zfS8ke3Nlc3Npb25LZXl9YDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEl0ZW1zVXJsKHNlc3Npb25LZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0U2Vzc2lvblVybChzZXNzaW9uS2V5KX0vaXRlbXNgO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SXRlbVVybChzZXNzaW9uS2V5OiBzdHJpbmcsIGl0ZW1LZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0SXRlbXNVcmwoc2Vzc2lvbktleSl9LyR7aXRlbUtleX1gO1xyXG4gICAgfVxyXG59Il19
@@ -10,6 +10,7 @@ import * as i1$1 from '@esfaenza/preferences';
10
10
  import * as i3$2 from '@esfaenza/httpservice';
11
11
  import * as i4$1 from '@esfaenza/localizations';
12
12
  import { LocalizationService, LocalizationModule } from '@esfaenza/localizations';
13
+ import { Subject, interval, takeUntil } from 'rxjs';
13
14
  import * as i2 from '@esfaenza/signalr-notifications';
14
15
  import * as i3$3 from '@esfaenza/extensions';
15
16
  import * as i9 from '@angular/forms';
@@ -18,6 +19,8 @@ import * as i10 from 'ngx-bootstrap/progressbar';
18
19
  import { ProgressbarModule } from 'ngx-bootstrap/progressbar';
19
20
  import * as i11 from '@angular/material/slide-toggle';
20
21
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
22
+ import * as i12 from 'ngx-bootstrap/dropdown';
23
+ import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
21
24
  import { CategoriesWithModules, MENU, MENU_LOCALIZATION, REDIRECT_MAP } from '@esfaenza/core/domain';
22
25
  import * as i2$1 from '@esfaenza/access-control';
23
26
  import * as i6 from '@esfaenza/core/directives';
@@ -294,15 +297,11 @@ class Navbar {
294
297
  this._state = _state;
295
298
  this.sr = sr;
296
299
  this.router = router;
300
+ this.destroyed$ = new Subject();
297
301
  this.isMenuCollapsed = false;
298
302
  this.applicationVersion = myconfig.AppData.ComponentVersion;
299
303
  this.myconfig = myconfig;
300
304
  this.anomaliesProcessing = false;
301
- this.intervals = [];
302
- this.user = "";
303
- this.tenant = "";
304
- this.idtenant = "";
305
- this.groupName = "";
306
305
  this.IsJaceAdmin = false;
307
306
  this.newVersionWarned = false;
308
307
  this.notificationsSubs = [];
@@ -310,20 +309,18 @@ class Navbar {
310
309
  this.thisLoc = lc.Locale;
311
310
  this.checkIdentity();
312
311
  this.getActiveJaceModules();
313
- var i = setInterval(() => {
314
- if (!myconfig.redirectInProgress) {
312
+ interval(1000).pipe(takeUntil(this.destroyed$)).subscribe(t => {
313
+ if (!myconfig.redirectInProgress)
315
314
  this.checkIdentity();
316
- this.cdr.markForCheck();
317
- }
318
- }, 1000);
319
- this.intervals.push(i);
315
+ });
320
316
  this.startSignalRListening();
321
317
  this._state.subscribe("app.completedJob", (jobDescription) => {
322
318
  this.msgExts.simpleSuccess(this.lc.loc("Job Completato") + ": " + jobDescription);
323
319
  });
324
320
  }
325
321
  ngOnDestroy() {
326
- this.intervals.forEach(i => { clearInterval(i); });
322
+ this.destroyed$.next();
323
+ this.destroyed$.complete();
327
324
  this.stopSignalRListening();
328
325
  }
329
326
  startSignalRListening() {
@@ -340,16 +337,18 @@ class Navbar {
340
337
  this.notifications.disconnect();
341
338
  }
342
339
  checkIdentity() {
340
+ var _a, _b, _c;
343
341
  // Controllo identity
344
- var identity = this.sr.getJaceIdentity();
342
+ let identity = this.sr.getJaceIdentity();
345
343
  if (identity) {
346
344
  this.checkSession(identity);
347
- if ((this.user != identity.FullName || this.idtenant != identity.Idtenant) && this.user) {
345
+ if (identity.IdAccount != ((_a = this.LastIdentity) === null || _a === void 0 ? void 0 : _a.IdAccount) ||
346
+ identity.IdUser != ((_b = this.LastIdentity) === null || _b === void 0 ? void 0 : _b.IdUser) ||
347
+ identity.Idtenant != ((_c = this.LastIdentity) === null || _c === void 0 ? void 0 : _c.Idtenant)) {
348
348
  this.msgExts.simpleWarning(this.lc.loc("Le informazioni di Sessione (Tenant/Account) sono cambiate a seguito di un login su modulo diverso utilizzando diverso Tenant/Utente sullo stesso browser. Si suggerisce di ricaricare la pagina (CTRL + F5)"));
349
+ this.cdr.markForCheck();
349
350
  }
350
- this.user = identity.FullName;
351
- this.tenant = identity.TenantName;
352
- this.idtenant = identity.Idtenant;
351
+ this.LastIdentity = identity;
353
352
  this.Permissions = identity.Permissions;
354
353
  this.Roles = identity.Roles;
355
354
  this.IsJaceAdmin = identity.Roles.some(t => t == "Jace Admin") && !identity.Permissions.some(t => t == "alg_custom");
@@ -430,10 +429,10 @@ class Navbar {
430
429
  }
431
430
  }
432
431
  Navbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Navbar, deps: [{ token: i1$1.PreferencesService }, { token: i1$1.CacheService }, { token: i2.BaseMessageService }, { token: i2.NotificationsService }, { token: i3$3.MessageService }, { token: i4$1.LocalizationService }, { token: i3$2.HTTPService }, { token: i0.ChangeDetectorRef }, { token: i4.AppState }, { token: i4.TokenService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
433
- Navbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: Navbar, selector: "navbar", viewQueries: [{ propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }], ngImport: i0, template: "<nav #navbar class=\"nav az-navbar fixed-top\">\r\n <a class=\"navbar-brand\" routerLink=\"/pages/dashboard\">\r\n <img src=\"../assets/img/logo/logo.png\" alt=\"\" class=\"d-md-block d-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-v d-md-block d-none\">{{ applicationVersion }}</div>\r\n\r\n <img src=\"../assets/img/logo/logo_sm.png\" alt=\"\" class=\"d-md-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-sm-v d-md-none\">{{ applicationVersion }}</div>\r\n </a>\r\n\r\n <ul class=\"nav navbar-nav navbar-fillable\">\r\n <li>\r\n <a (click)=\"toggleMenu()\" class=\"collapse-menu-link fa fa-navicon\"></a>\r\n </li>\r\n <li class=\"d-none d-md-block\">\r\n <form role=\"search\" class=\"app-search\">\r\n <input type=\"text\" placeholder=\"Search...\" class=\"form-control\">\r\n <a><i class=\"fa fa-search\" style=\"color: #aaa\"></i></a>\r\n </form>\r\n </li>\r\n\r\n <ul class=\"nav right-section\">\r\n\r\n <!--Dropdown job in esecuzione-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a [class.fa-spin]=\"_state.jobsInProgress > 0\" class=\"fa fa-cog dropdown-toggle app-pointer nav-jobs-icon\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\" class=\"app-link app-no-selection app-inline app-pointer\" (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{ 'Completed' | localize : lc }}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\" [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\" [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!--Dropdown moduli-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"fa fa-th module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle>\r\n </a>\r\n <ul *dropdownMenu class=\"module-board-menu container\" role=\"menu\">\r\n <div class=\"app-relative\">\r\n <jace-modules-board [Modules]=\"Modules\"></jace-modules-board>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!-- USER MENU -->\r\n <div class=\"pull-right user-menu app-no-selection\" dropdown container=\"body\" placement=\"bottom right\" style=\"height:50px;\">\r\n <a class=\"dropdown-toggle user-link app-pointer\" dropdownToggle>\r\n <div class=\"pull-left app-margin-right-10 app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"pull-right d-none d-sm-block\">\r\n <div class=\"app-white-text\">\r\n {{user}} - ({{tenant}})\r\n </div>\r\n <div class=\"app-white-text text-sm-center\">\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 1\">\r\n {{'Ambiente di Produzione' | localize : lc}}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </a>\r\n\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"user-info\">\r\n <div class=\"app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"app-white-text app-margin-top-10 app-margin-bottom-10\">\r\n <div>\r\n {{user}} - {{tenant}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n </li>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'en-US'\" (click)=\"lc.changeLocale('it-IT')\"><i class=\"fa fa-globe\">&nbsp;</i>Switch to Italian Site</a>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'it-IT'\" (click)=\"lc.changeLocale('en-US')\"><i class=\"fa fa-globe\">&nbsp;</i>Passa al Sito in Inglese</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeModule()\"><i class=\"fa fa-th\">&nbsp;</i>{{'Cambia Modulo' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeTenant()\"><i class=\"fa fa-building\">&nbsp;</i>{{'Cambia Tenant' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\"><i class=\"fa fa-user-times\">&nbsp;</i>{{'Ripulisci le Preferenze Utente' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearAll()\"><i class=\"fa fa-recycle \">&nbsp;</i>{{'Ripulisci la Cache' | localize : lc}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"logout()\"><i class=\"fa fa-power-off\">&nbsp;</i>Log out</a>\r\n </ul>\r\n </div>\r\n </ul>\r\n </ul>\r\n</nav>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #ccc}.nav-jobs-menu-header{padding:8px;font-size:14px;background-color:#242d3a;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.nav.az-navbar{height:60px;align-items:center;background-color:#242d3a}.nav.az-navbar .navbar-brand{width:205px;padding-top:0;font-size:0;margin-left:10px}.navbar-nav{flex-direction:row}#lines{border-bottom:7px double;border-top:2px solid;border-color:#ffffffe6;content:\"\";height:3px;width:20px;box-sizing:content-box;cursor:pointer}#lines:hover{opacity:.8}.app-search{position:relative;margin-left:20px}.app-search a{position:absolute;top:3px;right:14px;font-size:16px;color:#ffffff4d}.app-search .form-control{border:1px solid rgba(255,255,255,.1);font-size:11px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:190px}.app-search input{border:1px solid rgba(255,255,255,.1);font-size:12px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:240px}.completer-selected-row{background-color:#0275d8!important;color:#fff!important;width:100%!important}.completer-row{width:100%!important;color:#fff!important}.completer-dropdown{margin-top:2px!important;background-color:#344154f7!important;color:#fff;border-color:#111!important;box-shadow:0 6px 12px #0003}.search-results{left:-85px;top:-2px;z-index:1050;color:#fff;background-color:#344154f7}.search-results .btn-sm{padding:.15rem .25rem;font-size:.5rem}.search-results:before{content:\"\";border:0px}.search-results a{color:#242d3a}.search-results a:hover{color:#fff;background-color:#0275d8;cursor:pointer}.search-results a i{margin-right:8px}.right-section{position:absolute;right:10px;top:10px}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#242d3a}.user-menu .dropdown-menu a:hover{color:#fff;background-color:#242d3a}.user-menu .dropdown-menu a i{margin-right:8px}.user-link{margin-right:6px}.user-link span{color:#fff;margin-left:7px;letter-spacing:.02em}.user-link img{width:40px;border-radius:50%}.user-link:hover,.user-link:focus{text-decoration:none}.user-info{background-color:#242d3a;padding:8px;text-align:center;width:240px;margin-bottom:5px}.user-info img{width:100px;margin-top:5px;border-radius:50%}.user-info p{color:#ebebeb;margin-top:10px}.user-info small{display:block}@media (max-width: 767px){.nav.az-navbar .navbar-brand{width:auto}}.navbar-search{color:#ffffff80!important}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 8px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.collapse-menu-link{color:#fff!important;font-size:20px;padding-top:5px;cursor:pointer}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.overlay{height:100%;width:100%;display:none;padding-left:10%;padding-right:10%;position:fixed;z-index:999999;left:0;top:0;background-color:#000;background-color:#000000e6;overflow-x:hidden;transition:.5s}.overlay-content{position:relative;top:25%;width:100%;text-align:center;margin-top:30px}.overlay p{padding:8px;text-decoration:none;font-size:36px;color:#818181;display:block;transition:.3s}.overlay a:hover,.overlay a:focus{color:#f1f1f1}.overlay .closebtn{position:absolute;top:20px;right:45px;font-size:60px}@media screen and (max-height: 450px){.overlay a{font-size:20px}.overlay .closebtn{font-size:40px;top:15px;right:35px}}\n"], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i10.ProgressbarComponent, selector: "progressbar", inputs: ["max", "animate", "striped", "type", "value"] }, { kind: "component", type: i11.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: JaceModulesBoardComponent, selector: "jace-modules-board", inputs: ["Modules"] }, { kind: "pipe", type: i4$1.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
432
+ Navbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: Navbar, selector: "navbar", viewQueries: [{ propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }], ngImport: i0, template: "<nav #navbar class=\"nav az-navbar fixed-top\">\r\n <a class=\"navbar-brand\" routerLink=\"/pages/dashboard\">\r\n <img src=\"../assets/img/logo/logo.png\" alt=\"\" class=\"d-md-block d-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-v d-md-block d-none\">{{ applicationVersion }}</div>\r\n\r\n <img src=\"../assets/img/logo/logo_sm.png\" alt=\"\" class=\"d-md-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-sm-v d-md-none\">{{ applicationVersion }}</div>\r\n </a>\r\n\r\n <ul class=\"nav navbar-nav navbar-fillable\">\r\n <li>\r\n <a (click)=\"toggleMenu()\" class=\"collapse-menu-link fa fa-navicon\"></a>\r\n </li>\r\n <li class=\"d-none d-md-block\">\r\n <form role=\"search\" class=\"app-search\">\r\n <input type=\"text\" placeholder=\"Search...\" class=\"form-control\">\r\n <a><i class=\"fa fa-search\" style=\"color: #aaa\"></i></a>\r\n </form>\r\n </li>\r\n\r\n <ul class=\"nav right-section\">\r\n\r\n <!--Dropdown job in esecuzione-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a [class.fa-spin]=\"_state.jobsInProgress > 0\" class=\"fa fa-cog dropdown-toggle app-pointer nav-jobs-icon\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\" class=\"app-link app-no-selection app-inline app-pointer\" (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{ 'Completed' | localize : lc }}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\" [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\" [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!--Dropdown moduli-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"fa fa-th module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle>\r\n </a>\r\n <ul *dropdownMenu class=\"module-board-menu container\" role=\"menu\">\r\n <div class=\"app-relative\">\r\n <jace-modules-board [Modules]=\"Modules\"></jace-modules-board>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!-- USER MENU -->\r\n <div class=\"pull-right user-menu app-no-selection\" dropdown container=\"body\" placement=\"bottom right\" style=\"height:50px;\">\r\n <a class=\"dropdown-toggle user-link app-pointer\" dropdownToggle>\r\n <div class=\"pull-left app-margin-right-10 app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"pull-right d-none d-sm-block\">\r\n <div class=\"app-white-text\">\r\n {{LastIdentity?.FullName}} - ({{LastIdentity?.TenantName}})\r\n </div>\r\n <div class=\"app-white-text text-sm-center\">\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 1\">\r\n {{'Ambiente di Produzione' | localize : lc}}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </a>\r\n\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"user-info\">\r\n <div class=\"app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"app-white-text app-margin-top-10 app-margin-bottom-10\">\r\n <div>\r\n {{LastIdentity?.FullName}} - ({{LastIdentity?.TenantName}})\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n </li>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'en-US'\" (click)=\"lc.changeLocale('it-IT')\"><i class=\"fa fa-globe\">&nbsp;</i>Switch to Italian Site</a>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'it-IT'\" (click)=\"lc.changeLocale('en-US')\"><i class=\"fa fa-globe\">&nbsp;</i>Passa al Sito in Inglese</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeModule()\"><i class=\"fa fa-th\">&nbsp;</i>{{'Cambia Modulo' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeTenant()\"><i class=\"fa fa-building\">&nbsp;</i>{{'Cambia Tenant' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\"><i class=\"fa fa-user-times\">&nbsp;</i>{{'Ripulisci le Preferenze Utente' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearAll()\"><i class=\"fa fa-recycle \">&nbsp;</i>{{'Ripulisci la Cache' | localize : lc}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"logout()\"><i class=\"fa fa-power-off\">&nbsp;</i>Log out</a>\r\n </ul>\r\n </div>\r\n </ul>\r\n </ul>\r\n</nav>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #ccc}.nav-jobs-menu-header{padding:8px;font-size:14px;background-color:#242d3a;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.nav.az-navbar{height:60px;align-items:center;background-color:#242d3a}.nav.az-navbar .navbar-brand{width:205px;padding-top:0;font-size:0;margin-left:10px}.navbar-nav{flex-direction:row}#lines{border-bottom:7px double;border-top:2px solid;border-color:#ffffffe6;content:\"\";height:3px;width:20px;box-sizing:content-box;cursor:pointer}#lines:hover{opacity:.8}.app-search{position:relative;margin-left:20px}.app-search a{position:absolute;top:3px;right:14px;font-size:16px;color:#ffffff4d}.app-search .form-control{border:1px solid rgba(255,255,255,.1);font-size:11px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:190px}.app-search input{border:1px solid rgba(255,255,255,.1);font-size:12px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:240px}.completer-selected-row{background-color:#0275d8!important;color:#fff!important;width:100%!important}.completer-row{width:100%!important;color:#fff!important}.completer-dropdown{margin-top:2px!important;background-color:#344154f7!important;color:#fff;border-color:#111!important;box-shadow:0 6px 12px #0003}.search-results{left:-85px;top:-2px;z-index:1050;color:#fff;background-color:#344154f7}.search-results .btn-sm{padding:.15rem .25rem;font-size:.5rem}.search-results:before{content:\"\";border:0px}.search-results a{color:#242d3a}.search-results a:hover{color:#fff;background-color:#0275d8;cursor:pointer}.search-results a i{margin-right:8px}.right-section{position:absolute;right:10px;top:10px}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#242d3a}.user-menu .dropdown-menu a:hover{color:#fff;background-color:#242d3a}.user-menu .dropdown-menu a i{margin-right:8px}.user-link{margin-right:6px}.user-link span{color:#fff;margin-left:7px;letter-spacing:.02em}.user-link img{width:40px;border-radius:50%}.user-link:hover,.user-link:focus{text-decoration:none}.user-info{background-color:#242d3a;padding:8px;text-align:center;width:240px;margin-bottom:5px}.user-info img{width:100px;margin-top:5px;border-radius:50%}.user-info p{color:#ebebeb;margin-top:10px}.user-info small{display:block}@media (max-width: 767px){.nav.az-navbar .navbar-brand{width:auto}}.navbar-search{color:#ffffff80!important}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 8px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.collapse-menu-link{color:#fff!important;font-size:20px;padding-top:5px;cursor:pointer}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.overlay{height:100%;width:100%;display:none;padding-left:10%;padding-right:10%;position:fixed;z-index:999999;left:0;top:0;background-color:#000;background-color:#000000e6;overflow-x:hidden;transition:.5s}.overlay-content{position:relative;top:25%;width:100%;text-align:center;margin-top:30px}.overlay p{padding:8px;text-decoration:none;font-size:36px;color:#818181;display:block;transition:.3s}.overlay a:hover,.overlay a:focus{color:#f1f1f1}.overlay .closebtn{position:absolute;top:20px;right:45px;font-size:60px}@media screen and (max-height: 450px){.overlay a{font-size:20px}.overlay .closebtn{font-size:40px;top:15px;right:35px}}\n"], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i10.ProgressbarComponent, selector: "progressbar", inputs: ["max", "animate", "striped", "type", "value"] }, { kind: "component", type: i11.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i12.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i12.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i12.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: JaceModulesBoardComponent, selector: "jace-modules-board", inputs: ["Modules"] }, { kind: "pipe", type: i4$1.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
434
433
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Navbar, decorators: [{
435
434
  type: Component,
436
- args: [{ selector: "navbar", viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav #navbar class=\"nav az-navbar fixed-top\">\r\n <a class=\"navbar-brand\" routerLink=\"/pages/dashboard\">\r\n <img src=\"../assets/img/logo/logo.png\" alt=\"\" class=\"d-md-block d-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-v d-md-block d-none\">{{ applicationVersion }}</div>\r\n\r\n <img src=\"../assets/img/logo/logo_sm.png\" alt=\"\" class=\"d-md-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-sm-v d-md-none\">{{ applicationVersion }}</div>\r\n </a>\r\n\r\n <ul class=\"nav navbar-nav navbar-fillable\">\r\n <li>\r\n <a (click)=\"toggleMenu()\" class=\"collapse-menu-link fa fa-navicon\"></a>\r\n </li>\r\n <li class=\"d-none d-md-block\">\r\n <form role=\"search\" class=\"app-search\">\r\n <input type=\"text\" placeholder=\"Search...\" class=\"form-control\">\r\n <a><i class=\"fa fa-search\" style=\"color: #aaa\"></i></a>\r\n </form>\r\n </li>\r\n\r\n <ul class=\"nav right-section\">\r\n\r\n <!--Dropdown job in esecuzione-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a [class.fa-spin]=\"_state.jobsInProgress > 0\" class=\"fa fa-cog dropdown-toggle app-pointer nav-jobs-icon\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\" class=\"app-link app-no-selection app-inline app-pointer\" (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{ 'Completed' | localize : lc }}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\" [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\" [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!--Dropdown moduli-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"fa fa-th module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle>\r\n </a>\r\n <ul *dropdownMenu class=\"module-board-menu container\" role=\"menu\">\r\n <div class=\"app-relative\">\r\n <jace-modules-board [Modules]=\"Modules\"></jace-modules-board>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!-- USER MENU -->\r\n <div class=\"pull-right user-menu app-no-selection\" dropdown container=\"body\" placement=\"bottom right\" style=\"height:50px;\">\r\n <a class=\"dropdown-toggle user-link app-pointer\" dropdownToggle>\r\n <div class=\"pull-left app-margin-right-10 app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"pull-right d-none d-sm-block\">\r\n <div class=\"app-white-text\">\r\n {{user}} - ({{tenant}})\r\n </div>\r\n <div class=\"app-white-text text-sm-center\">\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 1\">\r\n {{'Ambiente di Produzione' | localize : lc}}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </a>\r\n\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"user-info\">\r\n <div class=\"app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"app-white-text app-margin-top-10 app-margin-bottom-10\">\r\n <div>\r\n {{user}} - {{tenant}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n </li>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'en-US'\" (click)=\"lc.changeLocale('it-IT')\"><i class=\"fa fa-globe\">&nbsp;</i>Switch to Italian Site</a>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'it-IT'\" (click)=\"lc.changeLocale('en-US')\"><i class=\"fa fa-globe\">&nbsp;</i>Passa al Sito in Inglese</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeModule()\"><i class=\"fa fa-th\">&nbsp;</i>{{'Cambia Modulo' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeTenant()\"><i class=\"fa fa-building\">&nbsp;</i>{{'Cambia Tenant' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\"><i class=\"fa fa-user-times\">&nbsp;</i>{{'Ripulisci le Preferenze Utente' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearAll()\"><i class=\"fa fa-recycle \">&nbsp;</i>{{'Ripulisci la Cache' | localize : lc}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"logout()\"><i class=\"fa fa-power-off\">&nbsp;</i>Log out</a>\r\n </ul>\r\n </div>\r\n </ul>\r\n </ul>\r\n</nav>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #ccc}.nav-jobs-menu-header{padding:8px;font-size:14px;background-color:#242d3a;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.nav.az-navbar{height:60px;align-items:center;background-color:#242d3a}.nav.az-navbar .navbar-brand{width:205px;padding-top:0;font-size:0;margin-left:10px}.navbar-nav{flex-direction:row}#lines{border-bottom:7px double;border-top:2px solid;border-color:#ffffffe6;content:\"\";height:3px;width:20px;box-sizing:content-box;cursor:pointer}#lines:hover{opacity:.8}.app-search{position:relative;margin-left:20px}.app-search a{position:absolute;top:3px;right:14px;font-size:16px;color:#ffffff4d}.app-search .form-control{border:1px solid rgba(255,255,255,.1);font-size:11px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:190px}.app-search input{border:1px solid rgba(255,255,255,.1);font-size:12px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:240px}.completer-selected-row{background-color:#0275d8!important;color:#fff!important;width:100%!important}.completer-row{width:100%!important;color:#fff!important}.completer-dropdown{margin-top:2px!important;background-color:#344154f7!important;color:#fff;border-color:#111!important;box-shadow:0 6px 12px #0003}.search-results{left:-85px;top:-2px;z-index:1050;color:#fff;background-color:#344154f7}.search-results .btn-sm{padding:.15rem .25rem;font-size:.5rem}.search-results:before{content:\"\";border:0px}.search-results a{color:#242d3a}.search-results a:hover{color:#fff;background-color:#0275d8;cursor:pointer}.search-results a i{margin-right:8px}.right-section{position:absolute;right:10px;top:10px}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#242d3a}.user-menu .dropdown-menu a:hover{color:#fff;background-color:#242d3a}.user-menu .dropdown-menu a i{margin-right:8px}.user-link{margin-right:6px}.user-link span{color:#fff;margin-left:7px;letter-spacing:.02em}.user-link img{width:40px;border-radius:50%}.user-link:hover,.user-link:focus{text-decoration:none}.user-info{background-color:#242d3a;padding:8px;text-align:center;width:240px;margin-bottom:5px}.user-info img{width:100px;margin-top:5px;border-radius:50%}.user-info p{color:#ebebeb;margin-top:10px}.user-info small{display:block}@media (max-width: 767px){.nav.az-navbar .navbar-brand{width:auto}}.navbar-search{color:#ffffff80!important}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 8px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.collapse-menu-link{color:#fff!important;font-size:20px;padding-top:5px;cursor:pointer}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.overlay{height:100%;width:100%;display:none;padding-left:10%;padding-right:10%;position:fixed;z-index:999999;left:0;top:0;background-color:#000;background-color:#000000e6;overflow-x:hidden;transition:.5s}.overlay-content{position:relative;top:25%;width:100%;text-align:center;margin-top:30px}.overlay p{padding:8px;text-decoration:none;font-size:36px;color:#818181;display:block;transition:.3s}.overlay a:hover,.overlay a:focus{color:#f1f1f1}.overlay .closebtn{position:absolute;top:20px;right:45px;font-size:60px}@media screen and (max-height: 450px){.overlay a{font-size:20px}.overlay .closebtn{font-size:40px;top:15px;right:35px}}\n"] }]
435
+ args: [{ selector: "navbar", viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav #navbar class=\"nav az-navbar fixed-top\">\r\n <a class=\"navbar-brand\" routerLink=\"/pages/dashboard\">\r\n <img src=\"../assets/img/logo/logo.png\" alt=\"\" class=\"d-md-block d-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-v d-md-block d-none\">{{ applicationVersion }}</div>\r\n\r\n <img src=\"../assets/img/logo/logo_sm.png\" alt=\"\" class=\"d-md-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-sm-v d-md-none\">{{ applicationVersion }}</div>\r\n </a>\r\n\r\n <ul class=\"nav navbar-nav navbar-fillable\">\r\n <li>\r\n <a (click)=\"toggleMenu()\" class=\"collapse-menu-link fa fa-navicon\"></a>\r\n </li>\r\n <li class=\"d-none d-md-block\">\r\n <form role=\"search\" class=\"app-search\">\r\n <input type=\"text\" placeholder=\"Search...\" class=\"form-control\">\r\n <a><i class=\"fa fa-search\" style=\"color: #aaa\"></i></a>\r\n </form>\r\n </li>\r\n\r\n <ul class=\"nav right-section\">\r\n\r\n <!--Dropdown job in esecuzione-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a [class.fa-spin]=\"_state.jobsInProgress > 0\" class=\"fa fa-cog dropdown-toggle app-pointer nav-jobs-icon\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\" class=\"app-link app-no-selection app-inline app-pointer\" (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{ 'Completed' | localize : lc }}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\" [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\" [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!--Dropdown moduli-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"fa fa-th module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle>\r\n </a>\r\n <ul *dropdownMenu class=\"module-board-menu container\" role=\"menu\">\r\n <div class=\"app-relative\">\r\n <jace-modules-board [Modules]=\"Modules\"></jace-modules-board>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!-- USER MENU -->\r\n <div class=\"pull-right user-menu app-no-selection\" dropdown container=\"body\" placement=\"bottom right\" style=\"height:50px;\">\r\n <a class=\"dropdown-toggle user-link app-pointer\" dropdownToggle>\r\n <div class=\"pull-left app-margin-right-10 app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"pull-right d-none d-sm-block\">\r\n <div class=\"app-white-text\">\r\n {{LastIdentity?.FullName}} - ({{LastIdentity?.TenantName}})\r\n </div>\r\n <div class=\"app-white-text text-sm-center\">\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 1\">\r\n {{'Ambiente di Produzione' | localize : lc}}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </a>\r\n\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"user-info\">\r\n <div class=\"app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"app-white-text app-margin-top-10 app-margin-bottom-10\">\r\n <div>\r\n {{LastIdentity?.FullName}} - ({{LastIdentity?.TenantName}})\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n </li>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'en-US'\" (click)=\"lc.changeLocale('it-IT')\"><i class=\"fa fa-globe\">&nbsp;</i>Switch to Italian Site</a>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'it-IT'\" (click)=\"lc.changeLocale('en-US')\"><i class=\"fa fa-globe\">&nbsp;</i>Passa al Sito in Inglese</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeModule()\"><i class=\"fa fa-th\">&nbsp;</i>{{'Cambia Modulo' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeTenant()\"><i class=\"fa fa-building\">&nbsp;</i>{{'Cambia Tenant' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\"><i class=\"fa fa-user-times\">&nbsp;</i>{{'Ripulisci le Preferenze Utente' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearAll()\"><i class=\"fa fa-recycle \">&nbsp;</i>{{'Ripulisci la Cache' | localize : lc}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"logout()\"><i class=\"fa fa-power-off\">&nbsp;</i>Log out</a>\r\n </ul>\r\n </div>\r\n </ul>\r\n </ul>\r\n</nav>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #ccc}.nav-jobs-menu-header{padding:8px;font-size:14px;background-color:#242d3a;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.nav.az-navbar{height:60px;align-items:center;background-color:#242d3a}.nav.az-navbar .navbar-brand{width:205px;padding-top:0;font-size:0;margin-left:10px}.navbar-nav{flex-direction:row}#lines{border-bottom:7px double;border-top:2px solid;border-color:#ffffffe6;content:\"\";height:3px;width:20px;box-sizing:content-box;cursor:pointer}#lines:hover{opacity:.8}.app-search{position:relative;margin-left:20px}.app-search a{position:absolute;top:3px;right:14px;font-size:16px;color:#ffffff4d}.app-search .form-control{border:1px solid rgba(255,255,255,.1);font-size:11px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:190px}.app-search input{border:1px solid rgba(255,255,255,.1);font-size:12px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:240px}.completer-selected-row{background-color:#0275d8!important;color:#fff!important;width:100%!important}.completer-row{width:100%!important;color:#fff!important}.completer-dropdown{margin-top:2px!important;background-color:#344154f7!important;color:#fff;border-color:#111!important;box-shadow:0 6px 12px #0003}.search-results{left:-85px;top:-2px;z-index:1050;color:#fff;background-color:#344154f7}.search-results .btn-sm{padding:.15rem .25rem;font-size:.5rem}.search-results:before{content:\"\";border:0px}.search-results a{color:#242d3a}.search-results a:hover{color:#fff;background-color:#0275d8;cursor:pointer}.search-results a i{margin-right:8px}.right-section{position:absolute;right:10px;top:10px}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#242d3a}.user-menu .dropdown-menu a:hover{color:#fff;background-color:#242d3a}.user-menu .dropdown-menu a i{margin-right:8px}.user-link{margin-right:6px}.user-link span{color:#fff;margin-left:7px;letter-spacing:.02em}.user-link img{width:40px;border-radius:50%}.user-link:hover,.user-link:focus{text-decoration:none}.user-info{background-color:#242d3a;padding:8px;text-align:center;width:240px;margin-bottom:5px}.user-info img{width:100px;margin-top:5px;border-radius:50%}.user-info p{color:#ebebeb;margin-top:10px}.user-info small{display:block}@media (max-width: 767px){.nav.az-navbar .navbar-brand{width:auto}}.navbar-search{color:#ffffff80!important}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 8px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.collapse-menu-link{color:#fff!important;font-size:20px;padding-top:5px;cursor:pointer}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.overlay{height:100%;width:100%;display:none;padding-left:10%;padding-right:10%;position:fixed;z-index:999999;left:0;top:0;background-color:#000;background-color:#000000e6;overflow-x:hidden;transition:.5s}.overlay-content{position:relative;top:25%;width:100%;text-align:center;margin-top:30px}.overlay p{padding:8px;text-decoration:none;font-size:36px;color:#818181;display:block;transition:.3s}.overlay a:hover,.overlay a:focus{color:#f1f1f1}.overlay .closebtn{position:absolute;top:20px;right:45px;font-size:60px}@media screen and (max-height: 450px){.overlay a{font-size:20px}.overlay .closebtn{font-size:40px;top:15px;right:35px}}\n"] }]
437
436
  }], ctorParameters: function () { return [{ type: i1$1.PreferencesService }, { type: i1$1.CacheService }, { type: i2.BaseMessageService }, { type: i2.NotificationsService }, { type: i3$3.MessageService }, { type: i4$1.LocalizationService }, { type: i3$2.HTTPService }, { type: i0.ChangeDetectorRef }, { type: i4.AppState }, { type: i4.TokenService }, { type: i1.Router }]; }, propDecorators: { navbar: [{
438
437
  type: ViewChild,
439
438
  args: ["navbar", { static: false }]
@@ -753,7 +752,10 @@ class JaceLoginComponent {
753
752
  constructor() {
754
753
  }
755
754
  ngOnInit() {
756
- window.location.href = `${myconfig.AuthUrl}/login/form?client=${myconfig.Client}`;
755
+ if (myconfig.AuthUrl)
756
+ window.location.href = `${myconfig.AuthUrl}/login/form?client=${myconfig.Client}`;
757
+ else
758
+ console.error("myconfig.AuthUrl is not provided");
757
759
  }
758
760
  }
759
761
  JaceLoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JaceLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -840,7 +842,7 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
840
842
  JaceModulesBoardComponent,
841
843
  Navbar,
842
844
  RedirecterComponent,
843
- Sidebar], imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule], exports: [BackTop,
845
+ Sidebar], imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule], exports: [BackTop,
844
846
  Breadcrumb,
845
847
  PageNotFoundComponent,
846
848
  ServerErrorComponent,
@@ -852,11 +854,11 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
852
854
  Navbar,
853
855
  RedirecterComponent,
854
856
  Sidebar] });
855
- ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule] });
857
+ ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule] });
856
858
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, decorators: [{
857
859
  type: NgModule,
858
860
  args: [{
859
- imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule],
861
+ imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule],
860
862
  declarations: [...COMPONENTS],
861
863
  exports: [...COMPONENTS]
862
864
  }]