@open-rlb/ng-app 3.0.23 → 3.0.24

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":"open-rlb-ng-app.mjs","sources":["../../../../projects/rlb/ng-app/src/lib/configuration.ts","../../../../projects/rlb/ng-app/src/lib/auth/providers/token-cookies.service.ts","../../../../projects/rlb/ng-app/src/lib/services/utils/app-storage.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/providers/token-session.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/providers/token-store.service.ts","../../../../projects/rlb/ng-app/src/lib/services/apps/app-logger.service.ts","../../../../projects/rlb/ng-app/src/lib/store/app-context/app-context.actions.ts","../../../../projects/rlb/ng-app/src/lib/store/app-context/app-context.model.ts","../../../../projects/rlb/ng-app/src/lib/store/auth/auth.actions.ts","../../../../projects/rlb/ng-app/src/lib/store/auth/auth-feature.service.ts","../../../../projects/rlb/ng-app/src/lib/store/auth/auth.model.ts","../../../../projects/rlb/ng-app/src/lib/store/navbar/navbar.actions.ts","../../../../projects/rlb/ng-app/src/lib/store/navbar/navbar.model.ts","../../../../projects/rlb/ng-app/src/lib/store/sidebar/sidebar.actions.ts","../../../../projects/rlb/ng-app/src/lib/store/sidebar/sidebar.model.ts","../../../../projects/rlb/ng-app/src/lib/services/abstraction/abstract-support.service.ts","../../../../projects/rlb/ng-app/src/lib/pages/default-routes.config.ts","../../../../projects/rlb/ng-app/src/lib/services/apps/apps.service.ts","../../../../projects/rlb/ng-app/src/lib/services/i18n/language.service.ts","../../../../projects/rlb/ng-app/src/lib/services/apps/app-breadcrumb.service.ts","../../../../projects/rlb/ng-app/src/lib/services/cache/local-cache.service.ts","../../../../projects/rlb/ng-app/src/lib/services/cms/md.service.ts","../../../../projects/rlb/ng-app/src/lib/services/cms/strapi.service.ts","../../../../projects/rlb/ng-app/src/lib/services/errors/error-management.service.ts","../../../../projects/rlb/ng-app/src/lib/services/i18n/rlb-translate-adapter.service.ts","../../../../projects/rlb/ng-app/src/lib/services/i18n/i18n.provider.ts","../../../../projects/rlb/ng-app/src/lib/services/i18n/translate-browser.loader.ts","../../../../projects/rlb/ng-app/src/lib/services/utils/cookies.service.ts","../../../../projects/rlb/ng-app/src/lib/services/utils/pwa-updater.service.ts","../../../../projects/rlb/ng-app/src/lib/services/utils/utils.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/services/parse-jwt.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/services/auth.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/token-oauth-interceptor.ts","../../../../projects/rlb/ng-app/src/lib/auth/auth.provider.ts","../../../../projects/rlb/ng-app/src/lib/pipes/cms/cms.pipe.ts","../../../../projects/rlb/ng-app/src/lib/templates/cms/cms.component.ts","../../../../projects/rlb/ng-app/src/lib/templates/cms/cms.component.html","../../../../projects/rlb/ng-app/src/lib/pages/cms-content/cms-content.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/cms-content/cms-content.component.html","../../../../projects/rlb/ng-app/src/lib/pages/cookies/cookies.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/cookies/cookies.component.html","../../../../projects/rlb/ng-app/src/lib/pages/not-found/not-found.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/not-found/not-found.component.html","../../../../projects/rlb/ng-app/src/lib/pages/privacy/privacy.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/privacy/privacy.component.html","../../../../projects/rlb/ng-app/src/lib/pages/support/support.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/support/support.component.html","../../../../projects/rlb/ng-app/src/lib/pages/terms-and-conditions/terms-and-conditions.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/terms-and-conditions/terms-and-conditions.component.html","../../../../projects/rlb/ng-app/src/lib/pipes/as/as.pipe.ts","../../../../projects/rlb/ng-app/src/lib/pipes/left-component/left-component.pipe.ts","../../../../projects/rlb/ng-app/src/lib/pipes/right-component/right-component.pipe.ts","../../../../projects/rlb/ng-app/src/lib/templates/app/app.component.ts","../../../../projects/rlb/ng-app/src/lib/templates/app/app.component.html","../../../../projects/rlb/ng-app/src/lib/templates/base/base.component.ts","../../../../projects/rlb/ng-app/src/lib/templates/base/base.component.html","../../../../projects/rlb/ng-app/src/lib/templates/content/content.component.ts","../../../../projects/rlb/ng-app/src/lib/templates/content/content.component.html","../../../../projects/rlb/ng-app/src/lib/pipes/truncate/truncate.pipe.ts","../../../../projects/rlb/ng-app/src/lib/pipes/autolink/autolink.pipe.ts","../../../../projects/rlb/ng-app/src/lib/templates/app-container/app-container.component.ts","../../../../projects/rlb/ng-app/src/lib/templates/app-container/app-container.component.html","../../../../projects/rlb/ng-app/src/lib/rlb-app.module.ts","../../../../projects/rlb/ng-app/src/lib/modals/error-modal.component.ts","../../../../projects/rlb/ng-app/src/lib/modals/modal-apps.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/apps/app-selector/app-selector.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/apps/app-selector/app-selector.component.html","../../../../projects/rlb/ng-app/src/lib/auth/directives/role.directive.ts","../../../../projects/rlb/ng-app/src/lib/auth/guards/oauth.guard.ts","../../../../projects/rlb/ng-app/src/lib/auth/services/oauth-password.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/guards/oauth-password.guard.ts","../../../../projects/rlb/ng-app/src/lib/auth/keycloak/keycloak-account.service.ts","../../../../projects/rlb/ng-app/src/lib/pages/apps/user-account/user-account.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/apps/user-account/user-account.component.html","../../../../projects/rlb/ng-app/src/lib/pages/settings/settings-core/settings-core.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/settings/settings-core/settings-core.component.html","../../../../projects/rlb/ng-app/src/lib/pages/settings/settings-list/settings-list.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/settings/settings-list/settings-list.component.html","../../../../projects/rlb/ng-app/src/lib/pages/shared.routes.ts","../../../../projects/rlb/ng-app/src/lib/store/app-context/app-context.effects.ts","../../../../projects/rlb/ng-app/src/lib/store/app-context/app-context.reducer.ts","../../../../projects/rlb/ng-app/src/lib/store/auth/auth.effects.ts","../../../../projects/rlb/ng-app/src/lib/store/auth/auth.reducer.ts","../../../../projects/rlb/ng-app/src/lib/store/navbar/navbar.reducer.ts","../../../../projects/rlb/ng-app/src/lib/store/sidebar/sidebar.reducer.ts","../../../../projects/rlb/ng-app/src/lib/toasts/error-toast.component.ts","../../../../projects/rlb/ng-app/src/lib/guards/verify-deactivate.guard.ts","../../../../projects/rlb/ng-app/src/public-api.ts","../../../../projects/rlb/ng-app/src/open-rlb-ng-app.ts"],"sourcesContent":["import { InjectionToken, Type } from \"@angular/core\";\nimport { OpenIdConfiguration } from \"angular-auth-oidc-client\";\nimport { LogLevel } from \"./services\";\n\nexport const RLB_CFG = 'rlb.options';\nexport const RLB_CFG_CMS = new InjectionToken<CmsConfiguration>(`${RLB_CFG}:cms`);\nexport const RLB_CFG_I18N = new InjectionToken<InternationalizationConfiguration>(`${RLB_CFG}:i18n`);\nexport const RLB_CFG_PAGES = new InjectionToken<PagesConfiguration>(`${RLB_CFG}:pages`);\nexport const RLB_CFG_ENV = new InjectionToken<EnvironmentConfiguration>(`${RLB_CFG}:env`);\nexport const RLB_CFG_AUTH = new InjectionToken<AuthConfiguration>(`${RLB_CFG}:auth`);\nexport const RLB_APP_NAVCOMP = new InjectionToken<NavbarComponents>(`rlb.app.navcomp`);\n\n\nexport interface ProviderConfiguration extends OpenIdConfiguration {\n configId: string;\n domains?: string[];\n roleClaim?: (data: any) => string | string[];\n}\n\nexport interface NavbarComponents {\n left: {\n component: Type<any>,\n name: string,\n }[],\n right: {\n component: Type<any>,\n name: string,\n }[];\n}\n\nexport interface CmsConfiguration {\n endpoint: string;\n chacheDuration: number;\n useAppLanguage: boolean;\n contentLanguages: string[];\n markdown: 'ignore' | 'html' | 'text';\n}\n\nexport interface AuthConfiguration {\n protocol: 'oauth';\n storage: 'cookies' | 'localStorage' | 'sessionStorage';\n interceptor?: 'oauth-code-all' | 'oauth-code-ep' | 'none';\n allowedUrls: string[];\n providers: ProviderConfiguration[];\n}\n\nexport interface InternationalizationConfiguration {\n availableLangs: string[];\n defaultLanguage: string;\n useLanguageBrowser: boolean;\n storeSelectedLanguage: boolean;\n cookieStoreName: string;\n}\n\nexport interface PagesConfiguration {\n [key: string]: {\n path: string;\n };\n}\n\nexport interface EnvironmentConfiguration {\n appLogo: string;\n appTitle: string;\n navbarDisabled?: boolean;\n baseUrl: string;\n ssr: boolean;\n phone: boolean;\n errorDialogName?: string;\n errorDialogSize?: 'sm' | 'lg' | 'xl' | 'md';\n errorToastName?: string;\n errorToastContainer?: string;\n pwaUpdateEnabled?: boolean;\n logLevel?: LogLevel;\n}\n\nexport interface Endpoint {\n baseUrl: string;\n healthPath: string;\n auth?: boolean;\n wss?: boolean;\n}\n\nexport interface IConfiguration {\n environment?: EnvironmentConfiguration;\n cms?: CmsConfiguration;\n auth?: AuthConfiguration;\n i18n?: InternationalizationConfiguration;\n pages?: PagesConfiguration;\n endpoints?: { [key: string]: Endpoint; };\n}\n\nexport type ProjectConfiguration<T = { [k: string]: any; }> = IConfiguration & { production: boolean; } & T;\n","import { Injectable } from '@angular/core';\nimport { AbstractSecurityStorage } from 'angular-auth-oidc-client';\nimport { SsrCookieService } from 'ngx-cookie-service-ssr';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenCookiesService implements AbstractSecurityStorage {\n\n constructor(private cookies: SsrCookieService) {\n\n }\n\n read(key: string): string {\n return this.cookies.get(key);\n }\n\n remove(key: string): void {\n this.cookies.delete(key);\n }\n\n write(key: string, data: string): void {\n this.cookies.set(key, data);\n }\n\n clear(): void {\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractSecurityStorage } from 'angular-auth-oidc-client';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppStorageService {\n\n readLocal(key: string) {\n return localStorage.getItem(key);\n }\n\n writeLocal(key: string, value: any): void {\n localStorage.setItem(key, value);\n }\n\n removeLocal(key: string): void {\n localStorage.removeItem(key);\n }\n\n clearLocal(): void {\n localStorage.clear();\n }\n\n readSession(key: string) {\n return sessionStorage.getItem(key);\n }\n\n writeSession(key: string, value: any): void {\n localStorage.setItem(key, value);\n }\n\n removeSession(key: string): void {\n sessionStorage.removeItem(key);\n }\n\n clearSession(): void {\n sessionStorage.clear();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractSecurityStorage } from 'angular-auth-oidc-client';\nimport { AppStorageService } from '../../services/utils/app-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenSessionService implements AbstractSecurityStorage {\n\n constructor(private readonly store: AppStorageService) { }\n\n read(key: string) {\n return this.store.readSession(key);\n }\n\n write(key: string, value: any): void {\n this.store.writeSession(key, value);\n }\n\n remove(key: string): void {\n this.store.readSession(key);\n }\n\n clear(): void {\n this.store.clearSession();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractSecurityStorage } from 'angular-auth-oidc-client';\nimport { AppStorageService } from '../../services/utils/app-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenStoreService implements AbstractSecurityStorage {\n\n constructor(private readonly store: AppStorageService) { }\n\n read(key: string) {\n return this.store.readLocal(key);\n }\n\n write(key: string, value: any): void {\n this.store.writeLocal(key, value);\n }\n\n remove(key: string): void {\n this.store.removeLocal(key);\n }\n\n clear(): void {\n this.store.clearLocal();\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { EnvironmentConfiguration, RLB_CFG_ENV } from \"../../configuration\";\n\nexport type LogLevel = 'off' | 'error' | 'warn' | 'info' | 'debug' | 'log';\n\nexport type LoggerContext = {\n\terror: (...args: any[]) => void;\n\twarn: (...args: any[]) => void;\n\tinfo: (...args: any[]) => void;\n\tdebug: (...args: any[]) => void;\n\tlog: (...args: any[]) => void;\n};\n\nconst LEVEL_PRIORITIES: Record<LogLevel, number> = {\n\toff: 0,\n\terror: 1,\n\twarn: 2,\n\tinfo: 3,\n\tdebug: 4,\n\tlog: 5,\n};\n\n@Injectable({ providedIn: 'root' })\nexport class AppLoggerService {\n\tprivate currentLevel: LogLevel = 'off';\n\tprivate timestamps = true;\n\n\tconstructor(@Inject(RLB_CFG_ENV) environment?: EnvironmentConfiguration) {\n this.currentLevel = environment?.logLevel || 'off';\n\t}\n\n\tsetLogLevel(level: LogLevel) {\n\t\tif (!(level in LEVEL_PRIORITIES)) {\n\t\t\tthrow new Error(`Unknown log level: ${level}`);\n\t\t}\n\t\tthis.currentLevel = level;\n\t}\n\n\tgetLogLevel(): LogLevel {\n\t\treturn this.currentLevel;\n\t}\n\n\tenableTimestamps(enabled: boolean) {\n\t\tthis.timestamps = enabled;\n\t}\n\n\t/**\n\t * returns logger with context / class name\n\t */\n\tfor(context: string): LoggerContext {\n\t\treturn {\n\t\t\terror: (...args: any[]) => this.logError(context, ...args),\n\t\t\twarn: (...args: any[]) => this.logWarning(context, ...args),\n\t\t\tinfo: (...args: any[]) => this.logInfo(context, ...args),\n\t\t\tdebug: (...args: any[]) => this.logDebug(context, ...args),\n\t\t\tlog: (...args: any[]) => this.log(context, ...args),\n\t\t};\n\t}\n\n\tlogError(contextOrMessage: any, ...args: any[]): void {\n\t\tthis.print('error', contextOrMessage, args);\n\t}\n\tlogWarning(contextOrMessage: any, ...args: any[]): void {\n\t\tthis.print('warn', contextOrMessage, args);\n\t}\n\tlogDebug(contextOrMessage: any, ...args: any[]): void {\n\t\tthis.print('debug', contextOrMessage, args);\n\t}\n\tlogInfo(contextOrMessage: any, ...args: any[]): void {\n\t\tthis.print('info', contextOrMessage, args);\n\t}\n\tlog(contextOrMessage: any, ...args: any[]): void {\n\t\tthis.print('log', contextOrMessage, args);\n\t}\n\n\tprivate print(level: LogLevel, contextOrMessage: any, args: any[]) {\n\t\tif (LEVEL_PRIORITIES[level] > LEVEL_PRIORITIES[this.currentLevel]) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst colors: Record<LogLevel, string> = {\n\t\t\terror: 'color:#e57373;',\n\t\t\twarn: 'color:#ffb74d;',\n\t\t\tinfo: 'color:#64b5f6;',\n\t\t\tdebug: 'color:#90a4ae;',\n\t\t\tlog: 'color:#757575;',\n\t\t\toff: 'color:inherit;',\n\t\t};\n\n\t\tlet context = 'GLOBAL';\n\t\tlet messageArgs: any[] = [];\n\n\t\tif (args.length > 0) {\n\t\t\tcontext = contextOrMessage;\n\t\t\tmessageArgs = args;\n\t\t} else {\n\t\t\tmessageArgs = [contextOrMessage];\n\t\t}\n\n\t\tconst timePrefix = this.timestamps ? `[${new Date().toISOString()}]` : '';\n\t\tconst prefix = `[${level.toUpperCase()}][${context}]${timePrefix} -`;\n\n\t\tswitch (level) {\n\t\t\tcase 'error':\n\t\t\t\tconsole.error(`%c${prefix}`, colors.error, ...messageArgs);\n\t\t\t\tbreak;\n\t\t\tcase 'warn':\n\t\t\t\tconsole.warn(`%c${prefix}`, colors.warn, ...messageArgs);\n\t\t\t\tbreak;\n\t\t\tcase 'info':\n\t\t\t\tconsole.info(`%c${prefix}`, colors.info, ...messageArgs);\n\t\t\t\tbreak;\n\t\t\tcase 'debug':\n\t\t\t\tconsole.debug(`%c${prefix}`, colors.debug, ...messageArgs);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log(`%c${prefix}`, colors.log, ...messageArgs);\n\t\t}\n\t}\n}\n","import { createActionGroup, props } from '@ngrx/store';\nimport { AppInfo, AppViewMode } from '../../services/apps/app';\nimport { AppTheme } from './app-context.model';\n\nexport const AppContextActionsInternal = createActionGroup({\n source: 'AppContext/Internal',\n events: {\n setLanguage: props<{ language: string; }>(),\n setCurrentApp: props<{ app: AppInfo | null, mode?: AppViewMode; url?: string; }>(),\n setSupportedLanguages: props<{ supportedLanguages: string[]; }>(),\n setTheme: props<{ theme: AppTheme; }>(),\n addApp: props<{ app: AppInfo; }>(),\n setViewMode: props<{ viewMode?: AppViewMode; }>(),\n }\n});\n\n\nexport const AppContextActions = createActionGroup({\n source: 'AppContext/API',\n events: {\n setLanguage: props<{ language: string; }>(),\n setSupportedLanguages: props<{ supportedLanguages: string[]; }>(),\n setCurrentApp: props<{ app: AppInfo | null, mode?: AppViewMode; url?: string; }>(),\n removeApp: props<{ appType: string; }>(),\n setTheme: props<{ theme: AppTheme; }>(),\n finalizeApp: props<{ appType: string; appId: string; data?: any; }>(),\n }\n});\n","import { InjectionToken } from \"@angular/core\";\nimport { AppInfo } from \"../../services/apps/app\";\nimport { AppDescriber } from \"../../services/apps/app-describer\";\n\nexport const appContextFeatureKey = 'app';\nexport type AppTheme = 'light' | 'dark';\nexport type PageTemplate = 'app' | 'basic' | 'cms' | 'content';\nexport const RLB_APPS = new InjectionToken<AppDescriber>(`rlb.apps`);\n\nexport interface AppContext {\n apps: AppInfo[];\n currentApp: AppInfo | null,\n language: string | null,\n theme: AppTheme,\n supportedLanguages: string[];\n}\n\nexport const initialAppContextState: AppContext = {\n apps: [],\n currentApp: null,\n language: null,\n supportedLanguages: ['en'],\n theme: 'light',\n};\n\nexport interface AppState { [appContextFeatureKey]: AppContext; }\n","import { createActionGroup, emptyProps, props } from '@ngrx/store';\n\nexport const AuthActionsInternal = createActionGroup({\n source: 'Auth/Internal',\n events: {\n 'SetCurrentProvider': props<{ currentProvider: string; }>(),\n 'SetLoading': props<{ loading: boolean; }>(),\n 'Reset': emptyProps(),\n }\n});\n\n\nexport const AuthActions = createActionGroup({\n source: 'Auth/API',\n events: {\n 'Login': emptyProps(),\n 'Logout': emptyProps(),\n 'SetCurrentProvider': props<{ currentProvider: string; }>(),\n }\n});\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\n\nimport { AuthActions } from './auth.actions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthFeatureService {\n\n constructor(private store: Store) { }\n\n public login() {\n this.store.dispatch(AuthActions.login());\n }\n\n public logout() {\n this.store.dispatch(AuthActions.logout());\n }\n}\n","export const authsFeatureKey = 'auth';\n\nexport interface Auth {\n currentProvider: string | null;\n loading: boolean;\n}\n\nexport const initialAuthState: Auth = {\n currentProvider: null,\n loading: false,\n};\n\nexport interface AuthState { [authsFeatureKey]: Auth; }\n","import { createActionGroup, emptyProps, props } from '@ngrx/store';\nimport { NavigableItem } from '@open-rlb/ng-bootstrap'\nexport const NavbarActionsInternal = createActionGroup({\n source: 'Navbar/Internal',\n events: {}\n});\n\n\nexport const NavbarActions = createActionGroup({\n source: 'Navbar/API',\n events: {\n SetVisible: props<{ visible: boolean }>(),\n SetSearchVisible: props<{ visible: boolean }>(),\n SetHeader: props<{ header: string | null }>(),\n SetSearchText: props<{ text: string | null }>(),\n SetLeftItems: props<{ items: string[] }>(),\n SetRightItems: props<{ items: string[] }>(),\n SetLoginVisible: props<{ visible: boolean }>(),\n SetSettingsVisible: props<{ visible: boolean }>(),\n SetAppsVisible: props<{ visible: boolean }>(),\n SetSeparatorVisible: props<{ visible: boolean }>(),\n }\n});\n\n","import { NavigableItem } from \"@open-rlb/ng-bootstrap\";\n\nexport const navbarsFeatureKey = 'navbar';\n\nexport interface Navbar {\n visible: boolean\n header: string | null,\n searchVisible: boolean\n searchText: string | null,\n leftItems: string[],\n rightItems: string[],\n loginVisible: boolean,\n settingsVisible: boolean,\n appsVisible: boolean,\n separatorVisible: boolean,\n}\n\nexport const initialNavbarState: Navbar = {\n visible: true,\n header: null,\n searchVisible: true,\n searchText: null,\n leftItems: [],\n rightItems: [],\n loginVisible: false,\n settingsVisible: false,\n appsVisible: false,\n separatorVisible: true,\n}\n\nexport interface NavbarState { [navbarsFeatureKey]: Navbar }\n\n","import { createActionGroup, props } from '@ngrx/store';\nimport { SidebarNavigableItem } from '@open-rlb/ng-bootstrap';\n\nexport const SidebarActionsInternal = createActionGroup({\n source: 'Sidebar/Internal',\n events: {}\n});\n\n\nexport const SidebarActions = createActionGroup({\n source: 'Sidebar/API',\n events: {\n SetItems: props<{ items: SidebarNavigableItem[] }>(),\n SetVisible: props<{ visible: boolean }>(),\n SetLoginVisible: props<{ visible: boolean }>(),\n SetAppsVisible: props<{ visible: boolean }>(),\n SetSearchVisible: props<{ visible: boolean }>(),\n SetSettingsVisible: props<{ visible: boolean }>(),\n SetSearchText: props<{ text: string | null }>(),\n }\n});\n\n","import { NavigableItem, SidebarNavigableItem } from \"@open-rlb/ng-bootstrap\";\n\nexport const sidebarsFeatureKey = 'sidebar';\n\nexport interface Sidebar {\n items: SidebarNavigableItem[];\n visible: boolean;\n loginVisible: boolean;\n searchVisible: boolean;\n appsVisible: boolean;\n settingsVisible: boolean;\n searchText: string | null;\n}\n\nexport const initialSidebarState: Sidebar = {\n items: [],\n visible: true,\n loginVisible: true,\n searchVisible: true,\n settingsVisible: true,\n appsVisible: true,\n searchText: null\n};\n\nexport interface SidebarState { [sidebarsFeatureKey]: Sidebar; }\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport abstract class AbstractSupportService {\n public abstract sendSupport(data: any): void\n}\n","import { PagesConfiguration } from '../configuration';\n\nexport interface DefaultRouteConfig {\n\tpath: string;\n\tconfigKey?: keyof PagesConfiguration;\n}\n\nexport const DEFAULT_ROUTES_CONFIG: DefaultRouteConfig[] = [\n\t{ path: 'setting' },\n\t{ path: 'setting/general' },\n\t{ path: 'apps' },\n\t{ path: 'profile' },\n\t{ path: 'content', configKey: 'content' },\n\t{ path: 'cookies', configKey: 'cookies' },\n\t{ path: 'notFound', configKey: 'notFound' },\n\t{ path: 'privacy', configKey: 'privacy' },\n\t{ path: 'support', configKey: 'support' },\n\t{ path: 'terms', configKey: 'terms' },\n];","import { Inject, Injectable, Optional } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { filter, map, Observable, of, switchMap } from 'rxjs';\nimport { AuthConfiguration, RLB_CFG_AUTH } from '../../configuration';\nimport { AppContextActions, AuthActions, authsFeatureKey, BaseState } from '../../store';\nimport { appContextFeatureKey } from '../../store/app-context/app-context.model';\nimport { AppInfo, AppViewMode } from './app';\nimport { AppLoggerService, LoggerContext } from \"./app-logger.service\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { DEFAULT_ROUTES_CONFIG } from \"../../pages/default-routes.config\";\n\ninterface AppConfig {\n\troute: ActivatedRoute\n\tappsConfig: AppInfo<any>[]\n\tapps: AppInfo<any>[]\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppsService {\n\tprivate logger: LoggerContext;\n\n constructor(\n private store: Store<BaseState>,\n private activatedRoute: ActivatedRoute,\n private router: Router,\n\t\tprivate loggerService: AppLoggerService,\n @Inject(RLB_CFG_AUTH) @Optional() confAuth: AuthConfiguration | undefined\n ) {\n\t\tthis.logger = this.loggerService.for(this.constructor.name);\n\t\tthis.logger.log('AppsService initialized');\n\n this.initAuthProviders(store, confAuth);\n\t\tthis.initRouterListener()\n }\n\n get currentDomain() {\n return window.location.hostname;\n }\n\n\tget apps() {\n\t\treturn this.store.selectSignal(state => state[appContextFeatureKey].apps)()\n\t\t\t.filter(app => app.id && (app.domains === undefined || app.domains == null || app.domains.includes(this.currentDomain)));\n\t}\n\n\tget currentApp() {\n\t\tconst app = this.store.selectSignal(state => state[appContextFeatureKey].currentApp)();\n\t\tthis.logger.log('Current app from store:', app);\n\t\treturn app;\n\t}\n\n selectApp(app?: AppInfo, viewMode?: 'app' | 'settings', url?: string) {\n const currentApp = this.currentApp;\n\t\tif (!app) {\n\t\t\tthis.logger.warn('Deselecting app (null).');\n\t\t\tthis.store.dispatch(AppContextActions.setCurrentApp({ app: null }));\n\t\t\treturn;\n\t\t}\n\t\tif (currentApp && currentApp.id === app.id && currentApp.viewMode === viewMode) {\n\t\t\tthis.logger.info('App already selected with same id and viewMode. Skipping dispatch.');\n\t\t\treturn;\n\t\t}\n\t\tthis.logger.warn('Dispatching setCurrentApp with:', { app, mode: viewMode, url });\n\t\tthis.store.dispatch(AppContextActions.setCurrentApp({ app, mode: viewMode, url }));\n }\n\n\tprivate initAuthProviders(store: Store<BaseState>, confAuth?: AuthConfiguration) {\n const currentProviderInStore = this.store.selectSignal((state) => state[authsFeatureKey].currentProvider)();\n\n if (currentProviderInStore) {\n this.logger.info(`Auth provider already set to '${currentProviderInStore}' by Initializer. AppsService initAuthProviders skipping init.`);\n return;\n }\n\n\t\tif (!confAuth?.providers?.length) {\n\t\t\tthis.logger.warn('No auth providers configured.');\n\t\t\treturn;\n\t\t}\n\n\t\tif (confAuth?.providers && confAuth.providers.length === 1) {\n\t\t\tthis.logger.info('Single auth provider detected:', confAuth.providers[0]);\n\t\t\tstore.dispatch(AuthActions.setCurrentProvider({ currentProvider: confAuth.providers[0].configId }));\n\t\t\treturn\n\t\t}\n\n\t\tthis.logger.info('Multiple auth providers detected, checking by domain:', this.currentDomain);\n\n\t\tconst authProvidersMatched = confAuth.providers.filter(provider => provider.domains?.includes(this.currentDomain));\n\n\t\tif (authProvidersMatched && authProvidersMatched.length === 1) {\n\t\t\tthis.logger.info('Auth provider matched by domain:', authProvidersMatched[0]);\n\t\t\tstore.dispatch(AuthActions.setCurrentProvider({ currentProvider: authProvidersMatched[0].configId }));\n\t\t} else if (authProvidersMatched && authProvidersMatched.length > 1) {\n\t\t\tthis.logger.warn(`Multiple auth providers found for the current domain: ${this.currentDomain}. Please specify a single provider in the configuration.`);\n\t\t} else {\n\t\t\tthis.logger.warn(`No auth provider found for the current domain: ${this.currentDomain}.`);\n\t\t}\n\t}\n\n\tprivate initRouterListener() {\n\t\tthis.router.events\n\t\t\t.pipe(\n\t\t\t\tfilter(event => event instanceof NavigationEnd),\n\t\t\t\tswitchMap(() => this.resolveRouteAndApps()),\n\t\t\t\ttakeUntilDestroyed()\n\t\t\t)\n\t\t\t.subscribe(data => this.handleResolvedApps(data));\n\t}\n\n\t// Core logic\n\n\tprivate resolveRouteAndApps(): Observable<AppConfig | null> {\n\t\tconst route = this.findDeepestChild(this.activatedRoute);\n\n\t\tconst fullPath = this.getFullPath(route);\n this.logger.info(`Full path for route resolution: '${fullPath}'`);\n\n\t\t// if (!fullPath) {\n\t\t// \tthis.logger.warn('No valid path found, treating as default route:', route);\n\t\t// \treturn of(null);\n\t\t// }\n\n\t\tconst appRoutes: AppInfo[] | undefined = this.apps?.map(app => ({\n\t\t\ttype: app.type,\n\t\t\troutes: app.routes || [],\n\t\t\tviewMode: app.viewMode,\n\t\t\tenabled: app.enabled,\n core: app.core\n }));\n\n\t\tlet appRoutesMatched: AppInfo[] = [];\n\n\t\tif (fullPath && !this.isDefaultRoute(fullPath)) {\n\t\t\tappRoutesMatched = appRoutes?.filter(app =>\n\t\t\t\tapp.routes?.some(r => r.includes(fullPath))\n\t\t\t) ?? [];\n\t\t}\n\n\t\tthis.logger.info('Route fullPath:', fullPath, 'Matched appRoute:', appRoutesMatched);\n\n return this.store.select(state => state[appContextFeatureKey].apps).pipe(\n // waiting for all \"finalizeApp\" dispatches\n filter(apps => {\n if (!apps || apps.length === 0) return true;\n const allFinalized = !apps.some(app => !app.id);\n if (!allFinalized) {\n this.logger.info('Waiting for apps initialization (finalizeApp)...');\n }\n return allFinalized;\n }),\n // Return config in there are matched apps, or it's root route case\n map(apps => {\n if (appRoutesMatched.length > 0 || fullPath === '') {\n return { route, appsConfig: appRoutesMatched, apps } as AppConfig;\n }\n return null;\n })\n );\n\t}\n\n private handleResolvedApps(data: AppConfig | null) {\n const route = this.findDeepestChild(this.activatedRoute);\n const storedId = this.getStoredAppId();\n\n // Check if route is root\n const currentPath = route.snapshot.url.map(s => s.path).join('/');\n const isRoot = currentPath === '';\n\n // Basic check\n if (data?.apps?.some(app => !app.id)) {\n this.logger.error('Some apps are not finalized...');\n return;\n }\n if (!data || !data.apps || data.apps.length === 0) {\n this.logger.warn(`No apps found. Path: '${currentPath}'`);\n this.selectApp(undefined);\n return;\n }\n\n // Filter by domain\n const domainApps = data.apps.filter(app =>\n !app.domains || app.domains?.some((domain) => domain.includes(this.currentDomain))\n );\n\n if (domainApps.length === 0) {\n this.logger.warn(`No apps allowed for domain: ${this.currentDomain}`);\n this.selectApp(undefined);\n return;\n }\n\n\n // CASE 1: SINGLE APP REDIRECT (Partners)\n // We are in root route and there is only one app available\n\n if (isRoot && domainApps.length === 1) {\n const singleApp = domainApps[0];\n const targetUrl = singleApp.core?.url;\n\n if (targetUrl && targetUrl !== '/' && targetUrl !== '') {\n this.logger.info(`[AutoRedirect] Single app detected at root. Redirecting to: ${targetUrl}`);\n this.router.navigate([targetUrl], {\n queryParams: route.snapshot.queryParams,\n replaceUrl: true\n });\n return;\n }\n }\n\n // CASE 2: MULTI APP HUB / CORE HOME PAGE\n // We are in root route, and there are more than one app available\n // ====================================================================\n if (isRoot && domainApps.length > 1) {\n this.logger.info(`Root detected with multiple apps (${domainApps.length}). Showing App Hub / Core home page.`);\n this.selectApp(undefined); // Explicit reset chosen app\n return;\n }\n\n // CASE 3: Standard logic to get app (Deep linking) ---\n // Here we go only if route not empty !=\"\" and not root !=\"/\"\n\n const matchedApps = domainApps.filter(app =>\n app.routes?.some(r => r.includes(route.routeConfig?.path!)) ||\n app.core?.url === '/' + route.routeConfig?.path\n );\n\n let appToSelect: AppInfo | undefined;\n\n if (matchedApps.length === 1) {\n appToSelect = matchedApps[0];\n this.logger.info('Single app matched route:', appToSelect);\n } else if (matchedApps.length > 1) {\n // Fallback in case of conflict routes\n appToSelect = matchedApps.find(a => a.id === storedId) || matchedApps[0];\n this.logger.info('Multiple apps matched route, selected:', appToSelect);\n } else {\n // Fallback: Route path doesn't exist\n appToSelect = undefined;\n this.logger.warn('No app matched this specific route:', currentPath);\n }\n\n const qp = new URLSearchParams(route.snapshot.queryParams).toString();\n const url = currentPath + (qp ? `?${qp}` : '');\n const viewMode = this.isSettingsRoute(route) ? 'settings' : 'app';\n\n this.selectApp(appToSelect, viewMode, url);\n }\n\n\tprivate findDeepestChild(route: ActivatedRoute): ActivatedRoute {\n\t\twhile (route.firstChild) route = route.firstChild;\n\t\tthis.logger.info('Activated deepest child route:', route);\n\t\treturn route;\n\t}\n\n\tprivate getStoredAppId(): string | null {\n\t\ttry {\n\t\t\treturn localStorage.getItem('c-app-id');\n\t\t} catch (e) {\n\t\t\tthis.logger.warn('LocalStorage not available:', e);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate isSettingsRoute(route: ActivatedRoute): boolean {\n\t\treturn route.routeConfig?.path?.includes('settings') ?? false;\n\t}\n\n\tprivate isDefaultRoute(route: string): boolean {\n\t\treturn DEFAULT_ROUTES_CONFIG\n\t\t\t.some(r => r.path.includes(route));\n\t}\n\n\tprivate getFullPath(route: ActivatedRoute): string {\n\t\tconst segments: string[] = [];\n\t\tlet current: ActivatedRoute | null = route.root;\n\n\t\twhile (current) {\n\t\t\tconst path = current.routeConfig?.path;\n\t\t\tif (path && path !== '') segments.push(path);\n\t\t\tcurrent = current.firstChild ?? null;\n\t\t}\n\n\t\treturn segments.join('/');\n\t}\n}\n","import { EventEmitter, Inject, Injectable, Optional } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CookiesService } from '..';\nimport { InternationalizationConfiguration, RLB_CFG_I18N } from '../../configuration';\n\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageService {\n\n private _contentLanguage: string | undefined\n public contentLanguageChanged$: EventEmitter<string> = new EventEmitter();\n\n constructor(\n private translateService: TranslateService,\n private cookiesService: CookiesService,\n @Inject(RLB_CFG_I18N) @Optional() private i18nOptions: InternationalizationConfiguration,\n ) {\n if (this.i18nOptions) {\n translateService.addLangs(this.i18nOptions.availableLangs)\n const languageUI = this.cookiesService.getCookie('ui-locale') || this.defaultLanguage || this.browserLanguage\n const languageContent = this.cookiesService.getCookie('content-locale') || this.defaultLanguage\n translateService.use(languageUI)\n this.contentLanguage = languageContent\n }\n }\n\n get language() {\n return this.translateService.getCurrentLang() || this.i18nOptions.defaultLanguage\n }\n\n set language(value: string | undefined) {\n if (!value) return\n this.cookiesService.setCookie('ui-locale', value)\n this.translateService.use(value)\n }\n\n get contentLanguage() {\n return this._contentLanguage\n }\n\n set contentLanguage(value: string | undefined) {\n this.cookiesService.setCookie('content-locale', value || this.defaultLanguage)\n this._contentLanguage = value\n this.contentLanguageChanged$.emit(value)\n }\n\n public get languages(): readonly string[] {\n return this.translateService.getLangs()\n }\n\n public set languages(value: string[]) {\n this.translateService.addLangs(value)\n }\n\n public get defaultLanguage(): string {\n return this.translateService.getFallbackLang() || 'en'\n }\n\n public get browserLanguage() {\n return this.translateService.getBrowserLang() || 'en'\n }\n\n public translate(key: string | Array<string>, interpolateParams?: Object) {\n return this.translateService.instant(key, interpolateParams)\n }\n\n public translateAsync(key: string | Array<string>, interpolateParams?: Object) {\n return this.translateService.get(key, interpolateParams)\n }\n\n public get languageChanged$() {\n return this.translateService.onLangChange\n }\n\n public getLanguageName(l: string): string {\n switch (l) {\n case 'it': return 'Italiano'\n case 'en': return 'English'\n case 'es': return 'Español'\n case 'fr': return 'Francés'\n case 'ja': return '日本語'\n default: return ''\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { ActivatedRoute, NavigationEnd, Router } from \"@angular/router\";\nimport { BreadcrumbItem } from \"@open-rlb/ng-bootstrap\";\nimport { BehaviorSubject, filter } from \"rxjs\";\nimport { AppLoggerService, LoggerContext } from \"./app-logger.service\";\nimport { LanguageService } from \"../i18n/language.service\";\n\n@Injectable({ providedIn: 'root' })\nexport class AppBreadcrumbService {\n\tprivate readonly _breadcrumbs$ = new BehaviorSubject<BreadcrumbItem[]>([]);\n\tpublic readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\tprivate logger: LoggerContext;\n\n\tconstructor(\n\t\tprivate router: Router,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate loggerService: AppLoggerService,\n\t\tprivate languageService: LanguageService\n\t) {\n\t\tthis.logger = this.loggerService.for(this.constructor.name);\n\t\tthis.logger.info('Service initialized');\n\n\t\tthis.router.events\n\t\t\t.pipe(filter((event): event is NavigationEnd => event instanceof NavigationEnd))\n\t\t\t.subscribe(() => this.updateBreadcrumbs());\n\n\t\tthis.languageService.languageChanged$\n\t\t\t.subscribe(() => this.updateBreadcrumbs());\n\n\t\t// init construct\n\t\tthis.updateBreadcrumbs();\n\t}\n\n\tprivate updateBreadcrumbs() {\n\t\tconst crumbs = this.buildBreadcrumbFromRoot(this.route);\n\t\tthis._breadcrumbs$.next(crumbs);\n\t\tthis.logger.info('Breadcrumbs updated', crumbs);\n\t}\n\n\tprivate buildBreadcrumbFromRoot(route: ActivatedRoute): BreadcrumbItem[] {\n\t\tconst breadcrumbs: BreadcrumbItem[] = [];\n\t\tlet accumulatedLink = '';\n\t\tlet currentRoute: ActivatedRoute | null = route.root;\n\n\t\twhile (currentRoute) {\n\t\t\tconst urlPart = currentRoute.snapshot.url.map(s => s.path).join('/');\n\t\t\tif (urlPart) accumulatedLink += `/${urlPart}`;\n\n\t\t\tconst label = currentRoute.snapshot.data['breadcrumb'];\n\t\t\tif (label && (urlPart || breadcrumbs.length === 0)) {\n\t\t\t\tbreadcrumbs.push({\n\t\t\t\t\tlabel: this.languageService.translate(label),\n\t\t\t\t\tlink: accumulatedLink || '/'\n\t\t\t\t});\n\t\t\t\tthis.logger.debug('Pushed breadcrumb', { label, link: accumulatedLink });\n\t\t\t}\n\n\t\t\tif (!currentRoute.firstChild) break;\n\t\t\tcurrentRoute = currentRoute.firstChild;\n\t\t}\n\n\t\treturn breadcrumbs;\n\t}\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Observable, of, share, switchMap } from 'rxjs'\nimport { CacheItem } from './cache-item';\nimport { ProjectConfiguration, RLB_CFG } from '../../configuration';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalCacheService {\n\n constructor(\n @Inject(RLB_CFG) @Optional() private options: ProjectConfiguration\n ) {\n this.clear()\n }\n\n private clear() {\n if (typeof localStorage !== 'undefined') {\n for (let i: number = 0; i < localStorage.length; i++) {\n const key: string = localStorage.key(i) || ''\n const val = localStorage.getItem(key)\n if (!val) continue\n try {\n const exp: CacheItem<any> = JSON.parse(val)\n if (Date.now() > exp?.expire) {\n localStorage.removeItem(key)\n }\n } catch (e) { }\n }\n }\n }\n\n private readData<T>(key: string): CacheItem<T> | null {\n if (typeof localStorage !== 'undefined') {\n const val = localStorage.getItem(key)\n if (!val) return null\n return JSON.parse(key)\n }\n return null;\n }\n\n private storeData<T>(key: string, data: CacheItem<T>): void {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(key, JSON.stringify(data))\n }\n }\n\n public getData<T>(ob: Observable<T>, cacheKey: string, expirationSec: number): Observable<T> {\n const cachedValue = this.readData<T>(cacheKey)\n return of(cachedValue).pipe(switchMap(cache => {\n if (cache && cache.expire >= Date.now()) {\n if (!this.options.production) {\n console.info(\"%c Cache: \" + cacheKey, 'background: #e5edff; color: #000')\n }\n return of(cache.data)\n } else {\n if (!this.options.production) {\n console.info(\"%c Cached: \" + cacheKey, 'background: #e5edff; color: #000')\n }\n return ob.pipe(\n share(),\n switchMap(data => {\n this.storeData<T>(cacheKey, {\n data,\n expire: Date.now() + (expirationSec || 60) * 1000\n })\n return of(data)\n }))\n }\n }),\n share())\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport abstract class AbstractMdService {\n\n constructor() { }\n\n public abstract md2html(md: string): string;\n public abstract md2text(md: string): string;\n}\n","import { Inject, Injectable, Optional } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { FaqGroup, Home, MenuItem, Page, Tab, Topic, LocalCacheService } from '../'\nimport { Observable, from, lastValueFrom, map, switchMap, zip } from 'rxjs'\nimport { CmsConfiguration, RLB_CFG_CMS } from '../../configuration'\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StrapiService {\n\n constructor(\n private http: HttpClient,\n private cache: LocalCacheService,\n @Inject(RLB_CFG_CMS) @Optional() private cmsOptions: CmsConfiguration) { }\n\n public fetchHome(lang: string, cid: string): Observable<Home> {\n const __r = this.http.get<Home>(`${this.cmsOptions.endpoint}/homes/${lang}/${cid}`)\n return this.cache.getData(__r, `strapiHome/${lang}/${cid}`, this.cmsOptions.chacheDuration || 3600)\n }\n\n public fetchTopic(id: string): Observable<Topic> {\n return this.http.get<Topic>(`${this.cmsOptions.endpoint}/topics/${id}`)\n }\n\n public fetchTab(id: string): Observable<Tab> {\n return this.http.get<Tab>(`${this.cmsOptions.endpoint}/tabs/${id}`)\n }\n\n public fetchFaqGroup(lang: string, cid: string): Observable<FaqGroup> {\n return this.http.get<FaqGroup>(`${this.cmsOptions.endpoint}/faq-groups/${lang}/${cid}`)\n }\n\n\n private async _getGuideMenuPromise(lang: string, cid: string): Promise<MenuItem> {\n const resp: MenuItem = (await lastValueFrom(this.http.get<MenuItem>(`${this.cmsOptions.endpoint}/menu-items/${lang}/${cid}`)))\n resp.menu_items = resp.menu_items.sort((a, b) => ((a.Order || Math.max()) > (b.Order || Math.max())) ? 1 : (((b.Order || Math.max()) > (a.Order || Math.max())) ? -1 : 0))\n const t = await Promise.all(resp.menu_items.map((o: any) => this._getGuideMenuPromise(lang, o.ContentId)))\n resp.menu_items = t.sort((a, b) => (a.Order || Math.max() > b.Order || Math.max()) ? 1 : ((b.Order || Math.max() > a.Order || Math.max()) ? -1 : 0))\n return resp\n }\n\n public getGuideMenu(lang: string, cid: string): Observable<MenuItem> {\n return this.cache.getData(from(this._getGuideMenuPromise(lang, cid)), `strapiMenu/${lang}/${cid}`, this.cmsOptions.chacheDuration || 3600)\n }\n\n // public getGuideMenu2(lang: string, cid: string): Observable<MenuItem> {\n // var __r = this.http.get<MenuItem>(`${this.cmsOptions.endpoint}/menu-items/${lang}/${cid}`)\n // .pipe(\n // switchMap(menuItem => {\n // if (menuItem.menu_items.length == 0)\n // return of(menuItem)\n // menuItem.menu_items = menuItem.menu_items\n // .sort((a, b) => ((a.Order || Math.max()) > (b.Order || Math.max())) ? 1 : (((b.Order || Math.max()) > (a.Order || Math.max())) ? -1 : 0))\n // return zip(menuItem.menu_items.map(menuSub => this.getGuideMenu(lang, menuSub.ContentId)))\n // .pipe(map(menuSubItems => {\n // menuItem.menu_items = menuSubItems\n // return menuItem\n // }))\n // }))\n // return this.cache.getData(__r, `strapiMenu/${lang}/${cid}`, this.cmsOptions.chacheDuration)\n // }\n\n public fetchPage(lang: string, cid: string): Observable<Page> {\n const __r = this.http.get<Page>(`${this.cmsOptions.endpoint}/pages/${lang}/${cid}`)\n .pipe(switchMap(page => {\n const tabs$ = zip(page.page_tabs.map((o: Tab) => this.fetchTab(o.id)))\n const topics$ = zip(page.topics.map((o: Topic) => this.fetchTopic(o.id)))\n return zip(tabs$, topics$).pipe(map(([tabs, topics]) => {\n page.page_tabs = tabs\n page.topics = topics\n return page\n }))\n }))\n return this.cache.getData(__r, `strapiPage/${lang}/${cid}`, this.cmsOptions.chacheDuration || 3600)\n }\n}","import { Inject, Injectable, Optional } from '@angular/core';\nimport { ModalService, ModalType, ToastService } from '@open-rlb/ng-bootstrap';\nimport { ErrorOutput, } from './errors';\nimport { EMPTY, Observable, OperatorFunction, catchError, of } from 'rxjs';\nimport { LanguageService } from '..';\nimport { ProjectConfiguration, RLB_CFG } from '../../configuration';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorManagementService {\n\n constructor(\n private dialogService: ModalService,\n private toastService: ToastService,\n private languageService: LanguageService,\n @Inject(RLB_CFG) @Optional() private options: ProjectConfiguration\n ) { }\n\n public showError(type: ModalType = 'error', out: ErrorOutput = 'dialog', error?: any) {\n if (out === 'dialog') {\n return this.showDialog(type, error);\n }\n if (out === 'toast') {\n return this.showToast(type, error);\n }\n if (out === 'console') {\n if (!this.options.production) {\n console.info(\"%c Error service: ShowToast\", 'background: #ffcdc9; color: #000', error)\n }\n return of({ reason: 'console' })\n }\n return EMPTY;\n }\n\n public showDialog(type: ModalType, error?: Error) {\n if (!this.options.production) {\n console.info(\"%c Error service: ShowDialog\", 'background: #ffcdc9; color: #000', error)\n }\n return this.dialogService.openModal<string, void>(\n this.options?.environment?.errorDialogName || 'error-modal-component',\n {\n content: error?.message || '',\n title: error?.name || '',\n ok: this.languageService.translate('common.ok'),\n type,\n },\n {\n animation: true,\n backdrop: true,\n keyboard: true,\n size: this.options?.environment?.errorDialogSize || 'md',\n scrollable: true,\n focus: true,\n fullscreen: false,\n verticalcentered: true,\n }\n );\n }\n\n public showToast(type: ModalType, error?: any) {\n if (!this.options.production) {\n console.info(\"%c Error service: ShowToast\", 'background: #ffcdc9; color: #000', error)\n }\n return this.toastService.openToast(\n this.options?.environment?.errorToastContainer || 'error-toast-container',\n this.options?.environment?.errorToastName || 'error-toast',\n {\n content: error?.message || '',\n title: error?.name || '',\n ok: this.languageService.translate('common.ok'),\n type: 'error'\n },\n {\n animation: true,\n autohide: true,\n delay: 5000,\n }\n );\n }\n\n public manageUI<T>(type: ModalType = 'error', out: ErrorOutput = 'dialog'): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return source.pipe(\n catchError((error, k) => {\n if (error.name && error.name === 'HttpErrorResponse' && error.error) {\n error.message = `${error.error.status}: ${error.error.message}`;\n }\n this.showError(type, out, error);\n return EMPTY;\n }),\n );\n };\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { RlbTranslationService, UniqueIdService } from \"@open-rlb/ng-bootstrap\";\n\n@Injectable({ providedIn: 'root' })\nexport class RlbTranslateAdapterService implements RlbTranslationService {\n\tconstructor(private translateService: TranslateService, private service: UniqueIdService) {}\n\n\tinstant(key: string, params?: { [key: string]: any }): string {\n\t\treturn this.translateService.instant(key, params);\n\t}\n}\n","import { EnvironmentProviders, importProvidersFrom, Provider } from \"@angular/core\";\nimport { InternationalizationConfiguration, RLB_CFG_I18N } from \"../../configuration\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { RLB_TRANSLATION_SERVICE } from \"@open-rlb/ng-bootstrap\";\nimport { RlbTranslateAdapterService } from \"./rlb-translate-adapter.service\";\nimport { provideTranslateHttpLoader } from \"@ngx-translate/http-loader\";\n\nexport function provideRlbI18n(i18n?: InternationalizationConfiguration): (EnvironmentProviders | Provider)[] {\n if (!i18n) return [];\n\n const prefix: string = './assets/i18n/';\n const suffix: string = '.json'\n\n return [\n importProvidersFrom([\n TranslateModule.forRoot({\n loader: provideTranslateHttpLoader({\n prefix,\n suffix,\n // enforceLoading: true, // Adds cache-busting timestamp\n // useHttpBackend: true // Bypasses HTTP interceptors\n }),\n fallbackLang: i18n.defaultLanguage\n })\n ]),\n { provide: RLB_CFG_I18N, useValue: i18n },\n\t\t{\n\t\t\tprovide: RLB_TRANSLATION_SERVICE,\n\t\t\tuseClass: RlbTranslateAdapterService\n\t\t},\n ]\n}\n","import { Observable } from 'rxjs';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { HttpClient } from '@angular/common/http';\nimport { makeStateKey, StateKey, TransferState } from '@angular/core';\n\nexport class TranslateBrowserLoader implements TranslateLoader {\n constructor(private http: HttpClient,\n private transferState: TransferState,\n private prefix: string = './assets/i18n/',\n private suffix: string = '.json') {}\n\n public getTranslation(lang: string): Observable<any> {\n const key: StateKey<number> = makeStateKey<number>(\n 'transfer-translate-' + lang\n );\n const data = this.transferState.get(key, null);\n\n // First we are looking for the translations in transfer-state,\n\t // if none found, http load as fallback\n if (data) {\n return new Observable((observer) => {\n observer.next(data);\n observer.complete();\n });\n } else {\n return this.http.get(`${this.prefix}${lang}${this.suffix}`);\n }\n }\n}\n\nexport function translateBrowserLoaderFactory(\n httpClient: HttpClient,\n transferState: TransferState\n) {\n return new TranslateBrowserLoader(httpClient, transferState);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CookiesService {\n public getCookie(name: string): string | undefined {\n let ca: Array<string> = document.cookie.split(';');\n let caLen: number = ca.length;\n let cookieName = `${name}=`;\n let c: string;\n\n for (let i: number = 0; i < caLen; i += 1) {\n c = ca[i].replace(/^\\s+/g, '');\n if (c.indexOf(cookieName) == 0) {\n return c.substring(cookieName.length, c.length);\n }\n }\n return undefined;\n }\n\n public deleteCookie(name: string) {\n this.setCookie(name, '', -1);\n }\n\n public setCookie(name: string, value: string, expireDays?: number, path: string = '') {\n let cookie = `${name}=${value};`;\n if (expireDays) {\n let d: Date = new Date();\n d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);\n let expires: string = `expires=${d.toUTCString()};`;\n cookie += `${expires}`\n }\n if (path) {\n cookie += `path=${path};`\n }\n document.cookie = cookie;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { SwUpdate, VersionReadyEvent } from '@angular/service-worker';\nimport { filter, map, switchMap } from 'rxjs';\nimport { ModalService } from '@open-rlb/ng-bootstrap';\nimport { LanguageService } from '../i18n/language.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PwaUpdaterService {\n\n private _newVersionAvailable$ = new EventEmitter<void>();\n\n get newVersionAvailable$() {\n return this._newVersionAvailable$.asObservable();\n }\n\n constructor(\n private readonly updates: SwUpdate,\n private readonly modalService: ModalService,\n private readonly languageService: LanguageService) {\n this.updates.versionUpdates\n .pipe(\n filter((evt): evt is VersionReadyEvent => (evt.type === 'VERSION_READY'))\n ).subscribe(() => this._newVersionAvailable$.emit());\n }\n\n update() {\n this.updates.activateUpdate()\n .then(() => document.location.reload());\n }\n\n async checkForUpdates() {\n return await this.updates.checkForUpdate();\n }\n\n checkWithDialog() {\n return this.updates.versionUpdates\n .pipe(\n filter((evt): evt is VersionReadyEvent => {\n const result = evt.type === 'VERSION_READY';\n return result;\n }),\n switchMap(() =>\n this.modalService.openSimpleModal(\n this.languageService.translate('core.pwa.newVersionAvailable'),\n this.languageService.translate('core.pwa.updateMessage'),\n this.languageService.translate('core.pwa.updateNow'),\n this.languageService.translate('core.pwa.update'),\n this.languageService.translate('core.pwa.later'))\n ),\n filter((res) => res?.reason === 'ok'), //si ferma se l'evento non è una action\n map(() => this.updates.activateUpdate().then(() => location.reload()))\n )\n }\n}\n\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n public isNumber(evt: any) {\n evt = evt || window.event\n const charCode = evt.which ? evt.which : evt.keyCode\n if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode !== 46) {\n evt.preventDefault()\n return false\n } else {\n return true\n }\n }\n\n public toPlainDataObject(o: ({ [k: string]: any } | { [k: string]: any }[])): any {\n if (o !== null && o != undefined) {\n if (Array.isArray(o)) {\n return o.map(j => this.toPlainDataObject(j))\n } else if (typeof o === 'object') {\n return Object.getOwnPropertyNames(o).reduce((result: { [k: string]: any }, name) => {\n if (name !== '__ob__') result[name] = this.toPlainDataObject(o[name])\n return result\n }, {})\n } else if (typeof o === 'function' || typeof o === 'undefined') {\n return undefined\n } else {\n return o\n }\n }\n }\n\n public groupBy<T>(xs: T[], predicate: (o: T) => string) {\n return xs.reduce((rv, x) => {\n ; (rv[predicate(x)] = rv[predicate(x)] || []).push(x)\n return rv\n }, {} as { [i: string]: T[] })\n }\n\n\n\n private s(x: any, y: any): number {\n var pre = ['string', 'number', 'bool']\n if (typeof x !== typeof y) return pre.indexOf(typeof y) - pre.indexOf(typeof x)\n\n if (x === y) return 0\n else return x > y ? 1 : -1\n }\n\n public compareArrayUnsort(a1: any, a2: any): boolean {\n if (!Array.isArray(a1)) return false\n if (!Array.isArray(a2)) return false\n if (a1.length != a2.length) return false\n a1 = a1.sort(this.s)\n a2 = a2.sort(this.s)\n for (var i = 0, l = a1.length; i < l; i++) {\n if (Array.isArray(a1[i]) && Array.isArray(a2[i])) {\n if (!this.compareArrayUnsort(a1[i], a2[i])) return false\n } else if (a1[i] != a2[i]) {\n // Warning - two different object instances will never be equal: {x:20} != {x:20}\n return false\n }\n }\n return true\n }\n\n public removeMD(\n md: string,\n options?: { listUnicodeChar?: string; stripListLeaders?: boolean; useImgAltText?: boolean; gfm?: boolean }\n ) {\n options = options || {}\n options.listUnicodeChar = options.hasOwnProperty('listUnicodeChar') ? options.listUnicodeChar : undefined\n options.stripListLeaders = options.hasOwnProperty('stripListLeaders') ? options.stripListLeaders : true\n options.gfm = options.hasOwnProperty('gfm') ? options.gfm : true\n options.useImgAltText = options.hasOwnProperty('useImgAltText') ? options.useImgAltText : true\n\n var output = md || ''\n\n // Remove horizontal rules (stripListHeaders conflict with this rule, which is why it has been moved to the top)\n output = output.replace(/^(-\\s*?|\\*\\s*?|_\\s*?){3,}\\s*$/gm, '')\n\n try {\n if (options.stripListLeaders) {\n if (options.listUnicodeChar)\n output = output.replace(/^([\\s\\t]*)([\\*\\-\\+]|\\d+\\.)\\s+/gm, options.listUnicodeChar + ' $1')\n else output = output.replace(/^([\\s\\t]*)([\\*\\-\\+]|\\d+\\.)\\s+/gm, '$1')\n }\n if (options.gfm) {\n output = output\n // Header\n .replace(/\\n={2,}/g, '\\n')\n // Fenced codeblocks\n .replace(/~{3}.*\\n/g, '')\n // Strikethrough\n .replace(/~~/g, '')\n // Fenced codeblocks\n .replace(/`{3}.*\\n/g, '')\n }\n output = output\n // Remove HTML tags\n .replace(/<[^>]*>/g, '')\n // Remove setext-style headers\n .replace(/^[=\\-]{2,}\\s*$/g, '')\n // Remove footnotes?\n .replace(/\\[\\^.+?\\](\\: .*?$)?/g, '')\n .replace(/\\s{0,2}\\[.*?\\]: .*?$/g, '')\n // Remove images\n .replace(/\\!\\[(.*?)\\][\\[\\(].*?[\\]\\)]/g, options.useImgAltText ? '$1' : '')\n // Remove inline links\n .replace(/\\[(.*?)\\][\\[\\(].*?[\\]\\)]/g, '$1')\n // Remove blockquotes\n .replace(/^\\s{0,3}>\\s?/g, '')\n // Remove reference-style links?\n .replace(/^\\s{1,2}\\[(.*?)\\]: (\\S+)( \".*?\")?\\s*$/g, '')\n // Remove atx-style headers\n .replace(/^(\\n)?\\s{0,}#{1,6}\\s+| {0,}(\\n)?\\s{0,}#{0,} {0,}(\\n)?\\s{0,}$/gm, '$1$2$3')\n // Remove emphasis (repeat the line to remove double emphasis)\n .replace(/([\\*_]{1,3})(\\S.*?\\S{0,1})\\1/g, '$2')\n .replace(/([\\*_]{1,3})(\\S.*?\\S{0,1})\\1/g, '$2')\n // Remove code blocks\n .replace(/(`{3,})(.*?)\\1/gm, '$2')\n // Remove inline code\n .replace(/`(.+?)`/g, '$1')\n // Replace two or more newlines with exactly two? Not entirely sure this belongs here...\n .replace(/\\n{2,}/g, '\\n\\n')\n } catch (e) {\n console.error(e)\n return md\n }\n return output\n }\n\n public floatStr(input: string | number) {\n if (input) {\n if (typeof input === 'number') {\n input = input.toString()\n }\n return parseFloat(input.replace(',', '.')).toFixed(2)\n }\n return '0.00'\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ParseJwtService {\n\n private _atob(string: string): string {\n return Buffer.from(string, 'base64').toString(\"binary\");// atob(string)\n }\n\n public parseJwt(token?: string) {\n if (token !== undefined && token !== null && token !== \"\") {\n var base64Url = token.split(\".\")[1];\n var base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n var jsonPayload = decodeURIComponent(\n this._atob(base64)\n .split(\"\")\n .map(c => (\"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2)))\n .join(\"\")\n );\n return JSON.parse(jsonPayload);\n } else {\n return {};\n }\n };\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { LoginResponse, OidcSecurityService} from 'angular-auth-oidc-client';\nimport { lastValueFrom, map, Observable, tap } from 'rxjs';\nimport { AuthConfiguration, EnvironmentConfiguration, RLB_CFG_AUTH, RLB_CFG_ENV } from '../../configuration';\nimport { AppLoggerService, AppStorageService, CookiesService, LoggerContext } from '../../services';\nimport { AuthActions, authsFeatureKey, BaseState } from '../../store';\nimport { ParseJwtService } from './parse-jwt.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticationService {\n modal!: Window | null;\n private logger: LoggerContext;\n\n constructor(\n private oidcSecurityService: OidcSecurityService,\n private cookiesService: CookiesService,\n private router: Router,\n private readonly parseJwtService: ParseJwtService,\n private readonly store: Store<BaseState>,\n private readonly log: AppLoggerService,\n private readonly localStorage: AppStorageService,\n @Optional() @Inject(RLB_CFG_ENV) private envConfig: EnvironmentConfiguration,\n @Optional() @Inject(RLB_CFG_AUTH) private authConfig: AuthConfiguration\n ) {\n this.logger = this.log.for(this.constructor.name);\n this.logger.log('AuthenticationService initialized');\n }\n\n public get oidc(): OidcSecurityService {\n return this.oidcSecurityService;\n }\n\n get config(): AuthConfiguration {\n return this.authConfig;\n }\n\n get currentProvider() {\n const currentProvider = this.store.selectSignal((state) => state[authsFeatureKey].currentProvider)();\n return this.authConfig?.providers.find((provider) => provider.configId === currentProvider);\n }\n\n public checkAuthMultiple(url?: string | undefined): Observable<LoginResponse[]> {\n // if (Capacitor.isNativePlatform()) {\n // console.log('Capacitor is native platform')\n // App.addListener('appUrlOpen', async ({ url }: { url: string }) => {\n // await this.zone.run(async () => {\n // const _url = `${environment.baseUrl}/${url.slice(url.indexOf('?'))}`\n // this.authorize(_url).subscribe();\n // })\n // });\n // } else {\n return this.oidc.checkAuthMultiple(url)\n .pipe(tap(data => {\n const authenticatedConfig = data.find(o => o.isAuthenticated);\n if (authenticatedConfig && authenticatedConfig.configId) {\n this.logger.info(`User is authenticated with provider: ${authenticatedConfig.configId}. Updating Store.`);\n\n // first dispatch to prevent recalculate in apps service\n this.store.dispatch(AuthActions.setCurrentProvider({\n currentProvider: authenticatedConfig.configId\n }));\n\n const redirect = this.localStorage.readLocal('loginRedirectUrl');\n\n //const redirect = this.cookiesService.getCookie('loginRedirectUrl');\n this.logger.info(`Correct provider dispatched, redirectUrl: ${redirect}`);\n if (redirect) {\n this.localStorage.removeLocal('loginRedirectUrl');\n // this.cookiesService.deleteCookie('loginRedirectUrl');\n\n // setTimeout to prevent NavigationCancel\n // this allows current angular navigation cycle (handle URL with code/state) to complete\n setTimeout(() => {\n this.router.navigateByUrl(redirect, { replaceUrl: true });\n }, 0);\n } else {\n this.logger.info(`User authenticated, no redirectUrl found. Staying on current route.`);\n }\n } else {\n this.logger.warn(`No authenticatedConfig found for ${url}`);\n }\n }));\n //}\n }\n\n public login(targetUrl?: string) {\n const returnUrl = targetUrl || this.router.url || '/';\n // this.cookiesService.setCookie('loginRedirectUrl', returnUrl, 1);\n this.localStorage.writeLocal('loginRedirectUrl', returnUrl);\n this.logger.log(`call login method, loginRedirectUrl: ${returnUrl}`);\n // electron\n if (typeof (process) !== 'undefined' &&\n typeof (process?.version) !== 'undefined' &&\n typeof (process?.versions['electron']) !== undefined) {\n const urlHandler = (authUrl: string) => {\n console.log(authUrl);\n this.modal = window.open(authUrl, '_blank', 'nodeIntegration=no');\n };\n return this.oidc.authorize(this.currentProvider?.configId, { urlHandler });\n }\n // capacitor\n // else if (Capacitor.isNativePlatform()) {\n // const urlHandler = async (url: string) => {\n // console.log('opening', url);\n // await Browser.open({ url, windowName: '_self' })\n // };\n // this.oidc.authorize(config, { urlHandler });\n // }\n // browser\n else {\n return this.oidc.authorize(this.currentProvider?.configId);\n }\n }\n\n async logout() {\n await lastValueFrom(this.oidc.logoff(this.currentProvider?.configId));\n }\n\n logout$() {\n return this.oidc.logoff(this.currentProvider?.configId);\n }\n\n public get userInfo$(): Observable<any> {\n return this.oidc.userData$.pipe(map((userData) => {\n const user = userData.allUserData.find(o => o.configId === this.currentProvider?.configId);\n return user ? user.userData : null;\n }));\n }\n\n public get isAuthenticated$(): Observable<boolean> {\n return this.oidc.isAuthenticated$.pipe(map((isAuthenticated) => {\n // this.logger.log(`oidc isAuthenticated$ check, response: ${JSON.stringify(isAuthenticated)}; looking for isAuthenticated of ${this.currentProvider?.configId} configId`);\n return isAuthenticated.allConfigsAuthenticated.find(o => o.configId === this.currentProvider?.configId)?.isAuthenticated || false;\n }));\n }\n\n public get accessToken$(): Observable<string | undefined> {\n return this.oidc.getAccessToken(this.currentProvider?.configId);\n }\n\n public get idToken$(): Observable<string | undefined> {\n return this.oidc.getIdToken(this.currentProvider?.configId);\n }\n\n public get refreshToken$(): Observable<string | undefined> {\n return this.oidc.getRefreshToken(this.currentProvider?.configId);\n }\n\n public get roles$(): Observable<string[]> {\n return this.accessToken$.pipe(\n map((token) => (this.parseJwtService.parseJwt(token))),\n map((payload) => payload['roles'] as string[]),\n );\n }\n\n public matchRoles(roles: string[]): Observable<boolean> {\n return this.accessToken$.pipe(\n map(token => this.parseJwtService.parseJwt(token)),\n map(payload => payload['roles'] as string[]),\n map(userRoles => roles.some(role => userRoles.includes(role))),\n );\n }\n\n}\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { Observable, switchMap, map } from 'rxjs';\nimport { AuthenticationService } from \"./services/auth.service\";\nimport { IConfiguration, RLB_CFG } from \"../configuration\";\n\n@Injectable()\nexport class TokenOauthInterceptor implements HttpInterceptor {\n\n constructor(\n private authenticationService: AuthenticationService,\n @Inject(RLB_CFG) private appconfig: IConfiguration\n ) { }\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const endpoints = !this.appconfig.endpoints ? [] : Object.values(this.appconfig.endpoints).filter(e => e.auth && !e.wss)\n if (!endpoints.some(e => request.url.includes(e.baseUrl))) {\n return next.handle(request);\n }\n return this.authenticationService.accessToken$.pipe(\n switchMap(token => {\n if (token) {\n const newRequest = request.clone({\n setHeaders: { Authorization: `Bearer ${token}` }\n });\n return next.handle(newRequest);\n }\n return next.handle(request);\n })\n );\n }\n}\n","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { EnvironmentProviders, makeEnvironmentProviders, Provider } from \"@angular/core\";\nimport {\n\tAbstractLoggerService,\n\tAbstractSecurityStorage,\n\tAuthInterceptor,\n\tAuthModule,\n\tLogLevel,\n\tprovideAuth\n} from \"angular-auth-oidc-client\";\nimport { AuthConfiguration, RLB_CFG_AUTH } from \"../configuration\";\nimport { TokenCookiesService } from \"./providers/token-cookies.service\";\nimport { TokenSessionService } from \"./providers/token-session.service\";\nimport { TokenStoreService } from \"./providers/token-store.service\";\nimport { AppLoggerService } from \"../services/apps/app-logger.service\";\nimport { TokenOauthInterceptor } from \"./token-oauth-interceptor\";\n\nexport function provideRlbCodeBrowserOAuth(auth: AuthConfiguration | undefined): EnvironmentProviders {\n if (!auth || auth.protocol !== 'oauth') return makeEnvironmentProviders([]);\n const providers: (Provider | EnvironmentProviders)[] = [\n { provide: RLB_CFG_AUTH, useValue: auth },\n { provide: AbstractLoggerService, useClass: AppLoggerService },\n AuthModule,\n provideAuth({\n config: auth.providers.map((_auth) => ({\n ..._auth,\n secureRoutes: auth.allowedUrls,\n responseType: 'code',\n silentRenew: true,\n useRefreshToken: true,\n autoUserInfo: true,\n renewUserInfoAfterTokenRenew: true,\n ignoreNonceAfterRefresh: true,\n renewTimeBeforeTokenExpiresInSeconds: 30,\n }))\n }),\n ];\n if (auth.interceptor === 'oauth-code-all') {\n providers.push({ provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true });\n }\n if (auth.interceptor === 'oauth-code-ep') {\n providers.push({ provide: HTTP_INTERCEPTORS, useClass: TokenOauthInterceptor, multi: true });\n }\n if (auth.storage === 'cookies') {\n providers.push({ provide: AbstractSecurityStorage, useClass: TokenCookiesService });\n }\n if (auth.storage === 'localStorage') {\n providers.push({ provide: AbstractSecurityStorage, useClass: TokenStoreService },);\n }\n if (auth.storage === 'sessionStorage') {\n providers.push({ provide: AbstractSecurityStorage, useClass: TokenSessionService },);\n }\n\n return makeEnvironmentProviders(providers);\n}\n","import { Inject, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { CmsConfiguration, RLB_CFG_CMS } from '../../configuration';\n\n@Pipe({\n name: 'cms',\n standalone: false\n})\nexport class CmsPipe implements PipeTransform {\n\n constructor(@Inject(RLB_CFG_CMS) @Optional() private cmsOptions: CmsConfiguration) { }\n\n transform(value: string, ...args: unknown[]): string {\n let cms = this.cmsOptions.endpoint\n if (!cms) {\n return value\n }\n if (cms.endsWith(\"/\")) {\n cms = cms.substring(0, cms.length - 1)\n }\n if (value.startsWith(\"/\")) {\n value = value.substring(1)\n }\n return `${cms}/${value}`\n }\n\n}\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { BreadcrumbItem } from '@open-rlb/ng-bootstrap';\nimport { EMPTY, Subscription, switchMap } from 'rxjs';\nimport { LanguageService, Page, StrapiService, AbstractMdService } from '../../services';\nimport { CmsConfiguration, RLB_CFG_CMS } from '../../configuration';\n\n@Component({\n selector: 'rlb-cms-template',\n templateUrl: './cms.component.html',\n styleUrl: './cms.component.scss',\n standalone: false\n})\nexport class CmsComponent {\n\n constructor(\n private strapiService: StrapiService,\n private languageService: LanguageService,\n @Inject(RLB_CFG_CMS) @Optional() private cmsOptions: CmsConfiguration,\n @Optional() private mdService?: AbstractMdService\n ) { }\n\n @Input()\n contentId: string | undefined\n\n @Input()\n breadcrumb: BreadcrumbItem[] | undefined\n\n public page: Page | undefined\n\n private subscriptionLang!: Subscription\n private subscriptionPage!: Subscription\n\n ngOnDestroy() {\n this.subscriptionLang?.unsubscribe()\n this.subscriptionPage?.unsubscribe()\n }\n\n ngOnInit() {\n const lang = this.cmsOptions.useAppLanguage ? this.languageService.language : this.languageService.contentLanguage\n const page$ = this.strapiService.fetchPage(lang || this.languageService.defaultLanguage, this.contentId || '')\n this.subscriptionLang = this.languageService.languageChanged$.pipe(\n switchMap(langEvent => {\n if (langEvent.lang) {\n return page$\n }\n return EMPTY\n })).subscribe(p => this.page = p)\n this.subscriptionPage = page$.subscribe(p => this.page = p)\n }\n\n public md(md: string): string {\n if (this.cmsOptions.markdown === 'ignore') {\n return md;\n }\n else {\n if (!this.mdService) {\n throw new Error('No MdService provided')\n }\n else if (this.cmsOptions.markdown === 'text') {\n return this.mdService.md2text(md)\n }\n else if (this.cmsOptions.markdown === 'html') {\n return this.mdService.md2html(md)\n }\n }\n return md;\n }\n}\n\n","<div>\n <div class=\"container\" *ngIf=\"page\">\n <div class=\"row my-4\" *ngIf=\"breadcrumb\">\n <div class=\"col-12\">\n <rlb-breadcrumb [items]=\"breadcrumb\"></rlb-breadcrumb>\n </div>\n </div>\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <h1 class=\"text-center\">{{page.Title}}</h1>\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"page.Content\">\n <div class=\"col-12\">\n <div [innerHTML]=\"page.Content \"></div>\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"page.page_tabs.length>0\">\n <div class=\"col-12\">\n <rlb-tabs>\n <rlb-tab *ngFor=\"let tab of page.page_tabs; let i = index\" [target]=\"'cms-tab-'+i\">\n {{tab.Title}}\n </rlb-tab>\n </rlb-tabs>\n <rlb-tab-content>\n <rlb-tab-pane *ngFor=\"let tab of page.page_tabs; let i = index\" [id]=\"'cms-tab-'+i\">\n <div class=\"container-fluid\">\n <div class=\"row my-4\" *ngIf=\"tab.Content\">\n <div class=\"col-12\">\n <div [innerHTML]=\"tab.Content \"></div>\n </div>\n </div>\n <div class=\"row my-4 mx-auto card-steps\" *ngFor=\"let step of tab.steps; let i = index\"\n style=\"max-width: 350px; border-bottom: 1px solid rgb(192, 198, 204);\">\n <div class=\"col-8\">\n <div class=\"pb-2\">\n <div style=\"height: 54px; min-width: 54px; width: 54px; border: 5px solid rgb(192, 198, 204);\"\n class=\"round-counter\">\n <span class=\"red\">{{i+1}}</span>\n </div>\n </div>\n <div>\n <div [innerHTML]=\"step.Content \"></div>\n </div>\n </div>\n <div class=\"col-4 pb-2\">\n <img [src]=\"step.Picture.url|cms\">\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"tab.faqs.length>0\">\n <div class=\"col-12\">\n <h2 class=\"py-3\">{{tab.FaqTitle}}</h2>\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"tab.faqs.length>0 && tab.FaqContent\">\n <div class=\"col-12\">\n <div [innerHTML]=\"tab.FaqContent \"></div>\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"tab.faqs.length>0\">\n <div class=\"col-12\">\n <rlb-accordion>\n <div rlb-accordion-item [expanded]=\"true\" *ngFor=\"let faq of tab.faqs\">\n <rlb-accordion-header>\n {{faq.Title}}\n </rlb-accordion-header>\n <div rlb-accordion-body>\n <div [innerHTML]=\"faq.Content\"> </div>\n </div>\n </div>\n </rlb-accordion>\n </div>\n </div>\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <span>\n <a routerLink=\"/support\">\n <i class=\"bi bi-info-circle-fill\" style=\"margin-bottom: -6px;margin-right: 6px;\"></i>\n <span>{{'pages.support.infoPage' | translate}}</span>\n </a>\n </span>\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"page.topics.length>0\" style=\"padding: 4px\">\n <div class=\"col-lg-6 col-md-12 col-sm-12 col-xs-12\" *ngFor=\"let topic of page.topics\">\n <a [routerLink]=\"'/informations/'+topic.page.ContentId\" style=\"color: inherit;text-decoration: none;\">\n <div class=\"card mb-4\" style=\"min-height: 230px;\">\n <img [src]=\"topic.Picture.url | cms\" class=\"card-img-top\"\n style=\"height: 91px; margin: 16px -16px;\">\n <div class=\"card-body\">\n <h5 class=\"card-title\">{{topic.Title}}</h5>\n <div class=\"card-text\" [innerHTML]=\"topic.Content \"></div>\n </div>\n </div>\n </a>\n </div>\n </div>\n </div>\n </rlb-tab-pane>\n </rlb-tab-content>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'rlb-cms-content',\n templateUrl: './cms-content.component.html',\n styleUrl: './cms-content.component.scss',\n standalone: false\n})\nexport class CmsContentComponent {\n\n constructor(private route: ActivatedRoute) { }\n\n public get contentId() {\n return this.route.snapshot.params['id']\n }\n\n}\n","<rlb-cms-template [contentId]=\"contentId\"></rlb-cms-template>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rlb-cookies',\n templateUrl: './cookies.component.html',\n styleUrl: './cookies.component.scss',\n standalone: false\n})\nexport class CookiesComponent {\n\n}\n","<rlb-cms-template contentId=\"adb_cookies\"></rlb-cms-template>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rlb-not-found',\n templateUrl: './not-found.component.html',\n styleUrl: './not-found.component.scss',\n standalone: false\n})\nexport class NotFoundComponent {\n\n}\n","<div class=\"container\" style=\"height:calc(100vh - 58px);\">\n <div class=\"align-center\">\n <div class=\"text-center\">\n <h1 class=\"text-primary\">\n {{ 'pages.notFound.title' | translate }}\n </h1>\n <p>{{ 'pages.notFound.content' | translate }}</p><a href=\"/\" class=\"btn btn-outline-primary\">\n <span>\n {{ 'pages.notFound.button' | translate }}\n </span></a>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rlb-privacy',\n templateUrl: './privacy.component.html',\n styleUrl: './privacy.component.scss',\n standalone: false\n})\nexport class PrivacyComponent {\n\n}\n","<rlb-cms-template contentId=\"adb_privacy\"></rlb-cms-template>","import { Component } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { AbstractSupportService } from '../../services/abstraction/abstract-support.service';\nimport { Location } from '@angular/common';\n\n@Component({\n selector: 'rlb-support',\n templateUrl: './support.component.html',\n styleUrl: './support.component.scss',\n standalone: false\n})\nexport class SupportComponent {\n\n public supportForm: FormGroup\n\n constructor(private supportService: AbstractSupportService, private _location: Location) {\n this.supportForm = new FormGroup({\n name: new FormControl('', [Validators.required]),\n email: new FormControl('', [Validators.required, Validators.email]),\n subject: new FormControl('', [Validators.required]),\n message: new FormControl('', [Validators.required]),\n legal: new FormControl('', [Validators.required]),\n })\n }\n\n public hasError(form: string, controlName: string, errorName: string) {\n switch (form) {\n case 'supportForm':\n return this.supportForm.controls[controlName].hasError(errorName)\n default: return false\n }\n }\n\n public sendSupport(data: any) {\n if (this.supportForm.valid) {\n this.supportService.sendSupport(data)\n }\n }\n\n backClicked() {\n this._location.back();\n }\n\n ngOnInit() { }\n}\n","<div class=\"container mt-2 mb-5\">\n <div class=\"container text-center position-relative my-3\">\n <h3>{{ 'pages.support.title' | translate}}</h3>\n <i role=\"button\" class=\"bi bi-chevron-left position-absolute start-0 top-50 translate-middle-y\"\n style=\"font-size: 25px;font-weight: 600;\" (click)=\"backClicked()\"></i>\n </div>\n <form [formGroup]=\"supportForm\" class=\"needs-validation\" (ngSubmit)=\"sendSupport(supportForm.value)\">\n <rlb-list class=\"settings\">\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'pages.support.name' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input type=\"text\" size=\"small\" formControlName=\"name\" />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'pages.support.email' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input type=\"text\" size=\"small\" formControlName=\"email\" />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'pages.support.subject' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input type=\"text\" size=\"small\" formControlName=\"subject\" />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'pages.support.message' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input type=\"text\" size=\"small\" formControlName=\"message\" />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'pages.support.legal' | translate}}</h6>\n <span>{{ 'pages.support.infoPage' | translate}}</span>\n </div>\n <div class=\"settings-control\">\n <rlb-switch size=\"small\" formControlName=\"legal\" />\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n </form>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rlb-terms-and-conditions',\n templateUrl: './terms-and-conditions.component.html',\n styleUrl: './terms-and-conditions.component.scss',\n standalone: false\n})\nexport class TermsAndConditionsComponent {\n\n}\n","<rlb-cms-template contentId=\"adb_terms\"></rlb-cms-template>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'asMulti',\n standalone: false\n})\nexport class AsMultiPipe implements PipeTransform {\n\n transform<T>(value: T | T[]): T[] {\n if(!Array.isArray(value)) {\n return [value];\n }\n return value as T[];\n }\n}\n\n@Pipe({\n name: 'asSingle',\n standalone: false\n})\nexport class AsSinglePipe implements PipeTransform {\n\n transform<T>(value: T | T[]): T {\n if(Array.isArray(value)) {\n return value[0];\n }\n return value as T;\n }\n}\n","import { Inject, Pipe, PipeTransform, Type } from \"@angular/core\";\nimport { NavbarComponents, RLB_APP_NAVCOMP } from \"../../configuration\";\n\n\n@Pipe({\n name: 'leftComponent',\n standalone: false\n})\nexport class LeftComponentPipe implements PipeTransform {\n\n constructor(@Inject(RLB_APP_NAVCOMP) private config: NavbarComponents) { }\n\n transform(value: string): Type<any> {\n const t = this.config.left.find(c => c.name === value)?.component;\n if (!t) {\n throw new Error(`No component found for name ${value}`);\n }\n return t;\n }\n}","import { Inject, Pipe, PipeTransform, Type } from \"@angular/core\";\nimport { NavbarComponents, RLB_APP_NAVCOMP } from \"../../configuration\";\n\n@Pipe({\n name: 'rightComponent',\n standalone: false\n})\nexport class RightComponentPipe implements PipeTransform {\n\n constructor(@Inject(RLB_APP_NAVCOMP) private config: NavbarComponents) { }\n\n transform(value: string): Type<any> {\n const t = this.config.right.find(c => c.name === value)?.component;\n if (!t) {\n throw new Error(`No component found for name ${value}`);\n }\n return t;\n }\n}","import { Component, Inject, Input, OnDestroy } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { NavigableItem, SidebarNavigableItem } from '@open-rlb/ng-bootstrap';\nimport { Subscription } from 'rxjs';\nimport { EnvironmentConfiguration, RLB_CFG_ENV } from '../../configuration';\nimport { AppsService } from '../../services';\nimport { appContextFeatureKey, AuthActions, BaseState, NavbarActions, SidebarActions } from '../../store';\nimport { navbarsFeatureKey } from '../../store/navbar/navbar.model';\nimport { sidebarsFeatureKey } from '../../store/sidebar/sidebar.model';\nimport { AuthenticationService } from '../../auth/services/auth.service';\n\n@Component({\n selector: 'rlb-app-template',\n templateUrl: './app.component.html',\n styleUrl: './app.component.scss',\n standalone: false\n})\nexport class AppTemplateComponent implements OnDestroy {\n\n private navbarItemsSubscription: Subscription | undefined;\n private sidebarItemsSubscription: Subscription | undefined;\n private sidebarFooterItemsSubscription: Subscription | undefined;\n public navSearchText: string | null = null;\n public navbarItems: NavigableItem[] = [];\n public sidebarItems: NavigableItem[] = [];\n public sidebarFooterItems: NavigableItem[] = [];\n\n @Input('modal-container-id') modalContainerId!: string;\n @Input('toast-container-ids') toastContainerIds!: string | string[];\n\n constructor(\n @Inject(RLB_CFG_ENV) public env: EnvironmentConfiguration,\n public store: Store<BaseState>,\n public appsService: AppsService,\n private readonly authService: AuthenticationService\n ) { }\n\n ngOnDestroy(): void {\n this.navbarItemsSubscription?.unsubscribe();\n this.sidebarItemsSubscription?.unsubscribe();\n this.sidebarFooterItemsSubscription?.unsubscribe();\n }\n\n get sidebarVisible$() {\n return this.store.select(state => state[sidebarsFeatureKey].visible);\n }\n\n get sidearHasLogin$() {\n return this.store.select(state => state[sidebarsFeatureKey].loginVisible);\n }\n\n get sidearHasSearch$() {\n return this.store.select(state => state[sidebarsFeatureKey].searchVisible);\n }\n\n get sidebarItems$() {\n return this.store.select(state => state[sidebarsFeatureKey].items);\n }\n\n setSidearSearchText(text: string | null) {\n this.store.dispatch(SidebarActions.setSearchText({ text }));\n }\n\n setNavbarSearchText(text: string | null) {\n this.store.dispatch(NavbarActions.setSearchText({ text }));\n }\n\n get sidearHasSettings$() {\n return this.store.select(state => state[sidebarsFeatureKey].settingsVisible);\n }\n\n get sidearAppsVisible$() {\n return this.store.select(state => state[sidebarsFeatureKey].appsVisible);\n }\n\n get navVisible$() {\n return this.store.select(state => state[navbarsFeatureKey].visible);\n }\n\n get navSearchVisible$() {\n return this.store.select(state => state[navbarsFeatureKey].searchVisible);\n }\n\n get navHeader$() {\n return this.store.select(state => state[navbarsFeatureKey].header);\n }\n\n get isAuth$() {\n return this.authService.isAuthenticated$;\n }\n\n get user$() {\n return this.authService.userInfo$;\n }\n\n get navLeftItems$() {\n return this.store.select(state => state[navbarsFeatureKey].leftItems);\n }\n\n get navRightItems$() {\n return this.store.select(state => state[navbarsFeatureKey].rightItems);\n }\n\n get theme() {\n return this.store.selectSignal(state => state[appContextFeatureKey].theme)();\n }\n\n get navbarHasLogin$() {\n return this.store.select(state => state[navbarsFeatureKey].loginVisible);\n }\n\n get navbarHasSettings$() {\n return this.store.select(state => state[navbarsFeatureKey].loginVisible);\n }\n\n get navbarHasApps$() {\n return this.store.select(state => state[navbarsFeatureKey].loginVisible);\n }\n\n get apps() {\n return this.appsService.apps;\n }\n\n get separatorVisible$() {\n return this.store.select(state => state[navbarsFeatureKey].separatorVisible);\n }\n\n loginNav(event: MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this.store.dispatch(AuthActions.login());\n }\n\n onSideBarItemClick(item: SidebarNavigableItem) {\n if (item.externalUrl) {\n window.open(item.externalUrl, '_blank')?.focus();\n }\n }\n}\n","<div class=\"rlb-app\">\n <rlb-sidebar id=\"sidebar\" class=\"rlb-sidebar\" *ngIf=\"(sidebarVisible$ | async)\">\n <rlb-sidebar-item\n\t\t\t*ngFor=\"let item of (sidebarItems$ | async)\"\n\t\t\t[icon]=\"item.icon\" [link]=\"item.url\"\n [title]=\"item.title\" [label]=\"item.label\"\n\t\t\t[badgeCounter]=\"item.badgeCounter\"\n (click)=\"onSideBarItemClick(item)\"\n >\n\t\t\t{{item.label}}\n <rlb-sidebar-item\n\t\t\t\t*ngFor=\"let subitem of item.items || []\"\n\t\t\t\t[icon]=\"subitem.icon\"\n\t\t\t\t[link]=\"subitem.url\"\n [title]=\"subitem.title\"\n\t\t\t\t[label]=\"subitem.label\"\n\t\t\t\t[badgeCounter]=\"subitem.badgeCounter\"\n (click)=\"onSideBarItemClick(subitem)\"\n\t\t\t>\n\t\t\t\t{{subitem.label}}\n </rlb-sidebar-item>\n </rlb-sidebar-item>\n </rlb-sidebar>\n <ng-container *ngIf=\"navVisible$ | async\">\n <rlb-navbar expand=\"lg\" *ngIf=\"navVisible$ | async\" class=\"border-bottom py-1 rlb-navbar\">\n <a *ngIf=\"navHeader$ | async\" rlb-navbar-brand href=\"#\">{{ navHeader$ | async }}</a>\n <rlb-navbar-form *ngIf=\"navSearchVisible$ | async\">\n <rlb-input-group class=\"my-1 mx-3\" validate>\n <rlb-input type=\"search\" class=\"search-input\" placeholder=\"Search\" [(ngModel)]=\"navSearchText\"\n (keyup.enter)=\"setNavbarSearchText(navSearchText)\" name=\"search\" size=\"small\">\n <button after rlb-button outline type=\"submit\" (click)=\"setNavbarSearchText(navSearchText)\" size=\"sm\">\n <i class=\"bi bi-search\"></i>\n </button>\n </rlb-input>\n </rlb-input-group>\n </rlb-navbar-form>\n <rlb-navbar-items class=\"ms-lg-auto\">\n <ng-container ngProjectAs=\"rlb-navbar-item\" *ngFor=\"let navComponent of navLeftItems$ | async\">\n <ng-container *ngComponentOutlet=\"navComponent | leftComponent\"></ng-container>\n </ng-container>\n </rlb-navbar-items>\n <rlb-navbar-items>\n <ng-container ngProjectAs=\"rlb-navbar-item\" *ngFor=\"let navComponent of navRightItems$ | async\">\n <ng-container *ngComponentOutlet=\"navComponent | rightComponent\"></ng-container>\n </ng-container>\n <rlb-navbar-separator *ngIf=\"(separatorVisible$ | async)\" />\n <rlb-navbar-item *ngIf=\"(navbarHasLogin$ | async) && !(isAuth$ | async)\" (click)=\"loginNav($event)\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.account.login') |translate\">\n <i class=\" bi bi-box-arrow-in-left\"></i>\n </span>\n\t\t\t\t\t<span class=\"ms-1 d-lg-none\">{{'core.account.login' | translate}}</span>\n\t\t\t\t</rlb-navbar-item>\n <rlb-navbar-item *ngIf=\" (navbarHasLogin$ | async) && (isAuth$ | async)\" [router-link]=\"'/profile'\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.account.title') |translate\">\n <i class=\"bi bi-person\"></i>\n </span>\n\t\t\t\t\t<span class=\"ms-1 d-lg-none\">{{'core.account.title' | translate}}</span>\n\t\t\t\t</rlb-navbar-item>\n <rlb-navbar-item *ngIf=\"navbarHasSettings$ | async\" [router-link]=\"'/setting'\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.settings.title') |translate\">\n <i class=\"bi bi-gear\"></i>\n </span>\n\t\t\t\t\t<span class=\"ms-1 d-lg-none\">{{'core.settings.title' | translate}}</span>\n\t\t\t\t</rlb-navbar-item>\n <rlb-navbar-item *ngIf=\"(navbarHasApps$ | async) && apps.length > 1\" [router-link]=\"'/apps'\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.apps.button') |translate\">\n <i class=\"bi bi-grid-3x3-gap-fill\"></i>\n </span>\n\t\t\t\t\t<span class=\"ms-1 d-lg-none\">{{'core.apps.button' | translate}}</span>\n\t\t\t\t</rlb-navbar-item>\n </rlb-navbar-items>\n </rlb-navbar>\n </ng-container>\n <div class=\"rlb-content\" [class.rlb-sidebar-en]=\"(sidebarVisible$ | async)\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<ng-container *ngIf=\"modalContainerId\">\n <rlb-modal-container [id]=\"modalContainerId\" />\n</ng-container>\n\n<ng-container *ngIf=\"toastContainerIds\">\n <ng-container *ngIf=\"toastContainerIds.constructor.name === 'Array'; else toastContainerIdsIsNotArray\">\n <rlb-toast-container *ngFor=\"let toastContainerId of toastContainerIds | asMulti\" [id]=\"toastContainerId\" />\n </ng-container>\n <ng-template #toastContainerIdsIsNotArray>\n <rlb-toast-container class=\"position-fixed bottom-0 end-0 p-3\" [id]=\"toastContainerIds | asSingle\" />\n </ng-template>\n</ng-container>\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { isPlatformServer } from '@angular/common';\nimport { Component, Inject, Input, OnInit, PLATFORM_ID } from '@angular/core';\nimport { BreadcrumbItem } from '@open-rlb/ng-bootstrap';\nimport { map, Observable, of, shareReplay } from 'rxjs';\n\n@Component({\n selector: 'rlb-base-template',\n templateUrl: './base.component.html',\n styleUrls: ['./base.component.scss'],\n standalone: false\n})\nexport class BaseComponent implements OnInit {\n\n constructor(\n private breakpointObserver: BreakpointObserver,\n @Inject(PLATFORM_ID) private platformId: Object\n ) { }\n\n @Input()\n breadcrumb: BreadcrumbItem[] | undefined;\n\n @Input()\n title!: string;\n\n @Input()\n subtitle!: string;\n\n get isHandset$(): Observable<boolean> {\n if (isPlatformServer(this.platformId)) {\n return of(true);\n } else {\n return this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(map(result => result.matches), shareReplay());\n }\n }\n\n ngOnInit() { }\n\n}\n\n","<div class=\" mb-3\">\n <div class=\"container-fluid\" *ngIf=\"!(isHandset$ | async) else mobileMode\">\n <div class=\"row mt-1\">\n <div class=\"col-xl-8 col-lg-10 col-md-12 col-sm-12 col-xs-12 mx-auto\">\n <div class=\"row\">\n <div class=\"col-12 pb-0\">\n <rlb-breadcrumb *ngIf=\"breadcrumb\" [items]=\"breadcrumb\"></rlb-breadcrumb>\n <h1 class=\"pt-5 pb-0 text-center\">\n {{title}}\n </h1>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"subtitle\">\n <div class=\"col-12 pb-12\">\n <span class=\"d-block text-h6 text-center\">\n {{subtitle}}\n </span>\n </div>\n </div>\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n </div>\n </div>\n </div>\n <ng-template class=\"container-fluid\" #mobileMode>\n <div class=\"row\">\n <div class=\"col-12 pb-0\">\n <h1 class=\"pt-5 pb-0 text-center\">\n {{title}}\n </h1>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"subtitle\">\n <div class=\"col-12 pb-7\">\n <div class=\"d-block text-h6 text-center\">\n {{subtitle}}\n </div>\n </div>\n </div>\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"mobile\"></ng-container>\n </ng-template>\n </div>\n \n <ng-template #all>\n <ng-content select=\"[all]\"></ng-content>\n </ng-template>\n \n <ng-template #default>\n <ng-content select=\"[default]\"></ng-content>\n </ng-template>\n \n <ng-template #mobile>\n <ng-content select=\"[mobile]\"></ng-content>\n </ng-template>","import { Component, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Observable, map, of, shareReplay } from 'rxjs';\n\n@Component({\n selector: 'rlb-content-template',\n templateUrl: './content.component.html',\n styleUrl: './content.component.scss',\n standalone: false\n})\nexport class ContentComponent {\n constructor(\n private breakpointObserver: BreakpointObserver,\n @Inject(PLATFORM_ID) private platformId: Object) { }\n\n get isHandset$(): Observable<boolean> {\n if (isPlatformServer(this.platformId)) {\n return of(true)\n } else {\n return this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(map(result => result.matches), shareReplay())\n }\n }\n\n ngOnInit() { }\n}\n","<div class=\" mb-3\">\n <div class=\"container-fluid\" *ngIf=\"!(isHandset$ | async) else mobileMode\">\n <div class=\"row mt-1\">\n <div class=\"mx-auto col-sm-12 col-md-8 col-lg-9 col-xl-8\">\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n </div>\n </div>\n </div>\n <ng-template class=\"container-fluid\" #mobileMode>\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"mobile\"></ng-container>\n </ng-template>\n </div>\n \n <ng-template #all>\n <ng-content select=\"[all]\"></ng-content>\n </ng-template>\n \n <ng-template #default>\n <ng-content select=\"[default]\"></ng-content>\n </ng-template>\n \n <ng-template #mobile>\n <ng-content select=\"[mobile]\"></ng-content>\n </ng-template>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate',\n standalone: false\n})\nexport class TruncatePipe implements PipeTransform {\n\n transform(value?: string, limit = 25, completeWords = false, ellipsis = '...') {\n if (!value) return value;\n if (completeWords) {\n limit = value.slice(0, limit).lastIndexOf(' ');\n }\n return value.length > limit ? value.slice(0, limit) + ellipsis : value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst pattern =\n /(^|[\\s\\n]|<[A-Za-z]*\\/?>)((?:https?|ftp):\\/\\/[\\-A-Z0-9+\\u0026\\u2019@#\\/%?=()~_|!:,.;]*[\\-A-Z0-9+\\u0026@#\\/%=~()_|])/gi;\n\n@Pipe({\n name: 'autolink',\n standalone: false\n})\nexport class AutolinkPipe implements PipeTransform {\n transform(\n value?: string,\n target?: string,\n rel?: string,\n id?: string,\n ): string {\n if (!value) {\n return '';\n }\n value = value\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;');\n const _target: string = target ? `target=\"${target}\"` : '';\n const _rel: string = rel ? `rel=\"${rel}\"` : '';\n const _id: string = id ? `id=\"${id}\"` : '';\n const linkAttributes = [_target, _rel, _id].join(' ').trim();\n return value.replace(pattern, function (match, space, url) {\n const link =\n \"<a href='\" + url + \"'\" + linkAttributes + '>' + url + '</a>';\n return '' + space + link;\n });\n }\n}\n","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Router, RoutesRecognized } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, distinctUntilChanged, filter, map, Subscription, tap } from 'rxjs';\nimport { EnvironmentConfiguration, RLB_CFG_ENV } from '../../configuration';\nimport { AppsService } from '../../services/apps/apps.service';\nimport { AppStorageService } from '../../services/utils/app-storage.service';\nimport { PwaUpdaterService } from '../../services/utils/pwa-updater.service';\nimport {\n\tAppContextActions,\n\tappContextFeatureKey,\n\tAppTheme,\n\tBaseState,\n\tPageTemplate\n} from '../../store';\nimport { AppLoggerService, LoggerContext } from \"../../services\";\n\n@Component({\n selector: 'rlb-app-container',\n templateUrl: './app-container.component.html',\n standalone: false,\n})\nexport class AppContainerComponent implements OnInit, OnDestroy {\n private swUpdateSubscription: Subscription | undefined;\n private readonly templateSubject = new BehaviorSubject<PageTemplate>('app');\n @Input('modal-container-id') modalContainerId!: string;\n @Input('toast-container-ids') toastContainerIds!: string | string[];\n\tprivate logger: LoggerContext;\n\n\n\tconstructor(\n @Inject(RLB_CFG_ENV) public env: EnvironmentConfiguration,\n public store: Store<BaseState>,\n private readonly router: Router,\n private storage: AppStorageService,\n private readonly pwaUpdaterService: PwaUpdaterService,\n private readonly appsService: AppsService,\n\t\tprivate readonly loggerService: AppLoggerService,\n ) {\n\t\tthis.logger = this.loggerService.for(this.constructor.name);\n\n\t\tconst theme: AppTheme = (this.storage.readLocal('theme') || 'dark') as AppTheme;\n this.store.dispatch(AppContextActions.setTheme({ theme }));\n this.store.dispatch(AppContextActions.setLanguage({ language: this.storage.readLocal('locale') || 'en' }));\n this.store\n .select((state) => state[appContextFeatureKey].currentApp)\n\t\t\t.pipe(distinctUntilChanged())\n .subscribe(async (currentApp) => {\n\t\t\t\tthis.logger.info('currentApp:', currentApp);\n\n\t\t\t\tif (!currentApp) return;\n\n\t\t\t\tconst targetUrl = currentApp.navigationUrl ||\n\t\t\t\t\t(currentApp.viewMode === 'app'\n\t\t\t\t\t\t? currentApp.core?.url\n\t\t\t\t\t\t: currentApp.settings?.url);\n\n\t\t\t\tif (!targetUrl) return;\n\n\t\t\t\tconst currentUrl = this.router.url;\n\t\t\t\tthis.logger.info('currentUrl:', currentUrl);\n\t\t\t\tthis.logger.info('targetUrl:', targetUrl);\n\n\t\t\t\tconst normalize = (url: string) => url.replace(/\\/+$/, '');\n\t\t\t\tconst current = normalize(currentUrl);\n\t\t\t\tconst target = normalize(targetUrl);\n\n\t\t\t\tif (current === target || current.startsWith(`${target}/`)) {\n\t\t\t\t\tthis.logger.info('Already within target route, skipping navigation.');\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.info('Navigating to app base URL:', target);\n\t\t\t\t\tawait this.router.navigateByUrl(target);\n\t\t\t\t}\n });\n\n this.router.events\n .pipe(\n filter(event => event instanceof RoutesRecognized),\n map((event: RoutesRecognized) => event?.state?.root?.firstChild?.data?.['template'] || 'app'),\n map(o => o as PageTemplate),\n tap((template: PageTemplate) => this.templateSubject.next(template))\n ).subscribe();\n }\n\n get template$() {\n return this.templateSubject.asObservable();\n }\n\n ngOnDestroy(): void {\n this.swUpdateSubscription?.unsubscribe();\n }\n\n ngOnInit(): void {\n if (this.env.pwaUpdateEnabled) {\n this.swUpdateSubscription = this.pwaUpdaterService.checkWithDialog().subscribe();\n }\n }\n\n}\n\n","<ng-container *ngIf=\"(template$ | async) === 'app'\">\n <rlb-app-template>\n <router-outlet />\n </rlb-app-template>\n</ng-container>\n<ng-container *ngIf=\"(template$ | async) === 'basic'\">\n <router-outlet />\n</ng-container>\n\n\n<ng-container *ngIf=\"modalContainerId\">\n <rlb-modal-container [id]=\"modalContainerId\" />\n</ng-container>\n\n<ng-container *ngIf=\"toastContainerIds\">\n <ng-container *ngIf=\"toastContainerIds.constructor.name === 'Array'; else toastContainerIdsIsNotArray\">\n <rlb-toast-container *ngFor=\"let toastContainerId of toastContainerIds | asMulti\" [id]=\"toastContainerId\" />\n </ng-container>\n <ng-template #toastContainerIdsIsNotArray>\n <rlb-toast-container class=\"position-fixed bottom-0 end-0 p-3\" [id]=\"toastContainerIds | asSingle\" />\n </ng-template>\n</ng-container>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RlbBootstrapModule } from '@open-rlb/ng-bootstrap';\nimport { CmsContentComponent } from './pages/cms-content/cms-content.component';\nimport { CookiesComponent } from './pages/cookies/cookies.component';\nimport { NotFoundComponent } from './pages/not-found/not-found.component';\nimport { PrivacyComponent } from './pages/privacy/privacy.component';\nimport { SupportComponent } from './pages/support/support.component';\nimport { TermsAndConditionsComponent } from './pages/terms-and-conditions/terms-and-conditions.component';\nimport { AsMultiPipe, AsSinglePipe } from './pipes/as/as.pipe';\nimport { CmsPipe } from './pipes/cms/cms.pipe';\nimport { AppTemplateComponent } from './templates/app/app.component';\nimport { BaseComponent } from './templates/base/base.component';\nimport { CmsComponent } from './templates/cms/cms.component';\nimport { ContentComponent } from './templates/content/content.component';\n\nimport { AutolinkPipe, TruncatePipe } from './pipes';\nimport { LeftComponentPipe } from './pipes/left-component/left-component.pipe';\nimport { RightComponentPipe } from './pipes/right-component/right-component.pipe';\nimport { AppContainerComponent } from './templates/app-container/app-container.component';\n\n@NgModule({\n declarations: [\n // pages\n CmsContentComponent,\n CookiesComponent,\n NotFoundComponent,\n PrivacyComponent,\n SupportComponent,\n TermsAndConditionsComponent,\n // pipes\n CmsPipe,\n AsMultiPipe,\n AsSinglePipe,\n LeftComponentPipe,\n RightComponentPipe,\n TruncatePipe,\n AutolinkPipe,\n // templates\n BaseComponent,\n CmsComponent,\n ContentComponent,\n AppTemplateComponent,\n AppContainerComponent\n ],\n exports: [\n // pipes\n CmsPipe,\n AsMultiPipe,\n AsSinglePipe,\n LeftComponentPipe,\n RightComponentPipe,\n TruncatePipe,\n AutolinkPipe,\n // templates\n BaseComponent,\n CmsComponent,\n ContentComponent,\n AppTemplateComponent,\n AppContainerComponent,\n // modules\n TranslateModule,\n RlbBootstrapModule,\n RouterModule,\n FormsModule\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n RlbBootstrapModule,\n RouterModule\n ]\n})\nexport class RlbAppModule { }\n\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { RlbAppModule } from '../rlb-app.module'\nimport { IModal, ModalData, ModalDirective } from '@open-rlb/ng-bootstrap';\n\n@Component({\n imports: [RlbAppModule, CommonModule],\n template: ` <div class=\"modal-header\">\n <h5 class=\"modal-title\">{{ data.title }}</h5>\n <button\n type=\"button\"\n class=\"btn-close\"\n aria-label=\"Close\"\n data-modal-reason=\"close\"\n ></button>\n </div>\n <div class=\"modal-body\">\n <span>{{ data.content }}</span>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-primary\" data-modal-reason=\"close\">\n {{ data.ok }}\n </button>\n </div>`,\n hostDirectives: [\n {\n directive: ModalDirective,\n inputs: ['id', 'data-instance', 'data-options'],\n },\n ]\n})\nexport class ErrorModalComponent implements IModal<string, void>, OnInit {\n data!: ModalData<string>;\n\n onEnter() { }\n\n ngOnInit(): void { }\n}\n\n","import { Component } from \"@angular/core\";\nimport { IModal, ModalData, ModalDirective } from \"@open-rlb/ng-bootstrap\";\nimport { AppInfo } from \"../services/apps/app\";\nimport { RlbAppModule } from \"../rlb-app.module\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n imports: [RlbAppModule, CommonModule],\n template: `\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">{{ data.title }}</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" data-modal-reason=\"close\"></button>\n </div>\n <div class=\"modal-body\">\n <ul class=\"row row-cols-4 list-unstyled list\">\n <li *ngFor=\"let app of data.content\" class=\"col my-2\" [tooltip]=\"app.description | translate\">\n <a class=\"d-block text-body-emphasis text-decoration-none\" (click)=\"appSelected(app)\" [class.disabled]=\"!app.enabled\" data-modal-reason=\"ok\">\n <div class=\"px-3 py-4 mb-2 bg-body-secondary text-center rounded\">\n <i [ngClass]=\"app.icon\"></i>\n </div>\n <div class=\"name text-muted text-decoration-none text-center pt-1\">{{app.name | translate}}</div>\n </a>\n </li>\n </ul>\n </div>`,\n hostDirectives: [{ directive: ModalDirective, inputs: ['id', 'data-instance', 'data-options'] }]\n})\nexport class ModalAppsComponent implements IModal<AppInfo[], AppInfo> {\n data!: ModalData<any>;\n valid?: boolean = true;\n result?: any;\n apps: AppInfo[] = [];\n\n appSelected(app: AppInfo) {\n this.result = app;\n }\n}\n\n","import { CommonModule, Location } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { RlbAppModule } from '../../../rlb-app.module';\nimport { AppInfo } from '../../../services/apps/app';\nimport { AppsService } from '../../../services/apps/apps.service';\nimport { BaseState } from '../../../store';\nimport { AuthenticationService } from '../../../auth/services/auth.service';\n\n@Component({\n selector: 'rlb-app-selector',\n imports: [RlbAppModule, CommonModule],\n templateUrl: './app-selector.component.html',\n styleUrl: './app-selector.component.scss'\n})\nexport class AppSelectorComponent {\n\n constructor(\n private readonly _location: Location,\n private readonly appsService: AppsService,\n private readonly authService: AuthenticationService,\n\n ) { }\n\n get apps() {\n return this.appsService.apps;\n }\n\n backClicked() {\n this._location.back();\n }\n\n selectApp(app: AppInfo) {\n this.appsService.selectApp(app, 'app');\n }\n\n get auth$() {\n return this.authService.isAuthenticated$;\n }\n}\n","<div class=\"container mt-2\">\n <div class=\"container text-center position-relative my-3\">\n <h3>{{ 'core.apps.title' | translate}}</h3>\n <i role=\"button\" class=\"bi bi-chevron-left position-absolute start-0 top-50 translate-middle-y cur\"\n style=\"font-size: 25px;font-weight: 600;\" (click)=\"backClicked()\"></i>\n </div>\n <rlb-list>\n <ng-container ngProjectAs=\"rlb-list-item-image\" *ngFor=\"let app of apps\">\n <ng-container ngProjectAs=\"rlb-list-item-image\" *ngIf=\"app.core\">\n <rlb-list-item-image [icon]=\"app.core.icon\" [avatar-size]=\"35\"\n [line-1]=\"(app.core.title | translate) + (app.data?.appName ? ' - ' + app.data?.appName : '')\"\n [disabled]=\"!app.enabled && (app.core.auth && !(auth$ | async))\" [line-2]=\"app.core.description | translate\"\n (click)=\"selectApp(app)\">\n </rlb-list-item-image>\n </ng-container>\n </ng-container>\n </rlb-list>\n</div>","import { Directive, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { map, tap } from 'rxjs';\nimport { AuthenticationService } from '../services/auth.service';\nimport { ParseJwtService } from '../services/parse-jwt.service';\n\n@Directive({\n selector: '[roles]',\n standalone: false\n})\nexport class RlbRole implements OnInit {\n\n constructor(\n private readonly templateRef: TemplateRef<any>,\n private readonly viewContainer: ViewContainerRef,\n private readonly authenticationService: AuthenticationService,\n private readonly parseJwtService: ParseJwtService,\n ) { }\n\n @Input() set roles(roles: string[] | string) {\n if (typeof roles === 'string') {\n if (roles.includes(',')) roles = roles.split(',').map(role => role.trim());\n else roles = [roles];\n }\n }\n\n private updateView() {\n return this.authenticationService.\n accessToken$.pipe(\n map(token => this.parseJwtService.parseJwt(token)),\n //map(payload => this.authenticationService.currentProvider.roleClaim?.(payload) || []),\n tap(roles => {\n let valid = true;\n for (const role of this.roles) {\n if (roles.includes(role)) valid &&= true;\n }\n if (valid) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }));\n }\n\n ngOnInit() {\n this.updateView().subscribe();\n }\n}","import { inject } from '@angular/core';\nimport { CanActivateFn } from '@angular/router';\nimport { map, take } from 'rxjs';\nimport { AuthenticationService } from \"../services/auth.service\";\n\nexport const oauthGuard: CanActivateFn = (route, state) => {\n const authService = inject(AuthenticationService);\n\n return authService.isAuthenticated$.pipe(\n take(1),\n map((isAuthenticated) => {\n if (!isAuthenticated) {\n\t\t\t\tauthService.login(state.url)\n return false;\n }\n return true;\n }),\n );\n};\n","import { HttpClient, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable, OnInit } from '@angular/core';\nimport { lastValueFrom, Observable } from 'rxjs';\nimport { AuthenticationService } from './auth.service';\nimport { AppLoggerService, LoggerContext } from \"../../services\";\n\nconst SESSION_RT = 'RT';\nconst SESSION_AT = 'AT';\nconst TOKEN_URL = `protocol/openid-connect/token`;\n\nexport interface Token {\n access_token: string | null;\n expires_in: number;\n token_type: string;\n scope: string;\n id_token: string | null;\n refresh_token: string | null;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OauthPasswordService implements HttpInterceptor {\n\n private timer: any = null;\n private _onUpdateToken: ((token: string | null) => void) | null = null;\n //private _user: User | null = null\n private logger: LoggerContext;\n\n constructor(\n private readonly httpClient: HttpClient,\n private readonly authenticationService: AuthenticationService,\n private readonly log: AppLoggerService,\n ) {\n this.logger = this.log.for(this.constructor.name);\n this.initRefreshToken().catch(e => console.error(\"Error in refresh token\", e));\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (this.authenticationService.config.allowedUrls.some(o => req.url.includes(o))) {\n const token = this.access_token;\n if (token) {\n req = req.clone({\n setHeaders: {\n Authorization: `Bearer ${token}`\n }\n });\n }\n }\n return next.handle(req);\n }\n\n private get access_token() {\n const r = sessionStorage.getItem(SESSION_AT);\n return typeof r === 'string' && r !== '' ? r : null;\n }\n\n private set access_token(val: string | null) {\n if (val === undefined || val === null || val === '')\n sessionStorage.removeItem(SESSION_AT);\n else\n sessionStorage.setItem(SESSION_AT, val);\n }\n\n private get refresh_token() {\n const r = sessionStorage.getItem(SESSION_RT);\n return typeof r === 'string' && r !== '' ? r : null;\n }\n\n private set refresh_token(val: string | null) {\n if (val === undefined || val === null || val === '')\n sessionStorage.removeItem(SESSION_RT);\n else\n sessionStorage.setItem(SESSION_RT, val);\n }\n\n public get accessToken() {\n return this.access_token;\n }\n\n // public get user() {\n // return this._user\n // }\n\n public set onUpdateToken(v: ((token: string | null) => void) | null) {\n this._onUpdateToken = v;\n }\n\n public async login(username: string, password: string) {\n const t = await this._login(username, password);\n this.refresh_token = t.refresh_token;\n this.access_token = t.access_token;\n if (typeof this._onUpdateToken === 'function') {\n this._onUpdateToken(this.access_token);\n }\n // if (this._user === null) {\n // this._user = await lastValueFrom(this.users.apiV1UsersGetSelfGet())\n // }\n if (this.timer !== null) {\n clearInterval(this.timer);\n this.timer = null;\n }\n this.timer = setInterval(async () => {\n try {\n var r = await this._refreshToken(this.refresh_token);\n this.refresh_token = r.refresh_token;\n this.access_token = r.access_token;\n if (typeof this._onUpdateToken === 'function') {\n this._onUpdateToken(this.access_token);\n }\n // if (this._user === null) {\n // this._user = await lastValueFrom(this.users.apiV1UsersGetSelfGet())\n // }\n }\n catch (e) {\n console.warn(\"Refresh token fail\");\n }\n }, t.expires_in * 1000 - 60000);\n return t;\n }\n\n public loggedIn() {\n return !!this.access_token;\n }\n\n public logout() {\n this.refresh_token = null;\n this.access_token = null;\n if (this.timer !== null) {\n clearInterval(this.timer);\n this.timer = null;\n }\n }\n\n private async _login(username: string, password: string): Promise<Token> {\n if (!this.authenticationService.currentProvider) throw new Error(\"No authentication provider configured\");\n let body = new URLSearchParams();\n body.set('grant_type', 'password');\n body.set('client_id', 'addubby');\n body.set('scope', 'addubby-order');\n body.set('username', username);\n body.set('password', password);\n this.logger.log(`password service call _login()`)\n return await lastValueFrom(this.httpClient.post<Token>(`${this.authenticationService.currentProvider.authority}/${TOKEN_URL}`, body.toString(), {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n }));\n }\n\n private async _refreshToken(token: string | null): Promise<Token> {\n if (!this.authenticationService.currentProvider) throw new Error(\"No authentication provider configured\");\n let body = new URLSearchParams();\n body.set('grant_type', 'refresh_token');\n body.set('client_id', this.authenticationService.currentProvider.clientId!);\n if (token)\n body.set('refresh_token', token);\n return await lastValueFrom(this.httpClient.post<Token>(`${this.authenticationService.currentProvider.authority}/${TOKEN_URL}`, body.toString(), {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n }));\n }\n\n private async initRefreshToken() {\n if (this.refresh_token) {\n var r = await this._refreshToken(this.refresh_token);\n this.refresh_token = r.refresh_token;\n this.access_token = r.access_token;\n // if (this._user === null) {\n // this._user = await lastValueFrom(this.users.apiV1UsersGetSelfGet())\n // }\n if (typeof this._onUpdateToken === 'function') {\n this._onUpdateToken(this.access_token);\n }\n this.timer = setInterval(async () => {\n try {\n var r = await this._refreshToken(this.refresh_token);\n this.refresh_token = r.refresh_token;\n this.access_token = r.access_token;\n // if (this._user === null) {\n // this._user = await lastValueFrom(this.users.apiV1UsersGetSelfGet())\n // }\n if (typeof this._onUpdateToken === 'function') {\n this._onUpdateToken(this.access_token);\n }\n }\n catch (e) {\n console.warn(\"Refresh token fail\");\n }\n }, r.expires_in * 1000 - 60000);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { CanActivateFn } from '@angular/router';\nimport { Router } from '@angular/router';\nimport { map, of } from 'rxjs';\nimport { OauthPasswordService } from '../services/oauth-password.service';\n\nexport const oauthPasswordGuard: CanActivateFn = (route, state) => {\n const auth = inject(OauthPasswordService);\n const router = inject(Router);\n\n return of(auth.loggedIn()).pipe(\n map(o => {\n if (!o) {\n router.navigate(['login']);\n return false;\n }\n return true;\n })\n );\n};\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { OidcSecurityService } from \"angular-auth-oidc-client\";\nimport { filter, map, Observable, switchMap } from \"rxjs\";\nimport { ErrorManagementService } from \"../../services/errors/error-management.service\";\nimport { KeycloakCredential, KeycloakDevice, KeycloakSession, KeycloakUser } from \"./\";\nimport { AuthenticationService } from \"..\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class KeycloakProfileService {\n\n constructor(\n private http: HttpClient,\n private readonly authService: AuthenticationService,\n private readonly errorManagementService: ErrorManagementService,\n private readonly oidcSecurityService: OidcSecurityService) { }\n\n private get baseUrl() {\n return `${this.authService.currentProvider?.authority}/account`;\n }\n\n getUserProfile(): Observable<KeycloakUser> {\n return this.authService.isAuthenticated$.pipe(\n filter(isAuth => isAuth),\n switchMap(() => this.authService.accessToken$),\n switchMap(token => this.http.get<any>(this.baseUrl, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })),\n this.errorManagementService.manageUI('error', 'dialog')\n )\n }\n\n updateUserProfile(data: KeycloakUser): Observable<void> {\n return this.authService.isAuthenticated$.pipe(\n filter(isAuth => isAuth),\n switchMap(() => this.authService.accessToken$),\n switchMap(token => this.http.post<void>(this.baseUrl, data, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })),\n this.errorManagementService.manageUI('error', 'dialog')\n )\n }\n\n getDevices(): Observable<KeycloakSession[]> {\n return this.authService.isAuthenticated$.pipe(\n filter(isAuth => isAuth),\n switchMap(() => this.authService.accessToken$),\n switchMap(token => this.http.get<KeycloakDevice[]>(`${this.baseUrl}/sessions/devices`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })),\n map((devices) => devices.map((device) => device.sessions.map((session) => {\n session.os = device.os;\n session.osVersion = device.osVersion;\n session.device = device.device;\n session.mobile = device.mobile;\n session.clientslist = session.clients.map((client) => client.clientName).join(', ');\n return session;\n })).flat()),\n this.errorManagementService.manageUI('error', 'dialog')\n )\n }\n\n getCredentials(): Observable<KeycloakCredential[]> {\n return this.authService.isAuthenticated$.pipe(\n filter(isAuth => isAuth),\n switchMap(() => this.authService.accessToken$),\n switchMap(token => this.http.get<KeycloakCredential[]>(`${this.baseUrl}/credentials`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })),\n this.errorManagementService.manageUI('error', 'dialog')\n );\n }\n\n removeCredential(id: string): Observable<void> {\n return this.authService.isAuthenticated$.pipe(\n filter(isAuth => isAuth),\n switchMap(() => this.authService.accessToken$),\n switchMap(token => {\n return this.http.delete<void>(`${this.baseUrl}/credentials/${id}`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n }),\n this.errorManagementService.manageUI('error', 'dialog')\n );\n }\n\n configureOTP() {\n return this.oidcSecurityService.authorize(this.authService.currentProvider?.configId, {\n customParams: {\n kc_action: \"CONFIGURE_TOTP\"\n }\n });\n }\n\n updatePassword() {\n return this.oidcSecurityService.authorize(this.authService.currentProvider?.configId, {\n customParams: {\n kc_action: \"UPDATE_PASSWORD\"\n }\n });\n }\n}\n","import { CommonModule, Location } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { ModalService } from '@open-rlb/ng-bootstrap';\nimport { EMPTY, filter, lastValueFrom, Subscription, switchMap, tap } from 'rxjs';\nimport { KeycloakCredential, KeycloakProfileService, KeycloakSession, KeycloakUser } from '../../../auth/keycloak';\nimport { RlbAppModule } from '../../../rlb-app.module';\nimport { LanguageService } from '../../../services/i18n/language.service';\nimport { BaseState } from '../../../store';\nimport { AuthActions } from '../../../store/auth/auth.actions';\nimport { AuthenticationService } from '../../../auth/services/auth.service';\n\n\n@Component({\n selector: 'rlb-user-account',\n imports: [RlbAppModule, CommonModule],\n templateUrl: './user-account.component.html',\n styleUrl: './user-account.component.scss'\n})\nexport class UserAccountComponent implements OnInit, OnDestroy {\n constructor(\n private _location: Location,\n public store: Store<BaseState>,\n private keycloakProfileService: KeycloakProfileService,\n private modalService: ModalService,\n private languageService: LanguageService,\n private readonly authService: AuthenticationService,\n private router: Router\n ) {\n this.authService.isAuthenticated$.pipe(\n filter(isAuth => !isAuth),\n switchMap(() => this.router.navigate(['/']))\n ).subscribe();\n }\n\n\n keyCloakUser!: KeycloakUser;\n keyCloakDevices!: KeycloakSession[];\n keycloakCredentials!: KeycloakCredential[];\n private subs: Subscription[] = [];\n\n backClicked() {\n this._location.back();\n }\n\n ngOnInit() {\n this.subs.push(this.keycloakProfileService.getUserProfile().subscribe((user) => {\n this.keyCloakUser = user;\n }));\n this.subs.push(this.keycloakProfileService.getDevices().subscribe((devices) => {\n this.keyCloakDevices = devices;\n }));\n this.subs.push(this.keycloakProfileService.getCredentials().subscribe((credentials) => {\n this.keycloakCredentials = credentials;\n }));\n }\n\n ngOnDestroy(): void {\n while (this.subs.length) {\n this.subs.pop()?.unsubscribe();\n }\n }\n\n logout() {\n this.store.dispatch(AuthActions.logout());\n }\n\n async removeCredential(type: string, id: string) {\n return await lastValueFrom(this.modalService.openConfirmModal(\n this.languageService.translate(\"core.account.credentials.deleteTitle\"),\n this.languageService.translate(\"core.account.credentials.deleteMessage\"),\n this.languageService.translate(\"core.account.credentials.deleteHeader\"),\n this.languageService.translate(\"common.yes\"),\n this.languageService.translate(\"common.cancel\")).pipe(switchMap((result) => {\n if (result) {\n return this.keycloakProfileService.removeCredential(id).pipe(tap(() => {\n const meta = this.keycloakCredentials.find((c) => c.type === type)?.userCredentialMetadatas;\n const idx = meta?.findIndex((m) => m.credential.id === id);\n if (meta && idx !== undefined && idx !== -1) {\n meta.splice(idx, 1);\n }\n }));\n }\n return EMPTY;\n })));\n }\n\n async updateProfile() {\n return await lastValueFrom(this.keycloakProfileService.updateUserProfile(this.keyCloakUser));\n }\n\n updatePassword() {\n this.keycloakProfileService.updatePassword();\n }\n\n configureOTP() {\n this.keycloakProfileService.configureOTP();\n }\n}\n\n","<div class=\"container mt-2 mb-5\">\n <div class=\"container text-center position-relative my-3\">\n <h3>{{ 'core.account.title' | translate}}</h3>\n <i role=\"button\" class=\"bi bi-chevron-left position-absolute start-0 top-50 translate-middle-y\"\n style=\"font-size: 25px;font-weight: 600;\" (click)=\"backClicked()\"></i>\n <button rlb-button outline size=\"sm\" class=\"position-absolute end-0 top-50 translate-middle-y\"\n (click)=\"updateProfile()\">\n <i class=\"bi bi-floppy\"></i>\n </button>\n </div>\n <rlb-list class=\"settings\">\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.username' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input *ngIf=\"keyCloakUser\" size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.username\" disabled />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.email' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input *ngIf=\"keyCloakUser\" size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.email\" />\n <rlb-input *ngIf=\"!keyCloakUser\" size=\"small\" type=\"text\" readonly />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.firstName' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input *ngIf=\"keyCloakUser\" size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.firstName\" />\n <rlb-input *ngIf=\"!keyCloakUser\" size=\"small\" type=\"text\" readonly />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.lastName' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input *ngIf=\"keyCloakUser\" size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.lastName\" />\n <rlb-input *ngIf=\"!keyCloakUser\" size=\"small\" type=\"text\" readonly />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.logout' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <button size=\"sm\" rlb-button (click)=\"logout()\" class=\"w-100\">\n <i class=\"bi bi-box-arrow-right\"></i>\n {{ 'core.account.logout' | translate}}</button>\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n <ng-container *ngIf=\"keyCloakUser\">\n <div class=\"container text-center position-relative mt-5 mb-2\">\n <h3>{{ 'core.account.credentials.title' | translate}}</h3>\n </div>\n <ng-container *ngFor=\"let type of keycloakCredentials\">\n <div class=\"container position-relative my-3\">\n <h6>{{ ('core.account.credentials.'+type?.type) | translate }}</h6>\n <button *ngIf=\"type.type === 'otp'\" rlb-button size=\"sm\"\n class=\"position-absolute end-0 top-50 translate-middle-y\" (click)=\"configureOTP()\">\n {{ 'core.account.credentials.addOTP' | translate}}\n </button>\n </div>\n <rlb-list class=\"settings mb-5\">\n <rlb-list-item class=\"settings-item\" *ngFor=\"let cred of type.userCredentialMetadatas\">\n <div class=\"row\">\n <div class=\"col-12\">\n <dl class=\"row signed-in-device-grid\">\n <div class=\"col-md-1\">\n <i class=\"bi bi-key\" style=\"font-size: 35px;\"></i>\n </div>\n <div class=\"col-md-5\">\n <dt>\n <span class=\"text-muted\">\n {{ 'core.account.credentials.name' | translate }}\n </span>\n </dt>\n <dd>{{cred.credential.userLabel || cred.credential.type}}</dd>\n </div>\n <div class=\"col-md-4\">\n <dt>\n <span class=\"text-muted\">\n {{'core.account.credentials.created' | translate}}\n </span>\n </dt>\n <dd>{{cred.credential.createdDate | date:'dd:MM:yyyy HH:mm' }}</dd>\n </div>\n <div class=\"col-md-2\">\n <dt><span class=\"text-muted\">{{'core.account.credentials.actions' |\n translate}}</span></dt>\n <dd>\n <button *ngIf=\"type.removeable\" size=\"sm\" rlb-button class=\"w-100\" color=\"danger\"\n (click)=\"removeCredential(type.type, cred.credential.id)\">\n <i class=\"bi bi-trash\"></i>\n {{ 'core.account.credentials.delete' | translate}}\n </button>\n <button *ngIf=\"!type.removeable\" size=\"sm\" rlb-button class=\"w-100\" outline\n (click)=\"updatePassword()\">\n <i class=\"bi bi-trash\"></i>\n {{ 'core.account.credentials.update' | translate}}\n </button>\n </dd>\n </div>\n </dl>\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item *ngIf=\"type.userCredentialMetadatas.length === 0\">\n <div class=\"d-flex justify-content-center\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.credentials.noCredentials' | translate}}</h6>\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n </ng-container>\n <div class=\"container text-center position-relative mt-5 mb-3\">\n <h3>{{ 'core.account.session.title' | translate}}</h3>\n </div>\n <rlb-list class=\"settings\">\n <rlb-list-item class=\"settings-item\" *ngFor=\"let d of keyCloakDevices\">\n <div class=\"row mb-2\">\n <div class=\"col-1\">\n <i class=\"bi bi-laptop\" style=\"font-size: 35px;\"></i>\n </div>\n <div class=\"col-11\">\n <span class=\"session-title\">{{d.os}} {{d.osVersion}} - {{d.browser}}</span>\n <span *ngIf=\"d.current\" class=\"badge bg-success ms-3\">\n <span class=\"badge-content\">\n {{ 'core.account.session.current' | translate}}\n </span>\n </span>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <dl class=\"row signed-in-device-grid\">\n <div class=\" col-md-1\">\n </div>\n <div class=\" col-md-2\">\n <dt><span class=\"text-muted\">{{ 'core.account.session.ip' | translate }}</span>\n </dt>\n <dd>{{d.ipAddress}}</dd>\n </div>\n <div class=\"col-md-2\">\n <dt>\n <span class=\"text-muted\">\n {{'core.account.session.lastAccess' | translate}}\n </span>\n </dt>\n <dd>{{d.lastAccess*1000 | date:'dd/MM/yyyy - HH:mm'}}</dd>\n </div>\n <div class=\"col-md-2\">\n <dt><span class=\"text-muted\">{{'core.account.session.applications' |\n translate}}</span></dt>\n <dd>{{d.clientslist }} </dd>\n </div>\n <div class=\"col-md-2\">\n <dt><span class=\"text-muted\">{{'core.account.session.started' |\n translate}}</span></dt>\n <dd>{{d.started*1000 | date:'dd/MM/yyyy - HH:mm'}}</dd>\n </div>\n <div class=\"col-md-2\">\n <dt><span class=\"text-muted\">{{'core.account.session.expires' |\n translate}}</span></dt>\n <dd>{{d.expires*1000 | date:'dd/MM/yyyy - HH:mm'}}</dd>\n </div>\n </dl>\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n </ng-container>\n</div>","import { CommonModule, Location } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { ToastService } from '@open-rlb/ng-bootstrap';\nimport { RlbAppModule } from '../../../rlb-app.module';\nimport { LanguageService } from '../../../services/i18n/language.service';\nimport { AppContextActions, BaseState, appContextFeatureKey } from '../../../store';\n\n@Component({\n selector: 'rlb-settings-core',\n imports: [RlbAppModule, CommonModule],\n templateUrl: './settings-core.component.html',\n styleUrl: './settings-core.component.scss'\n})\nexport class SettingsCoreComponent {\n constructor(\n private readonly _location: Location,\n private readonly toastService: ToastService,\n private readonly languageService: LanguageService,\n private readonly store: Store<BaseState>) { }\n\n backClicked() {\n this._location.back();\n }\n\n get languages() {\n return this.store.selectSignal(o => o[appContextFeatureKey].supportedLanguages)().map((lang: string) => {\n return {\n value: lang,\n label: this.languageService.getLanguageName(lang)\n };\n });\n }\n\n get currentLanguage() {\n return this.store.selectSignal(o => o[appContextFeatureKey].language)() as string;\n }\n\n set currentLanguage(value: string) {\n this.store.dispatch(AppContextActions.setLanguage({ language: value }));\n this.toastService.openToast('toast-c-1', 'toast-component', {\n title: this.languageService.translate('common.saved'),\n content: this.languageService.translate(\n 'common.savedSuccessfully',\n ),\n type: 'success',\n ok: this.languageService.translate('ok'),\n });\n }\n\n get darkMode() {\n return this.store.selectSignal(o => o[appContextFeatureKey].theme)() === 'dark';\n }\n\n set darkMode(value: boolean) {\n this.store.dispatch(AppContextActions.setTheme({ theme: value ? 'dark' : 'light' }));\n this.toastService.openToast('toast-c-1', 'toast-component', {\n title: this.languageService.translate('common.saved'),\n content: this.languageService.translate(\n 'common.savedSuccessfully',\n ),\n type: 'success',\n ok: this.languageService.translate('ok'),\n });\n }\n}\n\n","<div class=\"container mt-2\">\n <div class=\"container text-center position-relative my-3\">\n <h3>{{ 'core.settings.generalTitle' | translate}}</h3>\n <i role=\"button\" class=\"bi bi-chevron-left position-absolute start-0 top-50 translate-middle-y\"\n (click)=\"backClicked()\" style=\"font-size: 25px;font-weight: 600;\"></i>\n </div>\n <rlb-list class=\"settings\">\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.settings.generalTheme' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-switch size=\"small\" [(ngModel)]=\"darkMode\" class=\"mt-2\" />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.settings.generalLanguage' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-select size=\"small\" [(ngModel)]=\"currentLanguage\">\n <rlb-option *ngFor=\"let l of languages\" [value]=\"l.value\">{{l.label}}</rlb-option>\n </rlb-select>\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n</div>\n","import { CommonModule, Location } from '@angular/common';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { PagesConfiguration, RLB_CFG_PAGES } from '../../../configuration';\nimport { RlbAppModule } from '../../../rlb-app.module';\nimport { AppInfo } from '../../../services/apps/app';\nimport { AppsService } from '../../../services/apps/apps.service';\nimport { BaseState } from '../../../store';\nimport { AuthenticationService } from '../../../auth/services/auth.service';\n\n\n@Component({\n selector: 'rlb-settings-list',\n imports: [RlbAppModule, CommonModule],\n templateUrl: './settings-list.component.html',\n styleUrl: './settings-list.component.scss'\n})\nexport class SettingsListComponent {\n constructor(\n private readonly _location: Location,\n private readonly appsService: AppsService,\n private readonly authService: AuthenticationService,\n @Inject(RLB_CFG_PAGES) @Optional() private pageOptions: PagesConfiguration) { }\n\n get apps() {\n return this.appsService.apps;\n }\n\n backClicked() {\n this._location.back();\n }\n\n selectApp(app: AppInfo) {\n this.appsService.selectApp(app, 'settings');\n }\n\n get pages() {\n return this.pageOptions;\n }\n\n get auth$() {\n return this.authService.isAuthenticated$;\n }\n}\n","<div class=\"container mt-2\">\n <div class=\"container text-center position-relative my-3\">\n <h3>{{ 'core.settings.title' | translate}}</h3>\n <i role=\"button\" class=\"bi bi-chevron-left position-absolute start-0 top-50 translate-middle-y\"\n (click)=\"backClicked()\" style=\"font-size: 25px;font-weight: 600;\"></i>\n </div>\n <rlb-list>\n <rlb-list-item-image icon=\"bi bi-gear\" [avatar-size]=\"35\" [line-1]=\" 'core.settings.generalTitle' | translate\"\n [routerLink]=\"'/setting/general'\" [line-2]=\" 'core.settings.generalDescription' | translate\">\n </rlb-list-item-image>\n <ng-container ngProjectAs=\"rlb-list-item-image\" *ngFor=\"let app of apps\">\n <ng-container ngProjectAs=\"rlb-list-item-image\" *ngIf=\"app.settings\">\n <rlb-list-item-image [icon]=\"app.settings.icon\" [avatar-size]=\"35\"\n [line-1]=\"(app.settings.title | translate) + (app.data?.appName ? ' - ' + app.data?.appName : '')\"\n [disabled]=\"!app.enabled && (app.settings.auth && !(auth$ | async))\"\n [line-2]=\"app.settings.description | translate\" (click)=\"selectApp(app)\">\n </rlb-list-item-image>\n </ng-container>\n </ng-container>\n </rlb-list>\n\n <rlb-list class=\"mt-5\" *ngIf=\"pages?.['status']?.path || pages?.['logger']?.path\">\n <rlb-list-item-image icon=\"bi bi-check2-circle\" *ngIf=\"pages?.['status']?.path\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.status' | translate\" [routerLink]=\"'/status'\">\n </rlb-list-item-image>\n <rlb-list-item-image icon=\"bi bi-file-text\" *ngIf=\"pages?.['logger']?.path\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.logger' | translate\" [routerLink]=\"'/logger'\">\n </rlb-list-item-image>\n </rlb-list>\n\n <rlb-list class=\"mt-4\"\n *ngIf=\"pages?.['privacy']?.path || pages?.['cookies']?.path || pages?.['terms']?.path || pages?.['support']?.path\">\n <rlb-list-item-image icon=\"bi bi-shield-check\" *ngIf=\"pages?.['privacy']?.path\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.privacy' | translate\" [routerLink]=\"'/privacy'\">\n </rlb-list-item-image>\n <rlb-list-item-image icon=\"bi bi bi-cookie\" *ngIf=\"pages?.['cookies']?.path\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.cookies' | translate\" [routerLink]=\"'/cookies'\">\n </rlb-list-item-image>\n <rlb-list-item-image icon=\"bi bi-vector-pen\" *ngIf=\"pages?.['terms']?.path\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.legal' | translate\" [routerLink]=\"'/terms'\">\n </rlb-list-item-image>\n <rlb-list-item-image icon=\"bi bi-chat-quote\" *ngIf=\"pages?.['support']?.path\" [avatar-size]=\"18\"\n [line-1]=\" 'core.settings.support' | translate\" [routerLink]=\"'/support'\">\n </rlb-list-item-image>\n </rlb-list>\n</div>","import { Routes } from '@angular/router';\nimport {\n\tCmsContentComponent,\n\tCookiesComponent,\n\tNotFoundComponent,\n\tPrivacyComponent,\n\tSupportComponent,\n\tTermsAndConditionsComponent\n} from '.';\nimport { PagesConfiguration } from '../configuration';\nimport { AppSelectorComponent } from './apps/app-selector/app-selector.component';\nimport { UserAccountComponent } from './apps/user-account/user-account.component';\nimport { SettingsCoreComponent } from './settings/settings-core/settings-core.component';\nimport { SettingsListComponent } from './settings/settings-list/settings-list.component';\nimport { DEFAULT_ROUTES_CONFIG } from \"./default-routes.config\";\n\nexport function getDefaultRoutes(config?: PagesConfiguration): Routes {\n\tconst defaultRoutes = DEFAULT_ROUTES_CONFIG\n\t\t.filter(defaultRouteConfig => !defaultRouteConfig.configKey || (config && config[defaultRouteConfig.configKey]))\n\t\t.map(route => {\n\t\t\tswitch (route.path) {\n\t\t\t\tcase 'setting': return { path: 'setting', component: SettingsListComponent };\n\t\t\t\tcase 'setting/general': return { path: 'setting/general', component: SettingsCoreComponent };\n\t\t\t\tcase 'apps': return { path: 'apps', component: AppSelectorComponent };\n\t\t\t\tcase 'profile': return { path: 'profile', component: UserAccountComponent };\n\t\t\t\tcase 'content': return { path: 'content', component: CmsContentComponent };\n\t\t\t\tcase 'cookies': return { path: 'cookies', component: CookiesComponent };\n\t\t\t\tcase 'notFound': return { path: 'notFound', component: NotFoundComponent };\n\t\t\t\tcase 'privacy': return { path: 'privacy', component: PrivacyComponent };\n\t\t\t\tcase 'support': return { path: 'support', component: SupportComponent };\n\t\t\t\tcase 'terms': return { path: 'terms', component: TermsAndConditionsComponent };\n\t\t\t\tdefault: throw new Error(`No component mapped for route ${route.path}`);\n\t\t\t}\n\t\t});\n\treturn defaultRoutes;\n}\n\n","import { Inject, Injectable, Optional, Renderer2, RendererFactory2 } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, tap } from 'rxjs/operators';\nimport { BaseState } from '..';\nimport { LanguageService } from '../../services';\nimport { AppInfo } from '../../services/apps/app';\nimport { AppStorageService } from '../../services/utils/app-storage.service';\nimport { AppContextActions, AppContextActionsInternal } from './app-context.actions';\nimport { RLB_APPS } from './app-context.model';\nimport { AppLoggerService, LoggerContext } from \"../../services/apps/app-logger.service\";\n\n@Injectable()\nexport class AppContextEffects {\n private renderer: Renderer2;\n\tprivate logger: LoggerContext;\n\t\n\tsetLanguage$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AppContextActions.setLanguage),\n tap(({ language }) => this.languageService.language = language),\n tap(({ language }) => {\n this.renderer.setAttribute(document.documentElement, 'lang', language);\n }),\n tap(({ language }) => { this.storage.writeLocal('locale', language); }),\n map(({ language }) => AppContextActionsInternal.setLanguage({ language })),\n );\n });\n\n setLanguages$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AppContextActions.setSupportedLanguages),\n tap(({ supportedLanguages }) => this.languageService.languages = supportedLanguages),\n map(({ supportedLanguages }) => AppContextActionsInternal.setSupportedLanguages({ supportedLanguages })),\n );\n });\n\n setTheme$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AppContextActions.setTheme),\n tap(({ theme }) => {\n this.renderer.setAttribute(document.documentElement, 'data-bs-theme', theme);\n }),\n tap(({ theme }) => { this.storage.writeLocal('theme', theme); }),\n map(({ theme }) => AppContextActionsInternal.setTheme({ theme })),\n );\n });\n\n setApp$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AppContextActions.setCurrentApp),\n map(({ app, mode, url }) => {\n\t\t\t\treturn AppContextActionsInternal.setCurrentApp({ app, mode, url });\n }),\n tap(({ app }) => {\n if (app) {\n\t\t\t\t\tthis.logger.warn('setApp$ set c-app-id', app.id!);\n\t\t\t\t\tlocalStorage.setItem('c-app-id', app.id!);\n } else {\n\t\t\t\t\tthis.logger.warn('setApp$ remove c-app-id');\n\t\t\t\t\tlocalStorage.removeItem('c-app-id');\n }\n }),\n );\n });\n\n constructor(\n private readonly actions$: Actions,\n private readonly languageService: LanguageService,\n readonly rendererFactory: RendererFactory2,\n readonly storage: AppStorageService,\n readonly store: Store<BaseState>,\n private readonly router: Router,\n\t\tprivate loggerService: AppLoggerService,\n @Inject(RLB_APPS) @Optional() private apps: AppInfo[],\n ) {\n\t\tthis.logger = this.loggerService.for(this.constructor.name);\n this.renderer = rendererFactory.createRenderer(null, null);\n if (this.apps && this.apps.length > 0) {\n for (const app of this.apps) {\n store.dispatch(AppContextActionsInternal.addApp({ app: app }));\n }\n }\n }\n}\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { AppContextActions, AppContextActionsInternal } from './app-context.actions';\nimport { appContextFeatureKey, initialAppContextState } from './app-context.model';\n\nexport const appFeature = createFeature({\n name: appContextFeatureKey,\n reducer: createReducer(\n initialAppContextState,\n on(AppContextActionsInternal.setCurrentApp, (state, { app, mode, url }) => ({ ...state, currentApp: app ? { ...app, viewMode: mode, navigationUrl: url } : null })),\n on(AppContextActions.removeApp, (state, { appType }) => ({ ...state, apps: state.apps.filter(a => a.type !== appType) })),\n on(AppContextActions.finalizeApp, (state, { appType, data, appId }) => {\n const appsOfType = state.apps.filter(a => a.type === appType);\n if (appsOfType.length === 0) throw new Error(`App type: ${appType} not found. Cannot finalize app.`);\n let updatedAppsOfType: typeof appsOfType;\n if (appsOfType.length === 1 && !appsOfType[0].id) {\n updatedAppsOfType = [{ ...appsOfType[0], data, id: appId, }];\n } else {\n updatedAppsOfType = [...appsOfType, { ...appsOfType[0], data, id: appId, }];\n }\n const remainingApps = state.apps.filter(a => a.type !== appType);\n return { ...state, apps: [...remainingApps, ...updatedAppsOfType], };\n }),\n on(AppContextActionsInternal.addApp, (state, { app }) => {\n if (!app) return state;\n const apps = state.apps.filter(a => a.type !== app.type);\n apps.push(app);\n return { ...state, apps };\n }),\n on(AppContextActionsInternal.setLanguage, (state, { language }) => ({ ...state, language })),\n on(AppContextActionsInternal.setSupportedLanguages, (state, { supportedLanguages }) => ({ ...state, supportedLanguages })),\n on(AppContextActionsInternal.setTheme, (state, { theme }) => ({ ...state, theme })),\n on(AppContextActionsInternal.setViewMode, (state, { viewMode }) => ({ ...state, viewMode })))\n});\n\nexport const appReducer = appFeature.reducer;\n\nexport const {\n selectAppState,\n selectApps,\n selectCurrentApp,\n selectSupportedLanguages\n} = appFeature;\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { AuthenticationService } from '../../auth/services/auth.service';\nimport { AuthConfiguration, RLB_CFG_AUTH } from '../../configuration';\nimport { AuthActions, AuthActionsInternal } from './auth.actions';\nimport { AppLoggerService, LoggerContext } from '../../services/apps/app-logger.service';\n\n@Injectable()\nexport class AuthEffects {\n private logger: LoggerContext;\n\n login$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AuthActions.login),\n tap(() => this.logger.log('auth effects going to call login()')),\n tap(() => this.auth.login()),\n map(() => AuthActionsInternal.setLoading({ loading: true })),\n );\n });\n\n logout$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AuthActions.logout),\n tap(() => this.logger.log('auth effects going to call logout$()')),\n switchMap(() => this.auth.logout$()),\n map(() => AuthActionsInternal.reset()));\n });\n\n setCurrentProvider$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AuthActions.setCurrentProvider),\n map(({ currentProvider }) => AuthActionsInternal.setCurrentProvider({ currentProvider }))\n );\n });\n\n constructor(\n private actions$: Actions,\n private auth: AuthenticationService,\n private loggerService: AppLoggerService,\n @Inject(RLB_CFG_AUTH) @Optional() authConfig: AuthConfiguration) {\n this.logger = this.loggerService.for(this.constructor.name);\n this.logger.log(`Initialized AuthEffects}`);\n }\n}\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { AuthActionsInternal } from './auth.actions';\nimport { authsFeatureKey, initialAuthState } from './auth.model';\n\nexport const authsFeature = createFeature({\n name: authsFeatureKey,\n reducer: createReducer(\n initialAuthState,\n on(AuthActionsInternal.setLoading, (state, action) => ({ ...state, loading: action.loading })),\n on(AuthActionsInternal.reset, () => ({ ...initialAuthState })),\n on(AuthActionsInternal.setCurrentProvider, (state, action) => {\n if (action.currentProvider && state.currentProvider !== action.currentProvider) {\n return { ...state, currentProvider: action.currentProvider };\n }\n return state;\n })\n )\n});\n\nexport const authReducer = authsFeature.reducer;\n\nexport const {\n selectAuthState,\n selectCurrentProvider,\n selectLoading\n} = authsFeature;\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { initialNavbarState, navbarsFeatureKey } from './navbar.model';\nimport { NavbarActions } from './navbar.actions';\n\nexport const navbarsFeature = createFeature({\n name: navbarsFeatureKey,\n reducer: createReducer(\n initialNavbarState,\n on(NavbarActions.setVisible, (state, { visible }) => ({ ...state, visible })),\n on(NavbarActions.setSearchVisible, (state, { visible }) => ({ ...state, searchVisible: visible })),\n on(NavbarActions.setHeader, (state, { header }) => ({ ...state, header })),\n on(NavbarActions.setSearchText, (state, { text }) => ({ ...state, searchText: text })),\n on(NavbarActions.setLeftItems, (state, { items }) => ({ ...state, leftItems: items })),\n on(NavbarActions.setRightItems, (state, { items }) => ({ ...state, rightItems: items })),\n on(NavbarActions.setLoginVisible, (state, { visible }) => ({ ...state, loginVisible: visible })),\n on(NavbarActions.setSettingsVisible, (state, { visible }) => ({ ...state, settingsVisible: visible })),\n on(NavbarActions.setAppsVisible, (state, { visible }) => ({ ...state, appsVisible: visible })),\n on(NavbarActions.setSeparatorVisible, (state, { visible }) => ({ ...state, separatorVisible: visible }))\n )\n});\n\nexport const navbarReducer = navbarsFeature.reducer;\n\nexport const {\n selectNavbarState\n} = navbarsFeature;\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { sidebarsFeatureKey, initialSidebarState } from './sidebar.model';\nimport { SidebarActions } from './sidebar.actions';\n\nexport const sidebarsFeature = createFeature({\n name: sidebarsFeatureKey,\n reducer: createReducer(\n initialSidebarState,\n on(SidebarActions.setItems, (state, { items }) => ({ ...state, items })),\n on(SidebarActions.setVisible, (state, { visible }) => ({ ...state, visible })),\n on(SidebarActions.setLoginVisible, (state, { visible }) => ({ ...state, loginVisible: visible })),\n on(SidebarActions.setSearchVisible, (state, { visible }) => ({ ...state, searchVisible: visible })),\n on(SidebarActions.setSettingsVisible, (state, { visible }) => ({ ...state, settingsVisible: visible })),\n on(SidebarActions.setSearchText, (state, { text }) => ({ ...state, searchText: text })),\n on(SidebarActions.setAppsVisible, (state, { visible }) => ({ ...state, appsVisible: visible }))\n )\n});\n\nexport const sidebarReducer = sidebarsFeature.reducer;\n\nexport const {\n selectSidebarState\n} = sidebarsFeature;","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { RlbAppModule } from '../rlb-app.module';\nimport { ToastData, ToastDirective, IToast } from '@open-rlb/ng-bootstrap';\n\n@Component({\n imports: [RlbAppModule, CommonModule],\n template: `\n <div class=\"toast-header\">\n <strong class=\"me-auto\">\n <svg\n class=\"bd-placeholder-img rounded me-2\"\n width=\"20\"\n height=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n preserveAspectRatio=\"xMidYMid slice\"\n focusable=\"false\"\n >\n <rect width=\"100%\" height=\"100%\" fill=\"#007aff\"></rect>\n </svg>\n {{ data.title }}\n </strong>\n <small *ngIf=\"data.subtitle\"> {{ data.subtitle }}</small>\n <button\n type=\"button\"\n class=\"btn-close\"\n data-bs-dismiss=\"toast\"\n aria-label=\"Close\"\n ></button>\n </div>\n <div class=\"toast-body\">{{ data.content }}</div>\n `,\n hostDirectives: [\n {\n directive: ToastDirective,\n inputs: ['id', 'data-instance', 'data-options'],\n },\n ]\n})\nexport class ToastComponent implements IToast<string, void> {\n data!: ToastData<string>;\n valid?: boolean = true;\n result?: any;\n}\n\n","import { ActivatedRouteSnapshot, CanDeactivateFn, RouterStateSnapshot } from '@angular/router';\nimport { Injectable, inject, importProvidersFrom } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface VerifyDeactivate {\n verifyDeactivate: () => boolean | Observable<boolean>;\n}\n\nexport const verifyDeactivate: CanDeactivateFn<VerifyDeactivate> = (\n component: VerifyDeactivate,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState: RouterStateSnapshot\n) => {\n return component.verifyDeactivate();\n};\n","import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport {\n EnvironmentProviders,\n inject,\n isDevMode,\n provideAppInitializer,\n Provider\n} from '@angular/core';\nimport { provideRouter, Route } from '@angular/router';\nimport { provideServiceWorker } from '@angular/service-worker';\nimport { provideEffects } from '@ngrx/effects';\nimport { provideState, provideStore } from '@ngrx/store';\nimport { ModalRegistryOptions, provideRlbBootstrap, ToastRegistryOptions } from '@open-rlb/ng-bootstrap';\nimport { provideRlbCodeBrowserOAuth } from './lib/auth/auth.provider';\nimport {\n\tProjectConfiguration,\n\tRLB_CFG,\n\tRLB_CFG_CMS,\n\tRLB_CFG_ENV,\n\tRLB_CFG_I18N,\n\tRLB_CFG_PAGES\n} from './lib/configuration';\nimport { ErrorModalComponent } from './lib/modals/error-modal.component';\nimport { ModalAppsComponent } from './lib/modals/modal-apps.component';\nimport { getDefaultRoutes } from './lib/pages/shared.routes';\nimport { RlbAppModule } from './lib/rlb-app.module';\nimport { AppDescriber } from './lib/services/apps/app-describer';\nimport { provideRlbI18n } from './lib/services/i18n/i18n.provider';\nimport { RLB_APPS } from './lib/store';\nimport { AppContextEffects } from './lib/store/app-context/app-context.effects';\nimport { appFeature } from './lib/store/app-context/app-context.reducer';\nimport { AuthEffects } from './lib/store/auth/auth.effects';\nimport { authsFeature } from './lib/store/auth/auth.reducer';\nimport { navbarsFeature } from './lib/store/navbar/navbar.reducer';\nimport { sidebarsFeature } from './lib/store/sidebar/sidebar.reducer';\nimport { ToastComponent } from './lib/toasts/error-toast.component';\nimport { AuthenticationService } from \"./lib/auth\";\nimport { AppsService } from \"./lib/services\";\n\nexport * from './lib/auth';\nexport * from './lib/guards';\nexport * from './lib/modals';\nexport * from './lib/pages/shared.routes';\nexport * from './lib/pipes';\nexport * from './lib/services';\nexport * from './lib/store';\nexport * from './lib/templates';\nexport * from './lib/toasts';\n\nexport * from './lib/configuration';\nexport * from './lib/rlb-app.module';\n\nexport function provideRlbConfig<T = { [k: string]: any; }>(env: ProjectConfiguration<T>): (EnvironmentProviders | Provider)[] {\n return [\n provideRlbBootstrap(),\n RlbAppModule,\n provideStore(),\n provideState(authsFeature),\n provideEffects(AuthEffects),\n provideState(navbarsFeature),\n provideState(sidebarsFeature),\n provideState(appFeature),\n provideEffects(AppContextEffects),\n provideRouter(getDefaultRoutes(env.pages)),\n provideRlbCodeBrowserOAuth(env.auth),\n provideRlbI18n(env.i18n),\n provideHttpClient(withInterceptorsFromDi()),\n provideServiceWorker('ngsw-worker.js', {\n enabled: !isDevMode(),\n registrationStrategy: 'registerWhenStable:15000',\n }),\n provideAppInitializer(() => {\n inject(AppsService);\n }),\n provideAppInitializer(() => {\n const authService = inject(AuthenticationService);\n return authService.checkAuthMultiple();\n }),\n { provide: RLB_CFG, useValue: env },\n { provide: RLB_CFG_ENV, useValue: env.environment },\n { provide: RLB_CFG_CMS, useValue: env.cms },\n { provide: RLB_CFG_PAGES, useValue: env.pages },\n { provide: RLB_CFG_I18N, useValue: env.i18n },\n {\n provide: ModalRegistryOptions, useValue: {\n modals: {\n \"modal-apps-component\": ModalAppsComponent,\n 'error-modal-component': ErrorModalComponent,\n }\n }, multi: true\n },\n {\n provide: ToastRegistryOptions,\n useValue: {\n toasts: {\n 'toast-component': ToastComponent,\n },\n },\n multi: true,\n },\n ];\n}\n\nexport function provideApp(app: AppDescriber): (EnvironmentProviders | Provider)[] {\n\tconst routesPaths = app.routes ? flattenRoutes(app.routes) : [];\n\n\tconst providers: (EnvironmentProviders | Provider)[] = [{\n provide: RLB_APPS, useValue: {\n ...app.info,\n routes: routesPaths,\n }, multi: true\n },];\n if (app.routes) {\n providers.push(provideRouter(app.routes));\n }\n if (app.providers) {\n providers.push(...app.providers);\n }\n return providers;\n}\n\nfunction flattenRoutes(routes: Route[], parentPath = ''): string[] {\n\treturn routes.flatMap(route => {\n\t\tconst fullPath = route.path ? `${parentPath}${parentPath && '/'}${route.path}` : parentPath;\n\t\tconst childPaths = route.children ? flattenRoutes(route.children, fullPath) : [];\n\t\treturn route.path ? [fullPath, ...childPaths] : childPaths;\n\t});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AppStorageService","i1","i2.AppLoggerService","i3.LanguageService","i2","i2.CookiesService","i3","i4.ParseJwtService","i5","i2.AppStorageService","i1.AbstractMdService","i4","i6.CmsPipe","i2.CmsComponent","i1.CmsComponent","i1.AbstractSupportService","i2.AppsService","i3.AuthenticationService","i7","i8.AsMultiPipe","i8.AsSinglePipe","i9.LeftComponentPipe","i10.RightComponentPipe","i3.AppStorageService","i4.PwaUpdaterService","i5.AppsService","i6.AppLoggerService","i8","i9.AppTemplateComponent","i10.AsMultiPipe","i10.AsSinglePipe","i1.AuthenticationService","i2.ParseJwtService","i2.AuthenticationService","i3.AppLoggerService","i3.ErrorManagementService","i3.KeycloakProfileService","i5.LanguageService","i6.AuthenticationService","i9","i6","tap","map","switchMap"],"mappings":"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"}
1
+ {"version":3,"file":"open-rlb-ng-app.mjs","sources":["../../../../projects/rlb/ng-app/src/lib/configuration.ts","../../../../projects/rlb/ng-app/src/lib/auth/providers/token-cookies.service.ts","../../../../projects/rlb/ng-app/src/lib/services/utils/app-storage.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/providers/token-session.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/providers/token-store.service.ts","../../../../projects/rlb/ng-app/src/lib/services/apps/app-logger.service.ts","../../../../projects/rlb/ng-app/src/lib/store/app-context/app-context.actions.ts","../../../../projects/rlb/ng-app/src/lib/store/app-context/app-context.model.ts","../../../../projects/rlb/ng-app/src/lib/store/auth/auth.actions.ts","../../../../projects/rlb/ng-app/src/lib/store/auth/auth-feature.service.ts","../../../../projects/rlb/ng-app/src/lib/store/auth/auth.model.ts","../../../../projects/rlb/ng-app/src/lib/store/navbar/navbar.actions.ts","../../../../projects/rlb/ng-app/src/lib/store/navbar/navbar.model.ts","../../../../projects/rlb/ng-app/src/lib/store/sidebar/sidebar.actions.ts","../../../../projects/rlb/ng-app/src/lib/store/sidebar/sidebar.model.ts","../../../../projects/rlb/ng-app/src/lib/services/abstraction/abstract-support.service.ts","../../../../projects/rlb/ng-app/src/lib/pages/default-routes.config.ts","../../../../projects/rlb/ng-app/src/lib/services/apps/apps.service.ts","../../../../projects/rlb/ng-app/src/lib/services/i18n/language.service.ts","../../../../projects/rlb/ng-app/src/lib/services/apps/app-breadcrumb.service.ts","../../../../projects/rlb/ng-app/src/lib/services/cache/local-cache.service.ts","../../../../projects/rlb/ng-app/src/lib/services/cms/md.service.ts","../../../../projects/rlb/ng-app/src/lib/services/cms/strapi.service.ts","../../../../projects/rlb/ng-app/src/lib/services/errors/error-management.service.ts","../../../../projects/rlb/ng-app/src/lib/services/i18n/rlb-translate-adapter.service.ts","../../../../projects/rlb/ng-app/src/lib/services/i18n/i18n.provider.ts","../../../../projects/rlb/ng-app/src/lib/services/i18n/translate-browser.loader.ts","../../../../projects/rlb/ng-app/src/lib/services/utils/cookies.service.ts","../../../../projects/rlb/ng-app/src/lib/services/utils/pwa-updater.service.ts","../../../../projects/rlb/ng-app/src/lib/services/utils/utils.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/services/parse-jwt.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/services/auth.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/token-oauth-interceptor.ts","../../../../projects/rlb/ng-app/src/lib/auth/auth.provider.ts","../../../../projects/rlb/ng-app/src/lib/pipes/cms/cms.pipe.ts","../../../../projects/rlb/ng-app/src/lib/templates/cms/cms.component.ts","../../../../projects/rlb/ng-app/src/lib/templates/cms/cms.component.html","../../../../projects/rlb/ng-app/src/lib/pages/cms-content/cms-content.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/cms-content/cms-content.component.html","../../../../projects/rlb/ng-app/src/lib/pages/cookies/cookies.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/cookies/cookies.component.html","../../../../projects/rlb/ng-app/src/lib/pages/not-found/not-found.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/not-found/not-found.component.html","../../../../projects/rlb/ng-app/src/lib/pages/privacy/privacy.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/privacy/privacy.component.html","../../../../projects/rlb/ng-app/src/lib/pages/support/support.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/support/support.component.html","../../../../projects/rlb/ng-app/src/lib/pages/terms-and-conditions/terms-and-conditions.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/terms-and-conditions/terms-and-conditions.component.html","../../../../projects/rlb/ng-app/src/lib/pipes/as/as.pipe.ts","../../../../projects/rlb/ng-app/src/lib/pipes/left-component/left-component.pipe.ts","../../../../projects/rlb/ng-app/src/lib/pipes/right-component/right-component.pipe.ts","../../../../projects/rlb/ng-app/src/lib/templates/app/app.component.ts","../../../../projects/rlb/ng-app/src/lib/templates/app/app.component.html","../../../../projects/rlb/ng-app/src/lib/templates/base/base.component.ts","../../../../projects/rlb/ng-app/src/lib/templates/base/base.component.html","../../../../projects/rlb/ng-app/src/lib/templates/content/content.component.ts","../../../../projects/rlb/ng-app/src/lib/templates/content/content.component.html","../../../../projects/rlb/ng-app/src/lib/pipes/truncate/truncate.pipe.ts","../../../../projects/rlb/ng-app/src/lib/pipes/autolink/autolink.pipe.ts","../../../../projects/rlb/ng-app/src/lib/templates/app-container/app-container.component.ts","../../../../projects/rlb/ng-app/src/lib/templates/app-container/app-container.component.html","../../../../projects/rlb/ng-app/src/lib/rlb-app.module.ts","../../../../projects/rlb/ng-app/src/lib/modals/error-modal.component.ts","../../../../projects/rlb/ng-app/src/lib/modals/modal-apps.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/apps/app-selector/app-selector.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/apps/app-selector/app-selector.component.html","../../../../projects/rlb/ng-app/src/lib/auth/directives/role.directive.ts","../../../../projects/rlb/ng-app/src/lib/auth/guards/oauth.guard.ts","../../../../projects/rlb/ng-app/src/lib/auth/services/oauth-password.service.ts","../../../../projects/rlb/ng-app/src/lib/auth/guards/oauth-password.guard.ts","../../../../projects/rlb/ng-app/src/lib/auth/keycloak/keycloak-account.service.ts","../../../../projects/rlb/ng-app/src/lib/pages/apps/user-account/user-account.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/apps/user-account/user-account.component.html","../../../../projects/rlb/ng-app/src/lib/pages/settings/settings-core/settings-core.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/settings/settings-core/settings-core.component.html","../../../../projects/rlb/ng-app/src/lib/pages/settings/settings-list/settings-list.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/settings/settings-list/settings-list.component.html","../../../../projects/rlb/ng-app/src/lib/pages/shared.routes.ts","../../../../projects/rlb/ng-app/src/lib/store/app-context/app-context.effects.ts","../../../../projects/rlb/ng-app/src/lib/store/app-context/app-context.reducer.ts","../../../../projects/rlb/ng-app/src/lib/store/auth/auth.effects.ts","../../../../projects/rlb/ng-app/src/lib/store/auth/auth.reducer.ts","../../../../projects/rlb/ng-app/src/lib/store/navbar/navbar.reducer.ts","../../../../projects/rlb/ng-app/src/lib/store/sidebar/sidebar.reducer.ts","../../../../projects/rlb/ng-app/src/lib/toasts/error-toast.component.ts","../../../../projects/rlb/ng-app/src/lib/guards/verify-deactivate.guard.ts","../../../../projects/rlb/ng-app/src/public-api.ts","../../../../projects/rlb/ng-app/src/open-rlb-ng-app.ts"],"sourcesContent":["import { InjectionToken, Type } from \"@angular/core\";\nimport { OpenIdConfiguration } from \"angular-auth-oidc-client\";\nimport { LogLevel } from \"./services\";\n\nexport const RLB_CFG = 'rlb.options';\nexport const RLB_CFG_CMS = new InjectionToken<CmsConfiguration>(`${RLB_CFG}:cms`);\nexport const RLB_CFG_I18N = new InjectionToken<InternationalizationConfiguration>(`${RLB_CFG}:i18n`);\nexport const RLB_CFG_PAGES = new InjectionToken<PagesConfiguration>(`${RLB_CFG}:pages`);\nexport const RLB_CFG_ENV = new InjectionToken<EnvironmentConfiguration>(`${RLB_CFG}:env`);\nexport const RLB_CFG_AUTH = new InjectionToken<AuthConfiguration>(`${RLB_CFG}:auth`);\nexport const RLB_APP_NAVCOMP = new InjectionToken<NavbarComponents>(`rlb.app.navcomp`);\n\n\nexport interface ProviderConfiguration extends OpenIdConfiguration {\n configId: string;\n domains?: string[];\n roleClaim?: (data: any) => string | string[];\n}\n\nexport interface NavbarComponents {\n left: {\n component: Type<any>,\n name: string,\n }[],\n right: {\n component: Type<any>,\n name: string,\n }[];\n}\n\nexport interface CmsConfiguration {\n endpoint: string;\n chacheDuration: number;\n useAppLanguage: boolean;\n contentLanguages: string[];\n markdown: 'ignore' | 'html' | 'text';\n}\n\nexport interface AuthConfiguration {\n protocol: 'oauth';\n storage: 'cookies' | 'localStorage' | 'sessionStorage';\n interceptor?: 'oauth-code-all' | 'oauth-code-ep' | 'none';\n allowedUrls: string[];\n providers: ProviderConfiguration[];\n}\n\nexport interface InternationalizationConfiguration {\n availableLangs: string[];\n defaultLanguage: string;\n useLanguageBrowser: boolean;\n storeSelectedLanguage: boolean;\n cookieStoreName: string;\n}\n\nexport interface PagesConfiguration {\n [key: string]: {\n path: string;\n };\n}\n\nexport interface EnvironmentConfiguration {\n appLogo: string;\n appTitle: string;\n navbarDisabled?: boolean;\n baseUrl: string;\n ssr: boolean;\n phone: boolean;\n errorDialogName?: string;\n errorDialogSize?: 'sm' | 'lg' | 'xl' | 'md';\n errorToastName?: string;\n errorToastContainer?: string;\n pwaUpdateEnabled?: boolean;\n logLevel?: LogLevel;\n}\n\nexport interface Endpoint {\n baseUrl: string;\n healthPath: string;\n auth?: boolean;\n wss?: boolean;\n}\n\nexport interface IConfiguration {\n environment?: EnvironmentConfiguration;\n cms?: CmsConfiguration;\n auth?: AuthConfiguration;\n i18n?: InternationalizationConfiguration;\n pages?: PagesConfiguration;\n endpoints?: { [key: string]: Endpoint; };\n}\n\nexport type ProjectConfiguration<T = { [k: string]: any; }> = IConfiguration & { production: boolean; } & T;\n","import { Injectable } from '@angular/core';\nimport { AbstractSecurityStorage } from 'angular-auth-oidc-client';\nimport { SsrCookieService } from 'ngx-cookie-service-ssr';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenCookiesService implements AbstractSecurityStorage {\n\n constructor(private cookies: SsrCookieService) {\n\n }\n\n read(key: string): string {\n return this.cookies.get(key);\n }\n\n remove(key: string): void {\n this.cookies.delete(key);\n }\n\n write(key: string, data: string): void {\n this.cookies.set(key, data);\n }\n\n clear(): void {\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractSecurityStorage } from 'angular-auth-oidc-client';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppStorageService {\n\n readLocal(key: string) {\n return localStorage.getItem(key);\n }\n\n writeLocal(key: string, value: any): void {\n localStorage.setItem(key, value);\n }\n\n removeLocal(key: string): void {\n localStorage.removeItem(key);\n }\n\n clearLocal(): void {\n localStorage.clear();\n }\n\n readSession(key: string) {\n return sessionStorage.getItem(key);\n }\n\n writeSession(key: string, value: any): void {\n localStorage.setItem(key, value);\n }\n\n removeSession(key: string): void {\n sessionStorage.removeItem(key);\n }\n\n clearSession(): void {\n sessionStorage.clear();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractSecurityStorage } from 'angular-auth-oidc-client';\nimport { AppStorageService } from '../../services/utils/app-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenSessionService implements AbstractSecurityStorage {\n\n constructor(private readonly store: AppStorageService) { }\n\n read(key: string) {\n return this.store.readSession(key);\n }\n\n write(key: string, value: any): void {\n this.store.writeSession(key, value);\n }\n\n remove(key: string): void {\n this.store.readSession(key);\n }\n\n clear(): void {\n this.store.clearSession();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractSecurityStorage } from 'angular-auth-oidc-client';\nimport { AppStorageService } from '../../services/utils/app-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenStoreService implements AbstractSecurityStorage {\n\n constructor(private readonly store: AppStorageService) { }\n\n read(key: string) {\n return this.store.readLocal(key);\n }\n\n write(key: string, value: any): void {\n this.store.writeLocal(key, value);\n }\n\n remove(key: string): void {\n this.store.removeLocal(key);\n }\n\n clear(): void {\n this.store.clearLocal();\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { EnvironmentConfiguration, RLB_CFG_ENV } from \"../../configuration\";\n\nexport type LogLevel = 'off' | 'error' | 'warn' | 'info' | 'debug' | 'log';\n\nexport type LoggerContext = {\n\terror: (...args: any[]) => void;\n\twarn: (...args: any[]) => void;\n\tinfo: (...args: any[]) => void;\n\tdebug: (...args: any[]) => void;\n\tlog: (...args: any[]) => void;\n};\n\nconst LEVEL_PRIORITIES: Record<LogLevel, number> = {\n\toff: 0,\n\terror: 1,\n\twarn: 2,\n\tinfo: 3,\n\tdebug: 4,\n\tlog: 5,\n};\n\n@Injectable({ providedIn: 'root' })\nexport class AppLoggerService {\n\tprivate currentLevel: LogLevel = 'off';\n\tprivate timestamps = true;\n\n\tconstructor(@Inject(RLB_CFG_ENV) environment?: EnvironmentConfiguration) {\n this.currentLevel = environment?.logLevel || 'off';\n\t}\n\n\tsetLogLevel(level: LogLevel) {\n\t\tif (!(level in LEVEL_PRIORITIES)) {\n\t\t\tthrow new Error(`Unknown log level: ${level}`);\n\t\t}\n\t\tthis.currentLevel = level;\n\t}\n\n\tgetLogLevel(): LogLevel {\n\t\treturn this.currentLevel;\n\t}\n\n\tenableTimestamps(enabled: boolean) {\n\t\tthis.timestamps = enabled;\n\t}\n\n\t/**\n\t * returns logger with context / class name\n\t */\n\tfor(context: string): LoggerContext {\n\t\treturn {\n\t\t\terror: (...args: any[]) => this.logError(context, ...args),\n\t\t\twarn: (...args: any[]) => this.logWarning(context, ...args),\n\t\t\tinfo: (...args: any[]) => this.logInfo(context, ...args),\n\t\t\tdebug: (...args: any[]) => this.logDebug(context, ...args),\n\t\t\tlog: (...args: any[]) => this.log(context, ...args),\n\t\t};\n\t}\n\n\tlogError(contextOrMessage: any, ...args: any[]): void {\n\t\tthis.print('error', contextOrMessage, args);\n\t}\n\tlogWarning(contextOrMessage: any, ...args: any[]): void {\n\t\tthis.print('warn', contextOrMessage, args);\n\t}\n\tlogDebug(contextOrMessage: any, ...args: any[]): void {\n\t\tthis.print('debug', contextOrMessage, args);\n\t}\n\tlogInfo(contextOrMessage: any, ...args: any[]): void {\n\t\tthis.print('info', contextOrMessage, args);\n\t}\n\tlog(contextOrMessage: any, ...args: any[]): void {\n\t\tthis.print('log', contextOrMessage, args);\n\t}\n\n\tprivate print(level: LogLevel, contextOrMessage: any, args: any[]) {\n\t\tif (LEVEL_PRIORITIES[level] > LEVEL_PRIORITIES[this.currentLevel]) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst colors: Record<LogLevel, string> = {\n\t\t\terror: 'color:#e57373;',\n\t\t\twarn: 'color:#ffb74d;',\n\t\t\tinfo: 'color:#64b5f6;',\n\t\t\tdebug: 'color:#90a4ae;',\n\t\t\tlog: 'color:#757575;',\n\t\t\toff: 'color:inherit;',\n\t\t};\n\n\t\tlet context = 'GLOBAL';\n\t\tlet messageArgs: any[] = [];\n\n\t\tif (args.length > 0) {\n\t\t\tcontext = contextOrMessage;\n\t\t\tmessageArgs = args;\n\t\t} else {\n\t\t\tmessageArgs = [contextOrMessage];\n\t\t}\n\n\t\tconst timePrefix = this.timestamps ? `[${new Date().toISOString()}]` : '';\n\t\tconst prefix = `[${level.toUpperCase()}][${context}]${timePrefix} -`;\n\n\t\tswitch (level) {\n\t\t\tcase 'error':\n\t\t\t\tconsole.error(`%c${prefix}`, colors.error, ...messageArgs);\n\t\t\t\tbreak;\n\t\t\tcase 'warn':\n\t\t\t\tconsole.warn(`%c${prefix}`, colors.warn, ...messageArgs);\n\t\t\t\tbreak;\n\t\t\tcase 'info':\n\t\t\t\tconsole.info(`%c${prefix}`, colors.info, ...messageArgs);\n\t\t\t\tbreak;\n\t\t\tcase 'debug':\n\t\t\t\tconsole.debug(`%c${prefix}`, colors.debug, ...messageArgs);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log(`%c${prefix}`, colors.log, ...messageArgs);\n\t\t}\n\t}\n}\n","import { createActionGroup, props } from '@ngrx/store';\nimport { AppInfo, AppViewMode } from '../../services/apps/app';\nimport { AppTheme } from './app-context.model';\n\nexport const AppContextActionsInternal = createActionGroup({\n source: 'AppContext/Internal',\n events: {\n setLanguage: props<{ language: string; }>(),\n setCurrentApp: props<{ app: AppInfo | null, mode?: AppViewMode; url?: string; }>(),\n setSupportedLanguages: props<{ supportedLanguages: string[]; }>(),\n setTheme: props<{ theme: AppTheme; }>(),\n addApp: props<{ app: AppInfo; }>(),\n setViewMode: props<{ viewMode?: AppViewMode; }>(),\n }\n});\n\n\nexport const AppContextActions = createActionGroup({\n source: 'AppContext/API',\n events: {\n setLanguage: props<{ language: string; }>(),\n setSupportedLanguages: props<{ supportedLanguages: string[]; }>(),\n setCurrentApp: props<{ app: AppInfo | null, mode?: AppViewMode; url?: string; }>(),\n removeApp: props<{ appType: string; }>(),\n setTheme: props<{ theme: AppTheme; }>(),\n finalizeApp: props<{ appType: string; appId: string; data?: any; }>(),\n }\n});\n","import { InjectionToken } from \"@angular/core\";\nimport { AppInfo } from \"../../services/apps/app\";\nimport { AppDescriber } from \"../../services/apps/app-describer\";\n\nexport const appContextFeatureKey = 'app';\nexport type AppTheme = 'light' | 'dark';\nexport type PageTemplate = 'app' | 'basic' | 'cms' | 'content';\nexport const RLB_APPS = new InjectionToken<AppDescriber>(`rlb.apps`);\n\nexport interface AppContext {\n apps: AppInfo[];\n currentApp: AppInfo | null,\n language: string | null,\n theme: AppTheme,\n supportedLanguages: string[];\n}\n\nexport const initialAppContextState: AppContext = {\n apps: [],\n currentApp: null,\n language: null,\n supportedLanguages: ['en'],\n theme: 'light',\n};\n\nexport interface AppState { [appContextFeatureKey]: AppContext; }\n","import { createActionGroup, emptyProps, props } from '@ngrx/store';\n\nexport const AuthActionsInternal = createActionGroup({\n source: 'Auth/Internal',\n events: {\n 'SetCurrentProvider': props<{ currentProvider: string; }>(),\n 'SetLoading': props<{ loading: boolean; }>(),\n 'Reset': emptyProps(),\n }\n});\n\n\nexport const AuthActions = createActionGroup({\n source: 'Auth/API',\n events: {\n 'Login': emptyProps(),\n 'Logout': emptyProps(),\n 'SetCurrentProvider': props<{ currentProvider: string; }>(),\n }\n});\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\n\nimport { AuthActions } from './auth.actions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthFeatureService {\n\n constructor(private store: Store) { }\n\n public login() {\n this.store.dispatch(AuthActions.login());\n }\n\n public logout() {\n this.store.dispatch(AuthActions.logout());\n }\n}\n","export const authsFeatureKey = 'auth';\n\nexport interface Auth {\n currentProvider: string | null;\n loading: boolean;\n}\n\nexport const initialAuthState: Auth = {\n currentProvider: null,\n loading: false,\n};\n\nexport interface AuthState { [authsFeatureKey]: Auth; }\n","import { createActionGroup, emptyProps, props } from '@ngrx/store';\nimport { NavigableItem } from '@open-rlb/ng-bootstrap'\nexport const NavbarActionsInternal = createActionGroup({\n source: 'Navbar/Internal',\n events: {}\n});\n\n\nexport const NavbarActions = createActionGroup({\n source: 'Navbar/API',\n events: {\n SetVisible: props<{ visible: boolean }>(),\n SetSearchVisible: props<{ visible: boolean }>(),\n SetHeader: props<{ header: string | null }>(),\n SetSearchText: props<{ text: string | null }>(),\n SetLeftItems: props<{ items: string[] }>(),\n SetRightItems: props<{ items: string[] }>(),\n SetLoginVisible: props<{ visible: boolean }>(),\n SetSettingsVisible: props<{ visible: boolean }>(),\n SetAppsVisible: props<{ visible: boolean }>(),\n SetSeparatorVisible: props<{ visible: boolean }>(),\n }\n});\n\n","import { NavigableItem } from \"@open-rlb/ng-bootstrap\";\n\nexport const navbarsFeatureKey = 'navbar';\n\nexport interface Navbar {\n visible: boolean\n header: string | null,\n searchVisible: boolean\n searchText: string | null,\n leftItems: string[],\n rightItems: string[],\n loginVisible: boolean,\n settingsVisible: boolean,\n appsVisible: boolean,\n separatorVisible: boolean,\n}\n\nexport const initialNavbarState: Navbar = {\n visible: true,\n header: null,\n searchVisible: true,\n searchText: null,\n leftItems: [],\n rightItems: [],\n loginVisible: false,\n settingsVisible: false,\n appsVisible: false,\n separatorVisible: true,\n}\n\nexport interface NavbarState { [navbarsFeatureKey]: Navbar }\n\n","import { createActionGroup, props } from '@ngrx/store';\nimport { SidebarNavigableItem } from '@open-rlb/ng-bootstrap';\n\nexport const SidebarActionsInternal = createActionGroup({\n source: 'Sidebar/Internal',\n events: {}\n});\n\n\nexport const SidebarActions = createActionGroup({\n source: 'Sidebar/API',\n events: {\n SetItems: props<{ items: SidebarNavigableItem[] }>(),\n SetVisible: props<{ visible: boolean }>(),\n SetLoginVisible: props<{ visible: boolean }>(),\n SetAppsVisible: props<{ visible: boolean }>(),\n SetSearchVisible: props<{ visible: boolean }>(),\n SetSettingsVisible: props<{ visible: boolean }>(),\n SetSearchText: props<{ text: string | null }>(),\n }\n});\n\n","import { NavigableItem, SidebarNavigableItem } from \"@open-rlb/ng-bootstrap\";\n\nexport const sidebarsFeatureKey = 'sidebar';\n\nexport interface Sidebar {\n items: SidebarNavigableItem[];\n visible: boolean;\n loginVisible: boolean;\n searchVisible: boolean;\n appsVisible: boolean;\n settingsVisible: boolean;\n searchText: string | null;\n}\n\nexport const initialSidebarState: Sidebar = {\n items: [],\n visible: true,\n loginVisible: true,\n searchVisible: true,\n settingsVisible: true,\n appsVisible: true,\n searchText: null\n};\n\nexport interface SidebarState { [sidebarsFeatureKey]: Sidebar; }\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport abstract class AbstractSupportService {\n public abstract sendSupport(data: any): void\n}\n","import { PagesConfiguration } from '../configuration';\n\nexport interface DefaultRouteConfig {\n\tpath: string;\n\tconfigKey?: keyof PagesConfiguration;\n}\n\nexport const DEFAULT_ROUTES_CONFIG: DefaultRouteConfig[] = [\n\t{ path: 'setting' },\n\t{ path: 'setting/general' },\n\t{ path: 'apps' },\n\t{ path: 'profile' },\n\t{ path: 'content', configKey: 'content' },\n\t{ path: 'cookies', configKey: 'cookies' },\n\t{ path: 'notFound', configKey: 'notFound' },\n\t{ path: 'privacy', configKey: 'privacy' },\n\t{ path: 'support', configKey: 'support' },\n\t{ path: 'terms', configKey: 'terms' },\n];","import { Inject, Injectable, Optional } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { filter, map, Observable, of, switchMap } from 'rxjs';\nimport { AuthConfiguration, RLB_CFG_AUTH } from '../../configuration';\nimport { AppContextActions, AuthActions, authsFeatureKey, BaseState } from '../../store';\nimport { appContextFeatureKey } from '../../store/app-context/app-context.model';\nimport { AppInfo, AppViewMode } from './app';\nimport { AppLoggerService, LoggerContext } from \"./app-logger.service\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { DEFAULT_ROUTES_CONFIG } from \"../../pages/default-routes.config\";\n\ninterface AppConfig {\n\troute: ActivatedRoute\n\tappsConfig: AppInfo<any>[]\n\tapps: AppInfo<any>[]\n fullPath: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppsService {\n\tprivate logger: LoggerContext;\n\n constructor(\n private store: Store<BaseState>,\n private activatedRoute: ActivatedRoute,\n private router: Router,\n\t\tprivate loggerService: AppLoggerService,\n @Inject(RLB_CFG_AUTH) @Optional() confAuth: AuthConfiguration | undefined\n ) {\n\t\tthis.logger = this.loggerService.for(this.constructor.name);\n\t\tthis.logger.log('AppsService initialized');\n\n this.initAuthProviders(store, confAuth);\n\t\tthis.initRouterListener()\n }\n\n get currentDomain() {\n return window.location.hostname;\n }\n\n\tget apps() {\n\t\treturn this.store.selectSignal(state => state[appContextFeatureKey].apps)()\n\t\t\t.filter(app => app.id && (app.domains === undefined || app.domains == null || app.domains.includes(this.currentDomain)));\n\t}\n\n\tget currentApp() {\n\t\tconst app = this.store.selectSignal(state => state[appContextFeatureKey].currentApp)();\n\t\tthis.logger.log('Current app from store:', app);\n\t\treturn app;\n\t}\n\n selectApp(app?: AppInfo, viewMode?: 'app' | 'settings', url?: string) {\n const currentApp = this.currentApp;\n\t\tif (!app) {\n\t\t\tthis.logger.warn('Deselecting app (null).');\n\t\t\tthis.store.dispatch(AppContextActions.setCurrentApp({ app: null }));\n\t\t\treturn;\n\t\t}\n\t\tif (currentApp && currentApp.id === app.id && currentApp.viewMode === viewMode) {\n\t\t\tthis.logger.info('App already selected with same id and viewMode. Skipping dispatch.');\n\t\t\treturn;\n\t\t}\n\t\tthis.logger.warn('Dispatching setCurrentApp with:', { app, mode: viewMode, url });\n\t\tthis.store.dispatch(AppContextActions.setCurrentApp({ app, mode: viewMode, url }));\n }\n\n\tprivate initAuthProviders(store: Store<BaseState>, confAuth?: AuthConfiguration) {\n const currentProviderInStore = this.store.selectSignal((state) => state[authsFeatureKey].currentProvider)();\n\n if (currentProviderInStore) {\n this.logger.info(`Auth provider already set to '${currentProviderInStore}' by Initializer. AppsService initAuthProviders skipping init.`);\n return;\n }\n\n\t\tif (!confAuth?.providers?.length) {\n\t\t\tthis.logger.warn('No auth providers configured.');\n\t\t\treturn;\n\t\t}\n\n\t\tif (confAuth?.providers && confAuth.providers.length === 1) {\n\t\t\tthis.logger.info('Single auth provider detected:', confAuth.providers[0]);\n\t\t\tstore.dispatch(AuthActions.setCurrentProvider({ currentProvider: confAuth.providers[0].configId }));\n\t\t\treturn\n\t\t}\n\n\t\tthis.logger.info('Multiple auth providers detected, checking by domain:', this.currentDomain);\n\n\t\tconst authProvidersMatched = confAuth.providers.filter(provider => provider.domains?.includes(this.currentDomain));\n\n\t\tif (authProvidersMatched && authProvidersMatched.length === 1) {\n\t\t\tthis.logger.info('Auth provider matched by domain:', authProvidersMatched[0]);\n\t\t\tstore.dispatch(AuthActions.setCurrentProvider({ currentProvider: authProvidersMatched[0].configId }));\n\t\t} else if (authProvidersMatched && authProvidersMatched.length > 1) {\n\t\t\tthis.logger.warn(`Multiple auth providers found for the current domain: ${this.currentDomain}. Please specify a single provider in the configuration.`);\n\t\t} else {\n\t\t\tthis.logger.warn(`No auth provider found for the current domain: ${this.currentDomain}.`);\n\t\t}\n\t}\n\n\tprivate initRouterListener() {\n\t\tthis.router.events\n\t\t\t.pipe(\n\t\t\t\tfilter(event => event instanceof NavigationEnd),\n\t\t\t\tswitchMap(() => this.resolveRouteAndApps()),\n\t\t\t\ttakeUntilDestroyed()\n\t\t\t)\n\t\t\t.subscribe(data => this.handleResolvedApps(data));\n\t}\n\n\t// Core logic\n\n\tprivate resolveRouteAndApps(): Observable<AppConfig | null> {\n\t\tconst route = this.findDeepestChild(this.activatedRoute);\n\n\t\tconst fullPath = this.getFullPath(route);\n this.logger.info(`Full path for route resolution: '${fullPath}'`);\n\n\t\t// if (!fullPath) {\n\t\t// \tthis.logger.warn('No valid path found, treating as default route:', route);\n\t\t// \treturn of(null);\n\t\t// }\n\n\t\tconst appRoutes: AppInfo[] | undefined = this.apps?.map(app => ({\n\t\t\ttype: app.type,\n\t\t\troutes: app.routes || [],\n\t\t\tviewMode: app.viewMode,\n\t\t\tenabled: app.enabled,\n core: app.core\n }));\n\n\t\tlet appRoutesMatched: AppInfo[] = [];\n\n\t\tif (fullPath && !this.isDefaultRoute(fullPath)) {\n\t\t\tappRoutesMatched = appRoutes?.filter(app =>\n\t\t\t\tapp.routes?.some(r => r.includes(fullPath))\n\t\t\t) ?? [];\n\t\t}\n\n\t\tthis.logger.info('Route fullPath:', fullPath, 'Matched appRoute:', appRoutesMatched);\n\n return this.store.select(state => state[appContextFeatureKey].apps).pipe(\n // waiting for all \"finalizeApp\" dispatches\n filter(apps => {\n if (!apps || apps.length === 0) return true;\n const allFinalized = !apps.some(app => !app.id);\n if (!allFinalized) {\n this.logger.info('Waiting for apps initialization (finalizeApp)...');\n }\n return allFinalized;\n }),\n // Return config in there are matched apps, or it's root route case\n map(apps => {\n if (appRoutesMatched.length > 0 || fullPath === '') {\n return { route, appsConfig: appRoutesMatched, apps, fullPath } as AppConfig;\n }\n return null;\n })\n );\n\t}\n\n private handleResolvedApps(data: AppConfig | null) {\n const route = this.findDeepestChild(this.activatedRoute);\n const storedId = this.getStoredAppId();\n\n // Check if route is root\n const currentPath = data ? data.fullPath : this.getFullPath(route);\n const isRoot = currentPath === '';\n\n // Basic check\n if (data?.apps?.some(app => !app.id)) {\n this.logger.error('Some apps are not finalized...');\n return;\n }\n if (!data || !data.apps || data.apps.length === 0) {\n this.logger.warn(`No apps found. Path: '${currentPath}'`);\n this.selectApp(undefined);\n return;\n }\n\n // Filter by domain\n const domainApps = data.apps.filter(app =>\n !app.domains || app.domains?.some((domain) => domain.includes(this.currentDomain))\n );\n\n if (domainApps.length === 0) {\n this.logger.warn(`No apps allowed for domain: ${this.currentDomain}`);\n this.selectApp(undefined);\n return;\n }\n\n\n // CASE 1: SINGLE APP REDIRECT (Partners)\n // We are in root route and there is only one app available\n\n if (isRoot && domainApps.length === 1) {\n const singleApp = domainApps[0];\n const targetUrl = singleApp.core?.url;\n\n if (targetUrl && targetUrl !== '/' && targetUrl !== '') {\n this.logger.info(`[AutoRedirect] Single app detected at root. Redirecting to: ${targetUrl}`);\n this.router.navigate([targetUrl], {\n queryParams: route.snapshot.queryParams,\n replaceUrl: true\n });\n return;\n }\n }\n\n // CASE 2: MULTI APP HUB / CORE HOME PAGE\n // We are in root route, and there are more than one app available\n // ====================================================================\n if (isRoot && domainApps.length > 1) {\n this.logger.info(`Root detected with multiple apps (${domainApps.length}). Showing App Hub / Core home page.`);\n this.selectApp(undefined); // Explicit reset chosen app\n return;\n }\n\n // CASE 3: Standard logic to get app (Deep linking) ---\n // Here we go only if route not empty !=\"\" and not root !=\"/\"\n\n const matchedApps = domainApps.filter(app =>\n app.routes?.some(r => r.includes(route.routeConfig?.path!)) ||\n app.core?.url === '/' + route.routeConfig?.path\n );\n\n let appToSelect: AppInfo | undefined;\n\n if (matchedApps.length === 1) {\n appToSelect = matchedApps[0];\n this.logger.info('Single app matched route:', appToSelect);\n } else if (matchedApps.length > 1) {\n // Fallback in case of conflict routes\n appToSelect = matchedApps.find(a => a.id === storedId) || matchedApps[0];\n this.logger.info('Multiple apps matched route, selected:', appToSelect);\n } else {\n // Fallback: Route path doesn't exist\n appToSelect = undefined;\n this.logger.warn('No app matched this specific route:', currentPath);\n }\n\n const qp = new URLSearchParams(route.snapshot.queryParams).toString();\n const url = currentPath + (qp ? `?${qp}` : '');\n const viewMode = this.isSettingsRoute(route) ? 'settings' : 'app';\n\n this.selectApp(appToSelect, viewMode, url);\n }\n\n\tprivate findDeepestChild(route: ActivatedRoute): ActivatedRoute {\n\t\twhile (route.firstChild) route = route.firstChild;\n\t\tthis.logger.info('Activated deepest child route:', route);\n\t\treturn route;\n\t}\n\n\tprivate getStoredAppId(): string | null {\n\t\ttry {\n\t\t\treturn localStorage.getItem('c-app-id');\n\t\t} catch (e) {\n\t\t\tthis.logger.warn('LocalStorage not available:', e);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate isSettingsRoute(route: ActivatedRoute): boolean {\n\t\treturn route.routeConfig?.path?.includes('settings') ?? false;\n\t}\n\n\tprivate isDefaultRoute(route: string): boolean {\n\t\treturn DEFAULT_ROUTES_CONFIG\n\t\t\t.some(r => r.path.includes(route));\n\t}\n\n\tprivate getFullPath(route: ActivatedRoute): string {\n\t\tconst segments: string[] = [];\n\t\tlet current: ActivatedRoute | null = route.root;\n\n\t\twhile (current) {\n\t\t\tconst path = current.routeConfig?.path;\n\t\t\tif (path && path !== '') segments.push(path);\n\t\t\tcurrent = current.firstChild ?? null;\n\t\t}\n\n\t\treturn segments.join('/');\n\t}\n}\n","import { EventEmitter, Inject, Injectable, Optional } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CookiesService } from '..';\nimport { InternationalizationConfiguration, RLB_CFG_I18N } from '../../configuration';\n\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageService {\n\n private _contentLanguage: string | undefined\n public contentLanguageChanged$: EventEmitter<string> = new EventEmitter();\n\n constructor(\n private translateService: TranslateService,\n private cookiesService: CookiesService,\n @Inject(RLB_CFG_I18N) @Optional() private i18nOptions: InternationalizationConfiguration,\n ) {\n if (this.i18nOptions) {\n translateService.addLangs(this.i18nOptions.availableLangs)\n const languageUI = this.cookiesService.getCookie('ui-locale') || this.defaultLanguage || this.browserLanguage\n const languageContent = this.cookiesService.getCookie('content-locale') || this.defaultLanguage\n translateService.use(languageUI)\n this.contentLanguage = languageContent\n }\n }\n\n get language() {\n return this.translateService.getCurrentLang() || this.i18nOptions.defaultLanguage\n }\n\n set language(value: string | undefined) {\n if (!value) return\n this.cookiesService.setCookie('ui-locale', value)\n this.translateService.use(value)\n }\n\n get contentLanguage() {\n return this._contentLanguage\n }\n\n set contentLanguage(value: string | undefined) {\n this.cookiesService.setCookie('content-locale', value || this.defaultLanguage)\n this._contentLanguage = value\n this.contentLanguageChanged$.emit(value)\n }\n\n public get languages(): readonly string[] {\n return this.translateService.getLangs()\n }\n\n public set languages(value: string[]) {\n this.translateService.addLangs(value)\n }\n\n public get defaultLanguage(): string {\n return this.translateService.getFallbackLang() || 'en'\n }\n\n public get browserLanguage() {\n return this.translateService.getBrowserLang() || 'en'\n }\n\n public translate(key: string | Array<string>, interpolateParams?: Object) {\n return this.translateService.instant(key, interpolateParams)\n }\n\n public translateAsync(key: string | Array<string>, interpolateParams?: Object) {\n return this.translateService.get(key, interpolateParams)\n }\n\n public get languageChanged$() {\n return this.translateService.onLangChange\n }\n\n public getLanguageName(l: string): string {\n switch (l) {\n case 'it': return 'Italiano'\n case 'en': return 'English'\n case 'es': return 'Español'\n case 'fr': return 'Francés'\n case 'ja': return '日本語'\n default: return ''\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { ActivatedRoute, NavigationEnd, Router } from \"@angular/router\";\nimport { BreadcrumbItem } from \"@open-rlb/ng-bootstrap\";\nimport { BehaviorSubject, filter } from \"rxjs\";\nimport { AppLoggerService, LoggerContext } from \"./app-logger.service\";\nimport { LanguageService } from \"../i18n/language.service\";\n\n@Injectable({ providedIn: 'root' })\nexport class AppBreadcrumbService {\n\tprivate readonly _breadcrumbs$ = new BehaviorSubject<BreadcrumbItem[]>([]);\n\tpublic readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\tprivate logger: LoggerContext;\n\n\tconstructor(\n\t\tprivate router: Router,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate loggerService: AppLoggerService,\n\t\tprivate languageService: LanguageService\n\t) {\n\t\tthis.logger = this.loggerService.for(this.constructor.name);\n\t\tthis.logger.info('Service initialized');\n\n\t\tthis.router.events\n\t\t\t.pipe(filter((event): event is NavigationEnd => event instanceof NavigationEnd))\n\t\t\t.subscribe(() => this.updateBreadcrumbs());\n\n\t\tthis.languageService.languageChanged$\n\t\t\t.subscribe(() => this.updateBreadcrumbs());\n\n\t\t// init construct\n\t\tthis.updateBreadcrumbs();\n\t}\n\n\tprivate updateBreadcrumbs() {\n\t\tconst crumbs = this.buildBreadcrumbFromRoot(this.route);\n\t\tthis._breadcrumbs$.next(crumbs);\n\t\tthis.logger.info('Breadcrumbs updated', crumbs);\n\t}\n\n\tprivate buildBreadcrumbFromRoot(route: ActivatedRoute): BreadcrumbItem[] {\n\t\tconst breadcrumbs: BreadcrumbItem[] = [];\n\t\tlet accumulatedLink = '';\n\t\tlet currentRoute: ActivatedRoute | null = route.root;\n\n\t\twhile (currentRoute) {\n\t\t\tconst urlPart = currentRoute.snapshot.url.map(s => s.path).join('/');\n\t\t\tif (urlPart) accumulatedLink += `/${urlPart}`;\n\n\t\t\tconst label = currentRoute.snapshot.data['breadcrumb'];\n\t\t\tif (label && (urlPart || breadcrumbs.length === 0)) {\n\t\t\t\tbreadcrumbs.push({\n\t\t\t\t\tlabel: this.languageService.translate(label),\n\t\t\t\t\tlink: accumulatedLink || '/'\n\t\t\t\t});\n\t\t\t\tthis.logger.debug('Pushed breadcrumb', { label, link: accumulatedLink });\n\t\t\t}\n\n\t\t\tif (!currentRoute.firstChild) break;\n\t\t\tcurrentRoute = currentRoute.firstChild;\n\t\t}\n\n\t\treturn breadcrumbs;\n\t}\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Observable, of, share, switchMap } from 'rxjs'\nimport { CacheItem } from './cache-item';\nimport { ProjectConfiguration, RLB_CFG } from '../../configuration';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalCacheService {\n\n constructor(\n @Inject(RLB_CFG) @Optional() private options: ProjectConfiguration\n ) {\n this.clear()\n }\n\n private clear() {\n if (typeof localStorage !== 'undefined') {\n for (let i: number = 0; i < localStorage.length; i++) {\n const key: string = localStorage.key(i) || ''\n const val = localStorage.getItem(key)\n if (!val) continue\n try {\n const exp: CacheItem<any> = JSON.parse(val)\n if (Date.now() > exp?.expire) {\n localStorage.removeItem(key)\n }\n } catch (e) { }\n }\n }\n }\n\n private readData<T>(key: string): CacheItem<T> | null {\n if (typeof localStorage !== 'undefined') {\n const val = localStorage.getItem(key)\n if (!val) return null\n return JSON.parse(key)\n }\n return null;\n }\n\n private storeData<T>(key: string, data: CacheItem<T>): void {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(key, JSON.stringify(data))\n }\n }\n\n public getData<T>(ob: Observable<T>, cacheKey: string, expirationSec: number): Observable<T> {\n const cachedValue = this.readData<T>(cacheKey)\n return of(cachedValue).pipe(switchMap(cache => {\n if (cache && cache.expire >= Date.now()) {\n if (!this.options.production) {\n console.info(\"%c Cache: \" + cacheKey, 'background: #e5edff; color: #000')\n }\n return of(cache.data)\n } else {\n if (!this.options.production) {\n console.info(\"%c Cached: \" + cacheKey, 'background: #e5edff; color: #000')\n }\n return ob.pipe(\n share(),\n switchMap(data => {\n this.storeData<T>(cacheKey, {\n data,\n expire: Date.now() + (expirationSec || 60) * 1000\n })\n return of(data)\n }))\n }\n }),\n share())\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport abstract class AbstractMdService {\n\n constructor() { }\n\n public abstract md2html(md: string): string;\n public abstract md2text(md: string): string;\n}\n","import { Inject, Injectable, Optional } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { FaqGroup, Home, MenuItem, Page, Tab, Topic, LocalCacheService } from '../'\nimport { Observable, from, lastValueFrom, map, switchMap, zip } from 'rxjs'\nimport { CmsConfiguration, RLB_CFG_CMS } from '../../configuration'\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StrapiService {\n\n constructor(\n private http: HttpClient,\n private cache: LocalCacheService,\n @Inject(RLB_CFG_CMS) @Optional() private cmsOptions: CmsConfiguration) { }\n\n public fetchHome(lang: string, cid: string): Observable<Home> {\n const __r = this.http.get<Home>(`${this.cmsOptions.endpoint}/homes/${lang}/${cid}`)\n return this.cache.getData(__r, `strapiHome/${lang}/${cid}`, this.cmsOptions.chacheDuration || 3600)\n }\n\n public fetchTopic(id: string): Observable<Topic> {\n return this.http.get<Topic>(`${this.cmsOptions.endpoint}/topics/${id}`)\n }\n\n public fetchTab(id: string): Observable<Tab> {\n return this.http.get<Tab>(`${this.cmsOptions.endpoint}/tabs/${id}`)\n }\n\n public fetchFaqGroup(lang: string, cid: string): Observable<FaqGroup> {\n return this.http.get<FaqGroup>(`${this.cmsOptions.endpoint}/faq-groups/${lang}/${cid}`)\n }\n\n\n private async _getGuideMenuPromise(lang: string, cid: string): Promise<MenuItem> {\n const resp: MenuItem = (await lastValueFrom(this.http.get<MenuItem>(`${this.cmsOptions.endpoint}/menu-items/${lang}/${cid}`)))\n resp.menu_items = resp.menu_items.sort((a, b) => ((a.Order || Math.max()) > (b.Order || Math.max())) ? 1 : (((b.Order || Math.max()) > (a.Order || Math.max())) ? -1 : 0))\n const t = await Promise.all(resp.menu_items.map((o: any) => this._getGuideMenuPromise(lang, o.ContentId)))\n resp.menu_items = t.sort((a, b) => (a.Order || Math.max() > b.Order || Math.max()) ? 1 : ((b.Order || Math.max() > a.Order || Math.max()) ? -1 : 0))\n return resp\n }\n\n public getGuideMenu(lang: string, cid: string): Observable<MenuItem> {\n return this.cache.getData(from(this._getGuideMenuPromise(lang, cid)), `strapiMenu/${lang}/${cid}`, this.cmsOptions.chacheDuration || 3600)\n }\n\n // public getGuideMenu2(lang: string, cid: string): Observable<MenuItem> {\n // var __r = this.http.get<MenuItem>(`${this.cmsOptions.endpoint}/menu-items/${lang}/${cid}`)\n // .pipe(\n // switchMap(menuItem => {\n // if (menuItem.menu_items.length == 0)\n // return of(menuItem)\n // menuItem.menu_items = menuItem.menu_items\n // .sort((a, b) => ((a.Order || Math.max()) > (b.Order || Math.max())) ? 1 : (((b.Order || Math.max()) > (a.Order || Math.max())) ? -1 : 0))\n // return zip(menuItem.menu_items.map(menuSub => this.getGuideMenu(lang, menuSub.ContentId)))\n // .pipe(map(menuSubItems => {\n // menuItem.menu_items = menuSubItems\n // return menuItem\n // }))\n // }))\n // return this.cache.getData(__r, `strapiMenu/${lang}/${cid}`, this.cmsOptions.chacheDuration)\n // }\n\n public fetchPage(lang: string, cid: string): Observable<Page> {\n const __r = this.http.get<Page>(`${this.cmsOptions.endpoint}/pages/${lang}/${cid}`)\n .pipe(switchMap(page => {\n const tabs$ = zip(page.page_tabs.map((o: Tab) => this.fetchTab(o.id)))\n const topics$ = zip(page.topics.map((o: Topic) => this.fetchTopic(o.id)))\n return zip(tabs$, topics$).pipe(map(([tabs, topics]) => {\n page.page_tabs = tabs\n page.topics = topics\n return page\n }))\n }))\n return this.cache.getData(__r, `strapiPage/${lang}/${cid}`, this.cmsOptions.chacheDuration || 3600)\n }\n}","import { Inject, Injectable, Optional } from '@angular/core';\nimport { ModalService, ModalType, ToastService } from '@open-rlb/ng-bootstrap';\nimport { ErrorOutput, } from './errors';\nimport { EMPTY, Observable, OperatorFunction, catchError, of } from 'rxjs';\nimport { LanguageService } from '..';\nimport { ProjectConfiguration, RLB_CFG } from '../../configuration';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorManagementService {\n\n constructor(\n private dialogService: ModalService,\n private toastService: ToastService,\n private languageService: LanguageService,\n @Inject(RLB_CFG) @Optional() private options: ProjectConfiguration\n ) { }\n\n public showError(type: ModalType = 'error', out: ErrorOutput = 'dialog', error?: any) {\n if (out === 'dialog') {\n return this.showDialog(type, error);\n }\n if (out === 'toast') {\n return this.showToast(type, error);\n }\n if (out === 'console') {\n if (!this.options.production) {\n console.info(\"%c Error service: ShowToast\", 'background: #ffcdc9; color: #000', error)\n }\n return of({ reason: 'console' })\n }\n return EMPTY;\n }\n\n public showDialog(type: ModalType, error?: Error) {\n if (!this.options.production) {\n console.info(\"%c Error service: ShowDialog\", 'background: #ffcdc9; color: #000', error)\n }\n return this.dialogService.openModal<string, void>(\n this.options?.environment?.errorDialogName || 'error-modal-component',\n {\n content: error?.message || '',\n title: error?.name || '',\n ok: this.languageService.translate('common.ok'),\n type,\n },\n {\n animation: true,\n backdrop: true,\n keyboard: true,\n size: this.options?.environment?.errorDialogSize || 'md',\n scrollable: true,\n focus: true,\n fullscreen: false,\n verticalcentered: true,\n }\n );\n }\n\n public showToast(type: ModalType, error?: any) {\n if (!this.options.production) {\n console.info(\"%c Error service: ShowToast\", 'background: #ffcdc9; color: #000', error)\n }\n return this.toastService.openToast(\n this.options?.environment?.errorToastContainer || 'error-toast-container',\n this.options?.environment?.errorToastName || 'error-toast',\n {\n content: error?.message || '',\n title: error?.name || '',\n ok: this.languageService.translate('common.ok'),\n type: 'error'\n },\n {\n animation: true,\n autohide: true,\n delay: 5000,\n }\n );\n }\n\n public manageUI<T>(type: ModalType = 'error', out: ErrorOutput = 'dialog'): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return source.pipe(\n catchError((error, k) => {\n if (error.name && error.name === 'HttpErrorResponse' && error.error) {\n error.message = `${error.error.status}: ${error.error.message}`;\n }\n this.showError(type, out, error);\n return EMPTY;\n }),\n );\n };\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { RlbTranslationService, UniqueIdService } from \"@open-rlb/ng-bootstrap\";\n\n@Injectable({ providedIn: 'root' })\nexport class RlbTranslateAdapterService implements RlbTranslationService {\n\tconstructor(private translateService: TranslateService, private service: UniqueIdService) {}\n\n\tinstant(key: string, params?: { [key: string]: any }): string {\n\t\treturn this.translateService.instant(key, params);\n\t}\n}\n","import { EnvironmentProviders, importProvidersFrom, Provider } from \"@angular/core\";\nimport { InternationalizationConfiguration, RLB_CFG_I18N } from \"../../configuration\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { RLB_TRANSLATION_SERVICE } from \"@open-rlb/ng-bootstrap\";\nimport { RlbTranslateAdapterService } from \"./rlb-translate-adapter.service\";\nimport { provideTranslateHttpLoader } from \"@ngx-translate/http-loader\";\n\nexport function provideRlbI18n(i18n?: InternationalizationConfiguration): (EnvironmentProviders | Provider)[] {\n if (!i18n) return [];\n\n const prefix: string = './assets/i18n/';\n const suffix: string = '.json'\n\n return [\n importProvidersFrom([\n TranslateModule.forRoot({\n loader: provideTranslateHttpLoader({\n prefix,\n suffix,\n // enforceLoading: true, // Adds cache-busting timestamp\n // useHttpBackend: true // Bypasses HTTP interceptors\n }),\n fallbackLang: i18n.defaultLanguage\n })\n ]),\n { provide: RLB_CFG_I18N, useValue: i18n },\n\t\t{\n\t\t\tprovide: RLB_TRANSLATION_SERVICE,\n\t\t\tuseClass: RlbTranslateAdapterService\n\t\t},\n ]\n}\n","import { Observable } from 'rxjs';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { HttpClient } from '@angular/common/http';\nimport { makeStateKey, StateKey, TransferState } from '@angular/core';\n\nexport class TranslateBrowserLoader implements TranslateLoader {\n constructor(private http: HttpClient,\n private transferState: TransferState,\n private prefix: string = './assets/i18n/',\n private suffix: string = '.json') {}\n\n public getTranslation(lang: string): Observable<any> {\n const key: StateKey<number> = makeStateKey<number>(\n 'transfer-translate-' + lang\n );\n const data = this.transferState.get(key, null);\n\n // First we are looking for the translations in transfer-state,\n\t // if none found, http load as fallback\n if (data) {\n return new Observable((observer) => {\n observer.next(data);\n observer.complete();\n });\n } else {\n return this.http.get(`${this.prefix}${lang}${this.suffix}`);\n }\n }\n}\n\nexport function translateBrowserLoaderFactory(\n httpClient: HttpClient,\n transferState: TransferState\n) {\n return new TranslateBrowserLoader(httpClient, transferState);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CookiesService {\n public getCookie(name: string): string | undefined {\n let ca: Array<string> = document.cookie.split(';');\n let caLen: number = ca.length;\n let cookieName = `${name}=`;\n let c: string;\n\n for (let i: number = 0; i < caLen; i += 1) {\n c = ca[i].replace(/^\\s+/g, '');\n if (c.indexOf(cookieName) == 0) {\n return c.substring(cookieName.length, c.length);\n }\n }\n return undefined;\n }\n\n public deleteCookie(name: string) {\n this.setCookie(name, '', -1);\n }\n\n public setCookie(name: string, value: string, expireDays?: number, path: string = '') {\n let cookie = `${name}=${value};`;\n if (expireDays) {\n let d: Date = new Date();\n d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);\n let expires: string = `expires=${d.toUTCString()};`;\n cookie += `${expires}`\n }\n if (path) {\n cookie += `path=${path};`\n }\n document.cookie = cookie;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { SwUpdate, VersionReadyEvent } from '@angular/service-worker';\nimport { filter, map, switchMap } from 'rxjs';\nimport { ModalService } from '@open-rlb/ng-bootstrap';\nimport { LanguageService } from '../i18n/language.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PwaUpdaterService {\n\n private _newVersionAvailable$ = new EventEmitter<void>();\n\n get newVersionAvailable$() {\n return this._newVersionAvailable$.asObservable();\n }\n\n constructor(\n private readonly updates: SwUpdate,\n private readonly modalService: ModalService,\n private readonly languageService: LanguageService) {\n this.updates.versionUpdates\n .pipe(\n filter((evt): evt is VersionReadyEvent => (evt.type === 'VERSION_READY'))\n ).subscribe(() => this._newVersionAvailable$.emit());\n }\n\n update() {\n this.updates.activateUpdate()\n .then(() => document.location.reload());\n }\n\n async checkForUpdates() {\n return await this.updates.checkForUpdate();\n }\n\n checkWithDialog() {\n return this.updates.versionUpdates\n .pipe(\n filter((evt): evt is VersionReadyEvent => {\n const result = evt.type === 'VERSION_READY';\n return result;\n }),\n switchMap(() =>\n this.modalService.openSimpleModal(\n this.languageService.translate('core.pwa.newVersionAvailable'),\n this.languageService.translate('core.pwa.updateMessage'),\n this.languageService.translate('core.pwa.updateNow'),\n this.languageService.translate('core.pwa.update'),\n this.languageService.translate('core.pwa.later'))\n ),\n filter((res) => res?.reason === 'ok'), //si ferma se l'evento non è una action\n map(() => this.updates.activateUpdate().then(() => location.reload()))\n )\n }\n}\n\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n public isNumber(evt: any) {\n evt = evt || window.event\n const charCode = evt.which ? evt.which : evt.keyCode\n if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode !== 46) {\n evt.preventDefault()\n return false\n } else {\n return true\n }\n }\n\n public toPlainDataObject(o: ({ [k: string]: any } | { [k: string]: any }[])): any {\n if (o !== null && o != undefined) {\n if (Array.isArray(o)) {\n return o.map(j => this.toPlainDataObject(j))\n } else if (typeof o === 'object') {\n return Object.getOwnPropertyNames(o).reduce((result: { [k: string]: any }, name) => {\n if (name !== '__ob__') result[name] = this.toPlainDataObject(o[name])\n return result\n }, {})\n } else if (typeof o === 'function' || typeof o === 'undefined') {\n return undefined\n } else {\n return o\n }\n }\n }\n\n public groupBy<T>(xs: T[], predicate: (o: T) => string) {\n return xs.reduce((rv, x) => {\n ; (rv[predicate(x)] = rv[predicate(x)] || []).push(x)\n return rv\n }, {} as { [i: string]: T[] })\n }\n\n\n\n private s(x: any, y: any): number {\n var pre = ['string', 'number', 'bool']\n if (typeof x !== typeof y) return pre.indexOf(typeof y) - pre.indexOf(typeof x)\n\n if (x === y) return 0\n else return x > y ? 1 : -1\n }\n\n public compareArrayUnsort(a1: any, a2: any): boolean {\n if (!Array.isArray(a1)) return false\n if (!Array.isArray(a2)) return false\n if (a1.length != a2.length) return false\n a1 = a1.sort(this.s)\n a2 = a2.sort(this.s)\n for (var i = 0, l = a1.length; i < l; i++) {\n if (Array.isArray(a1[i]) && Array.isArray(a2[i])) {\n if (!this.compareArrayUnsort(a1[i], a2[i])) return false\n } else if (a1[i] != a2[i]) {\n // Warning - two different object instances will never be equal: {x:20} != {x:20}\n return false\n }\n }\n return true\n }\n\n public removeMD(\n md: string,\n options?: { listUnicodeChar?: string; stripListLeaders?: boolean; useImgAltText?: boolean; gfm?: boolean }\n ) {\n options = options || {}\n options.listUnicodeChar = options.hasOwnProperty('listUnicodeChar') ? options.listUnicodeChar : undefined\n options.stripListLeaders = options.hasOwnProperty('stripListLeaders') ? options.stripListLeaders : true\n options.gfm = options.hasOwnProperty('gfm') ? options.gfm : true\n options.useImgAltText = options.hasOwnProperty('useImgAltText') ? options.useImgAltText : true\n\n var output = md || ''\n\n // Remove horizontal rules (stripListHeaders conflict with this rule, which is why it has been moved to the top)\n output = output.replace(/^(-\\s*?|\\*\\s*?|_\\s*?){3,}\\s*$/gm, '')\n\n try {\n if (options.stripListLeaders) {\n if (options.listUnicodeChar)\n output = output.replace(/^([\\s\\t]*)([\\*\\-\\+]|\\d+\\.)\\s+/gm, options.listUnicodeChar + ' $1')\n else output = output.replace(/^([\\s\\t]*)([\\*\\-\\+]|\\d+\\.)\\s+/gm, '$1')\n }\n if (options.gfm) {\n output = output\n // Header\n .replace(/\\n={2,}/g, '\\n')\n // Fenced codeblocks\n .replace(/~{3}.*\\n/g, '')\n // Strikethrough\n .replace(/~~/g, '')\n // Fenced codeblocks\n .replace(/`{3}.*\\n/g, '')\n }\n output = output\n // Remove HTML tags\n .replace(/<[^>]*>/g, '')\n // Remove setext-style headers\n .replace(/^[=\\-]{2,}\\s*$/g, '')\n // Remove footnotes?\n .replace(/\\[\\^.+?\\](\\: .*?$)?/g, '')\n .replace(/\\s{0,2}\\[.*?\\]: .*?$/g, '')\n // Remove images\n .replace(/\\!\\[(.*?)\\][\\[\\(].*?[\\]\\)]/g, options.useImgAltText ? '$1' : '')\n // Remove inline links\n .replace(/\\[(.*?)\\][\\[\\(].*?[\\]\\)]/g, '$1')\n // Remove blockquotes\n .replace(/^\\s{0,3}>\\s?/g, '')\n // Remove reference-style links?\n .replace(/^\\s{1,2}\\[(.*?)\\]: (\\S+)( \".*?\")?\\s*$/g, '')\n // Remove atx-style headers\n .replace(/^(\\n)?\\s{0,}#{1,6}\\s+| {0,}(\\n)?\\s{0,}#{0,} {0,}(\\n)?\\s{0,}$/gm, '$1$2$3')\n // Remove emphasis (repeat the line to remove double emphasis)\n .replace(/([\\*_]{1,3})(\\S.*?\\S{0,1})\\1/g, '$2')\n .replace(/([\\*_]{1,3})(\\S.*?\\S{0,1})\\1/g, '$2')\n // Remove code blocks\n .replace(/(`{3,})(.*?)\\1/gm, '$2')\n // Remove inline code\n .replace(/`(.+?)`/g, '$1')\n // Replace two or more newlines with exactly two? Not entirely sure this belongs here...\n .replace(/\\n{2,}/g, '\\n\\n')\n } catch (e) {\n console.error(e)\n return md\n }\n return output\n }\n\n public floatStr(input: string | number) {\n if (input) {\n if (typeof input === 'number') {\n input = input.toString()\n }\n return parseFloat(input.replace(',', '.')).toFixed(2)\n }\n return '0.00'\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ParseJwtService {\n\n private _atob(string: string): string {\n return Buffer.from(string, 'base64').toString(\"binary\");// atob(string)\n }\n\n public parseJwt(token?: string) {\n if (token !== undefined && token !== null && token !== \"\") {\n var base64Url = token.split(\".\")[1];\n var base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n var jsonPayload = decodeURIComponent(\n this._atob(base64)\n .split(\"\")\n .map(c => (\"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2)))\n .join(\"\")\n );\n return JSON.parse(jsonPayload);\n } else {\n return {};\n }\n };\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { LoginResponse, OidcSecurityService} from 'angular-auth-oidc-client';\nimport { lastValueFrom, map, Observable, tap } from 'rxjs';\nimport { AuthConfiguration, EnvironmentConfiguration, RLB_CFG_AUTH, RLB_CFG_ENV } from '../../configuration';\nimport { AppLoggerService, AppStorageService, CookiesService, LoggerContext } from '../../services';\nimport { AuthActions, authsFeatureKey, BaseState } from '../../store';\nimport { ParseJwtService } from './parse-jwt.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticationService {\n modal!: Window | null;\n private logger: LoggerContext;\n\n constructor(\n private oidcSecurityService: OidcSecurityService,\n private cookiesService: CookiesService,\n private router: Router,\n private readonly parseJwtService: ParseJwtService,\n private readonly store: Store<BaseState>,\n private readonly log: AppLoggerService,\n private readonly localStorage: AppStorageService,\n @Optional() @Inject(RLB_CFG_ENV) private envConfig: EnvironmentConfiguration,\n @Optional() @Inject(RLB_CFG_AUTH) private authConfig: AuthConfiguration\n ) {\n this.logger = this.log.for(this.constructor.name);\n this.logger.log('AuthenticationService initialized');\n }\n\n public get oidc(): OidcSecurityService {\n return this.oidcSecurityService;\n }\n\n get config(): AuthConfiguration {\n return this.authConfig;\n }\n\n get currentProvider() {\n const currentProvider = this.store.selectSignal((state) => state[authsFeatureKey].currentProvider)();\n return this.authConfig?.providers.find((provider) => provider.configId === currentProvider);\n }\n\n public checkAuthMultiple(url?: string | undefined): Observable<LoginResponse[]> {\n // if (Capacitor.isNativePlatform()) {\n // console.log('Capacitor is native platform')\n // App.addListener('appUrlOpen', async ({ url }: { url: string }) => {\n // await this.zone.run(async () => {\n // const _url = `${environment.baseUrl}/${url.slice(url.indexOf('?'))}`\n // this.authorize(_url).subscribe();\n // })\n // });\n // } else {\n return this.oidc.checkAuthMultiple(url)\n .pipe(tap(data => {\n const authenticatedConfig = data.find(o => o.isAuthenticated);\n if (authenticatedConfig && authenticatedConfig.configId) {\n this.logger.info(`User is authenticated with provider: ${authenticatedConfig.configId}. Updating Store.`);\n\n // first dispatch to prevent recalculate in apps service\n this.store.dispatch(AuthActions.setCurrentProvider({\n currentProvider: authenticatedConfig.configId\n }));\n\n const redirect = this.localStorage.readLocal('loginRedirectUrl');\n\n //const redirect = this.cookiesService.getCookie('loginRedirectUrl');\n this.logger.info(`Correct provider dispatched, redirectUrl: ${redirect}`);\n if (redirect) {\n this.localStorage.removeLocal('loginRedirectUrl');\n // this.cookiesService.deleteCookie('loginRedirectUrl');\n\n // setTimeout to prevent NavigationCancel\n // this allows current angular navigation cycle (handle URL with code/state) to complete\n setTimeout(() => {\n this.router.navigateByUrl(redirect, { replaceUrl: true });\n }, 0);\n } else {\n this.logger.info(`User authenticated, no redirectUrl found. Staying on current route.`);\n }\n } else {\n this.logger.warn(`No authenticatedConfig found for ${url}`);\n }\n }));\n //}\n }\n\n public login(targetUrl?: string) {\n const returnUrl = targetUrl || this.router.url || '/';\n // this.cookiesService.setCookie('loginRedirectUrl', returnUrl, 1);\n this.localStorage.writeLocal('loginRedirectUrl', returnUrl);\n this.logger.log(`call login method, loginRedirectUrl: ${returnUrl}`);\n // electron\n if (typeof (process) !== 'undefined' &&\n typeof (process?.version) !== 'undefined' &&\n typeof (process?.versions['electron']) !== undefined) {\n const urlHandler = (authUrl: string) => {\n console.log(authUrl);\n this.modal = window.open(authUrl, '_blank', 'nodeIntegration=no');\n };\n return this.oidc.authorize(this.currentProvider?.configId, { urlHandler });\n }\n // capacitor\n // else if (Capacitor.isNativePlatform()) {\n // const urlHandler = async (url: string) => {\n // console.log('opening', url);\n // await Browser.open({ url, windowName: '_self' })\n // };\n // this.oidc.authorize(config, { urlHandler });\n // }\n // browser\n else {\n return this.oidc.authorize(this.currentProvider?.configId);\n }\n }\n\n async logout() {\n await lastValueFrom(this.oidc.logoff(this.currentProvider?.configId));\n }\n\n logout$() {\n return this.oidc.logoff(this.currentProvider?.configId);\n }\n\n public get userInfo$(): Observable<any> {\n return this.oidc.userData$.pipe(map((userData) => {\n const user = userData.allUserData.find(o => o.configId === this.currentProvider?.configId);\n return user ? user.userData : null;\n }));\n }\n\n public get isAuthenticated$(): Observable<boolean> {\n return this.oidc.isAuthenticated$.pipe(map((isAuthenticated) => {\n // this.logger.log(`oidc isAuthenticated$ check, response: ${JSON.stringify(isAuthenticated)}; looking for isAuthenticated of ${this.currentProvider?.configId} configId`);\n return isAuthenticated.allConfigsAuthenticated.find(o => o.configId === this.currentProvider?.configId)?.isAuthenticated || false;\n }));\n }\n\n public get accessToken$(): Observable<string | undefined> {\n return this.oidc.getAccessToken(this.currentProvider?.configId);\n }\n\n public get idToken$(): Observable<string | undefined> {\n return this.oidc.getIdToken(this.currentProvider?.configId);\n }\n\n public get refreshToken$(): Observable<string | undefined> {\n return this.oidc.getRefreshToken(this.currentProvider?.configId);\n }\n\n public get roles$(): Observable<string[]> {\n return this.accessToken$.pipe(\n map((token) => (this.parseJwtService.parseJwt(token))),\n map((payload) => payload['roles'] as string[]),\n );\n }\n\n public matchRoles(roles: string[]): Observable<boolean> {\n return this.accessToken$.pipe(\n map(token => this.parseJwtService.parseJwt(token)),\n map(payload => payload['roles'] as string[]),\n map(userRoles => roles.some(role => userRoles.includes(role))),\n );\n }\n\n}\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { Observable, switchMap, map } from 'rxjs';\nimport { AuthenticationService } from \"./services/auth.service\";\nimport { IConfiguration, RLB_CFG } from \"../configuration\";\n\n@Injectable()\nexport class TokenOauthInterceptor implements HttpInterceptor {\n\n constructor(\n private authenticationService: AuthenticationService,\n @Inject(RLB_CFG) private appconfig: IConfiguration\n ) { }\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const endpoints = !this.appconfig.endpoints ? [] : Object.values(this.appconfig.endpoints).filter(e => e.auth && !e.wss)\n if (!endpoints.some(e => request.url.includes(e.baseUrl))) {\n return next.handle(request);\n }\n return this.authenticationService.accessToken$.pipe(\n switchMap(token => {\n if (token) {\n const newRequest = request.clone({\n setHeaders: { Authorization: `Bearer ${token}` }\n });\n return next.handle(newRequest);\n }\n return next.handle(request);\n })\n );\n }\n}\n","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { EnvironmentProviders, makeEnvironmentProviders, Provider } from \"@angular/core\";\nimport {\n\tAbstractLoggerService,\n\tAbstractSecurityStorage,\n\tAuthInterceptor,\n\tAuthModule,\n\tLogLevel,\n\tprovideAuth\n} from \"angular-auth-oidc-client\";\nimport { AuthConfiguration, RLB_CFG_AUTH } from \"../configuration\";\nimport { TokenCookiesService } from \"./providers/token-cookies.service\";\nimport { TokenSessionService } from \"./providers/token-session.service\";\nimport { TokenStoreService } from \"./providers/token-store.service\";\nimport { AppLoggerService } from \"../services/apps/app-logger.service\";\nimport { TokenOauthInterceptor } from \"./token-oauth-interceptor\";\n\nexport function provideRlbCodeBrowserOAuth(auth: AuthConfiguration | undefined): EnvironmentProviders {\n if (!auth || auth.protocol !== 'oauth') return makeEnvironmentProviders([]);\n const providers: (Provider | EnvironmentProviders)[] = [\n { provide: RLB_CFG_AUTH, useValue: auth },\n { provide: AbstractLoggerService, useClass: AppLoggerService },\n AuthModule,\n provideAuth({\n config: auth.providers.map((_auth) => ({\n ..._auth,\n secureRoutes: auth.allowedUrls,\n responseType: 'code',\n silentRenew: true,\n useRefreshToken: true,\n autoUserInfo: true,\n renewUserInfoAfterTokenRenew: true,\n ignoreNonceAfterRefresh: true,\n renewTimeBeforeTokenExpiresInSeconds: 30,\n }))\n }),\n ];\n if (auth.interceptor === 'oauth-code-all') {\n providers.push({ provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true });\n }\n if (auth.interceptor === 'oauth-code-ep') {\n providers.push({ provide: HTTP_INTERCEPTORS, useClass: TokenOauthInterceptor, multi: true });\n }\n if (auth.storage === 'cookies') {\n providers.push({ provide: AbstractSecurityStorage, useClass: TokenCookiesService });\n }\n if (auth.storage === 'localStorage') {\n providers.push({ provide: AbstractSecurityStorage, useClass: TokenStoreService },);\n }\n if (auth.storage === 'sessionStorage') {\n providers.push({ provide: AbstractSecurityStorage, useClass: TokenSessionService },);\n }\n\n return makeEnvironmentProviders(providers);\n}\n","import { Inject, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { CmsConfiguration, RLB_CFG_CMS } from '../../configuration';\n\n@Pipe({\n name: 'cms',\n standalone: false\n})\nexport class CmsPipe implements PipeTransform {\n\n constructor(@Inject(RLB_CFG_CMS) @Optional() private cmsOptions: CmsConfiguration) { }\n\n transform(value: string, ...args: unknown[]): string {\n let cms = this.cmsOptions.endpoint\n if (!cms) {\n return value\n }\n if (cms.endsWith(\"/\")) {\n cms = cms.substring(0, cms.length - 1)\n }\n if (value.startsWith(\"/\")) {\n value = value.substring(1)\n }\n return `${cms}/${value}`\n }\n\n}\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { BreadcrumbItem } from '@open-rlb/ng-bootstrap';\nimport { EMPTY, Subscription, switchMap } from 'rxjs';\nimport { LanguageService, Page, StrapiService, AbstractMdService } from '../../services';\nimport { CmsConfiguration, RLB_CFG_CMS } from '../../configuration';\n\n@Component({\n selector: 'rlb-cms-template',\n templateUrl: './cms.component.html',\n styleUrl: './cms.component.scss',\n standalone: false\n})\nexport class CmsComponent {\n\n constructor(\n private strapiService: StrapiService,\n private languageService: LanguageService,\n @Inject(RLB_CFG_CMS) @Optional() private cmsOptions: CmsConfiguration,\n @Optional() private mdService?: AbstractMdService\n ) { }\n\n @Input()\n contentId: string | undefined\n\n @Input()\n breadcrumb: BreadcrumbItem[] | undefined\n\n public page: Page | undefined\n\n private subscriptionLang!: Subscription\n private subscriptionPage!: Subscription\n\n ngOnDestroy() {\n this.subscriptionLang?.unsubscribe()\n this.subscriptionPage?.unsubscribe()\n }\n\n ngOnInit() {\n const lang = this.cmsOptions.useAppLanguage ? this.languageService.language : this.languageService.contentLanguage\n const page$ = this.strapiService.fetchPage(lang || this.languageService.defaultLanguage, this.contentId || '')\n this.subscriptionLang = this.languageService.languageChanged$.pipe(\n switchMap(langEvent => {\n if (langEvent.lang) {\n return page$\n }\n return EMPTY\n })).subscribe(p => this.page = p)\n this.subscriptionPage = page$.subscribe(p => this.page = p)\n }\n\n public md(md: string): string {\n if (this.cmsOptions.markdown === 'ignore') {\n return md;\n }\n else {\n if (!this.mdService) {\n throw new Error('No MdService provided')\n }\n else if (this.cmsOptions.markdown === 'text') {\n return this.mdService.md2text(md)\n }\n else if (this.cmsOptions.markdown === 'html') {\n return this.mdService.md2html(md)\n }\n }\n return md;\n }\n}\n\n","<div>\n <div class=\"container\" *ngIf=\"page\">\n <div class=\"row my-4\" *ngIf=\"breadcrumb\">\n <div class=\"col-12\">\n <rlb-breadcrumb [items]=\"breadcrumb\"></rlb-breadcrumb>\n </div>\n </div>\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <h1 class=\"text-center\">{{page.Title}}</h1>\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"page.Content\">\n <div class=\"col-12\">\n <div [innerHTML]=\"page.Content \"></div>\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"page.page_tabs.length>0\">\n <div class=\"col-12\">\n <rlb-tabs>\n <rlb-tab *ngFor=\"let tab of page.page_tabs; let i = index\" [target]=\"'cms-tab-'+i\">\n {{tab.Title}}\n </rlb-tab>\n </rlb-tabs>\n <rlb-tab-content>\n <rlb-tab-pane *ngFor=\"let tab of page.page_tabs; let i = index\" [id]=\"'cms-tab-'+i\">\n <div class=\"container-fluid\">\n <div class=\"row my-4\" *ngIf=\"tab.Content\">\n <div class=\"col-12\">\n <div [innerHTML]=\"tab.Content \"></div>\n </div>\n </div>\n <div class=\"row my-4 mx-auto card-steps\" *ngFor=\"let step of tab.steps; let i = index\"\n style=\"max-width: 350px; border-bottom: 1px solid rgb(192, 198, 204);\">\n <div class=\"col-8\">\n <div class=\"pb-2\">\n <div style=\"height: 54px; min-width: 54px; width: 54px; border: 5px solid rgb(192, 198, 204);\"\n class=\"round-counter\">\n <span class=\"red\">{{i+1}}</span>\n </div>\n </div>\n <div>\n <div [innerHTML]=\"step.Content \"></div>\n </div>\n </div>\n <div class=\"col-4 pb-2\">\n <img [src]=\"step.Picture.url|cms\">\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"tab.faqs.length>0\">\n <div class=\"col-12\">\n <h2 class=\"py-3\">{{tab.FaqTitle}}</h2>\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"tab.faqs.length>0 && tab.FaqContent\">\n <div class=\"col-12\">\n <div [innerHTML]=\"tab.FaqContent \"></div>\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"tab.faqs.length>0\">\n <div class=\"col-12\">\n <rlb-accordion>\n <div rlb-accordion-item [expanded]=\"true\" *ngFor=\"let faq of tab.faqs\">\n <rlb-accordion-header>\n {{faq.Title}}\n </rlb-accordion-header>\n <div rlb-accordion-body>\n <div [innerHTML]=\"faq.Content\"> </div>\n </div>\n </div>\n </rlb-accordion>\n </div>\n </div>\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <span>\n <a routerLink=\"/support\">\n <i class=\"bi bi-info-circle-fill\" style=\"margin-bottom: -6px;margin-right: 6px;\"></i>\n <span>{{'pages.support.infoPage' | translate}}</span>\n </a>\n </span>\n </div>\n </div>\n <div class=\"row my-4\" *ngIf=\"page.topics.length>0\" style=\"padding: 4px\">\n <div class=\"col-lg-6 col-md-12 col-sm-12 col-xs-12\" *ngFor=\"let topic of page.topics\">\n <a [routerLink]=\"'/informations/'+topic.page.ContentId\" style=\"color: inherit;text-decoration: none;\">\n <div class=\"card mb-4\" style=\"min-height: 230px;\">\n <img [src]=\"topic.Picture.url | cms\" class=\"card-img-top\"\n style=\"height: 91px; margin: 16px -16px;\">\n <div class=\"card-body\">\n <h5 class=\"card-title\">{{topic.Title}}</h5>\n <div class=\"card-text\" [innerHTML]=\"topic.Content \"></div>\n </div>\n </div>\n </a>\n </div>\n </div>\n </div>\n </rlb-tab-pane>\n </rlb-tab-content>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'rlb-cms-content',\n templateUrl: './cms-content.component.html',\n styleUrl: './cms-content.component.scss',\n standalone: false\n})\nexport class CmsContentComponent {\n\n constructor(private route: ActivatedRoute) { }\n\n public get contentId() {\n return this.route.snapshot.params['id']\n }\n\n}\n","<rlb-cms-template [contentId]=\"contentId\"></rlb-cms-template>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rlb-cookies',\n templateUrl: './cookies.component.html',\n styleUrl: './cookies.component.scss',\n standalone: false\n})\nexport class CookiesComponent {\n\n}\n","<rlb-cms-template contentId=\"adb_cookies\"></rlb-cms-template>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rlb-not-found',\n templateUrl: './not-found.component.html',\n styleUrl: './not-found.component.scss',\n standalone: false\n})\nexport class NotFoundComponent {\n\n}\n","<div class=\"container\" style=\"height:calc(100vh - 58px);\">\n <div class=\"align-center\">\n <div class=\"text-center\">\n <h1 class=\"text-primary\">\n {{ 'pages.notFound.title' | translate }}\n </h1>\n <p>{{ 'pages.notFound.content' | translate }}</p><a href=\"/\" class=\"btn btn-outline-primary\">\n <span>\n {{ 'pages.notFound.button' | translate }}\n </span></a>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rlb-privacy',\n templateUrl: './privacy.component.html',\n styleUrl: './privacy.component.scss',\n standalone: false\n})\nexport class PrivacyComponent {\n\n}\n","<rlb-cms-template contentId=\"adb_privacy\"></rlb-cms-template>","import { Component } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { AbstractSupportService } from '../../services/abstraction/abstract-support.service';\nimport { Location } from '@angular/common';\n\n@Component({\n selector: 'rlb-support',\n templateUrl: './support.component.html',\n styleUrl: './support.component.scss',\n standalone: false\n})\nexport class SupportComponent {\n\n public supportForm: FormGroup\n\n constructor(private supportService: AbstractSupportService, private _location: Location) {\n this.supportForm = new FormGroup({\n name: new FormControl('', [Validators.required]),\n email: new FormControl('', [Validators.required, Validators.email]),\n subject: new FormControl('', [Validators.required]),\n message: new FormControl('', [Validators.required]),\n legal: new FormControl('', [Validators.required]),\n })\n }\n\n public hasError(form: string, controlName: string, errorName: string) {\n switch (form) {\n case 'supportForm':\n return this.supportForm.controls[controlName].hasError(errorName)\n default: return false\n }\n }\n\n public sendSupport(data: any) {\n if (this.supportForm.valid) {\n this.supportService.sendSupport(data)\n }\n }\n\n backClicked() {\n this._location.back();\n }\n\n ngOnInit() { }\n}\n","<div class=\"container mt-2 mb-5\">\n <div class=\"container text-center position-relative my-3\">\n <h3>{{ 'pages.support.title' | translate}}</h3>\n <i role=\"button\" class=\"bi bi-chevron-left position-absolute start-0 top-50 translate-middle-y\"\n style=\"font-size: 25px;font-weight: 600;\" (click)=\"backClicked()\"></i>\n </div>\n <form [formGroup]=\"supportForm\" class=\"needs-validation\" (ngSubmit)=\"sendSupport(supportForm.value)\">\n <rlb-list class=\"settings\">\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'pages.support.name' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input type=\"text\" size=\"small\" formControlName=\"name\" />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'pages.support.email' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input type=\"text\" size=\"small\" formControlName=\"email\" />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'pages.support.subject' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input type=\"text\" size=\"small\" formControlName=\"subject\" />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'pages.support.message' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input type=\"text\" size=\"small\" formControlName=\"message\" />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'pages.support.legal' | translate}}</h6>\n <span>{{ 'pages.support.infoPage' | translate}}</span>\n </div>\n <div class=\"settings-control\">\n <rlb-switch size=\"small\" formControlName=\"legal\" />\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n </form>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rlb-terms-and-conditions',\n templateUrl: './terms-and-conditions.component.html',\n styleUrl: './terms-and-conditions.component.scss',\n standalone: false\n})\nexport class TermsAndConditionsComponent {\n\n}\n","<rlb-cms-template contentId=\"adb_terms\"></rlb-cms-template>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'asMulti',\n standalone: false\n})\nexport class AsMultiPipe implements PipeTransform {\n\n transform<T>(value: T | T[]): T[] {\n if(!Array.isArray(value)) {\n return [value];\n }\n return value as T[];\n }\n}\n\n@Pipe({\n name: 'asSingle',\n standalone: false\n})\nexport class AsSinglePipe implements PipeTransform {\n\n transform<T>(value: T | T[]): T {\n if(Array.isArray(value)) {\n return value[0];\n }\n return value as T;\n }\n}\n","import { Inject, Pipe, PipeTransform, Type } from \"@angular/core\";\nimport { NavbarComponents, RLB_APP_NAVCOMP } from \"../../configuration\";\n\n\n@Pipe({\n name: 'leftComponent',\n standalone: false\n})\nexport class LeftComponentPipe implements PipeTransform {\n\n constructor(@Inject(RLB_APP_NAVCOMP) private config: NavbarComponents) { }\n\n transform(value: string): Type<any> {\n const t = this.config.left.find(c => c.name === value)?.component;\n if (!t) {\n throw new Error(`No component found for name ${value}`);\n }\n return t;\n }\n}","import { Inject, Pipe, PipeTransform, Type } from \"@angular/core\";\nimport { NavbarComponents, RLB_APP_NAVCOMP } from \"../../configuration\";\n\n@Pipe({\n name: 'rightComponent',\n standalone: false\n})\nexport class RightComponentPipe implements PipeTransform {\n\n constructor(@Inject(RLB_APP_NAVCOMP) private config: NavbarComponents) { }\n\n transform(value: string): Type<any> {\n const t = this.config.right.find(c => c.name === value)?.component;\n if (!t) {\n throw new Error(`No component found for name ${value}`);\n }\n return t;\n }\n}","import { Component, Inject, Input, OnDestroy } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { NavigableItem, SidebarNavigableItem } from '@open-rlb/ng-bootstrap';\nimport { Subscription } from 'rxjs';\nimport { EnvironmentConfiguration, RLB_CFG_ENV } from '../../configuration';\nimport { AppsService } from '../../services';\nimport { appContextFeatureKey, AuthActions, BaseState, NavbarActions, SidebarActions } from '../../store';\nimport { navbarsFeatureKey } from '../../store/navbar/navbar.model';\nimport { sidebarsFeatureKey } from '../../store/sidebar/sidebar.model';\nimport { AuthenticationService } from '../../auth/services/auth.service';\n\n@Component({\n selector: 'rlb-app-template',\n templateUrl: './app.component.html',\n styleUrl: './app.component.scss',\n standalone: false\n})\nexport class AppTemplateComponent implements OnDestroy {\n\n private navbarItemsSubscription: Subscription | undefined;\n private sidebarItemsSubscription: Subscription | undefined;\n private sidebarFooterItemsSubscription: Subscription | undefined;\n public navSearchText: string | null = null;\n public navbarItems: NavigableItem[] = [];\n public sidebarItems: NavigableItem[] = [];\n public sidebarFooterItems: NavigableItem[] = [];\n\n @Input('modal-container-id') modalContainerId!: string;\n @Input('toast-container-ids') toastContainerIds!: string | string[];\n\n constructor(\n @Inject(RLB_CFG_ENV) public env: EnvironmentConfiguration,\n public store: Store<BaseState>,\n public appsService: AppsService,\n private readonly authService: AuthenticationService\n ) { }\n\n ngOnDestroy(): void {\n this.navbarItemsSubscription?.unsubscribe();\n this.sidebarItemsSubscription?.unsubscribe();\n this.sidebarFooterItemsSubscription?.unsubscribe();\n }\n\n get sidebarVisible$() {\n return this.store.select(state => state[sidebarsFeatureKey].visible);\n }\n\n get sidearHasLogin$() {\n return this.store.select(state => state[sidebarsFeatureKey].loginVisible);\n }\n\n get sidearHasSearch$() {\n return this.store.select(state => state[sidebarsFeatureKey].searchVisible);\n }\n\n get sidebarItems$() {\n return this.store.select(state => state[sidebarsFeatureKey].items);\n }\n\n setSidearSearchText(text: string | null) {\n this.store.dispatch(SidebarActions.setSearchText({ text }));\n }\n\n setNavbarSearchText(text: string | null) {\n this.store.dispatch(NavbarActions.setSearchText({ text }));\n }\n\n get sidearHasSettings$() {\n return this.store.select(state => state[sidebarsFeatureKey].settingsVisible);\n }\n\n get sidearAppsVisible$() {\n return this.store.select(state => state[sidebarsFeatureKey].appsVisible);\n }\n\n get navVisible$() {\n return this.store.select(state => state[navbarsFeatureKey].visible);\n }\n\n get navSearchVisible$() {\n return this.store.select(state => state[navbarsFeatureKey].searchVisible);\n }\n\n get navHeader$() {\n return this.store.select(state => state[navbarsFeatureKey].header);\n }\n\n get isAuth$() {\n return this.authService.isAuthenticated$;\n }\n\n get user$() {\n return this.authService.userInfo$;\n }\n\n get navLeftItems$() {\n return this.store.select(state => state[navbarsFeatureKey].leftItems);\n }\n\n get navRightItems$() {\n return this.store.select(state => state[navbarsFeatureKey].rightItems);\n }\n\n get theme() {\n return this.store.selectSignal(state => state[appContextFeatureKey].theme)();\n }\n\n get navbarHasLogin$() {\n return this.store.select(state => state[navbarsFeatureKey].loginVisible);\n }\n\n get navbarHasSettings$() {\n return this.store.select(state => state[navbarsFeatureKey].loginVisible);\n }\n\n get navbarHasApps$() {\n return this.store.select(state => state[navbarsFeatureKey].loginVisible);\n }\n\n get apps() {\n return this.appsService.apps;\n }\n\n get separatorVisible$() {\n return this.store.select(state => state[navbarsFeatureKey].separatorVisible);\n }\n\n loginNav(event: MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this.store.dispatch(AuthActions.login());\n }\n\n onSideBarItemClick(item: SidebarNavigableItem) {\n if (item.externalUrl) {\n window.open(item.externalUrl, '_blank')?.focus();\n }\n }\n}\n","<div class=\"rlb-app\">\n <rlb-sidebar id=\"sidebar\" class=\"rlb-sidebar\" *ngIf=\"(sidebarVisible$ | async)\">\n <rlb-sidebar-item\n\t\t\t*ngFor=\"let item of (sidebarItems$ | async)\"\n\t\t\t[icon]=\"item.icon\" [link]=\"item.url\"\n [title]=\"item.title\" [label]=\"item.label\"\n\t\t\t[badgeCounter]=\"item.badgeCounter\"\n (click)=\"onSideBarItemClick(item)\"\n >\n\t\t\t{{item.label}}\n <rlb-sidebar-item\n\t\t\t\t*ngFor=\"let subitem of item.items || []\"\n\t\t\t\t[icon]=\"subitem.icon\"\n\t\t\t\t[link]=\"subitem.url\"\n [title]=\"subitem.title\"\n\t\t\t\t[label]=\"subitem.label\"\n\t\t\t\t[badgeCounter]=\"subitem.badgeCounter\"\n (click)=\"onSideBarItemClick(subitem)\"\n\t\t\t>\n\t\t\t\t{{subitem.label}}\n </rlb-sidebar-item>\n </rlb-sidebar-item>\n </rlb-sidebar>\n <ng-container *ngIf=\"navVisible$ | async\">\n <rlb-navbar expand=\"lg\" *ngIf=\"navVisible$ | async\" class=\"border-bottom py-1 rlb-navbar\">\n <a *ngIf=\"navHeader$ | async\" rlb-navbar-brand href=\"#\">{{ navHeader$ | async }}</a>\n <rlb-navbar-form *ngIf=\"navSearchVisible$ | async\">\n <rlb-input-group class=\"my-1 mx-3\" validate>\n <rlb-input type=\"search\" class=\"search-input\" placeholder=\"Search\" [(ngModel)]=\"navSearchText\"\n (keyup.enter)=\"setNavbarSearchText(navSearchText)\" name=\"search\" size=\"small\">\n <button after rlb-button outline type=\"submit\" (click)=\"setNavbarSearchText(navSearchText)\" size=\"sm\">\n <i class=\"bi bi-search\"></i>\n </button>\n </rlb-input>\n </rlb-input-group>\n </rlb-navbar-form>\n <rlb-navbar-items class=\"ms-lg-auto\">\n <ng-container ngProjectAs=\"rlb-navbar-item\" *ngFor=\"let navComponent of navLeftItems$ | async\">\n <ng-container *ngComponentOutlet=\"navComponent | leftComponent\"></ng-container>\n </ng-container>\n </rlb-navbar-items>\n <rlb-navbar-items>\n <ng-container ngProjectAs=\"rlb-navbar-item\" *ngFor=\"let navComponent of navRightItems$ | async\">\n <ng-container *ngComponentOutlet=\"navComponent | rightComponent\"></ng-container>\n </ng-container>\n <rlb-navbar-separator *ngIf=\"(separatorVisible$ | async)\" />\n <rlb-navbar-item *ngIf=\"(navbarHasLogin$ | async) && !(isAuth$ | async)\" (click)=\"loginNav($event)\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.account.login') |translate\">\n <i class=\" bi bi-box-arrow-in-left\"></i>\n </span>\n\t\t\t\t\t<span class=\"ms-1 d-lg-none\">{{'core.account.login' | translate}}</span>\n\t\t\t\t</rlb-navbar-item>\n <rlb-navbar-item *ngIf=\" (navbarHasLogin$ | async) && (isAuth$ | async)\" [router-link]=\"'/profile'\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.account.title') |translate\">\n <i class=\"bi bi-person\"></i>\n </span>\n\t\t\t\t\t<span class=\"ms-1 d-lg-none\">{{'core.account.title' | translate}}</span>\n\t\t\t\t</rlb-navbar-item>\n <rlb-navbar-item *ngIf=\"navbarHasSettings$ | async\" [router-link]=\"'/setting'\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.settings.title') |translate\">\n <i class=\"bi bi-gear\"></i>\n </span>\n\t\t\t\t\t<span class=\"ms-1 d-lg-none\">{{'core.settings.title' | translate}}</span>\n\t\t\t\t</rlb-navbar-item>\n <rlb-navbar-item *ngIf=\"(navbarHasApps$ | async) && apps.length > 1\" [router-link]=\"'/apps'\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.apps.button') |translate\">\n <i class=\"bi bi-grid-3x3-gap-fill\"></i>\n </span>\n\t\t\t\t\t<span class=\"ms-1 d-lg-none\">{{'core.apps.button' | translate}}</span>\n\t\t\t\t</rlb-navbar-item>\n </rlb-navbar-items>\n </rlb-navbar>\n </ng-container>\n <div class=\"rlb-content\" [class.rlb-sidebar-en]=\"(sidebarVisible$ | async)\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<ng-container *ngIf=\"modalContainerId\">\n <rlb-modal-container [id]=\"modalContainerId\" />\n</ng-container>\n\n<ng-container *ngIf=\"toastContainerIds\">\n <ng-container *ngIf=\"toastContainerIds.constructor.name === 'Array'; else toastContainerIdsIsNotArray\">\n <rlb-toast-container *ngFor=\"let toastContainerId of toastContainerIds | asMulti\" [id]=\"toastContainerId\" />\n </ng-container>\n <ng-template #toastContainerIdsIsNotArray>\n <rlb-toast-container class=\"position-fixed bottom-0 end-0 p-3\" [id]=\"toastContainerIds | asSingle\" />\n </ng-template>\n</ng-container>\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { isPlatformServer } from '@angular/common';\nimport { Component, Inject, Input, OnInit, PLATFORM_ID } from '@angular/core';\nimport { BreadcrumbItem } from '@open-rlb/ng-bootstrap';\nimport { map, Observable, of, shareReplay } from 'rxjs';\n\n@Component({\n selector: 'rlb-base-template',\n templateUrl: './base.component.html',\n styleUrls: ['./base.component.scss'],\n standalone: false\n})\nexport class BaseComponent implements OnInit {\n\n constructor(\n private breakpointObserver: BreakpointObserver,\n @Inject(PLATFORM_ID) private platformId: Object\n ) { }\n\n @Input()\n breadcrumb: BreadcrumbItem[] | undefined;\n\n @Input()\n title!: string;\n\n @Input()\n subtitle!: string;\n\n get isHandset$(): Observable<boolean> {\n if (isPlatformServer(this.platformId)) {\n return of(true);\n } else {\n return this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(map(result => result.matches), shareReplay());\n }\n }\n\n ngOnInit() { }\n\n}\n\n","<div class=\" mb-3\">\n <div class=\"container-fluid\" *ngIf=\"!(isHandset$ | async) else mobileMode\">\n <div class=\"row mt-1\">\n <div class=\"col-xl-8 col-lg-10 col-md-12 col-sm-12 col-xs-12 mx-auto\">\n <div class=\"row\">\n <div class=\"col-12 pb-0\">\n <rlb-breadcrumb *ngIf=\"breadcrumb\" [items]=\"breadcrumb\"></rlb-breadcrumb>\n <h1 class=\"pt-5 pb-0 text-center\">\n {{title}}\n </h1>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"subtitle\">\n <div class=\"col-12 pb-12\">\n <span class=\"d-block text-h6 text-center\">\n {{subtitle}}\n </span>\n </div>\n </div>\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n </div>\n </div>\n </div>\n <ng-template class=\"container-fluid\" #mobileMode>\n <div class=\"row\">\n <div class=\"col-12 pb-0\">\n <h1 class=\"pt-5 pb-0 text-center\">\n {{title}}\n </h1>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"subtitle\">\n <div class=\"col-12 pb-7\">\n <div class=\"d-block text-h6 text-center\">\n {{subtitle}}\n </div>\n </div>\n </div>\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"mobile\"></ng-container>\n </ng-template>\n </div>\n \n <ng-template #all>\n <ng-content select=\"[all]\"></ng-content>\n </ng-template>\n \n <ng-template #default>\n <ng-content select=\"[default]\"></ng-content>\n </ng-template>\n \n <ng-template #mobile>\n <ng-content select=\"[mobile]\"></ng-content>\n </ng-template>","import { Component, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Observable, map, of, shareReplay } from 'rxjs';\n\n@Component({\n selector: 'rlb-content-template',\n templateUrl: './content.component.html',\n styleUrl: './content.component.scss',\n standalone: false\n})\nexport class ContentComponent {\n constructor(\n private breakpointObserver: BreakpointObserver,\n @Inject(PLATFORM_ID) private platformId: Object) { }\n\n get isHandset$(): Observable<boolean> {\n if (isPlatformServer(this.platformId)) {\n return of(true)\n } else {\n return this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(map(result => result.matches), shareReplay())\n }\n }\n\n ngOnInit() { }\n}\n","<div class=\" mb-3\">\n <div class=\"container-fluid\" *ngIf=\"!(isHandset$ | async) else mobileMode\">\n <div class=\"row mt-1\">\n <div class=\"mx-auto col-sm-12 col-md-8 col-lg-9 col-xl-8\">\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n </div>\n </div>\n </div>\n <ng-template class=\"container-fluid\" #mobileMode>\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"mobile\"></ng-container>\n </ng-template>\n </div>\n \n <ng-template #all>\n <ng-content select=\"[all]\"></ng-content>\n </ng-template>\n \n <ng-template #default>\n <ng-content select=\"[default]\"></ng-content>\n </ng-template>\n \n <ng-template #mobile>\n <ng-content select=\"[mobile]\"></ng-content>\n </ng-template>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate',\n standalone: false\n})\nexport class TruncatePipe implements PipeTransform {\n\n transform(value?: string, limit = 25, completeWords = false, ellipsis = '...') {\n if (!value) return value;\n if (completeWords) {\n limit = value.slice(0, limit).lastIndexOf(' ');\n }\n return value.length > limit ? value.slice(0, limit) + ellipsis : value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst pattern =\n /(^|[\\s\\n]|<[A-Za-z]*\\/?>)((?:https?|ftp):\\/\\/[\\-A-Z0-9+\\u0026\\u2019@#\\/%?=()~_|!:,.;]*[\\-A-Z0-9+\\u0026@#\\/%=~()_|])/gi;\n\n@Pipe({\n name: 'autolink',\n standalone: false\n})\nexport class AutolinkPipe implements PipeTransform {\n transform(\n value?: string,\n target?: string,\n rel?: string,\n id?: string,\n ): string {\n if (!value) {\n return '';\n }\n value = value\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;');\n const _target: string = target ? `target=\"${target}\"` : '';\n const _rel: string = rel ? `rel=\"${rel}\"` : '';\n const _id: string = id ? `id=\"${id}\"` : '';\n const linkAttributes = [_target, _rel, _id].join(' ').trim();\n return value.replace(pattern, function (match, space, url) {\n const link =\n \"<a href='\" + url + \"'\" + linkAttributes + '>' + url + '</a>';\n return '' + space + link;\n });\n }\n}\n","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Router, RoutesRecognized } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, distinctUntilChanged, filter, map, Subscription, tap } from 'rxjs';\nimport { EnvironmentConfiguration, RLB_CFG_ENV } from '../../configuration';\nimport { AppsService } from '../../services/apps/apps.service';\nimport { AppStorageService } from '../../services/utils/app-storage.service';\nimport { PwaUpdaterService } from '../../services/utils/pwa-updater.service';\nimport {\n\tAppContextActions,\n\tappContextFeatureKey,\n\tAppTheme,\n\tBaseState,\n\tPageTemplate\n} from '../../store';\nimport { AppLoggerService, LoggerContext } from \"../../services\";\n\n@Component({\n selector: 'rlb-app-container',\n templateUrl: './app-container.component.html',\n standalone: false,\n})\nexport class AppContainerComponent implements OnInit, OnDestroy {\n private swUpdateSubscription: Subscription | undefined;\n private readonly templateSubject = new BehaviorSubject<PageTemplate>('app');\n @Input('modal-container-id') modalContainerId!: string;\n @Input('toast-container-ids') toastContainerIds!: string | string[];\n\tprivate logger: LoggerContext;\n\n\n\tconstructor(\n @Inject(RLB_CFG_ENV) public env: EnvironmentConfiguration,\n public store: Store<BaseState>,\n private readonly router: Router,\n private storage: AppStorageService,\n private readonly pwaUpdaterService: PwaUpdaterService,\n private readonly appsService: AppsService,\n\t\tprivate readonly loggerService: AppLoggerService,\n ) {\n\t\tthis.logger = this.loggerService.for(this.constructor.name);\n\n\t\tconst theme: AppTheme = (this.storage.readLocal('theme') || 'dark') as AppTheme;\n this.store.dispatch(AppContextActions.setTheme({ theme }));\n this.store.dispatch(AppContextActions.setLanguage({ language: this.storage.readLocal('locale') || 'en' }));\n this.store\n .select((state) => state[appContextFeatureKey].currentApp)\n\t\t\t.pipe(distinctUntilChanged())\n .subscribe(async (currentApp) => {\n\t\t\t\tthis.logger.info('currentApp:', currentApp);\n\n\t\t\t\tif (!currentApp) return;\n\n\t\t\t\tconst targetUrl = currentApp.navigationUrl ||\n\t\t\t\t\t(currentApp.viewMode === 'app'\n\t\t\t\t\t\t? currentApp.core?.url\n\t\t\t\t\t\t: currentApp.settings?.url);\n\n\t\t\t\tif (!targetUrl) return;\n\n\t\t\t\tconst currentUrl = this.router.url;\n\t\t\t\tthis.logger.info('currentUrl:', currentUrl);\n\t\t\t\tthis.logger.info('targetUrl:', targetUrl);\n\n\t\t\t\tconst normalize = (url: string) => url.replace(/\\/+$/, '');\n\t\t\t\tconst current = normalize(currentUrl);\n\t\t\t\tconst target = normalize(targetUrl);\n\n\t\t\t\tif (current === target || current.startsWith(`${target}/`)) {\n\t\t\t\t\tthis.logger.info('Already within target route, skipping navigation.');\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.info('Navigating to app base URL:', target);\n\t\t\t\t\tawait this.router.navigateByUrl(target);\n\t\t\t\t}\n });\n\n this.router.events\n .pipe(\n filter(event => event instanceof RoutesRecognized),\n map((event: RoutesRecognized) => event?.state?.root?.firstChild?.data?.['template'] || 'app'),\n map(o => o as PageTemplate),\n tap((template: PageTemplate) => this.templateSubject.next(template))\n ).subscribe();\n }\n\n get template$() {\n return this.templateSubject.asObservable();\n }\n\n ngOnDestroy(): void {\n this.swUpdateSubscription?.unsubscribe();\n }\n\n ngOnInit(): void {\n if (this.env.pwaUpdateEnabled) {\n this.swUpdateSubscription = this.pwaUpdaterService.checkWithDialog().subscribe();\n }\n }\n\n}\n\n","<ng-container *ngIf=\"(template$ | async) === 'app'\">\n <rlb-app-template>\n <router-outlet />\n </rlb-app-template>\n</ng-container>\n<ng-container *ngIf=\"(template$ | async) === 'basic'\">\n <router-outlet />\n</ng-container>\n\n\n<ng-container *ngIf=\"modalContainerId\">\n <rlb-modal-container [id]=\"modalContainerId\" />\n</ng-container>\n\n<ng-container *ngIf=\"toastContainerIds\">\n <ng-container *ngIf=\"toastContainerIds.constructor.name === 'Array'; else toastContainerIdsIsNotArray\">\n <rlb-toast-container *ngFor=\"let toastContainerId of toastContainerIds | asMulti\" [id]=\"toastContainerId\" />\n </ng-container>\n <ng-template #toastContainerIdsIsNotArray>\n <rlb-toast-container class=\"position-fixed bottom-0 end-0 p-3\" [id]=\"toastContainerIds | asSingle\" />\n </ng-template>\n</ng-container>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RlbBootstrapModule } from '@open-rlb/ng-bootstrap';\nimport { CmsContentComponent } from './pages/cms-content/cms-content.component';\nimport { CookiesComponent } from './pages/cookies/cookies.component';\nimport { NotFoundComponent } from './pages/not-found/not-found.component';\nimport { PrivacyComponent } from './pages/privacy/privacy.component';\nimport { SupportComponent } from './pages/support/support.component';\nimport { TermsAndConditionsComponent } from './pages/terms-and-conditions/terms-and-conditions.component';\nimport { AsMultiPipe, AsSinglePipe } from './pipes/as/as.pipe';\nimport { CmsPipe } from './pipes/cms/cms.pipe';\nimport { AppTemplateComponent } from './templates/app/app.component';\nimport { BaseComponent } from './templates/base/base.component';\nimport { CmsComponent } from './templates/cms/cms.component';\nimport { ContentComponent } from './templates/content/content.component';\n\nimport { AutolinkPipe, TruncatePipe } from './pipes';\nimport { LeftComponentPipe } from './pipes/left-component/left-component.pipe';\nimport { RightComponentPipe } from './pipes/right-component/right-component.pipe';\nimport { AppContainerComponent } from './templates/app-container/app-container.component';\n\n@NgModule({\n declarations: [\n // pages\n CmsContentComponent,\n CookiesComponent,\n NotFoundComponent,\n PrivacyComponent,\n SupportComponent,\n TermsAndConditionsComponent,\n // pipes\n CmsPipe,\n AsMultiPipe,\n AsSinglePipe,\n LeftComponentPipe,\n RightComponentPipe,\n TruncatePipe,\n AutolinkPipe,\n // templates\n BaseComponent,\n CmsComponent,\n ContentComponent,\n AppTemplateComponent,\n AppContainerComponent\n ],\n exports: [\n // pipes\n CmsPipe,\n AsMultiPipe,\n AsSinglePipe,\n LeftComponentPipe,\n RightComponentPipe,\n TruncatePipe,\n AutolinkPipe,\n // templates\n BaseComponent,\n CmsComponent,\n ContentComponent,\n AppTemplateComponent,\n AppContainerComponent,\n // modules\n TranslateModule,\n RlbBootstrapModule,\n RouterModule,\n FormsModule\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n RlbBootstrapModule,\n RouterModule\n ]\n})\nexport class RlbAppModule { }\n\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { RlbAppModule } from '../rlb-app.module'\nimport { IModal, ModalData, ModalDirective } from '@open-rlb/ng-bootstrap';\n\n@Component({\n imports: [RlbAppModule, CommonModule],\n template: ` <div class=\"modal-header\">\n <h5 class=\"modal-title\">{{ data.title }}</h5>\n <button\n type=\"button\"\n class=\"btn-close\"\n aria-label=\"Close\"\n data-modal-reason=\"close\"\n ></button>\n </div>\n <div class=\"modal-body\">\n <span>{{ data.content }}</span>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-primary\" data-modal-reason=\"close\">\n {{ data.ok }}\n </button>\n </div>`,\n hostDirectives: [\n {\n directive: ModalDirective,\n inputs: ['id', 'data-instance', 'data-options'],\n },\n ]\n})\nexport class ErrorModalComponent implements IModal<string, void>, OnInit {\n data!: ModalData<string>;\n\n onEnter() { }\n\n ngOnInit(): void { }\n}\n\n","import { Component } from \"@angular/core\";\nimport { IModal, ModalData, ModalDirective } from \"@open-rlb/ng-bootstrap\";\nimport { AppInfo } from \"../services/apps/app\";\nimport { RlbAppModule } from \"../rlb-app.module\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n imports: [RlbAppModule, CommonModule],\n template: `\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">{{ data.title }}</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" data-modal-reason=\"close\"></button>\n </div>\n <div class=\"modal-body\">\n <ul class=\"row row-cols-4 list-unstyled list\">\n <li *ngFor=\"let app of data.content\" class=\"col my-2\" [tooltip]=\"app.description | translate\">\n <a class=\"d-block text-body-emphasis text-decoration-none\" (click)=\"appSelected(app)\" [class.disabled]=\"!app.enabled\" data-modal-reason=\"ok\">\n <div class=\"px-3 py-4 mb-2 bg-body-secondary text-center rounded\">\n <i [ngClass]=\"app.icon\"></i>\n </div>\n <div class=\"name text-muted text-decoration-none text-center pt-1\">{{app.name | translate}}</div>\n </a>\n </li>\n </ul>\n </div>`,\n hostDirectives: [{ directive: ModalDirective, inputs: ['id', 'data-instance', 'data-options'] }]\n})\nexport class ModalAppsComponent implements IModal<AppInfo[], AppInfo> {\n data!: ModalData<any>;\n valid?: boolean = true;\n result?: any;\n apps: AppInfo[] = [];\n\n appSelected(app: AppInfo) {\n this.result = app;\n }\n}\n\n","import { CommonModule, Location } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { RlbAppModule } from '../../../rlb-app.module';\nimport { AppInfo } from '../../../services/apps/app';\nimport { AppsService } from '../../../services/apps/apps.service';\nimport { BaseState } from '../../../store';\nimport { AuthenticationService } from '../../../auth/services/auth.service';\n\n@Component({\n selector: 'rlb-app-selector',\n imports: [RlbAppModule, CommonModule],\n templateUrl: './app-selector.component.html',\n styleUrl: './app-selector.component.scss'\n})\nexport class AppSelectorComponent {\n\n constructor(\n private readonly _location: Location,\n private readonly appsService: AppsService,\n private readonly authService: AuthenticationService,\n\n ) { }\n\n get apps() {\n return this.appsService.apps;\n }\n\n backClicked() {\n this._location.back();\n }\n\n selectApp(app: AppInfo) {\n this.appsService.selectApp(app, 'app');\n }\n\n get auth$() {\n return this.authService.isAuthenticated$;\n }\n}\n","<div class=\"container mt-2\">\n <div class=\"container text-center position-relative my-3\">\n <h3>{{ 'core.apps.title' | translate}}</h3>\n <i role=\"button\" class=\"bi bi-chevron-left position-absolute start-0 top-50 translate-middle-y cur\"\n style=\"font-size: 25px;font-weight: 600;\" (click)=\"backClicked()\"></i>\n </div>\n <rlb-list>\n <ng-container ngProjectAs=\"rlb-list-item-image\" *ngFor=\"let app of apps\">\n <ng-container ngProjectAs=\"rlb-list-item-image\" *ngIf=\"app.core\">\n <rlb-list-item-image [icon]=\"app.core.icon\" [avatar-size]=\"35\"\n [line-1]=\"(app.core.title | translate) + (app.data?.appName ? ' - ' + app.data?.appName : '')\"\n [disabled]=\"!app.enabled && (app.core.auth && !(auth$ | async))\" [line-2]=\"app.core.description | translate\"\n (click)=\"selectApp(app)\">\n </rlb-list-item-image>\n </ng-container>\n </ng-container>\n </rlb-list>\n</div>","import { Directive, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { map, tap } from 'rxjs';\nimport { AuthenticationService } from '../services/auth.service';\nimport { ParseJwtService } from '../services/parse-jwt.service';\n\n@Directive({\n selector: '[roles]',\n standalone: false\n})\nexport class RlbRole implements OnInit {\n\n constructor(\n private readonly templateRef: TemplateRef<any>,\n private readonly viewContainer: ViewContainerRef,\n private readonly authenticationService: AuthenticationService,\n private readonly parseJwtService: ParseJwtService,\n ) { }\n\n @Input() set roles(roles: string[] | string) {\n if (typeof roles === 'string') {\n if (roles.includes(',')) roles = roles.split(',').map(role => role.trim());\n else roles = [roles];\n }\n }\n\n private updateView() {\n return this.authenticationService.\n accessToken$.pipe(\n map(token => this.parseJwtService.parseJwt(token)),\n //map(payload => this.authenticationService.currentProvider.roleClaim?.(payload) || []),\n tap(roles => {\n let valid = true;\n for (const role of this.roles) {\n if (roles.includes(role)) valid &&= true;\n }\n if (valid) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }));\n }\n\n ngOnInit() {\n this.updateView().subscribe();\n }\n}","import { inject } from '@angular/core';\nimport { CanActivateFn } from '@angular/router';\nimport { map, take } from 'rxjs';\nimport { AuthenticationService } from \"../services/auth.service\";\n\nexport const oauthGuard: CanActivateFn = (route, state) => {\n const authService = inject(AuthenticationService);\n\n return authService.isAuthenticated$.pipe(\n take(1),\n map((isAuthenticated) => {\n if (!isAuthenticated) {\n\t\t\t\tauthService.login(state.url)\n return false;\n }\n return true;\n }),\n );\n};\n","import { HttpClient, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable, OnInit } from '@angular/core';\nimport { lastValueFrom, Observable } from 'rxjs';\nimport { AuthenticationService } from './auth.service';\nimport { AppLoggerService, LoggerContext } from \"../../services\";\n\nconst SESSION_RT = 'RT';\nconst SESSION_AT = 'AT';\nconst TOKEN_URL = `protocol/openid-connect/token`;\n\nexport interface Token {\n access_token: string | null;\n expires_in: number;\n token_type: string;\n scope: string;\n id_token: string | null;\n refresh_token: string | null;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OauthPasswordService implements HttpInterceptor {\n\n private timer: any = null;\n private _onUpdateToken: ((token: string | null) => void) | null = null;\n //private _user: User | null = null\n private logger: LoggerContext;\n\n constructor(\n private readonly httpClient: HttpClient,\n private readonly authenticationService: AuthenticationService,\n private readonly log: AppLoggerService,\n ) {\n this.logger = this.log.for(this.constructor.name);\n this.initRefreshToken().catch(e => console.error(\"Error in refresh token\", e));\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (this.authenticationService.config.allowedUrls.some(o => req.url.includes(o))) {\n const token = this.access_token;\n if (token) {\n req = req.clone({\n setHeaders: {\n Authorization: `Bearer ${token}`\n }\n });\n }\n }\n return next.handle(req);\n }\n\n private get access_token() {\n const r = sessionStorage.getItem(SESSION_AT);\n return typeof r === 'string' && r !== '' ? r : null;\n }\n\n private set access_token(val: string | null) {\n if (val === undefined || val === null || val === '')\n sessionStorage.removeItem(SESSION_AT);\n else\n sessionStorage.setItem(SESSION_AT, val);\n }\n\n private get refresh_token() {\n const r = sessionStorage.getItem(SESSION_RT);\n return typeof r === 'string' && r !== '' ? r : null;\n }\n\n private set refresh_token(val: string | null) {\n if (val === undefined || val === null || val === '')\n sessionStorage.removeItem(SESSION_RT);\n else\n sessionStorage.setItem(SESSION_RT, val);\n }\n\n public get accessToken() {\n return this.access_token;\n }\n\n // public get user() {\n // return this._user\n // }\n\n public set onUpdateToken(v: ((token: string | null) => void) | null) {\n this._onUpdateToken = v;\n }\n\n public async login(username: string, password: string) {\n const t = await this._login(username, password);\n this.refresh_token = t.refresh_token;\n this.access_token = t.access_token;\n if (typeof this._onUpdateToken === 'function') {\n this._onUpdateToken(this.access_token);\n }\n // if (this._user === null) {\n // this._user = await lastValueFrom(this.users.apiV1UsersGetSelfGet())\n // }\n if (this.timer !== null) {\n clearInterval(this.timer);\n this.timer = null;\n }\n this.timer = setInterval(async () => {\n try {\n var r = await this._refreshToken(this.refresh_token);\n this.refresh_token = r.refresh_token;\n this.access_token = r.access_token;\n if (typeof this._onUpdateToken === 'function') {\n this._onUpdateToken(this.access_token);\n }\n // if (this._user === null) {\n // this._user = await lastValueFrom(this.users.apiV1UsersGetSelfGet())\n // }\n }\n catch (e) {\n console.warn(\"Refresh token fail\");\n }\n }, t.expires_in * 1000 - 60000);\n return t;\n }\n\n public loggedIn() {\n return !!this.access_token;\n }\n\n public logout() {\n this.refresh_token = null;\n this.access_token = null;\n if (this.timer !== null) {\n clearInterval(this.timer);\n this.timer = null;\n }\n }\n\n private async _login(username: string, password: string): Promise<Token> {\n if (!this.authenticationService.currentProvider) throw new Error(\"No authentication provider configured\");\n let body = new URLSearchParams();\n body.set('grant_type', 'password');\n body.set('client_id', 'addubby');\n body.set('scope', 'addubby-order');\n body.set('username', username);\n body.set('password', password);\n this.logger.log(`password service call _login()`)\n return await lastValueFrom(this.httpClient.post<Token>(`${this.authenticationService.currentProvider.authority}/${TOKEN_URL}`, body.toString(), {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n }));\n }\n\n private async _refreshToken(token: string | null): Promise<Token> {\n if (!this.authenticationService.currentProvider) throw new Error(\"No authentication provider configured\");\n let body = new URLSearchParams();\n body.set('grant_type', 'refresh_token');\n body.set('client_id', this.authenticationService.currentProvider.clientId!);\n if (token)\n body.set('refresh_token', token);\n return await lastValueFrom(this.httpClient.post<Token>(`${this.authenticationService.currentProvider.authority}/${TOKEN_URL}`, body.toString(), {\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\n }));\n }\n\n private async initRefreshToken() {\n if (this.refresh_token) {\n var r = await this._refreshToken(this.refresh_token);\n this.refresh_token = r.refresh_token;\n this.access_token = r.access_token;\n // if (this._user === null) {\n // this._user = await lastValueFrom(this.users.apiV1UsersGetSelfGet())\n // }\n if (typeof this._onUpdateToken === 'function') {\n this._onUpdateToken(this.access_token);\n }\n this.timer = setInterval(async () => {\n try {\n var r = await this._refreshToken(this.refresh_token);\n this.refresh_token = r.refresh_token;\n this.access_token = r.access_token;\n // if (this._user === null) {\n // this._user = await lastValueFrom(this.users.apiV1UsersGetSelfGet())\n // }\n if (typeof this._onUpdateToken === 'function') {\n this._onUpdateToken(this.access_token);\n }\n }\n catch (e) {\n console.warn(\"Refresh token fail\");\n }\n }, r.expires_in * 1000 - 60000);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { CanActivateFn } from '@angular/router';\nimport { Router } from '@angular/router';\nimport { map, of } from 'rxjs';\nimport { OauthPasswordService } from '../services/oauth-password.service';\n\nexport const oauthPasswordGuard: CanActivateFn = (route, state) => {\n const auth = inject(OauthPasswordService);\n const router = inject(Router);\n\n return of(auth.loggedIn()).pipe(\n map(o => {\n if (!o) {\n router.navigate(['login']);\n return false;\n }\n return true;\n })\n );\n};\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { OidcSecurityService } from \"angular-auth-oidc-client\";\nimport { filter, map, Observable, switchMap } from \"rxjs\";\nimport { ErrorManagementService } from \"../../services/errors/error-management.service\";\nimport { KeycloakCredential, KeycloakDevice, KeycloakSession, KeycloakUser } from \"./\";\nimport { AuthenticationService } from \"..\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class KeycloakProfileService {\n\n constructor(\n private http: HttpClient,\n private readonly authService: AuthenticationService,\n private readonly errorManagementService: ErrorManagementService,\n private readonly oidcSecurityService: OidcSecurityService) { }\n\n private get baseUrl() {\n return `${this.authService.currentProvider?.authority}/account`;\n }\n\n getUserProfile(): Observable<KeycloakUser> {\n return this.authService.isAuthenticated$.pipe(\n filter(isAuth => isAuth),\n switchMap(() => this.authService.accessToken$),\n switchMap(token => this.http.get<any>(this.baseUrl, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })),\n this.errorManagementService.manageUI('error', 'dialog')\n )\n }\n\n updateUserProfile(data: KeycloakUser): Observable<void> {\n return this.authService.isAuthenticated$.pipe(\n filter(isAuth => isAuth),\n switchMap(() => this.authService.accessToken$),\n switchMap(token => this.http.post<void>(this.baseUrl, data, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })),\n this.errorManagementService.manageUI('error', 'dialog')\n )\n }\n\n getDevices(): Observable<KeycloakSession[]> {\n return this.authService.isAuthenticated$.pipe(\n filter(isAuth => isAuth),\n switchMap(() => this.authService.accessToken$),\n switchMap(token => this.http.get<KeycloakDevice[]>(`${this.baseUrl}/sessions/devices`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })),\n map((devices) => devices.map((device) => device.sessions.map((session) => {\n session.os = device.os;\n session.osVersion = device.osVersion;\n session.device = device.device;\n session.mobile = device.mobile;\n session.clientslist = session.clients.map((client) => client.clientName).join(', ');\n return session;\n })).flat()),\n this.errorManagementService.manageUI('error', 'dialog')\n )\n }\n\n getCredentials(): Observable<KeycloakCredential[]> {\n return this.authService.isAuthenticated$.pipe(\n filter(isAuth => isAuth),\n switchMap(() => this.authService.accessToken$),\n switchMap(token => this.http.get<KeycloakCredential[]>(`${this.baseUrl}/credentials`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })),\n this.errorManagementService.manageUI('error', 'dialog')\n );\n }\n\n removeCredential(id: string): Observable<void> {\n return this.authService.isAuthenticated$.pipe(\n filter(isAuth => isAuth),\n switchMap(() => this.authService.accessToken$),\n switchMap(token => {\n return this.http.delete<void>(`${this.baseUrl}/credentials/${id}`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n }),\n this.errorManagementService.manageUI('error', 'dialog')\n );\n }\n\n configureOTP() {\n return this.oidcSecurityService.authorize(this.authService.currentProvider?.configId, {\n customParams: {\n kc_action: \"CONFIGURE_TOTP\"\n }\n });\n }\n\n updatePassword() {\n return this.oidcSecurityService.authorize(this.authService.currentProvider?.configId, {\n customParams: {\n kc_action: \"UPDATE_PASSWORD\"\n }\n });\n }\n}\n","import { CommonModule, Location } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { ModalService } from '@open-rlb/ng-bootstrap';\nimport { EMPTY, filter, lastValueFrom, Subscription, switchMap, tap } from 'rxjs';\nimport { KeycloakCredential, KeycloakProfileService, KeycloakSession, KeycloakUser } from '../../../auth/keycloak';\nimport { RlbAppModule } from '../../../rlb-app.module';\nimport { LanguageService } from '../../../services/i18n/language.service';\nimport { BaseState } from '../../../store';\nimport { AuthActions } from '../../../store/auth/auth.actions';\nimport { AuthenticationService } from '../../../auth/services/auth.service';\n\n\n@Component({\n selector: 'rlb-user-account',\n imports: [RlbAppModule, CommonModule],\n templateUrl: './user-account.component.html',\n styleUrl: './user-account.component.scss'\n})\nexport class UserAccountComponent implements OnInit, OnDestroy {\n constructor(\n private _location: Location,\n public store: Store<BaseState>,\n private keycloakProfileService: KeycloakProfileService,\n private modalService: ModalService,\n private languageService: LanguageService,\n private readonly authService: AuthenticationService,\n private router: Router\n ) {\n this.authService.isAuthenticated$.pipe(\n filter(isAuth => !isAuth),\n switchMap(() => this.router.navigate(['/']))\n ).subscribe();\n }\n\n\n keyCloakUser!: KeycloakUser;\n keyCloakDevices!: KeycloakSession[];\n keycloakCredentials!: KeycloakCredential[];\n private subs: Subscription[] = [];\n\n backClicked() {\n this._location.back();\n }\n\n ngOnInit() {\n this.subs.push(this.keycloakProfileService.getUserProfile().subscribe((user) => {\n this.keyCloakUser = user;\n }));\n this.subs.push(this.keycloakProfileService.getDevices().subscribe((devices) => {\n this.keyCloakDevices = devices;\n }));\n this.subs.push(this.keycloakProfileService.getCredentials().subscribe((credentials) => {\n this.keycloakCredentials = credentials;\n }));\n }\n\n ngOnDestroy(): void {\n while (this.subs.length) {\n this.subs.pop()?.unsubscribe();\n }\n }\n\n logout() {\n this.store.dispatch(AuthActions.logout());\n }\n\n async removeCredential(type: string, id: string) {\n return await lastValueFrom(this.modalService.openConfirmModal(\n this.languageService.translate(\"core.account.credentials.deleteTitle\"),\n this.languageService.translate(\"core.account.credentials.deleteMessage\"),\n this.languageService.translate(\"core.account.credentials.deleteHeader\"),\n this.languageService.translate(\"common.yes\"),\n this.languageService.translate(\"common.cancel\")).pipe(switchMap((result) => {\n if (result) {\n return this.keycloakProfileService.removeCredential(id).pipe(tap(() => {\n const meta = this.keycloakCredentials.find((c) => c.type === type)?.userCredentialMetadatas;\n const idx = meta?.findIndex((m) => m.credential.id === id);\n if (meta && idx !== undefined && idx !== -1) {\n meta.splice(idx, 1);\n }\n }));\n }\n return EMPTY;\n })));\n }\n\n async updateProfile() {\n return await lastValueFrom(this.keycloakProfileService.updateUserProfile(this.keyCloakUser));\n }\n\n updatePassword() {\n this.keycloakProfileService.updatePassword();\n }\n\n configureOTP() {\n this.keycloakProfileService.configureOTP();\n }\n}\n\n","<div class=\"container mt-2 mb-5\">\n <div class=\"container text-center position-relative my-3\">\n <h3>{{ 'core.account.title' | translate}}</h3>\n <i role=\"button\" class=\"bi bi-chevron-left position-absolute start-0 top-50 translate-middle-y\"\n style=\"font-size: 25px;font-weight: 600;\" (click)=\"backClicked()\"></i>\n <button rlb-button outline size=\"sm\" class=\"position-absolute end-0 top-50 translate-middle-y\"\n (click)=\"updateProfile()\">\n <i class=\"bi bi-floppy\"></i>\n </button>\n </div>\n <rlb-list class=\"settings\">\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.username' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input *ngIf=\"keyCloakUser\" size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.username\" disabled />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.email' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input *ngIf=\"keyCloakUser\" size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.email\" />\n <rlb-input *ngIf=\"!keyCloakUser\" size=\"small\" type=\"text\" readonly />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.firstName' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input *ngIf=\"keyCloakUser\" size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.firstName\" />\n <rlb-input *ngIf=\"!keyCloakUser\" size=\"small\" type=\"text\" readonly />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.lastName' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-input *ngIf=\"keyCloakUser\" size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.lastName\" />\n <rlb-input *ngIf=\"!keyCloakUser\" size=\"small\" type=\"text\" readonly />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.logout' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <button size=\"sm\" rlb-button (click)=\"logout()\" class=\"w-100\">\n <i class=\"bi bi-box-arrow-right\"></i>\n {{ 'core.account.logout' | translate}}</button>\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n <ng-container *ngIf=\"keyCloakUser\">\n <div class=\"container text-center position-relative mt-5 mb-2\">\n <h3>{{ 'core.account.credentials.title' | translate}}</h3>\n </div>\n <ng-container *ngFor=\"let type of keycloakCredentials\">\n <div class=\"container position-relative my-3\">\n <h6>{{ ('core.account.credentials.'+type?.type) | translate }}</h6>\n <button *ngIf=\"type.type === 'otp'\" rlb-button size=\"sm\"\n class=\"position-absolute end-0 top-50 translate-middle-y\" (click)=\"configureOTP()\">\n {{ 'core.account.credentials.addOTP' | translate}}\n </button>\n </div>\n <rlb-list class=\"settings mb-5\">\n <rlb-list-item class=\"settings-item\" *ngFor=\"let cred of type.userCredentialMetadatas\">\n <div class=\"row\">\n <div class=\"col-12\">\n <dl class=\"row signed-in-device-grid\">\n <div class=\"col-md-1\">\n <i class=\"bi bi-key\" style=\"font-size: 35px;\"></i>\n </div>\n <div class=\"col-md-5\">\n <dt>\n <span class=\"text-muted\">\n {{ 'core.account.credentials.name' | translate }}\n </span>\n </dt>\n <dd>{{cred.credential.userLabel || cred.credential.type}}</dd>\n </div>\n <div class=\"col-md-4\">\n <dt>\n <span class=\"text-muted\">\n {{'core.account.credentials.created' | translate}}\n </span>\n </dt>\n <dd>{{cred.credential.createdDate | date:'dd:MM:yyyy HH:mm' }}</dd>\n </div>\n <div class=\"col-md-2\">\n <dt><span class=\"text-muted\">{{'core.account.credentials.actions' |\n translate}}</span></dt>\n <dd>\n <button *ngIf=\"type.removeable\" size=\"sm\" rlb-button class=\"w-100\" color=\"danger\"\n (click)=\"removeCredential(type.type, cred.credential.id)\">\n <i class=\"bi bi-trash\"></i>\n {{ 'core.account.credentials.delete' | translate}}\n </button>\n <button *ngIf=\"!type.removeable\" size=\"sm\" rlb-button class=\"w-100\" outline\n (click)=\"updatePassword()\">\n <i class=\"bi bi-trash\"></i>\n {{ 'core.account.credentials.update' | translate}}\n </button>\n </dd>\n </div>\n </dl>\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item *ngIf=\"type.userCredentialMetadatas.length === 0\">\n <div class=\"d-flex justify-content-center\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.account.credentials.noCredentials' | translate}}</h6>\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n </ng-container>\n <div class=\"container text-center position-relative mt-5 mb-3\">\n <h3>{{ 'core.account.session.title' | translate}}</h3>\n </div>\n <rlb-list class=\"settings\">\n <rlb-list-item class=\"settings-item\" *ngFor=\"let d of keyCloakDevices\">\n <div class=\"row mb-2\">\n <div class=\"col-1\">\n <i class=\"bi bi-laptop\" style=\"font-size: 35px;\"></i>\n </div>\n <div class=\"col-11\">\n <span class=\"session-title\">{{d.os}} {{d.osVersion}} - {{d.browser}}</span>\n <span *ngIf=\"d.current\" class=\"badge bg-success ms-3\">\n <span class=\"badge-content\">\n {{ 'core.account.session.current' | translate}}\n </span>\n </span>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <dl class=\"row signed-in-device-grid\">\n <div class=\" col-md-1\">\n </div>\n <div class=\" col-md-2\">\n <dt><span class=\"text-muted\">{{ 'core.account.session.ip' | translate }}</span>\n </dt>\n <dd>{{d.ipAddress}}</dd>\n </div>\n <div class=\"col-md-2\">\n <dt>\n <span class=\"text-muted\">\n {{'core.account.session.lastAccess' | translate}}\n </span>\n </dt>\n <dd>{{d.lastAccess*1000 | date:'dd/MM/yyyy - HH:mm'}}</dd>\n </div>\n <div class=\"col-md-2\">\n <dt><span class=\"text-muted\">{{'core.account.session.applications' |\n translate}}</span></dt>\n <dd>{{d.clientslist }} </dd>\n </div>\n <div class=\"col-md-2\">\n <dt><span class=\"text-muted\">{{'core.account.session.started' |\n translate}}</span></dt>\n <dd>{{d.started*1000 | date:'dd/MM/yyyy - HH:mm'}}</dd>\n </div>\n <div class=\"col-md-2\">\n <dt><span class=\"text-muted\">{{'core.account.session.expires' |\n translate}}</span></dt>\n <dd>{{d.expires*1000 | date:'dd/MM/yyyy - HH:mm'}}</dd>\n </div>\n </dl>\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n </ng-container>\n</div>","import { CommonModule, Location } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { ToastService } from '@open-rlb/ng-bootstrap';\nimport { RlbAppModule } from '../../../rlb-app.module';\nimport { LanguageService } from '../../../services/i18n/language.service';\nimport { AppContextActions, BaseState, appContextFeatureKey } from '../../../store';\n\n@Component({\n selector: 'rlb-settings-core',\n imports: [RlbAppModule, CommonModule],\n templateUrl: './settings-core.component.html',\n styleUrl: './settings-core.component.scss'\n})\nexport class SettingsCoreComponent {\n constructor(\n private readonly _location: Location,\n private readonly toastService: ToastService,\n private readonly languageService: LanguageService,\n private readonly store: Store<BaseState>) { }\n\n backClicked() {\n this._location.back();\n }\n\n get languages() {\n return this.store.selectSignal(o => o[appContextFeatureKey].supportedLanguages)().map((lang: string) => {\n return {\n value: lang,\n label: this.languageService.getLanguageName(lang)\n };\n });\n }\n\n get currentLanguage() {\n return this.store.selectSignal(o => o[appContextFeatureKey].language)() as string;\n }\n\n set currentLanguage(value: string) {\n this.store.dispatch(AppContextActions.setLanguage({ language: value }));\n this.toastService.openToast('toast-c-1', 'toast-component', {\n title: this.languageService.translate('common.saved'),\n content: this.languageService.translate(\n 'common.savedSuccessfully',\n ),\n type: 'success',\n ok: this.languageService.translate('ok'),\n });\n }\n\n get darkMode() {\n return this.store.selectSignal(o => o[appContextFeatureKey].theme)() === 'dark';\n }\n\n set darkMode(value: boolean) {\n this.store.dispatch(AppContextActions.setTheme({ theme: value ? 'dark' : 'light' }));\n this.toastService.openToast('toast-c-1', 'toast-component', {\n title: this.languageService.translate('common.saved'),\n content: this.languageService.translate(\n 'common.savedSuccessfully',\n ),\n type: 'success',\n ok: this.languageService.translate('ok'),\n });\n }\n}\n\n","<div class=\"container mt-2\">\n <div class=\"container text-center position-relative my-3\">\n <h3>{{ 'core.settings.generalTitle' | translate}}</h3>\n <i role=\"button\" class=\"bi bi-chevron-left position-absolute start-0 top-50 translate-middle-y\"\n (click)=\"backClicked()\" style=\"font-size: 25px;font-weight: 600;\"></i>\n </div>\n <rlb-list class=\"settings\">\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.settings.generalTheme' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-switch size=\"small\" [(ngModel)]=\"darkMode\" class=\"mt-2\" />\n </div>\n </div>\n </rlb-list-item>\n <rlb-list-item class=\"settings-item\">\n <div class=\"d-flex justify-content-between\">\n <div class=\"settings-text\">\n <h6 class=\"mt-1\">{{ 'core.settings.generalLanguage' | translate}}</h6>\n </div>\n <div class=\"settings-control\">\n <rlb-select size=\"small\" [(ngModel)]=\"currentLanguage\">\n <rlb-option *ngFor=\"let l of languages\" [value]=\"l.value\">{{l.label}}</rlb-option>\n </rlb-select>\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n</div>\n","import { CommonModule, Location } from '@angular/common';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { PagesConfiguration, RLB_CFG_PAGES } from '../../../configuration';\nimport { RlbAppModule } from '../../../rlb-app.module';\nimport { AppInfo } from '../../../services/apps/app';\nimport { AppsService } from '../../../services/apps/apps.service';\nimport { BaseState } from '../../../store';\nimport { AuthenticationService } from '../../../auth/services/auth.service';\n\n\n@Component({\n selector: 'rlb-settings-list',\n imports: [RlbAppModule, CommonModule],\n templateUrl: './settings-list.component.html',\n styleUrl: './settings-list.component.scss'\n})\nexport class SettingsListComponent {\n constructor(\n private readonly _location: Location,\n private readonly appsService: AppsService,\n private readonly authService: AuthenticationService,\n @Inject(RLB_CFG_PAGES) @Optional() private pageOptions: PagesConfiguration) { }\n\n get apps() {\n return this.appsService.apps;\n }\n\n backClicked() {\n this._location.back();\n }\n\n selectApp(app: AppInfo) {\n this.appsService.selectApp(app, 'settings');\n }\n\n get pages() {\n return this.pageOptions;\n }\n\n get auth$() {\n return this.authService.isAuthenticated$;\n }\n}\n","<div class=\"container mt-2\">\n <div class=\"container text-center position-relative my-3\">\n <h3>{{ 'core.settings.title' | translate}}</h3>\n <i role=\"button\" class=\"bi bi-chevron-left position-absolute start-0 top-50 translate-middle-y\"\n (click)=\"backClicked()\" style=\"font-size: 25px;font-weight: 600;\"></i>\n </div>\n <rlb-list>\n <rlb-list-item-image icon=\"bi bi-gear\" [avatar-size]=\"35\" [line-1]=\" 'core.settings.generalTitle' | translate\"\n [routerLink]=\"'/setting/general'\" [line-2]=\" 'core.settings.generalDescription' | translate\">\n </rlb-list-item-image>\n <ng-container ngProjectAs=\"rlb-list-item-image\" *ngFor=\"let app of apps\">\n <ng-container ngProjectAs=\"rlb-list-item-image\" *ngIf=\"app.settings\">\n <rlb-list-item-image [icon]=\"app.settings.icon\" [avatar-size]=\"35\"\n [line-1]=\"(app.settings.title | translate) + (app.data?.appName ? ' - ' + app.data?.appName : '')\"\n [disabled]=\"!app.enabled && (app.settings.auth && !(auth$ | async))\"\n [line-2]=\"app.settings.description | translate\" (click)=\"selectApp(app)\">\n </rlb-list-item-image>\n </ng-container>\n </ng-container>\n </rlb-list>\n\n <rlb-list class=\"mt-5\" *ngIf=\"pages?.['status']?.path || pages?.['logger']?.path\">\n <rlb-list-item-image icon=\"bi bi-check2-circle\" *ngIf=\"pages?.['status']?.path\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.status' | translate\" [routerLink]=\"'/status'\">\n </rlb-list-item-image>\n <rlb-list-item-image icon=\"bi bi-file-text\" *ngIf=\"pages?.['logger']?.path\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.logger' | translate\" [routerLink]=\"'/logger'\">\n </rlb-list-item-image>\n </rlb-list>\n\n <rlb-list class=\"mt-4\"\n *ngIf=\"pages?.['privacy']?.path || pages?.['cookies']?.path || pages?.['terms']?.path || pages?.['support']?.path\">\n <rlb-list-item-image icon=\"bi bi-shield-check\" *ngIf=\"pages?.['privacy']?.path\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.privacy' | translate\" [routerLink]=\"'/privacy'\">\n </rlb-list-item-image>\n <rlb-list-item-image icon=\"bi bi bi-cookie\" *ngIf=\"pages?.['cookies']?.path\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.cookies' | translate\" [routerLink]=\"'/cookies'\">\n </rlb-list-item-image>\n <rlb-list-item-image icon=\"bi bi-vector-pen\" *ngIf=\"pages?.['terms']?.path\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.legal' | translate\" [routerLink]=\"'/terms'\">\n </rlb-list-item-image>\n <rlb-list-item-image icon=\"bi bi-chat-quote\" *ngIf=\"pages?.['support']?.path\" [avatar-size]=\"18\"\n [line-1]=\" 'core.settings.support' | translate\" [routerLink]=\"'/support'\">\n </rlb-list-item-image>\n </rlb-list>\n</div>","import { Routes } from '@angular/router';\nimport {\n\tCmsContentComponent,\n\tCookiesComponent,\n\tNotFoundComponent,\n\tPrivacyComponent,\n\tSupportComponent,\n\tTermsAndConditionsComponent\n} from '.';\nimport { PagesConfiguration } from '../configuration';\nimport { AppSelectorComponent } from './apps/app-selector/app-selector.component';\nimport { UserAccountComponent } from './apps/user-account/user-account.component';\nimport { SettingsCoreComponent } from './settings/settings-core/settings-core.component';\nimport { SettingsListComponent } from './settings/settings-list/settings-list.component';\nimport { DEFAULT_ROUTES_CONFIG } from \"./default-routes.config\";\n\nexport function getDefaultRoutes(config?: PagesConfiguration): Routes {\n\tconst defaultRoutes = DEFAULT_ROUTES_CONFIG\n\t\t.filter(defaultRouteConfig => !defaultRouteConfig.configKey || (config && config[defaultRouteConfig.configKey]))\n\t\t.map(route => {\n\t\t\tswitch (route.path) {\n\t\t\t\tcase 'setting': return { path: 'setting', component: SettingsListComponent };\n\t\t\t\tcase 'setting/general': return { path: 'setting/general', component: SettingsCoreComponent };\n\t\t\t\tcase 'apps': return { path: 'apps', component: AppSelectorComponent };\n\t\t\t\tcase 'profile': return { path: 'profile', component: UserAccountComponent };\n\t\t\t\tcase 'content': return { path: 'content', component: CmsContentComponent };\n\t\t\t\tcase 'cookies': return { path: 'cookies', component: CookiesComponent };\n\t\t\t\tcase 'notFound': return { path: 'notFound', component: NotFoundComponent };\n\t\t\t\tcase 'privacy': return { path: 'privacy', component: PrivacyComponent };\n\t\t\t\tcase 'support': return { path: 'support', component: SupportComponent };\n\t\t\t\tcase 'terms': return { path: 'terms', component: TermsAndConditionsComponent };\n\t\t\t\tdefault: throw new Error(`No component mapped for route ${route.path}`);\n\t\t\t}\n\t\t});\n\treturn defaultRoutes;\n}\n\n","import { Inject, Injectable, Optional, Renderer2, RendererFactory2 } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, tap } from 'rxjs/operators';\nimport { BaseState } from '..';\nimport { LanguageService } from '../../services';\nimport { AppInfo } from '../../services/apps/app';\nimport { AppStorageService } from '../../services/utils/app-storage.service';\nimport { AppContextActions, AppContextActionsInternal } from './app-context.actions';\nimport { RLB_APPS } from './app-context.model';\nimport { AppLoggerService, LoggerContext } from \"../../services/apps/app-logger.service\";\n\n@Injectable()\nexport class AppContextEffects {\n private renderer: Renderer2;\n\tprivate logger: LoggerContext;\n\t\n\tsetLanguage$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AppContextActions.setLanguage),\n tap(({ language }) => this.languageService.language = language),\n tap(({ language }) => {\n this.renderer.setAttribute(document.documentElement, 'lang', language);\n }),\n tap(({ language }) => { this.storage.writeLocal('locale', language); }),\n map(({ language }) => AppContextActionsInternal.setLanguage({ language })),\n );\n });\n\n setLanguages$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AppContextActions.setSupportedLanguages),\n tap(({ supportedLanguages }) => this.languageService.languages = supportedLanguages),\n map(({ supportedLanguages }) => AppContextActionsInternal.setSupportedLanguages({ supportedLanguages })),\n );\n });\n\n setTheme$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AppContextActions.setTheme),\n tap(({ theme }) => {\n this.renderer.setAttribute(document.documentElement, 'data-bs-theme', theme);\n }),\n tap(({ theme }) => { this.storage.writeLocal('theme', theme); }),\n map(({ theme }) => AppContextActionsInternal.setTheme({ theme })),\n );\n });\n\n setApp$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AppContextActions.setCurrentApp),\n map(({ app, mode, url }) => {\n\t\t\t\treturn AppContextActionsInternal.setCurrentApp({ app, mode, url });\n }),\n tap(({ app }) => {\n if (app) {\n\t\t\t\t\tthis.logger.warn('setApp$ set c-app-id', app.id!);\n\t\t\t\t\tlocalStorage.setItem('c-app-id', app.id!);\n } else {\n\t\t\t\t\tthis.logger.warn('setApp$ remove c-app-id');\n\t\t\t\t\tlocalStorage.removeItem('c-app-id');\n }\n }),\n );\n });\n\n constructor(\n private readonly actions$: Actions,\n private readonly languageService: LanguageService,\n readonly rendererFactory: RendererFactory2,\n readonly storage: AppStorageService,\n readonly store: Store<BaseState>,\n private readonly router: Router,\n\t\tprivate loggerService: AppLoggerService,\n @Inject(RLB_APPS) @Optional() private apps: AppInfo[],\n ) {\n\t\tthis.logger = this.loggerService.for(this.constructor.name);\n this.renderer = rendererFactory.createRenderer(null, null);\n if (this.apps && this.apps.length > 0) {\n for (const app of this.apps) {\n store.dispatch(AppContextActionsInternal.addApp({ app: app }));\n }\n }\n }\n}\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { AppContextActions, AppContextActionsInternal } from './app-context.actions';\nimport { appContextFeatureKey, initialAppContextState } from './app-context.model';\n\nexport const appFeature = createFeature({\n name: appContextFeatureKey,\n reducer: createReducer(\n initialAppContextState,\n on(AppContextActionsInternal.setCurrentApp, (state, { app, mode, url }) => ({ ...state, currentApp: app ? { ...app, viewMode: mode, navigationUrl: url } : null })),\n on(AppContextActions.removeApp, (state, { appType }) => ({ ...state, apps: state.apps.filter(a => a.type !== appType) })),\n on(AppContextActions.finalizeApp, (state, { appType, data, appId }) => {\n const appsOfType = state.apps.filter(a => a.type === appType);\n if (appsOfType.length === 0) throw new Error(`App type: ${appType} not found. Cannot finalize app.`);\n let updatedAppsOfType: typeof appsOfType;\n if (appsOfType.length === 1 && !appsOfType[0].id) {\n updatedAppsOfType = [{ ...appsOfType[0], data, id: appId, }];\n } else {\n updatedAppsOfType = [...appsOfType, { ...appsOfType[0], data, id: appId, }];\n }\n const remainingApps = state.apps.filter(a => a.type !== appType);\n return { ...state, apps: [...remainingApps, ...updatedAppsOfType], };\n }),\n on(AppContextActionsInternal.addApp, (state, { app }) => {\n if (!app) return state;\n const apps = state.apps.filter(a => a.type !== app.type);\n apps.push(app);\n return { ...state, apps };\n }),\n on(AppContextActionsInternal.setLanguage, (state, { language }) => ({ ...state, language })),\n on(AppContextActionsInternal.setSupportedLanguages, (state, { supportedLanguages }) => ({ ...state, supportedLanguages })),\n on(AppContextActionsInternal.setTheme, (state, { theme }) => ({ ...state, theme })),\n on(AppContextActionsInternal.setViewMode, (state, { viewMode }) => ({ ...state, viewMode })))\n});\n\nexport const appReducer = appFeature.reducer;\n\nexport const {\n selectAppState,\n selectApps,\n selectCurrentApp,\n selectSupportedLanguages\n} = appFeature;\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { AuthenticationService } from '../../auth/services/auth.service';\nimport { AuthConfiguration, RLB_CFG_AUTH } from '../../configuration';\nimport { AuthActions, AuthActionsInternal } from './auth.actions';\nimport { AppLoggerService, LoggerContext } from '../../services/apps/app-logger.service';\n\n@Injectable()\nexport class AuthEffects {\n private logger: LoggerContext;\n\n login$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AuthActions.login),\n tap(() => this.logger.log('auth effects going to call login()')),\n tap(() => this.auth.login()),\n map(() => AuthActionsInternal.setLoading({ loading: true })),\n );\n });\n\n logout$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AuthActions.logout),\n tap(() => this.logger.log('auth effects going to call logout$()')),\n switchMap(() => this.auth.logout$()),\n map(() => AuthActionsInternal.reset()));\n });\n\n setCurrentProvider$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AuthActions.setCurrentProvider),\n map(({ currentProvider }) => AuthActionsInternal.setCurrentProvider({ currentProvider }))\n );\n });\n\n constructor(\n private actions$: Actions,\n private auth: AuthenticationService,\n private loggerService: AppLoggerService,\n @Inject(RLB_CFG_AUTH) @Optional() authConfig: AuthConfiguration) {\n this.logger = this.loggerService.for(this.constructor.name);\n this.logger.log(`Initialized AuthEffects}`);\n }\n}\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { AuthActionsInternal } from './auth.actions';\nimport { authsFeatureKey, initialAuthState } from './auth.model';\n\nexport const authsFeature = createFeature({\n name: authsFeatureKey,\n reducer: createReducer(\n initialAuthState,\n on(AuthActionsInternal.setLoading, (state, action) => ({ ...state, loading: action.loading })),\n on(AuthActionsInternal.reset, () => ({ ...initialAuthState })),\n on(AuthActionsInternal.setCurrentProvider, (state, action) => {\n if (action.currentProvider && state.currentProvider !== action.currentProvider) {\n return { ...state, currentProvider: action.currentProvider };\n }\n return state;\n })\n )\n});\n\nexport const authReducer = authsFeature.reducer;\n\nexport const {\n selectAuthState,\n selectCurrentProvider,\n selectLoading\n} = authsFeature;\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { initialNavbarState, navbarsFeatureKey } from './navbar.model';\nimport { NavbarActions } from './navbar.actions';\n\nexport const navbarsFeature = createFeature({\n name: navbarsFeatureKey,\n reducer: createReducer(\n initialNavbarState,\n on(NavbarActions.setVisible, (state, { visible }) => ({ ...state, visible })),\n on(NavbarActions.setSearchVisible, (state, { visible }) => ({ ...state, searchVisible: visible })),\n on(NavbarActions.setHeader, (state, { header }) => ({ ...state, header })),\n on(NavbarActions.setSearchText, (state, { text }) => ({ ...state, searchText: text })),\n on(NavbarActions.setLeftItems, (state, { items }) => ({ ...state, leftItems: items })),\n on(NavbarActions.setRightItems, (state, { items }) => ({ ...state, rightItems: items })),\n on(NavbarActions.setLoginVisible, (state, { visible }) => ({ ...state, loginVisible: visible })),\n on(NavbarActions.setSettingsVisible, (state, { visible }) => ({ ...state, settingsVisible: visible })),\n on(NavbarActions.setAppsVisible, (state, { visible }) => ({ ...state, appsVisible: visible })),\n on(NavbarActions.setSeparatorVisible, (state, { visible }) => ({ ...state, separatorVisible: visible }))\n )\n});\n\nexport const navbarReducer = navbarsFeature.reducer;\n\nexport const {\n selectNavbarState\n} = navbarsFeature;\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { sidebarsFeatureKey, initialSidebarState } from './sidebar.model';\nimport { SidebarActions } from './sidebar.actions';\n\nexport const sidebarsFeature = createFeature({\n name: sidebarsFeatureKey,\n reducer: createReducer(\n initialSidebarState,\n on(SidebarActions.setItems, (state, { items }) => ({ ...state, items })),\n on(SidebarActions.setVisible, (state, { visible }) => ({ ...state, visible })),\n on(SidebarActions.setLoginVisible, (state, { visible }) => ({ ...state, loginVisible: visible })),\n on(SidebarActions.setSearchVisible, (state, { visible }) => ({ ...state, searchVisible: visible })),\n on(SidebarActions.setSettingsVisible, (state, { visible }) => ({ ...state, settingsVisible: visible })),\n on(SidebarActions.setSearchText, (state, { text }) => ({ ...state, searchText: text })),\n on(SidebarActions.setAppsVisible, (state, { visible }) => ({ ...state, appsVisible: visible }))\n )\n});\n\nexport const sidebarReducer = sidebarsFeature.reducer;\n\nexport const {\n selectSidebarState\n} = sidebarsFeature;","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { RlbAppModule } from '../rlb-app.module';\nimport { ToastData, ToastDirective, IToast } from '@open-rlb/ng-bootstrap';\n\n@Component({\n imports: [RlbAppModule, CommonModule],\n template: `\n <div class=\"toast-header\">\n <strong class=\"me-auto\">\n <svg\n class=\"bd-placeholder-img rounded me-2\"\n width=\"20\"\n height=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n preserveAspectRatio=\"xMidYMid slice\"\n focusable=\"false\"\n >\n <rect width=\"100%\" height=\"100%\" fill=\"#007aff\"></rect>\n </svg>\n {{ data.title }}\n </strong>\n <small *ngIf=\"data.subtitle\"> {{ data.subtitle }}</small>\n <button\n type=\"button\"\n class=\"btn-close\"\n data-bs-dismiss=\"toast\"\n aria-label=\"Close\"\n ></button>\n </div>\n <div class=\"toast-body\">{{ data.content }}</div>\n `,\n hostDirectives: [\n {\n directive: ToastDirective,\n inputs: ['id', 'data-instance', 'data-options'],\n },\n ]\n})\nexport class ToastComponent implements IToast<string, void> {\n data!: ToastData<string>;\n valid?: boolean = true;\n result?: any;\n}\n\n","import { ActivatedRouteSnapshot, CanDeactivateFn, RouterStateSnapshot } from '@angular/router';\nimport { Injectable, inject, importProvidersFrom } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface VerifyDeactivate {\n verifyDeactivate: () => boolean | Observable<boolean>;\n}\n\nexport const verifyDeactivate: CanDeactivateFn<VerifyDeactivate> = (\n component: VerifyDeactivate,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState: RouterStateSnapshot\n) => {\n return component.verifyDeactivate();\n};\n","import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport {\n EnvironmentProviders,\n inject,\n isDevMode,\n provideAppInitializer,\n Provider\n} from '@angular/core';\nimport { provideRouter, Route } from '@angular/router';\nimport { provideServiceWorker } from '@angular/service-worker';\nimport { provideEffects } from '@ngrx/effects';\nimport { provideState, provideStore } from '@ngrx/store';\nimport { ModalRegistryOptions, provideRlbBootstrap, ToastRegistryOptions } from '@open-rlb/ng-bootstrap';\nimport { provideRlbCodeBrowserOAuth } from './lib/auth/auth.provider';\nimport {\n\tProjectConfiguration,\n\tRLB_CFG,\n\tRLB_CFG_CMS,\n\tRLB_CFG_ENV,\n\tRLB_CFG_I18N,\n\tRLB_CFG_PAGES\n} from './lib/configuration';\nimport { ErrorModalComponent } from './lib/modals/error-modal.component';\nimport { ModalAppsComponent } from './lib/modals/modal-apps.component';\nimport { getDefaultRoutes } from './lib/pages/shared.routes';\nimport { RlbAppModule } from './lib/rlb-app.module';\nimport { AppDescriber } from './lib/services/apps/app-describer';\nimport { provideRlbI18n } from './lib/services/i18n/i18n.provider';\nimport { RLB_APPS } from './lib/store';\nimport { AppContextEffects } from './lib/store/app-context/app-context.effects';\nimport { appFeature } from './lib/store/app-context/app-context.reducer';\nimport { AuthEffects } from './lib/store/auth/auth.effects';\nimport { authsFeature } from './lib/store/auth/auth.reducer';\nimport { navbarsFeature } from './lib/store/navbar/navbar.reducer';\nimport { sidebarsFeature } from './lib/store/sidebar/sidebar.reducer';\nimport { ToastComponent } from './lib/toasts/error-toast.component';\nimport { AuthenticationService } from \"./lib/auth\";\nimport { AppsService } from \"./lib/services\";\n\nexport * from './lib/auth';\nexport * from './lib/guards';\nexport * from './lib/modals';\nexport * from './lib/pages/shared.routes';\nexport * from './lib/pipes';\nexport * from './lib/services';\nexport * from './lib/store';\nexport * from './lib/templates';\nexport * from './lib/toasts';\n\nexport * from './lib/configuration';\nexport * from './lib/rlb-app.module';\n\nexport function provideRlbConfig<T = { [k: string]: any; }>(env: ProjectConfiguration<T>): (EnvironmentProviders | Provider)[] {\n return [\n provideRlbBootstrap(),\n RlbAppModule,\n provideStore(),\n provideState(authsFeature),\n provideEffects(AuthEffects),\n provideState(navbarsFeature),\n provideState(sidebarsFeature),\n provideState(appFeature),\n provideEffects(AppContextEffects),\n provideRouter(getDefaultRoutes(env.pages)),\n provideRlbCodeBrowserOAuth(env.auth),\n provideRlbI18n(env.i18n),\n provideHttpClient(withInterceptorsFromDi()),\n provideServiceWorker('ngsw-worker.js', {\n enabled: !isDevMode(),\n registrationStrategy: 'registerWhenStable:15000',\n }),\n provideAppInitializer(() => {\n inject(AppsService);\n }),\n provideAppInitializer(() => {\n const authService = inject(AuthenticationService);\n return authService.checkAuthMultiple();\n }),\n { provide: RLB_CFG, useValue: env },\n { provide: RLB_CFG_ENV, useValue: env.environment },\n { provide: RLB_CFG_CMS, useValue: env.cms },\n { provide: RLB_CFG_PAGES, useValue: env.pages },\n { provide: RLB_CFG_I18N, useValue: env.i18n },\n {\n provide: ModalRegistryOptions, useValue: {\n modals: {\n \"modal-apps-component\": ModalAppsComponent,\n 'error-modal-component': ErrorModalComponent,\n }\n }, multi: true\n },\n {\n provide: ToastRegistryOptions,\n useValue: {\n toasts: {\n 'toast-component': ToastComponent,\n },\n },\n multi: true,\n },\n ];\n}\n\nexport function provideApp(app: AppDescriber): (EnvironmentProviders | Provider)[] {\n\tconst routesPaths = app.routes ? flattenRoutes(app.routes) : [];\n\n\tconst providers: (EnvironmentProviders | Provider)[] = [{\n provide: RLB_APPS, useValue: {\n ...app.info,\n routes: routesPaths,\n }, multi: true\n },];\n if (app.routes) {\n providers.push(provideRouter(app.routes));\n }\n if (app.providers) {\n providers.push(...app.providers);\n }\n return providers;\n}\n\nfunction flattenRoutes(routes: Route[], parentPath = ''): string[] {\n\treturn routes.flatMap(route => {\n\t\tconst fullPath = route.path ? `${parentPath}${parentPath && '/'}${route.path}` : parentPath;\n\t\tconst childPaths = route.children ? flattenRoutes(route.children, fullPath) : [];\n\t\treturn route.path ? [fullPath, ...childPaths] : childPaths;\n\t});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AppStorageService","i1","i2.AppLoggerService","i3.LanguageService","i2","i2.CookiesService","i3","i4.ParseJwtService","i5","i2.AppStorageService","i1.AbstractMdService","i4","i6.CmsPipe","i2.CmsComponent","i1.CmsComponent","i1.AbstractSupportService","i2.AppsService","i3.AuthenticationService","i7","i8.AsMultiPipe","i8.AsSinglePipe","i9.LeftComponentPipe","i10.RightComponentPipe","i3.AppStorageService","i4.PwaUpdaterService","i5.AppsService","i6.AppLoggerService","i8","i9.AppTemplateComponent","i10.AsMultiPipe","i10.AsSinglePipe","i1.AuthenticationService","i2.ParseJwtService","i2.AuthenticationService","i3.AppLoggerService","i3.ErrorManagementService","i3.KeycloakProfileService","i5.LanguageService","i6.AuthenticationService","i9","i6","tap","map","switchMap"],"mappings":"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"}