{"version":3,"sources":["node_modules/just-compare/index.mjs","node_modules/just-clone/index.mjs","node_modules/@abp/ng.core/fesm2020/abp-ng.core.mjs"],"sourcesContent":["var collectionCompare = compare;\n\n/*\n primitives: value1 === value2\n functions: value1.toString == value2.toString\n arrays: if length, sequence and values of properties are identical\n objects: if length, names and values of properties are identical\n compare([[1, [2, 3]], [[1, [2, 3]]); // true\n compare([[1, [2, 3], 4], [[1, [2, 3]]); // false\n compare({a: 2, b: 3}, {a: 2, b: 3}); // true\n compare({a: 2, b: 3}, {b: 3, a: 2}); // true\n compare({a: 2, b: 3, c: 4}, {a: 2, b: 3}); // false\n compare({a: 2, b: 3}, {a: 2, b: 3, c: 4}); // false\n compare([[1, [2, {a: 4}], 4], [[1, [2, {a: 4}]]); // true\n*/\n\nfunction compare(value1, value2) {\n if (value1 === value2) {\n return true;\n }\n\n /* eslint-disable no-self-compare */\n // if both values are NaNs return true\n if (value1 !== value1 && value2 !== value2) {\n return true;\n }\n if (typeof value1 != typeof value2 ||\n // primitive != primitive wrapper\n {}.toString.call(value1) != {}.toString.call(value2) // check for other (maybe nullish) objects\n ) {\n return false;\n }\n if (value1 !== Object(value1)) {\n // non equal primitives\n return false;\n }\n if (!value1) {\n return false;\n }\n if (Array.isArray(value1)) {\n return compareArrays(value1, value2);\n }\n if ({}.toString.call(value1) == '[object Set]') {\n return compareArrays(Array.from(value1), Array.from(value2));\n }\n if ({}.toString.call(value1) == '[object Object]') {\n return compareObjects(value1, value2);\n }\n return compareNativeSubtypes(value1, value2);\n}\nfunction compareNativeSubtypes(value1, value2) {\n // e.g. Function, RegExp, Date\n return value1.toString() === value2.toString();\n}\nfunction compareArrays(value1, value2) {\n var len = value1.length;\n if (len != value2.length) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n if (!compare(value1[i], value2[i])) {\n return false;\n }\n }\n return true;\n}\nfunction compareObjects(value1, value2) {\n var keys1 = Object.keys(value1);\n var len = keys1.length;\n if (len != Object.keys(value2).length) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key1 = keys1[i];\n if (!(value2.hasOwnProperty(key1) && compare(value1[key1], value2[key1]))) {\n return false;\n }\n }\n return true;\n}\nexport { collectionCompare as default };","var collectionClone = clone;\n\n/*\n Deep clones all properties except functions\n\n var arr = [1, 2, 3];\n var subObj = {aa: 1};\n var obj = {a: 3, b: 5, c: arr, d: subObj};\n var objClone = clone(obj);\n arr.push(4);\n subObj.bb = 2;\n obj; // {a: 3, b: 5, c: [1, 2, 3, 4], d: {aa: 1}}\n objClone; // {a: 3, b: 5, c: [1, 2, 3], d: {aa: 1, bb: 2}}\n*/\n\nfunction clone(obj) {\n let result = obj;\n var type = {}.toString.call(obj).slice(8, -1);\n if (type == 'Set') {\n return new Set([...obj].map(value => clone(value)));\n }\n if (type == 'Map') {\n return new Map([...obj].map(kv => [clone(kv[0]), clone(kv[1])]));\n }\n if (type == 'Date') {\n return new Date(obj.getTime());\n }\n if (type == 'RegExp') {\n return RegExp(obj.source, getRegExpFlags(obj));\n }\n if (type == 'Array' || type == 'Object') {\n result = Array.isArray(obj) ? [] : {};\n for (var key in obj) {\n // include prototype properties\n result[key] = clone(obj[key]);\n }\n }\n // primitives and non-supported objects (e.g. functions) land here\n return result;\n}\nfunction getRegExpFlags(regExp) {\n if (typeof regExp.source.flags == 'string') {\n return regExp.source.flags;\n } else {\n var flags = [];\n regExp.global && flags.push('g');\n regExp.ignoreCase && flags.push('i');\n regExp.multiline && flags.push('m');\n regExp.sticky && flags.push('y');\n regExp.unicode && flags.push('u');\n return flags.join('');\n }\n}\nexport { collectionClone as default };","import * as i0 from '@angular/core';\nimport { ChangeDetectorRef, Component, Input, Injectable, InjectionToken, Inject, Optional, isDevMode, SkipSelf, Directive, EventEmitter, Output, Self, Injector, Pipe, NgModule, APP_INITIALIZER, LOCALE_ID, NgModuleFactory, Compiler, inject, SecurityContext, ComponentFactoryResolver, ApplicationRef } from '@angular/core';\nimport { of, BehaviorSubject, Subject, throwError, combineLatest, from, map as map$1, Subscription, fromEvent, ReplaySubject, lastValueFrom, Observable, timer, pipe, concat } from 'rxjs';\nimport * as i1$1 from '@angular/router';\nimport { PRIMARY_OUTLET, NavigationCancel, NavigationEnd, NavigationError, NavigationStart, ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport * as i5 from '@angular/common';\nimport { registerLocaleData, DOCUMENT, DatePipe, DATE_PIPE_DEFAULT_TIMEZONE, CommonModule } from '@angular/common';\nimport { map, distinctUntilChanged, filter, catchError, switchMap, take, tap, debounceTime, mapTo, takeUntil, delay, retryWhen, shareReplay, finalize } from 'rxjs/operators';\nimport * as i1 from '@angular/common/http';\nimport { HttpContextToken, HttpClient, HttpContext, HttpParams, HttpClientModule, HttpClientXsrfModule, HttpHeaders } from '@angular/common/http';\nimport { __classPrivateFieldGet } from 'tslib';\nimport compare from 'just-compare';\nimport * as i1$2 from '@angular/forms';\nimport { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\nimport clone from 'just-clone';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n// Not an abstract class on purpose. Do not change!\nfunction DynamicLayoutComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 1);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngComponentOutlet\", ctx_r0.layout);\n }\n}\nfunction ReplaceableRouteContainerComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nlet AbstractNgModelComponent = /*#__PURE__*/(() => {\n class AbstractNgModelComponent {\n constructor(injector) {\n this.injector = injector;\n this.valueFn = value => value;\n this.valueLimitFn = value => false;\n this.cdRef = injector.get(ChangeDetectorRef);\n }\n set value(value) {\n value = this.valueFn(value, this._value);\n if (this.valueLimitFn(value, this._value) !== false || this.readonly) return;\n this._value = value;\n this.notifyValueChange();\n }\n get value() {\n return this._value || this.defaultValue;\n }\n get defaultValue() {\n return this._value;\n }\n notifyValueChange() {\n if (this.onChange) {\n this.onChange(this.value);\n }\n }\n writeValue(value) {\n this._value = this.valueLimitFn(value, this._value) || value;\n setTimeout(() => this.cdRef.markForCheck(), 0);\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n }\n AbstractNgModelComponent.ɵfac = function AbstractNgModelComponent_Factory(t) {\n return new (t || AbstractNgModelComponent)(i0.ɵɵdirectiveInject(i0.Injector));\n };\n AbstractNgModelComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AbstractNgModelComponent,\n selectors: [[\"ng-component\"]],\n inputs: {\n disabled: \"disabled\",\n readonly: \"readonly\",\n valueFn: \"valueFn\",\n valueLimitFn: \"valueLimitFn\",\n value: \"value\"\n },\n decls: 0,\n vars: 0,\n template: function AbstractNgModelComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return AbstractNgModelComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AuthGuard = /*#__PURE__*/(() => {\n class AuthGuard {\n canActivate() {\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\n return false;\n }\n }\n AuthGuard.ɵfac = function AuthGuard_Factory(t) {\n return new (t || AuthGuard)();\n };\n AuthGuard.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AuthGuard,\n factory: AuthGuard.ɵfac,\n providedIn: 'root'\n });\n return AuthGuard;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\r\n * Abstract service for Authentication.\r\n */\nlet AuthService = /*#__PURE__*/(() => {\n class AuthService {\n warningMessage() {\n console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\n }\n init() {\n this.warningMessage();\n return Promise.resolve(undefined);\n }\n login(params) {\n this.warningMessage();\n return of(undefined);\n }\n logout(queryParams) {\n this.warningMessage();\n return of(undefined);\n }\n navigateToLogin(queryParams) {}\n get isInternalAuth() {\n throw new Error('not implemented');\n return false;\n }\n get isAuthenticated() {\n this.warningMessage();\n return false;\n }\n loginUsingGrant(grantType, parameters, headers) {\n console.log({\n grantType,\n parameters,\n headers\n });\n return Promise.reject(new Error('not implemented'));\n }\n }\n AuthService.ɵfac = function AuthService_Factory(t) {\n return new (t || AuthService)();\n };\n AuthService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AuthService,\n factory: AuthService.ɵfac,\n providedIn: 'root'\n });\n return AuthService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst LOCALIZATIONS = new InjectionToken('LOCALIZATIONS');\nfunction localizationContributor(localizations) {\n if (localizations) {\n localizations$.next([...localizations$.value, ...localizations]);\n }\n}\nconst localizations$ = new BehaviorSubject([]);\nconst CORE_OPTIONS = new InjectionToken('CORE_OPTIONS');\nfunction coreOptionsFactory({\n ...options\n}) {\n return {\n ...options\n };\n}\n\n// This will not be necessary when only Angukar 9.1+ is supported\nfunction getLocaleDirection(locale) {\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(locale) ? 'rtl' : 'ltr';\n}\nfunction createLocalizer(localization) {\n return (resourceName, key, defaultValue) => {\n if (resourceName === '_') return key;\n const resource = localization?.values?.[resourceName];\n if (!resource) return defaultValue;\n return resource[key] || defaultValue;\n };\n}\nfunction createLocalizerWithFallback(localization) {\n const findLocalization = createLocalizationFinder(localization);\n return (resourceNames, keys, defaultValue) => {\n const {\n localized\n } = findLocalization(resourceNames, keys);\n return localized || defaultValue;\n };\n}\nfunction createLocalizationPipeKeyGenerator(localization) {\n const findLocalization = createLocalizationFinder(localization);\n return (resourceNames, keys, defaultKey) => {\n const {\n resourceName,\n key\n } = findLocalization(resourceNames, keys);\n return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`;\n };\n}\nfunction createLocalizationFinder(localization) {\n const localize = createLocalizer(localization);\n return (resourceNames, keys) => {\n resourceNames = resourceNames.concat(localization.defaultResourceName || '').filter(Boolean);\n const resourceCount = resourceNames.length;\n const keyCount = keys.length;\n for (let i = 0; i < resourceCount; i++) {\n const resourceName = resourceNames[i];\n for (let j = 0; j < keyCount; j++) {\n const key = keys[j];\n const localized = localize(resourceName, key, null);\n if (localized) return {\n resourceName,\n key,\n localized\n };\n }\n }\n return {\n resourceName: undefined,\n key: undefined,\n localized: undefined\n };\n };\n}\nfunction createTokenParser(format) {\n return str => {\n const tokens = [];\n const regex = format.replace(/\\./g, '\\\\.').replace(/\\{\\s?([0-9a-zA-Z]+)\\s?\\}/g, (_, token) => {\n tokens.push(token);\n return '(.+)';\n });\n const matches = (str.match(regex) || []).slice(1);\n return matches.reduce((acc, v, i) => {\n const key = tokens[i];\n acc[key] = [...(acc[key] || []), v].filter(Boolean);\n return acc;\n }, {});\n };\n}\nfunction interpolate(text, params) {\n return text.replace(/(['\"]?\\{\\s*(\\d+)\\s*\\}['\"]?)/g, (_, match, digit) => params[digit] ?? match).replace(/\\s+/g, ' ');\n}\nfunction escapeHtmlChars(value) {\n return value && typeof value === 'string' ? value.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"') : value;\n}\nconst IS_EXTERNAL_REQUEST = new HttpContextToken(() => false);\nvar _ExternalHttpClient_instances, _ExternalHttpClient_setPlaceholderContext;\n// source : https://github.com/armanozak/demo-angular-server-specific-interceptors\nclass ExternalHttpClient extends HttpClient {\n constructor() {\n super(...arguments);\n _ExternalHttpClient_instances.add(this);\n }\n request(first, url, options = {}) {\n if (typeof first === 'string') {\n __classPrivateFieldGet(this, _ExternalHttpClient_instances, \"m\", _ExternalHttpClient_setPlaceholderContext).call(this, options);\n return super.request(first, url || '', options);\n }\n __classPrivateFieldGet(this, _ExternalHttpClient_instances, \"m\", _ExternalHttpClient_setPlaceholderContext).call(this, first);\n return super.request(first);\n }\n}\n_ExternalHttpClient_instances = new WeakSet(), _ExternalHttpClient_setPlaceholderContext = function _ExternalHttpClient_setPlaceholderContext(optionsOrRequest) {\n optionsOrRequest.context ?? (optionsOrRequest.context = new HttpContext());\n optionsOrRequest.context.set(IS_EXTERNAL_REQUEST, true);\n};\nExternalHttpClient.ɵfac = /* @__PURE__ */(() => {\n let ɵExternalHttpClient_BaseFactory;\n return function ExternalHttpClient_Factory(t) {\n return (ɵExternalHttpClient_BaseFactory || (ɵExternalHttpClient_BaseFactory = i0.ɵɵgetInheritedFactory(ExternalHttpClient)))(t || ExternalHttpClient);\n };\n})();\nExternalHttpClient.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ExternalHttpClient,\n factory: ExternalHttpClient.ɵfac,\n providedIn: 'root'\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction noop() {\n const fn = function () {};\n return fn;\n}\nfunction isUndefinedOrEmptyString(value) {\n return value === undefined || value === '';\n}\nfunction isNullOrUndefined(obj) {\n return obj === null || obj === undefined;\n}\nfunction isNullOrEmpty(obj) {\n return obj === null || obj === undefined || obj === '';\n}\nfunction exists(obj) {\n return !isNullOrUndefined(obj);\n}\nfunction isObject(obj) {\n return obj instanceof Object;\n}\nfunction isArray(obj) {\n return Array.isArray(obj);\n}\nfunction isObjectAndNotArray(obj) {\n return isObject(obj) && !isArray(obj);\n}\nfunction isNode(obj) {\n return obj instanceof Node;\n}\nfunction isObjectAndNotArrayNotNode(obj) {\n return isObjectAndNotArray(obj) && !isNode(obj);\n}\nfunction checkHasProp(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\nfunction deepMerge(target, source) {\n if (isObjectAndNotArrayNotNode(target) && isObjectAndNotArrayNotNode(source)) {\n return deepMergeRecursively(target, source);\n } else if (isNullOrUndefined(target) && isNullOrUndefined(source)) {\n return {};\n } else {\n return exists(source) ? source : target;\n }\n}\nfunction deepMergeRecursively(target, source) {\n const shouldNotRecurse = isNullOrUndefined(target) || isNullOrUndefined(source) ||\n // at least one not defined\n isArray(target) || isArray(source) ||\n // at least one array\n !isObject(target) || !isObject(source) ||\n // at least one not an object\n isNode(target) || isNode(source); // at least one node\n /**\r\n * if we will not recurse any further,\r\n * we will prioritize source if it is a defined value.\r\n */\n if (shouldNotRecurse) {\n return exists(source) ? source : target;\n }\n const keysOfTarget = Object.keys(target);\n const keysOfSource = Object.keys(source);\n const uniqueKeys = new Set(keysOfTarget.concat(keysOfSource));\n return [...uniqueKeys].reduce((retVal, key) => {\n retVal[key] = deepMergeRecursively(target[key], source[key]);\n return retVal;\n }, {});\n}\nclass InternalStore {\n constructor(initialState) {\n this.initialState = initialState;\n this.state$ = new BehaviorSubject(this.initialState);\n this.update$ = new Subject();\n this.sliceState = (selector, compareFn = compare) => this.state$.pipe(map(selector), distinctUntilChanged(compareFn));\n this.sliceUpdate = (selector, filterFn = x => x !== undefined) => this.update$.pipe(map(selector), filter(filterFn));\n }\n get state() {\n return this.state$.value;\n }\n patch(state) {\n let patchedState = state;\n if (typeof state === 'object' && !Array.isArray(state)) {\n patchedState = {\n ...this.state,\n ...state\n };\n }\n this.state$.next(patchedState);\n this.update$.next(patchedState);\n }\n deepPatch(state) {\n // TODO: Strict improve deepMerge\n this.state$.next(deepMerge(this.state, state));\n this.update$.next(state);\n }\n set(state) {\n this.state$.next(state);\n this.update$.next(state);\n }\n reset() {\n this.set(this.initialState);\n }\n}\nconst mapToApiUrl = key => apis => (key && apis[key] || apis.default).url || apis.default.url;\nconst mapToIssuer = issuer => {\n if (!issuer) {\n return issuer;\n }\n return issuer.endsWith('/') ? issuer : issuer + '/';\n};\nlet EnvironmentService = /*#__PURE__*/(() => {\n class EnvironmentService {\n constructor() {\n this.store = new InternalStore({});\n }\n get createOnUpdateStream() {\n return this.store.sliceUpdate;\n }\n getEnvironment$() {\n return this.store.sliceState(state => state);\n }\n getEnvironment() {\n return this.store.state;\n }\n getApiUrl(key) {\n return mapToApiUrl(key)(this.store.state?.apis);\n }\n getApiUrl$(key) {\n return this.store.sliceState(state => state.apis).pipe(map(mapToApiUrl(key)));\n }\n setState(environment) {\n this.store.set(environment);\n }\n getIssuer() {\n const issuer = this.store.state?.oAuthConfig?.issuer;\n return mapToIssuer(issuer);\n }\n getIssuer$() {\n return this.store.sliceState(state => state?.oAuthConfig?.issuer).pipe(map(mapToIssuer));\n }\n }\n EnvironmentService.ɵfac = function EnvironmentService_Factory(t) {\n return new (t || EnvironmentService)();\n };\n EnvironmentService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EnvironmentService,\n factory: EnvironmentService.ɵfac,\n providedIn: 'root'\n });\n return EnvironmentService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet HttpErrorReporterService = /*#__PURE__*/(() => {\n class HttpErrorReporterService {\n constructor() {\n this._reporter$ = new Subject();\n this._errors$ = new BehaviorSubject([]);\n this.reportError = error => {\n this._reporter$.next(error);\n this._errors$.next([...this.errors, error]);\n };\n }\n get reporter$() {\n return this._reporter$.asObservable();\n }\n get errors$() {\n return this._errors$.asObservable();\n }\n get errors() {\n return this._errors$.value;\n }\n }\n HttpErrorReporterService.ɵfac = function HttpErrorReporterService_Factory(t) {\n return new (t || HttpErrorReporterService)();\n };\n HttpErrorReporterService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HttpErrorReporterService,\n factory: HttpErrorReporterService.ɵfac,\n providedIn: 'root'\n });\n return HttpErrorReporterService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet RestService = /*#__PURE__*/(() => {\n class RestService {\n constructor(options, http, externalHttp, environment, httpErrorReporter) {\n this.options = options;\n this.http = http;\n this.externalHttp = externalHttp;\n this.environment = environment;\n this.httpErrorReporter = httpErrorReporter;\n }\n getApiFromStore(apiName) {\n return this.environment.getApiUrl(apiName);\n }\n handleError(err) {\n this.httpErrorReporter.reportError(err);\n return throwError(err);\n }\n request(request, config, api) {\n config = config || {};\n api = api || this.getApiFromStore(config.apiName);\n const {\n method,\n params,\n ...options\n } = request;\n const {\n observe = \"body\" /* Rest.Observe.Body */,\n skipHandleError\n } = config;\n const url = this.removeDuplicateSlashes(api + request.url);\n const httpClient = this.getHttpClient(config.skipAddingHeader);\n return httpClient.request(method, url, {\n observe,\n ...(params && {\n params: this.getParams(params, config.httpParamEncoder)\n }),\n ...options\n }).pipe(catchError(err => skipHandleError ? throwError(err) : this.handleError(err)));\n }\n getHttpClient(isExternal) {\n return isExternal ? this.externalHttp : this.http;\n }\n getParams(params, encoder) {\n const filteredParams = Object.entries(params).reduce((acc, [key, value]) => {\n if (isUndefinedOrEmptyString(value)) return acc;\n if (value === null && !this.options.sendNullsAsQueryParam) return acc;\n acc[key] = value;\n return acc;\n }, {});\n return encoder ? new HttpParams({\n encoder,\n fromObject: filteredParams\n }) : new HttpParams({\n fromObject: filteredParams\n });\n }\n removeDuplicateSlashes(url) {\n return url.replace(/([^:]\\/)\\/+/g, '$1');\n }\n }\n RestService.ɵfac = function RestService_Factory(t) {\n return new (t || RestService)(i0.ɵɵinject(CORE_OPTIONS), i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(ExternalHttpClient), i0.ɵɵinject(EnvironmentService), i0.ɵɵinject(HttpErrorReporterService));\n };\n RestService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RestService,\n factory: RestService.ɵfac,\n providedIn: 'root'\n });\n return RestService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AbpApplicationConfigurationService = /*#__PURE__*/(() => {\n class AbpApplicationConfigurationService {\n constructor(restService) {\n this.restService = restService;\n this.apiName = 'abp';\n this.get = options => this.restService.request({\n method: 'GET',\n url: '/api/abp/application-configuration',\n params: {\n includeLocalizationResources: options.includeLocalizationResources\n }\n }, {\n apiName: this.apiName\n });\n }\n }\n AbpApplicationConfigurationService.ɵfac = function AbpApplicationConfigurationService_Factory(t) {\n return new (t || AbpApplicationConfigurationService)(i0.ɵɵinject(RestService));\n };\n AbpApplicationConfigurationService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AbpApplicationConfigurationService,\n factory: AbpApplicationConfigurationService.ɵfac,\n providedIn: 'root'\n });\n return AbpApplicationConfigurationService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AbpApplicationLocalizationService = /*#__PURE__*/(() => {\n class AbpApplicationLocalizationService {\n constructor(restService) {\n this.restService = restService;\n this.apiName = 'abp';\n this.get = input => this.restService.request({\n method: 'GET',\n url: '/api/abp/application-localization',\n params: {\n cultureName: input.cultureName,\n onlyDynamics: input.onlyDynamics\n }\n }, {\n apiName: this.apiName\n });\n }\n }\n AbpApplicationLocalizationService.ɵfac = function AbpApplicationLocalizationService_Factory(t) {\n return new (t || AbpApplicationLocalizationService)(i0.ɵɵinject(RestService));\n };\n AbpApplicationLocalizationService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AbpApplicationLocalizationService,\n factory: AbpApplicationLocalizationService.ɵfac,\n providedIn: 'root'\n });\n return AbpApplicationLocalizationService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst INCUDE_LOCALIZATION_RESOURCES_TOKEN = new InjectionToken('INCUDE_LOCALIZATION_RESOURCES_TOKEN');\nlet ConfigStateService = /*#__PURE__*/(() => {\n class ConfigStateService {\n constructor(abpConfigService, abpApplicationLocalizationService, includeLocalizationResources) {\n this.abpConfigService = abpConfigService;\n this.abpApplicationLocalizationService = abpApplicationLocalizationService;\n this.includeLocalizationResources = includeLocalizationResources;\n this.store = new InternalStore({});\n this.updateSubject = new Subject();\n this.initUpdateStream();\n }\n get createOnUpdateStream() {\n return this.store.sliceUpdate;\n }\n initUpdateStream() {\n this.updateSubject.pipe(switchMap(() => this.abpConfigService.get({\n includeLocalizationResources: !!this.includeLocalizationResources\n }))).pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState))).subscribe(res => this.store.set(res));\n }\n getLocalizationAndCombineWithAppState(appState) {\n if (!appState.localization.currentCulture.cultureName) {\n throw new Error('culture name should defined');\n }\n return this.getlocalizationResource(appState.localization.currentCulture.cultureName).pipe(map(result => ({\n ...appState,\n localization: {\n ...appState.localization,\n ...result\n }\n })));\n }\n getlocalizationResource(cultureName) {\n return this.abpApplicationLocalizationService.get({\n cultureName: cultureName,\n onlyDynamics: false\n });\n }\n refreshAppState() {\n this.updateSubject.next();\n return this.createOnUpdateStream(state => state).pipe(take(1));\n }\n refreshLocalization(lang) {\n if (this.includeLocalizationResources) {\n return this.refreshAppState().pipe(map(() => null));\n } else {\n return this.getlocalizationResource(lang).pipe(tap(result => this.store.patch({\n localization: {\n ...this.store.state.localization,\n ...result\n }\n }))).pipe(map(() => null));\n }\n }\n getOne$(key) {\n return this.store.sliceState(state => state[key]);\n }\n getOne(key) {\n return this.store.state[key];\n }\n getAll$() {\n return this.store.sliceState(state => state);\n }\n getAll() {\n return this.store.state;\n }\n getDeep$(keys) {\n keys = splitKeys(keys);\n return this.store.sliceState(state => state).pipe(map(state => {\n return keys.reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n return undefined;\n }, state);\n }));\n }\n getDeep(keys) {\n keys = splitKeys(keys);\n return keys.reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n return undefined;\n }, this.store.state);\n }\n getFeature(key) {\n return this.store.state.features?.values?.[key];\n }\n getFeature$(key) {\n return this.store.sliceState(state => state.features?.values?.[key]);\n }\n getFeatures(keys) {\n const {\n features\n } = this.store.state;\n if (!features) return;\n return keys.reduce((acc, key) => ({\n ...acc,\n [key]: features.values[key]\n }), {});\n }\n getFeatures$(keys) {\n return this.store.sliceState(({\n features\n }) => {\n if (!features?.values) return;\n return keys.reduce((acc, key) => ({\n ...acc,\n [key]: features.values[key]\n }), {});\n });\n }\n getSetting(key) {\n return this.store.state.setting?.values?.[key];\n }\n getSetting$(key) {\n return this.store.sliceState(state => state.setting?.values?.[key]);\n }\n getSettings(keyword) {\n const settings = this.store.state.setting?.values || {};\n if (!keyword) return settings;\n const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);\n return keysFound.reduce((acc, key) => {\n acc[key] = settings[key];\n return acc;\n }, {});\n }\n getSettings$(keyword) {\n return this.store.sliceState(state => state.setting?.values).pipe(map((settings = {}) => {\n if (!keyword) return settings;\n const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);\n return keysFound.reduce((acc, key) => {\n acc[key] = settings[key];\n return acc;\n }, {});\n }));\n }\n getGlobalFeatures() {\n return this.store.state.globalFeatures;\n }\n getGlobalFeatures$() {\n return this.store.sliceState(state => state.globalFeatures);\n }\n isGlobalFeatureEnabled(key, globalFeatures) {\n const features = globalFeatures.enabledFeatures || [];\n return features.some(f => key === f);\n }\n getGlobalFeatureIsEnabled(key) {\n return this.isGlobalFeatureEnabled(key, this.store.state.globalFeatures);\n }\n getGlobalFeatureIsEnabled$(key) {\n return this.store.sliceState(state => this.isGlobalFeatureEnabled(key, state.globalFeatures));\n }\n }\n ConfigStateService.ɵfac = function ConfigStateService_Factory(t) {\n return new (t || ConfigStateService)(i0.ɵɵinject(AbpApplicationConfigurationService), i0.ɵɵinject(AbpApplicationLocalizationService), i0.ɵɵinject(INCUDE_LOCALIZATION_RESOURCES_TOKEN, 8));\n };\n ConfigStateService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ConfigStateService,\n factory: ConfigStateService.ɵfac,\n providedIn: 'root'\n });\n return ConfigStateService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction splitKeys(keys) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n return keys;\n}\nlet AbpLocalStorageService = /*#__PURE__*/(() => {\n class AbpLocalStorageService {\n constructor() {}\n get length() {\n return localStorage.length;\n }\n clear() {\n localStorage.clear();\n }\n getItem(key) {\n return localStorage.getItem(key);\n }\n key(index) {\n return localStorage.key(index);\n }\n removeItem(key) {\n localStorage.removeItem(key);\n }\n setItem(key, value) {\n localStorage.setItem(key, value);\n }\n }\n AbpLocalStorageService.ɵfac = function AbpLocalStorageService_Factory(t) {\n return new (t || AbpLocalStorageService)();\n };\n AbpLocalStorageService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AbpLocalStorageService,\n factory: AbpLocalStorageService.ɵfac,\n providedIn: 'root'\n });\n return AbpLocalStorageService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SessionStateService = /*#__PURE__*/(() => {\n class SessionStateService {\n constructor(configState, localStorageService) {\n this.configState = configState;\n this.localStorageService = localStorageService;\n this.store = new InternalStore({});\n this.updateLocalStorage = () => {\n this.localStorageService.setItem('abpSession', JSON.stringify(this.store.state));\n };\n this.init();\n this.setInitialLanguage();\n }\n init() {\n const session = this.localStorageService.getItem('abpSession');\n if (session) {\n this.store.set(JSON.parse(session));\n }\n this.store.sliceUpdate(state => state).subscribe(this.updateLocalStorage);\n }\n setInitialLanguage() {\n const appLanguage = this.getLanguage();\n this.configState.getDeep$('localization.currentCulture.cultureName').pipe(filter(cultureName => !!cultureName), take(1)).subscribe(lang => {\n if (lang.includes(';')) {\n lang = lang.split(';')[0];\n }\n if (appLanguage !== lang) {\n this.setLanguage(lang);\n }\n });\n }\n onLanguageChange$() {\n return this.store.sliceUpdate(state => state.language);\n }\n onTenantChange$() {\n return this.store.sliceUpdate(state => state.tenant);\n }\n getLanguage() {\n return this.store.state.language;\n }\n getLanguage$() {\n return this.store.sliceState(state => state.language);\n }\n getTenant() {\n return this.store.state.tenant;\n }\n getTenant$() {\n return this.store.sliceState(state => state.tenant);\n }\n setTenant(tenant) {\n if (compare(tenant, this.store.state.tenant)) return;\n this.store.set({\n ...this.store.state,\n tenant\n });\n }\n setLanguage(language) {\n if (language === this.store.state.language) return;\n this.store.patch({\n language\n });\n document.documentElement.setAttribute('lang', language);\n }\n }\n SessionStateService.ɵfac = function SessionStateService_Factory(t) {\n return new (t || SessionStateService)(i0.ɵɵinject(ConfigStateService), i0.ɵɵinject(AbpLocalStorageService));\n };\n SessionStateService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SessionStateService,\n factory: SessionStateService.ɵfac,\n providedIn: 'root'\n });\n return SessionStateService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet LocalizationService = /*#__PURE__*/(() => {\n class LocalizationService {\n constructor(sessionState, injector, otherInstance, configState) {\n this.sessionState = sessionState;\n this.injector = injector;\n this.configState = configState;\n this.latestLang = this.sessionState.getLanguage();\n this._languageChange$ = new Subject();\n this.uiLocalizations$ = new BehaviorSubject(new Map());\n this.localizations$ = new BehaviorSubject(new Map());\n if (otherInstance) throw new Error('LocalizationService should have only one instance.');\n this.listenToSetLanguage();\n this.initLocalizationValues();\n }\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 */\n get currentLang() {\n return this.latestLang || this.sessionState.getLanguage();\n }\n get currentLang$() {\n return this.sessionState.getLanguage$();\n }\n get languageChange$() {\n return this._languageChange$.asObservable();\n }\n initLocalizationValues() {\n localizations$.subscribe(val => this.addLocalization(val));\n const legacyResources$ = this.configState.getDeep$('localization.values');\n const remoteLocalizations$ = this.configState.getDeep$('localization.resources');\n const currentLanguage$ = this.sessionState.getLanguage$();\n const uiLocalizations$ = combineLatest([currentLanguage$, this.uiLocalizations$]).pipe(map(([currentLang, localizations]) => localizations.get(currentLang)));\n combineLatest([legacyResources$, remoteLocalizations$, uiLocalizations$]).pipe(map(([legacy, resource, local]) => {\n if (!resource) {\n return;\n }\n const remote = combineLegacyandNewResources(legacy || {}, resource);\n if (remote) {\n if (!local) {\n local = new Map();\n }\n Object.entries(remote).forEach(entry => {\n const resourceName = entry[0];\n const remoteTexts = entry[1];\n let resource = local?.get(resourceName) || {};\n resource = {\n ...resource,\n ...remoteTexts\n };\n local?.set(resourceName, resource);\n });\n }\n return local;\n }), filter(Boolean)).subscribe(val => this.localizations$.next(val));\n }\n addLocalization(localizations) {\n if (!localizations) return;\n const localizationMap = this.uiLocalizations$.value;\n localizations.forEach(loc => {\n const cultureMap = localizationMap.get(loc.culture) || new Map();\n loc.resources.forEach(res => {\n let resource = cultureMap.get(res.resourceName) || {};\n resource = {\n ...resource,\n ...res.texts\n };\n cultureMap.set(res.resourceName, resource);\n });\n localizationMap.set(loc.culture, cultureMap);\n });\n this.uiLocalizations$.next(localizationMap);\n }\n listenToSetLanguage() {\n this.sessionState.onLanguageChange$().pipe(filter(lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang), switchMap(lang => this.configState.refreshAppState().pipe(map(() => lang))), filter(Boolean), switchMap(lang => from(this.registerLocale(lang).then(() => lang)))).subscribe(lang => this._languageChange$.next(lang));\n }\n registerLocale(locale) {\n const {\n registerLocaleFn\n } = this.injector.get(CORE_OPTIONS);\n return registerLocaleFn(locale).then(module => {\n if (module?.default) registerLocaleData(module.default);\n this.latestLang = locale;\n });\n }\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 */\n get(key, ...interpolateParams) {\n return this.configState.getAll$().pipe(map(state => this.getLocalization(state, key, ...interpolateParams)));\n }\n getResource(resourceName) {\n return this.localizations$.value.get(resourceName);\n }\n getResource$(resourceName) {\n return this.localizations$.pipe(map(res => res.get(resourceName)));\n }\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 */\n instant(key, ...interpolateParams) {\n return this.getLocalization(this.configState.getAll(), key, ...interpolateParams);\n }\n localize(resourceName, key, defaultValue) {\n return this.configState.getOne$('localization').pipe(map(createLocalizer), map(localize => localize(resourceName, key, defaultValue)));\n }\n localizeSync(resourceName, key, defaultValue) {\n const localization = this.configState.getOne('localization');\n return createLocalizer(localization)(resourceName, key, defaultValue);\n }\n localizeWithFallback(resourceNames, keys, defaultValue) {\n return this.configState.getOne$('localization').pipe(map(createLocalizerWithFallback), map(localizeWithFallback => localizeWithFallback(resourceNames, keys, defaultValue)));\n }\n localizeWithFallbackSync(resourceNames, keys, defaultValue) {\n const localization = this.configState.getOne('localization');\n return createLocalizerWithFallback(localization)(resourceNames, keys, defaultValue);\n }\n getLocalization(state, key, ...interpolateParams) {\n if (!key) key = '';\n let defaultValue = '';\n if (typeof key !== 'string') {\n defaultValue = key.defaultValue;\n key = key.key;\n }\n const keys = key.split('::');\n const warn = message => {\n if (isDevMode()) console.warn(message);\n };\n if (keys.length < 2) {\n warn('The localization source separator (::) not found.');\n return defaultValue || key;\n }\n if (!state.localization) return defaultValue || keys[1];\n const sourceName = keys[0] || state.localization.defaultResourceName;\n const sourceKey = keys[1];\n if (sourceName === '_') {\n return defaultValue || sourceKey;\n }\n if (!sourceName) {\n warn('Localization source name is not specified and the defaultResourceName was not defined!');\n return defaultValue || sourceKey;\n }\n const source = this.localizations$.value.get(sourceName);\n if (!source) {\n warn('Could not find localization source: ' + sourceName);\n return defaultValue || sourceKey;\n }\n let localization = source[sourceKey];\n if (typeof localization === 'undefined') {\n return defaultValue || sourceKey;\n }\n interpolateParams = interpolateParams.filter(params => params != null);\n if (localization) localization = interpolate(localization, interpolateParams);\n if (typeof localization !== 'string') localization = '';\n return localization || defaultValue || key;\n }\n }\n LocalizationService.ɵfac = function LocalizationService_Factory(t) {\n return new (t || LocalizationService)(i0.ɵɵinject(SessionStateService), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(LocalizationService, 12), i0.ɵɵinject(ConfigStateService));\n };\n LocalizationService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LocalizationService,\n factory: LocalizationService.ɵfac,\n providedIn: 'root'\n });\n return LocalizationService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction recursivelyMergeBaseResources(baseResourceName, source) {\n const item = source[baseResourceName];\n if (item.baseResources.length === 0) {\n return item;\n }\n return item.baseResources.reduce((acc, baseResource) => {\n const baseItem = recursivelyMergeBaseResources(baseResource, source);\n const texts = {\n ...baseItem.texts,\n ...item.texts\n };\n return {\n ...acc,\n texts\n };\n }, item);\n}\nfunction mergeResourcesWithBaseResource(resource) {\n const entities = Object.keys(resource).map(key => {\n const newValue = recursivelyMergeBaseResources(key, resource);\n return [key, newValue];\n });\n return entities.reduce((acc, [key, value]) => ({\n ...acc,\n [key]: value\n }), {});\n}\nfunction combineLegacyandNewResources(legacy, resource) {\n const mergedResource = mergeResourcesWithBaseResource(resource);\n return Object.entries(mergedResource).reduce((acc, [key, value]) => {\n return {\n ...acc,\n [key]: value.texts\n };\n }, legacy);\n}\nfunction findRoute(routesService, path) {\n const node = routesService.find(route => route.path === path);\n return node || path === '/' ? node : findRoute(routesService, path.split('/').slice(0, -1).join('/') || '/');\n}\nfunction getRoutePath(router, url = router.url) {\n const emptyGroup = {\n segments: []\n };\n const primaryGroup = router.parseUrl(url).root.children[PRIMARY_OUTLET];\n return '/' + (primaryGroup || emptyGroup).segments.map(({\n path\n }) => path).join('/');\n}\nfunction reloadRoute(router, ngZone) {\n const {\n shouldReuseRoute\n } = router.routeReuseStrategy;\n const setRouteReuse = reuse => {\n router.routeReuseStrategy.shouldReuseRoute = reuse;\n };\n setRouteReuse(() => false);\n router.navigated = false;\n ngZone.run(async () => {\n await router.navigateByUrl(router.url).catch(noop);\n setRouteReuse(shouldReuseRoute);\n });\n}\nlet ReplaceableComponentsService = /*#__PURE__*/(() => {\n class ReplaceableComponentsService {\n constructor(ngZone, router) {\n this.ngZone = ngZone;\n this.router = router;\n this.store = new InternalStore([]);\n }\n get replaceableComponents$() {\n return this.store.sliceState(state => state);\n }\n get replaceableComponents() {\n return this.store.state;\n }\n get onUpdate$() {\n return this.store.sliceUpdate(state => state);\n }\n add(replaceableComponent, reload) {\n const replaceableComponents = [...this.store.state];\n const index = replaceableComponents.findIndex(component => component.key === replaceableComponent.key);\n if (index > -1) {\n replaceableComponents[index] = replaceableComponent;\n } else {\n replaceableComponents.push(replaceableComponent);\n }\n this.store.set(replaceableComponents);\n if (reload) reloadRoute(this.router, this.ngZone);\n }\n get(replaceableComponentKey) {\n return this.replaceableComponents.find(component => component.key === replaceableComponentKey);\n }\n get$(replaceableComponentKey) {\n return this.replaceableComponents$.pipe(map(components => components.find(component => component.key === replaceableComponentKey)));\n }\n }\n ReplaceableComponentsService.ɵfac = function ReplaceableComponentsService_Factory(t) {\n return new (t || ReplaceableComponentsService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1$1.Router));\n };\n ReplaceableComponentsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ReplaceableComponentsService,\n factory: ReplaceableComponentsService.ɵfac,\n providedIn: 'root'\n });\n return ReplaceableComponentsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst NavigationEvent = {\n Cancel: NavigationCancel,\n End: NavigationEnd,\n Error: NavigationError,\n Start: NavigationStart\n};\nlet RouterEvents = /*#__PURE__*/(() => {\n class RouterEvents {\n constructor(router) {\n this.router = router;\n }\n getEvents(...eventTypes) {\n const filterRouterEvents = event => eventTypes.some(type => event instanceof type);\n return this.router.events.pipe(filter(filterRouterEvents));\n }\n getNavigationEvents(...navigationEventKeys) {\n const filterNavigationEvents = event => navigationEventKeys.some(key => event instanceof NavigationEvent[key]);\n return this.router.events.pipe(filter(filterNavigationEvents));\n }\n getAllEvents() {\n return this.router.events;\n }\n getAllNavigationEvents() {\n const keys = Object.keys(NavigationEvent);\n return this.getNavigationEvents(...keys);\n }\n }\n RouterEvents.ɵfac = function RouterEvents_Factory(t) {\n return new (t || RouterEvents)(i0.ɵɵinject(i1$1.Router));\n };\n RouterEvents.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RouterEvents,\n factory: RouterEvents.ɵfac,\n providedIn: 'root'\n });\n return RouterEvents;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst APP_INIT_ERROR_HANDLERS = new InjectionToken('APP_INIT_ERROR_HANDLERS');\nconst COOKIE_LANGUAGE_KEY = new InjectionToken('COOKIE_LANGUAGE_KEY', {\n factory: () => '.AspNetCore.Culture'\n});\nconst LIST_QUERY_DEBOUNCE_TIME = new InjectionToken('LIST_QUERY_DEBOUNCE_TIME');\nconst LOADER_DELAY = new InjectionToken('LOADER_DELAY');\nconst NAVIGATE_TO_MANAGE_PROFILE = new InjectionToken('NAVIGATE_TO_MANAGE_PROFILE');\nconst QUEUE_MANAGER = new InjectionToken(\"QUEUE_MANAGER\");\nconst TENANT_KEY = new InjectionToken('TENANT_KEY');\nconst PIPE_TO_LOGIN_FN_KEY = new InjectionToken('PIPE_TO_LOGIN_FN_KEY');\n\n/**\r\n * @deprecated The token should not be used anymore.\r\n */\nconst SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY = new InjectionToken('SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY');\nconst CHECK_AUTHENTICATION_STATE_FN_KEY = new InjectionToken('CHECK_AUTHENTICATION_STATE_FN_KEY');\nconst OTHERS_GROUP = new InjectionToken('OTHERS_GROUP');\nfunction pushValueTo(array) {\n return element => {\n array.push(element);\n return array;\n };\n}\n\n/* eslint-disable @typescript-eslint/ban-types */\nclass BaseTreeNode {\n constructor(props) {\n this.children = [];\n this.isLeaf = true;\n Object.assign(this, props);\n }\n static create(props) {\n return new BaseTreeNode(props);\n }\n}\nfunction createTreeFromList(list, keySelector, parentKeySelector, valueMapper) {\n const map = createMapFromList(list, keySelector, valueMapper);\n const tree = [];\n list.forEach(row => {\n const id = keySelector(row);\n const parentId = parentKeySelector(row);\n const node = map.get(id);\n if (!node) return;\n if (parentId) {\n const parent = map.get(parentId);\n if (!parent) return;\n parent.children.push(node);\n parent.isLeaf = false;\n node.parent = parent;\n } else {\n tree.push(node);\n }\n });\n return tree;\n}\nfunction createMapFromList(list, keySelector, valueMapper) {\n const map = new Map();\n list.forEach(row => map.set(keySelector(row), valueMapper(row)));\n return map;\n}\nfunction createTreeNodeFilterCreator(key, mapperFn) {\n return search => {\n const regex = new RegExp('.*' + search + '.*', 'i');\n return function collectNodes(nodes, matches = []) {\n for (const node of nodes) {\n if (regex.test(mapperFn(node[key]))) matches.push(node);\n if (node.children.length) collectNodes(node.children, matches);\n }\n return matches;\n };\n };\n}\nfunction createGroupMap(list, othersGroupKey) {\n if (!isArray(list) || !list.some(node => Boolean(node.group))) return undefined;\n const mapGroup = new Map();\n for (const node of list) {\n const group = node?.group || othersGroupKey;\n if (typeof group !== 'string') {\n throw new Error(`Invalid group: ${group}`);\n }\n const items = mapGroup.get(group) || [];\n items.push(node);\n mapGroup.set(group, items);\n }\n return mapGroup;\n}\nlet PermissionService = /*#__PURE__*/(() => {\n class PermissionService {\n constructor(configState) {\n this.configState = configState;\n }\n getGrantedPolicy$(key) {\n return this.getStream().pipe(map(grantedPolicies => this.isPolicyGranted(key, grantedPolicies)));\n }\n getGrantedPolicy(key) {\n const policies = this.getSnapshot();\n return this.isPolicyGranted(key, policies);\n }\n filterItemsByPolicy(items) {\n const policies = this.getSnapshot();\n return items.filter(item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies));\n }\n filterItemsByPolicy$(items) {\n return this.getStream().pipe(map(policies => items.filter(item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies))));\n }\n isPolicyGranted(key, grantedPolicies) {\n if (!key) return true;\n const orRegexp = /\\|\\|/g;\n const andRegexp = /&&/g;\n // TODO: Allow combination of ANDs & ORs\n if (orRegexp.test(key)) {\n const keys = key.split('||').filter(Boolean);\n if (keys.length < 2) return false;\n return keys.some(k => this.getPolicy(k.trim(), grantedPolicies));\n } else if (andRegexp.test(key)) {\n const keys = key.split('&&').filter(Boolean);\n if (keys.length < 2) return false;\n return keys.every(k => this.getPolicy(k.trim(), grantedPolicies));\n }\n return this.getPolicy(key, grantedPolicies);\n }\n getStream() {\n return this.configState.getAll$().pipe(map(this.mapToPolicies));\n }\n getSnapshot() {\n return this.mapToPolicies(this.configState.getAll());\n }\n mapToPolicies(applicationConfiguration) {\n return applicationConfiguration?.auth?.grantedPolicies || {};\n }\n getPolicy(key, grantedPolicies) {\n return grantedPolicies[key] || false;\n }\n }\n PermissionService.ɵfac = function PermissionService_Factory(t) {\n return new (t || PermissionService)(i0.ɵɵinject(ConfigStateService));\n };\n PermissionService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PermissionService,\n factory: PermissionService.ɵfac,\n providedIn: 'root'\n });\n return PermissionService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nclass AbstractTreeService {\n constructor() {\n this._flat$ = new BehaviorSubject([]);\n this._tree$ = new BehaviorSubject([]);\n this._visible$ = new BehaviorSubject([]);\n }\n get flat() {\n return this._flat$.value;\n }\n get flat$() {\n return this._flat$.asObservable();\n }\n get tree() {\n return this._tree$.value;\n }\n get tree$() {\n return this._tree$.asObservable();\n }\n get visible() {\n return this._visible$.value;\n }\n get visible$() {\n return this._visible$.asObservable();\n }\n createTree(items) {\n return createTreeFromList(items, item => item[this.id], item => item[this.parentId], item => BaseTreeNode.create(item));\n }\n createGroupedTree(list) {\n const map = createGroupMap(list, this.othersGroup);\n if (!map) {\n return undefined;\n }\n return Array.from(map, ([key, items]) => ({\n group: key,\n items\n }));\n }\n filterWith(setOrMap) {\n return this._flat$.value.filter(item => !setOrMap.has(item[this.id]));\n }\n findItemsToRemove(set) {\n return this._flat$.value.reduce((acc, item) => {\n if (!acc.has(item[this.parentId])) return acc;\n const childSet = new Set([item[this.id]]);\n const children = this.findItemsToRemove(childSet);\n return new Set([...acc, ...children]);\n }, set);\n }\n publish(flatItems, visibleItems) {\n this._flat$.next(flatItems);\n this._tree$.next(this.createTree(flatItems));\n this._visible$.next(this.createTree(visibleItems));\n return flatItems;\n }\n add(items) {\n const map = new Map();\n items.forEach(item => map.set(item[this.id], item));\n const flatItems = this.filterWith(map);\n map.forEach(pushValueTo(flatItems));\n flatItems.sort(this.sort);\n const visibleItems = flatItems.filter(item => !this.hide(item));\n return this.publish(flatItems, visibleItems);\n }\n find(predicate, tree = this.tree) {\n return tree.reduce((acc, node) => acc ? acc : predicate(node) ? node : this.find(predicate, node.children), null);\n }\n patch(identifier, props) {\n const flatItems = this._flat$.value;\n const index = flatItems.findIndex(item => item[this.id] === identifier);\n if (index < 0) return false;\n flatItems[index] = {\n ...flatItems[index],\n ...props\n };\n flatItems.sort(this.sort);\n const visibleItems = flatItems.filter(item => !this.hide(item));\n return this.publish(flatItems, visibleItems);\n }\n refresh() {\n return this.add([]);\n }\n remove(identifiers) {\n const set = new Set();\n identifiers.forEach(id => set.add(id));\n const setToRemove = this.findItemsToRemove(set);\n const flatItems = this.filterWith(setToRemove);\n const visibleItems = flatItems.filter(item => !this.hide(item));\n return this.publish(flatItems, visibleItems);\n }\n search(params, tree = this.tree) {\n const searchKeys = Object.keys(params);\n return tree.reduce((acc, node) => acc ? acc : searchKeys.every(key => node[key] === params[key]) ? node : this.search(params, node.children), null);\n }\n}\nlet AbstractNavTreeService = /*#__PURE__*/(() => {\n class AbstractNavTreeService extends AbstractTreeService {\n constructor(injector) {\n super();\n this.injector = injector;\n this.id = 'name';\n this.parentId = 'parentName';\n this.hide = item => item.invisible || !this.isGranted(item);\n this.sort = (a, b) => {\n if (!Number.isInteger(a.order)) return 1;\n if (!Number.isInteger(b.order)) return -1;\n return a.order - b.order;\n };\n const configState = this.injector.get(ConfigStateService);\n this.subscription = configState.createOnUpdateStream(state => state).subscribe(() => this.refresh());\n this.permissionService = injector.get(PermissionService);\n this.othersGroup = injector.get(OTHERS_GROUP);\n }\n isGranted({\n requiredPolicy\n }) {\n return this.permissionService.getGrantedPolicy(requiredPolicy);\n }\n hasChildren(identifier) {\n const node = this.find(item => item[this.id] === identifier);\n return Boolean(node?.children?.length);\n }\n hasInvisibleChild(identifier) {\n const node = this.find(item => item[this.id] === identifier);\n return node?.children?.some(child => child.invisible) || false;\n }\n /* istanbul ignore next */\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n }\n AbstractNavTreeService.ɵfac = function AbstractNavTreeService_Factory(t) {\n return new (t || AbstractNavTreeService)(i0.ɵɵinject(i0.Injector));\n };\n AbstractNavTreeService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AbstractNavTreeService,\n factory: AbstractNavTreeService.ɵfac\n });\n return AbstractNavTreeService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet RoutesService = /*#__PURE__*/(() => {\n class RoutesService extends AbstractNavTreeService {\n hasPathOrChild(item) {\n return Boolean(item.path) || this.hasChildren(item.name);\n }\n get groupedVisible() {\n return this.createGroupedTree(this.visible.filter(item => this.hasPathOrChild(item)));\n }\n get groupedVisible$() {\n return this.visible$.pipe(map$1(items => items.filter(item => this.hasPathOrChild(item))), map$1(visible => this.createGroupedTree(visible)));\n }\n }\n RoutesService.ɵfac = /* @__PURE__ */(() => {\n let ɵRoutesService_BaseFactory;\n return function RoutesService_Factory(t) {\n return (ɵRoutesService_BaseFactory || (ɵRoutesService_BaseFactory = i0.ɵɵgetInheritedFactory(RoutesService)))(t || RoutesService);\n };\n })();\n RoutesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RoutesService,\n factory: RoutesService.ɵfac,\n providedIn: 'root'\n });\n return RoutesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SubscriptionService = /*#__PURE__*/(() => {\n class SubscriptionService {\n constructor() {\n this.subscription = new Subscription();\n }\n get isClosed() {\n return this.subscription.closed;\n }\n addOne(source$, nextOrObserver, error) {\n const subscription = source$.subscribe(nextOrObserver, error);\n this.subscription.add(subscription);\n return subscription;\n }\n closeAll() {\n this.subscription.unsubscribe();\n }\n closeOne(subscription) {\n this.removeOne(subscription);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n removeOne(subscription) {\n if (!subscription) return;\n this.subscription.remove(subscription);\n }\n reset() {\n this.subscription.unsubscribe();\n this.subscription = new Subscription();\n }\n }\n SubscriptionService.ɵfac = function SubscriptionService_Factory(t) {\n return new (t || SubscriptionService)();\n };\n SubscriptionService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SubscriptionService,\n factory: SubscriptionService.ɵfac\n });\n return SubscriptionService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DynamicLayoutComponent = /*#__PURE__*/(() => {\n class DynamicLayoutComponent {\n constructor(injector, localizationService, replaceableComponents, subscription, routerEvents, dynamicLayoutComponent) {\n this.localizationService = localizationService;\n this.replaceableComponents = replaceableComponents;\n this.subscription = subscription;\n this.routerEvents = routerEvents;\n // TODO: Consider a shared enum (eThemeSharedComponents) for known layouts\n this.layouts = new Map([['application', 'Theme.ApplicationLayoutComponent'], ['account', 'Theme.AccountLayoutComponent'], ['empty', 'Theme.EmptyLayoutComponent']]);\n this.isLayoutVisible = true;\n if (dynamicLayoutComponent) {\n if (isDevMode()) console.warn('DynamicLayoutComponent must be used only in AppComponent.');\n return;\n }\n this.route = injector.get(ActivatedRoute);\n this.router = injector.get(Router);\n this.routes = injector.get(RoutesService);\n this.checkLayoutOnNavigationEnd();\n this.listenToLanguageChange();\n }\n checkLayoutOnNavigationEnd() {\n const navigationEnd$ = this.routerEvents.getNavigationEvents('End');\n this.subscription.addOne(navigationEnd$, () => this.getLayout());\n }\n getLayout() {\n let expectedLayout = (this.route.snapshot.data || {}).layout;\n if (!expectedLayout) {\n let node = findRoute(this.routes, getRoutePath(this.router));\n node = {\n parent: node\n };\n while (node.parent) {\n node = node.parent;\n if (node.layout) {\n expectedLayout = node.layout;\n break;\n }\n }\n }\n if (!expectedLayout) expectedLayout = \"empty\" /* eLayoutType.empty */;\n if (this.layoutKey === expectedLayout) return;\n const key = this.layouts.get(expectedLayout);\n if (key) {\n this.layout = this.getComponent(key)?.component;\n this.layoutKey = expectedLayout;\n }\n if (!this.layout) {\n this.showLayoutNotFoundError(expectedLayout);\n }\n }\n showLayoutNotFoundError(layoutName) {\n let message = `Layout ${layoutName} not found.`;\n if (layoutName === 'account') {\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.';\n }\n console.warn(message);\n }\n listenToLanguageChange() {\n this.subscription.addOne(this.localizationService.languageChange$, () => {\n this.isLayoutVisible = false;\n setTimeout(() => this.isLayoutVisible = true, 0);\n });\n }\n getComponent(key) {\n return this.replaceableComponents.get(key);\n }\n }\n DynamicLayoutComponent.ɵfac = function DynamicLayoutComponent_Factory(t) {\n return new (t || DynamicLayoutComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(LocalizationService), i0.ɵɵdirectiveInject(ReplaceableComponentsService), i0.ɵɵdirectiveInject(SubscriptionService), i0.ɵɵdirectiveInject(RouterEvents), i0.ɵɵdirectiveInject(DynamicLayoutComponent, 12));\n };\n DynamicLayoutComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DynamicLayoutComponent,\n selectors: [[\"abp-dynamic-layout\"]],\n features: [i0.ɵɵProvidersFeature([SubscriptionService])],\n decls: 1,\n vars: 1,\n consts: [[3, \"ngComponentOutlet\", 4, \"ngIf\"], [3, \"ngComponentOutlet\"]],\n template: function DynamicLayoutComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, DynamicLayoutComponent_ng_container_0_Template, 1, 1, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.isLayoutVisible);\n }\n },\n dependencies: [i5.NgComponentOutlet, i5.NgIf],\n encapsulation: 2\n });\n return DynamicLayoutComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ReplaceableRouteContainerComponent = /*#__PURE__*/(() => {\n class ReplaceableRouteContainerComponent {\n constructor(route, replaceableComponents, subscription) {\n this.route = route;\n this.replaceableComponents = replaceableComponents;\n this.subscription = subscription;\n }\n ngOnInit() {\n this.defaultComponent = this.route.snapshot.data.replaceableComponent.defaultComponent;\n this.componentKey = this.route.snapshot.data.replaceableComponent.key;\n const component$ = this.replaceableComponents.get$(this.componentKey).pipe(distinctUntilChanged());\n this.subscription.addOne(component$, (res = {}) => {\n this.externalComponent = res.component;\n });\n }\n }\n ReplaceableRouteContainerComponent.ɵfac = function ReplaceableRouteContainerComponent_Factory(t) {\n return new (t || ReplaceableRouteContainerComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(ReplaceableComponentsService), i0.ɵɵdirectiveInject(SubscriptionService));\n };\n ReplaceableRouteContainerComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ReplaceableRouteContainerComponent,\n selectors: [[\"abp-replaceable-route-container\"]],\n features: [i0.ɵɵProvidersFeature([SubscriptionService])],\n decls: 1,\n vars: 1,\n consts: [[4, \"ngComponentOutlet\"]],\n template: function ReplaceableRouteContainerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ReplaceableRouteContainerComponent_ng_container_0_Template, 1, 0, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngComponentOutlet\", ctx.externalComponent || ctx.defaultComponent);\n }\n },\n dependencies: [i5.NgComponentOutlet],\n encapsulation: 2\n });\n return ReplaceableRouteContainerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet RouterOutletComponent = /*#__PURE__*/(() => {\n class RouterOutletComponent {}\n RouterOutletComponent.ɵfac = function RouterOutletComponent_Factory(t) {\n return new (t || RouterOutletComponent)();\n };\n RouterOutletComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: RouterOutletComponent,\n selectors: [[\"abp-router-outlet\"]],\n decls: 1,\n vars: 0,\n template: function RouterOutletComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"router-outlet\");\n }\n },\n dependencies: [i1$1.RouterOutlet],\n encapsulation: 2\n });\n return RouterOutletComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// Different locales from .NET\n// Key is .NET locale, value is Angular locale\nconst differentLocales = {\n aa: 'en',\n 'aa-DJ': 'en',\n 'aa-ER': 'en',\n 'aa-ET': 'en',\n 'af-ZA': 'af',\n 'agq-CM': 'agq',\n 'ak-GH': 'ak',\n 'am-ET': 'am',\n 'ar-001': 'ar',\n arn: 'en',\n 'arn-CL': 'en',\n 'as-IN': 'as',\n 'asa-TZ': 'asa',\n 'ast-ES': 'ast',\n 'az-Cyrl-AZ': 'az-Cyrl',\n 'az-Latn-AZ': 'az-Latn',\n ba: 'ru',\n 'ba-RU': 'ru',\n 'bas-CM': 'bas',\n 'be-BY': 'be',\n 'bem-ZM': 'bem',\n 'bez-TZ': 'bez',\n 'bg-BG': 'bg',\n bin: 'en',\n 'bin-NG': 'en',\n 'bm-Latn': 'bm',\n 'bm-Latn-ML': 'bm',\n 'bn-BD': 'bn',\n 'bo-CN': 'bo',\n 'br-FR': 'br',\n 'brx-IN': 'brx',\n 'bs-Cyrl-BA': 'bs-Cyrl',\n 'bs-Latn-BA': 'bs-Latn',\n byn: 'en',\n 'byn-ER': 'en',\n 'ca-ES': 'ca',\n 'ca-ES-valencia': 'ca-ES-VALENCIA',\n 'ce-RU': 'ce',\n 'cgg-UG': 'cgg',\n 'chr-Cher': 'chr',\n 'chr-Cher-US': 'chr',\n co: 'en',\n 'co-FR': 'fr',\n 'cs-CZ': 'cs',\n 'cu-RU': 'cu',\n 'cy-GB': 'cy',\n 'da-DK': 'da',\n 'dav-KE': 'dav',\n 'de-DE': 'de',\n 'dje-NE': 'dje',\n 'dsb-DE': 'dsb',\n 'dua-CM': 'dua',\n dv: 'en',\n 'dv-MV': 'en',\n 'dyo-SN': 'dyo',\n 'dz-BT': 'dz',\n 'ebu-KE': 'ebu',\n 'ee-GH': 'ee',\n 'el-GR': 'el',\n 'en-029': 'en',\n 'en-ID': 'en',\n 'en-US': 'en',\n 'eo-001': 'en',\n 'es-ES': 'es',\n 'et-EE': 'et',\n 'eu-ES': 'eu',\n 'ewo-CM': 'ewo',\n 'fa-IR': 'fa',\n 'ff-Latn-SN': 'ff-Latn',\n 'ff-NG': 'ff',\n 'fi-FI': 'fi',\n 'fil-PH': 'fil',\n 'fo-FO': 'fo',\n 'fr-029': 'fr',\n 'fr-FR': 'fr',\n 'fur-IT': 'fur',\n 'fy-NL': 'fy',\n 'ga-IE': 'ga',\n 'gd-GB': 'gd',\n 'gl-ES': 'gl',\n gn: 'en',\n 'gn-PY': 'en',\n 'gsw-CH': 'gsw',\n 'gu-IN': 'gu',\n 'guz-KE': 'guz',\n 'gv-IM': 'gv',\n 'ha-Latn': 'ha',\n 'ha-Latn-GH': 'ha-GH',\n 'ha-Latn-NE': 'ha-NE',\n 'ha-Latn-NG': 'ha',\n 'haw-US': 'haw',\n 'he-IL': 'he',\n 'hi-IN': 'hi',\n 'hr-HR': 'hr',\n 'hsb-DE': 'hsb',\n 'hu-HU': 'hu',\n 'hy-AM': 'hy',\n 'ia-001': 'ia',\n 'ia-FR': 'ia',\n ibb: 'en',\n 'ibb-NG': 'en',\n 'id-ID': 'id',\n 'ig-NG': 'ig',\n 'ii-CN': 'ii',\n 'is-IS': 'is',\n 'it-IT': 'it',\n iu: 'en',\n 'iu-Cans': 'en',\n 'iu-Cans-CA': 'en',\n 'iu-Latn': 'en',\n 'iu-Latn-CA': 'en',\n 'ja-JP': 'ja',\n 'jgo-CM': 'jgo',\n 'jmc-TZ': 'jmc',\n 'jv-Java': 'jv',\n 'jv-Java-ID': 'jv',\n 'jv-Latn': 'jv',\n 'jv-Latn-ID': 'jv',\n 'ka-GE': 'ka',\n 'kab-DZ': 'kab',\n 'kam-KE': 'kam',\n 'kde-TZ': 'kde',\n 'kea-CV': 'kea',\n 'khq-ML': 'khq',\n 'ki-KE': 'ki',\n 'kk-KZ': 'kk',\n 'kkj-CM': 'kkj',\n 'kl-GL': 'kl',\n 'kln-KE': 'kln',\n 'km-KH': 'km',\n 'kn-IN': 'kn',\n 'ko-KR': 'ko',\n 'kok-IN': 'kok',\n kr: 'en',\n 'kr-NG': 'en',\n 'ks-Arab': 'ks',\n 'ks-Arab-IN': 'ks',\n 'ks-Deva': 'ks',\n 'ks-Deva-IN': 'ks',\n 'ksb-TZ': 'ksb',\n 'ksf-CM': 'ksf',\n 'ksh-DE': 'ksh',\n 'ku-Arab': 'ku',\n 'ku-Arab-IQ': 'ku',\n 'ku-Arab-IR': 'ku',\n 'kw-GB': 'kw',\n 'ky-KG': 'ky',\n la: 'en',\n 'la-001': 'en',\n 'lag-TZ': 'lag',\n 'lb-LU': 'lb',\n 'lg-UG': 'lg',\n 'lkt-US': 'lkt',\n 'ln-CD': 'ln',\n 'lo-LA': 'lo',\n 'lrc-IR': 'lrc',\n 'lt-LT': 'lt',\n 'lu-CD': 'lu',\n 'luo-KE': 'luo',\n 'luy-KE': 'luy',\n 'lv-LV': 'lv',\n 'mas-KE': 'mas',\n 'mer-KE': 'mer',\n 'mfe-MU': 'mfe',\n 'mg-MG': 'mg',\n 'mgh-MZ': 'mgh',\n 'mgo-CM': 'mgo',\n 'mi-NZ': 'mi',\n 'mk-MK': 'mk',\n 'ml-IN': 'ml',\n 'mn-Cyrl': 'mn',\n 'mn-MN': 'mn',\n 'mn-Mong': 'mn',\n 'mn-Mong-CN': 'mn',\n 'mn-Mong-MN': 'mn',\n mni: 'en',\n 'mni-IN': 'en',\n moh: 'en',\n 'moh-CA': 'en',\n 'mr-IN': 'mr',\n 'ms-MY': 'ms',\n 'mt-MT': 'mt',\n 'mua-CM': 'mua',\n 'my-MM': 'my',\n 'mzn-IR': 'mzn',\n 'naq-NA': 'naq',\n 'nb-NO': 'nb',\n 'nd-ZW': 'nd',\n 'ne-NP': 'ne',\n 'nl-NL': 'nl',\n 'nmg-CM': 'ngm',\n 'nn-NO': 'nn',\n 'nnh-CM': 'nnh',\n no: 'en',\n nqo: 'en',\n 'nqo-GN': 'en',\n nr: 'en',\n 'nr-ZA': 'en',\n nso: 'en',\n 'nso-ZA': 'en',\n 'nus-SS': 'nus',\n 'nyn-UG': 'nyn',\n oc: 'en',\n 'oc-FR': 'fr',\n 'om-ET': 'om',\n 'or-IN': 'or',\n 'os-GE': 'os',\n 'pa-Arab-PK': 'pa-Arab',\n 'pa-IN': 'pa',\n pap: 'en',\n 'pap-029': 'en',\n 'pl-PL': 'pl',\n 'prg-001': 'prg',\n prs: 'en',\n 'prs-AF': 'en',\n 'ps-AF': 'ps',\n 'pt-BR': 'pt',\n quc: 'en',\n 'quc-Latn': 'en',\n 'quc-Latn-GT': 'en',\n quz: 'en',\n 'quz-BO': 'en',\n 'quz-EC': 'en',\n 'quz-PE': 'en',\n 'rm-CH': 'rm',\n 'rn-BI': 'rn',\n 'ro-RO': 'ro',\n 'rof-TZ': 'rof',\n 'ru-RU': 'ru',\n 'rw-RW': 'rw',\n 'rwk-TZ': 'rwk',\n sa: 'en',\n 'sa-IN': 'en',\n 'sah-RU': 'sah',\n 'saq-KE': 'saq',\n 'sbp-TZ': 'en',\n 'sd-Arab': 'sd',\n 'sd-Arab-PK': 'sd',\n 'sd-Deva': 'sd',\n 'sd-Deva-IN': 'sd',\n 'se-NO': 'se',\n 'seh-MZ': 'seh',\n 'ses-ML': 'ses',\n 'sg-CF': 'sg',\n 'shi-Latn-MA': 'shi-Latn',\n 'shi-Tfng-MA': 'shi-Tfng',\n 'si-LK': 'si',\n 'sk-SK': 'sk',\n 'sl-SI': 'sl',\n sma: 'en',\n 'sma-NO': 'en',\n 'sma-SE': 'en',\n smj: 'en',\n 'smj-NO': 'en',\n 'smj-SE': 'en',\n 'smn-FI': 'en',\n sms: 'en',\n 'sms-FI': 'en',\n 'sn-Latn': 'sn',\n 'sn-Latn-ZW': 'sn',\n 'so-SO': 'so',\n 'sq-AL': 'so',\n 'sr-Cyrl-RS': 'sr-Cryl',\n 'sr-Latn-RS': 'sr-Latn',\n ss: 'en',\n 'ss-SZ': 'en',\n 'ss-ZA': 'en',\n ssy: 'en',\n 'ssy-ER': 'en',\n st: 'en',\n 'st-LS': 'en',\n 'st-ZA': 'en',\n 'sv-SE': 'sv',\n 'sw-TZ': 'sw',\n syr: 'en',\n 'syr-SY': 'en',\n 'ta-IN': 'ta',\n 'te-IN': 'te',\n 'teo-UG': 'teo',\n 'tg-Cyrl': 'tg',\n 'tg-Cyrl-TJ': 'tg',\n 'th-TH': 'th',\n 'ti-ET': 'ti',\n tig: 'en',\n 'tig-ER': 'en',\n 'tk-TM': 'tk',\n tn: 'en',\n 'tn-BW': 'en',\n 'tn-ZA': 'en',\n 'to-TO': 'to',\n 'tr-TR': 'tr',\n ts: 'en',\n 'ts-ZA': 'en',\n 'tt-RU': 'tt',\n 'twq-NE': 'twq',\n 'tzm-Arab': 'tzm',\n 'tzm-Arab-MA': 'tzm',\n 'tzm-Latn': 'tzm',\n 'tzm-Latn-DZ': 'tzm',\n 'tzm-Latn-MA': 'tzm',\n 'tzm-Tfng': 'tzm',\n 'tzm-Tfng-MA': 'tzm',\n 'ug-CN': 'ug',\n 'uk-UA': 'uk',\n 'ur-PK': 'ur',\n 'uz-Arab-AF': 'uz-Arab',\n 'uz-Cyrl-UZ': 'uz-Cyrl',\n 'uz-Latn-UZ': 'uz-Latn',\n 'vai-Latn-LR': 'vai-Latn',\n 'vai-Vaii-LR': 'vai-Vaii',\n ve: 'en',\n 've-ZA': 'en',\n 'vi-VN': 'vi',\n 'vo-001': 'vo',\n 'vun-TZ': 'vun',\n 'wae-CH': 'wae',\n wal: 'en',\n 'wal-ET': 'en',\n 'wo-SN': 'wo',\n 'xh-ZA': 'xh',\n 'xog-UG': 'xog',\n 'yav-CM': 'yav',\n 'yi-001': 'yi',\n 'yo-NG': 'yo',\n 'zgh-Tfng': 'zgh',\n 'zgh-Tfng-MA': 'zgh',\n 'zh-CN': 'zh',\n 'zh-HK': 'zh',\n 'zh-MO': 'zh',\n 'zh-SG': 'zh',\n 'zh-TW': 'zh',\n 'zu-ZA': 'zu'\n};\nlet AutofocusDirective = /*#__PURE__*/(() => {\n class AutofocusDirective {\n constructor(elRef) {\n this.elRef = elRef;\n this._delay = 0;\n }\n set delay(val) {\n this._delay = Number(val) || 0;\n }\n get delay() {\n return this._delay;\n }\n ngAfterViewInit() {\n setTimeout(() => this.elRef.nativeElement.focus(), this.delay);\n }\n }\n AutofocusDirective.ɵfac = function AutofocusDirective_Factory(t) {\n return new (t || AutofocusDirective)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n AutofocusDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: AutofocusDirective,\n selectors: [[\"\", \"autofocus\", \"\"]],\n inputs: {\n delay: [i0.ɵɵInputFlags.None, \"autofocus\", \"delay\"]\n }\n });\n return AutofocusDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet InputEventDebounceDirective = /*#__PURE__*/(() => {\n class InputEventDebounceDirective {\n constructor(el, subscription) {\n this.el = el;\n this.subscription = subscription;\n this.debounce = 300;\n this.debounceEvent = new EventEmitter();\n }\n ngOnInit() {\n const input$ = fromEvent(this.el.nativeElement, 'input').pipe(debounceTime(this.debounce));\n this.subscription.addOne(input$, event => {\n this.debounceEvent.emit(event);\n });\n }\n }\n InputEventDebounceDirective.ɵfac = function InputEventDebounceDirective_Factory(t) {\n return new (t || InputEventDebounceDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(SubscriptionService));\n };\n InputEventDebounceDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: InputEventDebounceDirective,\n selectors: [[\"\", \"input.debounce\", \"\"]],\n inputs: {\n debounce: \"debounce\"\n },\n outputs: {\n debounceEvent: \"input.debounce\"\n },\n features: [i0.ɵɵProvidersFeature([SubscriptionService])]\n });\n return InputEventDebounceDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass AbpForContext {\n constructor($implicit, index, count, list) {\n this.$implicit = $implicit;\n this.index = index;\n this.count = count;\n this.list = list;\n }\n}\nclass RecordView {\n constructor(record, view) {\n this.record = record;\n this.view = view;\n }\n}\nlet ForDirective = /*#__PURE__*/(() => {\n class ForDirective {\n constructor(tempRef, vcRef, differs) {\n this.tempRef = tempRef;\n this.vcRef = vcRef;\n this.differs = differs;\n }\n get compareFn() {\n return this.compareBy || compare;\n }\n get trackByFn() {\n return this.trackBy || ((index, item) => item.id || index);\n }\n iterateOverAppliedOperations(changes) {\n const rw = [];\n changes.forEachOperation((record, previousIndex, currentIndex) => {\n if (record.previousIndex == null) {\n const view = this.vcRef.createEmbeddedView(this.tempRef, new AbpForContext(null, -1, -1, this.items), currentIndex || 0);\n rw.push(new RecordView(record, view));\n } else if (currentIndex == null && previousIndex !== null) {\n this.vcRef.remove(previousIndex);\n } else {\n if (previousIndex !== null) {\n const view = this.vcRef.get(previousIndex);\n if (view && currentIndex !== null) {\n this.vcRef.move(view, currentIndex);\n rw.push(new RecordView(record, view));\n }\n }\n }\n });\n for (let i = 0, l = rw.length; i < l; i++) {\n rw[i].view.context.$implicit = rw[i].record.item;\n }\n }\n iterateOverAttachedViews(changes) {\n for (let i = 0, l = this.vcRef.length; i < l; i++) {\n const viewRef = this.vcRef.get(i);\n viewRef.context.index = i;\n viewRef.context.count = l;\n viewRef.context.list = this.items;\n }\n changes.forEachIdentityChange(record => {\n if (record.currentIndex !== null) {\n const viewRef = this.vcRef.get(record.currentIndex);\n viewRef.context.$implicit = record.item;\n }\n });\n }\n projectItems(items) {\n if (!items.length && this.emptyRef) {\n this.vcRef.clear();\n this.vcRef.createEmbeddedView(this.emptyRef).rootNodes;\n this.isShowEmptyRef = true;\n this.differ = null;\n return;\n }\n if (this.emptyRef && this.isShowEmptyRef) {\n this.vcRef.clear();\n this.isShowEmptyRef = false;\n }\n if (!this.differ && items) {\n this.differ = this.differs.find(items).create(this.trackByFn);\n }\n if (this.differ) {\n const changes = this.differ.diff(items);\n if (changes) {\n this.iterateOverAppliedOperations(changes);\n this.iterateOverAttachedViews(changes);\n }\n }\n }\n sortItems(items) {\n const orderBy = this.orderBy;\n if (orderBy) {\n items.sort((a, b) => a[orderBy] > b[orderBy] ? 1 : a[orderBy] < b[orderBy] ? -1 : 0);\n } else {\n items.sort();\n }\n }\n ngOnChanges() {\n let items = clone(this.items);\n if (!Array.isArray(items)) return;\n const compareFn = this.compareFn;\n const filterBy = this.filterBy;\n if (typeof filterBy !== 'undefined' && typeof this.filterVal !== 'undefined' && this.filterVal !== '') {\n items = items.filter(item => compareFn(item[filterBy], this.filterVal));\n }\n switch (this.orderDir) {\n case 'ASC':\n this.sortItems(items);\n this.projectItems(items);\n break;\n case 'DESC':\n this.sortItems(items);\n items.reverse();\n this.projectItems(items);\n break;\n default:\n this.projectItems(items);\n }\n }\n }\n ForDirective.ɵfac = function ForDirective_Factory(t) {\n return new (t || ForDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.IterableDiffers));\n };\n ForDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ForDirective,\n selectors: [[\"\", \"abpFor\", \"\"]],\n inputs: {\n items: [i0.ɵɵInputFlags.None, \"abpForOf\", \"items\"],\n orderBy: [i0.ɵɵInputFlags.None, \"abpForOrderBy\", \"orderBy\"],\n orderDir: [i0.ɵɵInputFlags.None, \"abpForOrderDir\", \"orderDir\"],\n filterBy: [i0.ɵɵInputFlags.None, \"abpForFilterBy\", \"filterBy\"],\n filterVal: [i0.ɵɵInputFlags.None, \"abpForFilterVal\", \"filterVal\"],\n trackBy: [i0.ɵɵInputFlags.None, \"abpForTrackBy\", \"trackBy\"],\n compareBy: [i0.ɵɵInputFlags.None, \"abpForCompareBy\", \"compareBy\"],\n emptyRef: [i0.ɵɵInputFlags.None, \"abpForEmptyRef\", \"emptyRef\"]\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return ForDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\r\n * @deprecated FormSubmitDirective will be removed in V7.0.0. Use `ngSubmit` instead.\r\n */\nlet FormSubmitDirective = /*#__PURE__*/(() => {\n class FormSubmitDirective {\n constructor(formGroupDirective, host, cdRef, subscription) {\n this.formGroupDirective = formGroupDirective;\n this.host = host;\n this.cdRef = cdRef;\n this.subscription = subscription;\n this.debounce = 200;\n this.markAsDirtyWhenSubmit = true;\n this.ngSubmit = new EventEmitter();\n this.executedNgSubmit = false;\n }\n ngOnInit() {\n this.subscription.addOne(this.formGroupDirective.ngSubmit, () => {\n if (this.markAsDirtyWhenSubmit) {\n this.markAsDirty();\n }\n this.executedNgSubmit = true;\n });\n const keyup$ = fromEvent(this.host.nativeElement, 'keyup').pipe(debounceTime(this.debounce), filter(event => !(event.target instanceof HTMLTextAreaElement)), filter(event => event && event.key === 'Enter'));\n this.subscription.addOne(keyup$, () => {\n if (!this.executedNgSubmit) {\n this.host.nativeElement.dispatchEvent(new Event('submit', {\n bubbles: true,\n cancelable: true\n }));\n }\n this.executedNgSubmit = false;\n });\n }\n markAsDirty() {\n const {\n form\n } = this.formGroupDirective;\n setDirty(form.controls);\n form.markAsDirty();\n this.cdRef.detectChanges();\n }\n }\n FormSubmitDirective.ɵfac = function FormSubmitDirective_Factory(t) {\n return new (t || FormSubmitDirective)(i0.ɵɵdirectiveInject(i1$2.FormGroupDirective, 2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(SubscriptionService));\n };\n FormSubmitDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FormSubmitDirective,\n selectors: [[\"form\", \"ngSubmit\", \"\", \"formGroup\", \"\"]],\n inputs: {\n debounce: \"debounce\",\n notValidateOnSubmit: \"notValidateOnSubmit\",\n markAsDirtyWhenSubmit: \"markAsDirtyWhenSubmit\"\n },\n outputs: {\n ngSubmit: \"ngSubmit\"\n },\n features: [i0.ɵɵProvidersFeature([SubscriptionService])]\n });\n return FormSubmitDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction setDirty(controls) {\n if (Array.isArray(controls)) {\n controls.forEach(group => {\n setDirty(group.controls);\n });\n return;\n }\n Object.keys(controls).forEach(key => {\n controls[key].markAsDirty();\n controls[key].updateValueAndValidity();\n });\n}\nlet InitDirective = /*#__PURE__*/(() => {\n class InitDirective {\n constructor(elRef) {\n this.elRef = elRef;\n this.init = new EventEmitter();\n }\n ngAfterViewInit() {\n this.init.emit(this.elRef);\n }\n }\n InitDirective.ɵfac = function InitDirective_Factory(t) {\n return new (t || InitDirective)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n InitDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: InitDirective,\n selectors: [[\"\", \"abpInit\", \"\"]],\n outputs: {\n init: \"abpInit\"\n }\n });\n return InitDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PermissionDirective = /*#__PURE__*/(() => {\n class PermissionDirective {\n constructor(templateRef, vcRef, permissionService, cdRef, queue) {\n this.templateRef = templateRef;\n this.vcRef = vcRef;\n this.permissionService = permissionService;\n this.cdRef = cdRef;\n this.queue = queue;\n this.runChangeDetection = true;\n this.cdrSubject = new ReplaySubject();\n this.rendered = false;\n }\n check() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n this.subscription = this.permissionService.getGrantedPolicy$(this.condition || '').pipe(distinctUntilChanged()).subscribe(isGranted => {\n this.vcRef.clear();\n if (isGranted) this.vcRef.createEmbeddedView(this.templateRef);\n if (this.runChangeDetection) {\n if (!this.rendered) {\n this.cdrSubject.next();\n } else {\n this.cdRef.detectChanges();\n }\n } else {\n this.cdRef.markForCheck();\n }\n });\n }\n ngOnDestroy() {\n if (this.subscription) this.subscription.unsubscribe();\n }\n ngOnChanges() {\n this.check();\n }\n ngAfterViewInit() {\n this.cdrSubject.pipe(take(1)).subscribe(() => this.queue.add(() => this.cdRef.detectChanges()));\n this.rendered = true;\n }\n }\n PermissionDirective.ɵfac = function PermissionDirective_Factory(t) {\n return new (t || PermissionDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(PermissionService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(QUEUE_MANAGER));\n };\n PermissionDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PermissionDirective,\n selectors: [[\"\", \"abpPermission\", \"\"]],\n inputs: {\n condition: [i0.ɵɵInputFlags.None, \"abpPermission\", \"condition\"],\n runChangeDetection: [i0.ɵɵInputFlags.None, \"abpPermissionRunChangeDetection\", \"runChangeDetection\"]\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return PermissionDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ReplaceableTemplateDirective = /*#__PURE__*/(() => {\n class ReplaceableTemplateDirective {\n constructor(injector, templateRef, vcRef, replaceableComponents, subscription) {\n this.injector = injector;\n this.templateRef = templateRef;\n this.vcRef = vcRef;\n this.replaceableComponents = replaceableComponents;\n this.subscription = subscription;\n this.providedData = {\n inputs: {},\n outputs: {}\n };\n this.context = {};\n this.defaultComponentSubscriptions = {};\n this.initialized = false;\n this.context = {\n initTemplate: ref => {\n this.resetDefaultComponent();\n this.defaultComponentRef = ref;\n this.setDefaultComponentInputs();\n }\n };\n }\n ngOnInit() {\n const component$ = this.replaceableComponents.get$(this.data.componentKey).pipe(filter((res = {}) => !this.initialized || !compare(res.component, this.externalComponent)));\n this.subscription.addOne(component$, (res = {}) => {\n this.vcRef.clear();\n this.externalComponent = res.component;\n if (this.defaultComponentRef) {\n this.resetDefaultComponent();\n }\n if (res.component) {\n this.setProvidedData();\n const customInjector = Injector.create({\n providers: [{\n provide: 'REPLACEABLE_DATA',\n useValue: this.providedData\n }],\n parent: this.injector\n });\n const ref = this.vcRef.createComponent(res.component, {\n index: 0,\n injector: customInjector\n });\n } else {\n this.vcRef.createEmbeddedView(this.templateRef, this.context);\n }\n this.initialized = true;\n });\n }\n ngOnChanges(changes) {\n if (changes?.data?.currentValue?.inputs && this.defaultComponentRef) {\n this.setDefaultComponentInputs();\n }\n }\n setDefaultComponentInputs() {\n if (!this.defaultComponentRef || !this.data.inputs && !this.data.outputs) return;\n if (this.data.inputs) {\n for (const key in this.data.inputs) {\n if (Object.prototype.hasOwnProperty.call(this.data.inputs, key)) {\n if (!compare(this.defaultComponentRef[key], this.data.inputs[key].value)) {\n this.defaultComponentRef[key] = this.data.inputs[key].value;\n }\n }\n }\n }\n if (this.data.outputs) {\n for (const key in this.data.outputs) {\n if (Object.prototype.hasOwnProperty.call(this.data.outputs, key)) {\n if (!this.defaultComponentSubscriptions[key]) {\n this.defaultComponentSubscriptions[key] = this.defaultComponentRef[key].subscribe(value => {\n this.data.outputs?.[key](value);\n });\n }\n }\n }\n }\n }\n setProvidedData() {\n this.providedData = {\n outputs: {},\n ...this.data,\n inputs: {}\n };\n if (!this.data.inputs) return;\n Object.defineProperties(this.providedData.inputs, {\n ...Object.keys(this.data.inputs).reduce((acc, key) => ({\n ...acc,\n [key]: {\n enumerable: true,\n configurable: true,\n get: () => this.data.inputs?.[key]?.value,\n ...(this.data.inputs?.[key]?.twoWay && {\n set: newValue => {\n if (this.data.inputs?.[key]) {\n this.data.inputs[key].value = newValue;\n }\n if (this.data.outputs?.[`${key}Change`]) {\n this.data.outputs[`${key}Change`](newValue);\n }\n }\n })\n }\n }), {})\n });\n }\n resetDefaultComponent() {\n Object.keys(this.defaultComponentSubscriptions).forEach(key => {\n this.defaultComponentSubscriptions[key].unsubscribe();\n });\n this.defaultComponentSubscriptions = {};\n this.defaultComponentRef = null;\n }\n }\n ReplaceableTemplateDirective.ɵfac = function ReplaceableTemplateDirective_Factory(t) {\n return new (t || ReplaceableTemplateDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(ReplaceableComponentsService), i0.ɵɵdirectiveInject(SubscriptionService));\n };\n ReplaceableTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ReplaceableTemplateDirective,\n selectors: [[\"\", \"abpReplaceableTemplate\", \"\"]],\n inputs: {\n data: [i0.ɵɵInputFlags.None, \"abpReplaceableTemplate\", \"data\"]\n },\n features: [i0.ɵɵProvidersFeature([SubscriptionService]), i0.ɵɵNgOnChangesFeature]\n });\n return ReplaceableTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet StopPropagationDirective = /*#__PURE__*/(() => {\n class StopPropagationDirective {\n constructor(el, subscription) {\n this.el = el;\n this.subscription = subscription;\n this.stopPropEvent = new EventEmitter();\n }\n ngOnInit() {\n this.subscription.addOne(fromEvent(this.el.nativeElement, 'click'), event => {\n event.stopPropagation();\n this.stopPropEvent.emit(event);\n });\n }\n }\n StopPropagationDirective.ɵfac = function StopPropagationDirective_Factory(t) {\n return new (t || StopPropagationDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(SubscriptionService));\n };\n StopPropagationDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StopPropagationDirective,\n selectors: [[\"\", \"click.stop\", \"\"]],\n outputs: {\n stopPropEvent: \"click.stop\"\n },\n features: [i0.ɵɵProvidersFeature([SubscriptionService])]\n });\n return StopPropagationDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet RoutesHandler = /*#__PURE__*/(() => {\n class RoutesHandler {\n constructor(routes, router) {\n this.routes = routes;\n this.router = router;\n this.addRoutes();\n }\n addRoutes() {\n this.router?.config?.forEach(({\n path = '',\n data\n }) => {\n const routes = data?.routes;\n if (!routes) return;\n if (Array.isArray(routes)) {\n this.routes.add(routes);\n } else {\n const routesFlatten = flatRoutes([{\n path,\n ...routes\n }], {\n path: ''\n });\n this.routes.add(routesFlatten);\n }\n });\n }\n }\n RoutesHandler.ɵfac = function RoutesHandler_Factory(t) {\n return new (t || RoutesHandler)(i0.ɵɵinject(RoutesService), i0.ɵɵinject(i1$1.Router, 8));\n };\n RoutesHandler.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RoutesHandler,\n factory: RoutesHandler.ɵfac,\n providedIn: 'root'\n });\n return RoutesHandler;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction flatRoutes(routes, parent) {\n if (!routes) return [];\n return routes.reduce((acc, route) => {\n const {\n children,\n ...current\n } = {\n ...route,\n parentName: parent.name,\n path: (parent.path + '/' + route.path).replace(/\\/\\//g, '/')\n };\n acc.push(current, ...flatRoutes(children, current));\n return acc;\n }, []);\n}\nlet LocalizationPipe = /*#__PURE__*/(() => {\n class LocalizationPipe {\n constructor(localization) {\n this.localization = localization;\n }\n transform(value = '', ...interpolateParams) {\n const params = interpolateParams.reduce((acc, val) => {\n if (!acc) {\n return val;\n }\n if (!val) {\n return acc;\n }\n return Array.isArray(val) ? [...acc, ...val] : [...acc, val];\n }, []) || [];\n return this.localization.instant(value, ...params);\n }\n }\n LocalizationPipe.ɵfac = function LocalizationPipe_Factory(t) {\n return new (t || LocalizationPipe)(i0.ɵɵdirectiveInject(LocalizationService, 16));\n };\n LocalizationPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"abpLocalization\",\n type: LocalizationPipe,\n pure: true\n });\n LocalizationPipe.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LocalizationPipe,\n factory: LocalizationPipe.ɵfac\n });\n return LocalizationPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet LocalizationModule = /*#__PURE__*/(() => {\n class LocalizationModule {}\n LocalizationModule.ɵfac = function LocalizationModule_Factory(t) {\n return new (t || LocalizationModule)();\n };\n LocalizationModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: LocalizationModule\n });\n LocalizationModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n return LocalizationModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SortPipe = /*#__PURE__*/(() => {\n class SortPipe {\n transform(value, sortOrder = 'asc', sortKey) {\n sortOrder = sortOrder && sortOrder.toLowerCase();\n if (!value || sortOrder !== 'asc' && sortOrder !== 'desc') return value;\n let numberArray = [];\n let stringArray = [];\n if (!sortKey) {\n numberArray = value.filter(item => typeof item === 'number').sort();\n stringArray = value.filter(item => typeof item === 'string').sort();\n } else {\n numberArray = value.filter(item => typeof item[sortKey] === 'number').sort((a, b) => a[sortKey] - b[sortKey]);\n stringArray = value.filter(item => typeof item[sortKey] === 'string').sort((a, b) => {\n if (a[sortKey] < b[sortKey]) return -1;else if (a[sortKey] > b[sortKey]) return 1;else return 0;\n });\n }\n const sorted = [...numberArray, ...stringArray, ...value.filter(item => typeof (sortKey ? item[sortKey] : item) !== 'number' && typeof (sortKey ? item[sortKey] : item) !== 'string')];\n return sortOrder === 'asc' ? sorted : sorted.reverse();\n }\n }\n SortPipe.ɵfac = function SortPipe_Factory(t) {\n return new (t || SortPipe)();\n };\n SortPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"abpSort\",\n type: SortPipe,\n pure: true\n });\n SortPipe.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SortPipe,\n factory: SortPipe.ɵfac\n });\n return SortPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst INJECTOR_PIPE_DATA_TOKEN = new InjectionToken('INJECTOR_PIPE_DATA_TOKEN');\nlet ToInjectorPipe = /*#__PURE__*/(() => {\n class ToInjectorPipe {\n constructor(injector) {\n this.injector = injector;\n }\n transform(value, token = INJECTOR_PIPE_DATA_TOKEN, name = 'ToInjectorPipe') {\n return Injector.create({\n providers: [{\n provide: token,\n useValue: value\n }],\n parent: this.injector,\n name\n });\n }\n }\n ToInjectorPipe.ɵfac = function ToInjectorPipe_Factory(t) {\n return new (t || ToInjectorPipe)(i0.ɵɵdirectiveInject(i0.Injector, 16));\n };\n ToInjectorPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"toInjector\",\n type: ToInjectorPipe,\n pure: true\n });\n return ToInjectorPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction setLanguageToCookie(injector) {\n return () => {\n const sessionState = injector.get(SessionStateService);\n const document = injector.get(DOCUMENT);\n const cookieLanguageKey = injector.get(COOKIE_LANGUAGE_KEY);\n sessionState.getLanguage$().subscribe(language => {\n const cookieValue = encodeURIComponent(`c=${language}|uic=${language}`);\n document.cookie = `${cookieLanguageKey}=${cookieValue}`;\n });\n };\n}\nconst CookieLanguageProvider = {\n provide: APP_INITIALIZER,\n useFactory: setLanguageToCookie,\n deps: [Injector],\n multi: true\n};\nclass LocaleId extends String {\n constructor(localizationService) {\n super();\n this.localizationService = localizationService;\n }\n toString() {\n const {\n currentLang\n } = this.localizationService;\n if (checkHasProp(differentLocales, currentLang)) {\n return differentLocales[currentLang];\n }\n return currentLang;\n }\n valueOf() {\n return this.toString();\n }\n}\nconst LocaleProvider = {\n provide: LOCALE_ID,\n useClass: LocaleId,\n deps: [LocalizationService]\n};\nDate.prototype.toLocalISOString = function () {\n const timezoneOffset = this.getTimezoneOffset();\n return new Date(this.getTime() - timezoneOffset * 60000).toISOString();\n};\nfunction getRemoteEnv(injector, environment) {\n const environmentService = injector.get(EnvironmentService);\n const {\n remoteEnv\n } = environment;\n const {\n headers = {},\n method = 'GET',\n url\n } = remoteEnv || {};\n if (!url) return Promise.resolve();\n const http = injector.get(HttpClient);\n const httpErrorReporter = injector.get(HttpErrorReporterService);\n return http.request(method, url, {\n headers\n }).pipe(catchError(err => {\n httpErrorReporter.reportError(err);\n return of(null);\n }),\n // TODO: Consider get handle function from a provider\n tap(env => environmentService.setState(mergeEnvironments(environment, env || {}, remoteEnv)))).toPromise();\n}\nfunction mergeEnvironments(local, remote, config) {\n switch (config.mergeStrategy) {\n case 'deepmerge':\n return deepMerge(local, remote);\n case 'overwrite':\n case null:\n case undefined:\n return remote;\n default:\n return config.mergeStrategy(local, remote);\n }\n}\nlet AbpTenantService = /*#__PURE__*/(() => {\n class AbpTenantService {\n constructor(restService) {\n this.restService = restService;\n this.apiName = 'abp';\n this.findTenantById = id => this.restService.request({\n method: 'GET',\n url: `/api/abp/multi-tenancy/tenants/by-id/${id}`\n }, {\n apiName: this.apiName\n });\n this.findTenantByName = name => this.restService.request({\n method: 'GET',\n url: `/api/abp/multi-tenancy/tenants/by-name/${name}`\n }, {\n apiName: this.apiName\n });\n }\n }\n AbpTenantService.ɵfac = function AbpTenantService_Factory(t) {\n return new (t || AbpTenantService)(i0.ɵɵinject(RestService));\n };\n AbpTenantService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AbpTenantService,\n factory: AbpTenantService.ɵfac,\n providedIn: 'root'\n });\n return AbpTenantService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MultiTenancyService = /*#__PURE__*/(() => {\n class MultiTenancyService {\n constructor(restService, sessionState, tenantService, configStateService, tenantKey) {\n this.restService = restService;\n this.sessionState = sessionState;\n this.tenantService = tenantService;\n this.configStateService = configStateService;\n this.tenantKey = tenantKey;\n this.domainTenant = null;\n this.isTenantBoxVisible = true;\n this.apiName = 'abp';\n this.setTenantToState = tenant => {\n this.sessionState.setTenant({\n id: tenant.tenantId,\n name: tenant.name,\n isAvailable: true\n });\n return this.configStateService.refreshAppState().pipe(map(_ => tenant));\n };\n }\n setTenantByName(tenantName) {\n return this.tenantService.findTenantByName(tenantName).pipe(switchMap(this.setTenantToState));\n }\n setTenantById(tenantId) {\n return this.tenantService.findTenantById(tenantId).pipe(switchMap(this.setTenantToState));\n }\n }\n MultiTenancyService.ɵfac = function MultiTenancyService_Factory(t) {\n return new (t || MultiTenancyService)(i0.ɵɵinject(RestService), i0.ɵɵinject(SessionStateService), i0.ɵɵinject(AbpTenantService), i0.ɵɵinject(ConfigStateService), i0.ɵɵinject(TENANT_KEY));\n };\n MultiTenancyService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MultiTenancyService,\n factory: MultiTenancyService.ɵfac,\n providedIn: 'root'\n });\n return MultiTenancyService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst tenancyPlaceholder = '{0}';\nfunction getCurrentTenancyName(appBaseUrl) {\n if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/') appBaseUrl += '/';\n const parseTokens = createTokenParser(appBaseUrl);\n const token = tenancyPlaceholder.replace(/[}{]/g, '');\n return parseTokens(window.location.href)[token]?.[0];\n}\nfunction getCurrentTenancyNameFromUrl(tenantKey) {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(tenantKey);\n}\nasync function parseTenantFromUrl(injector) {\n const environmentService = injector.get(EnvironmentService);\n const multiTenancyService = injector.get(MultiTenancyService);\n const baseUrl = environmentService.getEnvironment()?.application?.baseUrl || '';\n const tenancyName = getCurrentTenancyName(baseUrl);\n const hideTenantBox = () => {\n multiTenancyService.isTenantBoxVisible = false;\n };\n const setDomainTenant = tenant => {\n multiTenancyService.domainTenant = {\n id: tenant.tenantId,\n name: tenant.name,\n isAvailable: true\n };\n };\n const setEnvironmentWithDomainTenant = tenant => {\n hideTenantBox();\n setDomainTenant(tenant);\n };\n if (tenancyName) {\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 */\n replaceTenantNameWithinEnvironment(injector, tenancyName);\n return multiTenancyService.setTenantByName(tenancyName).pipe(tap(setEnvironmentWithDomainTenant)).toPromise();\n } else {\n /**\r\n * If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.\r\n */\n replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');\n const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);\n if (tenantIdFromQueryParams) {\n return multiTenancyService.setTenantById(tenantIdFromQueryParams).toPromise();\n }\n }\n return Promise.resolve();\n}\nfunction replaceTenantNameWithinEnvironment(injector, tenancyName, placeholder = tenancyPlaceholder) {\n const environmentService = injector.get(EnvironmentService);\n const environment = clone(environmentService.getEnvironment());\n if (environment.application.baseUrl) {\n environment.application.baseUrl = environment.application.baseUrl.replace(placeholder, tenancyName);\n }\n if (environment.oAuthConfig?.redirectUri) {\n environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace(placeholder, tenancyName);\n }\n if (!environment.oAuthConfig) {\n environment.oAuthConfig = {};\n }\n environment.oAuthConfig.issuer = (environment.oAuthConfig.issuer || '').replace(placeholder, tenancyName);\n Object.keys(environment.apis).forEach(api => {\n Object.keys(environment.apis[api]).forEach(key => {\n environment.apis[api][key] = (environment.apis[api][key] || '').replace(placeholder, tenancyName);\n });\n });\n return environmentService.setState(environment);\n}\nfunction getInitialData(injector) {\n const fn = async () => {\n const environmentService = injector.get(EnvironmentService);\n const configState = injector.get(ConfigStateService);\n const options = injector.get(CORE_OPTIONS);\n environmentService.setState(options.environment);\n await getRemoteEnv(injector, options.environment);\n await parseTenantFromUrl(injector);\n const authService = injector.get(AuthService, undefined, {\n optional: true\n });\n const checkAuthenticationState = injector.get(CHECK_AUTHENTICATION_STATE_FN_KEY, noop, {\n optional: true\n });\n if (authService) {\n await authService.init();\n }\n if (options.skipGetAppConfiguration) return;\n const result$ = configState.refreshAppState().pipe(tap(() => checkAuthenticationState(injector)), tap(() => {\n const currentTenant = configState.getOne('currentTenant');\n injector.get(SessionStateService).setTenant(currentTenant);\n }), catchError(error => {\n const appInitErrorHandlers = injector.get(APP_INIT_ERROR_HANDLERS, null);\n if (appInitErrorHandlers && appInitErrorHandlers.length) {\n appInitErrorHandlers.forEach(func => func(error));\n }\n return throwError(error);\n }));\n await lastValueFrom(result$);\n };\n return fn;\n}\nfunction localeInitializer(injector) {\n const fn = () => {\n const sessionState = injector.get(SessionStateService);\n const {\n registerLocaleFn\n } = injector.get(CORE_OPTIONS);\n const lang = sessionState.getLanguage() || 'en';\n return new Promise((resolve, reject) => {\n registerLocaleFn(lang).then(module => {\n if (module?.default) registerLocaleData(module.default);\n return resolve('resolved');\n }, reject);\n });\n };\n return fn;\n}\nlet ContentProjectionService = /*#__PURE__*/(() => {\n class ContentProjectionService {\n constructor(injector) {\n this.injector = injector;\n }\n projectContent(projectionStrategy, injector = this.injector) {\n return projectionStrategy.injectContent(injector);\n }\n }\n ContentProjectionService.ɵfac = function ContentProjectionService_Factory(t) {\n return new (t || ContentProjectionService)(i0.ɵɵinject(i0.Injector));\n };\n ContentProjectionService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ContentProjectionService,\n factory: ContentProjectionService.ɵfac,\n providedIn: 'root'\n });\n return ContentProjectionService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction getShortDateFormat(configStateService) {\n const dateTimeFormat = configStateService.getDeep('localization.currentCulture.dateTimeFormat');\n return dateTimeFormat.shortDatePattern;\n}\nfunction getShortTimeFormat(configStateService) {\n const dateTimeFormat = configStateService.getDeep('localization.currentCulture.dateTimeFormat');\n return dateTimeFormat?.shortTimePattern?.replace('tt', 'a');\n}\nfunction getShortDateShortTimeFormat(configStateService) {\n const dateTimeFormat = configStateService.getDeep('localization.currentCulture.dateTimeFormat');\n return `${dateTimeFormat.shortDatePattern} ${dateTimeFormat?.shortTimePattern?.replace('tt', 'a')}`;\n}\nclass LazyModuleFactory extends NgModuleFactory {\n constructor(moduleWithProviders) {\n super();\n this.moduleWithProviders = moduleWithProviders;\n }\n get moduleType() {\n return this.moduleWithProviders.ngModule;\n }\n create(parentInjector) {\n const injector = Injector.create({\n ...(parentInjector && {\n parent: parentInjector\n }),\n providers: this.moduleWithProviders.providers\n });\n const compiler = injector.get(Compiler);\n const factory = compiler.compileModuleSync(this.moduleType);\n return factory.create(injector);\n }\n}\nfunction featuresFactory(configState, featureKeys, mapFn = features => features) {\n return configState.getFeatures$(featureKeys).pipe(filter(Boolean), map(mapFn));\n}\nfunction downloadBlob(blob, filename) {\n const blobUrl = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = blobUrl;\n link.download = filename;\n document.body.appendChild(link);\n link.dispatchEvent(new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n }));\n document.body.removeChild(link);\n}\nfunction isNumber(value) {\n return value == Number(value);\n}\nfunction mapEnumToOptions(_enum) {\n const options = [];\n for (const member in _enum) if (!isNumber(member)) options.push({\n key: member,\n value: _enum[member]\n });\n return options;\n}\nfunction uuid(a) {\n return a ? (a ^ Math.random() * 16 >> a / 4).toString(16) : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\nfunction generateHash(value) {\n let hashed = 0;\n let charCode;\n for (let i = 0; i < value.length; i++) {\n charCode = value.charCodeAt(i);\n hashed = (hashed << 5) - hashed + charCode;\n hashed |= 0;\n }\n return hashed;\n}\nfunction generatePassword(length = 8) {\n length = Math.min(Math.max(4, length), 128);\n const lowers = 'abcdefghijklmnopqrstuvwxyz';\n const uppers = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const numbers = '0123456789';\n const specials = '!@#$%&*()_+{}<>?[]./';\n const all = lowers + uppers + numbers + specials;\n const getRandom = chrSet => chrSet[Math.floor(Math.random() * chrSet.length)];\n const password = Array({\n length\n });\n password[0] = getRandom(lowers);\n password[1] = getRandom(uppers);\n password[2] = getRandom(numbers);\n password[3] = getRandom(specials);\n for (let i = 4; i < length; i++) {\n password[i] = getRandom(all);\n }\n return password.sort(() => 0.5 - Math.random()).join('');\n}\nfunction getPathName(url) {\n const {\n pathname\n } = new URL(url, window.location.origin);\n return pathname;\n}\nclass WebHttpUrlEncodingCodec {\n encodeKey(k) {\n return encodeURIComponent(k);\n }\n encodeValue(v) {\n return encodeURIComponent(v);\n }\n decodeKey(k) {\n return decodeURIComponent(k);\n }\n decodeValue(v) {\n return decodeURIComponent(v);\n }\n}\nclass CrossOriginStrategy {\n constructor(crossorigin, integrity) {\n this.crossorigin = crossorigin;\n this.integrity = integrity;\n }\n setCrossOrigin(element) {\n if (this.integrity) element.setAttribute('integrity', this.integrity);\n if (this.crossorigin) {\n element.setAttribute('crossorigin', this.crossorigin);\n }\n }\n}\nclass NoCrossOriginStrategy extends CrossOriginStrategy {\n setCrossOrigin() {}\n}\nconst CROSS_ORIGIN_STRATEGY = {\n Anonymous(integrity) {\n return new CrossOriginStrategy('anonymous', integrity);\n },\n UseCredentials(integrity) {\n return new CrossOriginStrategy('use-credentials', integrity);\n },\n None() {\n return new NoCrossOriginStrategy(null);\n }\n};\nclass DomStrategy {\n constructor(target = document.head, position = 'beforeend') {\n this.target = target;\n this.position = position;\n }\n insertElement(element) {\n this.target.insertAdjacentElement(this.position, element);\n }\n}\nconst DOM_STRATEGY = {\n AfterElement(element) {\n return new DomStrategy(element, 'afterend');\n },\n AppendToBody() {\n return new DomStrategy(document.body, 'beforeend');\n },\n AppendToHead() {\n return new DomStrategy(document.head, 'beforeend');\n },\n BeforeElement(element) {\n return new DomStrategy(element, 'beforebegin');\n },\n PrependToHead() {\n return new DomStrategy(document.head, 'afterbegin');\n }\n};\nfunction fromLazyLoad(element, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {\n crossOriginStrategy.setCrossOrigin(element);\n domStrategy.insertElement(element);\n return new Observable(observer => {\n element.onload = event => {\n clearCallbacks(element);\n observer.next(event);\n observer.complete();\n };\n const handleError = createErrorHandler(observer, element);\n element.onerror = handleError;\n element.onabort = handleError;\n element.onemptied = handleError;\n element.onstalled = handleError;\n element.onsuspend = handleError;\n return () => {\n clearCallbacks(element);\n observer.complete();\n };\n });\n}\nfunction createErrorHandler(observer, element) {\n return function (event) {\n clearCallbacks(element);\n element.parentNode?.removeChild(element);\n observer.error(event);\n };\n}\nfunction clearCallbacks(element) {\n element.onload = null;\n element.onerror = null;\n element.onabort = null;\n element.onemptied = null;\n element.onstalled = null;\n element.onsuspend = null;\n}\nclass DefaultQueueManager {\n constructor() {\n this.queue = [];\n this.isRunning = false;\n this.stack = 0;\n this.interval = 0;\n this.stackSize = 100;\n }\n init(interval, stackSize) {\n this.interval = interval;\n this.stackSize = stackSize;\n }\n add(fn) {\n this.queue.push(fn);\n this.run();\n }\n run() {\n if (this.isRunning) return;\n this.stack++;\n this.isRunning = true;\n const fn = this.queue.shift();\n if (!fn) {\n this.isRunning = false;\n return;\n }\n fn();\n if (this.stack > this.stackSize) {\n setTimeout(() => {\n this.isRunning = false;\n this.run();\n this.stack = 0;\n }, this.interval);\n } else {\n this.isRunning = false;\n this.run();\n }\n }\n}\nlet DomInsertionService = /*#__PURE__*/(() => {\n class DomInsertionService {\n constructor() {\n this.inserted = new Set();\n }\n insertContent(contentStrategy) {\n const hash = generateHash(contentStrategy.content);\n if (this.inserted.has(hash)) return;\n const element = contentStrategy.insertElement();\n this.inserted.add(hash);\n return element;\n }\n removeContent(element) {\n if (element.textContent) {\n const hash = generateHash(element.textContent);\n this.inserted.delete(hash);\n element.parentNode?.removeChild(element);\n }\n }\n has(content) {\n const hash = generateHash(content);\n return this.inserted.has(hash);\n }\n }\n DomInsertionService.ɵfac = function DomInsertionService_Factory(t) {\n return new (t || DomInsertionService)();\n };\n DomInsertionService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomInsertionService,\n factory: DomInsertionService.ɵfac,\n providedIn: 'root'\n });\n return DomInsertionService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet HttpWaitService = /*#__PURE__*/(() => {\n class HttpWaitService {\n constructor(injector) {\n this.store = new InternalStore({\n requests: [],\n filteredRequests: []\n });\n this.destroy$ = new Subject();\n this.delay = injector.get(LOADER_DELAY, 500);\n }\n getLoading() {\n return !!this.applyFilter(this.store.state.requests).length;\n }\n getLoading$() {\n return this.store.sliceState(({\n requests\n }) => requests).pipe(map(requests => !!this.applyFilter(requests).length), switchMap(condition => condition ? this.delay === 0 ? of(true) : timer(this.delay).pipe(mapTo(true), takeUntil(this.destroy$)) : of(false)), tap(() => this.destroy$.next()));\n }\n updateLoading$() {\n return this.store.sliceUpdate(({\n requests\n }) => !!this.applyFilter(requests).length);\n }\n clearLoading() {\n this.store.patch({\n requests: []\n });\n }\n addRequest(request) {\n this.store.patch({\n requests: [...this.store.state.requests, request]\n });\n }\n deleteRequest(request) {\n const requests = this.store.state.requests.filter(r => r !== request);\n this.store.patch({\n requests\n });\n }\n addFilter(request) {\n const requests = Array.isArray(request) ? request : [request];\n const filteredRequests = [...this.store.state.filteredRequests.filter(f => !requests.some(r => this.isSameRequest(f, r))), ...requests];\n this.store.patch({\n filteredRequests\n });\n }\n removeFilter(request) {\n const requests = Array.isArray(request) ? request : [request];\n const filteredRequests = this.store.state.filteredRequests.filter(f => !requests.some(r => this.isSameRequest(f, r)));\n this.store.patch({\n filteredRequests\n });\n }\n applyFilter(requests) {\n if (!requests) {\n return [];\n }\n const {\n filteredRequests\n } = this.store.state;\n return requests.filter(({\n method,\n url\n }) => !filteredRequests.find(filteredRequest => this.isSameRequest(filteredRequest, {\n method,\n endpoint: getPathName(url)\n })));\n }\n isSameRequest(filteredRequest, request) {\n const {\n method,\n endpoint\n } = filteredRequest;\n return endpoint === request.endpoint && method === request.method;\n }\n }\n HttpWaitService.ɵfac = function HttpWaitService_Factory(t) {\n return new (t || HttpWaitService)(i0.ɵɵinject(i0.Injector));\n };\n HttpWaitService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HttpWaitService,\n factory: HttpWaitService.ɵfac,\n providedIn: 'root'\n });\n return HttpWaitService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ResourceWaitService = /*#__PURE__*/(() => {\n class ResourceWaitService {\n constructor() {\n this.store = new InternalStore({\n resources: new Set()\n });\n }\n getLoading() {\n return !!this.store.state.resources.size;\n }\n getLoading$() {\n return this.store.sliceState(({\n resources\n }) => !!resources.size);\n }\n updateLoading$() {\n return this.store.sliceUpdate(({\n resources\n }) => !!resources?.size);\n }\n clearLoading() {\n this.store.patch({\n resources: new Set()\n });\n }\n addResource(resource) {\n const resources = this.store.state.resources;\n resources.add(resource);\n this.store.patch({\n resources\n });\n }\n deleteResource(resource) {\n const resources = this.store.state.resources;\n resources.delete(resource);\n this.store.patch({\n resources\n });\n }\n }\n ResourceWaitService.ɵfac = function ResourceWaitService_Factory(t) {\n return new (t || ResourceWaitService)();\n };\n ResourceWaitService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ResourceWaitService,\n factory: ResourceWaitService.ɵfac,\n providedIn: 'root'\n });\n return ResourceWaitService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet LazyLoadService = /*#__PURE__*/(() => {\n class LazyLoadService {\n constructor(resourceWaitService) {\n this.resourceWaitService = resourceWaitService;\n this.loaded = new Map();\n }\n load(strategy, retryTimes, retryDelay) {\n if (this.loaded.has(strategy.path)) return of(new CustomEvent('load'));\n this.resourceWaitService.addResource(strategy.path);\n const delayOperator = retryDelay ? pipe(delay(retryDelay)) : pipe();\n const takeOp = retryTimes ? pipe(take(retryTimes)) : pipe();\n return strategy.createStream().pipe(retryWhen(error$ => concat(error$.pipe(delayOperator, takeOp), throwError(() => new CustomEvent('error')))), tap(() => {\n this.loaded.set(strategy.path, strategy.element);\n this.resourceWaitService.deleteResource(strategy.path);\n }), delay(100), shareReplay({\n bufferSize: 1,\n refCount: true\n }));\n }\n remove(path) {\n const element = this.loaded.get(path);\n if (!element) return false;\n element.parentNode?.removeChild(element);\n this.loaded.delete(path);\n return true;\n }\n }\n LazyLoadService.ɵfac = function LazyLoadService_Factory(t) {\n return new (t || LazyLoadService)(i0.ɵɵinject(ResourceWaitService));\n };\n LazyLoadService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LazyLoadService,\n factory: LazyLoadService.ɵfac,\n providedIn: 'root'\n });\n return LazyLoadService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ListService = /*#__PURE__*/(() => {\n class ListService {\n constructor(injector) {\n this._filter = '';\n this._maxResultCount = 10;\n this._skipCount = 0;\n this._page = 0;\n this._sortKey = '';\n this._sortOrder = '';\n this._query$ = new ReplaySubject(1);\n this._isLoading$ = new BehaviorSubject(false);\n this.destroy$ = new Subject();\n this.get = () => {\n this.resetPageWhenUnchanged();\n this.next();\n };\n this.getWithoutPageReset = () => {\n this.next();\n };\n const delay = injector.get(LIST_QUERY_DEBOUNCE_TIME, 300);\n this.delay = delay ? debounceTime(delay) : tap();\n this.get();\n }\n set filter(value) {\n this._filter = value;\n this.get();\n }\n get filter() {\n return this._filter;\n }\n set maxResultCount(value) {\n this._maxResultCount = value;\n this.get();\n }\n get maxResultCount() {\n return this._maxResultCount;\n }\n set page(value) {\n if (value === this._page) return;\n this._page = value;\n this.get();\n }\n get page() {\n return this._page;\n }\n set sortKey(value) {\n this._sortKey = value;\n this.get();\n }\n get sortKey() {\n return this._sortKey;\n }\n set sortOrder(value) {\n this._sortOrder = value;\n this.get();\n }\n get sortOrder() {\n return this._sortOrder;\n }\n get query$() {\n return this._query$.asObservable().pipe(this.delay, shareReplay({\n bufferSize: 1,\n refCount: true\n }));\n }\n get isLoading$() {\n return this._isLoading$.asObservable();\n }\n hookToQuery(streamCreatorCallback) {\n return this.query$.pipe(tap(() => this._isLoading$.next(true)), switchMap(query => streamCreatorCallback(query).pipe(catchError(() => of(null)))), filter(Boolean), tap(() => this._isLoading$.next(false)), shareReplay({\n bufferSize: 1,\n refCount: true\n }), takeUntil(this.destroy$));\n }\n ngOnDestroy() {\n this.destroy$.next();\n }\n resetPageWhenUnchanged() {\n const skipCount = this._page * this._maxResultCount;\n if (skipCount === this._skipCount) {\n this._page = 0;\n this._skipCount = 0;\n } else this._skipCount = skipCount;\n }\n next() {\n this._query$.next({\n filter: this._filter || undefined,\n maxResultCount: this._maxResultCount,\n skipCount: this._page * this._maxResultCount,\n sorting: this._sortOrder ? `${this._sortKey} ${this._sortOrder}` : undefined\n });\n }\n }\n ListService.ɵfac = function ListService_Factory(t) {\n return new (t || ListService)(i0.ɵɵinject(i0.Injector));\n };\n ListService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ListService,\n factory: ListService.ɵfac\n });\n return ListService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet RouterWaitService = /*#__PURE__*/(() => {\n class RouterWaitService {\n constructor(routerEvents, injector) {\n this.routerEvents = routerEvents;\n this.store = new InternalStore({\n loading: false\n });\n this.destroy$ = new Subject();\n this.delay = injector.get(LOADER_DELAY, 500);\n this.updateLoadingStatusOnNavigationEvents();\n }\n updateLoadingStatusOnNavigationEvents() {\n this.routerEvents.getAllNavigationEvents().pipe(map(event => event instanceof NavigationStart), switchMap(condition => condition ? this.delay === 0 ? of(true) : timer(this.delay || 0).pipe(mapTo(true), takeUntil(this.destroy$)) : of(false)), tap(() => this.destroy$.next())).subscribe(status => {\n this.setLoading(status);\n });\n }\n getLoading() {\n return this.store.state.loading;\n }\n getLoading$() {\n return this.store.sliceState(({\n loading\n }) => loading);\n }\n updateLoading$() {\n return this.store.sliceUpdate(({\n loading\n }) => loading);\n }\n setLoading(loading) {\n this.store.patch({\n loading\n });\n }\n }\n RouterWaitService.ɵfac = function RouterWaitService_Factory(t) {\n return new (t || RouterWaitService)(i0.ɵɵinject(RouterEvents), i0.ɵɵinject(i0.Injector));\n };\n RouterWaitService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RouterWaitService,\n factory: RouterWaitService.ɵfac,\n providedIn: 'root'\n });\n return RouterWaitService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst trackBy = key => (_, item) => item[key];\nconst trackByDeep = (\n// eslint-disable-next-line @typescript-eslint/ban-types\n...keys) => (_, item) => keys.reduce((acc, key) => acc[key], item);\nlet TrackByService = /*#__PURE__*/(() => {\n class TrackByService {\n constructor() {\n this.by = trackBy;\n this.byDeep = trackByDeep;\n }\n }\n TrackByService.ɵfac = function TrackByService_Factory(t) {\n return new (t || TrackByService)();\n };\n TrackByService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TrackByService,\n factory: TrackByService.ɵfac,\n providedIn: 'root'\n });\n return TrackByService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ShortDateTimePipe = /*#__PURE__*/(() => {\n class ShortDateTimePipe extends DatePipe {\n constructor(configStateService, locale, defaultTimezone) {\n super(locale, defaultTimezone);\n this.configStateService = configStateService;\n }\n transform(value, timezone, locale) {\n const format = getShortDateShortTimeFormat(this.configStateService);\n return super.transform(value, format, timezone, locale);\n }\n }\n ShortDateTimePipe.ɵfac = function ShortDateTimePipe_Factory(t) {\n return new (t || ShortDateTimePipe)(i0.ɵɵdirectiveInject(ConfigStateService, 16), i0.ɵɵdirectiveInject(LOCALE_ID, 16), i0.ɵɵdirectiveInject(DATE_PIPE_DEFAULT_TIMEZONE, 24));\n };\n ShortDateTimePipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"shortDateTime\",\n type: ShortDateTimePipe,\n pure: true\n });\n return ShortDateTimePipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ShortTimePipe = /*#__PURE__*/(() => {\n class ShortTimePipe extends DatePipe {\n constructor(configStateService, locale, defaultTimezone) {\n super(locale, defaultTimezone);\n this.configStateService = configStateService;\n }\n transform(value, timezone, locale) {\n const format = getShortTimeFormat(this.configStateService);\n return super.transform(value, format, timezone, locale);\n }\n }\n ShortTimePipe.ɵfac = function ShortTimePipe_Factory(t) {\n return new (t || ShortTimePipe)(i0.ɵɵdirectiveInject(ConfigStateService, 16), i0.ɵɵdirectiveInject(LOCALE_ID, 16), i0.ɵɵdirectiveInject(DATE_PIPE_DEFAULT_TIMEZONE, 24));\n };\n ShortTimePipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"shortTime\",\n type: ShortTimePipe,\n pure: true\n });\n return ShortTimePipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ShortDatePipe = /*#__PURE__*/(() => {\n class ShortDatePipe extends DatePipe {\n constructor(configStateService, locale, defaultTimezone) {\n super(locale, defaultTimezone);\n this.configStateService = configStateService;\n }\n transform(value, timezone, locale) {\n const format = getShortDateFormat(this.configStateService);\n return super.transform(value, format, timezone, locale);\n }\n }\n ShortDatePipe.ɵfac = function ShortDatePipe_Factory(t) {\n return new (t || ShortDatePipe)(i0.ɵɵdirectiveInject(ConfigStateService, 16), i0.ɵɵdirectiveInject(LOCALE_ID, 16), i0.ɵɵdirectiveInject(DATE_PIPE_DEFAULT_TIMEZONE, 24));\n };\n ShortDatePipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"shortDate\",\n type: ShortDatePipe,\n pure: true\n });\n return ShortDatePipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SafeHtmlPipe = /*#__PURE__*/(() => {\n class SafeHtmlPipe {\n constructor() {\n this.sanitizer = inject(DomSanitizer);\n }\n transform(value) {\n if (typeof value !== 'string') return '';\n return this.sanitizer.sanitize(SecurityContext.HTML, value);\n }\n }\n SafeHtmlPipe.ɵfac = function SafeHtmlPipe_Factory(t) {\n return new (t || SafeHtmlPipe)();\n };\n SafeHtmlPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"abpSafeHtml\",\n type: SafeHtmlPipe,\n pure: true\n });\n SafeHtmlPipe.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SafeHtmlPipe,\n factory: SafeHtmlPipe.ɵfac\n });\n return SafeHtmlPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst IncludeLocalizationResourcesProvider = {\n provide: INCUDE_LOCALIZATION_RESOURCES_TOKEN,\n useValue: false\n};\n\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 */\nlet BaseCoreModule = /*#__PURE__*/(() => {\n class BaseCoreModule {}\n BaseCoreModule.ɵfac = function BaseCoreModule_Factory(t) {\n return new (t || BaseCoreModule)();\n };\n BaseCoreModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BaseCoreModule\n });\n BaseCoreModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [LocalizationPipe],\n imports: [CommonModule, HttpClientModule, FormsModule, ReactiveFormsModule, RouterModule, LocalizationModule, CommonModule, HttpClientModule, FormsModule, ReactiveFormsModule, RouterModule, LocalizationModule]\n });\n return BaseCoreModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\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 */\nlet RootCoreModule = /*#__PURE__*/(() => {\n class RootCoreModule {}\n RootCoreModule.ɵfac = function RootCoreModule_Factory(t) {\n return new (t || RootCoreModule)();\n };\n RootCoreModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: RootCoreModule\n });\n RootCoreModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [BaseCoreModule, LocalizationModule, HttpClientXsrfModule.withOptions({\n cookieName: 'XSRF-TOKEN',\n headerName: 'RequestVerificationToken'\n }), BaseCoreModule, LocalizationModule]\n });\n return RootCoreModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\r\n * CoreModule is the module that is publicly available\r\n */\nlet CoreModule = /*#__PURE__*/(() => {\n class CoreModule {\n static forRoot(options = {}) {\n return {\n ngModule: RootCoreModule,\n providers: [LocaleProvider, CookieLanguageProvider, {\n provide: 'CORE_OPTIONS',\n useValue: options\n }, {\n provide: CORE_OPTIONS,\n useFactory: coreOptionsFactory,\n deps: ['CORE_OPTIONS']\n }, {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData\n }, {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: localeInitializer\n }, {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [LocalizationService],\n useFactory: noop\n }, {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [RoutesHandler],\n useFactory: noop\n }, {\n provide: TENANT_KEY,\n useValue: options.tenantKey || '__tenant'\n }, {\n provide: LOCALIZATIONS,\n multi: true,\n useValue: localizationContributor(options.localizations),\n deps: [LocalizationService]\n }, {\n provide: QUEUE_MANAGER,\n useClass: DefaultQueueManager\n }, {\n provide: OTHERS_GROUP,\n useValue: options.othersGroup || 'AbpUi::OthersGroup'\n }, IncludeLocalizationResourcesProvider]\n };\n }\n static forChild(options = {}) {\n return {\n ngModule: RootCoreModule,\n providers: [{\n provide: LOCALIZATIONS,\n multi: true,\n useValue: localizationContributor(options.localizations),\n deps: [LocalizationService]\n }]\n };\n }\n }\n CoreModule.ɵfac = function CoreModule_Factory(t) {\n return new (t || CoreModule)();\n };\n CoreModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CoreModule\n });\n CoreModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [BaseCoreModule, BaseCoreModule]\n });\n return CoreModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PermissionGuard = /*#__PURE__*/(() => {\n class PermissionGuard {\n constructor(router, routesService, permissionService, httpErrorReporter) {\n this.router = router;\n this.routesService = routesService;\n this.permissionService = permissionService;\n this.httpErrorReporter = httpErrorReporter;\n }\n canActivate(route, state) {\n let {\n requiredPolicy\n } = route.data || {};\n if (!requiredPolicy) {\n const routeFound = findRoute(this.routesService, getRoutePath(this.router, state.url));\n requiredPolicy = routeFound?.requiredPolicy;\n }\n if (!requiredPolicy) return of(true);\n return this.permissionService.getGrantedPolicy$(requiredPolicy).pipe(tap(access => {\n if (!access) {\n this.httpErrorReporter.reportError({\n status: 403\n });\n }\n }));\n }\n }\n PermissionGuard.ɵfac = function PermissionGuard_Factory(t) {\n return new (t || PermissionGuard)(i0.ɵɵinject(i1$1.Router), i0.ɵɵinject(RoutesService), i0.ɵɵinject(PermissionService), i0.ɵɵinject(HttpErrorReporterService));\n };\n PermissionGuard.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PermissionGuard,\n factory: PermissionGuard.ɵfac,\n providedIn: 'root'\n });\n return PermissionGuard;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass ListResultDto {\n constructor(initialValues = {}) {\n for (const key in initialValues) {\n if (checkHasProp(initialValues, key)) {\n this[key] = initialValues[key];\n }\n }\n }\n}\nclass PagedResultDto extends ListResultDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass ExtensibleObject {\n constructor(initialValues = {}) {\n for (const key in initialValues) {\n if (checkHasProp(initialValues, key) && initialValues[key] !== undefined) {\n this[key] = initialValues[key];\n }\n }\n }\n}\nclass ExtensibleEntityDto extends ExtensibleObject {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass LimitedResultRequestDto {\n constructor(initialValues = {}) {\n this.maxResultCount = 10;\n for (const key in initialValues) {\n if (checkHasProp(initialValues, key) && initialValues[key] !== undefined) {\n this[key] = initialValues[key];\n }\n }\n }\n}\nclass ExtensibleLimitedResultRequestDto extends ExtensibleEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n this.maxResultCount = 10;\n }\n}\nclass PagedResultRequestDto extends LimitedResultRequestDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass ExtensiblePagedResultRequestDto extends ExtensibleLimitedResultRequestDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass PagedAndSortedResultRequestDto extends PagedResultRequestDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass ExtensiblePagedAndSortedResultRequestDto extends ExtensiblePagedResultRequestDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass EntityDto {\n constructor(initialValues = {}) {\n for (const key in initialValues) {\n if (checkHasProp(initialValues, key)) {\n this[key] = initialValues[key];\n }\n }\n }\n}\nclass CreationAuditedEntityDto extends EntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass CreationAuditedEntityWithUserDto extends CreationAuditedEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass AuditedEntityDto extends CreationAuditedEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass AuditedEntityWithUserDto extends AuditedEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass FullAuditedEntityDto extends AuditedEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass FullAuditedEntityWithUserDto extends FullAuditedEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass ExtensibleCreationAuditedEntityDto extends ExtensibleEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass ExtensibleAuditedEntityDto extends ExtensibleCreationAuditedEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass ExtensibleAuditedEntityWithUserDto extends ExtensibleAuditedEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass ExtensibleCreationAuditedEntityWithUserDto extends ExtensibleCreationAuditedEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass ExtensibleFullAuditedEntityDto extends ExtensibleAuditedEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nclass ExtensibleFullAuditedEntityWithUserDto extends ExtensibleFullAuditedEntityDto {\n constructor(initialValues = {}) {\n super(initialValues);\n }\n}\nlet AbpApiDefinitionService = /*#__PURE__*/(() => {\n class AbpApiDefinitionService {\n constructor(restService) {\n this.restService = restService;\n this.apiName = 'abp';\n this.getByModel = model => this.restService.request({\n method: 'GET',\n url: '/api/abp/api-definition',\n params: {\n includeTypes: model.includeTypes\n }\n }, {\n apiName: this.apiName\n });\n }\n }\n AbpApiDefinitionService.ɵfac = function AbpApiDefinitionService_Factory(t) {\n return new (t || AbpApiDefinitionService)(i0.ɵɵinject(RestService));\n };\n AbpApiDefinitionService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AbpApiDefinitionService,\n factory: AbpApiDefinitionService.ɵfac,\n providedIn: 'root'\n });\n return AbpApiDefinitionService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar index = /*#__PURE__*/Object.freeze({\n __proto__: null\n});\nclass ContainerStrategy {\n constructor(containerRef) {\n this.containerRef = containerRef;\n }\n prepare() {}\n}\nclass ClearContainerStrategy extends ContainerStrategy {\n getIndex() {\n return 0;\n }\n prepare() {\n this.containerRef.clear();\n }\n}\nclass InsertIntoContainerStrategy extends ContainerStrategy {\n constructor(containerRef, index) {\n super(containerRef);\n this.index = index;\n }\n getIndex() {\n return Math.min(Math.max(0, this.index), this.containerRef.length);\n }\n}\nconst CONTAINER_STRATEGY = {\n Clear(containerRef) {\n return new ClearContainerStrategy(containerRef);\n },\n Append(containerRef) {\n return new InsertIntoContainerStrategy(containerRef, containerRef.length);\n },\n Prepend(containerRef) {\n return new InsertIntoContainerStrategy(containerRef, 0);\n },\n Insert(containerRef, index) {\n return new InsertIntoContainerStrategy(containerRef, index);\n }\n};\nclass ContentSecurityStrategy {\n constructor(nonce) {\n this.nonce = nonce;\n }\n}\nclass LooseContentSecurityStrategy extends ContentSecurityStrategy {\n constructor(nonce) {\n super(nonce);\n }\n applyCSP(element) {\n if (this.nonce) {\n element.setAttribute('nonce', this.nonce);\n }\n }\n}\nclass NoContentSecurityStrategy extends ContentSecurityStrategy {\n constructor() {\n super();\n }\n applyCSP(_) {}\n}\nconst CONTENT_SECURITY_STRATEGY = {\n Loose(nonce) {\n return new LooseContentSecurityStrategy(nonce);\n },\n None() {\n return new NoContentSecurityStrategy();\n }\n};\nclass ContentStrategy {\n constructor(content, domStrategy = DOM_STRATEGY.AppendToHead(), contentSecurityStrategy = CONTENT_SECURITY_STRATEGY.None(), options = {}) {\n this.content = content;\n this.domStrategy = domStrategy;\n this.contentSecurityStrategy = contentSecurityStrategy;\n this.options = options;\n }\n insertElement() {\n const element = this.createElement();\n if (this.options && Object.keys(this.options).length > 0) {\n Object.keys(this.options).forEach(key => {\n if (this.options[key]) {\n element[key] = this.options[key];\n }\n });\n }\n this.contentSecurityStrategy.applyCSP(element);\n this.domStrategy.insertElement(element);\n return element;\n }\n}\nclass StyleContentStrategy extends ContentStrategy {\n createElement() {\n const element = document.createElement('style');\n element.textContent = this.content;\n return element;\n }\n}\nclass ScriptContentStrategy extends ContentStrategy {\n createElement() {\n const element = document.createElement('script');\n element.textContent = this.content;\n return element;\n }\n}\nconst CONTENT_STRATEGY = {\n AppendScriptToBody(content, options) {\n return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToBody(), undefined, options);\n },\n AppendScriptToHead(content, options) {\n return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);\n },\n AppendStyleToHead(content, options) {\n return new StyleContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);\n },\n PrependStyleToHead(content, options) {\n return new StyleContentStrategy(content, DOM_STRATEGY.PrependToHead(), undefined, options);\n }\n};\nclass ContextStrategy {\n constructor(context) {\n this.context = context;\n }\n setContext(componentRef) {\n return this.context;\n }\n}\nclass NoContextStrategy extends ContextStrategy {\n constructor() {\n super(undefined);\n }\n}\nclass ComponentContextStrategy extends ContextStrategy {\n setContext(componentRef) {\n Object.keys(this.context).forEach(key => componentRef.instance[key] = this.context[key]);\n componentRef.changeDetectorRef.detectChanges();\n return this.context;\n }\n}\nclass TemplateContextStrategy extends ContextStrategy {\n setContext() {\n return this.context;\n }\n}\nconst CONTEXT_STRATEGY = {\n None() {\n return new NoContextStrategy();\n },\n Component(context) {\n return new ComponentContextStrategy(context);\n },\n Template(context) {\n return new TemplateContextStrategy(context);\n }\n};\nclass LoadingStrategy {\n constructor(path, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {\n this.path = path;\n this.domStrategy = domStrategy;\n this.crossOriginStrategy = crossOriginStrategy;\n }\n createStream() {\n this.element = this.createElement();\n return of(null).pipe(switchMap(() => fromLazyLoad(this.element, this.domStrategy, this.crossOriginStrategy)));\n }\n}\nclass ScriptLoadingStrategy extends LoadingStrategy {\n constructor(src, domStrategy, crossOriginStrategy) {\n super(src, domStrategy, crossOriginStrategy);\n }\n createElement() {\n const element = document.createElement('script');\n element.src = this.path;\n return element;\n }\n}\nclass StyleLoadingStrategy extends LoadingStrategy {\n constructor(href, domStrategy, crossOriginStrategy) {\n super(href, domStrategy, crossOriginStrategy);\n }\n createElement() {\n const element = document.createElement('link');\n element.rel = 'stylesheet';\n element.href = this.path;\n return element;\n }\n}\nconst LOADING_STRATEGY = {\n AppendScriptToBody(src) {\n return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToBody(), CROSS_ORIGIN_STRATEGY.None());\n },\n AppendAnonymousScriptToBody(src, integrity) {\n return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToBody(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));\n },\n AppendAnonymousScriptToHead(src, integrity) {\n return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));\n },\n AppendAnonymousStyleToHead(src, integrity) {\n return new StyleLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));\n },\n PrependAnonymousScriptToHead(src, integrity) {\n return new ScriptLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));\n },\n PrependAnonymousStyleToHead(src, integrity) {\n return new StyleLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));\n }\n};\nclass ProjectionStrategy {\n constructor(content) {\n this.content = content;\n }\n}\nclass ComponentProjectionStrategy extends ProjectionStrategy {\n constructor(component, containerStrategy, contextStrategy = CONTEXT_STRATEGY.None()) {\n super(component);\n this.containerStrategy = containerStrategy;\n this.contextStrategy = contextStrategy;\n }\n injectContent(injector) {\n this.containerStrategy.prepare();\n const resolver = injector.get(ComponentFactoryResolver);\n const factory = resolver.resolveComponentFactory(this.content);\n const componentRef = this.containerStrategy.containerRef.createComponent(factory, this.containerStrategy.getIndex(), injector);\n this.contextStrategy.setContext(componentRef);\n return componentRef;\n }\n}\nclass RootComponentProjectionStrategy extends ProjectionStrategy {\n constructor(component, contextStrategy = CONTEXT_STRATEGY.None(), domStrategy = DOM_STRATEGY.AppendToBody()) {\n super(component);\n this.contextStrategy = contextStrategy;\n this.domStrategy = domStrategy;\n }\n injectContent(injector) {\n const appRef = injector.get(ApplicationRef);\n const resolver = injector.get(ComponentFactoryResolver);\n const componentRef = resolver.resolveComponentFactory(this.content).create(injector);\n this.contextStrategy.setContext(componentRef);\n appRef.attachView(componentRef.hostView);\n const element = componentRef.hostView.rootNodes[0];\n this.domStrategy.insertElement(element);\n return componentRef;\n }\n}\nclass TemplateProjectionStrategy extends ProjectionStrategy {\n constructor(templateRef, containerStrategy, contextStrategy = CONTEXT_STRATEGY.None()) {\n super(templateRef);\n this.containerStrategy = containerStrategy;\n this.contextStrategy = contextStrategy;\n }\n injectContent() {\n this.containerStrategy.prepare();\n const embeddedViewRef = this.containerStrategy.containerRef.createEmbeddedView(this.content, this.contextStrategy.context, this.containerStrategy.getIndex());\n embeddedViewRef.detectChanges();\n return embeddedViewRef;\n }\n}\nconst PROJECTION_STRATEGY = {\n AppendComponentToBody(component, context) {\n return new RootComponentProjectionStrategy(component, context && CONTEXT_STRATEGY.Component(context));\n },\n AppendComponentToContainer(component, containerRef, context) {\n return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Append(containerRef), context && CONTEXT_STRATEGY.Component(context));\n },\n AppendTemplateToContainer(templateRef, containerRef, context) {\n return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Append(containerRef), context && CONTEXT_STRATEGY.Template(context));\n },\n PrependComponentToContainer(component, containerRef, context) {\n return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Component(context));\n },\n PrependTemplateToContainer(templateRef, containerRef, context) {\n return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Template(context));\n },\n ProjectComponentToContainer(component, containerRef, context) {\n return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Component(context));\n },\n ProjectTemplateToContainer(templateRef, containerRef, context) {\n return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Template(context));\n }\n};\nfunction validateMinAge({\n age = 18\n} = {}) {\n return control => {\n if (['', null, undefined].indexOf(control.value) > -1) return null;\n return isValidMinAge(control.value, age) ? null : {\n minAge: {\n age\n }\n };\n };\n}\nfunction isValidMinAge(value, minAge) {\n const date = new Date();\n date.setFullYear(date.getFullYear() - minAge);\n date.setHours(23, 59, 59, 999);\n return Number(new Date(value)) <= date.valueOf();\n}\nfunction validateCreditCard() {\n return control => {\n if (['', null, undefined].indexOf(control.value) > -1) return null;\n return isValidCreditCard(String(control.value)) ? null : {\n creditCard: true\n };\n };\n}\nfunction isValidCreditCard(value) {\n value = value.replace(/[ -]/g, '');\n if (!/^[0-9]{13,19}$/.test(value)) return false;\n let checksum = 0;\n let multiplier = 1;\n for (let i = value.length; i > 0; i--) {\n const digit = Number(value[i - 1]) * multiplier;\n checksum += digit % 10 + ~~(digit / 10);\n multiplier = multiplier * 2 % 3;\n }\n return checksum % 10 === 0;\n}\nfunction validateRange({\n maximum = Infinity,\n minimum = 0\n} = {}) {\n return control => {\n if (['', null, undefined].indexOf(control.value) > -1) return null;\n const value = Number(control.value);\n return getMinError(value, minimum, maximum) || getMaxError(value, maximum, minimum);\n };\n}\nfunction getMaxError(value, max, min) {\n return value > max ? {\n range: {\n max,\n min\n }\n } : null;\n}\nfunction getMinError(value, min, max) {\n return value < min ? {\n range: {\n min,\n max\n }\n } : null;\n}\nfunction validateRequired({\n allowEmptyStrings\n} = {}) {\n // note: please do not remove name of the function, it is used in function compare with type 'RequiredError'\n const required = control => {\n return isValidRequired(control.value, allowEmptyStrings) ? null : {\n required: true\n };\n };\n return required;\n}\nfunction isValidRequired(value, allowEmptyStrings) {\n if (value || value === 0 || value === false) return true;\n if (allowEmptyStrings && value === '') return true;\n return false;\n}\nfunction validateStringLength({\n maximumLength = Infinity,\n minimumLength = 0\n} = {}) {\n return control => {\n if (['', null, undefined].indexOf(control.value) > -1) return null;\n const value = String(control.value);\n return getMinLengthError(value, minimumLength) || getMaxLengthError(value, maximumLength);\n };\n}\nfunction getMaxLengthError(value, requiredLength) {\n return value.length > requiredLength ? {\n maxlength: {\n requiredLength\n }\n } : null;\n}\nfunction getMinLengthError(value, requiredLength) {\n return value.length < requiredLength ? {\n minlength: {\n requiredLength\n }\n } : null;\n}\nfunction validateUrl() {\n return control => {\n if (isNullOrEmpty(control.value)) return null;\n return isValidUrl(control.value) ? null : {\n url: true\n };\n };\n}\nfunction isValidUrl(value) {\n if (/^http(s)?:\\/\\/[^/]/.test(value) || /^ftp:\\/\\/[^/]/.test(value)) {\n const a = document.createElement('a');\n a.href = value;\n return !!a.host;\n }\n return false;\n}\nconst onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;\nfunction validateUsername({\n pattern = /.*/\n} = {\n pattern: onlyLetterAndNumberRegex\n}) {\n return control => {\n const isValid = isValidUserName(control.value, pattern);\n return isValid ? null : {\n usernamePattern: {\n actualValue: control.value\n }\n };\n };\n}\nfunction isValidUserName(value, pattern) {\n if (isNullOrEmpty(value)) return true;\n return pattern.test(value);\n}\nconst AbpValidators = {\n creditCard: validateCreditCard,\n emailAddress: () => Validators.email,\n minAge: validateMinAge,\n range: validateRange,\n required: validateRequired,\n stringLength: validateStringLength,\n url: validateUrl,\n username: validateUsername\n};\nlet ApiInterceptor = /*#__PURE__*/(() => {\n class ApiInterceptor {\n constructor(httpWaitService) {\n this.httpWaitService = httpWaitService;\n }\n getAdditionalHeaders(existingHeaders) {\n return existingHeaders || new HttpHeaders();\n }\n intercept(request, next) {\n this.httpWaitService.addRequest(request);\n return next.handle(request).pipe(finalize(() => this.httpWaitService.deleteRequest(request)));\n }\n }\n ApiInterceptor.ɵfac = function ApiInterceptor_Factory(t) {\n return new (t || ApiInterceptor)(i0.ɵɵinject(HttpWaitService));\n };\n ApiInterceptor.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ApiInterceptor,\n factory: ApiInterceptor.ɵfac,\n providedIn: 'root'\n });\n return ApiInterceptor;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// export * from './lib/handlers';\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { APP_INIT_ERROR_HANDLERS, AbpApiDefinitionService, AbpApplicationConfigurationService, AbpApplicationLocalizationService, AbpLocalStorageService, AbpTenantService, AbpValidators, AbstractNavTreeService, AbstractNgModelComponent, AbstractTreeService, ApiInterceptor, AuditedEntityDto, AuditedEntityWithUserDto, AuthGuard, AuthService, AutofocusDirective, BaseCoreModule, BaseTreeNode, CHECK_AUTHENTICATION_STATE_FN_KEY, CONTAINER_STRATEGY, CONTENT_SECURITY_STRATEGY, CONTENT_STRATEGY, CONTEXT_STRATEGY, COOKIE_LANGUAGE_KEY, CORE_OPTIONS, CROSS_ORIGIN_STRATEGY, ClearContainerStrategy, ComponentContextStrategy, ComponentProjectionStrategy, ConfigStateService, ContainerStrategy, ContentProjectionService, ContentSecurityStrategy, ContentStrategy, ContextStrategy, CoreModule, CreationAuditedEntityDto, CreationAuditedEntityWithUserDto, CrossOriginStrategy, DOM_STRATEGY, DefaultQueueManager, DomInsertionService, DomStrategy, DynamicLayoutComponent, EntityDto, EnvironmentService, ExtensibleAuditedEntityDto, ExtensibleAuditedEntityWithUserDto, ExtensibleCreationAuditedEntityDto, ExtensibleCreationAuditedEntityWithUserDto, ExtensibleEntityDto, ExtensibleFullAuditedEntityDto, ExtensibleFullAuditedEntityWithUserDto, ExtensibleLimitedResultRequestDto, ExtensibleObject, ExtensiblePagedAndSortedResultRequestDto, ExtensiblePagedResultRequestDto, ExternalHttpClient, ForDirective, FormSubmitDirective, FullAuditedEntityDto, FullAuditedEntityWithUserDto, HttpErrorReporterService, HttpWaitService, INCUDE_LOCALIZATION_RESOURCES_TOKEN, INJECTOR_PIPE_DATA_TOKEN, IS_EXTERNAL_REQUEST, InitDirective, InputEventDebounceDirective, InsertIntoContainerStrategy, InternalStore, LIST_QUERY_DEBOUNCE_TIME, LOADER_DELAY, LOADING_STRATEGY, LOCALIZATIONS, LazyLoadService, LazyModuleFactory, LimitedResultRequestDto, ListResultDto, ListService, LoadingStrategy, LocalizationModule, LocalizationPipe, LocalizationService, LooseContentSecurityStrategy, MultiTenancyService, NAVIGATE_TO_MANAGE_PROFILE, NavigationEvent, NoContentSecurityStrategy, NoContextStrategy, NoCrossOriginStrategy, OTHERS_GROUP, index as ObjectExtending, PIPE_TO_LOGIN_FN_KEY, PROJECTION_STRATEGY, PagedAndSortedResultRequestDto, PagedResultDto, PagedResultRequestDto, PermissionDirective, PermissionGuard, PermissionService, ProjectionStrategy, QUEUE_MANAGER, ReplaceableComponentsService, ReplaceableRouteContainerComponent, ReplaceableTemplateDirective, ResourceWaitService, RestService, RootComponentProjectionStrategy, RootCoreModule, RouterEvents, RouterOutletComponent, RouterWaitService, RoutesService, SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY, SafeHtmlPipe, ScriptContentStrategy, ScriptLoadingStrategy, SessionStateService, ShortDatePipe, ShortDateTimePipe, ShortTimePipe, SortPipe, StopPropagationDirective, StyleContentStrategy, StyleLoadingStrategy, SubscriptionService, TENANT_KEY, TemplateContextStrategy, TemplateProjectionStrategy, ToInjectorPipe, TrackByService, WebHttpUrlEncodingCodec, checkHasProp, coreOptionsFactory, createGroupMap, createLocalizationPipeKeyGenerator, createLocalizer, createLocalizerWithFallback, createMapFromList, createTokenParser, createTreeFromList, createTreeNodeFilterCreator, deepMerge, differentLocales, downloadBlob, escapeHtmlChars, exists, featuresFactory, findRoute, fromLazyLoad, generateHash, generatePassword, getInitialData, getLocaleDirection, getPathName, getRemoteEnv, getRoutePath, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, interpolate, isArray, isNode, isNullOrEmpty, isNullOrUndefined, isNumber, isObject, isObjectAndNotArray, isObjectAndNotArrayNotNode, isUndefinedOrEmptyString, localeInitializer, localizationContributor, localizations$, mapEnumToOptions, noop, parseTenantFromUrl, pushValueTo, reloadRoute, trackBy, trackByDeep, uuid, validateCreditCard, validateMinAge, validateRange, validateRequired, validateStringLength, validateUrl };\n"],"mappings":"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,WAAY,MACZ,cAAe,MACf,GAAI,KACJ,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,MACV,QAAS,KACT,SAAU,MACV,SAAU,MACV,SAAU,MACV,GAAI,KACJ,QAAS,KACT,SAAU,MACV,QAAS,KACT,SAAU,MACV,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,MACV,QAAS,KACT,aAAc,UACd,QAAS,KACT,QAAS,KACT,SAAU,MACV,QAAS,KACT,SAAU,KACV,QAAS,KACT,SAAU,MACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,GAAI,KACJ,QAAS,KACT,SAAU,MACV,QAAS,KACT,SAAU,MACV,QAAS,KACT,UAAW,KACX,aAAc,QACd,aAAc,QACd,aAAc,KACd,SAAU,MACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,MACV,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,IAAK,KACL,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,GAAI,KACJ,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,QAAS,KACT,SAAU,MACV,SAAU,MACV,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,QAAS,KACT,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,QAAS,KACT,QAAS,KACT,SAAU,MACV,QAAS,KACT,SAAU,MACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,MACV,GAAI,KACJ,QAAS,KACT,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,SAAU,MACV,SAAU,MACV,SAAU,MACV,UAAW,KACX,aAAc,KACd,aAAc,KACd,QAAS,KACT,QAAS,KACT,GAAI,KACJ,SAAU,KACV,SAAU,MACV,QAAS,KACT,QAAS,KACT,SAAU,MACV,QAAS,KACT,QAAS,KACT,SAAU,MACV,QAAS,KACT,QAAS,KACT,SAAU,MACV,SAAU,MACV,QAAS,KACT,SAAU,MACV,SAAU,MACV,SAAU,MACV,QAAS,KACT,SAAU,MACV,SAAU,MACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,UAAW,KACX,QAAS,KACT,UAAW,KACX,aAAc,KACd,aAAc,KACd,IAAK,KACL,SAAU,KACV,IAAK,KACL,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,MACV,QAAS,KACT,SAAU,MACV,SAAU,MACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,MACV,QAAS,KACT,SAAU,MACV,GAAI,KACJ,IAAK,KACL,SAAU,KACV,GAAI,KACJ,QAAS,KACT,IAAK,KACL,SAAU,KACV,SAAU,MACV,SAAU,MACV,GAAI,KACJ,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,UACd,QAAS,KACT,IAAK,KACL,UAAW,KACX,QAAS,KACT,UAAW,MACX,IAAK,KACL,SAAU,KACV,QAAS,KACT,QAAS,KACT,IAAK,KACL,WAAY,KACZ,cAAe,KACf,IAAK,KACL,SAAU,KACV,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,MACV,QAAS,KACT,QAAS,KACT,SAAU,MACV,GAAI,KACJ,QAAS,KACT,SAAU,MACV,SAAU,MACV,SAAU,KACV,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,QAAS,KACT,SAAU,MACV,SAAU,MACV,QAAS,KACT,cAAe,WACf,cAAe,WACf,QAAS,KACT,QAAS,KACT,QAAS,KACT,IAAK,KACL,SAAU,KACV,SAAU,KACV,IAAK,KACL,SAAU,KACV,SAAU,KACV,SAAU,KACV,IAAK,KACL,SAAU,KACV,UAAW,KACX,aAAc,KACd,QAAS,KACT,QAAS,KACT,aAAc,UACd,aAAc,UACd,GAAI,KACJ,QAAS,KACT,QAAS,KACT,IAAK,KACL,SAAU,KACV,GAAI,KACJ,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,IAAK,KACL,SAAU,KACV,QAAS,KACT,QAAS,KACT,SAAU,MACV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","names":["collectionCompare","compare","value1","value2","compareArrays","compareObjects","compareNativeSubtypes","len","i","keys1","key1","collectionClone","clone","obj","result","type","value","kv","getRegExpFlags","key","regExp","flags","AuthGuard","t","ɵɵdefineInjectable","AuthService","params","of","queryParams","grantType","parameters","headers","LOCALIZATIONS","InjectionToken","localizationContributor","localizations","localizations$","BehaviorSubject","CORE_OPTIONS","coreOptionsFactory","_a","options","__objRest","__spreadValues","createLocalizer","localization","resourceName","key","defaultValue","resource","createLocalizerWithFallback","findLocalization","createLocalizationFinder","resourceNames","keys","localized","createLocalizationFinder","localization","localize","createLocalizer","resourceNames","keys","resourceCount","keyCount","i","resourceName","j","key","localized","createTokenParser","format","str","tokens","regex","_","token","acc","v","interpolate","text","params","match","digit","IS_EXTERNAL_REQUEST","HttpContextToken","_ExternalHttpClient_instances","_ExternalHttpClient_setPlaceholderContext","ExternalHttpClient","HttpClient","first","url","options","__classPrivateFieldGet","optionsOrRequest","HttpContext","ɵExternalHttpClient_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineInjectable","noop","isUndefinedOrEmptyString","value","isNullOrUndefined","obj","exists","obj","isNullOrUndefined","isObject","isArray","isObjectAndNotArray","isNode","isObjectAndNotArrayNotNode","checkHasProp","object","key","deepMerge","target","source","deepMergeRecursively","keysOfTarget","keysOfSource","retVal","InternalStore","initialState","BehaviorSubject","Subject","selector","compareFn","collectionCompare","map","distinctUntilChanged","filterFn","x","filter","state","patchedState","__spreadValues","mapToApiUrl","apis","mapToIssuer","issuer","EnvironmentService","environment","t","ɵɵdefineInjectable","HttpErrorReporterService","error","RestService","options","http","externalHttp","httpErrorReporter","apiName","err","throwError","request","config","api","_a","method","params","__objRest","observe","skipHandleError","url","catchError","isExternal","encoder","filteredParams","acc","value","isUndefinedOrEmptyString","HttpParams","ɵɵinject","CORE_OPTIONS","HttpClient","ExternalHttpClient","AbpApplicationConfigurationService","restService","AbpApplicationLocalizationService","input","INCUDE_LOCALIZATION_RESOURCES_TOKEN","InjectionToken","ConfigStateService","abpConfigService","abpApplicationLocalizationService","includeLocalizationResources","switchMap","appState","res","result","__spreadProps","cultureName","take","lang","tap","keys","splitKeys","val","features","keyword","settings","globalFeatures","f","AbpLocalStorageService","index","SessionStateService","configState","localStorageService","session","appLanguage","tenant","language","LocalizationService","sessionState","injector","otherInstance","localizations$","legacyResources$","remoteLocalizations$","currentLanguage$","uiLocalizations$","combineLatest","currentLang","localizations","legacy","resource","local","remote","combineLegacyandNewResources","entry","resourceName","remoteTexts","localizationMap","loc","cultureMap","from","locale","registerLocaleFn","module","registerLocaleData","interpolateParams","defaultValue","createLocalizer","localize","localization","resourceNames","createLocalizerWithFallback","localizeWithFallback","warn","message","isDevMode","sourceName","sourceKey","interpolate","Injector","recursivelyMergeBaseResources","baseResourceName","item","baseResource","baseItem","texts","mergeResourcesWithBaseResource","newValue","mergedResource","APP_INIT_ERROR_HANDLERS","InjectionToken","COOKIE_LANGUAGE_KEY","LIST_QUERY_DEBOUNCE_TIME","LOADER_DELAY","NAVIGATE_TO_MANAGE_PROFILE","QUEUE_MANAGER","TENANT_KEY","PIPE_TO_LOGIN_FN_KEY","SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY","CHECK_AUTHENTICATION_STATE_FN_KEY","OTHERS_GROUP","pushValueTo","array","element","BaseTreeNode","_BaseTreeNode","props","createTreeFromList","list","keySelector","parentKeySelector","valueMapper","map","createMapFromList","tree","row","id","parentId","node","parent","createGroupMap","list","othersGroupKey","isArray","node","mapGroup","group","items","PermissionService","configState","key","map","grantedPolicies","policies","item","orRegexp","andRegexp","keys","k","applicationConfiguration","t","ɵɵinject","ConfigStateService","ɵɵdefineInjectable","AbstractTreeService","BehaviorSubject","createTreeFromList","BaseTreeNode","setOrMap","set","acc","childSet","children","flatItems","visibleItems","pushValueTo","predicate","tree","identifier","props","index","__spreadValues","identifiers","id","setToRemove","params","searchKeys","AbstractNavTreeService","injector","a","b","state","OTHERS_GROUP","requiredPolicy","child","Injector","RoutesService","visible","ɵRoutesService_BaseFactory","ɵɵgetInheritedFactory","differentLocales","RoutesHandler","routes","router","path","data","routesFlatten","flatRoutes","__spreadValues","t","ɵɵinject","RoutesService","Router","ɵɵdefineInjectable","parent","acc","route","_a","__spreadProps","children","current","__objRest","LocalizationPipe","localization","value","interpolateParams","params","val","ɵɵdirectiveInject","LocalizationService","ɵɵdefinePipe","LocalizationModule","ɵɵdefineNgModule","ɵɵdefineInjector","INJECTOR_PIPE_DATA_TOKEN","InjectionToken","setLanguageToCookie","injector","sessionState","SessionStateService","document","DOCUMENT","cookieLanguageKey","COOKIE_LANGUAGE_KEY","language","cookieValue","CookieLanguageProvider","APP_INITIALIZER","Injector","LocaleId","localizationService","currentLang","checkHasProp","differentLocales","LocaleProvider","LOCALE_ID","LocalizationService","timezoneOffset","getRemoteEnv","environment","environmentService","EnvironmentService","remoteEnv","headers","method","url","http","HttpClient","httpErrorReporter","HttpErrorReporterService","catchError","err","of","tap","env","mergeEnvironments","local","remote","config","deepMerge","AbpTenantService","restService","id","name","t","ɵɵinject","RestService","ɵɵdefineInjectable","MultiTenancyService","tenantService","configStateService","tenantKey","tenant","map","_","tenantName","switchMap","tenantId","ConfigStateService","TENANT_KEY","tenancyPlaceholder","getCurrentTenancyName","appBaseUrl","parseTokens","createTokenParser","token","getCurrentTenancyNameFromUrl","parseTenantFromUrl","__async","multiTenancyService","baseUrl","tenancyName","hideTenantBox","setDomainTenant","setEnvironmentWithDomainTenant","replaceTenantNameWithinEnvironment","tenantIdFromQueryParams","placeholder","collectionClone","api","key","getInitialData","configState","options","CORE_OPTIONS","authService","AuthService","checkAuthenticationState","CHECK_AUTHENTICATION_STATE_FN_KEY","noop","result$","currentTenant","error","appInitErrorHandlers","APP_INIT_ERROR_HANDLERS","func","throwError","lastValueFrom","localeInitializer","registerLocaleFn","lang","resolve","reject","module","registerLocaleData","isNumber","value","mapEnumToOptions","_enum","options","member","getPathName","url","pathname","DefaultQueueManager","interval","stackSize","fn","HttpWaitService","injector","InternalStore","Subject","LOADER_DELAY","requests","map","switchMap","condition","of","timer","mapTo","takeUntil","tap","request","r","filteredRequests","f","method","url","filteredRequest","getPathName","endpoint","t","ɵɵinject","Injector","ɵɵdefineInjectable","IncludeLocalizationResourcesProvider","INCUDE_LOCALIZATION_RESOURCES_TOKEN","BaseCoreModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","LocalizationPipe","CommonModule","HttpClientModule","FormsModule","ReactiveFormsModule","RouterModule","LocalizationModule","RootCoreModule","HttpClientXsrfModule","CoreModule","options","LocaleProvider","CookieLanguageProvider","CORE_OPTIONS","coreOptionsFactory","APP_INITIALIZER","Injector","getInitialData","localeInitializer","LocalizationService","noop","RoutesHandler","TENANT_KEY","LOCALIZATIONS","localizationContributor","QUEUE_MANAGER","DefaultQueueManager","OTHERS_GROUP","ApiInterceptor","httpWaitService","existingHeaders","HttpHeaders","request","next","finalize","t","ɵɵinject","HttpWaitService","ɵɵdefineInjectable"],"x_google_ignoreList":[0,1,2]}