@esfaenza/core 15.2.0 → 15.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/assets/favicon.ico +0 -0
  2. package/assets/fonts/fontawesome/FontAwesome.otf +0 -0
  3. package/assets/fonts/fontawesome/fontawesome-webfont.eot +0 -0
  4. package/assets/fonts/fontawesome/fontawesome-webfont.svg +2671 -0
  5. package/assets/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
  6. package/assets/fonts/fontawesome/fontawesome-webfont.woff +0 -0
  7. package/assets/fonts/fontawesome/fontawesome-webfont.woff2 +0 -0
  8. package/assets/fonts/google/Roboto/Roboto-Black.ttf +0 -0
  9. package/assets/fonts/google/Roboto/Roboto-BlackItalic.ttf +0 -0
  10. package/assets/fonts/google/Roboto/Roboto-Bold.ttf +0 -0
  11. package/assets/fonts/google/Roboto/Roboto-BoldItalic.ttf +0 -0
  12. package/assets/fonts/google/Roboto/Roboto-Italic.ttf +0 -0
  13. package/assets/fonts/google/Roboto/Roboto-Light.ttf +0 -0
  14. package/assets/fonts/google/Roboto/Roboto-LightItalic.ttf +0 -0
  15. package/assets/fonts/google/Roboto/Roboto-Medium.ttf +0 -0
  16. package/assets/fonts/google/Roboto/Roboto-MediumItalic.ttf +0 -0
  17. package/assets/fonts/google/Roboto/Roboto-Regular.ttf +0 -0
  18. package/assets/fonts/google/Roboto/Roboto-Thin.ttf +0 -0
  19. package/assets/fonts/google/Roboto/Roboto-ThinItalic.ttf +0 -0
  20. package/assets/img/events/christmas.png +0 -0
  21. package/assets/img/events/halloween.png +0 -0
  22. package/assets/img/logo/cube-1.jpg +0 -0
  23. package/assets/img/logo/cube-2.jpg +0 -0
  24. package/assets/img/logo/cube-3.jpg +0 -0
  25. package/assets/img/logo/cube-4.jpg +0 -0
  26. package/assets/img/logo/cube-5.jpg +0 -0
  27. package/assets/img/logo/cube-6.jpg +0 -0
  28. package/assets/img/logo/cube-7.jpg +0 -0
  29. package/assets/img/logo/cube-8.jpg +0 -0
  30. package/assets/img/logo/cube-9.jpg +0 -0
  31. package/assets/img/users/user.jpg +0 -0
  32. package/assets/pwa/icons/JACE_072x072.png +0 -0
  33. package/assets/pwa/icons/JACE_096-x096.png +0 -0
  34. package/assets/pwa/icons/JACE_128x128.png +0 -0
  35. package/assets/pwa/icons/JACE_144x144.png +0 -0
  36. package/assets/pwa/icons/JACE_152x152.png +0 -0
  37. package/assets/pwa/icons/JACE_192x162.png +0 -0
  38. package/assets/pwa/icons/JACE_384x384.png +0 -0
  39. package/assets/pwa/icons/JACE_512x512.png +0 -0
  40. package/assets/scripts/index.html.js +44 -0
  41. package/assets/scripts/jquery-ui.min.js +6 -0
  42. package/assets/styles/font-awesome.min.css +2929 -0
  43. package/assets/styles/toastr.min.css +266 -0
  44. package/components/components.module.d.ts +2 -1
  45. package/components/navbar/navbar.component.d.ts +3 -6
  46. package/domain/models/core/classes/EnvOptions.d.ts +1 -0
  47. package/domain/models/jace/classes/JaceRole.d.ts +1 -0
  48. package/esm2020/components/components.module.mjs +5 -4
  49. package/esm2020/components/jace-login/jace-login.component.mjs +5 -2
  50. package/esm2020/components/navbar/navbar.component.mjs +19 -21
  51. package/esm2020/domain/models/core/classes/EnvOptions.mjs +10 -1
  52. package/esm2020/domain/models/jace/classes/JaceRole.mjs +6 -1
  53. package/esm2020/lib/app.component.mjs +2 -2
  54. package/esm2020/lib/core.module.mjs +35 -44
  55. package/esm2020/modules/classes/_shared.module.mjs +44 -0
  56. package/esm2020/modules/public-api.mjs +2 -1
  57. package/esm2020/public-api.mjs +1 -2
  58. package/esm2020/services/classes/app.session.mjs +2 -3
  59. package/esm2020/services/classes/app.state.mjs +5 -5
  60. package/esm2020/services/classes/preferences/app.cache.persistor.mjs +7 -7
  61. package/esm2020/services/classes/preferences/app.preference.persistor.mjs +6 -6
  62. package/fesm2015/esfaenza-core-components.mjs +25 -23
  63. package/fesm2015/esfaenza-core-components.mjs.map +1 -1
  64. package/fesm2015/esfaenza-core-domain.mjs +14 -0
  65. package/fesm2015/esfaenza-core-domain.mjs.map +1 -1
  66. package/fesm2015/esfaenza-core-modules.mjs +45 -4
  67. package/fesm2015/esfaenza-core-modules.mjs.map +1 -1
  68. package/fesm2015/esfaenza-core-services.mjs +16 -16
  69. package/fesm2015/esfaenza-core-services.mjs.map +1 -1
  70. package/fesm2015/esfaenza-core.mjs +36 -46
  71. package/fesm2015/esfaenza-core.mjs.map +1 -1
  72. package/fesm2020/esfaenza-core-components.mjs +24 -23
  73. package/fesm2020/esfaenza-core-components.mjs.map +1 -1
  74. package/fesm2020/esfaenza-core-domain.mjs +14 -0
  75. package/fesm2020/esfaenza-core-domain.mjs.map +1 -1
  76. package/fesm2020/esfaenza-core-modules.mjs +45 -4
  77. package/fesm2020/esfaenza-core-modules.mjs.map +1 -1
  78. package/fesm2020/esfaenza-core-services.mjs +15 -16
  79. package/fesm2020/esfaenza-core-services.mjs.map +1 -1
  80. package/fesm2020/esfaenza-core.mjs +36 -46
  81. package/fesm2020/esfaenza-core.mjs.map +1 -1
  82. package/lib/core.module.d.ts +29 -28
  83. package/modules/classes/_shared.module.d.ts +26 -0
  84. package/modules/public-api.d.ts +1 -0
  85. package/package.json +4 -3
  86. package/public-api.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"esfaenza-core.mjs","sources":["../../../projects/core/src/lib/app.component.ts","../../../projects/core/src/lib/app.component.html","../../../projects/core/src/lib/core.module.ts","../../../projects/core/src/esfaenza-core.ts"],"sourcesContent":["// Angular\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// Configurazioni\r\n import { AppState, TokenService } from \"@esfaenza/core/services\";\r\n\r\n@Component({\r\n selector: 'app-root',\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: [\"./app.component.scss\"],\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent {\r\n\r\n public snows: number[] = [];\r\n\r\n constructor(private bts: TokenService, public _state: AppState, private router: Router) {\r\n\r\n if (this._state.christmasTime)\r\n for (let i = 0; i < 400; i++)\r\n this.snows.push(i);\r\n\r\n if (!this.bts.accountScope)\r\n this.router.navigate([\"login\", { fromUrl: this.router.url }]);\r\n }\r\n}","<ng-container *ngIf=\"_state.christmasTime\">\r\n <div *ngFor=\"let i of snows\" class=\"snow\"></div>\r\n</ng-container>\r\n<router-outlet></router-outlet>","// Angular\r\nimport { NgModule, ErrorHandler, LOCALE_ID, APP_INITIALIZER, ModuleWithProviders, Type } from \"@angular/core\";\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { Routes, RouterModule, NoPreloading, ROUTES } from \"@angular/router\";\r\nimport { MAT_DATE_FORMATS, MAT_DATE_LOCALE } from \"@angular/material/core\";\r\nimport { EVENT_MANAGER_PLUGINS } from \"@angular/platform-browser\";\r\nimport { ServiceWorkerModule } from \"@angular/service-worker\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport \"@angular/common/locales/global/it\";\r\n\r\n// Plugins\r\nimport { NgxMatDateAdapter, NGX_MAT_DATE_FORMATS } from \"@angular-material-components/datetime-picker\";\r\nimport { CookieService } from \"ngx-cookie-service\";\r\nimport { ToastrModule } from \"ngx-toastr\";\r\nimport \"widgster/widgster.js\";\r\n\r\n// ES\r\nimport { LocalizationModule, LocalizationService, LocalizationMissingPolicy, LOC_DEBUG_MODE } from \"@esfaenza/localizations\";\r\nimport { HttpserviceModule, HttpServiceExtensions, HTTPService, HTTP_DEBUG_MODE, HTTP_INVALIDATION } from \"@esfaenza/httpservice\";\r\nimport { SignalrNotificationsModule, SGR_DEBUG_MODE, BaseMessageService } from \"@esfaenza/signalr-notifications\";\r\nimport { FormsAndValidationsModule, NgxExpandedDayJsDateAdapter } from \"@esfaenza/forms-and-validations\";\r\nimport { AccessControlModule, AccessControlService, ACC_DEBUG_MODE } from \"@esfaenza/access-control\";\r\nimport { BaseAdapter, EsChartsModule, ESC_DEBUG_MODE } from \"@esfaenza/es-charts\";\r\nimport { PreferencesModule, PREF_DEBUG_MODE } from \"@esfaenza/preferences\";\r\nimport { ExtensionsModule, EXT_DEBUG_MODE } from \"@esfaenza/extensions\";\r\nimport { CurrencyMaskModule } from \"@esfaenza/ngx-currency-mask\";\r\nimport { EsMatrixValuesModule } from \"@esfaenza/matrix-values\";\r\nimport { EsQueryBuilderModule } from \"@esfaenza/query-builder\";\r\nimport { ContextMenuModule } from \"@esfaenza/ngx-contextmenu\";\r\nimport { EsTagChooserModule } from \"@esfaenza/tag-chooser\";\r\nimport { EsParametersModule } from \"@esfaenza/parameters\";\r\nimport { DragulaModule } from '@esfaenza/ngx-dragula';\r\nimport { EsGertrudeModule } from \"@esfaenza/gertrude\";\r\nimport { EsTableModule } from \"@esfaenza/es-table\";\r\nimport { EsWizardModule } from \"@esfaenza/wizard\";\r\nimport { EsCronModule } from \"@esfaenza/cron\";\r\n\r\n// Core\r\nimport { PageNotFoundComponent, ServerErrorComponent, AngularErrorComponent, ExternalPagesComponent, JaceLoginComponent, PagesComponent, RedirecterComponent, ComponentsModule } from \"@esfaenza/core/components\";\r\nimport { APPErrorHandler, HTTPServiceExtensions, ApplicationPreferencesPersistor, ApplicationCachePersistor, SessionRetriever, OutZoneEventPlugin, TokenService } from \"@esfaenza/core/services\";\r\nimport { ApplicationMenu, EnvOptions, AccountScope, MENU, MENU_LOCALIZATION, REDIRECT_MAP } from \"@esfaenza/core/domain\"\r\nimport { TemplateCommon } from \"@esfaenza/core/modules\";\r\n\r\n// RxJs\r\nimport { catchError, switchMap, tap } from \"rxjs/operators\";\r\nimport { forkJoin, Observable, of } from \"rxjs\";\r\n\r\n// Bootstrap\r\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\r\nimport { TimepickerModule } from \"ngx-bootstrap/timepicker\";\r\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\r\nimport { TooltipModule } from \"ngx-bootstrap/tooltip\";\r\nimport { ModalModule } from \"ngx-bootstrap/modal\";\r\n\r\n// Applicazione\r\nimport { AppComponent } from \"./app.component\";\r\n\r\n// Repositories\r\nconst GET_Jace_GetAccountScope: string = \"/api/Jace/GetAccountScope\";\r\nconst GET_AppConfig_GetAppConfig: string = \"/api/AppConfig/GetAppConfig\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\nconst baseAppRoutes: Routes = [\r\n { path: \"\", redirectTo: \"pages/{emptyRouteRedirect}\", pathMatch: \"full\" },\r\n { path: \"pages_ext\", component: ExternalPagesComponent },\r\n { path: \"pages\", component: PagesComponent },\r\n { path: \"rd\", component: RedirecterComponent },\r\n { path: \"login\", component: JaceLoginComponent },\r\n { path: \"iserr\", component: ServerErrorComponent },\r\n { path: \"anerr\", component: AngularErrorComponent },\r\n { path: \"**\", component: PageNotFoundComponent }\r\n];\r\n\r\nconst MODULES = [\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n TemplateCommon,\r\n ComponentsModule,\r\n RouterModule.forRoot([], { useHash: true, preloadingStrategy: NoPreloading, onSameUrlNavigation: \"reload\" }),\r\n\r\n // ES\r\n EsTableModule.forRoot(),\r\n FormsAndValidationsModule.forRoot({ acocustom: \"O\" }),\r\n ExtensionsModule.forRoot(),\r\n LocalizationModule.forRoot({ localizationMissingPolicy: LocalizationMissingPolicy.PrintSource }),\r\n AccessControlModule.forRoot({ contextAwareKey: \"O\", defaultCondition: '(R:Jace Admin || R:Jace Support)' }),\r\n HttpserviceModule.forRoot(),\r\n SignalrNotificationsModule.forRoot({ endpointUrl: 'notify', useMessagePack: true }),\r\n PreferencesModule.forRoot({ retrieveAllAtStart: true, sessionRetriever: SessionRetriever, preferencePersistor: ApplicationPreferencesPersistor, cachePersistor: ApplicationCachePersistor }),\r\n EsChartsModule.forRoot(),\r\n\r\n // Bootstrap\r\n TooltipModule.forRoot(),\r\n ModalModule.forRoot(),\r\n ProgressbarModule.forRoot(),\r\n BsDropdownModule.forRoot(),\r\n ToastrModule.forRoot(),\r\n TimepickerModule.forRoot(),\r\n ContextMenuModule.forRoot(),\r\n DragulaModule.forRoot()\r\n];\r\n\r\n// Generatore dei formati data\r\nvar formats = (style: 'long' | 'short') => {\r\n return {\r\n parse: { dateInput: 'DD/MM/YYYY' + (style === 'long' ? ' HH:mm:ss' : '') },\r\n display: {\r\n dateInput: 'DD/MM/YYYY' + (style === 'long' ? ' HH:mm:ss' : ''),\r\n monthYearLabel: 'MM YYYY',\r\n dateA11yLabel: 'DD/MM/YYYY' + (style === 'long' ? ' HH:mm:ss' : ''),\r\n monthYearA11yLabel: 'MM YYYY',\r\n }\r\n };\r\n}\r\n\r\nconst localeFactory = (loc: LocalizationService) => loc.SmallLocale;\r\n\r\nconst PROVIDERS = [\r\n // Providers applicativi\r\n { provide: EVENT_MANAGER_PLUGINS, useExisting: OutZoneEventPlugin, multi: true },\r\n { provide: HttpServiceExtensions, useClass: HTTPServiceExtensions },\r\n\r\n // Locale e gestioni delle date\r\n { provide: LOCALE_ID, useFactory: localeFactory, deps: [LocalizationService] },\r\n { provide: MAT_DATE_LOCALE, useFactory: localeFactory, deps: [LocalizationService] },\r\n { provide: MAT_DATE_FORMATS, useValue: formats('short') },\r\n\r\n // Questi due sono providati dal FormsAndValidationModule stesso, però quest'ultimo è definito in forRoot solo lato componenti shared, \r\n // quindi per rendere questi provider disponibili anche a moduli esterni devo riprovidarli anche qui\r\n { provide: NGX_MAT_DATE_FORMATS, useValue: formats('long') },\r\n { provide: NgxMatDateAdapter, useClass: NgxExpandedDayJsDateAdapter }\r\n];\r\n\r\nexport const COMMON_ROOT_MODULES = [/* Per ora vuoto ma non si sa mai... */];\r\n\r\n@NgModule({\r\n imports: [...MODULES],\r\n declarations: [AppComponent],\r\n})\r\nexport class EsFaenzaCoreModule {\r\n // Mettendoli come funzione si lamenta il compilatore che i moduli devono essere staticamente analizzabili\r\n // Moduli \"ROOT\" -> app.browser.component\r\n // Moduli \"SHARED\" -> shared.module (N.B: Il TemplateCommon è lato \"Core\")\r\n static PROD_ROOT_MODULES = [ServiceWorkerModule.register('ngsw-worker.js', { enabled: true }), ...COMMON_ROOT_MODULES];\r\n static ROOT_MODULES = [ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }), ...COMMON_ROOT_MODULES];\r\n static SHARED_MODULES = [ TemplateCommon, ContextMenuModule, TimepickerModule, BsDropdownModule, TooltipModule, ProgressbarModule, DragulaModule, LocalizationModule, ExtensionsModule, AccessControlModule, EsChartsModule,\r\n EsWizardModule, EsCronModule, EsGertrudeModule, EsMatrixValuesModule, EsTagChooserModule, EsQueryBuilderModule, EsParametersModule, CurrencyMaskModule, FormsAndValidationsModule, EsTableModule\r\n ]\r\n\r\n // Lasciandolo come export secco e non come funzione si spacca tutto al primo export\r\n static ROOT_PROVIDERS = () => [\r\n CookieService, { provide: ErrorHandler, useClass: APPErrorHandler }\r\n ];\r\n\r\n static forRoot(config?: EsFaenzaCoreModuleConfig): ModuleWithProviders<EsFaenzaCoreModule> {\r\n if (config.routes) {\r\n baseAppRoutes[0].redirectTo = `pages/${config.emptyRouteRedirect || 'dashboard'}`;\r\n baseAppRoutes.filter(t => [\"pages\", \"pages_ext\"].includes(t.path)).forEach(path => { path.children = config.routes; });\r\n }\r\n\r\n config.debugMode = (config.env.production && !config.forceDebugModeForProdBuilds) ? DebugFlags.None : (config.debugMode || DebugFlags.All);\r\n\r\n let mergedAppInitializer = (http: HTTPService, bts: TokenService, aac: AccessControlService) => {\r\n return () => {\r\n console.log(\"%c[APP_INITIALIZER] Loading AppConfig and Account Scope...\", \"background-color: yellow\");\r\n return forkJoin(\r\n {\r\n appConfig: http.get<EnvOptions>(GET_AppConfig_GetAppConfig, null, null, false).pipe(catchError(_ => of({}))),\r\n scope: http.get<AccountScope>(GET_Jace_GetAccountScope, null, null, false).pipe(catchError(_ => of(null)))\r\n }).pipe(\r\n tap((res: { appConfig: EnvOptions, scope: AccountScope }) => {\r\n myconfig = res.appConfig;\r\n bts.accountScope = res.scope;\r\n\r\n console.log(\"%c[APP_INITIALIZER] appConfig and scope registered\", \"background-color: yellow\");\r\n\r\n if (bts.accountScope)\r\n aac.initializeIdentity(bts.getJaceIdentity());\r\n }),\r\n switchMap(_ => {\r\n console.log(\"%c[APP_INITIALIZER] Loading custom application initialization\", \"background-color: yellow\");\r\n return config.initializerFunction(http, /*bts,*/ aac)().pipe(tap(_ => {\r\n console.log(\"%c[APP_INITIALIZER] Initialization is over\", \"background-color: yellow\");\r\n }));\r\n })\r\n );\r\n }\r\n };\r\n\r\n return {\r\n ngModule: EsFaenzaCoreModule,\r\n providers: [\r\n // *************************** Provider statici ***************************\r\n\r\n ...PROVIDERS,\r\n\r\n // ************************ Provider customizzabili ************************\r\n ...(!config.redirectionMap ? [] : [{ provide: REDIRECT_MAP, useValue: config.redirectionMap }]),\r\n { provide: APP_INITIALIZER, useFactory: mergedAppInitializer, deps: [HTTPService, TokenService, AccessControlService], multi: true },\r\n { provide: ROUTES, useValue: baseAppRoutes, multi: true },\r\n { provide: LOC_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Localizations) == DebugFlags.Localizations : false },\r\n { provide: EXT_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Extensions) == DebugFlags.Extensions : false },\r\n { provide: ACC_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.AccessControl) == DebugFlags.AccessControl : false },\r\n { provide: HTTP_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Http) == DebugFlags.Http : false },\r\n { provide: HTTP_INVALIDATION, useValue: config?.httpInvalidationCache },\r\n { provide: SGR_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.SignalR) == DebugFlags.SignalR : false },\r\n { provide: PREF_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Preferences) == DebugFlags.Preferences : false },\r\n { provide: ESC_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Charts) == DebugFlags.Charts : false },\r\n { provide: BaseAdapter, useClass: config?.chartsAdapter || BaseAdapter },\r\n { provide: BaseMessageService, useClass: config?.messageService || BaseMessageService },\r\n { provide: MENU_LOCALIZATION, useValue: config.menuLoc || null },\r\n { provide: MENU, useValue: config.menu }\r\n ]\r\n };\r\n }\r\n}\r\n\r\nexport class EsFaenzaCoreModuleConfig {\r\n /* Route applicative, solo quelle dentro a **pages** */\r\n routes!: Routes;\r\n /* Variabile environment classica Angular Style */\r\n env: any;\r\n /* Menù della sidebar dell'applicazione */\r\n menu: ApplicationMenu[];\r\n /* Tipo da usare per generare le localizzaizoni del menù */\r\n menuLoc?: Type<LocalizationService>;\r\n /* Redirect per la root dell'applicazione, di default è impostato a **dashboard**. Se all'interno delle **routes** non esiste la route **dashboard** è da impostare adeguatamente */\r\n emptyRouteRedirect?: string;\r\n /* Se non specificata viene impostata automaticamente ad \"All\" in fase di debug, \"None\" in produzione (quest'ultimo a prescindere, a meno che **forceDebugModeForProdBuilds** non sia true)*/\r\n debugMode?: DebugFlags; \r\n /* Permette di forzare la modalità di debug specificata anche per le build di produzione, **NON IMPOSTARE A TRUE** a meno di rarissimissimissimi casi */\r\n forceDebugModeForProdBuilds?: boolean;\r\n /* Cache di invalidazione per le chiamate http */\r\n httpInvalidationCache: any;\r\n /* Funzione di inizializzazione APP_INITIALIZER-like che viene richiamata dopo alla funzione di inizializzazione di default */\r\n initializerFunction?: (http: HTTPService, /*bts: TokenService,*/ aac: AccessControlService) => () => Observable<any>;\r\n /* Mappa di redirect per permettere al **RedirecterComponent** di sapere dove navigare in base a Oggetto-Parametri */\r\n redirectionMap?: { [index: string]: { url: string, params: string[] } };\r\n /* Adattatore dei grafici nel caso un progetto fosse vecchio (Rimuovibile quando tutti i progetti usano nativamente es-charts) */\r\n chartsAdapter?: Type<BaseAdapter>;\r\n /* Servizio che espone i messaggi disponibili su Signalr */\r\n messageService?: Type<BaseMessageService>;\r\n}\r\n\r\nexport enum DebugFlags {\r\n None = 0,\r\n Localizations = 1 << 0,\r\n Extensions = 1 << 1,\r\n AccessControl = 1 << 2,\r\n Http = 1 << 3,\r\n SignalR = 1 << 4,\r\n Preferences = 1 << 5,\r\n Charts = 1 << 6,\r\n All = ~(~0 << 7)\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"esfaenza-core.mjs","sources":["../../../projects/core/src/lib/app.component.ts","../../../projects/core/src/lib/app.component.html","../../../projects/core/src/lib/core.module.ts","../../../projects/core/src/esfaenza-core.ts"],"sourcesContent":["// Angular\r\nimport { Component, ViewEncapsulation } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// Configurazioni\r\n import { AppState, TokenService } from \"@esfaenza/core/services\";\r\n\r\n@Component({\r\n selector: 'app-root',\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: [\"./app.component.scss\"],\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent {\r\n\r\n public snows: number[] = [];\r\n\r\n constructor(private bts: TokenService, public _state: AppState, private router: Router) {\r\n\r\n if (this._state.christmasTime)\r\n for (let i = 0; i < 400; i++)\r\n this.snows.push(i);\r\n\r\n if (!this.bts.accountScope)\r\n this.router.navigate([\"login\", { fromUrl: this.router.url }]);\r\n }\r\n}","<ng-container *ngIf=\"_state.christmasTime\">\r\n <div *ngFor=\"let i of snows\" class=\"snow\"></div>\r\n</ng-container>\r\n<router-outlet></router-outlet>","// Angular\r\nimport { NgModule, ErrorHandler, LOCALE_ID, APP_INITIALIZER, ModuleWithProviders, Type, isDevMode } from \"@angular/core\";\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { Routes, RouterModule, NoPreloading, ROUTES } from \"@angular/router\";\r\nimport { MAT_DATE_FORMATS, MAT_DATE_LOCALE } from \"@angular/material/core\";\r\nimport { EVENT_MANAGER_PLUGINS } from \"@angular/platform-browser\";\r\nimport { ServiceWorkerModule } from \"@angular/service-worker\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport \"@angular/common/locales/global/it\";\r\n\r\n// Plugins\r\nimport { NgxMatDateAdapter, NGX_MAT_DATE_FORMATS } from \"@angular-material-components/datetime-picker\";\r\nimport { CookieService } from \"ngx-cookie-service\";\r\nimport { ToastrModule } from \"ngx-toastr\";\r\nimport \"widgster/widgster.js\";\r\n\r\n// ES\r\nimport { LocalizationModule, LocalizationService, LocalizationMissingPolicy, LOC_DEBUG_MODE } from \"@esfaenza/localizations\";\r\nimport { HttpserviceModule, HttpServiceExtensions, HTTPService, HTTP_DEBUG_MODE, HTTP_INVALIDATION } from \"@esfaenza/httpservice\";\r\nimport { SignalrNotificationsModule, SGR_DEBUG_MODE, BaseMessageService } from \"@esfaenza/signalr-notifications\";\r\nimport { FormsAndValidationsModule, NgxExpandedDayJsDateAdapter } from \"@esfaenza/forms-and-validations\";\r\nimport { AccessControlModule, AccessControlService, ACC_DEBUG_MODE } from \"@esfaenza/access-control\";\r\nimport { BaseAdapter, EsChartsModule, ESC_DEBUG_MODE } from \"@esfaenza/es-charts\";\r\nimport { PreferencesModule, PREF_DEBUG_MODE } from \"@esfaenza/preferences\";\r\nimport { ExtensionsModule, EXT_DEBUG_MODE } from \"@esfaenza/extensions\";\r\nimport { ContextMenuModule } from \"@esfaenza/ngx-contextmenu\";\r\nimport { DragulaModule } from '@esfaenza/ngx-dragula';\r\nimport { EsTableModule } from \"@esfaenza/es-table\";\r\n\r\n// Core\r\nimport { PageNotFoundComponent, ServerErrorComponent, AngularErrorComponent, ExternalPagesComponent, JaceLoginComponent, PagesComponent, RedirecterComponent, ComponentsModule } from \"@esfaenza/core/components\";\r\nimport { APPErrorHandler, HTTPServiceExtensions, ApplicationPreferencesPersistor, ApplicationCachePersistor, SessionRetriever, OutZoneEventPlugin, TokenService } from \"@esfaenza/core/services\";\r\nimport { ApplicationMenu, EnvOptions, AccountScope, MENU, MENU_LOCALIZATION, REDIRECT_MAP, USE_FAKE_ACCESS_TOKEN } from \"@esfaenza/core/domain\"\r\nimport { TemplateCommon } from \"@esfaenza/core/modules\";\r\n\r\n// RxJs\r\nimport { catchError, switchMap, tap } from \"rxjs/operators\";\r\nimport { forkJoin, Observable, of } from \"rxjs\";\r\n\r\n// Bootstrap\r\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\r\nimport { TimepickerModule } from \"ngx-bootstrap/timepicker\";\r\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\r\nimport { TooltipModule } from \"ngx-bootstrap/tooltip\";\r\nimport { ModalModule } from \"ngx-bootstrap/modal\";\r\n\r\n// Applicazione\r\nimport { AppComponent } from \"./app.component\";\r\n\r\n// Repositories\r\nconst GET_Jace_GetAccountScope: string = \"/api/Jace/GetAccountScope\";\r\nconst GET_AppConfig_GetAppConfig: string = \"/api/AppConfig/GetAppConfig\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\nconst baseAppRoutes: Routes = [\r\n { path: \"\", redirectTo: \"pages/{emptyRouteRedirect}\", pathMatch: \"full\" },\r\n { path: \"pages_ext\", component: ExternalPagesComponent },\r\n { path: \"pages\", component: PagesComponent },\r\n { path: \"rd\", component: RedirecterComponent },\r\n { path: \"login\", component: JaceLoginComponent },\r\n { path: \"iserr\", component: ServerErrorComponent },\r\n { path: \"anerr\", component: AngularErrorComponent },\r\n { path: \"**\", component: PageNotFoundComponent }\r\n];\r\n\r\nconst MODULES = [\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n TemplateCommon,\r\n ComponentsModule,\r\n \r\n // Attenzione a lasciarlo attivo in ng serve: https://github.com/angular/angular/issues/47455\r\n ServiceWorkerModule.register('ngsw-worker.js', { enabled: !isDevMode() }),\r\n RouterModule.forRoot([], { useHash: true, preloadingStrategy: NoPreloading, onSameUrlNavigation: \"reload\" }),\r\n\r\n // ES\r\n EsTableModule.forRoot(),\r\n FormsAndValidationsModule.forRoot({ acocustom: \"O\" }),\r\n ExtensionsModule.forRoot(),\r\n LocalizationModule.forRoot({ localizationMissingPolicy: LocalizationMissingPolicy.PrintSource, defaultLocale: 'it-IT' }),\r\n AccessControlModule.forRoot({ contextAwareKey: \"O\", defaultCondition: '(R:Jace Admin || R:Jace Support)' }),\r\n HttpserviceModule.forRoot(),\r\n SignalrNotificationsModule.forRoot({ endpointUrl: 'notify', useMessagePack: true }),\r\n PreferencesModule.forRoot({ retrieveAllAtStart: true, sessionRetriever: SessionRetriever, preferencePersistor: ApplicationPreferencesPersistor, cachePersistor: ApplicationCachePersistor }),\r\n EsChartsModule.forRoot(),\r\n\r\n // Bootstrap\r\n TooltipModule.forRoot(),\r\n ModalModule.forRoot(),\r\n ProgressbarModule.forRoot(),\r\n BsDropdownModule.forRoot(),\r\n ToastrModule.forRoot(),\r\n TimepickerModule.forRoot(),\r\n ContextMenuModule.forRoot(),\r\n DragulaModule.forRoot()\r\n];\r\n\r\n// Generatore dei formati data\r\nvar formats = (style: 'long' | 'short') => {\r\n return {\r\n parse: { dateInput: 'DD/MM/YYYY' + (style === 'long' ? ' HH:mm:ss' : '') },\r\n display: {\r\n dateInput: 'DD/MM/YYYY' + (style === 'long' ? ' HH:mm:ss' : ''),\r\n monthYearLabel: 'MM YYYY',\r\n dateA11yLabel: 'DD/MM/YYYY' + (style === 'long' ? ' HH:mm:ss' : ''),\r\n monthYearA11yLabel: 'MM YYYY',\r\n }\r\n };\r\n}\r\n\r\nconst localeFactory = (loc: LocalizationService) => loc.SmallLocale;\r\n\r\nconst PROVIDERS = [\r\n // Providers applicativi\r\n { provide: EVENT_MANAGER_PLUGINS, useExisting: OutZoneEventPlugin, multi: true },\r\n { provide: HttpServiceExtensions, useClass: HTTPServiceExtensions },\r\n\r\n // Locale e gestioni delle date\r\n { provide: LOCALE_ID, useFactory: localeFactory, deps: [LocalizationService] },\r\n { provide: MAT_DATE_LOCALE, useFactory: localeFactory, deps: [LocalizationService] },\r\n { provide: MAT_DATE_FORMATS, useValue: formats('short') },\r\n\r\n // Questi due sono providati dal FormsAndValidationModule stesso, però quest'ultimo è definito in forRoot solo lato componenti shared, \r\n // quindi per rendere questi provider disponibili anche a moduli esterni devo riprovidarli anche qui\r\n { provide: NGX_MAT_DATE_FORMATS, useValue: formats('long') },\r\n { provide: NgxMatDateAdapter, useClass: NgxExpandedDayJsDateAdapter }\r\n];\r\n\r\n@NgModule({\r\n imports: [...MODULES],\r\n declarations: [AppComponent],\r\n})\r\nexport class EsFaenzaCoreModule {\r\n\r\n // Lasciandolo come export secco e non come funzione si spacca tutto al primo export\r\n static ROOT_PROVIDERS = () => [\r\n CookieService, { provide: ErrorHandler, useClass: APPErrorHandler }\r\n ];\r\n\r\n static forRoot(config?: EsFaenzaCoreModuleConfig): ModuleWithProviders<EsFaenzaCoreModule> {\r\n if (config.routes) {\r\n baseAppRoutes[0].redirectTo = `pages/${config.emptyRouteRedirect || 'dashboard'}`;\r\n baseAppRoutes.filter(t => [\"pages\", \"pages_ext\"].includes(t.path)).forEach(path => { path.children = config.routes; });\r\n }\r\n config.debugMode = (config.env.production && !config.forceDebugModeForProdBuilds) ? DebugFlags.None : (config.debugMode || DebugFlags.All);\r\n\r\n let mergedAppInitializer = (http: HTTPService, bts: TokenService, aac: AccessControlService) => {\r\n return () => {\r\n console.log(\"%c[APP_INITIALIZER] Loading AppConfig and Account Scope...\", \"background-color: yellow\");\r\n let realObservable = forkJoin(\r\n {\r\n appConfig: http.get<EnvOptions>(GET_AppConfig_GetAppConfig, null, null, false).pipe(catchError(_ => of({}))),\r\n scope: http.get<AccountScope>(GET_Jace_GetAccountScope, null, null, false).pipe(catchError(_ => of(null)))\r\n });\r\n\r\n let usedObservable = config.optionsAndScopeProvider || realObservable;\r\n\r\n return usedObservable.pipe(\r\n tap((res: { appConfig: EnvOptions, scope: AccountScope }) => {\r\n myconfig = res.appConfig;\r\n bts.accountScope = res.scope;\r\n\r\n console.log(\"%c[APP_INITIALIZER] appConfig and scope registered\", \"background-color: yellow\");\r\n\r\n if (bts.accountScope)\r\n aac.initializeIdentity(bts.getJaceIdentity());\r\n }),\r\n switchMap(_ => {\r\n if (!config.initializerFunction)\r\n return of();\r\n\r\n console.log(\"%c[APP_INITIALIZER] Loading custom application initialization\", \"background-color: yellow\");\r\n return config.initializerFunction(http, bts, aac)().pipe(tap(_ => {\r\n console.log(\"%c[APP_INITIALIZER] Initialization is over\", \"background-color: yellow\");\r\n }));\r\n })\r\n );\r\n }\r\n };\r\n\r\n return {\r\n ngModule: EsFaenzaCoreModule,\r\n providers: [\r\n // *************************** Provider statici ***************************\r\n\r\n ...PROVIDERS,\r\n\r\n // ************************ Provider customizzabili ************************\r\n ...(!config.redirectionMap ? [] : [{ provide: REDIRECT_MAP, useValue: config.redirectionMap }]),\r\n { provide: APP_INITIALIZER, useFactory: mergedAppInitializer, deps: [HTTPService, TokenService, AccessControlService], multi: true },\r\n { provide: ROUTES, useValue: baseAppRoutes, multi: true },\r\n { provide: LOC_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Localizations) == DebugFlags.Localizations : false },\r\n { provide: EXT_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Extensions) == DebugFlags.Extensions : false },\r\n { provide: ACC_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.AccessControl) == DebugFlags.AccessControl : false },\r\n { provide: HTTP_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Http) == DebugFlags.Http : false },\r\n { provide: HTTP_INVALIDATION, useValue: config?.httpInvalidationCache },\r\n { provide: SGR_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.SignalR) == DebugFlags.SignalR : false },\r\n { provide: PREF_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Preferences) == DebugFlags.Preferences : false },\r\n { provide: ESC_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Charts) == DebugFlags.Charts : false },\r\n { provide: BaseAdapter, useClass: config?.chartsAdapter || BaseAdapter },\r\n { provide: BaseMessageService, useClass: config?.messageService || BaseMessageService },\r\n { provide: MENU_LOCALIZATION, useValue: config.menuLoc || null },\r\n { provide: MENU, useValue: config.menu },\r\n { provide: USE_FAKE_ACCESS_TOKEN, useValue: !!config.fakeAccessToken },\r\n ]\r\n };\r\n }\r\n}\r\n\r\nexport class EsFaenzaCoreModuleConfig {\r\n /* Route applicative, solo quelle dentro a **pages** */\r\n routes!: Routes;\r\n /* Variabile environment classica Angular Style */\r\n env: any;\r\n /* Menù della sidebar dell'applicazione */\r\n menu: ApplicationMenu[];\r\n /* Indica se utilizzare l'access token finto */\r\n fakeAccessToken?: boolean;\r\n /* Tipo da usare per generare le localizzaizoni del menù */\r\n menuLoc?: Type<LocalizationService>;\r\n /* Redirect per la root dell'applicazione, di default è impostato a **dashboard**. Se all'interno delle **routes** non esiste la route **dashboard** è da impostare adeguatamente */\r\n emptyRouteRedirect?: string;\r\n /* Se non specificata viene impostata automaticamente ad \"All\" in fase di debug, \"None\" in produzione (quest'ultimo a prescindere, a meno che **forceDebugModeForProdBuilds** non sia true)*/\r\n debugMode?: DebugFlags;\r\n /* Permette di forzare la modalità di debug specificata anche per le build di produzione, **NON IMPOSTARE A TRUE** a meno di rarissimissimissimi casi */\r\n forceDebugModeForProdBuilds?: boolean;\r\n /* Cache di invalidazione per le chiamate http */\r\n httpInvalidationCache?: any;\r\n /* Funzione di inizializzazione APP_INITIALIZER-like che viene richiamata dopo alla funzione di inizializzazione di default */\r\n initializerFunction?: (http: HTTPService, bts: TokenService, aac: AccessControlService) => () => Observable<void>;\r\n /* Mappa di redirect per permettere al **RedirecterComponent** di sapere dove navigare in base a Oggetto-Parametri */\r\n redirectionMap?: { [index: string]: { url: string, params: string[] } };\r\n /* Adattatore dei grafici nel caso un progetto fosse vecchio (Rimuovibile quando tutti i progetti usano nativamente es-charts) */\r\n chartsAdapter?: Type<BaseAdapter>;\r\n /* Servizio che espone i messaggi disponibili su Signalr */\r\n messageService?: Type<BaseMessageService>;\r\n /* Funzione di override per recuperare account scope e envoptions. Può anche essere utilizzata per fornire modelli finti fino ad implementazione */\r\n optionsAndScopeProvider?: Observable<{ appConfig: EnvOptions, scope: AccountScope }>\r\n}\r\n\r\nexport enum DebugFlags {\r\n None = 0,\r\n Localizations = 1 << 0,\r\n Extensions = 1 << 1,\r\n AccessControl = 1 << 2,\r\n Http = 1 << 3,\r\n SignalR = 1 << 4,\r\n Preferences = 1 << 5,\r\n Charts = 1 << 6,\r\n All = ~(~0 << 7)\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3"],"mappings":"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"}
@@ -10,6 +10,7 @@ import * as i1$1 from '@esfaenza/preferences';
10
10
  import * as i3$2 from '@esfaenza/httpservice';
11
11
  import * as i4$1 from '@esfaenza/localizations';
12
12
  import { LocalizationService, LocalizationModule } from '@esfaenza/localizations';
13
+ import { Subject, interval, takeUntil } from 'rxjs';
13
14
  import * as i2 from '@esfaenza/signalr-notifications';
14
15
  import * as i3$3 from '@esfaenza/extensions';
15
16
  import * as i9 from '@angular/forms';
@@ -18,6 +19,8 @@ import * as i10 from 'ngx-bootstrap/progressbar';
18
19
  import { ProgressbarModule } from 'ngx-bootstrap/progressbar';
19
20
  import * as i11 from '@angular/material/slide-toggle';
20
21
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
22
+ import * as i12 from 'ngx-bootstrap/dropdown';
23
+ import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
21
24
  import { CategoriesWithModules, MENU, MENU_LOCALIZATION, REDIRECT_MAP } from '@esfaenza/core/domain';
22
25
  import * as i2$1 from '@esfaenza/access-control';
23
26
  import * as i6 from '@esfaenza/core/directives';
@@ -293,15 +296,11 @@ class Navbar {
293
296
  this._state = _state;
294
297
  this.sr = sr;
295
298
  this.router = router;
299
+ this.destroyed$ = new Subject();
296
300
  this.isMenuCollapsed = false;
297
301
  this.applicationVersion = myconfig.AppData.ComponentVersion;
298
302
  this.myconfig = myconfig;
299
303
  this.anomaliesProcessing = false;
300
- this.intervals = [];
301
- this.user = "";
302
- this.tenant = "";
303
- this.idtenant = "";
304
- this.groupName = "";
305
304
  this.IsJaceAdmin = false;
306
305
  this.newVersionWarned = false;
307
306
  this.notificationsSubs = [];
@@ -309,20 +308,18 @@ class Navbar {
309
308
  this.thisLoc = lc.Locale;
310
309
  this.checkIdentity();
311
310
  this.getActiveJaceModules();
312
- var i = setInterval(() => {
313
- if (!myconfig.redirectInProgress) {
311
+ interval(1000).pipe(takeUntil(this.destroyed$)).subscribe(t => {
312
+ if (!myconfig.redirectInProgress)
314
313
  this.checkIdentity();
315
- this.cdr.markForCheck();
316
- }
317
- }, 1000);
318
- this.intervals.push(i);
314
+ });
319
315
  this.startSignalRListening();
320
316
  this._state.subscribe("app.completedJob", (jobDescription) => {
321
317
  this.msgExts.simpleSuccess(this.lc.loc("Job Completato") + ": " + jobDescription);
322
318
  });
323
319
  }
324
320
  ngOnDestroy() {
325
- this.intervals.forEach(i => { clearInterval(i); });
321
+ this.destroyed$.next();
322
+ this.destroyed$.complete();
326
323
  this.stopSignalRListening();
327
324
  }
328
325
  startSignalRListening() {
@@ -340,15 +337,16 @@ class Navbar {
340
337
  }
341
338
  checkIdentity() {
342
339
  // Controllo identity
343
- var identity = this.sr.getJaceIdentity();
340
+ let identity = this.sr.getJaceIdentity();
344
341
  if (identity) {
345
342
  this.checkSession(identity);
346
- if ((this.user != identity.FullName || this.idtenant != identity.Idtenant) && this.user) {
343
+ if (identity.IdAccount != this.LastIdentity?.IdAccount ||
344
+ identity.IdUser != this.LastIdentity?.IdUser ||
345
+ identity.Idtenant != this.LastIdentity?.Idtenant) {
347
346
  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)"));
347
+ this.cdr.markForCheck();
348
348
  }
349
- this.user = identity.FullName;
350
- this.tenant = identity.TenantName;
351
- this.idtenant = identity.Idtenant;
349
+ this.LastIdentity = identity;
352
350
  this.Permissions = identity.Permissions;
353
351
  this.Roles = identity.Roles;
354
352
  this.IsJaceAdmin = identity.Roles.some(t => t == "Jace Admin") && !identity.Permissions.some(t => t == "alg_custom");
@@ -429,10 +427,10 @@ class Navbar {
429
427
  }
430
428
  }
431
429
  Navbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Navbar, deps: [{ token: i1$1.PreferencesService }, { token: i1$1.CacheService }, { token: i2.BaseMessageService }, { token: i2.NotificationsService }, { token: i3$3.MessageService }, { token: i4$1.LocalizationService }, { token: i3$2.HTTPService }, { token: i0.ChangeDetectorRef }, { token: i4.AppState }, { token: i4.TokenService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
432
- Navbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: Navbar, selector: "navbar", viewQueries: [{ propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }], ngImport: i0, template: "<nav #navbar class=\"nav az-navbar fixed-top\">\r\n <a class=\"navbar-brand\" routerLink=\"/pages/dashboard\">\r\n <img src=\"../assets/img/logo/logo.png\" alt=\"\" class=\"d-md-block d-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-v d-md-block d-none\">{{ applicationVersion }}</div>\r\n\r\n <img src=\"../assets/img/logo/logo_sm.png\" alt=\"\" class=\"d-md-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-sm-v d-md-none\">{{ applicationVersion }}</div>\r\n </a>\r\n\r\n <ul class=\"nav navbar-nav navbar-fillable\">\r\n <li>\r\n <a (click)=\"toggleMenu()\" class=\"collapse-menu-link fa fa-navicon\"></a>\r\n </li>\r\n <li class=\"d-none d-md-block\">\r\n <form role=\"search\" class=\"app-search\">\r\n <input type=\"text\" placeholder=\"Search...\" class=\"form-control\">\r\n <a><i class=\"fa fa-search\" style=\"color: #aaa\"></i></a>\r\n </form>\r\n </li>\r\n\r\n <ul class=\"nav right-section\">\r\n\r\n <!--Dropdown job in esecuzione-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a [class.fa-spin]=\"_state.jobsInProgress > 0\" class=\"fa fa-cog dropdown-toggle app-pointer nav-jobs-icon\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\" class=\"app-link app-no-selection app-inline app-pointer\" (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{ 'Completed' | localize : lc }}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\" [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\" [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!--Dropdown moduli-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"fa fa-th module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle>\r\n </a>\r\n <ul *dropdownMenu class=\"module-board-menu container\" role=\"menu\">\r\n <div class=\"app-relative\">\r\n <jace-modules-board [Modules]=\"Modules\"></jace-modules-board>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!-- USER MENU -->\r\n <div class=\"pull-right user-menu app-no-selection\" dropdown container=\"body\" placement=\"bottom right\" style=\"height:50px;\">\r\n <a class=\"dropdown-toggle user-link app-pointer\" dropdownToggle>\r\n <div class=\"pull-left app-margin-right-10 app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"pull-right d-none d-sm-block\">\r\n <div class=\"app-white-text\">\r\n {{user}} - ({{tenant}})\r\n </div>\r\n <div class=\"app-white-text text-sm-center\">\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 1\">\r\n {{'Ambiente di Produzione' | localize : lc}}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </a>\r\n\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"user-info\">\r\n <div class=\"app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"app-white-text app-margin-top-10 app-margin-bottom-10\">\r\n <div>\r\n {{user}} - {{tenant}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n </li>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'en-US'\" (click)=\"lc.changeLocale('it-IT')\"><i class=\"fa fa-globe\">&nbsp;</i>Switch to Italian Site</a>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'it-IT'\" (click)=\"lc.changeLocale('en-US')\"><i class=\"fa fa-globe\">&nbsp;</i>Passa al Sito in Inglese</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeModule()\"><i class=\"fa fa-th\">&nbsp;</i>{{'Cambia Modulo' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeTenant()\"><i class=\"fa fa-building\">&nbsp;</i>{{'Cambia Tenant' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\"><i class=\"fa fa-user-times\">&nbsp;</i>{{'Ripulisci le Preferenze Utente' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearAll()\"><i class=\"fa fa-recycle \">&nbsp;</i>{{'Ripulisci la Cache' | localize : lc}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"logout()\"><i class=\"fa fa-power-off\">&nbsp;</i>Log out</a>\r\n </ul>\r\n </div>\r\n </ul>\r\n </ul>\r\n</nav>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #ccc}.nav-jobs-menu-header{padding:8px;font-size:14px;background-color:#242d3a;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.nav.az-navbar{height:60px;align-items:center;background-color:#242d3a}.nav.az-navbar .navbar-brand{width:205px;padding-top:0;font-size:0;margin-left:10px}.navbar-nav{flex-direction:row}#lines{border-bottom:7px double;border-top:2px solid;border-color:#ffffffe6;content:\"\";height:3px;width:20px;box-sizing:content-box;cursor:pointer}#lines:hover{opacity:.8}.app-search{position:relative;margin-left:20px}.app-search a{position:absolute;top:3px;right:14px;font-size:16px;color:#ffffff4d}.app-search .form-control{border:1px solid rgba(255,255,255,.1);font-size:11px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:190px}.app-search input{border:1px solid rgba(255,255,255,.1);font-size:12px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:240px}.completer-selected-row{background-color:#0275d8!important;color:#fff!important;width:100%!important}.completer-row{width:100%!important;color:#fff!important}.completer-dropdown{margin-top:2px!important;background-color:#344154f7!important;color:#fff;border-color:#111!important;box-shadow:0 6px 12px #0003}.search-results{left:-85px;top:-2px;z-index:1050;color:#fff;background-color:#344154f7}.search-results .btn-sm{padding:.15rem .25rem;font-size:.5rem}.search-results:before{content:\"\";border:0px}.search-results a{color:#242d3a}.search-results a:hover{color:#fff;background-color:#0275d8;cursor:pointer}.search-results a i{margin-right:8px}.right-section{position:absolute;right:10px;top:10px}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#242d3a}.user-menu .dropdown-menu a:hover{color:#fff;background-color:#242d3a}.user-menu .dropdown-menu a i{margin-right:8px}.user-link{margin-right:6px}.user-link span{color:#fff;margin-left:7px;letter-spacing:.02em}.user-link img{width:40px;border-radius:50%}.user-link:hover,.user-link:focus{text-decoration:none}.user-info{background-color:#242d3a;padding:8px;text-align:center;width:240px;margin-bottom:5px}.user-info img{width:100px;margin-top:5px;border-radius:50%}.user-info p{color:#ebebeb;margin-top:10px}.user-info small{display:block}@media (max-width: 767px){.nav.az-navbar .navbar-brand{width:auto}}.navbar-search{color:#ffffff80!important}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 8px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.collapse-menu-link{color:#fff!important;font-size:20px;padding-top:5px;cursor:pointer}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.overlay{height:100%;width:100%;display:none;padding-left:10%;padding-right:10%;position:fixed;z-index:999999;left:0;top:0;background-color:#000;background-color:#000000e6;overflow-x:hidden;transition:.5s}.overlay-content{position:relative;top:25%;width:100%;text-align:center;margin-top:30px}.overlay p{padding:8px;text-decoration:none;font-size:36px;color:#818181;display:block;transition:.3s}.overlay a:hover,.overlay a:focus{color:#f1f1f1}.overlay .closebtn{position:absolute;top:20px;right:45px;font-size:60px}@media screen and (max-height: 450px){.overlay a{font-size:20px}.overlay .closebtn{font-size:40px;top:15px;right:35px}}\n"], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i10.ProgressbarComponent, selector: "progressbar", inputs: ["max", "animate", "striped", "type", "value"] }, { kind: "component", type: i11.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: JaceModulesBoardComponent, selector: "jace-modules-board", inputs: ["Modules"] }, { kind: "pipe", type: i4$1.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
430
+ Navbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: Navbar, selector: "navbar", viewQueries: [{ propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }], ngImport: i0, template: "<nav #navbar class=\"nav az-navbar fixed-top\">\r\n <a class=\"navbar-brand\" routerLink=\"/pages/dashboard\">\r\n <img src=\"../assets/img/logo/logo.png\" alt=\"\" class=\"d-md-block d-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-v d-md-block d-none\">{{ applicationVersion }}</div>\r\n\r\n <img src=\"../assets/img/logo/logo_sm.png\" alt=\"\" class=\"d-md-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-sm-v d-md-none\">{{ applicationVersion }}</div>\r\n </a>\r\n\r\n <ul class=\"nav navbar-nav navbar-fillable\">\r\n <li>\r\n <a (click)=\"toggleMenu()\" class=\"collapse-menu-link fa fa-navicon\"></a>\r\n </li>\r\n <li class=\"d-none d-md-block\">\r\n <form role=\"search\" class=\"app-search\">\r\n <input type=\"text\" placeholder=\"Search...\" class=\"form-control\">\r\n <a><i class=\"fa fa-search\" style=\"color: #aaa\"></i></a>\r\n </form>\r\n </li>\r\n\r\n <ul class=\"nav right-section\">\r\n\r\n <!--Dropdown job in esecuzione-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a [class.fa-spin]=\"_state.jobsInProgress > 0\" class=\"fa fa-cog dropdown-toggle app-pointer nav-jobs-icon\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\" class=\"app-link app-no-selection app-inline app-pointer\" (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{ 'Completed' | localize : lc }}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\" [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\" [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!--Dropdown moduli-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"fa fa-th module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle>\r\n </a>\r\n <ul *dropdownMenu class=\"module-board-menu container\" role=\"menu\">\r\n <div class=\"app-relative\">\r\n <jace-modules-board [Modules]=\"Modules\"></jace-modules-board>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!-- USER MENU -->\r\n <div class=\"pull-right user-menu app-no-selection\" dropdown container=\"body\" placement=\"bottom right\" style=\"height:50px;\">\r\n <a class=\"dropdown-toggle user-link app-pointer\" dropdownToggle>\r\n <div class=\"pull-left app-margin-right-10 app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"pull-right d-none d-sm-block\">\r\n <div class=\"app-white-text\">\r\n {{LastIdentity?.FullName}} - ({{LastIdentity?.TenantName}})\r\n </div>\r\n <div class=\"app-white-text text-sm-center\">\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 1\">\r\n {{'Ambiente di Produzione' | localize : lc}}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </a>\r\n\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"user-info\">\r\n <div class=\"app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"app-white-text app-margin-top-10 app-margin-bottom-10\">\r\n <div>\r\n {{LastIdentity?.FullName}} - ({{LastIdentity?.TenantName}})\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n </li>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'en-US'\" (click)=\"lc.changeLocale('it-IT')\"><i class=\"fa fa-globe\">&nbsp;</i>Switch to Italian Site</a>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'it-IT'\" (click)=\"lc.changeLocale('en-US')\"><i class=\"fa fa-globe\">&nbsp;</i>Passa al Sito in Inglese</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeModule()\"><i class=\"fa fa-th\">&nbsp;</i>{{'Cambia Modulo' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeTenant()\"><i class=\"fa fa-building\">&nbsp;</i>{{'Cambia Tenant' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\"><i class=\"fa fa-user-times\">&nbsp;</i>{{'Ripulisci le Preferenze Utente' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearAll()\"><i class=\"fa fa-recycle \">&nbsp;</i>{{'Ripulisci la Cache' | localize : lc}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"logout()\"><i class=\"fa fa-power-off\">&nbsp;</i>Log out</a>\r\n </ul>\r\n </div>\r\n </ul>\r\n </ul>\r\n</nav>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #ccc}.nav-jobs-menu-header{padding:8px;font-size:14px;background-color:#242d3a;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.nav.az-navbar{height:60px;align-items:center;background-color:#242d3a}.nav.az-navbar .navbar-brand{width:205px;padding-top:0;font-size:0;margin-left:10px}.navbar-nav{flex-direction:row}#lines{border-bottom:7px double;border-top:2px solid;border-color:#ffffffe6;content:\"\";height:3px;width:20px;box-sizing:content-box;cursor:pointer}#lines:hover{opacity:.8}.app-search{position:relative;margin-left:20px}.app-search a{position:absolute;top:3px;right:14px;font-size:16px;color:#ffffff4d}.app-search .form-control{border:1px solid rgba(255,255,255,.1);font-size:11px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:190px}.app-search input{border:1px solid rgba(255,255,255,.1);font-size:12px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:240px}.completer-selected-row{background-color:#0275d8!important;color:#fff!important;width:100%!important}.completer-row{width:100%!important;color:#fff!important}.completer-dropdown{margin-top:2px!important;background-color:#344154f7!important;color:#fff;border-color:#111!important;box-shadow:0 6px 12px #0003}.search-results{left:-85px;top:-2px;z-index:1050;color:#fff;background-color:#344154f7}.search-results .btn-sm{padding:.15rem .25rem;font-size:.5rem}.search-results:before{content:\"\";border:0px}.search-results a{color:#242d3a}.search-results a:hover{color:#fff;background-color:#0275d8;cursor:pointer}.search-results a i{margin-right:8px}.right-section{position:absolute;right:10px;top:10px}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#242d3a}.user-menu .dropdown-menu a:hover{color:#fff;background-color:#242d3a}.user-menu .dropdown-menu a i{margin-right:8px}.user-link{margin-right:6px}.user-link span{color:#fff;margin-left:7px;letter-spacing:.02em}.user-link img{width:40px;border-radius:50%}.user-link:hover,.user-link:focus{text-decoration:none}.user-info{background-color:#242d3a;padding:8px;text-align:center;width:240px;margin-bottom:5px}.user-info img{width:100px;margin-top:5px;border-radius:50%}.user-info p{color:#ebebeb;margin-top:10px}.user-info small{display:block}@media (max-width: 767px){.nav.az-navbar .navbar-brand{width:auto}}.navbar-search{color:#ffffff80!important}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 8px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.collapse-menu-link{color:#fff!important;font-size:20px;padding-top:5px;cursor:pointer}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.overlay{height:100%;width:100%;display:none;padding-left:10%;padding-right:10%;position:fixed;z-index:999999;left:0;top:0;background-color:#000;background-color:#000000e6;overflow-x:hidden;transition:.5s}.overlay-content{position:relative;top:25%;width:100%;text-align:center;margin-top:30px}.overlay p{padding:8px;text-decoration:none;font-size:36px;color:#818181;display:block;transition:.3s}.overlay a:hover,.overlay a:focus{color:#f1f1f1}.overlay .closebtn{position:absolute;top:20px;right:45px;font-size:60px}@media screen and (max-height: 450px){.overlay a{font-size:20px}.overlay .closebtn{font-size:40px;top:15px;right:35px}}\n"], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i10.ProgressbarComponent, selector: "progressbar", inputs: ["max", "animate", "striped", "type", "value"] }, { kind: "component", type: i11.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i12.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i12.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i12.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: JaceModulesBoardComponent, selector: "jace-modules-board", inputs: ["Modules"] }, { kind: "pipe", type: i4$1.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
433
431
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Navbar, decorators: [{
434
432
  type: Component,
435
- args: [{ selector: "navbar", viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav #navbar class=\"nav az-navbar fixed-top\">\r\n <a class=\"navbar-brand\" routerLink=\"/pages/dashboard\">\r\n <img src=\"../assets/img/logo/logo.png\" alt=\"\" class=\"d-md-block d-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-v d-md-block d-none\">{{ applicationVersion }}</div>\r\n\r\n <img src=\"../assets/img/logo/logo_sm.png\" alt=\"\" class=\"d-md-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-sm-v d-md-none\">{{ applicationVersion }}</div>\r\n </a>\r\n\r\n <ul class=\"nav navbar-nav navbar-fillable\">\r\n <li>\r\n <a (click)=\"toggleMenu()\" class=\"collapse-menu-link fa fa-navicon\"></a>\r\n </li>\r\n <li class=\"d-none d-md-block\">\r\n <form role=\"search\" class=\"app-search\">\r\n <input type=\"text\" placeholder=\"Search...\" class=\"form-control\">\r\n <a><i class=\"fa fa-search\" style=\"color: #aaa\"></i></a>\r\n </form>\r\n </li>\r\n\r\n <ul class=\"nav right-section\">\r\n\r\n <!--Dropdown job in esecuzione-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a [class.fa-spin]=\"_state.jobsInProgress > 0\" class=\"fa fa-cog dropdown-toggle app-pointer nav-jobs-icon\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\" class=\"app-link app-no-selection app-inline app-pointer\" (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{ 'Completed' | localize : lc }}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\" [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\" [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!--Dropdown moduli-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"fa fa-th module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle>\r\n </a>\r\n <ul *dropdownMenu class=\"module-board-menu container\" role=\"menu\">\r\n <div class=\"app-relative\">\r\n <jace-modules-board [Modules]=\"Modules\"></jace-modules-board>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!-- USER MENU -->\r\n <div class=\"pull-right user-menu app-no-selection\" dropdown container=\"body\" placement=\"bottom right\" style=\"height:50px;\">\r\n <a class=\"dropdown-toggle user-link app-pointer\" dropdownToggle>\r\n <div class=\"pull-left app-margin-right-10 app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"pull-right d-none d-sm-block\">\r\n <div class=\"app-white-text\">\r\n {{user}} - ({{tenant}})\r\n </div>\r\n <div class=\"app-white-text text-sm-center\">\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 1\">\r\n {{'Ambiente di Produzione' | localize : lc}}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </a>\r\n\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"user-info\">\r\n <div class=\"app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"app-white-text app-margin-top-10 app-margin-bottom-10\">\r\n <div>\r\n {{user}} - {{tenant}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n </li>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'en-US'\" (click)=\"lc.changeLocale('it-IT')\"><i class=\"fa fa-globe\">&nbsp;</i>Switch to Italian Site</a>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'it-IT'\" (click)=\"lc.changeLocale('en-US')\"><i class=\"fa fa-globe\">&nbsp;</i>Passa al Sito in Inglese</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeModule()\"><i class=\"fa fa-th\">&nbsp;</i>{{'Cambia Modulo' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeTenant()\"><i class=\"fa fa-building\">&nbsp;</i>{{'Cambia Tenant' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\"><i class=\"fa fa-user-times\">&nbsp;</i>{{'Ripulisci le Preferenze Utente' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearAll()\"><i class=\"fa fa-recycle \">&nbsp;</i>{{'Ripulisci la Cache' | localize : lc}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"logout()\"><i class=\"fa fa-power-off\">&nbsp;</i>Log out</a>\r\n </ul>\r\n </div>\r\n </ul>\r\n </ul>\r\n</nav>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #ccc}.nav-jobs-menu-header{padding:8px;font-size:14px;background-color:#242d3a;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.nav.az-navbar{height:60px;align-items:center;background-color:#242d3a}.nav.az-navbar .navbar-brand{width:205px;padding-top:0;font-size:0;margin-left:10px}.navbar-nav{flex-direction:row}#lines{border-bottom:7px double;border-top:2px solid;border-color:#ffffffe6;content:\"\";height:3px;width:20px;box-sizing:content-box;cursor:pointer}#lines:hover{opacity:.8}.app-search{position:relative;margin-left:20px}.app-search a{position:absolute;top:3px;right:14px;font-size:16px;color:#ffffff4d}.app-search .form-control{border:1px solid rgba(255,255,255,.1);font-size:11px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:190px}.app-search input{border:1px solid rgba(255,255,255,.1);font-size:12px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:240px}.completer-selected-row{background-color:#0275d8!important;color:#fff!important;width:100%!important}.completer-row{width:100%!important;color:#fff!important}.completer-dropdown{margin-top:2px!important;background-color:#344154f7!important;color:#fff;border-color:#111!important;box-shadow:0 6px 12px #0003}.search-results{left:-85px;top:-2px;z-index:1050;color:#fff;background-color:#344154f7}.search-results .btn-sm{padding:.15rem .25rem;font-size:.5rem}.search-results:before{content:\"\";border:0px}.search-results a{color:#242d3a}.search-results a:hover{color:#fff;background-color:#0275d8;cursor:pointer}.search-results a i{margin-right:8px}.right-section{position:absolute;right:10px;top:10px}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#242d3a}.user-menu .dropdown-menu a:hover{color:#fff;background-color:#242d3a}.user-menu .dropdown-menu a i{margin-right:8px}.user-link{margin-right:6px}.user-link span{color:#fff;margin-left:7px;letter-spacing:.02em}.user-link img{width:40px;border-radius:50%}.user-link:hover,.user-link:focus{text-decoration:none}.user-info{background-color:#242d3a;padding:8px;text-align:center;width:240px;margin-bottom:5px}.user-info img{width:100px;margin-top:5px;border-radius:50%}.user-info p{color:#ebebeb;margin-top:10px}.user-info small{display:block}@media (max-width: 767px){.nav.az-navbar .navbar-brand{width:auto}}.navbar-search{color:#ffffff80!important}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 8px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.collapse-menu-link{color:#fff!important;font-size:20px;padding-top:5px;cursor:pointer}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.overlay{height:100%;width:100%;display:none;padding-left:10%;padding-right:10%;position:fixed;z-index:999999;left:0;top:0;background-color:#000;background-color:#000000e6;overflow-x:hidden;transition:.5s}.overlay-content{position:relative;top:25%;width:100%;text-align:center;margin-top:30px}.overlay p{padding:8px;text-decoration:none;font-size:36px;color:#818181;display:block;transition:.3s}.overlay a:hover,.overlay a:focus{color:#f1f1f1}.overlay .closebtn{position:absolute;top:20px;right:45px;font-size:60px}@media screen and (max-height: 450px){.overlay a{font-size:20px}.overlay .closebtn{font-size:40px;top:15px;right:35px}}\n"] }]
433
+ args: [{ selector: "navbar", viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav #navbar class=\"nav az-navbar fixed-top\">\r\n <a class=\"navbar-brand\" routerLink=\"/pages/dashboard\">\r\n <img src=\"../assets/img/logo/logo.png\" alt=\"\" class=\"d-md-block d-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-v d-md-block d-none\">{{ applicationVersion }}</div>\r\n\r\n <img src=\"../assets/img/logo/logo_sm.png\" alt=\"\" class=\"d-md-none\"\r\n style=\"margin-top: 10px; margin-bottom: -10px;\">\r\n <div class=\"app-fe-sm-v d-md-none\">{{ applicationVersion }}</div>\r\n </a>\r\n\r\n <ul class=\"nav navbar-nav navbar-fillable\">\r\n <li>\r\n <a (click)=\"toggleMenu()\" class=\"collapse-menu-link fa fa-navicon\"></a>\r\n </li>\r\n <li class=\"d-none d-md-block\">\r\n <form role=\"search\" class=\"app-search\">\r\n <input type=\"text\" placeholder=\"Search...\" class=\"form-control\">\r\n <a><i class=\"fa fa-search\" style=\"color: #aaa\"></i></a>\r\n </form>\r\n </li>\r\n\r\n <ul class=\"nav right-section\">\r\n\r\n <!--Dropdown job in esecuzione-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a [class.fa-spin]=\"_state.jobsInProgress > 0\" class=\"fa fa-cog dropdown-toggle app-pointer nav-jobs-icon\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span>{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"pull-right m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n <span class=\"pull-right app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\" class=\"app-link app-no-selection app-inline app-pointer\" (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{ 'Completed' | localize : lc }}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\" [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\" [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!--Dropdown moduli-->\r\n <div class=\"pull-right user-menu app-no-selection app-margin-right-10\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"fa fa-th module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle>\r\n </a>\r\n <ul *dropdownMenu class=\"module-board-menu container\" role=\"menu\">\r\n <div class=\"app-relative\">\r\n <jace-modules-board [Modules]=\"Modules\"></jace-modules-board>\r\n </div>\r\n </ul>\r\n </div>\r\n\r\n <!-- USER MENU -->\r\n <div class=\"pull-right user-menu app-no-selection\" dropdown container=\"body\" placement=\"bottom right\" style=\"height:50px;\">\r\n <a class=\"dropdown-toggle user-link app-pointer\" dropdownToggle>\r\n <div class=\"pull-left app-margin-right-10 app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"pull-right d-none d-sm-block\">\r\n <div class=\"app-white-text\">\r\n {{LastIdentity?.FullName}} - ({{LastIdentity?.TenantName}})\r\n </div>\r\n <div class=\"app-white-text text-sm-center\">\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"myconfig.AppData.ComponentEnvironment == 1\">\r\n {{'Ambiente di Produzione' | localize : lc}}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </a>\r\n\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"user-info\">\r\n <div class=\"app-relative\">\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" style=\"right:62px;\" *ngIf=\"_state.halloweenTime\">\r\n </div>\r\n <div class=\"app-white-text app-margin-top-10 app-margin-bottom-10\">\r\n <div>\r\n {{LastIdentity?.FullName}} - ({{LastIdentity?.TenantName}})\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 2\">\r\n {{'Ambiente di Sviluppo' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 5\">\r\n {{'Ambiente di Staging' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"myconfig.AppData.ComponentEnvironment == 6\">\r\n {{'Ambiente di Staging A' | localize : lc}}\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n </li>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'en-US'\" (click)=\"lc.changeLocale('it-IT')\"><i class=\"fa fa-globe\">&nbsp;</i>Switch to Italian Site</a>\r\n <a class=\"dropdown-item app-pointer\" *ngIf=\"thisLoc == 'it-IT'\" (click)=\"lc.changeLocale('en-US')\"><i class=\"fa fa-globe\">&nbsp;</i>Passa al Sito in Inglese</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeModule()\"><i class=\"fa fa-th\">&nbsp;</i>{{'Cambia Modulo' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"changeTenant()\"><i class=\"fa fa-building\">&nbsp;</i>{{'Cambia Tenant' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\"><i class=\"fa fa-user-times\">&nbsp;</i>{{'Ripulisci le Preferenze Utente' | localize : lc}}</a>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"clearAll()\"><i class=\"fa fa-recycle \">&nbsp;</i>{{'Ripulisci la Cache' | localize : lc}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <a class=\"dropdown-item app-pointer\" (click)=\"logout()\"><i class=\"fa fa-power-off\">&nbsp;</i>Log out</a>\r\n </ul>\r\n </div>\r\n </ul>\r\n </ul>\r\n</nav>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #ccc}.nav-jobs-menu-header{padding:8px;font-size:14px;background-color:#242d3a;margin-top:-5px;margin-left:-5px;margin-right:-5px}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.nav.az-navbar{height:60px;align-items:center;background-color:#242d3a}.nav.az-navbar .navbar-brand{width:205px;padding-top:0;font-size:0;margin-left:10px}.navbar-nav{flex-direction:row}#lines{border-bottom:7px double;border-top:2px solid;border-color:#ffffffe6;content:\"\";height:3px;width:20px;box-sizing:content-box;cursor:pointer}#lines:hover{opacity:.8}.app-search{position:relative;margin-left:20px}.app-search a{position:absolute;top:3px;right:14px;font-size:16px;color:#ffffff4d}.app-search .form-control{border:1px solid rgba(255,255,255,.1);font-size:11px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:190px}.app-search input{border:1px solid rgba(255,255,255,.1);font-size:12px;letter-spacing:.03em;height:30px;color:#fff;padding:7px 40px 7px 20px;background:rgba(255,255,255,.05);box-shadow:none;border-radius:30px;width:240px}.completer-selected-row{background-color:#0275d8!important;color:#fff!important;width:100%!important}.completer-row{width:100%!important;color:#fff!important}.completer-dropdown{margin-top:2px!important;background-color:#344154f7!important;color:#fff;border-color:#111!important;box-shadow:0 6px 12px #0003}.search-results{left:-85px;top:-2px;z-index:1050;color:#fff;background-color:#344154f7}.search-results .btn-sm{padding:.15rem .25rem;font-size:.5rem}.search-results:before{content:\"\";border:0px}.search-results a{color:#242d3a}.search-results a:hover{color:#fff;background-color:#0275d8;cursor:pointer}.search-results a i{margin-right:8px}.right-section{position:absolute;right:10px;top:10px}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#242d3a}.user-menu .dropdown-menu a:hover{color:#fff;background-color:#242d3a}.user-menu .dropdown-menu a i{margin-right:8px}.user-link{margin-right:6px}.user-link span{color:#fff;margin-left:7px;letter-spacing:.02em}.user-link img{width:40px;border-radius:50%}.user-link:hover,.user-link:focus{text-decoration:none}.user-info{background-color:#242d3a;padding:8px;text-align:center;width:240px;margin-bottom:5px}.user-info img{width:100px;margin-top:5px;border-radius:50%}.user-info p{color:#ebebeb;margin-top:10px}.user-info small{display:block}@media (max-width: 767px){.nav.az-navbar .navbar-brand{width:auto}}.navbar-search{color:#ffffff80!important}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 8px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.collapse-menu-link{color:#fff!important;font-size:20px;padding-top:5px;cursor:pointer}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:10px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.overlay{height:100%;width:100%;display:none;padding-left:10%;padding-right:10%;position:fixed;z-index:999999;left:0;top:0;background-color:#000;background-color:#000000e6;overflow-x:hidden;transition:.5s}.overlay-content{position:relative;top:25%;width:100%;text-align:center;margin-top:30px}.overlay p{padding:8px;text-decoration:none;font-size:36px;color:#818181;display:block;transition:.3s}.overlay a:hover,.overlay a:focus{color:#f1f1f1}.overlay .closebtn{position:absolute;top:20px;right:45px;font-size:60px}@media screen and (max-height: 450px){.overlay a{font-size:20px}.overlay .closebtn{font-size:40px;top:15px;right:35px}}\n"] }]
436
434
  }], ctorParameters: function () { return [{ type: i1$1.PreferencesService }, { type: i1$1.CacheService }, { type: i2.BaseMessageService }, { type: i2.NotificationsService }, { type: i3$3.MessageService }, { type: i4$1.LocalizationService }, { type: i3$2.HTTPService }, { type: i0.ChangeDetectorRef }, { type: i4.AppState }, { type: i4.TokenService }, { type: i1.Router }]; }, propDecorators: { navbar: [{
437
435
  type: ViewChild,
438
436
  args: ["navbar", { static: false }]
@@ -748,7 +746,10 @@ class JaceLoginComponent {
748
746
  constructor() {
749
747
  }
750
748
  ngOnInit() {
751
- window.location.href = `${myconfig.AuthUrl}/login/form?client=${myconfig.Client}`;
749
+ if (myconfig.AuthUrl)
750
+ window.location.href = `${myconfig.AuthUrl}/login/form?client=${myconfig.Client}`;
751
+ else
752
+ console.error("myconfig.AuthUrl is not provided");
752
753
  }
753
754
  }
754
755
  JaceLoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JaceLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -833,7 +834,7 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
833
834
  JaceModulesBoardComponent,
834
835
  Navbar,
835
836
  RedirecterComponent,
836
- Sidebar], imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule], exports: [BackTop,
837
+ Sidebar], imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule], exports: [BackTop,
837
838
  Breadcrumb,
838
839
  PageNotFoundComponent,
839
840
  ServerErrorComponent,
@@ -845,11 +846,11 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
845
846
  Navbar,
846
847
  RedirecterComponent,
847
848
  Sidebar] });
848
- ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule] });
849
+ ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule] });
849
850
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, decorators: [{
850
851
  type: NgModule,
851
852
  args: [{
852
- imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule],
853
+ imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule],
853
854
  declarations: [...COMPONENTS],
854
855
  exports: [...COMPONENTS]
855
856
  }]