@abp/ng.core 10.1.1 → 10.2.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.core.mjs","sources":["../../../../packages/core/src/lib/abstracts/ng-model.component.ts","../../../../packages/core/src/lib/abstracts/auth.guard.ts","../../../../packages/core/src/lib/abstracts/auth.service.ts","../../../../packages/core/src/lib/abstracts/auth-error-filter.ts","../../../../packages/core/src/lib/tokens/localization.token.ts","../../../../packages/core/src/lib/tokens/options.token.ts","../../../../packages/core/src/lib/utils/localization-utils.ts","../../../../packages/core/src/lib/utils/string-utils.ts","../../../../packages/core/src/lib/services/content-projection.service.ts","../../../../packages/core/src/lib/utils/array-utils.ts","../../../../packages/core/src/lib/utils/common-utils.ts","../../../../packages/core/src/lib/utils/date-utils.ts","../../../../packages/core/src/lib/utils/object-utils.ts","../../../../packages/core/src/lib/utils/internal-store-utils.ts","../../../../packages/core/src/lib/services/environment.service.ts","../../../../packages/core/src/lib/utils/environment-utils.ts","../../../../packages/core/src/lib/utils/factory-utils.ts","../../../../packages/core/src/lib/utils/file-utils.ts","../../../../packages/core/src/lib/utils/number-utils.ts","../../../../packages/core/src/lib/utils/form-utils.ts","../../../../packages/core/src/lib/utils/generator-utils.ts","../../../../packages/core/src/lib/utils/http-utils.ts","../../../../packages/core/src/lib/services/local-storage.service.ts","../../../../packages/core/src/lib/tokens/app-config.token.ts","../../../../packages/core/src/lib/tokens/cookie-language-key.token.ts","../../../../packages/core/src/lib/tokens/list.token.ts","../../../../packages/core/src/lib/tokens/lodaer-delay.token.ts","../../../../packages/core/src/lib/tokens/manage-profile.token.ts","../../../../packages/core/src/lib/tokens/queue.token.ts","../../../../packages/core/src/lib/tokens/tenant-key.token.ts","../../../../packages/core/src/lib/tokens/include-localization-resources.token.ts","../../../../packages/core/src/lib/tokens/pipe-to-login.token.ts","../../../../packages/core/src/lib/tokens/set-token-response-to-storage.token.ts","../../../../packages/core/src/lib/tokens/check-authentication-state.ts","../../../../packages/core/src/lib/tokens/http-context.token.ts","../../../../packages/core/src/lib/tokens/others-group.token.ts","../../../../packages/core/src/lib/tokens/tenant-not-found-by-name.ts","../../../../packages/core/src/lib/tokens/compare-func.token.ts","../../../../packages/core/src/lib/tokens/dynamic-layout.token.ts","../../../../packages/core/src/lib/tokens/title-strategy-disable-project-name.token.ts","../../../../packages/core/src/lib/tokens/ssr-state.token.ts","../../../../packages/core/src/lib/services/cookie-storage.service.ts","../../../../packages/core/src/lib/services/session-state.service.ts","../../../../packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts","../../../../packages/core/src/lib/services/multi-tenancy.service.ts","../../../../packages/core/src/lib/utils/multi-tenancy-utils.ts","../../../../packages/core/src/lib/utils/initial-utils.ts","../../../../packages/core/src/lib/strategies/cross-origin.strategy.ts","../../../../packages/core/src/lib/strategies/dom.strategy.ts","../../../../packages/core/src/lib/utils/lazy-load-utils.ts","../../../../packages/core/src/lib/utils/queue.ts","../../../../packages/core/src/lib/utils/route-utils.ts","../../../../packages/core/src/lib/utils/tree-utils.ts","../../../../packages/core/src/lib/utils/server-cookie-utils.ts","../../../../packages/core/src/lib/services/dom-insertion.service.ts","../../../../packages/core/src/lib/services/html-encoding.service.ts","../../../../packages/core/src/lib/services/http-error-reporter.service.ts","../../../../packages/core/src/lib/services/http-wait.service.ts","../../../../packages/core/src/lib/services/resource-wait.service.ts","../../../../packages/core/src/lib/services/lazy-load.service.ts","../../../../packages/core/src/lib/services/list.service.ts","../../../../packages/core/src/lib/services/permission.service.ts","../../../../packages/core/src/lib/services/replaceable-components.service.ts","../../../../packages/core/src/lib/clients/http.client.ts","../../../../packages/core/src/lib/services/rest.service.ts","../../../../packages/core/src/lib/services/router-events.service.ts","../../../../packages/core/src/lib/services/router-wait.service.ts","../../../../packages/core/src/lib/services/routes.service.ts","../../../../packages/core/src/lib/services/subscription.service.ts","../../../../packages/core/src/lib/services/track-by.service.ts","../../../../packages/core/src/lib/services/window.service.ts","../../../../packages/core/src/lib/services/internet-connection-service.ts","../../../../packages/core/src/lib/services/local-storage-listener.service.ts","../../../../packages/core/src/lib/services/title-strategy.service.ts","../../../../packages/core/src/lib/services/timezone.service.ts","../../../../packages/core/src/lib/services/time.service.ts","../../../../packages/core/src/lib/strategies/container.strategy.ts","../../../../packages/core/src/lib/strategies/content-security.strategy.ts","../../../../packages/core/src/lib/strategies/content.strategy.ts","../../../../packages/core/src/lib/strategies/context.strategy.ts","../../../../packages/core/src/lib/strategies/loading.strategy.ts","../../../../packages/core/src/lib/strategies/projection.strategy.ts","../../../../packages/core/src/lib/services/dom-strategy.service.ts","../../../../packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts","../../../../packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts","../../../../packages/core/src/lib/services/config-state.service.ts","../../../../packages/core/src/lib/services/localization.service.ts","../../../../packages/core/src/lib/components/dynamic-layout.component.ts","../../../../packages/core/src/lib/components/replaceable-route-container.component.ts","../../../../packages/core/src/lib/components/router-outlet.component.ts","../../../../packages/core/src/lib/constants/different-locales.ts","../../../../packages/core/src/lib/constants/default-layouts.ts","../../../../packages/core/src/lib/directives/autofocus.directive.ts","../../../../packages/core/src/lib/directives/debounce.directive.ts","../../../../packages/core/src/lib/directives/for.directive.ts","../../../../packages/core/src/lib/directives/form-submit.directive.ts","../../../../packages/core/src/lib/directives/init.directive.ts","../../../../packages/core/src/lib/directives/permission.directive.ts","../../../../packages/core/src/lib/directives/replaceable-template.directive.ts","../../../../packages/core/src/lib/directives/stop-propagation.directive.ts","../../../../packages/core/src/lib/directives/show-password.directive.ts","../../../../packages/core/src/lib/directives/caps-lock.directive.ts","../../../../packages/core/src/lib/utils/date-extensions.ts","../../../../packages/core/src/lib/providers/cookie-language.provider.ts","../../../../packages/core/src/lib/providers/locale.provider.ts","../../../../packages/core/src/lib/providers/include-localization-resources.provider.ts","../../../../packages/core/src/lib/handlers/routes.handler.ts","../../../../packages/core/src/lib/interceptors/api.interceptor.ts","../../../../packages/core/src/lib/interceptors/timezone.interceptor.ts","../../../../packages/core/src/lib/interceptors/transfer-state.interceptor.ts","../../../../packages/core/src/lib/providers/core-module-config.provider.ts","../../../../packages/core/src/lib/pipes/localization.pipe.ts","../../../../packages/core/src/lib/pipes/safe-html.pipe.ts","../../../../packages/core/src/lib/pipes/sort.pipe.ts","../../../../packages/core/src/lib/pipes/to-injector.pipe.ts","../../../../packages/core/src/lib/pipes/short-date.pipe.ts","../../../../packages/core/src/lib/pipes/short-time.pipe.ts","../../../../packages/core/src/lib/pipes/short-date-time.pipe.ts","../../../../packages/core/src/lib/pipes/utc-to-local.pipe.ts","../../../../packages/core/src/lib/pipes/async-localization.pipe.ts","../../../../packages/core/src/lib/pipes/lazy-localization.pipe.ts","../../../../packages/core/src/lib/pipes/html-encode.pipe.ts","../../../../packages/core/src/lib/core.module.ts","../../../../packages/core/src/lib/guards/permission.guard.ts","../../../../packages/core/src/lib/localization.module.ts","../../../../packages/core/src/lib/models/dtos.ts","../../../../packages/core/src/lib/models/auth-events.ts","../../../../packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts","../../../../packages/core/src/lib/validators/age.validator.ts","../../../../packages/core/src/lib/validators/credit-card.validator.ts","../../../../packages/core/src/lib/validators/range.validator.ts","../../../../packages/core/src/lib/validators/required.validator.ts","../../../../packages/core/src/lib/validators/string-length.validator.ts","../../../../packages/core/src/lib/validators/unique-character.validator.ts","../../../../packages/core/src/lib/validators/url.validator.ts","../../../../packages/core/src/lib/validators/username.validator.ts","../../../../packages/core/src/lib/validators/index.ts","../../../../packages/core/src/public-api.ts","../../../../packages/core/src/abp-ng.core.ts"],"sourcesContent":["import { ChangeDetectorRef, Component, inject, Input } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\n\r\n// Not an abstract class on purpose. Do not change!\r\n@Component({\r\n template: '',\r\n})\r\nexport class AbstractNgModelComponent<T = any, U = T> implements ControlValueAccessor {\r\n protected _value!: T;\r\n protected cdRef = inject(ChangeDetectorRef);\r\n onChange?: (value: T) => void;\r\n onTouched?: () => void;\r\n\r\n @Input()\r\n disabled?: boolean;\r\n\r\n @Input()\r\n readonly?: boolean;\r\n\r\n @Input()\r\n valueFn: (value: U, previousValue?: T) => T = value => value as any as T;\r\n\r\n @Input()\r\n valueLimitFn: (value: T, previousValue?: T) => any = value => false;\r\n\r\n @Input()\r\n set value(value: T) {\r\n value = this.valueFn(value as any as U, this._value);\r\n\r\n if (this.valueLimitFn(value, this._value) !== false || this.readonly) return;\r\n\r\n this._value = value;\r\n this.notifyValueChange();\r\n }\r\n\r\n get value(): T {\r\n return this._value || this.defaultValue;\r\n }\r\n\r\n get defaultValue(): T {\r\n return this._value;\r\n }\r\n\r\n notifyValueChange(): void {\r\n if (this.onChange) {\r\n this.onChange(this.value);\r\n }\r\n }\r\n\r\n writeValue(value: T): void {\r\n this._value = this.valueLimitFn(value, this._value) || value;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { IAbpGuard } from './abstract-guard';\r\nimport { CanActivateFn } from '@angular/router';\r\n\r\n/**\r\n * @deprecated Use `authGuard` *function* instead.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGuard implements IAbpGuard {\r\n canActivate(): Observable<boolean> | boolean | UrlTree {\r\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\r\n return false;\r\n }\r\n}\r\n\r\nexport const authGuard: CanActivateFn = () => {\r\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\r\n return false;\r\n};\r\n\r\n\r\nexport const asyncAuthGuard: CanActivateFn = () => {\r\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\r\n return false;\r\n};\r\n","import { HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Params } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { LoginParams } from '../models/auth';\r\nimport { AbpAuthResponse } from './auth-response.model';\r\n\r\n/**\r\n * Abstract service for Authentication.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService implements IAuthService {\r\n private warningMessage() {\r\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\r\n }\r\n\r\n get oidc(): boolean {\r\n this.warningMessage();\r\n return false;\r\n }\r\n\r\n set oidc(value: boolean) {\r\n this.warningMessage();\r\n }\r\n\r\n init(): Promise<any> {\r\n this.warningMessage();\r\n return Promise.resolve(undefined);\r\n }\r\n\r\n login(params: LoginParams): Observable<any> {\r\n this.warningMessage();\r\n return of(undefined);\r\n }\r\n\r\n logout(queryParams?: Params): Observable<any> {\r\n this.warningMessage();\r\n return of(undefined);\r\n }\r\n\r\n navigateToLogin(queryParams?: Params): void { }\r\n\r\n get isInternalAuth(): boolean {\r\n throw new Error('not implemented');\r\n }\r\n\r\n get isAuthenticated(): boolean {\r\n this.warningMessage();\r\n return false;\r\n }\r\n\r\n loginUsingGrant(\r\n grantType: string,\r\n parameters: object,\r\n headers?: HttpHeaders,\r\n ): Promise<AbpAuthResponse> {\r\n console.log({ grantType, parameters, headers });\r\n return Promise.reject(new Error('not implemented'));\r\n }\r\n\r\n getAccessTokenExpiration(): number {\r\n this.warningMessage();\r\n return 0;\r\n }\r\n\r\n getRefreshToken(): string {\r\n this.warningMessage();\r\n return '';\r\n }\r\n\r\n getAccessToken(): string {\r\n this.warningMessage();\r\n return '';\r\n }\r\n\r\n refreshToken(): Promise<AbpAuthResponse> {\r\n this.warningMessage();\r\n return Promise.resolve(undefined);\r\n }\r\n}\r\n\r\nexport interface IAuthService {\r\n oidc: boolean;\r\n\r\n get isInternalAuth(): boolean;\r\n\r\n get isAuthenticated(): boolean;\r\n\r\n init(): Promise<any>;\r\n\r\n logout(queryParams?: Params): Observable<any>;\r\n\r\n navigateToLogin(queryParams?: Params): void;\r\n\r\n login(params: LoginParams): Observable<any>;\r\n\r\n loginUsingGrant(\r\n grantType: string,\r\n parameters: object,\r\n headers?: HttpHeaders,\r\n ): Promise<AbpAuthResponse>;\r\n\r\n getAccessTokenExpiration(): number;\r\n\r\n getRefreshToken(): string;\r\n\r\n getAccessToken(): string;\r\n\r\n refreshToken(): Promise<AbpAuthResponse | void>;\r\n}\r\n","import { AuthErrorEvent, AuthErrorFilter } from '../models';\r\n\r\nexport abstract class AbstractAuthErrorFilter<T, E> {\r\n abstract get(id: string): T;\r\n abstract add(filter: T): void;\r\n abstract patch(item: Partial<T>): void;\r\n abstract remove(id: string): void;\r\n abstract run(event: E): boolean;\r\n}\r\n\r\nexport class AuthErrorFilterService<\r\n T = AuthErrorFilter,\r\n E = AuthErrorEvent,\r\n> extends AbstractAuthErrorFilter<T, E> {\r\n private warningMessage() {\r\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\r\n }\r\n\r\n get(id: string): T {\r\n this.warningMessage();\r\n throw new Error('not implemented');\r\n }\r\n\r\n add(filter: T): void {\r\n this.warningMessage();\r\n }\r\n\r\n patch(item: Partial<T>): void {\r\n this.warningMessage();\r\n }\r\n\r\n remove(id: string): void {\r\n this.warningMessage();\r\n }\r\n\r\n run(event: E): boolean {\r\n this.warningMessage();\r\n throw new Error('not implemented');\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ABP } from '../models/common';\r\n\r\nexport const LOCALIZATIONS = new InjectionToken('LOCALIZATIONS');\r\n\r\nexport function localizationContributor(localizations?: ABP.Localization[]) {\r\n if (localizations) {\r\n localizations$.next([...localizations$.value, ...localizations]);\r\n }\r\n}\r\n\r\nexport const localizations$ = new BehaviorSubject<ABP.Localization[]>([]);\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ABP } from '../models/common';\r\n\r\nexport const CORE_OPTIONS = new InjectionToken<ABP.Root>('CORE_OPTIONS');\r\n\r\nexport function coreOptionsFactory({ ...options }: ABP.Root) {\r\n return {\r\n ...options,\r\n } as ABP.Root;\r\n}\r\n","import { ApplicationLocalizationConfigurationDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models';\r\n\r\n// This will not be necessary when only Angukar 9.1+ is supported\r\nexport function getLocaleDirection(locale: string): 'ltr' | 'rtl' {\r\n return /^(ar(-[A-Z]{2})?|ckb(-IR)?|fa(-AF)?|he|ks|lrc(-IQ)?|mzn|pa-Arab|ps(-PK)?|sd|ug|ur(-IN)?|uz-Arab|yi)$/.test(\r\n locale,\r\n )\r\n ? 'rtl'\r\n : 'ltr';\r\n}\r\n\r\nexport function createLocalizer(localization: ApplicationLocalizationConfigurationDto) {\r\n return (resourceName: string, key: string, defaultValue: string | null) => {\r\n if (resourceName === '_') return key;\r\n\r\n const resource = localization?.values?.[resourceName];\r\n\r\n if (!resource) return defaultValue;\r\n\r\n return resource[key] || defaultValue;\r\n };\r\n}\r\n\r\nexport function createLocalizerWithFallback(localization: ApplicationLocalizationConfigurationDto) {\r\n const findLocalization = createLocalizationFinder(localization);\r\n\r\n return (resourceNames: string[], keys: string[], defaultValue: string) => {\r\n const { localized } = findLocalization(resourceNames, keys);\r\n return localized || defaultValue;\r\n };\r\n}\r\n\r\nexport function createLocalizationPipeKeyGenerator(\r\n localization: ApplicationLocalizationConfigurationDto,\r\n) {\r\n const findLocalization = createLocalizationFinder(localization);\r\n\r\n return (resourceNames: string[], keys: string[], defaultKey: string | undefined) => {\r\n const { resourceName, key } = findLocalization(resourceNames, keys);\r\n return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`;\r\n };\r\n}\r\n\r\nfunction createLocalizationFinder(localization: ApplicationLocalizationConfigurationDto) {\r\n const localize = createLocalizer(localization);\r\n\r\n return (resourceNames: string[], keys: string[]) => {\r\n resourceNames = resourceNames.concat(localization.defaultResourceName || '').filter(Boolean);\r\n\r\n const resourceCount = resourceNames.length;\r\n const keyCount = keys.length;\r\n\r\n for (let i = 0; i < resourceCount; i++) {\r\n const resourceName = resourceNames[i];\r\n\r\n for (let j = 0; j < keyCount; j++) {\r\n const key = keys[j];\r\n const localized = localize(resourceName, key, null);\r\n if (localized) return { resourceName, key, localized };\r\n }\r\n }\r\n\r\n return { resourceName: undefined, key: undefined, localized: undefined };\r\n };\r\n}\r\n","export function createTokenParser(format: string) {\r\n return (str: string) => {\r\n const tokens: string[] = [];\r\n const regex = format.replace(/\\./g, '\\\\.').replace(/\\{\\s?([0-9a-zA-Z]+)\\s?\\}/g, (_, token) => {\r\n tokens.push(token);\r\n return '(.+)';\r\n });\r\n\r\n const matches = (str.match(regex) || []).slice(1);\r\n\r\n return matches.reduce((acc, v, i) => {\r\n const key = tokens[i];\r\n acc[key] = [...(acc[key] || []), v].filter(Boolean);\r\n return acc;\r\n }, {} as Record<string, string[]>);\r\n };\r\n}\r\n\r\nexport function interpolate(text: string, params: string[]) {\r\n return text\r\n .replace(/(['\"])?\\{\\s*(\\d+)\\s*\\}\\1/g, (_, quote, digit) => \r\n (quote ? quote : '') + (params[digit] ?? `{${digit}}`) + (quote ? quote : '')\r\n )\r\n .replace(/\\s+/g, ' ');\r\n}\r\n\r\nexport function escapeHtmlChars(value: any) {\r\n return value && typeof value === 'string'\r\n ? value\r\n .replace(/&/g, '&amp;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n : value;\r\n}\r\n","import { Injectable, Injector, TemplateRef, Type, inject } from '@angular/core';\r\nimport { ProjectionStrategy } from '../strategies/projection.strategy';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ContentProjectionService {\r\n private injector = inject(Injector);\r\n\r\n\r\n projectContent<T extends Type<any> | TemplateRef<any>>(\r\n projectionStrategy: ProjectionStrategy<T>,\r\n injector = this.injector,\r\n ) {\r\n return projectionStrategy.injectContent(injector);\r\n }\r\n}\r\n","export function pushValueTo<T>(array: T[]) {\r\n return (element: T) => {\r\n array.push(element);\r\n return array;\r\n };\r\n}\r\n","export function noop() {\r\n const fn = function () {};\r\n return fn;\r\n}\r\n\r\nexport function isUndefinedOrEmptyString(value: unknown): boolean {\r\n return value === undefined || value === '';\r\n}\r\n\r\nexport function isNullOrUndefined<T>(obj: T) {\r\n return obj === null || obj === undefined;\r\n}\r\n\r\nexport function isNullOrEmpty<T>(obj: T): boolean {\r\n return obj === null || obj === undefined || obj === '';\r\n}\r\n\r\nexport function exists<T>(obj: T): obj is T {\r\n return !isNullOrUndefined(obj);\r\n}\r\n\r\nexport function isObject<T>(obj: T): boolean {\r\n return obj instanceof Object;\r\n}\r\n\r\nexport function isArray<T>(obj: T): boolean {\r\n return Array.isArray(obj);\r\n}\r\n\r\nexport function isObjectAndNotArray<T>(obj: T): boolean {\r\n return isObject(obj) && !isArray(obj);\r\n}\r\n\r\nexport function isNode<T>(obj: T): boolean {\r\n return obj instanceof Node;\r\n}\r\n\r\nexport function isObjectAndNotArrayNotNode<T>(obj: T): boolean {\r\n return isObjectAndNotArray(obj) && !isNode(obj);\r\n}\r\n\r\nexport function checkHasProp<T>(object: T, key: string | keyof T): key is keyof T {\r\n return Object.prototype.hasOwnProperty.call(object, key);\r\n}\r\n","import { DateTimeFormatDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models';\r\nimport { ConfigStateService } from '../services';\r\n\r\nexport function getShortDateFormat(configStateService: ConfigStateService) {\r\n const dateTimeFormat = configStateService.getDeep(\r\n 'localization.currentCulture.dateTimeFormat',\r\n ) as DateTimeFormatDto;\r\n\r\n return dateTimeFormat.shortDatePattern;\r\n}\r\n\r\nexport function getShortTimeFormat(configStateService: ConfigStateService) {\r\n const dateTimeFormat = configStateService.getDeep(\r\n 'localization.currentCulture.dateTimeFormat',\r\n ) as DateTimeFormatDto;\r\n return dateTimeFormat?.shortTimePattern?.replace('tt', 'a');\r\n}\r\n\r\nexport function getShortDateShortTimeFormat(configStateService: ConfigStateService) {\r\n const dateTimeFormat = configStateService.getDeep(\r\n 'localization.currentCulture.dateTimeFormat',\r\n ) as DateTimeFormatDto;\r\n\r\n return `${dateTimeFormat.shortDatePattern} ${dateTimeFormat?.shortTimePattern?.replace('tt', 'a')}`;\r\n}\r\n","import {\r\n exists,\r\n isArray,\r\n isNode,\r\n isNullOrUndefined,\r\n isObject,\r\n isObjectAndNotArrayNotNode,\r\n} from './common-utils';\r\nimport { DeepPartial } from '../models';\r\n\r\nexport function deepMerge<T>(\r\n target: DeepPartial<T> | T,\r\n source: DeepPartial<T> | T,\r\n): DeepPartial<T> | T {\r\n if (isObjectAndNotArrayNotNode(target) && isObjectAndNotArrayNotNode(source)) {\r\n return deepMergeRecursively(target, source);\r\n } else if (isNullOrUndefined(target) && isNullOrUndefined(source)) {\r\n return {} as T;\r\n } else {\r\n return exists(source) ? (source as T) : target;\r\n }\r\n}\r\n\r\nfunction deepMergeRecursively<T>(\r\n target: DeepPartial<T> | T,\r\n source: DeepPartial<T> | T,\r\n): DeepPartial<T> | T {\r\n const shouldNotRecurse =\r\n isNullOrUndefined(target) ||\r\n isNullOrUndefined(source) || // at least one not defined\r\n isArray(target) ||\r\n isArray(source) || // at least one array\r\n !isObject(target) ||\r\n !isObject(source) || // at least one not an object\r\n isNode(target) ||\r\n isNode(source); // at least one node\r\n\r\n /**\r\n * if we will not recurse any further,\r\n * we will prioritize source if it is a defined value.\r\n */\r\n if (shouldNotRecurse) {\r\n return exists(source) ? (source as T) : target;\r\n }\r\n\r\n const keysOfTarget = Object.keys(target as { [key: string]: any });\r\n const keysOfSource = Object.keys(source as { [key: string]: any });\r\n const uniqueKeys = new Set(keysOfTarget.concat(keysOfSource));\r\n return [...uniqueKeys].reduce((retVal, key) => {\r\n (retVal as any)[key] = deepMergeRecursively(\r\n (target as { [key: string]: any })[key],\r\n (source as { [key: string]: any })[key],\r\n );\r\n return retVal;\r\n }, {} as T);\r\n}\r\n","import compare from 'just-compare';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { DeepPartial } from '../models';\r\nimport { deepMerge } from './object-utils';\r\n\r\nexport class InternalStore<State> {\r\n private state$ = new BehaviorSubject<State>(this.initialState);\r\n\r\n private update$ = new Subject<DeepPartial<State>>();\r\n\r\n get state() {\r\n return this.state$.value;\r\n }\r\n\r\n sliceState = <Slice>(\r\n selector: (state: State) => Slice,\r\n compareFn: (s1: Slice, s2: Slice) => boolean = compare,\r\n ) => this.state$.pipe(map(selector), distinctUntilChanged(compareFn));\r\n\r\n sliceUpdate = <Slice>(\r\n selector: (state: DeepPartial<State>) => Slice,\r\n filterFn = (x: Slice) => x !== undefined,\r\n ) => this.update$.pipe(map(selector), filter(filterFn));\r\n\r\n constructor(private initialState: State) {}\r\n\r\n patch(state: Partial<State>) {\r\n let patchedState = state as State;\r\n\r\n if (typeof state === 'object' && !Array.isArray(state)) {\r\n patchedState = { ...this.state, ...state };\r\n }\r\n\r\n this.state$.next(patchedState);\r\n this.update$.next(patchedState as DeepPartial<State>);\r\n }\r\n\r\n deepPatch(state: DeepPartial<State>) {\r\n // TODO: Strict improve deepMerge\r\n this.state$.next(deepMerge(this.state, state) as State);\r\n this.update$.next(state);\r\n }\r\n\r\n set(state: State) {\r\n this.state$.next(state);\r\n this.update$.next(state as DeepPartial<State>);\r\n }\r\n\r\n reset() {\r\n this.set(this.initialState);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Apis, Environment } from '../models/environment';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\n\r\nconst mapToApiUrl = (key: string | undefined) => (apis: Apis) =>\r\n ((key && apis[key]) || apis.default).url || apis.default.url;\r\n\r\nconst mapToIssuer = (issuer: string | undefined) => {\r\n if (!issuer) {\r\n return issuer;\r\n }\r\n return issuer.endsWith('/') ? issuer : issuer + '/';\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class EnvironmentService {\r\n private readonly store = new InternalStore({} as Environment);\r\n\r\n get createOnUpdateStream() {\r\n return this.store.sliceUpdate;\r\n }\r\n\r\n getEnvironment$(): Observable<Environment> {\r\n return this.store.sliceState(state => state);\r\n }\r\n\r\n getEnvironment(): Environment {\r\n return this.store.state;\r\n }\r\n\r\n getApiUrl(key: string | undefined) {\r\n return mapToApiUrl(key)(this.store.state?.apis);\r\n }\r\n\r\n getApiUrl$(key: string) {\r\n return this.store.sliceState(state => state.apis).pipe(map(mapToApiUrl(key)));\r\n }\r\n\r\n setState(environment: Environment) {\r\n this.store.set(environment);\r\n }\r\n\r\n getIssuer() {\r\n const issuer = this.store.state?.oAuthConfig?.issuer;\r\n\r\n return mapToIssuer(issuer);\r\n }\r\n\r\n getIssuer$() {\r\n return this.store.sliceState(state => state?.oAuthConfig?.issuer).pipe(map(mapToIssuer));\r\n }\r\n\r\n getImpersonation() {\r\n return this.store.state?.oAuthConfig?.impersonation || {};\r\n }\r\n\r\n getImpersonation$() {\r\n return this.store.sliceState(state => state?.oAuthConfig?.impersonation || {});\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injector, isDevMode } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { Environment, RemoteEnv } from '../models/environment';\r\nimport { EnvironmentService } from '../services/environment.service';\r\nimport { deepMerge } from './object-utils';\r\n\r\nexport function getRemoteEnv(injector: Injector, environment: Partial<Environment>) {\r\n const environmentService = injector.get(EnvironmentService);\r\n\r\n const { remoteEnv } = environment;\r\n const { headers = {}, method = 'GET', url } = remoteEnv || ({} as RemoteEnv);\r\n if (!url) return Promise.resolve();\r\n\r\n const http = injector.get(HttpClient);\r\n\r\n return http\r\n .request<Environment>(method, url, { headers })\r\n .pipe(\r\n catchError(err => {\r\n if (isDevMode()) {\r\n console.warn(\r\n `[ABP Environment] Failed to fetch remote environment from \"${url}\". ` +\r\n `Error: ${err.message || err}\\n` +\r\n `See https://abp.io/docs/latest/framework/ui/angular/environment#example-remoteenv-configuration for configuration details.`,\r\n );\r\n }\r\n return of(null);\r\n }),\r\n tap(env =>\r\n environmentService.setState(\r\n mergeEnvironments(environment, env || ({} as Environment), remoteEnv as RemoteEnv),\r\n ),\r\n ),\r\n )\r\n .toPromise();\r\n}\r\n\r\nfunction mergeEnvironments(\r\n local: Partial<Environment>,\r\n remote: Environment,\r\n config: RemoteEnv,\r\n): Environment {\r\n switch (config.mergeStrategy) {\r\n case 'deepmerge':\r\n return deepMerge(local, remote) as Environment;\r\n case 'overwrite':\r\n case null:\r\n case undefined:\r\n return remote;\r\n default:\r\n return config.mergeStrategy(local, remote);\r\n }\r\n}\r\n","import {\r\n Compiler,\r\n Injector,\r\n ModuleWithProviders,\r\n NgModuleFactory,\r\n NgModuleRef,\r\n StaticProvider,\r\n Type,\r\n} from '@angular/core';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { ConfigStateService } from '../services/config-state.service';\r\n\r\nexport class LazyModuleFactory<T> extends NgModuleFactory<T> {\r\n get moduleType(): Type<T> {\r\n return this.moduleWithProviders.ngModule;\r\n }\r\n\r\n constructor(private moduleWithProviders: ModuleWithProviders<T>) {\r\n super();\r\n }\r\n\r\n create(parentInjector: Injector | null): NgModuleRef<T> {\r\n const injector = Injector.create({\r\n ...(parentInjector && { parent: parentInjector }),\r\n providers: this.moduleWithProviders.providers as StaticProvider[],\r\n });\r\n\r\n const compiler = injector.get(Compiler);\r\n const factory = compiler.compileModuleSync(this.moduleType);\r\n\r\n return factory.create(injector);\r\n }\r\n}\r\n\r\nexport function featuresFactory(\r\n configState: ConfigStateService,\r\n featureKeys: string[],\r\n mapFn: (features: { [key: string]: string }) => any = features => features,\r\n) {\r\n return configState.getFeatures$(featureKeys).pipe(filter(Boolean), map(mapFn));\r\n}\r\n","/** @deprecated the method will change in v8.0 */ \r\nexport function downloadBlob(blob: Blob, filename: string) {\r\n const blobUrl = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n\r\n link.href = blobUrl;\r\n link.download = filename;\r\n\r\n document.body.appendChild(link);\r\n\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window,\r\n }),\r\n );\r\n\r\n document.body.removeChild(link);\r\n}\r\n","export function isNumber(value: string | number): boolean {\r\n return value == Number(value);\r\n}\r\n","import { ABP } from '../models/common';\r\nimport { isNumber } from './number-utils';\r\n\r\nexport function mapEnumToOptions<T>(_enum: T): ABP.Option<T>[] {\r\n const options: ABP.Option<T>[] = [];\r\n\r\n for (const member in _enum)\r\n if (!isNumber(member))\r\n options.push({\r\n key: member,\r\n value: _enum[member],\r\n });\r\n\r\n return options;\r\n}\r\n","import { Injector } from '@angular/core';\r\nimport { ABP } from '../models';\r\nimport { ConfigStateService } from '../services';\r\n\r\nexport function uuid(a?: any): string {\r\n return a\r\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\r\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\r\n}\r\n\r\nexport function generateHash(value: string): number {\r\n let hashed = 0;\r\n let charCode: number;\r\n\r\n for (let i = 0; i < value.length; i++) {\r\n charCode = value.charCodeAt(i);\r\n hashed = (hashed << 5) - hashed + charCode;\r\n hashed |= 0;\r\n }\r\n return hashed;\r\n}\r\n\r\nexport function generatePassword(injector?: Injector, length = 8) {\r\n if (injector) {\r\n length = getRequiredPasswordLength(injector);\r\n }\r\n\r\n length = Math.min(Math.max(4, length), 128);\r\n\r\n const lowers = 'abcdefghjkmnpqrstuvwxyz';\r\n const uppers = 'ABCDEFGHJKMNPQRSTUVWXYZ';\r\n const numbers = '23456789';\r\n const specials = '!*_#/+-.';\r\n const all = lowers + uppers + numbers + specials;\r\n\r\n const getRandom = (chrSet: string) => chrSet[Math.floor(Math.random() * chrSet.length)];\r\n\r\n const password = Array({ length });\r\n password[0] = getRandom(lowers);\r\n password[1] = getRandom(uppers);\r\n password[2] = getRandom(numbers);\r\n password[3] = getRandom(specials);\r\n\r\n for (let i = 4; i < length; i++) {\r\n password[i] = getRandom(all);\r\n }\r\n\r\n return password.sort(() => 0.5 - Math.random()).join('');\r\n}\r\n\r\nfunction getRequiredPasswordLength(injector: Injector) {\r\n const configState = injector.get(ConfigStateService);\r\n const passwordRules: ABP.Dictionary<string> = configState.getSettings('Identity.Password');\r\n return Number(passwordRules['Abp.Identity.Password.RequiredLength']) || 8;\r\n}\r\n","import { HttpParameterCodec } from '@angular/common/http';\r\n\r\nexport function getPathName(url: string): string {\r\n const { pathname } = new URL(url, window.location.origin);\r\n return pathname;\r\n}\r\n\r\nexport class WebHttpUrlEncodingCodec implements HttpParameterCodec {\r\n encodeKey(k: string): string {\r\n return encodeURIComponent(k);\r\n }\r\n\r\n encodeValue(v: string): string {\r\n return encodeURIComponent(v);\r\n }\r\n\r\n decodeKey(k: string): string {\r\n return decodeURIComponent(k);\r\n }\r\n\r\n decodeValue(v: string) {\r\n return decodeURIComponent(v);\r\n }\r\n}\r\n","import { inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpLocalStorageService implements Storage {\r\n private platformId = inject(PLATFORM_ID);\r\n\r\n constructor() {\r\n }\r\n [name: string]: any;\r\n get length(): number {\r\n return isPlatformBrowser(this.platformId) ? localStorage.length : 0;\r\n }\r\n\r\n clear(): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n localStorage.clear();\r\n }\r\n }\r\n getItem(key: string): string | null {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return null;\r\n }\r\n return localStorage.getItem(key);\r\n }\r\n key(index: number): string | null {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return null;\r\n }\r\n return localStorage.key(index);\r\n }\r\n removeItem(key: string): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n localStorage.removeItem(key);\r\n }\r\n }\r\n setItem(key: string, value: string): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n localStorage.setItem(key, value);\r\n }\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport type AppInitErrorFn = (error: any) => void;\r\n\r\nexport const APP_INIT_ERROR_HANDLERS = new InjectionToken<AppInitErrorFn[]>(\r\n 'APP_INIT_ERROR_HANDLERS',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const COOKIE_LANGUAGE_KEY = new InjectionToken<string>('COOKIE_LANGUAGE_KEY', {\r\n factory: () => '.AspNetCore.Culture',\r\n});\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const LIST_QUERY_DEBOUNCE_TIME = new InjectionToken<number>('LIST_QUERY_DEBOUNCE_TIME');\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const LOADER_DELAY = new InjectionToken<number>('LOADER_DELAY');\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const NAVIGATE_TO_MANAGE_PROFILE = new InjectionToken<() => void>(\r\n 'NAVIGATE_TO_MANAGE_PROFILE',\r\n);\r\n","import { QueueManager } from \"../utils/queue\";\r\nimport { InjectionToken } from \"@angular/core\";\r\n\r\nexport const QUEUE_MANAGER = new InjectionToken<QueueManager>(\"QUEUE_MANAGER\");\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const TENANT_KEY = new InjectionToken<string>('TENANT_KEY');\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const INCUDE_LOCALIZATION_RESOURCES_TOKEN = new InjectionToken<boolean>(\r\n 'INCUDE_LOCALIZATION_RESOURCES_TOKEN',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\nimport { PipeToLoginFn } from '../models/auth';\r\n\r\nexport const PIPE_TO_LOGIN_FN_KEY = new InjectionToken<PipeToLoginFn>('PIPE_TO_LOGIN_FN_KEY');\r\n","import { InjectionToken } from '@angular/core';\r\nimport { SetTokenResponseToStorageFn } from '../models';\r\n\r\n/**\r\n * @deprecated The token should not be used anymore. \r\n */\r\nexport const SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY = new InjectionToken<SetTokenResponseToStorageFn>(\r\n 'SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\nimport { CheckAuthenticationStateFn } from '../models/auth';\r\n\r\nexport const CHECK_AUTHENTICATION_STATE_FN_KEY = new InjectionToken<CheckAuthenticationStateFn>(\r\n 'CHECK_AUTHENTICATION_STATE_FN_KEY',\r\n);\r\n","import { HttpContextToken } from '@angular/common/http';\r\n\r\nexport const IS_EXTERNAL_REQUEST = new HttpContextToken<boolean>(() => false);\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const OTHERS_GROUP = new InjectionToken<string>('OTHERS_GROUP');\r\n","import { InjectionToken } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nexport const TENANT_NOT_FOUND_BY_NAME = new InjectionToken<\r\n (HttpErrorResponse: HttpErrorResponse) => void\r\n>('TENANT_NOT_FOUND_BY_NAME');\r\n","import { InjectionToken, inject } from '@angular/core';\r\nimport type { SortableItem } from '../models';\r\nimport { LocalizationService } from '../services';\r\n\r\nexport const SORT_COMPARE_FUNC = new InjectionToken<(a: SortableItem, b: SortableItem) => number>(\r\n 'SORT_COMPARE_FUNC',\r\n);\r\n\r\nexport function compareFuncFactory() {\r\n const localizationService = inject(LocalizationService);\r\n const fn = (a: SortableItem, b: SortableItem) => {\r\n const aNumber = a.order;\r\n const bNumber = b.order;\r\n\r\n if (aNumber > bNumber) return 1;\r\n if (aNumber < bNumber) return -1;\r\n\r\n if (a.id > b.id) return 1;\r\n if (a.id < b.id) return -1;\r\n\r\n if (!Number.isInteger(aNumber)) return 1;\r\n if (!Number.isInteger(bNumber)) return -1;\r\n\r\n const aName = localizationService.instant(a.name);\r\n const bName = localizationService.instant(b.name);\r\n\r\n if (aName > bName) return 1;\r\n if (aName < bName) return -1;\r\n\r\n return 0;\r\n };\r\n\r\n return fn;\r\n}\r\n","import {InjectionToken} from \"@angular/core\";\r\n\r\n export const DYNAMIC_LAYOUTS_TOKEN = new InjectionToken<Map<string, string>>('DYNAMIC_LAYOUTS')\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const DISABLE_PROJECT_NAME = new InjectionToken<boolean>('DISABLE_APP_NAME');\r\n","import { inject, InjectionToken, makeStateKey, PLATFORM_ID, TransferState } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { AbpCookieStorageService } from '../services';\r\n\r\nexport const SSR_FLAG = makeStateKey<boolean>('SSR_FLAG');\r\n\r\nexport const APP_STARTED_WITH_SSR = new InjectionToken<boolean>('APP_STARTED_WITH_SSR', {\r\n providedIn: 'root',\r\n factory: () => {\r\n const platformId = inject(PLATFORM_ID);\r\n const cookieService = inject(AbpCookieStorageService);\r\n if (!isPlatformBrowser(platformId)) return true;\r\n const ts = inject(TransferState);\r\n const ssrEnabled = cookieService.getItem('ssr-init');\r\n // Remove the cookie after reading its value because it's only needed once\r\n cookieService.removeItem('ssr-init');\r\n return ts.get(SSR_FLAG, false) || ssrEnabled === 'true';\r\n },\r\n});\r\n","import { Injectable, PLATFORM_ID, inject, REQUEST } from '@angular/core';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AbpCookieStorageService implements Storage {\r\n private platformId = inject(PLATFORM_ID);\r\n private document = inject(DOCUMENT);\r\n private request = inject(REQUEST);\r\n\r\n get length(): number {\r\n return isPlatformBrowser(this.platformId) ? this.keys().length : this.getCookiesFromRequest()?.size ?? 0;\r\n }\r\n\r\n clear(): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.keys().forEach(k => this.removeItem(k));\r\n }\r\n\r\n getItem(key: string): string | null {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return this.getCookiesFromRequest()?.get(key) ?? null;\r\n }\r\n const name = key + '=';\r\n const parts = (this.document.cookie || '').split('; ');\r\n for (const p of parts) {\r\n if (p.startsWith(name)) {\r\n return decodeURIComponent(p.slice(name.length));\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n key(index: number): string | null {\r\n if (!isPlatformBrowser(this.platformId)) return null;\r\n return this.keys()[index] ?? null;\r\n }\r\n\r\n removeItem(key: string): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, '', { 'max-age': -1, path: '/' });\r\n }\r\n\r\n setItem(key: string, value: string): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, encodeURIComponent(value), {\r\n path: '/',\r\n sameSite: 'Lax',\r\n secure: true,\r\n });\r\n }\r\n\r\n setItemWithExpiry(key: string, value: string, seconds: number): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, encodeURIComponent(value), {\r\n path: '/',\r\n sameSite: 'Lax',\r\n secure: true,\r\n 'max-age': Math.max(0, Math.floor(seconds)),\r\n });\r\n }\r\n\r\n private keys(): string[] {\r\n const raw = (this.document.cookie || '').split('; ').filter(Boolean);\r\n return raw\r\n .map(c => decodeURIComponent(c.split('=')[0]));\r\n }\r\n\r\n private setCookie(name: string, value: string, opts: {\r\n path?: string;\r\n domain?: string;\r\n secure?: boolean;\r\n sameSite?: 'Lax' | 'Strict' | 'None';\r\n expires?: Date;\r\n 'max-age'?: number;\r\n }) {\r\n let s = `${name}=${value}`;\r\n if (opts.path) s += `; Path=${opts.path}`;\r\n if (opts.domain) s += `; Domain=${opts.domain}`;\r\n if (opts.sameSite) s += `; SameSite=${opts.sameSite}`;\r\n if (opts.secure) s += `; Secure`;\r\n if (opts.expires) s += `; Expires=${opts.expires.toUTCString()}`;\r\n if (typeof opts['max-age'] === 'number') s += `; Max-Age=${opts['max-age']}`;\r\n this.document.cookie = s;\r\n }\r\n\r\n private getCookiesFromRequest(): Map<string, string> {\r\n const cookies = new Map<string, string>();\r\n const cookieHeader = this.request?.headers.get('cookie') ?? '';\r\n for (const part of cookieHeader.split(';')) {\r\n const i = part.indexOf('=');\r\n if (i > -1) {\r\n const k = part.slice(0, i).trim();\r\n const v = decodeURIComponent(part.slice(i + 1).trim());\r\n cookies.set(k, v);\r\n }\r\n }\r\n return cookies;\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport compare from 'just-compare';\r\nimport { filter, take } from 'rxjs/operators';\r\nimport { Session } from '../models/session';\r\nimport { CurrentTenantDto } from '../proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\nimport { ConfigStateService } from './config-state.service';\r\nimport { AbpLocalStorageService } from './local-storage.service';\r\nimport { APP_STARTED_WITH_SSR } from '../tokens';\r\nimport { AbpCookieStorageService } from './cookie-storage.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SessionStateService {\r\n private configState = inject(ConfigStateService);\r\n private localStorageService = inject(AbpLocalStorageService);\r\n private appStartedWithSSR = inject(APP_STARTED_WITH_SSR, { optional: true });\r\n private cookieStorageService = inject(AbpCookieStorageService);\r\n\r\n private readonly store = new InternalStore({} as Session.State);\r\n protected readonly document = inject(DOCUMENT);\r\n\r\n private updateLocalStorage = () => {\r\n if (this.appStartedWithSSR) {\r\n this.cookieStorageService.setItem('abpSession', JSON.stringify(this.store.state));\r\n } else {\r\n this.localStorageService.setItem('abpSession', JSON.stringify(this.store.state));\r\n }\r\n };\r\n\r\n constructor() {\r\n this.init();\r\n this.setInitialLanguage();\r\n }\r\n\r\n private init() {\r\n const storageService = this.appStartedWithSSR ? this.cookieStorageService : this.localStorageService;\r\n const session = storageService.getItem('abpSession');\r\n if (session) {\r\n this.store.set(JSON.parse(session));\r\n }\r\n this.store.sliceUpdate(state => state).subscribe(this.updateLocalStorage);\r\n }\r\n\r\n private setInitialLanguage() {\r\n const appLanguage = this.getLanguage();\r\n\r\n this.configState\r\n .getDeep$('localization.currentCulture.cultureName')\r\n .pipe(\r\n filter(cultureName => !!cultureName),\r\n take(1),\r\n )\r\n .subscribe(lang => {\r\n if (lang.includes(';')) {\r\n lang = lang.split(';')[0];\r\n }\r\n\r\n this.setLanguage(lang);\r\n });\r\n }\r\n\r\n onLanguageChange$() {\r\n return this.store.sliceUpdate(state => state.language);\r\n }\r\n\r\n onTenantChange$() {\r\n return this.store.sliceUpdate(state => state.tenant);\r\n }\r\n\r\n getLanguage() {\r\n return this.store.state.language;\r\n }\r\n\r\n getLanguage$() {\r\n return this.store.sliceState(state => state.language);\r\n }\r\n\r\n getTenant() {\r\n return this.store.state.tenant;\r\n }\r\n\r\n getTenant$() {\r\n return this.store.sliceState(state => state.tenant);\r\n }\r\n\r\n setTenant(tenant: CurrentTenantDto | null) {\r\n if (compare(tenant, this.store.state.tenant)) return;\r\n\r\n this.store.set({ ...this.store.state, tenant });\r\n }\r\n\r\n setLanguage(language: string) {\r\n const currentLanguage = this.store.state.language;\r\n\r\n if (language !== currentLanguage) {\r\n this.store.patch({ language });\r\n }\r\n\r\n const currentAttribute = this.document.documentElement.getAttribute('lang');\r\n if (language !== currentAttribute) {\r\n this.document.documentElement.setAttribute('lang', language);\r\n }\r\n }\r\n}\r\n","import { RestService } from '../../../../services';\r\nimport { Rest } from '../../../../models';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport type { FindTenantResultDto } from '../../../volo/abp/asp-net-core/mvc/multi-tenancy/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpTenantService {\n private restService = inject(RestService);\n\r\n apiName = 'abp';\r\n \r\n\r\n findTenantById = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FindTenantResultDto>({\r\n method: 'GET',\r\n url: `/api/abp/multi-tenancy/tenants/by-id/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n findTenantByName = (name: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FindTenantResultDto>({\r\n method: 'GET',\r\n url: `/api/abp/multi-tenancy/tenants/by-name/${name}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { AbpTenantService } from '../proxy/pages/abp/multi-tenancy';\r\nimport {\r\n CurrentTenantDto,\r\n FindTenantResultDto,\r\n} from '../proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models';\r\nimport { TENANT_KEY } from '../tokens/tenant-key.token';\r\nimport { ConfigStateService } from './config-state.service';\r\nimport { SessionStateService } from './session-state.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MultiTenancyService {\r\n private sessionState = inject(SessionStateService);\r\n private tenantService = inject(AbpTenantService);\r\n private configStateService = inject(ConfigStateService);\r\n tenantKey = inject(TENANT_KEY);\r\n\r\n domainTenant: CurrentTenantDto | null = null;\r\n\r\n isTenantBoxVisible = true;\r\n\r\n apiName = 'abp';\r\n\r\n private setTenantToState = (tenant: FindTenantResultDto) => {\r\n this.sessionState.setTenant({ id: tenant.tenantId, name: tenant.name, isAvailable: true });\r\n return this.configStateService.refreshAppState().pipe(map(_ => tenant));\r\n };\r\n\r\n setTenantByName(tenantName: string) {\r\n return this.tenantService\r\n .findTenantByName(tenantName)\r\n .pipe(switchMap(this.setTenantToState));\r\n }\r\n\r\n setTenantById(tenantId: string) {\r\n return this.tenantService\r\n .findTenantById(tenantId)\r\n .pipe(switchMap(this.setTenantToState));\r\n }\r\n}\r\n","import { Injector, PLATFORM_ID } from '@angular/core';\r\nimport clone from 'just-clone';\r\nimport { Environment } from '../models/environment';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\n\r\nimport { FindTenantResultDto } from '../proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models';\r\nimport { EnvironmentService } from '../services/environment.service';\r\nimport { MultiTenancyService } from '../services/multi-tenancy.service';\r\nimport { createTokenParser } from './string-utils';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { TENANT_NOT_FOUND_BY_NAME } from '../tokens/tenant-not-found-by-name';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nconst tenancyPlaceholder = '{0}';\r\n\r\nfunction getCurrentTenancyName(appBaseUrl: string, injector: Injector): string {\r\n const platformId = injector.get(PLATFORM_ID);\r\n const document = injector.get(DOCUMENT);\r\n if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/') appBaseUrl += '/';\r\n\r\n const parseTokens = createTokenParser(appBaseUrl);\r\n const token = tenancyPlaceholder.replace(/[}{]/g, '');\r\n const tokenValue = isPlatformBrowser(platformId)\r\n ? parseTokens(document.defaultView?.location.href)[token]?.[0]\r\n : undefined;\r\n return tokenValue;\r\n}\r\n\r\nexport function getCurrentTenancyNameFromUrl(tenantKey: string, injector): string | null {\r\n const platformId = injector.get(PLATFORM_ID);\r\n const document = injector.get(DOCUMENT);\r\n if (!isPlatformBrowser(platformId)) {\r\n return null;\r\n }\r\n const search = document.defaultView?.location.search;\r\n const urlParams = new URLSearchParams(search);\r\n return urlParams.get(tenantKey);\r\n}\r\n\r\nexport async function parseTenantFromUrl(injector: Injector) {\r\n const environmentService = injector.get(EnvironmentService);\r\n const multiTenancyService = injector.get(MultiTenancyService);\r\n const tenantNotFoundHandler = injector.get(TENANT_NOT_FOUND_BY_NAME, null);\r\n\r\n const baseUrl = environmentService.getEnvironment()?.application?.baseUrl || '';\r\n const tenancyName = getCurrentTenancyName(baseUrl, injector);\r\n\r\n const hideTenantBox = () => {\r\n multiTenancyService.isTenantBoxVisible = false;\r\n };\r\n\r\n const setDomainTenant = (tenant: FindTenantResultDto) => {\r\n multiTenancyService.domainTenant = {\r\n id: tenant.tenantId,\r\n name: tenant.name,\r\n isAvailable: true,\r\n };\r\n };\r\n\r\n const setEnvironmentWithDomainTenant = (tenant: FindTenantResultDto) => {\r\n hideTenantBox();\r\n setDomainTenant(tenant);\r\n };\r\n\r\n if (tenancyName) {\r\n /**\r\n * We have to replace tenant name within the urls from environment,\r\n * because the code below will make a http request to find information about the domain tenant.\r\n * Before this request takes place, we need to replace placeholders aka \"{0}\".\r\n */\r\n replaceTenantNameWithinEnvironment(injector, tenancyName);\r\n\r\n const tenant$ = multiTenancyService.setTenantByName(tenancyName);\r\n try {\r\n const result = await firstValueFrom(tenant$);\r\n setEnvironmentWithDomainTenant(result);\r\n return Promise.resolve(result);\r\n } catch (httpError: HttpErrorResponse | any) {\r\n if (\r\n httpError instanceof HttpErrorResponse &&\r\n httpError.status === 404 &&\r\n tenantNotFoundHandler\r\n ) {\r\n tenantNotFoundHandler(httpError);\r\n }\r\n return Promise.reject();\r\n }\r\n }\r\n /**\r\n * If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.\r\n */\r\n replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');\r\n\r\n const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(\r\n multiTenancyService.tenantKey,\r\n injector,\r\n );\r\n if (tenantIdFromQueryParams) {\r\n const tenantById$ = multiTenancyService.setTenantById(tenantIdFromQueryParams);\r\n return firstValueFrom(tenantById$);\r\n }\r\n\r\n return Promise.resolve();\r\n}\r\n\r\nfunction replaceTenantNameWithinEnvironment(\r\n injector: Injector,\r\n tenancyName: string,\r\n placeholder = tenancyPlaceholder,\r\n) {\r\n const environmentService = injector.get(EnvironmentService);\r\n\r\n const environment = clone(environmentService.getEnvironment()) as Environment;\r\n\r\n if (environment.application.baseUrl) {\r\n environment.application.baseUrl = environment.application.baseUrl.replace(\r\n placeholder,\r\n tenancyName,\r\n );\r\n }\r\n\r\n if (environment.oAuthConfig?.redirectUri) {\r\n environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace(\r\n placeholder,\r\n tenancyName,\r\n );\r\n }\r\n\r\n if (!environment.oAuthConfig) {\r\n environment.oAuthConfig = {};\r\n }\r\n environment.oAuthConfig.issuer = (environment.oAuthConfig.issuer || '').replace(\r\n placeholder,\r\n tenancyName,\r\n );\r\n\r\n Object.keys(environment.apis).forEach(api => {\r\n Object.keys(environment.apis[api]).forEach(key => {\r\n environment.apis[api][key] = (environment.apis[api][key] || '').replace(\r\n placeholder,\r\n tenancyName,\r\n );\r\n });\r\n });\r\n\r\n return environmentService.setState(environment);\r\n}\r\n","import { registerLocaleData } from '@angular/common';\r\nimport { inject, Injector } from '@angular/core';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { firstValueFrom, lastValueFrom, of, throwError, timeout } from 'rxjs';\r\nimport { ABP } from '../models/common';\r\nimport { Environment } from '../models/environment';\r\nimport { CurrentTenantDto } from '../proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models';\r\nimport { ConfigStateService } from '../services/config-state.service';\r\nimport { EnvironmentService } from '../services/environment.service';\r\nimport { SessionStateService } from '../services/session-state.service';\r\nimport { CORE_OPTIONS } from '../tokens/options.token';\r\nimport { APP_INIT_ERROR_HANDLERS } from '../tokens/app-config.token';\r\nimport { CHECK_AUTHENTICATION_STATE_FN_KEY } from '../tokens/check-authentication-state';\r\nimport { APP_STARTED_WITH_SSR } from '../tokens/ssr-state.token';\r\nimport { getRemoteEnv } from './environment-utils';\r\nimport { parseTenantFromUrl } from './multi-tenancy-utils';\r\nimport { AuthService } from '../abstracts';\r\nimport { noop } from './common-utils';\r\n\r\nexport async function getInitialData() {\r\n const injector = inject(Injector);\r\n const environmentService = injector.get(EnvironmentService);\r\n const configState = injector.get(ConfigStateService);\r\n const options = injector.get(CORE_OPTIONS) as ABP.Root;\r\n const appStartedWithSSR = injector.get(APP_STARTED_WITH_SSR);\r\n\r\n environmentService.setState(options.environment as Environment);\r\n await getRemoteEnv(injector, options.environment);\r\n await parseTenantFromUrl(injector);\r\n const authService = injector.get(AuthService, undefined, { optional: true });\r\n const checkAuthenticationState = injector.get(CHECK_AUTHENTICATION_STATE_FN_KEY, noop, {\r\n optional: true,\r\n });\r\n if (!options.skipInitAuthService && authService) {\r\n await authService.init();\r\n }\r\n if (options.skipGetAppConfiguration) return;\r\n\r\n const result$ = configState.refreshAppState().pipe(\r\n tap(() => checkAuthenticationState(injector)),\r\n tap(() => {\r\n const currentTenant = configState.getOne('currentTenant') as CurrentTenantDto;\r\n injector.get(SessionStateService).setTenant(currentTenant);\r\n }),\r\n catchError(error => {\r\n const appInitErrorHandlers = injector.get(APP_INIT_ERROR_HANDLERS, null);\r\n if (appInitErrorHandlers && appInitErrorHandlers.length) {\r\n appInitErrorHandlers.forEach(func => func(error));\r\n }\r\n\r\n return throwError(() => error);\r\n }),\r\n );\r\n\r\n if (appStartedWithSSR) {\r\n await firstValueFrom(\r\n result$.pipe(\r\n timeout(0),\r\n catchError(() => of(null)),\r\n ),\r\n );\r\n } else {\r\n await lastValueFrom(result$);\r\n }\r\n\r\n await localeInitializer(injector);\r\n}\r\n\r\nexport function localeInitializer(injector?: Injector) {\r\n const currentInjector = injector || inject(Injector);\r\n const sessionState = currentInjector.get(SessionStateService);\r\n const { registerLocaleFn }: ABP.Root = currentInjector.get(CORE_OPTIONS);\r\n\r\n const lang = sessionState.getLanguage() || 'en';\r\n\r\n return new Promise((resolve, reject) => {\r\n registerLocaleFn(lang).then(module => {\r\n if (module?.default) registerLocaleData(module.default);\r\n\r\n return resolve('resolved');\r\n }, reject);\r\n });\r\n}\r\n","export class CrossOriginStrategy {\r\n constructor(\r\n public crossorigin: 'anonymous' | 'use-credentials' | null,\r\n public integrity?: string,\r\n ) {}\r\n\r\n setCrossOrigin<T extends HTMLElement>(element: T) {\r\n if (this.integrity) element.setAttribute('integrity', this.integrity);\r\n if (this.crossorigin) {\r\n element.setAttribute('crossorigin', this.crossorigin);\r\n }\r\n }\r\n}\r\n\r\nexport class NoCrossOriginStrategy extends CrossOriginStrategy {\r\n setCrossOrigin() {}\r\n}\r\n\r\nexport const CROSS_ORIGIN_STRATEGY = {\r\n Anonymous(integrity?: string) {\r\n return new CrossOriginStrategy('anonymous', integrity);\r\n },\r\n UseCredentials(integrity?: string) {\r\n return new CrossOriginStrategy('use-credentials', integrity);\r\n },\r\n None() {\r\n return new NoCrossOriginStrategy(null);\r\n },\r\n};\r\n","export class DomStrategy {\r\n constructor(\r\n private getTarget: () => HTMLElement,\r\n public position: InsertPosition = 'beforeend',\r\n ) {}\r\n\r\n insertElement<T extends HTMLElement>(element: T) {\r\n if (typeof document !== 'undefined') {\r\n const target = this.getTarget();\r\n target.insertAdjacentElement(this.position, element);\r\n }\r\n }\r\n}\r\n\r\nexport const DOM_STRATEGY = {\r\n AfterElement(element: HTMLElement) {\r\n return new DomStrategy(() => element, 'afterend');\r\n },\r\n AppendToBody() {\r\n return new DomStrategy(() => document?.body, 'beforeend');\r\n },\r\n AppendToHead() {\r\n return new DomStrategy(() => document?.head, 'beforeend');\r\n },\r\n BeforeElement(element: HTMLElement) {\r\n return new DomStrategy(() => element, 'beforebegin');\r\n },\r\n PrependToHead() {\r\n return new DomStrategy(() => document?.head, 'afterbegin');\r\n },\r\n};\r\n","import { Observable, Observer } from 'rxjs';\r\nimport { CROSS_ORIGIN_STRATEGY, CrossOriginStrategy } from '../strategies/cross-origin.strategy';\r\nimport { DOM_STRATEGY, DomStrategy } from '../strategies/dom.strategy';\r\n\r\nexport function fromLazyLoad<T extends Event>(\r\n element: HTMLScriptElement | HTMLLinkElement,\r\n domStrategy: DomStrategy = DOM_STRATEGY.AppendToHead(),\r\n crossOriginStrategy: CrossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous(),\r\n): Observable<T> {\r\n crossOriginStrategy.setCrossOrigin(element);\r\n domStrategy.insertElement(element);\r\n\r\n return new Observable((observer: Observer<T>) => {\r\n element.onload = (event: Event) => {\r\n clearCallbacks(element);\r\n observer.next(event as T);\r\n observer.complete();\r\n };\r\n\r\n const handleError = createErrorHandler(observer, element);\r\n\r\n element.onerror = handleError;\r\n element.onabort = handleError;\r\n element.onemptied = handleError;\r\n element.onstalled = handleError;\r\n element.onsuspend = handleError;\r\n\r\n return () => {\r\n clearCallbacks(element);\r\n observer.complete();\r\n };\r\n });\r\n}\r\n\r\nfunction createErrorHandler<T extends Event = Event>(observer: Observer<T>, element: HTMLElement) {\r\n return function (event: Event | string) {\r\n clearCallbacks(element);\r\n element.parentNode?.removeChild(element);\r\n observer.error(event);\r\n };\r\n}\r\n\r\nfunction clearCallbacks(element: HTMLElement) {\r\n element.onload = null;\r\n element.onerror = null;\r\n element.onabort = null;\r\n element.onemptied = null;\r\n element.onstalled = null;\r\n element.onsuspend = null;\r\n}\r\n","export interface QueueManager {\r\n add(fn: () => void): void;\r\n init(interval: number, stackSize: number): void;\r\n}\r\n\r\nexport class DefaultQueueManager implements QueueManager {\r\n private queue: Array<() => void> = [];\r\n private isRunning = false;\r\n private stack = 0;\r\n private interval = 0;\r\n private stackSize = 100;\r\n\r\n public init(interval: number, stackSize: number) {\r\n this.interval = interval;\r\n this.stackSize = stackSize;\r\n }\r\n\r\n public add(fn: () => void) {\r\n this.queue.push(fn);\r\n this.run();\r\n }\r\n\r\n private run() {\r\n if (this.isRunning) return;\r\n this.stack++;\r\n\r\n this.isRunning = true;\r\n\r\n const fn = this.queue.shift();\r\n\r\n if (!fn) {\r\n this.isRunning = false;\r\n return;\r\n }\r\n\r\n fn();\r\n if (this.stack > this.stackSize) {\r\n setTimeout(() => {\r\n this.isRunning = false;\r\n this.run();\r\n this.stack = 0;\r\n }, this.interval);\r\n } else {\r\n this.isRunning = false;\r\n this.run();\r\n }\r\n }\r\n}\r\n","import { NgZone } from '@angular/core';\r\nimport { PRIMARY_OUTLET, Router, UrlSegment, UrlSegmentGroup } from \"@angular/router\";\r\nimport { ABP } from '../models/common';\r\nimport { RoutesService } from '../services/routes.service';\r\nimport { noop } from './common-utils';\r\nimport { TreeNode } from './tree-utils';\r\n\r\nexport function findRoute(routesService: RoutesService, path: string): TreeNode<ABP.Route> | null {\r\n const node = routesService.find(route => route.path === path);\r\n\r\n return node || path === '/'\r\n ? node\r\n : findRoute(routesService, path.split('/').slice(0, -1).join('/') || '/');\r\n}\r\n\r\nexport function getRoutePath(router: Router, url = router.url) {\r\n const emptyGroup = { segments: [] as UrlSegment[] } as UrlSegmentGroup;\r\n const primaryGroup = router.parseUrl(url).root.children[PRIMARY_OUTLET];\r\n\r\n return '/' + (primaryGroup || emptyGroup).segments.map(({ path }) => path).join('/');\r\n}\r\n\r\nexport function reloadRoute(router: Router, ngZone: NgZone) {\r\n const { shouldReuseRoute } = router.routeReuseStrategy;\r\n const setRouteReuse = (reuse: typeof shouldReuseRoute) => {\r\n router.routeReuseStrategy.shouldReuseRoute = reuse;\r\n };\r\n\r\n setRouteReuse(() => false);\r\n router.navigated = false;\r\n\r\n ngZone.run(async () => {\r\n await router.navigateByUrl(router.url).catch(noop);\r\n setRouteReuse(shouldReuseRoute);\r\n });\r\n}\r\n","import { isArray } from './common-utils';\r\n\r\n/* eslint-disable @typescript-eslint/ban-types */\r\nexport class BaseTreeNode<T extends object> {\r\n children: TreeNode<T>[] = [];\r\n isLeaf = true;\r\n parent?: TreeNode<T>;\r\n\r\n constructor(props: T) {\r\n Object.assign(this, props);\r\n }\r\n\r\n static create<T extends object>(props: T) {\r\n return new BaseTreeNode<T>(props) as TreeNode<T>;\r\n }\r\n}\r\n\r\nexport function createTreeFromList<T extends object, R>(\r\n list: T[],\r\n keySelector: (item: T) => NodeKey,\r\n parentKeySelector: typeof keySelector,\r\n valueMapper: (item: T) => R,\r\n) {\r\n const map = createMapFromList(list, keySelector, valueMapper);\r\n const tree: NodeValue<T, typeof valueMapper>[] = [];\r\n\r\n list.forEach(row => {\r\n const id = keySelector(row);\r\n const parentId = parentKeySelector(row);\r\n const node = map.get(id);\r\n\r\n if (!node) return;\r\n\r\n if (parentId) {\r\n const parent = map.get(parentId);\r\n if (!parent) return;\r\n (parent as any).children.push(node);\r\n (parent as any).isLeaf = false;\r\n (node as any).parent = parent;\r\n } else {\r\n tree.push(node);\r\n }\r\n });\r\n\r\n return tree;\r\n}\r\n\r\nexport function createMapFromList<T extends object, R>(\r\n list: T[],\r\n keySelector: (item: T) => NodeKey,\r\n valueMapper: (item: T) => R,\r\n) {\r\n type Key = ReturnType<typeof keySelector>;\r\n type Value = NodeValue<T, typeof valueMapper>;\r\n const map = new Map<Key, Value>();\r\n list.forEach(row => map.set(keySelector(row), valueMapper(row)));\r\n return map;\r\n}\r\n\r\nexport function createTreeNodeFilterCreator<T extends object>(\r\n key: keyof T,\r\n mapperFn: (value: any) => string,\r\n) {\r\n return (search: string) => {\r\n const regex = new RegExp('.*' + search + '.*', 'i');\r\n\r\n return function collectNodes(nodes: TreeNode<T>[], matches: TreeNode<T>[] = []) {\r\n for (const node of nodes) {\r\n if (regex.test(mapperFn(node[key]))) matches.push(node);\r\n\r\n if (node.children.length) collectNodes(node.children, matches);\r\n }\r\n\r\n return matches;\r\n };\r\n };\r\n}\r\n\r\nexport function createGroupMap<T extends { group?: string }>(\r\n list: TreeNode<T>[],\r\n othersGroupKey: string,\r\n) {\r\n if (!isArray(list) || !list.some(node => Boolean(node.group))) return undefined;\r\n\r\n const mapGroup = new Map<string, TreeNode<T>[]>();\r\n\r\n for (const node of list) {\r\n const group = node?.group || othersGroupKey;\r\n if (typeof group !== 'string') {\r\n throw new Error(`Invalid group: ${group}`);\r\n }\r\n\r\n const items = mapGroup.get(group) || [];\r\n items.push(node);\r\n mapGroup.set(group, items);\r\n }\r\n\r\n return mapGroup;\r\n}\r\n\r\nexport type TreeNode<T extends object> = {\r\n [K in keyof T]: T[K];\r\n} & {\r\n children: TreeNode<T>[];\r\n isLeaf: boolean;\r\n parent?: TreeNode<T>;\r\n};\r\n\r\nexport type RouteGroup<T extends object> = {\r\n readonly group: string;\r\n readonly items: TreeNode<T>[];\r\n};\r\n\r\nexport type NodeKey = number | string | symbol | undefined | null;\r\n\r\nexport type NodeValue<T extends object, F extends (...args: any) => any> = F extends undefined\r\n ? TreeNode<T>\r\n : ReturnType<F>;\r\n","export class ServerCookieParser {\r\n static parse(cookieHeader: string): { [key: string]: string } {\r\n const cookies: { [key: string]: string } = {};\r\n\r\n if (!cookieHeader) return cookies;\r\n\r\n try {\r\n cookieHeader.split(';').forEach(cookie => {\r\n const parts = cookie.trim().split('=');\r\n if (parts.length >= 2) {\r\n const name = parts[0].trim();\r\n const value = parts.slice(1).join('=');\r\n\r\n if (name) {\r\n try {\r\n cookies[name] = decodeURIComponent(value);\r\n } catch (e) {\r\n cookies[name] = value;\r\n }\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n console.error('Error parsing cookies:', error);\r\n }\r\n\r\n return cookies;\r\n }\r\n\r\n static middleware() {\r\n return (req: any, res: any, next: any) => {\r\n req.cookies = ServerCookieParser.parse(req.headers.cookie || '');\r\n next();\r\n };\r\n }\r\n\r\n static getCookie(req: any, name: string): string | undefined {\r\n const cookieHeader = req.headers.cookie;\r\n if (!cookieHeader) return undefined;\r\n\r\n const cookies = ServerCookieParser.parse(cookieHeader);\r\n return cookies[name];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ContentStrategy } from '../strategies/content.strategy';\r\nimport { generateHash } from '../utils';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DomInsertionService {\r\n private readonly inserted = new Set<number>();\r\n\r\n insertContent<T extends HTMLScriptElement | HTMLStyleElement>(\r\n contentStrategy: ContentStrategy<T>,\r\n ): T | undefined {\r\n const hash = generateHash(contentStrategy.content);\r\n\r\n if (this.inserted.has(hash)) return;\r\n\r\n const element = contentStrategy.insertElement();\r\n this.inserted.add(hash);\r\n\r\n return element;\r\n }\r\n\r\n removeContent(element: HTMLScriptElement | HTMLStyleElement) {\r\n if (element.textContent) {\r\n const hash = generateHash(element.textContent);\r\n this.inserted.delete(hash);\r\n element.parentNode?.removeChild(element);\r\n }\r\n }\r\n\r\n has(content: string): boolean {\r\n const hash = generateHash(content);\r\n\r\n return this.inserted.has(hash);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HtmlEncodingService {\r\n encode(value: string): string {\r\n if (!value) {\r\n return value;\r\n }\r\n\r\n return value\r\n .replace(/&/g, '&amp;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&#39;');\r\n }\r\n\r\n decode(value: string): string {\r\n if (!value) {\r\n return value;\r\n }\r\n\r\n return value\r\n .replace(/&amp;/g, '&')\r\n .replace(/&lt;/g, '<')\r\n .replace(/&gt;/g, '>')\r\n .replace(/&quot;/g, '\"')\r\n .replace(/&#39;/g, \"'\");\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class HttpErrorReporterService {\r\n private _reporter$ = new Subject<HttpErrorResponse>();\r\n private _errors$ = new BehaviorSubject<HttpErrorResponse[]>([]);\r\n\r\n get reporter$() {\r\n return this._reporter$.asObservable();\r\n }\r\n\r\n get errors$() {\r\n return this._errors$.asObservable();\r\n }\r\n\r\n get errors() {\r\n return this._errors$.value;\r\n }\r\n\r\n reportError(error: HttpErrorResponse) {\r\n this._reporter$.next(error);\r\n this._errors$.next([...this.errors, error]);\r\n }\r\n}\r\n","import { Injectable, Injector, inject } from '@angular/core';\r\nimport { HttpRequest } from '@angular/common/http';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\nimport { getPathName } from '../utils/http-utils';\r\nimport { map, mapTo, switchMap, takeUntil, tap } from 'rxjs/operators';\r\nimport { of, Subject, timer } from 'rxjs';\r\nimport { LOADER_DELAY } from '../tokens/lodaer-delay.token';\r\n\r\nexport interface HttpWaitState {\r\n requests: HttpRequest<any>[];\r\n filteredRequests: Array<HttpRequestInfo>;\r\n}\r\nexport interface HttpRequestInfo {\r\n method: string;\r\n endpoint: string;\r\n}\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HttpWaitService {\r\n protected store = new InternalStore<HttpWaitState>({\r\n requests: [],\r\n filteredRequests: [],\r\n });\r\n\r\n private delay: number;\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor() {\r\n const injector = inject(Injector);\r\n\r\n this.delay = injector.get(LOADER_DELAY, 500);\r\n }\r\n\r\n getLoading() {\r\n return !!this.applyFilter(this.store.state.requests).length;\r\n }\r\n\r\n getLoading$() {\r\n return this.store\r\n .sliceState(({ requests }) => requests)\r\n .pipe(\r\n map(requests => !!this.applyFilter(requests).length),\r\n switchMap(condition =>\r\n condition\r\n ? this.delay === 0\r\n ? of(true)\r\n : timer(this.delay).pipe(mapTo(true), takeUntil(this.destroy$))\r\n : of(false),\r\n ),\r\n tap(() => this.destroy$.next()),\r\n );\r\n }\r\n\r\n updateLoading$() {\r\n return this.store.sliceUpdate(({ requests }) => !!this.applyFilter(requests).length);\r\n }\r\n\r\n clearLoading() {\r\n this.store.patch({ requests: [] });\r\n }\r\n\r\n addRequest(request: HttpRequest<any>) {\r\n this.store.patch({ requests: [...this.store.state.requests, request] });\r\n }\r\n\r\n deleteRequest(request: HttpRequest<any>) {\r\n const requests = this.store.state.requests.filter(r => r !== request);\r\n this.store.patch({ requests });\r\n }\r\n\r\n addFilter(request: HttpRequestInfo | HttpRequestInfo[]) {\r\n const requests = Array.isArray(request) ? request : [request];\r\n const filteredRequests = [\r\n ...this.store.state.filteredRequests.filter(\r\n f => !requests.some(r => this.isSameRequest(f, r)),\r\n ),\r\n ...requests,\r\n ];\r\n this.store.patch({ filteredRequests });\r\n }\r\n\r\n removeFilter(request: HttpRequestInfo | HttpRequestInfo[]) {\r\n const requests = Array.isArray(request) ? request : [request];\r\n const filteredRequests = this.store.state.filteredRequests.filter(\r\n f => !requests.some(r => this.isSameRequest(f, r)),\r\n );\r\n this.store.patch({ filteredRequests });\r\n }\r\n\r\n private applyFilter(requests: HttpRequest<any>[] | undefined) {\r\n if (!requests) {\r\n return [];\r\n }\r\n const { filteredRequests } = this.store.state;\r\n return requests.filter(\r\n ({ method, url }) =>\r\n !filteredRequests.find(filteredRequest =>\r\n this.isSameRequest(filteredRequest, { method, endpoint: getPathName(url) }),\r\n ),\r\n );\r\n }\r\n\r\n private isSameRequest(filteredRequest: HttpRequestInfo, request: HttpRequestInfo) {\r\n const { method, endpoint } = filteredRequest;\r\n return endpoint === request.endpoint && method === request.method;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\n\r\nexport interface ResourceWaitState {\r\n resources: Set<string>;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ResourceWaitService {\r\n private store = new InternalStore<ResourceWaitState>({ resources: new Set() });\r\n\r\n getLoading() {\r\n return !!this.store.state.resources.size;\r\n }\r\n\r\n getLoading$() {\r\n return this.store.sliceState(({ resources }) => !!resources.size);\r\n }\r\n\r\n updateLoading$() {\r\n return this.store.sliceUpdate(({ resources }) => !!resources?.size);\r\n }\r\n\r\n clearLoading() {\r\n this.store.patch({ resources: new Set() });\r\n }\r\n\r\n addResource(resource: string) {\r\n const resources = this.store.state.resources;\r\n resources.add(resource);\r\n this.store.patch({ resources });\r\n }\r\n\r\n deleteResource(resource: string) {\r\n const resources = this.store.state.resources;\r\n resources.delete(resource);\r\n this.store.patch({ resources });\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { concat, Observable, of, pipe, throwError } from 'rxjs';\r\nimport { delay, retryWhen, shareReplay, take, tap } from 'rxjs/operators';\r\nimport { LoadingStrategy } from '../strategies';\r\nimport { ResourceWaitService } from './resource-wait.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LazyLoadService {\r\n private resourceWaitService = inject(ResourceWaitService);\r\n\r\n readonly loaded = new Map<string, HTMLScriptElement | HTMLLinkElement | null>();\r\n\r\n load(strategy: LoadingStrategy, retryTimes?: number, retryDelay?: number): Observable<Event> {\r\n if (this.loaded.has(strategy.path)) return of(new CustomEvent('load'));\r\n this.resourceWaitService.addResource(strategy.path);\r\n const delayOperator = retryDelay ? pipe(delay(retryDelay)) : pipe();\r\n const takeOp = retryTimes ? pipe(take(retryTimes)) : pipe();\r\n return strategy.createStream().pipe(\r\n retryWhen(error$ =>\r\n concat(\r\n error$.pipe(delayOperator, takeOp),\r\n throwError(() => new CustomEvent('error')),\r\n ),\r\n ),\r\n tap(() => {\r\n this.loaded.set(strategy.path, strategy.element);\r\n this.resourceWaitService.deleteResource(strategy.path);\r\n }),\r\n delay(100),\r\n shareReplay({ bufferSize: 1, refCount: true }),\r\n );\r\n }\r\n\r\n remove(path: string): boolean {\r\n const element = this.loaded.get(path);\r\n\r\n if (!element) return false;\r\n\r\n element.parentNode?.removeChild(element);\r\n this.loaded.delete(path);\r\n return true;\r\n }\r\n}\r\n","import { Injectable, Injector, OnDestroy, inject } from '@angular/core';\r\nimport {\r\n EMPTY,\r\n BehaviorSubject,\r\n defer,\r\n MonoTypeOperatorFunction,\r\n Observable,\r\n ReplaySubject,\r\n Subject,\r\n} from 'rxjs';\r\nimport {\r\n catchError,\r\n debounceTime,\r\n filter,\r\n finalize,\r\n shareReplay,\r\n switchMap,\r\n takeUntil,\r\n tap,\r\n} from 'rxjs/operators';\r\nimport { ABP } from '../models/common';\r\nimport { PagedResultDto } from '../models/dtos';\r\nimport { LIST_QUERY_DEBOUNCE_TIME } from '../tokens/list.token';\r\n\r\nexport type RequestStatus = 'idle' | 'loading' | 'success' | 'error';\r\n\r\n@Injectable()\r\nexport class ListService<QueryParamsType = ABP.PageQueryParams | any> implements OnDestroy {\r\n private _filter = '';\r\n set filter(value: string) {\r\n this._filter = value;\r\n this.get();\r\n }\r\n get filter(): string {\r\n return this._filter;\r\n }\r\n\r\n private _maxResultCount = 10;\r\n set maxResultCount(value: number) {\r\n this._maxResultCount = value;\r\n this.get();\r\n }\r\n get maxResultCount(): number {\r\n return this._maxResultCount;\r\n }\r\n\r\n private _page = 0;\r\n set page(value: number) {\r\n if (value === this._page) return;\r\n\r\n this._page = value;\r\n this.get();\r\n }\r\n get page(): number {\r\n return this._page;\r\n }\r\n\r\n private _totalCount = 0;\r\n set totalCount(value: number) {\r\n if (value === this._totalCount) return;\r\n\r\n this._totalCount = value;\r\n this.get();\r\n }\r\n get totalCount(): number {\r\n return this._totalCount;\r\n }\r\n\r\n private _sortKey: string | number = '';\r\n set sortKey(value: string | number) {\r\n this._sortKey = value;\r\n this.get();\r\n }\r\n get sortKey(): string | number {\r\n return this._sortKey;\r\n }\r\n\r\n private _sortOrder = '';\r\n set sortOrder(value: string) {\r\n this._sortOrder = value;\r\n this.get();\r\n }\r\n get sortOrder(): string {\r\n return this._sortOrder;\r\n }\r\n\r\n private _query$ = new ReplaySubject<QueryParamsType>(1);\r\n\r\n get query$(): Observable<QueryParamsType> {\r\n return this._query$\r\n .asObservable()\r\n .pipe(this.delay, shareReplay({ bufferSize: 1, refCount: true }));\r\n }\r\n\r\n private _isLoading$ = new BehaviorSubject(false);\r\n\r\n private _requestStatus = new BehaviorSubject<RequestStatus>('idle');\r\n\r\n private destroy$ = new Subject<void>();\r\n\r\n private delay: MonoTypeOperatorFunction<QueryParamsType>;\r\n\r\n /**\r\n * @deprecated Use `requestStatus$` instead.\r\n */\r\n get isLoading$(): Observable<boolean> {\r\n return this._isLoading$.asObservable().pipe(takeUntil(this.destroy$));\r\n }\r\n\r\n get requestStatus$(): Observable<RequestStatus> {\r\n return this._requestStatus.asObservable().pipe(takeUntil(this.destroy$));\r\n }\r\n\r\n get = () => {\r\n this.resetPageWhenUnchanged();\r\n this.next();\r\n };\r\n\r\n getWithoutPageReset = () => {\r\n this.next();\r\n };\r\n\r\n constructor() {\r\n const injector = inject(Injector);\r\n\r\n const delay = injector.get(LIST_QUERY_DEBOUNCE_TIME, 300);\r\n this.delay = delay ? debounceTime(delay) : tap();\r\n this.get();\r\n }\r\n\r\n hookToQuery<T>(\r\n streamCreatorCallback: QueryStreamCreatorCallback<T, QueryParamsType>,\r\n ): Observable<PagedResultDto<T>> {\r\n return this.query$.pipe(\r\n tap(() => this._isLoading$.next(true)),\r\n tap(() => this._requestStatus.next('loading')),\r\n switchMap(query =>\r\n defer(() => streamCreatorCallback(query)).pipe(\r\n catchError(() => {\r\n this._requestStatus.next('error');\r\n return EMPTY;\r\n }),\r\n tap(() => this._requestStatus.next('success')),\r\n finalize(() => {\r\n this._isLoading$.next(false);\r\n this._requestStatus.next('idle');\r\n }),\r\n ),\r\n ),\r\n filter(Boolean),\r\n shareReplay<any>({ bufferSize: 1, refCount: true }),\r\n takeUntil(this.destroy$),\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n }\r\n private resetPageWhenUnchanged() {\r\n const maxPage = Number(Number(this.totalCount / this._maxResultCount).toFixed());\r\n const skipCount = this._page * this._maxResultCount;\r\n\r\n if (skipCount !== this._totalCount) {\r\n return;\r\n }\r\n\r\n if (this.page === maxPage && this.page > 0) {\r\n this.page = this.page - 1;\r\n }\r\n }\r\n\r\n private next() {\r\n this._query$.next({\r\n filter: this._filter || undefined,\r\n maxResultCount: this._maxResultCount,\r\n skipCount: this._page * this._maxResultCount,\r\n sorting: this._sortOrder ? `${this._sortKey} ${this._sortOrder}` : undefined,\r\n } as any as QueryParamsType);\r\n }\r\n}\r\n\r\nexport type QueryStreamCreatorCallback<T, QueryParamsType = ABP.PageQueryParams> = (\r\n query: QueryParamsType,\r\n) => Observable<PagedResultDto<T>>;\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { ABP } from '../models/common';\r\nimport { ApplicationConfigurationDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models';\r\nimport { ConfigStateService } from './config-state.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PermissionService {\r\n protected configState = inject(ConfigStateService);\r\n\r\n\r\n getGrantedPolicy$(key: string) {\r\n return this.getStream().pipe(\r\n map(grantedPolicies => this.isPolicyGranted(key, grantedPolicies)),\r\n );\r\n }\r\n\r\n getGrantedPolicy(key: string | undefined) {\r\n const policies = this.getSnapshot();\r\n return this.isPolicyGranted(key, policies);\r\n }\r\n\r\n filterItemsByPolicy<T extends ABP.HasPolicy>(items: Array<T>) {\r\n const policies = this.getSnapshot();\r\n return items.filter(\r\n item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies),\r\n );\r\n }\r\n\r\n filterItemsByPolicy$<T extends ABP.HasPolicy>(items: Array<T>) {\r\n return this.getStream().pipe(\r\n map(policies =>\r\n items.filter(\r\n item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies),\r\n ),\r\n ),\r\n );\r\n }\r\n\r\n protected isPolicyGranted(key: string | undefined, grantedPolicies: Record<string, boolean>) {\r\n if (!key) return true;\r\n\r\n const orRegexp = /\\|\\|/g;\r\n const andRegexp = /&&/g;\r\n\r\n // TODO: Allow combination of ANDs & ORs\r\n if (orRegexp.test(key)) {\r\n const keys = key.split('||').filter(Boolean);\r\n\r\n if (keys.length < 2) return false;\r\n\r\n return keys.some(k => this.getPolicy(k.trim(), grantedPolicies));\r\n } else if (andRegexp.test(key)) {\r\n const keys = key.split('&&').filter(Boolean);\r\n\r\n if (keys.length < 2) return false;\r\n\r\n return keys.every(k => this.getPolicy(k.trim(), grantedPolicies));\r\n }\r\n\r\n return this.getPolicy(key, grantedPolicies);\r\n }\r\n\r\n protected getStream() {\r\n return this.configState.getAll$().pipe(map(this.mapToPolicies));\r\n }\r\n\r\n protected getSnapshot() {\r\n return this.mapToPolicies(this.configState.getAll());\r\n }\r\n\r\n protected mapToPolicies(applicationConfiguration: ApplicationConfigurationDto) {\r\n return applicationConfiguration?.auth?.grantedPolicies || {};\r\n }\r\n\r\n protected getPolicy(key: string, grantedPolicies: Record<string, boolean>) {\r\n return grantedPolicies[key] || false;\r\n }\r\n}\r\n","import { Injectable, NgZone, inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ReplaceableComponents } from '../models/replaceable-components';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\nimport { reloadRoute } from '../utils/route-utils';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ReplaceableComponentsService {\r\n private ngZone = inject(NgZone);\r\n private router = inject(Router);\r\n\r\n private readonly store: InternalStore<ReplaceableComponents.ReplaceableComponent[]>;\r\n\r\n get replaceableComponents$(): Observable<ReplaceableComponents.ReplaceableComponent[]> {\r\n return this.store.sliceState(state => state);\r\n }\r\n\r\n get replaceableComponents(): ReplaceableComponents.ReplaceableComponent[] {\r\n return this.store.state;\r\n }\r\n\r\n get onUpdate$(): Observable<ReplaceableComponents.ReplaceableComponent[]> {\r\n return this.store.sliceUpdate(state => state);\r\n }\r\n\r\n constructor() {\r\n this.store = new InternalStore([] as ReplaceableComponents.ReplaceableComponent[]);\r\n }\r\n\r\n add(replaceableComponent: ReplaceableComponents.ReplaceableComponent, reload?: boolean): void {\r\n const replaceableComponents = [...this.store.state];\r\n\r\n const index = replaceableComponents.findIndex(\r\n component => component.key === replaceableComponent.key,\r\n );\r\n\r\n if (index > -1) {\r\n replaceableComponents[index] = replaceableComponent;\r\n } else {\r\n replaceableComponents.push(replaceableComponent);\r\n }\r\n\r\n this.store.set(replaceableComponents);\r\n\r\n if (reload) reloadRoute(this.router, this.ngZone);\r\n }\r\n\r\n get(replaceableComponentKey: string): ReplaceableComponents.ReplaceableComponent | undefined {\r\n return this.replaceableComponents.find(component => component.key === replaceableComponentKey);\r\n }\r\n\r\n get$(replaceableComponentKey: string): Observable<ReplaceableComponents.ReplaceableComponent | undefined> {\r\n return this.replaceableComponents$.pipe(\r\n map(components => components.find(component => component.key === replaceableComponentKey)),\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpContext, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { IS_EXTERNAL_REQUEST } from '../tokens/http-context.token';\r\n\r\n// source : https://github.com/armanozak/demo-angular-server-specific-interceptors\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ExternalHttpClient extends HttpClient {\r\n override request(\r\n first: string | HttpRequest<any>,\r\n url?: string,\r\n options: RequestOptions = {},\r\n ): Observable<any> {\r\n if (typeof first === 'string') {\r\n this.#setPlaceholderContext(options);\r\n return super.request(first, url || '', options);\r\n }\r\n\r\n this.#setPlaceholderContext(first);\r\n return super.request(first);\r\n }\r\n #setPlaceholderContext(optionsOrRequest: { context?: HttpContext }) {\r\n optionsOrRequest.context ??= new HttpContext();\r\n optionsOrRequest.context.set(IS_EXTERNAL_REQUEST, true);\r\n }\r\n}\r\n\r\ntype RequestOptions = Parameters<HttpClient['request']>[2];\r\n","import { HttpClient, HttpParameterCodec, HttpParams, HttpRequest } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ExternalHttpClient } from '../clients/http.client';\r\nimport { ABP } from '../models/common';\r\nimport { Rest } from '../models/rest';\r\nimport { CORE_OPTIONS } from '../tokens/options.token';\r\nimport { isUndefinedOrEmptyString } from '../utils/common-utils';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { HttpErrorReporterService } from './http-error-reporter.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RestService {\r\n protected options = inject<ABP.Root>(CORE_OPTIONS);\r\n protected http = inject(HttpClient);\r\n protected externalHttp = inject(ExternalHttpClient);\r\n protected environment = inject(EnvironmentService);\r\n protected httpErrorReporter = inject(HttpErrorReporterService);\r\n\r\n\r\n protected getApiFromStore(apiName: string | undefined): string {\r\n return this.environment.getApiUrl(apiName);\r\n }\r\n\r\n handleError(err: any): Observable<any> {\r\n this.httpErrorReporter.reportError(err);\r\n return throwError(() => err);\r\n }\r\n\r\n request<T, R>(\r\n request: HttpRequest<T> | Rest.Request<T>,\r\n config?: Rest.Config,\r\n api?: string,\r\n ): Observable<R> {\r\n config = config || ({} as Rest.Config);\r\n api = api || this.getApiFromStore(config.apiName);\r\n const { method, params, ...options } = request;\r\n const { observe = Rest.Observe.Body, skipHandleError, responseType = Rest.ResponseType.JSON } = config;\r\n const url = this.removeDuplicateSlashes(api + request.url);\r\n\r\n const httpClient: HttpClient = this.getHttpClient(config.skipAddingHeader);\r\n return httpClient\r\n .request<R>(method, url, {\r\n observe,\r\n responseType: responseType as any,\r\n ...(params && {\r\n params: this.getParams(params, config.httpParamEncoder),\r\n }),\r\n ...options,\r\n } as any)\r\n .pipe(catchError(err => (skipHandleError ? throwError(() => err) : this.handleError(err))));\r\n }\r\n private getHttpClient(isExternal: boolean) {\r\n return isExternal ? this.externalHttp : this.http;\r\n }\r\n\r\n private getParams(params: Rest.Params, encoder?: HttpParameterCodec): HttpParams {\r\n const filteredParams = Object.entries(params).reduce((acc, [key, value]) => {\r\n if (isUndefinedOrEmptyString(value)) return acc;\r\n if (value === null && !this.options.sendNullsAsQueryParam) return acc;\r\n acc[key] = value;\r\n return acc;\r\n }, {} as any);\r\n return encoder\r\n ? new HttpParams({ encoder, fromObject: filteredParams })\r\n : new HttpParams({ fromObject: filteredParams });\r\n }\r\n\r\n private removeDuplicateSlashes(url: string): string {\r\n return url.replace(/([^:]\\/)\\/+/g, '$1');\r\n }\r\n}\r\n","import { Injectable, Type, inject, signal } from '@angular/core';\r\nimport {\r\n NavigationCancel,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationStart,\r\n Router,\r\n RouterEvent,\r\n Event,\r\n} from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nexport const NavigationEvent = {\r\n Cancel: NavigationCancel,\r\n End: NavigationEnd,\r\n Error: NavigationError,\r\n Start: NavigationStart,\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RouterEvents {\r\n protected readonly router = inject(Router);\r\n\r\n readonly #previousNavigation = signal<string | undefined>(undefined);\r\n previousNavigation = this.#previousNavigation.asReadonly();\r\n\r\n readonly #currentNavigation = signal<string | undefined>(undefined);\r\n currentNavigation = this.#currentNavigation.asReadonly();\r\n\r\n constructor() {\r\n this.listenToNavigation();\r\n }\r\n\r\n protected listenToNavigation(): void {\r\n const routerEvent$ = this.router.events.pipe(\r\n filter(e => e instanceof NavigationEvent.End && e.url != null && !e.url.includes('error'))\r\n ) as Observable<NavigationEnd>;\r\n \r\n routerEvent$.subscribe(event => {\r\n this.#previousNavigation.set(this.currentNavigation());\r\n this.#currentNavigation.set(event.url);\r\n });\r\n }\r\n\r\n getEvents<T extends RouterEventConstructors>(...eventTypes: T) {\r\n const filterRouterEvents = (event: Event) => eventTypes.some(type => event instanceof type);\r\n\r\n return this.router.events.pipe(filter(filterRouterEvents));\r\n }\r\n\r\n getNavigationEvents<T extends NavigationEventKeys>(...navigationEventKeys: T) {\r\n type FilteredNavigationEvent = T extends (infer Key)[]\r\n ? Key extends NavigationEventKey\r\n ? InstanceType<NavigationEventType[Key]>\r\n : never\r\n : never;\r\n\r\n const filterNavigationEvents = (event: Event): event is FilteredNavigationEvent =>\r\n navigationEventKeys.some(key => event instanceof NavigationEvent[key]);\r\n\r\n return this.router.events.pipe(filter(filterNavigationEvents));\r\n }\r\n\r\n getAllEvents() {\r\n return this.router.events;\r\n }\r\n\r\n getAllNavigationEvents() {\r\n const keys = Object.keys(NavigationEvent) as NavigationEventKeys;\r\n return this.getNavigationEvents(...keys);\r\n }\r\n}\r\n\r\ntype RouterEventConstructors = [Type<RouterEvent>, ...Type<RouterEvent>[]];\r\n\r\ntype NavigationEventKeys = [NavigationEventKey, ...NavigationEventKey[]];\r\n\r\ntype NavigationEventType = typeof NavigationEvent;\r\n\r\nexport type NavigationEventKey = keyof NavigationEventType;\r\n","import { Injectable, Injector, inject } from '@angular/core';\r\nimport { NavigationStart } from '@angular/router';\r\nimport { of, Subject, timer } from 'rxjs';\r\nimport { map, mapTo, switchMap, takeUntil, tap } from 'rxjs/operators';\r\nimport { LOADER_DELAY } from '../tokens/lodaer-delay.token';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\nimport { RouterEvents } from './router-events.service';\r\n\r\nexport interface RouterWaitState {\r\n loading: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RouterWaitService {\r\n private routerEvents = inject(RouterEvents);\r\n\r\n private store = new InternalStore<RouterWaitState>({ loading: false });\r\n private destroy$ = new Subject<void>();\r\n private delay: number;\r\n constructor() {\r\n const injector = inject(Injector);\r\n\r\n this.delay = injector.get(LOADER_DELAY, 500);\r\n this.updateLoadingStatusOnNavigationEvents();\r\n }\r\n\r\n private updateLoadingStatusOnNavigationEvents() {\r\n this.routerEvents\r\n .getAllNavigationEvents()\r\n .pipe(\r\n map(event => event instanceof NavigationStart),\r\n switchMap(condition =>\r\n condition\r\n ? this.delay === 0\r\n ? of(true)\r\n : timer(this.delay || 0).pipe(mapTo(true), takeUntil(this.destroy$))\r\n : of(false),\r\n ),\r\n tap(() => this.destroy$.next()),\r\n )\r\n .subscribe(status => {\r\n this.setLoading(status);\r\n });\r\n }\r\n\r\n getLoading() {\r\n return this.store.state.loading;\r\n }\r\n\r\n getLoading$() {\r\n return this.store.sliceState(({ loading }) => loading);\r\n }\r\n\r\n updateLoading$() {\r\n return this.store.sliceUpdate(({ loading }) => loading);\r\n }\r\n\r\n setLoading(loading: boolean) {\r\n this.store.patch({ loading });\r\n }\r\n}\r\n","import { Injectable, Injector, OnDestroy, inject } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subscription, map } from 'rxjs';\r\nimport { ABP } from '../models/common';\r\nimport { OTHERS_GROUP } from '../tokens';\r\nimport { pushValueTo } from '../utils/array-utils';\r\nimport {\r\n BaseTreeNode,\r\n createTreeFromList,\r\n TreeNode,\r\n RouteGroup,\r\n createGroupMap,\r\n} from '../utils/tree-utils';\r\nimport { ConfigStateService } from './config-state.service';\r\nimport { PermissionService } from './permission.service';\r\nimport { SORT_COMPARE_FUNC } from '../tokens/compare-func.token';\r\n\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nexport abstract class AbstractTreeService<T extends { [key: string | number | symbol]: any }> {\r\n abstract id: string;\r\n abstract parentId: string;\r\n abstract hide: (item: T) => boolean;\r\n abstract sort: (a: T, b: T) => number;\r\n\r\n private _flat$ = new BehaviorSubject<T[]>([]);\r\n private _tree$ = new BehaviorSubject<TreeNode<T>[]>([]);\r\n private _visible$ = new BehaviorSubject<TreeNode<T>[]>([]);\r\n\r\n protected othersGroup: string;\r\n protected shouldSingularizeRoutes = true;\r\n\r\n get flat(): T[] {\r\n return this._flat$.value;\r\n }\r\n\r\n get flat$(): Observable<T[]> {\r\n return this._flat$.asObservable();\r\n }\r\n\r\n get tree(): TreeNode<T>[] {\r\n return this._tree$.value;\r\n }\r\n\r\n get tree$(): Observable<TreeNode<T>[]> {\r\n return this._tree$.asObservable();\r\n }\r\n\r\n get visible(): TreeNode<T>[] {\r\n return this._visible$.value;\r\n }\r\n\r\n get visible$(): Observable<TreeNode<T>[]> {\r\n return this._visible$.asObservable();\r\n }\r\n\r\n private filterWith(setOrMap: Set<string> | Map<string, T>): T[] {\r\n return this._flat$.value.filter(item => !setOrMap.has(item[this.id]));\r\n }\r\n\r\n private findItemsToRemove(set: Set<string>): Set<string> {\r\n return this._flat$.value.reduce((acc, item) => {\r\n if (!acc.has(item[this.parentId])) {\r\n return acc;\r\n }\r\n\r\n const childSet = new Set([item[this.id]]);\r\n const children = this.findItemsToRemove(childSet);\r\n return new Set([...acc, ...children]);\r\n }, set);\r\n }\r\n\r\n private publish(flatItems: T[]): T[] {\r\n this._flat$.next(flatItems);\r\n this._tree$.next(this.createTree(flatItems));\r\n this._visible$.next(this.createTree(flatItems.filter(item => !this.hide(item))));\r\n return flatItems;\r\n }\r\n\r\n protected createTree(items: T[]): TreeNode<T>[] {\r\n return createTreeFromList<T, TreeNode<T>>(\r\n items,\r\n item => item[this.id],\r\n item => item[this.parentId],\r\n item => BaseTreeNode.create(item),\r\n );\r\n }\r\n\r\n protected createGroupedTree(list: TreeNode<T>[]): RouteGroup<T>[] | undefined {\r\n const map = createGroupMap<T>(list, this.othersGroup);\r\n if (!map) {\r\n return undefined;\r\n }\r\n\r\n return Array.from(map, ([key, items]) => ({ group: key, items }));\r\n }\r\n\r\n add(items: T[]): T[] {\r\n let flatItems: T[] = [];\r\n\r\n if (!this.shouldSingularizeRoutes) {\r\n flatItems = [...this.flat, ...items];\r\n }\r\n\r\n if (this.shouldSingularizeRoutes) {\r\n const map = new Map<string, T>();\r\n items.forEach(item => map.set(item[this.id], item));\r\n flatItems = this.filterWith(map);\r\n map.forEach(pushValueTo(flatItems));\r\n }\r\n\r\n flatItems.sort(this.sort);\r\n\r\n return this.publish(flatItems);\r\n }\r\n\r\n find(predicate: (item: TreeNode<T>) => boolean, tree = this.tree): TreeNode<T> | null {\r\n return tree.reduce<TreeNode<T> | null>((acc, node) => {\r\n if (acc) {\r\n return acc;\r\n }\r\n\r\n if (predicate(node)) {\r\n return node;\r\n }\r\n\r\n return this.find(predicate, node.children);\r\n }, null);\r\n }\r\n\r\n patch(identifier: string, props: Partial<T>): T[] | false {\r\n const flatItems = this._flat$.value;\r\n const index = flatItems.findIndex(item => item[this.id] === identifier);\r\n if (index < 0) {\r\n return false;\r\n }\r\n\r\n flatItems[index] = { ...flatItems[index], ...props };\r\n\r\n flatItems.sort(this.sort);\r\n return this.publish(flatItems);\r\n }\r\n\r\n refresh(): T[] {\r\n return this.add([]);\r\n }\r\n\r\n remove(identifiers: string[]): T[] {\r\n const set = new Set<string>();\r\n identifiers.forEach(id => set.add(id));\r\n\r\n const setToRemove = this.findItemsToRemove(set);\r\n const flatItems = this.filterWith(setToRemove);\r\n return this.publish(flatItems);\r\n }\r\n\r\n removeByParam(params: Partial<T>): T[] | null {\r\n if (!params) {\r\n return null;\r\n }\r\n\r\n const keys = Object.keys(params) as Array<keyof Partial<T>>;\r\n if (keys.length === 0) {\r\n return null;\r\n }\r\n\r\n const excludedList = this.flat.filter(item => keys.every(key => item[key] === params[key]));\r\n if (!excludedList?.length) {\r\n return null;\r\n }\r\n\r\n for (const item of excludedList) {\r\n this.removeByParam({ [this.parentId]: item[this.id] } as Partial<T>);\r\n }\r\n\r\n const flatItems = this.flat.filter(item => !excludedList.includes(item));\r\n return this.publish(flatItems);\r\n }\r\n\r\n search(params: Partial<T>, tree = this.tree): TreeNode<T> | null {\r\n const searchKeys = Object.keys(params) as Array<keyof Partial<T>>;\r\n\r\n return tree.reduce<TreeNode<T> | null>((acc, node) => {\r\n if (acc) {\r\n return acc;\r\n }\r\n\r\n if (searchKeys.every(key => node[key] === params[key])) {\r\n return node;\r\n }\r\n\r\n return this.search(params, node.children);\r\n }, null);\r\n }\r\n\r\n setSingularizeStatus(singularize = true): void {\r\n this.shouldSingularizeRoutes = singularize;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport abstract class AbstractNavTreeService<T extends ABP.Nav>\r\n extends AbstractTreeService<T>\r\n implements OnDestroy\r\n{\r\n protected injector = inject(Injector);\r\n\r\n private subscription: Subscription;\r\n private permissionService: PermissionService;\r\n private compareFunc;\r\n readonly id = 'name';\r\n readonly parentId = 'parentName';\r\n readonly hide = (item: T) => item.invisible || !this.isGranted(item);\r\n readonly sort = (a: T, b: T) => {\r\n return this.compareFunc(a, b);\r\n };\r\n\r\n constructor() {\r\n super();\r\n const injector = this.injector;\r\n\r\n const configState = this.injector.get(ConfigStateService);\r\n this.subscription = configState\r\n .createOnUpdateStream(state => state)\r\n .subscribe(() => this.refresh());\r\n this.permissionService = injector.get(PermissionService);\r\n this.othersGroup = injector.get(OTHERS_GROUP);\r\n this.compareFunc = injector.get(SORT_COMPARE_FUNC);\r\n }\r\n\r\n protected isGranted({ requiredPolicy }: T): boolean {\r\n return this.permissionService.getGrantedPolicy(requiredPolicy);\r\n }\r\n\r\n hasChildren(identifier: string): boolean {\r\n const node = this.find(item => item[this.id] === identifier);\r\n return Boolean(node?.children?.length);\r\n }\r\n\r\n hasInvisibleChild(identifier: string): boolean {\r\n const node = this.find(item => item[this.id] === identifier);\r\n return node?.children?.some(child => child.invisible) || false;\r\n }\r\n\r\n /* istanbul ignore next */\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RoutesService extends AbstractNavTreeService<ABP.Route> {\r\n private hasPathOrChild(item: TreeNode<ABP.Route>): boolean {\r\n return Boolean(item.path) || this.hasChildren(item.name);\r\n }\r\n\r\n get groupedVisible(): RouteGroup<ABP.Route>[] | undefined {\r\n return this.createGroupedTree(this.visible.filter(item => this.hasPathOrChild(item)));\r\n }\r\n\r\n get groupedVisible$(): Observable<RouteGroup<ABP.Route>[] | undefined> {\r\n return this.visible$.pipe(\r\n map(items => items.filter(item => this.hasPathOrChild(item))),\r\n map(visible => this.createGroupedTree(visible)),\r\n );\r\n }\r\n}\r\n","import type { OnDestroy } from '@angular/core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { Observable, PartialObserver } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SubscriptionService implements OnDestroy {\r\n private subscription = new Subscription();\r\n\r\n get isClosed() {\r\n return this.subscription.closed;\r\n }\r\n\r\n addOne<T>(\r\n source$: Observable<T>,\r\n next?: (value: T) => void,\r\n error?: (error: any) => void,\r\n ): Subscription;\r\n addOne<T>(source$: Observable<T>, observer?: PartialObserver<T>): Subscription;\r\n addOne<T>(\r\n source$: Observable<T>,\r\n nextOrObserver?: PartialObserver<T> | Next<T>,\r\n error?: (error: any) => void,\r\n ): Subscription {\r\n const subscription = source$.subscribe(nextOrObserver as Next<T>, error);\r\n this.subscription.add(subscription);\r\n return subscription;\r\n }\r\n\r\n closeAll() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n closeOne(subscription: Subscription | undefined | null) {\r\n this.removeOne(subscription);\r\n if (subscription) {\r\n subscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n removeOne(subscription: Subscription | undefined | null) {\r\n if (!subscription) return;\r\n this.subscription.remove(subscription);\r\n }\r\n\r\n reset() {\r\n this.subscription.unsubscribe();\r\n this.subscription = new Subscription();\r\n }\r\n}\r\n\r\ntype Next<T> = (value: T) => void;\r\n","import { Injectable, TrackByFunction } from '@angular/core';\r\nimport { O } from 'ts-toolbelt';\r\n\r\nexport const trackBy =\r\n <T = any>(key: keyof T): TrackByFunction<T> =>\r\n (_, item) =>\r\n item[key];\r\n\r\nexport const trackByDeep =\r\n <T = any>(\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n ...keys: T extends object ? O.Paths<T> : never\r\n ): TrackByFunction<T> =>\r\n (_, item) =>\r\n keys.reduce((acc, key) => acc[key], item);\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TrackByService<ItemType = any> {\r\n by = trackBy;\r\n\r\n byDeep = trackByDeep;\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AbpWindowService {\r\n public readonly document = inject(DOCUMENT);\r\n public readonly window = this.document.defaultView;\r\n public readonly navigator = this.window.navigator;\r\n\r\n copyToClipboard(text: string): Promise<void> {\r\n return this.navigator.clipboard.writeText(text);\r\n }\r\n\r\n open(url?: string | URL, target?: string, features?: string): Window {\r\n return this.window.open(url, target, features);\r\n }\r\n\r\n reloadPage(): void {\r\n this.window.location.reload();\r\n }\r\n\r\n downloadBlob(blob: Blob, fileName: string) {\r\n const blobUrl = this.window.URL.createObjectURL(blob);\r\n const a = this.document.createElement('a');\r\n a.style.display = 'none';\r\n a.href = blobUrl;\r\n a.download = fileName;\r\n this.document.body.appendChild(a);\r\n a.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: this.window,\r\n }),\r\n );\r\n this.window.URL.revokeObjectURL(blobUrl);\r\n this.document.body.removeChild(a);\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Injectable, computed, inject, signal } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InternetConnectionService {\r\n readonly document = inject(DOCUMENT);\r\n readonly window = this.document.defaultView;\r\n readonly navigator = this.window.navigator;\r\n\r\n private status$ = new BehaviorSubject<boolean>(this.navigator.onLine);\r\n\r\n private status = signal(this.navigator.onLine);\r\n\r\n networkStatus = computed(() => this.status());\r\n\r\n constructor() {\r\n this.window.addEventListener('offline', () => this.setStatus(false));\r\n this.window.addEventListener('online', () => this.setStatus(true));\r\n }\r\n\r\n setStatus(val: boolean) {\r\n this.status.set(val);\r\n this.status$.next(val);\r\n }\r\n\r\n get networkStatus$() {\r\n return this.status$.asObservable();\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Injectable, inject } from '@angular/core';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LocalStorageListenerService {\r\n protected readonly window = inject(DOCUMENT).defaultView;\r\n\r\n constructor() {\r\n this.window.addEventListener('storage', event => {\r\n if (event.key === 'access_token') {\r\n const tokenRemoved = event.newValue === null;\r\n const tokenAdded = event.oldValue === null && event.newValue !== null;\r\n\r\n if (tokenRemoved || tokenAdded) {\r\n this.window.location.assign('/');\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable, effect, inject } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { TitleStrategy, RouterStateSnapshot } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { LocalizationService } from './localization.service';\r\nimport { DISABLE_PROJECT_NAME } from '../tokens';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpTitleStrategy extends TitleStrategy {\r\n protected readonly title = inject(Title);\r\n protected readonly localizationService = inject(LocalizationService);\r\n protected readonly disableProjectName = inject(DISABLE_PROJECT_NAME, { optional: true });\r\n protected routerState: RouterStateSnapshot;\r\n\r\n langugageChange = toSignal(this.localizationService.languageChange$);\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (this.langugageChange()) {\r\n this.updateTitle(this.routerState);\r\n }\r\n });\r\n }\r\n\r\n override updateTitle(routerState: RouterStateSnapshot) {\r\n this.routerState = routerState;\r\n const title = this.buildTitle(routerState);\r\n\r\n const projectName = this.localizationService.instant({\r\n key: '::AppName',\r\n defaultValue: 'MyProjectName',\r\n });\r\n\r\n if (!title) {\r\n return this.title.setTitle(projectName);\r\n }\r\n \r\n let localizedText = this.localizationService.instant({ key: title, defaultValue: title });\r\n if (!this.disableProjectName) {\r\n localizedText += ` | ${projectName}`;\r\n }\r\n\r\n this.title.setTitle(localizedText);\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ConfigStateService } from './config-state.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TimezoneService {\r\n protected readonly configState = inject(ConfigStateService);\r\n protected readonly document = inject(DOCUMENT);\r\n private readonly cookieKey = '__timezone';\r\n private timeZoneNameFromSettings: string | null | undefined;\r\n public isUtcClockEnabled: boolean | undefined;\r\n\r\n constructor() {\r\n this.configState.getOne$('setting').subscribe(settings => {\r\n this.timeZoneNameFromSettings = settings?.values?.['Abp.Timing.TimeZone'];\r\n });\r\n this.configState.getOne$('clock').subscribe(clock => {\r\n this.isUtcClockEnabled = clock?.kind === 'Utc';\r\n });\r\n }\r\n\r\n /**\r\n * Returns the effective timezone to be used across the application.\r\n *\r\n * This value is determined based on the clock kind setting in the configuration:\r\n * - If clock kind is not equal to Utc, the browser's local timezone is returned.\r\n * - If clock kind is equal to Utc, the configured timezone (`timeZoneNameFromSettings`) is returned if available;\r\n * otherwise, the browser's timezone is used as a fallback.\r\n *\r\n * @returns The IANA timezone name (e.g., 'Europe/Istanbul', 'America/New_York').\r\n */\r\n get timezone(): string {\r\n if (!this.isUtcClockEnabled) {\r\n return this.getBrowserTimezone();\r\n }\r\n return this.timeZoneNameFromSettings || this.getBrowserTimezone();\r\n }\r\n\r\n /**\r\n * Retrieves the browser's local timezone based on the user's system settings.\r\n *\r\n * @returns The IANA timezone name (e.g., 'Europe/Istanbul', 'America/New_York').\r\n */\r\n getBrowserTimezone(): string {\r\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n }\r\n\r\n /**\r\n * Sets the application's timezone in a cookie to persist the user's selected timezone.\r\n *\r\n * This method sets the cookie only if the clock kind setting is set to UTC.\r\n * The cookie is stored using the key defined by `this.cookieKey` and applied to the root path (`/`).\r\n *\r\n * @param timezone - The IANA timezone name to be stored (e.g., 'Europe/Istanbul').\r\n */\r\n setTimezone(timezone: string): void {\r\n if (this.isUtcClockEnabled) {\r\n this.document.cookie = `${this.cookieKey}=${timezone}; path=/`;\r\n }\r\n }\r\n}\r\n","import { inject, Injectable, LOCALE_ID } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TimeService {\r\n private locale = inject(LOCALE_ID);\r\n\r\n /**\r\n * Returns the current date and time in the specified timezone.\r\n *\r\n * @param zone - An IANA timezone name (e.g., 'Europe/Istanbul', 'UTC'); defaults to the system's local timezone.\r\n * @returns A Luxon DateTime instance representing the current time in the given timezone.\r\n */\r\n now(zone = 'local'): DateTime {\r\n return DateTime.now().setZone(zone);\r\n }\r\n\r\n /**\r\n * Converts the input date to the specified timezone, applying any timezone and daylight saving time (DST) adjustments.\r\n *\r\n * This method:\r\n * 1. Parses the input value into a Luxon DateTime object.\r\n * 2. Applies the specified IANA timezone, including any DST shifts based on the given date.\r\n *\r\n * @param value - The ISO string or Date object to convert.\r\n * @param zone - An IANA timezone name (e.g., 'America/New_York').\r\n * @returns A Luxon DateTime instance adjusted to the specified timezone and DST rules.\r\n */\r\n toZone(value: string | Date, zone: string): DateTime {\r\n return DateTime.fromISO(value instanceof Date ? value.toISOString() : value, {\r\n zone,\r\n });\r\n }\r\n\r\n /**\r\n * Formats the input date by applying timezone and daylight saving time (DST) adjustments.\r\n *\r\n * This method:\r\n * 1. Converts the input date to the specified timezone.\r\n * 2. Formats the result using the given format and locale, reflecting any timezone or DST shifts.\r\n *\r\n * @param value - The ISO string or Date object to format.\r\n * @param format - The format string (default: 'ff').\r\n * @param zone - Optional IANA timezone name (e.g., 'America/New_York'); defaults to the system's local timezone.\r\n * @returns A formatted date string adjusted for the given timezone and DST rules.\r\n */\r\n format(value: string | Date, format = 'ff', zone = 'local'): string {\r\n return this.toZone(value, zone).setLocale(this.locale).toFormat(format);\r\n }\r\n\r\n /**\r\n * Formats a date using the standard time offset (ignoring daylight saving time) for the specified timezone.\r\n *\r\n * This method:\r\n * 1. Converts the input date to UTC.\r\n * 2. Calculates the standard UTC offset for the given timezone (based on January 1st to avoid DST).\r\n * 3. Applies the standard offset manually to the UTC time.\r\n * 4. Formats the result using the specified format and locale, without applying additional timezone shifts.\r\n *\r\n * @param value - The ISO string or Date object to format.\r\n * @param format - The Luxon format string (default: 'ff').\r\n * @param zone - Optional IANA timezone name (e.g., 'America/New_York'); if omitted, system local timezone is used.\r\n * @returns A formatted date string adjusted by standard time (non-DST).\r\n */\r\n formatDateWithStandardOffset(value: string | Date, format = 'ff', zone?: string): string {\r\n const utcDate =\r\n typeof value === 'string'\r\n ? DateTime.fromISO(value, { zone: 'UTC' })\r\n : DateTime.fromJSDate(value, { zone: 'UTC' });\r\n\r\n if (!utcDate.isValid) return '';\r\n\r\n const targetZone = zone ?? DateTime.local().zoneName;\r\n\r\n const januaryDate = DateTime.fromObject(\r\n { year: utcDate.year, month: 1, day: 1 },\r\n { zone: targetZone },\r\n );\r\n const standardOffset = januaryDate.offset;\r\n const dateWithStandardOffset = utcDate.plus({ minutes: standardOffset });\r\n\r\n return dateWithStandardOffset.setZone('UTC').setLocale(this.locale).toFormat(format);\r\n }\r\n\r\n /**\r\n * Formats the input date using its original clock time, without converting based on timezone or DST\r\n *\r\n * This method:\r\n * 1. Converts the input date to ISO string.\r\n * 2. Calculates the date time in UTC, keeping the local time.\r\n * 3. Formats the result using the specified format and locale, without shifting timezones.\r\n *\r\n * @param value - The ISO string or Date object to format.\r\n * @param format - The format string (default: 'ff').\r\n * @returns A formatted date string without applying timezone.\r\n */\r\n formatWithoutTimeZone(value: string | Date, format = 'ff'): string {\r\n const isoString = value instanceof Date ? value.toISOString() : value;\r\n\r\n const dateTime = DateTime.fromISO(isoString)\r\n .setZone('utc', { keepLocalTime: true })\r\n .setLocale(this.locale);\r\n return dateTime.toFormat(format);\r\n }\r\n}\r\n","import { ViewContainerRef } from '@angular/core';\r\n\r\nexport abstract class ContainerStrategy {\r\n constructor(public containerRef: ViewContainerRef) {}\r\n\r\n abstract getIndex(): number;\r\n\r\n prepare(): void {}\r\n}\r\n\r\nexport class ClearContainerStrategy extends ContainerStrategy {\r\n getIndex(): number {\r\n return 0;\r\n }\r\n\r\n prepare() {\r\n this.containerRef.clear();\r\n }\r\n}\r\n\r\nexport class InsertIntoContainerStrategy extends ContainerStrategy {\r\n constructor(containerRef: ViewContainerRef, private index: number) {\r\n super(containerRef);\r\n }\r\n\r\n getIndex() {\r\n return Math.min(Math.max(0, this.index), this.containerRef.length);\r\n }\r\n}\r\n\r\nexport const CONTAINER_STRATEGY = {\r\n Clear(containerRef: ViewContainerRef) {\r\n return new ClearContainerStrategy(containerRef);\r\n },\r\n Append(containerRef: ViewContainerRef) {\r\n return new InsertIntoContainerStrategy(containerRef, containerRef.length);\r\n },\r\n Prepend(containerRef: ViewContainerRef) {\r\n return new InsertIntoContainerStrategy(containerRef, 0);\r\n },\r\n Insert(containerRef: ViewContainerRef, index: number) {\r\n return new InsertIntoContainerStrategy(containerRef, index);\r\n },\r\n};\r\n","export abstract class ContentSecurityStrategy {\r\n constructor(public nonce?: string) {}\r\n\r\n abstract applyCSP(element: HTMLScriptElement | HTMLStyleElement): void;\r\n}\r\n\r\nexport class LooseContentSecurityStrategy extends ContentSecurityStrategy {\r\n constructor(nonce: string) {\r\n super(nonce);\r\n }\r\n\r\n applyCSP(element: HTMLScriptElement | HTMLStyleElement) {\r\n if (this.nonce) {\r\n element.setAttribute('nonce', this.nonce);\r\n }\r\n }\r\n}\r\n\r\nexport class NoContentSecurityStrategy extends ContentSecurityStrategy {\r\n constructor() {\r\n super();\r\n }\r\n\r\n applyCSP(_: HTMLScriptElement | HTMLStyleElement) {}\r\n}\r\n\r\nexport const CONTENT_SECURITY_STRATEGY = {\r\n Loose(nonce: string) {\r\n return new LooseContentSecurityStrategy(nonce);\r\n },\r\n None() {\r\n return new NoContentSecurityStrategy();\r\n },\r\n};\r\n","import { CONTENT_SECURITY_STRATEGY, ContentSecurityStrategy } from './content-security.strategy';\r\nimport { DOM_STRATEGY, DomStrategy } from './dom.strategy';\r\nimport { inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\nexport type ElementOptions<T extends HTMLScriptElement | HTMLStyleElement = any> = Partial<{\r\n [key in keyof T]: T[key];\r\n}>;\r\n\r\nexport abstract class ContentStrategy<T extends HTMLScriptElement | HTMLStyleElement = any> {\r\n constructor(\r\n public content: string,\r\n protected domStrategy: DomStrategy = DOM_STRATEGY.AppendToHead(),\r\n protected contentSecurityStrategy: ContentSecurityStrategy = CONTENT_SECURITY_STRATEGY.None(),\r\n protected options: ElementOptions<T> = {},\r\n ) {}\r\n\r\n abstract createElement(): T;\r\n\r\n insertElement(): T {\r\n const element = this.createElement();\r\n\r\n if (this.options && Object.keys(this.options).length > 0) {\r\n (Object.keys(this.options) as Array<keyof ElementOptions<T>>).forEach(key => {\r\n if (this.options[key]) {\r\n element[key] = (this.options as NonNullable<T>)[key];\r\n }\r\n });\r\n }\r\n\r\n this.contentSecurityStrategy.applyCSP(element);\r\n this.domStrategy.insertElement(element);\r\n\r\n return element;\r\n }\r\n}\r\n\r\nexport class StyleContentStrategy extends ContentStrategy<HTMLStyleElement> {\r\n createElement(): HTMLStyleElement {\r\n const element = inject(DOCUMENT).createElement('style');\r\n element.textContent = this.content;\r\n\r\n return element;\r\n }\r\n}\r\n\r\nexport class ScriptContentStrategy extends ContentStrategy<HTMLScriptElement> {\r\n createElement(): HTMLScriptElement {\r\n const element = inject(DOCUMENT).createElement('script');\r\n element.textContent = this.content;\r\n\r\n return element;\r\n }\r\n}\r\n\r\nexport const CONTENT_STRATEGY = {\r\n AppendScriptToBody(content: string, options?: ElementOptions<HTMLScriptElement>) {\r\n return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToBody(), undefined, options);\r\n },\r\n AppendScriptToHead(content: string, options?: ElementOptions<HTMLScriptElement>) {\r\n return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);\r\n },\r\n AppendStyleToHead(content: string, options?: ElementOptions<HTMLStyleElement>) {\r\n return new StyleContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);\r\n },\r\n PrependStyleToHead(content: string, options?: ElementOptions<HTMLStyleElement>) {\r\n return new StyleContentStrategy(content, DOM_STRATEGY.PrependToHead(), undefined, options);\r\n },\r\n};\r\n","import { ComponentRef, TemplateRef, Type } from '@angular/core';\r\nimport { InferredContextOf, InferredInstanceOf } from '../models';\r\n\r\nexport abstract class ContextStrategy<T = any> {\r\n constructor(public context: Partial<ContextType<T>>) {}\r\n\r\n setContext(componentRef?: ComponentRef<InferredInstanceOf<T>>): Partial<ContextType<T>> {\r\n return this.context;\r\n }\r\n}\r\n\r\nexport class NoContextStrategy<\r\n T extends Type<any> | TemplateRef<any> = any,\r\n> extends ContextStrategy<T> {\r\n constructor() {\r\n super(undefined as unknown as Partial<ContextType<T>>);\r\n }\r\n}\r\n\r\nexport class ComponentContextStrategy<T extends Type<any> = any> extends ContextStrategy<T> {\r\n setContext(componentRef: ComponentRef<InferredInstanceOf<T>>): Partial<InferredInstanceOf<T>> {\r\n Object.keys(this.context).forEach(key => (componentRef.instance[key] = this.context[key]));\r\n componentRef.changeDetectorRef.detectChanges();\r\n return this.context;\r\n }\r\n}\r\n\r\nexport class TemplateContextStrategy<T extends TemplateRef<any> = any> extends ContextStrategy<T> {\r\n setContext(): Partial<InferredContextOf<T>> {\r\n return this.context;\r\n }\r\n}\r\n\r\nexport const CONTEXT_STRATEGY = {\r\n None<T extends Type<any> | TemplateRef<any> = any>() {\r\n return new NoContextStrategy<T>();\r\n },\r\n Component<T extends Type<any> = any>(context: Partial<InferredInstanceOf<T>>) {\r\n return new ComponentContextStrategy<T>(context);\r\n },\r\n Template<T extends TemplateRef<any> = any>(context: Partial<InferredContextOf<T>>) {\r\n return new TemplateContextStrategy<T>(context);\r\n },\r\n};\r\n\r\ntype ContextType<T> = T extends Type<infer U> | TemplateRef<infer U> ? U : never;\r\n","import { Observable, of } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { fromLazyLoad } from '../utils';\r\nimport { CROSS_ORIGIN_STRATEGY, CrossOriginStrategy } from './cross-origin.strategy';\r\nimport { DOM_STRATEGY, DomStrategy } from './dom.strategy';\r\n\r\nexport abstract class LoadingStrategy<T extends HTMLScriptElement | HTMLLinkElement = any> {\r\n element!: T;\r\n\r\n constructor(\r\n public path: string,\r\n protected domStrategy: DomStrategy = DOM_STRATEGY.AppendToHead(),\r\n protected crossOriginStrategy: CrossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous(),\r\n ) {}\r\n\r\n abstract createElement(): T;\r\n\r\n createStream<E extends Event>(): Observable<E> {\r\n this.element = this.createElement();\r\n\r\n return of(null).pipe(\r\n switchMap(() => fromLazyLoad<E>(this.element, this.domStrategy, this.crossOriginStrategy)),\r\n );\r\n }\r\n}\r\n\r\nexport class ScriptLoadingStrategy extends LoadingStrategy<HTMLScriptElement> {\r\n constructor(src: string, domStrategy?: DomStrategy, crossOriginStrategy?: CrossOriginStrategy) {\r\n super(src, domStrategy, crossOriginStrategy);\r\n }\r\n\r\n createElement(): HTMLScriptElement {\r\n const element = document.createElement('script');\r\n element.src = this.path;\r\n\r\n return element;\r\n }\r\n}\r\n\r\nexport class StyleLoadingStrategy extends LoadingStrategy<HTMLLinkElement> {\r\n constructor(href: string, domStrategy?: DomStrategy, crossOriginStrategy?: CrossOriginStrategy) {\r\n super(href, domStrategy, crossOriginStrategy);\r\n }\r\n\r\n createElement(): HTMLLinkElement {\r\n const element = document.createElement('link');\r\n element.rel = 'stylesheet';\r\n element.href = this.path;\r\n\r\n return element;\r\n }\r\n}\r\n\r\nexport const LOADING_STRATEGY = {\r\n AppendScriptToBody(src: string) {\r\n return new ScriptLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.AppendToBody(),\r\n CROSS_ORIGIN_STRATEGY.None(),\r\n );\r\n },\r\n AppendAnonymousScriptToBody(src: string, integrity?: string) {\r\n return new ScriptLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.AppendToBody(),\r\n CROSS_ORIGIN_STRATEGY.Anonymous(integrity),\r\n );\r\n },\r\n AppendAnonymousScriptToHead(src: string, integrity?: string) {\r\n return new ScriptLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.AppendToHead(),\r\n CROSS_ORIGIN_STRATEGY.Anonymous(integrity),\r\n );\r\n },\r\n AppendAnonymousStyleToHead(src: string, integrity?: string) {\r\n return new StyleLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.AppendToHead(),\r\n CROSS_ORIGIN_STRATEGY.Anonymous(integrity),\r\n );\r\n },\r\n PrependAnonymousScriptToHead(src: string, integrity?: string) {\r\n return new ScriptLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.PrependToHead(),\r\n CROSS_ORIGIN_STRATEGY.Anonymous(integrity),\r\n );\r\n },\r\n PrependAnonymousStyleToHead(src: string, integrity?: string) {\r\n return new StyleLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.PrependToHead(),\r\n CROSS_ORIGIN_STRATEGY.Anonymous(integrity),\r\n );\r\n },\r\n};\r\n","import {\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n Injector,\r\n TemplateRef,\r\n Type,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { InferredContextOf, InferredInstanceOf } from '../models/utility';\r\nimport { ContainerStrategy, CONTAINER_STRATEGY } from './container.strategy';\r\nimport { ContextStrategy, CONTEXT_STRATEGY } from './context.strategy';\r\nimport { DomStrategy, DOM_STRATEGY } from './dom.strategy';\r\n\r\nexport abstract class ProjectionStrategy<T = any> {\r\n constructor(public content: T) {}\r\n\r\n abstract injectContent(injector: Injector): ComponentRefOrEmbeddedViewRef<T>;\r\n}\r\n\r\nexport class ComponentProjectionStrategy<T extends Type<any>> extends ProjectionStrategy<T> {\r\n constructor(\r\n component: T,\r\n private containerStrategy: ContainerStrategy,\r\n private contextStrategy: ContextStrategy = CONTEXT_STRATEGY.None(),\r\n ) {\r\n super(component);\r\n }\r\n\r\n injectContent(injector: Injector) {\r\n this.containerStrategy.prepare();\r\n\r\n const resolver = injector.get(ComponentFactoryResolver) as ComponentFactoryResolver;\r\n const factory = resolver.resolveComponentFactory<InferredInstanceOf<T>>(this.content);\r\n\r\n const componentRef = this.containerStrategy.containerRef.createComponent(\r\n factory,\r\n this.containerStrategy.getIndex(),\r\n injector,\r\n );\r\n this.contextStrategy.setContext(componentRef);\r\n\r\n return componentRef as ComponentRefOrEmbeddedViewRef<T>;\r\n }\r\n}\r\n\r\nexport class RootComponentProjectionStrategy<T extends Type<any>> extends ProjectionStrategy<T> {\r\n constructor(\r\n component: T,\r\n private contextStrategy: ContextStrategy = CONTEXT_STRATEGY.None(),\r\n private domStrategy: DomStrategy = DOM_STRATEGY.AppendToBody(),\r\n ) {\r\n super(component);\r\n }\r\n\r\n injectContent(injector: Injector) {\r\n const appRef = injector.get(ApplicationRef);\r\n const resolver = injector.get(ComponentFactoryResolver) as ComponentFactoryResolver;\r\n const componentRef = resolver\r\n .resolveComponentFactory<InferredInstanceOf<T>>(this.content)\r\n .create(injector);\r\n\r\n this.contextStrategy.setContext(componentRef);\r\n\r\n appRef.attachView(componentRef.hostView);\r\n const element: HTMLElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0];\r\n this.domStrategy.insertElement(element);\r\n\r\n return componentRef as ComponentRefOrEmbeddedViewRef<T>;\r\n }\r\n}\r\n\r\nexport class TemplateProjectionStrategy<T extends TemplateRef<any>> extends ProjectionStrategy<T> {\r\n constructor(\r\n templateRef: T,\r\n private containerStrategy: ContainerStrategy,\r\n private contextStrategy = CONTEXT_STRATEGY.None(),\r\n ) {\r\n super(templateRef);\r\n }\r\n\r\n injectContent() {\r\n this.containerStrategy.prepare();\r\n\r\n const embeddedViewRef = this.containerStrategy.containerRef.createEmbeddedView(\r\n this.content,\r\n this.contextStrategy.context,\r\n this.containerStrategy.getIndex(),\r\n );\r\n embeddedViewRef.detectChanges();\r\n\r\n return embeddedViewRef as ComponentRefOrEmbeddedViewRef<T>;\r\n }\r\n}\r\n\r\nexport const PROJECTION_STRATEGY = {\r\n AppendComponentToBody<T extends Type<unknown>>(\r\n component: T,\r\n context?: Partial<InferredInstanceOf<T>>,\r\n ) {\r\n return new RootComponentProjectionStrategy<T>(\r\n component,\r\n context && CONTEXT_STRATEGY.Component(context),\r\n );\r\n },\r\n AppendComponentToContainer<T extends Type<unknown>>(\r\n component: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredInstanceOf<T>>,\r\n ) {\r\n return new ComponentProjectionStrategy<T>(\r\n component,\r\n CONTAINER_STRATEGY.Append(containerRef),\r\n context && CONTEXT_STRATEGY.Component(context),\r\n );\r\n },\r\n AppendTemplateToContainer<T extends TemplateRef<unknown>>(\r\n templateRef: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredContextOf<T>>,\r\n ) {\r\n return new TemplateProjectionStrategy<T>(\r\n templateRef,\r\n CONTAINER_STRATEGY.Append(containerRef),\r\n context && CONTEXT_STRATEGY.Template(context),\r\n );\r\n },\r\n PrependComponentToContainer<T extends Type<unknown>>(\r\n component: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredInstanceOf<T>>,\r\n ) {\r\n return new ComponentProjectionStrategy<T>(\r\n component,\r\n CONTAINER_STRATEGY.Prepend(containerRef),\r\n context && CONTEXT_STRATEGY.Component(context),\r\n );\r\n },\r\n PrependTemplateToContainer<T extends TemplateRef<unknown>>(\r\n templateRef: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredContextOf<T>>,\r\n ) {\r\n return new TemplateProjectionStrategy<T>(\r\n templateRef,\r\n CONTAINER_STRATEGY.Prepend(containerRef),\r\n context && CONTEXT_STRATEGY.Template(context),\r\n );\r\n },\r\n ProjectComponentToContainer<T extends Type<unknown>>(\r\n component: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredInstanceOf<T>>,\r\n ) {\r\n return new ComponentProjectionStrategy<T>(\r\n component,\r\n CONTAINER_STRATEGY.Clear(containerRef),\r\n context && CONTEXT_STRATEGY.Component(context),\r\n );\r\n },\r\n ProjectTemplateToContainer<T extends TemplateRef<unknown>>(\r\n templateRef: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredContextOf<T>>,\r\n ) {\r\n return new TemplateProjectionStrategy<T>(\r\n templateRef,\r\n CONTAINER_STRATEGY.Clear(containerRef),\r\n context && CONTEXT_STRATEGY.Template(context),\r\n );\r\n },\r\n};\r\n\r\ntype ComponentRefOrEmbeddedViewRef<T> = T extends Type<infer U>\r\n ? ComponentRef<U>\r\n : T extends TemplateRef<infer C>\r\n ? EmbeddedViewRef<C>\r\n : never;\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { DomStrategy } from '../strategies';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DomStrategyService {\r\n private document = inject(DOCUMENT);\r\n\r\n afterElement(el: HTMLElement) {\r\n return new DomStrategy(() => el, 'afterend');\r\n }\r\n\r\n beforeElement(el: HTMLElement) {\r\n return new DomStrategy(() => el, 'beforebegin');\r\n }\r\n\r\n appendToBody() {\r\n return new DomStrategy(() => this.document.body, 'beforeend');\r\n }\r\n\r\n appendToHead() {\r\n return new DomStrategy(() => this.document.head, 'beforeend');\r\n }\r\n\r\n prependToHead() {\r\n return new DomStrategy(() => this.document.head, 'afterbegin');\r\n }\r\n}\r\n","import type { ApplicationConfigurationDto, ApplicationConfigurationRequestOptions } from './models';\r\nimport { RestService } from '../../../../../../services';\r\nimport { Rest } from '../../../../../../models';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApplicationConfigurationService {\n private restService = inject(RestService);\n\r\n apiName = 'abp';\r\n\r\n\r\n get = (options: ApplicationConfigurationRequestOptions, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ApplicationConfigurationDto>({\r\n method: 'GET',\r\n url: '/api/abp/application-configuration',\r\n params: { includeLocalizationResources: options.includeLocalizationResources },\r\n },\r\n { apiName: this.apiName, ...config });\r\n}\r\n","import type { ApplicationLocalizationDto, ApplicationLocalizationRequestDto } from './models';\r\nimport { RestService } from '../../../../../../services';\r\nimport { Rest } from '../../../../../../models';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApplicationLocalizationService {\n private restService = inject(RestService);\n\r\n apiName = 'abp';\r\n \r\n\r\n get = (input: ApplicationLocalizationRequestDto, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ApplicationLocalizationDto>({\r\n method: 'GET',\r\n url: '/api/abp/application-localization',\r\n params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics },\r\n },\r\n { apiName: this.apiName,...config });\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { map, switchMap, take, tap } from 'rxjs/operators';\r\nimport { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service';\r\nimport { AbpApplicationLocalizationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service';\r\nimport {\r\n ApplicationConfigurationDto,\r\n ApplicationFeatureConfigurationDto,\r\n ApplicationGlobalFeatureConfigurationDto,\r\n} from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models';\r\nimport { INCUDE_LOCALIZATION_RESOURCES_TOKEN } from '../tokens/include-localization-resources.token';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ConfigStateService {\r\n private abpConfigService = inject(AbpApplicationConfigurationService);\r\n private abpApplicationLocalizationService = inject(AbpApplicationLocalizationService);\r\n private readonly includeLocalizationResources = inject(INCUDE_LOCALIZATION_RESOURCES_TOKEN, { optional: true });\r\n\r\n private updateSubject = new Subject<void>();\r\n private readonly store = new InternalStore({} as ApplicationConfigurationDto);\r\n\r\n public uiCultureFromAuthCodeFlow: string;\r\n\r\n setState(config: ApplicationConfigurationDto) {\r\n this.store.set(config);\r\n }\r\n\r\n get createOnUpdateStream() {\r\n return this.store.sliceUpdate;\r\n }\r\n constructor() {\r\n this.initUpdateStream();\r\n }\r\n\r\n private initUpdateStream() {\r\n this.updateSubject\r\n .pipe(\r\n switchMap(() =>\r\n this.abpConfigService.get({\r\n includeLocalizationResources: !!this.includeLocalizationResources,\r\n }),\r\n ),\r\n )\r\n .pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState)))\r\n .subscribe(res => this.store.set(res));\r\n }\r\n\r\n private getLocalizationAndCombineWithAppState(\r\n appState: ApplicationConfigurationDto,\r\n ): Observable<ApplicationConfigurationDto> {\r\n if (!appState.localization.currentCulture.cultureName) {\r\n throw new Error('culture name should defined');\r\n }\r\n\r\n const cultureName =\r\n this.uiCultureFromAuthCodeFlow ?? appState.localization.currentCulture.cultureName;\r\n\r\n return this.getlocalizationResource(cultureName).pipe(\r\n map(result => ({ ...appState, localization: { ...appState.localization, ...result } })),\r\n tap(() => (this.uiCultureFromAuthCodeFlow = undefined)),\r\n );\r\n }\r\n\r\n private getlocalizationResource(cultureName: string) {\r\n return this.abpApplicationLocalizationService.get({\r\n cultureName: cultureName,\r\n onlyDynamics: false,\r\n });\r\n }\r\n\r\n refreshAppState() {\r\n this.updateSubject.next();\r\n return this.createOnUpdateStream(state => state).pipe(take(1));\r\n }\r\n\r\n refreshLocalization(lang: string): Observable<null> {\r\n if (this.includeLocalizationResources) {\r\n return this.refreshAppState().pipe(map(() => null));\r\n }\r\n\r\n return this.getlocalizationResource(lang)\r\n .pipe(\r\n tap(result =>\r\n this.store.patch({ localization: { ...this.store.state.localization, ...result } }),\r\n ),\r\n )\r\n .pipe(map(() => null));\r\n }\r\n\r\n getOne$<K extends keyof ApplicationConfigurationDto>(key: K) {\r\n return this.store.sliceState(state => state[key]);\r\n }\r\n\r\n getOne<K extends keyof ApplicationConfigurationDto>(key: K) {\r\n return this.store.state[key];\r\n }\r\n\r\n getAll$(): Observable<ApplicationConfigurationDto> {\r\n return this.store.sliceState(state => state);\r\n }\r\n\r\n getAll(): ApplicationConfigurationDto {\r\n return this.store.state;\r\n }\r\n\r\n getDeep$(keys: string[] | string): Observable<any> {\r\n keys = splitKeys(keys);\r\n\r\n return this.store\r\n .sliceState(state => state)\r\n .pipe(\r\n map(state => {\r\n return (keys as string[]).reduce((acc: any, val) => {\r\n if (acc) {\r\n return acc[val];\r\n }\r\n\r\n return undefined;\r\n }, state);\r\n }),\r\n );\r\n }\r\n\r\n getDeep(keys: string[] | string): any {\r\n keys = splitKeys(keys);\r\n\r\n return (keys as string[]).reduce((acc: any, val) => {\r\n if (acc) {\r\n return acc[val];\r\n }\r\n\r\n return undefined;\r\n }, this.store.state);\r\n }\r\n\r\n getFeature(key: string) {\r\n return this.store.state.features?.values?.[key];\r\n }\r\n\r\n getFeature$(key: string) {\r\n return this.store.sliceState(state => state.features?.values?.[key]);\r\n }\r\n\r\n getFeatures(keys: string[]) {\r\n const { features } = this.store.state;\r\n if (!features) return;\r\n\r\n return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});\r\n }\r\n\r\n getFeatures$(keys: string[]): Observable<{ [key: string]: string } | undefined> {\r\n return this.store.sliceState(({ features }) => {\r\n if (!features?.values) return;\r\n\r\n return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});\r\n });\r\n }\r\n\r\n private isFeatureEnabled(key: string, features: ApplicationFeatureConfigurationDto) {\r\n return features.values[key] === 'true';\r\n }\r\n\r\n getFeatureIsEnabled(key: string) {\r\n return this.isFeatureEnabled(key, this.store.state.features);\r\n }\r\n\r\n getFeatureIsEnabled$(key: string) {\r\n return this.store.sliceState(state => this.isFeatureEnabled(key, state.features));\r\n }\r\n\r\n getSetting(key: string) {\r\n return this.store.state.setting?.values?.[key];\r\n }\r\n\r\n getSetting$(key: string) {\r\n return this.store.sliceState(state => state.setting?.values?.[key]);\r\n }\r\n\r\n getSettings(keyword?: string) {\r\n const settings = this.store.state.setting?.values || {};\r\n\r\n if (!keyword) return settings;\r\n\r\n const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);\r\n\r\n return keysFound.reduce(\r\n (acc, key) => {\r\n acc[key] = settings[key];\r\n return acc;\r\n },\r\n {} as Record<string, string>,\r\n );\r\n }\r\n\r\n getSettings$(keyword?: string) {\r\n return this.store\r\n .sliceState(state => state.setting?.values)\r\n .pipe(\r\n map((settings = {}) => {\r\n if (!keyword) return settings;\r\n\r\n const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);\r\n\r\n return keysFound.reduce(\r\n (acc, key) => {\r\n acc[key] = settings[key];\r\n return acc;\r\n },\r\n {} as Record<string, string>,\r\n );\r\n }),\r\n );\r\n }\r\n\r\n getGlobalFeatures() {\r\n return this.store.state.globalFeatures;\r\n }\r\n\r\n getGlobalFeatures$() {\r\n return this.store.sliceState(state => state.globalFeatures);\r\n }\r\n\r\n private isGlobalFeatureEnabled(\r\n key: string,\r\n globalFeatures: ApplicationGlobalFeatureConfigurationDto,\r\n ) {\r\n const features = globalFeatures.enabledFeatures || [];\r\n return features.some(f => key === f);\r\n }\r\n\r\n getGlobalFeatureIsEnabled(key: string) {\r\n return this.isGlobalFeatureEnabled(key, this.store.state.globalFeatures);\r\n }\r\n\r\n getGlobalFeatureIsEnabled$(key: string) {\r\n return this.store.sliceState(state => this.isGlobalFeatureEnabled(key, state.globalFeatures));\r\n }\r\n}\r\n\r\nfunction splitKeys(keys: string[] | string): string[] {\r\n if (typeof keys === 'string') {\r\n keys = keys.split('.');\r\n }\r\n\r\n if (!Array.isArray(keys)) {\r\n throw new Error('The argument must be a dot string or an string array.');\r\n }\r\n\r\n return keys;\r\n}\r\n","import { registerLocaleData } from '@angular/common';\r\nimport { Injectable, Injector, isDevMode, inject } from '@angular/core';\r\nimport { BehaviorSubject, combineLatest, from, Observable, Subject } from 'rxjs';\r\nimport { filter, map, switchMap } from 'rxjs/operators';\r\nimport { ABP } from '../models/common';\r\nimport { LocalizationWithDefault } from '../models/localization';\r\nimport {\r\n ApplicationConfigurationDto,\r\n ApplicationLocalizationResourceDto,\r\n} from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models';\r\nimport { localizations$ } from '../tokens/localization.token';\r\nimport { CORE_OPTIONS } from '../tokens/options.token';\r\nimport { createLocalizer, createLocalizerWithFallback } from '../utils/localization-utils';\r\nimport { interpolate } from '../utils/string-utils';\r\nimport { ConfigStateService } from './config-state.service';\r\nimport { SessionStateService } from './session-state.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LocalizationService {\r\n private sessionState = inject(SessionStateService);\r\n private injector = inject(Injector);\r\n private configState = inject(ConfigStateService);\r\n\r\n private latestLang = this.sessionState.getLanguage();\r\n private _languageChange$ = new Subject<string>();\r\n\r\n private uiLocalizations$ = new BehaviorSubject(\r\n new Map<string, Map<string, Record<string, string>>>(),\r\n );\r\n\r\n private localizations$ = new BehaviorSubject(new Map<string, Record<string, string>>());\r\n\r\n /**\r\n * Returns currently selected language\r\n * Even though this looks like it's redundant to return the same value as `getLanguage()`,\r\n * it's actually not. This could be invoked any time, and the latestLang could be different from the\r\n * sessionState.getLanguage() value.\r\n */\r\n get currentLang(): string {\r\n return this.latestLang || this.sessionState.getLanguage();\r\n }\r\n\r\n get currentLang$(): Observable<string> {\r\n return this.sessionState.getLanguage$();\r\n }\r\n\r\n get languageChange$(): Observable<string> {\r\n return this._languageChange$.asObservable();\r\n }\r\n\r\n constructor() {\r\n const otherInstance = inject(LocalizationService, { optional: true, skipSelf: true })!;\r\n\r\n if (otherInstance) throw new Error('LocalizationService should have only one instance.');\r\n\r\n this.listenToSetLanguage();\r\n this.initLocalizationValues();\r\n }\r\n\r\n private initLocalizationValues() {\r\n localizations$.subscribe(val => this.addLocalization(val));\r\n\r\n const legacyResources$ = this.configState.getDeep$('localization.values') as Observable<\r\n Record<string, Record<string, string>>\r\n >;\r\n\r\n const remoteLocalizations$ = this.configState.getDeep$('localization.resources') as Observable<\r\n Record<string, ApplicationLocalizationResourceDto>\r\n >;\r\n\r\n const currentLanguage$ = this.sessionState.getLanguage$();\r\n\r\n const uiLocalizations$ = combineLatest([currentLanguage$, this.uiLocalizations$]).pipe(\r\n map(([currentLang, localizations]) => localizations.get(currentLang)),\r\n );\r\n\r\n combineLatest([legacyResources$, remoteLocalizations$, uiLocalizations$])\r\n .pipe(\r\n map(([legacy, resource, local]) => {\r\n if (!resource) {\r\n return;\r\n }\r\n const remote = combineLegacyandNewResources(legacy || {}, resource);\r\n if (remote) {\r\n if (!local) {\r\n local = new Map();\r\n }\r\n\r\n Object.entries(remote).forEach(entry => {\r\n const resourceName = entry[0];\r\n const remoteTexts = entry[1];\r\n let resource = local?.get(resourceName) || {};\r\n resource = { ...resource, ...remoteTexts };\r\n\r\n local?.set(resourceName, resource);\r\n });\r\n }\r\n\r\n return local;\r\n }),\r\n filter(Boolean),\r\n )\r\n .subscribe(val => this.localizations$.next(val));\r\n }\r\n\r\n addLocalization(localizations?: ABP.Localization[]) {\r\n if (!localizations) return;\r\n\r\n const localizationMap = this.uiLocalizations$.value;\r\n\r\n localizations.forEach(loc => {\r\n const cultureMap =\r\n localizationMap.get(loc.culture) || new Map<string, Record<string, string>>();\r\n\r\n loc.resources.forEach(res => {\r\n let resource: Record<string, string> = cultureMap.get(res.resourceName) || {};\r\n\r\n resource = { ...resource, ...res.texts };\r\n\r\n cultureMap.set(res.resourceName, resource);\r\n });\r\n\r\n localizationMap.set(loc.culture, cultureMap);\r\n });\r\n\r\n this.uiLocalizations$.next(localizationMap);\r\n }\r\n\r\n private listenToSetLanguage() {\r\n this.sessionState\r\n .onLanguageChange$()\r\n .pipe(\r\n filter(\r\n lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang,\r\n ),\r\n switchMap(lang => this.configState.refreshLocalization(lang).pipe(map(() => lang))),\r\n filter(Boolean),\r\n switchMap(lang => from(this.registerLocale(lang).then(() => lang))),\r\n )\r\n .subscribe(lang => this._languageChange$.next(lang));\r\n }\r\n\r\n registerLocale(locale: string) {\r\n const { registerLocaleFn }: ABP.Root = this.injector.get(CORE_OPTIONS);\r\n\r\n return registerLocaleFn(locale).then(module => {\r\n if (module?.default) registerLocaleData(module.default);\r\n this.latestLang = locale;\r\n });\r\n }\r\n\r\n /**\r\n * Returns an observable localized text with the given interpolation parameters in current language.\r\n * @param key Localizaton key to replace with localized text\r\n * @param interpolateParams Values to interpolate\r\n */\r\n get(key: string | LocalizationWithDefault, ...interpolateParams: string[]): Observable<string> {\r\n return this.configState\r\n .getAll$()\r\n .pipe(map(state => this.getLocalization(state, key, ...interpolateParams)));\r\n }\r\n\r\n getResource(resourceName: string) {\r\n return this.localizations$.value.get(resourceName);\r\n }\r\n\r\n getResource$(resourceName: string) {\r\n return this.localizations$.pipe(map(res => res.get(resourceName)));\r\n }\r\n\r\n /**\r\n * Returns localized text with the given interpolation parameters in current language.\r\n * @param key Localization key to replace with localized text\r\n * @param interpolateParams Values to intepolate.\r\n */\r\n instant(key: string | LocalizationWithDefault, ...interpolateParams: string[]): string {\r\n return this.getLocalization(this.configState.getAll(), key, ...interpolateParams);\r\n }\r\n\r\n localize(resourceName: string, key: string, defaultValue: string): Observable<string | null> {\r\n return this.configState.getOne$('localization').pipe(\r\n map(createLocalizer),\r\n map(localize => localize(resourceName, key, defaultValue)),\r\n );\r\n }\r\n\r\n localizeSync(resourceName: string, key: string, defaultValue: string): string | null {\r\n const localization = this.configState.getOne('localization');\r\n return createLocalizer(localization)(resourceName, key, defaultValue);\r\n }\r\n\r\n localizeWithFallback(\r\n resourceNames: string[],\r\n keys: string[],\r\n defaultValue: string,\r\n ): Observable<string> {\r\n return this.configState.getOne$('localization').pipe(\r\n map(createLocalizerWithFallback),\r\n map(localizeWithFallback => localizeWithFallback(resourceNames, keys, defaultValue)),\r\n );\r\n }\r\n\r\n localizeWithFallbackSync(resourceNames: string[], keys: string[], defaultValue: string): string {\r\n const localization = this.configState.getOne('localization');\r\n return createLocalizerWithFallback(localization)(resourceNames, keys, defaultValue);\r\n }\r\n\r\n private getLocalization(\r\n state: ApplicationConfigurationDto,\r\n key: string | LocalizationWithDefault,\r\n ...interpolateParams: string[]\r\n ) {\r\n let defaultValue = '';\r\n\r\n if (!key) {\r\n return defaultValue;\r\n }\r\n\r\n if (typeof key !== 'string') {\r\n defaultValue = key.defaultValue;\r\n key = key.key;\r\n }\r\n\r\n const keys = key.split('::') as string[];\r\n const warn = (message: string) => {\r\n if (isDevMode()) console.warn(message);\r\n };\r\n\r\n if (keys.length < 2) {\r\n warn('The localization source separator (::) not found.');\r\n return defaultValue || (key as string);\r\n }\r\n if (!state.localization) return defaultValue || keys[1];\r\n\r\n const sourceName = keys[0] || state.localization.defaultResourceName;\r\n const sourceKey = keys[1];\r\n\r\n if (sourceName === '_') {\r\n return defaultValue || sourceKey;\r\n }\r\n\r\n if (!sourceName) {\r\n warn(\r\n 'Localization source name is not specified and the defaultResourceName was not defined!',\r\n );\r\n\r\n return defaultValue || sourceKey;\r\n }\r\n\r\n const source = this.localizations$.value.get(sourceName);\r\n if (!source) {\r\n warn('Could not find localization source: ' + sourceName);\r\n return defaultValue || sourceKey;\r\n }\r\n\r\n let localization = source[sourceKey];\r\n if (typeof localization === 'undefined') {\r\n return defaultValue || sourceKey;\r\n }\r\n\r\n interpolateParams = interpolateParams.filter(params => params != null);\r\n if (localization) localization = interpolate(localization, interpolateParams);\r\n\r\n if (typeof localization !== 'string') localization = '';\r\n\r\n return localization || defaultValue || (key as string);\r\n }\r\n}\r\n\r\nfunction recursivelyMergeBaseResources(\r\n baseResourceName: string,\r\n source: ResourceDto,\r\n): ApplicationLocalizationResourceDto {\r\n const item = source[baseResourceName];\r\n\r\n if (item.baseResources.length === 0) {\r\n return item;\r\n }\r\n\r\n return item.baseResources.reduce((acc, baseResource) => {\r\n const baseItem = recursivelyMergeBaseResources(baseResource, source);\r\n const texts = { ...baseItem.texts, ...acc.texts };\r\n return { ...acc, texts };\r\n }, item);\r\n}\r\n\r\nfunction mergeResourcesWithBaseResource(resource: ResourceDto): ResourceDto {\r\n const entities: Array<[string, ApplicationLocalizationResourceDto]> = Object.keys(resource).map(\r\n key => {\r\n const newValue = recursivelyMergeBaseResources(key, resource);\r\n return [key, newValue];\r\n },\r\n );\r\n return entities.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});\r\n}\r\n\r\nfunction combineLegacyandNewResources(\r\n legacy: LegacyLanguageDto,\r\n resource: ResourceDto,\r\n): LegacyLanguageDto {\r\n const mergedResource = mergeResourcesWithBaseResource(resource);\r\n\r\n return Object.entries(mergedResource).reduce((acc, [key, value]) => {\r\n return { ...acc, [key]: value.texts };\r\n }, legacy);\r\n}\r\n\r\nexport type LegacyLanguageDto = Record<string, Record<string, string>>;\r\nexport type ResourceDto = Record<string, ApplicationLocalizationResourceDto>;\r\n","import {\r\n Component,\r\n inject,\r\n input,\r\n isDevMode,\r\n Type,\r\n} from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { eLayoutType } from '../enums/common';\r\nimport { ABP } from '../models';\r\nimport { ReplaceableComponents } from '../models/replaceable-components';\r\nimport { LocalizationService } from '../services/localization.service';\r\nimport { ReplaceableComponentsService } from '../services/replaceable-components.service';\r\nimport { RouterEvents } from '../services/router-events.service';\r\nimport { RoutesService } from '../services/routes.service';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\nimport { findRoute, getRoutePath } from '../utils/route-utils';\r\nimport { TreeNode } from '../utils/tree-utils';\r\nimport { DYNAMIC_LAYOUTS_TOKEN } from '../tokens/dynamic-layout.token';\r\nimport { EnvironmentService } from '../services';\r\nimport { NgComponentOutlet } from '@angular/common';\r\nimport { filter, take } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'abp-dynamic-layout',\r\n template: `\r\n @if (isLayoutVisible) {\r\n <ng-container [ngComponentOutlet]=\"layout\"></ng-container>\r\n }\r\n `,\r\n providers: [SubscriptionService],\r\n imports: [NgComponentOutlet],\r\n})\r\nexport class DynamicLayoutComponent {\r\n layout?: Type<any>;\r\n layoutKey?: eLayoutType;\r\n readonly layouts = inject(DYNAMIC_LAYOUTS_TOKEN);\r\n isLayoutVisible = true;\r\n readonly defaultLayout = input<eLayoutType>(undefined);\r\n\r\n protected readonly router = inject(Router);\r\n protected readonly route = inject(ActivatedRoute);\r\n protected readonly routes = inject(RoutesService);\r\n protected readonly localizationService = inject(LocalizationService);\r\n protected readonly replaceableComponents = inject(ReplaceableComponentsService);\r\n protected readonly subscription = inject(SubscriptionService);\r\n protected readonly routerEvents = inject(RouterEvents);\r\n protected readonly environment = inject(EnvironmentService);\r\n\r\n constructor() {\r\n const dynamicLayoutComponent = inject(DynamicLayoutComponent, { optional: true, skipSelf: true });\r\n\r\n if (dynamicLayoutComponent) {\r\n if (isDevMode()) console.warn('DynamicLayoutComponent must be used only in AppComponent.');\r\n return;\r\n }\r\n this.checkLayoutOnNavigationEnd();\r\n this.listenToLanguageChange();\r\n this.listenToEnvironmentChange();\r\n }\r\n\r\n private checkLayoutOnNavigationEnd() {\r\n const navigationEnd$ = this.routerEvents.getNavigationEvents('End');\r\n this.subscription.addOne(navigationEnd$, () => this.getLayout());\r\n }\r\n\r\n private getLayout() {\r\n let expectedLayout = this.getExtractedLayout();\r\n\r\n if (!expectedLayout) expectedLayout = eLayoutType.empty;\r\n\r\n if (this.layoutKey === expectedLayout) return;\r\n\r\n const key = this.layouts.get(expectedLayout);\r\n if (key) {\r\n this.layout = this.getComponent(key)?.component;\r\n this.layoutKey = expectedLayout;\r\n }\r\n if (!this.layout) {\r\n this.showLayoutNotFoundError(expectedLayout);\r\n }\r\n }\r\n\r\n private getExtractedLayout() {\r\n const routeData = this.route.snapshot.data || {};\r\n let expectedLayout = routeData['layout'] as eLayoutType;\r\n\r\n let node = findRoute(this.routes, getRoutePath(this.router));\r\n node = { parent: node } as TreeNode<ABP.Route>;\r\n\r\n while (node.parent) {\r\n node = node.parent;\r\n\r\n if (node.layout) {\r\n expectedLayout = node.layout;\r\n break;\r\n }\r\n }\r\n return expectedLayout ?? this.defaultLayout();\r\n }\r\n\r\n showLayoutNotFoundError(layoutName: string) {\r\n let message = `Layout ${layoutName} not found.`;\r\n if (layoutName === 'account') {\r\n message =\r\n 'Account layout not found. Please check your configuration. If you are using LeptonX, please make sure you have added \"provideAccountLayout()\" to your app configuration.';\r\n }\r\n console.warn(message);\r\n }\r\n\r\n private listenToLanguageChange() {\r\n this.subscription.addOne(this.localizationService.languageChange$, () => {\r\n this.isLayoutVisible = false;\r\n setTimeout(() => (this.isLayoutVisible = true), 0);\r\n });\r\n }\r\n\r\n private getComponent(key: string): ReplaceableComponents.ReplaceableComponent | undefined {\r\n return this.replaceableComponents.get(key);\r\n }\r\n\r\n private listenToEnvironmentChange() {\r\n this.environment\r\n .createOnUpdateStream(x => x.oAuthConfig)\r\n .pipe(\r\n take(1),\r\n filter(config => config.responseType === 'code'),\r\n )\r\n .subscribe(() => {\r\n if (this.layout) {\r\n return;\r\n }\r\n this.getLayout();\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Type, inject } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\nimport { ReplaceableComponents } from '../models/replaceable-components';\r\nimport { ReplaceableComponentsService } from '../services/replaceable-components.service';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\nimport { NgComponentOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'abp-replaceable-route-container',\r\n template: `\r\n <ng-container *ngComponentOutlet=\"externalComponent || defaultComponent\"></ng-container>\r\n `,\r\n providers: [SubscriptionService],\r\n imports: [NgComponentOutlet],\r\n})\r\nexport class ReplaceableRouteContainerComponent implements OnInit {\r\n private route = inject(ActivatedRoute);\r\n private replaceableComponents = inject(ReplaceableComponentsService);\r\n private subscription = inject(SubscriptionService);\r\n\r\n defaultComponent!: Type<any>;\r\n\r\n componentKey!: string;\r\n\r\n externalComponent?: Type<any>;\r\n\r\n ngOnInit() {\r\n this.defaultComponent = this.route.snapshot.data.replaceableComponent.defaultComponent;\r\n this.componentKey = (\r\n this.route.snapshot.data.replaceableComponent as ReplaceableComponents.RouteData\r\n ).key;\r\n\r\n const component$ = this.replaceableComponents\r\n .get$(this.componentKey)\r\n .pipe(distinctUntilChanged());\r\n\r\n this.subscription.addOne(\r\n component$,\r\n (res = {} as ReplaceableComponents.ReplaceableComponent) => {\r\n this.externalComponent = res.component;\r\n },\r\n );\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'abp-router-outlet',\r\n template: ` <router-outlet></router-outlet> `,\r\n imports: [RouterOutlet],\r\n})\r\nexport class RouterOutletComponent {}\r\n","// Different locales from .NET\r\n// Key is .NET locale, value is Angular locale\r\n\r\nexport const differentLocales = {\r\n aa: 'en',\r\n 'aa-DJ': 'en',\r\n 'aa-ER': 'en',\r\n 'aa-ET': 'en',\r\n 'af-ZA': 'af',\r\n 'agq-CM': 'agq',\r\n 'ak-GH': 'ak',\r\n 'am-ET': 'am',\r\n 'ar-001': 'ar',\r\n arn: 'en',\r\n 'arn-CL': 'en',\r\n 'as-IN': 'as',\r\n 'asa-TZ': 'asa',\r\n 'ast-ES': 'ast',\r\n 'az-Cyrl-AZ': 'az-Cyrl',\r\n 'az-Latn-AZ': 'az-Latn',\r\n ba: 'ru',\r\n 'ba-RU': 'ru',\r\n 'bas-CM': 'bas',\r\n 'be-BY': 'be',\r\n 'bem-ZM': 'bem',\r\n 'bez-TZ': 'bez',\r\n 'bg-BG': 'bg',\r\n bin: 'en',\r\n 'bin-NG': 'en',\r\n 'bm-Latn': 'bm',\r\n 'bm-Latn-ML': 'bm',\r\n 'bn-BD': 'bn',\r\n 'bo-CN': 'bo',\r\n 'br-FR': 'br',\r\n 'brx-IN': 'brx',\r\n 'bs-Cyrl-BA': 'bs-Cyrl',\r\n 'bs-Latn-BA': 'bs-Latn',\r\n byn: 'en',\r\n 'byn-ER': 'en',\r\n 'ca-ES': 'ca',\r\n 'ca-ES-valencia': 'ca-ES-VALENCIA',\r\n 'ce-RU': 'ce',\r\n 'cgg-UG': 'cgg',\r\n 'chr-Cher': 'chr',\r\n 'chr-Cher-US': 'chr',\r\n co: 'en',\r\n 'co-FR': 'fr',\r\n 'cs-CZ': 'cs',\r\n 'cu-RU': 'cu',\r\n 'cy-GB': 'cy',\r\n 'da-DK': 'da',\r\n 'dav-KE': 'dav',\r\n 'de-DE': 'de',\r\n 'dje-NE': 'dje',\r\n 'dsb-DE': 'dsb',\r\n 'dua-CM': 'dua',\r\n dv: 'en',\r\n 'dv-MV': 'en',\r\n 'dyo-SN': 'dyo',\r\n 'dz-BT': 'dz',\r\n 'ebu-KE': 'ebu',\r\n 'ee-GH': 'ee',\r\n 'el-GR': 'el',\r\n 'en-029': 'en',\r\n 'en-ID': 'en',\r\n 'en-US': 'en',\r\n 'eo-001': 'en',\r\n 'es-ES': 'es',\r\n 'et-EE': 'et',\r\n 'eu-ES': 'eu',\r\n 'ewo-CM': 'ewo',\r\n 'fa-IR': 'fa',\r\n 'ff-Latn-SN': 'ff-Latn',\r\n 'ff-NG': 'ff',\r\n 'fi-FI': 'fi',\r\n 'fil-PH': 'fil',\r\n 'fo-FO': 'fo',\r\n 'fr-029': 'fr',\r\n 'fr-FR': 'fr',\r\n 'fur-IT': 'fur',\r\n 'fy-NL': 'fy',\r\n 'ga-IE': 'ga',\r\n 'gd-GB': 'gd',\r\n 'gl-ES': 'gl',\r\n gn: 'en',\r\n 'gn-PY': 'en',\r\n 'gsw-CH': 'gsw',\r\n 'gu-IN': 'gu',\r\n 'guz-KE': 'guz',\r\n 'gv-IM': 'gv',\r\n 'ha-Latn': 'ha',\r\n 'ha-Latn-GH': 'ha-GH',\r\n 'ha-Latn-NE': 'ha-NE',\r\n 'ha-Latn-NG': 'ha',\r\n 'haw-US': 'haw',\r\n 'he-IL': 'he',\r\n 'hi-IN': 'hi',\r\n 'hr-HR': 'hr',\r\n 'hsb-DE': 'hsb',\r\n 'hu-HU': 'hu',\r\n 'hy-AM': 'hy',\r\n 'ia-001': 'ia',\r\n 'ia-FR': 'ia',\r\n ibb: 'en',\r\n 'ibb-NG': 'en',\r\n 'id-ID': 'id',\r\n 'ig-NG': 'ig',\r\n 'ii-CN': 'ii',\r\n 'is-IS': 'is',\r\n 'it-IT': 'it',\r\n iu: 'en',\r\n 'iu-Cans': 'en',\r\n 'iu-Cans-CA': 'en',\r\n 'iu-Latn': 'en',\r\n 'iu-Latn-CA': 'en',\r\n 'ja-JP': 'ja',\r\n 'jgo-CM': 'jgo',\r\n 'jmc-TZ': 'jmc',\r\n 'jv-Java': 'jv',\r\n 'jv-Java-ID': 'jv',\r\n 'jv-Latn': 'jv',\r\n 'jv-Latn-ID': 'jv',\r\n 'ka-GE': 'ka',\r\n 'kab-DZ': 'kab',\r\n 'kam-KE': 'kam',\r\n 'kde-TZ': 'kde',\r\n 'kea-CV': 'kea',\r\n 'khq-ML': 'khq',\r\n 'ki-KE': 'ki',\r\n 'kk-KZ': 'kk',\r\n 'kkj-CM': 'kkj',\r\n 'kl-GL': 'kl',\r\n 'kln-KE': 'kln',\r\n 'km-KH': 'km',\r\n 'kn-IN': 'kn',\r\n 'ko-KR': 'ko',\r\n 'kok-IN': 'kok',\r\n kr: 'en',\r\n 'kr-NG': 'en',\r\n 'ks-Arab': 'ks',\r\n 'ks-Arab-IN': 'ks',\r\n 'ks-Deva': 'ks',\r\n 'ks-Deva-IN': 'ks',\r\n 'ksb-TZ': 'ksb',\r\n 'ksf-CM': 'ksf',\r\n 'ksh-DE': 'ksh',\r\n 'ku-Arab': 'ku',\r\n 'ku-Arab-IQ': 'ku',\r\n 'ku-Arab-IR': 'ku',\r\n 'kw-GB': 'kw',\r\n 'ky-KG': 'ky',\r\n la: 'en',\r\n 'la-001': 'en',\r\n 'lag-TZ': 'lag',\r\n 'lb-LU': 'lb',\r\n 'lg-UG': 'lg',\r\n 'lkt-US': 'lkt',\r\n 'ln-CD': 'ln',\r\n 'lo-LA': 'lo',\r\n 'lrc-IR': 'lrc',\r\n 'lt-LT': 'lt',\r\n 'lu-CD': 'lu',\r\n 'luo-KE': 'luo',\r\n 'luy-KE': 'luy',\r\n 'lv-LV': 'lv',\r\n 'mas-KE': 'mas',\r\n 'mer-KE': 'mer',\r\n 'mfe-MU': 'mfe',\r\n 'mg-MG': 'mg',\r\n 'mgh-MZ': 'mgh',\r\n 'mgo-CM': 'mgo',\r\n 'mi-NZ': 'mi',\r\n 'mk-MK': 'mk',\r\n 'ml-IN': 'ml',\r\n 'mn-Cyrl': 'mn',\r\n 'mn-MN': 'mn',\r\n 'mn-Mong': 'mn',\r\n 'mn-Mong-CN': 'mn',\r\n 'mn-Mong-MN': 'mn',\r\n mni: 'en',\r\n 'mni-IN': 'en',\r\n moh: 'en',\r\n 'moh-CA': 'en',\r\n 'mr-IN': 'mr',\r\n 'ms-MY': 'ms',\r\n 'mt-MT': 'mt',\r\n 'mua-CM': 'mua',\r\n 'my-MM': 'my',\r\n 'mzn-IR': 'mzn',\r\n 'naq-NA': 'naq',\r\n 'nb-NO': 'nb',\r\n\r\n 'nd-ZW': 'nd',\r\n 'ne-NP': 'ne',\r\n 'nl-NL': 'nl',\r\n 'nmg-CM': 'ngm',\r\n 'nn-NO': 'nn',\r\n 'nnh-CM': 'nnh',\r\n no: 'en',\r\n nqo: 'en',\r\n 'nqo-GN': 'en',\r\n nr: 'en',\r\n 'nr-ZA': 'en',\r\n nso: 'en',\r\n 'nso-ZA': 'en',\r\n 'nus-SS': 'nus',\r\n 'nyn-UG': 'nyn',\r\n oc: 'en',\r\n 'oc-FR': 'fr',\r\n 'om-ET': 'om',\r\n 'or-IN': 'or',\r\n 'os-GE': 'os',\r\n 'pa-Arab-PK': 'pa-Arab',\r\n 'pa-IN': 'pa',\r\n pap: 'en',\r\n 'pap-029': 'en',\r\n 'pl-PL': 'pl',\r\n 'prg-001': 'prg',\r\n prs: 'en',\r\n 'prs-AF': 'en',\r\n 'ps-AF': 'ps',\r\n 'pt-BR': 'pt',\r\n quc: 'en',\r\n 'quc-Latn': 'en',\r\n 'quc-Latn-GT': 'en',\r\n quz: 'en',\r\n 'quz-BO': 'en',\r\n 'quz-EC': 'en',\r\n 'quz-PE': 'en',\r\n 'rm-CH': 'rm',\r\n 'rn-BI': 'rn',\r\n 'ro-RO': 'ro',\r\n 'rof-TZ': 'rof',\r\n 'ru-RU': 'ru',\r\n 'rw-RW': 'rw',\r\n 'rwk-TZ': 'rwk',\r\n sa: 'en',\r\n 'sa-IN': 'en',\r\n 'sah-RU': 'sah',\r\n 'saq-KE': 'saq',\r\n 'sbp-TZ': 'en',\r\n 'sd-Arab': 'sd',\r\n 'sd-Arab-PK': 'sd',\r\n 'sd-Deva': 'sd',\r\n 'sd-Deva-IN': 'sd',\r\n 'se-NO': 'se',\r\n 'seh-MZ': 'seh',\r\n 'ses-ML': 'ses',\r\n 'sg-CF': 'sg',\r\n 'shi-Latn-MA': 'shi-Latn',\r\n 'shi-Tfng-MA': 'shi-Tfng',\r\n 'si-LK': 'si',\r\n 'sk-SK': 'sk',\r\n 'sl-SI': 'sl',\r\n sma: 'en',\r\n 'sma-NO': 'en',\r\n 'sma-SE': 'en',\r\n smj: 'en',\r\n 'smj-NO': 'en',\r\n 'smj-SE': 'en',\r\n 'smn-FI': 'en',\r\n sms: 'en',\r\n 'sms-FI': 'en',\r\n 'sn-Latn': 'sn',\r\n 'sn-Latn-ZW': 'sn',\r\n 'so-SO': 'so',\r\n 'sq-AL': 'so',\r\n 'sr-Cyrl-RS': 'sr-Cryl',\r\n 'sr-Latn-RS': 'sr-Latn',\r\n ss: 'en',\r\n 'ss-SZ': 'en',\r\n 'ss-ZA': 'en',\r\n ssy: 'en',\r\n 'ssy-ER': 'en',\r\n st: 'en',\r\n 'st-LS': 'en',\r\n 'st-ZA': 'en',\r\n 'sv-SE': 'sv',\r\n 'sw-TZ': 'sw',\r\n syr: 'en',\r\n 'syr-SY': 'en',\r\n 'ta-IN': 'ta',\r\n 'te-IN': 'te',\r\n 'teo-UG': 'teo',\r\n 'tg-Cyrl': 'tg',\r\n 'tg-Cyrl-TJ': 'tg',\r\n 'th-TH': 'th',\r\n 'ti-ET': 'ti',\r\n tig: 'en',\r\n 'tig-ER': 'en',\r\n 'tk-TM': 'tk',\r\n tn: 'en',\r\n 'tn-BW': 'en',\r\n 'tn-ZA': 'en',\r\n 'to-TO': 'to',\r\n 'tr-TR': 'tr',\r\n ts: 'en',\r\n 'ts-ZA': 'en',\r\n 'tt-RU': 'tt',\r\n 'twq-NE': 'twq',\r\n 'tzm-Arab': 'tzm',\r\n 'tzm-Arab-MA': 'tzm',\r\n 'tzm-Latn': 'tzm',\r\n 'tzm-Latn-DZ': 'tzm',\r\n 'tzm-Latn-MA': 'tzm',\r\n 'tzm-Tfng': 'tzm',\r\n 'tzm-Tfng-MA': 'tzm',\r\n 'ug-CN': 'ug',\r\n 'uk-UA': 'uk',\r\n 'ur-PK': 'ur',\r\n 'uz-Arab-AF': 'uz-Arab',\r\n 'uz-Cyrl-UZ': 'uz-Cyrl',\r\n 'uz-Latn-UZ': 'uz-Latn',\r\n 'vai-Latn-LR': 'vai-Latn',\r\n 'vai-Vaii-LR': 'vai-Vaii',\r\n ve: 'en',\r\n 've-ZA': 'en',\r\n 'vi-VN': 'vi',\r\n 'vo-001': 'vo',\r\n 'vun-TZ': 'vun',\r\n 'wae-CH': 'wae',\r\n wal: 'en',\r\n 'wal-ET': 'en',\r\n 'wo-SN': 'wo',\r\n 'xh-ZA': 'xh',\r\n 'xog-UG': 'xog',\r\n 'yav-CM': 'yav',\r\n 'yi-001': 'yi',\r\n 'yo-NG': 'yo',\r\n 'zgh-Tfng': 'zgh',\r\n 'zgh-Tfng-MA': 'zgh',\r\n 'zh-CN': 'zh',\r\n 'zh-HK': 'zh',\r\n 'zh-MO': 'zh',\r\n 'zh-SG': 'zh',\r\n 'zh-TW': 'zh',\r\n 'zu-ZA': 'zu',\r\n};\r\n","import {eLayoutType, eThemeSharedComponents} from \"../enums\";\r\n\r\nexport const DEFAULT_DYNAMIC_LAYOUTS = new Map<string, string>([\r\n [eLayoutType.application, eThemeSharedComponents.ApplicationLayoutComponent],\r\n [eLayoutType.account, eThemeSharedComponents.AccountLayoutComponent],\r\n [eLayoutType.empty, eThemeSharedComponents.EmptyLayoutComponent],\r\n]);\r\n","import { AfterViewInit, Directive, ElementRef, Input, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[autofocus]',\r\n})\r\nexport class AutofocusDirective implements AfterViewInit {\r\n private elRef = inject(ElementRef);\r\n\r\n private _delay = 0;\r\n\r\n @Input('autofocus')\r\n set delay(val: number | string | undefined) {\r\n this._delay = Number(val) || 0;\r\n }\r\n\r\n get delay() {\r\n return this._delay;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => this.elRef.nativeElement.focus(), this.delay as number);\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\n\r\n@Directive({\r\n selector: '[input.debounce]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class InputEventDebounceDirective implements OnInit {\r\n private el = inject(ElementRef);\r\n private subscription = inject(SubscriptionService);\r\n\r\n @Input() debounce = 300;\r\n\r\n @Output('input.debounce') readonly debounceEvent = new EventEmitter<Event>();\r\n\r\n ngOnInit(): void {\r\n const input$ = fromEvent<InputEvent>(this.el.nativeElement, 'input').pipe(\r\n debounceTime(this.debounce),\r\n );\r\n\r\n this.subscription.addOne(input$, (event: Event) => {\r\n this.debounceEvent.emit(event);\r\n });\r\n }\r\n}\r\n","import {\r\n Directive,\r\n EmbeddedViewRef,\r\n Input,\r\n IterableChangeRecord,\r\n IterableChanges,\r\n IterableDiffer,\r\n IterableDiffers,\r\n OnChanges,\r\n TemplateRef,\r\n TrackByFunction,\r\n ViewContainerRef,\r\n inject,\r\n} from '@angular/core';\r\nimport clone from 'just-clone';\r\nimport compare from 'just-compare';\r\n\r\nexport type CompareFn<T = any> = (value: T, comparison: T) => boolean;\r\n\r\nclass AbpForContext {\r\n constructor(\r\n public $implicit: any,\r\n public index: number,\r\n public count: number,\r\n public list: any[],\r\n ) {}\r\n}\r\n\r\nclass RecordView {\r\n constructor(\r\n public record: IterableChangeRecord<any>,\r\n public view: EmbeddedViewRef<AbpForContext>,\r\n ) {}\r\n}\r\n\r\n@Directive({\r\n selector: '[abpFor]',\r\n})\r\nexport class ForDirective implements OnChanges {\r\n private tempRef = inject<TemplateRef<AbpForContext>>(TemplateRef);\r\n private vcRef = inject(ViewContainerRef);\r\n private differs = inject(IterableDiffers);\r\n\r\n // eslint-disable-next-line @angular-eslint/no-input-rename\r\n @Input('abpForOf')\r\n items!: any[];\r\n\r\n @Input('abpForOrderBy')\r\n orderBy?: string;\r\n\r\n @Input('abpForOrderDir')\r\n orderDir?: 'ASC' | 'DESC';\r\n\r\n @Input('abpForFilterBy')\r\n filterBy?: string;\r\n\r\n @Input('abpForFilterVal')\r\n filterVal: any;\r\n\r\n @Input('abpForTrackBy')\r\n trackBy?: TrackByFunction<any>;\r\n\r\n @Input('abpForCompareBy')\r\n compareBy?: CompareFn;\r\n\r\n @Input('abpForEmptyRef')\r\n emptyRef?: TemplateRef<any>;\r\n\r\n private differ!: IterableDiffer<any> | null;\r\n private lastItemsRef: any[] | null = null;\r\n\r\n private isShowEmptyRef!: boolean;\r\n\r\n get compareFn(): CompareFn {\r\n return this.compareBy || compare;\r\n }\r\n\r\n get trackByFn(): TrackByFunction<any> {\r\n return this.trackBy || ((index: number, item: any) => (item as any).id || index);\r\n }\r\n\r\n private iterateOverAppliedOperations(changes: IterableChanges<any>) {\r\n const rw: RecordView[] = [];\r\n\r\n changes.forEachOperation(\r\n (\r\n record: IterableChangeRecord<any>,\r\n previousIndex: number | null,\r\n currentIndex: number | null,\r\n ) => {\r\n if (record.previousIndex == null) {\r\n const view = this.vcRef.createEmbeddedView(\r\n this.tempRef,\r\n new AbpForContext(null, -1, -1, this.items),\r\n currentIndex || 0,\r\n );\r\n\r\n rw.push(new RecordView(record, view));\r\n } else if (currentIndex == null && previousIndex !== null) {\r\n this.vcRef.remove(previousIndex);\r\n } else {\r\n if (previousIndex !== null) {\r\n const view = this.vcRef.get(previousIndex);\r\n if (view && currentIndex !== null) {\r\n this.vcRef.move(view, currentIndex);\r\n rw.push(new RecordView(record, view as EmbeddedViewRef<AbpForContext>));\r\n }\r\n }\r\n }\r\n },\r\n );\r\n\r\n for (let i = 0, l = rw.length; i < l; i++) {\r\n rw[i].view.context.$implicit = rw[i].record.item;\r\n }\r\n }\r\n\r\n private iterateOverAttachedViews(changes: IterableChanges<any>) {\r\n for (let i = 0, l = this.vcRef.length; i < l; i++) {\r\n const viewRef = this.vcRef.get(i) as EmbeddedViewRef<AbpForContext>;\r\n viewRef.context.index = i;\r\n viewRef.context.count = l;\r\n viewRef.context.list = this.items;\r\n }\r\n\r\n changes.forEachIdentityChange((record: IterableChangeRecord<any>) => {\r\n if (record.currentIndex !== null) {\r\n const viewRef = this.vcRef.get(record.currentIndex) as EmbeddedViewRef<AbpForContext>;\r\n viewRef.context.$implicit = record.item;\r\n }\r\n });\r\n }\r\n\r\n private projectItems(items: any[]): void {\r\n if (!items.length && this.emptyRef) {\r\n this.vcRef.clear();\r\n this.vcRef.createEmbeddedView(this.emptyRef).rootNodes;\r\n this.isShowEmptyRef = true;\r\n this.differ = null;\r\n this.lastItemsRef = null;\r\n\r\n return;\r\n }\r\n\r\n if (this.emptyRef && this.isShowEmptyRef) {\r\n this.vcRef.clear();\r\n this.isShowEmptyRef = false;\r\n }\r\n\r\n if (!this.differ && items) {\r\n this.differ = this.differs.find(items).create(this.trackByFn);\r\n }\r\n\r\n if (this.differ) {\r\n const changes = this.differ.diff(items);\r\n\r\n if (changes) {\r\n this.iterateOverAppliedOperations(changes);\r\n this.iterateOverAttachedViews(changes);\r\n }\r\n }\r\n }\r\n\r\n private sortItems(items: any[]) {\r\n const orderBy = this.orderBy;\r\n if (orderBy) {\r\n items.sort((a, b) => (a[orderBy] > b[orderBy] ? 1 : a[orderBy] < b[orderBy] ? -1 : 0));\r\n } else {\r\n items.sort();\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this.items) return;\r\n\r\n // Recreate differ if items array reference changed\r\n if (this.lastItemsRef !== this.items) {\r\n this.vcRef.clear();\r\n this.differ = null;\r\n this.lastItemsRef = this.items;\r\n }\r\n\r\n let items = clone(this.items) as any[];\r\n if (!Array.isArray(items)) return;\r\n\r\n const compareFn = this.compareFn;\r\n const filterBy = this.filterBy;\r\n if (\r\n typeof filterBy !== 'undefined' &&\r\n typeof this.filterVal !== 'undefined' &&\r\n this.filterVal !== ''\r\n ) {\r\n items = items.filter(item => compareFn(item[filterBy], this.filterVal));\r\n }\r\n\r\n switch (this.orderDir) {\r\n case 'ASC':\r\n this.sortItems(items);\r\n this.projectItems(items);\r\n break;\r\n\r\n case 'DESC':\r\n this.sortItems(items);\r\n items.reverse();\r\n this.projectItems(items);\r\n break;\r\n\r\n default:\r\n this.projectItems(items);\r\n }\r\n }\r\n}\r\n","import { \r\n ChangeDetectorRef, \r\n Directive, \r\n ElementRef, \r\n EventEmitter, \r\n Input, \r\n OnInit, \r\n Output, \r\n inject \r\n} from '@angular/core';\r\nimport { FormGroupDirective, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, filter } from 'rxjs/operators';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\n\r\ntype Controls = { [key: string]: UntypedFormControl } | UntypedFormGroup[];\r\n/**\r\n * @deprecated FormSubmitDirective will be removed in V7.0.0. Use `ngSubmit` instead.\r\n */\r\n@Directive({\r\n selector: 'form[ngSubmit][formGroup]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class FormSubmitDirective implements OnInit {\r\n private formGroupDirective = inject(FormGroupDirective, { self: true });\r\n private host = inject<ElementRef<HTMLFormElement>>(ElementRef);\r\n private cdRef = inject(ChangeDetectorRef);\r\n private subscription = inject(SubscriptionService);\r\n\r\n @Input()\r\n debounce = 200;\r\n\r\n // TODO: Remove unused input\r\n @Input()\r\n notValidateOnSubmit?: string | boolean;\r\n\r\n @Input()\r\n markAsDirtyWhenSubmit = true;\r\n\r\n @Output() readonly ngSubmit = new EventEmitter();\r\n\r\n executedNgSubmit = false;\r\n\r\n ngOnInit() {\r\n this.subscription.addOne(this.formGroupDirective.ngSubmit, () => {\r\n if (this.markAsDirtyWhenSubmit) {\r\n this.markAsDirty();\r\n }\r\n\r\n this.executedNgSubmit = true;\r\n });\r\n\r\n const keyup$ = fromEvent<KeyboardEvent>(this.host.nativeElement as HTMLElement, 'keyup').pipe(\r\n debounceTime(this.debounce),\r\n filter(event => !(event.target instanceof HTMLTextAreaElement)),\r\n filter(event => event && event.key === 'Enter'),\r\n );\r\n\r\n this.subscription.addOne(keyup$, () => {\r\n if (!this.executedNgSubmit) {\r\n this.host.nativeElement.dispatchEvent(\r\n new Event('submit', { bubbles: true, cancelable: true }),\r\n );\r\n }\r\n\r\n this.executedNgSubmit = false;\r\n });\r\n }\r\n\r\n markAsDirty() {\r\n const { form } = this.formGroupDirective;\r\n\r\n setDirty(form.controls as { [key: string]: UntypedFormControl });\r\n form.markAsDirty();\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n}\r\n\r\nfunction setDirty(controls: Controls) {\r\n if (Array.isArray(controls)) {\r\n controls.forEach(group => {\r\n setDirty(group.controls as { [key: string]: UntypedFormControl });\r\n });\r\n return;\r\n }\r\n\r\n Object.keys(controls).forEach(key => {\r\n controls[key].markAsDirty();\r\n controls[key].updateValueAndValidity();\r\n });\r\n}\r\n","import { Directive, Output, EventEmitter, ElementRef, AfterViewInit, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpInit]',\r\n})\r\nexport class InitDirective implements AfterViewInit {\r\n private elRef = inject(ElementRef);\r\n\r\n @Output('abpInit') readonly init = new EventEmitter<ElementRef<any>>();\r\n\r\n ngAfterViewInit() {\r\n this.init.emit(this.elRef);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Directive,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewContainerRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { distinctUntilChanged, take } from 'rxjs/operators';\r\nimport { PermissionService } from '../services/permission.service';\r\nimport { QUEUE_MANAGER } from '../tokens/queue.token';\r\nimport { QueueManager } from '../utils/queue';\r\n\r\n@Directive({\r\n selector: '[abpPermission]',\r\n})\r\nexport class PermissionDirective implements OnDestroy, OnChanges, AfterViewInit {\r\n private templateRef = inject<TemplateRef<any>>(TemplateRef, { optional: true });\r\n private vcRef = inject(ViewContainerRef);\r\n private permissionService = inject(PermissionService);\r\n private cdRef = inject(ChangeDetectorRef);\r\n queue = inject<QueueManager>(QUEUE_MANAGER);\r\n\r\n @Input('abpPermission') condition: string | undefined;\r\n\r\n @Input('abpPermissionRunChangeDetection') runChangeDetection = true;\r\n\r\n subscription!: Subscription;\r\n\r\n cdrSubject = new ReplaySubject<void>();\r\n\r\n rendered = false;\r\n\r\n private check() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n this.subscription = this.permissionService\r\n .getGrantedPolicy$(this.condition || '')\r\n .pipe(distinctUntilChanged())\r\n .subscribe(isGranted => {\r\n this.vcRef.clear();\r\n if (isGranted && this.templateRef) {\r\n this.vcRef.createEmbeddedView(this.templateRef);\r\n }\r\n if (this.runChangeDetection) {\r\n if (!this.rendered) {\r\n this.cdrSubject.next();\r\n } else {\r\n this.cdRef.detectChanges();\r\n }\r\n } else {\r\n this.cdRef.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) this.subscription.unsubscribe();\r\n }\r\n\r\n ngOnChanges() {\r\n this.check();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.cdrSubject.pipe(take(1)).subscribe(() => this.queue.add(() => this.cdRef.detectChanges()));\r\n this.rendered = true;\r\n }\r\n}\r\n","import { \r\n Directive, \r\n Injector, \r\n Input, \r\n OnChanges, \r\n OnInit, \r\n SimpleChanges, \r\n TemplateRef, \r\n Type, \r\n ViewContainerRef, \r\n inject \r\n} from '@angular/core';\r\nimport compare from 'just-compare';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { ABP } from '../models/common';\r\nimport { ReplaceableComponents } from '../models/replaceable-components';\r\nimport { ReplaceableComponentsService } from '../services/replaceable-components.service';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\n\r\n@Directive({\r\n selector: '[abpReplaceableTemplate]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class ReplaceableTemplateDirective implements OnInit, OnChanges {\r\n private injector = inject(Injector);\r\n private templateRef = inject<TemplateRef<any>>(TemplateRef);\r\n private vcRef = inject(ViewContainerRef);\r\n private replaceableComponents = inject(ReplaceableComponentsService);\r\n private subscription = inject(SubscriptionService);\r\n\r\n @Input('abpReplaceableTemplate')\r\n data!: ReplaceableComponents.ReplaceableTemplateDirectiveInput<any, any>;\r\n\r\n providedData = {\r\n inputs: {},\r\n outputs: {},\r\n } as ReplaceableComponents.ReplaceableTemplateData<any, any>;\r\n\r\n context = {} as any;\r\n\r\n externalComponent!: Type<any>;\r\n\r\n defaultComponentRef: any;\r\n\r\n defaultComponentSubscriptions = {} as ABP.Dictionary<Subscription>;\r\n\r\n initialized = false;\r\n\r\n constructor() {\r\n this.context = {\r\n initTemplate: (ref: any) => {\r\n this.resetDefaultComponent();\r\n this.defaultComponentRef = ref;\r\n this.setDefaultComponentInputs();\r\n },\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n const component$ = this.replaceableComponents\r\n .get$(this.data.componentKey)\r\n .pipe(\r\n filter(\r\n (res = {} as ReplaceableComponents.ReplaceableComponent) =>\r\n !this.initialized || !compare(res.component, this.externalComponent),\r\n ),\r\n );\r\n\r\n this.subscription.addOne(\r\n component$,\r\n (res = {} as ReplaceableComponents.ReplaceableComponent) => {\r\n this.vcRef.clear();\r\n this.externalComponent = res.component;\r\n if (this.defaultComponentRef) {\r\n this.resetDefaultComponent();\r\n }\r\n\r\n if (res.component) {\r\n this.setProvidedData();\r\n const customInjector = Injector.create({\r\n providers: [{ provide: 'REPLACEABLE_DATA', useValue: this.providedData }],\r\n parent: this.injector,\r\n });\r\n const ref = this.vcRef.createComponent(res.component, {\r\n index: 0,\r\n injector: customInjector,\r\n });\r\n } else {\r\n this.vcRef.createEmbeddedView(this.templateRef, this.context);\r\n }\r\n\r\n this.initialized = true;\r\n },\r\n );\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.data?.currentValue?.inputs && this.defaultComponentRef) {\r\n this.setDefaultComponentInputs();\r\n }\r\n }\r\n\r\n setDefaultComponentInputs() {\r\n if (!this.defaultComponentRef || (!this.data.inputs && !this.data.outputs)) return;\r\n\r\n if (this.data.inputs) {\r\n for (const key in this.data.inputs) {\r\n if (Object.prototype.hasOwnProperty.call(this.data.inputs, key)) {\r\n if (!compare(this.defaultComponentRef[key], this.data.inputs[key].value)) {\r\n this.defaultComponentRef[key] = this.data.inputs[key].value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.data.outputs) {\r\n for (const key in this.data.outputs) {\r\n if (Object.prototype.hasOwnProperty.call(this.data.outputs, key)) {\r\n if (!this.defaultComponentSubscriptions[key]) {\r\n this.defaultComponentSubscriptions[key] = this.defaultComponentRef[key].subscribe(\r\n (value: any) => {\r\n this.data.outputs?.[key](value);\r\n },\r\n );\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setProvidedData() {\r\n this.providedData = { outputs: {}, ...this.data, inputs: {} };\r\n\r\n if (!this.data.inputs) return;\r\n Object.defineProperties(this.providedData.inputs, {\r\n ...Object.keys(this.data.inputs).reduce(\r\n (acc, key) => ({\r\n ...acc,\r\n [key]: {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => this.data.inputs?.[key]?.value,\r\n ...(this.data.inputs?.[key]?.twoWay && {\r\n set: (newValue: any) => {\r\n if (this.data.inputs?.[key]) {\r\n this.data.inputs[key].value = newValue;\r\n }\r\n if (this.data.outputs?.[`${key}Change`]) {\r\n this.data.outputs[`${key}Change`](newValue);\r\n }\r\n },\r\n }),\r\n },\r\n }),\r\n {},\r\n ),\r\n });\r\n }\r\n\r\n resetDefaultComponent() {\r\n Object.keys(this.defaultComponentSubscriptions).forEach(key => {\r\n this.defaultComponentSubscriptions[key].unsubscribe();\r\n });\r\n this.defaultComponentSubscriptions = {} as ABP.Dictionary<Subscription>;\r\n this.defaultComponentRef = null;\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, OnInit, Output, inject } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\n\r\n@Directive({\r\n selector: '[click.stop]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class StopPropagationDirective implements OnInit {\r\n private el = inject(ElementRef);\r\n private subscription = inject(SubscriptionService);\r\n\r\n @Output('click.stop') readonly stopPropEvent = new EventEmitter<MouseEvent>();\r\n\r\n ngOnInit(): void {\r\n this.subscription.addOne(fromEvent<MouseEvent>(this.el.nativeElement, 'click'), event => {\r\n event.stopPropagation();\r\n this.stopPropEvent.emit(event);\r\n });\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpShowPassword]',\r\n})\r\nexport class ShowPasswordDirective {\r\n protected readonly elementRef = inject(ElementRef);\r\n\r\n @Input() set abpShowPassword(visible: boolean) {\r\n const element = this.elementRef.nativeElement as HTMLInputElement;\r\n if (!element) return;\r\n\r\n element.type = visible ? 'text' : 'password';\r\n }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpCapsLock]',\r\n})\r\nexport class TrackCapsLockDirective {\r\n @Output('abpCapsLock') capsLock = new EventEmitter<boolean>();\r\n\r\n @HostListener('window:keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent): void {\r\n this.capsLock.emit(this.isCapsLockOpen(event));\r\n }\r\n @HostListener('window:keyup', ['$event'])\r\n onKeyUp(event: KeyboardEvent): void {\r\n this.capsLock.emit(this.isCapsLockOpen(event));\r\n }\r\n\r\n isCapsLockOpen(e): boolean {\r\n const s = String.fromCharCode(e.which);\r\n if (\r\n (s.toUpperCase() === s && s.toLowerCase() !== s && e.shiftKey) ||\r\n (s.toUpperCase() !== s && s.toLowerCase() === s && e.shiftKey) ||\r\n (e.getModifierState && e.getModifierState('CapsLock'))\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","export {};\r\n\r\ndeclare global {\r\n interface Date {\r\n toLocalISOString?: () => string;\r\n }\r\n}\r\n\r\nDate.prototype.toLocalISOString = function (this: Date): string {\r\n const timezoneOffset = this.getTimezoneOffset();\r\n\r\n return new Date(this.getTime() - timezoneOffset * 60000).toISOString();\r\n};\r\n","import { Injector, inject, provideAppInitializer, PLATFORM_ID } from '@angular/core';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { SessionStateService } from '../services/session-state.service';\r\nimport { COOKIE_LANGUAGE_KEY } from '../tokens/cookie-language-key.token';\r\n\r\nexport function setLanguageToCookie() {\r\n const injector = inject(Injector);\r\n const platformId = injector.get(PLATFORM_ID);\r\n\r\n if (!isPlatformBrowser(platformId)) return;\r\n\r\n const sessionState = injector.get(SessionStateService);\r\n const document = injector.get(DOCUMENT);\r\n const cookieLanguageKey = injector.get(COOKIE_LANGUAGE_KEY);\r\n sessionState.getLanguage$().subscribe(language => {\r\n const cookieValue = encodeURIComponent(`c=${language}|uic=${language}`);\r\n document.cookie = `${cookieLanguageKey}=${cookieValue}`;\r\n });\r\n}\r\n\r\nexport const CookieLanguageProvider = provideAppInitializer(() => {\r\n setLanguageToCookie();\r\n});\r\n","import { LOCALE_ID, Provider, inject } from '@angular/core';\r\nimport { differentLocales } from '../constants/different-locales';\r\nimport { LocalizationService } from '../services/localization.service';\r\nimport { checkHasProp } from '../utils/common-utils';\r\n\r\nexport class LocaleId extends String {\r\n private localizationService = inject(LocalizationService);\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n toString(): string {\r\n const { currentLang } = this.localizationService;\r\n if (checkHasProp(differentLocales, currentLang)) {\r\n return differentLocales[currentLang];\r\n }\r\n return currentLang;\r\n }\r\n\r\n valueOf(): string {\r\n return this.toString();\r\n }\r\n}\r\n\r\nexport const LocaleProvider: Provider = {\r\n provide: LOCALE_ID,\r\n useClass: LocaleId,\r\n};","import { Provider } from '@angular/core';\r\nimport { INCUDE_LOCALIZATION_RESOURCES_TOKEN } from '../tokens/include-localization-resources.token';\r\n\r\nexport const IncludeLocalizationResourcesProvider: Provider = {\r\n provide: INCUDE_LOCALIZATION_RESOURCES_TOKEN,\r\n useValue: false,\r\n};\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Route, Router } from '@angular/router';\r\nimport { ABP } from '../models';\r\nimport { RoutesService } from '../services/routes.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RoutesHandler {\r\n private routes = inject(RoutesService);\r\n private router = inject(Router, { optional: true })!;\r\n\r\n constructor() {\r\n this.addRoutes();\r\n }\r\n\r\n addRoutes() {\r\n (this.router?.config as RouteData[])?.forEach(({ path = '', data }: RouteData) => {\r\n const routes = data?.routes;\r\n if (!routes) return;\r\n\r\n if (Array.isArray(routes)) {\r\n this.routes.add(routes);\r\n } else {\r\n const routesFlatten = flatRoutes([{ path, ...routes }], { path: '' });\r\n this.routes.add(routesFlatten);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction flatRoutes(routes: RouteDef[], parent: any) {\r\n if (!routes) return [];\r\n\r\n return routes.reduce((acc, route) => {\r\n const { children, ...current } = {\r\n ...route,\r\n parentName: parent.name,\r\n path: (parent.path + '/' + route.path).replace(/\\/\\//g, '/'),\r\n };\r\n\r\n acc.push(current, ...flatRoutes(children, current));\r\n\r\n return acc;\r\n }, [] as ABP.Route[]);\r\n}\r\n\r\ntype RouteDef = ABP.Route & { children: RouteDef[] };\r\ntype RouteData = Route & { data: { routes: RouteDef | Array<RouteDef> } };\r\n","import {\r\n HttpHandler,\r\n HttpHeaders,\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpEvent,\r\n} from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpWaitService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiInterceptor implements IApiInterceptor {\r\n private httpWaitService = inject(HttpWaitService);\r\n\r\n getAdditionalHeaders(existingHeaders?: HttpHeaders) {\r\n return existingHeaders || new HttpHeaders();\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n this.httpWaitService.addRequest(request);\r\n return next.handle(request).pipe(finalize(() => this.httpWaitService.deleteRequest(request)));\r\n }\r\n}\r\n\r\nexport interface IApiInterceptor extends HttpInterceptor {\r\n getAdditionalHeaders(existingHeaders?: HttpHeaders): HttpHeaders;\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { HttpHandlerFn, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\r\nimport { TimezoneService } from '../services';\r\n\r\nexport const timezoneInterceptor: HttpInterceptorFn = (\r\n req: HttpRequest<any>,\r\n next: HttpHandlerFn,\r\n) => {\r\n const timezoneService = inject(TimezoneService);\r\n\r\n if (!timezoneService.isUtcClockEnabled) {\r\n return next(req);\r\n }\r\n const timezone = timezoneService.timezone;\r\n if (timezone) {\r\n req = req.clone({\r\n setHeaders: {\r\n __timezone: timezone,\r\n },\r\n });\r\n }\r\n return next(req);\r\n};\r\n","import { inject, makeStateKey, PLATFORM_ID, TransferState } from '@angular/core';\r\nimport {\r\n HttpEvent,\r\n HttpHandlerFn,\r\n HttpInterceptorFn,\r\n HttpRequest,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nexport const transferStateInterceptor: HttpInterceptorFn = (\r\n req: HttpRequest<any>,\r\n next: HttpHandlerFn,\r\n): Observable<HttpEvent<any>> => {\r\n const transferState = inject(TransferState);\r\n const platformId = inject(PLATFORM_ID);\r\n\r\n if (req.method !== 'GET') {\r\n return next(req);\r\n }\r\n\r\n const stateKey = makeStateKey<HttpResponse<any>>(req.urlWithParams);\r\n\r\n if (isPlatformBrowser(platformId)) {\r\n const storedResponse = transferState.get<HttpResponse<any>>(stateKey, null);\r\n if (storedResponse) {\r\n transferState.remove(stateKey);\r\n return of(new HttpResponse<any>({ body: storedResponse, status: 200 }));\r\n }\r\n }\r\n\r\n return next(req).pipe(\r\n tap(event => {\r\n if (isPlatformServer(platformId) && event instanceof HttpResponse) {\r\n transferState.set(stateKey, event.body);\r\n console.log(`Interceptor: ${req.urlWithParams} is stored in TransferState.`);\r\n }\r\n }),\r\n );\r\n};\r\n","import { makeEnvironmentProviders, Provider, provideAppInitializer, inject } from '@angular/core';\r\nimport { TitleStrategy } from '@angular/router';\r\nimport {\r\n provideHttpClient,\r\n withFetch,\r\n withInterceptors,\r\n withInterceptorsFromDi,\r\n withXsrfConfiguration,\r\n} from '@angular/common/http';\r\nimport {\r\n CORE_OPTIONS,\r\n LOCALIZATIONS,\r\n DYNAMIC_LAYOUTS_TOKEN,\r\n OTHERS_GROUP,\r\n QUEUE_MANAGER,\r\n SORT_COMPARE_FUNC,\r\n TENANT_KEY,\r\n compareFuncFactory,\r\n coreOptionsFactory,\r\n localizationContributor,\r\n} from '../tokens';\r\nimport { RoutesHandler } from '../handlers';\r\nimport { ABP, SortableItem } from '../models';\r\nimport { AuthErrorFilterService } from '../abstracts';\r\nimport { DEFAULT_DYNAMIC_LAYOUTS } from '../constants';\r\nimport { LocalizationService, LocalStorageListenerService, AbpTitleStrategy } from '../services';\r\nimport { DefaultQueueManager, getInitialData } from '../utils';\r\nimport { CookieLanguageProvider, IncludeLocalizationResourcesProvider, LocaleProvider } from './';\r\nimport { timezoneInterceptor, transferStateInterceptor } from '../interceptors';\r\n\r\nexport enum CoreFeatureKind {\r\n Options,\r\n CompareFunctionFactory,\r\n TitleStrategy,\r\n}\r\n\r\nexport interface CoreFeature<KindT extends CoreFeatureKind> {\r\n ɵkind: KindT;\r\n ɵproviders: Provider[];\r\n}\r\n\r\nfunction makeCoreFeature<KindT extends CoreFeatureKind>(\r\n kind: KindT,\r\n providers: Provider[],\r\n): CoreFeature<KindT> {\r\n return {\r\n ɵkind: kind,\r\n ɵproviders: providers,\r\n };\r\n}\r\n\r\nexport function withOptions(options = {} as ABP.Root): CoreFeature<CoreFeatureKind.Options> {\r\n return makeCoreFeature(CoreFeatureKind.Options, [\r\n {\r\n provide: 'CORE_OPTIONS',\r\n useValue: options,\r\n },\r\n {\r\n provide: CORE_OPTIONS,\r\n useFactory: coreOptionsFactory,\r\n deps: ['CORE_OPTIONS'],\r\n },\r\n { provide: TENANT_KEY, useValue: options.tenantKey || '__tenant' },\r\n {\r\n provide: LOCALIZATIONS,\r\n multi: true,\r\n useValue: localizationContributor(options.localizations),\r\n deps: [LocalizationService],\r\n },\r\n {\r\n provide: OTHERS_GROUP,\r\n useValue: options.othersGroup || 'AbpUi::OthersGroup',\r\n },\r\n {\r\n provide: DYNAMIC_LAYOUTS_TOKEN,\r\n useValue: options.dynamicLayouts || DEFAULT_DYNAMIC_LAYOUTS,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withTitleStrategy(strategy: unknown): CoreFeature<CoreFeatureKind.TitleStrategy> {\r\n return makeCoreFeature(CoreFeatureKind.TitleStrategy, [\r\n {\r\n provide: TitleStrategy,\r\n useExisting: strategy,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withCompareFuncFactory(\r\n factory: (a: SortableItem, b: SortableItem) => 1 | -1 | 0,\r\n): CoreFeature<CoreFeatureKind.CompareFunctionFactory> {\r\n return makeCoreFeature(CoreFeatureKind.CompareFunctionFactory, [\r\n {\r\n provide: SORT_COMPARE_FUNC,\r\n useFactory: factory,\r\n },\r\n ]);\r\n}\r\n\r\nexport function provideAbpCore(...features: CoreFeature<CoreFeatureKind>[]) {\r\n const providers = [\r\n provideHttpClient(\r\n withInterceptorsFromDi(),\r\n withXsrfConfiguration({\r\n cookieName: 'XSRF-TOKEN',\r\n headerName: 'RequestVerificationToken',\r\n }),\r\n withFetch(),\r\n withInterceptors([transferStateInterceptor, timezoneInterceptor]),\r\n ),\r\n provideAppInitializer(async () => {\r\n inject(LocalizationService);\r\n inject(LocalStorageListenerService);\r\n inject(RoutesHandler);\r\n await getInitialData();\r\n }),\r\n LocaleProvider,\r\n CookieLanguageProvider,\r\n {\r\n provide: SORT_COMPARE_FUNC,\r\n useFactory: compareFuncFactory,\r\n },\r\n {\r\n provide: QUEUE_MANAGER,\r\n useClass: DefaultQueueManager,\r\n },\r\n AuthErrorFilterService,\r\n IncludeLocalizationResourcesProvider,\r\n {\r\n provide: TitleStrategy,\r\n useExisting: AbpTitleStrategy,\r\n },\r\n ];\r\n\r\n for (const feature of features) {\r\n providers.push(...feature.ɵproviders);\r\n }\r\n\r\n return makeEnvironmentProviders(providers);\r\n}\r\n\r\nexport function provideAbpCoreChild(options = {} as ABP.Child) {\r\n return makeEnvironmentProviders([\r\n {\r\n provide: LOCALIZATIONS,\r\n multi: true,\r\n useValue: localizationContributor(options.localizations),\r\n deps: [LocalizationService],\r\n },\r\n ]);\r\n}\r\n","import { Injectable, Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { LocalizationWithDefault } from '../models/localization';\r\nimport { LocalizationService } from '../services/localization.service';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpLocalization',\r\n})\r\nexport class LocalizationPipe implements PipeTransform {\r\n private localization = inject(LocalizationService);\r\n\r\n\r\n transform(\r\n value: string | LocalizationWithDefault = '',\r\n ...interpolateParams: (string | string[] | undefined)[]\r\n ): string {\r\n const params =\r\n interpolateParams.reduce((acc, val) => {\r\n if (!acc) {\r\n return val;\r\n }\r\n if (!val) {\r\n return acc;\r\n }\r\n return Array.isArray(val) ? [...acc, ...val] : [...acc, val];\r\n }, []) || [];\r\n return this.localization.instant(value, ...params);\r\n }\r\n}\r\n","import { inject, Injectable, Pipe, PipeTransform, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpSafeHtml',\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n private readonly sanitizer = inject(DomSanitizer);\r\n\r\n transform(value: string): string {\r\n if (typeof value !== 'string') return '';\r\n return this.sanitizer.sanitize(SecurityContext.HTML, value);\r\n }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nexport type SortOrder = 'asc' | 'desc';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpSort',\r\n})\r\nexport class SortPipe implements PipeTransform {\r\n transform(value: any[], sortOrder: SortOrder | string = 'asc', sortKey?: string | number): any {\r\n sortOrder = sortOrder && (sortOrder.toLowerCase() as any);\r\n\r\n if (!value || (sortOrder !== 'asc' && sortOrder !== 'desc')) return value;\r\n\r\n let numberArray = [];\r\n let stringArray = [];\r\n\r\n if (!sortKey) {\r\n numberArray = value.filter(item => typeof item === 'number').sort();\r\n stringArray = value.filter(item => typeof item === 'string').sort();\r\n } else {\r\n numberArray = value\r\n .filter(item => typeof item[sortKey] === 'number')\r\n .sort((a, b) => a[sortKey] - b[sortKey]);\r\n stringArray = value\r\n .filter(item => typeof item[sortKey] === 'string')\r\n .sort((a, b) => {\r\n if (a[sortKey] < b[sortKey]) return -1;\r\n else if (a[sortKey] > b[sortKey]) return 1;\r\n else return 0;\r\n });\r\n }\r\n const sorted = [\r\n ...numberArray,\r\n ...stringArray,\r\n ...value.filter(\r\n item =>\r\n typeof (sortKey ? item[sortKey] : item) !== 'number' &&\r\n typeof (sortKey ? item[sortKey] : item) !== 'string',\r\n ),\r\n ];\r\n return sortOrder === 'asc' ? sorted : sorted.reverse();\r\n }\r\n}\r\n","import { InjectionToken, Injector, Pipe, PipeTransform, inject } from '@angular/core';\r\n\r\nexport const INJECTOR_PIPE_DATA_TOKEN = new InjectionToken<PipeTransform>(\r\n 'INJECTOR_PIPE_DATA_TOKEN',\r\n);\r\n\r\n@Pipe({\r\n name: 'toInjector',\r\n})\r\nexport class ToInjectorPipe implements PipeTransform {\r\n private injector = inject(Injector);\r\n\r\n transform(\r\n value: any,\r\n token: InjectionToken<any> = INJECTOR_PIPE_DATA_TOKEN,\r\n name = 'ToInjectorPipe',\r\n ): Injector {\r\n return Injector.create({\r\n providers: [\r\n {\r\n provide: token,\r\n useValue: value,\r\n },\r\n ],\r\n parent: this.injector,\r\n name,\r\n });\r\n }\r\n}\r\n","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { LOCALE_ID, Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { ConfigStateService } from '../services';\r\nimport { getShortDateFormat } from '../utils/date-utils';\r\n\r\n@Pipe({\r\n name: 'shortDate',\r\n pure: true,\r\n})\r\nexport class ShortDatePipe extends DatePipe implements PipeTransform {\r\n private configStateService = inject(ConfigStateService);\r\n\r\n constructor() {\r\n const locale = inject(LOCALE_ID);\r\n const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });\r\n\r\n super(locale, defaultTimezone);\r\n }\r\n\r\n transform(\r\n value: Date | string | number,\r\n format?: string,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null;\r\n transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n transform(\r\n value: string | number | Date | null | undefined,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null {\r\n const format = getShortDateFormat(this.configStateService);\r\n return super.transform(value, format, timezone, locale);\r\n }\r\n}\r\n","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { LOCALE_ID, Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { ConfigStateService } from '../services';\r\nimport { getShortTimeFormat } from '../utils/date-utils';\r\n\r\n@Pipe({\r\n name: 'shortTime',\r\n pure: true,\r\n})\r\nexport class ShortTimePipe extends DatePipe implements PipeTransform {\r\n private configStateService = inject(ConfigStateService);\r\n\r\n constructor() {\r\n const locale = inject(LOCALE_ID);\r\n const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });\r\n\r\n super(locale, defaultTimezone);\r\n }\r\n\r\n transform(\r\n value: Date | string | number,\r\n format?: string,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null;\r\n transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n transform(\r\n value: string | number | Date | null | undefined,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null {\r\n const format = getShortTimeFormat(this.configStateService);\r\n return super.transform(value, format, timezone, locale);\r\n }\r\n}\r\n","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { LOCALE_ID, Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { ConfigStateService } from '../services';\r\nimport { getShortDateShortTimeFormat } from '../utils/date-utils';\r\n\r\n@Pipe({\r\n name: 'shortDateTime',\r\n pure: true,\r\n})\r\nexport class ShortDateTimePipe extends DatePipe implements PipeTransform {\r\n private configStateService = inject(ConfigStateService);\r\n\r\n constructor() {\r\n const locale = inject(LOCALE_ID);\r\n const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });\r\n\r\n super(locale, defaultTimezone);\r\n }\r\n\r\n transform(\r\n value: Date | string | number,\r\n format?: string,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null;\r\n transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n transform(\r\n value: string | number | Date | null | undefined,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null {\r\n const format = getShortDateShortTimeFormat(this.configStateService);\r\n return super.transform(value, format, timezone, locale);\r\n }\r\n}\r\n","import { Pipe, PipeTransform, Injectable, inject, LOCALE_ID } from '@angular/core';\r\nimport { ConfigStateService, LocalizationService, TimeService, TimezoneService } from '../services';\r\nimport { getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat } from '../utils';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpUtcToLocal',\r\n})\r\nexport class UtcToLocalPipe implements PipeTransform {\r\n protected readonly timezoneService = inject(TimezoneService);\r\n protected readonly timeService = inject(TimeService);\r\n protected readonly configState = inject(ConfigStateService);\r\n protected readonly localizationService = inject(LocalizationService);\r\n protected readonly locale = inject(LOCALE_ID);\r\n\r\n transform(\r\n value: string | Date | null | undefined,\r\n type: 'date' | 'datetime' | 'time',\r\n ): string | Date {\r\n if (!value) return '';\r\n\r\n const date = new Date(value);\r\n if (isNaN(date.getTime())) return '';\r\n\r\n const format = this.getFormat(type);\r\n\r\n try {\r\n if (this.timezoneService.isUtcClockEnabled) {\r\n const timeZone = this.timezoneService.timezone;\r\n return this.timeService.formatDateWithStandardOffset(date, format, timeZone);\r\n } else {\r\n return this.timeService.formatWithoutTimeZone(date, format);\r\n }\r\n } catch (err) {\r\n return value;\r\n }\r\n }\r\n\r\n private getFormat(propType: 'date' | 'datetime' | 'time'): string {\r\n switch (propType) {\r\n case 'date':\r\n return getShortDateFormat(this.configState);\r\n case 'time':\r\n return getShortTimeFormat(this.configState);\r\n case 'datetime':\r\n default:\r\n return getShortDateShortTimeFormat(this.configState);\r\n }\r\n }\r\n}\r\n","import { inject, Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport {\r\n Observable,\r\n of,\r\n filter,\r\n take,\r\n switchMap,\r\n map,\r\n startWith,\r\n distinctUntilChanged,\r\n} from 'rxjs';\r\nimport { ConfigStateService, LocalizationService } from '../services';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpAsyncLocalization',\r\n})\r\nexport class AsyncLocalizationPipe implements PipeTransform {\r\n private localizationService = inject(LocalizationService);\r\n private configStateService = inject(ConfigStateService);\r\n\r\n transform(key: string, ...params: (string | string[])[]): Observable<string> {\r\n if (!key) {\r\n return of('');\r\n }\r\n\r\n const flatParams = params.reduce<string[]>(\r\n (acc, val) => (Array.isArray(val) ? acc.concat(val) : [...acc, val]),\r\n [],\r\n );\r\n\r\n return this.configStateService.getAll$().pipe(\r\n filter(config => !!config.localization),\r\n take(1),\r\n switchMap(() => this.localizationService.get(key, ...flatParams)),\r\n map(translation => (translation && translation !== key ? translation : '')),\r\n startWith(''),\r\n distinctUntilChanged(),\r\n );\r\n }\r\n}\r\n","import { Injectable, Pipe } from '@angular/core';\r\nimport { AsyncLocalizationPipe } from './async-localization.pipe';\r\n\r\n/**\r\n * @deprecated Use `AsyncLocalizationPipe` instead. This pipe will be removed in a future version.\r\n * LazyLocalizationPipe has been renamed to AsyncLocalizationPipe to better express its async nature.\r\n */\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpLazyLocalization',\r\n})\r\nexport class LazyLocalizationPipe extends AsyncLocalizationPipe {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'htmlEncode',\r\n})\r\nexport class HtmlEncodePipe implements PipeTransform {\r\n transform(value: string): string {\r\n if (!value) {\r\n return value;\r\n }\r\n\r\n return value\r\n .replace(/&/g, '&amp;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&#39;');\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n provideHttpClient,\r\n withInterceptorsFromDi,\r\n withXsrfConfiguration,\r\n withFetch,\r\n} from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AbstractNgModelComponent } from './abstracts';\r\nimport {\r\n DynamicLayoutComponent,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from './components';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport {\r\n StopPropagationDirective,\r\n ReplaceableTemplateDirective,\r\n PermissionDirective,\r\n InitDirective,\r\n ForDirective,\r\n InputEventDebounceDirective,\r\n AutofocusDirective,\r\n FormSubmitDirective,\r\n} from './directives';\r\nimport { ABP } from './models/common';\r\nimport './utils/date-extensions';\r\nimport { provideAbpCoreChild, provideAbpCore, withOptions } from './providers';\r\nimport {\r\n AsyncLocalizationPipe,\r\n LazyLocalizationPipe,\r\n UtcToLocalPipe,\r\n SafeHtmlPipe,\r\n ShortDatePipe,\r\n ShortTimePipe,\r\n ShortDateTimePipe,\r\n ToInjectorPipe,\r\n SortPipe,\r\n LocalizationPipe,\r\n} from './pipes';\r\n\r\nconst CORE_DIRECTIVES = [\r\n AutofocusDirective,\r\n InputEventDebounceDirective,\r\n ForDirective,\r\n FormSubmitDirective,\r\n InitDirective,\r\n PermissionDirective,\r\n ReplaceableTemplateDirective,\r\n StopPropagationDirective,\r\n];\r\n\r\nconst CORE_PIPES = [\r\n LocalizationPipe,\r\n SortPipe,\r\n SafeHtmlPipe,\r\n ShortDateTimePipe,\r\n ShortTimePipe,\r\n ShortDatePipe,\r\n ToInjectorPipe,\r\n UtcToLocalPipe,\r\n AsyncLocalizationPipe,\r\n LazyLocalizationPipe,\r\n];\r\n\r\nconst CORE_COMPONENTS = [\r\n DynamicLayoutComponent,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n AbstractNgModelComponent,\r\n];\r\n/**\r\n * BaseCoreModule is the module that holds\r\n * all imports, declarations, exports, and entryComponents\r\n * but not the providers.\r\n * This module will be imported and exported by all others.\r\n */\r\n@NgModule({\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NgxValidateCoreModule,\r\n ...CORE_DIRECTIVES,\r\n ...CORE_PIPES,\r\n ...CORE_COMPONENTS,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NgxValidateCoreModule,\r\n ...CORE_DIRECTIVES,\r\n ...CORE_PIPES,\r\n ...CORE_COMPONENTS,\r\n ],\r\n declarations: [],\r\n providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi(), withFetch())],\r\n})\r\nexport class BaseCoreModule {}\r\n\r\n/**\r\n * RootCoreModule is the module that will be used at root level\r\n * and it introduces imports useful at root level (e.g. NGXS)\r\n */\r\n@NgModule({\r\n exports: [BaseCoreModule],\r\n imports: [BaseCoreModule],\r\n providers: [\r\n provideHttpClient(\r\n withXsrfConfiguration({\r\n cookieName: 'XSRF-TOKEN',\r\n headerName: 'RequestVerificationToken',\r\n }),\r\n ),\r\n ],\r\n})\r\nexport class RootCoreModule {}\r\n\r\n/**\r\n * CoreModule is the module that is publicly available\r\n */\r\n@NgModule({\r\n exports: [BaseCoreModule],\r\n imports: [BaseCoreModule],\r\n})\r\nexport class CoreModule {\r\n /**\r\n * @deprecated forRoot method is deprecated, use `provideAbpCore` *function* for config settings.\r\n */\r\n static forRoot(options = {} as ABP.Root): ModuleWithProviders<RootCoreModule> {\r\n return {\r\n ngModule: RootCoreModule,\r\n providers: [provideAbpCore(withOptions(options))],\r\n };\r\n }\r\n\r\n /**\r\n * @deprecated forChild method is deprecated, use `provideAbpCoreChild` *function* for config settings.\r\n */\r\n static forChild(options = {} as ABP.Child): ModuleWithProviders<RootCoreModule> {\r\n return {\r\n ngModule: RootCoreModule,\r\n providers: [provideAbpCoreChild(options)],\r\n };\r\n }\r\n}\r\n","import { Injectable, inject, PLATFORM_ID } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n CanActivateFn,\r\n Router,\r\n RouterStateSnapshot,\r\n UrlTree,\r\n} from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { filter, map, switchMap, take } from 'rxjs/operators';\r\nimport { AuthService, IAbpGuard } from '../abstracts';\r\nimport { findRoute, getRoutePath } from '../utils/route-utils';\r\nimport { RoutesService, PermissionService, HttpErrorReporterService, ConfigStateService } from '../services';\r\nimport { isPlatformServer } from '@angular/common';\r\n/**\r\n * @deprecated Use `permissionGuard` *function* instead.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PermissionGuard implements IAbpGuard {\r\n protected readonly router = inject(Router);\r\n protected readonly routesService = inject(RoutesService);\r\n protected readonly authService = inject(AuthService);\r\n protected readonly permissionService = inject(PermissionService);\r\n protected readonly httpErrorReporter = inject(HttpErrorReporterService);\r\n protected readonly configStateService = inject(ConfigStateService);\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> {\r\n let { requiredPolicy } = route.data || {};\r\n\r\n if (!requiredPolicy) {\r\n const routeFound = findRoute(this.routesService, getRoutePath(this.router, state.url));\r\n requiredPolicy = routeFound?.requiredPolicy;\r\n }\r\n\r\n if (!requiredPolicy) {\r\n return of(true);\r\n }\r\n\r\n return this.configStateService.getAll$().pipe(\r\n filter(config => !!config?.auth?.grantedPolicies),\r\n take(1),\r\n switchMap(() => this.permissionService.getGrantedPolicy$(requiredPolicy)),\r\n take(1),\r\n map(access => {\r\n if (access) return true;\r\n\r\n if (route.data?.['redirectUrl']) {\r\n return this.router.parseUrl(route.data['redirectUrl']);\r\n }\r\n\r\n if (this.authService.isAuthenticated) {\r\n this.httpErrorReporter.reportError({ status: 403 } as HttpErrorResponse);\r\n }\r\n return false;\r\n }),\r\n );\r\n }\r\n}\r\n\r\nexport const permissionGuard: CanActivateFn = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n) => {\r\n const router = inject(Router);\r\n const routesService = inject(RoutesService);\r\n const authService = inject(AuthService);\r\n const permissionService = inject(PermissionService);\r\n const httpErrorReporter = inject(HttpErrorReporterService);\r\n const configStateService = inject(ConfigStateService);\r\n const platformId = inject(PLATFORM_ID);\r\n\r\n let { requiredPolicy } = route.data || {};\r\n\r\n if (!requiredPolicy) {\r\n const routeFound = findRoute(routesService, getRoutePath(router, state.url));\r\n requiredPolicy = routeFound?.requiredPolicy;\r\n }\r\n\r\n if (!requiredPolicy) {\r\n return of(true);\r\n }\r\n\r\n //TODO enable permission check on ssr\r\n if (isPlatformServer(platformId)) {\r\n return of(true);\r\n }\r\n\r\n return configStateService.getAll$().pipe(\r\n filter(config => !!config?.auth?.grantedPolicies),\r\n take(1),\r\n switchMap(() => permissionService.getGrantedPolicy$(requiredPolicy)),\r\n take(1),\r\n map(access => {\r\n if (access) return true;\r\n\r\n if (route.data?.['redirectUrl']) {\r\n return router.parseUrl(route.data['redirectUrl']);\r\n }\r\n\r\n if (authService.isAuthenticated) {\r\n httpErrorReporter.reportError({ status: 403 } as HttpErrorResponse);\r\n }\r\n\r\n return false;\r\n }),\r\n );\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { LocalizationPipe } from './pipes/localization.pipe';\r\nimport { AsyncLocalizationPipe, LazyLocalizationPipe } from './pipes';\r\n\r\n/**\r\n * @deprecated Use `LocalizationPipe`, `AsyncLocalizationPipe` and `LazyLocalizationPipe` directly as a standalone pipe.\r\n * This module is no longer necessary for using the `LocalizationPipe`, `AsyncLocalizationPipe` and `LazyLocalizationPipe` pipes.\r\n */\r\n\r\n@NgModule({\r\n exports: [LocalizationPipe, AsyncLocalizationPipe, LazyLocalizationPipe],\r\n imports: [LocalizationPipe, AsyncLocalizationPipe, LazyLocalizationPipe],\r\n})\r\nexport class LocalizationModule {}\r\n","import { ABP } from './common';\r\nimport { checkHasProp } from '../utils/common-utils';\r\n\r\nexport class ListResultDto<T> {\r\n items?: T[];\r\n\r\n constructor(initialValues: Partial<ListResultDto<T>> = {}) {\r\n for (const key in initialValues) {\r\n if (checkHasProp(initialValues, key)) {\r\n this[key] = initialValues[key];\r\n }\r\n }\r\n }\r\n}\r\ntype ValueOf<T> = T[keyof T];\r\nexport class PagedResultDto<T> extends ListResultDto<T> {\r\n totalCount?: number;\r\n\r\n constructor(initialValues: Partial<PagedResultDto<T>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleObject {\r\n extraProperties?: ABP.Dictionary<any>;\r\n\r\n constructor(initialValues: Partial<ExtensibleObject> = {}) {\r\n for (const key in initialValues) {\r\n if (checkHasProp(initialValues, key) && initialValues[key] !== undefined) {\r\n this[key] = initialValues[key];\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class ExtensibleEntityDto<TKey = string> extends ExtensibleObject {\r\n id?: TKey;\r\n\r\n constructor(initialValues: Partial<ExtensibleEntityDto<TKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class LimitedResultRequestDto {\r\n maxResultCount = 10;\r\n\r\n constructor(initialValues: Partial<LimitedResultRequestDto> = {}) {\r\n for (const key in initialValues) {\r\n if (checkHasProp(initialValues, key) && initialValues[key] !== undefined) {\r\n this[key] = initialValues[key] as ValueOf<LimitedResultRequestDto>;\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class ExtensibleLimitedResultRequestDto extends ExtensibleEntityDto {\r\n maxResultCount = 10;\r\n\r\n constructor(initialValues: Partial<ExtensibleLimitedResultRequestDto> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class PagedResultRequestDto extends LimitedResultRequestDto {\r\n skipCount?: number;\r\n\r\n constructor(initialValues: Partial<PagedResultRequestDto> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensiblePagedResultRequestDto extends ExtensibleLimitedResultRequestDto {\r\n skipCount?: number;\r\n\r\n constructor(initialValues: Partial<ExtensiblePagedResultRequestDto> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class PagedAndSortedResultRequestDto extends PagedResultRequestDto {\r\n sorting?: string;\r\n\r\n constructor(initialValues: Partial<PagedAndSortedResultRequestDto> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensiblePagedAndSortedResultRequestDto extends ExtensiblePagedResultRequestDto {\r\n sorting?: string;\r\n\r\n constructor(initialValues: Partial<ExtensiblePagedAndSortedResultRequestDto> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class EntityDto<TKey = string> {\r\n id?: TKey;\r\n\r\n constructor(initialValues: Partial<EntityDto<TKey>> = {}) {\r\n for (const key in initialValues) {\r\n if (checkHasProp(initialValues, key)) {\r\n this[key] = initialValues[key];\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class CreationAuditedEntityDto<TPrimaryKey = string> extends EntityDto<TPrimaryKey> {\r\n creationTime?: string | Date;\r\n creatorId?: string;\r\n\r\n constructor(initialValues: Partial<CreationAuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class CreationAuditedEntityWithUserDto< \r\n TPrimaryKey = string,\r\n TUserDto = any\r\n> extends CreationAuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n\r\n constructor(\r\n initialValues: Partial<CreationAuditedEntityWithUserDto<TPrimaryKey,TUserDto>> = {},\r\n ) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class AuditedEntityDto<TPrimaryKey = string> extends CreationAuditedEntityDto<TPrimaryKey> {\r\n lastModificationTime?: string | Date;\r\n lastModifierId?: string;\r\n\r\n constructor(initialValues: Partial<AuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\n/** @deprecated the class signature will change in v8.0 */ \r\nexport class AuditedEntityWithUserDto<\r\n TPrimaryKey = string,\r\n TUserDto = any,\r\n> extends AuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n lastModifier?: TUserDto;\r\n\r\n constructor(initialValues: Partial<AuditedEntityWithUserDto< TPrimaryKey,TUserDto>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class FullAuditedEntityDto<TPrimaryKey = string> extends AuditedEntityDto<TPrimaryKey> {\r\n isDeleted?: boolean;\r\n deleterId?: string;\r\n deletionTime?: Date | string;\r\n\r\n constructor(initialValues: Partial<FullAuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n/** @deprecated the class signature will change in v8.0 */ \r\nexport class FullAuditedEntityWithUserDto<\r\n TPrimaryKey = string,\r\n TUserDto = any\r\n> extends FullAuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n lastModifier?: TUserDto;\r\n deleter?: TUserDto;\r\n\r\n constructor(initialValues: Partial<FullAuditedEntityWithUserDto< TPrimaryKey,TUserDto>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleCreationAuditedEntityDto<\r\n TPrimaryKey = string,\r\n> extends ExtensibleEntityDto<TPrimaryKey> {\r\n creationTime?: Date | string;\r\n creatorId?: string;\r\n\r\n constructor(initialValues: Partial<ExtensibleCreationAuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleAuditedEntityDto<\r\n TPrimaryKey = string,\r\n> extends ExtensibleCreationAuditedEntityDto<TPrimaryKey> {\r\n lastModificationTime?: Date | string;\r\n lastModifierId?: string;\r\n\r\n constructor(initialValues: Partial<ExtensibleAuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleAuditedEntityWithUserDto<\r\n TPrimaryKey = string,\r\n TUserDto = any,\r\n> extends ExtensibleAuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n lastModifier?: TUserDto;\r\n\r\n constructor(initialValues: Partial<ExtensibleAuditedEntityWithUserDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleCreationAuditedEntityWithUserDto<\r\n TPrimaryKey = string,\r\n TUserDto = any,\r\n> extends ExtensibleCreationAuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n\r\n constructor(\r\n initialValues: Partial<ExtensibleCreationAuditedEntityWithUserDto<TPrimaryKey>> = {},\r\n ) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleFullAuditedEntityDto<\r\n TPrimaryKey = string,\r\n> extends ExtensibleAuditedEntityDto<TPrimaryKey> {\r\n isDeleted?: boolean;\r\n deleterId?: string;\r\n deletionTime?: Date | string;\r\n\r\n constructor(initialValues: Partial<ExtensibleFullAuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleFullAuditedEntityWithUserDto<\r\n TPrimaryKey = string,\r\n TUserDto = any,\r\n> extends ExtensibleFullAuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n lastModifier?: TUserDto;\r\n deleter?: TUserDto;\r\n\r\n constructor(initialValues: Partial<ExtensibleFullAuditedEntityWithUserDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n","export type EventType =\r\n | 'discovery_document_loaded'\r\n | 'jwks_load_error'\r\n | 'invalid_nonce_in_state'\r\n | 'discovery_document_load_error'\r\n | 'discovery_document_validation_error'\r\n | 'user_profile_loaded'\r\n | 'user_profile_load_error'\r\n | 'token_received'\r\n | 'token_error'\r\n | 'code_error'\r\n | 'token_refreshed'\r\n | 'token_refresh_error'\r\n | 'silent_refresh_error'\r\n | 'silently_refreshed'\r\n | 'silent_refresh_timeout'\r\n | 'token_validation_error'\r\n | 'token_expires'\r\n | 'session_changed'\r\n | 'session_error'\r\n | 'session_terminated'\r\n | 'session_unchanged'\r\n | 'logout'\r\n | 'popup_closed'\r\n | 'popup_blocked'\r\n | 'token_revoke_error';\r\n\r\nexport abstract class AuthEvent {\r\n constructor(public readonly type: EventType) {\r\n this.type = type;\r\n }\r\n}\r\n\r\nexport class AuthSuccessEvent extends AuthEvent {\r\n constructor(public readonly type: EventType, public readonly info?: any) {\r\n super(type);\r\n }\r\n}\r\n\r\nexport class AuthInfoEvent extends AuthEvent {\r\n constructor(public readonly type: EventType, public readonly info?: any) {\r\n super(type);\r\n }\r\n}\r\n\r\nexport class AuthErrorEvent extends AuthEvent {\r\n constructor(\r\n public readonly type: EventType,\r\n public readonly reason: object,\r\n public readonly params?: object,\r\n ) {\r\n super(type);\r\n }\r\n}\r\n","import { RestService } from '../../../../../../services';\r\nimport { Rest } from '../../../../../../models';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport type { ApplicationApiDescriptionModel, ApplicationApiDescriptionModelRequestDto } from '../../../http/modeling/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApiDefinitionService {\n private restService = inject(RestService);\n\r\n apiName = 'abp';\r\n \r\n\r\n getByModel = (model: ApplicationApiDescriptionModelRequestDto, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ApplicationApiDescriptionModel>({\r\n method: 'GET',\r\n url: '/api/abp/api-definition',\r\n params: { includeTypes: model.includeTypes },\r\n },\r\n { apiName: this.apiName,...config });\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\nexport interface MinAgeError {\r\n minAge: {\r\n age: number;\r\n };\r\n}\r\n\r\nexport interface MinAgeOptions {\r\n age?: number;\r\n}\r\n\r\nexport function validateMinAge({ age = 18 }: MinAgeOptions = {}): ValidatorFn {\r\n return (control: AbstractControl): MinAgeError | null => {\r\n if (['', null, undefined].indexOf(control.value) > -1) return null;\r\n\r\n return isValidMinAge(control.value, age) ? null : { minAge: { age } };\r\n };\r\n}\r\n\r\nfunction isValidMinAge(value: string | number, minAge: number) {\r\n const date = new Date();\r\n date.setFullYear(date.getFullYear() - minAge);\r\n date.setHours(23, 59, 59, 999);\r\n\r\n return Number(new Date(value)) <= date.valueOf();\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\nexport interface CreditCardError {\r\n creditCard: true;\r\n}\r\n\r\nexport function validateCreditCard(): ValidatorFn {\r\n return (control: AbstractControl): CreditCardError | null => {\r\n if (['', null, undefined].indexOf(control.value) > -1) return null;\r\n\r\n return isValidCreditCard(String(control.value)) ? null : { creditCard: true };\r\n };\r\n}\r\n\r\nfunction isValidCreditCard(value: string): boolean {\r\n value = value.replace(/[ -]/g, '');\r\n\r\n if (!/^[0-9]{13,19}$/.test(value)) return false;\r\n\r\n let checksum = 0;\r\n let multiplier = 1;\r\n\r\n for (let i = value.length; i > 0; i--) {\r\n const digit = Number(value[i - 1]) * multiplier;\r\n checksum += (digit % 10) + ~~(digit / 10);\r\n\r\n multiplier = (multiplier * 2) % 3;\r\n }\r\n\r\n return checksum % 10 === 0;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\nexport interface RangeError {\r\n range: {\r\n max: number;\r\n min: number;\r\n };\r\n}\r\n\r\nexport interface RangeOptions {\r\n maximum?: number;\r\n minimum?: number;\r\n}\r\n\r\nexport function validateRange({ maximum = Infinity, minimum = 0 }: RangeOptions = {}): ValidatorFn {\r\n return (control: AbstractControl): RangeError | null => {\r\n if (['', null, undefined].indexOf(control.value) > -1) return null;\r\n\r\n const value = Number(control.value);\r\n return getMinError(value, minimum, maximum) || getMaxError(value, maximum, minimum);\r\n };\r\n}\r\n\r\nfunction getMaxError(value: number, max: number, min: number): RangeError | null {\r\n return value > max ? { range: { max, min } } : null;\r\n}\r\n\r\nfunction getMinError(value: number, min: number, max: number): RangeError | null {\r\n return value < min ? { range: { min, max } } : null;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\nexport interface RequiredError {\r\n required: true;\r\n}\r\n\r\nexport interface RequiredOptions {\r\n allowEmptyStrings?: boolean;\r\n}\r\n\r\nexport function validateRequired({ allowEmptyStrings }: RequiredOptions = {}): ValidatorFn {\r\n // note: please do not remove name of the function, it is used in function compare with type 'RequiredError'\r\n const required = (control: AbstractControl): RequiredError | null => {\r\n return isValidRequired(control.value, allowEmptyStrings) ? null : { required: true };\r\n };\r\n return required;\r\n}\r\n\r\nfunction isValidRequired(value: any, allowEmptyStrings: boolean | undefined): boolean {\r\n if (value || value === 0 || value === false) return true;\r\n\r\n if (allowEmptyStrings && value === '') return true;\r\n\r\n return false;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\nexport interface StringLengthError {\r\n maxlength?: {\r\n requiredLength: number;\r\n };\r\n minlength?: {\r\n requiredLength: number;\r\n };\r\n}\r\n\r\nexport interface StringLengthOptions {\r\n maximumLength?: number;\r\n minimumLength?: number;\r\n}\r\n\r\nexport function validateStringLength({\r\n maximumLength = Infinity,\r\n minimumLength = 0,\r\n}: StringLengthOptions = {}): ValidatorFn {\r\n return (control: AbstractControl): StringLengthError | null => {\r\n if (['', null, undefined].indexOf(control.value) > -1) return null;\r\n\r\n const value = String(control.value);\r\n\r\n return getMinLengthError(value, minimumLength) || getMaxLengthError(value, maximumLength);\r\n };\r\n}\r\n\r\nfunction getMaxLengthError(value: string, requiredLength: number): StringLengthError | null {\r\n return value.length > requiredLength ? { maxlength: { requiredLength } } : null;\r\n}\r\n\r\nfunction getMinLengthError(value: string, requiredLength: number): StringLengthError | null {\r\n return value.length < requiredLength ? { minlength: { requiredLength } } : null;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\nimport { isNullOrEmpty } from '../utils';\r\n\r\nexport interface UniqueCharacterError {\r\n uniqueCharacter: true;\r\n}\r\n\r\nexport function validateUniqueCharacter(): ValidatorFn {\r\n return (control: AbstractControl): UniqueCharacterError | null => {\r\n if (isNullOrEmpty(control.value)) return null;\r\n\r\n return isUnqiueCharacter(control.value) ? null : { uniqueCharacter: true };\r\n };\r\n}\r\n\r\nfunction isUnqiueCharacter(value: string): boolean {\r\n const set = new Set<string>(value.split(''));\r\n\r\n return set.size == value.length;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\nimport { isNullOrEmpty } from '../utils';\r\n\r\nexport interface UrlError {\r\n url: true;\r\n}\r\n\r\nexport function validateUrl(): ValidatorFn {\r\n return (control: AbstractControl): UrlError | null => {\r\n if (isNullOrEmpty(control.value)) return null;\r\n\r\n return isValidUrl(control.value) ? null : { url: true };\r\n };\r\n}\r\n\r\nfunction isValidUrl(value: string): boolean {\r\n if (/^http(s)?:\\/\\/[^/]/.test(value) || /^ftp:\\/\\/[^/]/.test(value)) {\r\n const a = document.createElement('a');\r\n a.href = value;\r\n return !!a.host;\r\n }\r\n\r\n return false;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\nimport { isNullOrEmpty } from '../utils';\r\n\r\nexport interface UsernamePatternError {\r\n usernamePattern: {\r\n actualValue: string;\r\n };\r\n}\r\n\r\nexport interface UsernameOptions {\r\n pattern?: RegExp;\r\n}\r\n\r\nconst onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;\r\n\r\nexport function validateUsername(\r\n { pattern = /.*/ }: UsernameOptions = { pattern: onlyLetterAndNumberRegex },\r\n): ValidatorFn {\r\n return (control: AbstractControl): UsernamePatternError | null => {\r\n const isValid = isValidUserName(control.value, pattern);\r\n return isValid ? null : { usernamePattern: { actualValue: control.value } };\r\n };\r\n}\r\n\r\nfunction isValidUserName(value: any, pattern: RegExp): boolean {\r\n if (isNullOrEmpty(value)) return true;\r\n\r\n return pattern.test(value);\r\n}\r\n","import { Validators } from '@angular/forms';\r\nimport { validateMinAge } from './age.validator';\r\nimport { validateCreditCard } from './credit-card.validator';\r\nimport { validateRange } from './range.validator';\r\nimport { validateRequired } from './required.validator';\r\nimport { validateStringLength } from './string-length.validator';\r\nimport { validateUniqueCharacter } from './unique-character.validator';\r\nimport { validateUrl } from './url.validator';\r\nimport { validateUsername } from './username.validator';\r\nexport { validateUniqueCharacter } from './unique-character.validator';\r\n\r\nexport * from './age.validator';\r\nexport * from './credit-card.validator';\r\nexport * from './range.validator';\r\nexport * from './required.validator';\r\nexport * from './string-length.validator';\r\nexport * from './url.validator';\r\nexport * from './unique-character.validator';\r\nexport const AbpValidators = {\r\n creditCard: validateCreditCard,\r\n emailAddress: () => Validators.email,\r\n minAge: validateMinAge,\r\n range: validateRange,\r\n required: validateRequired,\r\n stringLength: validateStringLength,\r\n url: validateUrl,\r\n username: validateUsername,\r\n uniqueCharacter: validateUniqueCharacter,\r\n};\r\n","// export * from './lib/handlers';\r\nexport * from './lib/abstracts';\r\nexport * from './lib/components';\r\nexport * from './lib/constants';\r\nexport * from './lib/core.module';\r\nexport * from './lib/directives';\r\nexport * from './lib/enums';\r\nexport * from './lib/guards';\r\nexport * from './lib/localization.module';\r\nexport * from './lib/models';\r\nexport * from './lib/pipes';\r\nexport * from './lib/providers';\r\nexport * from './lib/proxy/pages/abp/multi-tenancy';\r\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/api-exploring';\r\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/application-configurations';\r\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending';\r\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy';\r\nexport * from './lib/proxy/volo/abp/http/modeling';\r\nexport * from './lib/proxy/volo/abp/localization';\r\nexport * from './lib/proxy/volo/abp/models';\r\nexport * from './lib/services';\r\nexport * from './lib/strategies';\r\nexport * from './lib/tokens';\r\nexport * from './lib/utils';\r\nexport * from './lib/validators';\r\nexport * from './lib/interceptors';\r\nexport * from './lib/clients';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","take","filter","switchMap","distinctUntilChanged"],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.core.mjs","sources":["../../../../packages/core/src/lib/abstracts/ng-model.component.ts","../../../../packages/core/src/lib/abstracts/auth.guard.ts","../../../../packages/core/src/lib/abstracts/auth.service.ts","../../../../packages/core/src/lib/abstracts/auth-error-filter.ts","../../../../packages/core/src/lib/tokens/localization.token.ts","../../../../packages/core/src/lib/tokens/options.token.ts","../../../../packages/core/src/lib/utils/localization-utils.ts","../../../../packages/core/src/lib/utils/string-utils.ts","../../../../packages/core/src/lib/services/content-projection.service.ts","../../../../packages/core/src/lib/utils/array-utils.ts","../../../../packages/core/src/lib/utils/common-utils.ts","../../../../packages/core/src/lib/utils/date-utils.ts","../../../../packages/core/src/lib/utils/object-utils.ts","../../../../packages/core/src/lib/utils/internal-store-utils.ts","../../../../packages/core/src/lib/services/environment.service.ts","../../../../packages/core/src/lib/utils/environment-utils.ts","../../../../packages/core/src/lib/utils/factory-utils.ts","../../../../packages/core/src/lib/utils/file-utils.ts","../../../../packages/core/src/lib/utils/number-utils.ts","../../../../packages/core/src/lib/utils/form-utils.ts","../../../../packages/core/src/lib/utils/generator-utils.ts","../../../../packages/core/src/lib/utils/http-utils.ts","../../../../packages/core/src/lib/services/local-storage.service.ts","../../../../packages/core/src/lib/tokens/app-config.token.ts","../../../../packages/core/src/lib/tokens/cookie-language-key.token.ts","../../../../packages/core/src/lib/tokens/list.token.ts","../../../../packages/core/src/lib/tokens/lodaer-delay.token.ts","../../../../packages/core/src/lib/tokens/manage-profile.token.ts","../../../../packages/core/src/lib/tokens/queue.token.ts","../../../../packages/core/src/lib/tokens/tenant-key.token.ts","../../../../packages/core/src/lib/tokens/include-localization-resources.token.ts","../../../../packages/core/src/lib/tokens/pipe-to-login.token.ts","../../../../packages/core/src/lib/tokens/set-token-response-to-storage.token.ts","../../../../packages/core/src/lib/tokens/check-authentication-state.ts","../../../../packages/core/src/lib/tokens/http-context.token.ts","../../../../packages/core/src/lib/tokens/others-group.token.ts","../../../../packages/core/src/lib/tokens/tenant-not-found-by-name.ts","../../../../packages/core/src/lib/tokens/compare-func.token.ts","../../../../packages/core/src/lib/tokens/dynamic-layout.token.ts","../../../../packages/core/src/lib/tokens/title-strategy-disable-project-name.token.ts","../../../../packages/core/src/lib/tokens/ssr-state.token.ts","../../../../packages/core/src/lib/services/cookie-storage.service.ts","../../../../packages/core/src/lib/services/session-state.service.ts","../../../../packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts","../../../../packages/core/src/lib/services/multi-tenancy.service.ts","../../../../packages/core/src/lib/utils/multi-tenancy-utils.ts","../../../../packages/core/src/lib/utils/initial-utils.ts","../../../../packages/core/src/lib/strategies/cross-origin.strategy.ts","../../../../packages/core/src/lib/strategies/dom.strategy.ts","../../../../packages/core/src/lib/utils/lazy-load-utils.ts","../../../../packages/core/src/lib/utils/queue.ts","../../../../packages/core/src/lib/utils/route-utils.ts","../../../../packages/core/src/lib/utils/tree-utils.ts","../../../../packages/core/src/lib/utils/server-cookie-utils.ts","../../../../packages/core/src/lib/services/dom-insertion.service.ts","../../../../packages/core/src/lib/services/html-encoding.service.ts","../../../../packages/core/src/lib/services/http-error-reporter.service.ts","../../../../packages/core/src/lib/services/http-wait.service.ts","../../../../packages/core/src/lib/services/resource-wait.service.ts","../../../../packages/core/src/lib/services/lazy-load.service.ts","../../../../packages/core/src/lib/services/list.service.ts","../../../../packages/core/src/lib/services/ui-localization.service.ts","../../../../packages/core/src/lib/services/permission.service.ts","../../../../packages/core/src/lib/services/replaceable-components.service.ts","../../../../packages/core/src/lib/clients/http.client.ts","../../../../packages/core/src/lib/services/rest.service.ts","../../../../packages/core/src/lib/services/router-events.service.ts","../../../../packages/core/src/lib/services/router-wait.service.ts","../../../../packages/core/src/lib/services/routes.service.ts","../../../../packages/core/src/lib/services/subscription.service.ts","../../../../packages/core/src/lib/services/track-by.service.ts","../../../../packages/core/src/lib/services/window.service.ts","../../../../packages/core/src/lib/services/internet-connection-service.ts","../../../../packages/core/src/lib/services/local-storage-listener.service.ts","../../../../packages/core/src/lib/services/title-strategy.service.ts","../../../../packages/core/src/lib/services/timezone.service.ts","../../../../packages/core/src/lib/services/time.service.ts","../../../../packages/core/src/lib/strategies/container.strategy.ts","../../../../packages/core/src/lib/strategies/content-security.strategy.ts","../../../../packages/core/src/lib/strategies/content.strategy.ts","../../../../packages/core/src/lib/strategies/context.strategy.ts","../../../../packages/core/src/lib/strategies/loading.strategy.ts","../../../../packages/core/src/lib/strategies/projection.strategy.ts","../../../../packages/core/src/lib/services/dom-strategy.service.ts","../../../../packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts","../../../../packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts","../../../../packages/core/src/lib/services/config-state.service.ts","../../../../packages/core/src/lib/services/localization.service.ts","../../../../packages/core/src/lib/components/dynamic-layout.component.ts","../../../../packages/core/src/lib/components/replaceable-route-container.component.ts","../../../../packages/core/src/lib/components/router-outlet.component.ts","../../../../packages/core/src/lib/constants/different-locales.ts","../../../../packages/core/src/lib/constants/default-layouts.ts","../../../../packages/core/src/lib/directives/autofocus.directive.ts","../../../../packages/core/src/lib/directives/debounce.directive.ts","../../../../packages/core/src/lib/directives/for.directive.ts","../../../../packages/core/src/lib/directives/form-submit.directive.ts","../../../../packages/core/src/lib/directives/init.directive.ts","../../../../packages/core/src/lib/directives/permission.directive.ts","../../../../packages/core/src/lib/directives/replaceable-template.directive.ts","../../../../packages/core/src/lib/directives/stop-propagation.directive.ts","../../../../packages/core/src/lib/directives/show-password.directive.ts","../../../../packages/core/src/lib/directives/caps-lock.directive.ts","../../../../packages/core/src/lib/utils/date-extensions.ts","../../../../packages/core/src/lib/providers/cookie-language.provider.ts","../../../../packages/core/src/lib/providers/locale.provider.ts","../../../../packages/core/src/lib/providers/include-localization-resources.provider.ts","../../../../packages/core/src/lib/handlers/routes.handler.ts","../../../../packages/core/src/lib/interceptors/api.interceptor.ts","../../../../packages/core/src/lib/interceptors/timezone.interceptor.ts","../../../../packages/core/src/lib/interceptors/transfer-state.interceptor.ts","../../../../packages/core/src/lib/providers/core-module-config.provider.ts","../../../../packages/core/src/lib/pipes/localization.pipe.ts","../../../../packages/core/src/lib/pipes/safe-html.pipe.ts","../../../../packages/core/src/lib/pipes/sort.pipe.ts","../../../../packages/core/src/lib/pipes/to-injector.pipe.ts","../../../../packages/core/src/lib/pipes/short-date.pipe.ts","../../../../packages/core/src/lib/pipes/short-time.pipe.ts","../../../../packages/core/src/lib/pipes/short-date-time.pipe.ts","../../../../packages/core/src/lib/pipes/utc-to-local.pipe.ts","../../../../packages/core/src/lib/pipes/async-localization.pipe.ts","../../../../packages/core/src/lib/pipes/lazy-localization.pipe.ts","../../../../packages/core/src/lib/pipes/html-encode.pipe.ts","../../../../packages/core/src/lib/core.module.ts","../../../../packages/core/src/lib/guards/permission.guard.ts","../../../../packages/core/src/lib/localization.module.ts","../../../../packages/core/src/lib/models/dtos.ts","../../../../packages/core/src/lib/models/auth-events.ts","../../../../packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts","../../../../packages/core/src/lib/validators/age.validator.ts","../../../../packages/core/src/lib/validators/credit-card.validator.ts","../../../../packages/core/src/lib/validators/range.validator.ts","../../../../packages/core/src/lib/validators/required.validator.ts","../../../../packages/core/src/lib/validators/string-length.validator.ts","../../../../packages/core/src/lib/validators/unique-character.validator.ts","../../../../packages/core/src/lib/validators/url.validator.ts","../../../../packages/core/src/lib/validators/username.validator.ts","../../../../packages/core/src/lib/validators/index.ts","../../../../packages/core/src/public-api.ts","../../../../packages/core/src/abp-ng.core.ts"],"sourcesContent":["import { ChangeDetectorRef, Component, inject, input } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\n\r\n// Not an abstract class on purpose. Do not change!\r\n@Component({\r\n template: '',\r\n})\r\nexport class AbstractNgModelComponent<T = any, U = T> implements ControlValueAccessor {\r\n protected _value!: T;\r\n protected cdRef = inject(ChangeDetectorRef);\r\n onChange?: (value: T) => void;\r\n onTouched?: () => void;\r\n\r\n // Note: disabled needs to remain as a regular property because setDisabledState assigns to it\r\n disabled?: boolean;\r\n\r\n readonly readonly = input<boolean | undefined>(undefined);\r\n\r\n readonly valueFn = input<(value: U, previousValue?: T) => T>(value => value as any as T);\r\n\r\n readonly valueLimitFn = input<(value: T, previousValue?: T) => any>(value => false);\r\n\r\n // Note: value needs getter/setter for ControlValueAccessor and two-way binding\r\n set value(value: T) {\r\n value = this.valueFn()(value as any as U, this._value);\r\n\r\n if (this.valueLimitFn()(value, this._value) !== false || this.readonly()) return;\r\n\r\n this._value = value;\r\n this.notifyValueChange();\r\n }\r\n\r\n get value(): T {\r\n return this._value || this.defaultValue;\r\n }\r\n\r\n get defaultValue(): T {\r\n return this._value;\r\n }\r\n\r\n notifyValueChange(): void {\r\n if (this.onChange) {\r\n this.onChange(this.value);\r\n }\r\n }\r\n\r\n writeValue(value: T): void {\r\n this._value = this.valueLimitFn()(value, this._value) || value;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { IAbpGuard } from './abstract-guard';\r\nimport { CanActivateFn } from '@angular/router';\r\n\r\n/**\r\n * @deprecated Use `authGuard` *function* instead.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGuard implements IAbpGuard {\r\n canActivate(): Observable<boolean> | boolean | UrlTree {\r\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\r\n return false;\r\n }\r\n}\r\n\r\nexport const authGuard: CanActivateFn = () => {\r\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\r\n return false;\r\n};\r\n\r\n\r\nexport const asyncAuthGuard: CanActivateFn = () => {\r\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\r\n return false;\r\n};\r\n","import { HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Params } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { LoginParams } from '../models/auth';\r\nimport { AbpAuthResponse } from './auth-response.model';\r\n\r\n/**\r\n * Abstract service for Authentication.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService implements IAuthService {\r\n private warningMessage() {\r\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\r\n }\r\n\r\n get oidc(): boolean {\r\n this.warningMessage();\r\n return false;\r\n }\r\n\r\n set oidc(value: boolean) {\r\n this.warningMessage();\r\n }\r\n\r\n init(): Promise<any> {\r\n this.warningMessage();\r\n return Promise.resolve(undefined);\r\n }\r\n\r\n login(params: LoginParams): Observable<any> {\r\n this.warningMessage();\r\n return of(undefined);\r\n }\r\n\r\n logout(queryParams?: Params): Observable<any> {\r\n this.warningMessage();\r\n return of(undefined);\r\n }\r\n\r\n navigateToLogin(queryParams?: Params): void { }\r\n\r\n get isInternalAuth(): boolean {\r\n throw new Error('not implemented');\r\n }\r\n\r\n get isAuthenticated(): boolean {\r\n this.warningMessage();\r\n return false;\r\n }\r\n\r\n loginUsingGrant(\r\n grantType: string,\r\n parameters: object,\r\n headers?: HttpHeaders,\r\n ): Promise<AbpAuthResponse> {\r\n console.log({ grantType, parameters, headers });\r\n return Promise.reject(new Error('not implemented'));\r\n }\r\n\r\n getAccessTokenExpiration(): number {\r\n this.warningMessage();\r\n return 0;\r\n }\r\n\r\n getRefreshToken(): string {\r\n this.warningMessage();\r\n return '';\r\n }\r\n\r\n getAccessToken(): string {\r\n this.warningMessage();\r\n return '';\r\n }\r\n\r\n refreshToken(): Promise<AbpAuthResponse> {\r\n this.warningMessage();\r\n return Promise.resolve(undefined);\r\n }\r\n}\r\n\r\nexport interface IAuthService {\r\n oidc: boolean;\r\n\r\n get isInternalAuth(): boolean;\r\n\r\n get isAuthenticated(): boolean;\r\n\r\n init(): Promise<any>;\r\n\r\n logout(queryParams?: Params): Observable<any>;\r\n\r\n navigateToLogin(queryParams?: Params): void;\r\n\r\n login(params: LoginParams): Observable<any>;\r\n\r\n loginUsingGrant(\r\n grantType: string,\r\n parameters: object,\r\n headers?: HttpHeaders,\r\n ): Promise<AbpAuthResponse>;\r\n\r\n getAccessTokenExpiration(): number;\r\n\r\n getRefreshToken(): string;\r\n\r\n getAccessToken(): string;\r\n\r\n refreshToken(): Promise<AbpAuthResponse | void>;\r\n}\r\n","import { AuthErrorEvent, AuthErrorFilter } from '../models';\r\n\r\nexport abstract class AbstractAuthErrorFilter<T, E> {\r\n abstract get(id: string): T;\r\n abstract add(filter: T): void;\r\n abstract patch(item: Partial<T>): void;\r\n abstract remove(id: string): void;\r\n abstract run(event: E): boolean;\r\n}\r\n\r\nexport class AuthErrorFilterService<\r\n T = AuthErrorFilter,\r\n E = AuthErrorEvent,\r\n> extends AbstractAuthErrorFilter<T, E> {\r\n private warningMessage() {\r\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\r\n }\r\n\r\n get(id: string): T {\r\n this.warningMessage();\r\n throw new Error('not implemented');\r\n }\r\n\r\n add(filter: T): void {\r\n this.warningMessage();\r\n }\r\n\r\n patch(item: Partial<T>): void {\r\n this.warningMessage();\r\n }\r\n\r\n remove(id: string): void {\r\n this.warningMessage();\r\n }\r\n\r\n run(event: E): boolean {\r\n this.warningMessage();\r\n throw new Error('not implemented');\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ABP } from '../models/common';\r\n\r\nexport const LOCALIZATIONS = new InjectionToken('LOCALIZATIONS');\r\n\r\nexport function localizationContributor(localizations?: ABP.Localization[]) {\r\n if (localizations) {\r\n localizations$.next([...localizations$.value, ...localizations]);\r\n }\r\n}\r\n\r\nexport const localizations$ = new BehaviorSubject<ABP.Localization[]>([]);\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ABP } from '../models/common';\r\n\r\nexport const CORE_OPTIONS = new InjectionToken<ABP.Root>('CORE_OPTIONS');\r\n\r\nexport function coreOptionsFactory({ ...options }: ABP.Root) {\r\n return {\r\n ...options,\r\n } as ABP.Root;\r\n}\r\n","import { ApplicationLocalizationConfigurationDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models';\r\n\r\n// This will not be necessary when only Angukar 9.1+ is supported\r\nexport function getLocaleDirection(locale: string): 'ltr' | 'rtl' {\r\n return /^(ar(-[A-Z]{2})?|ckb(-IR)?|fa(-AF)?|he|ks|lrc(-IQ)?|mzn|pa-Arab|ps(-PK)?|sd|ug|ur(-IN)?|uz-Arab|yi)$/.test(\r\n locale,\r\n )\r\n ? 'rtl'\r\n : 'ltr';\r\n}\r\n\r\nexport function createLocalizer(localization: ApplicationLocalizationConfigurationDto) {\r\n return (resourceName: string, key: string, defaultValue: string | null) => {\r\n if (resourceName === '_') return key;\r\n\r\n const resource = localization?.values?.[resourceName];\r\n\r\n if (!resource) return defaultValue;\r\n\r\n return resource[key] || defaultValue;\r\n };\r\n}\r\n\r\nexport function createLocalizerWithFallback(localization: ApplicationLocalizationConfigurationDto) {\r\n const findLocalization = createLocalizationFinder(localization);\r\n\r\n return (resourceNames: string[], keys: string[], defaultValue: string) => {\r\n const { localized } = findLocalization(resourceNames, keys);\r\n return localized || defaultValue;\r\n };\r\n}\r\n\r\nexport function createLocalizationPipeKeyGenerator(\r\n localization: ApplicationLocalizationConfigurationDto,\r\n) {\r\n const findLocalization = createLocalizationFinder(localization);\r\n\r\n return (resourceNames: string[], keys: string[], defaultKey: string | undefined) => {\r\n const { resourceName, key } = findLocalization(resourceNames, keys);\r\n return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`;\r\n };\r\n}\r\n\r\nfunction createLocalizationFinder(localization: ApplicationLocalizationConfigurationDto) {\r\n const localize = createLocalizer(localization);\r\n\r\n return (resourceNames: string[], keys: string[]) => {\r\n resourceNames = resourceNames.concat(localization.defaultResourceName || '').filter(Boolean);\r\n\r\n const resourceCount = resourceNames.length;\r\n const keyCount = keys.length;\r\n\r\n for (let i = 0; i < resourceCount; i++) {\r\n const resourceName = resourceNames[i];\r\n\r\n for (let j = 0; j < keyCount; j++) {\r\n const key = keys[j];\r\n const localized = localize(resourceName, key, null);\r\n if (localized) return { resourceName, key, localized };\r\n }\r\n }\r\n\r\n return { resourceName: undefined, key: undefined, localized: undefined };\r\n };\r\n}\r\n","export function createTokenParser(format: string) {\r\n return (str: string) => {\r\n const tokens: string[] = [];\r\n const regex = format.replace(/\\./g, '\\\\.').replace(/\\{\\s?([0-9a-zA-Z]+)\\s?\\}/g, (_, token) => {\r\n tokens.push(token);\r\n return '(.+)';\r\n });\r\n\r\n const matches = (str.match(regex) || []).slice(1);\r\n\r\n return matches.reduce((acc, v, i) => {\r\n const key = tokens[i];\r\n acc[key] = [...(acc[key] || []), v].filter(Boolean);\r\n return acc;\r\n }, {} as Record<string, string[]>);\r\n };\r\n}\r\n\r\nexport function interpolate(text: string, params: string[]) {\r\n return text\r\n .replace(/(['\"])?\\{\\s*(\\d+)\\s*\\}\\1/g, (_, quote, digit) => \r\n (quote ? quote : '') + (params[digit] ?? `{${digit}}`) + (quote ? quote : '')\r\n )\r\n .replace(/\\s+/g, ' ');\r\n}\r\n\r\nexport function escapeHtmlChars(value: any) {\r\n return value && typeof value === 'string'\r\n ? value\r\n .replace(/&/g, '&amp;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n : value;\r\n}\r\n","import { Injectable, Injector, TemplateRef, Type, inject } from '@angular/core';\r\nimport { ProjectionStrategy } from '../strategies/projection.strategy';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ContentProjectionService {\r\n private injector = inject(Injector);\r\n\r\n\r\n projectContent<T extends Type<any> | TemplateRef<any>>(\r\n projectionStrategy: ProjectionStrategy<T>,\r\n injector = this.injector,\r\n ) {\r\n return projectionStrategy.injectContent(injector);\r\n }\r\n}\r\n","export function pushValueTo<T>(array: T[]) {\r\n return (element: T) => {\r\n array.push(element);\r\n return array;\r\n };\r\n}\r\n","export function noop() {\r\n const fn = function () {};\r\n return fn;\r\n}\r\n\r\nexport function isUndefinedOrEmptyString(value: unknown): boolean {\r\n return value === undefined || value === '';\r\n}\r\n\r\nexport function isNullOrUndefined<T>(obj: T) {\r\n return obj === null || obj === undefined;\r\n}\r\n\r\nexport function isNullOrEmpty<T>(obj: T): boolean {\r\n return obj === null || obj === undefined || obj === '';\r\n}\r\n\r\nexport function exists<T>(obj: T): obj is T {\r\n return !isNullOrUndefined(obj);\r\n}\r\n\r\nexport function isObject<T>(obj: T): boolean {\r\n return obj instanceof Object;\r\n}\r\n\r\nexport function isArray<T>(obj: T): boolean {\r\n return Array.isArray(obj);\r\n}\r\n\r\nexport function isObjectAndNotArray<T>(obj: T): boolean {\r\n return isObject(obj) && !isArray(obj);\r\n}\r\n\r\nexport function isNode<T>(obj: T): boolean {\r\n return obj instanceof Node;\r\n}\r\n\r\nexport function isObjectAndNotArrayNotNode<T>(obj: T): boolean {\r\n return isObjectAndNotArray(obj) && !isNode(obj);\r\n}\r\n\r\nexport function checkHasProp<T>(object: T, key: string | keyof T): key is keyof T {\r\n return Object.prototype.hasOwnProperty.call(object, key);\r\n}\r\n","import { DateTimeFormatDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models';\r\nimport { ConfigStateService } from '../services';\r\n\r\nexport function getShortDateFormat(configStateService: ConfigStateService) {\r\n const dateTimeFormat = configStateService.getDeep(\r\n 'localization.currentCulture.dateTimeFormat',\r\n ) as DateTimeFormatDto;\r\n\r\n return dateTimeFormat.shortDatePattern;\r\n}\r\n\r\nexport function getShortTimeFormat(configStateService: ConfigStateService) {\r\n const dateTimeFormat = configStateService.getDeep(\r\n 'localization.currentCulture.dateTimeFormat',\r\n ) as DateTimeFormatDto;\r\n return dateTimeFormat?.shortTimePattern?.replace('tt', 'a');\r\n}\r\n\r\nexport function getShortDateShortTimeFormat(configStateService: ConfigStateService) {\r\n const dateTimeFormat = configStateService.getDeep(\r\n 'localization.currentCulture.dateTimeFormat',\r\n ) as DateTimeFormatDto;\r\n\r\n return `${dateTimeFormat.shortDatePattern} ${dateTimeFormat?.shortTimePattern?.replace('tt', 'a')}`;\r\n}\r\n","import {\r\n exists,\r\n isArray,\r\n isNode,\r\n isNullOrUndefined,\r\n isObject,\r\n isObjectAndNotArrayNotNode,\r\n} from './common-utils';\r\nimport { DeepPartial } from '../models';\r\n\r\nexport function deepMerge<T>(\r\n target: DeepPartial<T> | T,\r\n source: DeepPartial<T> | T,\r\n): DeepPartial<T> | T {\r\n if (isObjectAndNotArrayNotNode(target) && isObjectAndNotArrayNotNode(source)) {\r\n return deepMergeRecursively(target, source);\r\n } else if (isNullOrUndefined(target) && isNullOrUndefined(source)) {\r\n return {} as T;\r\n } else {\r\n return exists(source) ? (source as T) : target;\r\n }\r\n}\r\n\r\nfunction deepMergeRecursively<T>(\r\n target: DeepPartial<T> | T,\r\n source: DeepPartial<T> | T,\r\n): DeepPartial<T> | T {\r\n const shouldNotRecurse =\r\n isNullOrUndefined(target) ||\r\n isNullOrUndefined(source) || // at least one not defined\r\n isArray(target) ||\r\n isArray(source) || // at least one array\r\n !isObject(target) ||\r\n !isObject(source) || // at least one not an object\r\n isNode(target) ||\r\n isNode(source); // at least one node\r\n\r\n /**\r\n * if we will not recurse any further,\r\n * we will prioritize source if it is a defined value.\r\n */\r\n if (shouldNotRecurse) {\r\n return exists(source) ? (source as T) : target;\r\n }\r\n\r\n const keysOfTarget = Object.keys(target as { [key: string]: any });\r\n const keysOfSource = Object.keys(source as { [key: string]: any });\r\n const uniqueKeys = new Set(keysOfTarget.concat(keysOfSource));\r\n return [...uniqueKeys].reduce((retVal, key) => {\r\n (retVal as any)[key] = deepMergeRecursively(\r\n (target as { [key: string]: any })[key],\r\n (source as { [key: string]: any })[key],\r\n );\r\n return retVal;\r\n }, {} as T);\r\n}\r\n","import compare from 'just-compare';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { DeepPartial } from '../models';\r\nimport { deepMerge } from './object-utils';\r\n\r\nexport class InternalStore<State> {\r\n private state$ = new BehaviorSubject<State>(this.initialState);\r\n\r\n private update$ = new Subject<DeepPartial<State>>();\r\n\r\n get state() {\r\n return this.state$.value;\r\n }\r\n\r\n sliceState = <Slice>(\r\n selector: (state: State) => Slice,\r\n compareFn: (s1: Slice, s2: Slice) => boolean = compare,\r\n ) => this.state$.pipe(map(selector), distinctUntilChanged(compareFn));\r\n\r\n sliceUpdate = <Slice>(\r\n selector: (state: DeepPartial<State>) => Slice,\r\n filterFn = (x: Slice) => x !== undefined,\r\n ) => this.update$.pipe(map(selector), filter(filterFn));\r\n\r\n constructor(private initialState: State) {}\r\n\r\n patch(state: Partial<State>) {\r\n let patchedState = state as State;\r\n\r\n if (typeof state === 'object' && !Array.isArray(state)) {\r\n patchedState = { ...this.state, ...state };\r\n }\r\n\r\n this.state$.next(patchedState);\r\n this.update$.next(patchedState as DeepPartial<State>);\r\n }\r\n\r\n deepPatch(state: DeepPartial<State>) {\r\n // TODO: Strict improve deepMerge\r\n this.state$.next(deepMerge(this.state, state) as State);\r\n this.update$.next(state);\r\n }\r\n\r\n set(state: State) {\r\n this.state$.next(state);\r\n this.update$.next(state as DeepPartial<State>);\r\n }\r\n\r\n reset() {\r\n this.set(this.initialState);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Apis, Environment } from '../models/environment';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\n\r\nconst mapToApiUrl = (key: string | undefined) => (apis: Apis) =>\r\n ((key && apis[key]) || apis.default).url || apis.default.url;\r\n\r\nconst mapToIssuer = (issuer: string | undefined) => {\r\n if (!issuer) {\r\n return issuer;\r\n }\r\n return issuer.endsWith('/') ? issuer : issuer + '/';\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class EnvironmentService {\r\n private readonly store = new InternalStore({} as Environment);\r\n\r\n get createOnUpdateStream() {\r\n return this.store.sliceUpdate;\r\n }\r\n\r\n getEnvironment$(): Observable<Environment> {\r\n return this.store.sliceState(state => state);\r\n }\r\n\r\n getEnvironment(): Environment {\r\n return this.store.state;\r\n }\r\n\r\n getApiUrl(key: string | undefined) {\r\n return mapToApiUrl(key)(this.store.state?.apis);\r\n }\r\n\r\n getApiUrl$(key: string) {\r\n return this.store.sliceState(state => state.apis).pipe(map(mapToApiUrl(key)));\r\n }\r\n\r\n setState(environment: Environment) {\r\n this.store.set(environment);\r\n }\r\n\r\n getIssuer() {\r\n const issuer = this.store.state?.oAuthConfig?.issuer;\r\n\r\n return mapToIssuer(issuer);\r\n }\r\n\r\n getIssuer$() {\r\n return this.store.sliceState(state => state?.oAuthConfig?.issuer).pipe(map(mapToIssuer));\r\n }\r\n\r\n getImpersonation() {\r\n return this.store.state?.oAuthConfig?.impersonation || {};\r\n }\r\n\r\n getImpersonation$() {\r\n return this.store.sliceState(state => state?.oAuthConfig?.impersonation || {});\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injector, isDevMode } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { Environment, RemoteEnv } from '../models/environment';\r\nimport { EnvironmentService } from '../services/environment.service';\r\nimport { deepMerge } from './object-utils';\r\n\r\nexport function getRemoteEnv(injector: Injector, environment: Partial<Environment>) {\r\n const environmentService = injector.get(EnvironmentService);\r\n\r\n const { remoteEnv } = environment;\r\n const { headers = {}, method = 'GET', url } = remoteEnv || ({} as RemoteEnv);\r\n if (!url) return Promise.resolve();\r\n\r\n const http = injector.get(HttpClient);\r\n\r\n return http\r\n .request<Environment>(method, url, { headers })\r\n .pipe(\r\n catchError(err => {\r\n if (isDevMode()) {\r\n console.warn(\r\n `[ABP Environment] Failed to fetch remote environment from \"${url}\". ` +\r\n `Error: ${err.message || err}\\n` +\r\n `See https://abp.io/docs/latest/framework/ui/angular/environment#example-remoteenv-configuration for configuration details.`,\r\n );\r\n }\r\n return of(null);\r\n }),\r\n tap(env =>\r\n environmentService.setState(\r\n mergeEnvironments(environment, env || ({} as Environment), remoteEnv as RemoteEnv),\r\n ),\r\n ),\r\n )\r\n .toPromise();\r\n}\r\n\r\nfunction mergeEnvironments(\r\n local: Partial<Environment>,\r\n remote: Environment,\r\n config: RemoteEnv,\r\n): Environment {\r\n switch (config.mergeStrategy) {\r\n case 'deepmerge':\r\n return deepMerge(local, remote) as Environment;\r\n case 'overwrite':\r\n case null:\r\n case undefined:\r\n return remote;\r\n default:\r\n return config.mergeStrategy(local, remote);\r\n }\r\n}\r\n","import {\r\n Compiler,\r\n Injector,\r\n ModuleWithProviders,\r\n NgModuleFactory,\r\n NgModuleRef,\r\n StaticProvider,\r\n Type,\r\n} from '@angular/core';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { ConfigStateService } from '../services/config-state.service';\r\n\r\nexport class LazyModuleFactory<T> extends NgModuleFactory<T> {\r\n get moduleType(): Type<T> {\r\n return this.moduleWithProviders.ngModule;\r\n }\r\n\r\n constructor(private moduleWithProviders: ModuleWithProviders<T>) {\r\n super();\r\n }\r\n\r\n create(parentInjector: Injector | null): NgModuleRef<T> {\r\n const injector = Injector.create({\r\n ...(parentInjector && { parent: parentInjector }),\r\n providers: this.moduleWithProviders.providers as StaticProvider[],\r\n });\r\n\r\n const compiler = injector.get(Compiler);\r\n const factory = compiler.compileModuleSync(this.moduleType);\r\n\r\n return factory.create(injector);\r\n }\r\n}\r\n\r\nexport function featuresFactory(\r\n configState: ConfigStateService,\r\n featureKeys: string[],\r\n mapFn: (features: { [key: string]: string }) => any = features => features,\r\n) {\r\n return configState.getFeatures$(featureKeys).pipe(filter(Boolean), map(mapFn));\r\n}\r\n","/** @deprecated the method will change in v8.0 */ \r\nexport function downloadBlob(blob: Blob, filename: string) {\r\n const blobUrl = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n\r\n link.href = blobUrl;\r\n link.download = filename;\r\n\r\n document.body.appendChild(link);\r\n\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window,\r\n }),\r\n );\r\n\r\n document.body.removeChild(link);\r\n}\r\n","export function isNumber(value: string | number): boolean {\r\n return value == Number(value);\r\n}\r\n","import { ABP } from '../models/common';\r\nimport { isNumber } from './number-utils';\r\n\r\nexport function mapEnumToOptions<T>(_enum: T): ABP.Option<T>[] {\r\n const options: ABP.Option<T>[] = [];\r\n\r\n for (const member in _enum)\r\n if (!isNumber(member))\r\n options.push({\r\n key: member,\r\n value: _enum[member],\r\n });\r\n\r\n return options;\r\n}\r\n","import { Injector } from '@angular/core';\r\nimport { ABP } from '../models';\r\nimport { ConfigStateService } from '../services';\r\n\r\nexport function uuid(a?: any): string {\r\n return a\r\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\r\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\r\n}\r\n\r\nexport function generateHash(value: string): number {\r\n let hashed = 0;\r\n let charCode: number;\r\n\r\n for (let i = 0; i < value.length; i++) {\r\n charCode = value.charCodeAt(i);\r\n hashed = (hashed << 5) - hashed + charCode;\r\n hashed |= 0;\r\n }\r\n return hashed;\r\n}\r\n\r\nexport function generatePassword(injector?: Injector, length = 8) {\r\n if (injector) {\r\n length = getRequiredPasswordLength(injector);\r\n }\r\n\r\n length = Math.min(Math.max(4, length), 128);\r\n\r\n const lowers = 'abcdefghjkmnpqrstuvwxyz';\r\n const uppers = 'ABCDEFGHJKMNPQRSTUVWXYZ';\r\n const numbers = '23456789';\r\n const specials = '!*_#/+-.';\r\n const all = lowers + uppers + numbers + specials;\r\n\r\n const getRandom = (chrSet: string) => chrSet[Math.floor(Math.random() * chrSet.length)];\r\n\r\n const password = Array({ length });\r\n password[0] = getRandom(lowers);\r\n password[1] = getRandom(uppers);\r\n password[2] = getRandom(numbers);\r\n password[3] = getRandom(specials);\r\n\r\n for (let i = 4; i < length; i++) {\r\n password[i] = getRandom(all);\r\n }\r\n\r\n return password.sort(() => 0.5 - Math.random()).join('');\r\n}\r\n\r\nfunction getRequiredPasswordLength(injector: Injector) {\r\n const configState = injector.get(ConfigStateService);\r\n const passwordRules: ABP.Dictionary<string> = configState.getSettings('Identity.Password');\r\n return Number(passwordRules['Abp.Identity.Password.RequiredLength']) || 8;\r\n}\r\n","import { HttpParameterCodec } from '@angular/common/http';\r\n\r\nexport function getPathName(url: string): string {\r\n const { pathname } = new URL(url, window.location.origin);\r\n return pathname;\r\n}\r\n\r\nexport class WebHttpUrlEncodingCodec implements HttpParameterCodec {\r\n encodeKey(k: string): string {\r\n return encodeURIComponent(k);\r\n }\r\n\r\n encodeValue(v: string): string {\r\n return encodeURIComponent(v);\r\n }\r\n\r\n decodeKey(k: string): string {\r\n return decodeURIComponent(k);\r\n }\r\n\r\n decodeValue(v: string) {\r\n return decodeURIComponent(v);\r\n }\r\n}\r\n","import { inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpLocalStorageService implements Storage {\r\n private platformId = inject(PLATFORM_ID);\r\n\r\n constructor() {\r\n }\r\n [name: string]: any;\r\n get length(): number {\r\n return isPlatformBrowser(this.platformId) ? localStorage.length : 0;\r\n }\r\n\r\n clear(): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n localStorage.clear();\r\n }\r\n }\r\n getItem(key: string): string | null {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return null;\r\n }\r\n return localStorage.getItem(key);\r\n }\r\n key(index: number): string | null {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return null;\r\n }\r\n return localStorage.key(index);\r\n }\r\n removeItem(key: string): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n localStorage.removeItem(key);\r\n }\r\n }\r\n setItem(key: string, value: string): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n localStorage.setItem(key, value);\r\n }\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport type AppInitErrorFn = (error: any) => void;\r\n\r\nexport const APP_INIT_ERROR_HANDLERS = new InjectionToken<AppInitErrorFn[]>(\r\n 'APP_INIT_ERROR_HANDLERS',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const COOKIE_LANGUAGE_KEY = new InjectionToken<string>('COOKIE_LANGUAGE_KEY', {\r\n factory: () => '.AspNetCore.Culture',\r\n});\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const LIST_QUERY_DEBOUNCE_TIME = new InjectionToken<number>('LIST_QUERY_DEBOUNCE_TIME');\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const LOADER_DELAY = new InjectionToken<number>('LOADER_DELAY');\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const NAVIGATE_TO_MANAGE_PROFILE = new InjectionToken<() => void>(\r\n 'NAVIGATE_TO_MANAGE_PROFILE',\r\n);\r\n","import { QueueManager } from \"../utils/queue\";\r\nimport { InjectionToken } from \"@angular/core\";\r\n\r\nexport const QUEUE_MANAGER = new InjectionToken<QueueManager>(\"QUEUE_MANAGER\");\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const TENANT_KEY = new InjectionToken<string>('TENANT_KEY');\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const INCUDE_LOCALIZATION_RESOURCES_TOKEN = new InjectionToken<boolean>(\r\n 'INCUDE_LOCALIZATION_RESOURCES_TOKEN',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\nimport { PipeToLoginFn } from '../models/auth';\r\n\r\nexport const PIPE_TO_LOGIN_FN_KEY = new InjectionToken<PipeToLoginFn>('PIPE_TO_LOGIN_FN_KEY');\r\n","import { InjectionToken } from '@angular/core';\r\nimport { SetTokenResponseToStorageFn } from '../models';\r\n\r\n/**\r\n * @deprecated The token should not be used anymore. \r\n */\r\nexport const SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY = new InjectionToken<SetTokenResponseToStorageFn>(\r\n 'SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\nimport { CheckAuthenticationStateFn } from '../models/auth';\r\n\r\nexport const CHECK_AUTHENTICATION_STATE_FN_KEY = new InjectionToken<CheckAuthenticationStateFn>(\r\n 'CHECK_AUTHENTICATION_STATE_FN_KEY',\r\n);\r\n","import { HttpContextToken } from '@angular/common/http';\r\n\r\nexport const IS_EXTERNAL_REQUEST = new HttpContextToken<boolean>(() => false);\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const OTHERS_GROUP = new InjectionToken<string>('OTHERS_GROUP');\r\n","import { InjectionToken } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nexport const TENANT_NOT_FOUND_BY_NAME = new InjectionToken<\r\n (HttpErrorResponse: HttpErrorResponse) => void\r\n>('TENANT_NOT_FOUND_BY_NAME');\r\n","import { InjectionToken, inject } from '@angular/core';\r\nimport type { SortableItem } from '../models';\r\nimport { LocalizationService } from '../services';\r\n\r\nexport const SORT_COMPARE_FUNC = new InjectionToken<(a: SortableItem, b: SortableItem) => number>(\r\n 'SORT_COMPARE_FUNC',\r\n);\r\n\r\nexport function compareFuncFactory() {\r\n const localizationService = inject(LocalizationService);\r\n const fn = (a: SortableItem, b: SortableItem) => {\r\n const aNumber = a.order;\r\n const bNumber = b.order;\r\n\r\n if (aNumber > bNumber) return 1;\r\n if (aNumber < bNumber) return -1;\r\n\r\n if (a.id > b.id) return 1;\r\n if (a.id < b.id) return -1;\r\n\r\n if (!Number.isInteger(aNumber)) return 1;\r\n if (!Number.isInteger(bNumber)) return -1;\r\n\r\n const aName = localizationService.instant(a.name);\r\n const bName = localizationService.instant(b.name);\r\n\r\n if (aName > bName) return 1;\r\n if (aName < bName) return -1;\r\n\r\n return 0;\r\n };\r\n\r\n return fn;\r\n}\r\n","import {InjectionToken} from \"@angular/core\";\r\n\r\n export const DYNAMIC_LAYOUTS_TOKEN = new InjectionToken<Map<string, string>>('DYNAMIC_LAYOUTS')\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const DISABLE_PROJECT_NAME = new InjectionToken<boolean>('DISABLE_APP_NAME');\r\n","import { inject, InjectionToken, makeStateKey, PLATFORM_ID, TransferState } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { AbpCookieStorageService } from '../services';\r\n\r\nexport const SSR_FLAG = makeStateKey<boolean>('SSR_FLAG');\r\n\r\nexport const APP_STARTED_WITH_SSR = new InjectionToken<boolean>('APP_STARTED_WITH_SSR', {\r\n providedIn: 'root',\r\n factory: () => {\r\n const platformId = inject(PLATFORM_ID);\r\n const cookieService = inject(AbpCookieStorageService);\r\n if (!isPlatformBrowser(platformId)) return true;\r\n const ts = inject(TransferState);\r\n const ssrEnabled = cookieService.getItem('ssr-init');\r\n // Remove the cookie after reading its value because it's only needed once\r\n cookieService.removeItem('ssr-init');\r\n return ts.get(SSR_FLAG, false) || ssrEnabled === 'true';\r\n },\r\n});\r\n","import { Injectable, PLATFORM_ID, inject, REQUEST } from '@angular/core';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AbpCookieStorageService implements Storage {\r\n private platformId = inject(PLATFORM_ID);\r\n private document = inject(DOCUMENT);\r\n private request = inject(REQUEST);\r\n\r\n get length(): number {\r\n return isPlatformBrowser(this.platformId) ? this.keys().length : this.getCookiesFromRequest()?.size ?? 0;\r\n }\r\n\r\n clear(): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.keys().forEach(k => this.removeItem(k));\r\n }\r\n\r\n getItem(key: string): string | null {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return this.getCookiesFromRequest()?.get(key) ?? null;\r\n }\r\n const name = key + '=';\r\n const parts = (this.document.cookie || '').split('; ');\r\n for (const p of parts) {\r\n if (p.startsWith(name)) {\r\n return decodeURIComponent(p.slice(name.length));\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n key(index: number): string | null {\r\n if (!isPlatformBrowser(this.platformId)) return null;\r\n return this.keys()[index] ?? null;\r\n }\r\n\r\n removeItem(key: string): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, '', { 'max-age': -1, path: '/' });\r\n }\r\n\r\n setItem(key: string, value: string): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, encodeURIComponent(value), {\r\n path: '/',\r\n sameSite: 'Lax',\r\n secure: true,\r\n });\r\n }\r\n\r\n setItemWithExpiry(key: string, value: string, seconds: number): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, encodeURIComponent(value), {\r\n path: '/',\r\n sameSite: 'Lax',\r\n secure: true,\r\n 'max-age': Math.max(0, Math.floor(seconds)),\r\n });\r\n }\r\n\r\n private keys(): string[] {\r\n const raw = (this.document.cookie || '').split('; ').filter(Boolean);\r\n return raw\r\n .map(c => decodeURIComponent(c.split('=')[0]));\r\n }\r\n\r\n private setCookie(name: string, value: string, opts: {\r\n path?: string;\r\n domain?: string;\r\n secure?: boolean;\r\n sameSite?: 'Lax' | 'Strict' | 'None';\r\n expires?: Date;\r\n 'max-age'?: number;\r\n }) {\r\n let s = `${name}=${value}`;\r\n if (opts.path) s += `; Path=${opts.path}`;\r\n if (opts.domain) s += `; Domain=${opts.domain}`;\r\n if (opts.sameSite) s += `; SameSite=${opts.sameSite}`;\r\n if (opts.secure) s += `; Secure`;\r\n if (opts.expires) s += `; Expires=${opts.expires.toUTCString()}`;\r\n if (typeof opts['max-age'] === 'number') s += `; Max-Age=${opts['max-age']}`;\r\n this.document.cookie = s;\r\n }\r\n\r\n private getCookiesFromRequest(): Map<string, string> {\r\n const cookies = new Map<string, string>();\r\n const cookieHeader = this.request?.headers.get('cookie') ?? '';\r\n for (const part of cookieHeader.split(';')) {\r\n const i = part.indexOf('=');\r\n if (i > -1) {\r\n const k = part.slice(0, i).trim();\r\n const v = decodeURIComponent(part.slice(i + 1).trim());\r\n cookies.set(k, v);\r\n }\r\n }\r\n return cookies;\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport compare from 'just-compare';\r\nimport { filter, take } from 'rxjs/operators';\r\nimport { Session } from '../models/session';\r\nimport { CurrentTenantDto } from '../proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\nimport { ConfigStateService } from './config-state.service';\r\nimport { AbpLocalStorageService } from './local-storage.service';\r\nimport { APP_STARTED_WITH_SSR } from '../tokens';\r\nimport { AbpCookieStorageService } from './cookie-storage.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SessionStateService {\r\n private configState = inject(ConfigStateService);\r\n private localStorageService = inject(AbpLocalStorageService);\r\n private appStartedWithSSR = inject(APP_STARTED_WITH_SSR, { optional: true });\r\n private cookieStorageService = inject(AbpCookieStorageService);\r\n\r\n private readonly store = new InternalStore({} as Session.State);\r\n protected readonly document = inject(DOCUMENT);\r\n\r\n private updateLocalStorage = () => {\r\n if (this.appStartedWithSSR) {\r\n this.cookieStorageService.setItem('abpSession', JSON.stringify(this.store.state));\r\n } else {\r\n this.localStorageService.setItem('abpSession', JSON.stringify(this.store.state));\r\n }\r\n };\r\n\r\n constructor() {\r\n this.init();\r\n this.setInitialLanguage();\r\n }\r\n\r\n private init() {\r\n const storageService = this.appStartedWithSSR ? this.cookieStorageService : this.localStorageService;\r\n const session = storageService.getItem('abpSession');\r\n if (session) {\r\n this.store.set(JSON.parse(session));\r\n }\r\n this.store.sliceUpdate(state => state).subscribe(this.updateLocalStorage);\r\n }\r\n\r\n private setInitialLanguage() {\r\n const appLanguage = this.getLanguage();\r\n\r\n this.configState\r\n .getDeep$('localization.currentCulture.cultureName')\r\n .pipe(\r\n filter(cultureName => !!cultureName),\r\n take(1),\r\n )\r\n .subscribe(lang => {\r\n if (lang.includes(';')) {\r\n lang = lang.split(';')[0];\r\n }\r\n\r\n this.setLanguage(lang);\r\n });\r\n }\r\n\r\n onLanguageChange$() {\r\n return this.store.sliceUpdate(state => state.language);\r\n }\r\n\r\n onTenantChange$() {\r\n return this.store.sliceUpdate(state => state.tenant);\r\n }\r\n\r\n getLanguage() {\r\n return this.store.state.language;\r\n }\r\n\r\n getLanguage$() {\r\n return this.store.sliceState(state => state.language);\r\n }\r\n\r\n getTenant() {\r\n return this.store.state.tenant;\r\n }\r\n\r\n getTenant$() {\r\n return this.store.sliceState(state => state.tenant);\r\n }\r\n\r\n setTenant(tenant: CurrentTenantDto | null) {\r\n if (compare(tenant, this.store.state.tenant)) return;\r\n\r\n this.store.set({ ...this.store.state, tenant });\r\n }\r\n\r\n setLanguage(language: string) {\r\n const currentLanguage = this.store.state.language;\r\n\r\n if (language !== currentLanguage) {\r\n this.store.patch({ language });\r\n }\r\n\r\n const currentAttribute = this.document.documentElement.getAttribute('lang');\r\n if (language !== currentAttribute) {\r\n this.document.documentElement.setAttribute('lang', language);\r\n }\r\n }\r\n}\r\n","import { RestService } from '../../../../services';\r\nimport { Rest } from '../../../../models';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport type { FindTenantResultDto } from '../../../volo/abp/asp-net-core/mvc/multi-tenancy/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpTenantService {\n private restService = inject(RestService);\n\r\n apiName = 'abp';\r\n \r\n\r\n findTenantById = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FindTenantResultDto>({\r\n method: 'GET',\r\n url: `/api/abp/multi-tenancy/tenants/by-id/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n findTenantByName = (name: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FindTenantResultDto>({\r\n method: 'GET',\r\n url: `/api/abp/multi-tenancy/tenants/by-name/${name}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { AbpTenantService } from '../proxy/pages/abp/multi-tenancy';\r\nimport {\r\n CurrentTenantDto,\r\n FindTenantResultDto,\r\n} from '../proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models';\r\nimport { TENANT_KEY } from '../tokens/tenant-key.token';\r\nimport { ConfigStateService } from './config-state.service';\r\nimport { SessionStateService } from './session-state.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MultiTenancyService {\r\n private sessionState = inject(SessionStateService);\r\n private tenantService = inject(AbpTenantService);\r\n private configStateService = inject(ConfigStateService);\r\n tenantKey = inject(TENANT_KEY);\r\n\r\n domainTenant: CurrentTenantDto | null = null;\r\n\r\n isTenantBoxVisible = true;\r\n\r\n apiName = 'abp';\r\n\r\n private setTenantToState = (tenant: FindTenantResultDto) => {\r\n this.sessionState.setTenant({ id: tenant.tenantId, name: tenant.name, isAvailable: true });\r\n return this.configStateService.refreshAppState().pipe(map(_ => tenant));\r\n };\r\n\r\n setTenantByName(tenantName: string) {\r\n return this.tenantService\r\n .findTenantByName(tenantName)\r\n .pipe(switchMap(this.setTenantToState));\r\n }\r\n\r\n setTenantById(tenantId: string) {\r\n return this.tenantService\r\n .findTenantById(tenantId)\r\n .pipe(switchMap(this.setTenantToState));\r\n }\r\n}\r\n","import { Injector, PLATFORM_ID } from '@angular/core';\r\nimport clone from 'just-clone';\r\nimport { Environment } from '../models/environment';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\n\r\nimport { FindTenantResultDto } from '../proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models';\r\nimport { EnvironmentService } from '../services/environment.service';\r\nimport { MultiTenancyService } from '../services/multi-tenancy.service';\r\nimport { createTokenParser } from './string-utils';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { TENANT_NOT_FOUND_BY_NAME } from '../tokens/tenant-not-found-by-name';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nconst tenancyPlaceholder = '{0}';\r\n\r\nfunction getCurrentTenancyName(appBaseUrl: string, injector: Injector): string {\r\n const platformId = injector.get(PLATFORM_ID);\r\n const document = injector.get(DOCUMENT);\r\n if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/') appBaseUrl += '/';\r\n\r\n const parseTokens = createTokenParser(appBaseUrl);\r\n const token = tenancyPlaceholder.replace(/[}{]/g, '');\r\n const tokenValue = isPlatformBrowser(platformId)\r\n ? parseTokens(document.defaultView?.location.href)[token]?.[0]\r\n : undefined;\r\n return tokenValue;\r\n}\r\n\r\nexport function getCurrentTenancyNameFromUrl(tenantKey: string, injector): string | null {\r\n const platformId = injector.get(PLATFORM_ID);\r\n const document = injector.get(DOCUMENT);\r\n if (!isPlatformBrowser(platformId)) {\r\n return null;\r\n }\r\n const search = document.defaultView?.location.search;\r\n const urlParams = new URLSearchParams(search);\r\n return urlParams.get(tenantKey);\r\n}\r\n\r\nexport async function parseTenantFromUrl(injector: Injector) {\r\n const environmentService = injector.get(EnvironmentService);\r\n const multiTenancyService = injector.get(MultiTenancyService);\r\n const tenantNotFoundHandler = injector.get(TENANT_NOT_FOUND_BY_NAME, null);\r\n\r\n const baseUrl = environmentService.getEnvironment()?.application?.baseUrl || '';\r\n const tenancyName = getCurrentTenancyName(baseUrl, injector);\r\n\r\n const hideTenantBox = () => {\r\n multiTenancyService.isTenantBoxVisible = false;\r\n };\r\n\r\n const setDomainTenant = (tenant: FindTenantResultDto) => {\r\n multiTenancyService.domainTenant = {\r\n id: tenant.tenantId,\r\n name: tenant.name,\r\n isAvailable: true,\r\n };\r\n };\r\n\r\n const setEnvironmentWithDomainTenant = (tenant: FindTenantResultDto) => {\r\n hideTenantBox();\r\n setDomainTenant(tenant);\r\n };\r\n\r\n if (tenancyName) {\r\n /**\r\n * We have to replace tenant name within the urls from environment,\r\n * because the code below will make a http request to find information about the domain tenant.\r\n * Before this request takes place, we need to replace placeholders aka \"{0}\".\r\n */\r\n replaceTenantNameWithinEnvironment(injector, tenancyName);\r\n\r\n const tenant$ = multiTenancyService.setTenantByName(tenancyName);\r\n try {\r\n const result = await firstValueFrom(tenant$);\r\n setEnvironmentWithDomainTenant(result);\r\n return Promise.resolve(result);\r\n } catch (httpError: HttpErrorResponse | any) {\r\n if (\r\n httpError instanceof HttpErrorResponse &&\r\n httpError.status === 404 &&\r\n tenantNotFoundHandler\r\n ) {\r\n tenantNotFoundHandler(httpError);\r\n }\r\n return Promise.reject();\r\n }\r\n }\r\n /**\r\n * If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.\r\n */\r\n replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');\r\n\r\n const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(\r\n multiTenancyService.tenantKey,\r\n injector,\r\n );\r\n if (tenantIdFromQueryParams) {\r\n const tenantById$ = multiTenancyService.setTenantById(tenantIdFromQueryParams);\r\n return firstValueFrom(tenantById$);\r\n }\r\n\r\n return Promise.resolve();\r\n}\r\n\r\nfunction replaceTenantNameWithinEnvironment(\r\n injector: Injector,\r\n tenancyName: string,\r\n placeholder = tenancyPlaceholder,\r\n) {\r\n const environmentService = injector.get(EnvironmentService);\r\n\r\n const environment = clone(environmentService.getEnvironment()) as Environment;\r\n\r\n if (environment.application.baseUrl) {\r\n environment.application.baseUrl = environment.application.baseUrl.replace(\r\n placeholder,\r\n tenancyName,\r\n );\r\n }\r\n\r\n if (environment.oAuthConfig?.redirectUri) {\r\n environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace(\r\n placeholder,\r\n tenancyName,\r\n );\r\n }\r\n\r\n if (!environment.oAuthConfig) {\r\n environment.oAuthConfig = {};\r\n }\r\n environment.oAuthConfig.issuer = (environment.oAuthConfig.issuer || '').replace(\r\n placeholder,\r\n tenancyName,\r\n );\r\n\r\n Object.keys(environment.apis).forEach(api => {\r\n Object.keys(environment.apis[api]).forEach(key => {\r\n environment.apis[api][key] = (environment.apis[api][key] || '').replace(\r\n placeholder,\r\n tenancyName,\r\n );\r\n });\r\n });\r\n\r\n return environmentService.setState(environment);\r\n}\r\n","import { registerLocaleData } from '@angular/common';\r\nimport { inject, Injector } from '@angular/core';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { firstValueFrom, lastValueFrom, of, throwError, timeout } from 'rxjs';\r\nimport { ABP } from '../models/common';\r\nimport { Environment } from '../models/environment';\r\nimport { CurrentTenantDto } from '../proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models';\r\nimport { ConfigStateService } from '../services/config-state.service';\r\nimport { EnvironmentService } from '../services/environment.service';\r\nimport { SessionStateService } from '../services/session-state.service';\r\nimport { CORE_OPTIONS } from '../tokens/options.token';\r\nimport { APP_INIT_ERROR_HANDLERS } from '../tokens/app-config.token';\r\nimport { CHECK_AUTHENTICATION_STATE_FN_KEY } from '../tokens/check-authentication-state';\r\nimport { APP_STARTED_WITH_SSR } from '../tokens/ssr-state.token';\r\nimport { getRemoteEnv } from './environment-utils';\r\nimport { parseTenantFromUrl } from './multi-tenancy-utils';\r\nimport { AuthService } from '../abstracts';\r\nimport { noop } from './common-utils';\r\n\r\nexport async function getInitialData() {\r\n const injector = inject(Injector);\r\n const environmentService = injector.get(EnvironmentService);\r\n const configState = injector.get(ConfigStateService);\r\n const options = injector.get(CORE_OPTIONS) as ABP.Root;\r\n const appStartedWithSSR = injector.get(APP_STARTED_WITH_SSR);\r\n\r\n environmentService.setState(options.environment as Environment);\r\n await getRemoteEnv(injector, options.environment);\r\n await parseTenantFromUrl(injector);\r\n const authService = injector.get(AuthService, undefined, { optional: true });\r\n const checkAuthenticationState = injector.get(CHECK_AUTHENTICATION_STATE_FN_KEY, noop, {\r\n optional: true,\r\n });\r\n if (!options.skipInitAuthService && authService) {\r\n await authService.init();\r\n }\r\n if (options.skipGetAppConfiguration) return;\r\n\r\n const result$ = configState.refreshAppState().pipe(\r\n tap(() => checkAuthenticationState(injector)),\r\n tap(() => {\r\n const currentTenant = configState.getOne('currentTenant') as CurrentTenantDto;\r\n injector.get(SessionStateService).setTenant(currentTenant);\r\n }),\r\n catchError(error => {\r\n const appInitErrorHandlers = injector.get(APP_INIT_ERROR_HANDLERS, null);\r\n if (appInitErrorHandlers && appInitErrorHandlers.length) {\r\n appInitErrorHandlers.forEach(func => func(error));\r\n }\r\n\r\n return throwError(() => error);\r\n }),\r\n );\r\n\r\n if (appStartedWithSSR) {\r\n await firstValueFrom(\r\n result$.pipe(\r\n timeout(0),\r\n catchError(() => of(null)),\r\n ),\r\n );\r\n } else {\r\n await lastValueFrom(result$);\r\n }\r\n\r\n await localeInitializer(injector);\r\n}\r\n\r\nexport function localeInitializer(injector?: Injector) {\r\n const currentInjector = injector || inject(Injector);\r\n const sessionState = currentInjector.get(SessionStateService);\r\n const { registerLocaleFn }: ABP.Root = currentInjector.get(CORE_OPTIONS);\r\n\r\n const lang = sessionState.getLanguage() || 'en';\r\n\r\n return new Promise((resolve, reject) => {\r\n registerLocaleFn(lang).then(module => {\r\n if (module?.default) registerLocaleData(module.default);\r\n\r\n return resolve('resolved');\r\n }, reject);\r\n });\r\n}\r\n","export class CrossOriginStrategy {\r\n constructor(\r\n public crossorigin: 'anonymous' | 'use-credentials' | null,\r\n public integrity?: string,\r\n ) {}\r\n\r\n setCrossOrigin<T extends HTMLElement>(element: T) {\r\n if (this.integrity) element.setAttribute('integrity', this.integrity);\r\n if (this.crossorigin) {\r\n element.setAttribute('crossorigin', this.crossorigin);\r\n }\r\n }\r\n}\r\n\r\nexport class NoCrossOriginStrategy extends CrossOriginStrategy {\r\n setCrossOrigin() {}\r\n}\r\n\r\nexport const CROSS_ORIGIN_STRATEGY = {\r\n Anonymous(integrity?: string) {\r\n return new CrossOriginStrategy('anonymous', integrity);\r\n },\r\n UseCredentials(integrity?: string) {\r\n return new CrossOriginStrategy('use-credentials', integrity);\r\n },\r\n None() {\r\n return new NoCrossOriginStrategy(null);\r\n },\r\n};\r\n","export class DomStrategy {\r\n constructor(\r\n private getTarget: () => HTMLElement,\r\n public position: InsertPosition = 'beforeend',\r\n ) {}\r\n\r\n insertElement<T extends HTMLElement>(element: T) {\r\n if (typeof document !== 'undefined') {\r\n const target = this.getTarget();\r\n target.insertAdjacentElement(this.position, element);\r\n }\r\n }\r\n}\r\n\r\nexport const DOM_STRATEGY = {\r\n AfterElement(element: HTMLElement) {\r\n return new DomStrategy(() => element, 'afterend');\r\n },\r\n AppendToBody() {\r\n return new DomStrategy(() => document?.body, 'beforeend');\r\n },\r\n AppendToHead() {\r\n return new DomStrategy(() => document?.head, 'beforeend');\r\n },\r\n BeforeElement(element: HTMLElement) {\r\n return new DomStrategy(() => element, 'beforebegin');\r\n },\r\n PrependToHead() {\r\n return new DomStrategy(() => document?.head, 'afterbegin');\r\n },\r\n};\r\n","import { Observable, Observer } from 'rxjs';\r\nimport { CROSS_ORIGIN_STRATEGY, CrossOriginStrategy } from '../strategies/cross-origin.strategy';\r\nimport { DOM_STRATEGY, DomStrategy } from '../strategies/dom.strategy';\r\n\r\nexport function fromLazyLoad<T extends Event>(\r\n element: HTMLScriptElement | HTMLLinkElement,\r\n domStrategy: DomStrategy = DOM_STRATEGY.AppendToHead(),\r\n crossOriginStrategy: CrossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous(),\r\n): Observable<T> {\r\n crossOriginStrategy.setCrossOrigin(element);\r\n domStrategy.insertElement(element);\r\n\r\n return new Observable((observer: Observer<T>) => {\r\n element.onload = (event: Event) => {\r\n clearCallbacks(element);\r\n observer.next(event as T);\r\n observer.complete();\r\n };\r\n\r\n const handleError = createErrorHandler(observer, element);\r\n\r\n element.onerror = handleError;\r\n element.onabort = handleError;\r\n element.onemptied = handleError;\r\n element.onstalled = handleError;\r\n element.onsuspend = handleError;\r\n\r\n return () => {\r\n clearCallbacks(element);\r\n observer.complete();\r\n };\r\n });\r\n}\r\n\r\nfunction createErrorHandler<T extends Event = Event>(observer: Observer<T>, element: HTMLElement) {\r\n return function (event: Event | string) {\r\n clearCallbacks(element);\r\n element.parentNode?.removeChild(element);\r\n observer.error(event);\r\n };\r\n}\r\n\r\nfunction clearCallbacks(element: HTMLElement) {\r\n element.onload = null;\r\n element.onerror = null;\r\n element.onabort = null;\r\n element.onemptied = null;\r\n element.onstalled = null;\r\n element.onsuspend = null;\r\n}\r\n","export interface QueueManager {\r\n add(fn: () => void): void;\r\n init(interval: number, stackSize: number): void;\r\n}\r\n\r\nexport class DefaultQueueManager implements QueueManager {\r\n private queue: Array<() => void> = [];\r\n private isRunning = false;\r\n private stack = 0;\r\n private interval = 0;\r\n private stackSize = 100;\r\n\r\n public init(interval: number, stackSize: number) {\r\n this.interval = interval;\r\n this.stackSize = stackSize;\r\n }\r\n\r\n public add(fn: () => void) {\r\n this.queue.push(fn);\r\n this.run();\r\n }\r\n\r\n private run() {\r\n if (this.isRunning) return;\r\n this.stack++;\r\n\r\n this.isRunning = true;\r\n\r\n const fn = this.queue.shift();\r\n\r\n if (!fn) {\r\n this.isRunning = false;\r\n return;\r\n }\r\n\r\n fn();\r\n if (this.stack > this.stackSize) {\r\n setTimeout(() => {\r\n this.isRunning = false;\r\n this.run();\r\n this.stack = 0;\r\n }, this.interval);\r\n } else {\r\n this.isRunning = false;\r\n this.run();\r\n }\r\n }\r\n}\r\n","import { NgZone } from '@angular/core';\r\nimport { PRIMARY_OUTLET, Router, UrlSegment, UrlSegmentGroup } from \"@angular/router\";\r\nimport { ABP } from '../models/common';\r\nimport { RoutesService } from '../services/routes.service';\r\nimport { noop } from './common-utils';\r\nimport { TreeNode } from './tree-utils';\r\n\r\nexport function findRoute(routesService: RoutesService, path: string): TreeNode<ABP.Route> | null {\r\n const node = routesService.find(route => route.path === path);\r\n\r\n return node || path === '/'\r\n ? node\r\n : findRoute(routesService, path.split('/').slice(0, -1).join('/') || '/');\r\n}\r\n\r\nexport function getRoutePath(router: Router, url = router.url) {\r\n const emptyGroup = { segments: [] as UrlSegment[] } as UrlSegmentGroup;\r\n const primaryGroup = router.parseUrl(url).root.children[PRIMARY_OUTLET];\r\n\r\n return '/' + (primaryGroup || emptyGroup).segments.map(({ path }) => path).join('/');\r\n}\r\n\r\nexport function reloadRoute(router: Router, ngZone: NgZone) {\r\n const { shouldReuseRoute } = router.routeReuseStrategy;\r\n const setRouteReuse = (reuse: typeof shouldReuseRoute) => {\r\n router.routeReuseStrategy.shouldReuseRoute = reuse;\r\n };\r\n\r\n setRouteReuse(() => false);\r\n router.navigated = false;\r\n\r\n ngZone.run(async () => {\r\n await router.navigateByUrl(router.url).catch(noop);\r\n setRouteReuse(shouldReuseRoute);\r\n });\r\n}\r\n","import { isArray } from './common-utils';\r\n\r\n/* eslint-disable @typescript-eslint/ban-types */\r\nexport class BaseTreeNode<T extends object> {\r\n children: TreeNode<T>[] = [];\r\n isLeaf = true;\r\n parent?: TreeNode<T>;\r\n\r\n constructor(props: T) {\r\n Object.assign(this, props);\r\n }\r\n\r\n static create<T extends object>(props: T) {\r\n return new BaseTreeNode<T>(props) as TreeNode<T>;\r\n }\r\n}\r\n\r\nexport function createTreeFromList<T extends object, R>(\r\n list: T[],\r\n keySelector: (item: T) => NodeKey,\r\n parentKeySelector: typeof keySelector,\r\n valueMapper: (item: T) => R,\r\n) {\r\n const map = createMapFromList(list, keySelector, valueMapper);\r\n const tree: NodeValue<T, typeof valueMapper>[] = [];\r\n\r\n list.forEach(row => {\r\n const id = keySelector(row);\r\n const parentId = parentKeySelector(row);\r\n const node = map.get(id);\r\n\r\n if (!node) return;\r\n\r\n if (parentId) {\r\n const parent = map.get(parentId);\r\n if (!parent) return;\r\n (parent as any).children.push(node);\r\n (parent as any).isLeaf = false;\r\n (node as any).parent = parent;\r\n } else {\r\n tree.push(node);\r\n }\r\n });\r\n\r\n return tree;\r\n}\r\n\r\nexport function createMapFromList<T extends object, R>(\r\n list: T[],\r\n keySelector: (item: T) => NodeKey,\r\n valueMapper: (item: T) => R,\r\n) {\r\n type Key = ReturnType<typeof keySelector>;\r\n type Value = NodeValue<T, typeof valueMapper>;\r\n const map = new Map<Key, Value>();\r\n list.forEach(row => map.set(keySelector(row), valueMapper(row)));\r\n return map;\r\n}\r\n\r\nexport function createTreeNodeFilterCreator<T extends object>(\r\n key: keyof T,\r\n mapperFn: (value: any) => string,\r\n) {\r\n return (search: string) => {\r\n const regex = new RegExp('.*' + search + '.*', 'i');\r\n\r\n return function collectNodes(nodes: TreeNode<T>[], matches: TreeNode<T>[] = []) {\r\n for (const node of nodes) {\r\n if (regex.test(mapperFn(node[key]))) matches.push(node);\r\n\r\n if (node.children.length) collectNodes(node.children, matches);\r\n }\r\n\r\n return matches;\r\n };\r\n };\r\n}\r\n\r\nexport function createGroupMap<T extends { group?: string }>(\r\n list: TreeNode<T>[],\r\n othersGroupKey: string,\r\n) {\r\n if (!isArray(list) || !list.some(node => Boolean(node.group))) return undefined;\r\n\r\n const mapGroup = new Map<string, TreeNode<T>[]>();\r\n\r\n for (const node of list) {\r\n const group = node?.group || othersGroupKey;\r\n if (typeof group !== 'string') {\r\n throw new Error(`Invalid group: ${group}`);\r\n }\r\n\r\n const items = mapGroup.get(group) || [];\r\n items.push(node);\r\n mapGroup.set(group, items);\r\n }\r\n\r\n return mapGroup;\r\n}\r\n\r\nexport type TreeNode<T extends object> = {\r\n [K in keyof T]: T[K];\r\n} & {\r\n children: TreeNode<T>[];\r\n isLeaf: boolean;\r\n parent?: TreeNode<T>;\r\n};\r\n\r\nexport type RouteGroup<T extends object> = {\r\n readonly group: string;\r\n readonly items: TreeNode<T>[];\r\n};\r\n\r\nexport type NodeKey = number | string | symbol | undefined | null;\r\n\r\nexport type NodeValue<T extends object, F extends (...args: any) => any> = F extends undefined\r\n ? TreeNode<T>\r\n : ReturnType<F>;\r\n","export class ServerCookieParser {\r\n static parse(cookieHeader: string): { [key: string]: string } {\r\n const cookies: { [key: string]: string } = {};\r\n\r\n if (!cookieHeader) return cookies;\r\n\r\n try {\r\n cookieHeader.split(';').forEach(cookie => {\r\n const parts = cookie.trim().split('=');\r\n if (parts.length >= 2) {\r\n const name = parts[0].trim();\r\n const value = parts.slice(1).join('=');\r\n\r\n if (name) {\r\n try {\r\n cookies[name] = decodeURIComponent(value);\r\n } catch (e) {\r\n cookies[name] = value;\r\n }\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n console.error('Error parsing cookies:', error);\r\n }\r\n\r\n return cookies;\r\n }\r\n\r\n static middleware() {\r\n return (req: any, res: any, next: any) => {\r\n req.cookies = ServerCookieParser.parse(req.headers.cookie || '');\r\n next();\r\n };\r\n }\r\n\r\n static getCookie(req: any, name: string): string | undefined {\r\n const cookieHeader = req.headers.cookie;\r\n if (!cookieHeader) return undefined;\r\n\r\n const cookies = ServerCookieParser.parse(cookieHeader);\r\n return cookies[name];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ContentStrategy } from '../strategies/content.strategy';\r\nimport { generateHash } from '../utils';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DomInsertionService {\r\n private readonly inserted = new Set<number>();\r\n\r\n insertContent<T extends HTMLScriptElement | HTMLStyleElement>(\r\n contentStrategy: ContentStrategy<T>,\r\n ): T | undefined {\r\n const hash = generateHash(contentStrategy.content);\r\n\r\n if (this.inserted.has(hash)) return;\r\n\r\n const element = contentStrategy.insertElement();\r\n this.inserted.add(hash);\r\n\r\n return element;\r\n }\r\n\r\n removeContent(element: HTMLScriptElement | HTMLStyleElement) {\r\n if (element.textContent) {\r\n const hash = generateHash(element.textContent);\r\n this.inserted.delete(hash);\r\n element.parentNode?.removeChild(element);\r\n }\r\n }\r\n\r\n has(content: string): boolean {\r\n const hash = generateHash(content);\r\n\r\n return this.inserted.has(hash);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HtmlEncodingService {\r\n encode(value: string): string {\r\n if (!value) {\r\n return value;\r\n }\r\n\r\n return value\r\n .replace(/&/g, '&amp;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&#39;');\r\n }\r\n\r\n decode(value: string): string {\r\n if (!value) {\r\n return value;\r\n }\r\n\r\n return value\r\n .replace(/&amp;/g, '&')\r\n .replace(/&lt;/g, '<')\r\n .replace(/&gt;/g, '>')\r\n .replace(/&quot;/g, '\"')\r\n .replace(/&#39;/g, \"'\");\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class HttpErrorReporterService {\r\n private _reporter$ = new Subject<HttpErrorResponse>();\r\n private _errors$ = new BehaviorSubject<HttpErrorResponse[]>([]);\r\n\r\n get reporter$() {\r\n return this._reporter$.asObservable();\r\n }\r\n\r\n get errors$() {\r\n return this._errors$.asObservable();\r\n }\r\n\r\n get errors() {\r\n return this._errors$.value;\r\n }\r\n\r\n reportError(error: HttpErrorResponse) {\r\n this._reporter$.next(error);\r\n this._errors$.next([...this.errors, error]);\r\n }\r\n}\r\n","import { Injectable, Injector, inject } from '@angular/core';\r\nimport { HttpRequest } from '@angular/common/http';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\nimport { getPathName } from '../utils/http-utils';\r\nimport { map, mapTo, switchMap, takeUntil, tap } from 'rxjs/operators';\r\nimport { of, Subject, timer } from 'rxjs';\r\nimport { LOADER_DELAY } from '../tokens/lodaer-delay.token';\r\n\r\nexport interface HttpWaitState {\r\n requests: HttpRequest<any>[];\r\n filteredRequests: Array<HttpRequestInfo>;\r\n}\r\nexport interface HttpRequestInfo {\r\n method: string;\r\n endpoint: string;\r\n}\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HttpWaitService {\r\n protected store = new InternalStore<HttpWaitState>({\r\n requests: [],\r\n filteredRequests: [],\r\n });\r\n\r\n private delay: number;\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor() {\r\n const injector = inject(Injector);\r\n\r\n this.delay = injector.get(LOADER_DELAY, 500);\r\n }\r\n\r\n getLoading() {\r\n return !!this.applyFilter(this.store.state.requests).length;\r\n }\r\n\r\n getLoading$() {\r\n return this.store\r\n .sliceState(({ requests }) => requests)\r\n .pipe(\r\n map(requests => !!this.applyFilter(requests).length),\r\n switchMap(condition =>\r\n condition\r\n ? this.delay === 0\r\n ? of(true)\r\n : timer(this.delay).pipe(mapTo(true), takeUntil(this.destroy$))\r\n : of(false),\r\n ),\r\n tap(() => this.destroy$.next()),\r\n );\r\n }\r\n\r\n updateLoading$() {\r\n return this.store.sliceUpdate(({ requests }) => !!this.applyFilter(requests).length);\r\n }\r\n\r\n clearLoading() {\r\n this.store.patch({ requests: [] });\r\n }\r\n\r\n addRequest(request: HttpRequest<any>) {\r\n this.store.patch({ requests: [...this.store.state.requests, request] });\r\n }\r\n\r\n deleteRequest(request: HttpRequest<any>) {\r\n const requests = this.store.state.requests.filter(r => r !== request);\r\n this.store.patch({ requests });\r\n }\r\n\r\n addFilter(request: HttpRequestInfo | HttpRequestInfo[]) {\r\n const requests = Array.isArray(request) ? request : [request];\r\n const filteredRequests = [\r\n ...this.store.state.filteredRequests.filter(\r\n f => !requests.some(r => this.isSameRequest(f, r)),\r\n ),\r\n ...requests,\r\n ];\r\n this.store.patch({ filteredRequests });\r\n }\r\n\r\n removeFilter(request: HttpRequestInfo | HttpRequestInfo[]) {\r\n const requests = Array.isArray(request) ? request : [request];\r\n const filteredRequests = this.store.state.filteredRequests.filter(\r\n f => !requests.some(r => this.isSameRequest(f, r)),\r\n );\r\n this.store.patch({ filteredRequests });\r\n }\r\n\r\n private applyFilter(requests: HttpRequest<any>[] | undefined) {\r\n if (!requests) {\r\n return [];\r\n }\r\n const { filteredRequests } = this.store.state;\r\n return requests.filter(\r\n ({ method, url }) =>\r\n !filteredRequests.find(filteredRequest =>\r\n this.isSameRequest(filteredRequest, { method, endpoint: getPathName(url) }),\r\n ),\r\n );\r\n }\r\n\r\n private isSameRequest(filteredRequest: HttpRequestInfo, request: HttpRequestInfo) {\r\n const { method, endpoint } = filteredRequest;\r\n return endpoint === request.endpoint && method === request.method;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\n\r\nexport interface ResourceWaitState {\r\n resources: Set<string>;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ResourceWaitService {\r\n private store = new InternalStore<ResourceWaitState>({ resources: new Set() });\r\n\r\n getLoading() {\r\n return !!this.store.state.resources.size;\r\n }\r\n\r\n getLoading$() {\r\n return this.store.sliceState(({ resources }) => !!resources.size);\r\n }\r\n\r\n updateLoading$() {\r\n return this.store.sliceUpdate(({ resources }) => !!resources?.size);\r\n }\r\n\r\n clearLoading() {\r\n this.store.patch({ resources: new Set() });\r\n }\r\n\r\n addResource(resource: string) {\r\n const resources = this.store.state.resources;\r\n resources.add(resource);\r\n this.store.patch({ resources });\r\n }\r\n\r\n deleteResource(resource: string) {\r\n const resources = this.store.state.resources;\r\n resources.delete(resource);\r\n this.store.patch({ resources });\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { concat, Observable, of, pipe, throwError } from 'rxjs';\r\nimport { delay, retryWhen, shareReplay, take, tap } from 'rxjs/operators';\r\nimport { LoadingStrategy } from '../strategies';\r\nimport { ResourceWaitService } from './resource-wait.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LazyLoadService {\r\n private resourceWaitService = inject(ResourceWaitService);\r\n\r\n readonly loaded = new Map<string, HTMLScriptElement | HTMLLinkElement | null>();\r\n\r\n load(strategy: LoadingStrategy, retryTimes?: number, retryDelay?: number): Observable<Event> {\r\n if (this.loaded.has(strategy.path)) return of(new CustomEvent('load'));\r\n this.resourceWaitService.addResource(strategy.path);\r\n const delayOperator = retryDelay ? pipe(delay(retryDelay)) : pipe();\r\n const takeOp = retryTimes ? pipe(take(retryTimes)) : pipe();\r\n return strategy.createStream().pipe(\r\n retryWhen(error$ =>\r\n concat(\r\n error$.pipe(delayOperator, takeOp),\r\n throwError(() => new CustomEvent('error')),\r\n ),\r\n ),\r\n tap(() => {\r\n this.loaded.set(strategy.path, strategy.element);\r\n this.resourceWaitService.deleteResource(strategy.path);\r\n }),\r\n delay(100),\r\n shareReplay({ bufferSize: 1, refCount: true }),\r\n );\r\n }\r\n\r\n remove(path: string): boolean {\r\n const element = this.loaded.get(path);\r\n\r\n if (!element) return false;\r\n\r\n element.parentNode?.removeChild(element);\r\n this.loaded.delete(path);\r\n return true;\r\n }\r\n}\r\n","import { Injectable, Injector, OnDestroy, inject } from '@angular/core';\r\nimport {\r\n EMPTY,\r\n BehaviorSubject,\r\n defer,\r\n MonoTypeOperatorFunction,\r\n Observable,\r\n ReplaySubject,\r\n Subject,\r\n} from 'rxjs';\r\nimport {\r\n catchError,\r\n debounceTime,\r\n filter,\r\n finalize,\r\n shareReplay,\r\n switchMap,\r\n takeUntil,\r\n tap,\r\n} from 'rxjs/operators';\r\nimport { ABP } from '../models/common';\r\nimport { PagedResultDto } from '../models/dtos';\r\nimport { LIST_QUERY_DEBOUNCE_TIME } from '../tokens/list.token';\r\n\r\nexport type RequestStatus = 'idle' | 'loading' | 'success' | 'error';\r\n\r\n@Injectable()\r\nexport class ListService<QueryParamsType = ABP.PageQueryParams | any> implements OnDestroy {\r\n private _filter = '';\r\n set filter(value: string) {\r\n this._filter = value;\r\n this.get();\r\n }\r\n get filter(): string {\r\n return this._filter;\r\n }\r\n\r\n private _maxResultCount = 10;\r\n set maxResultCount(value: number) {\r\n this._maxResultCount = value;\r\n this.get();\r\n }\r\n get maxResultCount(): number {\r\n return this._maxResultCount;\r\n }\r\n\r\n private _page = 0;\r\n set page(value: number) {\r\n if (value === this._page) return;\r\n\r\n this._page = value;\r\n this.get();\r\n }\r\n get page(): number {\r\n return this._page;\r\n }\r\n\r\n private _totalCount = 0;\r\n set totalCount(value: number) {\r\n if (value === this._totalCount) return;\r\n\r\n this._totalCount = value;\r\n this.get();\r\n }\r\n get totalCount(): number {\r\n return this._totalCount;\r\n }\r\n\r\n private _sortKey: string | number = '';\r\n set sortKey(value: string | number) {\r\n this._sortKey = value;\r\n this.get();\r\n }\r\n get sortKey(): string | number {\r\n return this._sortKey;\r\n }\r\n\r\n private _sortOrder = '';\r\n set sortOrder(value: string) {\r\n this._sortOrder = value;\r\n this.get();\r\n }\r\n get sortOrder(): string {\r\n return this._sortOrder;\r\n }\r\n\r\n private _query$ = new ReplaySubject<QueryParamsType>(1);\r\n\r\n get query$(): Observable<QueryParamsType> {\r\n return this._query$\r\n .asObservable()\r\n .pipe(this.delay, shareReplay({ bufferSize: 1, refCount: true }));\r\n }\r\n\r\n private _isLoading$ = new BehaviorSubject(false);\r\n\r\n private _requestStatus = new BehaviorSubject<RequestStatus>('idle');\r\n\r\n private destroy$ = new Subject<void>();\r\n\r\n private delay: MonoTypeOperatorFunction<QueryParamsType>;\r\n\r\n /**\r\n * @deprecated Use `requestStatus$` instead.\r\n */\r\n get isLoading$(): Observable<boolean> {\r\n return this._isLoading$.asObservable().pipe(takeUntil(this.destroy$));\r\n }\r\n\r\n get requestStatus$(): Observable<RequestStatus> {\r\n return this._requestStatus.asObservable().pipe(takeUntil(this.destroy$));\r\n }\r\n\r\n get = () => {\r\n this.resetPageWhenUnchanged();\r\n this.next();\r\n };\r\n\r\n getWithoutPageReset = () => {\r\n this.next();\r\n };\r\n\r\n constructor() {\r\n const injector = inject(Injector);\r\n\r\n const delay = injector.get(LIST_QUERY_DEBOUNCE_TIME, 300);\r\n this.delay = delay ? debounceTime(delay) : tap();\r\n this.get();\r\n }\r\n\r\n hookToQuery<T>(\r\n streamCreatorCallback: QueryStreamCreatorCallback<T, QueryParamsType>,\r\n ): Observable<PagedResultDto<T>> {\r\n return this.query$.pipe(\r\n tap(() => this._isLoading$.next(true)),\r\n tap(() => this._requestStatus.next('loading')),\r\n switchMap(query =>\r\n defer(() => streamCreatorCallback(query)).pipe(\r\n catchError(() => {\r\n this._requestStatus.next('error');\r\n return EMPTY;\r\n }),\r\n tap(() => this._requestStatus.next('success')),\r\n finalize(() => {\r\n this._isLoading$.next(false);\r\n this._requestStatus.next('idle');\r\n }),\r\n ),\r\n ),\r\n filter(Boolean),\r\n shareReplay<any>({ bufferSize: 1, refCount: true }),\r\n takeUntil(this.destroy$),\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n }\r\n private resetPageWhenUnchanged() {\r\n const maxPage = Number(Number(this.totalCount / this._maxResultCount).toFixed());\r\n const skipCount = this._page * this._maxResultCount;\r\n\r\n if (skipCount !== this._totalCount) {\r\n return;\r\n }\r\n\r\n if (this.page === maxPage && this.page > 0) {\r\n this.page = this.page - 1;\r\n }\r\n }\r\n\r\n private next() {\r\n this._query$.next({\r\n filter: this._filter || undefined,\r\n maxResultCount: this._maxResultCount,\r\n skipCount: this._page * this._maxResultCount,\r\n sorting: this._sortOrder ? `${this._sortKey} ${this._sortOrder}` : undefined,\r\n } as any as QueryParamsType);\r\n }\r\n}\r\n\r\nexport type QueryStreamCreatorCallback<T, QueryParamsType = ABP.PageQueryParams> = (\r\n query: QueryParamsType,\r\n) => Observable<PagedResultDto<T>>;\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, distinctUntilChanged, switchMap, of } from 'rxjs';\r\nimport { catchError, shareReplay, tap } from 'rxjs/operators';\r\nimport { ABP } from '../models/common';\r\nimport { LocalizationService } from './localization.service';\r\nimport { SessionStateService } from './session-state.service';\r\nimport { CORE_OPTIONS } from '../tokens/options.token';\r\n\r\nexport interface UILocalizationResource {\r\n [resourceName: string]: Record<string, string>;\r\n}\r\n\r\n/**\r\n * Service for managing UI localizations in ABP Angular applications.\r\n * Automatically loads localization files based on selected language\r\n * Merges with backend localizations (UI > Backend priority)\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class UILocalizationService {\r\n private http = inject(HttpClient);\r\n private localizationService = inject(LocalizationService);\r\n private sessionState = inject(SessionStateService);\r\n private options = inject(CORE_OPTIONS);\r\n\r\n private loadedLocalizations$ = new BehaviorSubject<Record<string, UILocalizationResource>>({});\r\n\r\n private currentLanguage$ = this.sessionState.getLanguage$();\r\n\r\n constructor() {\r\n const uiLocalization = this.options.uiLocalization;\r\n if (uiLocalization?.enabled) {\r\n this.subscribeToLanguageChanges();\r\n }\r\n }\r\n\r\n private subscribeToLanguageChanges() {\r\n this.currentLanguage$\r\n .pipe(\r\n distinctUntilChanged(),\r\n switchMap(culture => this.loadLocalizationFile(culture))\r\n )\r\n .subscribe();\r\n }\r\n\r\n private loadLocalizationFile(culture: string) {\r\n const config = this.options.uiLocalization;\r\n if (!config?.enabled) return of(null);\r\n\r\n const basePath = config.basePath || '/assets/localization';\r\n const url = `${basePath}/${culture}.json`;\r\n\r\n return this.http.get<UILocalizationResource>(url).pipe(\r\n catchError(() => {\r\n // If file not found or error occurs, return null\r\n return of(null);\r\n }),\r\n tap(data => {\r\n if (data) {\r\n this.processLocalizationData(culture, data);\r\n }\r\n }),\r\n );\r\n }\r\n\r\n private processLocalizationData(culture: string, data: UILocalizationResource) {\r\n const abpFormat: ABP.Localization[] = [\r\n {\r\n culture,\r\n resources: Object.entries(data).map(([resourceName, texts]) => ({\r\n resourceName,\r\n texts,\r\n })),\r\n },\r\n ];\r\n this.localizationService.addLocalization(abpFormat);\r\n\r\n const current = this.loadedLocalizations$.value;\r\n current[culture] = data;\r\n this.loadedLocalizations$.next(current);\r\n }\r\n\r\n addAngularLocalizeLocalization(\r\n culture: string,\r\n resourceName: string,\r\n translations: Record<string, string>,\r\n ): void {\r\n const abpFormat: ABP.Localization[] = [\r\n {\r\n culture,\r\n resources: [\r\n {\r\n resourceName,\r\n texts: translations,\r\n },\r\n ],\r\n },\r\n ];\r\n this.localizationService.addLocalization(abpFormat);\r\n\r\n const current = this.loadedLocalizations$.value;\r\n if (!current[culture]) {\r\n current[culture] = {};\r\n }\r\n if (!current[culture][resourceName]) {\r\n current[culture][resourceName] = {};\r\n }\r\n current[culture][resourceName] = {\r\n ...current[culture][resourceName],\r\n ...translations,\r\n };\r\n this.loadedLocalizations$.next(current);\r\n }\r\n\r\n getLoadedLocalizations(culture?: string): UILocalizationResource {\r\n const lang = culture || this.sessionState.getLanguage();\r\n return this.loadedLocalizations$.value[lang] || {};\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { ABP } from '../models/common';\r\nimport { ApplicationConfigurationDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models';\r\nimport { ConfigStateService } from './config-state.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PermissionService {\r\n protected configState = inject(ConfigStateService);\r\n\r\n\r\n getGrantedPolicy$(key: string) {\r\n return this.getStream().pipe(\r\n map(grantedPolicies => this.isPolicyGranted(key, grantedPolicies)),\r\n );\r\n }\r\n\r\n getGrantedPolicy(key: string | undefined) {\r\n const policies = this.getSnapshot();\r\n return this.isPolicyGranted(key, policies);\r\n }\r\n\r\n filterItemsByPolicy<T extends ABP.HasPolicy>(items: Array<T>) {\r\n const policies = this.getSnapshot();\r\n return items.filter(\r\n item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies),\r\n );\r\n }\r\n\r\n filterItemsByPolicy$<T extends ABP.HasPolicy>(items: Array<T>) {\r\n return this.getStream().pipe(\r\n map(policies =>\r\n items.filter(\r\n item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies),\r\n ),\r\n ),\r\n );\r\n }\r\n\r\n protected isPolicyGranted(key: string | undefined, grantedPolicies: Record<string, boolean>) {\r\n if (!key) return true;\r\n\r\n const orRegexp = /\\|\\|/g;\r\n const andRegexp = /&&/g;\r\n\r\n // TODO: Allow combination of ANDs & ORs\r\n if (orRegexp.test(key)) {\r\n const keys = key.split('||').filter(Boolean);\r\n\r\n if (keys.length < 2) return false;\r\n\r\n return keys.some(k => this.getPolicy(k.trim(), grantedPolicies));\r\n } else if (andRegexp.test(key)) {\r\n const keys = key.split('&&').filter(Boolean);\r\n\r\n if (keys.length < 2) return false;\r\n\r\n return keys.every(k => this.getPolicy(k.trim(), grantedPolicies));\r\n }\r\n\r\n return this.getPolicy(key, grantedPolicies);\r\n }\r\n\r\n protected getStream() {\r\n return this.configState.getAll$().pipe(map(this.mapToPolicies));\r\n }\r\n\r\n protected getSnapshot() {\r\n return this.mapToPolicies(this.configState.getAll());\r\n }\r\n\r\n protected mapToPolicies(applicationConfiguration: ApplicationConfigurationDto) {\r\n return applicationConfiguration?.auth?.grantedPolicies || {};\r\n }\r\n\r\n protected getPolicy(key: string, grantedPolicies: Record<string, boolean>) {\r\n return grantedPolicies[key] || false;\r\n }\r\n}\r\n","import { Injectable, NgZone, inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ReplaceableComponents } from '../models/replaceable-components';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\nimport { reloadRoute } from '../utils/route-utils';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ReplaceableComponentsService {\r\n private ngZone = inject(NgZone);\r\n private router = inject(Router);\r\n\r\n private readonly store: InternalStore<ReplaceableComponents.ReplaceableComponent[]>;\r\n\r\n get replaceableComponents$(): Observable<ReplaceableComponents.ReplaceableComponent[]> {\r\n return this.store.sliceState(state => state);\r\n }\r\n\r\n get replaceableComponents(): ReplaceableComponents.ReplaceableComponent[] {\r\n return this.store.state;\r\n }\r\n\r\n get onUpdate$(): Observable<ReplaceableComponents.ReplaceableComponent[]> {\r\n return this.store.sliceUpdate(state => state);\r\n }\r\n\r\n constructor() {\r\n this.store = new InternalStore([] as ReplaceableComponents.ReplaceableComponent[]);\r\n }\r\n\r\n add(replaceableComponent: ReplaceableComponents.ReplaceableComponent, reload?: boolean): void {\r\n const replaceableComponents = [...this.store.state];\r\n\r\n const index = replaceableComponents.findIndex(\r\n component => component.key === replaceableComponent.key,\r\n );\r\n\r\n if (index > -1) {\r\n replaceableComponents[index] = replaceableComponent;\r\n } else {\r\n replaceableComponents.push(replaceableComponent);\r\n }\r\n\r\n this.store.set(replaceableComponents);\r\n\r\n if (reload) reloadRoute(this.router, this.ngZone);\r\n }\r\n\r\n get(replaceableComponentKey: string): ReplaceableComponents.ReplaceableComponent | undefined {\r\n return this.replaceableComponents.find(component => component.key === replaceableComponentKey);\r\n }\r\n\r\n get$(replaceableComponentKey: string): Observable<ReplaceableComponents.ReplaceableComponent | undefined> {\r\n return this.replaceableComponents$.pipe(\r\n map(components => components.find(component => component.key === replaceableComponentKey)),\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpContext, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { IS_EXTERNAL_REQUEST } from '../tokens/http-context.token';\r\n\r\n// source : https://github.com/armanozak/demo-angular-server-specific-interceptors\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ExternalHttpClient extends HttpClient {\r\n override request(\r\n first: string | HttpRequest<any>,\r\n url?: string,\r\n options: RequestOptions = {},\r\n ): Observable<any> {\r\n if (typeof first === 'string') {\r\n this.#setPlaceholderContext(options);\r\n return super.request(first, url || '', options);\r\n }\r\n\r\n this.#setPlaceholderContext(first);\r\n return super.request(first);\r\n }\r\n #setPlaceholderContext(optionsOrRequest: { context?: HttpContext }) {\r\n optionsOrRequest.context ??= new HttpContext();\r\n optionsOrRequest.context.set(IS_EXTERNAL_REQUEST, true);\r\n }\r\n}\r\n\r\ntype RequestOptions = Parameters<HttpClient['request']>[2];\r\n","import { HttpClient, HttpParameterCodec, HttpParams, HttpRequest } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ExternalHttpClient } from '../clients/http.client';\r\nimport { ABP } from '../models/common';\r\nimport { Rest } from '../models/rest';\r\nimport { CORE_OPTIONS } from '../tokens/options.token';\r\nimport { isUndefinedOrEmptyString } from '../utils/common-utils';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { HttpErrorReporterService } from './http-error-reporter.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RestService {\r\n protected options = inject<ABP.Root>(CORE_OPTIONS);\r\n protected http = inject(HttpClient);\r\n protected externalHttp = inject(ExternalHttpClient);\r\n protected environment = inject(EnvironmentService);\r\n protected httpErrorReporter = inject(HttpErrorReporterService);\r\n\r\n\r\n protected getApiFromStore(apiName: string | undefined): string {\r\n return this.environment.getApiUrl(apiName);\r\n }\r\n\r\n handleError(err: any): Observable<any> {\r\n this.httpErrorReporter.reportError(err);\r\n return throwError(() => err);\r\n }\r\n\r\n request<T, R>(\r\n request: HttpRequest<T> | Rest.Request<T>,\r\n config?: Rest.Config,\r\n api?: string,\r\n ): Observable<R> {\r\n config = config || ({} as Rest.Config);\r\n api = api || this.getApiFromStore(config.apiName);\r\n const { method, params, ...options } = request;\r\n const { observe = Rest.Observe.Body, skipHandleError, responseType = Rest.ResponseType.JSON } = config;\r\n const url = this.removeDuplicateSlashes(api + request.url);\r\n\r\n const httpClient: HttpClient = this.getHttpClient(config.skipAddingHeader);\r\n return httpClient\r\n .request<R>(method, url, {\r\n observe,\r\n responseType: responseType as any,\r\n ...(params && {\r\n params: this.getParams(params, config.httpParamEncoder),\r\n }),\r\n ...options,\r\n } as any)\r\n .pipe(catchError(err => (skipHandleError ? throwError(() => err) : this.handleError(err))));\r\n }\r\n private getHttpClient(isExternal: boolean) {\r\n return isExternal ? this.externalHttp : this.http;\r\n }\r\n\r\n private getParams(params: Rest.Params, encoder?: HttpParameterCodec): HttpParams {\r\n const filteredParams = Object.entries(params).reduce((acc, [key, value]) => {\r\n if (isUndefinedOrEmptyString(value)) return acc;\r\n if (value === null && !this.options.sendNullsAsQueryParam) return acc;\r\n acc[key] = value;\r\n return acc;\r\n }, {} as any);\r\n return encoder\r\n ? new HttpParams({ encoder, fromObject: filteredParams })\r\n : new HttpParams({ fromObject: filteredParams });\r\n }\r\n\r\n private removeDuplicateSlashes(url: string): string {\r\n return url.replace(/([^:]\\/)\\/+/g, '$1');\r\n }\r\n}\r\n","import { Injectable, Type, inject, signal } from '@angular/core';\r\nimport {\r\n NavigationCancel,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationStart,\r\n Router,\r\n RouterEvent,\r\n Event,\r\n} from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nexport const NavigationEvent = {\r\n Cancel: NavigationCancel,\r\n End: NavigationEnd,\r\n Error: NavigationError,\r\n Start: NavigationStart,\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RouterEvents {\r\n protected readonly router = inject(Router);\r\n\r\n readonly #previousNavigation = signal<string | undefined>(undefined);\r\n previousNavigation = this.#previousNavigation.asReadonly();\r\n\r\n readonly #currentNavigation = signal<string | undefined>(undefined);\r\n currentNavigation = this.#currentNavigation.asReadonly();\r\n\r\n constructor() {\r\n this.listenToNavigation();\r\n }\r\n\r\n protected listenToNavigation(): void {\r\n const routerEvent$ = this.router.events.pipe(\r\n filter(e => e instanceof NavigationEvent.End && e.url != null && !e.url.includes('error'))\r\n ) as Observable<NavigationEnd>;\r\n \r\n routerEvent$.subscribe(event => {\r\n this.#previousNavigation.set(this.currentNavigation());\r\n this.#currentNavigation.set(event.url);\r\n });\r\n }\r\n\r\n getEvents<T extends RouterEventConstructors>(...eventTypes: T) {\r\n const filterRouterEvents = (event: Event) => eventTypes.some(type => event instanceof type);\r\n\r\n return this.router.events.pipe(filter(filterRouterEvents));\r\n }\r\n\r\n getNavigationEvents<T extends NavigationEventKeys>(...navigationEventKeys: T) {\r\n type FilteredNavigationEvent = T extends (infer Key)[]\r\n ? Key extends NavigationEventKey\r\n ? InstanceType<NavigationEventType[Key]>\r\n : never\r\n : never;\r\n\r\n const filterNavigationEvents = (event: Event): event is FilteredNavigationEvent =>\r\n navigationEventKeys.some(key => event instanceof NavigationEvent[key]);\r\n\r\n return this.router.events.pipe(filter(filterNavigationEvents));\r\n }\r\n\r\n getAllEvents() {\r\n return this.router.events;\r\n }\r\n\r\n getAllNavigationEvents() {\r\n const keys = Object.keys(NavigationEvent) as NavigationEventKeys;\r\n return this.getNavigationEvents(...keys);\r\n }\r\n}\r\n\r\ntype RouterEventConstructors = [Type<RouterEvent>, ...Type<RouterEvent>[]];\r\n\r\ntype NavigationEventKeys = [NavigationEventKey, ...NavigationEventKey[]];\r\n\r\ntype NavigationEventType = typeof NavigationEvent;\r\n\r\nexport type NavigationEventKey = keyof NavigationEventType;\r\n","import { Injectable, Injector, inject } from '@angular/core';\r\nimport { NavigationStart } from '@angular/router';\r\nimport { of, Subject, timer } from 'rxjs';\r\nimport { map, mapTo, switchMap, takeUntil, tap } from 'rxjs/operators';\r\nimport { LOADER_DELAY } from '../tokens/lodaer-delay.token';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\nimport { RouterEvents } from './router-events.service';\r\n\r\nexport interface RouterWaitState {\r\n loading: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RouterWaitService {\r\n private routerEvents = inject(RouterEvents);\r\n\r\n private store = new InternalStore<RouterWaitState>({ loading: false });\r\n private destroy$ = new Subject<void>();\r\n private delay: number;\r\n constructor() {\r\n const injector = inject(Injector);\r\n\r\n this.delay = injector.get(LOADER_DELAY, 500);\r\n this.updateLoadingStatusOnNavigationEvents();\r\n }\r\n\r\n private updateLoadingStatusOnNavigationEvents() {\r\n this.routerEvents\r\n .getAllNavigationEvents()\r\n .pipe(\r\n map(event => event instanceof NavigationStart),\r\n switchMap(condition =>\r\n condition\r\n ? this.delay === 0\r\n ? of(true)\r\n : timer(this.delay || 0).pipe(mapTo(true), takeUntil(this.destroy$))\r\n : of(false),\r\n ),\r\n tap(() => this.destroy$.next()),\r\n )\r\n .subscribe(status => {\r\n this.setLoading(status);\r\n });\r\n }\r\n\r\n getLoading() {\r\n return this.store.state.loading;\r\n }\r\n\r\n getLoading$() {\r\n return this.store.sliceState(({ loading }) => loading);\r\n }\r\n\r\n updateLoading$() {\r\n return this.store.sliceUpdate(({ loading }) => loading);\r\n }\r\n\r\n setLoading(loading: boolean) {\r\n this.store.patch({ loading });\r\n }\r\n}\r\n","import { Injectable, Injector, OnDestroy, inject } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subscription, map } from 'rxjs';\r\nimport { ABP } from '../models/common';\r\nimport { OTHERS_GROUP } from '../tokens';\r\nimport { pushValueTo } from '../utils/array-utils';\r\nimport {\r\n BaseTreeNode,\r\n createTreeFromList,\r\n TreeNode,\r\n RouteGroup,\r\n createGroupMap,\r\n} from '../utils/tree-utils';\r\nimport { ConfigStateService } from './config-state.service';\r\nimport { PermissionService } from './permission.service';\r\nimport { SORT_COMPARE_FUNC } from '../tokens/compare-func.token';\r\n\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nexport abstract class AbstractTreeService<T extends { [key: string | number | symbol]: any }> {\r\n abstract id: string;\r\n abstract parentId: string;\r\n abstract hide: (item: T) => boolean;\r\n abstract sort: (a: T, b: T) => number;\r\n\r\n private _flat$ = new BehaviorSubject<T[]>([]);\r\n private _tree$ = new BehaviorSubject<TreeNode<T>[]>([]);\r\n private _visible$ = new BehaviorSubject<TreeNode<T>[]>([]);\r\n\r\n protected othersGroup: string;\r\n protected shouldSingularizeRoutes = true;\r\n\r\n get flat(): T[] {\r\n return this._flat$.value;\r\n }\r\n\r\n get flat$(): Observable<T[]> {\r\n return this._flat$.asObservable();\r\n }\r\n\r\n get tree(): TreeNode<T>[] {\r\n return this._tree$.value;\r\n }\r\n\r\n get tree$(): Observable<TreeNode<T>[]> {\r\n return this._tree$.asObservable();\r\n }\r\n\r\n get visible(): TreeNode<T>[] {\r\n return this._visible$.value;\r\n }\r\n\r\n get visible$(): Observable<TreeNode<T>[]> {\r\n return this._visible$.asObservable();\r\n }\r\n\r\n private filterWith(setOrMap: Set<string> | Map<string, T>): T[] {\r\n return this._flat$.value.filter(item => !setOrMap.has(item[this.id]));\r\n }\r\n\r\n private findItemsToRemove(set: Set<string>): Set<string> {\r\n return this._flat$.value.reduce((acc, item) => {\r\n if (!acc.has(item[this.parentId])) {\r\n return acc;\r\n }\r\n\r\n const childSet = new Set([item[this.id]]);\r\n const children = this.findItemsToRemove(childSet);\r\n return new Set([...acc, ...children]);\r\n }, set);\r\n }\r\n\r\n private publish(flatItems: T[]): T[] {\r\n this._flat$.next(flatItems);\r\n this._tree$.next(this.createTree(flatItems));\r\n this._visible$.next(this.createTree(flatItems.filter(item => !this.hide(item))));\r\n return flatItems;\r\n }\r\n\r\n protected createTree(items: T[]): TreeNode<T>[] {\r\n return createTreeFromList<T, TreeNode<T>>(\r\n items,\r\n item => item[this.id],\r\n item => item[this.parentId],\r\n item => BaseTreeNode.create(item),\r\n );\r\n }\r\n\r\n protected createGroupedTree(list: TreeNode<T>[]): RouteGroup<T>[] | undefined {\r\n const map = createGroupMap<T>(list, this.othersGroup);\r\n if (!map) {\r\n return undefined;\r\n }\r\n\r\n return Array.from(map, ([key, items]) => ({ group: key, items }));\r\n }\r\n\r\n add(items: T[]): T[] {\r\n let flatItems: T[] = [];\r\n\r\n if (!this.shouldSingularizeRoutes) {\r\n flatItems = [...this.flat, ...items];\r\n }\r\n\r\n if (this.shouldSingularizeRoutes) {\r\n const map = new Map<string, T>();\r\n items.forEach(item => map.set(item[this.id], item));\r\n flatItems = this.filterWith(map);\r\n map.forEach(pushValueTo(flatItems));\r\n }\r\n\r\n flatItems.sort(this.sort);\r\n\r\n return this.publish(flatItems);\r\n }\r\n\r\n find(predicate: (item: TreeNode<T>) => boolean, tree = this.tree): TreeNode<T> | null {\r\n return tree.reduce<TreeNode<T> | null>((acc, node) => {\r\n if (acc) {\r\n return acc;\r\n }\r\n\r\n if (predicate(node)) {\r\n return node;\r\n }\r\n\r\n return this.find(predicate, node.children);\r\n }, null);\r\n }\r\n\r\n patch(identifier: string, props: Partial<T>): T[] | false {\r\n const flatItems = this._flat$.value;\r\n const index = flatItems.findIndex(item => item[this.id] === identifier);\r\n if (index < 0) {\r\n return false;\r\n }\r\n\r\n flatItems[index] = { ...flatItems[index], ...props };\r\n\r\n flatItems.sort(this.sort);\r\n return this.publish(flatItems);\r\n }\r\n\r\n refresh(): T[] {\r\n return this.add([]);\r\n }\r\n\r\n remove(identifiers: string[]): T[] {\r\n const set = new Set<string>();\r\n identifiers.forEach(id => set.add(id));\r\n\r\n const setToRemove = this.findItemsToRemove(set);\r\n const flatItems = this.filterWith(setToRemove);\r\n return this.publish(flatItems);\r\n }\r\n\r\n removeByParam(params: Partial<T>): T[] | null {\r\n if (!params) {\r\n return null;\r\n }\r\n\r\n const keys = Object.keys(params) as Array<keyof Partial<T>>;\r\n if (keys.length === 0) {\r\n return null;\r\n }\r\n\r\n const excludedList = this.flat.filter(item => keys.every(key => item[key] === params[key]));\r\n if (!excludedList?.length) {\r\n return null;\r\n }\r\n\r\n for (const item of excludedList) {\r\n this.removeByParam({ [this.parentId]: item[this.id] } as Partial<T>);\r\n }\r\n\r\n const flatItems = this.flat.filter(item => !excludedList.includes(item));\r\n return this.publish(flatItems);\r\n }\r\n\r\n search(params: Partial<T>, tree = this.tree): TreeNode<T> | null {\r\n const searchKeys = Object.keys(params) as Array<keyof Partial<T>>;\r\n\r\n return tree.reduce<TreeNode<T> | null>((acc, node) => {\r\n if (acc) {\r\n return acc;\r\n }\r\n\r\n if (searchKeys.every(key => node[key] === params[key])) {\r\n return node;\r\n }\r\n\r\n return this.search(params, node.children);\r\n }, null);\r\n }\r\n\r\n setSingularizeStatus(singularize = true): void {\r\n this.shouldSingularizeRoutes = singularize;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport abstract class AbstractNavTreeService<T extends ABP.Nav>\r\n extends AbstractTreeService<T>\r\n implements OnDestroy\r\n{\r\n protected injector = inject(Injector);\r\n\r\n private subscription: Subscription;\r\n private permissionService: PermissionService;\r\n private compareFunc;\r\n readonly id = 'name';\r\n readonly parentId = 'parentName';\r\n readonly hide = (item: T) => item.invisible || !this.isGranted(item);\r\n readonly sort = (a: T, b: T) => {\r\n return this.compareFunc(a, b);\r\n };\r\n\r\n constructor() {\r\n super();\r\n const injector = this.injector;\r\n\r\n const configState = this.injector.get(ConfigStateService);\r\n this.subscription = configState\r\n .createOnUpdateStream(state => state)\r\n .subscribe(() => this.refresh());\r\n this.permissionService = injector.get(PermissionService);\r\n this.othersGroup = injector.get(OTHERS_GROUP);\r\n this.compareFunc = injector.get(SORT_COMPARE_FUNC);\r\n }\r\n\r\n protected isGranted({ requiredPolicy }: T): boolean {\r\n return this.permissionService.getGrantedPolicy(requiredPolicy);\r\n }\r\n\r\n hasChildren(identifier: string): boolean {\r\n const node = this.find(item => item[this.id] === identifier);\r\n return Boolean(node?.children?.length);\r\n }\r\n\r\n hasInvisibleChild(identifier: string): boolean {\r\n const node = this.find(item => item[this.id] === identifier);\r\n return node?.children?.some(child => child.invisible) || false;\r\n }\r\n\r\n /* istanbul ignore next */\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RoutesService extends AbstractNavTreeService<ABP.Route> {\r\n private hasPathOrChild(item: TreeNode<ABP.Route>): boolean {\r\n return Boolean(item.path) || this.hasChildren(item.name);\r\n }\r\n\r\n get groupedVisible(): RouteGroup<ABP.Route>[] | undefined {\r\n return this.createGroupedTree(this.visible.filter(item => this.hasPathOrChild(item)));\r\n }\r\n\r\n get groupedVisible$(): Observable<RouteGroup<ABP.Route>[] | undefined> {\r\n return this.visible$.pipe(\r\n map(items => items.filter(item => this.hasPathOrChild(item))),\r\n map(visible => this.createGroupedTree(visible)),\r\n );\r\n }\r\n}\r\n","import type { OnDestroy } from '@angular/core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { Observable, PartialObserver } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SubscriptionService implements OnDestroy {\r\n private subscription = new Subscription();\r\n\r\n get isClosed() {\r\n return this.subscription.closed;\r\n }\r\n\r\n addOne<T>(\r\n source$: Observable<T>,\r\n next?: (value: T) => void,\r\n error?: (error: any) => void,\r\n ): Subscription;\r\n addOne<T>(source$: Observable<T>, observer?: PartialObserver<T>): Subscription;\r\n addOne<T>(\r\n source$: Observable<T>,\r\n nextOrObserver?: PartialObserver<T> | Next<T>,\r\n error?: (error: any) => void,\r\n ): Subscription {\r\n const subscription = source$.subscribe(nextOrObserver as Next<T>, error);\r\n this.subscription.add(subscription);\r\n return subscription;\r\n }\r\n\r\n closeAll() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n closeOne(subscription: Subscription | undefined | null) {\r\n this.removeOne(subscription);\r\n if (subscription) {\r\n subscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n removeOne(subscription: Subscription | undefined | null) {\r\n if (!subscription) return;\r\n this.subscription.remove(subscription);\r\n }\r\n\r\n reset() {\r\n this.subscription.unsubscribe();\r\n this.subscription = new Subscription();\r\n }\r\n}\r\n\r\ntype Next<T> = (value: T) => void;\r\n","import { Injectable, TrackByFunction } from '@angular/core';\r\nimport { O } from 'ts-toolbelt';\r\n\r\nexport const trackBy =\r\n <T = any>(key: keyof T): TrackByFunction<T> =>\r\n (_, item) =>\r\n item[key];\r\n\r\nexport const trackByDeep =\r\n <T = any>(\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n ...keys: T extends object ? O.Paths<T> : never\r\n ): TrackByFunction<T> =>\r\n (_, item) =>\r\n keys.reduce((acc, key) => acc[key], item);\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TrackByService<ItemType = any> {\r\n by = trackBy;\r\n\r\n byDeep = trackByDeep;\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AbpWindowService {\r\n public readonly document = inject(DOCUMENT);\r\n public readonly window = this.document.defaultView;\r\n public readonly navigator = this.window.navigator;\r\n\r\n copyToClipboard(text: string): Promise<void> {\r\n return this.navigator.clipboard.writeText(text);\r\n }\r\n\r\n open(url?: string | URL, target?: string, features?: string): Window {\r\n return this.window.open(url, target, features);\r\n }\r\n\r\n reloadPage(): void {\r\n this.window.location.reload();\r\n }\r\n\r\n downloadBlob(blob: Blob, fileName: string) {\r\n const blobUrl = this.window.URL.createObjectURL(blob);\r\n const a = this.document.createElement('a');\r\n a.style.display = 'none';\r\n a.href = blobUrl;\r\n a.download = fileName;\r\n this.document.body.appendChild(a);\r\n a.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: this.window,\r\n }),\r\n );\r\n this.window.URL.revokeObjectURL(blobUrl);\r\n this.document.body.removeChild(a);\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Injectable, computed, inject, signal } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InternetConnectionService {\r\n readonly document = inject(DOCUMENT);\r\n readonly window = this.document.defaultView;\r\n readonly navigator = this.window.navigator;\r\n\r\n private status$ = new BehaviorSubject<boolean>(this.navigator.onLine);\r\n\r\n private status = signal(this.navigator.onLine);\r\n\r\n networkStatus = computed(() => this.status());\r\n\r\n constructor() {\r\n this.window.addEventListener('offline', () => this.setStatus(false));\r\n this.window.addEventListener('online', () => this.setStatus(true));\r\n }\r\n\r\n setStatus(val: boolean) {\r\n this.status.set(val);\r\n this.status$.next(val);\r\n }\r\n\r\n get networkStatus$() {\r\n return this.status$.asObservable();\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Injectable, inject } from '@angular/core';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LocalStorageListenerService {\r\n protected readonly window = inject(DOCUMENT).defaultView;\r\n\r\n constructor() {\r\n this.window.addEventListener('storage', event => {\r\n if (event.key === 'access_token') {\r\n const tokenRemoved = event.newValue === null;\r\n const tokenAdded = event.oldValue === null && event.newValue !== null;\r\n\r\n if (tokenRemoved || tokenAdded) {\r\n this.window.location.assign('/');\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable, effect, inject } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { TitleStrategy, RouterStateSnapshot } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { LocalizationService } from './localization.service';\r\nimport { DISABLE_PROJECT_NAME } from '../tokens';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpTitleStrategy extends TitleStrategy {\r\n protected readonly title = inject(Title);\r\n protected readonly localizationService = inject(LocalizationService);\r\n protected readonly disableProjectName = inject(DISABLE_PROJECT_NAME, { optional: true });\r\n protected routerState: RouterStateSnapshot;\r\n\r\n langugageChange = toSignal(this.localizationService.languageChange$);\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (this.langugageChange()) {\r\n this.updateTitle(this.routerState);\r\n }\r\n });\r\n }\r\n\r\n override updateTitle(routerState: RouterStateSnapshot) {\r\n this.routerState = routerState;\r\n const title = this.buildTitle(routerState);\r\n\r\n const projectName = this.localizationService.instant({\r\n key: '::AppName',\r\n defaultValue: 'MyProjectName',\r\n });\r\n\r\n if (!title) {\r\n return this.title.setTitle(projectName);\r\n }\r\n \r\n let localizedText = this.localizationService.instant({ key: title, defaultValue: title });\r\n if (!this.disableProjectName) {\r\n localizedText += ` | ${projectName}`;\r\n }\r\n\r\n this.title.setTitle(localizedText);\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ConfigStateService } from './config-state.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TimezoneService {\r\n protected readonly configState = inject(ConfigStateService);\r\n protected readonly document = inject(DOCUMENT);\r\n private readonly cookieKey = '__timezone';\r\n private timeZoneNameFromSettings: string | null | undefined;\r\n public isUtcClockEnabled: boolean | undefined;\r\n\r\n constructor() {\r\n this.configState.getOne$('setting').subscribe(settings => {\r\n this.timeZoneNameFromSettings = settings?.values?.['Abp.Timing.TimeZone'];\r\n });\r\n this.configState.getOne$('clock').subscribe(clock => {\r\n this.isUtcClockEnabled = clock?.kind === 'Utc';\r\n });\r\n }\r\n\r\n /**\r\n * Returns the effective timezone to be used across the application.\r\n *\r\n * This value is determined based on the clock kind setting in the configuration:\r\n * - If clock kind is not equal to Utc, the browser's local timezone is returned.\r\n * - If clock kind is equal to Utc, the configured timezone (`timeZoneNameFromSettings`) is returned if available;\r\n * otherwise, the browser's timezone is used as a fallback.\r\n *\r\n * @returns The IANA timezone name (e.g., 'Europe/Istanbul', 'America/New_York').\r\n */\r\n get timezone(): string {\r\n if (!this.isUtcClockEnabled) {\r\n return this.getBrowserTimezone();\r\n }\r\n return this.timeZoneNameFromSettings || this.getBrowserTimezone();\r\n }\r\n\r\n /**\r\n * Retrieves the browser's local timezone based on the user's system settings.\r\n *\r\n * @returns The IANA timezone name (e.g., 'Europe/Istanbul', 'America/New_York').\r\n */\r\n getBrowserTimezone(): string {\r\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n }\r\n\r\n /**\r\n * Sets the application's timezone in a cookie to persist the user's selected timezone.\r\n *\r\n * This method sets the cookie only if the clock kind setting is set to UTC.\r\n * The cookie is stored using the key defined by `this.cookieKey` and applied to the root path (`/`).\r\n *\r\n * @param timezone - The IANA timezone name to be stored (e.g., 'Europe/Istanbul').\r\n */\r\n setTimezone(timezone: string): void {\r\n if (this.isUtcClockEnabled) {\r\n this.document.cookie = `${this.cookieKey}=${timezone}; path=/`;\r\n }\r\n }\r\n}\r\n","import { inject, Injectable, LOCALE_ID } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TimeService {\r\n private locale = inject(LOCALE_ID);\r\n\r\n /**\r\n * Returns the current date and time in the specified timezone.\r\n *\r\n * @param zone - An IANA timezone name (e.g., 'Europe/Istanbul', 'UTC'); defaults to the system's local timezone.\r\n * @returns A Luxon DateTime instance representing the current time in the given timezone.\r\n */\r\n now(zone = 'local'): DateTime {\r\n return DateTime.now().setZone(zone);\r\n }\r\n\r\n /**\r\n * Converts the input date to the specified timezone, applying any timezone and daylight saving time (DST) adjustments.\r\n *\r\n * This method:\r\n * 1. Parses the input value into a Luxon DateTime object.\r\n * 2. Applies the specified IANA timezone, including any DST shifts based on the given date.\r\n *\r\n * @param value - The ISO string or Date object to convert.\r\n * @param zone - An IANA timezone name (e.g., 'America/New_York').\r\n * @returns A Luxon DateTime instance adjusted to the specified timezone and DST rules.\r\n */\r\n toZone(value: string | Date, zone: string): DateTime {\r\n return DateTime.fromISO(value instanceof Date ? value.toISOString() : value, {\r\n zone,\r\n });\r\n }\r\n\r\n /**\r\n * Formats the input date by applying timezone and daylight saving time (DST) adjustments.\r\n *\r\n * This method:\r\n * 1. Converts the input date to the specified timezone.\r\n * 2. Formats the result using the given format and locale, reflecting any timezone or DST shifts.\r\n *\r\n * @param value - The ISO string or Date object to format.\r\n * @param format - The format string (default: 'ff').\r\n * @param zone - Optional IANA timezone name (e.g., 'America/New_York'); defaults to the system's local timezone.\r\n * @returns A formatted date string adjusted for the given timezone and DST rules.\r\n */\r\n format(value: string | Date, format = 'ff', zone = 'local'): string {\r\n return this.toZone(value, zone).setLocale(this.locale).toFormat(format);\r\n }\r\n\r\n /**\r\n * Formats a date using the standard time offset (ignoring daylight saving time) for the specified timezone.\r\n *\r\n * This method:\r\n * 1. Converts the input date to UTC.\r\n * 2. Calculates the standard UTC offset for the given timezone (based on January 1st to avoid DST).\r\n * 3. Applies the standard offset manually to the UTC time.\r\n * 4. Formats the result using the specified format and locale, without applying additional timezone shifts.\r\n *\r\n * @param value - The ISO string or Date object to format.\r\n * @param format - The Luxon format string (default: 'ff').\r\n * @param zone - Optional IANA timezone name (e.g., 'America/New_York'); if omitted, system local timezone is used.\r\n * @returns A formatted date string adjusted by standard time (non-DST).\r\n */\r\n formatDateWithStandardOffset(value: string | Date, format = 'ff', zone?: string): string {\r\n const utcDate =\r\n typeof value === 'string'\r\n ? DateTime.fromISO(value, { zone: 'UTC' })\r\n : DateTime.fromJSDate(value, { zone: 'UTC' });\r\n\r\n if (!utcDate.isValid) return '';\r\n\r\n const targetZone = zone ?? DateTime.local().zoneName;\r\n\r\n const januaryDate = DateTime.fromObject(\r\n { year: utcDate.year, month: 1, day: 1 },\r\n { zone: targetZone },\r\n );\r\n const standardOffset = januaryDate.offset;\r\n const dateWithStandardOffset = utcDate.plus({ minutes: standardOffset });\r\n\r\n return dateWithStandardOffset.setZone('UTC').setLocale(this.locale).toFormat(format);\r\n }\r\n\r\n /**\r\n * Formats the input date using its original clock time, without converting based on timezone or DST\r\n *\r\n * This method:\r\n * 1. Converts the input date to ISO string.\r\n * 2. Calculates the date time in UTC, keeping the local time.\r\n * 3. Formats the result using the specified format and locale, without shifting timezones.\r\n *\r\n * @param value - The ISO string or Date object to format.\r\n * @param format - The format string (default: 'ff').\r\n * @returns A formatted date string without applying timezone.\r\n */\r\n formatWithoutTimeZone(value: string | Date, format = 'ff'): string {\r\n const isoString = value instanceof Date ? value.toISOString() : value;\r\n\r\n const dateTime = DateTime.fromISO(isoString)\r\n .setZone('utc', { keepLocalTime: true })\r\n .setLocale(this.locale);\r\n return dateTime.toFormat(format);\r\n }\r\n}\r\n","import { ViewContainerRef } from '@angular/core';\r\n\r\nexport abstract class ContainerStrategy {\r\n constructor(public containerRef: ViewContainerRef) {}\r\n\r\n abstract getIndex(): number;\r\n\r\n prepare(): void {}\r\n}\r\n\r\nexport class ClearContainerStrategy extends ContainerStrategy {\r\n getIndex(): number {\r\n return 0;\r\n }\r\n\r\n prepare() {\r\n this.containerRef.clear();\r\n }\r\n}\r\n\r\nexport class InsertIntoContainerStrategy extends ContainerStrategy {\r\n constructor(containerRef: ViewContainerRef, private index: number) {\r\n super(containerRef);\r\n }\r\n\r\n getIndex() {\r\n return Math.min(Math.max(0, this.index), this.containerRef.length);\r\n }\r\n}\r\n\r\nexport const CONTAINER_STRATEGY = {\r\n Clear(containerRef: ViewContainerRef) {\r\n return new ClearContainerStrategy(containerRef);\r\n },\r\n Append(containerRef: ViewContainerRef) {\r\n return new InsertIntoContainerStrategy(containerRef, containerRef.length);\r\n },\r\n Prepend(containerRef: ViewContainerRef) {\r\n return new InsertIntoContainerStrategy(containerRef, 0);\r\n },\r\n Insert(containerRef: ViewContainerRef, index: number) {\r\n return new InsertIntoContainerStrategy(containerRef, index);\r\n },\r\n};\r\n","export abstract class ContentSecurityStrategy {\r\n constructor(public nonce?: string) {}\r\n\r\n abstract applyCSP(element: HTMLScriptElement | HTMLStyleElement): void;\r\n}\r\n\r\nexport class LooseContentSecurityStrategy extends ContentSecurityStrategy {\r\n constructor(nonce: string) {\r\n super(nonce);\r\n }\r\n\r\n applyCSP(element: HTMLScriptElement | HTMLStyleElement) {\r\n if (this.nonce) {\r\n element.setAttribute('nonce', this.nonce);\r\n }\r\n }\r\n}\r\n\r\nexport class NoContentSecurityStrategy extends ContentSecurityStrategy {\r\n constructor() {\r\n super();\r\n }\r\n\r\n applyCSP(_: HTMLScriptElement | HTMLStyleElement) {}\r\n}\r\n\r\nexport const CONTENT_SECURITY_STRATEGY = {\r\n Loose(nonce: string) {\r\n return new LooseContentSecurityStrategy(nonce);\r\n },\r\n None() {\r\n return new NoContentSecurityStrategy();\r\n },\r\n};\r\n","import { CONTENT_SECURITY_STRATEGY, ContentSecurityStrategy } from './content-security.strategy';\r\nimport { DOM_STRATEGY, DomStrategy } from './dom.strategy';\r\nimport { inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\nexport type ElementOptions<T extends HTMLScriptElement | HTMLStyleElement = any> = Partial<{\r\n [key in keyof T]: T[key];\r\n}>;\r\n\r\nexport abstract class ContentStrategy<T extends HTMLScriptElement | HTMLStyleElement = any> {\r\n constructor(\r\n public content: string,\r\n protected domStrategy: DomStrategy = DOM_STRATEGY.AppendToHead(),\r\n protected contentSecurityStrategy: ContentSecurityStrategy = CONTENT_SECURITY_STRATEGY.None(),\r\n protected options: ElementOptions<T> = {},\r\n ) {}\r\n\r\n abstract createElement(): T;\r\n\r\n insertElement(): T {\r\n const element = this.createElement();\r\n\r\n if (this.options && Object.keys(this.options).length > 0) {\r\n (Object.keys(this.options) as Array<keyof ElementOptions<T>>).forEach(key => {\r\n if (this.options[key]) {\r\n element[key] = (this.options as NonNullable<T>)[key];\r\n }\r\n });\r\n }\r\n\r\n this.contentSecurityStrategy.applyCSP(element);\r\n this.domStrategy.insertElement(element);\r\n\r\n return element;\r\n }\r\n}\r\n\r\nexport class StyleContentStrategy extends ContentStrategy<HTMLStyleElement> {\r\n createElement(): HTMLStyleElement {\r\n const element = inject(DOCUMENT).createElement('style');\r\n element.textContent = this.content;\r\n\r\n return element;\r\n }\r\n}\r\n\r\nexport class ScriptContentStrategy extends ContentStrategy<HTMLScriptElement> {\r\n createElement(): HTMLScriptElement {\r\n const element = inject(DOCUMENT).createElement('script');\r\n element.textContent = this.content;\r\n\r\n return element;\r\n }\r\n}\r\n\r\nexport const CONTENT_STRATEGY = {\r\n AppendScriptToBody(content: string, options?: ElementOptions<HTMLScriptElement>) {\r\n return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToBody(), undefined, options);\r\n },\r\n AppendScriptToHead(content: string, options?: ElementOptions<HTMLScriptElement>) {\r\n return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);\r\n },\r\n AppendStyleToHead(content: string, options?: ElementOptions<HTMLStyleElement>) {\r\n return new StyleContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);\r\n },\r\n PrependStyleToHead(content: string, options?: ElementOptions<HTMLStyleElement>) {\r\n return new StyleContentStrategy(content, DOM_STRATEGY.PrependToHead(), undefined, options);\r\n },\r\n};\r\n","import { ComponentRef, TemplateRef, Type } from '@angular/core';\r\nimport { InferredContextOf, InferredInstanceOf } from '../models';\r\n\r\nexport abstract class ContextStrategy<T = any> {\r\n constructor(public context: Partial<ContextType<T>>) {}\r\n\r\n setContext(componentRef?: ComponentRef<InferredInstanceOf<T>>): Partial<ContextType<T>> {\r\n return this.context;\r\n }\r\n}\r\n\r\nexport class NoContextStrategy<\r\n T extends Type<any> | TemplateRef<any> = any,\r\n> extends ContextStrategy<T> {\r\n constructor() {\r\n super(undefined as unknown as Partial<ContextType<T>>);\r\n }\r\n}\r\n\r\nexport class ComponentContextStrategy<T extends Type<any> = any> extends ContextStrategy<T> {\r\n setContext(componentRef: ComponentRef<InferredInstanceOf<T>>): Partial<InferredInstanceOf<T>> {\r\n Object.keys(this.context).forEach(key => (componentRef.instance[key] = this.context[key]));\r\n componentRef.changeDetectorRef.detectChanges();\r\n return this.context;\r\n }\r\n}\r\n\r\nexport class TemplateContextStrategy<T extends TemplateRef<any> = any> extends ContextStrategy<T> {\r\n setContext(): Partial<InferredContextOf<T>> {\r\n return this.context;\r\n }\r\n}\r\n\r\nexport const CONTEXT_STRATEGY = {\r\n None<T extends Type<any> | TemplateRef<any> = any>() {\r\n return new NoContextStrategy<T>();\r\n },\r\n Component<T extends Type<any> = any>(context: Partial<InferredInstanceOf<T>>) {\r\n return new ComponentContextStrategy<T>(context);\r\n },\r\n Template<T extends TemplateRef<any> = any>(context: Partial<InferredContextOf<T>>) {\r\n return new TemplateContextStrategy<T>(context);\r\n },\r\n};\r\n\r\ntype ContextType<T> = T extends Type<infer U> | TemplateRef<infer U> ? U : never;\r\n","import { Observable, of } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { fromLazyLoad } from '../utils';\r\nimport { CROSS_ORIGIN_STRATEGY, CrossOriginStrategy } from './cross-origin.strategy';\r\nimport { DOM_STRATEGY, DomStrategy } from './dom.strategy';\r\n\r\nexport abstract class LoadingStrategy<T extends HTMLScriptElement | HTMLLinkElement = any> {\r\n element!: T;\r\n\r\n constructor(\r\n public path: string,\r\n protected domStrategy: DomStrategy = DOM_STRATEGY.AppendToHead(),\r\n protected crossOriginStrategy: CrossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous(),\r\n ) {}\r\n\r\n abstract createElement(): T;\r\n\r\n createStream<E extends Event>(): Observable<E> {\r\n this.element = this.createElement();\r\n\r\n return of(null).pipe(\r\n switchMap(() => fromLazyLoad<E>(this.element, this.domStrategy, this.crossOriginStrategy)),\r\n );\r\n }\r\n}\r\n\r\nexport class ScriptLoadingStrategy extends LoadingStrategy<HTMLScriptElement> {\r\n constructor(src: string, domStrategy?: DomStrategy, crossOriginStrategy?: CrossOriginStrategy) {\r\n super(src, domStrategy, crossOriginStrategy);\r\n }\r\n\r\n createElement(): HTMLScriptElement {\r\n const element = document.createElement('script');\r\n element.src = this.path;\r\n\r\n return element;\r\n }\r\n}\r\n\r\nexport class StyleLoadingStrategy extends LoadingStrategy<HTMLLinkElement> {\r\n constructor(href: string, domStrategy?: DomStrategy, crossOriginStrategy?: CrossOriginStrategy) {\r\n super(href, domStrategy, crossOriginStrategy);\r\n }\r\n\r\n createElement(): HTMLLinkElement {\r\n const element = document.createElement('link');\r\n element.rel = 'stylesheet';\r\n element.href = this.path;\r\n\r\n return element;\r\n }\r\n}\r\n\r\nexport const LOADING_STRATEGY = {\r\n AppendScriptToBody(src: string) {\r\n return new ScriptLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.AppendToBody(),\r\n CROSS_ORIGIN_STRATEGY.None(),\r\n );\r\n },\r\n AppendAnonymousScriptToBody(src: string, integrity?: string) {\r\n return new ScriptLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.AppendToBody(),\r\n CROSS_ORIGIN_STRATEGY.Anonymous(integrity),\r\n );\r\n },\r\n AppendAnonymousScriptToHead(src: string, integrity?: string) {\r\n return new ScriptLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.AppendToHead(),\r\n CROSS_ORIGIN_STRATEGY.Anonymous(integrity),\r\n );\r\n },\r\n AppendAnonymousStyleToHead(src: string, integrity?: string) {\r\n return new StyleLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.AppendToHead(),\r\n CROSS_ORIGIN_STRATEGY.Anonymous(integrity),\r\n );\r\n },\r\n PrependAnonymousScriptToHead(src: string, integrity?: string) {\r\n return new ScriptLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.PrependToHead(),\r\n CROSS_ORIGIN_STRATEGY.Anonymous(integrity),\r\n );\r\n },\r\n PrependAnonymousStyleToHead(src: string, integrity?: string) {\r\n return new StyleLoadingStrategy(\r\n src,\r\n DOM_STRATEGY.PrependToHead(),\r\n CROSS_ORIGIN_STRATEGY.Anonymous(integrity),\r\n );\r\n },\r\n};\r\n","import {\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n Injector,\r\n TemplateRef,\r\n Type,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { InferredContextOf, InferredInstanceOf } from '../models/utility';\r\nimport { ContainerStrategy, CONTAINER_STRATEGY } from './container.strategy';\r\nimport { ContextStrategy, CONTEXT_STRATEGY } from './context.strategy';\r\nimport { DomStrategy, DOM_STRATEGY } from './dom.strategy';\r\n\r\nexport abstract class ProjectionStrategy<T = any> {\r\n constructor(public content: T) {}\r\n\r\n abstract injectContent(injector: Injector): ComponentRefOrEmbeddedViewRef<T>;\r\n}\r\n\r\nexport class ComponentProjectionStrategy<T extends Type<any>> extends ProjectionStrategy<T> {\r\n constructor(\r\n component: T,\r\n private containerStrategy: ContainerStrategy,\r\n private contextStrategy: ContextStrategy = CONTEXT_STRATEGY.None(),\r\n ) {\r\n super(component);\r\n }\r\n\r\n injectContent(injector: Injector) {\r\n this.containerStrategy.prepare();\r\n\r\n const resolver = injector.get(ComponentFactoryResolver) as ComponentFactoryResolver;\r\n const factory = resolver.resolveComponentFactory<InferredInstanceOf<T>>(this.content);\r\n\r\n const componentRef = this.containerStrategy.containerRef.createComponent(\r\n factory,\r\n this.containerStrategy.getIndex(),\r\n injector,\r\n );\r\n this.contextStrategy.setContext(componentRef);\r\n\r\n return componentRef as ComponentRefOrEmbeddedViewRef<T>;\r\n }\r\n}\r\n\r\nexport class RootComponentProjectionStrategy<T extends Type<any>> extends ProjectionStrategy<T> {\r\n constructor(\r\n component: T,\r\n private contextStrategy: ContextStrategy = CONTEXT_STRATEGY.None(),\r\n private domStrategy: DomStrategy = DOM_STRATEGY.AppendToBody(),\r\n ) {\r\n super(component);\r\n }\r\n\r\n injectContent(injector: Injector) {\r\n const appRef = injector.get(ApplicationRef);\r\n const resolver = injector.get(ComponentFactoryResolver) as ComponentFactoryResolver;\r\n const componentRef = resolver\r\n .resolveComponentFactory<InferredInstanceOf<T>>(this.content)\r\n .create(injector);\r\n\r\n this.contextStrategy.setContext(componentRef);\r\n\r\n appRef.attachView(componentRef.hostView);\r\n const element: HTMLElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0];\r\n this.domStrategy.insertElement(element);\r\n\r\n return componentRef as ComponentRefOrEmbeddedViewRef<T>;\r\n }\r\n}\r\n\r\nexport class TemplateProjectionStrategy<T extends TemplateRef<any>> extends ProjectionStrategy<T> {\r\n constructor(\r\n templateRef: T,\r\n private containerStrategy: ContainerStrategy,\r\n private contextStrategy = CONTEXT_STRATEGY.None(),\r\n ) {\r\n super(templateRef);\r\n }\r\n\r\n injectContent() {\r\n this.containerStrategy.prepare();\r\n\r\n const embeddedViewRef = this.containerStrategy.containerRef.createEmbeddedView(\r\n this.content,\r\n this.contextStrategy.context,\r\n this.containerStrategy.getIndex(),\r\n );\r\n embeddedViewRef.detectChanges();\r\n\r\n return embeddedViewRef as ComponentRefOrEmbeddedViewRef<T>;\r\n }\r\n}\r\n\r\nexport const PROJECTION_STRATEGY = {\r\n AppendComponentToBody<T extends Type<unknown>>(\r\n component: T,\r\n context?: Partial<InferredInstanceOf<T>>,\r\n ) {\r\n return new RootComponentProjectionStrategy<T>(\r\n component,\r\n context && CONTEXT_STRATEGY.Component(context),\r\n );\r\n },\r\n AppendComponentToContainer<T extends Type<unknown>>(\r\n component: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredInstanceOf<T>>,\r\n ) {\r\n return new ComponentProjectionStrategy<T>(\r\n component,\r\n CONTAINER_STRATEGY.Append(containerRef),\r\n context && CONTEXT_STRATEGY.Component(context),\r\n );\r\n },\r\n AppendTemplateToContainer<T extends TemplateRef<unknown>>(\r\n templateRef: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredContextOf<T>>,\r\n ) {\r\n return new TemplateProjectionStrategy<T>(\r\n templateRef,\r\n CONTAINER_STRATEGY.Append(containerRef),\r\n context && CONTEXT_STRATEGY.Template(context),\r\n );\r\n },\r\n PrependComponentToContainer<T extends Type<unknown>>(\r\n component: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredInstanceOf<T>>,\r\n ) {\r\n return new ComponentProjectionStrategy<T>(\r\n component,\r\n CONTAINER_STRATEGY.Prepend(containerRef),\r\n context && CONTEXT_STRATEGY.Component(context),\r\n );\r\n },\r\n PrependTemplateToContainer<T extends TemplateRef<unknown>>(\r\n templateRef: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredContextOf<T>>,\r\n ) {\r\n return new TemplateProjectionStrategy<T>(\r\n templateRef,\r\n CONTAINER_STRATEGY.Prepend(containerRef),\r\n context && CONTEXT_STRATEGY.Template(context),\r\n );\r\n },\r\n ProjectComponentToContainer<T extends Type<unknown>>(\r\n component: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredInstanceOf<T>>,\r\n ) {\r\n return new ComponentProjectionStrategy<T>(\r\n component,\r\n CONTAINER_STRATEGY.Clear(containerRef),\r\n context && CONTEXT_STRATEGY.Component(context),\r\n );\r\n },\r\n ProjectTemplateToContainer<T extends TemplateRef<unknown>>(\r\n templateRef: T,\r\n containerRef: ViewContainerRef,\r\n context?: Partial<InferredContextOf<T>>,\r\n ) {\r\n return new TemplateProjectionStrategy<T>(\r\n templateRef,\r\n CONTAINER_STRATEGY.Clear(containerRef),\r\n context && CONTEXT_STRATEGY.Template(context),\r\n );\r\n },\r\n};\r\n\r\ntype ComponentRefOrEmbeddedViewRef<T> = T extends Type<infer U>\r\n ? ComponentRef<U>\r\n : T extends TemplateRef<infer C>\r\n ? EmbeddedViewRef<C>\r\n : never;\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { DomStrategy } from '../strategies';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DomStrategyService {\r\n private document = inject(DOCUMENT);\r\n\r\n afterElement(el: HTMLElement) {\r\n return new DomStrategy(() => el, 'afterend');\r\n }\r\n\r\n beforeElement(el: HTMLElement) {\r\n return new DomStrategy(() => el, 'beforebegin');\r\n }\r\n\r\n appendToBody() {\r\n return new DomStrategy(() => this.document.body, 'beforeend');\r\n }\r\n\r\n appendToHead() {\r\n return new DomStrategy(() => this.document.head, 'beforeend');\r\n }\r\n\r\n prependToHead() {\r\n return new DomStrategy(() => this.document.head, 'afterbegin');\r\n }\r\n}\r\n","import type { ApplicationConfigurationDto, ApplicationConfigurationRequestOptions } from './models';\r\nimport { RestService } from '../../../../../../services';\r\nimport { Rest } from '../../../../../../models';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApplicationConfigurationService {\r\n private restService = inject(RestService);\r\n\r\n apiName = 'abp';\r\n\r\n\r\n get = (options: ApplicationConfigurationRequestOptions, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ApplicationConfigurationDto>({\r\n method: 'GET',\r\n url: '/api/abp/application-configuration',\r\n params: { includeLocalizationResources: options.includeLocalizationResources },\r\n },\r\n { apiName: this.apiName, ...config });\r\n}\r\n","import type { ApplicationLocalizationDto, ApplicationLocalizationRequestDto } from './models';\r\nimport { RestService } from '../../../../../../services';\r\nimport { Rest } from '../../../../../../models';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApplicationLocalizationService {\n private restService = inject(RestService);\n\r\n apiName = 'abp';\r\n \r\n\r\n get = (input: ApplicationLocalizationRequestDto, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ApplicationLocalizationDto>({\r\n method: 'GET',\r\n url: '/api/abp/application-localization',\r\n params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics },\r\n },\r\n { apiName: this.apiName,...config });\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { map, switchMap, take, tap } from 'rxjs/operators';\r\nimport { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service';\r\nimport { AbpApplicationLocalizationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service';\r\nimport {\r\n ApplicationConfigurationDto,\r\n ApplicationFeatureConfigurationDto,\r\n ApplicationGlobalFeatureConfigurationDto,\r\n} from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models';\r\nimport { INCUDE_LOCALIZATION_RESOURCES_TOKEN } from '../tokens/include-localization-resources.token';\r\nimport { InternalStore } from '../utils/internal-store-utils';\r\nimport { EnvironmentService } from './environment.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ConfigStateService {\r\n private abpConfigService = inject(AbpApplicationConfigurationService);\r\n private abpApplicationLocalizationService = inject(AbpApplicationLocalizationService);\r\n private environmentService = inject(EnvironmentService);\r\n private readonly includeLocalizationResources = inject(INCUDE_LOCALIZATION_RESOURCES_TOKEN, { optional: true });\r\n\r\n private updateSubject = new Subject<void>();\r\n private readonly store = new InternalStore({} as ApplicationConfigurationDto);\r\n\r\n public uiCultureFromAuthCodeFlow: string;\r\n\r\n setState(config: ApplicationConfigurationDto) {\r\n this.store.set(config);\r\n }\r\n\r\n get createOnUpdateStream() {\r\n return this.store.sliceUpdate;\r\n }\r\n constructor() {\r\n this.initUpdateStream();\r\n }\r\n\r\n private initUpdateStream() {\r\n this.updateSubject\r\n .pipe(\r\n switchMap(() =>\r\n this.abpConfigService.get({\r\n includeLocalizationResources: !!this.includeLocalizationResources,\r\n }),\r\n ),\r\n )\r\n .pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState)))\r\n .subscribe(res => this.store.set(res));\r\n }\r\n\r\n private getLocalizationAndCombineWithAppState(\r\n appState: ApplicationConfigurationDto,\r\n ): Observable<ApplicationConfigurationDto> {\r\n if (!appState.localization.currentCulture.cultureName) {\r\n throw new Error('culture name should defined');\r\n }\r\n\r\n const cultureName =\r\n this.uiCultureFromAuthCodeFlow ?? appState.localization.currentCulture.cultureName;\r\n\r\n return this.getlocalizationResource(cultureName).pipe(\r\n map(result => {\r\n const envLocalization = this.environmentService.getEnvironment()?.localization;\r\n return {\r\n ...appState,\r\n localization: {\r\n ...appState.localization,\r\n ...result,\r\n defaultResourceName:\r\n appState.localization?.defaultResourceName ?? envLocalization?.defaultResourceName,\r\n },\r\n };\r\n }),\r\n tap(() => (this.uiCultureFromAuthCodeFlow = undefined)),\r\n );\r\n }\r\n\r\n private getlocalizationResource(cultureName: string) {\r\n return this.abpApplicationLocalizationService.get({\r\n cultureName: cultureName,\r\n onlyDynamics: false,\r\n });\r\n }\r\n\r\n refreshAppState() {\r\n this.updateSubject.next();\r\n return this.createOnUpdateStream(state => state).pipe(take(1));\r\n }\r\n\r\n refreshLocalization(lang: string): Observable<null> {\r\n if (this.includeLocalizationResources) {\r\n return this.refreshAppState().pipe(map(() => null));\r\n }\r\n\r\n return this.getlocalizationResource(lang)\r\n .pipe(\r\n tap(result => {\r\n const envLocalization = this.environmentService.getEnvironment()?.localization;\r\n this.store.patch({\r\n localization: {\r\n ...this.store.state.localization,\r\n ...result,\r\n defaultResourceName:\r\n this.store.state.localization?.defaultResourceName ??\r\n envLocalization?.defaultResourceName,\r\n },\r\n });\r\n }),\r\n )\r\n .pipe(map(() => null));\r\n }\r\n\r\n getOne$<K extends keyof ApplicationConfigurationDto>(key: K) {\r\n return this.store.sliceState(state => state[key]);\r\n }\r\n\r\n getOne<K extends keyof ApplicationConfigurationDto>(key: K) {\r\n return this.store.state[key];\r\n }\r\n\r\n getAll$(): Observable<ApplicationConfigurationDto> {\r\n return this.store.sliceState(state => state);\r\n }\r\n\r\n getAll(): ApplicationConfigurationDto {\r\n return this.store.state;\r\n }\r\n\r\n getDeep$(keys: string[] | string): Observable<any> {\r\n keys = splitKeys(keys);\r\n\r\n return this.store\r\n .sliceState(state => state)\r\n .pipe(\r\n map(state => {\r\n return (keys as string[]).reduce((acc: any, val) => {\r\n if (acc) {\r\n return acc[val];\r\n }\r\n\r\n return undefined;\r\n }, state);\r\n }),\r\n );\r\n }\r\n\r\n getDeep(keys: string[] | string): any {\r\n keys = splitKeys(keys);\r\n\r\n return (keys as string[]).reduce((acc: any, val) => {\r\n if (acc) {\r\n return acc[val];\r\n }\r\n\r\n return undefined;\r\n }, this.store.state);\r\n }\r\n\r\n getFeature(key: string) {\r\n return this.store.state.features?.values?.[key];\r\n }\r\n\r\n getFeature$(key: string) {\r\n return this.store.sliceState(state => state.features?.values?.[key]);\r\n }\r\n\r\n getFeatures(keys: string[]) {\r\n const { features } = this.store.state;\r\n if (!features) return;\r\n\r\n return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});\r\n }\r\n\r\n getFeatures$(keys: string[]): Observable<{ [key: string]: string } | undefined> {\r\n return this.store.sliceState(({ features }) => {\r\n if (!features?.values) return;\r\n\r\n return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});\r\n });\r\n }\r\n\r\n private isFeatureEnabled(key: string, features: ApplicationFeatureConfigurationDto) {\r\n return features.values[key] === 'true';\r\n }\r\n\r\n getFeatureIsEnabled(key: string) {\r\n return this.isFeatureEnabled(key, this.store.state.features);\r\n }\r\n\r\n getFeatureIsEnabled$(key: string) {\r\n return this.store.sliceState(state => this.isFeatureEnabled(key, state.features));\r\n }\r\n\r\n getSetting(key: string) {\r\n return this.store.state.setting?.values?.[key];\r\n }\r\n\r\n getSetting$(key: string) {\r\n return this.store.sliceState(state => state.setting?.values?.[key]);\r\n }\r\n\r\n getSettings(keyword?: string) {\r\n const settings = this.store.state.setting?.values || {};\r\n\r\n if (!keyword) return settings;\r\n\r\n const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);\r\n\r\n return keysFound.reduce(\r\n (acc, key) => {\r\n acc[key] = settings[key];\r\n return acc;\r\n },\r\n {} as Record<string, string>,\r\n );\r\n }\r\n\r\n getSettings$(keyword?: string) {\r\n return this.store\r\n .sliceState(state => state.setting?.values)\r\n .pipe(\r\n map((settings = {}) => {\r\n if (!keyword) return settings;\r\n\r\n const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);\r\n\r\n return keysFound.reduce(\r\n (acc, key) => {\r\n acc[key] = settings[key];\r\n return acc;\r\n },\r\n {} as Record<string, string>,\r\n );\r\n }),\r\n );\r\n }\r\n\r\n getGlobalFeatures() {\r\n return this.store.state.globalFeatures;\r\n }\r\n\r\n getGlobalFeatures$() {\r\n return this.store.sliceState(state => state.globalFeatures);\r\n }\r\n\r\n private isGlobalFeatureEnabled(\r\n key: string,\r\n globalFeatures: ApplicationGlobalFeatureConfigurationDto,\r\n ) {\r\n const features = globalFeatures.enabledFeatures || [];\r\n return features.some(f => key === f);\r\n }\r\n\r\n getGlobalFeatureIsEnabled(key: string) {\r\n return this.isGlobalFeatureEnabled(key, this.store.state.globalFeatures);\r\n }\r\n\r\n getGlobalFeatureIsEnabled$(key: string) {\r\n return this.store.sliceState(state => this.isGlobalFeatureEnabled(key, state.globalFeatures));\r\n }\r\n}\r\n\r\nfunction splitKeys(keys: string[] | string): string[] {\r\n if (typeof keys === 'string') {\r\n keys = keys.split('.');\r\n }\r\n\r\n if (!Array.isArray(keys)) {\r\n throw new Error('The argument must be a dot string or an string array.');\r\n }\r\n\r\n return keys;\r\n}\r\n","import { registerLocaleData } from '@angular/common';\r\nimport { Injectable, Injector, isDevMode, inject } from '@angular/core';\r\nimport { BehaviorSubject, combineLatest, from, Observable, Subject } from 'rxjs';\r\nimport { filter, map, switchMap } from 'rxjs/operators';\r\nimport { ABP } from '../models/common';\r\nimport { LocalizationWithDefault } from '../models/localization';\r\nimport {\r\n ApplicationConfigurationDto,\r\n ApplicationLocalizationResourceDto,\r\n} from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models';\r\nimport { localizations$ } from '../tokens/localization.token';\r\nimport { CORE_OPTIONS } from '../tokens/options.token';\r\nimport { createLocalizer, createLocalizerWithFallback } from '../utils/localization-utils';\r\nimport { interpolate } from '../utils/string-utils';\r\nimport { ConfigStateService } from './config-state.service';\r\nimport { SessionStateService } from './session-state.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LocalizationService {\r\n private sessionState = inject(SessionStateService);\r\n private injector = inject(Injector);\r\n private configState = inject(ConfigStateService);\r\n\r\n private latestLang = this.sessionState.getLanguage();\r\n private _languageChange$ = new Subject<string>();\r\n\r\n private uiLocalizations$ = new BehaviorSubject(\r\n new Map<string, Map<string, Record<string, string>>>(),\r\n );\r\n\r\n private localizations$ = new BehaviorSubject(new Map<string, Record<string, string>>());\r\n\r\n /**\r\n * Returns currently selected language\r\n * Even though this looks like it's redundant to return the same value as `getLanguage()`,\r\n * it's actually not. This could be invoked any time, and the latestLang could be different from the\r\n * sessionState.getLanguage() value.\r\n */\r\n get currentLang(): string {\r\n return this.latestLang || this.sessionState.getLanguage();\r\n }\r\n\r\n get currentLang$(): Observable<string> {\r\n return this.sessionState.getLanguage$();\r\n }\r\n\r\n get languageChange$(): Observable<string> {\r\n return this._languageChange$.asObservable();\r\n }\r\n\r\n constructor() {\r\n const otherInstance = inject(LocalizationService, { optional: true, skipSelf: true })!;\r\n\r\n if (otherInstance) throw new Error('LocalizationService should have only one instance.');\r\n\r\n this.listenToSetLanguage();\r\n this.initLocalizationValues();\r\n }\r\n\r\n private initLocalizationValues() {\r\n localizations$.subscribe(val => this.addLocalization(val));\r\n\r\n // Backend-based localization loading (always enabled)\r\n // UI localizations are merged via addLocalization() (UI > Backend priority)\r\n const legacyResources$ = this.configState.getDeep$('localization.values') as Observable<\r\n Record<string, Record<string, string>>\r\n >;\r\n\r\n const remoteLocalizations$ = this.configState.getDeep$('localization.resources') as Observable<\r\n Record<string, ApplicationLocalizationResourceDto>\r\n >;\r\n\r\n const currentLanguage$ = this.sessionState.getLanguage$();\r\n\r\n const uiLocalizations$ = combineLatest([currentLanguage$, this.uiLocalizations$]).pipe(\r\n map(([currentLang, localizations]) => localizations.get(currentLang)),\r\n );\r\n\r\n combineLatest([legacyResources$, remoteLocalizations$, uiLocalizations$])\r\n .pipe(\r\n map(([legacy, resource, local]) => {\r\n if (!resource) {\r\n return;\r\n }\r\n const remote = combineLegacyandNewResources(legacy || {}, resource);\r\n if (remote) {\r\n if (!local) {\r\n local = new Map();\r\n }\r\n\r\n Object.entries(remote).forEach(entry => {\r\n const resourceName = entry[0];\r\n const remoteTexts = entry[1];\r\n let resource = local?.get(resourceName) || {};\r\n // UI > Backend priority: local texts override remote texts\r\n resource = { ...remoteTexts, ...resource };\r\n\r\n local?.set(resourceName, resource);\r\n });\r\n }\r\n\r\n return local;\r\n }),\r\n filter(Boolean),\r\n )\r\n .subscribe(val => this.localizations$.next(val));\r\n }\r\n\r\n addLocalization(localizations?: ABP.Localization[]) {\r\n if (!localizations) return;\r\n\r\n const localizationMap = this.uiLocalizations$.value;\r\n\r\n localizations.forEach(loc => {\r\n const cultureMap =\r\n localizationMap.get(loc.culture) || new Map<string, Record<string, string>>();\r\n\r\n loc.resources.forEach(res => {\r\n let resource: Record<string, string> = cultureMap.get(res.resourceName) || {};\r\n\r\n resource = { ...resource, ...res.texts };\r\n\r\n cultureMap.set(res.resourceName, resource);\r\n });\r\n\r\n localizationMap.set(loc.culture, cultureMap);\r\n });\r\n\r\n this.uiLocalizations$.next(localizationMap);\r\n }\r\n\r\n private listenToSetLanguage() {\r\n this.sessionState\r\n .onLanguageChange$()\r\n .pipe(\r\n filter(\r\n lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang,\r\n ),\r\n switchMap(lang => this.configState.refreshLocalization(lang).pipe(map(() => lang))),\r\n filter(Boolean),\r\n switchMap(lang => from(this.registerLocale(lang).then(() => lang))),\r\n )\r\n .subscribe(lang => this._languageChange$.next(lang));\r\n }\r\n\r\n registerLocale(locale: string) {\r\n const { registerLocaleFn }: ABP.Root = this.injector.get(CORE_OPTIONS);\r\n\r\n return registerLocaleFn(locale).then(module => {\r\n if (module?.default) registerLocaleData(module.default);\r\n this.latestLang = locale;\r\n });\r\n }\r\n\r\n /**\r\n * Returns an observable localized text with the given interpolation parameters in current language.\r\n * @param key Localizaton key to replace with localized text\r\n * @param interpolateParams Values to interpolate\r\n */\r\n get(key: string | LocalizationWithDefault, ...interpolateParams: string[]): Observable<string> {\r\n return this.configState\r\n .getAll$()\r\n .pipe(map(state => this.getLocalization(state, key, ...interpolateParams)));\r\n }\r\n\r\n getResource(resourceName: string) {\r\n return this.localizations$.value.get(resourceName);\r\n }\r\n\r\n getResource$(resourceName: string) {\r\n return this.localizations$.pipe(map(res => res.get(resourceName)));\r\n }\r\n\r\n /**\r\n * Returns localized text with the given interpolation parameters in current language.\r\n * @param key Localization key to replace with localized text\r\n * @param interpolateParams Values to intepolate.\r\n */\r\n instant(key: string | LocalizationWithDefault, ...interpolateParams: string[]): string {\r\n return this.getLocalization(this.configState.getAll(), key, ...interpolateParams);\r\n }\r\n\r\n localize(resourceName: string, key: string, defaultValue: string): Observable<string | null> {\r\n return this.configState.getOne$('localization').pipe(\r\n map(createLocalizer),\r\n map(localize => localize(resourceName, key, defaultValue)),\r\n );\r\n }\r\n\r\n localizeSync(resourceName: string, key: string, defaultValue: string): string | null {\r\n const localization = this.configState.getOne('localization');\r\n return createLocalizer(localization)(resourceName, key, defaultValue);\r\n }\r\n\r\n localizeWithFallback(\r\n resourceNames: string[],\r\n keys: string[],\r\n defaultValue: string,\r\n ): Observable<string> {\r\n return this.configState.getOne$('localization').pipe(\r\n map(createLocalizerWithFallback),\r\n map(localizeWithFallback => localizeWithFallback(resourceNames, keys, defaultValue)),\r\n );\r\n }\r\n\r\n localizeWithFallbackSync(resourceNames: string[], keys: string[], defaultValue: string): string {\r\n const localization = this.configState.getOne('localization');\r\n return createLocalizerWithFallback(localization)(resourceNames, keys, defaultValue);\r\n }\r\n\r\n private getLocalization(\r\n state: ApplicationConfigurationDto,\r\n key: string | LocalizationWithDefault,\r\n ...interpolateParams: string[]\r\n ) {\r\n let defaultValue = '';\r\n\r\n if (!key) {\r\n return defaultValue;\r\n }\r\n\r\n if (typeof key !== 'string') {\r\n defaultValue = key.defaultValue;\r\n key = key.key;\r\n }\r\n\r\n const keys = key.split('::') as string[];\r\n const warn = (message: string) => {\r\n if (isDevMode()) console.warn(message);\r\n };\r\n\r\n if (keys.length < 2) {\r\n warn('The localization source separator (::) not found.');\r\n return defaultValue || (key as string);\r\n }\r\n if (!state.localization) return defaultValue || keys[1];\r\n\r\n const sourceName = keys[0] || state.localization.defaultResourceName;\r\n const sourceKey = keys[1];\r\n\r\n if (sourceName === '_') {\r\n return defaultValue || sourceKey;\r\n }\r\n\r\n if (!sourceName) {\r\n warn(\r\n 'Localization source name is not specified and the defaultResourceName was not defined!',\r\n );\r\n\r\n return defaultValue || sourceKey;\r\n }\r\n\r\n const source = this.localizations$.value.get(sourceName);\r\n if (!source) {\r\n warn('Could not find localization source: ' + sourceName);\r\n return defaultValue || sourceKey;\r\n }\r\n\r\n let localization = source[sourceKey];\r\n if (typeof localization === 'undefined') {\r\n return defaultValue || sourceKey;\r\n }\r\n\r\n interpolateParams = interpolateParams.filter(params => params != null);\r\n if (localization) localization = interpolate(localization, interpolateParams);\r\n\r\n if (typeof localization !== 'string') localization = '';\r\n\r\n return localization || defaultValue || (key as string);\r\n }\r\n}\r\n\r\nfunction recursivelyMergeBaseResources(\r\n baseResourceName: string,\r\n source: ResourceDto,\r\n): ApplicationLocalizationResourceDto {\r\n const item = source[baseResourceName];\r\n\r\n if (item.baseResources.length === 0) {\r\n return item;\r\n }\r\n\r\n return item.baseResources.reduce((acc, baseResource) => {\r\n const baseItem = recursivelyMergeBaseResources(baseResource, source);\r\n const texts = { ...baseItem.texts, ...acc.texts };\r\n return { ...acc, texts };\r\n }, item);\r\n}\r\n\r\nfunction mergeResourcesWithBaseResource(resource: ResourceDto): ResourceDto {\r\n const entities: Array<[string, ApplicationLocalizationResourceDto]> = Object.keys(resource).map(\r\n key => {\r\n const newValue = recursivelyMergeBaseResources(key, resource);\r\n return [key, newValue];\r\n },\r\n );\r\n return entities.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});\r\n}\r\n\r\nfunction combineLegacyandNewResources(\r\n legacy: LegacyLanguageDto,\r\n resource: ResourceDto,\r\n): LegacyLanguageDto {\r\n const mergedResource = mergeResourcesWithBaseResource(resource);\r\n\r\n return Object.entries(mergedResource).reduce((acc, [key, value]) => {\r\n return { ...acc, [key]: value.texts };\r\n }, legacy);\r\n}\r\n\r\nexport type LegacyLanguageDto = Record<string, Record<string, string>>;\r\nexport type ResourceDto = Record<string, ApplicationLocalizationResourceDto>;\r\n","import {\r\n Component,\r\n inject,\r\n input,\r\n isDevMode,\r\n Type,\r\n} from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { eLayoutType } from '../enums/common';\r\nimport { ABP } from '../models';\r\nimport { ReplaceableComponents } from '../models/replaceable-components';\r\nimport { LocalizationService } from '../services/localization.service';\r\nimport { ReplaceableComponentsService } from '../services/replaceable-components.service';\r\nimport { RouterEvents } from '../services/router-events.service';\r\nimport { RoutesService } from '../services/routes.service';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\nimport { findRoute, getRoutePath } from '../utils/route-utils';\r\nimport { TreeNode } from '../utils/tree-utils';\r\nimport { DYNAMIC_LAYOUTS_TOKEN } from '../tokens/dynamic-layout.token';\r\nimport { EnvironmentService } from '../services';\r\nimport { NgComponentOutlet } from '@angular/common';\r\nimport { filter, take } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'abp-dynamic-layout',\r\n template: `\r\n @if (isLayoutVisible) {\r\n <ng-container [ngComponentOutlet]=\"layout\"></ng-container>\r\n }\r\n `,\r\n providers: [SubscriptionService],\r\n imports: [NgComponentOutlet],\r\n})\r\nexport class DynamicLayoutComponent {\r\n layout?: Type<any>;\r\n layoutKey?: eLayoutType;\r\n readonly layouts = inject(DYNAMIC_LAYOUTS_TOKEN);\r\n isLayoutVisible = true;\r\n readonly defaultLayout = input<eLayoutType>(undefined);\r\n\r\n protected readonly router = inject(Router);\r\n protected readonly route = inject(ActivatedRoute);\r\n protected readonly routes = inject(RoutesService);\r\n protected readonly localizationService = inject(LocalizationService);\r\n protected readonly replaceableComponents = inject(ReplaceableComponentsService);\r\n protected readonly subscription = inject(SubscriptionService);\r\n protected readonly routerEvents = inject(RouterEvents);\r\n protected readonly environment = inject(EnvironmentService);\r\n\r\n constructor() {\r\n const dynamicLayoutComponent = inject(DynamicLayoutComponent, { optional: true, skipSelf: true });\r\n\r\n if (dynamicLayoutComponent) {\r\n if (isDevMode()) console.warn('DynamicLayoutComponent must be used only in AppComponent.');\r\n return;\r\n }\r\n this.checkLayoutOnNavigationEnd();\r\n this.listenToLanguageChange();\r\n this.listenToEnvironmentChange();\r\n }\r\n\r\n private checkLayoutOnNavigationEnd() {\r\n const navigationEnd$ = this.routerEvents.getNavigationEvents('End');\r\n this.subscription.addOne(navigationEnd$, () => this.getLayout());\r\n }\r\n\r\n private getLayout() {\r\n let expectedLayout = this.getExtractedLayout();\r\n\r\n if (!expectedLayout) expectedLayout = eLayoutType.empty;\r\n\r\n if (this.layoutKey === expectedLayout) return;\r\n\r\n const key = this.layouts.get(expectedLayout);\r\n if (key) {\r\n this.layout = this.getComponent(key)?.component;\r\n this.layoutKey = expectedLayout;\r\n }\r\n if (!this.layout) {\r\n this.showLayoutNotFoundError(expectedLayout);\r\n }\r\n }\r\n\r\n private getExtractedLayout() {\r\n const routeData = this.route.snapshot.data || {};\r\n let expectedLayout = routeData['layout'] as eLayoutType;\r\n\r\n let node = findRoute(this.routes, getRoutePath(this.router));\r\n node = { parent: node } as TreeNode<ABP.Route>;\r\n\r\n while (node.parent) {\r\n node = node.parent;\r\n\r\n if (node.layout) {\r\n expectedLayout = node.layout;\r\n break;\r\n }\r\n }\r\n return expectedLayout ?? this.defaultLayout();\r\n }\r\n\r\n showLayoutNotFoundError(layoutName: string) {\r\n let message = `Layout ${layoutName} not found.`;\r\n if (layoutName === 'account') {\r\n message =\r\n 'Account layout not found. Please check your configuration. If you are using LeptonX, please make sure you have added \"provideAccountLayout()\" to your app configuration.';\r\n }\r\n console.warn(message);\r\n }\r\n\r\n private listenToLanguageChange() {\r\n this.subscription.addOne(this.localizationService.languageChange$, () => {\r\n this.isLayoutVisible = false;\r\n setTimeout(() => (this.isLayoutVisible = true), 0);\r\n });\r\n }\r\n\r\n private getComponent(key: string): ReplaceableComponents.ReplaceableComponent | undefined {\r\n return this.replaceableComponents.get(key);\r\n }\r\n\r\n private listenToEnvironmentChange() {\r\n this.environment\r\n .createOnUpdateStream(x => x.oAuthConfig)\r\n .pipe(\r\n take(1),\r\n filter(config => config.responseType === 'code'),\r\n )\r\n .subscribe(() => {\r\n if (this.layout) {\r\n return;\r\n }\r\n this.getLayout();\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Type, inject } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\nimport { ReplaceableComponents } from '../models/replaceable-components';\r\nimport { ReplaceableComponentsService } from '../services/replaceable-components.service';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\nimport { NgComponentOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'abp-replaceable-route-container',\r\n template: `\r\n <ng-container *ngComponentOutlet=\"externalComponent || defaultComponent\"></ng-container>\r\n `,\r\n providers: [SubscriptionService],\r\n imports: [NgComponentOutlet],\r\n})\r\nexport class ReplaceableRouteContainerComponent implements OnInit {\r\n private route = inject(ActivatedRoute);\r\n private replaceableComponents = inject(ReplaceableComponentsService);\r\n private subscription = inject(SubscriptionService);\r\n\r\n defaultComponent!: Type<any>;\r\n\r\n componentKey!: string;\r\n\r\n externalComponent?: Type<any>;\r\n\r\n ngOnInit() {\r\n this.defaultComponent = this.route.snapshot.data.replaceableComponent.defaultComponent;\r\n this.componentKey = (\r\n this.route.snapshot.data.replaceableComponent as ReplaceableComponents.RouteData\r\n ).key;\r\n\r\n const component$ = this.replaceableComponents\r\n .get$(this.componentKey)\r\n .pipe(distinctUntilChanged());\r\n\r\n this.subscription.addOne(\r\n component$,\r\n (res = {} as ReplaceableComponents.ReplaceableComponent) => {\r\n this.externalComponent = res.component;\r\n },\r\n );\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'abp-router-outlet',\r\n template: ` <router-outlet></router-outlet> `,\r\n imports: [RouterOutlet],\r\n})\r\nexport class RouterOutletComponent {}\r\n","// Different locales from .NET\r\n// Key is .NET locale, value is Angular locale\r\n\r\nexport const differentLocales = {\r\n aa: 'en',\r\n 'aa-DJ': 'en',\r\n 'aa-ER': 'en',\r\n 'aa-ET': 'en',\r\n 'af-ZA': 'af',\r\n 'agq-CM': 'agq',\r\n 'ak-GH': 'ak',\r\n 'am-ET': 'am',\r\n 'ar-001': 'ar',\r\n arn: 'en',\r\n 'arn-CL': 'en',\r\n 'as-IN': 'as',\r\n 'asa-TZ': 'asa',\r\n 'ast-ES': 'ast',\r\n 'az-Cyrl-AZ': 'az-Cyrl',\r\n 'az-Latn-AZ': 'az-Latn',\r\n ba: 'ru',\r\n 'ba-RU': 'ru',\r\n 'bas-CM': 'bas',\r\n 'be-BY': 'be',\r\n 'bem-ZM': 'bem',\r\n 'bez-TZ': 'bez',\r\n 'bg-BG': 'bg',\r\n bin: 'en',\r\n 'bin-NG': 'en',\r\n 'bm-Latn': 'bm',\r\n 'bm-Latn-ML': 'bm',\r\n 'bn-BD': 'bn',\r\n 'bo-CN': 'bo',\r\n 'br-FR': 'br',\r\n 'brx-IN': 'brx',\r\n 'bs-Cyrl-BA': 'bs-Cyrl',\r\n 'bs-Latn-BA': 'bs-Latn',\r\n byn: 'en',\r\n 'byn-ER': 'en',\r\n 'ca-ES': 'ca',\r\n 'ca-ES-valencia': 'ca-ES-VALENCIA',\r\n 'ce-RU': 'ce',\r\n 'cgg-UG': 'cgg',\r\n 'chr-Cher': 'chr',\r\n 'chr-Cher-US': 'chr',\r\n co: 'en',\r\n 'co-FR': 'fr',\r\n 'cs-CZ': 'cs',\r\n 'cu-RU': 'cu',\r\n 'cy-GB': 'cy',\r\n 'da-DK': 'da',\r\n 'dav-KE': 'dav',\r\n 'de-DE': 'de',\r\n 'dje-NE': 'dje',\r\n 'dsb-DE': 'dsb',\r\n 'dua-CM': 'dua',\r\n dv: 'en',\r\n 'dv-MV': 'en',\r\n 'dyo-SN': 'dyo',\r\n 'dz-BT': 'dz',\r\n 'ebu-KE': 'ebu',\r\n 'ee-GH': 'ee',\r\n 'el-GR': 'el',\r\n 'en-029': 'en',\r\n 'en-ID': 'en',\r\n 'en-US': 'en',\r\n 'eo-001': 'en',\r\n 'es-ES': 'es',\r\n 'et-EE': 'et',\r\n 'eu-ES': 'eu',\r\n 'ewo-CM': 'ewo',\r\n 'fa-IR': 'fa',\r\n 'ff-Latn-SN': 'ff-Latn',\r\n 'ff-NG': 'ff',\r\n 'fi-FI': 'fi',\r\n 'fil-PH': 'fil',\r\n 'fo-FO': 'fo',\r\n 'fr-029': 'fr',\r\n 'fr-FR': 'fr',\r\n 'fur-IT': 'fur',\r\n 'fy-NL': 'fy',\r\n 'ga-IE': 'ga',\r\n 'gd-GB': 'gd',\r\n 'gl-ES': 'gl',\r\n gn: 'en',\r\n 'gn-PY': 'en',\r\n 'gsw-CH': 'gsw',\r\n 'gu-IN': 'gu',\r\n 'guz-KE': 'guz',\r\n 'gv-IM': 'gv',\r\n 'ha-Latn': 'ha',\r\n 'ha-Latn-GH': 'ha-GH',\r\n 'ha-Latn-NE': 'ha-NE',\r\n 'ha-Latn-NG': 'ha',\r\n 'haw-US': 'haw',\r\n 'he-IL': 'he',\r\n 'hi-IN': 'hi',\r\n 'hr-HR': 'hr',\r\n 'hsb-DE': 'hsb',\r\n 'hu-HU': 'hu',\r\n 'hy-AM': 'hy',\r\n 'ia-001': 'ia',\r\n 'ia-FR': 'ia',\r\n ibb: 'en',\r\n 'ibb-NG': 'en',\r\n 'id-ID': 'id',\r\n 'ig-NG': 'ig',\r\n 'ii-CN': 'ii',\r\n 'is-IS': 'is',\r\n 'it-IT': 'it',\r\n iu: 'en',\r\n 'iu-Cans': 'en',\r\n 'iu-Cans-CA': 'en',\r\n 'iu-Latn': 'en',\r\n 'iu-Latn-CA': 'en',\r\n 'ja-JP': 'ja',\r\n 'jgo-CM': 'jgo',\r\n 'jmc-TZ': 'jmc',\r\n 'jv-Java': 'jv',\r\n 'jv-Java-ID': 'jv',\r\n 'jv-Latn': 'jv',\r\n 'jv-Latn-ID': 'jv',\r\n 'ka-GE': 'ka',\r\n 'kab-DZ': 'kab',\r\n 'kam-KE': 'kam',\r\n 'kde-TZ': 'kde',\r\n 'kea-CV': 'kea',\r\n 'khq-ML': 'khq',\r\n 'ki-KE': 'ki',\r\n 'kk-KZ': 'kk',\r\n 'kkj-CM': 'kkj',\r\n 'kl-GL': 'kl',\r\n 'kln-KE': 'kln',\r\n 'km-KH': 'km',\r\n 'kn-IN': 'kn',\r\n 'ko-KR': 'ko',\r\n 'kok-IN': 'kok',\r\n kr: 'en',\r\n 'kr-NG': 'en',\r\n 'ks-Arab': 'ks',\r\n 'ks-Arab-IN': 'ks',\r\n 'ks-Deva': 'ks',\r\n 'ks-Deva-IN': 'ks',\r\n 'ksb-TZ': 'ksb',\r\n 'ksf-CM': 'ksf',\r\n 'ksh-DE': 'ksh',\r\n 'ku-Arab': 'ku',\r\n 'ku-Arab-IQ': 'ku',\r\n 'ku-Arab-IR': 'ku',\r\n 'kw-GB': 'kw',\r\n 'ky-KG': 'ky',\r\n la: 'en',\r\n 'la-001': 'en',\r\n 'lag-TZ': 'lag',\r\n 'lb-LU': 'lb',\r\n 'lg-UG': 'lg',\r\n 'lkt-US': 'lkt',\r\n 'ln-CD': 'ln',\r\n 'lo-LA': 'lo',\r\n 'lrc-IR': 'lrc',\r\n 'lt-LT': 'lt',\r\n 'lu-CD': 'lu',\r\n 'luo-KE': 'luo',\r\n 'luy-KE': 'luy',\r\n 'lv-LV': 'lv',\r\n 'mas-KE': 'mas',\r\n 'mer-KE': 'mer',\r\n 'mfe-MU': 'mfe',\r\n 'mg-MG': 'mg',\r\n 'mgh-MZ': 'mgh',\r\n 'mgo-CM': 'mgo',\r\n 'mi-NZ': 'mi',\r\n 'mk-MK': 'mk',\r\n 'ml-IN': 'ml',\r\n 'mn-Cyrl': 'mn',\r\n 'mn-MN': 'mn',\r\n 'mn-Mong': 'mn',\r\n 'mn-Mong-CN': 'mn',\r\n 'mn-Mong-MN': 'mn',\r\n mni: 'en',\r\n 'mni-IN': 'en',\r\n moh: 'en',\r\n 'moh-CA': 'en',\r\n 'mr-IN': 'mr',\r\n 'ms-MY': 'ms',\r\n 'mt-MT': 'mt',\r\n 'mua-CM': 'mua',\r\n 'my-MM': 'my',\r\n 'mzn-IR': 'mzn',\r\n 'naq-NA': 'naq',\r\n 'nb-NO': 'nb',\r\n\r\n 'nd-ZW': 'nd',\r\n 'ne-NP': 'ne',\r\n 'nl-NL': 'nl',\r\n 'nmg-CM': 'ngm',\r\n 'nn-NO': 'nn',\r\n 'nnh-CM': 'nnh',\r\n no: 'en',\r\n nqo: 'en',\r\n 'nqo-GN': 'en',\r\n nr: 'en',\r\n 'nr-ZA': 'en',\r\n nso: 'en',\r\n 'nso-ZA': 'en',\r\n 'nus-SS': 'nus',\r\n 'nyn-UG': 'nyn',\r\n oc: 'en',\r\n 'oc-FR': 'fr',\r\n 'om-ET': 'om',\r\n 'or-IN': 'or',\r\n 'os-GE': 'os',\r\n 'pa-Arab-PK': 'pa-Arab',\r\n 'pa-IN': 'pa',\r\n pap: 'en',\r\n 'pap-029': 'en',\r\n 'pl-PL': 'pl',\r\n 'prg-001': 'prg',\r\n prs: 'en',\r\n 'prs-AF': 'en',\r\n 'ps-AF': 'ps',\r\n 'pt-BR': 'pt',\r\n quc: 'en',\r\n 'quc-Latn': 'en',\r\n 'quc-Latn-GT': 'en',\r\n quz: 'en',\r\n 'quz-BO': 'en',\r\n 'quz-EC': 'en',\r\n 'quz-PE': 'en',\r\n 'rm-CH': 'rm',\r\n 'rn-BI': 'rn',\r\n 'ro-RO': 'ro',\r\n 'rof-TZ': 'rof',\r\n 'ru-RU': 'ru',\r\n 'rw-RW': 'rw',\r\n 'rwk-TZ': 'rwk',\r\n sa: 'en',\r\n 'sa-IN': 'en',\r\n 'sah-RU': 'sah',\r\n 'saq-KE': 'saq',\r\n 'sbp-TZ': 'en',\r\n 'sd-Arab': 'sd',\r\n 'sd-Arab-PK': 'sd',\r\n 'sd-Deva': 'sd',\r\n 'sd-Deva-IN': 'sd',\r\n 'se-NO': 'se',\r\n 'seh-MZ': 'seh',\r\n 'ses-ML': 'ses',\r\n 'sg-CF': 'sg',\r\n 'shi-Latn-MA': 'shi-Latn',\r\n 'shi-Tfng-MA': 'shi-Tfng',\r\n 'si-LK': 'si',\r\n 'sk-SK': 'sk',\r\n 'sl-SI': 'sl',\r\n sma: 'en',\r\n 'sma-NO': 'en',\r\n 'sma-SE': 'en',\r\n smj: 'en',\r\n 'smj-NO': 'en',\r\n 'smj-SE': 'en',\r\n 'smn-FI': 'en',\r\n sms: 'en',\r\n 'sms-FI': 'en',\r\n 'sn-Latn': 'sn',\r\n 'sn-Latn-ZW': 'sn',\r\n 'so-SO': 'so',\r\n 'sq-AL': 'so',\r\n 'sr-Cyrl-RS': 'sr-Cryl',\r\n 'sr-Latn-RS': 'sr-Latn',\r\n ss: 'en',\r\n 'ss-SZ': 'en',\r\n 'ss-ZA': 'en',\r\n ssy: 'en',\r\n 'ssy-ER': 'en',\r\n st: 'en',\r\n 'st-LS': 'en',\r\n 'st-ZA': 'en',\r\n 'sv-SE': 'sv',\r\n 'sw-TZ': 'sw',\r\n syr: 'en',\r\n 'syr-SY': 'en',\r\n 'ta-IN': 'ta',\r\n 'te-IN': 'te',\r\n 'teo-UG': 'teo',\r\n 'tg-Cyrl': 'tg',\r\n 'tg-Cyrl-TJ': 'tg',\r\n 'th-TH': 'th',\r\n 'ti-ET': 'ti',\r\n tig: 'en',\r\n 'tig-ER': 'en',\r\n 'tk-TM': 'tk',\r\n tn: 'en',\r\n 'tn-BW': 'en',\r\n 'tn-ZA': 'en',\r\n 'to-TO': 'to',\r\n 'tr-TR': 'tr',\r\n ts: 'en',\r\n 'ts-ZA': 'en',\r\n 'tt-RU': 'tt',\r\n 'twq-NE': 'twq',\r\n 'tzm-Arab': 'tzm',\r\n 'tzm-Arab-MA': 'tzm',\r\n 'tzm-Latn': 'tzm',\r\n 'tzm-Latn-DZ': 'tzm',\r\n 'tzm-Latn-MA': 'tzm',\r\n 'tzm-Tfng': 'tzm',\r\n 'tzm-Tfng-MA': 'tzm',\r\n 'ug-CN': 'ug',\r\n 'uk-UA': 'uk',\r\n 'ur-PK': 'ur',\r\n 'uz-Arab-AF': 'uz-Arab',\r\n 'uz-Cyrl-UZ': 'uz-Cyrl',\r\n 'uz-Latn-UZ': 'uz-Latn',\r\n 'vai-Latn-LR': 'vai-Latn',\r\n 'vai-Vaii-LR': 'vai-Vaii',\r\n ve: 'en',\r\n 've-ZA': 'en',\r\n 'vi-VN': 'vi',\r\n 'vo-001': 'vo',\r\n 'vun-TZ': 'vun',\r\n 'wae-CH': 'wae',\r\n wal: 'en',\r\n 'wal-ET': 'en',\r\n 'wo-SN': 'wo',\r\n 'xh-ZA': 'xh',\r\n 'xog-UG': 'xog',\r\n 'yav-CM': 'yav',\r\n 'yi-001': 'yi',\r\n 'yo-NG': 'yo',\r\n 'zgh-Tfng': 'zgh',\r\n 'zgh-Tfng-MA': 'zgh',\r\n 'zh-CN': 'zh',\r\n 'zh-HK': 'zh',\r\n 'zh-MO': 'zh',\r\n 'zh-SG': 'zh',\r\n 'zh-TW': 'zh',\r\n 'zu-ZA': 'zu',\r\n};\r\n","import {eLayoutType, eThemeSharedComponents} from \"../enums\";\r\n\r\nexport const DEFAULT_DYNAMIC_LAYOUTS = new Map<string, string>([\r\n [eLayoutType.application, eThemeSharedComponents.ApplicationLayoutComponent],\r\n [eLayoutType.account, eThemeSharedComponents.AccountLayoutComponent],\r\n [eLayoutType.empty, eThemeSharedComponents.EmptyLayoutComponent],\r\n]);\r\n","import { AfterViewInit, Directive, ElementRef, inject, input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[autofocus]',\r\n})\r\nexport class AutofocusDirective implements AfterViewInit {\r\n private elRef = inject(ElementRef);\r\n\r\n readonly delay = input(0, {\r\n alias: 'autofocus',\r\n transform: (v: unknown) => Number(v) || 0,\r\n });\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => this.elRef.nativeElement.focus(), this.delay());\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit, inject, input, output } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\n\r\n@Directive({\r\n selector: '[input.debounce]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class InputEventDebounceDirective implements OnInit {\r\n private el = inject(ElementRef);\r\n private subscription = inject(SubscriptionService);\r\n\r\n readonly debounce = input(300);\r\n\r\n readonly debounceEvent = output<Event>({ alias: 'input.debounce' });\r\n\r\n ngOnInit(): void {\r\n const input$ = fromEvent<InputEvent>(this.el.nativeElement, 'input').pipe(\r\n debounceTime(this.debounce()),\r\n );\r\n\r\n this.subscription.addOne(input$, (event: Event) => {\r\n this.debounceEvent.emit(event);\r\n });\r\n }\r\n}\r\n","import {\r\n Directive,\r\n EmbeddedViewRef,\r\n IterableChangeRecord,\r\n IterableChanges,\r\n IterableDiffer,\r\n IterableDiffers,\r\n OnChanges,\r\n TemplateRef,\r\n TrackByFunction,\r\n ViewContainerRef,\r\n inject,\r\n input,\r\n} from '@angular/core';\r\nimport clone from 'just-clone';\r\nimport compare from 'just-compare';\r\n\r\nexport type CompareFn<T = any> = (value: T, comparison: T) => boolean;\r\n\r\nclass AbpForContext {\r\n constructor(\r\n public $implicit: any,\r\n public index: number,\r\n public count: number,\r\n public list: any[],\r\n ) {}\r\n}\r\n\r\nclass RecordView {\r\n constructor(\r\n public record: IterableChangeRecord<any>,\r\n public view: EmbeddedViewRef<AbpForContext>,\r\n ) {}\r\n}\r\n\r\n@Directive({\r\n selector: '[abpFor]',\r\n})\r\nexport class ForDirective implements OnChanges {\r\n private tempRef = inject<TemplateRef<AbpForContext>>(TemplateRef);\r\n private vcRef = inject(ViewContainerRef);\r\n private differs = inject(IterableDiffers);\r\n\r\n // eslint-disable-next-line @angular-eslint/no-input-rename\r\n readonly items = input.required<any[]>({ alias: 'abpForOf' });\r\n\r\n readonly orderBy = input<string>(undefined, { alias: 'abpForOrderBy' });\r\n\r\n readonly orderDir = input<'ASC' | 'DESC'>(undefined, { alias: 'abpForOrderDir' });\r\n\r\n readonly filterBy = input<string>(undefined, { alias: 'abpForFilterBy' });\r\n\r\n readonly filterVal = input<any>(undefined, { alias: 'abpForFilterVal' });\r\n\r\n readonly trackBy = input<TrackByFunction<any>>(undefined, { alias: 'abpForTrackBy' });\r\n\r\n readonly compareBy = input<CompareFn>(undefined, { alias: 'abpForCompareBy' });\r\n\r\n readonly emptyRef = input<TemplateRef<any>>(undefined, { alias: 'abpForEmptyRef' });\r\n\r\n private differ!: IterableDiffer<any> | null;\r\n private lastItemsRef: any[] | null = null;\r\n\r\n private isShowEmptyRef!: boolean;\r\n\r\n get compareFn(): CompareFn {\r\n return this.compareBy() || compare;\r\n }\r\n\r\n get trackByFn(): TrackByFunction<any> {\r\n return this.trackBy() || ((index: number, item: any) => (item as any).id || index);\r\n }\r\n\r\n private iterateOverAppliedOperations(changes: IterableChanges<any>) {\r\n const rw: RecordView[] = [];\r\n\r\n changes.forEachOperation(\r\n (\r\n record: IterableChangeRecord<any>,\r\n previousIndex: number | null,\r\n currentIndex: number | null,\r\n ) => {\r\n if (record.previousIndex == null) {\r\n const view = this.vcRef.createEmbeddedView(\r\n this.tempRef,\r\n new AbpForContext(null, -1, -1, this.items()),\r\n currentIndex || 0,\r\n );\r\n\r\n rw.push(new RecordView(record, view));\r\n } else if (currentIndex == null && previousIndex !== null) {\r\n this.vcRef.remove(previousIndex);\r\n } else {\r\n if (previousIndex !== null) {\r\n const view = this.vcRef.get(previousIndex);\r\n if (view && currentIndex !== null) {\r\n this.vcRef.move(view, currentIndex);\r\n rw.push(new RecordView(record, view as EmbeddedViewRef<AbpForContext>));\r\n }\r\n }\r\n }\r\n },\r\n );\r\n\r\n for (let i = 0, l = rw.length; i < l; i++) {\r\n rw[i].view.context.$implicit = rw[i].record.item;\r\n }\r\n }\r\n\r\n private iterateOverAttachedViews(changes: IterableChanges<any>) {\r\n for (let i = 0, l = this.vcRef.length; i < l; i++) {\r\n const viewRef = this.vcRef.get(i) as EmbeddedViewRef<AbpForContext>;\r\n viewRef.context.index = i;\r\n viewRef.context.count = l;\r\n viewRef.context.list = this.items();\r\n }\r\n\r\n changes.forEachIdentityChange((record: IterableChangeRecord<any>) => {\r\n if (record.currentIndex !== null) {\r\n const viewRef = this.vcRef.get(record.currentIndex) as EmbeddedViewRef<AbpForContext>;\r\n viewRef.context.$implicit = record.item;\r\n }\r\n });\r\n }\r\n\r\n private projectItems(items: any[]): void {\r\n const emptyRef = this.emptyRef();\r\n if (!items.length && emptyRef) {\r\n this.vcRef.clear();\r\n this.vcRef.createEmbeddedView(emptyRef).rootNodes;\r\n this.isShowEmptyRef = true;\r\n this.differ = null;\r\n this.lastItemsRef = null;\r\n\r\n return;\r\n }\r\n\r\n if (emptyRef && this.isShowEmptyRef) {\r\n this.vcRef.clear();\r\n this.isShowEmptyRef = false;\r\n }\r\n\r\n if (!this.differ && items) {\r\n this.differ = this.differs.find(items).create(this.trackByFn);\r\n }\r\n\r\n if (this.differ) {\r\n const changes = this.differ.diff(items);\r\n\r\n if (changes) {\r\n this.iterateOverAppliedOperations(changes);\r\n this.iterateOverAttachedViews(changes);\r\n }\r\n }\r\n }\r\n\r\n private sortItems(items: any[]) {\r\n const orderBy = this.orderBy();\r\n if (orderBy) {\r\n items.sort((a, b) => (a[orderBy] > b[orderBy] ? 1 : a[orderBy] < b[orderBy] ? -1 : 0));\r\n } else {\r\n items.sort();\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n const itemsValue = this.items();\r\n if (!itemsValue) return;\r\n\r\n let items = clone(itemsValue) as any[];\r\n if (!Array.isArray(items)) return;\r\n\r\n const compareFn = this.compareFn;\r\n const filterBy = this.filterBy();\r\n const filterVal = this.filterVal();\r\n if (typeof filterBy !== 'undefined' && typeof filterVal !== 'undefined' && filterVal !== '') {\r\n items = items.filter(item => compareFn(item[filterBy], this.filterVal()));\r\n }\r\n\r\n switch (this.orderDir()) {\r\n case 'ASC':\r\n this.sortItems(items);\r\n this.projectItems(items);\r\n break;\r\n case 'DESC':\r\n this.sortItems(items);\r\n items.reverse();\r\n this.projectItems(items);\r\n break;\r\n default:\r\n this.projectItems(items);\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n ElementRef,\r\n OnInit,\r\n inject,\r\n input,\r\n output\r\n} from '@angular/core';\r\nimport { FormGroupDirective, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, filter } from 'rxjs/operators';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\n\r\ntype Controls = { [key: string]: UntypedFormControl } | UntypedFormGroup[];\r\n/**\r\n * @deprecated FormSubmitDirective will be removed in V7.0.0. Use `ngSubmit` instead.\r\n */\r\n@Directive({\r\n selector: 'form[ngSubmit][formGroup]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class FormSubmitDirective implements OnInit {\r\n private formGroupDirective = inject(FormGroupDirective, { self: true });\r\n private host = inject<ElementRef<HTMLFormElement>>(ElementRef);\r\n private cdRef = inject(ChangeDetectorRef);\r\n private subscription = inject(SubscriptionService);\r\n\r\n readonly debounce = input(200);\r\n\r\n // TODO: Remove unused input\r\n readonly notValidateOnSubmit = input<string | boolean>(undefined);\r\n\r\n readonly markAsDirtyWhenSubmit = input(true);\r\n\r\n readonly ngSubmit = output();\r\n\r\n executedNgSubmit = false;\r\n\r\n ngOnInit() {\r\n this.subscription.addOne(this.formGroupDirective.ngSubmit, () => {\r\n if (this.markAsDirtyWhenSubmit()) {\r\n this.markAsDirty();\r\n }\r\n\r\n this.executedNgSubmit = true;\r\n });\r\n\r\n const keyup$ = fromEvent<KeyboardEvent>(this.host.nativeElement as HTMLElement, 'keyup').pipe(\r\n debounceTime(this.debounce()),\r\n filter(event => !(event.target instanceof HTMLTextAreaElement)),\r\n filter(event => event && event.key === 'Enter'),\r\n );\r\n\r\n this.subscription.addOne(keyup$, () => {\r\n if (!this.executedNgSubmit) {\r\n this.host.nativeElement.dispatchEvent(\r\n new Event('submit', { bubbles: true, cancelable: true }),\r\n );\r\n }\r\n\r\n this.executedNgSubmit = false;\r\n });\r\n }\r\n\r\n markAsDirty() {\r\n const { form } = this.formGroupDirective;\r\n\r\n setDirty(form.controls as { [key: string]: UntypedFormControl });\r\n form.markAsDirty();\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n}\r\n\r\nfunction setDirty(controls: Controls) {\r\n if (Array.isArray(controls)) {\r\n controls.forEach(group => {\r\n setDirty(group.controls as { [key: string]: UntypedFormControl });\r\n });\r\n return;\r\n }\r\n\r\n Object.keys(controls).forEach(key => {\r\n controls[key].markAsDirty();\r\n controls[key].updateValueAndValidity();\r\n });\r\n}\r\n","import { Directive, ElementRef, AfterViewInit, inject, output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpInit]',\r\n})\r\nexport class InitDirective implements AfterViewInit {\r\n private elRef = inject(ElementRef);\r\n\r\n readonly init = output<ElementRef<any>>({ alias: 'abpInit' });\r\n\r\n ngAfterViewInit() {\r\n this.init.emit(this.elRef);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Directive,\r\n OnChanges,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewContainerRef,\r\n inject,\r\n input\r\n} from '@angular/core';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { distinctUntilChanged, take } from 'rxjs/operators';\r\nimport { PermissionService } from '../services/permission.service';\r\nimport { QUEUE_MANAGER } from '../tokens/queue.token';\r\nimport { QueueManager } from '../utils/queue';\r\n\r\n@Directive({\r\n selector: '[abpPermission]',\r\n})\r\nexport class PermissionDirective implements OnDestroy, OnChanges, AfterViewInit {\r\n private templateRef = inject<TemplateRef<any>>(TemplateRef, { optional: true });\r\n private vcRef = inject(ViewContainerRef);\r\n private permissionService = inject(PermissionService);\r\n private cdRef = inject(ChangeDetectorRef);\r\n queue = inject<QueueManager>(QUEUE_MANAGER);\r\n\r\n readonly condition = input<string | undefined>(undefined, { alias: \"abpPermission\" });\r\n\r\n readonly runChangeDetection = input(true, { alias: \"abpPermissionRunChangeDetection\" });\r\n\r\n subscription!: Subscription;\r\n\r\n cdrSubject = new ReplaySubject<void>();\r\n\r\n rendered = false;\r\n\r\n private check() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n this.subscription = this.permissionService\r\n .getGrantedPolicy$(this.condition() || '')\r\n .pipe(distinctUntilChanged())\r\n .subscribe(isGranted => {\r\n this.vcRef.clear();\r\n if (isGranted && this.templateRef) {\r\n this.vcRef.createEmbeddedView(this.templateRef);\r\n }\r\n if (this.runChangeDetection()) {\r\n if (!this.rendered) {\r\n this.cdrSubject.next();\r\n } else {\r\n this.cdRef.detectChanges();\r\n }\r\n } else {\r\n this.cdRef.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) this.subscription.unsubscribe();\r\n }\r\n\r\n ngOnChanges() {\r\n this.check();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.cdrSubject.pipe(take(1)).subscribe(() => this.queue.add(() => this.cdRef.detectChanges()));\r\n this.rendered = true;\r\n }\r\n}\r\n","import {\r\n Directive,\r\n effect,\r\n Injector,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n TemplateRef,\r\n Type,\r\n ViewContainerRef,\r\n inject,\r\n input\r\n} from '@angular/core';\r\nimport compare from 'just-compare';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { ABP } from '../models/common';\r\nimport { ReplaceableComponents } from '../models/replaceable-components';\r\nimport { ReplaceableComponentsService } from '../services/replaceable-components.service';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\n\r\n@Directive({\r\n selector: '[abpReplaceableTemplate]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class ReplaceableTemplateDirective implements OnInit, OnChanges {\r\n private injector = inject(Injector);\r\n private templateRef = inject<TemplateRef<any>>(TemplateRef);\r\n private vcRef = inject(ViewContainerRef);\r\n private replaceableComponents = inject(ReplaceableComponentsService);\r\n private subscription = inject(SubscriptionService);\r\n\r\n readonly data = input.required<ReplaceableComponents.ReplaceableTemplateDirectiveInput<any, any>>({ alias: \"abpReplaceableTemplate\" });\r\n\r\n providedData = {\r\n inputs: {},\r\n outputs: {},\r\n } as ReplaceableComponents.ReplaceableTemplateData<any, any>;\r\n\r\n context = {} as any;\r\n\r\n externalComponent!: Type<any>;\r\n\r\n defaultComponentRef: any;\r\n\r\n defaultComponentSubscriptions = {} as ABP.Dictionary<Subscription>;\r\n\r\n initialized = false;\r\n\r\n constructor() {\r\n this.context = {\r\n initTemplate: (ref: any) => {\r\n this.resetDefaultComponent();\r\n this.defaultComponentRef = ref;\r\n this.setDefaultComponentInputs();\r\n },\r\n };\r\n\r\n effect(() => {\r\n const data = this.data();\r\n if (data?.inputs && this.defaultComponentRef) {\r\n this.setDefaultComponentInputs();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n const component$ = this.replaceableComponents\r\n .get$(this.data().componentKey)\r\n .pipe(\r\n filter(\r\n (res = {} as ReplaceableComponents.ReplaceableComponent) =>\r\n !this.initialized || !compare(res.component, this.externalComponent),\r\n ),\r\n );\r\n\r\n this.subscription.addOne(\r\n component$,\r\n (res = {} as ReplaceableComponents.ReplaceableComponent) => {\r\n this.vcRef.clear();\r\n this.externalComponent = res.component;\r\n if (this.defaultComponentRef) {\r\n this.resetDefaultComponent();\r\n }\r\n\r\n if (res.component) {\r\n this.setProvidedData();\r\n const customInjector = Injector.create({\r\n providers: [{ provide: 'REPLACEABLE_DATA', useValue: this.providedData }],\r\n parent: this.injector,\r\n });\r\n const ref = this.vcRef.createComponent(res.component, {\r\n index: 0,\r\n injector: customInjector,\r\n });\r\n } else {\r\n this.vcRef.createEmbeddedView(this.templateRef, this.context);\r\n }\r\n\r\n this.initialized = true;\r\n },\r\n );\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.data?.currentValue?.inputs && this.defaultComponentRef) {\r\n this.setDefaultComponentInputs();\r\n }\r\n }\r\n\r\n setDefaultComponentInputs() {\r\n const data = this.data();\r\n if (!this.defaultComponentRef || (!data.inputs && !data.outputs)) return;\r\n\r\n if (data.inputs) {\r\n for (const key in data.inputs) {\r\n if (Object.prototype.hasOwnProperty.call(data.inputs, key)) {\r\n if (!compare(this.defaultComponentRef[key], data.inputs[key].value)) {\r\n this.defaultComponentRef[key] = data.inputs[key].value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (data.outputs) {\r\n for (const key in data.outputs) {\r\n if (Object.prototype.hasOwnProperty.call(data.outputs, key)) {\r\n if (!this.defaultComponentSubscriptions[key]) {\r\n this.defaultComponentSubscriptions[key] = this.defaultComponentRef[key].subscribe(\r\n (value: any) => {\r\n this.data().outputs?.[key](value);\r\n },\r\n );\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setProvidedData() {\r\n this.providedData = { outputs: {}, ...this.data(), inputs: {} };\r\n\r\n const data = this.data();\r\n if (!data.inputs) return;\r\n Object.defineProperties(this.providedData.inputs, {\r\n ...Object.keys(data.inputs).reduce(\r\n (acc, key) => ({\r\n ...acc,\r\n [key]: {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => this.data().inputs?.[key]?.value,\r\n ...(this.data().inputs?.[key]?.twoWay && {\r\n set: (newValue: any) => {\r\n const dataValue = this.data();\r\n if (dataValue.inputs?.[key]) {\r\n dataValue.inputs[key].value = newValue;\r\n }\r\n if (dataValue.outputs?.[`${key}Change`]) {\r\n dataValue.outputs[`${key}Change`](newValue);\r\n }\r\n },\r\n }),\r\n },\r\n }),\r\n {},\r\n ),\r\n });\r\n }\r\n\r\n resetDefaultComponent() {\r\n Object.keys(this.defaultComponentSubscriptions).forEach(key => {\r\n this.defaultComponentSubscriptions[key].unsubscribe();\r\n });\r\n this.defaultComponentSubscriptions = {} as ABP.Dictionary<Subscription>;\r\n this.defaultComponentRef = null;\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit, inject, output } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\n\r\n@Directive({\r\n selector: '[click.stop]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class StopPropagationDirective implements OnInit {\r\n private el = inject(ElementRef);\r\n private subscription = inject(SubscriptionService);\r\n\r\n readonly stopPropEvent = output<MouseEvent>({ alias: 'click.stop' });\r\n\r\n ngOnInit(): void {\r\n this.subscription.addOne(fromEvent<MouseEvent>(this.el.nativeElement, 'click'), event => {\r\n event.stopPropagation();\r\n this.stopPropEvent.emit(event);\r\n });\r\n }\r\n}\r\n","import { Directive, ElementRef, effect, inject, input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpShowPassword]',\r\n})\r\nexport class ShowPasswordDirective {\r\n protected readonly elementRef = inject(ElementRef);\r\n\r\n readonly abpShowPassword = input(false);\r\n\r\n constructor() {\r\n effect(() => {\r\n const visible = this.abpShowPassword();\r\n const element = this.elementRef.nativeElement as HTMLInputElement;\r\n if (!element) return;\r\n\r\n element.type = visible ? 'text' : 'password';\r\n });\r\n }\r\n}\r\n","import { Directive, HostListener, output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpCapsLock]',\r\n})\r\nexport class TrackCapsLockDirective {\r\n readonly capsLock = output<boolean>({ alias: 'abpCapsLock' });\r\n\r\n @HostListener('window:keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent): void {\r\n this.capsLock.emit(this.isCapsLockOpen(event));\r\n }\r\n @HostListener('window:keyup', ['$event'])\r\n onKeyUp(event: KeyboardEvent): void {\r\n this.capsLock.emit(this.isCapsLockOpen(event));\r\n }\r\n\r\n isCapsLockOpen(e): boolean {\r\n const s = String.fromCharCode(e.which);\r\n if (\r\n (s.toUpperCase() === s && s.toLowerCase() !== s && e.shiftKey) ||\r\n (s.toUpperCase() !== s && s.toLowerCase() === s && e.shiftKey) ||\r\n (e.getModifierState && e.getModifierState('CapsLock'))\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","export {};\r\n\r\ndeclare global {\r\n interface Date {\r\n toLocalISOString?: () => string;\r\n }\r\n}\r\n\r\nDate.prototype.toLocalISOString = function (this: Date): string {\r\n const timezoneOffset = this.getTimezoneOffset();\r\n\r\n return new Date(this.getTime() - timezoneOffset * 60000).toISOString();\r\n};\r\n","import { Injector, inject, provideAppInitializer, PLATFORM_ID } from '@angular/core';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { SessionStateService } from '../services/session-state.service';\r\nimport { COOKIE_LANGUAGE_KEY } from '../tokens/cookie-language-key.token';\r\n\r\nexport function setLanguageToCookie() {\r\n const injector = inject(Injector);\r\n const platformId = injector.get(PLATFORM_ID);\r\n\r\n if (!isPlatformBrowser(platformId)) return;\r\n\r\n const sessionState = injector.get(SessionStateService);\r\n const document = injector.get(DOCUMENT);\r\n const cookieLanguageKey = injector.get(COOKIE_LANGUAGE_KEY);\r\n sessionState.getLanguage$().subscribe(language => {\r\n const cookieValue = encodeURIComponent(`c=${language}|uic=${language}`);\r\n document.cookie = `${cookieLanguageKey}=${cookieValue}`;\r\n });\r\n}\r\n\r\nexport const CookieLanguageProvider = provideAppInitializer(() => {\r\n setLanguageToCookie();\r\n});\r\n","import { LOCALE_ID, Provider, inject } from '@angular/core';\r\nimport { differentLocales } from '../constants/different-locales';\r\nimport { LocalizationService } from '../services/localization.service';\r\nimport { checkHasProp } from '../utils/common-utils';\r\n\r\nexport class LocaleId extends String {\r\n private localizationService = inject(LocalizationService);\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n toString(): string {\r\n const { currentLang } = this.localizationService;\r\n if (checkHasProp(differentLocales, currentLang)) {\r\n return differentLocales[currentLang];\r\n }\r\n return currentLang;\r\n }\r\n\r\n valueOf(): string {\r\n return this.toString();\r\n }\r\n}\r\n\r\nexport const LocaleProvider: Provider = {\r\n provide: LOCALE_ID,\r\n useClass: LocaleId,\r\n};","import { Provider } from '@angular/core';\r\nimport { INCUDE_LOCALIZATION_RESOURCES_TOKEN } from '../tokens/include-localization-resources.token';\r\n\r\nexport const IncludeLocalizationResourcesProvider: Provider = {\r\n provide: INCUDE_LOCALIZATION_RESOURCES_TOKEN,\r\n useValue: false,\r\n};\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Route, Router } from '@angular/router';\r\nimport { ABP } from '../models';\r\nimport { RoutesService } from '../services/routes.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RoutesHandler {\r\n private routes = inject(RoutesService);\r\n private router = inject(Router, { optional: true })!;\r\n\r\n constructor() {\r\n this.addRoutes();\r\n }\r\n\r\n addRoutes() {\r\n (this.router?.config as RouteData[])?.forEach(({ path = '', data }: RouteData) => {\r\n const routes = data?.routes;\r\n if (!routes) return;\r\n\r\n if (Array.isArray(routes)) {\r\n this.routes.add(routes);\r\n } else {\r\n const routesFlatten = flatRoutes([{ path, ...routes }], { path: '' });\r\n this.routes.add(routesFlatten);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction flatRoutes(routes: RouteDef[], parent: any) {\r\n if (!routes) return [];\r\n\r\n return routes.reduce((acc, route) => {\r\n const { children, ...current } = {\r\n ...route,\r\n parentName: parent.name,\r\n path: (parent.path + '/' + route.path).replace(/\\/\\//g, '/'),\r\n };\r\n\r\n acc.push(current, ...flatRoutes(children, current));\r\n\r\n return acc;\r\n }, [] as ABP.Route[]);\r\n}\r\n\r\ntype RouteDef = ABP.Route & { children: RouteDef[] };\r\ntype RouteData = Route & { data: { routes: RouteDef | Array<RouteDef> } };\r\n","import {\r\n HttpHandler,\r\n HttpHeaders,\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpEvent,\r\n} from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpWaitService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiInterceptor implements IApiInterceptor {\r\n private httpWaitService = inject(HttpWaitService);\r\n\r\n getAdditionalHeaders(existingHeaders?: HttpHeaders) {\r\n return existingHeaders || new HttpHeaders();\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n this.httpWaitService.addRequest(request);\r\n return next.handle(request).pipe(finalize(() => this.httpWaitService.deleteRequest(request)));\r\n }\r\n}\r\n\r\nexport interface IApiInterceptor extends HttpInterceptor {\r\n getAdditionalHeaders(existingHeaders?: HttpHeaders): HttpHeaders;\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { HttpHandlerFn, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\r\nimport { TimezoneService } from '../services';\r\n\r\nexport const timezoneInterceptor: HttpInterceptorFn = (\r\n req: HttpRequest<any>,\r\n next: HttpHandlerFn,\r\n) => {\r\n const timezoneService = inject(TimezoneService);\r\n\r\n if (!timezoneService.isUtcClockEnabled) {\r\n return next(req);\r\n }\r\n const timezone = timezoneService.timezone;\r\n if (timezone) {\r\n req = req.clone({\r\n setHeaders: {\r\n __timezone: timezone,\r\n },\r\n });\r\n }\r\n return next(req);\r\n};\r\n","import { inject, makeStateKey, PLATFORM_ID, TransferState } from '@angular/core';\r\nimport {\r\n HttpEvent,\r\n HttpHandlerFn,\r\n HttpInterceptorFn,\r\n HttpRequest,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nexport const transferStateInterceptor: HttpInterceptorFn = (\r\n req: HttpRequest<any>,\r\n next: HttpHandlerFn,\r\n): Observable<HttpEvent<any>> => {\r\n const transferState = inject(TransferState);\r\n const platformId = inject(PLATFORM_ID);\r\n\r\n if (req.method !== 'GET') {\r\n return next(req);\r\n }\r\n\r\n const stateKey = makeStateKey<HttpResponse<any>>(req.urlWithParams);\r\n\r\n if (isPlatformBrowser(platformId)) {\r\n const storedResponse = transferState.get<HttpResponse<any>>(stateKey, null);\r\n if (storedResponse) {\r\n transferState.remove(stateKey);\r\n return of(new HttpResponse<any>({ body: storedResponse, status: 200 }));\r\n }\r\n }\r\n\r\n return next(req).pipe(\r\n tap(event => {\r\n if (isPlatformServer(platformId) && event instanceof HttpResponse) {\r\n transferState.set(stateKey, event.body);\r\n console.log(`Interceptor: ${req.urlWithParams} is stored in TransferState.`);\r\n }\r\n }),\r\n );\r\n};\r\n","import { makeEnvironmentProviders, Provider, provideAppInitializer, inject } from '@angular/core';\r\nimport { TitleStrategy } from '@angular/router';\r\nimport {\r\n provideHttpClient,\r\n withFetch,\r\n withInterceptors,\r\n withInterceptorsFromDi,\r\n withXsrfConfiguration,\r\n} from '@angular/common/http';\r\nimport {\r\n CORE_OPTIONS,\r\n LOCALIZATIONS,\r\n DYNAMIC_LAYOUTS_TOKEN,\r\n OTHERS_GROUP,\r\n QUEUE_MANAGER,\r\n SORT_COMPARE_FUNC,\r\n TENANT_KEY,\r\n compareFuncFactory,\r\n coreOptionsFactory,\r\n localizationContributor,\r\n} from '../tokens';\r\nimport { RoutesHandler } from '../handlers';\r\nimport { ABP, SortableItem } from '../models';\r\nimport { AuthErrorFilterService } from '../abstracts';\r\nimport { DEFAULT_DYNAMIC_LAYOUTS } from '../constants';\r\nimport {\r\n LocalizationService,\r\n LocalStorageListenerService,\r\n AbpTitleStrategy,\r\n UILocalizationService,\r\n} from '../services';\r\nimport { DefaultQueueManager, getInitialData } from '../utils';\r\nimport { CookieLanguageProvider, IncludeLocalizationResourcesProvider, LocaleProvider } from './';\r\nimport { timezoneInterceptor, transferStateInterceptor } from '../interceptors';\r\n\r\nexport enum CoreFeatureKind {\r\n Options,\r\n CompareFunctionFactory,\r\n TitleStrategy,\r\n}\r\n\r\nexport interface CoreFeature<KindT extends CoreFeatureKind> {\r\n ɵkind: KindT;\r\n ɵproviders: Provider[];\r\n}\r\n\r\nfunction makeCoreFeature<KindT extends CoreFeatureKind>(\r\n kind: KindT,\r\n providers: Provider[],\r\n): CoreFeature<KindT> {\r\n return {\r\n ɵkind: kind,\r\n ɵproviders: providers,\r\n };\r\n}\r\n\r\nexport function withOptions(options = {} as ABP.Root): CoreFeature<CoreFeatureKind.Options> {\r\n return makeCoreFeature(CoreFeatureKind.Options, [\r\n {\r\n provide: 'CORE_OPTIONS',\r\n useValue: options,\r\n },\r\n {\r\n provide: CORE_OPTIONS,\r\n useFactory: coreOptionsFactory,\r\n deps: ['CORE_OPTIONS'],\r\n },\r\n { provide: TENANT_KEY, useValue: options.tenantKey || '__tenant' },\r\n {\r\n provide: LOCALIZATIONS,\r\n multi: true,\r\n useValue: localizationContributor(options.localizations),\r\n deps: [LocalizationService],\r\n },\r\n {\r\n provide: OTHERS_GROUP,\r\n useValue: options.othersGroup || 'AbpUi::OthersGroup',\r\n },\r\n {\r\n provide: DYNAMIC_LAYOUTS_TOKEN,\r\n useValue: options.dynamicLayouts || DEFAULT_DYNAMIC_LAYOUTS,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withTitleStrategy(strategy: unknown): CoreFeature<CoreFeatureKind.TitleStrategy> {\r\n return makeCoreFeature(CoreFeatureKind.TitleStrategy, [\r\n {\r\n provide: TitleStrategy,\r\n useExisting: strategy,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withCompareFuncFactory(\r\n factory: (a: SortableItem, b: SortableItem) => 1 | -1 | 0,\r\n): CoreFeature<CoreFeatureKind.CompareFunctionFactory> {\r\n return makeCoreFeature(CoreFeatureKind.CompareFunctionFactory, [\r\n {\r\n provide: SORT_COMPARE_FUNC,\r\n useFactory: factory,\r\n },\r\n ]);\r\n}\r\n\r\nexport function provideAbpCore(...features: CoreFeature<CoreFeatureKind>[]) {\r\n const providers = [\r\n provideHttpClient(\r\n withInterceptorsFromDi(),\r\n withXsrfConfiguration({\r\n cookieName: 'XSRF-TOKEN',\r\n headerName: 'RequestVerificationToken',\r\n }),\r\n withFetch(),\r\n withInterceptors([transferStateInterceptor, timezoneInterceptor]),\r\n ),\r\n provideAppInitializer(async () => {\r\n inject(LocalizationService);\r\n inject(LocalStorageListenerService);\r\n inject(RoutesHandler);\r\n // Initialize UILocalizationService if UI-only mode is enabled\r\n const options = inject(CORE_OPTIONS);\r\n if (options?.uiLocalization?.enabled) {\r\n inject(UILocalizationService);\r\n }\r\n await getInitialData();\r\n }),\r\n LocaleProvider,\r\n CookieLanguageProvider,\r\n {\r\n provide: SORT_COMPARE_FUNC,\r\n useFactory: compareFuncFactory,\r\n },\r\n {\r\n provide: QUEUE_MANAGER,\r\n useClass: DefaultQueueManager,\r\n },\r\n AuthErrorFilterService,\r\n IncludeLocalizationResourcesProvider,\r\n {\r\n provide: TitleStrategy,\r\n useExisting: AbpTitleStrategy,\r\n },\r\n ];\r\n\r\n for (const feature of features) {\r\n providers.push(...feature.ɵproviders);\r\n }\r\n\r\n return makeEnvironmentProviders(providers);\r\n}\r\n\r\nexport function provideAbpCoreChild(options = {} as ABP.Child) {\r\n return makeEnvironmentProviders([\r\n {\r\n provide: LOCALIZATIONS,\r\n multi: true,\r\n useValue: localizationContributor(options.localizations),\r\n deps: [LocalizationService],\r\n },\r\n ]);\r\n}\r\n","import { Injectable, Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { LocalizationWithDefault } from '../models/localization';\r\nimport { LocalizationService } from '../services/localization.service';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpLocalization',\r\n})\r\nexport class LocalizationPipe implements PipeTransform {\r\n private localization = inject(LocalizationService);\r\n\r\n\r\n transform(\r\n value: string | LocalizationWithDefault = '',\r\n ...interpolateParams: (string | string[] | undefined)[]\r\n ): string {\r\n const params =\r\n interpolateParams.reduce((acc, val) => {\r\n if (!acc) {\r\n return val;\r\n }\r\n if (!val) {\r\n return acc;\r\n }\r\n return Array.isArray(val) ? [...acc, ...val] : [...acc, val];\r\n }, []) || [];\r\n return this.localization.instant(value, ...params);\r\n }\r\n}\r\n","import { inject, Injectable, Pipe, PipeTransform, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpSafeHtml',\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n private readonly sanitizer = inject(DomSanitizer);\r\n\r\n transform(value: string): string {\r\n if (typeof value !== 'string') return '';\r\n return this.sanitizer.sanitize(SecurityContext.HTML, value);\r\n }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nexport type SortOrder = 'asc' | 'desc';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpSort',\r\n})\r\nexport class SortPipe implements PipeTransform {\r\n transform(value: any[], sortOrder: SortOrder | string = 'asc', sortKey?: string | number): any {\r\n sortOrder = sortOrder && (sortOrder.toLowerCase() as any);\r\n\r\n if (!value || (sortOrder !== 'asc' && sortOrder !== 'desc')) return value;\r\n\r\n let numberArray = [];\r\n let stringArray = [];\r\n\r\n if (!sortKey) {\r\n numberArray = value.filter(item => typeof item === 'number').sort();\r\n stringArray = value.filter(item => typeof item === 'string').sort();\r\n } else {\r\n numberArray = value\r\n .filter(item => typeof item[sortKey] === 'number')\r\n .sort((a, b) => a[sortKey] - b[sortKey]);\r\n stringArray = value\r\n .filter(item => typeof item[sortKey] === 'string')\r\n .sort((a, b) => {\r\n if (a[sortKey] < b[sortKey]) return -1;\r\n else if (a[sortKey] > b[sortKey]) return 1;\r\n else return 0;\r\n });\r\n }\r\n const sorted = [\r\n ...numberArray,\r\n ...stringArray,\r\n ...value.filter(\r\n item =>\r\n typeof (sortKey ? item[sortKey] : item) !== 'number' &&\r\n typeof (sortKey ? item[sortKey] : item) !== 'string',\r\n ),\r\n ];\r\n return sortOrder === 'asc' ? sorted : sorted.reverse();\r\n }\r\n}\r\n","import { InjectionToken, Injector, Pipe, PipeTransform, inject } from '@angular/core';\r\n\r\nexport const INJECTOR_PIPE_DATA_TOKEN = new InjectionToken<PipeTransform>(\r\n 'INJECTOR_PIPE_DATA_TOKEN',\r\n);\r\n\r\n@Pipe({\r\n name: 'toInjector',\r\n})\r\nexport class ToInjectorPipe implements PipeTransform {\r\n private injector = inject(Injector);\r\n\r\n transform(\r\n value: any,\r\n token: InjectionToken<any> = INJECTOR_PIPE_DATA_TOKEN,\r\n name = 'ToInjectorPipe',\r\n ): Injector {\r\n return Injector.create({\r\n providers: [\r\n {\r\n provide: token,\r\n useValue: value,\r\n },\r\n ],\r\n parent: this.injector,\r\n name,\r\n });\r\n }\r\n}\r\n","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { LOCALE_ID, Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { ConfigStateService } from '../services';\r\nimport { getShortDateFormat } from '../utils/date-utils';\r\n\r\n@Pipe({\r\n name: 'shortDate',\r\n pure: true,\r\n})\r\nexport class ShortDatePipe extends DatePipe implements PipeTransform {\r\n private configStateService = inject(ConfigStateService);\r\n\r\n constructor() {\r\n const locale = inject(LOCALE_ID);\r\n const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });\r\n\r\n super(locale, defaultTimezone);\r\n }\r\n\r\n transform(\r\n value: Date | string | number,\r\n format?: string,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null;\r\n transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n transform(\r\n value: string | number | Date | null | undefined,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null {\r\n const format = getShortDateFormat(this.configStateService);\r\n return super.transform(value, format, timezone, locale);\r\n }\r\n}\r\n","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { LOCALE_ID, Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { ConfigStateService } from '../services';\r\nimport { getShortTimeFormat } from '../utils/date-utils';\r\n\r\n@Pipe({\r\n name: 'shortTime',\r\n pure: true,\r\n})\r\nexport class ShortTimePipe extends DatePipe implements PipeTransform {\r\n private configStateService = inject(ConfigStateService);\r\n\r\n constructor() {\r\n const locale = inject(LOCALE_ID);\r\n const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });\r\n\r\n super(locale, defaultTimezone);\r\n }\r\n\r\n transform(\r\n value: Date | string | number,\r\n format?: string,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null;\r\n transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n transform(\r\n value: string | number | Date | null | undefined,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null {\r\n const format = getShortTimeFormat(this.configStateService);\r\n return super.transform(value, format, timezone, locale);\r\n }\r\n}\r\n","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { LOCALE_ID, Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { ConfigStateService } from '../services';\r\nimport { getShortDateShortTimeFormat } from '../utils/date-utils';\r\n\r\n@Pipe({\r\n name: 'shortDateTime',\r\n pure: true,\r\n})\r\nexport class ShortDateTimePipe extends DatePipe implements PipeTransform {\r\n private configStateService = inject(ConfigStateService);\r\n\r\n constructor() {\r\n const locale = inject(LOCALE_ID);\r\n const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });\r\n\r\n super(locale, defaultTimezone);\r\n }\r\n\r\n transform(\r\n value: Date | string | number,\r\n format?: string,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null;\r\n transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n transform(\r\n value: string | number | Date | null | undefined,\r\n timezone?: string,\r\n locale?: string,\r\n ): string | null {\r\n const format = getShortDateShortTimeFormat(this.configStateService);\r\n return super.transform(value, format, timezone, locale);\r\n }\r\n}\r\n","import { Pipe, PipeTransform, Injectable, inject, LOCALE_ID } from '@angular/core';\r\nimport { ConfigStateService, LocalizationService, TimeService, TimezoneService } from '../services';\r\nimport { getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat } from '../utils';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpUtcToLocal',\r\n})\r\nexport class UtcToLocalPipe implements PipeTransform {\r\n protected readonly timezoneService = inject(TimezoneService);\r\n protected readonly timeService = inject(TimeService);\r\n protected readonly configState = inject(ConfigStateService);\r\n protected readonly localizationService = inject(LocalizationService);\r\n protected readonly locale = inject(LOCALE_ID);\r\n\r\n transform(\r\n value: string | Date | null | undefined,\r\n type: 'date' | 'datetime' | 'time',\r\n ): string | Date {\r\n if (!value) return '';\r\n\r\n const date = new Date(value);\r\n if (isNaN(date.getTime())) return '';\r\n\r\n const format = this.getFormat(type);\r\n\r\n try {\r\n if (this.timezoneService.isUtcClockEnabled) {\r\n const timeZone = this.timezoneService.timezone;\r\n return this.timeService.formatDateWithStandardOffset(date, format, timeZone);\r\n } else {\r\n return this.timeService.formatWithoutTimeZone(date, format);\r\n }\r\n } catch (err) {\r\n return value;\r\n }\r\n }\r\n\r\n private getFormat(propType: 'date' | 'datetime' | 'time'): string {\r\n switch (propType) {\r\n case 'date':\r\n return getShortDateFormat(this.configState);\r\n case 'time':\r\n return getShortTimeFormat(this.configState);\r\n case 'datetime':\r\n default:\r\n return getShortDateShortTimeFormat(this.configState);\r\n }\r\n }\r\n}\r\n","import { inject, Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport {\r\n Observable,\r\n of,\r\n filter,\r\n take,\r\n switchMap,\r\n map,\r\n startWith,\r\n distinctUntilChanged,\r\n} from 'rxjs';\r\nimport { ConfigStateService, LocalizationService } from '../services';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpAsyncLocalization',\r\n})\r\nexport class AsyncLocalizationPipe implements PipeTransform {\r\n private localizationService = inject(LocalizationService);\r\n private configStateService = inject(ConfigStateService);\r\n\r\n transform(key: string, ...params: (string | string[])[]): Observable<string> {\r\n if (!key) {\r\n return of('');\r\n }\r\n\r\n const flatParams = params.reduce<string[]>(\r\n (acc, val) => (Array.isArray(val) ? acc.concat(val) : [...acc, val]),\r\n [],\r\n );\r\n\r\n return this.configStateService.getAll$().pipe(\r\n filter(config => !!config.localization),\r\n take(1),\r\n switchMap(() => this.localizationService.get(key, ...flatParams)),\r\n map(translation => (translation && translation !== key ? translation : '')),\r\n startWith(''),\r\n distinctUntilChanged(),\r\n );\r\n }\r\n}\r\n","import { Injectable, Pipe } from '@angular/core';\r\nimport { AsyncLocalizationPipe } from './async-localization.pipe';\r\n\r\n/**\r\n * @deprecated Use `AsyncLocalizationPipe` instead. This pipe will be removed in a future version.\r\n * LazyLocalizationPipe has been renamed to AsyncLocalizationPipe to better express its async nature.\r\n */\r\n@Injectable()\r\n@Pipe({\r\n name: 'abpLazyLocalization',\r\n})\r\nexport class LazyLocalizationPipe extends AsyncLocalizationPipe {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'htmlEncode',\r\n})\r\nexport class HtmlEncodePipe implements PipeTransform {\r\n transform(value: string): string {\r\n if (!value) {\r\n return value;\r\n }\r\n\r\n return value\r\n .replace(/&/g, '&amp;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&#39;');\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n provideHttpClient,\r\n withInterceptorsFromDi,\r\n withXsrfConfiguration,\r\n withFetch,\r\n} from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AbstractNgModelComponent } from './abstracts';\r\nimport {\r\n DynamicLayoutComponent,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n} from './components';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport {\r\n StopPropagationDirective,\r\n ReplaceableTemplateDirective,\r\n PermissionDirective,\r\n InitDirective,\r\n ForDirective,\r\n InputEventDebounceDirective,\r\n AutofocusDirective,\r\n FormSubmitDirective,\r\n} from './directives';\r\nimport { ABP } from './models/common';\r\nimport './utils/date-extensions';\r\nimport { provideAbpCoreChild, provideAbpCore, withOptions } from './providers';\r\nimport {\r\n AsyncLocalizationPipe,\r\n LazyLocalizationPipe,\r\n UtcToLocalPipe,\r\n SafeHtmlPipe,\r\n ShortDatePipe,\r\n ShortTimePipe,\r\n ShortDateTimePipe,\r\n ToInjectorPipe,\r\n SortPipe,\r\n LocalizationPipe,\r\n} from './pipes';\r\n\r\nconst CORE_DIRECTIVES = [\r\n AutofocusDirective,\r\n InputEventDebounceDirective,\r\n ForDirective,\r\n FormSubmitDirective,\r\n InitDirective,\r\n PermissionDirective,\r\n ReplaceableTemplateDirective,\r\n StopPropagationDirective,\r\n];\r\n\r\nconst CORE_PIPES = [\r\n LocalizationPipe,\r\n SortPipe,\r\n SafeHtmlPipe,\r\n ShortDateTimePipe,\r\n ShortTimePipe,\r\n ShortDatePipe,\r\n ToInjectorPipe,\r\n UtcToLocalPipe,\r\n AsyncLocalizationPipe,\r\n LazyLocalizationPipe,\r\n];\r\n\r\nconst CORE_COMPONENTS = [\r\n DynamicLayoutComponent,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n AbstractNgModelComponent,\r\n];\r\n/**\r\n * BaseCoreModule is the module that holds\r\n * all imports, declarations, exports, and entryComponents\r\n * but not the providers.\r\n * This module will be imported and exported by all others.\r\n */\r\n@NgModule({\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NgxValidateCoreModule,\r\n ...CORE_DIRECTIVES,\r\n ...CORE_PIPES,\r\n ...CORE_COMPONENTS,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NgxValidateCoreModule,\r\n ...CORE_DIRECTIVES,\r\n ...CORE_PIPES,\r\n ...CORE_COMPONENTS,\r\n ],\r\n declarations: [],\r\n providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi(), withFetch())],\r\n})\r\nexport class BaseCoreModule {}\r\n\r\n/**\r\n * RootCoreModule is the module that will be used at root level\r\n * and it introduces imports useful at root level (e.g. NGXS)\r\n */\r\n@NgModule({\r\n exports: [BaseCoreModule],\r\n imports: [BaseCoreModule],\r\n providers: [\r\n provideHttpClient(\r\n withXsrfConfiguration({\r\n cookieName: 'XSRF-TOKEN',\r\n headerName: 'RequestVerificationToken',\r\n }),\r\n ),\r\n ],\r\n})\r\nexport class RootCoreModule {}\r\n\r\n/**\r\n * CoreModule is the module that is publicly available\r\n */\r\n@NgModule({\r\n exports: [BaseCoreModule],\r\n imports: [BaseCoreModule],\r\n})\r\nexport class CoreModule {\r\n /**\r\n * @deprecated forRoot method is deprecated, use `provideAbpCore` *function* for config settings.\r\n */\r\n static forRoot(options = {} as ABP.Root): ModuleWithProviders<RootCoreModule> {\r\n return {\r\n ngModule: RootCoreModule,\r\n providers: [provideAbpCore(withOptions(options))],\r\n };\r\n }\r\n\r\n /**\r\n * @deprecated forChild method is deprecated, use `provideAbpCoreChild` *function* for config settings.\r\n */\r\n static forChild(options = {} as ABP.Child): ModuleWithProviders<RootCoreModule> {\r\n return {\r\n ngModule: RootCoreModule,\r\n providers: [provideAbpCoreChild(options)],\r\n };\r\n }\r\n}\r\n","import { Injectable, inject, PLATFORM_ID } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n CanActivateFn,\r\n Router,\r\n RouterStateSnapshot,\r\n UrlTree,\r\n} from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { filter, map, switchMap, take } from 'rxjs/operators';\r\nimport { AuthService, IAbpGuard } from '../abstracts';\r\nimport { findRoute, getRoutePath } from '../utils/route-utils';\r\nimport { RoutesService, PermissionService, HttpErrorReporterService, ConfigStateService } from '../services';\r\nimport { isPlatformServer } from '@angular/common';\r\n/**\r\n * @deprecated Use `permissionGuard` *function* instead.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PermissionGuard implements IAbpGuard {\r\n protected readonly router = inject(Router);\r\n protected readonly routesService = inject(RoutesService);\r\n protected readonly authService = inject(AuthService);\r\n protected readonly permissionService = inject(PermissionService);\r\n protected readonly httpErrorReporter = inject(HttpErrorReporterService);\r\n protected readonly configStateService = inject(ConfigStateService);\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> {\r\n let { requiredPolicy } = route.data || {};\r\n\r\n if (!requiredPolicy) {\r\n const routeFound = findRoute(this.routesService, getRoutePath(this.router, state.url));\r\n requiredPolicy = routeFound?.requiredPolicy;\r\n }\r\n\r\n if (!requiredPolicy) {\r\n return of(true);\r\n }\r\n\r\n return this.configStateService.getAll$().pipe(\r\n filter(config => !!config?.auth?.grantedPolicies),\r\n take(1),\r\n switchMap(() => this.permissionService.getGrantedPolicy$(requiredPolicy)),\r\n take(1),\r\n map(access => {\r\n if (access) return true;\r\n\r\n if (route.data?.['redirectUrl']) {\r\n return this.router.parseUrl(route.data['redirectUrl']);\r\n }\r\n\r\n if (this.authService.isAuthenticated) {\r\n this.httpErrorReporter.reportError({ status: 403 } as HttpErrorResponse);\r\n }\r\n return false;\r\n }),\r\n );\r\n }\r\n}\r\n\r\nexport const permissionGuard: CanActivateFn = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n) => {\r\n const router = inject(Router);\r\n const routesService = inject(RoutesService);\r\n const authService = inject(AuthService);\r\n const permissionService = inject(PermissionService);\r\n const httpErrorReporter = inject(HttpErrorReporterService);\r\n const configStateService = inject(ConfigStateService);\r\n const platformId = inject(PLATFORM_ID);\r\n\r\n let { requiredPolicy } = route.data || {};\r\n\r\n if (!requiredPolicy) {\r\n const routeFound = findRoute(routesService, getRoutePath(router, state.url));\r\n requiredPolicy = routeFound?.requiredPolicy;\r\n }\r\n\r\n if (!requiredPolicy) {\r\n return of(true);\r\n }\r\n\r\n //TODO enable permission check on ssr\r\n if (isPlatformServer(platformId)) {\r\n return of(true);\r\n }\r\n\r\n return configStateService.getAll$().pipe(\r\n filter(config => !!config?.auth?.grantedPolicies),\r\n take(1),\r\n switchMap(() => permissionService.getGrantedPolicy$(requiredPolicy)),\r\n take(1),\r\n map(access => {\r\n if (access) return true;\r\n\r\n if (route.data?.['redirectUrl']) {\r\n return router.parseUrl(route.data['redirectUrl']);\r\n }\r\n\r\n if (authService.isAuthenticated) {\r\n httpErrorReporter.reportError({ status: 403 } as HttpErrorResponse);\r\n }\r\n\r\n return false;\r\n }),\r\n );\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { LocalizationPipe } from './pipes/localization.pipe';\r\nimport { AsyncLocalizationPipe, LazyLocalizationPipe } from './pipes';\r\n\r\n/**\r\n * @deprecated Use `LocalizationPipe`, `AsyncLocalizationPipe` and `LazyLocalizationPipe` directly as a standalone pipe.\r\n * This module is no longer necessary for using the `LocalizationPipe`, `AsyncLocalizationPipe` and `LazyLocalizationPipe` pipes.\r\n */\r\n\r\n@NgModule({\r\n exports: [LocalizationPipe, AsyncLocalizationPipe, LazyLocalizationPipe],\r\n imports: [LocalizationPipe, AsyncLocalizationPipe, LazyLocalizationPipe],\r\n})\r\nexport class LocalizationModule {}\r\n","import { ABP } from './common';\r\nimport { checkHasProp } from '../utils/common-utils';\r\n\r\nexport class ListResultDto<T> {\r\n items?: T[];\r\n\r\n constructor(initialValues: Partial<ListResultDto<T>> = {}) {\r\n for (const key in initialValues) {\r\n if (checkHasProp(initialValues, key)) {\r\n this[key] = initialValues[key];\r\n }\r\n }\r\n }\r\n}\r\ntype ValueOf<T> = T[keyof T];\r\nexport class PagedResultDto<T> extends ListResultDto<T> {\r\n totalCount?: number;\r\n\r\n constructor(initialValues: Partial<PagedResultDto<T>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleObject {\r\n extraProperties?: ABP.Dictionary<any>;\r\n\r\n constructor(initialValues: Partial<ExtensibleObject> = {}) {\r\n for (const key in initialValues) {\r\n if (checkHasProp(initialValues, key) && initialValues[key] !== undefined) {\r\n this[key] = initialValues[key];\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class ExtensibleEntityDto<TKey = string> extends ExtensibleObject {\r\n id?: TKey;\r\n\r\n constructor(initialValues: Partial<ExtensibleEntityDto<TKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class LimitedResultRequestDto {\r\n maxResultCount = 10;\r\n\r\n constructor(initialValues: Partial<LimitedResultRequestDto> = {}) {\r\n for (const key in initialValues) {\r\n if (checkHasProp(initialValues, key) && initialValues[key] !== undefined) {\r\n this[key] = initialValues[key] as ValueOf<LimitedResultRequestDto>;\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class ExtensibleLimitedResultRequestDto extends ExtensibleEntityDto {\r\n maxResultCount = 10;\r\n\r\n constructor(initialValues: Partial<ExtensibleLimitedResultRequestDto> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class PagedResultRequestDto extends LimitedResultRequestDto {\r\n skipCount?: number;\r\n\r\n constructor(initialValues: Partial<PagedResultRequestDto> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensiblePagedResultRequestDto extends ExtensibleLimitedResultRequestDto {\r\n skipCount?: number;\r\n\r\n constructor(initialValues: Partial<ExtensiblePagedResultRequestDto> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class PagedAndSortedResultRequestDto extends PagedResultRequestDto {\r\n sorting?: string;\r\n\r\n constructor(initialValues: Partial<PagedAndSortedResultRequestDto> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensiblePagedAndSortedResultRequestDto extends ExtensiblePagedResultRequestDto {\r\n sorting?: string;\r\n\r\n constructor(initialValues: Partial<ExtensiblePagedAndSortedResultRequestDto> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class EntityDto<TKey = string> {\r\n id?: TKey;\r\n\r\n constructor(initialValues: Partial<EntityDto<TKey>> = {}) {\r\n for (const key in initialValues) {\r\n if (checkHasProp(initialValues, key)) {\r\n this[key] = initialValues[key];\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class CreationAuditedEntityDto<TPrimaryKey = string> extends EntityDto<TPrimaryKey> {\r\n creationTime?: string | Date;\r\n creatorId?: string;\r\n\r\n constructor(initialValues: Partial<CreationAuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class CreationAuditedEntityWithUserDto< \r\n TPrimaryKey = string,\r\n TUserDto = any\r\n> extends CreationAuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n\r\n constructor(\r\n initialValues: Partial<CreationAuditedEntityWithUserDto<TPrimaryKey,TUserDto>> = {},\r\n ) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class AuditedEntityDto<TPrimaryKey = string> extends CreationAuditedEntityDto<TPrimaryKey> {\r\n lastModificationTime?: string | Date;\r\n lastModifierId?: string;\r\n\r\n constructor(initialValues: Partial<AuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\n/** @deprecated the class signature will change in v8.0 */ \r\nexport class AuditedEntityWithUserDto<\r\n TPrimaryKey = string,\r\n TUserDto = any,\r\n> extends AuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n lastModifier?: TUserDto;\r\n\r\n constructor(initialValues: Partial<AuditedEntityWithUserDto< TPrimaryKey,TUserDto>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class FullAuditedEntityDto<TPrimaryKey = string> extends AuditedEntityDto<TPrimaryKey> {\r\n isDeleted?: boolean;\r\n deleterId?: string;\r\n deletionTime?: Date | string;\r\n\r\n constructor(initialValues: Partial<FullAuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n/** @deprecated the class signature will change in v8.0 */ \r\nexport class FullAuditedEntityWithUserDto<\r\n TPrimaryKey = string,\r\n TUserDto = any\r\n> extends FullAuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n lastModifier?: TUserDto;\r\n deleter?: TUserDto;\r\n\r\n constructor(initialValues: Partial<FullAuditedEntityWithUserDto< TPrimaryKey,TUserDto>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleCreationAuditedEntityDto<\r\n TPrimaryKey = string,\r\n> extends ExtensibleEntityDto<TPrimaryKey> {\r\n creationTime?: Date | string;\r\n creatorId?: string;\r\n\r\n constructor(initialValues: Partial<ExtensibleCreationAuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleAuditedEntityDto<\r\n TPrimaryKey = string,\r\n> extends ExtensibleCreationAuditedEntityDto<TPrimaryKey> {\r\n lastModificationTime?: Date | string;\r\n lastModifierId?: string;\r\n\r\n constructor(initialValues: Partial<ExtensibleAuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleAuditedEntityWithUserDto<\r\n TPrimaryKey = string,\r\n TUserDto = any,\r\n> extends ExtensibleAuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n lastModifier?: TUserDto;\r\n\r\n constructor(initialValues: Partial<ExtensibleAuditedEntityWithUserDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleCreationAuditedEntityWithUserDto<\r\n TPrimaryKey = string,\r\n TUserDto = any,\r\n> extends ExtensibleCreationAuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n\r\n constructor(\r\n initialValues: Partial<ExtensibleCreationAuditedEntityWithUserDto<TPrimaryKey>> = {},\r\n ) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleFullAuditedEntityDto<\r\n TPrimaryKey = string,\r\n> extends ExtensibleAuditedEntityDto<TPrimaryKey> {\r\n isDeleted?: boolean;\r\n deleterId?: string;\r\n deletionTime?: Date | string;\r\n\r\n constructor(initialValues: Partial<ExtensibleFullAuditedEntityDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n\r\nexport class ExtensibleFullAuditedEntityWithUserDto<\r\n TPrimaryKey = string,\r\n TUserDto = any,\r\n> extends ExtensibleFullAuditedEntityDto<TPrimaryKey> {\r\n creator?: TUserDto;\r\n lastModifier?: TUserDto;\r\n deleter?: TUserDto;\r\n\r\n constructor(initialValues: Partial<ExtensibleFullAuditedEntityWithUserDto<TPrimaryKey>> = {}) {\r\n super(initialValues);\r\n }\r\n}\r\n","export type EventType =\r\n | 'discovery_document_loaded'\r\n | 'jwks_load_error'\r\n | 'invalid_nonce_in_state'\r\n | 'discovery_document_load_error'\r\n | 'discovery_document_validation_error'\r\n | 'user_profile_loaded'\r\n | 'user_profile_load_error'\r\n | 'token_received'\r\n | 'token_error'\r\n | 'code_error'\r\n | 'token_refreshed'\r\n | 'token_refresh_error'\r\n | 'silent_refresh_error'\r\n | 'silently_refreshed'\r\n | 'silent_refresh_timeout'\r\n | 'token_validation_error'\r\n | 'token_expires'\r\n | 'session_changed'\r\n | 'session_error'\r\n | 'session_terminated'\r\n | 'session_unchanged'\r\n | 'logout'\r\n | 'popup_closed'\r\n | 'popup_blocked'\r\n | 'token_revoke_error';\r\n\r\nexport abstract class AuthEvent {\r\n constructor(public readonly type: EventType) {\r\n this.type = type;\r\n }\r\n}\r\n\r\nexport class AuthSuccessEvent extends AuthEvent {\r\n constructor(public readonly type: EventType, public readonly info?: any) {\r\n super(type);\r\n }\r\n}\r\n\r\nexport class AuthInfoEvent extends AuthEvent {\r\n constructor(public readonly type: EventType, public readonly info?: any) {\r\n super(type);\r\n }\r\n}\r\n\r\nexport class AuthErrorEvent extends AuthEvent {\r\n constructor(\r\n public readonly type: EventType,\r\n public readonly reason: object,\r\n public readonly params?: object,\r\n ) {\r\n super(type);\r\n }\r\n}\r\n","import { RestService } from '../../../../../../services';\r\nimport { Rest } from '../../../../../../models';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport type { ApplicationApiDescriptionModel, ApplicationApiDescriptionModelRequestDto } from '../../../http/modeling/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApiDefinitionService {\n private restService = inject(RestService);\n\r\n apiName = 'abp';\r\n \r\n\r\n getByModel = (model: ApplicationApiDescriptionModelRequestDto, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ApplicationApiDescriptionModel>({\r\n method: 'GET',\r\n url: '/api/abp/api-definition',\r\n params: { includeTypes: model.includeTypes },\r\n },\r\n { apiName: this.apiName,...config });\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\nexport interface MinAgeError {\r\n minAge: {\r\n age: number;\r\n };\r\n}\r\n\r\nexport interface MinAgeOptions {\r\n age?: number;\r\n}\r\n\r\nexport function validateMinAge({ age = 18 }: MinAgeOptions = {}): ValidatorFn {\r\n return (control: AbstractControl): MinAgeError | null => {\r\n if (['', null, undefined].indexOf(control.value) > -1) return null;\r\n\r\n return isValidMinAge(control.value, age) ? null : { minAge: { age } };\r\n };\r\n}\r\n\r\nfunction isValidMinAge(value: string | number, minAge: number) {\r\n const date = new Date();\r\n date.setFullYear(date.getFullYear() - minAge);\r\n date.setHours(23, 59, 59, 999);\r\n\r\n return Number(new Date(value)) <= date.valueOf();\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\nexport interface CreditCardError {\r\n creditCard: true;\r\n}\r\n\r\nexport function validateCreditCard(): ValidatorFn {\r\n return (control: AbstractControl): CreditCardError | null => {\r\n if (['', null, undefined].indexOf(control.value) > -1) return null;\r\n\r\n return isValidCreditCard(String(control.value)) ? null : { creditCard: true };\r\n };\r\n}\r\n\r\nfunction isValidCreditCard(value: string): boolean {\r\n value = value.replace(/[ -]/g, '');\r\n\r\n if (!/^[0-9]{13,19}$/.test(value)) return false;\r\n\r\n let checksum = 0;\r\n let multiplier = 1;\r\n\r\n for (let i = value.length; i > 0; i--) {\r\n const digit = Number(value[i - 1]) * multiplier;\r\n checksum += (digit % 10) + ~~(digit / 10);\r\n\r\n multiplier = (multiplier * 2) % 3;\r\n }\r\n\r\n return checksum % 10 === 0;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\nexport interface RangeError {\r\n range: {\r\n max: number;\r\n min: number;\r\n };\r\n}\r\n\r\nexport interface RangeOptions {\r\n maximum?: number;\r\n minimum?: number;\r\n}\r\n\r\nexport function validateRange({ maximum = Infinity, minimum = 0 }: RangeOptions = {}): ValidatorFn {\r\n return (control: AbstractControl): RangeError | null => {\r\n if (['', null, undefined].indexOf(control.value) > -1) return null;\r\n\r\n const value = Number(control.value);\r\n return getMinError(value, minimum, maximum) || getMaxError(value, maximum, minimum);\r\n };\r\n}\r\n\r\nfunction getMaxError(value: number, max: number, min: number): RangeError | null {\r\n return value > max ? { range: { max, min } } : null;\r\n}\r\n\r\nfunction getMinError(value: number, min: number, max: number): RangeError | null {\r\n return value < min ? { range: { min, max } } : null;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\nexport interface RequiredError {\r\n required: true;\r\n}\r\n\r\nexport interface RequiredOptions {\r\n allowEmptyStrings?: boolean;\r\n}\r\n\r\nexport function validateRequired({ allowEmptyStrings }: RequiredOptions = {}): ValidatorFn {\r\n // note: please do not remove name of the function, it is used in function compare with type 'RequiredError'\r\n const required = (control: AbstractControl): RequiredError | null => {\r\n return isValidRequired(control.value, allowEmptyStrings) ? null : { required: true };\r\n };\r\n return required;\r\n}\r\n\r\nfunction isValidRequired(value: any, allowEmptyStrings: boolean | undefined): boolean {\r\n if (value || value === 0 || value === false) return true;\r\n\r\n if (allowEmptyStrings && value === '') return true;\r\n\r\n return false;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\nexport interface StringLengthError {\r\n maxlength?: {\r\n requiredLength: number;\r\n };\r\n minlength?: {\r\n requiredLength: number;\r\n };\r\n}\r\n\r\nexport interface StringLengthOptions {\r\n maximumLength?: number;\r\n minimumLength?: number;\r\n}\r\n\r\nexport function validateStringLength({\r\n maximumLength = Infinity,\r\n minimumLength = 0,\r\n}: StringLengthOptions = {}): ValidatorFn {\r\n return (control: AbstractControl): StringLengthError | null => {\r\n if (['', null, undefined].indexOf(control.value) > -1) return null;\r\n\r\n const value = String(control.value);\r\n\r\n return getMinLengthError(value, minimumLength) || getMaxLengthError(value, maximumLength);\r\n };\r\n}\r\n\r\nfunction getMaxLengthError(value: string, requiredLength: number): StringLengthError | null {\r\n return value.length > requiredLength ? { maxlength: { requiredLength } } : null;\r\n}\r\n\r\nfunction getMinLengthError(value: string, requiredLength: number): StringLengthError | null {\r\n return value.length < requiredLength ? { minlength: { requiredLength } } : null;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\nimport { isNullOrEmpty } from '../utils';\r\n\r\nexport interface UniqueCharacterError {\r\n uniqueCharacter: true;\r\n}\r\n\r\nexport function validateUniqueCharacter(): ValidatorFn {\r\n return (control: AbstractControl): UniqueCharacterError | null => {\r\n if (isNullOrEmpty(control.value)) return null;\r\n\r\n return isUnqiueCharacter(control.value) ? null : { uniqueCharacter: true };\r\n };\r\n}\r\n\r\nfunction isUnqiueCharacter(value: string): boolean {\r\n const set = new Set<string>(value.split(''));\r\n\r\n return set.size == value.length;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\nimport { isNullOrEmpty } from '../utils';\r\n\r\nexport interface UrlError {\r\n url: true;\r\n}\r\n\r\nexport function validateUrl(): ValidatorFn {\r\n return (control: AbstractControl): UrlError | null => {\r\n if (isNullOrEmpty(control.value)) return null;\r\n\r\n return isValidUrl(control.value) ? null : { url: true };\r\n };\r\n}\r\n\r\nfunction isValidUrl(value: string): boolean {\r\n if (/^http(s)?:\\/\\/[^/]/.test(value) || /^ftp:\\/\\/[^/]/.test(value)) {\r\n const a = document.createElement('a');\r\n a.href = value;\r\n return !!a.host;\r\n }\r\n\r\n return false;\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\nimport { isNullOrEmpty } from '../utils';\r\n\r\nexport interface UsernamePatternError {\r\n usernamePattern: {\r\n actualValue: string;\r\n };\r\n}\r\n\r\nexport interface UsernameOptions {\r\n pattern?: RegExp;\r\n}\r\n\r\nconst onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;\r\n\r\nexport function validateUsername(\r\n { pattern = /.*/ }: UsernameOptions = { pattern: onlyLetterAndNumberRegex },\r\n): ValidatorFn {\r\n return (control: AbstractControl): UsernamePatternError | null => {\r\n const isValid = isValidUserName(control.value, pattern);\r\n return isValid ? null : { usernamePattern: { actualValue: control.value } };\r\n };\r\n}\r\n\r\nfunction isValidUserName(value: any, pattern: RegExp): boolean {\r\n if (isNullOrEmpty(value)) return true;\r\n\r\n return pattern.test(value);\r\n}\r\n","import { Validators } from '@angular/forms';\r\nimport { validateMinAge } from './age.validator';\r\nimport { validateCreditCard } from './credit-card.validator';\r\nimport { validateRange } from './range.validator';\r\nimport { validateRequired } from './required.validator';\r\nimport { validateStringLength } from './string-length.validator';\r\nimport { validateUniqueCharacter } from './unique-character.validator';\r\nimport { validateUrl } from './url.validator';\r\nimport { validateUsername } from './username.validator';\r\nexport { validateUniqueCharacter } from './unique-character.validator';\r\n\r\nexport * from './age.validator';\r\nexport * from './credit-card.validator';\r\nexport * from './range.validator';\r\nexport * from './required.validator';\r\nexport * from './string-length.validator';\r\nexport * from './url.validator';\r\nexport * from './unique-character.validator';\r\nexport const AbpValidators = {\r\n creditCard: validateCreditCard,\r\n emailAddress: () => Validators.email,\r\n minAge: validateMinAge,\r\n range: validateRange,\r\n required: validateRequired,\r\n stringLength: validateStringLength,\r\n url: validateUrl,\r\n username: validateUsername,\r\n uniqueCharacter: validateUniqueCharacter,\r\n};\r\n","// export * from './lib/handlers';\r\nexport * from './lib/abstracts';\r\nexport * from './lib/components';\r\nexport * from './lib/constants';\r\nexport * from './lib/core.module';\r\nexport * from './lib/directives';\r\nexport * from './lib/enums';\r\nexport * from './lib/guards';\r\nexport * from './lib/localization.module';\r\nexport * from './lib/models';\r\nexport * from './lib/pipes';\r\nexport * from './lib/providers';\r\nexport * from './lib/proxy/pages/abp/multi-tenancy';\r\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/api-exploring';\r\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/application-configurations';\r\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending';\r\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy';\r\nexport * from './lib/proxy/volo/abp/http/modeling';\r\nexport * from './lib/proxy/volo/abp/localization';\r\nexport * from './lib/proxy/volo/abp/models';\r\nexport * from './lib/services';\r\nexport * from './lib/strategies';\r\nexport * from './lib/tokens';\r\nexport * from './lib/utils';\r\nexport * from './lib/validators';\r\nexport * from './lib/interceptors';\r\nexport * from './lib/clients';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["distinctUntilChanged","switchMap","map","take","filter"],"mappings":"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"}