@open-rlb/ng-app 3.1.48 → 3.1.49
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/store/acl/acl.actions.ts","../../../../projects/rlb/ng-app/src/lib/store/acl/acl.model.ts","../../../../projects/rlb/ng-app/src/lib/services/acl/user-resources.service.ts","../../../../projects/rlb/ng-app/src/lib/services/apps/rlb-init-provider.ts","../../../../projects/rlb/ng-app/src/lib/store/acl/acl.store.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/company.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/pages/settings/settings-dropdown-selector/settings-dropdown-selector.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/settings/settings-dropdown-selector/settings-dropdown-selector.component.html","../../../../projects/rlb/ng-app/src/lib/pages/apps/app-dropdown-selector/app-dropdown-selector.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/apps/app-dropdown-selector/app-dropdown-selector.component.html","../../../../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/auth/directives/role.directive.ts","../../../../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/guards/oauth.guard.ts","../../../../projects/rlb/ng-app/src/lib/auth/guards/permisson.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/store/acl/acl.effects.ts","../../../../projects/rlb/ng-app/src/lib/store/acl/acl.reducer.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\n// export const RLB_CFG = 'rlb.options';\nexport const RLB_CFG = new InjectionToken<ProjectConfiguration>('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`);\nexport const RLB_CFG_ACL = new InjectionToken<AclConfiguration>(`${RLB_CFG}:acl`);\n\nexport interface InterceptorMapping {\n // Key: The name of the Query Parameter to add to the request\n // Value: The property name to look for in Store data object\n [k: string]: string;\n}\n\nexport interface AclConfiguration {\n endpointKey: string; // The key in the 'endpoints'\n path: string; // The path\n interceptorMapping?: InterceptorMapping;\n businessIdKey: string; // The key in the Store data object to match with resourceBusinessId\n resourceIdKey: string; // The key in the Store data object to match with resourceId\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 enableCompanyInterceptor?: boolean;\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 acl?: AclConfiguration;\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, props } from '@ngrx/store';\nimport { NavbarActionsLayout, NavbarHeader } from './navbar.model';\n\nexport const NavbarActionsInternal = createActionGroup({\n source: 'Navbar/Internal',\n events: {},\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: NavbarHeader | 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 SetActionsLayout: props<{ layout: NavbarActionsLayout }>(),\n },\n});\n","export const navbarsFeatureKey = 'navbar';\n\nexport type NavbarHeader =\n | { type: 'text'; text: string }\n | { type: 'image'; src: string; alt?: string; height?: number };\n\nexport type NavbarActionsLayout = 'default' | 'dropdown';\n\nexport interface Navbar {\n visible: boolean;\n header: NavbarHeader | 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 actionsLayout: NavbarActionsLayout;\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 actionsLayout: 'default',\n};\n\nexport interface NavbarState {\n [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 { createActionGroup, emptyProps, props } from '@ngrx/store';\nimport { UserResource } from \"./acl.model\";\n\n\nexport const AclActions = createActionGroup({\n source: 'ACL',\n events: {\n 'Load ACL': emptyProps(),\n 'Load ACL Success': props<{ resources: UserResource[] }>(),\n 'Load ACL Failure': props<{ error: any }>(),\n 'Reset': emptyProps(),\n 'Finalized Apps Success': emptyProps(),\n 'Finalized Apps Failure': emptyProps()\n }\n});\n","export const aclFeatureKey = 'acl';\n\n\nexport interface UserResource {\n resourceBusinessId: string;\n resources: Resource[];\n}\n\nexport interface Resource {\n resourceId: string;\n actions: string[];\n friendlyName?: string;\n}\n\nexport interface Acl {\n resources: UserResource[] | null;\n loading: boolean;\n loaded: boolean;\n error: any;\n}\n\nexport const initialAclState: Acl = {\n resources: null,\n loading: false,\n loaded: false,\n error: null\n};\n\nexport interface AclState { [aclFeatureKey]: Acl }\n","import { Inject, Injectable, Optional } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { AclConfiguration, ProjectConfiguration, RLB_CFG, RLB_CFG_ACL } from '../../configuration';\nimport { UserResource } from '../../store/acl/acl.model'\nimport { Observable, of } from \"rxjs\";\n\n@Injectable({ providedIn: 'root' })\nexport class AdminApiService {\n constructor(\n private httpClient: HttpClient,\n @Optional() @Inject(RLB_CFG) private config: ProjectConfiguration,\n @Optional() @Inject(RLB_CFG_ACL) private aclConfig: AclConfiguration,\n ) { }\n\n public resourcesByUser$(): Observable<UserResource[]> {\n if (!this.aclConfig) {\n console.error(\"ACL configuration is missing. Provide 'acl' in ProjectConfiguration.\");\n return of([])\n }\n\n const endpoint = this.config.endpoints?.[this.aclConfig.endpointKey];\n\n if (!endpoint) {\n throw new Error(`Endpoint '${this.aclConfig.endpointKey}' not found in configuration.`);\n }\n\n const url = `${endpoint.baseUrl}/${this.aclConfig.path}`;\n return this.httpClient.get<UserResource[]>(url).pipe(\n //this.errorManagementService.manageUI('error', 'dialog')\n );\n }\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { Store } from \"@ngrx/store\";\nimport { BaseState, UserResource } from '../../store/'\nimport { AclConfiguration, RLB_CFG } from '../../configuration'\n\nexport const RLB_INIT_PROVIDER = new InjectionToken<RlbInitProvider>(`${RLB_CFG}:init.provider`);\nexport interface RlbInitProvider {\n finalizeApps(resources: UserResource[], store: Store<BaseState>, acl: AclConfiguration | null): Promise<void>;\n}\n","import { inject } from '@angular/core';\nimport { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\nimport { AdminApiService } from \"../../services/acl/user-resources.service\";\nimport { initialAclState } from './acl.model';\nimport { catchError, from, map, of, switchMap, tap } from \"rxjs\";\nimport { RLB_INIT_PROVIDER } from '../../services/apps/rlb-init-provider';\nimport { RLB_CFG_ACL } from '../../configuration';\nimport { Store } from \"@ngrx/store\";\nimport { BaseState } from \"../../store\";\n//import { ErrorManagementService } from \"../../services/errors/error-management.service\";\n\nexport const AclStore = signalStore(\n { providedIn: 'root' },\n withState(initialAclState),\n withMethods((\n store,\n adminApi = inject(AdminApiService),\n baseStore = inject(Store<BaseState>),\n rlbInitProvider = inject(RLB_INIT_PROVIDER, { optional: true }),\n aclConfiguration = inject(RLB_CFG_ACL, { optional: true })\n ) => ({\n\n hasPermission: (busId: string, resId: string, action?: string) => {\n const resources = store.resources();\n if (!resources) return false;\n return resources.some(company =>\n company.resourceBusinessId === busId &&\n company.resources.some(res => {\n const matchRes = res.resourceId === resId;\n return action ? (matchRes && res.actions.includes(action)) : matchRes;\n })\n );\n },\n\n // Load Logic: Replaces both Effects. Get user res + call via bridge finalizeApps\n loadACL() {\n patchState(store, { loading: true, loaded: false });\n return adminApi.resourcesByUser$().pipe(\n tap(resources => patchState(store, { resources, loaded: true, loading: false })),\n switchMap((resources) => {\n if (!rlbInitProvider) {\n console.error(\"RlbInitProvider not found. Define RLB_INIT_PROVIDER\");\n return of(resources)\n }\n\n // Pass resources directly to the finalizer to prevent race condition problem\n return from(rlbInitProvider.finalizeApps(resources, baseStore, aclConfiguration)).pipe(\n map(() => resources),\n catchError((err) => {\n console.error('Finalization failed', err);\n return of(resources);\n })\n );\n })\n );\n },\n reset: () => patchState(store, initialAclState)\n }))\n);\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, Inject, Injectable, Optional } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { filter, map, Observable, switchMap } from 'rxjs';\nimport { AclConfiguration, AuthConfiguration, RLB_CFG_ACL, RLB_CFG_AUTH } from '../../configuration';\nimport { AppContextActions, AuthActions, authsFeatureKey, BaseState, } from '../../store';\nimport { AclStore } from '../../store/acl/acl.store'\nimport { appContextFeatureKey } from '../../store/app-context/app-context.model';\nimport { AppInfo } 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 route: ActivatedRoute\n appsConfig: AppInfo<any>[]\n apps: AppInfo<any>[]\n fullPath: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppsService {\n private logger: LoggerContext;\n private aclStore = inject(AclStore); // Inject SignalStore here\n\n constructor(\n private store: Store<BaseState>,\n private activatedRoute: ActivatedRoute,\n private router: Router,\n private loggerService: AppLoggerService,\n @Inject(RLB_CFG_AUTH) @Optional() readonly confAuth: AuthConfiguration | undefined,\n @Inject(RLB_CFG_ACL) @Optional() private readonly confAcl: AclConfiguration | undefined\n ) {\n this.logger = this.loggerService.for(this.constructor.name);\n this.logger.log('AppsService initialized');\n\n this.initAuthProviders(store, confAuth);\n this.initRouterListener()\n }\n\n get currentDomain() {\n return window.location.hostname;\n }\n\n get apps() {\n const apps = this.store.selectSignal(state => state[appContextFeatureKey].apps)()\n const resources = this.aclStore.resources();\n const confAcl = this.confAcl;\n\n return apps.filter(app => {\n // Basic domain check\n const isDomainAllowed = !app.domains || app.domains.includes(this.currentDomain);\n if (!isDomainAllowed) return false;\n\n // If acl config doesnt exist return apps filtered by domain\n if (!confAcl) return true;\n\n if (!resources && app.actions?.length) return false; // If app has actions defined, but no resources in store, we assume it's ACL protected and not allowed\n\n if (resources && !app.actions?.length) return true; // If app has no actions defined, we assume it's not ACL protected and allow it\n\n return resources?.some(userResource => {\n // Matching by Business ID\n // IMPORTANT: app.data must have key, name of this key is in confAcl\n const appBusId = app.data?.[confAcl.businessIdKey];\n const matchBusId = userResource.resourceBusinessId === appBusId;\n\n if (!matchBusId) return false;\n\n // Matching by Resource ID\n return userResource.resources.some(res => {\n const appResId = app.data?.[confAcl.resourceIdKey];\n const matchResId = res.resourceId === appResId;\n\n if (!matchResId) return false;\n\n return res.actions.some(action => app.actions?.includes(action));\n });\n });\n });\n }\n\n get currentAppAclInfo() {\n const app = this.currentApp;\n if (!app || !app.data || !this.confAcl) return null;\n\n return {\n busId: app.data[this.confAcl.businessIdKey],\n resId: app.data[this.confAcl.resourceIdKey]\n };\n }\n\n get currentApp() {\n const app = this.store.selectSignal(state => state[appContextFeatureKey].currentApp)();\n this.logger.log('Current app from store:', app);\n return app;\n }\n\n checkPermissionInCurrentApp(action?: string): boolean {\n const info = this.currentAppAclInfo;\n if (!info) return false;\n return this.aclStore.hasPermission(info.busId, info.resId, action);\n }\n\n selectApp(app?: AppInfo, viewMode?: 'app' | 'settings', url?: string) {\n const currentApp = this.currentApp;\n if (!app) {\n this.logger.warn('Deselecting app (null).');\n this.store.dispatch(AppContextActions.setCurrentApp({ app: null }));\n return;\n }\n if (currentApp && currentApp.id === app.id && currentApp.viewMode === viewMode) {\n this.logger.info('App already selected with same id and viewMode. Skipping dispatch.');\n return;\n }\n this.logger.warn('Dispatching setCurrentApp with:', { app, mode: viewMode, url });\n this.store.dispatch(AppContextActions.setCurrentApp({ app, mode: viewMode, url }));\n }\n\n private 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 if (!confAuth?.providers?.length) {\n this.logger.warn('No auth providers configured.');\n return;\n }\n\n if (confAuth?.providers && confAuth.providers.length === 1) {\n this.logger.info('Single auth provider detected:', confAuth.providers[0]);\n store.dispatch(AuthActions.setCurrentProvider({ currentProvider: confAuth.providers[0].configId }));\n return\n }\n\n this.logger.info('Multiple auth providers detected, checking by domain:', this.currentDomain);\n\n const authProvidersMatched = confAuth.providers.filter(provider => provider.domains?.includes(this.currentDomain));\n\n if (authProvidersMatched && authProvidersMatched.length === 1) {\n this.logger.info('Auth provider matched by domain:', authProvidersMatched[0]);\n store.dispatch(AuthActions.setCurrentProvider({ currentProvider: authProvidersMatched[0].configId }));\n } else if (authProvidersMatched && authProvidersMatched.length > 1) {\n this.logger.warn(`Multiple auth providers found for the current domain: ${this.currentDomain}. Please specify a single provider in the configuration.`);\n } else {\n this.logger.warn(`No auth provider found for the current domain: ${this.currentDomain}.`);\n }\n }\n\n private initRouterListener() {\n this.router.events\n .pipe(\n filter(event => event instanceof NavigationEnd),\n switchMap(() => this.resolveRouteAndApps()),\n takeUntilDestroyed()\n )\n .subscribe(data => this.handleResolvedApps(data));\n }\n\n // Core logic\n\n private resolveRouteAndApps(): Observable<AppConfig | null> {\n const route = this.findDeepestChild(this.activatedRoute);\n\n // 1. Get abstract route template (LIKE \".../:id\")\n const configPath = this.getConfigPath(route);\n\n // 2. Get REAL url path (LIKE \".../abc-123\")\n const actualPath = this.getActualPath(route);\n\n this.logger.info(`Resolving. ConfigPath: '${configPath}', ActualPath: '${actualPath}'`);\n\n const appRoutes: AppInfo[] | undefined = this.apps?.map(app => ({\n type: app.type,\n routes: app.routes || [],\n viewMode: app.viewMode,\n enabled: app.enabled,\n core: app.core\n }));\n\n let appRoutesMatched: AppInfo[] = [];\n\n if (configPath && !this.isDefaultRoute(configPath)) {\n appRoutesMatched = appRoutes?.filter(app =>\n app.routes?.some(r => r.includes(configPath))\n ) ?? [];\n }\n\n this.logger.info('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 map(apps => {\n if (appRoutesMatched.length > 0 || actualPath === '') {\n return {\n route,\n appsConfig: appRoutesMatched,\n apps,\n fullPath: actualPath\n } as AppConfig;\n }\n return null;\n })\n );\n }\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.getActualPath(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\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 const redirectApps = domainApps.filter((app) => app.autoRedirectOnRootEnabled);\n\n if (redirectApps?.length > 1) {\n this.logger.warn('Multiple apps have autoRedirectOnRootEnabled: true. Picking the first one.', redirectApps);\n }\n\n if (redirectApps.length) {\n const targetUrl = redirectApps[0].core?.url;\n this.logger.info(`[AutoRedirect] Detected app with root redirect. Redirecting to: ${targetUrl}`);\n this.router.navigate([targetUrl], {\n queryParams: route.snapshot.queryParams,\n replaceUrl: true\n });\n return;\n }\n\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 private findDeepestChild(route: ActivatedRoute): ActivatedRoute {\n while (route.firstChild) route = route.firstChild;\n this.logger.info('Activated deepest child route:', route);\n return route;\n }\n\n private getStoredAppId(): string | null {\n try {\n return localStorage.getItem('c-app-id');\n } catch (e) {\n this.logger.warn('LocalStorage not available:', e);\n return null;\n }\n }\n\n private isSettingsRoute(route: ActivatedRoute): boolean {\n return route.routeConfig?.path?.includes('settings') ?? false;\n }\n\n private isDefaultRoute(route: string): boolean {\n return DEFAULT_ROUTES_CONFIG\n .some(r => r.path.includes(route));\n }\n\n private getConfigPath(route: ActivatedRoute): string {\n const segments: string[] = [];\n let current: ActivatedRoute | null = route.root;\n\n while (current) {\n const path = current.routeConfig?.path;\n if (path && path !== '') segments.push(path);\n current = current.firstChild ?? null;\n }\n\n return segments.join('/');\n }\n\n private getActualPath(route: ActivatedRoute): string {\n const segments: string[] = [];\n let current: ActivatedRoute | null = route.root;\n\n while (current) {\n // map(s => s.path) extract params\n const path = current.snapshot.url.map(s => s.path).join('/');\n if (path && path !== '') segments.push(path);\n current = current.firstChild ?? null;\n }\n return segments.join('/');\n }\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 case 'de': return 'Deutsch'\n default: return ''\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { ActivatedRoute, NavigationEnd, Router } from \"@angular/router\";\nimport { BreadcrumbItem, UniqueIdService } 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 private idService: UniqueIdService\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 id: `breadcrumb${this.idService.id}`\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, 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 { EMPTY, lastValueFrom, map, Observable, switchMap, tap } from 'rxjs';\nimport {\n AuthConfiguration,\n EnvironmentConfiguration,\n IConfiguration,\n RLB_CFG,\n RLB_CFG_AUTH,\n RLB_CFG_ENV,\n} from '../../configuration';\nimport { AppLoggerService, AppStorageService, CookiesService, LoggerContext } from '../../services';\nimport { AuthActions, authsFeatureKey, BaseState } from '../../store';\nimport { ParseJwtService } from './parse-jwt.service';\nimport { AdminApiService } from '../../services/acl/user-resources.service';\nimport { AclStore } from '../../store/acl/acl.store';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthenticationService {\n modal!: Window | null;\n private logger: LoggerContext;\n private readonly aclStore = inject(AclStore);\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 private readonly adminApi: AdminApiService,\n @Optional() @Inject(RLB_CFG_ENV) private envConfig: EnvironmentConfiguration,\n @Optional() @Inject(RLB_CFG_AUTH) private authConfig: AuthConfiguration,\n @Optional() @Inject(RLB_CFG) private appconfig: IConfiguration,\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(\n state => state[authsFeatureKey].currentProvider,\n )();\n return this.authConfig?.providers.find(provider => provider.configId === currentProvider);\n }\n\n public checkAuthMultiple(url?: string | undefined): Observable<LoginResponse[]> {\n return this.oidc.checkAuthMultiple(url).pipe(\n switchMap((responses: LoginResponse[]) => {\n const authenticatedConfig = responses.find(o => o.isAuthenticated);\n\n if (authenticatedConfig && authenticatedConfig.configId) {\n this.store.dispatch(\n AuthActions.setCurrentProvider({\n currentProvider: authenticatedConfig.configId,\n }),\n );\n } else {\n // wrap login with this to bypass login flow\n // if (!isDevMode()) {\n //\n // }\n this.login();\n return EMPTY;\n }\n\n // SignalStore methods can trigger the API call\n return this.aclStore.loadACL().pipe(\n tap(() => this.handleRedirect()),\n map(() => responses),\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 (\n typeof process !== 'undefined' &&\n typeof process?.version !== 'undefined' &&\n typeof process?.versions['electron'] !== undefined\n ) {\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(\n map(userData => {\n const user = userData.allUserData.find(o => o.configId === this.currentProvider?.configId);\n return user ? user.userData : null;\n }),\n );\n }\n\n public get isAuthenticated$(): Observable<boolean> {\n return this.oidc.isAuthenticated$.pipe(\n map(isAuthenticated => {\n // this.logger.log(`oidc isAuthenticated$ check, response: ${JSON.stringify(isAuthenticated)}; looking for isAuthenticated of ${this.currentProvider?.configId} configId`);\n return (\n isAuthenticated.allConfigsAuthenticated.find(\n o => o.configId === this.currentProvider?.configId,\n )?.isAuthenticated || false\n );\n }),\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 private handleRedirect() {\n const redirect = this.localStorage.readLocal('loginRedirectUrl');\n if (redirect) {\n this.localStorage.removeLocal('loginRedirectUrl');\n setTimeout(() => {\n this.router.navigateByUrl(redirect, { replaceUrl: true });\n }, 0);\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 { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { appContextFeatureKey, } from '../store/app-context/app-context.model';\nimport { ProjectConfiguration, RLB_CFG } from '../configuration';\n\n@Injectable()\nexport class CompanyInterceptor implements HttpInterceptor {\n private store = inject(Store);\n private config = inject(RLB_CFG) as ProjectConfiguration;\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const authConfig = this.config.auth;\n const isAllowed = authConfig?.allowedUrls?.some(url => req.url.includes(url));\n if (!isAllowed || !authConfig?.enableCompanyInterceptor) {\n return next.handle(req);\n }\n const currentApp = this.store.selectSignal(state => state[appContextFeatureKey].currentApp)();\n const data = currentApp?.data as { [key: string]: string } | undefined;\n const mapping = this.config.acl?.interceptorMapping || {};\n let params = req.params;\n for (const key of Object.keys(mapping)) {\n const storeKey = mapping[key];\n const value = data?.[storeKey];\n if (!!value) {\n params = params.set(storeKey, value);\n }\n };\n const clonedReq = req.clone({ params });\n return next.handle(clonedReq);\n }\n}\n","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { EnvironmentProviders, makeEnvironmentProviders, Provider } from \"@angular/core\";\nimport {\n AbstractLoggerService,\n AbstractSecurityStorage,\n AuthInterceptor,\n AuthModule,\n provideAuth\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\";\nimport { CompanyInterceptor } from \"./company.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.enableCompanyInterceptor) {\n providers.push({ provide: HTTP_INTERCEPTORS, useClass: CompanyInterceptor, 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 @if (page) {\n <div class=\"container\">\n @if (breadcrumb) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <rlb-breadcrumb [items]=\"breadcrumb\"></rlb-breadcrumb>\n </div>\n </div>\n }\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <h1 class=\"text-center\">{{page.Title}}</h1>\n </div>\n </div>\n @if (page.Content) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <div [innerHTML]=\"page.Content \"></div>\n </div>\n </div>\n }\n @if (page.page_tabs.length>0) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <rlb-tabs>\n @for (tab of page.page_tabs; track tab.id; let i = $index) {\n <rlb-tab [target]=\"'cms-tab-'+i\">\n {{tab.Title}}\n </rlb-tab>\n }\n </rlb-tabs>\n <rlb-tab-content>\n @for (tab of page.page_tabs; track tab.id; let i = $index) {\n <rlb-tab-pane [id]=\"'cms-tab-'+i\">\n <div class=\"container-fluid\">\n @if (tab.Content) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <div [innerHTML]=\"tab.Content \"></div>\n </div>\n </div>\n }\n @for (step of tab.steps; track step.ContentId; let i = $index) {\n <div class=\"row my-4 mx-auto card-steps\"\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 }\n @if (tab.faqs.length>0) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <h2 class=\"py-3\">{{tab.FaqTitle}}</h2>\n </div>\n </div>\n }\n @if (tab.faqs.length>0 && tab.FaqContent) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <div [innerHTML]=\"tab.FaqContent \"></div>\n </div>\n </div>\n }\n @if (tab.faqs.length>0) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <rlb-accordion>\n @for (faq of tab.faqs; track faq) {\n <div rlb-accordion-item [expanded]=\"true\">\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 }\n </rlb-accordion>\n </div>\n </div>\n }\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 @if (page.topics.length>0) {\n <div class=\"row my-4\" style=\"padding: 4px\">\n @for (topic of page.topics; track topic.ContentId) {\n <div class=\"col-lg-6 col-md-12 col-sm-12 col-xs-12\">\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 }\n </div>\n }\n </div>\n </rlb-tab-pane>\n }\n </rlb-tab-content>\n </div>\n </div>\n }\n </div>\n }\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';\n\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 { Component, inject, input, OnDestroy, output, viewChild } from '@angular/core';\nimport {\n NavbarDropdownItemComponent,\n ToastService,\n VisibilityEventBase,\n} from '@open-rlb/ng-bootstrap';\nimport { Router } from '@angular/router';\nimport { AppInfo, LanguageService } from '../../../services';\nimport { PagesConfiguration, RLB_CFG_PAGES } from '../../../configuration';\nimport { AppContextActions, appContextFeatureKey, BaseState } from '../../../store';\nimport { Store } from '@ngrx/store';\n\n@Component({\n selector: 'rlb-settings-dropdown-selector',\n standalone: false,\n templateUrl: './settings-dropdown-selector.component.html',\n styleUrl: './settings-dropdown-selector.component.scss',\n})\nexport class SettingsDropdownSelectorComponent implements OnDestroy {\n apps = input.required<AppInfo[]>();\n navbarHasSettings = input.required();\n navbarHasLogin = input.required();\n isAuth = input.required();\n appSelected = output<AppInfo>();\n activeSlide: number = 0;\n\n // deps\n private readonly pageOptions: PagesConfiguration | null = inject(RLB_CFG_PAGES, {\n optional: true,\n });\n private readonly store: Store<BaseState> = inject(Store);\n private readonly languageService: LanguageService = inject(LanguageService);\n private readonly toastService: ToastService = inject(ToastService);\n private readonly router: Router = inject(Router);\n private readonly menu = viewChild.required<NavbarDropdownItemComponent>('menu');\n\n constructor() {\n this.router.events.subscribe(() => this.close());\n }\n\n get pages() {\n return this.pageOptions;\n }\n\n selectApp(app: any): void {\n this.appSelected.emit(app);\n }\n\n goToFirst() {\n this.activeSlide = 0;\n }\n\n goToInlineSettings() {\n this.activeSlide = 1;\n }\n\n ngOnDestroy() {}\n\n change(event: VisibilityEventBase) {\n if (event === 'hidden') {\n this.goToFirst();\n }\n }\n\n get languages() {\n return this.store\n .selectSignal(o => o[appContextFeatureKey].supportedLanguages)()\n .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('common.savedSuccessfully'),\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('common.savedSuccessfully'),\n type: 'success',\n ok: this.languageService.translate('ok'),\n });\n }\n\n private close() {\n this.menu().close();\n }\n}\n","<rlb-navbar-dropdown-item #menu dropdown auto-close=\"outside\" (status-changed)=\"change($event)\">\n <!-- Dropdown Toggle Icon -->\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.settings.title') | translate\">\n <i class=\"bi bi-gear fs-5\"></i>\n </span>\n <span class=\"ms-1 d-lg-none\">{{ 'core.settings.title' | translate }}</span>\n\n <!-- Dropdown Container -->\n <rlb-dropdown-container placement=\"right\">\n\n <rlb-carousel\n [hide-indicators]=\"true\"\n [hide-controls]=\"true\"\n autoplay=\"none\"\n [no-touch]=\"true\"\n [(current-slide)]=\"activeSlide\"\n style=\"width: 320px; display: block;\">\n\n <rlb-carousel-slide [active]=\"true\">\n <div class=\"p-3\">\n <h6 class=\"dropdown-header px-0 text-center mb-2 fw-bold text-dark\">\n {{ 'core.settings.title' | translate }}\n </h6>\n\n <div class=\"row row-cols-3 g-2\">\n\n <!-- General Settings -->\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n (click)=\"goToInlineSettings()\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-sliders fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">{{ 'core.settings.generalTitle' | translate }}</span>\n </button>\n </div>\n\n <!-- Dynamic App Settings -->\n @for (app of apps(); track app.id) {\n @if (app.settings) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n [disabled]=\"!app.enabled && (app.settings.auth && !(isAuth()))\"\n (click)=\"selectApp(app)\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i [ngClass]=\"['bi', 'fs-4', 'mb-1', app.settings.icon || 'bi-gear']\"></i>\n <span class=\"small text-truncate w-100\" [title]=\"(app.settings.title | translate) || app.data?.appName\">\n {{ (app.settings.title | translate) || app.data?.appName }}\n </span>\n </button>\n </div>\n }\n }\n\n <!-- System / Status -->\n @if (pages?.['status']?.path) {\n <div class=\"col\">\n <button rlb-button outline color=\"primary\" routerLink=\"/status\" class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-check2-circle fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">{{ 'core.settings.status' | translate }}</span>\n </button>\n </div>\n }\n\n <!-- Logger -->\n @if (pages?.['logger']?.path) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n routerLink=\"/logger\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-file-text fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">\n {{ 'core.settings.logger' | translate }}\n </span>\n </button>\n </div>\n }\n\n <!-- Privacy -->\n @if (pages?.['privacy']?.path) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n routerLink=\"/privacy\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-shield-check fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">\n {{ 'core.settings.privacy' | translate }}\n </span>\n </button>\n </div>\n }\n\n <!-- Cookies -->\n @if (pages?.['cookies']?.path) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n routerLink=\"/cookies\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-cookie fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">\n {{ 'core.settings.cookies' | translate }}\n </span>\n </button>\n </div>\n }\n\n <!-- Terms -->\n @if (pages?.['terms']?.path) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n routerLink=\"/terms\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-vector-pen fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">\n {{ 'core.settings.legal' | translate }}\n </span>\n </button>\n </div>\n }\n\n <!-- Support -->\n @if (pages?.['support']?.path) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n routerLink=\"/support\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-chat-quote fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">\n {{ 'core.settings.support' | translate }}\n </span>\n </button>\n </div>\n }\n\n </div>\n </div>\n </rlb-carousel-slide>\n\n <rlb-carousel-slide>\n <div class=\"p-3\">\n\n <div class=\"d-flex align-items-center mb-3\">\n <button class=\"btn btn-sm btn-link text-dark p-0 me-2 border-0 text-decoration-none\" (click)=\"goToFirst()\">\n <i class=\"bi bi-arrow-left fs-5\"></i>\n </button>\n <h6 class=\"mb-0 fw-bold\">{{ 'core.settings.generalTitle' | translate }}</h6>\n </div>\n\n <!-- Inline Settings Content without routing -->\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 @for (l of languages; track l.value) {\n <rlb-option [value]=\"l.value\">{{l.label}}</rlb-option>\n }\n </rlb-select>\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n\n </div>\n </rlb-carousel-slide>\n\n </rlb-carousel>\n\n </rlb-dropdown-container>\n</rlb-navbar-dropdown-item>\n","import { Component, input, output } from '@angular/core';\nimport { AppInfo } from '../../../services';\n\n@Component({\n selector: 'rlb-app-dropdown-selector',\n standalone: false,\n templateUrl: './app-dropdown-selector.component.html',\n styleUrls: ['./app-dropdown-selector.component.scss'],\n})\nexport class AppDropdownSelectorComponent {\n apps = input.required<AppInfo[]>();\n isAuth = input.required<boolean | null>();\n\n appSelected = output<AppInfo>();\n\n selectApp(app: any): void {\n this.appSelected.emit(app);\n }\n}\n","<rlb-navbar-dropdown-item dropdown>\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.apps.button') | translate\">\n <i class=\"bi bi-grid-3x3-gap-fill fs-5\"></i>\n </span>\n <span class=\"ms-1 d-lg-none\">{{ 'core.apps.button' | translate }}</span>\n <rlb-dropdown-container placement=\"right\">\n <div class=\"row row-cols-3 g-2 p-3\" style=\"width: 320px;\">\n @for (app of apps(); track app.id) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-center\"\n [disabled]=\"!app.enabled && (app.core?.auth && !(isAuth()))\"\n (click)=\"selectApp(app)\">\n\n <i [ngClass]=\"['bi', 'fs-3', 'mb-1', app.core?.icon || 'bi-app']\"></i>\n <span class=\"small text-truncate w-100\" [title]=\"app.data?.appName\">\n {{ app.data?.appName }}\n </span>\n </button>\n </div>\n }\n </div>\n </rlb-dropdown-container>\n</rlb-navbar-dropdown-item>\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 { AppInfo, AppsService } from '../../services';\nimport {\n appContextFeatureKey,\n AuthActions,\n BaseState,\n NavbarActions,\n SidebarActions,\n} 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 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].settingsVisible);\n }\n\n get navbarHasApps$() {\n return this.store.select(state => state[navbarsFeatureKey].appsVisible);\n }\n\n get navbarLayout$() {\n return this.store.select(state => state[navbarsFeatureKey].actionsLayout);\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 selectApp(app: AppInfo) {\n this.appsService.selectApp(app, 'app');\n }\n}\n","<div class=\"rlb-app\">\n @if (navVisible$ | async) {\n <rlb-navbar [dark]=\"theme === 'dark'\" [showSideBarToggler]=\"(sidebarVisible$ | async)\" expand=\"lg\" class=\"border-bottom py-1 rlb-navbar\">\n @if (navHeader$ | async; as header) {\n <a rlb-navbar-brand href=\"#\">\n\n @if (header.type === 'text') {\n {{ header.text }}\n }\n\n @if (header.type === 'image') {\n <img\n [src]=\"header.src\"\n [alt]=\"header.alt ?? 'Brand'\"\n [height]=\"header.height ?? 40\"\n />\n }\n </a>\n }\n @if (navSearchVisible$ | async) {\n <rlb-navbar-form>\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 }\n @for (navComponent of navLeftItems$ | async; track navComponent) {\n <rlb-navbar-items class=\"me-auto align-items-center\">\n <ng-container ngProjectAs=\"rlb-navbar-item\">\n <ng-container *ngComponentOutlet=\"navComponent | leftComponent\"></ng-container>\n </ng-container>\n </rlb-navbar-items>\n }\n <rlb-navbar-items class=\"align-items-center\">\n @for (navComponent of navRightItems$ | async; track navComponent) {\n <ng-container ngProjectAs=\"rlb-navbar-item\">\n <ng-container *ngComponentOutlet=\"navComponent | rightComponent\"></ng-container>\n </ng-container>\n }\n @if ((separatorVisible$ | async)) {\n <rlb-navbar-separator />\n }\n\n <ng-container ngProjectAs=\"rlb-navbar-item\">\n @if ((navbarLayout$ | async) == 'default') {\n @if ((navbarHasLogin$ | async) && !(isAuth$ | async)) {\n <rlb-navbar-item (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 <span class=\"ms-1 d-lg-none\">{{'core.account.login' | translate}}</span>\n </rlb-navbar-item>\n }\n\n @if ( (navbarHasLogin$ | async) && (isAuth$ | async)) {\n <rlb-navbar-item [router-link]=\"'/profile'\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.account.title') |translate\">\n <i class=\"bi bi-person\"></i>\n </span>\n <span class=\"ms-1 d-lg-none\">{{'core.account.title' | translate}}</span>\n </rlb-navbar-item>\n }\n\n @if (navbarHasSettings$ | async) {\n <rlb-navbar-item [router-link]=\"'/setting'\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.settings.title') |translate\">\n <i class=\"bi bi-gear\"></i>\n </span>\n <span class=\"ms-1 d-lg-none\">{{'core.settings.title' | translate}}</span>\n </rlb-navbar-item>\n }\n\n @if ((navbarHasApps$ | async) && apps.length > 1) {\n <rlb-navbar-item [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 <span class=\"ms-1 d-lg-none\">{{'core.apps.button' | translate}}</span>\n </rlb-navbar-item>\n }\n\n } @else if ((navbarLayout$ | async) == 'dropdown') {\n <!-- MODERN DROPDOWN MODE -->\n\n <!--Unauthenticated Login -->\n @if ((navbarHasLogin$ | async) && !(isAuth$ | async)) {\n <rlb-navbar-item (click)=\"loginNav($event)\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.account.login') | translate\">\n <i class=\"bi bi-box-arrow-in-left fs-5\"></i>\n </span>\n <span class=\"ms-1 d-lg-none\">{{ 'core.account.login' | translate }}</span>\n </rlb-navbar-item>\n }\n\n <!-- Profile & Settings Account Card -->\n @if (((navbarHasLogin$ | async) && (isAuth$ | async)) || (navbarHasSettings$ | async)) {\n <rlb-settings-dropdown-selector\n [apps]=\"apps\"\n [isAuth]=\"isAuth$ | async\"\n [navbarHasLogin]=\"navbarHasLogin$ | async\"\n [navbarHasSettings]=\"navbarHasSettings$ | async\"\n (appSelected)=\"selectApp($event)\"\n />\n }\n\n <!-- Apps Launcher -->\n @if ((navbarHasApps$ | async) && apps.length > 1) {\n <rlb-app-dropdown-selector\n [apps]=\"apps\"\n [isAuth]=\"isAuth$ | async\"\n (appSelected)=\"selectApp($event)\"\n />\n }\n }\n </ng-container>\n </rlb-navbar-items>\n </rlb-navbar>\n }\n <div class=\"rlb-main-wrapper\">\n @if ((sidebarVisible$ | async)) {\n <rlb-sidebar [dark]=\"theme === 'dark'\" id=\"sidebar\" class=\"rlb-sidebar\">\n @for (item of (sidebarItems$ | async); track item) {\n <rlb-sidebar-item\n [icon]=\"item.icon\" [link]=\"item.url\"\n [title]=\"item.title\" [label]=\"item.label\"\n [badgeCounter]=\"item.badgeCounter\"\n (click)=\"onSideBarItemClick(item)\"\n >\n {{item.label}}\n @for (subitem of item.items || []; track subitem) {\n <rlb-sidebar-item\n [icon]=\"subitem.icon\"\n [link]=\"subitem.url\"\n [title]=\"subitem.title\"\n [label]=\"subitem.label\"\n [badgeCounter]=\"subitem.badgeCounter\"\n (click)=\"onSideBarItemClick(subitem)\"\n >\n {{subitem.label}}\n </rlb-sidebar-item>\n }\n </rlb-sidebar-item>\n }\n </rlb-sidebar>\n }\n <div class=\"rlb-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n@if (modalContainerId) {\n <rlb-modal-container [id]=\"modalContainerId\" />\n}\n\n@if (toastContainerIds) {\n @if (toastContainerIds.constructor.name === 'Array') {\n @for (toastContainerId of toastContainerIds | asMulti; track toastContainerId) {\n <rlb-toast-container [id]=\"toastContainerId\" />\n }\n } @else {\n <rlb-toast-container class=\"position-fixed bottom-0 end-0 p-3\" [id]=\"toastContainerIds | asSingle\" />\n }\n}\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 @if (!(isHandset$ | async)) {\n <div class=\"container-fluid\">\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 @if (breadcrumb) {\n <rlb-breadcrumb [items]=\"breadcrumb\"></rlb-breadcrumb>\n }\n <h1 class=\"pt-5 pb-0 text-center\">\n {{title}}\n </h1>\n </div>\n </div>\n @if (subtitle) {\n <div class=\"row\">\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 }\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n </div>\n </div>\n </div>\n } @else {\n <!--old ng-template #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 @if (subtitle) {\n <div class=\"row\">\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 }\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"mobile\"></ng-container>\n }\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>\n","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 @if (!(isHandset$ | async)) {\n <div class=\"container-fluid\">\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 } @else {\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"mobile\"></ng-container>\n }\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, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\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","@if ((template$ | async) === 'app') {\n <rlb-app-template>\n <router-outlet />\n </rlb-app-template>\n}\n@if ((template$ | async) === 'basic') {\n <router-outlet />\n}\n\n\n@if (modalContainerId) {\n <rlb-modal-container [id]=\"modalContainerId\" />\n}\n\n@if (toastContainerIds) {\n @if (toastContainerIds.constructor.name === 'Array') {\n @for (toastContainerId of toastContainerIds | asMulti; track toastContainerId) {\n <rlb-toast-container [id]=\"toastContainerId\" />\n }\n } @else {\n <rlb-toast-container class=\"position-fixed bottom-0 end-0 p-3\" [id]=\"toastContainerIds | asSingle\" />\n }\n}","import { Directive, effect, inject, input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { AppsService } from \"../../services\";\n\n@Directive({\n selector: '[roles]',\n standalone: false\n})\nexport class RlbRole {\n private appsService = inject(AppsService);\n private templateRef = inject(TemplateRef<any>);\n private viewContainer = inject(ViewContainerRef);\n\n action = input<string | undefined>(undefined, { alias: 'roles' });\n\n constructor() {\n // Effect automatically re-runs if store.resources or inputs change\n effect(() => {\n const action = this.action() || '';\n const hasPerm = this.appsService.checkPermissionInCurrentApp(action);\n\n this.viewContainer.clear();\n if (hasPerm) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n });\n }\n}\n","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';\nimport { RlbRole } from './auth/directives/role.directive';\nimport { SettingsDropdownSelectorComponent } from './pages/settings/settings-dropdown-selector/settings-dropdown-selector.component';\nimport { AppDropdownSelectorComponent } from './pages/apps/app-dropdown-selector/app-dropdown-selector.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 SettingsDropdownSelectorComponent,\n AppDropdownSelectorComponent,\n // directives\n RlbRole,\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 // directives\n RlbRole,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n RlbBootstrapModule,\n RouterModule,\n ],\n})\nexport class RlbAppModule {}\n","import { Component, input, model, 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],\n template: `\n <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\n type=\"button\"\n class=\"btn btn-primary\"\n data-modal-reason=\"close\"\n >\n {{ data().ok }}\n </button>\n </div>\n `,\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 = input.required<ModalData<any>>();\n valid = model(true);\n\n onEnter() {}\n\n ngOnInit(): void {\n console.log(this.data());\n }\n}\n","import { Component, input, model } 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\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 <ul class=\"row row-cols-4 list-unstyled list\">\n @for (app of data().content; track app) {\n <li\n class=\"col my-2\"\n [tooltip]=\"app.description | translate\"\n >\n <a\n class=\"d-block text-body-emphasis text-decoration-none\"\n (click)=\"appSelected(app)\"\n [class.disabled]=\"!app.enabled\"\n data-modal-reason=\"ok\"\n >\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\">\n {{ app.name | translate }}\n </div>\n </a>\n </li>\n }\n </ul>\n </div>\n `,\n hostDirectives: [{ directive: ModalDirective, inputs: ['id', 'data-instance', 'data-options'] }],\n})\nexport class ModalAppsComponent implements IModal<AppInfo[], AppInfo> {\n data = input.required<ModalData<any>>();\n valid = model(true);\n result?: any;\n apps: AppInfo[] = [];\n\n appSelected(app: AppInfo) {\n this.result = app;\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 @for (app of apps; track app.id) {\n <ng-container ngProjectAs=\"rlb-list-item-image\">\n @if (app.core) {\n <ng-container ngProjectAs=\"rlb-list-item-image\">\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 }\n </ng-container>\n }\n </rlb-list>\n</div>\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 { CanActivateFn, Router } from \"@angular/router\";\nimport { inject } from \"@angular/core\";\nimport { filter, map, take } from \"rxjs\";\nimport { AclStore } from \"../../store/acl/acl.store\";\nimport { toObservable } from \"@angular/core/rxjs-interop\";\nimport { AppsService } from \"../../services\";\n\nexport const permissionGuard: CanActivateFn = (route) => {\n const aclStore = inject(AclStore);\n const appsService = inject(AppsService);\n const router = inject(Router);\n\n // We wait for aclStore to load data\n return toObservable(aclStore.loaded).pipe(\n filter(Boolean),\n take(1),\n map(() => {\n const action = route.data['action'];\n if (appsService.checkPermissionInCurrentApp(action)) {\n return true;\n }\n return router.createUrlTree(['/notFound']);\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 @if (keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.username\" disabled />\n }\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 @if (keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.email\" />\n }\n @if (!keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" readonly />\n }\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 @if (keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.firstName\" />\n }\n @if (!keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" readonly />\n }\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 @if (keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.lastName\" />\n }\n @if (!keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" readonly />\n }\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 @if (keyCloakUser) {\n <div class=\"container text-center position-relative mt-5 mb-2\">\n <h3>{{ 'core.account.credentials.title' | translate}}</h3>\n </div>\n @for (type of keycloakCredentials; track type) {\n <div class=\"container position-relative my-3\">\n <h6>{{ ('core.account.credentials.'+type?.type) | translate }}</h6>\n @if (type.type === 'otp') {\n <button 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 }\n </div>\n <rlb-list class=\"settings mb-5\">\n @for (cred of type.userCredentialMetadatas; track cred.credential.id) {\n <rlb-list-item class=\"settings-item\">\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 @if (type.removeable) {\n <button 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 }\n @if (!type.removeable) {\n <button 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 }\n </dd>\n </div>\n </dl>\n </div>\n </div>\n </rlb-list-item>\n }\n @if (type.userCredentialMetadatas.length === 0) {\n <rlb-list-item>\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 }\n </rlb-list>\n }\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 @for (d of keyCloakDevices; track d.id) {\n <rlb-list-item class=\"settings-item\">\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 @if (d.current) {\n <span class=\"badge bg-success ms-3\">\n <span class=\"badge-content\">\n {{ 'core.account.session.current' | translate}}\n </span>\n </span>\n }\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 }\n </rlb-list>\n}\n</div>\n","import { 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],\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 @for (l of languages; track l.value) {\n <rlb-option [value]=\"l.value\">{{l.label}}</rlb-option>\n }\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 | undefined) { }\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 @for (app of apps; track app.id) {\n <ng-container ngProjectAs=\"rlb-list-item-image\">\n @if (app.settings) {\n <ng-container ngProjectAs=\"rlb-list-item-image\">\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 }\n </ng-container>\n }\n </rlb-list>\n\n @if (pages?.['status']?.path || pages?.['logger']?.path) {\n <rlb-list class=\"mt-5\">\n @if (pages?.['status']?.path) {\n <rlb-list-item-image icon=\"bi bi-check2-circle\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.status' | translate\" [routerLink]=\"'/status'\">\n </rlb-list-item-image>\n }\n @if (pages?.['logger']?.path) {\n <rlb-list-item-image icon=\"bi bi-file-text\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.logger' | translate\" [routerLink]=\"'/logger'\">\n </rlb-list-item-image>\n }\n </rlb-list>\n }\n\n @if (pages?.['privacy']?.path || pages?.['cookies']?.path || pages?.['terms']?.path || pages?.['support']?.path) {\n <rlb-list class=\"mt-4\"\n >\n @if (pages?.['privacy']?.path) {\n <rlb-list-item-image icon=\"bi bi-shield-check\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.privacy' | translate\" [routerLink]=\"'/privacy'\">\n </rlb-list-item-image>\n }\n @if (pages?.['cookies']?.path) {\n <rlb-list-item-image icon=\"bi bi bi-cookie\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.cookies' | translate\" [routerLink]=\"'/cookies'\">\n </rlb-list-item-image>\n }\n @if (pages?.['terms']?.path) {\n <rlb-list-item-image icon=\"bi bi-vector-pen\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.legal' | translate\" [routerLink]=\"'/terms'\">\n </rlb-list-item-image>\n }\n @if (pages?.['support']?.path) {\n <rlb-list-item-image icon=\"bi bi-chat-quote\" [avatar-size]=\"18\"\n [line-1]=\" 'core.settings.support' | translate\" [routerLink]=\"'/support'\">\n </rlb-list-item-image>\n }\n </rlb-list>\n }\n</div>\n","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 }) => ({\n ...state,\n searchVisible: visible,\n })),\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 }) => ({\n ...state,\n loginVisible: visible,\n })),\n on(NavbarActions.setSettingsVisible, (state, { visible }) => ({\n ...state,\n settingsVisible: visible,\n })),\n on(NavbarActions.setAppsVisible, (state, { visible }) => ({ ...state, appsVisible: visible })),\n on(NavbarActions.setSeparatorVisible, (state, { visible }) => ({\n ...state,\n separatorVisible: visible,\n })),\n on(NavbarActions.setActionsLayout, (state, { layout }) => ({\n ...state,\n actionsLayout: layout,\n })),\n ),\n});\n\nexport const navbarReducer = navbarsFeature.reducer;\n\nexport const { selectNavbarState } = 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 { Component, input } from '@angular/core';\nimport { RlbAppModule } from '../rlb-app.module';\nimport { IToast, ToastData, ToastDirective } from '@open-rlb/ng-bootstrap';\n\n@Component({\n imports: [RlbAppModule],\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\n width=\"100%\"\n height=\"100%\"\n fill=\"#007aff\"\n ></rect>\n </svg>\n {{ data().title }}\n </strong>\n @if (data().subtitle) {\n <small>{{ data().subtitle }}</small>\n }\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 = input.required<ToastData<any>>();\n valid?: boolean = true;\n result?: any;\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { map, switchMap } from 'rxjs/operators';\nimport { AuthActions } from \"../auth/auth.actions\";\nimport { AclActions } from \"./acl.actions\";\nimport { catchError, of } from \"rxjs\";\nimport { AdminApiService } from \"../../services/acl/user-resources.service\";\nimport { Store } from '@ngrx/store';\nimport { RLB_INIT_PROVIDER, RlbInitProvider } from '../../services/apps/rlb-init-provider';\nimport { AclConfiguration, RLB_CFG_ACL } from '../../configuration';\nimport { BaseState } from '..';\n\n\n@Injectable()\nexport class AclEffects {\n loadAclOnAuth$ = createEffect(() => {\n return this.actions$.pipe(\n // Listen for the action dispatched in AuthenticationService.checkAuthMultiple\n ofType(AuthActions.setCurrentProvider),\n map(() => AclActions.loadACL())\n );\n });\n\n fetchAcl$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AclActions.loadACL),\n switchMap(() => this.adminApi.resourcesByUser$().pipe(\n map(resources => AclActions.loadACLSuccess({ resources })),\n catchError(error => of(AclActions.loadACLFailure({ error })))\n ))\n );\n });\n\n // TODO: It's legacy approach. We're moving forward to signalStore. All legacy boilerplate (effects.ts, reducers.ts, actions.ts) will be removed soon\n // I've moved this logic into acl.store.ts -> loadACL() method\n\n // finalizeAppsOnAclLoad$ = createEffect(() => {\n // return this.actions$.pipe(\n // ofType(AclActions.loadACLSuccess),\n // switchMap(() => {\n // if (!this.rlbInitProvider) {\n // console.error(\"RlbInitProvider not found. Define RLB_INIT_PROVIDER\");\n // return of(AclActions.finalizedAppsFailure());\n // }\n // return from(\n // this.rlbInitProvider.finalizeApps(this.store, this.aclConfiguration)\n // ).pipe(\n // map(() => AclActions.finalizedAppsSuccess()),\n // catchError(() => of(AclActions.finalizedAppsFailure()))\n // );\n // }));\n // });\n\n\n constructor(\n private actions$: Actions,\n private adminApi: AdminApiService,\n @Optional() @Inject(RLB_INIT_PROVIDER) private rlbInitProvider: RlbInitProvider,\n @Optional() @Inject(RLB_CFG_ACL) private aclConfiguration: AclConfiguration,\n private store: Store<BaseState>\n ) { }\n}\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { AclActions } from './acl.actions';\nimport { aclFeatureKey, initialAclState } from './acl.model';\n\nexport const aclFeature = createFeature({\n name: aclFeatureKey,\n reducer: createReducer(\n initialAclState,\n on(AclActions.loadACL, (state) => ({\n ...state,\n loading: true,\n loaded: false\n })),\n on(AclActions.loadACLSuccess, (state, { resources }) => ({\n ...state,\n resources,\n loaded: true,\n loading: false\n })),\n on(AclActions.loadACLFailure, (state, { error }) => ({\n ...state,\n error,\n loading: false,\n loaded: true // We mark as loaded to unblock the UI even if the fetch fails\n })),\n on(AclActions.reset, () => ({ ...initialAclState }))\n )\n});\n\nexport const aclReducer = aclFeature.reducer;\n\nexport const {\n selectAclState,\n selectResources,\n selectLoading,\n selectLoaded\n} = aclFeature;\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 { EnvironmentProviders, inject, isDevMode, provideAppInitializer, Provider } 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 ProjectConfiguration,\n RLB_CFG,\n RLB_CFG_ACL,\n RLB_CFG_CMS,\n RLB_CFG_ENV,\n RLB_CFG_I18N,\n RLB_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\";\nimport { AclEffects } from \"./lib/store/acl/acl.effects\";\nimport { aclFeature } from \"./lib/store/acl/acl.reducer\";\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, AppContextEffects, AclEffects),\n provideState(navbarsFeature),\n provideState(sidebarsFeature),\n provideState(appFeature),\n provideState(aclFeature),\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 // From here starts all pipeline: checkAuthMultiple -> resourcesByUser -> finalizeApp -> orchestration in appsService\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 { provide: RLB_CFG_ACL, useValue: env.acl },\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","i3.AppLoggerService","i2.AppLoggerService","i3.LanguageService","i4","i2","i2.CookiesService","i3","i4.ParseJwtService","i5","i2.AppStorageService","i6.AdminApiService","i1.AbstractMdService","i5.CmsPipe","i2.CmsComponent","i1.CmsComponent","i1.AbstractSupportService","i2.AppsService","i3.AuthenticationService","i6","i7.SettingsDropdownSelectorComponent","i8.AppDropdownSelectorComponent","i9","i10.AsMultiPipe","i10.AsSinglePipe","i11.LeftComponentPipe","i12.RightComponentPipe","i3.AppStorageService","i4.PwaUpdaterService","i5.AppsService","i6.AppLoggerService","i7","i8.AppTemplateComponent","i2.AuthenticationService","i3.ErrorManagementService","i3.KeycloakProfileService","i5.LanguageService","i6.AuthenticationService","tap","map","switchMap","selectLoading","i2.AdminApiService"],"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/store/acl/acl.actions.ts","../../../../projects/rlb/ng-app/src/lib/store/acl/acl.model.ts","../../../../projects/rlb/ng-app/src/lib/services/acl/user-resources.service.ts","../../../../projects/rlb/ng-app/src/lib/services/apps/rlb-init-provider.ts","../../../../projects/rlb/ng-app/src/lib/store/acl/acl.store.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/company.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/pages/settings/settings-dropdown-selector/settings-dropdown-selector.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/settings/settings-dropdown-selector/settings-dropdown-selector.component.html","../../../../projects/rlb/ng-app/src/lib/pages/apps/app-dropdown-selector/app-dropdown-selector.component.ts","../../../../projects/rlb/ng-app/src/lib/pages/apps/app-dropdown-selector/app-dropdown-selector.component.html","../../../../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/auth/directives/role.directive.ts","../../../../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/guards/oauth.guard.ts","../../../../projects/rlb/ng-app/src/lib/auth/guards/permisson.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/store/acl/acl.effects.ts","../../../../projects/rlb/ng-app/src/lib/store/acl/acl.reducer.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\n// export const RLB_CFG = 'rlb.options';\nexport const RLB_CFG = new InjectionToken<ProjectConfiguration>('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`);\nexport const RLB_CFG_ACL = new InjectionToken<AclConfiguration>(`${RLB_CFG}:acl`);\n\nexport interface InterceptorMapping {\n // Key: The name of the Query Parameter to add to the request\n // Value: The property name to look for in Store data object\n [k: string]: string;\n}\n\nexport interface AclConfiguration {\n endpointKey: string; // The key in the 'endpoints'\n path: string; // The path\n interceptorMapping?: InterceptorMapping;\n businessIdKey: string; // The key in the Store data object to match with resourceBusinessId\n resourceIdKey: string; // The key in the Store data object to match with resourceId\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 enableCompanyInterceptor?: boolean;\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 acl?: AclConfiguration;\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, props } from '@ngrx/store';\nimport { NavbarActionsLayout, NavbarHeader } from './navbar.model';\n\nexport const NavbarActionsInternal = createActionGroup({\n source: 'Navbar/Internal',\n events: {},\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: NavbarHeader | 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 SetActionsLayout: props<{ layout: NavbarActionsLayout }>(),\n },\n});\n","export const navbarsFeatureKey = 'navbar';\n\nexport type NavbarHeader =\n | { type: 'text'; text: string }\n | { type: 'image'; src: string; alt?: string; height?: number };\n\nexport type NavbarActionsLayout = 'default' | 'dropdown';\n\nexport interface Navbar {\n visible: boolean;\n header: NavbarHeader | 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 actionsLayout: NavbarActionsLayout;\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 actionsLayout: 'default',\n};\n\nexport interface NavbarState {\n [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 { createActionGroup, emptyProps, props } from '@ngrx/store';\nimport { UserResource } from \"./acl.model\";\n\n\nexport const AclActions = createActionGroup({\n source: 'ACL',\n events: {\n 'Load ACL': emptyProps(),\n 'Load ACL Success': props<{ resources: UserResource[] }>(),\n 'Load ACL Failure': props<{ error: any }>(),\n 'Reset': emptyProps(),\n 'Finalized Apps Success': emptyProps(),\n 'Finalized Apps Failure': emptyProps()\n }\n});\n","export const aclFeatureKey = 'acl';\n\n\nexport interface UserResource {\n resourceBusinessId: string;\n resources: Resource[];\n}\n\nexport interface Resource {\n resourceId: string;\n actions: string[];\n friendlyName?: string;\n}\n\nexport interface Acl {\n resources: UserResource[] | null;\n loading: boolean;\n loaded: boolean;\n error: any;\n}\n\nexport const initialAclState: Acl = {\n resources: null,\n loading: false,\n loaded: false,\n error: null\n};\n\nexport interface AclState { [aclFeatureKey]: Acl }\n","import { Inject, Injectable, Optional } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { AclConfiguration, ProjectConfiguration, RLB_CFG, RLB_CFG_ACL } from '../../configuration';\nimport { UserResource } from '../../store/acl/acl.model'\nimport { Observable, of } from \"rxjs\";\n\n@Injectable({ providedIn: 'root' })\nexport class AdminApiService {\n constructor(\n private httpClient: HttpClient,\n @Optional() @Inject(RLB_CFG) private config: ProjectConfiguration,\n @Optional() @Inject(RLB_CFG_ACL) private aclConfig: AclConfiguration,\n ) { }\n\n public resourcesByUser$(): Observable<UserResource[]> {\n if (!this.aclConfig) {\n console.error(\"ACL configuration is missing. Provide 'acl' in ProjectConfiguration.\");\n return of([])\n }\n\n const endpoint = this.config.endpoints?.[this.aclConfig.endpointKey];\n\n if (!endpoint) {\n throw new Error(`Endpoint '${this.aclConfig.endpointKey}' not found in configuration.`);\n }\n\n const url = `${endpoint.baseUrl}/${this.aclConfig.path}`;\n return this.httpClient.get<UserResource[]>(url).pipe(\n //this.errorManagementService.manageUI('error', 'dialog')\n );\n }\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { Store } from \"@ngrx/store\";\nimport { BaseState, UserResource } from '../../store/'\nimport { AclConfiguration, RLB_CFG } from '../../configuration'\n\nexport const RLB_INIT_PROVIDER = new InjectionToken<RlbInitProvider>(`${RLB_CFG}:init.provider`);\nexport interface RlbInitProvider {\n finalizeApps(resources: UserResource[], store: Store<BaseState>, acl: AclConfiguration | null): Promise<void>;\n}\n","import { inject } from '@angular/core';\nimport { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\nimport { AdminApiService } from \"../../services/acl/user-resources.service\";\nimport { initialAclState } from './acl.model';\nimport { catchError, from, map, of, switchMap, tap } from \"rxjs\";\nimport { RLB_INIT_PROVIDER } from '../../services/apps/rlb-init-provider';\nimport { RLB_CFG_ACL } from '../../configuration';\nimport { Store } from \"@ngrx/store\";\nimport { BaseState } from \"../../store\";\n//import { ErrorManagementService } from \"../../services/errors/error-management.service\";\n\nexport const AclStore = signalStore(\n { providedIn: 'root' },\n withState(initialAclState),\n withMethods((\n store,\n adminApi = inject(AdminApiService),\n baseStore = inject(Store<BaseState>),\n rlbInitProvider = inject(RLB_INIT_PROVIDER, { optional: true }),\n aclConfiguration = inject(RLB_CFG_ACL, { optional: true })\n ) => ({\n\n hasPermission: (busId: string, resId: string, action?: string) => {\n const resources = store.resources();\n if (!resources) return false;\n return resources.some(company =>\n company.resourceBusinessId === busId &&\n company.resources.some(res => {\n const matchRes = res.resourceId === resId;\n return action ? (matchRes && res.actions.includes(action)) : matchRes;\n })\n );\n },\n\n // Load Logic: Replaces both Effects. Get user res + call via bridge finalizeApps\n loadACL() {\n patchState(store, { loading: true, loaded: false });\n return adminApi.resourcesByUser$().pipe(\n tap(resources => patchState(store, { resources, loaded: true, loading: false })),\n switchMap((resources) => {\n if (!rlbInitProvider) {\n console.error(\"RlbInitProvider not found. Define RLB_INIT_PROVIDER\");\n return of(resources)\n }\n\n // Pass resources directly to the finalizer to prevent race condition problem\n return from(rlbInitProvider.finalizeApps(resources, baseStore, aclConfiguration)).pipe(\n map(() => resources),\n catchError((err) => {\n console.error('Finalization failed', err);\n return of(resources);\n })\n );\n })\n );\n },\n reset: () => patchState(store, initialAclState)\n }))\n);\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, Inject, Injectable, Optional } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { filter, map, Observable, switchMap } from 'rxjs';\nimport {\n AclConfiguration,\n AuthConfiguration,\n RLB_CFG_ACL,\n RLB_CFG_AUTH,\n} from '../../configuration';\nimport { AppContextActions, AuthActions, authsFeatureKey, BaseState } from '../../store';\nimport { AclStore } from '../../store/acl/acl.store';\nimport { appContextFeatureKey } from '../../store/app-context/app-context.model';\nimport { AppInfo } 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 route: ActivatedRoute;\n appsConfig: AppInfo<any>[];\n apps: AppInfo<any>[];\n fullPath: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AppsService {\n private logger: LoggerContext;\n private aclStore = inject(AclStore); // Inject SignalStore here\n\n constructor(\n private store: Store<BaseState>,\n private activatedRoute: ActivatedRoute,\n private router: Router,\n private loggerService: AppLoggerService,\n @Inject(RLB_CFG_AUTH) @Optional() readonly confAuth: AuthConfiguration | undefined,\n @Inject(RLB_CFG_ACL) @Optional() private readonly confAcl: AclConfiguration | undefined,\n ) {\n this.logger = this.loggerService.for(this.constructor.name);\n this.logger.log('AppsService initialized');\n\n this.initAuthProviders(store, confAuth);\n this.initRouterListener();\n }\n\n get currentDomain() {\n return window.location.hostname;\n }\n\n get apps() {\n const apps = this.store.selectSignal(state => state[appContextFeatureKey].apps)();\n const resources = this.aclStore.resources();\n const confAcl = this.confAcl;\n\n return apps.filter(app => {\n // Basic domain check\n const isDomainAllowed = !app.domains || app.domains.includes(this.currentDomain);\n if (!isDomainAllowed) return false;\n\n // If acl config doesnt exist return apps filtered by domain\n if (!confAcl) return true;\n\n if (!resources && app.actions?.length) return false; // If app has actions defined, but no resources in store, we assume it's ACL protected and not allowed\n\n if (resources && !app.actions?.length) return true; // If app has no actions defined, we assume it's not ACL protected and allow it\n\n return resources?.some(userResource => {\n // Matching by Business ID\n // IMPORTANT: app.data must have key, name of this key is in confAcl\n const appBusId = app.data?.[confAcl.businessIdKey];\n const matchBusId = userResource.resourceBusinessId === appBusId;\n\n if (!matchBusId) return false;\n\n // Matching by Resource ID\n return userResource.resources.some(res => {\n const appResId = app.data?.[confAcl.resourceIdKey];\n const matchResId = res.resourceId === appResId;\n\n if (!matchResId) return false;\n\n return res.actions.some(action => app.actions?.includes(action));\n });\n });\n });\n }\n\n get currentAppAclInfo() {\n const app = this.currentApp;\n if (!app || !app.data || !this.confAcl) return null;\n\n return {\n busId: app.data[this.confAcl.businessIdKey],\n resId: app.data[this.confAcl.resourceIdKey],\n };\n }\n\n get currentApp() {\n const app = this.store.selectSignal(state => state[appContextFeatureKey].currentApp)();\n this.logger.log('Current app from store:', app);\n return app;\n }\n\n checkPermissionInCurrentApp(action?: string): boolean {\n const info = this.currentAppAclInfo;\n if (!info) return false;\n return this.aclStore.hasPermission(info.busId, info.resId, action);\n }\n\n selectApp(app?: AppInfo, viewMode?: 'app' | 'settings', url?: string) {\n const currentApp = this.currentApp;\n if (!app) {\n this.logger.warn('Deselecting app (null).');\n this.store.dispatch(AppContextActions.setCurrentApp({ app: null }));\n return;\n }\n if (currentApp && currentApp.id === app.id && currentApp.viewMode === viewMode) {\n this.logger.info('App already selected with same id and viewMode. Skipping dispatch.');\n return;\n }\n this.logger.warn('Dispatching setCurrentApp with:', { app, mode: viewMode, url });\n this.store.dispatch(AppContextActions.setCurrentApp({ app, mode: viewMode, url }));\n }\n\n private initAuthProviders(store: Store<BaseState>, confAuth?: AuthConfiguration) {\n const currentProviderInStore = this.store.selectSignal(\n state => state[authsFeatureKey].currentProvider,\n )();\n\n if (currentProviderInStore) {\n this.logger.info(\n `Auth provider already set to '${currentProviderInStore}' by Initializer. AppsService initAuthProviders skipping init.`,\n );\n return;\n }\n\n if (!confAuth?.providers?.length) {\n this.logger.warn('No auth providers configured.');\n return;\n }\n\n if (confAuth?.providers && confAuth.providers.length === 1) {\n this.logger.info('Single auth provider detected:', confAuth.providers[0]);\n store.dispatch(\n AuthActions.setCurrentProvider({ currentProvider: confAuth.providers[0].configId }),\n );\n return;\n }\n\n this.logger.info('Multiple auth providers detected, checking by domain:', this.currentDomain);\n\n const authProvidersMatched = confAuth.providers.filter(provider =>\n provider.domains?.includes(this.currentDomain),\n );\n\n if (authProvidersMatched && authProvidersMatched.length === 1) {\n this.logger.info('Auth provider matched by domain:', authProvidersMatched[0]);\n store.dispatch(\n AuthActions.setCurrentProvider({ currentProvider: authProvidersMatched[0].configId }),\n );\n } else if (authProvidersMatched && authProvidersMatched.length > 1) {\n this.logger.warn(\n `Multiple auth providers found for the current domain: ${this.currentDomain}. Please specify a single provider in the configuration.`,\n );\n } else {\n this.logger.warn(`No auth provider found for the current domain: ${this.currentDomain}.`);\n }\n }\n\n private initRouterListener() {\n this.router.events\n .pipe(\n filter(event => event instanceof NavigationEnd),\n switchMap(() => this.resolveRouteAndApps()),\n takeUntilDestroyed(),\n )\n .subscribe(data => this.handleResolvedApps(data));\n }\n\n // Core logic\n\n private resolveRouteAndApps(): Observable<AppConfig | null> {\n const route = this.findDeepestChild(this.activatedRoute);\n\n // 1. Get abstract route template (LIKE \".../:id\")\n const configPath = this.getConfigPath(route);\n\n // 2. Get REAL url path (LIKE \".../abc-123\")\n const actualPath = this.getActualPath(route);\n\n this.logger.info(`Resolving. ConfigPath: '${configPath}', ActualPath: '${actualPath}'`);\n\n const appRoutes: AppInfo[] | undefined = this.apps?.map(app => ({\n type: app.type,\n routes: app.routes || [],\n viewMode: app.viewMode,\n enabled: app.enabled,\n core: app.core,\n }));\n\n let appRoutesMatched: AppInfo[] = [];\n\n if (configPath && !this.isDefaultRoute(configPath)) {\n appRoutesMatched =\n appRoutes?.filter(app => app.routes?.some(r => r.includes(configPath))) ?? [];\n }\n\n this.logger.info('Matched appRoute:', appRoutesMatched);\n\n return this.store\n .select(state => state[appContextFeatureKey].apps)\n .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 map(apps => {\n if (appRoutesMatched.length > 0 || actualPath === '') {\n return {\n route,\n appsConfig: appRoutesMatched,\n apps,\n fullPath: actualPath,\n } as AppConfig;\n }\n return null;\n }),\n );\n }\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.getActualPath(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(\n app => !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 // CASE 1: SINGLE APP REDIRECT\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(\n `[AutoRedirect] Single app detected at root. Redirecting to: ${targetUrl}`,\n );\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(\n `Root detected with multiple apps (${domainApps.length}). Showing App Hub / Core home page.`,\n );\n const redirectApps = domainApps.filter(app => app.autoRedirectOnRootEnabled);\n\n if (redirectApps?.length > 1) {\n this.logger.warn(\n 'Multiple apps have autoRedirectOnRootEnabled: true. Picking the first one.',\n redirectApps,\n );\n }\n\n if (redirectApps.length) {\n const targetUrl = redirectApps[0].core?.url;\n this.logger.info(\n `[AutoRedirect] Detected app with root redirect. Redirecting to: ${targetUrl}`,\n );\n this.router.navigate([targetUrl], {\n queryParams: route.snapshot.queryParams,\n replaceUrl: true,\n });\n return;\n }\n\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 const configPath = this.getConfigPath(route);\n const matchedApps = domainApps.filter(app => {\n if (!configPath || configPath === '') {\n return false;\n }\n\n const hasRouteMatch = app.routes?.some(r => r.includes(configPath) || configPath.includes(r));\n\n const hasCoreMatch =\n app.core?.url === '/' + configPath || app.core?.url?.includes(configPath);\n\n return hasRouteMatch || hasCoreMatch;\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 private findDeepestChild(route: ActivatedRoute): ActivatedRoute {\n while (route.firstChild) route = route.firstChild;\n this.logger.info('Activated deepest child route:', route);\n return route;\n }\n\n private getStoredAppId(): string | null {\n try {\n return localStorage.getItem('c-app-id');\n } catch (e) {\n this.logger.warn('LocalStorage not available:', e);\n return null;\n }\n }\n\n private isSettingsRoute(route: ActivatedRoute): boolean {\n return route.routeConfig?.path?.includes('settings') ?? false;\n }\n\n private isDefaultRoute(route: string): boolean {\n return DEFAULT_ROUTES_CONFIG.some(r => r.path.includes(route));\n }\n\n private getConfigPath(route: ActivatedRoute): string {\n const segments: string[] = [];\n let current: ActivatedRoute | null = route.root;\n\n while (current) {\n const path = current.routeConfig?.path;\n if (path && path !== '') segments.push(path);\n current = current.firstChild ?? null;\n }\n\n return segments.join('/');\n }\n\n private getActualPath(route: ActivatedRoute): string {\n const segments: string[] = [];\n let current: ActivatedRoute | null = route.root;\n\n while (current) {\n // map(s => s.path) extract params\n const path = current.snapshot.url.map(s => s.path).join('/');\n if (path && path !== '') segments.push(path);\n current = current.firstChild ?? null;\n }\n return segments.join('/');\n }\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 case 'de': return 'Deutsch'\n default: return ''\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { ActivatedRoute, NavigationEnd, Router } from \"@angular/router\";\nimport { BreadcrumbItem, UniqueIdService } 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 private idService: UniqueIdService\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 id: `breadcrumb${this.idService.id}`\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, 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 { EMPTY, lastValueFrom, map, Observable, switchMap, tap } from 'rxjs';\nimport {\n AuthConfiguration,\n EnvironmentConfiguration,\n IConfiguration,\n RLB_CFG,\n RLB_CFG_AUTH,\n RLB_CFG_ENV,\n} from '../../configuration';\nimport { AppLoggerService, AppStorageService, CookiesService, LoggerContext } from '../../services';\nimport { AuthActions, authsFeatureKey, BaseState } from '../../store';\nimport { ParseJwtService } from './parse-jwt.service';\nimport { AdminApiService } from '../../services/acl/user-resources.service';\nimport { AclStore } from '../../store/acl/acl.store';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthenticationService {\n modal!: Window | null;\n private logger: LoggerContext;\n private readonly aclStore = inject(AclStore);\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 private readonly adminApi: AdminApiService,\n @Optional() @Inject(RLB_CFG_ENV) private envConfig: EnvironmentConfiguration,\n @Optional() @Inject(RLB_CFG_AUTH) private authConfig: AuthConfiguration,\n @Optional() @Inject(RLB_CFG) private appconfig: IConfiguration,\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(\n state => state[authsFeatureKey].currentProvider,\n )();\n return this.authConfig?.providers.find(provider => provider.configId === currentProvider);\n }\n\n public checkAuthMultiple(url?: string | undefined): Observable<LoginResponse[]> {\n return this.oidc.checkAuthMultiple(url).pipe(\n switchMap((responses: LoginResponse[]) => {\n const authenticatedConfig = responses.find(o => o.isAuthenticated);\n\n if (authenticatedConfig && authenticatedConfig.configId) {\n this.store.dispatch(\n AuthActions.setCurrentProvider({\n currentProvider: authenticatedConfig.configId,\n }),\n );\n } else {\n // wrap login with this to bypass login flow\n // if (!isDevMode()) {\n //\n // }\n this.login();\n return EMPTY;\n }\n\n // SignalStore methods can trigger the API call\n return this.aclStore.loadACL().pipe(\n tap(() => this.handleRedirect()),\n map(() => responses),\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 (\n typeof process !== 'undefined' &&\n typeof process?.version !== 'undefined' &&\n typeof process?.versions['electron'] !== undefined\n ) {\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(\n map(userData => {\n const user = userData.allUserData.find(o => o.configId === this.currentProvider?.configId);\n return user ? user.userData : null;\n }),\n );\n }\n\n public get isAuthenticated$(): Observable<boolean> {\n return this.oidc.isAuthenticated$.pipe(\n map(isAuthenticated => {\n // this.logger.log(`oidc isAuthenticated$ check, response: ${JSON.stringify(isAuthenticated)}; looking for isAuthenticated of ${this.currentProvider?.configId} configId`);\n return (\n isAuthenticated.allConfigsAuthenticated.find(\n o => o.configId === this.currentProvider?.configId,\n )?.isAuthenticated || false\n );\n }),\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 private handleRedirect() {\n const redirect = this.localStorage.readLocal('loginRedirectUrl');\n if (redirect) {\n this.localStorage.removeLocal('loginRedirectUrl');\n setTimeout(() => {\n this.router.navigateByUrl(redirect, { replaceUrl: true });\n }, 0);\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 { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { appContextFeatureKey, } from '../store/app-context/app-context.model';\nimport { ProjectConfiguration, RLB_CFG } from '../configuration';\n\n@Injectable()\nexport class CompanyInterceptor implements HttpInterceptor {\n private store = inject(Store);\n private config = inject(RLB_CFG) as ProjectConfiguration;\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const authConfig = this.config.auth;\n const isAllowed = authConfig?.allowedUrls?.some(url => req.url.includes(url));\n if (!isAllowed || !authConfig?.enableCompanyInterceptor) {\n return next.handle(req);\n }\n const currentApp = this.store.selectSignal(state => state[appContextFeatureKey].currentApp)();\n const data = currentApp?.data as { [key: string]: string } | undefined;\n const mapping = this.config.acl?.interceptorMapping || {};\n let params = req.params;\n for (const key of Object.keys(mapping)) {\n const storeKey = mapping[key];\n const value = data?.[storeKey];\n if (!!value) {\n params = params.set(storeKey, value);\n }\n };\n const clonedReq = req.clone({ params });\n return next.handle(clonedReq);\n }\n}\n","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { EnvironmentProviders, makeEnvironmentProviders, Provider } from \"@angular/core\";\nimport {\n AbstractLoggerService,\n AbstractSecurityStorage,\n AuthInterceptor,\n AuthModule,\n provideAuth\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\";\nimport { CompanyInterceptor } from \"./company.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.enableCompanyInterceptor) {\n providers.push({ provide: HTTP_INTERCEPTORS, useClass: CompanyInterceptor, 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 @if (page) {\n <div class=\"container\">\n @if (breadcrumb) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <rlb-breadcrumb [items]=\"breadcrumb\"></rlb-breadcrumb>\n </div>\n </div>\n }\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <h1 class=\"text-center\">{{page.Title}}</h1>\n </div>\n </div>\n @if (page.Content) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <div [innerHTML]=\"page.Content \"></div>\n </div>\n </div>\n }\n @if (page.page_tabs.length>0) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <rlb-tabs>\n @for (tab of page.page_tabs; track tab.id; let i = $index) {\n <rlb-tab [target]=\"'cms-tab-'+i\">\n {{tab.Title}}\n </rlb-tab>\n }\n </rlb-tabs>\n <rlb-tab-content>\n @for (tab of page.page_tabs; track tab.id; let i = $index) {\n <rlb-tab-pane [id]=\"'cms-tab-'+i\">\n <div class=\"container-fluid\">\n @if (tab.Content) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <div [innerHTML]=\"tab.Content \"></div>\n </div>\n </div>\n }\n @for (step of tab.steps; track step.ContentId; let i = $index) {\n <div class=\"row my-4 mx-auto card-steps\"\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 }\n @if (tab.faqs.length>0) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <h2 class=\"py-3\">{{tab.FaqTitle}}</h2>\n </div>\n </div>\n }\n @if (tab.faqs.length>0 && tab.FaqContent) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <div [innerHTML]=\"tab.FaqContent \"></div>\n </div>\n </div>\n }\n @if (tab.faqs.length>0) {\n <div class=\"row my-4\">\n <div class=\"col-12\">\n <rlb-accordion>\n @for (faq of tab.faqs; track faq) {\n <div rlb-accordion-item [expanded]=\"true\">\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 }\n </rlb-accordion>\n </div>\n </div>\n }\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 @if (page.topics.length>0) {\n <div class=\"row my-4\" style=\"padding: 4px\">\n @for (topic of page.topics; track topic.ContentId) {\n <div class=\"col-lg-6 col-md-12 col-sm-12 col-xs-12\">\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 }\n </div>\n }\n </div>\n </rlb-tab-pane>\n }\n </rlb-tab-content>\n </div>\n </div>\n }\n </div>\n }\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';\n\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 { Component, inject, input, OnDestroy, output, viewChild } from '@angular/core';\nimport {\n NavbarDropdownItemComponent,\n ToastService,\n VisibilityEventBase,\n} from '@open-rlb/ng-bootstrap';\nimport { Router } from '@angular/router';\nimport { AppInfo, LanguageService } from '../../../services';\nimport { PagesConfiguration, RLB_CFG_PAGES } from '../../../configuration';\nimport { AppContextActions, appContextFeatureKey, BaseState } from '../../../store';\nimport { Store } from '@ngrx/store';\n\n@Component({\n selector: 'rlb-settings-dropdown-selector',\n standalone: false,\n templateUrl: './settings-dropdown-selector.component.html',\n styleUrl: './settings-dropdown-selector.component.scss',\n})\nexport class SettingsDropdownSelectorComponent implements OnDestroy {\n apps = input.required<AppInfo[]>();\n navbarHasSettings = input.required();\n navbarHasLogin = input.required();\n isAuth = input.required();\n appSelected = output<AppInfo>();\n activeSlide: number = 0;\n\n // deps\n private readonly pageOptions: PagesConfiguration | null = inject(RLB_CFG_PAGES, {\n optional: true,\n });\n private readonly store: Store<BaseState> = inject(Store);\n private readonly languageService: LanguageService = inject(LanguageService);\n private readonly toastService: ToastService = inject(ToastService);\n private readonly router: Router = inject(Router);\n private readonly menu = viewChild.required<NavbarDropdownItemComponent>('menu');\n\n constructor() {\n this.router.events.subscribe(() => this.close());\n }\n\n get pages() {\n return this.pageOptions;\n }\n\n selectApp(app: any): void {\n this.appSelected.emit(app);\n }\n\n goToFirst() {\n this.activeSlide = 0;\n }\n\n goToInlineSettings() {\n this.activeSlide = 1;\n }\n\n ngOnDestroy() {}\n\n change(event: VisibilityEventBase) {\n if (event === 'hidden') {\n this.goToFirst();\n }\n }\n\n get languages() {\n return this.store\n .selectSignal(o => o[appContextFeatureKey].supportedLanguages)()\n .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('common.savedSuccessfully'),\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('common.savedSuccessfully'),\n type: 'success',\n ok: this.languageService.translate('ok'),\n });\n }\n\n private close() {\n this.menu().close();\n }\n}\n","<rlb-navbar-dropdown-item #menu dropdown auto-close=\"outside\" (status-changed)=\"change($event)\">\n <!-- Dropdown Toggle Icon -->\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.settings.title') | translate\">\n <i class=\"bi bi-gear fs-5\"></i>\n </span>\n <span class=\"ms-1 d-lg-none\">{{ 'core.settings.title' | translate }}</span>\n\n <!-- Dropdown Container -->\n <rlb-dropdown-container placement=\"right\">\n\n <rlb-carousel\n [hide-indicators]=\"true\"\n [hide-controls]=\"true\"\n autoplay=\"none\"\n [no-touch]=\"true\"\n [(current-slide)]=\"activeSlide\"\n style=\"width: 320px; display: block;\">\n\n <rlb-carousel-slide [active]=\"true\">\n <div class=\"p-3\">\n <h6 class=\"dropdown-header px-0 text-center mb-2 fw-bold text-dark\">\n {{ 'core.settings.title' | translate }}\n </h6>\n\n <div class=\"row row-cols-3 g-2\">\n\n <!-- General Settings -->\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n (click)=\"goToInlineSettings()\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-sliders fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">{{ 'core.settings.generalTitle' | translate }}</span>\n </button>\n </div>\n\n <!-- Dynamic App Settings -->\n @for (app of apps(); track app.id) {\n @if (app.settings) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n [disabled]=\"!app.enabled && (app.settings.auth && !(isAuth()))\"\n (click)=\"selectApp(app)\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i [ngClass]=\"['bi', 'fs-4', 'mb-1', app.settings.icon || 'bi-gear']\"></i>\n <span class=\"small text-truncate w-100\" [title]=\"(app.settings.title | translate) || app.data?.appName\">\n {{ (app.settings.title | translate) || app.data?.appName }}\n </span>\n </button>\n </div>\n }\n }\n\n <!-- System / Status -->\n @if (pages?.['status']?.path) {\n <div class=\"col\">\n <button rlb-button outline color=\"primary\" routerLink=\"/status\" class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-check2-circle fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">{{ 'core.settings.status' | translate }}</span>\n </button>\n </div>\n }\n\n <!-- Logger -->\n @if (pages?.['logger']?.path) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n routerLink=\"/logger\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-file-text fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">\n {{ 'core.settings.logger' | translate }}\n </span>\n </button>\n </div>\n }\n\n <!-- Privacy -->\n @if (pages?.['privacy']?.path) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n routerLink=\"/privacy\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-shield-check fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">\n {{ 'core.settings.privacy' | translate }}\n </span>\n </button>\n </div>\n }\n\n <!-- Cookies -->\n @if (pages?.['cookies']?.path) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n routerLink=\"/cookies\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-cookie fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">\n {{ 'core.settings.cookies' | translate }}\n </span>\n </button>\n </div>\n }\n\n <!-- Terms -->\n @if (pages?.['terms']?.path) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n routerLink=\"/terms\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-vector-pen fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">\n {{ 'core.settings.legal' | translate }}\n </span>\n </button>\n </div>\n }\n\n <!-- Support -->\n @if (pages?.['support']?.path) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n color=\"primary\"\n routerLink=\"/support\"\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-decoration-none\">\n <i class=\"bi bi-chat-quote fs-4 mb-1\"></i>\n <span class=\"small text-truncate w-100\">\n {{ 'core.settings.support' | translate }}\n </span>\n </button>\n </div>\n }\n\n </div>\n </div>\n </rlb-carousel-slide>\n\n <rlb-carousel-slide>\n <div class=\"p-3\">\n\n <div class=\"d-flex align-items-center mb-3\">\n <button class=\"btn btn-sm btn-link text-dark p-0 me-2 border-0 text-decoration-none\" (click)=\"goToFirst()\">\n <i class=\"bi bi-arrow-left fs-5\"></i>\n </button>\n <h6 class=\"mb-0 fw-bold\">{{ 'core.settings.generalTitle' | translate }}</h6>\n </div>\n\n <!-- Inline Settings Content without routing -->\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 @for (l of languages; track l.value) {\n <rlb-option [value]=\"l.value\">{{l.label}}</rlb-option>\n }\n </rlb-select>\n </div>\n </div>\n </rlb-list-item>\n </rlb-list>\n\n </div>\n </rlb-carousel-slide>\n\n </rlb-carousel>\n\n </rlb-dropdown-container>\n</rlb-navbar-dropdown-item>\n","import { Component, input, output } from '@angular/core';\nimport { AppInfo } from '../../../services';\n\n@Component({\n selector: 'rlb-app-dropdown-selector',\n standalone: false,\n templateUrl: './app-dropdown-selector.component.html',\n styleUrls: ['./app-dropdown-selector.component.scss'],\n})\nexport class AppDropdownSelectorComponent {\n apps = input.required<AppInfo[]>();\n isAuth = input.required<boolean | null>();\n\n appSelected = output<AppInfo>();\n\n selectApp(app: any): void {\n this.appSelected.emit(app);\n }\n}\n","<rlb-navbar-dropdown-item dropdown>\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.apps.button') | translate\">\n <i class=\"bi bi-grid-3x3-gap-fill fs-5\"></i>\n </span>\n <span class=\"ms-1 d-lg-none\">{{ 'core.apps.button' | translate }}</span>\n <rlb-dropdown-container placement=\"right\">\n <div class=\"row row-cols-3 g-2 p-3\" style=\"width: 320px;\">\n @for (app of apps(); track app.id) {\n <div class=\"col\">\n <button\n rlb-button\n outline\n class=\"w-100 h-100 d-flex flex-column align-items-center justify-content-center p-2 text-center\"\n [disabled]=\"!app.enabled && (app.core?.auth && !(isAuth()))\"\n (click)=\"selectApp(app)\">\n\n <i [ngClass]=\"['bi', 'fs-3', 'mb-1', app.core?.icon || 'bi-app']\"></i>\n <span class=\"small text-truncate w-100\" [title]=\"app.data?.appName\">\n {{ app.data?.appName }}\n </span>\n </button>\n </div>\n }\n </div>\n </rlb-dropdown-container>\n</rlb-navbar-dropdown-item>\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 { AppInfo, AppsService } from '../../services';\nimport {\n appContextFeatureKey,\n AuthActions,\n BaseState,\n NavbarActions,\n SidebarActions,\n} 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 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].settingsVisible);\n }\n\n get navbarHasApps$() {\n return this.store.select(state => state[navbarsFeatureKey].appsVisible);\n }\n\n get navbarLayout$() {\n return this.store.select(state => state[navbarsFeatureKey].actionsLayout);\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 selectApp(app: AppInfo) {\n this.appsService.selectApp(app, 'app');\n }\n}\n","<div class=\"rlb-app\">\n @if (navVisible$ | async) {\n <rlb-navbar [dark]=\"theme === 'dark'\" [showSideBarToggler]=\"(sidebarVisible$ | async)\" expand=\"lg\" class=\"border-bottom py-1 rlb-navbar\">\n @if (navHeader$ | async; as header) {\n <a rlb-navbar-brand href=\"#\">\n\n @if (header.type === 'text') {\n {{ header.text }}\n }\n\n @if (header.type === 'image') {\n <img\n [src]=\"header.src\"\n [alt]=\"header.alt ?? 'Brand'\"\n [height]=\"header.height ?? 40\"\n />\n }\n </a>\n }\n @if (navSearchVisible$ | async) {\n <rlb-navbar-form>\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 }\n @for (navComponent of navLeftItems$ | async; track navComponent) {\n <rlb-navbar-items class=\"me-auto align-items-center\">\n <ng-container ngProjectAs=\"rlb-navbar-item\">\n <ng-container *ngComponentOutlet=\"navComponent | leftComponent\"></ng-container>\n </ng-container>\n </rlb-navbar-items>\n }\n <rlb-navbar-items class=\"align-items-center\">\n @for (navComponent of navRightItems$ | async; track navComponent) {\n <ng-container ngProjectAs=\"rlb-navbar-item\">\n <ng-container *ngComponentOutlet=\"navComponent | rightComponent\"></ng-container>\n </ng-container>\n }\n @if ((separatorVisible$ | async)) {\n <rlb-navbar-separator />\n }\n\n <ng-container ngProjectAs=\"rlb-navbar-item\">\n @if ((navbarLayout$ | async) == 'default') {\n @if ((navbarHasLogin$ | async) && !(isAuth$ | async)) {\n <rlb-navbar-item (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 <span class=\"ms-1 d-lg-none\">{{'core.account.login' | translate}}</span>\n </rlb-navbar-item>\n }\n\n @if ( (navbarHasLogin$ | async) && (isAuth$ | async)) {\n <rlb-navbar-item [router-link]=\"'/profile'\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.account.title') |translate\">\n <i class=\"bi bi-person\"></i>\n </span>\n <span class=\"ms-1 d-lg-none\">{{'core.account.title' | translate}}</span>\n </rlb-navbar-item>\n }\n\n @if (navbarHasSettings$ | async) {\n <rlb-navbar-item [router-link]=\"'/setting'\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.settings.title') |translate\">\n <i class=\"bi bi-gear\"></i>\n </span>\n <span class=\"ms-1 d-lg-none\">{{'core.settings.title' | translate}}</span>\n </rlb-navbar-item>\n }\n\n @if ((navbarHasApps$ | async) && apps.length > 1) {\n <rlb-navbar-item [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 <span class=\"ms-1 d-lg-none\">{{'core.apps.button' | translate}}</span>\n </rlb-navbar-item>\n }\n\n } @else if ((navbarLayout$ | async) == 'dropdown') {\n <!-- MODERN DROPDOWN MODE -->\n\n <!--Unauthenticated Login -->\n @if ((navbarHasLogin$ | async) && !(isAuth$ | async)) {\n <rlb-navbar-item (click)=\"loginNav($event)\">\n <span tooltip-placement=\"bottom\" [tooltip]=\"('core.account.login') | translate\">\n <i class=\"bi bi-box-arrow-in-left fs-5\"></i>\n </span>\n <span class=\"ms-1 d-lg-none\">{{ 'core.account.login' | translate }}</span>\n </rlb-navbar-item>\n }\n\n <!-- Profile & Settings Account Card -->\n @if (((navbarHasLogin$ | async) && (isAuth$ | async)) || (navbarHasSettings$ | async)) {\n <rlb-settings-dropdown-selector\n [apps]=\"apps\"\n [isAuth]=\"isAuth$ | async\"\n [navbarHasLogin]=\"navbarHasLogin$ | async\"\n [navbarHasSettings]=\"navbarHasSettings$ | async\"\n (appSelected)=\"selectApp($event)\"\n />\n }\n\n <!-- Apps Launcher -->\n @if ((navbarHasApps$ | async) && apps.length > 1) {\n <rlb-app-dropdown-selector\n [apps]=\"apps\"\n [isAuth]=\"isAuth$ | async\"\n (appSelected)=\"selectApp($event)\"\n />\n }\n }\n </ng-container>\n </rlb-navbar-items>\n </rlb-navbar>\n }\n <div class=\"rlb-main-wrapper\">\n @if ((sidebarVisible$ | async)) {\n <rlb-sidebar [dark]=\"theme === 'dark'\" id=\"sidebar\" class=\"rlb-sidebar\">\n @for (item of (sidebarItems$ | async); track item) {\n <rlb-sidebar-item\n [icon]=\"item.icon\" [link]=\"item.url\"\n [title]=\"item.title\" [label]=\"item.label\"\n [badgeCounter]=\"item.badgeCounter\"\n (click)=\"onSideBarItemClick(item)\"\n >\n {{item.label}}\n @for (subitem of item.items || []; track subitem) {\n <rlb-sidebar-item\n [icon]=\"subitem.icon\"\n [link]=\"subitem.url\"\n [title]=\"subitem.title\"\n [label]=\"subitem.label\"\n [badgeCounter]=\"subitem.badgeCounter\"\n (click)=\"onSideBarItemClick(subitem)\"\n >\n {{subitem.label}}\n </rlb-sidebar-item>\n }\n </rlb-sidebar-item>\n }\n </rlb-sidebar>\n }\n <div class=\"rlb-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n@if (modalContainerId) {\n <rlb-modal-container [id]=\"modalContainerId\" />\n}\n\n@if (toastContainerIds) {\n @if (toastContainerIds.constructor.name === 'Array') {\n @for (toastContainerId of toastContainerIds | asMulti; track toastContainerId) {\n <rlb-toast-container [id]=\"toastContainerId\" />\n }\n } @else {\n <rlb-toast-container class=\"position-fixed bottom-0 end-0 p-3\" [id]=\"toastContainerIds | asSingle\" />\n }\n}\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 @if (!(isHandset$ | async)) {\n <div class=\"container-fluid\">\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 @if (breadcrumb) {\n <rlb-breadcrumb [items]=\"breadcrumb\"></rlb-breadcrumb>\n }\n <h1 class=\"pt-5 pb-0 text-center\">\n {{title}}\n </h1>\n </div>\n </div>\n @if (subtitle) {\n <div class=\"row\">\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 }\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n </div>\n </div>\n </div>\n } @else {\n <!--old ng-template #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 @if (subtitle) {\n <div class=\"row\">\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 }\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"mobile\"></ng-container>\n }\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>\n","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 @if (!(isHandset$ | async)) {\n <div class=\"container-fluid\">\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 } @else {\n <ng-container [ngTemplateOutlet]=\"all\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"mobile\"></ng-container>\n }\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, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\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","@if ((template$ | async) === 'app') {\n <rlb-app-template>\n <router-outlet />\n </rlb-app-template>\n}\n@if ((template$ | async) === 'basic') {\n <router-outlet />\n}\n\n\n@if (modalContainerId) {\n <rlb-modal-container [id]=\"modalContainerId\" />\n}\n\n@if (toastContainerIds) {\n @if (toastContainerIds.constructor.name === 'Array') {\n @for (toastContainerId of toastContainerIds | asMulti; track toastContainerId) {\n <rlb-toast-container [id]=\"toastContainerId\" />\n }\n } @else {\n <rlb-toast-container class=\"position-fixed bottom-0 end-0 p-3\" [id]=\"toastContainerIds | asSingle\" />\n }\n}","import { Directive, effect, inject, input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { AppsService } from \"../../services\";\n\n@Directive({\n selector: '[roles]',\n standalone: false\n})\nexport class RlbRole {\n private appsService = inject(AppsService);\n private templateRef = inject(TemplateRef<any>);\n private viewContainer = inject(ViewContainerRef);\n\n action = input<string | undefined>(undefined, { alias: 'roles' });\n\n constructor() {\n // Effect automatically re-runs if store.resources or inputs change\n effect(() => {\n const action = this.action() || '';\n const hasPerm = this.appsService.checkPermissionInCurrentApp(action);\n\n this.viewContainer.clear();\n if (hasPerm) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n });\n }\n}\n","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';\nimport { RlbRole } from './auth/directives/role.directive';\nimport { SettingsDropdownSelectorComponent } from './pages/settings/settings-dropdown-selector/settings-dropdown-selector.component';\nimport { AppDropdownSelectorComponent } from './pages/apps/app-dropdown-selector/app-dropdown-selector.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 SettingsDropdownSelectorComponent,\n AppDropdownSelectorComponent,\n // directives\n RlbRole,\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 // directives\n RlbRole,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n RlbBootstrapModule,\n RouterModule,\n ],\n})\nexport class RlbAppModule {}\n","import { Component, input, model, 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],\n template: `\n <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\n type=\"button\"\n class=\"btn btn-primary\"\n data-modal-reason=\"close\"\n >\n {{ data().ok }}\n </button>\n </div>\n `,\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 = input.required<ModalData<any>>();\n valid = model(true);\n\n onEnter() {}\n\n ngOnInit(): void {\n console.log(this.data());\n }\n}\n","import { Component, input, model } 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\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 <ul class=\"row row-cols-4 list-unstyled list\">\n @for (app of data().content; track app) {\n <li\n class=\"col my-2\"\n [tooltip]=\"app.description | translate\"\n >\n <a\n class=\"d-block text-body-emphasis text-decoration-none\"\n (click)=\"appSelected(app)\"\n [class.disabled]=\"!app.enabled\"\n data-modal-reason=\"ok\"\n >\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\">\n {{ app.name | translate }}\n </div>\n </a>\n </li>\n }\n </ul>\n </div>\n `,\n hostDirectives: [{ directive: ModalDirective, inputs: ['id', 'data-instance', 'data-options'] }],\n})\nexport class ModalAppsComponent implements IModal<AppInfo[], AppInfo> {\n data = input.required<ModalData<any>>();\n valid = model(true);\n result?: any;\n apps: AppInfo[] = [];\n\n appSelected(app: AppInfo) {\n this.result = app;\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 @for (app of apps; track app.id) {\n <ng-container ngProjectAs=\"rlb-list-item-image\">\n @if (app.core) {\n <ng-container ngProjectAs=\"rlb-list-item-image\">\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 }\n </ng-container>\n }\n </rlb-list>\n</div>\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 { CanActivateFn, Router } from \"@angular/router\";\nimport { inject } from \"@angular/core\";\nimport { filter, map, take } from \"rxjs\";\nimport { AclStore } from \"../../store/acl/acl.store\";\nimport { toObservable } from \"@angular/core/rxjs-interop\";\nimport { AppsService } from \"../../services\";\n\nexport const permissionGuard: CanActivateFn = (route) => {\n const aclStore = inject(AclStore);\n const appsService = inject(AppsService);\n const router = inject(Router);\n\n // We wait for aclStore to load data\n return toObservable(aclStore.loaded).pipe(\n filter(Boolean),\n take(1),\n map(() => {\n const action = route.data['action'];\n if (appsService.checkPermissionInCurrentApp(action)) {\n return true;\n }\n return router.createUrlTree(['/notFound']);\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 @if (keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.username\" disabled />\n }\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 @if (keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.email\" />\n }\n @if (!keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" readonly />\n }\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 @if (keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.firstName\" />\n }\n @if (!keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" readonly />\n }\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 @if (keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" [(ngModel)]=\"keyCloakUser.lastName\" />\n }\n @if (!keyCloakUser) {\n <rlb-input size=\"small\" type=\"text\" readonly />\n }\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 @if (keyCloakUser) {\n <div class=\"container text-center position-relative mt-5 mb-2\">\n <h3>{{ 'core.account.credentials.title' | translate}}</h3>\n </div>\n @for (type of keycloakCredentials; track type) {\n <div class=\"container position-relative my-3\">\n <h6>{{ ('core.account.credentials.'+type?.type) | translate }}</h6>\n @if (type.type === 'otp') {\n <button 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 }\n </div>\n <rlb-list class=\"settings mb-5\">\n @for (cred of type.userCredentialMetadatas; track cred.credential.id) {\n <rlb-list-item class=\"settings-item\">\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 @if (type.removeable) {\n <button 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 }\n @if (!type.removeable) {\n <button 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 }\n </dd>\n </div>\n </dl>\n </div>\n </div>\n </rlb-list-item>\n }\n @if (type.userCredentialMetadatas.length === 0) {\n <rlb-list-item>\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 }\n </rlb-list>\n }\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 @for (d of keyCloakDevices; track d.id) {\n <rlb-list-item class=\"settings-item\">\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 @if (d.current) {\n <span class=\"badge bg-success ms-3\">\n <span class=\"badge-content\">\n {{ 'core.account.session.current' | translate}}\n </span>\n </span>\n }\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 }\n </rlb-list>\n}\n</div>\n","import { 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],\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 @for (l of languages; track l.value) {\n <rlb-option [value]=\"l.value\">{{l.label}}</rlb-option>\n }\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 | undefined) { }\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 @for (app of apps; track app.id) {\n <ng-container ngProjectAs=\"rlb-list-item-image\">\n @if (app.settings) {\n <ng-container ngProjectAs=\"rlb-list-item-image\">\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 }\n </ng-container>\n }\n </rlb-list>\n\n @if (pages?.['status']?.path || pages?.['logger']?.path) {\n <rlb-list class=\"mt-5\">\n @if (pages?.['status']?.path) {\n <rlb-list-item-image icon=\"bi bi-check2-circle\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.status' | translate\" [routerLink]=\"'/status'\">\n </rlb-list-item-image>\n }\n @if (pages?.['logger']?.path) {\n <rlb-list-item-image icon=\"bi bi-file-text\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.logger' | translate\" [routerLink]=\"'/logger'\">\n </rlb-list-item-image>\n }\n </rlb-list>\n }\n\n @if (pages?.['privacy']?.path || pages?.['cookies']?.path || pages?.['terms']?.path || pages?.['support']?.path) {\n <rlb-list class=\"mt-4\"\n >\n @if (pages?.['privacy']?.path) {\n <rlb-list-item-image icon=\"bi bi-shield-check\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.privacy' | translate\" [routerLink]=\"'/privacy'\">\n </rlb-list-item-image>\n }\n @if (pages?.['cookies']?.path) {\n <rlb-list-item-image icon=\"bi bi bi-cookie\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.cookies' | translate\" [routerLink]=\"'/cookies'\">\n </rlb-list-item-image>\n }\n @if (pages?.['terms']?.path) {\n <rlb-list-item-image icon=\"bi bi-vector-pen\" [avatar-size]=\"18\"\n [line-1]=\"'core.settings.legal' | translate\" [routerLink]=\"'/terms'\">\n </rlb-list-item-image>\n }\n @if (pages?.['support']?.path) {\n <rlb-list-item-image icon=\"bi bi-chat-quote\" [avatar-size]=\"18\"\n [line-1]=\" 'core.settings.support' | translate\" [routerLink]=\"'/support'\">\n </rlb-list-item-image>\n }\n </rlb-list>\n }\n</div>\n","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 }) => ({\n ...state,\n searchVisible: visible,\n })),\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 }) => ({\n ...state,\n loginVisible: visible,\n })),\n on(NavbarActions.setSettingsVisible, (state, { visible }) => ({\n ...state,\n settingsVisible: visible,\n })),\n on(NavbarActions.setAppsVisible, (state, { visible }) => ({ ...state, appsVisible: visible })),\n on(NavbarActions.setSeparatorVisible, (state, { visible }) => ({\n ...state,\n separatorVisible: visible,\n })),\n on(NavbarActions.setActionsLayout, (state, { layout }) => ({\n ...state,\n actionsLayout: layout,\n })),\n ),\n});\n\nexport const navbarReducer = navbarsFeature.reducer;\n\nexport const { selectNavbarState } = 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 { Component, input } from '@angular/core';\nimport { RlbAppModule } from '../rlb-app.module';\nimport { IToast, ToastData, ToastDirective } from '@open-rlb/ng-bootstrap';\n\n@Component({\n imports: [RlbAppModule],\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\n width=\"100%\"\n height=\"100%\"\n fill=\"#007aff\"\n ></rect>\n </svg>\n {{ data().title }}\n </strong>\n @if (data().subtitle) {\n <small>{{ data().subtitle }}</small>\n }\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 = input.required<ToastData<any>>();\n valid?: boolean = true;\n result?: any;\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { map, switchMap } from 'rxjs/operators';\nimport { AuthActions } from \"../auth/auth.actions\";\nimport { AclActions } from \"./acl.actions\";\nimport { catchError, of } from \"rxjs\";\nimport { AdminApiService } from \"../../services/acl/user-resources.service\";\nimport { Store } from '@ngrx/store';\nimport { RLB_INIT_PROVIDER, RlbInitProvider } from '../../services/apps/rlb-init-provider';\nimport { AclConfiguration, RLB_CFG_ACL } from '../../configuration';\nimport { BaseState } from '..';\n\n\n@Injectable()\nexport class AclEffects {\n loadAclOnAuth$ = createEffect(() => {\n return this.actions$.pipe(\n // Listen for the action dispatched in AuthenticationService.checkAuthMultiple\n ofType(AuthActions.setCurrentProvider),\n map(() => AclActions.loadACL())\n );\n });\n\n fetchAcl$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AclActions.loadACL),\n switchMap(() => this.adminApi.resourcesByUser$().pipe(\n map(resources => AclActions.loadACLSuccess({ resources })),\n catchError(error => of(AclActions.loadACLFailure({ error })))\n ))\n );\n });\n\n // TODO: It's legacy approach. We're moving forward to signalStore. All legacy boilerplate (effects.ts, reducers.ts, actions.ts) will be removed soon\n // I've moved this logic into acl.store.ts -> loadACL() method\n\n // finalizeAppsOnAclLoad$ = createEffect(() => {\n // return this.actions$.pipe(\n // ofType(AclActions.loadACLSuccess),\n // switchMap(() => {\n // if (!this.rlbInitProvider) {\n // console.error(\"RlbInitProvider not found. Define RLB_INIT_PROVIDER\");\n // return of(AclActions.finalizedAppsFailure());\n // }\n // return from(\n // this.rlbInitProvider.finalizeApps(this.store, this.aclConfiguration)\n // ).pipe(\n // map(() => AclActions.finalizedAppsSuccess()),\n // catchError(() => of(AclActions.finalizedAppsFailure()))\n // );\n // }));\n // });\n\n\n constructor(\n private actions$: Actions,\n private adminApi: AdminApiService,\n @Optional() @Inject(RLB_INIT_PROVIDER) private rlbInitProvider: RlbInitProvider,\n @Optional() @Inject(RLB_CFG_ACL) private aclConfiguration: AclConfiguration,\n private store: Store<BaseState>\n ) { }\n}\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { AclActions } from './acl.actions';\nimport { aclFeatureKey, initialAclState } from './acl.model';\n\nexport const aclFeature = createFeature({\n name: aclFeatureKey,\n reducer: createReducer(\n initialAclState,\n on(AclActions.loadACL, (state) => ({\n ...state,\n loading: true,\n loaded: false\n })),\n on(AclActions.loadACLSuccess, (state, { resources }) => ({\n ...state,\n resources,\n loaded: true,\n loading: false\n })),\n on(AclActions.loadACLFailure, (state, { error }) => ({\n ...state,\n error,\n loading: false,\n loaded: true // We mark as loaded to unblock the UI even if the fetch fails\n })),\n on(AclActions.reset, () => ({ ...initialAclState }))\n )\n});\n\nexport const aclReducer = aclFeature.reducer;\n\nexport const {\n selectAclState,\n selectResources,\n selectLoading,\n selectLoaded\n} = aclFeature;\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 { EnvironmentProviders, inject, isDevMode, provideAppInitializer, Provider } 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 ProjectConfiguration,\n RLB_CFG,\n RLB_CFG_ACL,\n RLB_CFG_CMS,\n RLB_CFG_ENV,\n RLB_CFG_I18N,\n RLB_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\";\nimport { AclEffects } from \"./lib/store/acl/acl.effects\";\nimport { aclFeature } from \"./lib/store/acl/acl.reducer\";\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, AppContextEffects, AclEffects),\n provideState(navbarsFeature),\n provideState(sidebarsFeature),\n provideState(appFeature),\n provideState(aclFeature),\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 // From here starts all pipeline: checkAuthMultiple -> resourcesByUser -> finalizeApp -> orchestration in appsService\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 { provide: RLB_CFG_ACL, useValue: env.acl },\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","i3.AppLoggerService","i2.AppLoggerService","i3.LanguageService","i4","i2","i2.CookiesService","i3","i4.ParseJwtService","i5","i2.AppStorageService","i6.AdminApiService","i1.AbstractMdService","i5.CmsPipe","i2.CmsComponent","i1.CmsComponent","i1.AbstractSupportService","i2.AppsService","i3.AuthenticationService","i6","i7.SettingsDropdownSelectorComponent","i8.AppDropdownSelectorComponent","i9","i10.AsMultiPipe","i10.AsSinglePipe","i11.LeftComponentPipe","i12.RightComponentPipe","i3.AppStorageService","i4.PwaUpdaterService","i5.AppsService","i6.AppLoggerService","i7","i8.AppTemplateComponent","i2.AuthenticationService","i3.ErrorManagementService","i3.KeycloakProfileService","i5.LanguageService","i6.AuthenticationService","tap","map","switchMap","selectLoading","i2.AdminApiService"],"mappings":"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"}
|