@abp/ng.core 8.1.3 → 8.1.5

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/tokens/http-context.token.ts","../../../../packages/core/src/lib/clients/http.client.ts","../../../../packages/core/src/lib/utils/common-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/services/http-error-reporter.service.ts","../../../../packages/core/src/lib/services/rest.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/tokens/include-localization-resources.token.ts","../../../../packages/core/src/lib/services/config-state.service.ts","../../../../packages/core/src/lib/services/local-storage.service.ts","../../../../packages/core/src/lib/services/session-state.service.ts","../../../../packages/core/src/lib/services/localization.service.ts","../../../../packages/core/src/lib/utils/route-utils.ts","../../../../packages/core/src/lib/services/replaceable-components.service.ts","../../../../packages/core/src/lib/services/router-events.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/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/others-group.token.ts","../../../../packages/core/src/lib/tokens/tenant-not-found-by-name.ts","../../../../packages/core/src/lib/services/content-projection.service.ts","../../../../packages/core/src/lib/utils/array-utils.ts","../../../../packages/core/src/lib/utils/date-utils.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/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/tree-utils.ts","../../../../packages/core/src/lib/services/dom-insertion.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/router-wait.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/tokens/compare-func.token.ts","../../../../packages/core/src/lib/services/routes.service.ts","../../../../packages/core/src/lib/tokens/dynamic-layout.token.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/handlers/routes.handler.ts","../../../../packages/core/src/lib/pipes/localization.pipe.ts","../../../../packages/core/src/lib/localization.module.ts","../../../../packages/core/src/lib/pipes/sort.pipe.ts","../../../../packages/core/src/lib/pipes/to-injector.pipe.ts","../../../../packages/core/src/lib/providers/cookie-language.provider.ts","../../../../packages/core/src/lib/providers/locale.provider.ts","../../../../packages/core/src/lib/utils/date-extensions.ts","../../../../packages/core/src/lib/pipes/short-date-time.pipe.ts","../../../../packages/core/src/lib/pipes/short-time.pipe.ts","../../../../packages/core/src/lib/pipes/short-date.pipe.ts","../../../../packages/core/src/lib/pipes/safe-html.pipe.ts","../../../../packages/core/src/lib/providers/include-localization-resources.provider.ts","../../../../packages/core/src/lib/services/title-strategy.service.ts","../../../../packages/core/src/lib/core.module.ts","../../../../packages/core/src/lib/directives/show-password.directive.ts","../../../../packages/core/src/lib/directives/caps-lock.directive.ts","../../../../packages/core/src/lib/guards/permission.guard.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/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/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/lib/interceptors/api.interceptor.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({ template: '' })\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","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>;\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*\\}['\"]?)/g, (_, match, digit) => params[digit] ?? match)\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 { HttpContextToken } from '@angular/common/http';\r\n\r\nexport const IS_EXTERNAL_REQUEST = new HttpContextToken<boolean>(() => false);\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","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 {\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","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 { HttpClient, HttpParameterCodec, HttpParams, HttpRequest } from '@angular/common/http';\r\nimport { Inject, Injectable } 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 constructor(\r\n @Inject(CORE_OPTIONS) protected options: ABP.Root,\r\n protected http: HttpClient,\r\n protected externalHttp: ExternalHttpClient,\r\n protected environment: EnvironmentService,\r\n protected httpErrorReporter: 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 } = 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 ...(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 type { ApplicationConfigurationDto, ApplicationConfigurationRequestOptions } from './models';\r\nimport { RestService } from '../../../../../../services/rest.service';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApplicationConfigurationService {\r\n apiName = 'abp';\r\n\r\n get = (options: ApplicationConfigurationRequestOptions) =>\r\n this.restService.request<any, ApplicationConfigurationDto>(\r\n {\r\n method: 'GET',\r\n url: '/api/abp/application-configuration',\r\n params: { includeLocalizationResources: options.includeLocalizationResources },\r\n },\r\n { apiName: this.apiName },\r\n );\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { ApplicationLocalizationDto, ApplicationLocalizationRequestDto } from './models';\r\nimport { RestService } from '../../../../../../services/rest.service';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApplicationLocalizationService {\r\n apiName = 'abp';\r\n\r\n get = (input: ApplicationLocalizationRequestDto) =>\r\n this.restService.request<any, ApplicationLocalizationDto>(\r\n {\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 },\r\n );\r\n\r\n constructor(private restService: RestService) {}\r\n}\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 { Inject, Injectable, Optional } 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 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 updateSubject = new Subject<void>();\r\n private readonly store = new InternalStore({} as ApplicationConfigurationDto);\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 private abpConfigService: AbpApplicationConfigurationService,\r\n private abpApplicationLocalizationService: AbpApplicationLocalizationService,\r\n @Optional()\r\n @Inject(INCUDE_LOCALIZATION_RESOURCES_TOKEN)\r\n private readonly includeLocalizationResources: boolean | null,\r\n ) {\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 return this.getlocalizationResource(appState.localization.currentCulture.cultureName).pipe(\r\n map(result => ({ ...appState, localization: { ...appState.localization, ...result } })),\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 } else {\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\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 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((acc, key) => {\r\n acc[key] = settings[key];\r\n return acc;\r\n }, {} as Record<string, string>);\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((acc, key) => {\r\n acc[key] = settings[key];\r\n return acc;\r\n }, {} as Record<string, string>);\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 { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpLocalStorageService implements Storage {\r\n constructor() {}\r\n [name: string]: any;\r\n get length(): number {\r\n return localStorage.length;\r\n }\r\n\r\n clear(): void {\r\n localStorage.clear();\r\n }\r\n getItem(key: string): string {\r\n return localStorage.getItem(key);\r\n }\r\n key(index: number): string {\r\n return localStorage.key(index);\r\n }\r\n removeItem(key: string): void {\r\n localStorage.removeItem(key);\r\n }\r\n setItem(key: string, value: string): void {\r\n localStorage.setItem(key, value);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\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\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SessionStateService {\r\n private readonly store = new InternalStore({} as Session.State);\r\n\r\n private updateLocalStorage = () => {\r\n this.localStorageService.setItem('abpSession', JSON.stringify(this.store.state));\r\n };\r\n\r\n constructor(\r\n private configState: ConfigStateService,\r\n private localStorageService: AbpLocalStorageService,\r\n ) {\r\n this.init();\r\n this.setInitialLanguage();\r\n }\r\n\r\n private init() {\r\n const session = this.localStorageService.getItem('abpSession');\r\n if (session) {\r\n this.store.set(JSON.parse(session));\r\n }\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 if (appLanguage !== lang) {\r\n this.setLanguage(lang);\r\n }\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 if (language === this.store.state.language) return;\r\n\r\n this.store.patch({ language });\r\n document.documentElement.setAttribute('lang', language);\r\n }\r\n}\r\n","import { registerLocaleData } from '@angular/common';\r\nimport { Injectable, Injector, isDevMode, Optional, SkipSelf } 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 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 private sessionState: SessionStateService,\r\n private injector: Injector,\r\n @Optional()\r\n @SkipSelf()\r\n otherInstance: LocalizationService,\r\n private configState: ConfigStateService,\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.refreshAppState().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 if (!key) key = '';\r\n let defaultValue = '';\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(baseResourceName: string, source: ResourceDto): 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, ...item.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(key => {\r\n const newValue = recursivelyMergeBaseResources(key, resource);\r\n return [key, newValue];\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 { 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 { Injectable, NgZone } 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 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(private ngZone: NgZone, private router: Router) {\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 { 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 RouterState,\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.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 { 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\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 { 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 { Injectable, Injector, TemplateRef, Type } from '@angular/core';\r\nimport { ProjectionStrategy } from '../strategies/projection.strategy';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ContentProjectionService {\r\n constructor(private injector: Injector) {}\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","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 { HttpClient } from '@angular/common/http';\r\nimport { Injector } 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 { HttpErrorReporterService } from '../services/http-error-reporter.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 const httpErrorReporter = injector.get(HttpErrorReporterService);\r\n\r\n return http\r\n .request<Environment>(method, url, { headers })\r\n .pipe(\r\n catchError(err => {\r\n httpErrorReporter.reportError(err);\r\n return of(null);\r\n }), // TODO: Consider get handle function from a provider\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","export 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(length = 8) {\r\n length = Math.min(Math.max(4, length), 128);\r\n\r\n const lowers = 'abcdefghijklmnopqrstuvwxyz';\r\n const uppers = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n const numbers = '0123456789';\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","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 { Injectable } from '@angular/core';\r\nimport { RestService } from '../../../../services/rest.service';\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 {\r\n apiName = 'abp';\r\n\r\n findTenantById = (id: string) =>\r\n this.restService.request<any, FindTenantResultDto>(\r\n {\r\n method: 'GET',\r\n url: `/api/abp/multi-tenancy/tenants/by-id/${id}`,\r\n },\r\n { apiName: this.apiName },\r\n );\r\n\r\n findTenantByName = (name: string) =>\r\n this.restService.request<any, FindTenantResultDto>(\r\n {\r\n method: 'GET',\r\n url: `/api/abp/multi-tenancy/tenants/by-name/${name}`,\r\n },\r\n { apiName: this.apiName },\r\n );\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Inject, Injectable } 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 { RestService } from './rest.service';\r\nimport { SessionStateService } from './session-state.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MultiTenancyService {\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 constructor(\r\n private restService: RestService,\r\n private sessionState: SessionStateService,\r\n private tenantService: AbpTenantService,\r\n private configStateService: ConfigStateService,\r\n @Inject(TENANT_KEY) public tenantKey: string,\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 } from '@angular/core';\r\nimport clone from 'just-clone';\r\nimport { Environment } from '../models/environment';\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): string {\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 return parseTokens(window.location.href)[token]?.[0];\r\n}\r\n\r\nfunction getCurrentTenancyNameFromUrl(tenantKey: string) {\r\n const urlParams = new URLSearchParams(window.location.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);\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(multiTenancyService.tenantKey);\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 { InjectFlags, Injector } from '@angular/core';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { lastValueFrom, throwError } 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 { getRemoteEnv } from './environment-utils';\r\nimport { parseTenantFromUrl } from './multi-tenancy-utils';\r\nimport { AuthService } from '../abstracts';\r\nimport { CHECK_AUTHENTICATION_STATE_FN_KEY } from '../tokens/check-authentication-state';\r\nimport { noop } from './common-utils';\r\n\r\nexport function getInitialData(injector: Injector) {\r\n const fn = async () => {\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\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 (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 await lastValueFrom(result$);\r\n };\r\n\r\n return fn;\r\n}\r\n\r\nexport function localeInitializer(injector: Injector) {\r\n const fn = () => {\r\n const sessionState = injector.get(SessionStateService);\r\n const { registerLocaleFn }: ABP.Root = injector.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\r\n return fn;\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 public target: HTMLElement = document.head,\r\n public position: InsertPosition = 'beforeend',\r\n ) {}\r\n\r\n insertElement<T extends HTMLElement>(element: T) {\r\n this.target.insertAdjacentElement(this.position, element);\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 { 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","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, Injector } 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(injector: Injector) {\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 } 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 readonly loaded = new Map<string, HTMLScriptElement | HTMLLinkElement | null>();\r\n\r\n constructor(private resourceWaitService: ResourceWaitService) {}\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 } from '@angular/core';\r\nimport {\r\n BehaviorSubject,\r\n MonoTypeOperatorFunction,\r\n Observable,\r\n of,\r\n ReplaySubject,\r\n Subject,\r\n} from 'rxjs';\r\nimport {\r\n catchError,\r\n debounceTime,\r\n filter,\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\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 _skipCount = 0;\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 = '';\r\n set sortKey(value: string) {\r\n this._sortKey = value;\r\n this.get();\r\n }\r\n get sortKey(): string {\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 destroy$ = new Subject<void>();\r\n\r\n private delay: MonoTypeOperatorFunction<QueryParamsType>;\r\n\r\n get isLoading$(): Observable<boolean> {\r\n return this._isLoading$.asObservable();\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(injector: Injector) {\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 switchMap(query => streamCreatorCallback(query).pipe(catchError(() => of(null)))),\r\n filter(Boolean),\r\n tap(() => this._isLoading$.next(false)),\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\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 this._skipCount = skipCount;\r\n return;\r\n }\r\n\r\n if (this.page === maxPage && this.page > 0) {\r\n this._skipCount = skipCount - this._maxResultCount;\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 } 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 constructor(protected configState: ConfigStateService) {}\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, Injector } 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 store = new InternalStore<RouterWaitState>({ loading: false });\r\n private destroy$ = new Subject<void>();\r\n private delay: number;\r\n constructor(private routerEvents: RouterEvents, injector: Injector) {\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 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 protected readonly document = inject(DOCUMENT);\r\n protected readonly window = this.document.defaultView;\r\n protected 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 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 { InjectionToken, inject } from '@angular/core';\r\nimport { 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 aName = localizationService.instant(a.name);\r\n const bName = localizationService.instant(b.name);\r\n const aNumber = a.order;\r\n const bNumber = b.order;\r\n\r\n if (!Number.isInteger(aNumber)) return 1;\r\n if (!Number.isInteger(bNumber)) return -1;\r\n\r\n if (aNumber > bNumber) return 1;\r\n if (aNumber < bNumber) return -1;\r\n\r\n if (aName > bName) return 1;\r\n if (aName < bName) 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 return 0;\r\n };\r\n\r\n return fn;\r\n}\r\n","import { Injectable, Injector, OnDestroy } 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\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 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 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])) return acc;\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[], visibleItems: T[]): T[] {\r\n this._flat$.next(flatItems);\r\n this._tree$.next(this.createTree(flatItems));\r\n this._visible$.next(this.createTree(visibleItems));\r\n return flatItems;\r\n }\r\n\r\n add(items: T[]): T[] {\r\n const map = new Map<string, T>();\r\n items.forEach(item => map.set(item[this.id], item));\r\n\r\n const flatItems = this.filterWith(map);\r\n map.forEach(pushValueTo(flatItems));\r\n\r\n flatItems.sort(this.sort);\r\n const visibleItems = flatItems.filter(item => !this.hide(item));\r\n\r\n return this.publish(flatItems, visibleItems);\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>(\r\n (acc, node) => (acc ? acc : predicate(node) ? node : this.find(predicate, node.children)),\r\n null,\r\n );\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) return false;\r\n\r\n flatItems[index] = { ...flatItems[index], ...props };\r\n\r\n flatItems.sort(this.sort);\r\n const visibleItems = flatItems.filter(item => !this.hide(item));\r\n\r\n return this.publish(flatItems, visibleItems);\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 const visibleItems = flatItems.filter(item => !this.hide(item));\r\n\r\n return this.publish(flatItems, visibleItems);\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>(\r\n (acc, node) =>\r\n acc\r\n ? acc\r\n : searchKeys.every(key => node[key] === params[key])\r\n ? node\r\n : this.search(params, node.children),\r\n null,\r\n );\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 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(protected injector: Injector) {\r\n super();\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 {InjectionToken} from \"@angular/core\";\r\n\r\n export const DYNAMIC_LAYOUTS_TOKEN = new InjectionToken<Map<string, string>>('DYNAMIC_LAYOUTS')\r\n","import {\r\n Component,\r\n inject,\r\n isDevMode,\r\n OnInit,\r\n Optional,\r\n SkipSelf,\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\n\r\n@Component({\r\n selector: 'abp-dynamic-layout',\r\n template: `\r\n <ng-container *ngIf=\"isLayoutVisible\" [ngComponentOutlet]=\"layout\"></ng-container> `,\r\n providers: [SubscriptionService],\r\n})\r\nexport class DynamicLayoutComponent implements OnInit {\r\n layout?: Type<any>;\r\n layoutKey?: eLayoutType;\r\n readonly layouts = inject(DYNAMIC_LAYOUTS_TOKEN)\r\n isLayoutVisible = true;\r\n\r\n private readonly router = inject(Router);\r\n private readonly route = inject(ActivatedRoute);\r\n private readonly routes = inject(RoutesService);\r\n private localizationService = inject(LocalizationService)\r\n private replaceableComponents = inject(ReplaceableComponentsService)\r\n private subscription = inject(SubscriptionService)\r\n private routerEvents = inject(RouterEvents)\r\n\r\n\r\n constructor(\r\n @Optional() @SkipSelf() dynamicLayoutComponent: DynamicLayoutComponent,\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 }\r\n\r\n ngOnInit(): void {\r\n if (this.layout) {\r\n return;\r\n }\r\n this.getLayout()\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\r\n private getLayout() {\r\n let expectedLayout = this.getExtractedLayout();\r\n\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 if (expectedLayout) {\r\n return expectedLayout;\r\n }\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;\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 = 'Account layout not found. Please check your configuration. If you are using LeptonX, please make sure you have added \"AccountLayoutModule.forRoot()\" to your app.module configuration.';\r\n }\r\n console.warn(message);\r\n }\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","import { Component, OnInit, Type } 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\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})\r\nexport class ReplaceableRouteContainerComponent implements OnInit {\r\n defaultComponent!: Type<any>;\r\n\r\n componentKey!: string;\r\n\r\n externalComponent?: Type<any>;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private replaceableComponents: ReplaceableComponentsService,\r\n private subscription: SubscriptionService,\r\n ) {}\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\n\r\n@Component({\r\n selector: 'abp-router-outlet',\r\n template: ` <router-outlet></router-outlet> `,\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 } from '@angular/core';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[autofocus]',\r\n})\r\nexport class AutofocusDirective implements AfterViewInit {\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 constructor(private elRef: ElementRef) {}\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 } 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 standalone: true,\r\n selector: '[input.debounce]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class InputEventDebounceDirective implements OnInit {\r\n @Input() debounce = 300;\r\n\r\n @Output('input.debounce') readonly debounceEvent = new EventEmitter<Event>();\r\n\r\n constructor(private el: ElementRef, private subscription: SubscriptionService) {}\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} 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 standalone: true,\r\n selector: '[abpFor]',\r\n})\r\nexport class ForDirective implements OnChanges {\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\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 constructor(\r\n private tempRef: TemplateRef<AbpForContext>,\r\n private vcRef: ViewContainerRef,\r\n private differs: IterableDiffers,\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\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 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 Self,\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 standalone: true,\r\n selector: 'form[ngSubmit][formGroup]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class FormSubmitDirective implements OnInit {\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 constructor(\r\n @Self() private formGroupDirective: FormGroupDirective,\r\n private host: ElementRef<HTMLFormElement>,\r\n private cdRef: ChangeDetectorRef,\r\n private subscription: SubscriptionService,\r\n ) {}\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 } from '@angular/core';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[abpInit]',\r\n})\r\nexport class InitDirective implements AfterViewInit {\r\n @Output('abpInit') readonly init = new EventEmitter<ElementRef<any>>();\r\n\r\n constructor(private elRef: ElementRef) {}\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 Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Optional,\r\n TemplateRef,\r\n ViewContainerRef,\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 standalone: true,\r\n selector: '[abpPermission]',\r\n})\r\nexport class PermissionDirective implements OnDestroy, OnChanges, AfterViewInit {\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 constructor(\r\n @Optional() private templateRef: TemplateRef<any>,\r\n private vcRef: ViewContainerRef,\r\n private permissionService: PermissionService,\r\n private cdRef: ChangeDetectorRef,\r\n @Inject(QUEUE_MANAGER) public queue: QueueManager,\r\n ) {}\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.vcRef.createEmbeddedView(this.templateRef);\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} 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 standalone: true,\r\n selector: '[abpReplaceableTemplate]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class ReplaceableTemplateDirective implements OnInit, OnChanges {\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 private injector: Injector,\r\n private templateRef: TemplateRef<any>,\r\n private vcRef: ViewContainerRef,\r\n private replaceableComponents: ReplaceableComponentsService,\r\n private subscription: SubscriptionService,\r\n ) {\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 } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[click.stop]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class StopPropagationDirective implements OnInit {\r\n @Output('click.stop') readonly stopPropEvent = new EventEmitter<MouseEvent>();\r\n\r\n constructor(private el: ElementRef, private subscription: SubscriptionService) {}\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 { Injectable, Optional } 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 constructor(private routes: RoutesService, @Optional() private router: Router) {\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 { Injectable, Pipe, PipeTransform } 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 constructor(private localization: LocalizationService) {}\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 { NgModule } from '@angular/core';\r\nimport { LocalizationPipe } from './pipes/localization.pipe';\r\n\r\n@NgModule({\r\n exports: [LocalizationPipe],\r\n declarations: [LocalizationPipe],\r\n})\r\nexport class LocalizationModule {}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nexport type SortOrder = 'asc' | 'desc';\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): 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 } 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 constructor(private injector: Injector) {}\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 { APP_INITIALIZER, Injector, Provider } from '@angular/core';\r\nimport { DOCUMENT } 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(injector: Injector) {\r\n return () => {\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\n\r\nexport const CookieLanguageProvider: Provider = {\r\n provide: APP_INITIALIZER,\r\n useFactory: setLanguageToCookie,\r\n deps: [Injector],\r\n multi: true,\r\n};\r\n","import { LOCALE_ID, Provider } 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 constructor(private localizationService: LocalizationService) {\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 deps: [LocalizationService],\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 { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { Inject, LOCALE_ID, Optional, Pipe, PipeTransform } 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\r\n constructor(private configStateService: ConfigStateService,\r\n @Inject(LOCALE_ID) locale: string,\r\n @Inject(DATE_PIPE_DEFAULT_TIMEZONE) @Optional() defaultTimezone?: string|null\r\n ) {\r\n super(locale, defaultTimezone)\r\n }\r\n\r\n transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): 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, timezone?: string,\r\n locale?: string): string|null {\r\n\r\n const format = getShortDateShortTimeFormat(this.configStateService);\r\n return super.transform(value,format,timezone,locale)\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { Inject, LOCALE_ID, Optional, Pipe, PipeTransform } 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\r\n constructor(private configStateService: ConfigStateService,\r\n @Inject(LOCALE_ID) locale: string,\r\n @Inject(DATE_PIPE_DEFAULT_TIMEZONE) @Optional() defaultTimezone?: string|null\r\n ) {\r\n super(locale, defaultTimezone)\r\n }\r\n\r\n transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): 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, timezone?: string,\r\n locale?: string): string|null {\r\n\r\n const format = getShortTimeFormat(this.configStateService);\r\n return super.transform(value,format,timezone,locale)\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { Inject, LOCALE_ID, Optional, Pipe, PipeTransform } 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\r\n constructor(private configStateService: ConfigStateService,\r\n @Inject(LOCALE_ID) locale: string,\r\n @Inject(DATE_PIPE_DEFAULT_TIMEZONE) @Optional() defaultTimezone?: string|null\r\n ) {\r\n super(locale, defaultTimezone)\r\n }\r\n\r\n transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): 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, timezone?: string,\r\n locale?: string): string|null {\r\n\r\n const format = getShortDateFormat(this.configStateService);\r\n return super.transform(value,format,timezone,locale)\r\n }\r\n\r\n\r\n}\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({ name: 'abpSafeHtml' })\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 { 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, 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 { ConfigStateService } from './config-state.service';\r\nimport { LocalizationService } from './localization.service';\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 configState = inject(ConfigStateService);\r\n protected readonly localizationService = inject(LocalizationService);\r\n protected routerState: RouterStateSnapshot;\r\n\r\n projectName = toSignal(this.configState.getDeep$('localization.defaultResourceName'), {\r\n initialValue: 'MyProjectName',\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 let title = this.buildTitle(routerState);\r\n\r\n if (!title) {\r\n this.title.setTitle(this.projectName());\r\n return;\r\n }\r\n\r\n const localizedTitle = this.localizationService.instant({ key: title, defaultValue: title });\r\n this.title.setTitle(`${localizedTitle} | ${this.projectName()}`);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';\r\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule, TitleStrategy } from '@angular/router';\r\nimport { AbstractNgModelComponent } from './abstracts/ng-model.component';\r\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\r\nimport { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component';\r\nimport { RouterOutletComponent } from './components/router-outlet.component';\r\nimport { AutofocusDirective } from './directives/autofocus.directive';\r\nimport { InputEventDebounceDirective } from './directives/debounce.directive';\r\nimport { ForDirective } from './directives/for.directive';\r\nimport { FormSubmitDirective } from './directives/form-submit.directive';\r\nimport { InitDirective } from './directives/init.directive';\r\nimport { PermissionDirective } from './directives/permission.directive';\r\nimport { ReplaceableTemplateDirective } from './directives/replaceable-template.directive';\r\nimport { StopPropagationDirective } from './directives/stop-propagation.directive';\r\nimport { RoutesHandler } from './handlers/routes.handler';\r\nimport { LocalizationModule } from './localization.module';\r\nimport { ABP } from './models/common';\r\nimport { LocalizationPipe } from './pipes/localization.pipe';\r\nimport { SortPipe } from './pipes/sort.pipe';\r\nimport { ToInjectorPipe } from './pipes/to-injector.pipe';\r\nimport { CookieLanguageProvider } from './providers/cookie-language.provider';\r\nimport { LocaleProvider } from './providers/locale.provider';\r\nimport { LocalizationService } from './services/localization.service';\r\nimport { OTHERS_GROUP } from './tokens';\r\nimport { localizationContributor, LOCALIZATIONS } from './tokens/localization.token';\r\nimport { CORE_OPTIONS, coreOptionsFactory } from './tokens/options.token';\r\nimport { TENANT_KEY } from './tokens/tenant-key.token';\r\nimport { noop } from './utils/common-utils';\r\nimport './utils/date-extensions';\r\nimport { getInitialData, localeInitializer } from './utils/initial-utils';\r\nimport { ShortDateTimePipe } from './pipes/short-date-time.pipe';\r\nimport { ShortTimePipe } from './pipes/short-time.pipe';\r\nimport { ShortDatePipe } from './pipes/short-date.pipe';\r\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\r\nimport { QUEUE_MANAGER } from './tokens/queue.token';\r\nimport { DefaultQueueManager } from './utils/queue';\r\nimport { IncludeLocalizationResourcesProvider } from './providers/include-localization-resources.provider';\r\nimport { SORT_COMPARE_FUNC, compareFuncFactory } from './tokens/compare-func.token';\r\nimport { AuthErrorFilterService } from './abstracts';\r\nimport { DYNAMIC_LAYOUTS_TOKEN } from \"./tokens/dynamic-layout.token\";\r\nimport { DEFAULT_DYNAMIC_LAYOUTS } from \"./constants\";\r\nimport { AbpTitleStrategy } from './services/title-strategy.service';\r\n\r\n\r\nconst standaloneDirectives = [\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\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 HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n LocalizationModule,\r\n AbstractNgModelComponent,\r\n DynamicLayoutComponent,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n SortPipe,\r\n SafeHtmlPipe,\r\n ToInjectorPipe,\r\n ShortDateTimePipe,\r\n ShortTimePipe,\r\n ShortDatePipe,\r\n ...standaloneDirectives,\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n LocalizationModule,\r\n ...standaloneDirectives,\r\n ],\r\n declarations: [\r\n AbstractNgModelComponent,\r\n DynamicLayoutComponent,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n SortPipe,\r\n SafeHtmlPipe,\r\n ToInjectorPipe,\r\n ShortDateTimePipe,\r\n ShortTimePipe,\r\n ShortDatePipe,\r\n ],\r\n providers: [LocalizationPipe],\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, LocalizationModule],\r\n imports: [\r\n BaseCoreModule,\r\n LocalizationModule,\r\n HttpClientXsrfModule.withOptions({\r\n cookieName: 'XSRF-TOKEN',\r\n headerName: 'RequestVerificationToken',\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 static forRoot(options = {} as ABP.Root): ModuleWithProviders<RootCoreModule> {\r\n return {\r\n ngModule: RootCoreModule,\r\n providers: [\r\n LocaleProvider,\r\n CookieLanguageProvider,\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 {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n deps: [Injector],\r\n useFactory: getInitialData,\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n deps: [Injector],\r\n useFactory: localeInitializer,\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n deps: [LocalizationService],\r\n useFactory: noop,\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n deps: [RoutesHandler],\r\n useFactory: noop,\r\n },\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: SORT_COMPARE_FUNC,\r\n useFactory: compareFuncFactory,\r\n },\r\n {\r\n provide: QUEUE_MANAGER,\r\n useClass: DefaultQueueManager,\r\n },\r\n {\r\n provide: OTHERS_GROUP,\r\n useValue: options.othersGroup || 'AbpUi::OthersGroup',\r\n },\r\n AuthErrorFilterService,\r\n IncludeLocalizationResourcesProvider,\r\n {\r\n provide: DYNAMIC_LAYOUTS_TOKEN,\r\n useValue: options.dynamicLayouts || DEFAULT_DYNAMIC_LAYOUTS\r\n },\r\n {\r\n provide: TitleStrategy,\r\n useExisting: AbpTitleStrategy\r\n }\r\n ],\r\n };\r\n }\r\n\r\n static forChild(options = {} as ABP.Child): ModuleWithProviders<RootCoreModule> {\r\n return {\r\n ngModule: RootCoreModule,\r\n providers: [\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 }\r\n}\r\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\r\n\r\n@Directive({\r\n standalone: true,\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 standalone: true,\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","import { Injectable, inject } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n CanActivateFn,\r\n Router,\r\n RouterStateSnapshot,\r\n} from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { AuthService, IAbpGuard } from '../abstracts';\r\nimport { findRoute, getRoutePath } from '../utils/route-utils';\r\nimport { RoutesService, PermissionService, HttpErrorReporterService } from '../services';\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\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\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) return of(true);\r\n\r\n return this.permissionService.getGrantedPolicy$(requiredPolicy).pipe(\r\n tap(access => {\r\n if (!access && this.authService.isAuthenticated) {\r\n this.httpErrorReporter.reportError({ status: 403 } as HttpErrorResponse);\r\n }\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\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) return of(true);\r\n\r\n return permissionService.getGrantedPolicy$(requiredPolicy).pipe(\r\n tap(access => {\r\n if (!access && authService.isAuthenticated) {\r\n httpErrorReporter.reportError({ status: 403 } as HttpErrorResponse);\r\n }\r\n }),\r\n );\r\n};\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/rest.service';\r\nimport { Injectable } from '@angular/core';\r\nimport type {\r\n ApplicationApiDescriptionModel,\r\n ApplicationApiDescriptionModelRequestDto,\r\n} from '../../../http/modeling/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApiDefinitionService {\r\n apiName = 'abp';\r\n\r\n getByModel = (model: ApplicationApiDescriptionModelRequestDto) =>\r\n this.restService.request<any, ApplicationApiDescriptionModel>(\r\n {\r\n method: 'GET',\r\n url: '/api/abp/api-definition',\r\n params: { includeTypes: model.includeTypes },\r\n },\r\n { apiName: this.apiName },\r\n );\r\n\r\n constructor(private restService: RestService) {}\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\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 = 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 = 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 { 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, ValidationErrors, 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","import { HttpHandler, HttpHeaders, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { HttpWaitService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiInterceptor implements IApiInterceptor {\r\n constructor(private httpWaitService: 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) {\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","// 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/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":["i2.ExternalHttpClient","i3.EnvironmentService","i4.HttpErrorReporterService","i1.RestService","i1.ConfigStateService","i2.AbpLocalStorageService","i1.SessionStateService","i2.ConfigStateService","i1","i1.ResourceWaitService","i1.RouterEvents","map","i2.ReplaceableComponentsService","i3.SubscriptionService","i4","i1.SubscriptionService","i2.SubscriptionService","i1.ReplaceableComponentsService","i1.RoutesService","i2","i1.LocalizationService","i1.HttpWaitService"],"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/tokens/http-context.token.ts","../../../../packages/core/src/lib/clients/http.client.ts","../../../../packages/core/src/lib/utils/common-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/services/http-error-reporter.service.ts","../../../../packages/core/src/lib/services/rest.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/tokens/include-localization-resources.token.ts","../../../../packages/core/src/lib/services/config-state.service.ts","../../../../packages/core/src/lib/services/local-storage.service.ts","../../../../packages/core/src/lib/services/session-state.service.ts","../../../../packages/core/src/lib/services/localization.service.ts","../../../../packages/core/src/lib/utils/route-utils.ts","../../../../packages/core/src/lib/services/replaceable-components.service.ts","../../../../packages/core/src/lib/services/router-events.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/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/others-group.token.ts","../../../../packages/core/src/lib/tokens/tenant-not-found-by-name.ts","../../../../packages/core/src/lib/services/content-projection.service.ts","../../../../packages/core/src/lib/utils/array-utils.ts","../../../../packages/core/src/lib/utils/date-utils.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/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/tree-utils.ts","../../../../packages/core/src/lib/services/dom-insertion.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/router-wait.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/tokens/compare-func.token.ts","../../../../packages/core/src/lib/services/routes.service.ts","../../../../packages/core/src/lib/tokens/dynamic-layout.token.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/handlers/routes.handler.ts","../../../../packages/core/src/lib/pipes/localization.pipe.ts","../../../../packages/core/src/lib/localization.module.ts","../../../../packages/core/src/lib/pipes/sort.pipe.ts","../../../../packages/core/src/lib/pipes/to-injector.pipe.ts","../../../../packages/core/src/lib/providers/cookie-language.provider.ts","../../../../packages/core/src/lib/providers/locale.provider.ts","../../../../packages/core/src/lib/utils/date-extensions.ts","../../../../packages/core/src/lib/pipes/short-date-time.pipe.ts","../../../../packages/core/src/lib/pipes/short-time.pipe.ts","../../../../packages/core/src/lib/pipes/short-date.pipe.ts","../../../../packages/core/src/lib/pipes/safe-html.pipe.ts","../../../../packages/core/src/lib/providers/include-localization-resources.provider.ts","../../../../packages/core/src/lib/services/title-strategy.service.ts","../../../../packages/core/src/lib/core.module.ts","../../../../packages/core/src/lib/directives/show-password.directive.ts","../../../../packages/core/src/lib/directives/caps-lock.directive.ts","../../../../packages/core/src/lib/guards/permission.guard.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/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/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/lib/interceptors/api.interceptor.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({ template: '' })\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","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>;\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*\\}['\"]?)/g, (_, match, digit) => params[digit] ?? match)\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 { HttpContextToken } from '@angular/common/http';\r\n\r\nexport const IS_EXTERNAL_REQUEST = new HttpContextToken<boolean>(() => false);\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","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 {\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","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 { HttpClient, HttpParameterCodec, HttpParams, HttpRequest } from '@angular/common/http';\r\nimport { Inject, Injectable } 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 constructor(\r\n @Inject(CORE_OPTIONS) protected options: ABP.Root,\r\n protected http: HttpClient,\r\n protected externalHttp: ExternalHttpClient,\r\n protected environment: EnvironmentService,\r\n protected httpErrorReporter: 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 } = 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 ...(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 type { ApplicationConfigurationDto, ApplicationConfigurationRequestOptions } from './models';\r\nimport { RestService } from '../../../../../../services/rest.service';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApplicationConfigurationService {\r\n apiName = 'abp';\r\n\r\n get = (options: ApplicationConfigurationRequestOptions) =>\r\n this.restService.request<any, ApplicationConfigurationDto>(\r\n {\r\n method: 'GET',\r\n url: '/api/abp/application-configuration',\r\n params: { includeLocalizationResources: options.includeLocalizationResources },\r\n },\r\n { apiName: this.apiName },\r\n );\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { ApplicationLocalizationDto, ApplicationLocalizationRequestDto } from './models';\r\nimport { RestService } from '../../../../../../services/rest.service';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApplicationLocalizationService {\r\n apiName = 'abp';\r\n\r\n get = (input: ApplicationLocalizationRequestDto) =>\r\n this.restService.request<any, ApplicationLocalizationDto>(\r\n {\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 },\r\n );\r\n\r\n constructor(private restService: RestService) {}\r\n}\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 { Inject, Injectable, Optional } 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 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 updateSubject = new Subject<void>();\r\n private readonly store = new InternalStore({} as ApplicationConfigurationDto);\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 private abpConfigService: AbpApplicationConfigurationService,\r\n private abpApplicationLocalizationService: AbpApplicationLocalizationService,\r\n @Optional()\r\n @Inject(INCUDE_LOCALIZATION_RESOURCES_TOKEN)\r\n private readonly includeLocalizationResources: boolean | null,\r\n ) {\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 return this.getlocalizationResource(appState.localization.currentCulture.cultureName).pipe(\r\n map(result => ({ ...appState, localization: { ...appState.localization, ...result } })),\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 } else {\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\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 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((acc, key) => {\r\n acc[key] = settings[key];\r\n return acc;\r\n }, {} as Record<string, string>);\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((acc, key) => {\r\n acc[key] = settings[key];\r\n return acc;\r\n }, {} as Record<string, string>);\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 { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpLocalStorageService implements Storage {\r\n constructor() {}\r\n [name: string]: any;\r\n get length(): number {\r\n return localStorage.length;\r\n }\r\n\r\n clear(): void {\r\n localStorage.clear();\r\n }\r\n getItem(key: string): string {\r\n return localStorage.getItem(key);\r\n }\r\n key(index: number): string {\r\n return localStorage.key(index);\r\n }\r\n removeItem(key: string): void {\r\n localStorage.removeItem(key);\r\n }\r\n setItem(key: string, value: string): void {\r\n localStorage.setItem(key, value);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\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\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SessionStateService {\r\n private readonly store = new InternalStore({} as Session.State);\r\n\r\n private updateLocalStorage = () => {\r\n this.localStorageService.setItem('abpSession', JSON.stringify(this.store.state));\r\n };\r\n\r\n constructor(\r\n private configState: ConfigStateService,\r\n private localStorageService: AbpLocalStorageService,\r\n ) {\r\n this.init();\r\n this.setInitialLanguage();\r\n }\r\n\r\n private init() {\r\n const session = this.localStorageService.getItem('abpSession');\r\n if (session) {\r\n this.store.set(JSON.parse(session));\r\n }\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 if (appLanguage !== lang) {\r\n this.setLanguage(lang);\r\n }\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 if (language === this.store.state.language) return;\r\n\r\n this.store.patch({ language });\r\n document.documentElement.setAttribute('lang', language);\r\n }\r\n}\r\n","import { registerLocaleData } from '@angular/common';\r\nimport { Injectable, Injector, isDevMode, Optional, SkipSelf } 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 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 private sessionState: SessionStateService,\r\n private injector: Injector,\r\n @Optional()\r\n @SkipSelf()\r\n otherInstance: LocalizationService,\r\n private configState: ConfigStateService,\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.refreshAppState().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 if (!key) key = '';\r\n let defaultValue = '';\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(baseResourceName: string, source: ResourceDto): 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, ...item.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(key => {\r\n const newValue = recursivelyMergeBaseResources(key, resource);\r\n return [key, newValue];\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 { 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 { Injectable, NgZone } 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 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(private ngZone: NgZone, private router: Router) {\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 { 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 RouterState,\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.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 { 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\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 { 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 { Injectable, Injector, TemplateRef, Type } from '@angular/core';\r\nimport { ProjectionStrategy } from '../strategies/projection.strategy';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ContentProjectionService {\r\n constructor(private injector: Injector) {}\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","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 { HttpClient } from '@angular/common/http';\r\nimport { Injector } 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 { HttpErrorReporterService } from '../services/http-error-reporter.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 const httpErrorReporter = injector.get(HttpErrorReporterService);\r\n\r\n return http\r\n .request<Environment>(method, url, { headers })\r\n .pipe(\r\n catchError(err => {\r\n httpErrorReporter.reportError(err);\r\n return of(null);\r\n }), // TODO: Consider get handle function from a provider\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","export 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(length = 8) {\r\n length = Math.min(Math.max(4, length), 128);\r\n\r\n const lowers = 'abcdefghijklmnopqrstuvwxyz';\r\n const uppers = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n const numbers = '0123456789';\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","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 { Injectable } from '@angular/core';\r\nimport { RestService } from '../../../../services/rest.service';\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 {\r\n apiName = 'abp';\r\n\r\n findTenantById = (id: string) =>\r\n this.restService.request<any, FindTenantResultDto>(\r\n {\r\n method: 'GET',\r\n url: `/api/abp/multi-tenancy/tenants/by-id/${id}`,\r\n },\r\n { apiName: this.apiName },\r\n );\r\n\r\n findTenantByName = (name: string) =>\r\n this.restService.request<any, FindTenantResultDto>(\r\n {\r\n method: 'GET',\r\n url: `/api/abp/multi-tenancy/tenants/by-name/${name}`,\r\n },\r\n { apiName: this.apiName },\r\n );\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Inject, Injectable } 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 { RestService } from './rest.service';\r\nimport { SessionStateService } from './session-state.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MultiTenancyService {\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 constructor(\r\n private restService: RestService,\r\n private sessionState: SessionStateService,\r\n private tenantService: AbpTenantService,\r\n private configStateService: ConfigStateService,\r\n @Inject(TENANT_KEY) public tenantKey: string,\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 } from '@angular/core';\r\nimport clone from 'just-clone';\r\nimport { Environment } from '../models/environment';\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): string {\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 return parseTokens(window.location.href)[token]?.[0];\r\n}\r\n\r\nfunction getCurrentTenancyNameFromUrl(tenantKey: string) {\r\n const urlParams = new URLSearchParams(window.location.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);\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(multiTenancyService.tenantKey);\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 { InjectFlags, Injector } from '@angular/core';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { lastValueFrom, throwError } 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 { getRemoteEnv } from './environment-utils';\r\nimport { parseTenantFromUrl } from './multi-tenancy-utils';\r\nimport { AuthService } from '../abstracts';\r\nimport { CHECK_AUTHENTICATION_STATE_FN_KEY } from '../tokens/check-authentication-state';\r\nimport { noop } from './common-utils';\r\n\r\nexport function getInitialData(injector: Injector) {\r\n const fn = async () => {\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\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 (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 await lastValueFrom(result$);\r\n };\r\n\r\n return fn;\r\n}\r\n\r\nexport function localeInitializer(injector: Injector) {\r\n const fn = () => {\r\n const sessionState = injector.get(SessionStateService);\r\n const { registerLocaleFn }: ABP.Root = injector.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\r\n return fn;\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 public target: HTMLElement = document.head,\r\n public position: InsertPosition = 'beforeend',\r\n ) {}\r\n\r\n insertElement<T extends HTMLElement>(element: T) {\r\n this.target.insertAdjacentElement(this.position, element);\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 { 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","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, Injector } 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(injector: Injector) {\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 } 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 readonly loaded = new Map<string, HTMLScriptElement | HTMLLinkElement | null>();\r\n\r\n constructor(private resourceWaitService: ResourceWaitService) {}\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 } from '@angular/core';\r\nimport {\r\n BehaviorSubject,\r\n MonoTypeOperatorFunction,\r\n Observable,\r\n of,\r\n ReplaySubject,\r\n Subject,\r\n} from 'rxjs';\r\nimport {\r\n catchError,\r\n debounceTime,\r\n filter,\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\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 _skipCount = 0;\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 = '';\r\n set sortKey(value: string) {\r\n this._sortKey = value;\r\n this.get();\r\n }\r\n get sortKey(): string {\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 destroy$ = new Subject<void>();\r\n\r\n private delay: MonoTypeOperatorFunction<QueryParamsType>;\r\n\r\n get isLoading$(): Observable<boolean> {\r\n return this._isLoading$.asObservable();\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(injector: Injector) {\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 switchMap(query => streamCreatorCallback(query).pipe(catchError(() => of(null)))),\r\n filter(Boolean),\r\n tap(() => this._isLoading$.next(false)),\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\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 this._skipCount = skipCount;\r\n return;\r\n }\r\n\r\n if (this.page === maxPage && this.page > 0) {\r\n this._skipCount = skipCount - this._maxResultCount;\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 } 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 constructor(protected configState: ConfigStateService) {}\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, Injector } 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 store = new InternalStore<RouterWaitState>({ loading: false });\r\n private destroy$ = new Subject<void>();\r\n private delay: number;\r\n constructor(private routerEvents: RouterEvents, injector: Injector) {\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 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 protected readonly document = inject(DOCUMENT);\r\n protected readonly window = this.document.defaultView;\r\n protected 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 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 { InjectionToken, inject } from '@angular/core';\r\nimport { 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 aName = localizationService.instant(a.name);\r\n const bName = localizationService.instant(b.name);\r\n const aNumber = a.order;\r\n const bNumber = b.order;\r\n\r\n if (!Number.isInteger(aNumber)) return 1;\r\n if (!Number.isInteger(bNumber)) return -1;\r\n\r\n if (aNumber > bNumber) return 1;\r\n if (aNumber < bNumber) return -1;\r\n\r\n if (aName > bName) return 1;\r\n if (aName < bName) 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 return 0;\r\n };\r\n\r\n return fn;\r\n}\r\n","import { Injectable, Injector, OnDestroy } 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\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 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 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])) return acc;\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[], visibleItems: T[]): T[] {\r\n this._flat$.next(flatItems);\r\n this._tree$.next(this.createTree(flatItems));\r\n this._visible$.next(this.createTree(visibleItems));\r\n return flatItems;\r\n }\r\n\r\n add(items: T[]): T[] {\r\n const map = new Map<string, T>();\r\n items.forEach(item => map.set(item[this.id], item));\r\n\r\n const flatItems = this.filterWith(map);\r\n map.forEach(pushValueTo(flatItems));\r\n\r\n flatItems.sort(this.sort);\r\n const visibleItems = flatItems.filter(item => !this.hide(item));\r\n\r\n return this.publish(flatItems, visibleItems);\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>(\r\n (acc, node) => (acc ? acc : predicate(node) ? node : this.find(predicate, node.children)),\r\n null,\r\n );\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) return false;\r\n\r\n flatItems[index] = { ...flatItems[index], ...props };\r\n\r\n flatItems.sort(this.sort);\r\n const visibleItems = flatItems.filter(item => !this.hide(item));\r\n\r\n return this.publish(flatItems, visibleItems);\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 const visibleItems = flatItems.filter(item => !this.hide(item));\r\n\r\n return this.publish(flatItems, visibleItems);\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>(\r\n (acc, node) =>\r\n acc\r\n ? acc\r\n : searchKeys.every(key => node[key] === params[key])\r\n ? node\r\n : this.search(params, node.children),\r\n null,\r\n );\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 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(protected injector: Injector) {\r\n super();\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 {InjectionToken} from \"@angular/core\";\r\n\r\n export const DYNAMIC_LAYOUTS_TOKEN = new InjectionToken<Map<string, string>>('DYNAMIC_LAYOUTS')\r\n","import {\r\n Component,\r\n inject,\r\n isDevMode,\r\n OnInit,\r\n Optional,\r\n SkipSelf,\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\n\r\n@Component({\r\n selector: 'abp-dynamic-layout',\r\n template: `\r\n <ng-container *ngIf=\"isLayoutVisible\" [ngComponentOutlet]=\"layout\"></ng-container> `,\r\n providers: [SubscriptionService],\r\n})\r\nexport class DynamicLayoutComponent implements OnInit {\r\n layout?: Type<any>;\r\n layoutKey?: eLayoutType;\r\n readonly layouts = inject(DYNAMIC_LAYOUTS_TOKEN)\r\n isLayoutVisible = true;\r\n\r\n private readonly router = inject(Router);\r\n private readonly route = inject(ActivatedRoute);\r\n private readonly routes = inject(RoutesService);\r\n private localizationService = inject(LocalizationService)\r\n private replaceableComponents = inject(ReplaceableComponentsService)\r\n private subscription = inject(SubscriptionService)\r\n private routerEvents = inject(RouterEvents)\r\n\r\n\r\n constructor(\r\n @Optional() @SkipSelf() dynamicLayoutComponent: DynamicLayoutComponent,\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 }\r\n\r\n ngOnInit(): void {\r\n if (this.layout) {\r\n return;\r\n }\r\n this.getLayout()\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\r\n private getLayout() {\r\n let expectedLayout = this.getExtractedLayout();\r\n\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 if (expectedLayout) {\r\n return expectedLayout;\r\n }\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;\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 = 'Account layout not found. Please check your configuration. If you are using LeptonX, please make sure you have added \"AccountLayoutModule.forRoot()\" to your app.module configuration.';\r\n }\r\n console.warn(message);\r\n }\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","import { Component, OnInit, Type } 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\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})\r\nexport class ReplaceableRouteContainerComponent implements OnInit {\r\n defaultComponent!: Type<any>;\r\n\r\n componentKey!: string;\r\n\r\n externalComponent?: Type<any>;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private replaceableComponents: ReplaceableComponentsService,\r\n private subscription: SubscriptionService,\r\n ) {}\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\n\r\n@Component({\r\n selector: 'abp-router-outlet',\r\n template: ` <router-outlet></router-outlet> `,\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 } from '@angular/core';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[autofocus]',\r\n})\r\nexport class AutofocusDirective implements AfterViewInit {\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 constructor(private elRef: ElementRef) {}\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 } 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 standalone: true,\r\n selector: '[input.debounce]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class InputEventDebounceDirective implements OnInit {\r\n @Input() debounce = 300;\r\n\r\n @Output('input.debounce') readonly debounceEvent = new EventEmitter<Event>();\r\n\r\n constructor(private el: ElementRef, private subscription: SubscriptionService) {}\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} 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 standalone: true,\r\n selector: '[abpFor]',\r\n})\r\nexport class ForDirective implements OnChanges {\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\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 constructor(\r\n private tempRef: TemplateRef<AbpForContext>,\r\n private vcRef: ViewContainerRef,\r\n private differs: IterableDiffers,\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\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 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 Self,\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 standalone: true,\r\n selector: 'form[ngSubmit][formGroup]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class FormSubmitDirective implements OnInit {\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 constructor(\r\n @Self() private formGroupDirective: FormGroupDirective,\r\n private host: ElementRef<HTMLFormElement>,\r\n private cdRef: ChangeDetectorRef,\r\n private subscription: SubscriptionService,\r\n ) {}\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 } from '@angular/core';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[abpInit]',\r\n})\r\nexport class InitDirective implements AfterViewInit {\r\n @Output('abpInit') readonly init = new EventEmitter<ElementRef<any>>();\r\n\r\n constructor(private elRef: ElementRef) {}\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 Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Optional,\r\n TemplateRef,\r\n ViewContainerRef,\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 standalone: true,\r\n selector: '[abpPermission]',\r\n})\r\nexport class PermissionDirective implements OnDestroy, OnChanges, AfterViewInit {\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 constructor(\r\n @Optional() private templateRef: TemplateRef<any>,\r\n private vcRef: ViewContainerRef,\r\n private permissionService: PermissionService,\r\n private cdRef: ChangeDetectorRef,\r\n @Inject(QUEUE_MANAGER) public queue: QueueManager,\r\n ) {}\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.vcRef.createEmbeddedView(this.templateRef);\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} 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 standalone: true,\r\n selector: '[abpReplaceableTemplate]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class ReplaceableTemplateDirective implements OnInit, OnChanges {\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 private injector: Injector,\r\n private templateRef: TemplateRef<any>,\r\n private vcRef: ViewContainerRef,\r\n private replaceableComponents: ReplaceableComponentsService,\r\n private subscription: SubscriptionService,\r\n ) {\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 } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { SubscriptionService } from '../services/subscription.service';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[click.stop]',\r\n providers: [SubscriptionService],\r\n})\r\nexport class StopPropagationDirective implements OnInit {\r\n @Output('click.stop') readonly stopPropEvent = new EventEmitter<MouseEvent>();\r\n\r\n constructor(private el: ElementRef, private subscription: SubscriptionService) {}\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 { Injectable, Optional } 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 constructor(private routes: RoutesService, @Optional() private router: Router) {\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 { Injectable, Pipe, PipeTransform } 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 constructor(private localization: LocalizationService) {}\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 { NgModule } from '@angular/core';\r\nimport { LocalizationPipe } from './pipes/localization.pipe';\r\n\r\n@NgModule({\r\n exports: [LocalizationPipe],\r\n declarations: [LocalizationPipe],\r\n})\r\nexport class LocalizationModule {}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nexport type SortOrder = 'asc' | 'desc';\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): 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 } 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 constructor(private injector: Injector) {}\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 { APP_INITIALIZER, Injector, Provider } from '@angular/core';\r\nimport { DOCUMENT } 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(injector: Injector) {\r\n return () => {\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\n\r\nexport const CookieLanguageProvider: Provider = {\r\n provide: APP_INITIALIZER,\r\n useFactory: setLanguageToCookie,\r\n deps: [Injector],\r\n multi: true,\r\n};\r\n","import { LOCALE_ID, Provider } 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 constructor(private localizationService: LocalizationService) {\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 deps: [LocalizationService],\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 { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { Inject, LOCALE_ID, Optional, Pipe, PipeTransform } 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\r\n constructor(private configStateService: ConfigStateService,\r\n @Inject(LOCALE_ID) locale: string,\r\n @Inject(DATE_PIPE_DEFAULT_TIMEZONE) @Optional() defaultTimezone?: string|null\r\n ) {\r\n super(locale, defaultTimezone)\r\n }\r\n\r\n transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): 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, timezone?: string,\r\n locale?: string): string|null {\r\n\r\n const format = getShortDateShortTimeFormat(this.configStateService);\r\n return super.transform(value,format,timezone,locale)\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { Inject, LOCALE_ID, Optional, Pipe, PipeTransform } 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\r\n constructor(private configStateService: ConfigStateService,\r\n @Inject(LOCALE_ID) locale: string,\r\n @Inject(DATE_PIPE_DEFAULT_TIMEZONE) @Optional() defaultTimezone?: string|null\r\n ) {\r\n super(locale, defaultTimezone)\r\n }\r\n\r\n transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): 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, timezone?: string,\r\n locale?: string): string|null {\r\n\r\n const format = getShortTimeFormat(this.configStateService);\r\n return super.transform(value,format,timezone,locale)\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { Inject, LOCALE_ID, Optional, Pipe, PipeTransform } 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\r\n constructor(private configStateService: ConfigStateService,\r\n @Inject(LOCALE_ID) locale: string,\r\n @Inject(DATE_PIPE_DEFAULT_TIMEZONE) @Optional() defaultTimezone?: string|null\r\n ) {\r\n super(locale, defaultTimezone)\r\n }\r\n\r\n transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): 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, timezone?: string,\r\n locale?: string): string|null {\r\n\r\n const format = getShortDateFormat(this.configStateService);\r\n return super.transform(value,format,timezone,locale)\r\n }\r\n\r\n\r\n}\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({ name: 'abpSafeHtml' })\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 { 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, 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 { ConfigStateService } from './config-state.service';\r\nimport { LocalizationService } from './localization.service';\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 configState = inject(ConfigStateService);\r\n protected readonly localizationService = inject(LocalizationService);\r\n protected routerState: RouterStateSnapshot;\r\n\r\n projectName = toSignal(this.configState.getDeep$('localization.defaultResourceName'), {\r\n initialValue: 'MyProjectName',\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 let title = this.buildTitle(routerState);\r\n\r\n if (!title) {\r\n this.title.setTitle(this.projectName());\r\n return;\r\n }\r\n\r\n const localizedTitle = this.localizationService.instant({ key: title, defaultValue: title });\r\n this.title.setTitle(`${localizedTitle} | ${this.projectName()}`);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';\r\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule, TitleStrategy } from '@angular/router';\r\nimport { AbstractNgModelComponent } from './abstracts/ng-model.component';\r\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\r\nimport { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component';\r\nimport { RouterOutletComponent } from './components/router-outlet.component';\r\nimport { AutofocusDirective } from './directives/autofocus.directive';\r\nimport { InputEventDebounceDirective } from './directives/debounce.directive';\r\nimport { ForDirective } from './directives/for.directive';\r\nimport { FormSubmitDirective } from './directives/form-submit.directive';\r\nimport { InitDirective } from './directives/init.directive';\r\nimport { PermissionDirective } from './directives/permission.directive';\r\nimport { ReplaceableTemplateDirective } from './directives/replaceable-template.directive';\r\nimport { StopPropagationDirective } from './directives/stop-propagation.directive';\r\nimport { RoutesHandler } from './handlers/routes.handler';\r\nimport { LocalizationModule } from './localization.module';\r\nimport { ABP } from './models/common';\r\nimport { LocalizationPipe } from './pipes/localization.pipe';\r\nimport { SortPipe } from './pipes/sort.pipe';\r\nimport { ToInjectorPipe } from './pipes/to-injector.pipe';\r\nimport { CookieLanguageProvider } from './providers/cookie-language.provider';\r\nimport { LocaleProvider } from './providers/locale.provider';\r\nimport { LocalizationService } from './services/localization.service';\r\nimport { OTHERS_GROUP } from './tokens';\r\nimport { localizationContributor, LOCALIZATIONS } from './tokens/localization.token';\r\nimport { CORE_OPTIONS, coreOptionsFactory } from './tokens/options.token';\r\nimport { TENANT_KEY } from './tokens/tenant-key.token';\r\nimport { noop } from './utils/common-utils';\r\nimport './utils/date-extensions';\r\nimport { getInitialData, localeInitializer } from './utils/initial-utils';\r\nimport { ShortDateTimePipe } from './pipes/short-date-time.pipe';\r\nimport { ShortTimePipe } from './pipes/short-time.pipe';\r\nimport { ShortDatePipe } from './pipes/short-date.pipe';\r\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\r\nimport { QUEUE_MANAGER } from './tokens/queue.token';\r\nimport { DefaultQueueManager } from './utils/queue';\r\nimport { IncludeLocalizationResourcesProvider } from './providers/include-localization-resources.provider';\r\nimport { SORT_COMPARE_FUNC, compareFuncFactory } from './tokens/compare-func.token';\r\nimport { AuthErrorFilterService } from './abstracts';\r\nimport { DYNAMIC_LAYOUTS_TOKEN } from \"./tokens/dynamic-layout.token\";\r\nimport { DEFAULT_DYNAMIC_LAYOUTS } from \"./constants\";\r\nimport { AbpTitleStrategy } from './services/title-strategy.service';\r\n\r\n\r\nconst standaloneDirectives = [\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\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 HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n LocalizationModule,\r\n AbstractNgModelComponent,\r\n DynamicLayoutComponent,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n SortPipe,\r\n SafeHtmlPipe,\r\n ToInjectorPipe,\r\n ShortDateTimePipe,\r\n ShortTimePipe,\r\n ShortDatePipe,\r\n ...standaloneDirectives,\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n LocalizationModule,\r\n ...standaloneDirectives,\r\n ],\r\n declarations: [\r\n AbstractNgModelComponent,\r\n DynamicLayoutComponent,\r\n ReplaceableRouteContainerComponent,\r\n RouterOutletComponent,\r\n SortPipe,\r\n SafeHtmlPipe,\r\n ToInjectorPipe,\r\n ShortDateTimePipe,\r\n ShortTimePipe,\r\n ShortDatePipe,\r\n ],\r\n providers: [LocalizationPipe],\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, LocalizationModule],\r\n imports: [\r\n BaseCoreModule,\r\n LocalizationModule,\r\n HttpClientXsrfModule.withOptions({\r\n cookieName: 'XSRF-TOKEN',\r\n headerName: 'RequestVerificationToken',\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 static forRoot(options = {} as ABP.Root): ModuleWithProviders<RootCoreModule> {\r\n return {\r\n ngModule: RootCoreModule,\r\n providers: [\r\n LocaleProvider,\r\n CookieLanguageProvider,\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 {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n deps: [Injector],\r\n useFactory: getInitialData,\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n deps: [Injector],\r\n useFactory: localeInitializer,\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n deps: [LocalizationService],\r\n useFactory: noop,\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n deps: [RoutesHandler],\r\n useFactory: noop,\r\n },\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: SORT_COMPARE_FUNC,\r\n useFactory: compareFuncFactory,\r\n },\r\n {\r\n provide: QUEUE_MANAGER,\r\n useClass: DefaultQueueManager,\r\n },\r\n {\r\n provide: OTHERS_GROUP,\r\n useValue: options.othersGroup || 'AbpUi::OthersGroup',\r\n },\r\n AuthErrorFilterService,\r\n IncludeLocalizationResourcesProvider,\r\n {\r\n provide: DYNAMIC_LAYOUTS_TOKEN,\r\n useValue: options.dynamicLayouts || DEFAULT_DYNAMIC_LAYOUTS\r\n },\r\n {\r\n provide: TitleStrategy,\r\n useExisting: AbpTitleStrategy\r\n }\r\n ],\r\n };\r\n }\r\n\r\n static forChild(options = {} as ABP.Child): ModuleWithProviders<RootCoreModule> {\r\n return {\r\n ngModule: RootCoreModule,\r\n providers: [\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 }\r\n}\r\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\r\n\r\n@Directive({\r\n standalone: true,\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 standalone: true,\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","import { Injectable, inject } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n CanActivateFn,\r\n Router,\r\n RouterStateSnapshot,\r\n} from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { AuthService, IAbpGuard } from '../abstracts';\r\nimport { findRoute, getRoutePath } from '../utils/route-utils';\r\nimport { RoutesService, PermissionService, HttpErrorReporterService } from '../services';\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\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\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) return of(true);\r\n\r\n return this.permissionService.getGrantedPolicy$(requiredPolicy).pipe(\r\n tap(access => {\r\n if (!access && this.authService.isAuthenticated) {\r\n this.httpErrorReporter.reportError({ status: 403 } as HttpErrorResponse);\r\n }\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\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) return of(true);\r\n\r\n return permissionService.getGrantedPolicy$(requiredPolicy).pipe(\r\n tap(access => {\r\n if (!access && authService.isAuthenticated) {\r\n httpErrorReporter.reportError({ status: 403 } as HttpErrorResponse);\r\n }\r\n }),\r\n );\r\n};\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/rest.service';\r\nimport { Injectable } from '@angular/core';\r\nimport type {\r\n ApplicationApiDescriptionModel,\r\n ApplicationApiDescriptionModelRequestDto,\r\n} from '../../../http/modeling/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpApiDefinitionService {\r\n apiName = 'abp';\r\n\r\n getByModel = (model: ApplicationApiDescriptionModelRequestDto) =>\r\n this.restService.request<any, ApplicationApiDescriptionModel>(\r\n {\r\n method: 'GET',\r\n url: '/api/abp/api-definition',\r\n params: { includeTypes: model.includeTypes },\r\n },\r\n { apiName: this.apiName },\r\n );\r\n\r\n constructor(private restService: RestService) {}\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\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 = 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 = 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 { 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, ValidationErrors, 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","import { HttpHandler, HttpHeaders, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { HttpWaitService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiInterceptor implements IApiInterceptor {\r\n constructor(private httpWaitService: 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) {\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","// 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/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":["i2.ExternalHttpClient","i3.EnvironmentService","i4.HttpErrorReporterService","i1.RestService","i1.ConfigStateService","i2.AbpLocalStorageService","i1.SessionStateService","i2.ConfigStateService","i1","i1.ResourceWaitService","i1.RouterEvents","map","i2.ReplaceableComponentsService","i3.SubscriptionService","i4","i1.SubscriptionService","i2.SubscriptionService","i1.ReplaceableComponentsService","i1.RoutesService","i2","i1.LocalizationService","i1.HttpWaitService"],"mappings":"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"}