@geexcode/geex-angular 0.0.39 → 0.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -0
- package/dist/README.md +108 -0
- package/dist/esbuild/gql-redirect.plugin.js +399 -261
- package/dist/fesm2022/geexcode-geex-angular.mjs +3111 -0
- package/dist/fesm2022/geexcode-geex-angular.mjs.map +1 -0
- package/dist/index.d.ts +994 -127
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -467
- package/dist/index.mjs +1 -420
- package/dist/rison/rison.js +553 -0
- package/dist/src/esbuild/gql-redirect.plugin.js +399 -0
- package/dist/src/rison/rison.js +553 -0
- package/package.json +87 -17
- package/dist/chunk-63O7VUAZ.mjs +0 -65
- package/dist/chunk-EBO3CZXG.mjs +0 -15
- package/dist/esbuild/gql-redirect.plugin.d.mts +0 -37
- package/dist/esbuild/gql-redirect.plugin.d.ts +0 -37
- package/dist/esbuild/gql-redirect.plugin.mjs +0 -269
- package/dist/index.d.mts +0 -148
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geexcode-geex-angular.mjs","sources":["../../src/guarded-signal.ts","../../src/modules.ts","../../src/geex.ts","../../src/module-contribution.ts","../../src/provide-geex.ts","../../src/provide-geex-common.ts","../../src/extensions/clear-history.extension.ts","../../src/http/tokens.ts","../../src/http/geex-http.interceptor.ts","../../src/provide-geex-apollo.ts","../../src/startup/tokens.ts","../../src/debugger-blocker.tokens.ts","../../src/debugger-blocker.service.ts","../../src/menu-contribution.ts","../../src/delon/tokens.ts","../../src/i18n/tokens.ts","../../src/settings-setting-names.ts","../../src/tokens/identity.tokens.ts","../../src/startup/geex-startup.service.ts","../../src/startup/provide-geex-startup.ts","../../src/i18n/merge-i18n-packs.ts","../../src/i18n/geex-translate-loader.ts","../../src/i18n/geex-i18n.service.ts","../../src/i18n/geex-i18n-dictionary.ts","../../src/i18n/provide-geex-i18n.ts","../../src/auth/tokens.ts","../../src/auth/logout.ts","../../src/environment-overrides.ts","../../src/http/provide-geex-http.ts","../../src/delon/base/business.component.base.ts","../../src/rison/rison.ts","../../src/delon/base/routed.component.base.ts","../../src/delon/base/routed-list.component.base.ts","../../src/delon/base/routed-edit.component.base.ts","../../src/delon/base/modal.component.base.ts","../../src/delon/base/tree-table.component.base.ts","../../src/delon/router/geex-router.ts","../../src/delon/router/geex-reuse-tab.strategy.ts","../../src/delon/layout/list-page-layout.component.ts","../../src/delon/provide-geex-delon.ts","../../src/extensions/array.extension.ts","../../src/extensions/string.extension.ts","../../src/extensions/signal.extension.ts","../../src/extensions/rxjs.extension.ts","../../src/extensions/angular.extension.ts","../../src/extensions/ng-alain.extension.ts","../../src/extensions/misc.extension.ts","../../src/extensions/file.extension.ts","../../src/extensions/index.ts","../../src/tokens/guard.tokens.ts","../../src/tokens/exception.tokens.ts","../../src/bind-geex-global.ts","../../src/geexcode-geex-angular.ts"],"sourcesContent":["import type { Signal, WritableSignal } from \"@angular/core\";\r\n\r\nexport function guardedSignal<T>(\r\n innerSignal: WritableSignal<T>,\r\n isInitialized: () => boolean,\r\n): WritableSignal<T>;\r\nexport function guardedSignal<T>(\r\n innerSignal: Signal<T>,\r\n isInitialized: () => boolean,\r\n): Signal<T>;\r\nexport function guardedSignal<T>(\r\n innerSignal: Signal<T> | WritableSignal<T>,\r\n isInitialized: () => boolean,\r\n): Signal<T> | WritableSignal<T> {\r\n const guard = (() => {\r\n if (!isInitialized()) {\r\n throw new Error(`GuardedSignal not initialized. isInitialized: ${isInitialized.toString()}`);\r\n }\r\n return innerSignal();\r\n }) as WritableSignal<T>;\r\n\r\n if (\"set\" in innerSignal) {\r\n guard.set = innerSignal.set.bind(innerSignal);\r\n guard.update = innerSignal.update.bind(innerSignal);\r\n }\r\n if (\"asReadonly\" in innerSignal) {\r\n guard.asReadonly = innerSignal.asReadonly.bind(innerSignal);\r\n }\r\n\r\n return guard;\r\n}\r\n","import { Injector, Signal, WritableSignal, signal } from \"@angular/core\";\nimport { fromEvent } from \"rxjs\";\nimport { debounceTime, switchMap } from \"rxjs/operators\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport { guardedSignal } from \"./guarded-signal\";\n\nexport const ExtensionModule: Record<string, unknown> = {};\n\nexport type ExtensionModule = typeof ExtensionModule;\n\nexport type GeexModule<TExtension = any> = {\n init: (force?: boolean) => Promise<unknown>;\n} & TExtension;\n\nexport interface UiModule extends GeexModule<{\n fullScreen: WritableSignal<boolean>;\n isMobile: Signal<boolean | undefined>;\n activeRoutedComponent?: unknown;\n}> {}\n\nexport interface GeexModuleMap {\n ui: UiModule;\n [name: string]: GeexModule<any>;\n}\n\nexport type GeexModules<TExtensionModules extends Record<string, GeexModule> = {}> = {\n init: (force?: boolean) => Promise<{ [K in keyof (GeexModuleMap & TExtensionModules)]: unknown }>;\n} & GeexModuleMap & TExtensionModules;\n\nexport function createUiModule(_injector: Injector): UiModule {\n const _fullScreenSignal = signal<boolean>(false);\n const _isMobile = toSignal(\n fromEvent(window, \"resize\").pipe(\n debounceTime(200),\n switchMap(async () => window.innerHeight / window.innerWidth >= 1.5),\n ),\n );\n let _initialized = false;\n let _initPromise: Promise<void> | null = null;\n const module = {\n fullScreen: guardedSignal(_fullScreenSignal, () => _initialized),\n isMobile: guardedSignal(_isMobile as Signal<boolean | undefined>, () => _initialized),\n activeRoutedComponent: undefined,\n init: (force = false) => {\n if (force) {\n _initPromise = null;\n _initialized = false;\n }\n if (!_initPromise) {\n _initPromise = (async () => {\n _initialized = true;\n })();\n }\n return _initPromise;\n },\n };\n return module as unknown as UiModule;\n}\n","import { InjectionToken, Injector, runInInjectionContext } from \"@angular/core\";\nimport type { GeexModuleContribution } from \"./module-contribution\";\nimport type { GeexModule } from \"./modules\";\nimport type { GeexModules } from \"./modules\";\nimport { createUiModule } from \"./modules\";\n\nexport type GeexOverrides<TExtensionModules extends Record<string, GeexModule> = Record<string, GeexModule>> = Partial<\n Omit<GeexModules<TExtensionModules>, \"init\">\n>;\n\nexport type GeexExtensions<TExtensionModules extends Record<string, GeexModule> = Record<string, GeexModule>> =\n Partial<TExtensionModules>;\n\nexport let geex: GeexModules;\nexport let Geex = new InjectionToken<GeexModules>(\"Geex\");\n\nexport function configGeex<TExtensionModules extends Record<string, GeexModule> = Record<string, never>>(\n injector: Injector,\n overrides: GeexOverrides<TExtensionModules> = {} as GeexOverrides<TExtensionModules>,\n contributions: readonly GeexModuleContribution[] = [],\n) {\n runInInjectionContext(injector, () => {\n const modules = {\n ui: createUiModule(injector),\n } as GeexModules<TExtensionModules>;\n const moduleRecord = modules as unknown as Record<string, GeexModule>;\n\n for (const contribution of contributions) {\n const contributedModules = contribution.createModules({\n injector,\n modules,\n });\n for (const [name, module] of Object.entries(contributedModules)) {\n if (name === \"init\" || name in modules) {\n throw new Error(`Geex module \"${name}\" is already registered.`);\n }\n moduleRecord[name] = module;\n }\n }\n\n Object.assign(modules, overrides);\n\n let _initPromise: Promise<{ [K in keyof GeexModules<TExtensionModules>]: unknown }> | null = null;\n modules.init ??= (force = false) => {\n if (force) {\n _initPromise = null;\n }\n if (!_initPromise) {\n _initPromise = (async () => {\n const entries = Object.entries(modules).filter(([key]) => key !== \"init\");\n return Object.fromEntries(\n await Promise.all(\n entries.map(async ([key, mod]) => {\n const maybeInit = (mod as GeexModule).init;\n try {\n return [key, await maybeInit(force)];\n } catch (err) {\n console.error(err);\n return [key, null];\n }\n }),\n ),\n ) as { [K in keyof GeexModules<TExtensionModules>]: unknown };\n })();\n }\n return _initPromise;\n };\n\n geex = modules;\n });\n}\n","import { EnvironmentProviders, InjectionToken, Injector, makeEnvironmentProviders } from \"@angular/core\";\r\nimport type { GeexModule } from \"./modules\";\r\n\r\nexport interface GeexModuleContributionContext {\r\n readonly injector: Injector;\r\n readonly modules: Readonly<Record<string, GeexModule>>;\r\n}\r\n\r\nexport interface GeexModuleContribution {\r\n readonly createModules: (context: GeexModuleContributionContext) => Readonly<Record<string, GeexModule>>;\r\n}\r\n\r\nexport const GEEX_MODULE_CONTRIBUTIONS = new InjectionToken<readonly GeexModuleContribution[]>(\r\n \"GEEX_MODULE_CONTRIBUTIONS\",\r\n);\r\n\r\nexport function provideGeexModuleContribution(contribution: GeexModuleContribution): EnvironmentProviders {\r\n return makeEnvironmentProviders([\r\n {\r\n provide: GEEX_MODULE_CONTRIBUTIONS,\r\n multi: true,\r\n useValue: contribution,\r\n },\r\n ]);\r\n}\r\n","import { inject, Injector, Provider } from \"@angular/core\";\r\nimport { configGeex, GeexOverrides, Geex, geex } from \"./geex\";\r\nimport { GEEX_MODULE_CONTRIBUTIONS } from \"./module-contribution\";\r\nimport { GeexModule, GeexModules } from \"./modules\";\r\n\r\nexport function provideGeex<TExtensionModules extends Record<string, GeexModule> = {}>(\r\n overrides: Partial<GeexModules> = {} as Partial<GeexModules>,\r\n extensions: TExtensionModules = {} as TExtensionModules,\r\n): Provider[] {\r\n return [\r\n {\r\n provide: Geex,\r\n useFactory: (injector: Injector) => {\r\n const contributions = inject(GEEX_MODULE_CONTRIBUTIONS, { optional: true }) ?? [];\r\n const mergedModules = {\r\n ...(extensions as Record<string, GeexModule>),\r\n ...(overrides as unknown as Record<string, GeexModule>),\r\n } as GeexOverrides<TExtensionModules>;\r\n\r\n configGeex<TExtensionModules>(injector, mergedModules, contributions);\r\n return geex;\r\n },\r\n deps: [Injector],\r\n },\r\n ];\r\n}\r\n","import { Provider } from \"@angular/core\";\r\nimport { provideGeex } from \"./provide-geex\";\r\nimport { GeexModule, GeexModules } from \"./modules\";\r\n\r\n/**\r\n * Core meta-provide aligned with backend Geex.Common.\r\n * Installs geex signal modules. Delon page bases are opt-in via `provideGeexDelonBase()`.\r\n * Does not install admin business UI pages; use `geex add <name>` for source modules.\r\n */\r\nexport function provideGeexCommon<TExtensionModules extends Record<string, GeexModule> = {}>(\r\n overrides: Partial<GeexModules> = {} as Partial<GeexModules>,\r\n extensions: TExtensionModules = {} as TExtensionModules,\r\n): Provider[] {\r\n return provideGeex(overrides, extensions);\r\n}\r\n","function clearHistory() {\r\n history.pushState(null, \"\", location.href);\r\n window.onpopstate = function () {\r\n history.go(1);\r\n };\r\n}\r\n\r\nwindow.clearHistory = clearHistory;\r\n\r\ndeclare global {\r\n interface Window {\r\n clearHistory(): void;\r\n }\r\n function clearHistory(): void;\r\n}\r\n\r\nexport {};\r\n","import { HttpContextToken } from \"@angular/common/http\";\r\nimport { InjectionToken } from \"@angular/core\";\r\nimport \"../extensions/clear-history.extension\";\r\n\r\n/** Mark HTTP / GraphQL ops that should not show error UI. */\r\nexport const SILENT_REQUEST = new HttpContextToken<boolean>(() => false);\r\n\r\nexport const GEEX_DEFAULT_HTTP_STATUS_MESSAGES: { [key: number]: string } = {\r\n 200: \"服务器成功返回请求的数据。\",\r\n 201: \"新建或修改数据成功。\",\r\n 202: \"一个请求已经进入后台排队(异步任务)。\",\r\n 204: \"删除数据成功。\",\r\n 400: \"发出的请求有错误,服务器拒绝处理。\",\r\n 401: \"用户没有权限(令牌、用户名、密码错误)。\",\r\n 403: \"当前登录的用户没有对应的权限。\",\r\n 404: \"请求针对的记录不存在。\",\r\n 406: \"请求的格式不受支持。\",\r\n 410: \"请求的资源已被永久删除。\",\r\n 422: \"当创建一个对象时,发生一个验证错误。\",\r\n 500: \"服务器发生错误,如有疑问,请联系管理员。\",\r\n 502: \"网关错误。\",\r\n 503: \"服务不可用,服务器暂时过载或维护。\",\r\n 504: \"网关超时。\",\r\n};\r\n\r\n/** Override status → message map (defaults to GEEX_DEFAULT_HTTP_STATUS_MESSAGES). */\r\nexport const GEEX_HTTP_STATUS_MESSAGES = new InjectionToken<{ [key: number]: string }>(\r\n \"GEEX_HTTP_STATUS_MESSAGES\",\r\n { providedIn: \"root\", factory: () => GEEX_DEFAULT_HTTP_STATUS_MESSAGES },\r\n);\r\n\r\n/** Login route after 401 (default `/authentication/login`). */\r\nexport const GEEX_LOGIN_PATH = new InjectionToken<string>(\"GEEX_LOGIN_PATH\", {\r\n providedIn: \"root\",\r\n factory: () => \"/authentication/login\",\r\n});\r\n\r\n/** Called after navigating to login. Defaults to `window.clearHistory`. */\r\nexport const GEEX_AFTER_LOGIN_NAVIGATE = new InjectionToken<() => void>(\"GEEX_AFTER_LOGIN_NAVIGATE\", {\r\n providedIn: \"root\",\r\n factory: () => () => window.clearHistory(),\r\n});\r\n\r\n/** API base URL for relative HTTP requests (host `environment.api.baseUrl`). */\r\nexport const GEEX_API_BASE_URL = new InjectionToken<string>(\"GEEX_API_BASE_URL\");\r\n","import {\r\n HttpContext,\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpHeaders,\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpResponseBase,\r\n} from \"@angular/common/http\";\r\nimport { Injectable, Injector, inject } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ALAIN_I18N_TOKEN } from \"@delon/theme\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport { NzModalService } from \"ng-zorro-antd/modal\";\r\nimport { NzNotificationService } from \"ng-zorro-antd/notification\";\r\nimport { Observable, of, throwError, Subject } from \"rxjs\";\r\nimport { catchError, finalize, mergeMap, debounceTime, distinctUntilChanged, switchMap, share } from \"rxjs/operators\";\r\n\r\nimport { geex } from \"../geex\";\r\nimport {\r\n GEEX_AFTER_LOGIN_NAVIGATE,\r\n GEEX_API_BASE_URL,\r\n GEEX_HTTP_STATUS_MESSAGES,\r\n GEEX_LOGIN_PATH,\r\n SILENT_REQUEST,\r\n} from \"./tokens\";\r\n\r\n/**\r\n * Default Geex HTTP interceptor (zh-CN messages, `/authentication/login`, tenant/Bearer headers).\r\n * Override via tokens or protected hooks; host may `extends` or provide callbacks.\r\n */\r\n@Injectable()\r\nexport class GeexHttpInterceptor implements HttpInterceptor {\r\n protected injector = inject(Injector);\r\n protected oauthService = inject(OAuthService);\r\n protected modalSrv = inject(NzModalService);\r\n protected statusMessages = inject(GEEX_HTTP_STATUS_MESSAGES);\r\n protected loginPath = inject(GEEX_LOGIN_PATH);\r\n protected afterLoginNavigate = inject(GEEX_AFTER_LOGIN_NAVIGATE);\r\n protected apiBaseUrl = inject(GEEX_API_BASE_URL, { optional: true }) ?? \"\";\r\n\r\n private loginTrigger$ = new Subject<void>();\r\n private loginModal$: Observable<void>;\r\n\r\n constructor() {\r\n this.loginModal$ = this.loginTrigger$.pipe(\r\n debounceTime(100),\r\n distinctUntilChanged(),\r\n switchMap(() => {\r\n return new Observable<void>(subscriber => {\r\n const options = this.buildLoginConfirmOptions();\r\n const modal = this.modalSrv.confirm({\r\n ...options,\r\n nzOnOk: () => {\r\n this.goTo(this.loginPath);\r\n subscriber.next();\r\n subscriber.complete();\r\n return true;\r\n },\r\n nzOnCancel: () => {\r\n subscriber.next();\r\n subscriber.complete();\r\n return true;\r\n },\r\n nzClosable: true,\r\n });\r\n modal.afterClose.subscribe(() => {\r\n subscriber.next();\r\n subscriber.complete();\r\n });\r\n return () => {\r\n modal?.destroy();\r\n };\r\n });\r\n }),\r\n share(),\r\n );\r\n this.loginModal$.subscribe();\r\n }\r\n\r\n protected get notification(): NzNotificationService {\r\n return this.injector.get(NzNotificationService);\r\n }\r\n\r\n protected buildLoginConfirmOptions(): { nzTitle: string } {\r\n return { nzTitle: \"当前登录会话已失效或超时,是否重新登录?\" };\r\n }\r\n\r\n protected goTo(url: string): void {\r\n this.injector\r\n .get(Router)\r\n .navigateByUrl(url, { skipLocationChange: true })\r\n .then(() => {\r\n this.afterLoginNavigate();\r\n });\r\n }\r\n\r\n protected isSilentRequest(req: HttpRequest<any>): boolean {\r\n return req.context.get(SILENT_REQUEST) === true;\r\n }\r\n\r\n protected shouldAttachTenant(): boolean {\r\n return true;\r\n }\r\n\r\n protected notifyHttpError(status: number, text: string): void {\r\n this.notification.error(`请求错误 ${status}`, text, {\r\n nzKey: status.toString(),\r\n });\r\n }\r\n\r\n protected onUnauthorized(): void {\r\n this.loginTrigger$.next();\r\n }\r\n\r\n protected checkStatus(ev: HttpResponseBase, silent: boolean): void {\r\n if (silent || (ev.status >= 200 && ev.status < 300) || ev.status === 401) {\r\n return;\r\n }\r\n if (ev instanceof HttpErrorResponse) {\r\n const errorText = ev.error?.errors?.[0]?.extensions?.message || this.statusMessages[ev.status];\r\n this.notifyHttpError(ev.status, errorText);\r\n }\r\n }\r\n\r\n /** Status-branch template method; override for custom 200/403/exception routing. */\r\n protected handleHttpStatus(ev: HttpResponseBase, silent: boolean): void {\r\n switch (ev.status) {\r\n case 200:\r\n break;\r\n case 401:\r\n this.onUnauthorized();\r\n break;\r\n case 403:\r\n case 404:\r\n case 500:\r\n break;\r\n default:\r\n if (!silent && ev instanceof HttpErrorResponse) {\r\n console.warn(\r\n \"未可知错误,大部分是由于后端不支持跨域CORS或无效配置引起,请参考 https://ng-alain.com/docs/server 解决跨域问题\",\r\n ev,\r\n );\r\n }\r\n break;\r\n }\r\n }\r\n\r\n protected handleData(ev: HttpResponseBase, _req: HttpRequest<any>, _next: HttpHandler): Observable<any> {\r\n const silent = this.isSilentRequest(_req);\r\n this.checkStatus(ev, silent);\r\n this.handleHttpStatus(ev, silent);\r\n if (ev instanceof HttpErrorResponse) {\r\n return throwError(() => ev) as unknown as Observable<any>;\r\n }\r\n return of(ev);\r\n }\r\n\r\n public buildCommonHeaders(headers?: HttpHeaders): { [name: string]: string } {\r\n const reqHeader: { [name: string]: string } = {};\r\n try {\r\n const lang = this.injector.get(ALAIN_I18N_TOKEN, null)?.currentLang;\r\n if (!headers?.has(\"Accept-Language\") && lang) {\r\n reqHeader[\"Accept-Language\"] = lang;\r\n }\r\n } catch {\r\n /* optional i18n */\r\n }\r\n\r\n try {\r\n const token = this.oauthService.hasValidAccessToken() && this.oauthService.getAccessToken();\r\n if (token && !headers?.has(\"Authorization\")) {\r\n reqHeader[\"Authorization\"] = `Bearer ${token}`;\r\n }\r\n } catch {\r\n /* optional oauth */\r\n }\r\n\r\n if (this.shouldAttachTenant()) {\r\n try {\r\n const tenantCode = geex.multiTenant.current()?.code;\r\n if (tenantCode && !headers?.has(\"__tenant\")) {\r\n reqHeader[\"__tenant\"] = tenantCode;\r\n }\r\n } catch {\r\n /* no tenant module */\r\n }\r\n }\r\n\r\n return reqHeader;\r\n }\r\n\r\n public handleGraphQLErrors(params: {\r\n graphQLErrors?: ReadonlyArray<{\r\n message?: string;\r\n locations?: any;\r\n path?: ReadonlyArray<string | number>;\r\n extensions?: any;\r\n }>;\r\n operation?: any;\r\n response?: { data?: any } | null;\r\n }): void {\r\n const { graphQLErrors, operation, response } = params;\r\n if (!graphQLErrors || graphQLErrors.length === 0) return;\r\n\r\n const context = operation?.getContext?.() ?? {};\r\n if (context.silent === true) {\r\n return;\r\n }\r\n const httpContext = context.httpContext;\r\n if (httpContext instanceof HttpContext && httpContext.get(SILENT_REQUEST) === true) {\r\n return;\r\n }\r\n\r\n const messages = graphQLErrors\r\n .map(err => err?.message)\r\n .filter(m => !!m)\r\n .join(\";\");\r\n\r\n const hasNoData = !response || (response as any).data == null;\r\n if (hasNoData) {\r\n this.notification.error(\"请求错误 200\", messages || \"GraphQL 返回错误\", {\r\n nzKey: \"graphql-200-error\",\r\n });\r\n } else {\r\n this.notification.warning(\"请求警告 200\", messages || \"GraphQL 部分错误\", {\r\n nzKey: \"graphql-200-warn\",\r\n });\r\n }\r\n }\r\n\r\n public handleGraphQLNetworkError(networkError: unknown): void {\r\n if (!networkError) return;\r\n console.error((networkError as any)?.message || \"网络错误, 请稍后重试, 如有疑问, 请联系管理员。\");\r\n }\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n let url = req.url;\r\n if (!url.startsWith(\"https://\") && !url.startsWith(\"http://\") && this.apiBaseUrl) {\r\n url = this.apiBaseUrl + url;\r\n }\r\n\r\n const newReq = req.clone({ url, setHeaders: this.buildCommonHeaders(req.headers) });\r\n return next.handle(newReq).pipe(\r\n mergeMap(ev => {\r\n if (ev instanceof HttpResponseBase) {\r\n return this.handleData(ev, newReq, next);\r\n }\r\n return of(ev);\r\n }),\r\n catchError((err: HttpErrorResponse) => this.handleData(err, newReq, next)),\r\n finalize(() => {}),\r\n );\r\n }\r\n}\r\n","import { HttpContext, HttpContextToken } from \"@angular/common/http\";\nimport { EnvironmentProviders, InjectionToken, Provider, inject, makeEnvironmentProviders } from \"@angular/core\";\nimport { ApolloClient, ApolloLink, CombinedGraphQLErrors, InMemoryCache, type TypePolicies } from \"@apollo/client\";\nimport { ErrorLink } from \"@apollo/client/link/error\";\nimport { GraphQLWsLink } from \"@apollo/client/link/subscriptions\";\nimport { LocalState } from \"@apollo/client/local-state\";\nimport { Apollo, ApolloBase, APOLLO_NAMED_OPTIONS, APOLLO_OPTIONS, NamedOptions } from \"apollo-angular\";\nimport { HttpLink } from \"apollo-angular/http\";\nimport extractFiles from \"extract-files/extractFiles.mjs\";\nimport isExtractableFile from \"extract-files/isExtractableFile.mjs\";\nimport { createClient } from \"graphql-ws\";\nimport json5 from \"json5\";\n\nimport { GeexHttpInterceptor } from \"./http/geex-http.interceptor\";\nimport { SILENT_REQUEST } from \"./http/tokens\";\n\nexport type GeexTypePolicies = TypePolicies | Record<string, unknown>;\nexport type GeexApolloTypePolicyContribution = () => GeexTypePolicies;\n\nexport const GEEX_APOLLO_TYPE_POLICY_CONTRIBUTIONS = new InjectionToken<\n readonly GeexApolloTypePolicyContribution[]\n>(\"GEEX_APOLLO_TYPE_POLICY_CONTRIBUTIONS\");\n\nexport function provideGeexApolloTypePolicies(\n contribution: GeexApolloTypePolicyContribution,\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: GEEX_APOLLO_TYPE_POLICY_CONTRIBUTIONS,\n multi: true,\n useValue: contribution,\n },\n ]);\n}\n\nexport interface GeexApolloCacheOptions {\n possibleTypes?: Record<string, string[]>;\n typePolicies?: GeexTypePolicies;\n /** When true (default), merge with geexDefaultTypePolicies(). */\n includeDefaults?: boolean;\n}\n\nexport interface GeexApolloLinkOptions {\n baseUrl: string;\n httpLinkInstance: ApolloLink;\n extraLinks?: ApolloLink[];\n}\n\nexport interface GeexGraphqlErrorHandler {\n handleGraphQLErrors(params: {\n graphQLErrors?: ReadonlyArray<{ message?: string; extensions?: any }>;\n operation?: any;\n response?: { data?: any } | null;\n }): void;\n handleGraphQLNetworkError(networkError: unknown): void;\n buildCommonHeaders?(): { [name: string]: string };\n}\n\nexport const geexApolloDefaultOptions = {\n query: {\n fetchPolicy: \"network-only\" as const,\n errorPolicy: \"ignore\" as const,\n },\n mutate: {\n fetchPolicy: \"no-cache\" as const,\n errorPolicy: \"ignore\" as const,\n },\n watchQuery: {\n fetchPolicy: \"cache-first\" as const,\n errorPolicy: \"ignore\" as const,\n },\n};\n\n/** Core cache policies. Feature-specific policies are registered by extensions. */\nexport function geexDefaultTypePolicies(): TypePolicies {\n return {\n Setting: {\n keyFields: [\"name\"],\n },\n };\n}\n\nfunction mergeTypePolicies(base: TypePolicies, extras: readonly GeexTypePolicies[]): TypePolicies {\n let merged = base;\n for (const extra of extras) {\n merged = { ...merged, ...(extra as TypePolicies) };\n }\n return merged;\n}\n\nexport function createGeexInMemoryCache(\n options: GeexApolloCacheOptions = {},\n contributions: readonly GeexApolloTypePolicyContribution[] = [],\n): InMemoryCache {\n const includeDefaults = options.includeDefaults !== false;\n const contributedPolicies = contributions.map(contribution => contribution());\n const extras = options.typePolicies\n ? [...contributedPolicies, options.typePolicies]\n : contributedPolicies;\n const policies = includeDefaults\n ? mergeTypePolicies(geexDefaultTypePolicies(), extras)\n : mergeTypePolicies({}, extras);\n return new InMemoryCache({\n typePolicies: policies,\n possibleTypes: options.possibleTypes,\n });\n}\n\nexport function createGeexUriLink(baseUrl: string): ApolloLink {\n return new ApolloLink((operation, forward) => {\n const variables = Object.entries(operation.variables).filter(([, v]) => v != undefined);\n if (variables.length > 0) {\n operation.setContext(() => {\n const encodedParams = variables.map(([k, v]) => `${k}=${json5.stringify(v)}`).join(\"&\");\n return {\n uri: new URL(`/graphql/${operation.operationName}?${encodedParams}`, baseUrl).toString().substring(0, 2047),\n };\n });\n } else {\n operation.setContext(() => ({\n uri: new URL(`/graphql/${operation.operationName}`, baseUrl).toString().substring(0, 2047),\n }));\n }\n return forward(operation);\n });\n}\n\nexport function createGeexHttpApolloOptions(options: GeexApolloLinkOptions & { cache: InMemoryCache }): ApolloClient.Options {\n const uriLink = createGeexUriLink(options.baseUrl);\n const links = [...(options.extraLinks ?? []), uriLink, options.httpLinkInstance];\n return {\n link: ApolloLink.from(links),\n cache: options.cache,\n // Apollo Client 4: `@client` requires an explicit LocalState opt-in.\n localState: new LocalState(),\n defaultOptions: geexApolloDefaultOptions,\n } as unknown as ApolloClient.Options;\n}\n\nexport function isGeexSilentOperation(\n operation: { getContext: () => Record<string, unknown> },\n silentToken: HttpContextToken<boolean> = SILENT_REQUEST,\n): boolean {\n const context = operation.getContext() ?? {};\n if (context[\"silent\"] === true) {\n return true;\n }\n const httpContext = context[\"httpContext\"];\n return httpContext instanceof HttpContext && httpContext.get(silentToken) === true;\n}\n\nexport function createGeexGraphqlErrorLink(handler: GeexGraphqlErrorHandler): ApolloLink {\n return new ErrorLink(({ error, result, operation }) => {\n if (isGeexSilentOperation(operation)) {\n return;\n }\n if (CombinedGraphQLErrors.is(error)) {\n handler.handleGraphQLErrors({\n graphQLErrors: error.errors,\n operation,\n response: result,\n });\n } else if (error) {\n handler.handleGraphQLNetworkError(error);\n }\n });\n}\n\nexport function createGeexSilentContextLink(silentToken: HttpContextToken<boolean> = SILENT_REQUEST): ApolloLink {\n return new ApolloLink((operation, forward) => {\n operation.setContext(context => {\n const prevHttpContext =\n context.httpContext instanceof HttpContext ? context.httpContext : new HttpContext();\n return {\n silent: true,\n httpContext: prevHttpContext.set(silentToken, true),\n };\n });\n return forward(operation);\n });\n}\n\nexport function createGeexWsApolloOptions(options: {\n baseUrl?: string;\n url?: string;\n cache: InMemoryCache;\n connectionParams?: () => Promise<Record<string, string>> | Record<string, string>;\n retryAttempts?: number;\n onOpened?: () => void;\n onError?: (err: unknown) => void;\n}): ApolloClient.Options {\n const url =\n options.url ??\n new URL(\"/graphql\", (options.baseUrl ?? \"\").replace(/^http/, \"ws\")).toString();\n\n const client = createClient({\n url,\n lazy: true,\n retryAttempts: options.retryAttempts ?? 3,\n connectionParams: options.connectionParams,\n on: {\n opened: options.onOpened ?? (() => console.log(\"ws connected.\")),\n error: options.onError ?? ((err: unknown) => console.error(\"ws connect failed.\", err)),\n },\n });\n\n return {\n link: new GraphQLWsLink(client),\n cache: options.cache,\n localState: new LocalState(),\n defaultOptions: geexApolloDefaultOptions,\n } as unknown as ApolloClient.Options;\n}\n\n/**\n * HttpLink with multipart upload support.\n * Uses peer `extract-files` by default; overrides via options.\n */\nexport function createGeexUploadHttpLink(\n httpLink: HttpLink,\n options?: {\n withCredentials?: boolean;\n extractFilesFn?: (body: any, isExtractable: (v: any) => boolean) => any;\n isExtractableFile?: (value: any) => boolean;\n },\n): ApolloLink {\n const extractFilesFn = options?.extractFilesFn ?? extractFiles;\n const isExtractable = options?.isExtractableFile ?? isExtractableFile;\n return httpLink.create({\n withCredentials: options?.withCredentials ?? true,\n extractFiles: body => extractFilesFn(body, isExtractable),\n });\n}\n\nexport const SilentApollo = new InjectionToken<ApolloBase>(\"silent_apollo\");\nexport const GEEX_APOLLO_CACHE = new InjectionToken<InMemoryCache>(\"GEEX_APOLLO_CACHE\");\n\nexport interface ProvideGeexApolloOptions {\n baseUrl: string;\n possibleTypes?: Record<string, string[]>;\n typePolicies?: GeexTypePolicies;\n includeDefaultTypePolicies?: boolean;\n /**\n * Default true: multipart upload via `extract-files`.\n * Ignored when `createHttpLinkInstance` is set.\n */\n enableUpload?: boolean;\n /** Override default HttpLink factory (upload or plain). */\n createHttpLinkInstance?: (httpLink: HttpLink) => ApolloLink;\n errorHandler?: GeexGraphqlErrorHandler;\n}\n\nexport function provideGeexApollo(options: ProvideGeexApolloOptions): Provider[] {\n const createHttp = (httpLink: HttpLink) => {\n if (options.createHttpLinkInstance) {\n return options.createHttpLinkInstance(httpLink);\n }\n if (options.enableUpload === false) {\n return httpLink.create({ withCredentials: true });\n }\n return createGeexUploadHttpLink(httpLink);\n };\n\n return [\n Apollo,\n {\n provide: GEEX_APOLLO_CACHE,\n useFactory: () =>\n createGeexInMemoryCache(\n {\n possibleTypes: options.possibleTypes,\n typePolicies: options.typePolicies,\n includeDefaults: options.includeDefaultTypePolicies !== false,\n },\n inject(GEEX_APOLLO_TYPE_POLICY_CONTRIBUTIONS, { optional: true }) ?? [],\n ),\n },\n {\n provide: APOLLO_OPTIONS,\n useFactory: (cache: InMemoryCache, httpLink: HttpLink, interceptor: GeexHttpInterceptor) => {\n const handler = options.errorHandler ?? interceptor;\n return createGeexHttpApolloOptions({\n baseUrl: options.baseUrl,\n httpLinkInstance: createHttp(httpLink),\n cache,\n extraLinks: [createGeexGraphqlErrorLink(handler)],\n });\n },\n deps: [GEEX_APOLLO_CACHE, HttpLink, GeexHttpInterceptor],\n },\n {\n provide: APOLLO_NAMED_OPTIONS,\n useFactory: (cache: InMemoryCache, httpLink: HttpLink, interceptor: GeexHttpInterceptor): NamedOptions => {\n const handler = options.errorHandler ?? interceptor;\n return {\n subscription: createGeexWsApolloOptions({\n baseUrl: options.baseUrl,\n cache,\n connectionParams: async () => handler.buildCommonHeaders?.() ?? interceptor.buildCommonHeaders(),\n }),\n silent: createGeexHttpApolloOptions({\n baseUrl: options.baseUrl,\n httpLinkInstance: createHttp(httpLink),\n cache,\n extraLinks: [createGeexSilentContextLink()],\n }),\n };\n },\n deps: [GEEX_APOLLO_CACHE, HttpLink, GeexHttpInterceptor],\n },\n {\n provide: SilentApollo,\n useFactory: (apollo: Apollo) => apollo.use(\"silent\"),\n deps: [Apollo],\n },\n ];\n}\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nimport type { GeexSessionTerminatedCopy, GeexStartupOptions } from \"./types\";\r\n\r\nexport const GEEX_STARTUP_OPTIONS = new InjectionToken<GeexStartupOptions>(\"GEEX_STARTUP_OPTIONS\");\r\n\r\nexport const GEEX_EXCEPTION_500_PATH = new InjectionToken<string>(\"GEEX_EXCEPTION_500_PATH\", {\r\n providedIn: \"root\",\r\n factory: () => \"/exception/500\",\r\n});\r\n\r\nexport const GEEX_SESSION_TERMINATED_COPY = new InjectionToken<GeexSessionTerminatedCopy>(\r\n \"GEEX_SESSION_TERMINATED_COPY\",\r\n {\r\n providedIn: \"root\",\r\n factory: () => ({}),\r\n },\r\n);\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\n/** When true, DebuggerBlockerService activates anti-devtools measures. */\r\nexport const GEEX_BLOCK_DEBUGGER = new InjectionToken<boolean>(\"GEEX_BLOCK_DEBUGGER\", {\r\n providedIn: \"root\",\r\n factory: () => false,\r\n});\r\n","import { Injectable, inject } from \"@angular/core\";\r\n\r\nimport { GEEX_BLOCK_DEBUGGER } from \"./debugger-blocker.tokens\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class DebuggerBlockerService {\r\n private readonly enabled = inject(GEEX_BLOCK_DEBUGGER, { optional: true }) ?? false;\r\n\r\n init(): void {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n this.blockDebugger();\r\n this.disableDevToolsShortcuts();\r\n }\r\n\r\n private blockDebugger(): void {\r\n setInterval(() => {\r\n eval(`\r\n if (window.outerHeight - window.innerHeight > 160 || window.outerWidth - window.innerWidth > 160) {\r\n alert(\"Debugger detected! Please close dev tools to continue.\")\r\n location.reload();\r\n }\r\n `);\r\n }, 1000);\r\n }\r\n\r\n private disableDevToolsShortcuts(): void {\r\n document.addEventListener(\r\n \"keydown\",\r\n e => {\r\n if (e.key === \"F12\") {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return;\r\n }\r\n if (e.ctrlKey && e.shiftKey && [\"I\", \"J\", \"C\"].includes(e.key)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n },\r\n true,\r\n );\r\n }\r\n}\r\n","import { InjectionToken, type Provider } from \"@angular/core\";\r\n\r\n/** Minimal menu shape shared by host Delon menus and extension plugins. */\r\nexport interface GeexMenuItem {\r\n text?: string;\r\n link?: string;\r\n icon?: string | object;\r\n group?: boolean;\r\n hideInBreadcrumb?: boolean;\r\n open?: boolean;\r\n children?: GeexMenuItem[];\r\n [key: string]: unknown;\r\n}\r\n\r\nexport interface GeexMenuContributionContext {\r\n id: string;\r\n}\r\n\r\n/**\r\n * Multi-provider token for additive menu contributions.\r\n * Host should merge contributions into app menus with a single MenuService.add([...app, ...extras]).\r\n */\r\nexport interface GeexMenuContribution {\r\n resolve(user: GeexMenuContributionContext): Promise<GeexMenuItem[]>;\r\n}\r\n\r\nexport const GEEX_MENU_CONTRIBUTIONS = new InjectionToken<GeexMenuContribution[]>(\"GEEX_MENU_CONTRIBUTIONS\");\r\n\r\n/** Host-composed default menus (e.g. from module-registry). */\r\nexport const GEEX_DEFAULT_MENUS = new InjectionToken<GeexMenuItem[]>(\"GEEX_DEFAULT_MENUS\", {\r\n providedIn: \"root\",\r\n factory: () => [],\r\n});\r\n\r\nexport function provideGeexMenus(menus: GeexMenuItem[]): Provider[] {\r\n return [{ provide: GEEX_DEFAULT_MENUS, useValue: menus }];\r\n}","import { InjectionToken } from \"@angular/core\";\n\n/**\n * Host-augmentable i18n dictionary shape.\n * Apps should `declare module \"@geexcode/geex-angular\" { interface GeexI18n extends ... {} }`\n * (typically in module-registry) so `inject(GEEX_I18N)` / `BusinessComponentBase.I18N` stay typed.\n */\nexport interface GeexI18n {}\n\n/**\n * Host provides AlainI18NService-compatible instance (e.g. `GeexI18nService`).\n */\nexport const GEEX_I18N_SERVICE = new InjectionToken<unknown>(\"GEEX_I18N_SERVICE\");\n\n/**\n * Host-augmentable AppPermission map / enum object.\n * Apps should augment `GeexAppPermission` from generated `AppPermission`.\n */\nexport interface GeexAppPermission {}\n\n/**\n * Typed kiwi/i18n dictionary (augment `GeexI18n` in the host app).\n */\nexport const GEEX_I18N = new InjectionToken<GeexI18n>(\"GEEX_I18N\");\n\n/**\n * Typed AppPermission enum/map (augment `GeexAppPermission` in the host app).\n */\nexport const GEEX_APP_PERMISSION = new InjectionToken<GeexAppPermission>(\"GEEX_APP_PERMISSION\");\n","import { InjectionToken } from \"@angular/core\";\r\n\r\n/** Per-language ngx-translate dictionaries keyed by locale code (e.g. `zh-cn`). */\r\nexport const GEEX_I18N_PACKS = new InjectionToken<Record<string, Record<string, unknown>>>(\"GEEX_I18N_PACKS\");\r\n\r\n/** Well-known setting names for post-login localization (aligned with SettingDefinition). */\r\nexport const GEEX_LOCALIZATION_DATA_SETTING = \"LocalizationData\";\r\nexport const GEEX_LOCALIZATION_LANGUAGE_SETTING = \"LocalizationLanguage\";\r\n","/** Well-known setting names for post-login app/menu bind (aligned with SettingDefinition). */\r\nexport const GEEX_APP_NAME_SETTING = \"AppAppName\";\r\nexport const GEEX_APP_MENU_SETTING = \"AppAppMenu\";\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const GEEX_SUPER_ADMIN_USER_ID = new InjectionToken<string>(\"GEEX_SUPER_ADMIN_USER_ID\", {\r\n providedIn: \"root\",\r\n factory: () => \"000000000000000000000001\",\r\n});\r\n","import { inject, Injectable, Injector } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { OAuthErrorEvent, OAuthService } from \"angular-oauth2-oidc\";\nimport { NzModalService } from \"ng-zorro-antd/modal\";\nimport { filter, firstValueFrom, interval, map, takeUntil, timer } from \"rxjs\";\n\nimport { ACLService } from \"@delon/acl\";\nimport { Menu, MenuService, SettingsService } from \"@delon/theme\";\nimport { CookieService } from \"@delon/util\";\n\nimport { DebuggerBlockerService } from \"../debugger-blocker.service\";\nimport { Geex } from \"../geex\";\nimport { GEEX_AFTER_LOGIN_NAVIGATE, GEEX_LOGIN_PATH } from \"../http/tokens\";\nimport { GEEX_DEFAULT_MENUS, GEEX_MENU_CONTRIBUTIONS } from \"../menu-contribution\";\nimport { GEEX_I18N_SERVICE } from \"../delon/tokens\";\nimport { GEEX_LOCALIZATION_DATA_SETTING, GEEX_LOCALIZATION_LANGUAGE_SETTING } from \"../i18n/tokens\";\nimport { GEEX_APP_MENU_SETTING, GEEX_APP_NAME_SETTING } from \"../settings-setting-names\";\nimport { GEEX_SUPER_ADMIN_USER_ID } from \"../tokens/identity.tokens\";\nimport type { GeexStartupI18nAdapter } from \"./types\";\nimport { GEEX_EXCEPTION_500_PATH, GEEX_SESSION_TERMINATED_COPY, GEEX_STARTUP_OPTIONS } from \"./tokens\";\n\n/**\n * Single bootstrap entry for app session.\n *\n * Linear flow:\n * 1. configure OAuth\n * 2. if OIDC callback code present → tryLogin (once)\n * 3. geex.init()\n * 4. bind Delon user / ACL / menus\n * 5. start session watch (once)\n *\n * Login pages must not call tryLogin/load for OIDC callbacks.\n * Password / WeChat token handoff uses initCodeFlow → IdP → this bootstrap again.\n */\n@Injectable()\nexport class GeexStartupService {\n private readonly options = inject(GEEX_STARTUP_OPTIONS);\n private readonly injector = inject(Injector);\n private readonly geex = inject(Geex);\n private readonly oAuthService = inject(OAuthService);\n private readonly aclService = inject(ACLService);\n private readonly settingsService = inject(SettingsService);\n private readonly router = inject(Router);\n private readonly modalService = inject(NzModalService);\n private readonly menuService = inject(MenuService);\n private readonly loginPath = inject(GEEX_LOGIN_PATH);\n private readonly afterLoginNavigate = inject(GEEX_AFTER_LOGIN_NAVIGATE);\n private readonly superAdminUserId = inject(GEEX_SUPER_ADMIN_USER_ID);\n private readonly exception500Url = inject(GEEX_EXCEPTION_500_PATH);\n private readonly sessionTerminatedCopy = inject(GEEX_SESSION_TERMINATED_COPY);\n private readonly defaultMenus = inject(GEEX_DEFAULT_MENUS);\n private readonly debuggerBlocker = inject(DebuggerBlockerService);\n\n private bootstrapPromise: Promise<void> | null = null;\n private bootstrapped = false;\n private sessionWatchStarted = false;\n\n /** APP_INITIALIZER entry. Safe to call concurrently; runs the bootstrap pipeline once. */\n async load(): Promise<void> {\n if (this.bootstrapped) {\n return;\n }\n if (this.bootstrapPromise) {\n return this.bootstrapPromise;\n }\n this.bootstrapPromise = this.bootstrap().finally(() => {\n this.bootstrapPromise = null;\n });\n return this.bootstrapPromise;\n }\n\n private async bootstrap(): Promise<void> {\n try {\n this.debuggerBlocker.init();\n this.oAuthService.configure(this.options.oauth.getConfig());\n await this.trySwitchTenant();\n await this.tryAutoOAuthLogin();\n await this.tryOidcCodeCallback();\n this.ensureSessionWatch();\n await this.geex.init();\n await this.bindUiSession();\n this.bootstrapped = true;\n } catch (error) {\n await this.router.navigateByUrl(this.exception500Url);\n console.error(error);\n }\n }\n\n private async tryOidcCodeCallback(): Promise<void> {\n const url = new URL(location.href);\n const code = url.searchParams.get(\"code\");\n if (!code) {\n return;\n }\n const state = url.searchParams.get(\"state\") ?? \"\";\n // WeChat QR callback uses the same ?code= param but is handled on the login page first.\n if (state === \"WechatWeb\" || state.startsWith(\"WechatWeb\")) {\n return;\n }\n // Discovery aligns issuer/jwks before tryLogin (id_token validation). tokenEndpoint alone is not enough.\n try {\n await this.oAuthService.loadDiscoveryDocument();\n } catch (err) {\n console.error(err);\n }\n await this.ensureOAuthTokenEndpoint();\n await this.oAuthService.tryLogin();\n }\n\n /** Fill tokenEndpoint gaps after discovery (or when discovery is unreachable). */\n private async ensureOAuthTokenEndpoint(): Promise<void> {\n if (this.oAuthService.tokenEndpoint) {\n return;\n }\n const issuer = this.oAuthService.issuer?.replace(/\\/?$/, \"/\");\n if (issuer) {\n this.oAuthService.tokenEndpoint = `${issuer}idsvr/token`;\n return;\n }\n throw new Error(\n \"OAuth tokenEndpoint is not configured. Set AuthConfig.tokenEndpoint (e.g. {issuer}/idsvr/token) or make OIDC discovery reachable.\",\n );\n }\n\n private async bindUiSession(): Promise<void> {\n if (!this.oAuthService.hasValidAccessToken()) {\n return;\n }\n const user = await this.resolveAuthUser();\n if (!user) {\n // Token without federateAuthenticate user is not a completed Geex login.\n console.error(\"bindUiSession: access token present but geex.authentication.user() missing after federateAuthenticate\");\n this.oAuthService.logOut(true);\n return;\n }\n this.settingsService.setUser({\n avatar: user.avatarFile?.url,\n id: user.id,\n phoneNumber: user.phoneNumber,\n email: user.email,\n username: user.username,\n roleName: user.roleNames,\n });\n const adminId = this.superAdminUserId;\n if (user.id == adminId) {\n this.aclService.setFull(true);\n } else {\n this.aclService.setRole(user.permissions);\n }\n type SettingRow = { name?: string; value?: unknown };\n const settingsModule = this.geex[\"settings\"] as { settings: () => SettingRow[] } | undefined;\n const settings = settingsModule?.settings?.() ?? [];\n if (!settings.length) {\n return;\n }\n const appName = settings.find(x => x?.name == GEEX_APP_NAME_SETTING)?.value;\n if (appName) {\n this.settingsService.setApp({ name: appName as string });\n }\n let menus = this.defaultMenus.map(menu => ({\n ...menu,\n children: menu.children ? [...menu.children] : menu.children,\n })) as Menu[];\n const settingMenus = settings.find(x => x?.name == GEEX_APP_MENU_SETTING)?.value;\n if (Array.isArray(settingMenus) && settingMenus.length) {\n menus = (settingMenus as Menu[]).map(menu => ({\n ...menu,\n children: menu.children ? [...menu.children] : menu.children,\n }));\n }\n const contributions = this.injector.get(GEEX_MENU_CONTRIBUTIONS, []);\n const contributedGroups: Menu[] = [];\n for (const contribution of contributions) {\n for (const item of (await contribution.resolve(user)) as Menu[]) {\n if (item.group === true) {\n contributedGroups.push(item);\n continue;\n }\n // Leaf items must stay under a group. Delon top-level `group !== false` renders\n // as a non-clickable title without icons; never promote bare leaves to top-level.\n const leaf: Menu = {\n ...item,\n group: false,\n children: Array.isArray(item.children) ? item.children : [],\n };\n const existing = leaf.link ? this.findMenuByLink(menus, leaf.link) : undefined;\n if (existing) {\n Object.assign(existing, leaf, { hide: leaf.hide ?? false, group: false });\n continue;\n }\n const systemConfigGroup = this.findSystemConfigGroup(menus);\n if (systemConfigGroup) {\n systemConfigGroup.children = [...(systemConfigGroup.children ?? []), leaf];\n } else {\n contributedGroups.push({\n group: true,\n hideInBreadcrumb: true,\n open: true,\n text: \"系统及配置\",\n i18n: \"Common.menu.systemConfig\",\n children: [leaf],\n });\n }\n }\n }\n this.menuService.add([...menus, ...contributedGroups]);\n this.menuService.resume();\n const i18n = this.resolveI18nAdapter();\n i18n?.merge(settings.find(x => x?.name == GEEX_LOCALIZATION_DATA_SETTING)?.value as object);\n const backendLang = settings.find(x => x?.name == GEEX_LOCALIZATION_LANGUAGE_SETTING)?.value as string | undefined;\n if (backendLang) {\n this.settingsService.setLayout(\"lang\", backendLang);\n i18n?.use(backendLang);\n } else {\n const cachedLang = this.settingsService.layout.lang as string | undefined;\n if (cachedLang) {\n i18n?.use(cachedLang);\n }\n }\n }\n\n async tryAutoOAuthLogin(): Promise<void> {\n const url = new URL(location.href);\n const autoLogin = url.searchParams.get(\"_autoLogin\");\n if (autoLogin) {\n url.searchParams.delete(\"_autoLogin\");\n this.oAuthService.redirectUri = url.href;\n this.oAuthService.initCodeFlow();\n throw new Error(\"starting auto login\");\n }\n }\n\n private findMenuByLink(menus: Menu[], link: string): Menu | undefined {\n for (const menu of menus) {\n if (menu.link === link) {\n return menu;\n }\n if (menu.children?.length) {\n const found = this.findMenuByLink(menu.children, link);\n if (found) {\n return found;\n }\n }\n }\n return undefined;\n }\n\n private findSystemConfigGroup(menus: Menu[]): Menu | undefined {\n return menus.find(\n m =>\n m.i18n === \"Common.menu.systemConfig\" ||\n m.i18n === \"menu.systemConfig\" ||\n m.text === \"系统及配置\" ||\n m.children?.some(\n c =>\n c.link === \"/settings\" ||\n c.link === \"/tenant\" ||\n c.link === \"/blob-storage\" ||\n c.link === \"/mocking\" ||\n c.i18n === \"Common.menu.settings\" ||\n c.i18n === \"Common.menu.tenant\" ||\n c.i18n === \"Mocking.title\",\n ),\n );\n }\n\n private resolveI18nAdapter(): GeexStartupI18nAdapter | null {\n const service = this.injector.get(GEEX_I18N_SERVICE, null);\n if (service && typeof (service as GeexStartupI18nAdapter).merge === \"function\" && typeof (service as GeexStartupI18nAdapter).use === \"function\") {\n return service as GeexStartupI18nAdapter;\n }\n return null;\n }\n\n /** Safe read: guardedSignal throws before auth.init finishes. */\n private readAuthUser() {\n try {\n return this.geex.authentication.user() ?? undefined;\n } catch {\n return undefined;\n }\n }\n\n /**\n * After OIDC, auth.init may have finished with a null user (token race) or still be settling.\n * Never throw EmptyError into bootstrap (that becomes the 500 page).\n */\n private async resolveAuthUser() {\n let user = this.readAuthUser();\n if (user) {\n return user;\n }\n const auth = this.geex.authentication as { reload?: () => Promise<void> };\n if (typeof auth.reload === \"function\") {\n await auth.reload();\n user = this.readAuthUser();\n if (user) {\n return user;\n }\n }\n return firstValueFrom(\n interval(100).pipe(\n filter(() => this.readAuthUser() != undefined),\n map(() => this.readAuthUser()),\n takeUntil(timer(5000)),\n ),\n { defaultValue: undefined },\n );\n }\n\n private async trySwitchTenant(): Promise<void> {\n const url = new URL(location.href);\n const targetTenantCode = url.searchParams.get(\"__tenant\");\n url.searchParams.delete(\"__tenant\");\n if (!targetTenantCode) {\n return;\n }\n const currentTenantCode = this.injector.get(CookieService).get(\"__tenant\");\n if (targetTenantCode == currentTenantCode) {\n await this.router.navigateByUrl(url.pathname + url.search + url.hash);\n return;\n }\n this.geex.multiTenant.switchTenant(targetTenantCode);\n await this.router.navigateByUrl(url.pathname + url.search + url.hash);\n }\n\n private ensureSessionWatch(): void {\n if (this.sessionWatchStarted) {\n return;\n }\n this.sessionWatchStarted = true;\n this.oAuthService.setupAutomaticSilentRefresh();\n this.oAuthService[\"initSessionCheck\"]();\n const loginUrl = this.loginPath;\n const modalCopy = this.sessionTerminatedCopy;\n this.oAuthService.events.subscribe(e => {\n if (e instanceof OAuthErrorEvent && (e.reason as { status?: number } | undefined)?.status == 401) {\n this.oAuthService.logOut(true);\n }\n if (e.type == \"session_terminated\") {\n console.error(e);\n this.modalService.info({\n nzTitle: modalCopy.title ?? \"检测到账号切换, 请重新登入\",\n nzOkText: modalCopy.okText ?? \"确认\",\n nzOnOk: async () => {\n this.settingsService.setUser({});\n this.aclService.set({});\n await this.router.navigateByUrl(loginUrl).then(() => {\n this.afterLoginNavigate();\n });\n },\n nzClosable: false,\n });\n }\n });\n }\n}\n","import { inject, provideAppInitializer, type EnvironmentProviders, type Provider } from \"@angular/core\";\r\n\r\nimport { GEEX_BLOCK_DEBUGGER } from \"../debugger-blocker.tokens\";\r\nimport { DebuggerBlockerService } from \"../debugger-blocker.service\";\r\nimport { GeexStartupService } from \"./geex-startup.service\";\r\nimport { GEEX_STARTUP_OPTIONS } from \"./tokens\";\r\nimport type { GeexStartupOptions } from \"./types\";\r\n\r\nexport function provideGeexStartup(options: GeexStartupOptions): Array<Provider | EnvironmentProviders> {\r\n return [\r\n { provide: GEEX_STARTUP_OPTIONS, useValue: options },\r\n { provide: GEEX_BLOCK_DEBUGGER, useValue: options.blockDebugger ?? false },\r\n DebuggerBlockerService,\r\n GeexStartupService,\r\n provideAppInitializer(() => inject(GeexStartupService).load()),\r\n ];\r\n}\r\n","import { merge } from \"lodash-es\";\r\n\r\nexport function mergeGeexI18nPacks<T extends Record<string, unknown>>(base: T, ...overlays: Array<Partial<T> | Record<string, unknown>>): T {\r\n return merge({}, base, ...overlays) as T;\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { TranslateLoader, TranslationObject } from \"@ngx-translate/core\";\r\nimport { Observable, of } from \"rxjs\";\r\n\r\nimport { GEEX_I18N_PACKS } from \"./tokens\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GeexTranslateLoader implements TranslateLoader {\r\n private readonly packs = inject(GEEX_I18N_PACKS, { optional: true });\r\n\r\n getTranslation(lang: string): Observable<TranslationObject> {\r\n if (this.packs?.[lang]) {\r\n return of(this.packs[lang] as TranslationObject);\r\n }\r\n return of({});\r\n }\r\n}\r\n","import { registerLocaleData } from \"@angular/common\";\nimport ngEn from \"@angular/common/locales/en\";\nimport ngZh from \"@angular/common/locales/zh\";\nimport { Injectable, inject } from \"@angular/core\";\nimport {\n AlainI18NService,\n DelonLocaleService,\n en_US as delonEnUS,\n SettingsService,\n zh_CN as delonZhCn,\n} from \"@delon/theme\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { enUS as dfEn, zhCN as dfZhCn } from \"date-fns/locale\";\nimport kiwiIntl from \"kiwi-intl\";\nimport { flatMapDeep, merge } from \"lodash-es\";\nimport { NzSafeAny } from \"ng-zorro-antd/core/types\";\nimport { en_US as zorroEnUS, NzI18nService, zh_CN as zorroZhCN } from \"ng-zorro-antd/i18n\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { filter } from \"rxjs/operators\";\n\nimport { GEEX_I18N_PACKS } from \"./tokens\";\nimport type { LangObject } from \"./types\";\n\ninterface LangData {\n abbr: string;\n text: string;\n ng: NzSafeAny;\n zorro: NzSafeAny;\n date: NzSafeAny;\n delon: NzSafeAny;\n}\n\nconst DEFAULT = \"zh-cn\";\n\nconst LANGS: { [key: string]: LangData } = {\n \"zh-cn\": {\n text: \"简体中文\",\n ng: ngZh,\n zorro: zorroZhCN,\n date: dfZhCn,\n delon: delonZhCn,\n abbr: \"🇨🇳\",\n },\n \"en-us\": {\n text: \"English\",\n ng: ngEn,\n zorro: zorroEnUS,\n date: dfEn,\n delon: delonEnUS,\n abbr: \"🇺🇸\",\n },\n};\n\n/** Mutable kiwi dictionary; host may re-export as `I18N`. */\nexport let I18N: LangObject<any>;\n\nfunction attachGetter([key, value]: [string, unknown]): unknown {\n const parentKey = key;\n if (value instanceof Object) {\n const langObj = value as LangObject<object>;\n Object.entries(value as object).forEach(([childKey, childValue]) =>\n attachGetter([`${key}.${childKey}`, childValue]),\n );\n langObj.get = function (this: Record<string, unknown>, childKey: string, notFoundValue?: string) {\n const result = this[childKey];\n if (result != undefined) {\n return result as string;\n }\n if (notFoundValue != undefined || notFoundValue != null) {\n return notFoundValue;\n }\n return `${parentKey}.${childKey}`;\n }.bind(value as Record<string, unknown>);\n }\n return [];\n}\n\nfunction attachGettersToPacks(packs: Record<string, Record<string, unknown>>): void {\n Object.entries(packs).forEach(([, pack]) => {\n flatMapDeep(Object.entries(pack), ([key, value]) => attachGetter([`I18N.${key}`, value]));\n });\n}\n\n/**\n * Alain + kiwi i18n runtime. Packs come from `GEEX_I18N_PACKS` (host zh-CN/en-US assembly).\n */\n@Injectable()\nexport class GeexI18nService implements AlainI18NService {\n private _default = DEFAULT;\n private change$ = new BehaviorSubject<string | null>(null);\n private kiwiLangs: Record<string, Record<string, unknown>>;\n\n private _langs = Object.keys(LANGS).map(code => {\n const item = LANGS[code];\n return { code, text: item.text, abbr: item.abbr };\n });\n\n private readonly settings = inject(SettingsService);\n private readonly nzI18nService = inject(NzI18nService);\n private readonly delonLocaleService = inject(DelonLocaleService);\n private readonly translate = inject(TranslateService);\n private readonly packs = inject(GEEX_I18N_PACKS);\n\n constructor() {\n this.kiwiLangs = this.packs ?? {};\n attachGettersToPacks(this.kiwiLangs);\n I18N = kiwiIntl.init(DEFAULT, this.kiwiLangs as any);\n\n const lans = this._langs.map(item => item.code);\n this.translate.addLangs(lans);\n\n const defaultLan = this.getDefaultLang().toLowerCase();\n this._default = lans.includes(defaultLan) ? defaultLan : DEFAULT;\n this.use(this._default);\n }\n\n /** Current kiwi dictionary (also mirrored by module `I18N`). */\n get dictionary(): LangObject<any> {\n return I18N;\n }\n\n private getDefaultLang(): string {\n if (this.settings.layout.lang) {\n return this.settings.layout.lang;\n }\n return (navigator.languages?.[0] || navigator.language || DEFAULT).toLowerCase();\n }\n\n private updateLangData(lang: string): void {\n const item = LANGS[lang.toLocaleLowerCase()] ?? LANGS[DEFAULT];\n registerLocaleData(item.ng);\n this.nzI18nService.setLocale(item.zorro);\n this.nzI18nService.setDateLocale(item.date);\n this.delonLocaleService.setLocale(item.delon);\n I18N = kiwiIntl.init(lang, this.kiwiLangs as any);\n }\n\n get change(): Observable<string> {\n return this.change$.asObservable().pipe(filter(w => w != null)) as Observable<string>;\n }\n\n merge(translations: object): void {\n merge(this.kiwiLangs, translations);\n }\n\n use(lang: string): void {\n lang = lang || this.translate.getDefaultLang() || this._default;\n if (this.currentLang === lang) {\n return;\n }\n this.updateLangData(lang);\n this.translate.use(lang).subscribe(() => this.change$.next(lang));\n }\n\n getLangs(): Array<{ code: string; text: string; abbr: string }> {\n return this._langs;\n }\n\n fanyi(key: string, interpolateParams?: {}): any {\n const result = this.translate.instant(key, interpolateParams);\n if (key == result) {\n return `I18N.${key}`;\n }\n return result;\n }\n\n get defaultLang(): string {\n return this._default;\n }\n\n get currentLang(): string {\n return this.translate.currentLang || this.translate.getDefaultLang() || this._default;\n }\n}\n\n/** Host-compatible alias. */\nexport { GeexI18nService as I18NService };\n","import type { GeexI18n } from \"../delon/tokens\";\nimport { I18N } from \"./geex-i18n.service\";\n\n/**\n * Stable DI surface for `GEEX_I18N` that tracks module `I18N` reassignments\n * without depending on `GeexI18nService` (avoids TranslateService cycle).\n */\nexport function createGeexI18nDictionaryProxy(): GeexI18n {\n const proxy = new Proxy({} as Record<string, unknown>, {\n get(_target, prop, receiver) {\n const dict = I18N;\n if (dict == null) {\n return undefined;\n }\n const value = Reflect.get(dict as object, prop, receiver);\n if (typeof value === \"function\") {\n return (value as (...args: unknown[]) => unknown).bind(dict);\n }\n return value;\n },\n });\n return proxy as GeexI18n;\n}\n","import { importProvidersFrom, type EnvironmentProviders, type Provider } from \"@angular/core\";\r\nimport { ALAIN_I18N_TOKEN } from \"@delon/theme\";\r\nimport { TranslateLoader, TranslateModule } from \"@ngx-translate/core\";\r\n\r\nimport { GEEX_I18N, GEEX_I18N_SERVICE } from \"../delon/tokens\";\r\nimport { createGeexI18nDictionaryProxy } from \"./geex-i18n-dictionary\";\r\nimport { GeexI18nService } from \"./geex-i18n.service\";\r\nimport { GeexTranslateLoader } from \"./geex-translate-loader\";\r\nimport { GEEX_I18N_PACKS } from \"./tokens\";\r\n\r\nexport interface GeexI18nProvideOptions {\r\n fallbackLang?: string;\r\n}\r\n\r\n/**\r\n * Register kiwi packs + GeexI18nService + Alain/ngx-translate wiring.\r\n */\r\nexport function provideGeexI18n(\r\n packs: Record<string, Record<string, unknown>>,\r\n options: GeexI18nProvideOptions = {},\r\n): Array<Provider | EnvironmentProviders> {\r\n return [\r\n { provide: GEEX_I18N_PACKS, useValue: packs },\r\n GeexI18nService,\r\n { provide: GEEX_I18N_SERVICE, useExisting: GeexI18nService },\r\n {\r\n provide: GEEX_I18N,\r\n useFactory: () => createGeexI18nDictionaryProxy(),\r\n },\r\n { provide: ALAIN_I18N_TOKEN, useExisting: GeexI18nService },\r\n importProvidersFrom(\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useClass: GeexTranslateLoader,\r\n },\r\n fallbackLang: options.fallbackLang ?? \"en\",\r\n }),\r\n ),\r\n ];\r\n}\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport type { DocumentNode } from \"graphql\";\r\n\r\nexport const GEEX_CANCEL_AUTHENTICATION_DOCUMENT = new InjectionToken<DocumentNode>(\"GEEX_CANCEL_AUTHENTICATION_DOCUMENT\");\r\n\r\n/** Header profile route (default `/identity/me`). */\r\nexport const GEEX_PROFILE_PATH = new InjectionToken<string>(\"GEEX_PROFILE_PATH\", {\r\n providedIn: \"root\",\r\n factory: () => \"/identity/me\",\r\n});\r\n\r\n/** Header profile menu label (default 个人中心). */\r\nexport const GEEX_PROFILE_LABEL = new InjectionToken<string>(\"GEEX_PROFILE_LABEL\", {\r\n providedIn: \"root\",\r\n factory: () => \"个人中心\",\r\n});\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport { Apollo } from \"apollo-angular\";\r\nimport gql from \"graphql-tag\";\r\nimport type { DocumentNode } from \"graphql\";\r\nimport { firstValueFrom } from \"rxjs\";\r\n\r\nimport { ACLService } from \"@delon/acl\";\r\nimport { SettingsService } from \"@delon/theme\";\r\n\r\nimport { GEEX_AFTER_LOGIN_NAVIGATE, GEEX_LOGIN_PATH } from \"../http/tokens\";\r\nimport { GEEX_CANCEL_AUTHENTICATION_DOCUMENT } from \"./tokens\";\r\n\r\nexport const cancelAuthenticationMutation = gql`\r\n mutation cancelAuthenticate {\r\n cancelAuthentication\r\n }\r\n` as DocumentNode;\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GeexAuthLogout {\r\n private readonly apollo = inject(Apollo);\r\n private readonly oauth = inject(OAuthService);\r\n private readonly settings = inject(SettingsService);\r\n private readonly acl = inject(ACLService);\r\n private readonly router = inject(Router);\r\n private readonly loginPath = inject(GEEX_LOGIN_PATH);\r\n private readonly afterLoginNavigate = inject(GEEX_AFTER_LOGIN_NAVIGATE);\r\n private readonly cancelDocument = inject(GEEX_CANCEL_AUTHENTICATION_DOCUMENT, { optional: true });\r\n\r\n async logout(): Promise<void> {\r\n const mutation = this.cancelDocument ?? cancelAuthenticationMutation;\r\n await firstValueFrom(this.apollo.mutate({ mutation }));\r\n this.settings.setUser({});\r\n this.acl.set({});\r\n this.oauth.logOut();\r\n await this.router.navigateByUrl(this.loginPath).then(() => {\r\n this.afterLoginNavigate();\r\n });\r\n }\r\n}\r\n","export type GeexEnvironmentOverridesOptions = {\r\n url?: string;\r\n onInvalid?: (override: unknown, url: string) => void;\r\n onLoadError?: (error: unknown, url: string) => void;\r\n};\r\n\r\nfunction setByPath(target: Record<string, unknown>, path: string, value: unknown): void {\r\n const parts = path.split(\".\");\r\n let cur: Record<string, unknown> = target;\r\n for (let i = 0; i < parts.length - 1; i++) {\r\n const key = parts[i];\r\n const next = cur[key];\r\n if (next == null || typeof next !== \"object\") {\r\n cur[key] = {};\r\n }\r\n cur = cur[key] as Record<string, unknown>;\r\n }\r\n cur[parts[parts.length - 1]] = value;\r\n}\r\n\r\n/** Deep-set env from flat / dotted override keys. Host may pass typed `environment` objects. */\r\nexport function applyEnvironmentOverrides(\r\n env: object,\r\n override: Record<string, unknown>,\r\n): void {\r\n const target = env as Record<string, unknown>;\r\n for (const [key, value] of Object.entries(override)) {\r\n if (key.includes(\".\")) {\r\n setByPath(target, key, value);\r\n } else {\r\n target[key] = value;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Loads `/assets/environment.override.js` (or options.url) and merges into env.\r\n * Missing / invalid override is non-fatal.\r\n */\r\nexport async function loadEnvironmentOverrides(\r\n env: object,\r\n options: GeexEnvironmentOverridesOptions = {},\r\n): Promise<void> {\r\n const url = options.url ?? \"/assets/environment.override.js\";\r\n try {\r\n const mod = await import(/* @vite-ignore */ /* webpackIgnore: true */ url);\r\n const override = (mod.default ?? mod) as Record<string, unknown>;\r\n if (override && typeof override === \"object\") {\r\n applyEnvironmentOverrides(env, override);\r\n return;\r\n }\r\n if (options.onInvalid) {\r\n options.onInvalid(override, url);\r\n } else {\r\n console.warn(`[environment] Invalid override export from ${url}, expected object. Using defaults.`, override);\r\n }\r\n } catch (error) {\r\n if (options.onLoadError) {\r\n options.onLoadError(error, url);\r\n } else {\r\n console.warn(`[environment] Failed to load ${url}, using defaults.`, error);\r\n }\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport type { Provider } from \"@angular/core\";\r\n\r\nimport { GeexHttpInterceptor } from \"./geex-http.interceptor\";\r\nimport { GEEX_API_BASE_URL } from \"./tokens\";\r\n\r\nexport interface GeexHttpProvideOptions {\r\n apiBaseUrl: string;\r\n}\r\n\r\nexport function provideGeexHttp(options: GeexHttpProvideOptions): Provider[] {\r\n return [\r\n { provide: GEEX_API_BASE_URL, useValue: options.apiBaseUrl },\r\n GeexHttpInterceptor,\r\n { provide: HTTP_INTERCEPTORS, useExisting: GeexHttpInterceptor, multi: true },\r\n ];\r\n}\r\n","import { Injectable, WritableSignal, inject } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { ACLService, ACLCanType } from \"@delon/acl\";\nimport { ModalHelper } from \"@delon/theme\";\nimport { Apollo } from \"apollo-angular\";\nimport { NzMessageService } from \"ng-zorro-antd/message\";\nimport { NzModalService } from \"ng-zorro-antd/modal\";\n\nimport { GEEX_APP_PERMISSION, GEEX_I18N, GEEX_I18N_SERVICE, type GeexAppPermission, type GeexI18n } from \"../tokens\";\n\n@Injectable()\nexport abstract class BusinessComponentBase<TParam = any> {\n protected acl = inject(ACLService);\n protected apollo = inject(Apollo);\n protected i18n = inject(GEEX_I18N_SERVICE, { optional: true });\n protected modal = inject(ModalHelper);\n protected msgSrv = inject(NzMessageService);\n protected nzModalSrv = inject(NzModalService);\n protected router = inject(Router);\n public params!: WritableSignal<TParam>;\n I18N: GeexI18n = inject(GEEX_I18N);\n AppPermission: GeexAppPermission = inject(GEEX_APP_PERMISSION);\n\n can(permission: ACLCanType) {\n return this.acl.can(permission);\n }\n}\n","// @ts-nocheck\n/* eslint-disable */\n// Converted from UMD rison.js for ng-packagr bundling\nvar risonRegex =\n /^\\s*(?:\\([^()]*:[^()]*\\)|!\\([^()]*\\)|!t|!f|!n|-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE]\\d+)?|'(?:[^'!]|!(?:'|!))*'|[A-Za-z0-9_./~-]+)\\s*$/;\nconst exports: Record<string, any> = {};\n\nvar rison = exports;\n\n//////////////////////////////////////////////////\n//\n// the stringifier is based on\n// http://json.org/json.js as of 2006-04-28 from json.org\n// the parser is based on \n// http://osteele.com/sources/openlaszlo/json\n//\n\nif (typeof rison == 'undefined')\n window.rison = {};\n\n/**\n* rules for an uri encoder that is more tolerant than encodeURIComponent\n*\n* encodeURIComponent passes ~!*()-_.'\n*\n* we also allow ,:@$/\n*\n*/\nrison.uri_ok = { // ok in url paths and in form query args\n '~': true, '!': true, '*': true, '(': true, ')': true,\n '-': true, '_': true, '.': true, ',': true,\n ':': true, '@': true, '$': true,\n \"\\\"\": true, '/': true\n};\n\n/*\n* we divide the uri-safe glyphs into three sets\n* <rison> - used by rison ' ! : ( ) ,\n* <reserved> - not common in strings, reserved * @ $ & ; =\n*\n* we define <identifier> as anything that's not forbidden\n*/\n\n/**\n* punctuation characters that are legal inside ids.\n*/\n// this var isn't actually used\n//rison.idchar_punctuation = \"_-./~\"; \n\n(function () {\n var l = [];\n for (var hi = 0; hi < 16; hi++) {\n for (var lo = 0; lo < 16; lo++) {\n if (hi+lo == 0) continue;\n var c = String.fromCharCode(hi*16 + lo);\n if (! /\\w|[-_.\\/~]/.test(c))\n l.push('\\\\u00' + hi.toString(16) + lo.toString(16));\n }\n }\n /**\n * characters that are illegal inside ids.\n * <rison> and <reserved> classes are illegal in ids.\n *\n */\n rison.not_idchar = l.join(\"\")\n //idcrx = new RegExp('[' + rison.not_idchar + ']');\n //console.log('NOT', (idcrx.test(' ')) );\n})();\n//rison.not_idchar = \" \\t\\r\\n\\\"<>[]{}'!=:(),*@$;&\";\nrison.not_idchar = \" '!:(),*@$\";\n\n\n/**\n* characters that are illegal as the start of an id\n* this is so ids can't look like numbers.\n*/\nrison.not_idstart = \"-0123456789\";\n\n\n(function () {\n var idrx = '[^' + rison.not_idstart + rison.not_idchar + \n '][^' + rison.not_idchar + ']*';\n\n rison.id_ok = new RegExp('^' + idrx + '$');\n\n // regexp to find the end of an id when parsing\n // g flag on the regexp is necessary for iterative regexp.exec()\n rison.next_id = new RegExp(idrx, 'g');\n})();\n \n/**\n* this is like encodeURIComponent() but quotes fewer characters.\n*\n* @see rison.uri_ok\n*\n* encodeURIComponent passes ~!*()-_.'\n* rison.quote also passes ,:@$/\n* and quotes \" \" as \"+\" instead of \"%20\"\n*/\nrison.quote = function(x) {\n if (/^[-A-Za-z0-9~!*()_.\",:@$\\/]*$/.test(x))\n return x;\n\n return encodeURIComponent(x)\n .replace('%2C', ',', 'g')\n .replace('%3A', ':', 'g')\n .replace('%40', '@', 'g')\n .replace('%24', '$', 'g')\n .replace('%2F', '/', 'g')\n .replace('%20', '+', 'g');\n};\n\n\n//\n// based on json.js 2006-04-28 from json.org\n// license: http://www.json.org/license.html\n//\n// hacked by nix for use in uris.\n//\n\n(function () {\n var sq = { // url-ok but quoted in strings\n \"\\\"\": true, '!': true\n },\n s = {\n array: function (x) {\n var a = ['!('], b, f, i, l = x.length, v;\n for (i = 0; i < l; i += 1) {\n v = x[i];\n f = s[typeof v];\n if (f) {\n v = f(v);\n if (typeof v == 'string') {\n if (b) {\n a[a.length] = ',';\n }\n a[a.length] = v;\n b = true;\n }\n }\n }\n a[a.length] = ')';\n return a.join(\"\");\n },\n 'boolean': function (x) {\n if (x)\n return '!t';\n return '!f'\n },\n 'null': function (x) {\n return \"!n\";\n },\n number: function (x) {\n if (!isFinite(x))\n return '!n';\n // strip '+' out of exponent, '-' is ok though\n return String(x).replace(/\\+/,\"\");\n },\n object: function (x) {\n if (x) {\n if (x instanceof Array) {\n return s.array(x);\n }\n if (x instanceof Date) {\n return `!d\"${x.toISOString()}\"`;\n }\n // WILL: will this work on non-Firefox browsers?\n if (typeof x.__prototype__ === 'object' && typeof x.__prototype__.encode_rison !== 'undefined')\n return x.encode_rison();\n\n var a = ['('], b, f, i, v, ki, ks=[];\n for (i in x)\n ks[ks.length] = i;\n ks.sort();\n for (ki = 0; ki < ks.length; ki++) {\n i = ks[ki];\n v = x[i];\n f = s[typeof v];\n if (f) {\n v = f(v);\n if (typeof v == 'string') {\n if (b) {\n a[a.length] = ',';\n }\n a.push(s.string(i), ':', v);\n b = true;\n }\n }\n }\n a[a.length] = ')';\n return a.join(\"\");\n }\n return '!n';\n },\n string: function (x) {\n if (x == \"\")\n return \"\\\"\\\"\";\n\n if (rison.id_ok.test(x))\n return x;\n x = x.replace(/(['!])/g, function(a, b) {\n if (sq[b]) return '!'+b;\n return b;\n });\n return \"\\\"\" + x + \"\\\"\";\n },\n undefined: function (x) {\n throw new Error(\"rison can't encode the undefined value\");\n }\n };\n\n\n /**\n * rison-encode a javascript structure\n *\n * implemementation based on Douglas Crockford's json.js:\n * http://json.org/json.js as of 2006-04-28 from json.org\n *\n */\n rison.encode = function (v) {\n return s[typeof v](v);\n };\n\n /**\n * rison-encode a javascript object without surrounding parens\n *\n */\n rison.encode_object = function (v) {\n if (typeof v != 'object' || v === null || v instanceof Array)\n throw new Error(\"rison.encode_object expects an object argument\");\n var r = s[typeof v](v);\n return r.substring(1, r.length-1);\n };\n\n /**\n * rison-encode a javascript array without surrounding parens\n *\n */\n rison.encode_array = function (v) {\n if (!(v instanceof Array))\n throw new Error(\"rison.encode_array expects an array argument\");\n var r = s[typeof v](v);\n return r.substring(2, r.length-1);\n };\n\n /**\n * rison-encode and uri-encode a javascript structure\n *\n */\n rison.encode_uri = function (v) {\n return rison.quote(s[typeof v](v));\n };\n\n})();\n\n\n\n\n//\n// based on openlaszlo-json and hacked by nix for use in uris.\n//\n// Author: Oliver Steele\n// Copyright: Copyright 2006 Oliver Steele. All rights reserved.\n// Homepage: http://osteele.com/sources/openlaszlo/json\n// License: MIT License.\n// Version: 1.0\n\n\n/**\n* parse a rison string into a javascript structure.\n*\n* this is the simplest decoder entry point.\n*\n* based on Oliver Steele's OpenLaszlo-JSON\n* http://osteele.com/sources/openlaszlo/json\n*/\nrison.decode = function(r) {\n var errcb = function(e) { throw Error('rison decoder error: ' + e); };\n var p = new rison.parser(errcb);\n return p.parse(r);\n};\n\n/**\n* decode a GeexRouter query param value.\n* falls back to the raw string when the value is not valid rison\n* (e.g. external OAuth callbacks that bypass GeexRouter encoding).\n*/\nrison.decode_query_param = function(r) {\n if (r == null || r === \"\") {\n return \"\";\n }\n try {\n var decoded = rison.decode(r);\n return decoded == null ? \"\" : String(decoded);\n } catch (e) {\n return String(r);\n }\n};\n\n/**\n* parse an o-rison string into a javascript structure.\n*\n* this simply adds parentheses around the string before parsing.\n*/\nrison.decode_object = function(r) {\n return rison.decode('('+r+')');\n};\n\n/**\n* parse an a-rison string into a javascript structure.\n*\n* this simply adds array markup around the string before parsing.\n*/\nrison.decode_array = function(r) {\n return rison.decode('!('+r+')');\n};\n\n\n/**\n* construct a new parser object for reuse.\n*\n* @constructor\n* @class A Rison parser class. You should probably \n* use rison.decode instead. \n* @see rison.decode\n*/\nrison.parser = function (errcb) {\n this.errorHandler = errcb;\n};\n\n/**\n* a string containing acceptable whitespace characters.\n* by default the rison decoder tolerates no whitespace.\n* to accept whitespace set rison.parser.WHITESPACE = \" \\t\\n\\r\\f\";\n*/\nrison.parser.WHITESPACE = \"\";\n\n// expose this as-is?\nrison.parser.prototype.setOptions = function (options) {\n if (options['errorHandler'])\n this.errorHandler = options.errorHandler;\n};\n\n/**\n* parse a rison string into a javascript structure.\n*/\nrison.parser.prototype.parse = function (str) {\n this.string = str;\n this.index = 0;\n this.message = null;\n var value = this.readValue();\n if (!this.message && this.next())\n value = this.error(\"unable to parse string as rison: '\" + rison.encode(str) + \"\\\"\");\n if (this.message && this.errorHandler)\n this.errorHandler(this.message, this.index);\n return value;\n};\n\nrison.parser.prototype.error = function (message) {\n if (typeof(console) != 'undefined')\n console.log('rison parser error: ', message);\n this.message = message;\n return undefined;\n}\n \nrison.parser.prototype.readValue = function () {\n var c = this.next();\n var fn = c && this.table[c];\n\n if (fn)\n return fn.apply(this);\n\n // fell through table, parse as an id\n\n var s = this.string;\n var i = this.index-1;\n\n // Regexp.lastIndex may not work right in IE before 5.5?\n // g flag on the regexp is also necessary\n rison.next_id.lastIndex = i;\n var m = rison.next_id.exec(s);\n\n // console.log('matched id', i, r.lastIndex);\n\n if (m.length > 0) {\n var id = m[0];\n this.index = i+id.length;\n return id; // a string\n }\n\n if (c) return this.error(\"invalid character: '\" + c + \"\\\"\");\n return this.error(\"empty expression\");\n}\n\nrison.parser.parse_date = function (parser) {\n var c;\n while ((c = parser.next()) != \"Z\") {\n --parser.index;\n var n = parser.readValue();\n if (typeof n == \"undefined\") return undefined;\n return new Date(n);\n }\n return undefined;\n};\n \nrison.parser.parse_array = function (parser) {\n var ar = [];\n var c;\n while ((c = parser.next()) != ')') {\n if (!c) return parser.error(\"unmatched '!('\");\n if (ar.length) {\n if (c != ',')\n parser.error(\"missing ','\");\n } else if (c == ',') {\n return parser.error(\"extra ','\");\n } else\n --parser.index;\n var n = parser.readValue();\n if (typeof n == \"undefined\") return undefined;\n ar.push(n);\n }\n return ar;\n};\n\nrison.parser.bangs = {\n t: true,\n f: false,\n n: null,\n '(': rison.parser.parse_array,\n d: rison.parser.parse_date\n}\n\nrison.parser.prototype.table = {\n '!': function () {\n var s = this.string;\n var c = s.charAt(this.index++);\n if (!c) return this.error('\"!\" at end of input');\n var x = rison.parser.bangs[c];\n if (typeof(x) == 'function') {\n return x.call(null, this);\n } else if (typeof(x) == 'undefined') {\n return this.error('unknown literal: \"!' + c + '\"');\n }\n return x;\n },\n '(': function () {\n var o = {};\n var c;\n var count = 0;\n while ((c = this.next()) != ')') {\n if (count) {\n if (c != ',')\n this.error(\"missing ','\");\n } else if (c == ',') {\n return this.error(\"extra ','\");\n } else\n --this.index;\n var k = this.readValue();\n if (typeof k == \"undefined\") return undefined;\n if (this.next() != ':') return this.error(\"missing ':'\");\n var v = this.readValue();\n if (typeof v == \"undefined\") return undefined;\n o[k] = v;\n count++;\n }\n return o;\n },\n \"\\\"\": function () {\n var s = this.string;\n var i = this.index;\n var start = i;\n var segments = [];\n var c;\n while ((c = s.charAt(i++)) != \"\\\"\") {\n //if (i == s.length) return this.error('unmatched \"\\\"\"');\n if (!c) return this.error('unmatched \"\\\"\"');\n if (c == '!') {\n if (start < i-1)\n segments.push(s.slice(start, i-1));\n c = s.charAt(i++);\n if (\"!'\".indexOf(c) >= 0) {\n segments.push(c);\n } else {\n return this.error('invalid string escape: \"!'+c+'\"');\n }\n start = i;\n }\n }\n if (start < i-1)\n segments.push(s.slice(start, i-1));\n this.index = i;\n return segments.length == 1 ? segments[0] : segments.join(\"\");\n },\n // Also any digit. The statement that follows this table\n // definition fills in the digits.\n '-': function () {\n var s = this.string;\n var i = this.index;\n var start = i-1;\n var state = 'int';\n var permittedSigns = '-';\n var transitions = {\n 'int+.': 'frac',\n 'int+e': 'exp',\n 'frac+e': 'exp'\n };\n do {\n var c = s.charAt(i++);\n if (!c) break;\n if ('0' <= c && c <= '9') continue;\n if (permittedSigns.indexOf(c) >= 0) {\n permittedSigns = \"\";\n continue;\n }\n state = transitions[state+'+'+c.toLowerCase()];\n if (state == 'exp') permittedSigns = '-';\n } while (state);\n this.index = --i;\n s = s.slice(start, i)\n if (s == '-') return this.error(\"invalid number\");\n return Number(s);\n }\n};\n// copy table['-'] to each of table[i] | i <- '0'..'9':\n(function (table) {\n for (var i = 0; i <= 9; i++)\n table[String(i)] = table['-'];\n})(rison.parser.prototype.table);\n\n// return the next non-whitespace character, or undefined\nrison.parser.prototype.next = function () {\n var s = this.string;\n var i = this.index;\n do {\n if (i == s.length) return undefined;\n var c = s.charAt(i++);\n } while (rison.parser.WHITESPACE.indexOf(c) >= 0);\n this.index = i;\n return c;\n};\n\n// End of UMD module wrapper\nexport default exports;\nexport { exports as rison };","import { Location } from \"@angular/common\";\r\nimport { ChangeDetectorRef, Injectable, WritableSignal, effect, inject, signal } from \"@angular/core\";\r\nimport { FormBuilder, FormControl } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params } from \"@angular/router\";\r\nimport { ReuseTabService } from \"@delon/abc/reuse-tab\";\r\nimport { LoadingService } from \"@delon/abc/loading\";\r\nimport { TitleService } from \"@delon/theme\";\r\nimport { match } from \"ts-pattern\";\r\nimport rison from \"../../rison\";\r\n\r\nimport { BusinessComponentBase } from \"./business.component.base\";\r\nimport { GeexTypedFormGroup } from \"../types\";\r\n\r\nfunction geexIsEqual(a: unknown, b: unknown): boolean {\r\n if (Object.is(a, b)) {\r\n return true;\r\n }\r\n try {\r\n return JSON.stringify(a) === JSON.stringify(b);\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\ntype ParamMappingValue<TValue> = {\r\n position: \"pathParams\" | \"queryParams\" | \"fragment\";\r\n default?: TValue;\r\n};\r\n\r\nexport type RouteParamsMappings<TParams extends {}> = {\r\n [Key in keyof TParams]: ParamMappingValue<TParams[Key]>;\r\n};\r\n\r\nexport type RouteParams = {\r\n pathParams?: Params;\r\n queryParams?: Params;\r\n fragment?: string;\r\n};\r\n\r\n@Injectable()\r\nexport abstract class RoutedComponent<TParams extends {}> extends BusinessComponentBase<TParams> {\r\n abstract routeParamsMappings: RouteParamsMappings<TParams>;\r\n defaultParams!: TParams;\r\n paramsForm!: GeexTypedFormGroup<TParams>;\r\n declare params: WritableSignal<TParams>;\r\n title = signal<string | undefined>(undefined);\r\n protected cdr = inject(ChangeDetectorRef);\r\n protected fb = inject(FormBuilder);\r\n protected loading = signal(false);\r\n protected loadingSrv = inject(LoadingService);\r\n protected location = inject(Location);\r\n protected reuseTabSrv = inject(ReuseTabService);\r\n protected route = inject(ActivatedRoute);\r\n protected titleSrv = inject(TitleService);\r\n\r\n async ngOnInit(): Promise<void> {\r\n this.defaultParams = Object.fromEntries(\r\n Object.entries(this.routeParamsMappings).map(([key, mapping]) => [key, (mapping as ParamMappingValue<unknown>).default]),\r\n ) as TParams;\r\n this.params ??= signal(this.defaultParams);\r\n this.paramsForm ??= this.buildParamsForm(this.defaultParams);\r\n }\r\n\r\n constructor() {\r\n super();\r\n\r\n effect(async () => {\r\n await this.handleRouteReload();\r\n }, {});\r\n }\r\n\r\n /** Full route-reload pipeline; override to replace navigation side effects. */\r\n protected async handleRouteReload(): Promise<void> {\r\n (this.router as any).navigationReload();\r\n this.loading.set(true);\r\n const routeParams = {\r\n pathParams: await (this.route.params as any).firstValuePromise(),\r\n queryParams: await (this.route.queryParams as any).firstValuePromise(),\r\n fragment: await (this.route.fragment as any).firstValuePromise(),\r\n };\r\n const params = await this.resolve(routeParams);\r\n this.paramsForm.reset(params, { emitEvent: false });\r\n this.params.set(params);\r\n await this.beforeOnRouted(params);\r\n await this.onRouted(params);\r\n await this.afterOnRouted(params);\r\n this.loading.set(false);\r\n const title = this.title();\r\n if (title) this.reuseTabSrv.title = title;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n protected beforeOnRouted(_params: TParams): void | Promise<void> {}\r\n\r\n protected afterOnRouted(_params: TParams): void | Promise<void> {}\r\n\r\n protected buildParamsForm(defaults: TParams): GeexTypedFormGroup<TParams> {\r\n return this.fb.group(\r\n Object.fromEntries(Object.entries(defaults).map(x => [x[0], new FormControl(x[1])])),\r\n ) as GeexTypedFormGroup<TParams>;\r\n }\r\n\r\n protected decodeQueryParam(raw: string): unknown {\r\n return rison.decode(raw);\r\n }\r\n\r\n async resolve({ pathParams, queryParams, fragment }: RouteParams): Promise<TParams> {\r\n const params = {} as TParams;\r\n\r\n if (this.routeParamsMappings) {\r\n const mappings = Object.entries<ParamMappingValue<any>>(this.routeParamsMappings);\r\n\r\n mappings.forEach(([key, mappingValue]) => {\r\n const value = match(mappingValue.position)\r\n .with(\"pathParams\", () => pathParams?.[key])\r\n .with(\"queryParams\", () => (queryParams?.[key] ? this.decodeQueryParam(queryParams[key]) : undefined))\r\n .with(\"fragment\", () => fragment)\r\n .exhaustive();\r\n\r\n (params as any)[key] = value ?? mappingValue.default;\r\n });\r\n }\r\n\r\n return params;\r\n }\r\n\r\n refresh() {\r\n const { pathParams, queryParams, fragment } = this.paramsToRouteParams(this.paramsForm.value as TParams);\r\n this.router.navigate([\".\", pathParams], {\r\n relativeTo: this.route,\r\n queryParams,\r\n fragment,\r\n forceReload: true,\r\n replaceUrl: true,\r\n } as any);\r\n }\r\n\r\n reset() {\r\n this.paramsForm.reset(this.defaultParams, { emitEvent: false });\r\n this.refresh();\r\n }\r\n\r\n abstract onRouted(params: TParams): void | Promise<void>;\r\n\r\n paramsToRouteParams(params: TParams): RouteParams {\r\n const routeParams: RouteParams = { pathParams: {}, queryParams: {}, fragment: undefined };\r\n const mappings = Object.entries<ParamMappingValue<any>>(this.routeParamsMappings);\r\n\r\n mappings.forEach(([key, mappingValue]) => {\r\n const paramValue = (params as any)[key] ?? mappingValue.default;\r\n const defaultParamValue = (this.defaultParams as any)[key];\r\n\r\n if (paramValue == undefined || this.isEqualToDefault(paramValue, defaultParamValue)) {\r\n return;\r\n }\r\n\r\n match(mappingValue.position)\r\n .with(\"pathParams\", () => ((routeParams.pathParams as any)[key] = paramValue))\r\n .with(\"queryParams\", () => ((routeParams.queryParams as any)[key] = paramValue))\r\n .with(\"fragment\", () => (routeParams.fragment = paramValue))\r\n .exhaustive();\r\n });\r\n\r\n return routeParams;\r\n }\r\n\r\n protected isEqualToDefault(value: any, defaultValue: any): boolean {\r\n return geexIsEqual(value, defaultValue);\r\n }\r\n}\r\n","import { Component, computed, signal } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { STChange } from \"@delon/abc/st\";\nimport { gql } from \"apollo-angular\";\n\nimport { GeexHint } from \"../types\";\nimport { RoutedComponent } from \"./routed.component.base\";\n\nexport type BatchOperationName = \"delete\" | \"approve\" | \"submit\" | \"unApprove\" | \"unSubmit\";\n\nexport class ListPageParams<T> {\n pi?: number;\n ps?: number;\n /** Host GraphQL sort input; kept loose to match module-specific SortInput types. */\n sort?: any;\n}\n\n@Component({ template: \"\", standalone: true })\nexport abstract class RoutedListComponent<\n TParams extends ListPageParams<TDto>,\n TDto extends GeexHint<{ id?: string }>,\n> extends RoutedComponent<TParams> {\n data = signal<Array<GeexHint<TDto>>>([]);\n abstract columns?: any;\n total = signal(0);\n selectedData = signal<Array<GeexHint<TDto>>>([]);\n allSelected = computed(() => {\n return this.selectedData().length > 0 && this.data()?.length == this.selectedData().length;\n });\n\n onAllChecked(value: boolean): void {\n this.selectedData.set(value ? this.data() : []);\n }\n\n onItemChecked(data: TDto, checked: boolean): void {\n if (checked) {\n this.selectedData.update(selectedData => [...selectedData, data]);\n } else {\n this.selectedData.update(selectedData => selectedData.filter(x => x.id !== data.id));\n }\n }\n\n async tableChange(args: STChange) {\n if (args.type == \"loaded\") {\n return;\n }\n\n if (args.type == \"checkbox\") {\n this.onTableCheckbox(args);\n return;\n }\n\n if (args.type == \"pi\" || args.type == \"ps\") {\n this.onTablePage(args);\n }\n\n if (args.sort?.column?.index) {\n this.onTableSort(args);\n }\n }\n\n protected onTableCheckbox(args: STChange): void {\n this.selectedData.set(args.checkbox as any);\n }\n\n protected onTablePage(args: STChange): void {\n if (args.pi !== this.paramsForm.value.pi || args.ps !== this.paramsForm.value.ps) {\n this.paramsForm.patchValue({ pi: args.pi, ps: args.ps });\n this.refresh();\n }\n }\n\n protected onTableSort(args: STChange): void {\n const thisSortName = (args.sort!.column as any)[\"indexKey\"];\n let sorts = (args.sort!.map as any)[\"sort\"].split(\"-\").map((x: string) => x.split(\".\"));\n const thisSort = sorts.find((x: string[]) => x[0] == thisSortName);\n if (thisSort) {\n sorts = sorts.filter((x: string[]) => x !== thisSort);\n }\n sorts.push(thisSort);\n sorts = sorts.filter((x: string[] | undefined) => x != undefined && x[0] != \"\");\n const sortsForm = new FormGroup(Object.fromEntries(sorts.map((x: string[]) => [x[0], new FormControl(x[1])])));\n this.paramsForm.setControl(\"sort\", sortsForm as any);\n this.refresh();\n }\n\n batchOperation(operation: BatchOperationName, entityType: string, remark?: string): Promise<boolean> {\n return new Promise((resolve) => {\n const selectedData = this.selectedData();\n const filtered = this.filterBatchIds(operation, selectedData);\n if (filtered.error) {\n this.msgSrv.warning(filtered.error);\n resolve(false);\n return;\n }\n const ids = filtered.ids;\n if (!ids.length) {\n this.msgSrv.warning(\"至少选择一项\");\n resolve(false);\n return;\n }\n\n const apiName = this.buildBatchMutation(operation, entityType);\n this.confirmBatch(operation, apiName, ids, remark).then(resolve);\n });\n }\n\n protected filterBatchIds(\n operation: BatchOperationName,\n selectedData: Array<GeexHint<TDto>>,\n ): { ids: any[]; error?: string } {\n let ids = selectedData.map(x => x[\"id\"]);\n if (selectedData[0]?.[\"approveStatus\"] == undefined) {\n return { ids };\n }\n let text = \"\";\n switch (operation) {\n case \"delete\":\n case \"submit\":\n ids = selectedData.filter(x => x[\"approveStatus\"] === \"DEFAULT\").map(x => x[\"id\"]);\n text = \"只能操作未上报状态的数据\";\n break;\n case \"approve\":\n case \"unSubmit\":\n ids = selectedData.filter(x => x[\"approveStatus\"] === \"SUBMITTED\").map(x => x[\"id\"]);\n text = \"只能操作已上报状态的数据\";\n break;\n case \"unApprove\":\n ids = selectedData.filter(x => x[\"approveStatus\"] === \"APPROVED\").map(x => x[\"id\"]);\n text = \"只能操作已审核状态的数据\";\n break;\n default:\n break;\n }\n if (ids.length !== selectedData.length) {\n return { ids, error: text };\n }\n return { ids };\n }\n\n protected buildBatchMutation(operation: BatchOperationName, entityType: string): string {\n if (operation === \"delete\") {\n return `\n mutation ${operation}${entityType}($ids: [String!]!) {\n ${operation}${entityType}(ids: $ids)\n }\n `;\n }\n return `\n mutation ${operation}${entityType}($ids: [String], $remark:String) {\n ${operation}${entityType}(ids: $ids, remark:$remark)\n }\n `;\n }\n\n protected confirmBatch(\n operation: BatchOperationName,\n apiName: string,\n ids: any[],\n remark?: string,\n ): Promise<boolean> {\n return new Promise((resolve) => {\n const common = (this.I18N as { Common?: { action?: { get?(k: string): string }; message?: { get?(k: string): string } } }).Common;\n const alertMessage = common?.action?.get?.(operation) ?? operation;\n this.nzModalSrv.confirm({\n nzTitle: `确认${alertMessage}吗?`,\n nzOnOk: async () => {\n await (this.apollo.mutate({\n mutation: gql(apiName),\n variables: {\n remark,\n ids,\n },\n }) as any).firstValuePromise();\n this.msgSrv.success(common?.message?.get?.(operation) ?? \"ok\");\n this.refresh();\n resolve(true);\n },\n nzOnCancel: () => resolve(false),\n });\n });\n }\n}\n","import { Component } from \"@angular/core\";\r\n\r\nimport { GeexHint, GeexTypedFormGroup } from \"../types\";\r\nimport { RoutedComponent } from \"./routed.component.base\";\r\n\r\nfunction geexIsEqual(a: unknown, b: unknown): boolean {\r\n if (Object.is(a, b)) {\r\n return true;\r\n }\r\n try {\r\n return JSON.stringify(a) === JSON.stringify(b);\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\n@Component({\r\n template: \"\",\r\n standalone: true,\r\n})\r\nexport abstract class RoutedEditComponent<\r\n TParams extends GeexHint<{ id?: string }>,\r\n TEntity extends GeexHint<{ id?: string }>,\r\n TEditSchema extends GeexHint<Partial<TEntity>>,\r\n> extends RoutedComponent<TParams> {\r\n entity?: GeexHint<TEntity>;\r\n entityForm?: GeexTypedFormGroup<TEditSchema>;\r\n originalValue?: TEditSchema;\r\n\r\n async close() {\r\n if (await this.closableCheck()) {\r\n await this.back();\r\n }\r\n }\r\n\r\n closableCheck() {\r\n if (!this.isEntityDirty()) {\r\n return Promise.resolve(true);\r\n }\r\n return new Promise<boolean>((resolve) => {\r\n this.nzModalSrv.confirm({\r\n nzTitle: this.unsavedConfirmTitle(),\r\n nzOnOk: async () => {\r\n this.entityForm?.reset(this.originalValue);\r\n this.entityForm?.markAsPristine();\r\n resolve(true);\r\n },\r\n nzOnCancel: () => {\r\n resolve(false);\r\n },\r\n });\r\n });\r\n }\r\n\r\n protected isEntityDirty(): boolean {\r\n return !geexIsEqual(this.entityForm?.value, this.originalValue);\r\n }\r\n\r\n protected unsavedConfirmTitle(): string {\r\n return \"当前页面内容未保存,确定离开?\";\r\n }\r\n\r\n async back(reload: boolean = false) {\r\n if (reload) {\r\n if (this.params().id) {\r\n await this.router.navigate([\"../../\"], { relativeTo: this.route, replaceUrl: true, forceReload: reload } as any);\r\n } else {\r\n await this.router.navigate([\"../\"], { relativeTo: this.route, replaceUrl: true, forceReload: reload } as any);\r\n }\r\n } else {\r\n this.location.back();\r\n }\r\n }\r\n}\r\n","import { inject } from \"@angular/core\";\r\nimport { NzModalRef } from \"ng-zorro-antd/modal\";\r\n\r\n/**\r\n * Base for components opened inside nz-modal.\r\n * NzModalRef is required; only use for modal-hosted components.\r\n */\r\nexport abstract class ModalComponentBase {\r\n title = \"新增\";\r\n loading = false;\r\n protected nzModalRef = inject(NzModalRef);\r\n\r\n success(result: any = true): void {\r\n if (result) {\r\n this.nzModalRef.close(result);\r\n this.afterClose(result);\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n close(_$event?: MouseEvent): void {\r\n this.nzModalRef.close();\r\n this.afterClose(undefined);\r\n }\r\n\r\n /** Hook after modal closes; override for cleanup / analytics. */\r\n protected afterClose(_result?: unknown): void {}\r\n}\r\n","import { Component, inject } from \"@angular/core\";\n\nimport { GEEX_I18N, type GeexI18n } from \"../tokens\";\n\n@Component({\n template: \"\",\n standalone: true,\n})\nexport abstract class TreeTableComponentBase<ITreeNode = any> {\n mapOfExpandedData: { [key: string]: ITreeNode[] } = {};\n I18N: GeexI18n = inject(GEEX_I18N);\n\n protected getNodeKey(node: ITreeNode): string {\n return (node as any)[\"key\"];\n }\n\n protected getNodeChildren(node: ITreeNode): ITreeNode[] | undefined {\n return (node as any)[\"children\"];\n }\n\n collapse(array: ITreeNode[], data: ITreeNode, $event: boolean): void {\n if (!$event) {\n const children = this.getNodeChildren(data);\n if (children) {\n children.forEach(d => {\n const target = array.find(a => this.getNodeKey(a) === this.getNodeKey(d))!;\n (target as any)[\"expand\"] = false;\n this.collapse(array, target, false);\n });\n }\n }\n }\n\n convertTreeToList(root: ITreeNode): ITreeNode[] {\n const stack: ITreeNode[] = [];\n const array: ITreeNode[] = [];\n const hashMap: { [key: string]: boolean } = {};\n stack.push({ ...(root as any), level: 0, expand: false });\n\n while (stack.length !== 0) {\n const node = stack.pop()!;\n this.visitNode(node, hashMap, array);\n const children = this.getNodeChildren(node);\n if (children) {\n for (let i = children.length - 1; i >= 0; i--) {\n stack.push({\n ...(children[i] as any),\n level: ((node as any)[\"level\"] ?? 0) + 1,\n expand: false,\n parent: node,\n });\n }\n }\n }\n\n return array;\n }\n\n visitNode(node: ITreeNode, hashMap: { [key: string]: boolean }, array: ITreeNode[]): void {\n const key = this.getNodeKey(node);\n if (!hashMap[key]) {\n hashMap[key] = true;\n array.push(node);\n }\n }\n}\n","import { effect, Injectable, Injector } from \"@angular/core\";\r\nimport {\r\n Router,\r\n NavigationExtras,\r\n UrlTree,\r\n NavigationEnd,\r\n RouteConfigLoadEnd,\r\n Route,\r\n} from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\nimport { P } from \"ts-pattern\";\r\nimport { match } from \"ts-pattern\";\r\nimport { ReuseTabService } from \"@delon/abc/reuse-tab\";\r\nimport rison from \"../../rison\";\r\n\r\nimport { RoutedComponent } from \"../base/routed.component.base\";\r\n\r\n@Injectable()\r\nexport class GeexRouter extends Router {\r\n lastRoute!: Route;\r\n constructor(injector: Injector) {\r\n super();\r\n const routerEvent = (this.events as any).toSignal();\r\n effect(() => {\r\n match(routerEvent())\r\n .with(P.instanceOf(RouteConfigLoadEnd), (x: RouteConfigLoadEnd) => {\r\n this.lastRoute = x.route;\r\n })\r\n .with(P.instanceOf(NavigationEnd), async (x: NavigationEnd) => {\r\n const tabSrv = injector.get(ReuseTabService);\r\n const location = injector.get(Location);\r\n const cachedTabs = tabSrv.items;\r\n const deepest = (this.routerState.snapshot.root as any).getDeepestRouteConfig?.();\r\n const activeRoutedPage = deepest?.component;\r\n if (!(activeRoutedPage?.prototype instanceof RoutedComponent)) {\r\n return;\r\n }\r\n const currentUrl = this.lastSuccessfulNavigation?.extractedUrl?.toString();\r\n const previousUrl = this.lastSuccessfulNavigation?.previousNavigation?.extractedUrl?.toString();\r\n\r\n const cachedTab = cachedTabs.find(tab => tab.url === previousUrl);\r\n if (\r\n this.lastRoute?.data?.[\"reuse\"] === false ||\r\n ((this.lastSuccessfulNavigation?.extras as any)?.replaceUrl &&\r\n currentUrl !== previousUrl &&\r\n this.isDifferentPath(currentUrl, previousUrl))\r\n ) {\r\n cachedTab && tabSrv.close(previousUrl!);\r\n }\r\n if ((this.lastSuccessfulNavigation?.extras as any)?.forceReload || cachedTabs.every(tab => tab.url !== currentUrl)) {\r\n (this as any).navigationReload.set({\r\n ...x,\r\n ...this.lastSuccessfulNavigation,\r\n });\r\n }\r\n location.replaceState(currentUrl!);\r\n });\r\n }, {});\r\n }\r\n\r\n private isDifferentPath(currentUrl?: string, previousUrl?: string): boolean {\r\n if (!currentUrl || !previousUrl) {\r\n return true;\r\n }\r\n const getCurrentPath = (url: string) => {\r\n const questionMarkIndex = url.indexOf(\"?\");\r\n return questionMarkIndex === -1 ? url : url.substring(0, questionMarkIndex);\r\n };\r\n return getCurrentPath(currentUrl) !== getCurrentPath(previousUrl);\r\n }\r\n\r\n override createUrlTree(commands: any[], navigationExtras: NavigationExtras = {}): UrlTree {\r\n if (navigationExtras.queryParams) {\r\n const processedParams: Record<string, unknown> = {};\r\n for (const key in navigationExtras.queryParams) {\r\n const value = navigationExtras.queryParams[key];\r\n try {\r\n processedParams[key] = rison.encode(value);\r\n } catch (e) {\r\n console.warn(e);\r\n processedParams[key] = value;\r\n }\r\n }\r\n navigationExtras = {\r\n ...navigationExtras,\r\n queryParams: processedParams,\r\n };\r\n }\r\n return super.createUrlTree(commands, navigationExtras);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, DetachedRouteHandle } from \"@angular/router\";\r\nimport { ReuseTabStrategy } from \"@delon/abc/reuse-tab\";\r\n\r\n/**\r\n * Hardens Delon ReuseTabStrategy against undefined snapshots / empty-path leaves\r\n * that otherwise throw during createRouterState / outlet.detach (NG04012).\r\n */\r\n@Injectable()\r\nexport class GeexReuseTabStrategy extends ReuseTabStrategy {\r\n override shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n if (!future || !curr) {\r\n return false;\r\n }\r\n return super.shouldReuseRoute(future, curr);\r\n }\r\n\r\n override shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n if (!route?.routeConfig || route.routeConfig.path === \"\") {\r\n return false;\r\n }\r\n return super.shouldDetach(route);\r\n }\r\n\r\n override retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\r\n if (!route?.routeConfig) {\r\n return null;\r\n }\r\n return super.retrieve(route);\r\n }\r\n\r\n override shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n if (!route?.routeConfig) {\r\n return false;\r\n }\r\n return super.shouldAttach(route);\r\n }\r\n}\r\n","import { Component, contentChild, inject, input, output, TemplateRef } from \"@angular/core\";\nimport { PageHeaderModule } from \"@delon/abc/page-header\";\nimport { STChange, STColumn, STData, STModule } from \"@delon/abc/st\";\nimport { NzAlertModule } from \"ng-zorro-antd/alert\";\nimport { NzCardModule } from \"ng-zorro-antd/card\";\nimport { NzDividerModule } from \"ng-zorro-antd/divider\";\nimport { NzIconModule } from \"ng-zorro-antd/icon\";\n\nimport { GEEX_I18N } from \"../tokens\";\n\n@Component({\n selector: \"list-page-layout\",\n standalone: true,\n imports: [PageHeaderModule, STModule, NzCardModule, NzAlertModule, NzDividerModule, NzIconModule],\n template: `\n <page-header [title]=\"title()\" [tab]=\"headerTabTpl()\" [extra]=\"headerExtraTpl()\" [action]=\"headerActionTpl()\">\n @if (filtersInHeader()) {\n <ng-content select=\"[filters]\" />\n }\n </page-header>\n\n <nz-card>\n @if (!filtersInHeader()) {\n <ng-content select=\"[filters]\" />\n }\n <nz-alert class=\"mb-sm\" nzType=\"info\" nzShowIcon [nzMessage]=\"selectionMessage\">\n <ng-template #selectionMessage>\n <span>{{ selectedLabel }}{{ selectedCount() }}{{ selectedUnitLabel }}</span>\n <nz-divider nzType=\"vertical\" />\n <a (click)=\"refresh.emit()\">\n <i nz-icon nzType=\"reload\"></i>\n {{ refreshLabel }}\n </a>\n <ng-content select=\"[toolbar]\" />\n </ng-template>\n </nz-alert>\n <st\n class=\"mt-sm\"\n [multiSort]=\"multiSort()\"\n [loading]=\"loading()\"\n [total]=\"total()\"\n [data]=\"data()\"\n [pi]=\"pi()\"\n [ps]=\"ps()\"\n [columns]=\"columns()\"\n (change)=\"tableChange.emit($event)\"\n />\n </nz-card>\n `,\n})\nexport class ListPageLayoutComponent {\n private i18n = inject(GEEX_I18N, { optional: true });\n\n title = input.required<string>();\n loading = input(false);\n total = input(0);\n data = input<STData[]>([]);\n columns = input<STColumn[]>([]);\n pi = input(1);\n ps = input(10);\n selectedCount = input(0);\n multiSort = input(true);\n filtersInHeader = input(true);\n\n tableChange = output<STChange>();\n refresh = output<void>();\n\n headerExtraTpl = contentChild<TemplateRef<void>>(\"headerExtra\");\n headerTabTpl = contentChild<TemplateRef<void>>(\"headerTab\");\n headerActionTpl = contentChild<TemplateRef<void>>(\"headerAction\");\n\n get selectedLabel() {\n return (this.i18n as { Common?: { list?: { selected?: string } } } | null)?.Common?.list?.selected ?? \"\";\n }\n get selectedUnitLabel() {\n return (this.i18n as { Common?: { list?: { selectedUnit?: string } } } | null)?.Common?.list?.selectedUnit ?? \"\";\n }\n get refreshLabel() {\n return (this.i18n as { Common?: { list?: { refresh?: string } } } | null)?.Common?.list?.refresh ?? \"Refresh\";\n }\n}\n","import { importProvidersFrom, type EnvironmentProviders, type Provider, type Type } from \"@angular/core\";\nimport { RouteReuseStrategy, Router } from \"@angular/router\";\nimport { provideReuseTabConfig } from \"@delon/abc/reuse-tab\";\nimport { AlainThemeModule } from \"@delon/theme\";\nimport { DelonFormModule } from \"@delon/form\";\n\nimport { GEEX_APP_PERMISSION, type GeexAppPermission } from \"./tokens\";\nimport { GeexRouter } from \"./router/geex-router\";\nimport { GeexReuseTabStrategy } from \"./router/geex-reuse-tab.strategy\";\n\ntype GeexReuseTabOptions = NonNullable<Parameters<typeof provideReuseTabConfig>[0]>;\n\nexport interface GeexDelonProvideOptions {\n router?: Type<Router>;\n reuseStrategy?: Type<RouteReuseStrategy>;\n appPermission?: GeexAppPermission;\n reuseTab?: GeexReuseTabOptions;\n}\n\n/**\n * Delon-coupled Core providers (Router subclass + ReuseTab + optional AppPermission).\n */\nexport function provideGeexDelonBase(\n options: GeexDelonProvideOptions = {},\n): Array<Provider | EnvironmentProviders> {\n return [\n ...(options.appPermission ? [{ provide: GEEX_APP_PERMISSION, useValue: options.appPermission }] : []),\n ...(options.reuseTab ? [provideReuseTabConfig(options.reuseTab)] : []),\n { provide: Router, useClass: options.router ?? GeexRouter },\n { provide: RouteReuseStrategy, useClass: options.reuseStrategy ?? GeexReuseTabStrategy },\n importProvidersFrom(AlainThemeModule.forRoot(), DelonFormModule.forRoot()),\n ];\n}\n","// @ts-nocheck\r\nimport { List } from \"linqts-camelcase\";\r\ndeclare global {\r\n interface ReadonlyArray<T> {\r\n any(): boolean;\r\n any(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): boolean;\r\n any(predicate?: any): any;\r\n first(): T;\r\n first(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): T;\r\n first(predicate?: any): any;\r\n firstOrDefault(defaultValue?: Partial<T>): T;\r\n firstOrDefault(\r\n predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n defaultValue?: Partial<T>,\r\n ): T;\r\n firstOrDefault(predicate?: any, defaultValue?: Partial<T>): any;\r\n }\r\n interface Array<T> {\r\n add(element: T): void;\r\n addRange(elements: T[]): void;\r\n aggregate<U>(\r\n accumulator: (accum: U, value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => any,\r\n initialValue?: U | undefined,\r\n ): any;\r\n all(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): boolean;\r\n any(): boolean;\r\n clear(): void;\r\n any(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): boolean;\r\n any(predicate?: any): any;\r\n average(): number;\r\n average(transform: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => any): number;\r\n average(transform?: any): any;\r\n contains(element: T): boolean;\r\n count(): number;\r\n count(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): number;\r\n count(predicate?: any): any;\r\n defaultIfEmpty(defaultValue?: T | undefined): T[];\r\n distinct(): T[];\r\n distinctBy(keySelector: (key: T) => string | number): T[];\r\n elementAt(index: number): T;\r\n toArray(): T[];\r\n elementAtOrDefault(index: number): T | undefined;\r\n except(source: T[]): T[];\r\n first(): T;\r\n first(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): T;\r\n first(predicate?: any): any;\r\n firstOrDefault(defaultValue?: Partial<T>): T;\r\n firstOrDefault(\r\n predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n defaultValue?: Partial<T>,\r\n ): T;\r\n firstOrDefault(predicate?: any, defaultValue?: Partial<T>): any;\r\n groupBy<TResult = T>(\r\n grouper: (key: T) => string | number,\r\n mapper?: ((element: T) => TResult) | undefined,\r\n ): { [key: string]: TResult[] };\r\n groupJoin<U, R>(list: List<U>, key1: (k: T) => any, key2: (k: U) => any, result: (first: T, second: List<U>) => any): R[];\r\n insert(index: number, element: T): void | Error;\r\n intersect(source: T[]): T[];\r\n linqJoin<U, R>(list: List<U>, key1: (key: T) => any, key2: (key: U) => any, result: (first: T, second: U) => R): R[];\r\n last(): T;\r\n last(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): T;\r\n last(predicate?: any): any;\r\n lastOrDefault(): T;\r\n lastOrDefault(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): T;\r\n lastOrDefault(predicate?: any): any;\r\n max(): number;\r\n max(selector: (value: T, index: number, array: T[]) => number): number;\r\n max(selector?: any): any;\r\n min(): number;\r\n min(selector: (value: T, index: number, array: T[]) => number): number;\r\n min(selector?: any): any;\r\n ofType<U>($type: any): List<U>;\r\n orderBy(keySelector: (key: T) => any, comparer?: ((a: T, b: T) => number) | undefined): T[];\r\n orderByDescending(keySelector: (key: T) => any, comparer?: ((a: T, b: T) => number) | undefined): T[];\r\n thenBy(keySelector: (key: T) => any): T[];\r\n thenByDescending(keySelector: (key: T) => any): T[];\r\n remove(element: T): boolean;\r\n removeAll(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): T[];\r\n removeAt(index: number): void;\r\n selectMany<TOut extends any[]>(selector: (element: T, index: number) => TOut): TOut;\r\n sequenceEqual(list: T[]): boolean;\r\n single(predicate?: ((value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean) | undefined): T;\r\n singleOrDefault(predicate?: ((value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean) | undefined): T;\r\n skip(amount: number): T[];\r\n skipWhile(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): T[];\r\n sum(): number;\r\n sum(transform: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => number): number;\r\n sum(transform?: any): any;\r\n take(amount: number): T[];\r\n takeWhile(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): T[];\r\n toDictionary<TKey>(key: (key: T) => TKey): List<{ Key: TKey; Value: T }>;\r\n toDictionary<TKey, TValue>(key: (key: T) => TKey, value: (value: T) => TValue): List<{ Key: TKey; Value: T | TValue }>;\r\n toDictionary(key: any, value?: any): any;\r\n toLookup<TResult>(keySelector: (key: T) => string | number, elementSelector: (element: T) => TResult): { [key: string]: TResult[] };\r\n union(list: T[]): T[];\r\n where(predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean): T[];\r\n zip<U, TOut>(list: U[], result: (first: T, second: U) => TOut): TOut[];\r\n }\r\n}\r\nArray.prototype.add = function add<T>(this: T[], element: T): void {\r\n return List.prototype.add.bind(new List(this), element)();\r\n};\r\nArray.prototype.clear = function clear<T>(this: T[]): void {\r\n while (this.pop()) {}\r\n};\r\nArray.prototype.addRange = function addRange<T>(this: T[], elements: T[]): void {\r\n return List.prototype.addRange.bind(new List(this), elements)();\r\n};\r\nArray.prototype.aggregate = function aggregate<T, U>(\r\n this: T[],\r\n accumulator: (accum: U, value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => any,\r\n initialValue?: U | undefined,\r\n) {\r\n return List.prototype.aggregate.bind(new List(this), accumulator, initialValue)();\r\n};\r\nArray.prototype.all = function all<T>(\r\n this: T[],\r\n predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n): boolean {\r\n return List.prototype.all.bind(new List(this), predicate)();\r\n};\r\nArray.prototype.any = function any<T>(\r\n this: T[],\r\n predicate?: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n): boolean {\r\n if (this === undefined) {\r\n return false;\r\n }\r\n return List.prototype.any.bind(new List(this), predicate!)();\r\n};\r\nArray.prototype.average = function average<T>(\r\n this: T[],\r\n transform?: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => any,\r\n): number {\r\n return List.prototype.average.bind(new List(this))(transform).toArray();\r\n};\r\n\r\nArray.prototype.contains = function contains<T>(element: T): boolean {\r\n return List.prototype.contains.bind(new List(this), element)();\r\n};\r\nArray.prototype.count = function count<T>(\r\n this: T[],\r\n predicate?: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n): number {\r\n return List.prototype.count.bind(new List(this))(predicate);\r\n};\r\nArray.prototype.defaultIfEmpty = function defaultIfEmpty<T>(this: T[], defaultValue?: T | undefined): T[] {\r\n return List.prototype.defaultIfEmpty.bind(new List(this))(defaultValue).toArray();\r\n};\r\nArray.prototype.distinct = function distinct<T>(this: T[]): T[] {\r\n return List.prototype.distinct.bind(new List(this))().toArray();\r\n};\r\nArray.prototype.distinctBy = function distinctBy<T>(this: T[], keySelector: (key: T) => string | number): T[] {\r\n return List.prototype.distinctBy.bind(new List(this))(keySelector).toArray();\r\n};\r\nArray.prototype.elementAt = function elementAt<T>(this: T[], index: number): T {\r\n return List.prototype.elementAt.bind(new List(this))(index);\r\n};\r\nArray.prototype.elementAtOrDefault = function elementAtOrDefault<T>(this: T[], index: number): T | undefined {\r\n if (this?.length) {\r\n if (this.length <= index) {\r\n return undefined;\r\n }\r\n return List.prototype.elementAtOrDefault.bind(new List(this))(index);\r\n }\r\n return undefined;\r\n};\r\nArray.prototype.except = function except<T>(this: T[], source: T[]): T[] {\r\n return List.prototype.except.bind(new List(this))(source).toArray();\r\n};\r\nArray.prototype.first = function first<T>(\r\n this: T[],\r\n predicate?: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n): T {\r\n return List.prototype.first.bind(new List(this), predicate)();\r\n};\r\nArray.prototype.firstOrDefault = function firstOrDefault<T>(\r\n this: T[],\r\n predicate?: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n defaultValue?: T,\r\n): T | undefined {\r\n const result = List.prototype.firstOrDefault.bind(new List(this), predicate)();\r\n return result === undefined ? defaultValue : result;\r\n};\r\nArray.prototype.first = function first<T>(\r\n this: T[],\r\n predicate?: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n): T {\r\n return List.prototype.first.bind(new List(this), predicate)();\r\n};\r\nArray.prototype.firstOrDefault = function firstOrDefault<T>(\r\n this: T[],\r\n predicate?: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n defaultValue?: T,\r\n): T | undefined {\r\n const result = List.prototype.firstOrDefault.bind(new List(this), predicate)();\r\n return result === undefined ? defaultValue : result;\r\n};\r\nArray.prototype.groupBy = function groupBy<T, TResult = T>(\r\n grouper: (key: T) => string | number,\r\n mapper?: ((element: T) => TResult) | undefined,\r\n): { [key: string]: TResult[] } {\r\n return List.prototype.groupBy.bind(new List(this))(grouper, mapper);\r\n};\r\nArray.prototype.groupJoin = function groupJoin<T, U, R>(\r\n list: List<U>,\r\n key1: (k: T) => any,\r\n key2: (k: U) => any,\r\n result: (first: T, second: List<U>) => any,\r\n): R[] {\r\n return List.prototype.groupJoin.bind(new List(this), key1, key2, result)().toArray();\r\n};\r\nArray.prototype.insert = function insert<T>(this: T[], index: number, element: T): void | Error {\r\n return List.prototype.insert.bind(new List(this))(index, element);\r\n};\r\nArray.prototype.intersect = function intersect<T>(this: T[], source: T[]): T[] {\r\n return List.prototype.intersect.bind(new List(this), new List(source))().toArray();\r\n};\r\nArray.prototype.linqJoin = function linqJoin<T, U, R>(\r\n list: List<U>,\r\n key1: (key: T) => any,\r\n key2: (key: U) => any,\r\n result: (first: T, second: U) => R,\r\n): R[] {\r\n return List.prototype.join.bind(new List(this), key1, key2, result)().toArray();\r\n};\r\nArray.prototype.last = function last<T>(\r\n this: T[],\r\n predicate?: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n): T {\r\n return List.prototype.last.bind(new List(this))(predicate);\r\n};\r\nArray.prototype.lastOrDefault = function lastOrDefault<T>(\r\n this: T[],\r\n predicate?: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n): T {\r\n return List.prototype.lastOrDefault.bind(new List(this))(predicate);\r\n};\r\nArray.prototype.max = function max<T>(this: T[], selector?: (value: T, index: number, array: T[]) => number): number {\r\n return List.prototype.max.bind(new List(this))(selector);\r\n};\r\nArray.prototype.min = function min<T>(this: T[], selector?: (value: T, index: number, array: T[]) => number): number {\r\n return List.prototype.min.bind(new List(this))(selector);\r\n};\r\nArray.prototype.ofType = function ofType<T, U>($type: any): List<U> {\r\n return List.prototype.ofType.bind(new List(this), $type)();\r\n};\r\nArray.prototype.orderBy = function orderBy<T>(\r\n this: T[],\r\n keySelector: (key: T) => any,\r\n comparer?: ((a: T, b: T) => number) | undefined,\r\n): T[] {\r\n return List.prototype.orderBy.bind(new List(this), keySelector, comparer)().toArray();\r\n};\r\nArray.prototype.orderByDescending = function orderByDescending<T>(\r\n this: T[],\r\n keySelector: (key: T) => any,\r\n comparer?: ((a: T, b: T) => number) | undefined,\r\n): T[] {\r\n return List.prototype.orderByDescending.bind(new List(this), keySelector, comparer)().toArray();\r\n};\r\nArray.prototype.thenBy = function thenBy<T>(this: T[], keySelector: (key: T) => any): T[] {\r\n return List.prototype.thenBy.bind(new List(this), keySelector)().toArray();\r\n};\r\nArray.prototype.thenByDescending = function thenByDescending<T>(this: T[], keySelector: (key: T) => any): T[] {\r\n return List.prototype.thenByDescending.bind(new List(this), keySelector)().toArray();\r\n};\r\nArray.prototype.remove = function remove<T>(this: T[], element: T): boolean {\r\n return List.prototype.remove.bind(new List(this), element)();\r\n};\r\nArray.prototype.removeAll = function removeAll<T>(\r\n this: T[],\r\n predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n): T[] {\r\n return List.prototype.removeAll.bind(new List(this))(predicate).toArray();\r\n};\r\nArray.prototype.removeAt = function removeAt<T>(this: T[], index: number): void {\r\n return List.prototype.removeAt.bind(new List(this), index)();\r\n};\r\n\r\nArray.prototype.selectMany = function selectMany<T, TOut extends T[]>(this: T[], selector: (element: T, index: number) => TOut): TOut {\r\n return List.prototype.selectMany.bind(new List(this))(selector).toArray();\r\n};\r\nArray.prototype.sequenceEqual = function sequenceEqual<T>(this: T[], list: T[]): boolean {\r\n if (this?.length !== list?.length) {\r\n return false;\r\n }\r\n if (this?.length === 0 && this?.length === list?.length) {\r\n return true;\r\n }\r\n for (let i = 0; i < this.length; i++) {\r\n const element = this[i];\r\n if (this[i] === list[i]) {\r\n continue;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\nArray.prototype.single = function single<T>(\r\n predicate?: ((value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean) | undefined,\r\n): T {\r\n return List.prototype.single.bind(new List(this), predicate)();\r\n};\r\nArray.prototype.singleOrDefault = function singleOrDefault<T>(\r\n predicate?: ((value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean) | undefined,\r\n): T {\r\n return List.prototype.singleOrDefault.bind(new List(this), predicate)();\r\n};\r\nArray.prototype.skip = function skip<T>(amount: number): T[] {\r\n return List.prototype.skip.bind(new List(this), amount)().toArray();\r\n};\r\nArray.prototype.skipWhile = function skipWhile<T>(\r\n predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n): T[] {\r\n return List.prototype.skipWhile.bind(new List(this), predicate)().toArray();\r\n};\r\nArray.prototype.sum = function sum<T>(\r\n this: T[],\r\n transform?: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => number,\r\n): number {\r\n return List.prototype.sum.bind(new List(this))(transform);\r\n};\r\nArray.prototype.take = function take<T>(this: T[], amount: number): T[] {\r\n return List.prototype.take.bind(new List(this), amount)().toArray();\r\n};\r\nArray.prototype.takeWhile = function takeWhile<T>(\r\n this: T[],\r\n predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n): T[] {\r\n return List.prototype.takeWhile.bind(this, predicate)().toArray();\r\n};\r\nArray.prototype.toLookup = function toLookup<T, TResult>(\r\n keySelector: (key: T) => string | number,\r\n elementSelector: (element: T) => TResult,\r\n): { [key: string]: TResult[] } {\r\n return List.prototype.toLookup.bind(new List(this), keySelector, elementSelector)();\r\n};\r\nArray.prototype.union = function union<T>(this: T[], list: T[]): T[] {\r\n return List.prototype.union.bind(new List(this), list)().toArray();\r\n};\r\nArray.prototype.where = function where<T>(\r\n this: T[],\r\n predicate: (value?: T | undefined, index?: number | undefined, list?: T[] | undefined) => boolean,\r\n): T[] {\r\n return List.prototype.where.bind(new List(this), predicate)().toArray();\r\n};\r\nArray.prototype.toArray = function where<T>(this: T[]): T[] {\r\n return this;\r\n};\r\nArray.prototype.zip = function zip<T, U, TOut>(list: U[], result: (first: T, second: U) => TOut): TOut[] {\r\n return List.prototype.zip.bind(new List(this))(list, result).toArray();\r\n};\r\n","import { List } from \"linqts-camelcase\";\r\ndeclare global {\r\n interface String {\r\n contains(this: string, value: string): boolean;\r\n }\r\n}\r\n\r\nString.prototype.contains = function (this: string, value: string): boolean {\r\n return this.indexOf(value) >= 0;\r\n};\r\n","import { computed, CreateSignalOptions, effect, ExtendedSignal, isSignal, Signal, signal, untracked, WritableSignal } from \"@angular/core\";\r\nimport { firstValueFrom, isObservable, Observable, of } from \"rxjs\";\r\n\r\ndeclare module \"@angular/core\" {\r\n interface SignalExtensions<T> {\r\n toDebounced(debounceTimeInMs: number): ExtendedSignal<T>;\r\n toObservable(): Observable<T>;\r\n }\r\n\r\n export type ExtendedSignal<T> = Signal<T> &\r\n SignalExtensions<T> & {\r\n toDeepSignal(): DeepSignal<T>;\r\n };\r\n export type ExtendedWritableSignal<T> = WritableSignal<T> &\r\n SignalExtensions<T> & {\r\n toDeepSignal(): WritableDeepSignal<T>;\r\n };\r\n\r\n function signal<T>(initialValue: T, options?: CreateSignalOptions<T>): ExtendedWritableSignal<T>;\r\n}\r\n\r\ntype IsRecord<T> = T extends object\r\n ? T extends unknown[]\r\n ? false\r\n : T extends Set<unknown>\r\n ? false\r\n : T extends Map<unknown, unknown>\r\n ? false\r\n : T extends Function\r\n ? false\r\n : true\r\n : false;\r\n\r\ntype IsUnknownRecord<T> = string extends keyof T ? true : number extends keyof T ? true : false;\r\n\r\ntype IsKnownRecord<T> = IsRecord<T> extends true ? (IsUnknownRecord<T> extends true ? false : true) : false;\r\n\r\nexport type DeepSignal<T> = ExtendedSignal<T> &\r\n (IsKnownRecord<T> extends true\r\n ? Readonly<{\r\n [K in keyof T]: IsKnownRecord<T[K]> extends true ? DeepSignal<T[K]> : ExtendedSignal<T[K]>;\r\n }>\r\n : unknown);\r\n\r\nexport type WritableDeepSignal<T> = Signal<T> &\r\n WritableSignal<T> &\r\n (IsKnownRecord<T> extends true\r\n ? Readonly<{\r\n [K in keyof T]: IsKnownRecord<T[K]> extends true ? WritableDeepSignal<T[K]> : WritableSignal<T[K]>;\r\n }>\r\n : unknown);\r\n\r\nexport function deepSignal<T>(initialValue: T, options?: CreateSignalOptions<T>): WritableDeepSignal<T> {\r\n const result = toDeepSignal(signal(initialValue, options));\r\n return result;\r\n}\r\n\r\nfunction toDeepSignal<T>(source: ExtendedSignal<T>): DeepSignal<T>;\r\nfunction toDeepSignal<T>(source: WritableSignal<T>): WritableDeepSignal<T>;\r\nfunction toDeepSignal<T>(source: ExtendedSignal<T> | WritableSignal<T>): DeepSignal<T> | WritableDeepSignal<T> {\r\n const value = untracked(() => source());\r\n if (!isRecord(value)) {\r\n return source as DeepSignal<T>;\r\n }\r\n if (\"set\" in source && typeof (source as WritableSignal<T>).set === \"function\") {\r\n return new Proxy(source as WritableSignal<T>, {\r\n get(target: any, prop) {\r\n if (!(prop in value) && prop in target) {\r\n return target[prop];\r\n }\r\n\r\n if (isSignal(target[prop])) {\r\n Object.defineProperty(target, prop, {\r\n value: computed(() => target()[prop]),\r\n configurable: true,\r\n });\r\n }\r\n\r\n if (target[prop] == undefined) {\r\n return signal(target[prop]);\r\n }\r\n\r\n return toDeepSignal(target[prop]);\r\n },\r\n set(target: any, prop: PropertyKey, value: any) {\r\n if (isSignal(target[prop])) {\r\n (target[prop] as WritableSignal<any>).set(value);\r\n } else {\r\n target[prop] = value;\r\n }\r\n return true;\r\n },\r\n }) as WritableDeepSignal<T>;\r\n }\r\n return new Proxy(signal, {\r\n get(target: any, prop) {\r\n if (!(prop in value) && prop in target) {\r\n return target[prop];\r\n }\r\n\r\n if (!isSignal(target[prop])) {\r\n Object.defineProperty(target, prop, {\r\n value: computed(() => target()[prop]),\r\n configurable: true,\r\n });\r\n }\r\n\r\n return toDeepSignal(target[prop]);\r\n },\r\n });\r\n}\r\n\r\nfunction isRecord(value: unknown): value is Record<string, unknown> {\r\n return value?.constructor === Object;\r\n}\r\n\r\nfunction toDebounced<T>(sourceSignal: ExtendedSignal<T>, debounceTimeInMs = 0): ExtendedSignal<T> {\r\n const debounceSignal = signal(sourceSignal());\r\n effect(onCleanup => {\r\n const value = sourceSignal();\r\n const timeout = setTimeout(() => debounceSignal.set(value), debounceTimeInMs);\r\n onCleanup(() => clearTimeout(timeout));\r\n }, {});\r\n return debounceSignal as unknown as ExtendedSignal<T>;\r\n}\r\nconst signal1 = signal(null);\r\nconst signalProto = Object.getPrototypeOf(signal1) as Record<string, unknown>;\r\nsignalProto[\"toDebounced\"] = function (this: ExtendedSignal<any>, debounceTimeInMs = 0) {\r\n return toDebounced(this, debounceTimeInMs);\r\n};\r\n\r\nsignalProto[\"toDeepSignal\"] = function (this: ExtendedSignal<any>) {\r\n return toDeepSignal(this);\r\n};\r\n\r\nfunction toObservable<T>(sourceSignal: ExtendedSignal<T>): ExtendedSignal<T> {\r\n return of(sourceSignal()) as unknown as ExtendedSignal<T>;\r\n}\r\nsignalProto[\"toObservable\"] = function (this: ExtendedSignal<any>) {\r\n return toObservable(this);\r\n};\r\n\r\nexport function computedAsync<T>(computation: () => Observable<T> | Promise<T> | T | undefined | null): Signal<T | null> {\r\n const resultSignal = signal<T | null>(null);\r\n\r\n effect(async () => {\r\n const result = computation();\r\n const unwrappedResult = await (isObservable(result) ? firstValueFrom(result as Observable<T>, { defaultValue: null }) : result);\r\n\r\n resultSignal.set(unwrappedResult as T | null);\r\n }, {});\r\n\r\n return resultSignal.asReadonly();\r\n}\r\n","import { ExtendedSignal } from \"@angular/core\";\r\nimport { ToSignalOptions, toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { filter, firstValueFrom, lastValueFrom, map, Observable, ObservableInput, ObservedValueOf, switchMap } from \"rxjs\";\r\nimport { DeepSignal } from \"./signal.extension\";\r\n\r\ndeclare module \"rxjs\" {\r\n interface Observable<T> {\r\n lastValuePromise(this: this): Promise<T | undefined>;\r\n firstValuePromise(this: this): Promise<T | undefined>;\r\n toSignal(\r\n this: this,\r\n options?: ToSignalOptions<T> & {\r\n deep?: false;\r\n initialValue?: T;\r\n requireSync?: false;\r\n },\r\n ): ExtendedSignal<T>;\r\n toSignal(\r\n this: this,\r\n options?: ToSignalOptions<T> & {\r\n deep?: true;\r\n initialValue?: T;\r\n requireSync?: false;\r\n },\r\n ): DeepSignal<T>;\r\n pipeMap<R>(this: this, project: (value: T, index: number) => R | undefined): Observable<R | undefined>;\r\n pipeSwitchMap<R extends ObservableInput<any>>(this: this, project: (value: T, index: number) => R): Observable<ObservedValueOf<R>>;\r\n pipeFilter(this: this, predicate: (value: T, index: number) => boolean): Observable<T | undefined>;\r\n }\r\n}\r\n\r\nObservable.prototype.lastValuePromise = function () {\r\n return lastValueFrom(this);\r\n};\r\n\r\nObservable.prototype.firstValuePromise = function () {\r\n return firstValueFrom(this);\r\n};\r\nObservable.prototype.toSignal = function (options) {\r\n if (options?.deep) {\r\n return (toSignal(this, options) as ExtendedSignal<any>).toDeepSignal();\r\n }\r\n return toSignal(this, options!) as ExtendedSignal<any>;\r\n};\r\nObservable.prototype.pipeMap = function (project) {\r\n return this.pipe(map(project));\r\n};\r\nObservable.prototype.pipeSwitchMap = function (project) {\r\n return this.pipe(switchMap(project));\r\n};\r\n\r\nObservable.prototype.pipeFilter = function (predicate) {\r\n return this.pipe(filter(predicate));\r\n};\r\n","import { signal, Signal, WritableSignal } from \"@angular/core\";\r\n\r\nimport {\r\n AbstractControl,\r\n AbstractControlOptions,\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n FormArray,\r\n TypedFormGroup,\r\n ValueOrTypedAbstractControl,\r\n} from \"@angular/forms\";\r\nimport {\r\n ActivatedRouteSnapshot,\r\n GeexRoute,\r\n NavigationEnd,\r\n Navigation,\r\n Route,\r\n Router,\r\n Data,\r\n UrlCreationOptions,\r\n NavigationBehaviorOptions,\r\n} from \"@angular/router\";\r\nimport * as _ from \"lodash-es\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nfunction getResolvedUrl(this: ActivatedRouteSnapshot): string {\r\n return (this as any)[\"_routerState\"].url;\r\n}\r\n\r\nfunction getConfiguredUrl(this: ActivatedRouteSnapshot): string {\r\n return `/${this.pathFromRoot\r\n .filter(v => v.routeConfig)\r\n .map(v => v.routeConfig!.path)\r\n .where(x => x != \"\")\r\n .join(\"/\")}`;\r\n}\r\n\r\nfunction getDeepestRouteConfig(this: ActivatedRouteSnapshot): GeexRoute | null {\r\n let currentRoute = this;\r\n\r\n while (currentRoute.firstChild) {\r\n currentRoute = currentRoute.firstChild;\r\n }\r\n\r\n return currentRoute.routeConfig;\r\n}\r\n\r\nActivatedRouteSnapshot.prototype.getResolvedUrl = getResolvedUrl;\r\nActivatedRouteSnapshot.prototype.getConfiguredUrl = getConfiguredUrl;\r\nActivatedRouteSnapshot.prototype.getDeepestRouteConfig = getDeepestRouteConfig;\r\n\r\ndeclare module \"@angular/router\" {\r\n interface ActivatedRouteSnapshot {\r\n getResolvedUrl(): string;\r\n getConfiguredUrl(): string;\r\n getDeepestRouteConfig(): GeexRoute | null;\r\n }\r\n interface RouteData extends Data {\r\n singleton?: boolean;\r\n reuse?: boolean;\r\n title?: string;\r\n }\r\n\r\n interface NavigationBehaviorOptions {\r\n forceReload?: boolean;\r\n }\r\n\r\n type GeexRoutes = GeexRoute[];\r\n interface GeexRoute extends Route {\r\n data?: RouteData;\r\n }\r\n\r\n interface Router {\r\n navigationReload: WritableSignal<NavigationEnd | undefined>;\r\n }\r\n}\r\n\r\nObject.defineProperty(Router.prototype, \"navigationReload\", {\r\n value: signal<NavigationEnd | undefined>(undefined as unknown as NavigationEnd),\r\n writable: false,\r\n});\r\n\r\ndeclare module \"@angular/forms\" {\r\n type IsArray<TValue> = TValue extends Array<any> ? true : false;\r\n\r\n type IsObject<TValue> = TValue extends object ? (TValue extends Array<any> ? false : TValue extends Date ? false : true) : false;\r\n\r\n export type TypedAbstractControl<TValue> =\r\n IsArray<TValue> extends true\r\n ? TypedFormArray<TValue extends Array<infer U> ? U : never> & FormControl<TValue>\r\n : IsObject<TValue> extends true\r\n ? TypedFormGroup<TValue> & FormControl<TValue>\r\n : FormControl<TValue>;\r\n\r\n export interface TypedFormGroup<TValue> extends FormGroup {\r\n controls: {\r\n [K in keyof TValue]: TypedAbstractControl<TValue[K]>;\r\n };\r\n value: TValue;\r\n }\r\n\r\n export interface TypedFormArray<TValue> extends FormArray {\r\n controls: Array<TypedAbstractControl<TValue>>;\r\n value: Array<TValue>;\r\n }\r\n\r\n export type ValueOrTypedAbstractControl<T> = {\r\n [key in keyof T]: FormControl<T[key]> | ValueOrTypedAbstractControl<T[key]>;\r\n };\r\n export interface FormBuilder {\r\n build<T>(controls: ValueOrTypedAbstractControl<T>, options?: AbstractControlOptions | null): TypedFormGroup<T>;\r\n }\r\n}\r\n\r\nfunction transformObjectToForm(fb: FormBuilder, obj: any, options: AbstractControlOptions): any {\r\n if (obj instanceof Object && !(obj instanceof Date)) {\r\n const result: any = {};\r\n for (const key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n if (obj[key] instanceof AbstractControl) {\r\n result[key] = obj[key];\r\n continue;\r\n }\r\n if (obj[key] instanceof Object && !(obj[key] instanceof Array)) {\r\n result[key] = transformObjectToForm(fb, obj[key], options);\r\n } else if (obj[key] instanceof Array) {\r\n result[key] = fb.array(\r\n obj[key].map(item => transformObjectToForm(fb, item, options)),\r\n options,\r\n );\r\n } else {\r\n result[key] = new FormControl(obj[key], options);\r\n }\r\n }\r\n }\r\n return fb.group(result, options);\r\n } else {\r\n return obj;\r\n }\r\n}\r\n\r\nFormBuilder.prototype.build = function <T>(\r\n this: FormBuilder,\r\n controls: ValueOrTypedAbstractControl<T>,\r\n options?: AbstractControlOptions | null,\r\n): TypedFormGroup<T> {\r\n let updated = transformObjectToForm(this, controls, options ?? {});\r\n return updated as TypedFormGroup<T>;\r\n};\r\n","import { ActivatedRouteSnapshot } from \"@angular/router\";\r\nimport { ReuseTabService } from \"@delon/abc/reuse-tab\";\r\nimport { STComponent, STExportOptions } from \"@delon/abc/st\";\r\nimport { TitleService } from \"@delon/theme\";\r\nimport { deepCopy } from \"@delon/util\";\r\nimport * as abc from \"@delon/abc\";\r\nimport { Observable } from \"rxjs\";\r\ndeclare module \"@delon/abc/st\" {\r\n interface STComponent {\r\n exportAll: (opt?: STExportOptions) => Promise<void>;\r\n $exportData: Observable<any[]>;\r\n }\r\n}\r\n\r\nfunction exportAll(this: STComponent, opt?: STExportOptions) {\r\n return this.$exportData.firstValuePromise().then(x => this.export(deepCopy(x), opt));\r\n}\r\nSTComponent.prototype.exportAll = exportAll;\r\n","import { addDays, addHours, addMilliseconds, addMinutes, addMonths, addSeconds, addWeeks, addYears } from \"date-fns\";\r\nimport { Maybe } from \"graphql/jsutils/Maybe\";\r\nimport * as _ from \"lodash-es\";\r\n\r\nif (!Object.hasOwnProperty(\"fromEntries\")) {\r\n Object.fromEntries = function fromEntries(iterable: Iterable<readonly [PropertyKey, unknown]>) {\r\n return [...iterable].reduce((obj: Record<string, unknown>, [key, val]) => {\r\n obj[String(key)] = val;\r\n return obj;\r\n }, {});\r\n };\r\n}\r\n\r\nDate.prototype.add = function (value: {\r\n years?: number;\r\n months?: number;\r\n weeks?: number;\r\n days?: number;\r\n hours?: number;\r\n minutes?: number;\r\n seconds?: number;\r\n milliseconds?: number;\r\n}) {\r\n let result = this;\r\n if (value.years) {\r\n result = addYears(result, value.years);\r\n }\r\n if (value.months) {\r\n result = addMonths(result, value.months);\r\n }\r\n if (value.weeks) {\r\n result = addWeeks(result, value.weeks);\r\n }\r\n if (value.days) {\r\n result = addDays(result, value.days);\r\n }\r\n if (value.hours) {\r\n result = addHours(result, value.hours);\r\n }\r\n if (value.minutes) {\r\n result = addMinutes(result, value.minutes);\r\n }\r\n if (value.seconds) {\r\n result = addSeconds(result, value.seconds);\r\n }\r\n if (value.milliseconds) {\r\n result = addMilliseconds(result, value.milliseconds);\r\n }\r\n return result;\r\n};\r\n\r\nDate.prototype.format = function (this: Date, format: string) {\r\n const yyyy = this.getFullYear().toString();\r\n format = format.replace(/yyyy/g, yyyy);\r\n const MM = (this.getMonth() + 1).toString();\r\n format = format.replace(/MM/g, MM[1] ? MM : `0${MM[0]}`);\r\n const dd = this.getDate().toString();\r\n format = format.replace(/dd/g, dd[1] ? dd : `0${dd[0]}`);\r\n const HH = this.getHours().toString();\r\n format = format.replace(/HH/g, HH[1] ? HH : `0${HH[0]}`);\r\n const mm = this.getMinutes().toString();\r\n format = format.replace(/mm/g, mm[1] ? mm : `0${mm[0]}`);\r\n const ss = this.getSeconds().toString();\r\n format = format.replace(/ss/g, ss[1] ? ss : `0${ss[0]}`);\r\n return format;\r\n};\r\n\r\nDate.prototype.getTotalMonth = function (this: Date) {\r\n return this.getFullYear() * 12 + this.getMonth() + 1;\r\n};\r\n\r\nexport function extract<TActual = any, T = any>(object: TActual, properties: Partial<Record<keyof (T | TActual), true>>) {\r\n const result = {} as Partial<T>;\r\n for (const property of Object.keys(properties) as Array<keyof (T | TActual)>) {\r\n result[property] = object[property] as any;\r\n }\r\n return result;\r\n}\r\nwindow[\"extract\"] = extract;\r\n\r\ndeclare global {\r\n type Hint<T> = Maybe<T>;\r\n\r\n function extract<TActual = any, T = any>(object: TActual, properties: Partial<Record<keyof (T | TActual), true>>): Partial<T>;\r\n interface Date {\r\n add: (value: {\r\n years?: number;\r\n months?: number;\r\n weeks?: number;\r\n days?: number;\r\n hours?: number;\r\n minutes?: number;\r\n seconds?: number;\r\n milliseconds?: number;\r\n }) => Date;\r\n format(format: string): string;\r\n getTotalMonth(): number;\r\n }\r\n interface Array<T> {\r\n flatMapDeep<U>(this: this, iteratee: (value: T, index: number, array: T[]) => U[], thisArg?: any): U[];\r\n }\r\n interface ArrayConstructor {\r\n range(start: number, end: number): number[];\r\n }\r\n interface Number {\r\n hasFlag(...flags: number[]): boolean;\r\n hasNoFlag(...flags: number[]): boolean;\r\n }\r\n interface String {\r\n trimEnd(strToTrim: string): string;\r\n }\r\n}\r\n\r\nconst legacyTrimEnd = String.prototype.trimEnd;\r\nString.prototype.trimEnd = function trimEnd(this: string, strToTrim?: string) {\r\n if (strToTrim == undefined) {\r\n return legacyTrimEnd.bind(this)();\r\n }\r\n return this.replace(new RegExp(`${strToTrim}$`), \"\");\r\n};\r\n\r\nNumber.prototype.hasFlag = function hasFlag(this: number, ...flags: number[]) {\r\n return flags.all(flag => flag !== undefined && (this.valueOf() & flag) == flag);\r\n};\r\n\r\nNumber.prototype.hasNoFlag = function hasNoFlag(this: number, ...flags: number[]) {\r\n return flags.all(flag => flag !== undefined && (this.valueOf() & flag) == 0);\r\n};\r\n\r\nconst flatMapDeep = function <T>(this: T[], iteratee: (value: T, index: number, array: T[]) => T[]) {\r\n if (!this || this.length == 0) {\r\n return [];\r\n }\r\n return this.concat(_.flatten(this.map(iteratee).filter(x => x != undefined)).flatMapDeep(iteratee));\r\n};\r\n\r\nArray.prototype.flatMapDeep = flatMapDeep;\r\n\r\nconst range = (start: number, end: number) => Array.from({ length: end - start }, (v, k) => k + start);\r\nArray.range = range;\r\n\r\nexport function assertIsDefined<T>(val: T): asserts val is NonNullable<T> {\r\n if (val === undefined || val === null) {\r\n throw new Error(`Expected 'val' to be defined, but received ${val}`);\r\n }\r\n}\r\n\r\nexport function assertIsArray<T>(val: T | T[]): asserts val is T[] {\r\n if (!Array.isArray(val)) {\r\n throw new Error(`Expected 'val' to be defined, but received ${val}`);\r\n }\r\n}\r\n\r\nexport function assert<T>(_val: any): asserts _val is T {}\r\n\r\nexport function assertIsNotArray<T>(val: T | T[]): asserts val is T {\r\n if (Array.isArray(val)) {\r\n throw new Error(`Expected 'val' to be defined, but received ${val}`);\r\n }\r\n}\r\n\r\nexport type PropertyAccessType = \"create\" | \"modify\" | \"delete\" | \"assignment\";\r\n\r\nexport function deepProxy<T>(\r\n obj: T,\r\n callback: (type: PropertyAccessType, param: { target: any; key: string | number | symbol; value: any }) => void,\r\n) {\r\n if (\r\n obj === null ||\r\n obj === undefined ||\r\n obj instanceof String ||\r\n obj instanceof Date ||\r\n obj instanceof Number ||\r\n obj instanceof Function\r\n ) {\r\n return obj;\r\n }\r\n if (typeof obj === \"object\") {\r\n for (const key in obj) {\r\n if (typeof obj[key] === \"object\") {\r\n obj[key] = deepProxy(obj[key], callback);\r\n }\r\n }\r\n }\r\n\r\n return new Proxy(obj, {\r\n set: (target: any, key: any, value: any, receiver: any) => {\r\n if (typeof value === \"object\") {\r\n value = deepProxy(value, callback);\r\n }\r\n let cbType: PropertyAccessType = target[key] == undefined ? \"create\" : \"modify\";\r\n\r\n if (target[key] === value) {\r\n cbType = \"assignment\";\r\n }\r\n if (!(Array.isArray(target) && key === \"length\")) {\r\n callback(cbType, { target, key, value });\r\n }\r\n return Reflect.set(target, key, value, receiver);\r\n },\r\n deleteProperty: (target, key) => {\r\n callback(\"delete\", { target, key, value: undefined });\r\n return Reflect.deleteProperty(target, key);\r\n },\r\n });\r\n}\r\n\r\nexport function isRecord<TValue = any>(value: unknown): value is Record<string, TValue> {\r\n return typeof value === \"object\" && value !== null && !Array.isArray(value) && Object.keys(value).every(key => typeof key === \"string\");\r\n}\r\n","/// <reference path=\"../shims.d.ts\" />\r\nimport SparkMD5 from \"spark-md5\";\r\n\r\ndeclare global {\r\n interface Blob {\r\n computeChecksumMd5(this: Blob): Promise<string>;\r\n }\r\n}\r\n\r\nfunction computeChecksumMd5(this: Blob): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const chunkSize = 2097152;\r\n const spark = new SparkMD5.ArrayBuffer();\r\n const fileReader = new FileReader();\r\n let cursor = 0;\r\n\r\n fileReader.onerror = (): void => {\r\n reject(\"MD5 computation failed - error reading the file\");\r\n };\r\n\r\n const processChunk = (chunkStart: number) => {\r\n const chunkEnd = Math.min(this.size, chunkStart + chunkSize);\r\n fileReader.readAsArrayBuffer(this.slice(chunkStart, chunkEnd));\r\n };\r\n\r\n fileReader.onload = (e: ProgressEvent<FileReader>): void => {\r\n spark.append(e.target!.result as ArrayBuffer);\r\n cursor += chunkSize;\r\n\r\n if (cursor < this.size) {\r\n processChunk(cursor);\r\n } else {\r\n resolve(spark.end());\r\n }\r\n };\r\n\r\n processChunk(0);\r\n });\r\n}\r\n\r\nBlob.prototype.computeChecksumMd5 = computeChecksumMd5;\r\n","import \"./array.extension\";\r\n\r\nimport \"./string.extension\";\r\n\r\nimport \"./signal.extension\";\r\n\r\nimport \"./rxjs.extension\";\r\n\r\nimport \"./angular.extension\";\r\n\r\nimport \"./ng-alain.extension\";\r\n\r\nimport \"./misc.extension\";\r\n\r\nimport \"./file.extension\";\r\n\r\nimport \"./clear-history.extension\";\r\n\r\n\r\n\r\nexport { deepSignal, computedAsync } from \"./signal.extension\";\r\n\r\nexport type { DeepSignal, WritableDeepSignal } from \"./signal.extension\";\r\n\r\nexport {\r\n\r\n assertIsDefined,\r\n\r\n assertIsArray,\r\n\r\n assert,\r\n\r\n assertIsNotArray,\r\n\r\n deepProxy,\r\n\r\n isRecord,\r\n\r\n extract,\r\n\r\n} from \"./misc.extension\";\r\n\r\nexport type { PropertyAccessType } from \"./misc.extension\";\r\n\r\n\r\n\r\nexport function provideGeexExtensions(): void {\r\n\r\n // side-effect imports above run when this module is loaded\r\n\r\n}\r\n\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const GEEX_MOBILE_PATH_SUFFIX = new InjectionToken<string>(\"GEEX_MOBILE_PATH_SUFFIX\", {\r\n providedIn: \"root\",\r\n factory: () => \"/query\",\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const GEEX_EXCEPTION_403_PROFILE_PATH = new InjectionToken<string>(\"GEEX_EXCEPTION_403_PROFILE_PATH\", {\r\n providedIn: \"root\",\r\n factory: () => \"/identity/me\",\r\n});\r\n\r\nexport const GEEX_EXCEPTION_403_PROFILE_LABEL = new InjectionToken<string>(\"GEEX_EXCEPTION_403_PROFILE_LABEL\", {\r\n providedIn: \"root\",\r\n factory: () => \"个人中心\",\r\n});\r\n\r\nexport const GEEX_EXCEPTION_LOGIN_PATH = new InjectionToken<string>(\"GEEX_EXCEPTION_LOGIN_PATH\", {\r\n providedIn: \"root\",\r\n factory: () => \"/authentication/login\",\r\n});\r\n","import { geex } from \"./geex\";\r\n\r\ndeclare global {\r\n // Live binding to package singleton (assigned in configGeex).\r\n var geex: typeof import(\"./geex\").geex;\r\n interface Window {\r\n geex: typeof import(\"./geex\").geex;\r\n }\r\n}\r\n\r\n/**\r\n * Expose package `geex` on globalThis/window via a live getter.\r\n * Must not copy the value at bind time — `geex` is only assigned inside `configGeex`.\r\n */\r\nexport function bindGeexGlobal(): void {\r\n const bind = (target: object) => {\r\n Reflect.deleteProperty(target, \"geex\");\r\n Object.defineProperty(target, \"geex\", {\r\n configurable: true,\r\n enumerable: true,\r\n get: () => geex,\r\n });\r\n };\r\n\r\n if (typeof globalThis !== \"undefined\") {\r\n bind(globalThis);\r\n }\r\n if (typeof window !== \"undefined\") {\r\n bind(window);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["zorroZhCN","dfZhCn","delonZhCn","zorroEnUS","dfEn","delonEnUS","flatMapDeep","filter","geexIsEqual","rison","gql","isRecord","switchMap"],"mappings":"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"}
|