@esfaenza/core 15.2.234 → 15.2.236

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.
@@ -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\nimport { AppState, TokenService } from \"@esfaenza/core/services\";\r\n\r\n/* N.B: Questo componente non può diventare standalone. È il punto di ingresso per il bootstrap dei moduli di Frontend, che NON si basano sui componenti standalone a meno di rare funzionalità */\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 public snowTrackBy = (_: number, item: any) => item;\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 console.log(\"AppComponent - no account scope, redirecting to login\")\r\n this.router.navigate([\"login\", { fromUrl: this.router.url }]);\r\n }\r\n }\r\n}","<ng-container *ngIf=\"_state.christmasTime\">\r\n <div *ngFor=\"let i of snows; trackBy: snowTrackBy\" 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 { PreferencesModule, PREF_DEBUG_MODE, PreferencesPersistor, LocalStoragePreferencesPersistor, CachePersistor, LocalStorageCachePersistor } from \"@esfaenza/preferences\";\r\nimport { LocalizationModule, LocalizationService, LocalizationMissingPolicy, LOC_DEBUG_MODE, BaseLocalization } 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 { 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\nimport { TAB_DEBUG_MODE } from \"@esfaenza/tabber\";\r\n\r\n// Core\r\nimport { APPErrorHandler, HTTPServiceExtensions, ApplicationPreferencesPersistor, ApplicationCachePersistor, SessionRetriever, OutZoneEventPlugin, TokenService, GlobalSearchService, CompletedJobRedirectionService, MenuFilteringService, UserPreferencesService } from \"@esfaenza/core/services\";\r\nimport { PageNotFoundComponent, ServerErrorComponent, AngularErrorComponent, ExternalPagesComponent, JaceLoginComponent, PagesComponent, RedirecterComponent, ComponentsModule, UserInfosComponent } from \"@esfaenza/core/components\";\r\nimport { ApplicationMenu, EnvOptions, AccountScope, MENU, MENU_LOCALIZATION, REDIRECT_MAP, USE_FAKE_ACCESS_TOKEN, NAVBAR_EXTENSIONS, LOGIN_URL_LEGACY } from \"@esfaenza/core/domain\"\r\nimport { ROUTE, EMBEDDED_ROUTE } from \"@esfaenza/core/domain\"\r\nimport { TemplateCommon } from \"@esfaenza/core/modules\";\r\n\r\n// RxJs\r\nimport { catchError, switchMap, take, 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: EMBEDDED_ROUTE, component: ExternalPagesComponent },\r\n { path: ROUTE, component: PagesComponent },\r\n { path: \"rd\", component: RedirecterComponent },\r\n { path: \"rd/:tenant\", 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\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\", sliderMode: true }),\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 CookieService,\r\n\r\n // Providers applicativi\r\n { provide: ErrorHandler, useClass: APPErrorHandler },\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 declarations: [AppComponent],\r\n imports: [...MODULES]\r\n})\r\nexport class EsFaenzaCoreModule {\r\n static forRoot(config?: EsFaenzaCoreModuleConfig): ModuleWithProviders<EsFaenzaCoreModule> {\r\n if (config.routes) {\r\n // Aggiunta della route di embedding se non dichiarata, lato aggiunta faccio in modo che l'embedding sia disponibile solo da route interne (pages OK, pages_ext NON OK)\r\n if (!config.routes.find(t => t.path.startsWith(\"embed\")))\r\n config.routes = [...config.routes, { path: \"embed/:module\", loadChildren: () => import('@esfaenza/core/modules').then(m => m.EmbeddingModule) }]\r\n\r\n baseAppRoutes[0].redirectTo = `pages/${config.emptyRouteRedirect || 'dashboard'}`;\r\n baseAppRoutes.filter(t => [\"pages\", \"pages_ext\"].includes(t.path)).forEach(path => { \r\n path.children = [\r\n { path: \"profile\", component: UserInfosComponent, data: { InternalNavigation: true, title: \"profilo\" } }, \r\n ...config.routes.filter(r => !path.path.includes(\"pages_ext\") || !r.path.startsWith(\"embed\"))\r\n ];\r\n });\r\n }\r\n config.debugMode = (!isDevMode() && !config.forceDebugModeForProdBuilds) ? DebugFlags.None : (config.debugMode || DebugFlags.All);\r\n\r\n let mergedAppInitializer = (http: HTTPService, bts: TokenService, aac: AccessControlService, loc: BaseLocalization) => {\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 locale: loc.Locale.pipe(take(1), catchError(_ => of('it-IT'))),\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, locale: string }) => {\r\n myconfig = res.appConfig;\r\n // L'account scope lo prendo dalla Query a backend solo se non uso il Fake token\r\n if (!bts.USE_FAKE_ACCESS_TOKEN)\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, BaseLocalization], 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: TAB_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Tabber) == DebugFlags.Tabber : false },\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: LOGIN_URL_LEGACY, useValue: config.legacyLogin !== null && config.legacyLogin !== undefined ? config.legacyLogin : false },\r\n { provide: NAVBAR_EXTENSIONS, useValue: config.navbarExtensions ? config.navbarExtensions : [] },\r\n { provide: BaseAdapter, useClass: config?.chartsAdapter || BaseAdapter },\r\n { provide: BaseMessageService, useClass: config?.messageService || BaseMessageService },\r\n { provide: GlobalSearchService, useClass: config?.globalSearchService || GlobalSearchService },\r\n { provide: CompletedJobRedirectionService, useClass: config?.completedJobRedirectionService || CompletedJobRedirectionService },\r\n { provide: MenuFilteringService, useClass: config?.menuFilteringService || MenuFilteringService },\r\n { provide: UserPreferencesService, useClass: config?.userPreferencesProvider || UserPreferencesService },\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 { provide: PreferencesPersistor, useClass: config.fakeAccessToken ? LocalStoragePreferencesPersistor : ApplicationPreferencesPersistor },\r\n { provide: CachePersistor, useClass: config.fakeAccessToken ? LocalStorageCachePersistor : ApplicationCachePersistor }\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 /* 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<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 /* Servizio per la search globale del modulo */\r\n globalSearchService?: Type<GlobalSearchService>;\r\n /* Servizio per filtrare le voci di menù */\r\n menuFilteringService?: Type<MenuFilteringService>;\r\n /* Servizio di ridirezione per job completati */\r\n completedJobRedirectionService?: Type<CompletedJobRedirectionService>;\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, locale: string }>;\r\n /* Lista dei componenti con cui espandere la navbar */\r\n navbarExtensions?: Type<any>[];\r\n /* Servizio di recupero/modifica preferenze utente */\r\n userPreferencesProvider?: Type<UserPreferencesService>;\r\n /* identifica se utilizzare la versione vecchia dell'url di auth (${myconfig.AUTH_URL}/login/form?client=${myconfig.CLIENT_NAME}) invece che la nuova (${myconfig.AUTH_URL}/login;client=${myconfig.CLIENT_NAME}) */\r\n legacyLogin?: boolean;\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 Tabber = 1 << 7,\r\n All = ~(~0 << 8)\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","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\nimport { AppState, TokenService } from \"@esfaenza/core/services\";\r\n\r\n/* N.B: Questo componente non può diventare standalone. È il punto di ingresso per il bootstrap dei moduli di Frontend, che NON si basano sui componenti standalone a meno di rare funzionalità */\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 public snowTrackBy = (_: number, item: any) => item;\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 console.log(\"AppComponent - no account scope, redirecting to login\")\r\n this.router.navigate([\"login\", { fromUrl: this.router.url }]);\r\n }\r\n }\r\n}","<ng-container *ngIf=\"_state.christmasTime\">\r\n <div *ngFor=\"let i of snows; trackBy: snowTrackBy\" 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 { PreferencesModule, PREF_DEBUG_MODE, PreferencesPersistor, LocalStoragePreferencesPersistor, CachePersistor, LocalStorageCachePersistor } from \"@esfaenza/preferences\";\r\nimport { LocalizationModule, LocalizationService, LocalizationMissingPolicy, LOC_DEBUG_MODE, BaseLocalization } 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 { 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\nimport { TAB_DEBUG_MODE } from \"@esfaenza/tabber\";\r\n\r\n// Core\r\nimport { APPErrorHandler, HTTPServiceExtensions, ApplicationPreferencesPersistor, ApplicationCachePersistor, SessionRetriever, OutZoneEventPlugin, TokenService, GlobalSearchService, CompletedJobRedirectionService, MenuFilteringService, UserPreferencesService } from \"@esfaenza/core/services\";\r\nimport { PageNotFoundComponent, ServerErrorComponent, AngularErrorComponent, ExternalPagesComponent, JaceLoginComponent, PagesComponent, RedirecterComponent, ComponentsModule, UserInfosComponent } from \"@esfaenza/core/components\";\r\nimport { ApplicationMenu, EnvOptions, AccountScope, MENU, MENU_LOCALIZATION, REDIRECT_MAP, USE_FAKE_ACCESS_TOKEN, NAVBAR_EXTENSIONS, LOGIN_URL_LEGACY } from \"@esfaenza/core/domain\"\r\nimport { ROUTE, EMBEDDED_ROUTE } from \"@esfaenza/core/domain\"\r\nimport { TemplateCommon } from \"@esfaenza/core/modules\";\r\n\r\n// RxJs\r\nimport { catchError, switchMap, take, 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: EMBEDDED_ROUTE, component: ExternalPagesComponent },\r\n { path: ROUTE, component: PagesComponent },\r\n { path: \"rd\", component: RedirecterComponent },\r\n { path: \"rd/:tenant\", 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\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\", sliderMode: true }),\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 CookieService,\r\n\r\n // Providers applicativi\r\n { provide: ErrorHandler, useClass: APPErrorHandler },\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 declarations: [AppComponent],\r\n imports: [...MODULES]\r\n})\r\nexport class EsFaenzaCoreModule {\r\n static forRoot(config?: EsFaenzaCoreModuleConfig): ModuleWithProviders<EsFaenzaCoreModule> {\r\n if (config.routes) {\r\n // Aggiunta della route di embedding se non dichiarata, lato aggiunta faccio in modo che l'embedding sia disponibile solo da route interne (pages OK, pages_ext NON OK)\r\n if (!config.routes.find(t => t.path.startsWith(\"embed\")))\r\n config.routes = [...config.routes, { path: \"embed/:module\", loadChildren: () => import('@esfaenza/core/modules').then(m => m.EmbeddingModule) }]\r\n\r\n baseAppRoutes[0].redirectTo = `pages/${config.emptyRouteRedirect || 'dashboard'}`;\r\n baseAppRoutes.filter(t => [\"pages\", \"pages_ext\"].includes(t.path)).forEach(path => { \r\n path.children = [\r\n { path: \"profile\", component: UserInfosComponent, data: { InternalNavigation: true, title: \"profilo\" } }, \r\n ...config.routes.filter(r => !path.path.includes(\"pages_ext\") || !r.path.startsWith(\"embed\"))\r\n ];\r\n });\r\n }\r\n config.debugMode = (!isDevMode() && !config.forceDebugModeForProdBuilds) ? DebugFlags.None : (config.debugMode || DebugFlags.All);\r\n\r\n let mergedAppInitializer = (http: HTTPService, bts: TokenService, aac: AccessControlService, loc: BaseLocalization) => {\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 locale: loc.Locale.pipe(take(1), catchError(_ => of('it-IT'))),\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, locale: string }) => {\r\n myconfig = res.appConfig;\r\n // L'account scope lo prendo dalla Query a backend solo se non uso il Fake token\r\n if (!bts.USE_FAKE_ACCESS_TOKEN)\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, BaseLocalization], 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: TAB_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Tabber) == DebugFlags.Tabber : false },\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: LOGIN_URL_LEGACY, useValue: config.legacyLogin !== null && config.legacyLogin !== undefined ? config.legacyLogin : false },\r\n { provide: NAVBAR_EXTENSIONS, useValue: config.navbarExtensions ? config.navbarExtensions : [] },\r\n { provide: BaseAdapter, useClass: config?.chartsAdapter || BaseAdapter },\r\n { provide: BaseMessageService, useClass: config?.messageService || BaseMessageService },\r\n { provide: GlobalSearchService, useClass: config?.globalSearchService || GlobalSearchService },\r\n { provide: CompletedJobRedirectionService, useClass: config?.completedJobRedirectionService || CompletedJobRedirectionService },\r\n { provide: MenuFilteringService, useClass: config?.menuFilteringService || MenuFilteringService },\r\n { provide: UserPreferencesService, useClass: config?.userPreferencesProvider || UserPreferencesService },\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 { provide: PreferencesPersistor, useClass: config.fakeAccessToken ? LocalStoragePreferencesPersistor : ApplicationPreferencesPersistor },\r\n { provide: CachePersistor, useClass: config.fakeAccessToken ? LocalStorageCachePersistor : ApplicationCachePersistor }\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 /* 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<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 /* Servizio per la search globale del modulo */\r\n globalSearchService?: Type<GlobalSearchService>;\r\n /* Servizio per filtrare le voci di menù */\r\n menuFilteringService?: Type<MenuFilteringService>;\r\n /* Servizio di ridirezione per job completati */\r\n completedJobRedirectionService?: Type<CompletedJobRedirectionService>;\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, locale: string }>;\r\n /* Lista dei componenti con cui espandere la navbar */\r\n navbarExtensions?: Type<any>[];\r\n /* Servizio di recupero/modifica preferenze utente */\r\n userPreferencesProvider?: Type<UserPreferencesService>;\r\n /* identifica se utilizzare la versione vecchia dell'url di auth (${myconfig.AUTH_URL}/login/form?client=${myconfig.CLIENT_NAME}) invece che la nuova (${myconfig.AUTH_URL}/login;client=${myconfig.CLIENT_NAME}) */\r\n legacyLogin?: boolean;\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 Tabber = 1 << 7,\r\n All = ~(~0 << 8)\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3"],"mappings":"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"}
@@ -14,7 +14,7 @@ import { AppEmbeddingExtensions, ExtensionsModule } from '@esfaenza/extensions';
14
14
  import * as i2$1 from '@esfaenza/httpservice';
15
15
  import * as i1$2 from '@esfaenza/localizations';
16
16
  import { LocalizationService, LocalizationModule } from '@esfaenza/localizations';
17
- import { MENU_LOCALIZATION, MENU, NAVBAR_EXTENSIONS, LOGIN_URL_LEGACY, REDIRECT_MAP, EMBEDDED_ROUTE, ROUTE, UpdatePasswordDto } from '@esfaenza/core/domain';
17
+ import { MENU_LOCALIZATION, MENU, ActiveModuleView, NAVBAR_EXTENSIONS, LOGIN_URL_LEGACY, USE_FAKE_ACCESS_TOKEN, REDIRECT_MAP, EMBEDDED_ROUTE, ROUTE, UpdatePasswordDto } from '@esfaenza/core/domain';
18
18
  import { SlimScroll, ComponentHostDirective, EsModalDirective, Draggable, DirectivesModule } from '@esfaenza/core/directives';
19
19
  import * as i7 from '@esfaenza/es-table';
20
20
  import { EsTableColumnsDefinition, EsTableModule } from '@esfaenza/es-table';
@@ -627,7 +627,7 @@ const GET_Cache_ClearAllCaches = "/api/Cache/ClearAllCaches";
627
627
  const GET_Cache_ClearAllClientsCaches = "/api/Cache/ClearAllClientsCaches";
628
628
  const GET_Cache_ClearAllClientsPreferences = "/api/Cache/ClearAllClientsPreferences";
629
629
  class Navbar extends ReactiveComponent {
630
- constructor(prefsService, cacheService, MessageDef, notifications, msgExts, lc, http, cdr, _state, sr, router, cjrService, extensionComponents, loginUrlLegacy) {
630
+ constructor(prefsService, cacheService, MessageDef, notifications, msgExts, lc, http, cdr, _state, sr, router, cjrService, extensionComponents, loginUrlLegacy, fakeToken) {
631
631
  super();
632
632
  this.prefsService = prefsService;
633
633
  this.cacheService = cacheService;
@@ -643,6 +643,7 @@ class Navbar extends ReactiveComponent {
643
643
  this.cjrService = cjrService;
644
644
  this.extensionComponents = extensionComponents;
645
645
  this.loginUrlLegacy = loginUrlLegacy;
646
+ this.fakeToken = fakeToken;
646
647
  this.applicationVersion = myconfig.AppData.ComponentVersion;
647
648
  this.applicationEnvironment = myconfig.AppData.ComponentEnvironment;
648
649
  this.isMenuCollapsed = false;
@@ -695,6 +696,11 @@ class Navbar extends ReactiveComponent {
695
696
  this.CurrentIdentity = id;
696
697
  }
697
698
  getActiveJaceModules() {
699
+ if (this.fakeToken) {
700
+ this.Modules = [new ActiveModuleView("Modulo Esempio 1"), new ActiveModuleView("Modulo Esempio 2"), new ActiveModuleView("Modulo Esempio 3")];
701
+ this._state.Modules = this.Modules;
702
+ return;
703
+ }
698
704
  this.http.get(GET_Jace_GetActiveJaceModules).subscribe(res => {
699
705
  this.Modules = res;
700
706
  this._state.Modules = this.Modules;
@@ -783,17 +789,20 @@ class Navbar extends ReactiveComponent {
783
789
  this.cjrService.redirect(job);
784
790
  }
785
791
  }
786
- Navbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Navbar, deps: [{ token: i1$3.PreferencesService }, { token: i1$3.CacheService }, { token: i2$2.BaseMessageService }, { token: i2$2.NotificationsService }, { token: i4.MessageService }, { token: i1$2.LocalizationService }, { token: i2$1.HTTPService }, { token: i0.ChangeDetectorRef }, { token: i1.AppState }, { token: i1.TokenService }, { token: i1$1.Router }, { token: i1.CompletedJobRedirectionService }, { token: NAVBAR_EXTENSIONS }, { token: LOGIN_URL_LEGACY }], target: i0.ɵɵFactoryTarget.Component });
792
+ Navbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Navbar, deps: [{ token: i1$3.PreferencesService }, { token: i1$3.CacheService }, { token: i2$2.BaseMessageService }, { token: i2$2.NotificationsService }, { token: i4.MessageService }, { token: i1$2.LocalizationService }, { token: i2$1.HTTPService }, { token: i0.ChangeDetectorRef }, { token: i1.AppState }, { token: i1.TokenService }, { token: i1$1.Router }, { token: i1.CompletedJobRedirectionService }, { token: NAVBAR_EXTENSIONS }, { token: LOGIN_URL_LEGACY }, { token: USE_FAKE_ACCESS_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
787
793
  Navbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: Navbar, isStandalone: true, selector: "navbar", viewQueries: [{ propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<nav #navbar class=\"nav enuma-navbar\">\r\n <div class=\"d-flex\" style=\"width: 100%;\">\r\n <!-- Collapse men\u00F9 a sinistra -->\r\n <div><a (click)=\"toggleMenu()\" class=\"far fa-bars nav-icon app-padding-left-15\" style=\"padding-top: 8px;\"></a></div>\r\n\r\n <!-- Breadcrumb -->\r\n <div class=\"app-padding-left-15\" style=\"padding-top: 8px;\"><ng-content></ng-content></div>\r\n\r\n <div style=\"margin-left: auto; display: flex;\">\r\n <!--Notifications (Jobs)-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <div *ngIf=\"_state.jobsInProgress > 0\" class=\"fa-beat-fade nav-jobs-icon-notification\"></div>\r\n <a [class.fa-shake]=\"_state.jobsInProgress > 0\" class=\"far fa-bell module-nav-menu-link dropdown-toggle app-pointer\" style=\"--fa-animation-duration: 3s; --fa-animation-iteration-count: 1;\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span style=\"margin-right: auto;\">{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n <span class=\"m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></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 <!--Other Modules-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"far fa-cubes module-nav-menu-link dropdown-toggle app-pointer\" (click)=\"goToDashboard()\"></a>\r\n </div>\r\n\r\n <!--Quick Actions-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"far fa-folder-gear module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"d-flex dropdown-title-bg\">\r\n <div class=\"dropdown-title\">Gestisci Cache Utente</div>\r\n </li>\r\n <li class=\"dropdown-top\"></li>\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\">\r\n <i class=\"far fa-user-times app-margin-right-10\"></i>{{'Ripulisci le Preferenze Utente' | localize : lc}}\r\n </li>\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearAll()\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci la Cache' | localize : lc}}\r\n </li>\r\n <li *ac=\"'R:Jace Admin'\" class=\"dropdown-item app-pointer\" (click)=\"forceClearConnectedClientAssets('cache')\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci la Cache di tutti' | localize : lc}}\r\n </li>\r\n <li *ac=\"'R:Jace Admin'\" class=\"dropdown-item app-pointer\" (click)=\"forceClearConnectedClientAssets('preferences')\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci le Preferenze di tutti' | localize : lc}}\r\n </li>\r\n <li class=\"dropdown-bot\"></li>\r\n </ul>\r\n </div>\r\n \r\n <!--Punti di estensione per Calendar, Chatroom e chi pi\u00F9 ne ha pi\u00F9 ne metta...-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" *ngFor=\"let comp of extensionComponents\">\r\n <ng-template [componentHost]=\"comp\"></ng-template>\r\n </div>\r\n </div>\r\n\r\n <!--Ambiente-->\r\n <div>\r\n <div class=\"nav-environment app-no-selection\">\r\n <ng-container *ngIf=\"['Dev', 2].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevA', 3].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevB', 4].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo B' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Stage', 5].includes(applicationEnvironment)\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['StageA', 6].includes(applicationEnvironment)\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Prod', 1].includes(applicationEnvironment)\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n </div>\r\n </div>\r\n\r\n <!--Debugging ruoli e permessi-->\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- Template per l'icona dell'utente -->\r\n<ng-template #userIcon let-context>\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context?.right || undefined\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context?.right || undefined\" *ngIf=\"_state.halloweenTime\">\r\n</ng-template>\r\n\r\n<!-- Template per le informaizoni di debug: Ambiente, ruoli, permessi ecc -->\r\n<ng-template #debugInfos>\r\n <div>{{CurrentIdentity?.FullName}} - ({{CurrentIdentity?.TenantName}})</div>\r\n <div hidden>{{applicationEnvironment}}</div>\r\n <div class=\"text-sm-center\">\r\n <ng-container *ngIf=\"['Dev', 2].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevA', 3].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevB', 4].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo B' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Stage', 5].includes(applicationEnvironment)\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['StageA', 6].includes(applicationEnvironment)\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Prod', 1].includes(applicationEnvironment)\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n</ng-template>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-icon-notification{top:7px;left:-7px;position:absolute;background-color:#0056b3;border-radius:50%;height:8px;width:8px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #3e4d64}.nav-jobs-menu-header{background-color:#344154;padding:8px;font-size:14px;margin-top:-5px;margin-left:-5px;margin-right:-5px;display:flex}.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}.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:#024a88}.user-menu .dropdown-menu a:hover{color:#fff8a9;background-color:red}.user-menu .dropdown-menu a i{margin-right:8px}.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 11px!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}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:8px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.dropdown-title-bg{background-color:#344154;border:1px solid #3e4d64;border-bottom:0px}.dropdown-title{color:#fff;margin:auto;padding:8px 0;font-size:18px}.dropdown-menu{background-color:#fff;border:none}.dropdown-divider{border-top:1px solid #eeeeee}.dropdown-item{background-color:#fff;color:#0056b3}.dropdown-item:hover{color:#004a9a!important;background-color:#eee}.dropdown-top{background-color:#fff;height:0;margin-bottom:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.dropdown-bot{background-color:#fff;height:0;margin-top:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.enuma-navbar{height:60px;align-items:center;background-color:#2a3544;box-shadow:0 8px 6px -6px #1313130a,0 12px 16px -16px #1313130d;margin-bottom:-1px;border-bottom:1px solid #191E29}.nav-environment{color:#fff;background-color:#3e4d64;text-align:center;padding:5px 10px;margin:2px 10px 0 0}.nav-icon{color:#fff!important;font-size:20px;cursor:pointer}.nav-right-section{position:absolute;right:10px;top:10px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i9.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i9.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i9.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ProgressbarModule }, { kind: "component", type: i11.ProgressbarComponent, selector: "progressbar", inputs: ["max", "animate", "striped", "type", "value"] }, { kind: "directive", type: ComponentHostDirective, selector: "[componentHost]", inputs: ["componentHost", "Inputs"] }, { kind: "ngmodule", type: EsTableModule }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i1$2.LocalizePipe, name: "localize" }, { kind: "ngmodule", type: AccessControlModule }, { kind: "directive", type: i5.AccessControlDirective, selector: "[ac]", inputs: ["ac", "acAbsolute"] }], viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
788
794
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Navbar, decorators: [{
789
795
  type: Component,
790
- args: [{ selector: "navbar", viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RouterLink, FormsModule, BsDropdownModule, MatSlideToggleModule, NgIf, NgFor, ProgressbarModule, ComponentHostDirective, NgTemplateOutlet, EsTableModule, LocalizationModule, AccessControlModule], template: "<nav #navbar class=\"nav enuma-navbar\">\r\n <div class=\"d-flex\" style=\"width: 100%;\">\r\n <!-- Collapse men\u00F9 a sinistra -->\r\n <div><a (click)=\"toggleMenu()\" class=\"far fa-bars nav-icon app-padding-left-15\" style=\"padding-top: 8px;\"></a></div>\r\n\r\n <!-- Breadcrumb -->\r\n <div class=\"app-padding-left-15\" style=\"padding-top: 8px;\"><ng-content></ng-content></div>\r\n\r\n <div style=\"margin-left: auto; display: flex;\">\r\n <!--Notifications (Jobs)-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <div *ngIf=\"_state.jobsInProgress > 0\" class=\"fa-beat-fade nav-jobs-icon-notification\"></div>\r\n <a [class.fa-shake]=\"_state.jobsInProgress > 0\" class=\"far fa-bell module-nav-menu-link dropdown-toggle app-pointer\" style=\"--fa-animation-duration: 3s; --fa-animation-iteration-count: 1;\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span style=\"margin-right: auto;\">{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n <span class=\"m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></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 <!--Other Modules-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"far fa-cubes module-nav-menu-link dropdown-toggle app-pointer\" (click)=\"goToDashboard()\"></a>\r\n </div>\r\n\r\n <!--Quick Actions-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"far fa-folder-gear module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"d-flex dropdown-title-bg\">\r\n <div class=\"dropdown-title\">Gestisci Cache Utente</div>\r\n </li>\r\n <li class=\"dropdown-top\"></li>\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\">\r\n <i class=\"far fa-user-times app-margin-right-10\"></i>{{'Ripulisci le Preferenze Utente' | localize : lc}}\r\n </li>\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearAll()\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci la Cache' | localize : lc}}\r\n </li>\r\n <li *ac=\"'R:Jace Admin'\" class=\"dropdown-item app-pointer\" (click)=\"forceClearConnectedClientAssets('cache')\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci la Cache di tutti' | localize : lc}}\r\n </li>\r\n <li *ac=\"'R:Jace Admin'\" class=\"dropdown-item app-pointer\" (click)=\"forceClearConnectedClientAssets('preferences')\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci le Preferenze di tutti' | localize : lc}}\r\n </li>\r\n <li class=\"dropdown-bot\"></li>\r\n </ul>\r\n </div>\r\n \r\n <!--Punti di estensione per Calendar, Chatroom e chi pi\u00F9 ne ha pi\u00F9 ne metta...-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" *ngFor=\"let comp of extensionComponents\">\r\n <ng-template [componentHost]=\"comp\"></ng-template>\r\n </div>\r\n </div>\r\n\r\n <!--Ambiente-->\r\n <div>\r\n <div class=\"nav-environment app-no-selection\">\r\n <ng-container *ngIf=\"['Dev', 2].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevA', 3].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevB', 4].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo B' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Stage', 5].includes(applicationEnvironment)\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['StageA', 6].includes(applicationEnvironment)\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Prod', 1].includes(applicationEnvironment)\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n </div>\r\n </div>\r\n\r\n <!--Debugging ruoli e permessi-->\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- Template per l'icona dell'utente -->\r\n<ng-template #userIcon let-context>\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context?.right || undefined\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context?.right || undefined\" *ngIf=\"_state.halloweenTime\">\r\n</ng-template>\r\n\r\n<!-- Template per le informaizoni di debug: Ambiente, ruoli, permessi ecc -->\r\n<ng-template #debugInfos>\r\n <div>{{CurrentIdentity?.FullName}} - ({{CurrentIdentity?.TenantName}})</div>\r\n <div hidden>{{applicationEnvironment}}</div>\r\n <div class=\"text-sm-center\">\r\n <ng-container *ngIf=\"['Dev', 2].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevA', 3].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevB', 4].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo B' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Stage', 5].includes(applicationEnvironment)\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['StageA', 6].includes(applicationEnvironment)\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Prod', 1].includes(applicationEnvironment)\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n</ng-template>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-icon-notification{top:7px;left:-7px;position:absolute;background-color:#0056b3;border-radius:50%;height:8px;width:8px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #3e4d64}.nav-jobs-menu-header{background-color:#344154;padding:8px;font-size:14px;margin-top:-5px;margin-left:-5px;margin-right:-5px;display:flex}.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}.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:#024a88}.user-menu .dropdown-menu a:hover{color:#fff8a9;background-color:red}.user-menu .dropdown-menu a i{margin-right:8px}.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 11px!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}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:8px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.dropdown-title-bg{background-color:#344154;border:1px solid #3e4d64;border-bottom:0px}.dropdown-title{color:#fff;margin:auto;padding:8px 0;font-size:18px}.dropdown-menu{background-color:#fff;border:none}.dropdown-divider{border-top:1px solid #eeeeee}.dropdown-item{background-color:#fff;color:#0056b3}.dropdown-item:hover{color:#004a9a!important;background-color:#eee}.dropdown-top{background-color:#fff;height:0;margin-bottom:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.dropdown-bot{background-color:#fff;height:0;margin-top:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.enuma-navbar{height:60px;align-items:center;background-color:#2a3544;box-shadow:0 8px 6px -6px #1313130a,0 12px 16px -16px #1313130d;margin-bottom:-1px;border-bottom:1px solid #191E29}.nav-environment{color:#fff;background-color:#3e4d64;text-align:center;padding:5px 10px;margin:2px 10px 0 0}.nav-icon{color:#fff!important;font-size:20px;cursor:pointer}.nav-right-section{position:absolute;right:10px;top:10px}\n"] }]
796
+ args: [{ selector: "navbar", viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule, BsDropdownModule, MatSlideToggleModule, NgIf, NgFor, ProgressbarModule, ComponentHostDirective, EsTableModule, LocalizationModule, AccessControlModule], template: "<nav #navbar class=\"nav enuma-navbar\">\r\n <div class=\"d-flex\" style=\"width: 100%;\">\r\n <!-- Collapse men\u00F9 a sinistra -->\r\n <div><a (click)=\"toggleMenu()\" class=\"far fa-bars nav-icon app-padding-left-15\" style=\"padding-top: 8px;\"></a></div>\r\n\r\n <!-- Breadcrumb -->\r\n <div class=\"app-padding-left-15\" style=\"padding-top: 8px;\"><ng-content></ng-content></div>\r\n\r\n <div style=\"margin-left: auto; display: flex;\">\r\n <!--Notifications (Jobs)-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <div *ngIf=\"_state.jobsInProgress > 0\" class=\"fa-beat-fade nav-jobs-icon-notification\"></div>\r\n <a [class.fa-shake]=\"_state.jobsInProgress > 0\" class=\"far fa-bell module-nav-menu-link dropdown-toggle app-pointer\" style=\"--fa-animation-duration: 3s; --fa-animation-iteration-count: 1;\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span style=\"margin-right: auto;\">{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n <span class=\"m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></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 <!--Other Modules-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"far fa-cubes module-nav-menu-link dropdown-toggle app-pointer\" (click)=\"goToDashboard()\"></a>\r\n </div>\r\n\r\n <!--Quick Actions-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"far fa-folder-gear module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"d-flex dropdown-title-bg\">\r\n <div class=\"dropdown-title\">Gestisci Cache Utente</div>\r\n </li>\r\n <li class=\"dropdown-top\"></li>\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\">\r\n <i class=\"far fa-user-times app-margin-right-10\"></i>{{'Ripulisci le Preferenze Utente' | localize : lc}}\r\n </li>\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearAll()\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci la Cache' | localize : lc}}\r\n </li>\r\n <li *ac=\"'R:Jace Admin'\" class=\"dropdown-item app-pointer\" (click)=\"forceClearConnectedClientAssets('cache')\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci la Cache di tutti' | localize : lc}}\r\n </li>\r\n <li *ac=\"'R:Jace Admin'\" class=\"dropdown-item app-pointer\" (click)=\"forceClearConnectedClientAssets('preferences')\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci le Preferenze di tutti' | localize : lc}}\r\n </li>\r\n <li class=\"dropdown-bot\"></li>\r\n </ul>\r\n </div>\r\n \r\n <!--Punti di estensione per Calendar, Chatroom e chi pi\u00F9 ne ha pi\u00F9 ne metta...-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" *ngFor=\"let comp of extensionComponents\">\r\n <ng-template [componentHost]=\"comp\"></ng-template>\r\n </div>\r\n </div>\r\n\r\n <!--Ambiente-->\r\n <div>\r\n <div class=\"nav-environment app-no-selection\">\r\n <ng-container *ngIf=\"['Dev', 2].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevA', 3].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevB', 4].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo B' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Stage', 5].includes(applicationEnvironment)\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['StageA', 6].includes(applicationEnvironment)\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Prod', 1].includes(applicationEnvironment)\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n </div>\r\n </div>\r\n\r\n <!--Debugging ruoli e permessi-->\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- Template per l'icona dell'utente -->\r\n<ng-template #userIcon let-context>\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context?.right || undefined\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context?.right || undefined\" *ngIf=\"_state.halloweenTime\">\r\n</ng-template>\r\n\r\n<!-- Template per le informaizoni di debug: Ambiente, ruoli, permessi ecc -->\r\n<ng-template #debugInfos>\r\n <div>{{CurrentIdentity?.FullName}} - ({{CurrentIdentity?.TenantName}})</div>\r\n <div hidden>{{applicationEnvironment}}</div>\r\n <div class=\"text-sm-center\">\r\n <ng-container *ngIf=\"['Dev', 2].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevA', 3].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevB', 4].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo B' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Stage', 5].includes(applicationEnvironment)\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['StageA', 6].includes(applicationEnvironment)\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Prod', 1].includes(applicationEnvironment)\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n</ng-template>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-icon-notification{top:7px;left:-7px;position:absolute;background-color:#0056b3;border-radius:50%;height:8px;width:8px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #3e4d64}.nav-jobs-menu-header{background-color:#344154;padding:8px;font-size:14px;margin-top:-5px;margin-left:-5px;margin-right:-5px;display:flex}.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}.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:#024a88}.user-menu .dropdown-menu a:hover{color:#fff8a9;background-color:red}.user-menu .dropdown-menu a i{margin-right:8px}.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 11px!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}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:8px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.dropdown-title-bg{background-color:#344154;border:1px solid #3e4d64;border-bottom:0px}.dropdown-title{color:#fff;margin:auto;padding:8px 0;font-size:18px}.dropdown-menu{background-color:#fff;border:none}.dropdown-divider{border-top:1px solid #eeeeee}.dropdown-item{background-color:#fff;color:#0056b3}.dropdown-item:hover{color:#004a9a!important;background-color:#eee}.dropdown-top{background-color:#fff;height:0;margin-bottom:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.dropdown-bot{background-color:#fff;height:0;margin-top:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.enuma-navbar{height:60px;align-items:center;background-color:#2a3544;box-shadow:0 8px 6px -6px #1313130a,0 12px 16px -16px #1313130d;margin-bottom:-1px;border-bottom:1px solid #191E29}.nav-environment{color:#fff;background-color:#3e4d64;text-align:center;padding:5px 10px;margin:2px 10px 0 0}.nav-icon{color:#fff!important;font-size:20px;cursor:pointer}.nav-right-section{position:absolute;right:10px;top:10px}\n"] }]
791
797
  }], ctorParameters: function () { return [{ type: i1$3.PreferencesService }, { type: i1$3.CacheService }, { type: i2$2.BaseMessageService }, { type: i2$2.NotificationsService }, { type: i4.MessageService }, { type: i1$2.LocalizationService }, { type: i2$1.HTTPService }, { type: i0.ChangeDetectorRef }, { type: i1.AppState }, { type: i1.TokenService }, { type: i1$1.Router }, { type: i1.CompletedJobRedirectionService }, { type: undefined, decorators: [{
792
798
  type: Inject,
793
799
  args: [NAVBAR_EXTENSIONS]
794
800
  }] }, { type: undefined, decorators: [{
795
801
  type: Inject,
796
802
  args: [LOGIN_URL_LEGACY]
803
+ }] }, { type: undefined, decorators: [{
804
+ type: Inject,
805
+ args: [USE_FAKE_ACCESS_TOKEN]
797
806
  }] }]; }, propDecorators: { navbar: [{
798
807
  type: ViewChild,
799
808
  args: ["navbar", { static: false }]