@onecx/angular-integration-interface 6.0.0-rc.2 → 6.0.0-rc.20
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.
- package/fesm2022/onecx-angular-integration-interface-mocks.mjs +198 -41
- package/fesm2022/onecx-angular-integration-interface-mocks.mjs.map +1 -1
- package/fesm2022/onecx-angular-integration-interface.mjs +101 -203
- package/fesm2022/onecx-angular-integration-interface.mjs.map +1 -1
- package/index.d.ts +1 -3
- package/lib/api/injection-tokens.d.ts +0 -7
- package/lib/model/config-key.model.d.ts +6 -1
- package/lib/services/app-config-service.d.ts +0 -2
- package/lib/services/app-state.service.d.ts +2 -6
- package/lib/services/configuration.service.d.ts +7 -10
- package/lib/services/portal-message.service.d.ts +0 -2
- package/lib/services/shell-capability.service.d.ts +16 -0
- package/lib/services/theme.service.d.ts +1 -10
- package/lib/services/user.service.d.ts +3 -5
- package/lib/services/workspace.service.d.ts +1 -2
- package/migrations.json +52 -0
- package/mocks/app-config-service-mock.d.ts +20 -0
- package/mocks/app-state-service-mock.d.ts +4 -15
- package/mocks/configuration-service-mock.d.ts +22 -0
- package/mocks/index.d.ts +7 -2
- package/mocks/portal-message-service-mock.d.ts +18 -0
- package/mocks/remote-components-service-mock.d.ts +13 -0
- package/mocks/shell-capability-service-mock.d.ts +13 -0
- package/mocks/user-service-mock.d.ts +21 -0
- package/package.json +15 -8
- package/esm2022/index.mjs +0 -18
- package/esm2022/lib/api/constants.mjs +0 -3
- package/esm2022/lib/api/iauth.service.mjs +0 -2
- package/esm2022/lib/api/injection-tokens.mjs +0 -11
- package/esm2022/lib/model/config-key.model.mjs +0 -31
- package/esm2022/lib/services/app-config-service.mjs +0 -43
- package/esm2022/lib/services/app-state.service.mjs +0 -45
- package/esm2022/lib/services/configuration.service.mjs +0 -79
- package/esm2022/lib/services/initialize-module-guard.service.mjs +0 -60
- package/esm2022/lib/services/portal-message.service.mjs +0 -49
- package/esm2022/lib/services/remote-components.service.mjs +0 -18
- package/esm2022/lib/services/theme.service.mjs +0 -48
- package/esm2022/lib/services/user.service.mjs +0 -89
- package/esm2022/lib/services/workspace.service.mjs +0 -146
- package/esm2022/lib/utils/add-initialize-module-guard.utils.mjs +0 -17
- package/esm2022/mocks/app-state-service-mock.mjs +0 -31
- package/esm2022/mocks/fake-topic.mjs +0 -25
- package/esm2022/mocks/index.mjs +0 -4
- package/esm2022/mocks/mock-user-service.mjs +0 -11
- package/esm2022/mocks/onecx-angular-integration-interface-mocks.mjs +0 -5
- package/esm2022/onecx-angular-integration-interface.mjs +0 -5
- package/lib/api/iauth.service.d.ts +0 -17
- package/lib/services/initialize-module-guard.service.d.ts +0 -22
- package/lib/utils/add-initialize-module-guard.utils.d.ts +0 -3
- package/mocks/fake-topic.d.ts +0 -9
- package/mocks/mock-user-service.d.ts +0 -5
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"onecx-angular-integration-interface.mjs","sources":["../../../../libs/angular-integration-interface/src/lib/services/app-config-service.ts","../../../../libs/angular-integration-interface/src/lib/services/app-state.service.ts","../../../../libs/angular-integration-interface/src/lib/api/injection-tokens.ts","../../../../libs/angular-integration-interface/src/lib/model/config-key.model.ts","../../../../libs/angular-integration-interface/src/lib/services/configuration.service.ts","../../../../libs/angular-integration-interface/src/lib/api/constants.ts","../../../../libs/angular-integration-interface/src/lib/services/user.service.ts","../../../../libs/angular-integration-interface/src/lib/services/portal-message.service.ts","../../../../libs/angular-integration-interface/src/lib/services/theme.service.ts","../../../../libs/angular-integration-interface/src/lib/services/remote-components.service.ts","../../../../libs/angular-integration-interface/src/lib/services/initialize-module-guard.service.ts","../../../../libs/angular-integration-interface/src/lib/services/workspace.service.ts","../../../../libs/angular-integration-interface/src/lib/utils/add-initialize-module-guard.utils.ts","../../../../libs/angular-integration-interface/src/index.ts","../../../../libs/angular-integration-interface/src/onecx-angular-integration-interface.ts"],"sourcesContent":["import { Location } from '@angular/common'\nimport { HttpClient } from '@angular/common/http'\nimport { Injectable } from '@angular/core'\nimport { Config } from '@onecx/integration-interface'\nimport { BehaviorSubject, firstValueFrom } from 'rxjs'\n\n@Injectable()\nexport class AppConfigService {\n config$ = new BehaviorSubject<{ [key: string]: string }>({})\n\n constructor(private http: HttpClient) {}\n\n public init(baseUrl: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const loadConfigPromise: Promise<Config> = firstValueFrom(\n this.http.get<Config>(Location.joinWithSlash(baseUrl, 'assets/env.json'))\n )\n\n loadConfigPromise\n .then(async (config) => {\n if (config) {\n this.config$.next(config)\n resolve()\n }\n })\n .catch((e) => {\n console.log(`Failed to load env configuration`)\n reject(e)\n })\n })\n }\n\n public getProperty(key: string): string | undefined {\n return this.config$.getValue()?.[key]\n }\n\n public setProperty(key: string, val: string) {\n this.config$.next({ ...this.config$.value, [key]: val })\n }\n\n public getConfig(): { [key: string]: string } {\n return this.config$.getValue()\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core'\nimport {\n GlobalErrorTopic,\n GlobalLoadingTopic,\n CurrentMfeTopic,\n CurrentPageTopic,\n CurrentWorkspaceTopic,\n IsAuthenticatedTopic,\n} from '@onecx/integration-interface'\n\n@Injectable({ providedIn: 'root' })\nexport class AppStateService implements OnDestroy {\n globalError$ = new GlobalErrorTopic()\n globalLoading$ = new GlobalLoadingTopic()\n currentMfe$ = new CurrentMfeTopic()\n\n /**\n * This topic will only fire when pageInfo.path matches document.location.pathname,\n * if not it will fire undefined.\n */\n currentPage$ = new CurrentPageTopic()\n currentWorkspace$ = new CurrentWorkspaceTopic()\n \n /**\n * @deprecated Will be replaced by currentWorkspace$\n */\n get currentPortal$() {\n return this.currentWorkspace$\n }\n set currentPortal$(value: CurrentWorkspaceTopic) {\n this.currentWorkspace$ = value\n }\n\n /**\n * This Topic is initialized as soon as the authentication is done\n */\n isAuthenticated$ = new IsAuthenticatedTopic()\n\n ngOnDestroy(): void {\n this.globalError$.destroy()\n this.globalLoading$.destroy()\n this.currentMfe$.destroy()\n this.currentPage$.destroy()\n this.currentPortal$.destroy()\n this.currentWorkspace$.destroy()\n this.isAuthenticated$.destroy()\n }\n}\n","import { InjectionToken } from '@angular/core'\nimport { IAuthService } from './iauth.service'\n\nexport interface LibConfig {\n appId: string\n portalId: string\n /**\n * If true, the tkit-module will not try to load remote env values from server(GET /assets/env.json)\n */\n skipRemoteConfigLoad: boolean\n /**\n * URL from which the remote config will be loaded, default: '/assets/env.json'\n */\n remoteConfigURL: string\n}\nexport const APP_CONFIG = new InjectionToken<LibConfig>('APP_CONFIG')\n\n/**\n * @deprecated\n * Please do not inject the auth service at all.\n * There are better ways to achieve what you want. Please use permission service or user service.\n */\nexport const AUTH_SERVICE = new InjectionToken<IAuthService>('AUTH_SERVICE')\n\nexport const SANITY_CHECK = new InjectionToken<string>('OCXSANITY_CHECK')\n\nexport const APPLICATION_NAME = new InjectionToken<string>('APPLICATION_NAME')\n","export enum CONFIG_KEY {\n TKIT_PORTAL_DEFAULT_THEME = 'TKIT_PORTAL_DEFAULT_THEME',\n TKIT_PORTAL_DISABLE_THEME_MANAGEMENT = 'TKIT_PORTAL_DISABLE_THEME_MANAGEMENT',\n TKIT_PORTAL_THEME_SERVER_URL = 'TKIT_PORTAL_THEME_SERVER_URL',\n TKIT_TOKEN_ROLE_CLAIM_NAME = 'TKIT_TOKEN_ROLE_CLAIM_NAME',\n TKIT_PORTAL_ID = 'TKIT_PORTAL_ID',\n TKIT_SUPPORTED_LANGUAGES = 'TKIT_SUPPORTED_LANGUAGES',\n TKIT_SEARCH_BASE_URL = 'TKIT_SEARCH_BASE_URL',\n APP_BASE_HREF = 'APP_BASE_HREF',\n KEYCLOAK_REALM = 'KEYCLOAK_REALM',\n KEYCLOAK_ENABLE_SILENT_SSO = 'KEYCLOAK_ENABLE_SILENT_SSO',\n KEYCLOAK_URL = 'KEYCLOAK_URL',\n KEYCLOAK_CLIENT_ID = 'KEYCLOAK_CLIENT_ID',\n ONECX_PORTAL_FAVORITES_DISABLED = 'ONECX_PORTAL_FAVORITES_DISABLED',\n ONECX_PORTAL_FEEDBACK_DISABLED = 'ONECX_PORTAL_FEEDBACK_DISABLED',\n ONECX_PORTAL_SEARCH_DISABLED = 'ONECX_PORTAL_SEARCH_DISABLED',\n ONECX_PORTAL_SUPPORT_TICKET_DISABLED = 'ONECX_PORTAL_SUPPORT_TICKET_DISABLED',\n ONECX_PORTAL_ANNOUNCEMENTS_DISABLED = 'ONECX_PORTAL_ANNOUNCEMENTS_DISABLED',\n ONECX_PORTAL_PASSWORD_CHANGE_DISABLED = 'ONECX_PORTAL_PASSWORD_CHANGE_DISABLED',\n ONECX_PORTAL_SETTINGS_DISABLED = 'ONECX_PORTAL_SETTINGS_DISABLED',\n ONECX_PORTAL_MY_ROLES_PERMISSIONS_DISABLED = 'ONECX_PORTAL_MY_ROLES_PERMISSIONS_DISABLED',\n ONECX_PORTAL_HELP_DISABLED = 'ONECX_PORTAL_HELP_DISABLED',\n ONECX_PORTAL_SEARCH_BUTTONS_REVERSED = 'ONECX_PORTAL_SEARCH_BUTTONS_REVERSED',\n APP_VERSION = 'APP_VERSION',\n IS_SHELL = 'IS_SHELL',\n AUTH_SERVICE = 'AUTH_SERVICE',\n AUTH_SERVICE_CUSTOM_URL = 'AUTH_SERVICE_CUSTOM_URL',\n AUTH_SERVICE_CUSTOM_MODULE_NAME = 'AUTH_SERVICE_CUSTOM_MODULE_NAME',\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable, OnDestroy, Optional } from '@angular/core'\nimport { firstValueFrom } from 'rxjs'\nimport { Config, ConfigurationTopic } from '@onecx/integration-interface'\nimport { APP_CONFIG } from '../api/injection-tokens'\nimport { CONFIG_KEY } from '../model/config-key.model'\n\n@Injectable({ providedIn: 'root' })\nexport class ConfigurationService implements OnDestroy {\n config$ = new ConfigurationTopic()\n\n constructor(\n private http: HttpClient,\n @Optional() @Inject(APP_CONFIG) private defaultConfig?: { [key: string]: string }\n ) {}\n\n ngOnDestroy(): void {\n this.config$.destroy()\n }\n\n public init(): Promise<boolean> {\n return new Promise((resolve, reject) => {\n const skipRemoteConfigLoad = this.defaultConfig && this.defaultConfig['skipRemoteConfigLoad']\n let loadConfigPromise: Promise<Config>\n\n const inlinedConfig = (window as typeof window & { APP_CONFIG: Config })['APP_CONFIG']\n if (inlinedConfig) {\n console.log(`ENV resolved from injected config`)\n loadConfigPromise = Promise.resolve(inlinedConfig)\n } else {\n if (skipRemoteConfigLoad) {\n console.log(\n '📢 TKA001: Remote config load is disabled. To enable it, remove the \"skipRemoteConfigLoad\" key in your environment.json'\n )\n loadConfigPromise = Promise.resolve(this.defaultConfig || {})\n } else {\n loadConfigPromise = firstValueFrom(\n this.http.get<Config>((this.defaultConfig && this.defaultConfig['remoteConfigURL']) || 'assets/env.json')\n )\n }\n }\n\n loadConfigPromise\n .then(async (config) => {\n if (config) {\n await this.config$.publish({ ...this.defaultConfig, ...config }).then(() => {\n resolve(true)\n })\n }\n })\n .catch((e) => {\n console.log(`Failed to load env configuration`)\n reject(e)\n })\n })\n }\n\n get isInitialized(): Promise<void> {\n return this.config$.isInitialized\n }\n\n public getProperty(key: CONFIG_KEY): string | undefined {\n if (!Object.values(CONFIG_KEY).includes(key)) {\n console.error('Invalid config key ', key)\n }\n return this.config$.getValue()?.[key]\n }\n\n public async setProperty(key: string, val: string) {\n const currentValues = await firstValueFrom(this.config$.asObservable())\n currentValues[key] = val\n await this.config$.publish(currentValues)\n }\n\n public getConfig(): Config | undefined {\n return this.config$.getValue()\n }\n}\n","export const API_PREFIX = 'portal-api'\n\nexport const DEFAULT_LANG = 'en'\n","import { Injectable, OnDestroy } from '@angular/core'\nimport { BehaviorSubject, map, filter, firstValueFrom, skip } from 'rxjs'\nimport { PermissionsTopic, UserProfile, UserProfileTopic } from '@onecx/integration-interface'\nimport { DEFAULT_LANG } from '../api/constants'\n\n@Injectable({ providedIn: 'root' })\nexport class UserService implements OnDestroy {\n profile$ = new UserProfileTopic()\n permissions$ = new BehaviorSubject<string[]>([])\n lang$ = new BehaviorSubject(this.determineLanguage() ?? DEFAULT_LANG)\n\n private permissionsTopic$ = new PermissionsTopic()\n private oldStylePermissionsInitialized: Promise<string[]>\n\n constructor() {\n this.profile$\n .pipe(\n map(\n (profile) =>\n profile.accountSettings?.localeAndTimeSettings?.locale ?? this.determineLanguage() ?? DEFAULT_LANG\n )\n )\n .subscribe(this.lang$)\n\n this.oldStylePermissionsInitialized = firstValueFrom(this.permissions$.pipe(skip(1)))\n this.profile$\n .pipe(\n map((profile) => this.extractPermissions(profile)),\n filter((permissions): permissions is string[] => !!permissions)\n )\n .subscribe(this.permissions$)\n }\n\n ngOnDestroy(): void {\n this.profile$.destroy()\n }\n\n hasPermission(permissionKey: string | string[]): boolean {\n if (Array.isArray(permissionKey)) {\n return permissionKey.every((key) => this.hasPermission(key))\n }\n const oldConceptResult = this.permissions$.getValue()\n ? this.permissions$.getValue()?.includes(permissionKey)\n : false\n const result = this.permissionsTopic$.getValue()\n ? this.permissionsTopic$.getValue()?.includes(permissionKey)\n : oldConceptResult\n\n if (!result) {\n console.log(`👮♀️ No permission for: ${permissionKey}`)\n }\n return !!result\n }\n\n private determineLanguage(): string | undefined {\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\n return undefined\n }\n\n let browserLang: any = window.navigator.languages ? window.navigator.languages[0] : null\n browserLang = browserLang || window.navigator.language\n\n if (typeof browserLang === 'undefined') {\n return undefined\n }\n\n if (browserLang.indexOf('-') !== -1) {\n browserLang = browserLang.split('-')[0]\n }\n\n if (browserLang.indexOf('_') !== -1) {\n browserLang = browserLang.split('_')[0]\n }\n\n return browserLang\n }\n\n private extractPermissions(userProfile: UserProfile) {\n if (userProfile) {\n if (userProfile.memberships) {\n const permissions: string[] = []\n userProfile.memberships.forEach((m) => {\n m.roleMemberships?.forEach((r) => {\n r.permissions?.forEach((p) => {\n if (p) {\n if (p.key !== undefined) {\n permissions.push(p.key)\n }\n }\n })\n })\n })\n return permissions\n }\n }\n return null\n }\n\n get isInitialized(): Promise<void> {\n return Promise.all([\n Promise.race([this.permissionsTopic$.isInitialized, this.oldStylePermissionsInitialized]),\n this.profile$.isInitialized,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ]).then(() => {})\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core'\nimport { TranslateService } from '@ngx-translate/core'\nimport { combineLatest, first, of } from 'rxjs'\nimport { MessageTopic } from '@onecx/integration-interface'\n\nexport type Message = {\n summaryKey?: string\n summaryParameters?: object\n detailKey?: string\n detailParameters?: object\n id?: any\n key?: string\n life?: number\n sticky?: boolean\n closable?: boolean\n data?: any\n icon?: string\n contentStyleClass?: string\n styleClass?: string\n}\n\n@Injectable({ providedIn: 'any' })\nexport class PortalMessageService implements OnDestroy {\n constructor(private translateService: TranslateService) {}\n\n message$ = new MessageTopic()\n\n success(msg: Message) {\n this.addTranslated('success', msg)\n }\n\n info(msg: Message) {\n this.addTranslated('info', msg)\n }\n\n error(msg: Message) {\n this.addTranslated('error', msg)\n }\n\n warning(msg: Message) {\n this.addTranslated('warning', msg)\n }\n\n private addTranslated(severity: string, msg: Message) {\n combineLatest([\n msg.summaryKey ? this.translateService.get(msg.summaryKey || '', msg.summaryParameters) : of(undefined),\n msg.detailKey ? this.translateService.get(msg.detailKey, msg.detailParameters) : of(undefined),\n ])\n .pipe(first())\n .subscribe(([summaryTranslation, detailTranslation]: string[]) => {\n this.message$.publish({\n ...msg,\n severity: severity,\n summary: summaryTranslation,\n detail: detailTranslation,\n })\n })\n }\n\n ngOnDestroy(): void {\n this.message$.destroy()\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Injectable, OnDestroy } from '@angular/core'\nimport { from, map, mergeMap } from 'rxjs'\nimport { CurrentThemeTopic, Theme } from '@onecx/integration-interface'\nimport { ConfigurationService } from './configuration.service'\nimport { CONFIG_KEY } from '../model/config-key.model'\n\nconst defaultThemeServerUrl = 'http://portal-theme-management:8080'\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService implements OnDestroy {\n baseUrlV1 = './portal-api'\n currentTheme$ = new CurrentThemeTopic()\n\n constructor(private configService: ConfigurationService, private http: HttpClient) {}\n\n getThemeHref(themeId: string): string {\n const themeServerUrl =\n this.configService.getProperty(CONFIG_KEY.TKIT_PORTAL_THEME_SERVER_URL) || defaultThemeServerUrl\n return `${themeServerUrl}/themes/${themeId}/${themeId}.min.css`\n }\n\n public loadAndApplyTheme(themeName: string) {\n return this.http.get<Theme>(`${this.baseUrlV1}/internal/themes/${encodeURI(themeName)}`).pipe(\n mergeMap((theme) => {\n return from(this.apply(theme)).pipe(map(() => theme))\n })\n )\n }\n\n public async apply(theme: Theme): Promise<void> {\n console.log(`🎨 Applying theme: ${theme.name}`)\n await this.currentTheme$.publish(theme)\n if (theme.properties) {\n Object.values(theme.properties).forEach((group) => {\n for (const [key, value] of Object.entries(group)) {\n document.documentElement.style.setProperty(`--${key}`, value)\n }\n })\n }\n }\n\n ngOnDestroy(): void {\n this.currentTheme$.destroy()\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core'\nimport { RemoteComponentsTopic } from '@onecx/integration-interface'\n\n@Injectable({ providedIn: 'root' })\nexport class RemoteComponentsService implements OnDestroy {\n remoteComponents$ = new RemoteComponentsTopic()\n\n ngOnDestroy(): void {\n this.remoteComponents$.destroy()\n }\n}\n","import { Injectable } from '@angular/core'\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router'\nimport { TranslateService } from '@ngx-translate/core'\nimport { filter, from, isObservable, map, mergeMap, Observable, of, tap, zip } from 'rxjs'\nimport { AppStateService } from './app-state.service';\nimport { ConfigurationService } from './configuration.service';\nimport { UserService } from './user.service';\n\n@Injectable({ providedIn: 'any' })\nexport class InitializeModuleGuard implements CanActivate {\n private SUPPORTED_LANGS = ['en', 'de']\n private DEFAULT_LANG = 'en'\n constructor(\n protected translateService: TranslateService,\n protected configService: ConfigurationService,\n protected appStateService: AppStateService,\n protected userService: UserService\n ) {}\n\n canActivate(\n _route: ActivatedRouteSnapshot,\n _state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n console.time('InitializeModuleGuard')\n return zip([\n this.loadTranslations(),\n from(this.configService.isInitialized),\n from(this.userService.isInitialized),\n from(this.appStateService.currentWorkspace$.isInitialized),\n ]).pipe(\n tap(() => {\n console.timeEnd('InitializeModuleGuard')\n }),\n map(() => true)\n )\n }\n\n getBestMatchLanguage(lang: string) {\n if (this.SUPPORTED_LANGS.includes(lang)) {\n return lang\n } else {\n console.log(`${lang} is not supported. Using ${this.DEFAULT_LANG} as a fallback.`)\n }\n return this.DEFAULT_LANG\n }\n\n loadTranslations(): Observable<boolean> {\n return this.userService.lang$.pipe(\n filter((v) => v !== undefined),\n mergeMap((lang) => {\n const bestMatchLang = this.getBestMatchLanguage(lang as string)\n return this.translateService.use(bestMatchLang)\n }),\n mergeMap(() => of(true))\n )\n }\n\n protected toObservable(\n canActivateResult: Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree\n ): Observable<boolean | UrlTree> {\n if (isObservable(canActivateResult)) {\n return canActivateResult\n }\n return from(Promise.resolve(canActivateResult))\n }\n}\n","import { Injectable } from '@angular/core'\nimport { AppStateService } from './app-state.service'\nimport { Observable, map } from 'rxjs'\nimport { Route } from '@onecx/integration-interface'\nimport { Endpoint } from '@onecx/integration-interface'\nimport { Location } from '@angular/common'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WorkspaceService {\n private aliasStart = '[['\n private aliasEnd = ']]'\n private paramStart = '{'\n private paramEnd = '}'\n\n constructor(protected appStateService: AppStateService) {}\n\n getUrl(\n productName: string,\n appId: string,\n endpointName?: string,\n endpointParameters?: Record<string, unknown>\n ): Observable<string> {\n return this.appStateService.currentWorkspace$.pipe(\n map((workspace) => {\n const finalUrl = this.constructRouteUrl(workspace, appId, productName, endpointName, endpointParameters)\n return finalUrl\n })\n )\n }\n\n doesUrlExistFor(productName: string, appId: string, endpointName?: string): Observable<boolean> {\n return this.appStateService.currentWorkspace$.pipe(\n map((workspace) => {\n const checkEndpoint = endpointName !== undefined && endpointName.length > 0\n\n if (workspace.routes == undefined) {\n return false\n }\n const route = this.filterRouteFromList(workspace.routes, appId, productName)\n\n if (checkEndpoint) {\n if (!route || route.endpoints === undefined || route.endpoints.length == 0) {\n return false\n }\n\n const endpoint = route.endpoints.find((ep) => ep.name === endpointName)\n return !!(endpoint && endpoint.path && endpoint.path.length > 0)\n } else {\n return !!(route && route.baseUrl && route.baseUrl.length > 0)\n }\n })\n )\n }\n\n private constructBaseUrlFromWorkspace(workspace: any): string {\n if (workspace.baseUrl === undefined) {\n console.log('WARNING: There was no baseUrl for received workspace.')\n return ''\n }\n return workspace.baseUrl\n }\n\n private constructRouteUrl(\n workspace: any,\n appId: string,\n productName: string,\n endpointName?: string,\n endpointParameters?: Record<string, unknown>\n ): string {\n const route = this.filterRouteFromList(workspace.routes, appId, productName)\n let url = this.constructBaseUrlFromWorkspace(workspace)\n if (!route) {\n console.log(\n `WARNING: No route.baseUrl could be found for given appId \"${appId}\" and productName \"${productName}\"`\n )\n\n return url\n }\n\n if (route.baseUrl !== undefined && route.baseUrl.length > 0) {\n url = route.baseUrl\n }\n if (endpointName == undefined) {\n return url\n }\n\n url = Location.joinWithSlash(url, this.constructEndpointUrl(route, endpointName, endpointParameters))\n return url\n }\n\n private constructEndpointUrl(\n route: any,\n endpointName: string,\n endpointParameters: Record<string, unknown> = {}\n ): string {\n if (!route.endpoints) {\n return ''\n }\n const finalEndpoint = this.dissolveEndpoint(endpointName, route.endpoints)\n if (!finalEndpoint || finalEndpoint.path === undefined) {\n console.log('WARNING: No endpoint or endpoint.path could be found')\n return ''\n }\n\n const paramsFilled = this.fillParamsForPath(finalEndpoint.path, endpointParameters)\n if (paramsFilled === undefined) {\n console.log('WARNING: Params could not be filled correctly')\n return ''\n }\n\n return paramsFilled\n }\n\n private filterRouteFromList(routes: Array<Route>, appId: string, productName: string): Route | undefined {\n if (!routes) {\n return undefined\n }\n\n const productRoutes = routes.filter((route) => route.appId === appId && route.productName === productName)\n\n if (productRoutes.length === 0) {\n return undefined\n }\n\n if (productRoutes.length > 1) {\n console.log('WARNING: There were more than one route. First route has been used.')\n }\n\n return productRoutes[0]\n }\n\n private dissolveEndpoint(endpointName: string, endpoints: Array<Endpoint>): Endpoint | undefined {\n let endpoint = endpoints.find((ep) => ep.name === endpointName)\n\n if (!endpoint) {\n return undefined\n }\n\n while (endpoint.path?.includes(this.aliasStart)) {\n const path: string = endpoint.path\n const startIdx = path.indexOf(this.aliasStart) + this.aliasStart.length\n const endIdx = path.lastIndexOf(this.aliasEnd)\n if (endIdx <= startIdx) {\n return undefined\n }\n const aliasName = path.substring(startIdx, endIdx)\n endpoint = endpoints.find((ep) => ep.name === aliasName)\n\n if (!endpoint) {\n return undefined\n }\n }\n\n return endpoint\n }\n\n private fillParamsForPath(path: string, endpointParameters: Record<string, unknown>): string {\n while (path.includes(this.paramStart)) {\n const paramName = path.substring(\n path.indexOf(this.paramStart) + this.paramStart.length,\n path.indexOf(this.paramEnd)\n )\n const paramValue = this.getStringFromUnknown(endpointParameters[paramName])\n if (paramValue != undefined && paramValue.length > 0) {\n path = path.replace(this.paramStart.concat(paramName).concat(this.paramEnd), paramValue)\n } else {\n console.log(`WARNING: Searched param \"${paramName}\" was not found in given param list `)\n return ''\n }\n }\n return path\n }\n\n private getStringFromUnknown(value: unknown): string {\n if (value === null || value === undefined) {\n return ''\n } else if (typeof value === 'string') {\n return value\n } else {\n return String(value)\n }\n }\n}\n","import { CanActivateFn, Route } from '@angular/router'\nimport { InitializeModuleGuard } from '../services/initialize-module-guard.service'\n\nexport function addInitializeModuleGuard(\n routes: Route[],\n initializeModuleGuard: typeof InitializeModuleGuard | CanActivateFn = InitializeModuleGuard\n): Route[] {\n return routes.map((r) => {\n if (r.redirectTo) {\n return r\n }\n const route = {\n canActivate: [],\n ...r,\n }\n if (!route.canActivate.includes(initializeModuleGuard)) {\n route.canActivate.push(initializeModuleGuard)\n }\n return route\n })\n}","// services\nexport * from './lib/services/app-config-service'\nexport * from './lib/services/app-state.service'\nexport * from './lib/services/configuration.service'\nexport * from './lib/services/user.service'\nexport * from './lib/services/portal-message.service'\nexport * from './lib/services/theme.service'\nexport * from './lib/services/remote-components.service'\nexport * from './lib/services/initialize-module-guard.service'\nexport * from './lib/services/workspace.service'\n\n// models\nexport * from './lib/model/config-key.model'\n\n// core\nexport * from './lib/api/iauth.service'\nexport * from './lib/api/injection-tokens'\n\n// utils\nexport * from './lib/utils/add-initialize-module-guard.utils'\n\nexport { MfeInfo, Theme } from '@onecx/integration-interface'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.ConfigurationService","i2","i2.ConfigurationService","i3.AppStateService","i4.UserService","i1.AppStateService"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"onecx-angular-integration-interface.mjs","sources":["../../../../libs/angular-integration-interface/src/lib/services/app-config-service.ts","../../../../libs/angular-integration-interface/src/lib/services/app-state.service.ts","../../../../libs/angular-integration-interface/src/lib/api/injection-tokens.ts","../../../../libs/angular-integration-interface/src/lib/model/config-key.model.ts","../../../../libs/angular-integration-interface/src/lib/services/configuration.service.ts","../../../../libs/angular-integration-interface/src/lib/api/constants.ts","../../../../libs/angular-integration-interface/src/lib/services/user.service.ts","../../../../libs/angular-integration-interface/src/lib/services/portal-message.service.ts","../../../../libs/angular-integration-interface/src/lib/services/theme.service.ts","../../../../libs/angular-integration-interface/src/lib/services/remote-components.service.ts","../../../../libs/angular-integration-interface/src/lib/services/workspace.service.ts","../../../../libs/angular-integration-interface/src/lib/services/shell-capability.service.ts","../../../../libs/angular-integration-interface/src/index.ts","../../../../libs/angular-integration-interface/src/onecx-angular-integration-interface.ts"],"sourcesContent":["import { Location } from '@angular/common'\nimport { HttpClient } from '@angular/common/http'\nimport { Injectable, inject } from '@angular/core'\nimport { Config } from '@onecx/integration-interface'\nimport { BehaviorSubject, firstValueFrom } from 'rxjs'\n\n@Injectable()\nexport class AppConfigService {\n private http = inject(HttpClient)\n\n config$ = new BehaviorSubject<{ [key: string]: string }>({})\n\n public init(baseUrl: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const loadConfigPromise: Promise<Config> = firstValueFrom(\n this.http.get<Config>(Location.joinWithSlash(baseUrl, 'assets/env.json'))\n )\n\n loadConfigPromise\n .then(async (config) => {\n if (config) {\n this.config$.next(config)\n resolve()\n }\n })\n .catch((e) => {\n console.log(`Failed to load env configuration`)\n reject(e)\n })\n })\n }\n\n public getProperty(key: string): string | undefined {\n return this.config$.getValue()?.[key]\n }\n\n public setProperty(key: string, val: string) {\n this.config$.next({ ...this.config$.value, [key]: val })\n }\n\n public getConfig(): { [key: string]: string } {\n return this.config$.getValue()\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core'\nimport {\n GlobalErrorTopic,\n GlobalLoadingTopic,\n CurrentMfeTopic,\n CurrentPageTopic,\n CurrentWorkspaceTopic,\n IsAuthenticatedTopic,\n CurrentLocationTopic,\n} from '@onecx/integration-interface'\n\n@Injectable({ providedIn: 'root' })\nexport class AppStateService implements OnDestroy {\n globalError$ = new GlobalErrorTopic()\n globalLoading$ = new GlobalLoadingTopic()\n currentMfe$ = new CurrentMfeTopic()\n currentLocation$ = new CurrentLocationTopic()\n\n /**\n * This topic will only fire when pageInfo.path matches document.location.pathname,\n * if not it will fire undefined.\n */\n currentPage$ = new CurrentPageTopic()\n currentWorkspace$ = new CurrentWorkspaceTopic()\n\n /**\n * This Topic is initialized as soon as the authentication is done\n */\n isAuthenticated$ = new IsAuthenticatedTopic()\n\n ngOnDestroy(): void {\n this.globalError$.destroy()\n this.globalLoading$.destroy()\n this.currentMfe$.destroy()\n this.currentPage$.destroy()\n this.currentLocation$.destroy()\n this.currentWorkspace$.destroy()\n this.isAuthenticated$.destroy()\n }\n}\n","import { InjectionToken } from '@angular/core'\n\nexport interface LibConfig {\n appId: string\n portalId: string\n /**\n * If true, the tkit-module will not try to load remote env values from server(GET /assets/env.json)\n */\n skipRemoteConfigLoad: boolean\n /**\n * URL from which the remote config will be loaded, default: '/assets/env.json'\n */\n remoteConfigURL: string\n}\nexport const APP_CONFIG = new InjectionToken<LibConfig>('APP_CONFIG')\n\nexport const SANITY_CHECK = new InjectionToken<string>('OCXSANITY_CHECK')\n\nexport const APPLICATION_NAME = new InjectionToken<string>('APPLICATION_NAME')\n","export enum CONFIG_KEY {\n TKIT_PORTAL_DEFAULT_THEME = 'TKIT_PORTAL_DEFAULT_THEME',\n TKIT_PORTAL_DISABLE_THEME_MANAGEMENT = 'TKIT_PORTAL_DISABLE_THEME_MANAGEMENT',\n TKIT_PORTAL_THEME_SERVER_URL = 'TKIT_PORTAL_THEME_SERVER_URL',\n TKIT_TOKEN_ROLE_CLAIM_NAME = 'TKIT_TOKEN_ROLE_CLAIM_NAME',\n TKIT_PORTAL_ID = 'TKIT_PORTAL_ID',\n TKIT_SUPPORTED_LANGUAGES = 'TKIT_SUPPORTED_LANGUAGES',\n TKIT_SEARCH_BASE_URL = 'TKIT_SEARCH_BASE_URL',\n APP_BASE_HREF = 'APP_BASE_HREF',\n KEYCLOAK_REALM = 'KEYCLOAK_REALM',\n KEYCLOAK_ENABLE_SILENT_SSO = 'KEYCLOAK_ENABLE_SILENT_SSO',\n KEYCLOAK_URL = 'KEYCLOAK_URL',\n KEYCLOAK_CLIENT_ID = 'KEYCLOAK_CLIENT_ID',\n ONECX_PORTAL_FAVORITES_DISABLED = 'ONECX_PORTAL_FAVORITES_DISABLED',\n ONECX_PORTAL_FEEDBACK_DISABLED = 'ONECX_PORTAL_FEEDBACK_DISABLED',\n ONECX_PORTAL_SEARCH_DISABLED = 'ONECX_PORTAL_SEARCH_DISABLED',\n ONECX_PORTAL_SUPPORT_TICKET_DISABLED = 'ONECX_PORTAL_SUPPORT_TICKET_DISABLED',\n ONECX_PORTAL_ANNOUNCEMENTS_DISABLED = 'ONECX_PORTAL_ANNOUNCEMENTS_DISABLED',\n ONECX_PORTAL_PASSWORD_CHANGE_DISABLED = 'ONECX_PORTAL_PASSWORD_CHANGE_DISABLED',\n ONECX_PORTAL_SETTINGS_DISABLED = 'ONECX_PORTAL_SETTINGS_DISABLED',\n ONECX_PORTAL_MY_ROLES_PERMISSIONS_DISABLED = 'ONECX_PORTAL_MY_ROLES_PERMISSIONS_DISABLED',\n ONECX_PORTAL_HELP_DISABLED = 'ONECX_PORTAL_HELP_DISABLED',\n ONECX_PORTAL_SEARCH_BUTTONS_REVERSED = 'ONECX_PORTAL_SEARCH_BUTTONS_REVERSED',\n APP_VERSION = 'APP_VERSION',\n IS_SHELL = 'IS_SHELL',\n AUTH_SERVICE = 'AUTH_SERVICE',\n AUTH_SERVICE_CUSTOM_URL = 'AUTH_SERVICE_CUSTOM_URL',\n AUTH_SERVICE_CUSTOM_MODULE_NAME = 'AUTH_SERVICE_CUSTOM_MODULE_NAME',\n POLYFILL_SCOPE_MODE = 'POLYFILL_SCOPE_MODE'\n}\n\nexport enum POLYFILL_SCOPE_MODE {\n PERFORMANCE = 'PERFORMANCE',\n PRECISION = 'PRECISION',\n}","import { HttpClient } from '@angular/common/http'\nimport { Injectable, OnDestroy, inject } from '@angular/core'\nimport { firstValueFrom, map } from 'rxjs'\nimport { Config, ConfigurationTopic } from '@onecx/integration-interface'\nimport { APP_CONFIG } from '../api/injection-tokens'\nimport { CONFIG_KEY } from '../model/config-key.model'\nimport Semaphore from 'ts-semaphore'\n\n@Injectable({ providedIn: 'root' })\nexport class ConfigurationService implements OnDestroy {\n private http = inject(HttpClient)\n private defaultConfig = inject<{\n [key: string]: string\n }>(APP_CONFIG, { optional: true })\n\n private config$ = new ConfigurationTopic()\n private semaphore = new Semaphore(1)\n\n ngOnDestroy(): void {\n this.config$.destroy()\n }\n\n public init(): Promise<boolean> {\n return new Promise((resolve, reject) => {\n const skipRemoteConfigLoad = this.defaultConfig && this.defaultConfig['skipRemoteConfigLoad']\n let loadConfigPromise: Promise<Config>\n\n const inlinedConfig = (window as typeof window & { APP_CONFIG: Config })['APP_CONFIG']\n if (inlinedConfig) {\n console.log(`ENV resolved from injected config`)\n loadConfigPromise = Promise.resolve(inlinedConfig)\n } else {\n if (skipRemoteConfigLoad) {\n console.log(\n '📢 TKA001: Remote config load is disabled. To enable it, remove the \"skipRemoteConfigLoad\" key in your environment.json'\n )\n loadConfigPromise = Promise.resolve(this.defaultConfig || {})\n } else {\n loadConfigPromise = firstValueFrom(\n this.http.get<Config>((this.defaultConfig && this.defaultConfig['remoteConfigURL']) || 'assets/env.json')\n )\n }\n }\n\n loadConfigPromise\n .then(async (config) => {\n await this.config$.publish({ ...this.defaultConfig, ...(config ?? {}) }).then(() => {\n resolve(true)\n })\n })\n .catch((e) => {\n console.log(`Failed to load env configuration`)\n reject(e)\n })\n })\n }\n\n get isInitialized(): Promise<void> {\n return this.config$.isInitialized\n }\n\n public async getProperty(key: CONFIG_KEY): Promise<string | undefined> {\n if (!Object.values(CONFIG_KEY).includes(key)) {\n console.error('Invalid config key ', key)\n }\n return firstValueFrom(this.config$.pipe(map((config) => config[key])))\n }\n\n public async setProperty(key: string, val: string) {\n return this.semaphore.use(async () => {\n const currentValues = await firstValueFrom(this.config$.asObservable())\n currentValues[key] = val\n await this.config$.publish(currentValues)\n })\n }\n\n public async getConfig(): Promise<Config | undefined> {\n return firstValueFrom(this.config$.asObservable())\n }\n}\n","export const API_PREFIX = 'portal-api'\n\nexport const DEFAULT_LANG = 'en'\n","import { Injectable, OnDestroy } from '@angular/core'\nimport { PermissionsTopic, UserProfileTopic } from '@onecx/integration-interface'\nimport { BehaviorSubject, firstValueFrom, map } from 'rxjs'\nimport { DEFAULT_LANG } from '../api/constants'\n\n@Injectable({ providedIn: 'root' })\nexport class UserService implements OnDestroy {\n profile$ = new UserProfileTopic()\n lang$ = new BehaviorSubject(this.determineLanguage() ?? DEFAULT_LANG)\n\n private permissionsTopic$ = new PermissionsTopic()\n\n constructor() {\n this.profile$\n .pipe(\n map(\n (profile) =>\n profile.accountSettings?.localeAndTimeSettings?.locale ?? this.determineLanguage() ?? DEFAULT_LANG\n )\n )\n .subscribe(this.lang$)\n }\n\n ngOnDestroy(): void {\n this.profile$.destroy()\n }\n\n getPermissions() {\n return this.permissionsTopic$.asObservable()\n }\n\n async hasPermission(permissionKey: string | string[] | undefined): Promise<boolean> {\n if (!permissionKey) return true\n\n if (Array.isArray(permissionKey)) {\n const permissions = await Promise.all(permissionKey.map((key) => this.hasPermission(key)))\n return permissions.every((hasPermission) => hasPermission)\n }\n\n return firstValueFrom(\n this.permissionsTopic$.pipe(\n map((permissions) => {\n const result = permissions.includes(permissionKey)\n if (!result) {\n console.log(`👮♀️ No permission for: ${permissionKey}`)\n }\n return !!result\n })\n )\n )\n }\n\n private determineLanguage(): string | undefined {\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\n return undefined\n }\n\n let browserLang: any = window.navigator.languages ? window.navigator.languages[0] : null\n browserLang = browserLang || window.navigator.language\n\n if (typeof browserLang === 'undefined') {\n return undefined\n }\n\n if (browserLang.indexOf('-') !== -1) {\n browserLang = browserLang.split('-')[0]\n }\n\n if (browserLang.indexOf('_') !== -1) {\n browserLang = browserLang.split('_')[0]\n }\n\n return browserLang\n }\n\n get isInitialized(): Promise<void> {\n return Promise.all([\n this.permissionsTopic$.isInitialized,\n this.profile$.isInitialized,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ]).then(() => {})\n }\n}\n","import { Injectable, OnDestroy, inject } from '@angular/core'\nimport { TranslateService } from '@ngx-translate/core'\nimport { MessageTopic } from '@onecx/integration-interface'\nimport { combineLatest, first, of } from 'rxjs'\n\nexport type Message = {\n summaryKey?: string\n summaryParameters?: object\n detailKey?: string\n detailParameters?: object\n id?: any\n key?: string\n life?: number\n sticky?: boolean\n closable?: boolean\n data?: any\n icon?: string\n contentStyleClass?: string\n styleClass?: string\n}\n\n@Injectable({ providedIn: 'any' })\nexport class PortalMessageService implements OnDestroy {\n private translateService = inject(TranslateService)\n\n message$ = new MessageTopic()\n\n success(msg: Message) {\n this.addTranslated('success', msg)\n }\n\n info(msg: Message) {\n this.addTranslated('info', msg)\n }\n\n error(msg: Message) {\n this.addTranslated('error', msg)\n }\n\n warning(msg: Message) {\n this.addTranslated('warning', msg)\n }\n\n private addTranslated(severity: string, msg: Message) {\n combineLatest([\n msg.summaryKey ? this.translateService.get(msg.summaryKey || '', msg.summaryParameters) : of(undefined),\n msg.detailKey ? this.translateService.get(msg.detailKey, msg.detailParameters) : of(undefined),\n ])\n .pipe(first())\n .subscribe(([summaryTranslation, detailTranslation]: string[]) => {\n this.message$.publish({\n ...msg,\n severity: severity,\n summary: summaryTranslation,\n detail: detailTranslation,\n })\n })\n }\n\n ngOnDestroy(): void {\n this.message$.destroy()\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core'\nimport { CurrentThemeTopic } from '@onecx/integration-interface'\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService implements OnDestroy {\n currentTheme$ = new CurrentThemeTopic()\n ngOnDestroy(): void {\n this.currentTheme$.destroy()\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core'\nimport { RemoteComponentsTopic } from '@onecx/integration-interface'\n\n@Injectable({ providedIn: 'root' })\nexport class RemoteComponentsService implements OnDestroy {\n remoteComponents$ = new RemoteComponentsTopic()\n\n ngOnDestroy(): void {\n this.remoteComponents$.destroy()\n }\n}\n","import { Location } from '@angular/common'\nimport { Injectable, inject } from '@angular/core'\nimport { Endpoint, Route } from '@onecx/integration-interface'\nimport { Observable, map } from 'rxjs'\nimport { AppStateService } from './app-state.service'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WorkspaceService {\n protected appStateService = inject(AppStateService)\n\n private aliasStart = '[['\n private aliasEnd = ']]'\n private paramStart = '{'\n private paramEnd = '}'\n\n getUrl(\n productName: string,\n appId: string,\n endpointName?: string,\n endpointParameters?: Record<string, unknown>\n ): Observable<string> {\n return this.appStateService.currentWorkspace$.pipe(\n map((workspace) => {\n const finalUrl = this.constructRouteUrl(workspace, appId, productName, endpointName, endpointParameters)\n return finalUrl\n })\n )\n }\n\n doesUrlExistFor(productName: string, appId: string, endpointName?: string): Observable<boolean> {\n return this.appStateService.currentWorkspace$.pipe(\n map((workspace) => {\n const checkEndpoint = endpointName !== undefined && endpointName.length > 0\n\n if (workspace.routes == undefined) {\n return false\n }\n const route = this.filterRouteFromList(workspace.routes, appId, productName)\n\n if (checkEndpoint) {\n if (!route || route.endpoints === undefined || route.endpoints.length == 0) {\n return false\n }\n\n const endpoint = route.endpoints.find((ep) => ep.name === endpointName)\n return !!(endpoint && endpoint.path && endpoint.path.length > 0)\n } else {\n return !!(route && route.baseUrl && route.baseUrl.length > 0)\n }\n })\n )\n }\n\n private constructBaseUrlFromWorkspace(workspace: any): string {\n if (workspace.baseUrl === undefined) {\n console.log('WARNING: There was no baseUrl for received workspace.')\n return ''\n }\n return workspace.baseUrl\n }\n\n private constructRouteUrl(\n workspace: any,\n appId: string,\n productName: string,\n endpointName?: string,\n endpointParameters?: Record<string, unknown>\n ): string {\n const route = this.filterRouteFromList(workspace.routes, appId, productName)\n let url = this.constructBaseUrlFromWorkspace(workspace)\n if (!route) {\n console.log(\n `WARNING: No route.baseUrl could be found for given appId \"${appId}\" and productName \"${productName}\"`\n )\n\n return url\n }\n\n if (route.baseUrl !== undefined && route.baseUrl.length > 0) {\n url = route.baseUrl\n }\n if (endpointName == undefined) {\n return url\n }\n\n url = Location.joinWithSlash(url, this.constructEndpointUrl(route, endpointName, endpointParameters))\n return url\n }\n\n private constructEndpointUrl(\n route: any,\n endpointName: string,\n endpointParameters: Record<string, unknown> = {}\n ): string {\n if (!route.endpoints) {\n return ''\n }\n const finalEndpoint = this.dissolveEndpoint(endpointName, route.endpoints)\n if (!finalEndpoint || finalEndpoint.path === undefined) {\n console.log('WARNING: No endpoint or endpoint.path could be found')\n return ''\n }\n\n const paramsFilled = this.fillParamsForPath(finalEndpoint.path, endpointParameters)\n if (paramsFilled === undefined) {\n console.log('WARNING: Params could not be filled correctly')\n return ''\n }\n\n return paramsFilled\n }\n\n private filterRouteFromList(routes: Array<Route>, appId: string, productName: string): Route | undefined {\n if (!routes) {\n return undefined\n }\n\n const productRoutes = routes.filter((route) => route.appId === appId && route.productName === productName)\n\n if (productRoutes.length === 0) {\n return undefined\n }\n\n if (productRoutes.length > 1) {\n console.log('WARNING: There were more than one route. First route has been used.')\n }\n\n return productRoutes[0]\n }\n\n private dissolveEndpoint(endpointName: string, endpoints: Array<Endpoint>): Endpoint | undefined {\n let endpoint = endpoints.find((ep) => ep.name === endpointName)\n\n if (!endpoint) {\n return undefined\n }\n\n while (endpoint.path?.includes(this.aliasStart)) {\n const path: string = endpoint.path\n const startIdx = path.indexOf(this.aliasStart) + this.aliasStart.length\n const endIdx = path.lastIndexOf(this.aliasEnd)\n if (endIdx <= startIdx) {\n return undefined\n }\n const aliasName = path.substring(startIdx, endIdx)\n endpoint = endpoints.find((ep) => ep.name === aliasName)\n\n if (!endpoint) {\n return undefined\n }\n }\n\n return endpoint\n }\n\n private fillParamsForPath(path: string, endpointParameters: Record<string, unknown>): string {\n while (path.includes(this.paramStart)) {\n const paramName = path.substring(\n path.indexOf(this.paramStart) + this.paramStart.length,\n path.indexOf(this.paramEnd)\n )\n const paramValue = this.getStringFromUnknown(endpointParameters[paramName])\n if (paramValue != undefined && paramValue.length > 0) {\n path = path.replace(this.paramStart.concat(paramName).concat(this.paramEnd), paramValue)\n } else {\n console.log(`WARNING: Searched param \"${paramName}\" was not found in given param list `)\n return ''\n }\n }\n return path\n }\n\n private getStringFromUnknown(value: unknown): string {\n if (value === null || value === undefined) {\n return ''\n } else if (typeof value === 'string') {\n return value\n } else {\n return String(value)\n }\n }\n}\n","import { Injectable } from '@angular/core'\n\ndeclare global {\n interface Window {\n 'onecx-shell-capabilities': Capability[]\n }\n}\n\nexport enum Capability {\n CURRENT_LOCATION_TOPIC = 'currentLocationTopic',\n PARAMETERS_TOPIC = 'parametersTopic',\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ShellCapabilityService {\n static setCapabilities(capabilities: Capability[]): void {\n window['onecx-shell-capabilities'] = capabilities\n }\n\n hasCapability(capability: Capability): boolean {\n return window['onecx-shell-capabilities']?.includes(capability) ?? false\n }\n}\n","// services\nexport * from './lib/services/app-config-service'\nexport * from './lib/services/app-state.service'\nexport * from './lib/services/configuration.service'\nexport * from './lib/services/user.service'\nexport * from './lib/services/portal-message.service'\nexport * from './lib/services/theme.service'\nexport * from './lib/services/remote-components.service'\nexport * from './lib/services/workspace.service'\nexport * from './lib/services/shell-capability.service'\n\n// models\nexport * from './lib/model/config-key.model'\n\n// core\nexport * from './lib/api/injection-tokens'\n\n// utils\n\nexport { MfeInfo, Theme } from '@onecx/integration-interface'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
@@ -5,10 +5,8 @@ export * from './lib/services/user.service';
|
|
5
5
|
export * from './lib/services/portal-message.service';
|
6
6
|
export * from './lib/services/theme.service';
|
7
7
|
export * from './lib/services/remote-components.service';
|
8
|
-
export * from './lib/services/initialize-module-guard.service';
|
9
8
|
export * from './lib/services/workspace.service';
|
9
|
+
export * from './lib/services/shell-capability.service';
|
10
10
|
export * from './lib/model/config-key.model';
|
11
|
-
export * from './lib/api/iauth.service';
|
12
11
|
export * from './lib/api/injection-tokens';
|
13
|
-
export * from './lib/utils/add-initialize-module-guard.utils';
|
14
12
|
export { MfeInfo, Theme } from '@onecx/integration-interface';
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
2
|
-
import { IAuthService } from './iauth.service';
|
3
2
|
export interface LibConfig {
|
4
3
|
appId: string;
|
5
4
|
portalId: string;
|
@@ -13,11 +12,5 @@ export interface LibConfig {
|
|
13
12
|
remoteConfigURL: string;
|
14
13
|
}
|
15
14
|
export declare const APP_CONFIG: InjectionToken<LibConfig>;
|
16
|
-
/**
|
17
|
-
* @deprecated
|
18
|
-
* Please do not inject the auth service at all.
|
19
|
-
* There are better ways to achieve what you want. Please use permission service or user service.
|
20
|
-
*/
|
21
|
-
export declare const AUTH_SERVICE: InjectionToken<IAuthService>;
|
22
15
|
export declare const SANITY_CHECK: InjectionToken<string>;
|
23
16
|
export declare const APPLICATION_NAME: InjectionToken<string>;
|
@@ -25,5 +25,10 @@ export declare enum CONFIG_KEY {
|
|
25
25
|
IS_SHELL = "IS_SHELL",
|
26
26
|
AUTH_SERVICE = "AUTH_SERVICE",
|
27
27
|
AUTH_SERVICE_CUSTOM_URL = "AUTH_SERVICE_CUSTOM_URL",
|
28
|
-
AUTH_SERVICE_CUSTOM_MODULE_NAME = "AUTH_SERVICE_CUSTOM_MODULE_NAME"
|
28
|
+
AUTH_SERVICE_CUSTOM_MODULE_NAME = "AUTH_SERVICE_CUSTOM_MODULE_NAME",
|
29
|
+
POLYFILL_SCOPE_MODE = "POLYFILL_SCOPE_MODE"
|
30
|
+
}
|
31
|
+
export declare enum POLYFILL_SCOPE_MODE {
|
32
|
+
PERFORMANCE = "PERFORMANCE",
|
33
|
+
PRECISION = "PRECISION"
|
29
34
|
}
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
2
1
|
import { BehaviorSubject } from 'rxjs';
|
3
2
|
import * as i0 from "@angular/core";
|
4
3
|
export declare class AppConfigService {
|
@@ -6,7 +5,6 @@ export declare class AppConfigService {
|
|
6
5
|
config$: BehaviorSubject<{
|
7
6
|
[key: string]: string;
|
8
7
|
}>;
|
9
|
-
constructor(http: HttpClient);
|
10
8
|
init(baseUrl: string): Promise<void>;
|
11
9
|
getProperty(key: string): string | undefined;
|
12
10
|
setProperty(key: string, val: string): void;
|
@@ -1,21 +1,17 @@
|
|
1
1
|
import { OnDestroy } from '@angular/core';
|
2
|
-
import { GlobalErrorTopic, GlobalLoadingTopic, CurrentMfeTopic, CurrentPageTopic, CurrentWorkspaceTopic, IsAuthenticatedTopic } from '@onecx/integration-interface';
|
2
|
+
import { GlobalErrorTopic, GlobalLoadingTopic, CurrentMfeTopic, CurrentPageTopic, CurrentWorkspaceTopic, IsAuthenticatedTopic, CurrentLocationTopic } from '@onecx/integration-interface';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export declare class AppStateService implements OnDestroy {
|
5
5
|
globalError$: GlobalErrorTopic;
|
6
6
|
globalLoading$: GlobalLoadingTopic;
|
7
7
|
currentMfe$: CurrentMfeTopic;
|
8
|
+
currentLocation$: CurrentLocationTopic;
|
8
9
|
/**
|
9
10
|
* This topic will only fire when pageInfo.path matches document.location.pathname,
|
10
11
|
* if not it will fire undefined.
|
11
12
|
*/
|
12
13
|
currentPage$: CurrentPageTopic;
|
13
14
|
currentWorkspace$: CurrentWorkspaceTopic;
|
14
|
-
/**
|
15
|
-
* @deprecated Will be replaced by currentWorkspace$
|
16
|
-
*/
|
17
|
-
get currentPortal$(): CurrentWorkspaceTopic;
|
18
|
-
set currentPortal$(value: CurrentWorkspaceTopic);
|
19
15
|
/**
|
20
16
|
* This Topic is initialized as soon as the authentication is done
|
21
17
|
*/
|
@@ -1,21 +1,18 @@
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
2
1
|
import { OnDestroy } from '@angular/core';
|
3
|
-
import { Config
|
2
|
+
import { Config } from '@onecx/integration-interface';
|
4
3
|
import { CONFIG_KEY } from '../model/config-key.model';
|
5
4
|
import * as i0 from "@angular/core";
|
6
5
|
export declare class ConfigurationService implements OnDestroy {
|
7
6
|
private http;
|
8
|
-
private defaultConfig
|
9
|
-
config
|
10
|
-
|
11
|
-
[key: string]: string;
|
12
|
-
} | undefined);
|
7
|
+
private defaultConfig;
|
8
|
+
private config$;
|
9
|
+
private semaphore;
|
13
10
|
ngOnDestroy(): void;
|
14
11
|
init(): Promise<boolean>;
|
15
12
|
get isInitialized(): Promise<void>;
|
16
|
-
getProperty(key: CONFIG_KEY): string | undefined
|
13
|
+
getProperty(key: CONFIG_KEY): Promise<string | undefined>;
|
17
14
|
setProperty(key: string, val: string): Promise<void>;
|
18
|
-
getConfig(): Config | undefined
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationService,
|
15
|
+
getConfig(): Promise<Config | undefined>;
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationService, never>;
|
20
17
|
static ɵprov: i0.ɵɵInjectableDeclaration<ConfigurationService>;
|
21
18
|
}
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { OnDestroy } from '@angular/core';
|
2
|
-
import { TranslateService } from '@ngx-translate/core';
|
3
2
|
import { MessageTopic } from '@onecx/integration-interface';
|
4
3
|
import * as i0 from "@angular/core";
|
5
4
|
export type Message = {
|
@@ -19,7 +18,6 @@ export type Message = {
|
|
19
18
|
};
|
20
19
|
export declare class PortalMessageService implements OnDestroy {
|
21
20
|
private translateService;
|
22
|
-
constructor(translateService: TranslateService);
|
23
21
|
message$: MessageTopic;
|
24
22
|
success(msg: Message): void;
|
25
23
|
info(msg: Message): void;
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
declare global {
|
3
|
+
interface Window {
|
4
|
+
'onecx-shell-capabilities': Capability[];
|
5
|
+
}
|
6
|
+
}
|
7
|
+
export declare enum Capability {
|
8
|
+
CURRENT_LOCATION_TOPIC = "currentLocationTopic",
|
9
|
+
PARAMETERS_TOPIC = "parametersTopic"
|
10
|
+
}
|
11
|
+
export declare class ShellCapabilityService {
|
12
|
+
static setCapabilities(capabilities: Capability[]): void;
|
13
|
+
hasCapability(capability: Capability): boolean;
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShellCapabilityService, never>;
|
15
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ShellCapabilityService>;
|
16
|
+
}
|
@@ -1,17 +1,8 @@
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
2
1
|
import { OnDestroy } from '@angular/core';
|
3
|
-
import { CurrentThemeTopic
|
4
|
-
import { ConfigurationService } from './configuration.service';
|
2
|
+
import { CurrentThemeTopic } from '@onecx/integration-interface';
|
5
3
|
import * as i0 from "@angular/core";
|
6
4
|
export declare class ThemeService implements OnDestroy {
|
7
|
-
private configService;
|
8
|
-
private http;
|
9
|
-
baseUrlV1: string;
|
10
5
|
currentTheme$: CurrentThemeTopic;
|
11
|
-
constructor(configService: ConfigurationService, http: HttpClient);
|
12
|
-
getThemeHref(themeId: string): string;
|
13
|
-
loadAndApplyTheme(themeName: string): import("rxjs").Observable<Theme>;
|
14
|
-
apply(theme: Theme): Promise<void>;
|
15
6
|
ngOnDestroy(): void;
|
16
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
|
17
8
|
static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
|
@@ -1,18 +1,16 @@
|
|
1
1
|
import { OnDestroy } from '@angular/core';
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
3
2
|
import { UserProfileTopic } from '@onecx/integration-interface';
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
export declare class UserService implements OnDestroy {
|
6
6
|
profile$: UserProfileTopic;
|
7
|
-
permissions$: BehaviorSubject<string[]>;
|
8
7
|
lang$: BehaviorSubject<string>;
|
9
8
|
private permissionsTopic$;
|
10
|
-
private oldStylePermissionsInitialized;
|
11
9
|
constructor();
|
12
10
|
ngOnDestroy(): void;
|
13
|
-
|
11
|
+
getPermissions(): import("rxjs").Observable<string[]>;
|
12
|
+
hasPermission(permissionKey: string | string[] | undefined): Promise<boolean>;
|
14
13
|
private determineLanguage;
|
15
|
-
private extractPermissions;
|
16
14
|
get isInitialized(): Promise<void>;
|
17
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<UserService, never>;
|
18
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<UserService>;
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { AppStateService } from './app-state.service';
|
2
1
|
import { Observable } from 'rxjs';
|
2
|
+
import { AppStateService } from './app-state.service';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export declare class WorkspaceService {
|
5
5
|
protected appStateService: AppStateService;
|
@@ -7,7 +7,6 @@ export declare class WorkspaceService {
|
|
7
7
|
private aliasEnd;
|
8
8
|
private paramStart;
|
9
9
|
private paramEnd;
|
10
|
-
constructor(appStateService: AppStateService);
|
11
10
|
getUrl(productName: string, appId: string, endpointName?: string, endpointParameters?: Record<string, unknown>): Observable<string>;
|
12
11
|
doesUrlExistFor(productName: string, appId: string, endpointName?: string): Observable<boolean>;
|
13
12
|
private constructBaseUrlFromWorkspace;
|
package/migrations.json
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
{
|
2
|
+
"generators": {
|
3
|
+
"migrate-onecx-to-v6": {
|
4
|
+
"cli": "nx",
|
5
|
+
"version": "6.0.0",
|
6
|
+
"description": "Update package json to Angular 19, PrimeNG 19, OneCX versions to v6 and other dependencies to be compatible with Angular 19.",
|
7
|
+
"factory": "migrations/v6/migrate-onecx-to-v6"
|
8
|
+
},
|
9
|
+
"remove-add-initialize-module-guard": {
|
10
|
+
"cli": "nx",
|
11
|
+
"version": "6.0.0",
|
12
|
+
"description": "Removes all occurrences of addInitializeModuleGuard.",
|
13
|
+
"factory": "migrations/v6/remove-add-initialize-module-guard"
|
14
|
+
},
|
15
|
+
"replace-provide-app-service-mock": {
|
16
|
+
"cli": "nx",
|
17
|
+
"version": "6.0.0",
|
18
|
+
"description": "Detects and replaces all occurrences of provideAppServiceMock with provideAppStateServiceMock.",
|
19
|
+
"factory": "migrations/v6/replace-provide-app-service-mock"
|
20
|
+
},
|
21
|
+
"remove-auth-service": {
|
22
|
+
"cli": "nx",
|
23
|
+
"version": "6.0.0",
|
24
|
+
"description": "Removes all imports of IAuthService and AUTH_SERVICE and warns for usage.",
|
25
|
+
"factory": "migrations/v6/remove-auth-service"
|
26
|
+
}
|
27
|
+
},
|
28
|
+
"packageJsonUpdates": {
|
29
|
+
"6.0.0": {
|
30
|
+
"version": "6.0.0",
|
31
|
+
"packages": {
|
32
|
+
"@angular/cli": {
|
33
|
+
"version": "~19.0.0",
|
34
|
+
"alwaysAddToPackageJson": false
|
35
|
+
},
|
36
|
+
"@nx/angular": {
|
37
|
+
"version": "~20.3.0",
|
38
|
+
"alwaysAddToPackageJson": false
|
39
|
+
},
|
40
|
+
"@ngx-translate/core": {
|
41
|
+
"version": "~16.0.4",
|
42
|
+
"alwaysAddToPackageJson": false
|
43
|
+
},
|
44
|
+
"primeng": {
|
45
|
+
"version": "~19.0.0",
|
46
|
+
"alwaysAddToPackageJson": false
|
47
|
+
}
|
48
|
+
}
|
49
|
+
},
|
50
|
+
"version": "null"
|
51
|
+
}
|
52
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
2
|
+
import { AppConfigService } from '@onecx/angular-integration-interface';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export declare function provideAppConfigServiceMock(): (typeof AppConfigServiceMock | {
|
5
|
+
provide: typeof AppConfigService;
|
6
|
+
useExisting: typeof AppConfigServiceMock;
|
7
|
+
})[];
|
8
|
+
export declare class AppConfigServiceMock {
|
9
|
+
config$: BehaviorSubject<{
|
10
|
+
[key: string]: string;
|
11
|
+
}>;
|
12
|
+
init(baseUrl: string): Promise<void>;
|
13
|
+
getProperty(key: string): string | undefined;
|
14
|
+
setProperty(key: string, val: string): void;
|
15
|
+
getConfig(): {
|
16
|
+
[key: string]: string;
|
17
|
+
};
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppConfigServiceMock, never>;
|
19
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AppConfigServiceMock>;
|
20
|
+
}
|
@@ -1,14 +1,7 @@
|
|
1
|
-
import { PageInfo, Workspace } from '@onecx/integration-interface';
|
1
|
+
import { CurrentLocationTopicPayload, MfeInfo, PageInfo, Workspace } from '@onecx/integration-interface';
|
2
2
|
import { AppStateService } from '@onecx/angular-integration-interface';
|
3
|
-
import { FakeTopic } from '
|
3
|
+
import { FakeTopic } from '@onecx/accelerator';
|
4
4
|
import * as i0 from "@angular/core";
|
5
|
-
/**
|
6
|
-
* @deprecated use provideAppStateServiceMock()
|
7
|
-
*/
|
8
|
-
export declare function provideAppServiceMock(): (typeof AppStateServiceMock | {
|
9
|
-
provide: typeof AppStateService;
|
10
|
-
useExisting: typeof AppStateServiceMock;
|
11
|
-
})[];
|
12
5
|
export declare function provideAppStateServiceMock(): (typeof AppStateServiceMock | {
|
13
6
|
provide: typeof AppStateService;
|
14
7
|
useExisting: typeof AppStateServiceMock;
|
@@ -16,15 +9,11 @@ export declare function provideAppStateServiceMock(): (typeof AppStateServiceMoc
|
|
16
9
|
export declare class AppStateServiceMock {
|
17
10
|
globalError$: FakeTopic<unknown>;
|
18
11
|
globalLoading$: FakeTopic<boolean>;
|
19
|
-
currentMfe$: FakeTopic<
|
20
|
-
mountPath: string;
|
21
|
-
remoteBaseUrl: string;
|
22
|
-
baseHref: string;
|
23
|
-
shellName: string;
|
24
|
-
}>;
|
12
|
+
currentMfe$: FakeTopic<MfeInfo>;
|
25
13
|
currentPage$: FakeTopic<PageInfo | undefined>;
|
26
14
|
currentPortal$: FakeTopic<Workspace>;
|
27
15
|
currentWorkspace$: FakeTopic<Workspace>;
|
16
|
+
currentLocation$: FakeTopic<CurrentLocationTopicPayload>;
|
28
17
|
isAuthenticated$: FakeTopic<null>;
|
29
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppStateServiceMock, never>;
|
30
19
|
static ɵprov: i0.ɵɵInjectableDeclaration<AppStateServiceMock>;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { Config } from '@onecx/integration-interface';
|
2
|
+
import { CONFIG_KEY } from '@onecx/angular-integration-interface';
|
3
|
+
import { ConfigurationService } from '@onecx/angular-integration-interface';
|
4
|
+
import { FakeTopic } from '@onecx/accelerator';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
export declare function provideConfigurationServiceMock(): (typeof ConfigurationServiceMock | {
|
7
|
+
provide: typeof ConfigurationService;
|
8
|
+
useExisting: typeof ConfigurationServiceMock;
|
9
|
+
})[];
|
10
|
+
export declare class ConfigurationServiceMock {
|
11
|
+
config$: FakeTopic<Config>;
|
12
|
+
private resolveInitPromise;
|
13
|
+
private isInitializedPromise;
|
14
|
+
constructor();
|
15
|
+
init(config?: Config): Promise<boolean>;
|
16
|
+
get isInitialized(): Promise<void>;
|
17
|
+
getProperty(key: CONFIG_KEY): Promise<string | undefined>;
|
18
|
+
setProperty(key: string, val: string): Promise<void>;
|
19
|
+
getConfig(): Promise<Config | undefined>;
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationServiceMock, never>;
|
21
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ConfigurationServiceMock>;
|
22
|
+
}
|
package/mocks/index.d.ts
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
-
export * from './
|
1
|
+
export * from './app-config-service-mock';
|
2
2
|
export * from './app-state-service-mock';
|
3
|
-
export * from './
|
3
|
+
export * from './configuration-service-mock';
|
4
|
+
export * from './portal-message-service-mock';
|
5
|
+
export * from './remote-components-service-mock';
|
6
|
+
export * from './user-service-mock';
|
7
|
+
export * from './shell-capability-service-mock';
|
8
|
+
export * from '@onecx/accelerator';
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { FakeTopic } from '@onecx/accelerator';
|
2
|
+
import { Message as PortalMessage, PortalMessageService } from '@onecx/angular-integration-interface';
|
3
|
+
import { Message } from '@onecx/integration-interface';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export declare function providePortalMessageServiceMock(): (typeof PortalMessageServiceMock | {
|
6
|
+
provide: typeof PortalMessageService;
|
7
|
+
useExisting: typeof PortalMessageServiceMock;
|
8
|
+
})[];
|
9
|
+
export declare class PortalMessageServiceMock {
|
10
|
+
message$: FakeTopic<Message>;
|
11
|
+
success(msg: PortalMessage): void;
|
12
|
+
info(msg: PortalMessage): void;
|
13
|
+
error(msg: PortalMessage): void;
|
14
|
+
warning(msg: PortalMessage): void;
|
15
|
+
private addTranslated;
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PortalMessageServiceMock, never>;
|
17
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PortalMessageServiceMock>;
|
18
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { RemoteComponentsInfo } from '@onecx/integration-interface';
|
2
|
+
import { RemoteComponentsService } from '@onecx/angular-integration-interface';
|
3
|
+
import { FakeTopic } from '@onecx/accelerator';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export declare function provideRemoteComponentsServiceMock(): (typeof RemoteComponentsServiceMock | {
|
6
|
+
provide: typeof RemoteComponentsService;
|
7
|
+
useExisting: typeof RemoteComponentsServiceMock;
|
8
|
+
})[];
|
9
|
+
export declare class RemoteComponentsServiceMock {
|
10
|
+
remoteComponents$: FakeTopic<RemoteComponentsInfo>;
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RemoteComponentsServiceMock, never>;
|
12
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<RemoteComponentsServiceMock>;
|
13
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { Capability, ShellCapabilityService } from '@onecx/angular-integration-interface';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export declare function provideShellCapabilityServiceMock(): (typeof ShellCapabilityServiceMock | {
|
4
|
+
provide: typeof ShellCapabilityService;
|
5
|
+
useExisting: typeof ShellCapabilityServiceMock;
|
6
|
+
})[];
|
7
|
+
export declare class ShellCapabilityServiceMock {
|
8
|
+
static capabilities: Capability[];
|
9
|
+
static setCapabilities(capabilities: Capability[]): void;
|
10
|
+
hasCapability(capability: Capability): boolean;
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShellCapabilityServiceMock, never>;
|
12
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ShellCapabilityServiceMock>;
|
13
|
+
}
|