@esfaenza/core 15.2.41 → 15.2.42-beta1

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 (145) hide show
  1. package/README.md +24 -24
  2. package/assets/fontawesome/css/all.css +27093 -0
  3. package/assets/fontawesome/css/all.min.css +9 -0
  4. package/assets/fontawesome/css/brands.css +1522 -0
  5. package/assets/fontawesome/css/brands.min.css +6 -0
  6. package/assets/fontawesome/css/duotone.css +12491 -0
  7. package/assets/fontawesome/css/duotone.min.css +6 -0
  8. package/assets/fontawesome/css/fontawesome.css +12984 -0
  9. package/assets/fontawesome/css/fontawesome.min.css +9 -0
  10. package/assets/fontawesome/css/light.css +19 -0
  11. package/assets/fontawesome/css/light.min.css +6 -0
  12. package/assets/fontawesome/css/regular.css +19 -0
  13. package/assets/fontawesome/css/regular.min.css +6 -0
  14. package/assets/fontawesome/css/sharp-regular.css +19 -0
  15. package/assets/fontawesome/css/sharp-regular.min.css +6 -0
  16. package/assets/fontawesome/css/sharp-solid.css +19 -0
  17. package/assets/fontawesome/css/sharp-solid.min.css +6 -0
  18. package/assets/fontawesome/css/solid.css +19 -0
  19. package/assets/fontawesome/css/solid.min.css +6 -0
  20. package/assets/fontawesome/css/svg-with-js.css +638 -0
  21. package/assets/fontawesome/css/svg-with-js.min.css +6 -0
  22. package/assets/fontawesome/css/thin.css +19 -0
  23. package/assets/fontawesome/css/thin.min.css +6 -0
  24. package/assets/fontawesome/css/v4-font-face.css +26 -0
  25. package/assets/fontawesome/css/v4-font-face.min.css +6 -0
  26. package/assets/fontawesome/css/v4-shims.css +2194 -0
  27. package/assets/fontawesome/css/v4-shims.min.css +6 -0
  28. package/assets/fontawesome/css/v5-font-face.css +34 -0
  29. package/assets/fontawesome/css/v5-font-face.min.css +6 -0
  30. package/assets/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  31. package/assets/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  32. package/assets/fontawesome/webfonts/fa-duotone-900.ttf +0 -0
  33. package/assets/fontawesome/webfonts/fa-duotone-900.woff2 +0 -0
  34. package/assets/fontawesome/webfonts/fa-light-300.ttf +0 -0
  35. package/assets/fontawesome/webfonts/fa-light-300.woff2 +0 -0
  36. package/assets/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  37. package/assets/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  38. package/assets/fontawesome/webfonts/fa-sharp-regular-400.ttf +0 -0
  39. package/assets/fontawesome/webfonts/fa-sharp-regular-400.woff2 +0 -0
  40. package/assets/fontawesome/webfonts/fa-sharp-solid-900.ttf +0 -0
  41. package/assets/fontawesome/webfonts/fa-sharp-solid-900.woff2 +0 -0
  42. package/assets/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  43. package/assets/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  44. package/assets/fontawesome/webfonts/fa-thin-100.ttf +0 -0
  45. package/assets/fontawesome/webfonts/fa-thin-100.woff2 +0 -0
  46. package/assets/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
  47. package/assets/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
  48. package/components/breadcrumb/breadcrumb.component.d.ts +12 -8
  49. package/components/navbar/navbar.component.d.ts +6 -16
  50. package/components/sidebar/sidebar.component.d.ts +31 -5
  51. package/domain/models/jace/ActiveModuleView.d.ts +8 -8
  52. package/esm2020/components/back-top/back-top.component.mjs +5 -5
  53. package/esm2020/components/base/base.component.mjs +4 -4
  54. package/esm2020/components/base/reactive.component.mjs +4 -4
  55. package/esm2020/components/breadcrumb/breadcrumb.component.mjs +53 -43
  56. package/esm2020/components/components.module.mjs +5 -5
  57. package/esm2020/components/error/404/pagenotfound.component.mjs +4 -4
  58. package/esm2020/components/error/500/servererror.component.mjs +4 -4
  59. package/esm2020/components/error/Angular/angularerror.component.mjs +4 -4
  60. package/esm2020/components/es-modal/es-modal-head/es-modal-head.component.mjs +4 -4
  61. package/esm2020/components/es-modal/es-modal.component.mjs +4 -4
  62. package/esm2020/components/external-page/external_pages.component.mjs +4 -4
  63. package/esm2020/components/jace-login/jace-login.component.mjs +4 -4
  64. package/esm2020/components/jace-resource/jace-resource.component.mjs +4 -4
  65. package/esm2020/components/navbar/modules-board/jace-modules-board.component.mjs +5 -5
  66. package/esm2020/components/navbar/navbar.component.loc.mjs +4 -4
  67. package/esm2020/components/navbar/navbar.component.mjs +16 -63
  68. package/esm2020/components/page/pages.component.mjs +5 -5
  69. package/esm2020/components/redirecter/redirecter.component.mjs +4 -4
  70. package/esm2020/components/sidebar/sidebar.component.mjs +93 -10
  71. package/esm2020/directives/componentHost/componentHost.directive.mjs +4 -4
  72. package/esm2020/directives/directives.module.mjs +5 -5
  73. package/esm2020/directives/draggable/draggable.directive.mjs +4 -4
  74. package/esm2020/directives/es-modal/es-modal.directive.mjs +4 -4
  75. package/esm2020/directives/es-routerLink/es-routerLink.directive.mjs +4 -4
  76. package/esm2020/directives/slim-scroll/slim-scroll.directive.mjs +4 -4
  77. package/esm2020/directives/widget/widget.directive.mjs +4 -4
  78. package/esm2020/domain/models/jace/ActiveModuleView.mjs +1 -1
  79. package/esm2020/domain/public-api.mjs +1 -1
  80. package/esm2020/lib/app.component.mjs +5 -5
  81. package/esm2020/lib/core.module.mjs +5 -5
  82. package/esm2020/modules/classes/_shared.module.mjs +5 -5
  83. package/esm2020/modules/classes/t_c.module.mjs +5 -5
  84. package/esm2020/pipes/classes/included_in.pipe.mjs +4 -4
  85. package/esm2020/pipes/classes/safe_html.pipe.mjs +4 -4
  86. package/esm2020/pipes/classes/safe_script.pipe.mjs +4 -4
  87. package/esm2020/pipes/classes/safe_style.pipe.mjs +4 -4
  88. package/esm2020/pipes/classes/safe_url.pipe.mjs +4 -4
  89. package/esm2020/pipes/pipes.module.mjs +5 -5
  90. package/esm2020/public-api.mjs +1 -1
  91. package/esm2020/services/classes/app.accesstoken.mjs +4 -4
  92. package/esm2020/services/classes/app.completedjobredirection.mjs +4 -4
  93. package/esm2020/services/classes/app.errorhandler.mjs +4 -4
  94. package/esm2020/services/classes/app.event.mjs +4 -4
  95. package/esm2020/services/classes/app.globalsearch.mjs +4 -4
  96. package/esm2020/services/classes/app.httpextensions.loc.mjs +4 -4
  97. package/esm2020/services/classes/app.httpextensions.mjs +4 -4
  98. package/esm2020/services/classes/app.menufilter.mjs +4 -4
  99. package/esm2020/services/classes/app.routeguard.mjs +4 -4
  100. package/esm2020/services/classes/app.session.mjs +4 -4
  101. package/esm2020/services/classes/app.state.mjs +4 -4
  102. package/esm2020/services/classes/preferences/app.cache.persistor.mjs +4 -4
  103. package/esm2020/services/classes/preferences/app.preference.persistor.mjs +4 -4
  104. package/fesm2015/esfaenza-core-components.mjs +225 -185
  105. package/fesm2015/esfaenza-core-components.mjs.map +1 -1
  106. package/fesm2015/esfaenza-core-directives.mjs +22 -22
  107. package/fesm2015/esfaenza-core-directives.mjs.map +1 -1
  108. package/fesm2015/esfaenza-core-domain.mjs.map +1 -1
  109. package/fesm2015/esfaenza-core-modules.mjs +8 -8
  110. package/fesm2015/esfaenza-core-modules.mjs.map +1 -1
  111. package/fesm2015/esfaenza-core-pipes.mjs +19 -19
  112. package/fesm2015/esfaenza-core-pipes.mjs.map +1 -1
  113. package/fesm2015/esfaenza-core-services.mjs +39 -39
  114. package/fesm2015/esfaenza-core-services.mjs.map +1 -1
  115. package/fesm2015/esfaenza-core.mjs +8 -8
  116. package/fesm2015/esfaenza-core.mjs.map +1 -1
  117. package/fesm2020/esfaenza-core-components.mjs +223 -184
  118. package/fesm2020/esfaenza-core-components.mjs.map +1 -1
  119. package/fesm2020/esfaenza-core-directives.mjs +22 -22
  120. package/fesm2020/esfaenza-core-directives.mjs.map +1 -1
  121. package/fesm2020/esfaenza-core-domain.mjs.map +1 -1
  122. package/fesm2020/esfaenza-core-modules.mjs +8 -8
  123. package/fesm2020/esfaenza-core-modules.mjs.map +1 -1
  124. package/fesm2020/esfaenza-core-pipes.mjs +19 -19
  125. package/fesm2020/esfaenza-core-pipes.mjs.map +1 -1
  126. package/fesm2020/esfaenza-core-services.mjs +39 -39
  127. package/fesm2020/esfaenza-core-services.mjs.map +1 -1
  128. package/fesm2020/esfaenza-core.mjs +8 -8
  129. package/fesm2020/esfaenza-core.mjs.map +1 -1
  130. package/package.json +2 -2
  131. package/theme/styles/_base.scss +8 -23
  132. package/theme/styles/_bootstrap-override.scss +36 -62
  133. package/theme/styles/_libs-override.scss +43 -6
  134. package/theme/styles/_project-override.scss +4 -0
  135. package/theme/styles/_variables.scss +14 -42
  136. package/theme/styles/skins/enuma.scss +59 -0
  137. package/theme/styles/skins/etnograph.scss +52 -0
  138. package/assets/fonts/fontawesome/FontAwesome.otf +0 -0
  139. package/assets/fonts/fontawesome/fontawesome-webfont.eot +0 -0
  140. package/assets/fonts/fontawesome/fontawesome-webfont.svg +0 -2671
  141. package/assets/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
  142. package/assets/fonts/fontawesome/fontawesome-webfont.woff +0 -0
  143. package/assets/fonts/fontawesome/fontawesome-webfont.woff2 +0 -0
  144. package/assets/styles/font-awesome.min.css +0 -2929
  145. package/theme/styles/skins/_blue.scss +0 -16
@@ -1 +1 @@
1
- {"version":3,"file":"esfaenza-core-components.mjs","sources":["../../../projects/core/components/src/back-top/back-top.component.ts","../../../projects/core/components/src/back-top/back-top.component.html","../../../projects/core/components/src/breadcrumb/breadcrumb.component.ts","../../../projects/core/components/src/breadcrumb/breadcrumb.component.html","../../../projects/core/components/src/error/404/pagenotfound.component.ts","../../../projects/core/components/src/error/404/pagenotfound.component.html","../../../projects/core/components/src/error/500/servererror.component.ts","../../../projects/core/components/src/error/500/servererror.component.html","../../../projects/core/components/src/error/Angular/angularerror.component.ts","../../../projects/core/components/src/error/Angular/angularerror.component.html","../../../projects/core/components/src/sidebar/sidebar.component.ts","../../../projects/core/components/src/sidebar/sidebar.component.html","../../../projects/core/components/src/navbar/navbar.component.loc.ts","../../../projects/core/components/src/base/reactive.component.ts","../../../projects/core/components/src/navbar/modules-board/jace-modules-board.component.ts","../../../projects/core/components/src/navbar/modules-board/jace-modules-board.component.html","../../../projects/core/components/src/navbar/navbar.component.ts","../../../projects/core/components/src/navbar/navbar.component.html","../../../projects/core/components/src/page/pages.component.ts","../../../projects/core/components/src/page/pages.component.html","../../../projects/core/components/src/external-page/external_pages.component.ts","../../../projects/core/components/src/external-page/external_pages.component.html","../../../projects/core/components/src/jace-login/jace-login.component.ts","../../../projects/core/components/src/jace-login/jace-login.component.html","../../../projects/core/components/src/redirecter/redirecter.component.ts","../../../projects/core/components/src/redirecter/redirecter.component.html","../../../projects/core/components/src/base/base.component.ts","../../../projects/core/components/src/jace-resource/jace-resource.component.ts","../../../projects/core/components/src/jace-resource/jace-resource.component.html","../../../projects/core/components/src/es-modal/es-modal.component.ts","../../../projects/core/components/src/es-modal/es-modal.component.html","../../../projects/core/components/src/es-modal/es-modal-head/es-modal-head.component.ts","../../../projects/core/components/src/es-modal/es-modal-head/es-modal-head.component.html","../../../projects/core/components/src/components.module.ts","../../../projects/core/components/src/esfaenza-core-components.ts"],"sourcesContent":["// Angular\r\nimport { Component, ElementRef, HostListener, Input, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\n\r\ndeclare var $;\r\n\r\n@Component({\r\n selector: \"back-top\",\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: [\"./back-top.component.scss\"],\r\n templateUrl: \"./back-top.component.html\",\r\n standalone: true\r\n})\r\nexport class BackTop {\r\n @Input() position: number = 400;\r\n @Input() showSpeed: number = 500;\r\n @Input() moveSpeed: number = 1000;\r\n\r\n @ViewChild(\"backTop\", { static: false }) private _selector: ElementRef;\r\n\r\n ngAfterViewInit() {\r\n this._onWindowScroll();\r\n }\r\n\r\n @HostListener(\"click\")\r\n _onClick(): boolean {\r\n $(\"html, body\").animate({ scrollTop: 0 }, { duration: this.moveSpeed });\r\n return false;\r\n }\r\n\r\n @HostListener(\"window:scroll.out-zone\")\r\n _onWindowScroll(): void {\r\n let el = this._selector.nativeElement;\r\n window.scrollY > this.position ? $(el).fadeIn(this.showSpeed) : $(el).fadeOut(this.showSpeed);\r\n }\r\n}","<i #backTop class=\"fa fa-angle-up back-to-top\" title=\"Back to Top\"></i>","// Angular\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\nimport { Title } from \"@angular/platform-browser\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { NgFor } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\nimport { EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Component({\r\n selector: \"breadcrumb\",\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: [\"./breadcrumb.component.scss\"],\r\n templateUrl: \"./breadcrumb.component.html\",\r\n standalone: true,\r\n imports: [NgFor]\r\n})\r\nexport class Breadcrumb {\r\n\r\n public activePageTitle: string = \"\";\r\n public subActiveLinks: string[] = [];\r\n \r\n constructor(public _state: AppState, private _activatedRoute: ActivatedRoute, private _titleService: Title) {\r\n this._state.subscribe(\"menu.adjustNavigationTo\", (activeLink) => this.adjustNavigationTo(activeLink));\r\n this._state.subscribe(\"menu.adjustSubNavigationTo\", (activeLink) => this.adjustSubNavigationTo(activeLink));\r\n this._state.subscribe(\"menu.removeLastSubNavigation\", () => this.removeLastSubNavigation());\r\n this._state.subscribe(\"menu.cleanupSubNavigation\", () => this.cleanupSubNavigation());\r\n }\r\n \r\n private adjustNavigationTo(activeLink) {\r\n if (activeLink) {\r\n this.subActiveLinks = [];\r\n this.activePageTitle = activeLink;\r\n this._titleService.setTitle(myconfig.AppData.ModuleDescription + \" > \" + activeLink);\r\n }\r\n }\r\n \r\n /*Gestione della navigazione interna:\r\n Essenzialmente controllo se la lista di subnavigation già contiene l'elemento in cui sono ora,\r\n se lo contiene già significa che ci sono tornato sopra premendo back(browser o pagina), quindi\r\n elimino l'ultimo elemento della lista per ristabilire la situazione, se invece l'elemento non esiste\r\n vuol dire che ci ho navigato sopra, quindi lo aggiungo.*/\r\n private adjustSubNavigationTo(activeLink) {\r\n if (activeLink) {\r\n var index = this.subActiveLinks.indexOf(activeLink);\r\n if (index != -1 && (index + 1) != this.subActiveLinks.length)\r\n this.subActiveLinks.pop();\r\n if (index == -1 && this.activePageTitle != activeLink)\r\n this.subActiveLinks.push(activeLink);\r\n this._titleService.setTitle(myconfig.AppData.ModuleDescription + \" > \" + activeLink);\r\n }\r\n }\r\n \r\n private removeLastSubNavigation() {\r\n this.subActiveLinks.pop();\r\n }\r\n \r\n private cleanupSubNavigation() {\r\n this.subActiveLinks = [];\r\n }\r\n \r\n public ngOnInit(): void {\r\n if (!this.activePageTitle) {\r\n this.activePageTitle = this._activatedRoute.snapshot.firstChild.data[\"title\"];\r\n }\r\n }\r\n}","<div class=\"clearfix\">\r\n <ol class=\"breadcrumb\">\r\n <li class=\"breadcrumb-item fa fa-home m-t-3\"></li>\r\n <li class=\"breadcrumb-item active text-uppercase\">{{ activePageTitle }}</li>\r\n <li class=\"breadcrumb-item active text-uppercase e2eLeafPage\" *ngFor=\"let link of subActiveLinks\">{{ link }}</li>\r\n </ol>\r\n</div>","// Angular\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\nimport { Location } from \"@angular/common\";\r\nimport { Router } from \"@angular/router\";\r\n\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n@Component({\r\n selector: \"pagenotfound\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./pagenotfound.component.html\",\r\n standalone: true\r\n})\r\nexport class PageNotFoundComponent {\r\n router: Router;\r\n\r\n constructor(router: Router, private _location: Location, private as: AppState) {\r\n this.router = router;\r\n }\r\n\r\n goPreviousPage() {\r\n this._location.back();\r\n }\r\n\r\n goDashboard() {\r\n let url = `/pages/dashboard`;\r\n if (this.as.Embedded)\r\n this.as.MainWindow.postMessage({ type: \"navigate\", url }, \"*\");\r\n else\r\n this.router.navigate([url]);\r\n\r\n }\r\n}","<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\">404</h1>\r\n <h6 class=\"card-title\">La risorsa richiesta non &egrave; stata trovata ma in futuro potrebbe essere disponibile.</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { NgIf } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n\r\n@Component({\r\n selector: \"servererror\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./servererror.component.html\",\r\n standalone: true,\r\n imports: [NgIf]\r\n})\r\nexport class ServerErrorComponent {\r\n statusCode: string;\r\n statusText: string;\r\n previousUrl: string;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private as: AppState) {\r\n this.statusCode = this.route.snapshot.params[\"statusCode\"];\r\n this.statusText = this.b64DecodeUnicode(this.route.snapshot.params[\"statusText\"]);\r\n this.previousUrl = this.route.snapshot.params[\"fromUrl\"];\r\n\r\n //Dopo 1 secondo considero la sfilza di errori finita\r\n setTimeout(() => { this.as.handlingError = false; }, 1000);\r\n }\r\n\r\n b64DecodeUnicode(str) {\r\n // Going backwards: from bytestream, to percent-encoding, to original string.\r\n return decodeURIComponent(atob(str).split(\"\").map(c => \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2)).join(\"\"));\r\n }\r\n\r\n goPreviousPage() {\r\n this.router.navigateByUrl(this.previousUrl);\r\n }\r\n\r\n goDashboard() {\r\n let url = `/pages/dashboard`;\r\n if (this.as.Embedded)\r\n this.as.MainWindow.postMessage({ type: \"navigate\", url }, \"*\");\r\n else\r\n this.router.navigate([url]);\r\n }\r\n}","<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\" *ngIf=\"!statusCode\">&nbsp;&nbsp;&nbsp;</h1>\r\n <h1 class=\"display-1\" *ngIf=\"statusCode\">{{statusCode}}</h1>\r\n <h6 class=\"card-title\" *ngIf=\"!statusText\">&nbsp;&nbsp;&nbsp;</h6>\r\n <h6 class=\"card-title\" style=\"word-wrap:break-word; max-height: 500px; overflow: auto\" *ngIf=\"statusText\">{{statusText}}</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { NgIf } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { AppState, TokenService } from \"@esfaenza/core/services\";\r\n\r\n@Component({\r\n selector: \"angularerror\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./angularerror.component.html\",\r\n standalone: true,\r\n imports: [NgIf]\r\n})\r\nexport class AngularErrorComponent {\r\n\r\n errorMessage: string;\r\n errorFrom: string;\r\n errorLastCalls: string;\r\n previousUrl: string;\r\n identityInfos: string;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private http: HTTPService, private bts: TokenService, private as: AppState) {\r\n\r\n let identity = this.bts.getJaceIdentity();\r\n this.previousUrl = this.route.snapshot.params[\"fromUrl\"];\r\n let calls = (this.http.LastThreeCompletedCalls[0] || \"<empty>\") + \", \" + (this.http.LastThreeCompletedCalls[1] || \"<empty>\") + \", \" + (this.http.LastThreeCompletedCalls[2] || \"<empty>\");\r\n this.errorFrom = \"From page: \" + (this.previousUrl || \"<missing>\");\r\n this.errorLastCalls = \"Last three calls: \" + calls;\r\n this.identityInfos = \"Logged user: \" + (identity?.Idtenant || '??') + \"-\" + (identity?.DsUser || '???????');\r\n this.errorMessage = this.b64DecodeUnicode(this.route.snapshot.params[\"errorMessage\"]);\r\n\r\n console.error(this.errorMessage);\r\n }\r\n\r\n ngOnInit() {\r\n var item = localStorage.getItem(\"Reload\");\r\n if (item) {\r\n localStorage.removeItem(\"Reload\");\r\n this.router.navigateByUrl(item);\r\n }\r\n }\r\n\r\n b64DecodeUnicode(str) {\r\n // Bytestream -> Encoding % -> Stringa originale\r\n return decodeURIComponent(atob(str).split(\"\").map(c => \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2)).join(\"\"));\r\n }\r\n\r\n goPreviousPage() {\r\n // Reload per forzare il ricaricamento del javascript (in modo che lo stato dell'applicazione sia a posto)\r\n // all'onInit la pagina prenderà la root a cui navigare dal localStorage\r\n localStorage.setItem(\"Reload\", this.previousUrl);\r\n location.reload();\r\n }\r\n\r\n goDashboard() {\r\n let url = `/pages/dashboard`;\r\n if (this.as.Embedded)\r\n this.as.MainWindow.postMessage({ type: \"navigate\", url }, \"*\");\r\n else\r\n this.router.navigate([url]);\r\n }\r\n}","<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-8 col-md-10 col-10 offset-xl-2 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-4\">Qualcosa &egrave; andato storto.</h1>\r\n <h6>\r\n <small>\r\n Si &egrave; verificato un errore interno all'applicazione. Questo non dovrebbe accadere. Prova a ricaricare la pagina precedente e rieffettuare le stesse operazioni, se il problema persiste contatta il service desk allegando una breve descrizione delle operazioni che stavi eseguendo e questo messaggio d'errore:\r\n </small>\r\n </h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"identityInfos\"><em>{{identityInfos}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorFrom\"><em>{{errorFrom}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorLastCalls\"><em>{{errorLastCalls}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorMessage\"><em>{{errorMessage}}</em></h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right app-margin-right-10\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, Inject, NgZone, Optional, Type, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\nimport { NavigationEnd, Router, RouterLinkActive, RouterLink } from \"@angular/router\";\r\nimport { NgClass, NgFor, NgTemplateOutlet, NgIf } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService, LocalizationModule } from \"@esfaenza/localizations\";\r\n\r\n// EsFaenza\r\nimport { ApplicationMenu, MENU, MENU_LOCALIZATION } from \"@esfaenza/core/domain\";\r\nimport { AppState, MenuFilteringService } from \"@esfaenza/core/services\";\r\nimport { UtilityService } from \"@esfaenza/extensions\";\r\nimport { AccessControlService } from \"@esfaenza/access-control\";\r\nimport { SlimScroll } from \"@esfaenza/core/directives\";\r\n\r\n// Librerie\r\nimport { firstValueFrom } from \"rxjs\";\r\n\r\ndeclare var jQuery;\r\n\r\n@Component({\r\n selector: \"sidebar\",\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: [\"./sidebar.component.scss\"],\r\n templateUrl: \"./sidebar.component.html\",\r\n standalone: true,\r\n imports: [NgClass, SlimScroll, NgFor, NgTemplateOutlet, NgIf, RouterLinkActive, RouterLink, LocalizationModule]\r\n})\r\nexport class Sidebar {\r\n public menuItems: Array<any>;\r\n public menuHeight: number;\r\n public isMenuCollapsed: boolean = false;\r\n public isMenuShouldCollapsed: boolean = false;\r\n\r\n public showHoverElem: boolean;\r\n public hoverElemHeight: number;\r\n public hoverElemTop: number;\r\n\r\n @ViewChild(\"sidebar\", { static: true }) sidebar: ElementRef;\r\n\r\n constructor(\r\n public lc: LocalizationService, @Optional() @Inject(MENU_LOCALIZATION) lcMenu: Type<LocalizationService>, private cdr: ChangeDetectorRef, private _elementRef: ElementRef,\r\n private _router: Router, public _state: AppState, private zone: NgZone, private utiExts: UtilityService, private aac: AccessControlService, @Inject(MENU) private menuItemsRaw: ApplicationMenu[],\r\n private menuFilteringService: MenuFilteringService) {\r\n\r\n this.lc = this.lc.generateFromType(lcMenu);\r\n\r\n this._state.subscribe(\"menu.isCollapsed\", (isCollapsed) => {\r\n this.isMenuCollapsed = isCollapsed;\r\n this.cdr.markForCheck();\r\n });\r\n\r\n this._state.subscribe(\"application.DeployAvailable\", (available: boolean) => {\r\n if (available)\r\n this.ngOnInit();\r\n });\r\n\r\n this._router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n let width = (window.innerWidth > 0) ? window.innerWidth : screen.width;\r\n if (width <= 768) \r\n this._state.notifyDataChanged(\"menu.isCollapsed\", true);\r\n window.scrollTo(0, 0);\r\n }\r\n });\r\n }\r\n\r\n public async ngOnInit() {\r\n let tmpMenuItems = this.getMenuItems();\r\n this.menuItems = await firstValueFrom(this.menuFilteringService.filter(tmpMenuItems));\r\n\r\n if (this._shouldMenuCollapse())\r\n this.menuCollapse();\r\n\r\n this.updateSidebarHeight();\r\n this._state.setSidebarWidth(this.sidebar.nativeElement.offsetWidth);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n private getMenuItems(): ApplicationMenu[] {\r\n var items: ApplicationMenu[] = [];\r\n\r\n for (let i = 0; i < this.menuItemsRaw.length; i++) {\r\n let t = this.menuItemsRaw[i];\r\n (<any>t).level = 1;\r\n if (!t.ac || this.aac.has(t.ac)) {\r\n if (!t.subMenu || t.subMenu.length == 0)\r\n items.push(t);\r\n else {\r\n var toPush = this.checkSubMenuOverClaims(t, 1);\r\n items.push(toPush);\r\n }\r\n }\r\n }\r\n\r\n return items;\r\n }\r\n\r\n private checkSubMenuOverClaims(menuItem: ApplicationMenu, level: number): ApplicationMenu {\r\n var item: ApplicationMenu = this.utiExts.deepClone(menuItem);\r\n item.subMenu = [];\r\n\r\n for (let i = 0; i < menuItem.subMenu.length; i++) {\r\n let t = menuItem.subMenu[i];\r\n (<any>t).level = level+1;\r\n if (!t.ac || this.aac.has(t.ac)) {\r\n if (!t.subMenu || t.subMenu.length == 0)\r\n item.subMenu.push(t);\r\n else {\r\n var toPush = this.checkSubMenuOverClaims(t, level+1);\r\n item.subMenu.push(toPush);\r\n }\r\n }\r\n // Calcolo qui per non doverlo calcolare lato HTML\r\n (<any>t).padding_left = level > 2 ? (65 + ((level - 3) * 15) + 'px !important') : null;\r\n }\r\n\r\n return item;\r\n }\r\n \r\n @HostListener(\"window:resize\")\r\n public onWindowResize(): void {\r\n var isMenuShouldCollapsed = this._shouldMenuCollapse();\r\n\r\n if (this.isMenuShouldCollapsed !== isMenuShouldCollapsed) {\r\n this.menuCollapseStateChange(isMenuShouldCollapsed);\r\n }\r\n this.isMenuShouldCollapsed = isMenuShouldCollapsed;\r\n this.updateSidebarHeight();\r\n }\r\n\r\n private _shouldMenuCollapse(): boolean {\r\n return window.innerWidth <= 768;\r\n }\r\n\r\n public menuCollapse(): void {\r\n this.menuCollapseStateChange(true);\r\n this._state.setSidebarWidth(this.sidebar.nativeElement.offsetWidth);\r\n }\r\n\r\n public menuCollapseStateChange(isCollapsed: boolean): void {\r\n this.isMenuCollapsed = isCollapsed;\r\n this._state.notifyDataChanged(\"menu.isCollapsed\", this.isMenuCollapsed);\r\n }\r\n\r\n public menuExpand(): void {\r\n this.menuCollapseStateChange(false);\r\n this._state.setSidebarWidth(this.sidebar.nativeElement.offsetWidth);\r\n }\r\n\r\n public hoverItem(jQueryevent): void {\r\n this.showHoverElem = true;\r\n this.hoverElemHeight = jQueryevent.currentTarget.clientHeight;\r\n this.hoverElemTop = jQueryevent.currentTarget.getBoundingClientRect().top - 60;\r\n\r\n jQuery(\".sidebar-hover-elem\").css(\"top\", this.hoverElemTop + \"px\");\r\n jQuery(\".sidebar-hover-elem\").css(\"height\", this.hoverElemHeight + \"px\");\r\n jQuery(\".sidebar-hover-elem\").addClass(\"show-hover-elem\");\r\n }\r\n\r\n public sendAwayHoverElement() {\r\n this.hoverElemTop = -200;\r\n\r\n jQuery(\".sidebar-hover-elem\").css(\"top\", this.hoverElemTop + \"px\");\r\n }\r\n\r\n public updateSidebarHeight(): void {\r\n this.menuHeight = this._elementRef.nativeElement.children[0].clientHeight - 60;\r\n }\r\n\r\n //Nonostante questa funzione sia collegata con (click.out-zone) per qualche motivo angular le esegue comunque nella sua zone\r\n //generando un po' di irresponsività iniziale... succede solo col click... boh\r\n public collapseMenu(jQueryevent, item): boolean {\r\n if (this.isMenuCollapsed)\r\n this.menuExpand();\r\n\r\n if (!item.level)\r\n console.warn(\"Livello non presente in un oggetto del menu!\");\r\n\r\n //N.B: Tutte le funzioni di JQuery le esguo fuori da Angular dato che c'� una buona probabilit� che siano eventi asincroni\r\n this.zone.runOutsideAngular(() => { this.outsideAngularClickHandler(jQueryevent, item); });\r\n\r\n return false;\r\n }\r\n\r\n private outsideAngularClickHandler(jQueryevent, item) {\r\n let levelClass = item.level ? \"level-\" + (item.level) : \"\";\r\n let levelClassPlusOne = item.level ? \"level-\" + (item.level + 1) : \"\";\r\n let slidePeriod = 400;\r\n\r\n var link = jQuery(jQueryevent.currentTarget);\r\n\r\n //Se l'elemento non è espanso\r\n if (!link.closest(\".sidebar-item-expanded\" + \"_\" + levelClass).length) {\r\n //Tiro su tutti gli elementi dello stesso livello espansi e li chiudo\r\n\r\n //Se ho compresso un menu vado a vedere se c'è anche un altro menu di livello pi� basso da richiudere\r\n jQuery(\"ul.nav-sidebar li\" + \".\" + (levelClassPlusOne)).each(function () {\r\n let closestLi = jQuery(this).closest(\"li\");\r\n if (closestLi.children(\"ul\").length && closestLi.hasClass(\"sidebar-item-expanded\")) {\r\n closestLi.children(\"ul\").slideUp(slidePeriod);\r\n //Le uso sempre entrambe insieme. La prima è la classe per la logica, la seconda per le animazioni\r\n closestLi.removeClass(\"sidebar-item-expanded\" + \"_\" + (levelClassPlusOne));\r\n closestLi.removeClass(\"sidebar-item-expanded\");\r\n }\r\n });\r\n\r\n //Dopodich� richiudo tutti quelli del mio livello attuale\r\n jQuery(\"ul.nav-sidebar li\" + \".\" + levelClass).each(function () {\r\n let closestLi = jQuery(this).closest(\"li\");\r\n if (closestLi.children(\"ul\").length && closestLi.hasClass(\"sidebar-item-expanded\")) {\r\n closestLi.children(\"ul\").slideUp(slidePeriod);\r\n //Le uso sempre entrambe insieme. La prima è la classe per la logica, la seconda per le animazioni\r\n closestLi.removeClass(\"sidebar-item-expanded\" + \"_\" + levelClass);\r\n closestLi.removeClass(\"sidebar-item-expanded\");\r\n }\r\n });\r\n\r\n //Dopodich� espando quello attuale\r\n link.next().slideDown(slidePeriod);\r\n\r\n if (item.subMenu) {\r\n //Le uso sempre entrambe insieme. La prima è la classe per la logica, la seconda per le animazioni\r\n link.closest(\"li\").addClass(\"sidebar-item-expanded\" + \"_\" + levelClass);\r\n link.closest(\"li\").addClass(\"sidebar-item-expanded\");\r\n }\r\n } else {\r\n //Altrimenti, se l'elemento è già espanso lo chiudo\r\n if (item.subMenu) {\r\n //Le uso sempre entrambe insieme. La prima è la classe per la logica, la seconda per le animazioni\r\n link.closest(\"li\").removeClass(\"sidebar-item-expanded\" + \"_\" + levelClass);\r\n link.closest(\"li\").removeClass(\"sidebar-item-expanded\");\r\n }\r\n\r\n link.next().slideUp(slidePeriod);\r\n }\r\n }\r\n}","<div class=\"app-sidebar\" #sidebar [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\" (mouseleave.out-zone)=\"sendAwayHoverElement();\">\r\n <ul class=\"nav nav-sidebar flex-column flex-nowrap\" slim-scroll [slimScrollOptions]=\"{height: menuHeight}\" style=\"position:relative; zoom:1\">\r\n\r\n <li *ngFor=\"let item of menuItems\" class=\"sidebar-list-item level-{{item.level}}\" [ngClass]=\"{'has-sub-menu': item.subMenu, 'sidebar-item-expanded': item.expanded}\" [class.sidebar-item-wip]=\"item.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: item}\"></ng-container>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"sidebar-hover-elem\"></div>\r\n</div>\r\n\r\n<ng-template #menuItem let-item>\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"(!item.routerLink && !item.subMenu) || item.wip\" [href]=\"item.link ? item.link : '#'\" (click)=\"item.wip && $event.preventDefault()\" target=\"_blank\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.routerLink && !item.subMenu && !item.wip\" class=\"sidebar-list-link {{item.cssClass || ''}}\" [routerLink]=\"[item.routerLink]\" [queryParams]=\"item.queryParams\" routerLinkActive=\"active-link\" (click.out-zone)=\"collapseMenu($event, item)\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.subMenu && !item.wip\" (click.out-zone)=\"collapseMenu($event, item)\" [attr.href]=\"''\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n <b class=\"fa fa-angle-down\"></b>\r\n </a>\r\n\r\n <ul *ngIf=\"item.subMenu\" class=\"sidebar-sublist\">\r\n <li *ngFor=\"let subitem of item.subMenu\" class=\"sidebar-sublist-item level-{{subitem.level}}\" [class.sidebar-item-wip]=\"subitem.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: subitem}\"></ng-container>\r\n </li>\r\n </ul>\r\n</ng-template>","import { Injectable, Injector } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\n@Injectable()\r\nexport class NavBarLoc extends LocalizationService {\r\n constructor(injector: Injector) {\r\n super(injector);\r\n super.set(\"it->en\", \"Sessione Scaduta\", [\"Expired session\"]);\r\n super.set(\"it->en\", \"Backend Offline\", [\"Backend Offline\"]);\r\n super.set(\"it->en\", \"Sembra che il Backend sia momentaneamente offline. Questa pagina si aggiornera' automaticamente non appena la situazione tornera' alla normalita'. Ci scusiamo per il disagio\", [\"Backend seems to be currently offline. This page will reset itself when the situation goes back to normal. Sorry for the inconvenience\"]);\r\n super.set(\"it->en\", \"Ripulisci la Cache\", [\"Clear Caches\"]);\r\n super.set(\"it->en\", \"Cache Ripulita\", [\"Cache Cleared\"]);\r\n super.set(\"it->en\", \"Ambiente di Produzione\", [\"Production Environment\"]);\r\n super.set(\"it->en\", \"È disponibile una nuova versione per l'applicazione corrente. Si suggerisce di ricaricare la pagina (CTRL + F5)\", [\"A new version is available for this application. It is suggested to reload this page (CTRL + F5)\"])\r\n super.set(\"it->en\", \"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)\", [\"Session informations (Tenant/Account) has changed after a login to a different module with the same Tenant/Username using the same browser. It is suggested to reload this page (CTRL + F5)\"]);\r\n super.set(\"it->en\", \"Cambia Modulo\", [\"Change module\"]);\r\n super.set(\"it->en\", \"Cambia Tenant\", [\"Change tenant\"]);\r\n super.set(\"it->en\", \"Usa notifiche semplici\", [\"Use simple alerts\"]);\r\n super.set(\"it->en\", \"Consenti notifiche eleganti\", [\"Allow fancy alerts\"]);\r\n super.set(\"it->en\", \"Ambiente di Sviluppo\", [\"Development Environment\"]);\r\n super.set(\"it->en\", \"Ripulisci le Preferenze Utente\", [\"Clear User Preferences\"]);\r\n super.set(\"it->en\", \"Preferenze utente ripulite\", [\"User preferences has been cleared\"]);\r\n super.set(\"it->en\", \"Ambiente di Staging\", [\"Staging Environment\"]);\r\n super.set(\"it->en\", \"Ambiente di Staging A\", [\"Staging A Environment\"]);\r\n super.set(\"it->en\", \"L'attuale sessione di lavoro non è più valida.<br>Si prega di eseguire nuovamente il login.\", [\"Current session has expired.<br>Please login back into the application.\"]);\r\n super.set(\"it->en\", \"Notifiche\", [\"Notifications\"]);\r\n super.set(\"it->en\", \"Job Applicativi\", [\"Application Jobs\"]);\r\n super.set(\"it->en\", \"Al momento non c'è nulla in esecuzione\", [\"Nothing being executed at the moment\"]);\r\n super.set(\"it->en\", \"Job Completato\", [\"Job Completed\"]);\r\n }\r\n}","// Angular\r\nimport { Component } from \"@angular/core\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { ReplaySubject, Subscription } from \"rxjs\";\r\n\r\n@Component({ template: '' })\r\nexport abstract class ReactiveComponent {\r\n\r\n protected Subscriptions: Subscription[] = [];\r\n protected destroyed$: ReplaySubject<boolean> = new ReplaySubject(1);\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n\r\n if (!this.Subscriptions)\r\n return;\r\n\r\n for (let i = 0; i < this.Subscriptions.length; i++)\r\n this.Subscriptions[i].unsubscribe();\r\n }\r\n}","// Angular\r\nimport { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\nimport { NgIf, NgFor } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { TokenService } from \"@esfaenza/core/services\";\r\n\r\n// Applicazione\r\nimport { ActiveModuleView, CategoriesWithModules } from \"@esfaenza/core/domain\";\r\n\r\n@Component({\r\n selector: \"jace-modules-board\",\r\n templateUrl: \"jace-modules-board.component.html\",\r\n styleUrls: [\"jace-modules-board.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [NgIf, NgFor]\r\n})\r\nexport class JaceModulesBoardComponent {\r\n\r\n @Input() Modules : ActiveModuleView[];\r\n \r\n public Categories: CategoriesWithModules[] = [];\r\n private Tenant: string;\r\n\r\n constructor(private bts: TokenService) { \r\n this.Tenant = this.bts.getJaceIdentity().Idtenant;\r\n }\r\n\r\n ngOnInit() {\r\n if(!this.Modules)\r\n return;\r\n\r\n this.Modules.forEach(m => {\r\n //Fixo href\r\n m.href = m.uiurl?.replace(\"{tenant}\", this.Tenant)\r\n\r\n //Aggiungo il modulo alla categoria giusta. In ogni \"fila\" di moduli non ce ne possono essere pi� di 6\r\n var prev = this.Categories.find(c => c.category.toUpperCase() == m.category.toUpperCase());\r\n var lastRow = prev?.module_rows[prev.module_rows.length - 1];\r\n\r\n if (prev && lastRow.length < 6)\r\n lastRow.push(m);\r\n else if (prev && lastRow.length == 6)\r\n prev.module_rows.push([m]);\r\n else\r\n this.Categories.push(new CategoriesWithModules(m))\r\n });\r\n }\r\n}","<div *ngIf=\"Categories\">\r\n <div *ngFor=\"let cat of Categories\">\r\n <div class=\"row\">\r\n <div class=\"section-title app-padding-left-0 app-padding-top-0\">\r\n {{cat.category}}\r\n </div>\r\n </div>\r\n <div *ngFor=\"let modRow of cat.module_rows\" class=\"row app-padding-left-10 app-padding-right-15\">\r\n <div class=\"module\" [class.module-available]=\"module.href\" [class.module-unavailable]=\"!module.href\" *ngFor=\"let module of modRow\">\r\n <a [href]=\"module.href\">\r\n <div class=\"module-name\"><span>{{module.name}}</span></div>\r\n <div class=\"module-footer\">\r\n <span class=\"fa-stack\"><i class=\"fa fa-circle-thin fa-stack-2x\"></i><i class=\"fa fa-chevron-right fa-stack-1x\"></i></span>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, Type, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\nimport { Router, RouterLink } from \"@angular/router\";\r\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\r\nimport { NgIf, NgFor, NgTemplateOutlet } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\n\r\n// Configurazioni\r\nimport { BaseMessageService, NotificationsService } from \"@esfaenza/signalr-notifications\";\r\nimport { CacheService, PreferencesService } from \"@esfaenza/preferences\";\r\nimport { LocalizationService, LocalizationModule } from \"@esfaenza/localizations\";\r\nimport { MessageService } from \"@esfaenza/extensions\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\n// EsFaenza\r\nimport { EsTableColumnsDefinition, EsTableModule } from \"@esfaenza/es-table\";\r\nimport { ComponentHostDirective } from \"@esfaenza/core/directives\";\r\nimport { JaceIdentity, ActiveModuleView, EnvOptions, ApplicationJob, SearchResult, SearchResultContainer, NAVBAR_EXTENSIONS } from \"@esfaenza/core/domain\";\r\nimport { AppState, CompletedJobRedirectionService, GlobalSearchService, TokenService } from \"@esfaenza/core/services\";\r\n\r\n// Librerie\r\nimport { interval, startWith, takeUntil, takeWhile } from \"rxjs\";\r\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\r\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\r\n\r\n// Applicazione\r\nimport { NavBarLoc } from \"./navbar.component.loc\";\r\n\r\n// Componenti\r\nimport { ReactiveComponent } from \"../base/reactive.component\";\r\nimport { JaceModulesBoardComponent } from \"./modules-board/jace-modules-board.component\";\r\n\r\n// Chiamate ai Repository\r\nconst GET_Jace_GetActiveJaceModules: string = \"/api/Jace/GetActiveJaceModules\";\r\nconst GET_Adm_ClearAllCaches: string = \"/api/Adm/ClearAllCaches\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\ndeclare var dayjs;\r\n\r\n@Component({\r\n selector: \"navbar\",\r\n viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: [\"./navbar.component.scss\"],\r\n templateUrl: \"./navbar.component.html\",\r\n standalone: true,\r\n imports: [RouterLink, FormsModule, BsDropdownModule, MatSlideToggleModule, NgIf, NgFor, ProgressbarModule, JaceModulesBoardComponent, ComponentHostDirective, NgTemplateOutlet, EsTableModule, LocalizationModule]\r\n})\r\nexport class Navbar extends ReactiveComponent {\r\n\r\n public applicationVersion = myconfig.AppData.ComponentVersion;\r\n public applicationEnvironment = myconfig.AppData.ComponentEnvironment;\r\n\r\n public isMenuCollapsed: boolean = false;\r\n public anomaliesProcessing: boolean = false;\r\n\r\n public CurrentIdentity: JaceIdentity;\r\n\r\n private newVersionWarned: boolean = false;\r\n @ViewChild(\"navbar\", { static: false }) navbar: ElementRef;\r\n\r\n public Modules: ActiveModuleView[];\r\n\r\n constructor(\r\n private prefsService: PreferencesService, private cacheService: CacheService, public globalSearchService: GlobalSearchService, private MessageDef: BaseMessageService,\r\n private notifications: NotificationsService, private msgExts: MessageService, public lc: LocalizationService, private http: HTTPService, public cdr: ChangeDetectorRef,\r\n public _state: AppState, public sr: TokenService, private router: Router, private cjrService: CompletedJobRedirectionService, @Inject(NAVBAR_EXTENSIONS) public extensionComponents: Type<any>[]) {\r\n super();\r\n\r\n this._state.subscribe(\"menu.isCollapsed\", (isCollapsed) => { this.isMenuCollapsed = isCollapsed; });\r\n this._state.subscribe(\"app.completedJob\", (jobDescription) => {\r\n this.msgExts.simpleSuccess(this.lc.loc(\"Job Completato\") + \": \" + jobDescription);\r\n });\r\n\r\n this.handleBaseNotifications();\r\n this.getActiveJaceModules();\r\n\r\n // Appena la pagina parte, poi ogni secondo, controllo l'identity per verificare se rimane la stessa\r\n interval(1000).pipe(\r\n startWith(0),\r\n takeUntil(this.destroyed$),\r\n takeWhile(_ => !myconfig.redirectInProgress)\r\n ).subscribe(t => {\r\n this.checkIdentity();\r\n })\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n //Quando viene distrutta la navbar devo distruggere anche il client di signalr perchè vuol dire che ho chiuso la pagina\r\n this.notifications.disconnect();\r\n }\r\n\r\n private handleBaseNotifications() {\r\n this.notifications.send(this.MessageDef.OUT_QueryJobStatus, null);\r\n this.notifications.observe(this.MessageDef.IN_SendVersion).pipe(takeUntil(this.destroyed$)).subscribe((message) => {\r\n if (message != myconfig.AppData.ComponentVersion && !this.newVersionWarned) {\r\n this.msgExts.simpleWarning(this.lc.loc(\"È disponibile una nuova versione per l'applicazione corrente. Si suggerisce di ricaricare la pagina (CTRL + F5)\"));\r\n this.newVersionWarned = true;\r\n }\r\n });\r\n }\r\n\r\n private checkIdentity() {\r\n let id = this.sr.getJaceIdentity();\r\n let idLast = this.CurrentIdentity;\r\n\r\n if (!id) return;\r\n\r\n this.checkSessionTimeout(id);\r\n\r\n if (this.CurrentIdentity && (id.IdAccount != idLast?.IdAccount || id.IdUser != idLast?.IdUser || id.Idtenant != idLast?.Idtenant)) {\r\n 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)\"));\r\n this.cdr.markForCheck();\r\n }\r\n\r\n this.CurrentIdentity = id;\r\n }\r\n\r\n getActiveJaceModules() {\r\n this.http.get<ActiveModuleView[]>(GET_Jace_GetActiveJaceModules).subscribe(res => {\r\n this.Modules = res;\r\n this._state.Modules = this.Modules;\r\n });\r\n }\r\n\r\n private checkSessionTimeout(identity: JaceIdentity) {\r\n if (dayjs() >= dayjs(identity.ExpirationTime).subtract(10, 'minutes') && !myconfig.redirectInProgress) {\r\n myconfig.redirectInProgress = true;\r\n\r\n this.msgExts.expiredSessionMessage(\r\n this.lc.loc('Expired session'),\r\n this.lc.loc(\"L'attuale sessione di lavoro non è più valida.<br>Si prega di eseguire nuovamente il login.\"),\r\n () => {\r\n myconfig.redirectInProgress = false;\r\n console.log(\"checkSessionTimeout - redirecting to login\")\r\n this.router.navigate([\"login\"]);\r\n }\r\n );\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._state.setHeaderHeight(this.navbar.nativeElement.offsetHeight);\r\n }\r\n\r\n public toggleMenu() {\r\n this.isMenuCollapsed = !this.isMenuCollapsed;\r\n this._state.notifyDataChanged(\"menu.isCollapsed\", this.isMenuCollapsed);\r\n }\r\n\r\n public logout() {\r\n window.location.href = `${myconfig.AuthUrl}/logout?client=${myconfig.Client}`;\r\n }\r\n\r\n public changeModule() {\r\n window.location.href = myconfig.JaceDashboardUrl;\r\n }\r\n\r\n public changeTenant() {\r\n window.location.href = `${myconfig.AuthUrl}/login/tenant?client=${myconfig.Client}`;\r\n }\r\n\r\n clearUserPreferences() {\r\n this.prefsService.clear().subscribe();\r\n this.msgExts.simpleSuccess(this.lc.loc(\"Preferenze utente ripulite\"));\r\n }\r\n\r\n clearCacheClient() {\r\n this.cacheService.clear().subscribe();\r\n this.http.resetHttpUntimedCacheStorage();\r\n this.http.resetHttpTimedCacheStorage();\r\n this.msgExts.simpleSuccess(this.lc.loc(\"Cache Ripulita\"));\r\n }\r\n\r\n clearCacheServer() {\r\n this.http.get(GET_Adm_ClearAllCaches).subscribe(_ => {\r\n this.msgExts.simpleSuccess(this.lc.loc(\"Cache Ripulita\"));\r\n });\r\n }\r\n\r\n clearAll() {\r\n this.cacheService.clear().subscribe();\r\n this.http.resetHttpUntimedCacheStorage();\r\n this.http.resetHttpTimedCacheStorage();\r\n this.http.get(GET_Adm_ClearAllCaches).subscribe(_ => {\r\n this.msgExts.simpleSuccess(this.lc.loc(\"Cache Ripulita\"));\r\n });\r\n }\r\n\r\n clearMessages() {\r\n this.msgExts.clearMessages();\r\n }\r\n\r\n completedJobClicked(job: ApplicationJob) {\r\n this.cjrService.redirect(job);\r\n }\r\n\r\n // ***************************************** Gestione Ricerca Globale *****************************************\r\n\r\n public SelectedResult: SearchResult = null;\r\n public ShowSingleTable: boolean = false;\r\n\r\n searchTerm: string;\r\n searchingTerm: boolean = false;\r\n searchResult: SearchResultContainer;\r\n\r\n searchRequest() {\r\n this.searchingTerm = true;\r\n this.searchResult = null;\r\n\r\n if (!this.globalSearchService.Enabled)\r\n return;\r\n\r\n this.globalSearchService.search(this.searchTerm).subscribe(t => {\r\n this.searchingTerm = false;\r\n this.searchResult = t;\r\n\r\n this.searchResult.results.forEach(t => {\r\n t.est_cols = t.columns.map(c => {\r\n let colLink = this.globalSearchService.generateColumnLink(c);\r\n return new EsTableColumnsDefinition(c.description, c.id, colLink?.routePath, colLink?.routeProperties);\r\n });\r\n });\r\n });\r\n }\r\n\r\n searchModelChanged() {\r\n if (!this.searchingTerm)\r\n this.closeSearch();\r\n }\r\n\r\n closeSearch() {\r\n this.searchingTerm = false;\r\n this.searchResult = null;\r\n }\r\n\r\n FilterSearchResults(item: SearchResult = null) {\r\n this.SelectedResult = null;\r\n this.ShowSingleTable = true;\r\n\r\n requestAnimationFrame(() => {\r\n if (item)\r\n this.SelectedResult = this.searchResult?.results?.find(f => f.description == item.description);\r\n else\r\n this.ShowSingleTable = false;\r\n });\r\n }\r\n}","<nav #navbar class=\"nav az-navbar fixed-top\">\r\n <!-- Logo -->\r\n <a class=\"navbar-brand\" routerLink=\"/pages/dashboard\">\r\n <img src=\"../assets/img/logo/logo.png\" class=\"d-md-block d-none\" 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\" class=\"d-md-none\" 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\" style=\"display: flex;\">\r\n <!-- Collapse menù a sinistra -->\r\n <li style=\"display: flex;\">\r\n <a (click)=\"toggleMenu()\" style=\"color: white; font-size: 20px; align-self: center;\" class=\"fa fa-navicon\"></a>\r\n </li>\r\n\r\n <!-- Search -->\r\n <li style=\"display: flex;\">\r\n <form class=\"app-search\" style=\"align-self: center;\" role=\"search\" (ngSubmit)=\"searchRequest()\">\r\n <input type=\"text\" placeholder=\"Search...\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"searchModelChanged()\" [ngModelOptions]=\"{standalone : true}\" class=\"form-control\" autocomplete=\"off\">\r\n <a><i class=\"ion-ios-search-strong\"></i></a>\r\n <button hidden></button>\r\n </form>\r\n </li>\r\n\r\n <ul class=\"nav\" style=\"margin-left: auto; padding-top: 5px; padding-right: 10px;\">\r\n\r\n <!--Dropdown job in esecuzione-->\r\n <div class=\"user-menu app-no-selection app-margin-right-10\" style=\"display: flex;\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a [class.fa-spin]=\"_state.jobsInProgress > 0\" class=\"fa fa-cog dropdown-toggle app-pointer\" style=\"color: white; font-size: 20px; align-self: center;\" 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'è 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=\"user-menu app-no-selection app-margin-right-10\" style=\"display: flex;\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"fa fa-th dropdown-toggle app-pointer\" style=\"color: white !important; font-size: 20px; align-self: center;\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"module-board-menu container\" role=\"menu\">\r\n <div class=\"app-relative\"><jace-modules-board [Modules]=\"Modules\"></jace-modules-board></div>\r\n </ul>\r\n </div>\r\n\r\n <!-- Punti di estensione per Calendar, Chatroom e chi più ne ha più ne metta... -->\r\n <div class=\"user-menu app-no-selection app-margin-right-10\" *ngFor=\"let comp of extensionComponents\">\r\n <ng-template [componentHost]=\"comp\"></ng-template>\r\n </div>\r\n\r\n <!--Dropdown User Menu-->\r\n <div class=\"user-menu app-no-selection\" dropdown container=\"body\" placement=\"bottom right\" style=\"height:45px; padding-right: 10px;\">\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 <ng-container *ngTemplateOutlet=\"userIcon;\"></ng-container>\r\n </div>\r\n <div class=\"app-white-text pull-right d-none d-sm-block\">\r\n <ng-container *ngTemplateOutlet=\"debugInfos\"></ng-container>\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 <ng-container *ngTemplateOutlet=\"userIcon; context: { $implicit: {right: 62} }\"></ng-container>\r\n </div>\r\n <div class=\"app-white-text app-margin-top-10 app-margin-bottom-10\">\r\n <ng-container *ngTemplateOutlet=\"debugInfos\"></ng-container>\r\n </div>\r\n </li>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"lc.Locale == '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=\"lc.Locale == '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>\r\n\r\n<!-- Template per l'icona dell'utente -->\r\n<ng-template #userIcon let-context>\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.px]=\"context?.right || undefined\" *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.px]=\"context?.right || undefined\" *ngIf=\"_state.halloweenTime\">\r\n</ng-template>\r\n\r\n<!-- Template per le informaizoni di debug: Ambiente, ruoli, permessi ecc -->\r\n<ng-template #debugInfos>\r\n <div>{{CurrentIdentity?.FullName}} - ({{CurrentIdentity?.TenantName}})</div>\r\n <div class=\"text-sm-center\">\r\n <ng-container *ngIf=\"applicationEnvironment == 2\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 5\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 6\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 1\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Overlay per la ricerca globale -->\r\n<ng-container *ngIf=\"searchingTerm || searchResult\">\r\n <div class=\"app-absolute app-search-background\">\r\n <div class=\"app-search-result-box\">\r\n <ng-container *ngIf=\"searchingTerm\">\r\n <div class=\"app-search-card\"><i class=\"fa fa-spinner fa-spin\"></i>Sto effettuando la ricerca...</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"searchResult && !searchingTerm\">\r\n <div class=\"row\" style=\"height: 100%;\">\r\n <!-- Spazio a sinistra -->\r\n <div class=\"col-md-1\"></div>\r\n <!-- Blocco con le categorie dei risultati -->\r\n <div class=\"col-md-3\">\r\n <div class=\"app-search-card\">\r\n <div class=\"app-relative\"><a class=\"fa fa-times text-danger app-absolute app-right-0 app-fs-20 app-pointer\" (click)=\"closeSearch();\"></a></div>\r\n <h4>Categorie di Ricerca</h4>\r\n <div class=\"app-pointer app-link\" [class.app-bold]=\"!SelectedResult && !ShowSingleTable\">\r\n <span (click)=\"FilterSearchResults()\">{{SelectedResult ? '-' : '>'}} Mostra Tutto</span>\r\n </div>\r\n <div *ngFor=\"let item of searchResult.results\" class=\"app-pointer app-link\" [class.app-bold]=\"SelectedResult?.description == item.description\">\r\n <span (click)=\"FilterSearchResults(item)\">{{SelectedResult?.description == item.description ? '>' : '-'}} Mostra {{item.description}} ({{item.items?.length}})</span>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Dettaglio risultati -->\r\n <div class=\"col-md-7\" style=\"overflow: auto; height: 100%;\">\r\n <ng-container *ngIf=\"!SelectedResult && !ShowSingleTable\">\r\n <div *ngFor=\"let res of searchResult.results; let i = index;\" class=\"app-search-card\" [style.margin-bottom.px]=\"i == (searchResult.results?.length - 1) ? 2 : 10\">\r\n <h4>{{res.description}}</h4>\r\n <es-table [(ngModel)]=\"res.items\" [DynamicRowColumnsDefinition]=\"res.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"SelectedResult && ShowSingleTable\">\r\n <div class=\"app-search-card\">\r\n <h4>{{SelectedResult.description}}</h4>\r\n <es-table [(ngModel)]=\"SelectedResult.items\" [DynamicRowColumnsDefinition]=\"SelectedResult.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <!-- Spazio a destra -->\r\n <div class=\"col-md-1\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>","// Angular\r\nimport { Component, HostListener, ViewEncapsulation } from \"@angular/core\";\r\nimport { DomSanitizer, SafeResourceUrl } from \"@angular/platform-browser\";\r\nimport { Location, NgClass, NgIf } from \"@angular/common\";\r\nimport { Router, RouterOutlet } from \"@angular/router\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n// Componenti\r\nimport { BackTop } from \"../back-top/back-top.component\";\r\nimport { Breadcrumb } from \"../breadcrumb/breadcrumb.component\";\r\nimport { Sidebar } from \"../sidebar/sidebar.component\";\r\nimport { Navbar } from \"../navbar/navbar.component\";\r\n\r\ndeclare var jQuery;\r\n\r\n@Component({\r\n selector: \"pages\",\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: [\"./pages.component.scss\"],\r\n templateUrl: \"./pages.component.html\",\r\n standalone: true,\r\n imports: [Navbar, Sidebar, NgClass, NgIf, Breadcrumb, RouterOutlet, BackTop]\r\n})\r\nexport class PagesComponent {\r\n public isMenuCollapsed: boolean = false;\r\n public maxHeight: number = 0;\r\n public dynamicCSSUrl: SafeResourceUrl = null;\r\n public loadedModuleCss: string = \"\";\r\n\r\n constructor(public sanitizer: DomSanitizer, public _state: AppState, private _location: Location, public router: Router) {\r\n this._state.subscribe(\"menu.isCollapsed\", (isCollapsed) => {\r\n this.isMenuCollapsed = isCollapsed;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getCurrentPageName();\r\n this.getHeight();\r\n }\r\n\r\n getCurrentPageName(): void {\r\n var url = this._location.path();\r\n setTimeout(function () {\r\n window.scrollTo(0, 0);\r\n jQuery('a[href=\"#' + url + '\"]').closest(\"li\").closest(\"ul\").closest(\"li\").addClass(\"sidebar-item-expanded\");\r\n });\r\n }\r\n\r\n public hideMenu(): void {\r\n this._state.notifyDataChanged(\"menu.isCollapsed\", true);\r\n }\r\n\r\n public getHeight() {\r\n var html = document.documentElement;\r\n this.maxHeight = html.clientHeight - 60;\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n this.getHeight();\r\n }\r\n}","<navbar></navbar>\r\n<div class=\"container-fluid\">\r\n <div class=\"row\">\r\n <sidebar></sidebar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n\r\n <div class=\"main\">\r\n <breadcrumb></breadcrumb>\r\n <router-outlet></router-outlet>\r\n </div>\r\n\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { ActivatedRoute, RouterOutlet } from \"@angular/router\";\r\nimport { Component } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { AccessControlService } from \"@esfaenza/access-control\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\nimport { AppState, TokenService } from \"@esfaenza/core/services\";\r\nimport { EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Component({\r\n selector: \"external-pages\",\r\n templateUrl: \"./external_pages.component.html\",\r\n standalone: true,\r\n imports: [RouterOutlet]\r\n})\r\nexport class ExternalPagesComponent {\r\n private Username: string = \"\";\r\n private Password: string = \"\";\r\n private Tenant: string = \"\";\r\n\r\n constructor(private aac: AccessControlService, public lc: LocalizationService, private http: HTTPService, private _state: AppState, private route: ActivatedRoute, private bts: TokenService) {\r\n this.Username = this.route.snapshot.params[\"user\"];\r\n this.Password = this.route.snapshot.params[\"pswd\"];\r\n this.Tenant = this.route.snapshot.params[\"tnt\"];\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"Caricamento pagina nell'IFRAME completato!\");\r\n console.log(\"[\" + this.Tenant + \"]\" + this.Username + \" - \" + this.Password);\r\n\r\n // Le info di login che ho passato sono le stesse delle info di login salvate nel token --> È un redirect da un sito esterno ma il token c'è già. Esco\r\n // Ho un token di login e non ho nessuna info sull'utente da usare --> È un redirect da Jace, quindi sono a posto. Esco\r\n let currentIdentity = this.bts.getJaceIdentity();\r\n if (currentIdentity && (!(this.Tenant + this.Username + this.Password) || currentIdentity.Idtenant == this.Tenant && currentIdentity.DsUser == this.Username)) {\r\n this.aac.initializeIdentity(currentIdentity);\r\n return;\r\n }\r\n\r\n // Altrimenti devo effettuare il login\r\n let LoginDTO = { tenant: \"FX\", username: this.Username, password: this.Password, client_id: \"jacedev\" };\r\n this.http.post(`${myconfig.AuthUrl}/api/login/dologin`, LoginDTO).subscribe(t => {\r\n });\r\n }\r\n}","<router-outlet></router-outlet>","// Angular\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\n\r\nimport { EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Component({\r\n selector: \"login\",\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: [\"./jace-login.component.scss\"],\r\n templateUrl: \"./jace-login.component.html\",\r\n standalone: true\r\n})\r\nexport class JaceLoginComponent {\r\n\r\n ngOnInit() {\r\n\r\n if (myconfig.AuthUrl)\r\n window.location.href = `${myconfig.AuthUrl}/login/form?client=${myconfig.Client}`;\r\n else\r\n console.error(\"myconfig.AuthUrl is not provided\");\r\n }\r\n}\r\n","<div class=\"login-container\">\r\n <div class=\"redirecting-div\">\r\n <div class=\"redirecting-message\"><h1>Redirecting to login...</h1></div>\r\n <div class=\"signal\"></div>\r\n </div>\r\n</div>\r\n","// Angular\r\nimport { Component, Inject, Optional, ViewEncapsulation } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { NgIf } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n// Applicazione\r\nimport { REDIRECT_MAP } from \"@esfaenza/core/domain\";\r\n\r\n// TODO: loc.ts\r\n@Component({\r\n selector: \"redirecter\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./redirecter.component.html\",\r\n standalone: true,\r\n imports: [NgIf]\r\n})\r\nexport class RedirecterComponent {\r\n\r\n public Error: string = \"\";\r\n\r\n constructor(public _state: AppState, private route: ActivatedRoute, public router: Router, @Optional() @Inject(REDIRECT_MAP) private redirectMap: { [index: string]: { url: string, params: string[] } }) { }\r\n\r\n ngOnInit() {\r\n let url: string = this.route.snapshot.params[\"url\"];\r\n //§ = 167... non so perché ma scrivendolo esplicitamente non funziona\r\n let parts = url.split(String.fromCharCode(167)).filter(s => !!s);\r\n\r\n if (parts.length < 2) {\r\n this.Error = \"L'url passato è incompleto. Impossibile riconoscerlo\";\r\n return;\r\n }\r\n else {\r\n var redirect = this.redirectMap[parts[0]];\r\n if (!redirect) {\r\n this.Error = \"L'url passato fa riferimento a un oggetto non navigabile. Impossibile procedere\";\r\n return;\r\n }\r\n\r\n if (redirect.params.length != parts.length - 1) {\r\n this.Error = \"Il numero di parametri richiesti per navigare all'entità richiesta è diverso dal numero di parametri passato\";\r\n return;\r\n }\r\n\r\n let parObject = {};\r\n redirect.params.forEach((t, i) => parObject[t] = parts[i + 1]);\r\n this.router.navigate([\"pages/\" + redirect.url, parObject]);\r\n }\r\n }\r\n}","<div *ngIf=\"Error\">{{Error}}</div>","// Angular\r\nimport { Component, Injector } from \"@angular/core\";\r\nimport { ActivatedRoute, Router, UrlSegmentGroup } from \"@angular/router\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n// Core\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\nimport { ReactiveComponent } from \"./reactive.component\";\r\nimport { EMBEDDED_ROUTE, ROUTE } from \"@esfaenza/core/domain\";\r\n\r\n@Component({ template: '' })\r\nexport abstract class BaseComponent extends ReactiveComponent {\r\n\r\n /*\r\n * Blocco di informazioni sulla route attuale\r\n * Route: /pages/module/component;idModel=123\r\n * \r\n * CompletePath: /pages/module/component\r\n * ComponentPath: module/component\r\n * BasePath: /pages (equivalente a ROUTE o EMBEDDED_ROUTE)\r\n * Parameters: { \"idModel\" : \"123\" }\r\n */\r\n protected CompletePath: string;\r\n protected ComponentPath: string;\r\n protected BasePath: string;\r\n protected NavigationParameters: { [name: string]: string } = null;\r\n\r\n // Informazioni prese dai dati extra della route\r\n protected InternalNavigation: boolean;\r\n protected NavigationTitle: string;\r\n\r\n private _router: Router;\r\n \r\n constructor(injector: Injector) {\r\n super();\r\n\r\n let _activatedRoute: ActivatedRoute = injector.get(ActivatedRoute);\r\n let _state: AppState = injector.get(AppState);\r\n this._router = injector.get(Router);\r\n\r\n _state.registerNavigationIfMeaningful(_activatedRoute.snapshot);\r\n\r\n // Parametri in maniera \"dinamica\"\r\n _activatedRoute.params.pipe(takeUntil(this.destroyed$)).subscribe(t => { this.NavigationParameters = t; })\r\n\r\n // Tutto il resto in maniera statica tanto non cambia\r\n let segs = (<UrlSegmentGroup>(<any>_activatedRoute.snapshot)._urlSegment).segments;\r\n this.CompletePath = \"/\" + segs.map(t => t.path).join('/');\r\n this.ComponentPath = \"/\" + segs.filter((t, i) => i != 0).map(t => t.path).join('/');\r\n this.BasePath = \"/\" + segs[0].path;\r\n\r\n this.InternalNavigation = _activatedRoute.snapshot.data[\"internalNavigation\"] || false;\r\n this.NavigationTitle = _activatedRoute.snapshot.data[\"title\"] || \"\";\r\n\r\n // Per i componenti navigabili non embeddati è inutile mandare il messaggio di navigazione\r\n // Così come per quelli per cui non esiste un titolo (cioè compoennti verso cui non si è navigato direttamente)\r\n if(!_state.Embedded || !this.NavigationTitle)\r\n return;\r\n\r\n // Se sono dentro un iframe risalgo a quello di livello più alto in assoluto\r\n let tmpWindow = <{ parent: any, postMessage: Function }>window;\r\n // Quando il parent non esiste window. parent è un riferimento a se stesso\r\n while (tmpWindow.parent != tmpWindow)\r\n tmpWindow = tmpWindow.parent;\r\n\r\n tmpWindow.postMessage({ type: \"navigation\", url: this.CompletePath, internalNavigation: this.InternalNavigation, title: this.NavigationTitle }, \"*\");\r\n }\r\n\r\n protected navigate(command: any[], extras?: any) {\r\n let commands = command;\r\n\r\n // Fix della path esattamente come in esRouterLink\r\n commands = Array.isArray(commands) ? commands : [commands];\r\n let route = (commands[0] as string);\r\n if (!route.startsWith(\"/\" + EMBEDDED_ROUTE) && !route.startsWith(\"/\" + ROUTE))\r\n commands[0] = this.BasePath + commands[0];\r\n\r\n this._router.navigate(command, extras);\r\n }\r\n}","// Angular\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation } from \"@angular/core\";\r\nimport { DomSanitizer, SafeResourceUrl } from \"@angular/platform-browser\";\r\nimport { NgIf } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n// Classi\r\nimport { ActiveModuleView, EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Component({\r\n selector: \"jace-resource\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./jace-resource.component.html\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [NgIf]\r\n})\r\nexport class JaceResourceComponent {\r\n @Input() Module: string = \"\";\r\n @Input() ModuleKeyType: 'altid' | 'id' = 'altid';\r\n @Input() Page: string = \"\";\r\n @Input() Localhost: string;\r\n\r\n public Height: number = 0;\r\n public sanitizedSourceResource: SafeResourceUrl = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef, private _state: AppState, private sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit() {\r\n console.log(\"Initializing jace resource for \" + this.Module);\r\n\r\n if (this._state.Modules?.length > 0)\r\n this.afterModulesRetrieve(this._state.Modules);\r\n else {\r\n this._state.subscribe(\"modules.Retrieved\", (modules) => {\r\n this.afterModulesRetrieve(modules);\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n //let frame = document.getElementById(\"externalFrame\");\r\n //let rect = frame.getBoundingClientRect();\r\n this.Height = window.innerHeight - 116;\r\n console.log(\"Height: \" + this.Height);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n afterModulesRetrieve(modules: ActiveModuleView[]) {\r\n let module = modules.find(t => (this.ModuleKeyType == 'id' ? t.idmodule : this.ModuleKeyType == 'altid' ? t.altname : \"\") == this.Module)\r\n if (!module) {\r\n console.error(`Impossibile trovare il modulo con ${this.ModuleKeyType} uguale a ${this.Module}`);\r\n this.sanitizedSourceResource = null;\r\n }\r\n if (this.Page.startsWith(\"pages\") || this.Page.startsWith(\"/pages\")) {\r\n console.error(`L'url della pagina da visitare non deve partire con 'pages', scrivere solo {modulo}/{pagina}`);\r\n this.sanitizedSourceResource = null;\r\n }\r\n\r\n let moduleUrl = myconfig.AuthUrl.includes(\"localhost\") ? `http://localhost:${this.Localhost}` : module.uiurl;\r\n let finalUrl = `${moduleUrl}/#/pages_ext/${this.Page}`;\r\n this.sanitizedSourceResource = this.sanitizer.bypassSecurityTrustResourceUrl(finalUrl);\r\n }\r\n}","<iframe *ngIf=\"!!sanitizedSourceResource\" id=\"externalFrame\" style=\"width: 100%; border: none;\" [style.height.px]=\"Height\" \r\n [src]=\"sanitizedSourceResource\">\r\n</iframe>","// Angular\r\nimport { Component, EventEmitter, Input, Output, ViewChild } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { ModalDirective } from \"ngx-bootstrap/modal\";\r\nimport { Draggable, EsModalDirective } from \"@esfaenza/core/directives\";\r\n\r\n@Component({\r\n selector: \"es-modal\",\r\n templateUrl: \"./es-modal.component.html\",\r\n standalone: true,\r\n imports: [EsModalDirective, Draggable]\r\n})\r\n\r\nexport class EsModalComponent {\r\n @Input() Size: string = \"M\";\r\n @Input() IgnoreBackdrop: boolean = false;\r\n @Input() HasOverlap: boolean = false;\r\n @Output() onShow: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() onHide: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n constructor(public _state: AppState) { }\r\n\r\n // Reference alla Modal\r\n @ViewChild(\"modalRef\") private Modal: ModalDirective;\r\n public show() { this.Modal.show(); }\r\n public hide() { this.Modal.hide(); }\r\n}","<div esModal #modalRef=\"es-modal\"\r\n class=\"modal fade\"\r\n role=\"dialog\"\r\n aria-hidden=\"true\"\r\n (onShow)=\"onShow.emit()\"\r\n (onHide)=\"onHide.emit()\"\r\n [config]=\"{backdrop: true, ignoreBackdropClick: IgnoreBackdrop}\">\r\n <div class=\"modal-dialog\"\r\n [class.modal-sm]=\"Size == 'S'\"\r\n [class.modal-md]=\"Size == 'M'\"\r\n [class.modal-lg]=\"Size == 'L'\"\r\n [class.modal-xl]=\"Size == 'XL'\"\r\n [class.modal-xxl]=\"Size == 'XXL'\"\r\n [class.modal-feminist]=\"Size == 'HOLYSHIT'\"\r\n emaDraggable>\r\n <div class=\"modal-content\" [class.app-bg-lightgrey]=\"HasOverlap\"\r\n style=\"cursor: default;\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { Component, EventEmitter, Output } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n@Component({\r\n selector: \"es-modal-head\",\r\n templateUrl: \"./es-modal-head.component.html\",\r\n styleUrls: [\"./es-modal-head.component.scss\"],\r\n standalone: true\r\n})\r\n\r\nexport class EsModalHeadComponent {\r\n @Output() Close: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n constructor(public _state: AppState) { }\r\n\r\n public CloseFunction() {\r\n this.Close.emit();\r\n }\r\n}","<div class=\"modal-header\">\r\n <div class=\"modal-title modal-head pull-left\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"close modal-close-button\"\r\n (click)=\"CloseFunction();\" \r\n aria-label=\"Close\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </div>\r\n</div>","// Angular\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\n\r\n// Es faenza\r\nimport { LocalizationModule } from \"@esfaenza/localizations\";\r\nimport { EsTableModule } from \"@esfaenza/es-table\";\r\n\r\n// Libs \r\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\r\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\r\nimport { ModalModule } from \"ngx-bootstrap/modal\";\r\n\r\n// Componenti\r\nimport { BackTop } from \"./back-top/back-top.component\";\r\nimport { Breadcrumb } from \"./breadcrumb/breadcrumb.component\";\r\nimport { PageNotFoundComponent } from \"./error/404/pagenotfound.component\";\r\nimport { ServerErrorComponent } from \"./error/500/servererror.component\";\r\nimport { AngularErrorComponent } from \"./error/Angular/angularerror.component\";\r\nimport { PagesComponent } from \"./page/pages.component\";\r\nimport { ExternalPagesComponent } from \"./external-page/external_pages.component\";\r\nimport { JaceLoginComponent } from \"./jace-login/jace-login.component\";\r\nimport { JaceModulesBoardComponent } from \"./navbar/modules-board/jace-modules-board.component\";\r\nimport { Navbar } from \"./navbar/navbar.component\";\r\nimport { JaceResourceComponent } from \"./jace-resource/jace-resource.component\";\r\nimport { RedirecterComponent } from \"./redirecter/redirecter.component\";\r\nimport { Sidebar } from \"./sidebar/sidebar.component\";\r\nimport { EsModalComponent } from \"./es-modal/es-modal.component\";\r\nimport { EsModalHeadComponent } from \"./es-modal/es-modal-head/es-modal-head.component\";\r\n\r\n// Core\r\nimport { DirectivesModule } from \"@esfaenza/core/directives\";\r\n\r\nconst COMPONENTS = [\r\n BackTop,\r\n Breadcrumb,\r\n PageNotFoundComponent,\r\n ServerErrorComponent,\r\n AngularErrorComponent,\r\n PagesComponent,\r\n ExternalPagesComponent,\r\n JaceLoginComponent,\r\n JaceModulesBoardComponent,\r\n Navbar,\r\n RedirecterComponent,\r\n Sidebar,\r\n JaceResourceComponent,\r\n EsModalComponent,\r\n EsModalHeadComponent\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule, EsTableModule, ModalModule, ...COMPONENTS],\r\n exports: [...COMPONENTS]\r\n})\r\nexport class ComponentsModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i5","i4","takeUntil"],"mappings":"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"}
1
+ {"version":3,"file":"esfaenza-core-components.mjs","sources":["../../../projects/core/components/src/back-top/back-top.component.ts","../../../projects/core/components/src/back-top/back-top.component.html","../../../projects/core/components/src/breadcrumb/breadcrumb.component.ts","../../../projects/core/components/src/breadcrumb/breadcrumb.component.html","../../../projects/core/components/src/error/404/pagenotfound.component.ts","../../../projects/core/components/src/error/404/pagenotfound.component.html","../../../projects/core/components/src/error/500/servererror.component.ts","../../../projects/core/components/src/error/500/servererror.component.html","../../../projects/core/components/src/error/Angular/angularerror.component.ts","../../../projects/core/components/src/error/Angular/angularerror.component.html","../../../projects/core/components/src/sidebar/sidebar.component.ts","../../../projects/core/components/src/sidebar/sidebar.component.html","../../../projects/core/components/src/navbar/navbar.component.loc.ts","../../../projects/core/components/src/base/reactive.component.ts","../../../projects/core/components/src/navbar/modules-board/jace-modules-board.component.ts","../../../projects/core/components/src/navbar/modules-board/jace-modules-board.component.html","../../../projects/core/components/src/navbar/navbar.component.ts","../../../projects/core/components/src/navbar/navbar.component.html","../../../projects/core/components/src/page/pages.component.ts","../../../projects/core/components/src/page/pages.component.html","../../../projects/core/components/src/external-page/external_pages.component.ts","../../../projects/core/components/src/external-page/external_pages.component.html","../../../projects/core/components/src/jace-login/jace-login.component.ts","../../../projects/core/components/src/jace-login/jace-login.component.html","../../../projects/core/components/src/redirecter/redirecter.component.ts","../../../projects/core/components/src/redirecter/redirecter.component.html","../../../projects/core/components/src/base/base.component.ts","../../../projects/core/components/src/jace-resource/jace-resource.component.ts","../../../projects/core/components/src/jace-resource/jace-resource.component.html","../../../projects/core/components/src/es-modal/es-modal.component.ts","../../../projects/core/components/src/es-modal/es-modal.component.html","../../../projects/core/components/src/es-modal/es-modal-head/es-modal-head.component.ts","../../../projects/core/components/src/es-modal/es-modal-head/es-modal-head.component.html","../../../projects/core/components/src/components.module.ts","../../../projects/core/components/src/esfaenza-core-components.ts"],"sourcesContent":["// Angular\r\nimport { Component, ElementRef, HostListener, Input, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\n\r\ndeclare var $;\r\n\r\n@Component({\r\n selector: \"back-top\",\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: [\"./back-top.component.scss\"],\r\n templateUrl: \"./back-top.component.html\",\r\n standalone: true\r\n})\r\nexport class BackTop {\r\n @Input() position: number = 400;\r\n @Input() showSpeed: number = 500;\r\n @Input() moveSpeed: number = 1000;\r\n\r\n @ViewChild(\"backTop\", { static: false }) private _selector: ElementRef;\r\n\r\n ngAfterViewInit() {\r\n this._onWindowScroll();\r\n }\r\n\r\n @HostListener(\"click\")\r\n _onClick(): boolean {\r\n $(\"html, body\").animate({ scrollTop: 0 }, { duration: this.moveSpeed });\r\n return false;\r\n }\r\n\r\n @HostListener(\"window:scroll.out-zone\")\r\n _onWindowScroll(): void {\r\n let el = this._selector.nativeElement;\r\n window.scrollY > this.position ? $(el).fadeIn(this.showSpeed) : $(el).fadeOut(this.showSpeed);\r\n }\r\n}","<i #backTop class=\"fa fa-angle-up back-to-top\" title=\"Back to Top\"></i>","// Angular\r\nimport { NgFor, NgIf } from \"@angular/common\";\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\nimport { Title } from \"@angular/platform-browser\";\r\nimport { ActivatedRoute, Data, NavigationEnd, Router, RouterLink, UrlTree } from \"@angular/router\";\r\nimport { EnvOptions } from \"@esfaenza/core/domain\";\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n// Configurazioni\r\nimport { combineLatest, of } from \"rxjs\";\r\nimport { filter, map, mergeMap } from \"rxjs/operators\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Component({\r\n selector: \"breadcrumb\",\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: [\"./breadcrumb.component.scss\"],\r\n templateUrl: \"./breadcrumb.component.html\",\r\n standalone: true,\r\n imports: [NgIf, NgFor, RouterLink]\r\n})\r\nexport class Breadcrumb {\r\n public MainLink: BreadcrumbItem = { title: \"Dashboard\", routerLink: [\"/pages/dashboard\"] };\r\n public SubLinks: BreadcrumbItem[] = [];\r\n\r\n constructor(public _state: AppState, private router: Router, private _activatedRoute: ActivatedRoute, private _titleService: Title) {\r\n this.router.events.pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n map((event: NavigationEnd) => { return { event: event, route: this._activatedRoute } }),\r\n map((routeWithEvent) => {\r\n while (routeWithEvent.route.firstChild)\r\n routeWithEvent.route = routeWithEvent.route.firstChild;\r\n return routeWithEvent;\r\n }),\r\n mergeMap(routeWithEvent =>\r\n combineLatest(\r\n of(routeWithEvent.event.url).pipe(map(url => this.router.parseUrl(url))),\r\n routeWithEvent.route.data)\r\n )\r\n ).subscribe((treePlusData: [UrlTree, Data]) => {\r\n let data = treePlusData[1];\r\n let tree = treePlusData[0];\r\n\r\n // true = SUB - dettaglio\r\n // false = MAIN - ricerca/dashboard\r\n let internalNavigation = data[\"InternalNavigation\"];\r\n let title = data[\"title\"];\r\n if (internalNavigation) { this.onSubNavigation(tree, title); }\r\n else { this.onMainNavigation(tree, title); }\r\n this._titleService.setTitle(myconfig.AppData.ModuleDescription + \" > \" + title);\r\n });\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onSubNavigation(tree: UrlTree, title: string) {\r\n let index = this.SubLinks.indexOf(this.SubLinks.find(f => f.title == title));\r\n let difference = this.SubLinks.length - (index + 1)\r\n if (index != -1 && (index + 1) != this.SubLinks.length) {\r\n for (let i = 0; i < difference; i++)\r\n this.SubLinks.pop();\r\n }\r\n if (index == -1 && this.MainLink.title != title)\r\n this.SubLinks.push({ title: title, routerLink: this.getRouterLink(tree) });\r\n }\r\n\r\n onMainNavigation(tree: UrlTree, title: string) {\r\n this.SubLinks = [];\r\n this.MainLink = { title: title, routerLink: this.getRouterLink(tree) };\r\n }\r\n\r\n private getRouterLink(tree: UrlTree) {\r\n let segs = tree?.root?.children?.[\"primary\"]?.segments ?? [];\r\n let route = \"/\" + segs.map(t => t.path).join('/');\r\n let params = segs[segs.length - 1]?.parameters;\r\n\r\n return [route, params];\r\n }\r\n}\r\n\r\nexport class BreadcrumbItem {\r\n title: string;\r\n routerLink: any[];\r\n}","<ol class=\"breadcrumb app-no-selection\">\r\n <li class=\"breadcrumb-item text-uppercase breadcrumb-link\" [routerLink]=\"['/pages/dashboard']\">Dashboard</li>\r\n <li *ngIf=\"MainLink?.title != 'Dashboard'\" [routerLink]=\"MainLink.routerLink\" class=\"breadcrumb-item text-uppercase breadcrumb-link\">{{MainLink.title}}</li>\r\n <li *ngFor=\"let link of SubLinks\" class=\"breadcrumb-item text-uppercase breadcrumb-link\" [routerLink]=\"link.routerLink\">{{link.title}}</li>\r\n</ol>","// Angular\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\nimport { Location } from \"@angular/common\";\r\nimport { Router } from \"@angular/router\";\r\n\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n@Component({\r\n selector: \"pagenotfound\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./pagenotfound.component.html\",\r\n standalone: true\r\n})\r\nexport class PageNotFoundComponent {\r\n router: Router;\r\n\r\n constructor(router: Router, private _location: Location, private as: AppState) {\r\n this.router = router;\r\n }\r\n\r\n goPreviousPage() {\r\n this._location.back();\r\n }\r\n\r\n goDashboard() {\r\n let url = `/pages/dashboard`;\r\n if (this.as.Embedded)\r\n this.as.MainWindow.postMessage({ type: \"navigate\", url }, \"*\");\r\n else\r\n this.router.navigate([url]);\r\n\r\n }\r\n}","<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\">404</h1>\r\n <h6 class=\"card-title\">La risorsa richiesta non &egrave; stata trovata ma in futuro potrebbe essere disponibile.</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { NgIf } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n\r\n@Component({\r\n selector: \"servererror\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./servererror.component.html\",\r\n standalone: true,\r\n imports: [NgIf]\r\n})\r\nexport class ServerErrorComponent {\r\n statusCode: string;\r\n statusText: string;\r\n previousUrl: string;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private as: AppState) {\r\n this.statusCode = this.route.snapshot.params[\"statusCode\"];\r\n this.statusText = this.b64DecodeUnicode(this.route.snapshot.params[\"statusText\"]);\r\n this.previousUrl = this.route.snapshot.params[\"fromUrl\"];\r\n\r\n //Dopo 1 secondo considero la sfilza di errori finita\r\n setTimeout(() => { this.as.handlingError = false; }, 1000);\r\n }\r\n\r\n b64DecodeUnicode(str) {\r\n // Going backwards: from bytestream, to percent-encoding, to original string.\r\n return decodeURIComponent(atob(str).split(\"\").map(c => \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2)).join(\"\"));\r\n }\r\n\r\n goPreviousPage() {\r\n this.router.navigateByUrl(this.previousUrl);\r\n }\r\n\r\n goDashboard() {\r\n let url = `/pages/dashboard`;\r\n if (this.as.Embedded)\r\n this.as.MainWindow.postMessage({ type: \"navigate\", url }, \"*\");\r\n else\r\n this.router.navigate([url]);\r\n }\r\n}","<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\" *ngIf=\"!statusCode\">&nbsp;&nbsp;&nbsp;</h1>\r\n <h1 class=\"display-1\" *ngIf=\"statusCode\">{{statusCode}}</h1>\r\n <h6 class=\"card-title\" *ngIf=\"!statusText\">&nbsp;&nbsp;&nbsp;</h6>\r\n <h6 class=\"card-title\" style=\"word-wrap:break-word; max-height: 500px; overflow: auto\" *ngIf=\"statusText\">{{statusText}}</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { NgIf } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { AppState, TokenService } from \"@esfaenza/core/services\";\r\n\r\n@Component({\r\n selector: \"angularerror\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./angularerror.component.html\",\r\n standalone: true,\r\n imports: [NgIf]\r\n})\r\nexport class AngularErrorComponent {\r\n\r\n errorMessage: string;\r\n errorFrom: string;\r\n errorLastCalls: string;\r\n previousUrl: string;\r\n identityInfos: string;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private http: HTTPService, private bts: TokenService, private as: AppState) {\r\n\r\n let identity = this.bts.getJaceIdentity();\r\n this.previousUrl = this.route.snapshot.params[\"fromUrl\"];\r\n let calls = (this.http.LastThreeCompletedCalls[0] || \"<empty>\") + \", \" + (this.http.LastThreeCompletedCalls[1] || \"<empty>\") + \", \" + (this.http.LastThreeCompletedCalls[2] || \"<empty>\");\r\n this.errorFrom = \"From page: \" + (this.previousUrl || \"<missing>\");\r\n this.errorLastCalls = \"Last three calls: \" + calls;\r\n this.identityInfos = \"Logged user: \" + (identity?.Idtenant || '??') + \"-\" + (identity?.DsUser || '???????');\r\n this.errorMessage = this.b64DecodeUnicode(this.route.snapshot.params[\"errorMessage\"]);\r\n\r\n console.error(this.errorMessage);\r\n }\r\n\r\n ngOnInit() {\r\n var item = localStorage.getItem(\"Reload\");\r\n if (item) {\r\n localStorage.removeItem(\"Reload\");\r\n this.router.navigateByUrl(item);\r\n }\r\n }\r\n\r\n b64DecodeUnicode(str) {\r\n // Bytestream -> Encoding % -> Stringa originale\r\n return decodeURIComponent(atob(str).split(\"\").map(c => \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2)).join(\"\"));\r\n }\r\n\r\n goPreviousPage() {\r\n // Reload per forzare il ricaricamento del javascript (in modo che lo stato dell'applicazione sia a posto)\r\n // all'onInit la pagina prenderà la root a cui navigare dal localStorage\r\n localStorage.setItem(\"Reload\", this.previousUrl);\r\n location.reload();\r\n }\r\n\r\n goDashboard() {\r\n let url = `/pages/dashboard`;\r\n if (this.as.Embedded)\r\n this.as.MainWindow.postMessage({ type: \"navigate\", url }, \"*\");\r\n else\r\n this.router.navigate([url]);\r\n }\r\n}","<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-8 col-md-10 col-10 offset-xl-2 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-4\">Qualcosa &egrave; andato storto.</h1>\r\n <h6>\r\n <small>\r\n Si &egrave; verificato un errore interno all'applicazione. Questo non dovrebbe accadere. Prova a ricaricare la pagina precedente e rieffettuare le stesse operazioni, se il problema persiste contatta il service desk allegando una breve descrizione delle operazioni che stavi eseguendo e questo messaggio d'errore:\r\n </small>\r\n </h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"identityInfos\"><em>{{identityInfos}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorFrom\"><em>{{errorFrom}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorLastCalls\"><em>{{errorLastCalls}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorMessage\"><em>{{errorMessage}}</em></h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right app-margin-right-10\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, Inject, NgZone, Optional, Type, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\nimport { NavigationEnd, Router, RouterLinkActive, RouterLink } from \"@angular/router\";\r\nimport { NgClass, NgFor, NgTemplateOutlet, NgIf } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService, LocalizationModule } from \"@esfaenza/localizations\";\r\n\r\n// EsFaenza\r\nimport { ApplicationMenu, EnvOptions, MENU, MENU_LOCALIZATION, SearchResult, SearchResultContainer } from \"@esfaenza/core/domain\";\r\nimport { AppState, GlobalSearchService, MenuFilteringService, TokenService } from \"@esfaenza/core/services\";\r\nimport { MessageService, UtilityService } from \"@esfaenza/extensions\";\r\nimport { AccessControlService } from \"@esfaenza/access-control\";\r\nimport { SlimScroll } from \"@esfaenza/core/directives\";\r\n\r\n// Librerie\r\nimport { firstValueFrom } from \"rxjs\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { HttpParams } from \"@angular/common/http\";\r\nimport { SafeResourceUrl } from \"@angular/platform-browser\";\r\nimport { EsTableColumnsDefinition, EsTableModule } from \"@esfaenza/es-table\";\r\nimport { FormsModule } from \"@angular/forms\";\r\n\r\n// Chiamate ai Repository\r\nconst GET_Users_GetProfilePicture: string = \"/api/Users/GetProfilePicture\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\ndeclare var jQuery;\r\n\r\n@Component({\r\n selector: \"sidebar\",\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: [\"./sidebar.component.scss\"],\r\n templateUrl: \"./sidebar.component.html\",\r\n standalone: true,\r\n imports: [NgClass, SlimScroll, NgFor, NgTemplateOutlet, NgIf, RouterLinkActive, RouterLink, LocalizationModule, EsTableModule, FormsModule]\r\n})\r\nexport class Sidebar {\r\n public menuItems: Array<any>;\r\n public menuHeight: number;\r\n public isMenuCollapsed: boolean = false;\r\n public isMenuShouldCollapsed: boolean = false;\r\n\r\n public showHoverElem: boolean;\r\n public hoverElemHeight: number;\r\n public hoverElemTop: number;\r\n\r\n public applicationVersion = myconfig.AppData.ComponentVersion;\r\n public user = \"\";\r\n public tenant = \"\";\r\n\r\n public SearchModel = \"\";\r\n\r\n @ViewChild(\"sidebar\", { static: true }) sidebar: ElementRef;\r\n\r\n constructor(\r\n public lc: LocalizationService, @Optional() @Inject(MENU_LOCALIZATION) lcMenu: Type<LocalizationService>, private cdr: ChangeDetectorRef, private _elementRef: ElementRef,\r\n private _router: Router, public _state: AppState, private zone: NgZone, private utiExts: UtilityService, private aac: AccessControlService, @Inject(MENU) private menuItemsRaw: ApplicationMenu[],\r\n private menuFilteringService: MenuFilteringService, public sr: TokenService, private https: HTTPService, private msgs: MessageService, public globalSearchService: GlobalSearchService) {\r\n\r\n this.lc = this.lc.generateFromType(lcMenu);\r\n\r\n this._state.subscribe(\"menu.isCollapsed\", (isCollapsed) => {\r\n this.isMenuCollapsed = isCollapsed;\r\n this.cdr.markForCheck();\r\n });\r\n\r\n this._state.subscribe(\"application.DeployAvailable\", (available: boolean) => {\r\n if (available)\r\n this.ngOnInit();\r\n });\r\n\r\n this._router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n let width = (window.innerWidth > 0) ? window.innerWidth : screen.width;\r\n if (width <= 768) \r\n this._state.notifyDataChanged(\"menu.isCollapsed\", true);\r\n window.scrollTo(0, 0);\r\n }\r\n });\r\n\r\n this.getUserProfileData();\r\n }\r\n\r\n public async ngOnInit() {\r\n let tmpMenuItems = this.getMenuItems();\r\n this.menuItems = await firstValueFrom(this.menuFilteringService.filter(tmpMenuItems));\r\n\r\n if (this._shouldMenuCollapse())\r\n this.menuCollapse();\r\n\r\n this.updateSidebarHeight();\r\n this._state.setSidebarWidth(this.sidebar.nativeElement.offsetWidth);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n private getMenuItems(): ApplicationMenu[] {\r\n var items: ApplicationMenu[] = [];\r\n\r\n for (let i = 0; i < this.menuItemsRaw.length; i++) {\r\n let t = this.menuItemsRaw[i];\r\n (<any>t).level = 1;\r\n if (!t.ac || this.aac.has(t.ac)) {\r\n if (!t.subMenu || t.subMenu.length == 0)\r\n items.push(t);\r\n else {\r\n var toPush = this.checkSubMenuOverClaims(t, 1);\r\n items.push(toPush);\r\n }\r\n }\r\n }\r\n\r\n return items;\r\n }\r\n\r\n private checkSubMenuOverClaims(menuItem: ApplicationMenu, level: number): ApplicationMenu {\r\n var item: ApplicationMenu = this.utiExts.deepClone(menuItem);\r\n item.subMenu = [];\r\n\r\n for (let i = 0; i < menuItem.subMenu.length; i++) {\r\n let t = menuItem.subMenu[i];\r\n (<any>t).level = level+1;\r\n if (!t.ac || this.aac.has(t.ac)) {\r\n if (!t.subMenu || t.subMenu.length == 0)\r\n item.subMenu.push(t);\r\n else {\r\n var toPush = this.checkSubMenuOverClaims(t, level+1);\r\n item.subMenu.push(toPush);\r\n }\r\n }\r\n // Calcolo qui per non doverlo calcolare lato HTML\r\n (<any>t).padding_left = level > 2 ? (65 + ((level - 3) * 15) + 'px !important') : null;\r\n }\r\n\r\n return item;\r\n }\r\n \r\n //#region JQuery\r\n @HostListener(\"window:resize.out-zone\")\r\n public onWindowResize(): void {\r\n var isMenuShouldCollapsed = this._shouldMenuCollapse();\r\n\r\n if (this.isMenuShouldCollapsed !== isMenuShouldCollapsed) {\r\n this.menuCollapseStateChange(isMenuShouldCollapsed);\r\n }\r\n this.isMenuShouldCollapsed = isMenuShouldCollapsed;\r\n this.updateSidebarHeight();\r\n }\r\n\r\n private _shouldMenuCollapse(): boolean {\r\n return window.innerWidth <= 768;\r\n }\r\n\r\n public menuCollapse(): void {\r\n this.menuCollapseStateChange(true);\r\n this._state.setSidebarWidth(this.sidebar.nativeElement.offsetWidth);\r\n }\r\n\r\n public menuCollapseStateChange(isCollapsed: boolean): void {\r\n this.isMenuCollapsed = isCollapsed;\r\n this._state.notifyDataChanged(\"menu.isCollapsed\", this.isMenuCollapsed);\r\n }\r\n\r\n public menuExpand(): void {\r\n this.menuCollapseStateChange(false);\r\n this._state.setSidebarWidth(this.sidebar.nativeElement.offsetWidth);\r\n }\r\n\r\n public hoverItem(jQueryevent): void {\r\n this.showHoverElem = true;\r\n this.hoverElemHeight = jQueryevent.currentTarget.clientHeight;\r\n this.hoverElemTop = jQueryevent.currentTarget.getBoundingClientRect().top;\r\n\r\n jQuery(\".sidebar-hover-elem\").css(\"top\", this.hoverElemTop + \"px\");\r\n jQuery(\".sidebar-hover-elem\").css(\"height\", this.hoverElemHeight + \"px\");\r\n jQuery(\".sidebar-hover-elem\").addClass(\"show-hover-elem\");\r\n }\r\n\r\n public sendAwayHoverElement() {\r\n this.hoverElemTop = -200;\r\n\r\n jQuery(\".sidebar-hover-elem\").css(\"top\", this.hoverElemTop + \"px\");\r\n }\r\n\r\n public updateSidebarHeight(): void {\r\n let marginTop = 60 + 40;\r\n let footerHeight = 150;\r\n\r\n this.menuHeight = this._elementRef.nativeElement.children[0].clientHeight - marginTop - footerHeight;\r\n }\r\n\r\n //Nonostante questa funzione sia collegata con (click.out-zone) per qualche motivo angular le esegue comunque nella sua zone\r\n //generando un po' di irresponsività iniziale... succede solo col click... boh\r\n public collapseMenu(jQueryevent, item): boolean {\r\n if (this.isMenuCollapsed)\r\n this.menuExpand();\r\n\r\n if (!item.level)\r\n console.warn(\"Livello non presente in un oggetto del menu!\");\r\n\r\n //N.B: Tutte le funzioni di JQuery le esguo fuori da Angular dato che c'� una buona probabilit� che siano eventi asincroni\r\n this.zone.runOutsideAngular(() => { this.outsideAngularClickHandler(jQueryevent, item); });\r\n\r\n return false;\r\n }\r\n\r\n private outsideAngularClickHandler(jQueryevent, item) {\r\n let levelClass = item.level ? \"level-\" + (item.level) : \"\";\r\n let levelClassPlusOne = item.level ? \"level-\" + (item.level + 1) : \"\";\r\n let slidePeriod = 400;\r\n\r\n var link = jQuery(jQueryevent.currentTarget);\r\n\r\n //Se l'elemento non è espanso\r\n if (!link.closest(\".sidebar-item-expanded\" + \"_\" + levelClass).length) {\r\n //Tiro su tutti gli elementi dello stesso livello espansi e li chiudo\r\n\r\n //Se ho compresso un menu vado a vedere se c'è anche un altro menu di livello pi� basso da richiudere\r\n jQuery(\"ul.nav-sidebar li\" + \".\" + (levelClassPlusOne)).each(function () {\r\n let closestLi = jQuery(this).closest(\"li\");\r\n if (closestLi.children(\"ul\").length && closestLi.hasClass(\"sidebar-item-expanded\")) {\r\n closestLi.children(\"ul\").slideUp(slidePeriod);\r\n //Le uso sempre entrambe insieme. La prima è la classe per la logica, la seconda per le animazioni\r\n closestLi.removeClass(\"sidebar-item-expanded\" + \"_\" + (levelClassPlusOne));\r\n closestLi.removeClass(\"sidebar-item-expanded\");\r\n }\r\n });\r\n\r\n //Dopodich� richiudo tutti quelli del mio livello attuale\r\n jQuery(\"ul.nav-sidebar li\" + \".\" + levelClass).each(function () {\r\n let closestLi = jQuery(this).closest(\"li\");\r\n if (closestLi.children(\"ul\").length && closestLi.hasClass(\"sidebar-item-expanded\")) {\r\n closestLi.children(\"ul\").slideUp(slidePeriod);\r\n //Le uso sempre entrambe insieme. La prima è la classe per la logica, la seconda per le animazioni\r\n closestLi.removeClass(\"sidebar-item-expanded\" + \"_\" + levelClass);\r\n closestLi.removeClass(\"sidebar-item-expanded\");\r\n }\r\n });\r\n\r\n //Dopodich� espando quello attuale\r\n link.next().slideDown(slidePeriod);\r\n\r\n if (item.subMenu) {\r\n //Le uso sempre entrambe insieme. La prima è la classe per la logica, la seconda per le animazioni\r\n link.closest(\"li\").addClass(\"sidebar-item-expanded\" + \"_\" + levelClass);\r\n link.closest(\"li\").addClass(\"sidebar-item-expanded\");\r\n }\r\n } else {\r\n //Altrimenti, se l'elemento è già espanso lo chiudo\r\n if (item.subMenu) {\r\n //Le uso sempre entrambe insieme. La prima è la classe per la logica, la seconda per le animazioni\r\n link.closest(\"li\").removeClass(\"sidebar-item-expanded\" + \"_\" + levelClass);\r\n link.closest(\"li\").removeClass(\"sidebar-item-expanded\");\r\n }\r\n\r\n link.next().slideUp(slidePeriod);\r\n }\r\n }\r\n //#endregion\r\n\r\n public onChangeTenant() {\r\n window.location.href = `${myconfig.AuthUrl}/login/tenant?client=${myconfig.Client}`;\r\n }\r\n\r\n public onLogout() {\r\n window.location.href = `${myconfig.AuthUrl}/logout?client=${myconfig.Client}`;\r\n }\r\n\r\n // TODO: Salvare dentro una service preferenze account\r\n public safeprofilepic: SafeResourceUrl = null;\r\n\r\n private getUserProfileData() {\r\n var identity = this.sr.getJaceIdentity();\r\n\r\n if (identity) {\r\n this.user = identity.FullName;\r\n this.tenant = identity.TenantName;\r\n\r\n // TODO: Mettere logica dentro una service preferenze account\r\n this.https.get<ProfilePicture>(GET_Users_GetProfilePicture, new HttpParams().set('id', identity.IdAccount.toString())).subscribe(t => {\r\n //this._state.setSanitizerPicProfile(t.image);\r\n });\r\n }\r\n }\r\n\r\n // ***************************************** Gestione Ricerca Globale *****************************************\r\n\r\n public SelectedResult: SearchResult = null;\r\n public ShowSingleTable: boolean = false;\r\n\r\n searchTerm: string;\r\n searchingTerm: boolean = false;\r\n searchResult: SearchResultContainer;\r\n\r\n onSearchRequest() {\r\n console.log(\"sent!\")\r\n this.searchingTerm = true;\r\n this.searchResult = null;\r\n\r\n if (!this.globalSearchService.Enabled)\r\n return;\r\n\r\n this.globalSearchService.search(this.searchTerm).subscribe(t => {\r\n this.searchingTerm = false;\r\n this.searchResult = t;\r\n\r\n this.searchResult.results.forEach(t => {\r\n t.est_cols = t.columns.map(c => {\r\n let colLink = this.globalSearchService.generateColumnLink(c);\r\n return new EsTableColumnsDefinition(c.description, c.id, colLink?.routePath, colLink?.routeProperties);\r\n });\r\n });\r\n });\r\n }\r\n\r\n onSearchModelChanged() {\r\n console.log(\"changed!\")\r\n if (!this.searchingTerm)\r\n this.closeSearch();\r\n }\r\n\r\n closeSearch() {\r\n this.searchingTerm = false;\r\n this.searchResult = null;\r\n }\r\n\r\n FilterSearchResults(item: SearchResult = null) {\r\n this.SelectedResult = null;\r\n this.ShowSingleTable = true;\r\n\r\n requestAnimationFrame(() => {\r\n if (item)\r\n this.SelectedResult = this.searchResult?.results?.find(f => f.description == item.description);\r\n else\r\n this.ShowSingleTable = false;\r\n });\r\n }\r\n}\r\n\r\n// TODO: Spostare nel modulo preferenze account\r\nexport class ProfilePicture{\r\n image: string;\r\n}","<div #sidebar class=\"app-sidebar\" [class.menu-collapsed]=\"isMenuCollapsed\" (mouseleave.out-zone)=\"sendAwayHoverElement();\">\r\n <!--Jace Logo-->\r\n <div class=\"app-logo-container\">\r\n <div class=\"app-pointer\" [routerLink]=\"['/pages/dashboard']\" style=\"margin-bottom: 10px; overflow: hidden\">\r\n <div *ngIf=\"!isMenuCollapsed\" class=\"app-logo-img app-logo-placeholder d-flex\">\r\n <div class=\"app-margin-left-10\">\r\n <i style=\"color: #00aeef;\" class=\"fas fa-chevron-left\"></i>&nbsp;\r\n <i style=\"color: #01C38D;\" class=\"fas fa-chevron-right\"></i>&nbsp;&nbsp;\r\n </div>\r\n <div class=\"app-margin-left-10\">Template a15</div>\r\n </div>\r\n <!--<img *ngIf=\"!isMenuCollapsed\" class=\"app-logo-img\" src=\"../dist/assets/img/logo/logo.png\" alt=\"\">\r\n <img *ngIf=\"isMenuCollapsed\" class=\"app-logo-img-sm\" src=\"../dist/assets/img/logo/logo_sm.png\" alt=\"\">-->\r\n </div>\r\n </div>\r\n <div *ngIf=\"!isMenuCollapsed\" class=\"app-sidebar-search\">\r\n <form novalidate role=\"search\" class=\"app-search\" (ngSubmit)=\"onSearchRequest()\">\r\n <input type=\"text\" placeholder=\"Ricerca...\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"onSearchModelChanged()\" name=\"search\" class=\"form-control\" autocomplete=\"off\">\r\n <a><i class=\"far fa-magnifying-glass\"></i></a>\r\n </form>\r\n </div>\r\n <!--Barra laterale con tutte le voci di Menu-->\r\n <ul class=\"nav nav-sidebar flex-column flex-nowrap\" style=\"position: relative; zoom: 1\" slim-scroll [slimScrollOptions]=\"{height: menuHeight}\">\r\n <li *ngFor=\"let item of menuItems; let last = last;\" \r\n class=\"sidebar-list-item level-{{item.level}}\" \r\n [style.margin-bottom]=\"last ? '42px' : '0px'\" \r\n [class.has-sub-menu]=\"item.subMenu\"\r\n [class.sidebar-item-expanded]=\"item.expanded\" \r\n [class.sidebar-item-wip]=\"item.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : { $implicit: item }\"></ng-container>\r\n </li>\r\n </ul>\r\n <!--Selettore Barra dei Menu-->\r\n <div class=\"sidebar-hover-elem\"></div>\r\n <!--Footer-->\r\n <div *ngIf=\"!isMenuCollapsed\" class=\"app-sidebar-footer\">\r\n <!--Minuscolo fade tra sidebar e inizio footer-->\r\n <div class=\"app-sidebar-footer-fade\"></div>\r\n <div class=\"app-padding-15\">\r\n <!--Informazioni utente collegato-->\r\n <div class=\"app-sidebar-footer-user-container\">\r\n <!--Mentre sto ancora caricando la ProfilePic mi assicuro di mostrare un placeholder-->\r\n <div *ngIf=\"!safeprofilepic\" class=\"app-sidebar-footer-user-img-placeholder\">\r\n <i class=\"far fa-2x fa-spinner fa-spin-pulse\" style=\"color: black; margin-top: 5px;\"></i>\r\n </div>\r\n <!--Una volta caricata la ProfilePic nascondo il placeholder e la mostro-->\r\n <ng-container *ngIf=\"safeprofilepic\">\r\n <img [src]=\"safeprofilepic\" alt=\"\" class=\"app-sidebar-footer-user-img app-pointer\" [routerLink]=\"['/pages/profile/user_info']\">\r\n <div class=\"app-sidebar-footer-user-status\"></div>\r\n </ng-container>\r\n <!--Username animato quando supera i 15 caratteri-->\r\n <div class=\"app-sidebar-footer-user-name-container\">\r\n <div class=\"username-text\" [class.username-text-animator]=\"user?.length > 15\">{{user}}</div>\r\n <div class=\"tenantname-text\">{{tenant}}</div>\r\n </div>\r\n </div>\r\n <!--Operazioni rapide (Logout, Cambia tenant, Guida, Supporto,...)-->\r\n <div class=\"app-sidebar-footer-quick-ops\">\r\n <div (click)=\"onLogout();\" class=\"app-sidebar-footer-op app-no-selection\"><i class=\"far fa-right-from-bracket\"></i>&nbsp;Logout</div>\r\n <div (click)=\"onChangeTenant();\" class=\"app-sidebar-footer-op app-no-selection\"><i class=\"far fa-right-left\"></i>&nbsp;Cambia Tenant</div>\r\n </div>\r\n <!--Versione corrente applicazione-->\r\n <div class=\"app-sidebar-footer-ver\">\r\n v{{applicationVersion}}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #menuItem let-item>\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"(!item.routerLink && !item.subMenu) || item.wip\" [href]=\"item.link ? item.link : '#'\" (click)=\"item.wip && $event.preventDefault()\" target=\"_blank\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.routerLink && !item.subMenu && !item.wip\" class=\"sidebar-list-link {{item.cssClass || ''}}\" [routerLink]=\"[item.routerLink]\" [queryParams]=\"item.queryParams\" routerLinkActive=\"active-link\" (click.out-zone)=\"collapseMenu($event, item)\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.subMenu && !item.wip\" (click.out-zone)=\"collapseMenu($event, item)\" [attr.href]=\"''\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n <b class=\"fa fa-angle-down\"></b>\r\n </a>\r\n\r\n <ul *ngIf=\"item.subMenu\" class=\"sidebar-sublist\">\r\n <li *ngFor=\"let subitem of item.subMenu\" class=\"sidebar-sublist-item level-{{subitem.level}}\" [class.sidebar-item-wip]=\"subitem.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: subitem}\"></ng-container>\r\n </li>\r\n </ul>\r\n</ng-template>\r\n\r\n<!-- Overlay per la ricerca globale -->\r\n<ng-container *ngIf=\"searchingTerm || searchResult\">\r\n <div class=\"app-absolute app-search-background\">\r\n <div class=\"app-search-result-box\">\r\n <ng-container *ngIf=\"searchingTerm\">\r\n <div class=\"app-search-card\"><i class=\"fa fa-spinner fa-spin\"></i>Sto effettuando la ricerca...</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"searchResult && !searchingTerm\">\r\n <div class=\"row\" style=\"height: 100%;\">\r\n <!-- Spazio a sinistra -->\r\n <div class=\"col-md-1\"></div>\r\n <!-- Blocco con le categorie dei risultati -->\r\n <div class=\"col-md-3\">\r\n <div class=\"app-search-card\">\r\n <div class=\"app-relative\"><a class=\"fa fa-times text-danger app-absolute app-right-0 app-fs-20 app-pointer\" (click)=\"closeSearch();\"></a></div>\r\n <h4>Categorie di Ricerca</h4>\r\n <div class=\"app-pointer app-link\" [class.app-bold]=\"!SelectedResult && !ShowSingleTable\">\r\n <span (click)=\"FilterSearchResults()\">{{SelectedResult ? '-' : '>'}} Mostra Tutto</span>\r\n </div>\r\n <div *ngFor=\"let item of searchResult.results\" class=\"app-pointer app-link\" [class.app-bold]=\"SelectedResult?.description == item.description\">\r\n <span (click)=\"FilterSearchResults(item)\">{{SelectedResult?.description == item.description ? '>' : '-'}} Mostra {{item.description}} ({{item.items?.length}})</span>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Dettaglio risultati -->\r\n <div class=\"col-md-7\" style=\"overflow: auto; height: 100%;\">\r\n <ng-container *ngIf=\"!SelectedResult && !ShowSingleTable\">\r\n <div *ngFor=\"let res of searchResult.results; let i = index;\" class=\"app-search-card\" [style.margin-bottom.px]=\"i == (searchResult.results?.length - 1) ? 2 : 10\">\r\n <h4>{{res.description}}</h4>\r\n <es-table [(ngModel)]=\"res.items\" [DynamicRowColumnsDefinition]=\"res.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"SelectedResult && ShowSingleTable\">\r\n <div class=\"app-search-card\">\r\n <h4>{{SelectedResult.description}}</h4>\r\n <es-table [(ngModel)]=\"SelectedResult.items\" [DynamicRowColumnsDefinition]=\"SelectedResult.est_cols\" [ArraymodeItemsPerPage]=\"10\"></es-table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <!-- Spazio a destra -->\r\n <div class=\"col-md-1\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>","import { Injectable, Injector } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\n@Injectable()\r\nexport class NavBarLoc extends LocalizationService {\r\n constructor(injector: Injector) {\r\n super(injector);\r\n super.set(\"it->en\", \"Sessione Scaduta\", [\"Expired session\"]);\r\n super.set(\"it->en\", \"Backend Offline\", [\"Backend Offline\"]);\r\n super.set(\"it->en\", \"Sembra che il Backend sia momentaneamente offline. Questa pagina si aggiornera' automaticamente non appena la situazione tornera' alla normalita'. Ci scusiamo per il disagio\", [\"Backend seems to be currently offline. This page will reset itself when the situation goes back to normal. Sorry for the inconvenience\"]);\r\n super.set(\"it->en\", \"Ripulisci la Cache\", [\"Clear Caches\"]);\r\n super.set(\"it->en\", \"Cache Ripulita\", [\"Cache Cleared\"]);\r\n super.set(\"it->en\", \"Ambiente di Produzione\", [\"Production Environment\"]);\r\n super.set(\"it->en\", \"È disponibile una nuova versione per l'applicazione corrente. Si suggerisce di ricaricare la pagina (CTRL + F5)\", [\"A new version is available for this application. It is suggested to reload this page (CTRL + F5)\"])\r\n super.set(\"it->en\", \"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)\", [\"Session informations (Tenant/Account) has changed after a login to a different module with the same Tenant/Username using the same browser. It is suggested to reload this page (CTRL + F5)\"]);\r\n super.set(\"it->en\", \"Cambia Modulo\", [\"Change module\"]);\r\n super.set(\"it->en\", \"Cambia Tenant\", [\"Change tenant\"]);\r\n super.set(\"it->en\", \"Usa notifiche semplici\", [\"Use simple alerts\"]);\r\n super.set(\"it->en\", \"Consenti notifiche eleganti\", [\"Allow fancy alerts\"]);\r\n super.set(\"it->en\", \"Ambiente di Sviluppo\", [\"Development Environment\"]);\r\n super.set(\"it->en\", \"Ripulisci le Preferenze Utente\", [\"Clear User Preferences\"]);\r\n super.set(\"it->en\", \"Preferenze utente ripulite\", [\"User preferences has been cleared\"]);\r\n super.set(\"it->en\", \"Ambiente di Staging\", [\"Staging Environment\"]);\r\n super.set(\"it->en\", \"Ambiente di Staging A\", [\"Staging A Environment\"]);\r\n super.set(\"it->en\", \"L'attuale sessione di lavoro non è più valida.<br>Si prega di eseguire nuovamente il login.\", [\"Current session has expired.<br>Please login back into the application.\"]);\r\n super.set(\"it->en\", \"Notifiche\", [\"Notifications\"]);\r\n super.set(\"it->en\", \"Job Applicativi\", [\"Application Jobs\"]);\r\n super.set(\"it->en\", \"Al momento non c'è nulla in esecuzione\", [\"Nothing being executed at the moment\"]);\r\n super.set(\"it->en\", \"Job Completato\", [\"Job Completed\"]);\r\n }\r\n}","// Angular\r\nimport { Component } from \"@angular/core\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { ReplaySubject, Subscription } from \"rxjs\";\r\n\r\n@Component({ template: '' })\r\nexport abstract class ReactiveComponent {\r\n\r\n protected Subscriptions: Subscription[] = [];\r\n protected destroyed$: ReplaySubject<boolean> = new ReplaySubject(1);\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n\r\n if (!this.Subscriptions)\r\n return;\r\n\r\n for (let i = 0; i < this.Subscriptions.length; i++)\r\n this.Subscriptions[i].unsubscribe();\r\n }\r\n}","// Angular\r\nimport { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\nimport { NgIf, NgFor } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { TokenService } from \"@esfaenza/core/services\";\r\n\r\n// Applicazione\r\nimport { ActiveModuleView, CategoriesWithModules } from \"@esfaenza/core/domain\";\r\n\r\n@Component({\r\n selector: \"jace-modules-board\",\r\n templateUrl: \"jace-modules-board.component.html\",\r\n styleUrls: [\"jace-modules-board.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [NgIf, NgFor]\r\n})\r\nexport class JaceModulesBoardComponent {\r\n @Input() Modules : ActiveModuleView[];\r\n \r\n public Categories: CategoriesWithModules[] = [];\r\n private Tenant: string;\r\n\r\n constructor(private bts: TokenService) { \r\n this.Tenant = this.bts.getJaceIdentity().Idtenant;\r\n }\r\n\r\n ngOnInit() {\r\n if(!this.Modules)\r\n return;\r\n\r\n this.Modules.forEach(m => {\r\n //Fixo href\r\n m.href = m.uiurl?.replace(\"{tenant}\", this.Tenant)\r\n\r\n //Aggiungo il modulo alla categoria giusta. In ogni \"fila\" di moduli non ce ne possono essere pi� di 6\r\n var prev = this.Categories.find(c => c.category.toUpperCase() == m.category.toUpperCase());\r\n var lastRow = prev?.module_rows[prev.module_rows.length - 1];\r\n\r\n if (prev && lastRow.length < 6)\r\n lastRow.push(m);\r\n else if (prev && lastRow.length == 6)\r\n prev.module_rows.push([m]);\r\n else\r\n this.Categories.push(new CategoriesWithModules(m))\r\n });\r\n }\r\n}","<div class=\"module-backdrop\">\r\n <div class=\"module-container\">\r\n <div *ngFor=\"let cat of Categories; let catFirst = first;\">\r\n <h5 class=\"module-title\" [style.margin-top.px]=\"catFirst ? 0 : 10\">{{cat.category}}</h5>\r\n <div *ngFor=\"let row of cat.module_rows\" class=\"d-flex\">\r\n <ng-container *ngFor=\"let mod of row; let modFirst = first;\">\r\n <a *ngIf=\"mod.href\" [href]=\"mod.href\">\r\n <div class=\"module module-available\" [style.margin]=\"modFirst ? '0px' : '0px 0px 15px 15px'\">\r\n <div class=\"module-name\"><span>{{mod.name}}</span></div>\r\n <div class=\"module-footer\">{{'Disponibile'}}</div>\r\n </div>\r\n </a>\r\n <a *ngIf=\"!mod.href\">\r\n <div class=\"module module-unavailable\" [style.margin]=\"modFirst ? '0px' : '0px 0px 15px 15px'\">\r\n <div class=\"module-name\"><span>{{mod.name}}</span></div>\r\n <div class=\"module-footer\">{{'Non disponibile'}}</div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, Type, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\nimport { Router, RouterLink } from \"@angular/router\";\r\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\r\nimport { NgIf, NgFor, NgTemplateOutlet } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\n\r\n// Configurazioni\r\nimport { BaseMessageService, NotificationsService } from \"@esfaenza/signalr-notifications\";\r\nimport { CacheService, PreferencesService } from \"@esfaenza/preferences\";\r\nimport { LocalizationService, LocalizationModule } from \"@esfaenza/localizations\";\r\nimport { MessageService } from \"@esfaenza/extensions\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\n// EsFaenza\r\nimport { ComponentHostDirective } from \"@esfaenza/core/directives\";\r\nimport { JaceIdentity, ActiveModuleView, EnvOptions, ApplicationJob, NAVBAR_EXTENSIONS } from \"@esfaenza/core/domain\";\r\nimport { AppState, CompletedJobRedirectionService, TokenService } from \"@esfaenza/core/services\";\r\n\r\n// Librerie\r\nimport { interval, startWith, takeUntil, takeWhile } from \"rxjs\";\r\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\r\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\r\n\r\n// Applicazione\r\nimport { NavBarLoc } from \"./navbar.component.loc\";\r\n\r\n// Componenti\r\nimport { ReactiveComponent } from \"../base/reactive.component\";\r\nimport { JaceModulesBoardComponent } from \"./modules-board/jace-modules-board.component\";\r\n\r\n// Chiamate ai Repository\r\nconst GET_Jace_GetActiveJaceModules: string = \"/api/Jace/GetActiveJaceModules\";\r\nconst GET_Adm_ClearAllCaches: string = \"/api/Adm/ClearAllCaches\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\ndeclare var dayjs;\r\n\r\n@Component({\r\n selector: \"navbar\",\r\n viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: [\"./navbar.component.scss\"],\r\n templateUrl: \"./navbar.component.html\",\r\n standalone: true,\r\n imports: [RouterLink, FormsModule, BsDropdownModule, MatSlideToggleModule, NgIf, NgFor, ProgressbarModule, JaceModulesBoardComponent, ComponentHostDirective, NgTemplateOutlet, LocalizationModule]\r\n})\r\nexport class Navbar extends ReactiveComponent {\r\n\r\n public applicationVersion = myconfig.AppData.ComponentVersion;\r\n public applicationEnvironment = myconfig.AppData.ComponentEnvironment;\r\n\r\n public isMenuCollapsed: boolean = false;\r\n public anomaliesProcessing: boolean = false;\r\n\r\n public CurrentIdentity: JaceIdentity;\r\n\r\n private newVersionWarned: boolean = false;\r\n @ViewChild(\"navbar\", { static: false }) navbar: ElementRef;\r\n\r\n public Modules: ActiveModuleView[];\r\n\r\n constructor(\r\n private prefsService: PreferencesService, private cacheService: CacheService, private MessageDef: BaseMessageService,\r\n private notifications: NotificationsService, private msgExts: MessageService, public lc: LocalizationService, private http: HTTPService, public cdr: ChangeDetectorRef,\r\n public _state: AppState, public sr: TokenService, private router: Router, private cjrService: CompletedJobRedirectionService, @Inject(NAVBAR_EXTENSIONS) public extensionComponents: Type<any>[]) {\r\n super();\r\n\r\n this._state.subscribe(\"menu.isCollapsed\", (isCollapsed) => { this.isMenuCollapsed = isCollapsed; });\r\n this._state.subscribe(\"app.completedJob\", (jobDescription) => {\r\n this.msgExts.simpleSuccess(this.lc.loc(\"Job Completato\") + \": \" + jobDescription);\r\n });\r\n\r\n this.handleBaseNotifications();\r\n this.getActiveJaceModules();\r\n\r\n // Appena la pagina parte, poi ogni secondo, controllo l'identity per verificare se rimane la stessa\r\n interval(1000).pipe(\r\n startWith(0),\r\n takeUntil(this.destroyed$),\r\n takeWhile(_ => !myconfig.redirectInProgress)\r\n ).subscribe(t => {\r\n this.checkIdentity();\r\n })\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n //Quando viene distrutta la navbar devo distruggere anche il client di signalr perchè vuol dire che ho chiuso la pagina\r\n this.notifications.disconnect();\r\n }\r\n\r\n private handleBaseNotifications() {\r\n this.notifications.send(this.MessageDef.OUT_QueryJobStatus, null);\r\n this.notifications.observe(this.MessageDef.IN_SendVersion).pipe(takeUntil(this.destroyed$)).subscribe((message) => {\r\n if (message != myconfig.AppData.ComponentVersion && !this.newVersionWarned) {\r\n this.msgExts.simpleWarning(this.lc.loc(\"È disponibile una nuova versione per l'applicazione corrente. Si suggerisce di ricaricare la pagina (CTRL + F5)\"));\r\n this.newVersionWarned = true;\r\n }\r\n });\r\n }\r\n\r\n private checkIdentity() {\r\n let id = this.sr.getJaceIdentity();\r\n let idLast = this.CurrentIdentity;\r\n\r\n if (!id) return;\r\n\r\n this.checkSessionTimeout(id);\r\n\r\n if (this.CurrentIdentity && (id.IdAccount != idLast?.IdAccount || id.IdUser != idLast?.IdUser || id.Idtenant != idLast?.Idtenant)) {\r\n 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)\"));\r\n this.cdr.markForCheck();\r\n }\r\n\r\n this.CurrentIdentity = id;\r\n }\r\n\r\n getActiveJaceModules() {\r\n this.http.get<ActiveModuleView[]>(GET_Jace_GetActiveJaceModules).subscribe(res => {\r\n this.Modules = res;\r\n this._state.Modules = this.Modules;\r\n });\r\n }\r\n\r\n private checkSessionTimeout(identity: JaceIdentity) {\r\n if (dayjs() >= dayjs(identity.ExpirationTime).subtract(10, 'minutes') && !myconfig.redirectInProgress) {\r\n myconfig.redirectInProgress = true;\r\n\r\n this.msgExts.expiredSessionMessage(\r\n this.lc.loc('Expired session'),\r\n this.lc.loc(\"L'attuale sessione di lavoro non è più valida.<br>Si prega di eseguire nuovamente il login.\"),\r\n () => {\r\n myconfig.redirectInProgress = false;\r\n console.log(\"checkSessionTimeout - redirecting to login\")\r\n this.router.navigate([\"login\"]);\r\n }\r\n );\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._state.setHeaderHeight(this.navbar.nativeElement.offsetHeight);\r\n }\r\n\r\n public toggleMenu() {\r\n this.isMenuCollapsed = !this.isMenuCollapsed;\r\n this._state.notifyDataChanged(\"menu.isCollapsed\", this.isMenuCollapsed);\r\n }\r\n\r\n public logout() {\r\n window.location.href = `${myconfig.AuthUrl}/logout?client=${myconfig.Client}`;\r\n }\r\n\r\n public changeModule() {\r\n window.location.href = myconfig.JaceDashboardUrl;\r\n }\r\n\r\n public changeTenant() {\r\n window.location.href = `${myconfig.AuthUrl}/login/tenant?client=${myconfig.Client}`;\r\n }\r\n\r\n clearUserPreferences() {\r\n this.prefsService.clear().subscribe();\r\n this.msgExts.simpleSuccess(this.lc.loc(\"Preferenze utente ripulite\"));\r\n }\r\n\r\n clearAll() {\r\n this.cacheService.clear().subscribe();\r\n this.http.resetHttpUntimedCacheStorage();\r\n this.http.resetHttpTimedCacheStorage();\r\n this.http.get(GET_Adm_ClearAllCaches).subscribe(_ => {\r\n this.msgExts.simpleSuccess(this.lc.loc(\"Cache Ripulita\"));\r\n });\r\n }\r\n\r\n clearMessages() {\r\n this.msgExts.clearMessages();\r\n }\r\n\r\n completedJobClicked(job: ApplicationJob) {\r\n this.cjrService.redirect(job);\r\n }\r\n\r\n // Jace Module Dashboard\r\n public showModules: boolean = false;\r\n onShowModules() {\r\n this.showModules = !this.showModules;\r\n }\r\n}","<nav #navbar class=\"nav enuma-navbar\" [style.width]=\"isMenuCollapsed ? 'calc(100vw - 42px)' : 'calc(100vw - 230px)'\">\r\n <div class=\"d-flex\" style=\"width: 100%;\">\r\n <div><a (click)=\"toggleMenu()\" class=\"far fa-bars nav-icon app-padding-top-5 app-padding-left-15\"></a></div>\r\n <div class=\"app-padding-top-5 app-padding-left-15\"><ng-content></ng-content></div>\r\n <div style=\"margin-left: auto; display: flex;\">\r\n <!--Notifications (Jobs)-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <!--TODO: Spostare in modulo a parte _state.jobsInProgress, _state.jobsInProgress, ecc...-->\r\n <div *ngIf=\"_state.jobsInProgress > 0\" class=\"fa-beat-fade nav-jobs-icon-notification\"></div>\r\n <a [class.fa-shake]=\"_state.jobsInProgress > 0\" class=\"far fa-bell module-nav-menu-link dropdown-toggle app-pointer\" style=\"--fa-animation-duration: 3s; --fa-animation-iteration-count: 1;\" 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'è 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}}\"\r\n class=\"app-link app-no-selection app-inline app-pointer\"\r\n (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\"\r\n [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\"\r\n [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <!--Other Modules-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a (click)=\"onShowModules()\" class=\"far fa-cubes module-nav-menu-link dropdown-toggle app-pointer\"></a>\r\n <jace-modules-board *ngIf=\"showModules\" [Modules]=\"Modules\"></jace-modules-board>\r\n </div>\r\n \r\n <!--Quick Actions-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"far fa-folder-gear module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"d-flex dropdown-title-bg\">\r\n <div class=\"dropdown-title\">Gestisci Cache Utente</div>\r\n </li>\r\n <li class=\"dropdown-top\"></li>\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\">\r\n <i class=\"far fa-user-times app-margin-right-10\"></i>{{'Ripulisci le Preferenze Utente' | localize : lc}}\r\n </li>\r\n <!-- <li class=\"dropdown-divider\"></li> -->\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearAll()\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci la Cache' | localize : lc}}\r\n </li>\r\n <li class=\"dropdown-bot\"></li>\r\n </ul>\r\n </div>\r\n \r\n <!--Punti di estensione per Calendar, Chatroom e chi più ne ha più ne metta...-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" *ngFor=\"let comp of extensionComponents\">\r\n <ng-template [componentHost]=\"comp\"></ng-template>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"nav-environment app-no-selection\">\r\n <ng-container *ngIf=\"applicationEnvironment == 1\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 2\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 5\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"applicationEnvironment == 6\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n </div>\r\n </div>\r\n <!--Debugging ruoli e permessi-->\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n</nav>","// Angular\r\nimport { Component, HostListener, ViewEncapsulation } from \"@angular/core\";\r\nimport { DomSanitizer, SafeResourceUrl } from \"@angular/platform-browser\";\r\nimport { Location, NgClass, NgIf } from \"@angular/common\";\r\nimport { Router, RouterOutlet } from \"@angular/router\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n// Componenti\r\nimport { BackTop } from \"../back-top/back-top.component\";\r\nimport { Breadcrumb } from \"../breadcrumb/breadcrumb.component\";\r\nimport { Sidebar } from \"../sidebar/sidebar.component\";\r\nimport { Navbar } from \"../navbar/navbar.component\";\r\n\r\ndeclare var jQuery;\r\n\r\n@Component({\r\n selector: \"pages\",\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: [\"./pages.component.scss\"],\r\n templateUrl: \"./pages.component.html\",\r\n standalone: true,\r\n imports: [Navbar, Sidebar, NgClass, NgIf, Breadcrumb, RouterOutlet, BackTop]\r\n})\r\nexport class PagesComponent {\r\n public isMenuCollapsed: boolean = false;\r\n public maxHeight: number = 0;\r\n public dynamicCSSUrl: SafeResourceUrl = null;\r\n public loadedModuleCss: string = \"\";\r\n\r\n constructor(public sanitizer: DomSanitizer, public _state: AppState, private _location: Location, public router: Router) {\r\n this._state.subscribe(\"menu.isCollapsed\", (isCollapsed) => {\r\n this.isMenuCollapsed = isCollapsed;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getCurrentPageName();\r\n this.getHeight();\r\n }\r\n\r\n getCurrentPageName(): void {\r\n var url = this._location.path();\r\n setTimeout(function () {\r\n window.scrollTo(0, 0);\r\n jQuery('a[href=\"#' + url + '\"]').closest(\"li\").closest(\"ul\").closest(\"li\").addClass(\"sidebar-item-expanded\");\r\n });\r\n }\r\n\r\n public hideMenu(): void {\r\n this._state.notifyDataChanged(\"menu.isCollapsed\", true);\r\n }\r\n\r\n public getHeight() {\r\n var html = document.documentElement;\r\n this.maxHeight = html.clientHeight - 60;\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n this.getHeight();\r\n }\r\n}","<div class=\"pages-container\">\r\n <sidebar></sidebar>\r\n <div>\r\n <navbar>\r\n <breadcrumb></breadcrumb>\r\n </navbar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n <div class=\"main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { ActivatedRoute, RouterOutlet } from \"@angular/router\";\r\nimport { Component } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { AccessControlService } from \"@esfaenza/access-control\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\nimport { AppState, TokenService } from \"@esfaenza/core/services\";\r\nimport { EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Component({\r\n selector: \"external-pages\",\r\n templateUrl: \"./external_pages.component.html\",\r\n standalone: true,\r\n imports: [RouterOutlet]\r\n})\r\nexport class ExternalPagesComponent {\r\n private Username: string = \"\";\r\n private Password: string = \"\";\r\n private Tenant: string = \"\";\r\n\r\n constructor(private aac: AccessControlService, public lc: LocalizationService, private http: HTTPService, private _state: AppState, private route: ActivatedRoute, private bts: TokenService) {\r\n this.Username = this.route.snapshot.params[\"user\"];\r\n this.Password = this.route.snapshot.params[\"pswd\"];\r\n this.Tenant = this.route.snapshot.params[\"tnt\"];\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"Caricamento pagina nell'IFRAME completato!\");\r\n console.log(\"[\" + this.Tenant + \"]\" + this.Username + \" - \" + this.Password);\r\n\r\n // Le info di login che ho passato sono le stesse delle info di login salvate nel token --> È un redirect da un sito esterno ma il token c'è già. Esco\r\n // Ho un token di login e non ho nessuna info sull'utente da usare --> È un redirect da Jace, quindi sono a posto. Esco\r\n let currentIdentity = this.bts.getJaceIdentity();\r\n if (currentIdentity && (!(this.Tenant + this.Username + this.Password) || currentIdentity.Idtenant == this.Tenant && currentIdentity.DsUser == this.Username)) {\r\n this.aac.initializeIdentity(currentIdentity);\r\n return;\r\n }\r\n\r\n // Altrimenti devo effettuare il login\r\n let LoginDTO = { tenant: \"FX\", username: this.Username, password: this.Password, client_id: \"jacedev\" };\r\n this.http.post(`${myconfig.AuthUrl}/api/login/dologin`, LoginDTO).subscribe(t => {\r\n });\r\n }\r\n}","<router-outlet></router-outlet>","// Angular\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\n\r\nimport { EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Component({\r\n selector: \"login\",\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: [\"./jace-login.component.scss\"],\r\n templateUrl: \"./jace-login.component.html\",\r\n standalone: true\r\n})\r\nexport class JaceLoginComponent {\r\n\r\n ngOnInit() {\r\n\r\n if (myconfig.AuthUrl)\r\n window.location.href = `${myconfig.AuthUrl}/login/form?client=${myconfig.Client}`;\r\n else\r\n console.error(\"myconfig.AuthUrl is not provided\");\r\n }\r\n}\r\n","<div class=\"login-container\">\r\n <div class=\"redirecting-div\">\r\n <div class=\"redirecting-message\"><h1>Redirecting to login...</h1></div>\r\n <div class=\"signal\"></div>\r\n </div>\r\n</div>\r\n","// Angular\r\nimport { Component, Inject, Optional, ViewEncapsulation } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { NgIf } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n// Applicazione\r\nimport { REDIRECT_MAP } from \"@esfaenza/core/domain\";\r\n\r\n// TODO: loc.ts\r\n@Component({\r\n selector: \"redirecter\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./redirecter.component.html\",\r\n standalone: true,\r\n imports: [NgIf]\r\n})\r\nexport class RedirecterComponent {\r\n\r\n public Error: string = \"\";\r\n\r\n constructor(public _state: AppState, private route: ActivatedRoute, public router: Router, @Optional() @Inject(REDIRECT_MAP) private redirectMap: { [index: string]: { url: string, params: string[] } }) { }\r\n\r\n ngOnInit() {\r\n let url: string = this.route.snapshot.params[\"url\"];\r\n //§ = 167... non so perché ma scrivendolo esplicitamente non funziona\r\n let parts = url.split(String.fromCharCode(167)).filter(s => !!s);\r\n\r\n if (parts.length < 2) {\r\n this.Error = \"L'url passato è incompleto. Impossibile riconoscerlo\";\r\n return;\r\n }\r\n else {\r\n var redirect = this.redirectMap[parts[0]];\r\n if (!redirect) {\r\n this.Error = \"L'url passato fa riferimento a un oggetto non navigabile. Impossibile procedere\";\r\n return;\r\n }\r\n\r\n if (redirect.params.length != parts.length - 1) {\r\n this.Error = \"Il numero di parametri richiesti per navigare all'entità richiesta è diverso dal numero di parametri passato\";\r\n return;\r\n }\r\n\r\n let parObject = {};\r\n redirect.params.forEach((t, i) => parObject[t] = parts[i + 1]);\r\n this.router.navigate([\"pages/\" + redirect.url, parObject]);\r\n }\r\n }\r\n}","<div *ngIf=\"Error\">{{Error}}</div>","// Angular\r\nimport { Component, Injector } from \"@angular/core\";\r\nimport { ActivatedRoute, Router, UrlSegmentGroup } from \"@angular/router\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n// Core\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\nimport { ReactiveComponent } from \"./reactive.component\";\r\nimport { EMBEDDED_ROUTE, ROUTE } from \"@esfaenza/core/domain\";\r\n\r\n@Component({ template: '' })\r\nexport abstract class BaseComponent extends ReactiveComponent {\r\n\r\n /*\r\n * Blocco di informazioni sulla route attuale\r\n * Route: /pages/module/component;idModel=123\r\n * \r\n * CompletePath: /pages/module/component\r\n * ComponentPath: module/component\r\n * BasePath: /pages (equivalente a ROUTE o EMBEDDED_ROUTE)\r\n * Parameters: { \"idModel\" : \"123\" }\r\n */\r\n protected CompletePath: string;\r\n protected ComponentPath: string;\r\n protected BasePath: string;\r\n protected NavigationParameters: { [name: string]: string } = null;\r\n\r\n // Informazioni prese dai dati extra della route\r\n protected InternalNavigation: boolean;\r\n protected NavigationTitle: string;\r\n\r\n private _router: Router;\r\n \r\n constructor(injector: Injector) {\r\n super();\r\n\r\n let _activatedRoute: ActivatedRoute = injector.get(ActivatedRoute);\r\n let _state: AppState = injector.get(AppState);\r\n this._router = injector.get(Router);\r\n\r\n _state.registerNavigationIfMeaningful(_activatedRoute.snapshot);\r\n\r\n // Parametri in maniera \"dinamica\"\r\n _activatedRoute.params.pipe(takeUntil(this.destroyed$)).subscribe(t => { this.NavigationParameters = t; })\r\n\r\n // Tutto il resto in maniera statica tanto non cambia\r\n let segs = (<UrlSegmentGroup>(<any>_activatedRoute.snapshot)._urlSegment).segments;\r\n this.CompletePath = \"/\" + segs.map(t => t.path).join('/');\r\n this.ComponentPath = \"/\" + segs.filter((t, i) => i != 0).map(t => t.path).join('/');\r\n this.BasePath = \"/\" + segs[0].path;\r\n\r\n this.InternalNavigation = _activatedRoute.snapshot.data[\"internalNavigation\"] || false;\r\n this.NavigationTitle = _activatedRoute.snapshot.data[\"title\"] || \"\";\r\n\r\n // Per i componenti navigabili non embeddati è inutile mandare il messaggio di navigazione\r\n // Così come per quelli per cui non esiste un titolo (cioè compoennti verso cui non si è navigato direttamente)\r\n if(!_state.Embedded || !this.NavigationTitle)\r\n return;\r\n\r\n // Se sono dentro un iframe risalgo a quello di livello più alto in assoluto\r\n let tmpWindow = <{ parent: any, postMessage: Function }>window;\r\n // Quando il parent non esiste window. parent è un riferimento a se stesso\r\n while (tmpWindow.parent != tmpWindow)\r\n tmpWindow = tmpWindow.parent;\r\n\r\n tmpWindow.postMessage({ type: \"navigation\", url: this.CompletePath, internalNavigation: this.InternalNavigation, title: this.NavigationTitle }, \"*\");\r\n }\r\n\r\n protected navigate(command: any[], extras?: any) {\r\n let commands = command;\r\n\r\n // Fix della path esattamente come in esRouterLink\r\n commands = Array.isArray(commands) ? commands : [commands];\r\n let route = (commands[0] as string);\r\n if (!route.startsWith(\"/\" + EMBEDDED_ROUTE) && !route.startsWith(\"/\" + ROUTE))\r\n commands[0] = this.BasePath + commands[0];\r\n\r\n this._router.navigate(command, extras);\r\n }\r\n}","// Angular\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation } from \"@angular/core\";\r\nimport { DomSanitizer, SafeResourceUrl } from \"@angular/platform-browser\";\r\nimport { NgIf } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n// Classi\r\nimport { ActiveModuleView, EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Component({\r\n selector: \"jace-resource\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./jace-resource.component.html\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [NgIf]\r\n})\r\nexport class JaceResourceComponent {\r\n @Input() Module: string = \"\";\r\n @Input() ModuleKeyType: 'altid' | 'id' = 'altid';\r\n @Input() Page: string = \"\";\r\n @Input() Localhost: string;\r\n\r\n public Height: number = 0;\r\n public sanitizedSourceResource: SafeResourceUrl = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef, private _state: AppState, private sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit() {\r\n console.log(\"Initializing jace resource for \" + this.Module);\r\n\r\n if (this._state.Modules?.length > 0)\r\n this.afterModulesRetrieve(this._state.Modules);\r\n else {\r\n this._state.subscribe(\"modules.Retrieved\", (modules) => {\r\n this.afterModulesRetrieve(modules);\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n //let frame = document.getElementById(\"externalFrame\");\r\n //let rect = frame.getBoundingClientRect();\r\n this.Height = window.innerHeight - 116;\r\n console.log(\"Height: \" + this.Height);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n afterModulesRetrieve(modules: ActiveModuleView[]) {\r\n let module = modules.find(t => (this.ModuleKeyType == 'id' ? t.idmodule : this.ModuleKeyType == 'altid' ? t.altname : \"\") == this.Module)\r\n if (!module) {\r\n console.error(`Impossibile trovare il modulo con ${this.ModuleKeyType} uguale a ${this.Module}`);\r\n this.sanitizedSourceResource = null;\r\n }\r\n if (this.Page.startsWith(\"pages\") || this.Page.startsWith(\"/pages\")) {\r\n console.error(`L'url della pagina da visitare non deve partire con 'pages', scrivere solo {modulo}/{pagina}`);\r\n this.sanitizedSourceResource = null;\r\n }\r\n\r\n let moduleUrl = myconfig.AuthUrl.includes(\"localhost\") ? `http://localhost:${this.Localhost}` : module.uiurl;\r\n let finalUrl = `${moduleUrl}/#/pages_ext/${this.Page}`;\r\n this.sanitizedSourceResource = this.sanitizer.bypassSecurityTrustResourceUrl(finalUrl);\r\n }\r\n}","<iframe *ngIf=\"!!sanitizedSourceResource\" id=\"externalFrame\" style=\"width: 100%; border: none;\" [style.height.px]=\"Height\" \r\n [src]=\"sanitizedSourceResource\">\r\n</iframe>","// Angular\r\nimport { Component, EventEmitter, Input, Output, ViewChild } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { ModalDirective } from \"ngx-bootstrap/modal\";\r\nimport { Draggable, EsModalDirective } from \"@esfaenza/core/directives\";\r\n\r\n@Component({\r\n selector: \"es-modal\",\r\n templateUrl: \"./es-modal.component.html\",\r\n standalone: true,\r\n imports: [EsModalDirective, Draggable]\r\n})\r\n\r\nexport class EsModalComponent {\r\n @Input() Size: string = \"M\";\r\n @Input() IgnoreBackdrop: boolean = false;\r\n @Input() HasOverlap: boolean = false;\r\n @Output() onShow: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() onHide: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n constructor(public _state: AppState) { }\r\n\r\n // Reference alla Modal\r\n @ViewChild(\"modalRef\") private Modal: ModalDirective;\r\n public show() { this.Modal.show(); }\r\n public hide() { this.Modal.hide(); }\r\n}","<div esModal #modalRef=\"es-modal\"\r\n class=\"modal fade\"\r\n role=\"dialog\"\r\n aria-hidden=\"true\"\r\n (onShow)=\"onShow.emit()\"\r\n (onHide)=\"onHide.emit()\"\r\n [config]=\"{backdrop: true, ignoreBackdropClick: IgnoreBackdrop}\">\r\n <div class=\"modal-dialog\"\r\n [class.modal-sm]=\"Size == 'S'\"\r\n [class.modal-md]=\"Size == 'M'\"\r\n [class.modal-lg]=\"Size == 'L'\"\r\n [class.modal-xl]=\"Size == 'XL'\"\r\n [class.modal-xxl]=\"Size == 'XXL'\"\r\n [class.modal-feminist]=\"Size == 'HOLYSHIT'\"\r\n emaDraggable>\r\n <div class=\"modal-content\" [class.app-bg-lightgrey]=\"HasOverlap\"\r\n style=\"cursor: default;\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>","// Angular\r\nimport { Component, EventEmitter, Output } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { AppState } from \"@esfaenza/core/services\";\r\n\r\n@Component({\r\n selector: \"es-modal-head\",\r\n templateUrl: \"./es-modal-head.component.html\",\r\n styleUrls: [\"./es-modal-head.component.scss\"],\r\n standalone: true\r\n})\r\n\r\nexport class EsModalHeadComponent {\r\n @Output() Close: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n constructor(public _state: AppState) { }\r\n\r\n public CloseFunction() {\r\n this.Close.emit();\r\n }\r\n}","<div class=\"modal-header\">\r\n <div class=\"modal-title modal-head pull-left\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"close modal-close-button\"\r\n (click)=\"CloseFunction();\" \r\n aria-label=\"Close\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </div>\r\n</div>","// Angular\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\n\r\n// Es faenza\r\nimport { LocalizationModule } from \"@esfaenza/localizations\";\r\nimport { EsTableModule } from \"@esfaenza/es-table\";\r\n\r\n// Libs \r\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\r\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\r\nimport { ModalModule } from \"ngx-bootstrap/modal\";\r\n\r\n// Componenti\r\nimport { BackTop } from \"./back-top/back-top.component\";\r\nimport { Breadcrumb } from \"./breadcrumb/breadcrumb.component\";\r\nimport { PageNotFoundComponent } from \"./error/404/pagenotfound.component\";\r\nimport { ServerErrorComponent } from \"./error/500/servererror.component\";\r\nimport { AngularErrorComponent } from \"./error/Angular/angularerror.component\";\r\nimport { PagesComponent } from \"./page/pages.component\";\r\nimport { ExternalPagesComponent } from \"./external-page/external_pages.component\";\r\nimport { JaceLoginComponent } from \"./jace-login/jace-login.component\";\r\nimport { JaceModulesBoardComponent } from \"./navbar/modules-board/jace-modules-board.component\";\r\nimport { Navbar } from \"./navbar/navbar.component\";\r\nimport { JaceResourceComponent } from \"./jace-resource/jace-resource.component\";\r\nimport { RedirecterComponent } from \"./redirecter/redirecter.component\";\r\nimport { Sidebar } from \"./sidebar/sidebar.component\";\r\nimport { EsModalComponent } from \"./es-modal/es-modal.component\";\r\nimport { EsModalHeadComponent } from \"./es-modal/es-modal-head/es-modal-head.component\";\r\n\r\n// Core\r\nimport { DirectivesModule } from \"@esfaenza/core/directives\";\r\n\r\nconst COMPONENTS = [\r\n BackTop,\r\n Breadcrumb,\r\n PageNotFoundComponent,\r\n ServerErrorComponent,\r\n AngularErrorComponent,\r\n PagesComponent,\r\n ExternalPagesComponent,\r\n JaceLoginComponent,\r\n JaceModulesBoardComponent,\r\n Navbar,\r\n RedirecterComponent,\r\n Sidebar,\r\n JaceResourceComponent,\r\n EsModalComponent,\r\n EsModalHeadComponent\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule, EsTableModule, ModalModule, ...COMPONENTS],\r\n exports: [...COMPONENTS]\r\n})\r\nexport class ComponentsModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i6","i4","i5","takeUntil"],"mappings":"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"}