@acorex-platform/module-background-job-management-client 0.0.33 → 0.0.37

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.
Files changed (26) hide show
  1. package/fesm2022/acorex-platform-module-background-job-management-client-background-job-command-error.util-BHBmSbvw.mjs.map +1 -1
  2. package/fesm2022/acorex-platform-module-background-job-management-client-background-job-source-column.component-JzU8l_7q.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-module-background-job-management-client-cancel-background-job.command-BHCWX1c1.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-module-background-job-management-client-contracts-entities-background-job-attempt.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-module-background-job-management-client-contracts-entities-background-job-schedule.mjs +50 -31
  6. package/fesm2022/acorex-platform-module-background-job-management-client-contracts-entities-background-job-schedule.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-module-background-job-management-client-contracts-entities-background-job.mjs.map +1 -1
  8. package/fesm2022/{acorex-platform-module-background-job-management-client-contracts-entity-catalog-acorex-platform-module-background-job-management-client-contracts-entity-catalog-BXFhpRfS.mjs → acorex-platform-module-background-job-management-client-contracts-entity-catalog-acorex-platform-module-background-job-management-client-contracts-entity-catalog-CfD1Ah3A.mjs} +4 -4
  9. package/fesm2022/{acorex-platform-module-background-job-management-client-contracts-entity-catalog-acorex-platform-module-background-job-management-client-contracts-entity-catalog-BXFhpRfS.mjs.map → acorex-platform-module-background-job-management-client-contracts-entity-catalog-acorex-platform-module-background-job-management-client-contracts-entity-catalog-CfD1Ah3A.mjs.map} +1 -1
  10. package/fesm2022/{acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job-attempt.entity-di_KkFZV.mjs → acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job-attempt.entity-B_yM42Jc.mjs} +2 -2
  11. package/fesm2022/{acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job-attempt.entity-di_KkFZV.mjs.map → acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job-attempt.entity-B_yM42Jc.mjs.map} +1 -1
  12. package/fesm2022/{acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job-schedule.entity-q8VKiWJf.mjs → acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job-schedule.entity-tRaW_7GK.mjs} +52 -33
  13. package/fesm2022/acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job-schedule.entity-tRaW_7GK.mjs.map +1 -0
  14. package/fesm2022/{acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job.entity-Bz33gUlR.mjs → acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job.entity-CxAscwN8.mjs} +2 -2
  15. package/fesm2022/{acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job.entity-Bz33gUlR.mjs.map → acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job.entity-CxAscwN8.mjs.map} +1 -1
  16. package/fesm2022/acorex-platform-module-background-job-management-client-contracts-entity-catalog.mjs +1 -1
  17. package/fesm2022/acorex-platform-module-background-job-management-client-contracts.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-module-background-job-management-client-local-entities.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-module-background-job-management-client-replay-dead-letter.command-BM4NYBxr.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-module-background-job-management-client-retry-background-job.command-BBEAc_i7.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-module-background-job-management-client-run-schedule-now.command-5RV6hAnH.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-module-background-job-management-client-tray-execute-click.command-CEVhvrDQ.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-module-background-job-management-client-tray-run-action.command-B9SFMGxf.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-module-background-job-management-client.mjs.map +1 -1
  25. package/package.json +1 -1
  26. package/fesm2022/acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job-schedule.entity-q8VKiWJf.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-background-job-management-client.mjs","sources":["../../../../libs/modules/background-job-management/client/src/lib/background-job-management-client.port.ts","../../../../libs/modules/background-job-management/client/src/lib/widgets/background-job-source.widget.ts","../../../../libs/modules/background-job-management/client/src/lib/widget-definition.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/features/background-job-schedule-status.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/features/background-job-status.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray.mapper.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray-realtime.service.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray-sync.service.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray-operation.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray-fallback.providers.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray-realtime.providers.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray.providers.ts","../../../../libs/modules/background-job-management/client/src/lib/manifest.ts","../../../../libs/modules/background-job-management/client/src/lib/menu.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/settings.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/background-job-management.module.ts","../../../../libs/modules/background-job-management/client/src/acorex-platform-module-background-job-management-client.ts"],"sourcesContent":["import type {\n AXPBackgroundJob,\n AXPBackgroundJobAttempt,\n AXPBackgroundJobSchedule,\n AXPCancelBackgroundJobResult,\n AXPCreateBackgroundJobRequest,\n AXPCreateBackgroundJobResult,\n AXPDismissBackgroundJobsResult,\n AXPRetryBackgroundJobResult,\n} from '@acorex-platform/framework-shared/background-job';\n\n//#region ---- Client port ----\n\n/**\n * Client-side port for the background-job-management server API.\n * Bound to the HTTP implementation by the gateway package.\n */\nexport abstract class AXPBackgroundJobManagementClient {\n abstract createJob(request: AXPCreateBackgroundJobRequest): Promise<AXPCreateBackgroundJobResult>;\n abstract getJob(jobId: string): Promise<AXPBackgroundJob | null>;\n abstract listAttempts(jobId: string): Promise<AXPBackgroundJobAttempt[]>;\n abstract cancelJob(jobId: string, reason?: string): Promise<AXPCancelBackgroundJobResult>;\n abstract retryJob(jobId: string): Promise<AXPRetryBackgroundJobResult>;\n abstract deleteJob(jobId: string): Promise<{ success: boolean }>;\n /** Hide terminal jobs from the footer tray (1 → Job:Dismiss; 2+ → runtime commands/bulk). */\n abstract dismissJobs(jobIds: string[]): Promise<AXPDismissBackgroundJobsResult>;\n abstract replayDeadLetter(jobId: string): Promise<{ jobId: string }>;\n abstract upsertSchedule(schedule: Partial<AXPBackgroundJobSchedule>): Promise<AXPBackgroundJobSchedule>;\n abstract enableSchedule(scheduleId: string): Promise<{ success: boolean }>;\n abstract disableSchedule(scheduleId: string): Promise<{ success: boolean }>;\n abstract runScheduleNow(scheduleId: string): Promise<AXPCreateBackgroundJobResult>;\n abstract deleteSchedule(scheduleId: string): Promise<{ success: boolean }>;\n /** Active jobs for the footer tray (own jobs, or all when admin). */\n abstract listActiveForTray(take?: number): Promise<AXPBackgroundJob[]>;\n /** Pull schedule for an integration connection (`commandKey` + optional `connectionId`). */\n abstract getScheduleByScope(\n commandKey: string,\n connectionId?: string,\n ): Promise<AXPBackgroundJobSchedule | null>;\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { BACKGROUND_JOB_SOURCE_COLUMN_WIDGET } from '@acorex-platform/module-background-job-management-client/contracts';\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\n\n//#endregion\n\n//#region ----- Widget -----\n\nexport const BackgroundJobSourceColumnWidget: AXPWidgetConfig = {\n name: BACKGROUND_JOB_SOURCE_COLUMN_WIDGET,\n title: '@background-job-management:jobs.entities.background-job.fields.source.title',\n icon: 'fa-light fa-user',\n groups: [AXPWidgetGroupEnum.BaseWidget],\n type: 'editor',\n components: {\n column: {\n component: () =>\n import('./background-job-source-column.component').then((c) => c.BackgroundJobSourceColumnComponent),\n },\n },\n};\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { BackgroundJobSourceColumnWidget } from './widgets/background-job-source.widget';\n\n//#endregion\n\n//#region ----- Widgets provider -----\n\nconst BACKGROUND_JOB_WIDGETS = [BackgroundJobSourceColumnWidget];\n\n@Injectable()\nexport class AXMBackgroundJobManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return BACKGROUND_JOB_WIDGETS;\n }\n}\n\n//#endregion\n","import { AXStyleColorType } from '@acorex/cdk/common';\nimport {\n AXP_BACKGROUND_JOB_SCHEDULE_STATUS_ACTIVE,\n AXP_BACKGROUND_JOB_SCHEDULE_STATUS_DEFINITION_KEY,\n type AXPBackgroundJobScheduleStatus,\n} from '@acorex-platform/framework-shared/background-job';\nimport { AXPStatusProvider, AXPStatusTransition } from '@acorex-platform/framework-shared/core';\n\nconst I18N = '@background-job-management:schedules.entities.background-job-schedule';\n\n//#region ---- Job schedule status provider ----\n\nexport class AXMBackgroundJobScheduleStatusProvider extends AXPStatusProvider {\n readonly key = AXP_BACKGROUND_JOB_SCHEDULE_STATUS_DEFINITION_KEY;\n\n readonly defaultStatus: AXPBackgroundJobScheduleStatus = AXP_BACKGROUND_JOB_SCHEDULE_STATUS_ACTIVE;\n\n readonly statuses = [\n {\n name: 'active' as const,\n title: `${I18N}.status.active`,\n color: 'success' as AXStyleColorType,\n generateView: true,\n isInitial: true,\n },\n {\n name: 'pause' as const,\n title: `${I18N}.status.pause`,\n color: 'warning' as AXStyleColorType,\n generateView: true,\n },\n {\n name: 'disabled' as const,\n title: `${I18N}.status.disabled`,\n color: 'danger' as AXStyleColorType,\n generateView: true,\n isFinal: true,\n },\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n { from: 'active', to: 'pause', title: `${I18N}.transitions.pause` },\n { from: 'pause', to: 'active', title: `${I18N}.transitions.resume` },\n { from: 'active', to: 'disabled', title: `${I18N}.transitions.disable` },\n { from: 'disabled', to: 'active', title: `${I18N}.transitions.enable` },\n { from: 'pause', to: 'disabled', title: `${I18N}.transitions.disable` },\n { from: 'disabled', to: 'pause', title: `${I18N}.transitions.pause` },\n ];\n}\n\n//#endregion\n","import { AXStyleColorType } from '@acorex/cdk/common';\nimport {\n AXP_BACKGROUND_JOB_STATUS_CREATED,\n AXP_BACKGROUND_JOB_STATUS_DEFINITION_KEY,\n type AXPBackgroundJobStatus,\n} from '@acorex-platform/framework-shared/background-job';\nimport { AXPStatusProvider } from '@acorex-platform/framework-shared/core';\n\nconst I18N = '@background-job-management:jobs.entities.background-job';\n\n//#region ---- Background job status provider ----\n\n/**\n * Engine-managed lifecycle for logical jobs (`BackgroundJob`).\n * Read-only in the UI — transitions are performed by the execution engine and job commands.\n */\nexport class AXMBackgroundJobStatusProvider extends AXPStatusProvider {\n readonly key = AXP_BACKGROUND_JOB_STATUS_DEFINITION_KEY;\n\n readonly defaultStatus: AXPBackgroundJobStatus = AXP_BACKGROUND_JOB_STATUS_CREATED;\n\n readonly statuses = [\n {\n name: 'created' as const,\n title: `${I18N}.states.created`,\n color: 'secondary' as AXStyleColorType,\n generateView: true,\n isInitial: true,\n },\n {\n name: 'scheduled' as const,\n title: `${I18N}.states.scheduled`,\n color: 'info' as AXStyleColorType,\n generateView: true,\n },\n {\n name: 'queued' as const,\n title: `${I18N}.states.queued`,\n color: 'warning' as AXStyleColorType,\n generateView: true,\n },\n {\n name: 'running' as const,\n title: `${I18N}.states.running`,\n color: 'primary' as AXStyleColorType,\n generateView: true,\n },\n {\n name: 'paused' as const,\n title: `${I18N}.states.paused`,\n color: 'warning' as AXStyleColorType,\n generateView: true,\n },\n {\n name: 'completed' as const,\n title: `${I18N}.states.completed`,\n color: 'success' as AXStyleColorType,\n generateView: true,\n isFinal: true,\n },\n {\n name: 'failed' as const,\n title: `${I18N}.states.failed`,\n color: 'danger' as AXStyleColorType,\n generateView: true,\n isFinal: true,\n },\n {\n name: 'cancelled' as const,\n title: `${I18N}.states.cancelled`,\n color: 'warning' as AXStyleColorType,\n generateView: true,\n isFinal: true,\n },\n {\n name: 'dead-lettered' as const,\n title: `${I18N}.states.dead-lettered`,\n color: 'danger' as AXStyleColorType,\n generateView: true,\n isFinal: true,\n },\n ];\n\n readonly transitions = [];\n}\n\n//#endregion\n","import type { AXPBackgroundJob, AXPBackgroundJobStatus } from '@acorex-platform/framework-shared/background-job';\nimport type { AXPBackgroundOperation, AXPBackgroundOperationStatus } from '@acorex-platform/framework-client/common';\nimport {\n axpBackgroundOperationCapabilities,\n axpBackgroundOperationFailurePolicy,\n axpCoerceBackgroundOperationDate,\n} from '@acorex-platform/framework-client/common';\n\n//#region ----- Status mapping -----\n\nconst ACTIVE_JOB_STATUSES = new Set<AXPBackgroundJobStatus>([\n 'created',\n 'scheduled',\n 'queued',\n 'running',\n 'paused',\n]);\n\nexport function mapBackgroundJobStatusToOperationStatus(\n status: AXPBackgroundJobStatus,\n): AXPBackgroundOperationStatus {\n switch (status) {\n case 'running':\n return 'running';\n case 'paused':\n return 'paused';\n case 'completed':\n return 'completed';\n case 'failed':\n case 'dead-lettered':\n return 'failed';\n case 'cancelled':\n return 'cancelled';\n case 'created':\n case 'scheduled':\n case 'queued':\n default:\n return 'queued';\n }\n}\n\n//#endregion\n\n//#region ----- Job → tray operation -----\n\nexport function mapBackgroundJobToTrayOperation(job: AXPBackgroundJob): AXPBackgroundOperation {\n const status = mapBackgroundJobStatusToOperationStatus(job.status);\n const isActive = ACTIVE_JOB_STATUSES.has(job.status);\n const capabilities = job.capabilities ?? {};\n const createdAt =\n axpCoerceBackgroundOperationDate(job.createdAt as Date | string | undefined) ?? new Date();\n\n return {\n id: job.id,\n providerKey: job.providerKey,\n title: job.title,\n status,\n progress: job.progress,\n statusText: job.statusText,\n currentStep: job.currentStep,\n createdAt,\n startedAt:\n axpCoerceBackgroundOperationDate(job.firstStartedAt as Date | string | undefined) ??\n axpCoerceBackgroundOperationDate(job.executedAt as Date | string | undefined) ??\n undefined,\n completedAt: axpCoerceBackgroundOperationDate(job.completedAt as Date | string | undefined) ?? undefined,\n capabilities: axpBackgroundOperationCapabilities({\n cancellable:\n isActive &&\n (capabilities.supportsCooperativeCancellation === true || capabilities.canCancelQueued === true),\n pausable: isActive && capabilities.supportsCooperativePause === true,\n resumable: status === 'paused' && capabilities.supportsCooperativePause === true,\n retryable: status === 'failed',\n supportsProgress:\n capabilities.supportsProgress === true || typeof job.progress === 'number',\n supportsEstimate: capabilities.supportsEstimate === true,\n clickable: capabilities.clickable === true,\n keepInTrayAfterComplete: capabilities.keepInTrayAfterComplete === true,\n notifyOnComplete: capabilities.notifyOnComplete !== false,\n notifyOnFailed: capabilities.notifyOnFailed !== false,\n }),\n failurePolicy: axpBackgroundOperationFailurePolicy({\n maxRetries: job.maxAttempts,\n retryCount: Math.max(0, job.currentAttempt - 1),\n }),\n error: job.result?.message\n ? {\n message: job.result.message,\n code: typeof job.result.data?.['code'] === 'string' ? job.result.data['code'] : undefined,\n }\n : undefined,\n data: {\n jobId: job.id,\n providerKey: job.providerKey,\n command: job.command,\n payload: job.command?.payload,\n reportRequestId:\n typeof job.command?.payload?.['reportRequestId'] === 'string'\n ? job.command.payload['reportRequestId']\n : undefined,\n },\n };\n}\n\n//#endregion\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport type { AXPRealtimeBackgroundJobTrayRefreshPayload } from '@acorex-platform/framework-client/realtime';\n\n//#region ----- Types -----\n\nexport interface BackgroundJobTrayChangeEvent {\n payload: AXPRealtimeBackgroundJobTrayRefreshPayload;\n}\n\n//#endregion\n\n//#region ----- Tray realtime events -----\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BackgroundJobTrayRealtimeService {\n private readonly changedSubject = new Subject<BackgroundJobTrayChangeEvent>();\n\n readonly changed$ = this.changedSubject.asObservable();\n\n notifyChanged(payload: AXPRealtimeBackgroundJobTrayRefreshPayload): void {\n this.changedSubject.next({ payload });\n }\n}\n\n//#endregion\n","import { DestroyRef, Injectable, computed, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AXPSessionService, AXPSessionStatus } from '@acorex-platform/framework-client/auth';\nimport type { AXPRealtimeBackgroundJobTrayRefreshPayload } from '@acorex-platform/framework-client/realtime';\nimport { AXPQueryService } from '@acorex-platform/framework-client/runtime';\nimport type { AXPBackgroundJob, AXPBackgroundJobStatus } from '@acorex-platform/framework-shared/background-job';\nimport {\n AXPBackgroundJobQueryKeys,\n isBackgroundJobTerminal,\n} from '@acorex-platform/framework-shared/background-job';\nimport { runtimeQueryCollectionData } from '@acorex-platform/framework-shared/core';\nimport { filter } from 'rxjs/operators';\nimport { AXPBackgroundJobManagementClient } from '../../background-job-management-client.port';\nimport { mapBackgroundJobToTrayOperation } from './background-job-tray.mapper';\nimport { BackgroundJobTrayRealtimeService } from './background-job-tray-realtime.service';\n\n//#region ----- Constants -----\n\n/** Safety net while a job is active if a realtime tick was missed. */\nconst ACTIVE_JOB_WATCHDOG_MS = 30_000;\n\n/** Coalesce consecutive full-list fetches (e.g. create + early progress before local row exists). */\nconst FULL_REFRESH_DEBOUNCE_MS = 250;\n\nconst TERMINAL_STATUSES = new Set<string>(['completed', 'failed', 'cancelled', 'dead-lettered']);\n\n//#endregion\n\n//#region ----- Tray sync service -----\n\n@Injectable({ providedIn: 'root' })\nexport class BackgroundJobTraySyncService {\n //#region ----- Dependencies -----\n\n private readonly queryService = inject(AXPQueryService);\n private readonly sessionService = inject(AXPSessionService);\n private readonly client = inject(AXPBackgroundJobManagementClient);\n private readonly destroyRef = inject(DestroyRef);\n private readonly trayRealtime = inject(BackgroundJobTrayRealtimeService, { optional: true });\n\n //#endregion\n\n //#region ----- State -----\n\n private readonly jobs = signal<readonly AXPBackgroundJob[]>([]);\n private started = false;\n private refreshGeneration = 0;\n private refreshInFlight = false;\n private refreshQueued = false;\n private watchdogTimer: ReturnType<typeof setTimeout> | null = null;\n private fullRefreshTimer: ReturnType<typeof setTimeout> | null = null;\n\n readonly operations = computed(() => this.jobs().map((job) => mapBackgroundJobToTrayOperation(job)));\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n start(): void {\n if (this.started) {\n return;\n }\n this.started = true;\n\n this.destroyRef.onDestroy(() => {\n this.clearActiveWatchdog();\n this.clearFullRefreshTimer();\n });\n\n this.sessionService.status$\n .pipe(\n filter((status) => status === AXPSessionStatus.Authorized),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n void this.refresh();\n });\n\n this.sessionService.status$\n .pipe(\n filter((status) => status !== AXPSessionStatus.Authorized),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.clearActiveWatchdog();\n this.clearFullRefreshTimer();\n this.jobs.set([]);\n });\n\n this.trayRealtime?.changed$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(({ payload }) => {\n this.applyRealtimePayload(payload);\n });\n\n if (this.sessionService.isAuthorized) {\n void this.refresh();\n }\n }\n\n async refresh(): Promise<void> {\n this.clearFullRefreshTimer();\n\n if (this.refreshInFlight) {\n this.refreshQueued = true;\n return;\n }\n\n this.refreshInFlight = true;\n const generation = ++this.refreshGeneration;\n\n try {\n if (!this.sessionService.isAuthorized) {\n if (generation === this.refreshGeneration) {\n this.clearActiveWatchdog();\n this.jobs.set([]);\n }\n return;\n }\n\n try {\n const result = await this.queryService.fetch<{ take?: number }, AXPBackgroundJob>(\n AXPBackgroundJobQueryKeys.JobListActiveForTray,\n { take: 100 },\n );\n if (generation !== this.refreshGeneration) {\n return;\n }\n const items = runtimeQueryCollectionData(result)?.items ?? [];\n this.jobs.set(items);\n this.armActiveWatchdog();\n } catch {\n // Keep the last known tray snapshot when sync fails transiently.\n if (generation === this.refreshGeneration) {\n this.armActiveWatchdog();\n }\n }\n } finally {\n this.refreshInFlight = false;\n if (this.refreshQueued) {\n this.refreshQueued = false;\n if (this.sessionService.isAuthorized) {\n void this.refresh();\n }\n }\n }\n }\n\n async dismissJobs(jobIds: readonly string[]): Promise<void> {\n const ids = [...new Set(jobIds.map((id) => id?.trim()).filter(Boolean))];\n if (ids.length === 0) {\n return;\n }\n\n // Optimistic hide; realtime `dismissed` keeps other tabs in sync without a list refetch.\n this.removeJobs(ids);\n await this.client.dismissJobs(ids);\n }\n\n //#endregion\n\n //#region ----- Private helpers -----\n\n private applyRealtimePayload(payload: AXPRealtimeBackgroundJobTrayRefreshPayload): void {\n if (!this.sessionService.isAuthorized) {\n return;\n }\n\n const jobId = payload.jobId?.trim();\n if (!jobId) {\n this.scheduleFullRefresh();\n return;\n }\n\n if (payload.op === 'dismissed' || payload.trayDismissedAt) {\n this.removeJobs([jobId]);\n return;\n }\n\n if (payload.op === 'created') {\n // New jobs need the full row (title, capabilities, command payload).\n this.scheduleFullRefresh();\n return;\n }\n\n const existing = this.jobs().find((job) => job.id === jobId);\n if (!existing) {\n this.scheduleFullRefresh();\n return;\n }\n\n const nextStatus = (payload.status?.trim() || existing.status) as AXPBackgroundJobStatus;\n const keepInTray =\n payload.keepInTrayAfterComplete === true || existing.capabilities?.keepInTrayAfterComplete === true;\n\n if (isBackgroundJobTerminal(nextStatus) && !keepInTray) {\n this.removeJobs([jobId]);\n return;\n }\n\n this.jobs.update((current) =>\n current.map((job) => {\n if (job.id !== jobId) {\n return job;\n }\n return {\n ...job,\n status: nextStatus,\n progress: typeof payload.progress === 'number' ? payload.progress : job.progress,\n statusText: payload.statusText ?? job.statusText,\n currentStep: payload.currentStep ?? job.currentStep,\n capabilities: {\n ...(job.capabilities ?? {}),\n supportsProgress:\n job.capabilities?.supportsProgress === true ||\n payload.supportsProgress === true ||\n typeof payload.progress === 'number',\n },\n completedAt:\n payload.completedAt ??\n (TERMINAL_STATUSES.has(nextStatus) ? job.completedAt ?? new Date().toISOString() : job.completedAt),\n };\n }),\n );\n this.armActiveWatchdog();\n }\n\n private scheduleFullRefresh(): void {\n this.clearFullRefreshTimer();\n this.fullRefreshTimer = setTimeout(() => {\n this.fullRefreshTimer = null;\n void this.refresh();\n }, FULL_REFRESH_DEBOUNCE_MS);\n }\n\n private clearFullRefreshTimer(): void {\n if (!this.fullRefreshTimer) {\n return;\n }\n clearTimeout(this.fullRefreshTimer);\n this.fullRefreshTimer = null;\n }\n\n private removeJobs(jobIds: readonly string[]): void {\n const idSet = new Set(jobIds);\n this.jobs.update((current) => current.filter((job) => !idSet.has(job.id)));\n this.armActiveWatchdog();\n }\n\n private hasActiveTrayJob(): boolean {\n return this.jobs().some((job) => !isBackgroundJobTerminal(job.status));\n }\n\n private armActiveWatchdog(): void {\n this.clearActiveWatchdog();\n if (!this.sessionService.isAuthorized || !this.hasActiveTrayJob()) {\n return;\n }\n this.watchdogTimer = setTimeout(() => {\n this.watchdogTimer = null;\n void this.refresh();\n }, ACTIVE_JOB_WATCHDOG_MS);\n }\n\n private clearActiveWatchdog(): void {\n if (!this.watchdogTimer) {\n return;\n }\n clearTimeout(this.watchdogTimer);\n this.watchdogTimer = null;\n }\n\n //#endregion\n}\n\n//#endregion\n","import { Injectable, inject } from '@angular/core';\nimport {\n AXPBackgroundOperationProvider,\n type AXPBackgroundOperation,\n type AXPBackgroundOperationCreateRequest,\n} from '@acorex-platform/framework-client/common';\nimport { AXPBackgroundJobManagementClient } from '../../background-job-management-client.port';\nimport { BackgroundJobTraySyncService } from './background-job-tray-sync.service';\n\n//#region ----- Tray operation provider -----\n\n@Injectable()\nexport class BackgroundJobTrayOperationProvider extends AXPBackgroundOperationProvider {\n override readonly key = 'background-job';\n\n private readonly sync = inject(BackgroundJobTraySyncService);\n private readonly client = inject(AXPBackgroundJobManagementClient);\n\n override readonly operations = this.sync.operations;\n\n override async create(_request: AXPBackgroundOperationCreateRequest): Promise<AXPBackgroundOperation> {\n throw new Error('Background jobs are created on the server.');\n }\n\n override async cancel(operationId: string): Promise<void> {\n await this.client.cancelJob(operationId);\n await this.sync.refresh();\n }\n\n override async pause(_operationId: string): Promise<void> {\n throw new Error('Pause is not supported from the tray yet.');\n }\n\n override async resume(_operationId: string): Promise<void> {\n throw new Error('Resume is not supported from the tray yet.');\n }\n\n override async retry(operationId: string): Promise<void> {\n await this.client.retryJob(operationId);\n await this.sync.refresh();\n }\n\n override async dismiss(operationId: string): Promise<void> {\n await this.sync.dismissJobs([operationId]);\n }\n\n override async dismissMany(operationIds: readonly string[]): Promise<void> {\n await this.sync.dismissJobs(operationIds);\n }\n}\n\n//#endregion\n","import { DestroyRef, inject, type Provider } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AXP_APP_STARTUP_PRIORITY,\n provideAppStartUpTask,\n} from '@acorex-platform/framework-client/core';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPRealtimeConnectionService } from '@acorex-platform/framework-client/realtime';\nimport { distinctUntilChanged, EMPTY, switchMap, timer } from 'rxjs';\nimport { BackgroundJobTraySyncService } from './background-job-tray-sync.service';\n\n//#region ----- Constants -----\n\nconst POLL_INTERVAL_MS = 60_000;\nconst RECONNECT_REFRESH_DELAY_MS = 250;\n\n//#endregion\n\n//#region ----- Tray fallback sync -----\n\n/**\n * Keeps the footer tray fresh when Socket.IO is down: poll while disconnected,\n * refresh on reconnect and when the tab becomes visible again.\n */\nexport function provideBackgroundJobTrayFallbackSync(): Provider[] {\n return [\n provideAppStartUpTask(() => {\n const sync = inject(BackgroundJobTraySyncService);\n const sessionService = inject(AXPSessionService);\n const connection = inject(AXPRealtimeConnectionService, { optional: true });\n const destroyRef = inject(DestroyRef);\n\n const refreshIfAuthorized = (): void => {\n if (sessionService.isReadyForAppScopedApi) {\n void sync.refresh();\n }\n };\n\n return {\n name: 'background-job-tray-fallback-sync',\n priority: AXP_APP_STARTUP_PRIORITY.realtimeSubscriptions,\n run: async () => {\n if (!connection) {\n return;\n }\n\n let wasConnected = connection.isSocketConnected();\n\n connection.connectionStatus$\n .pipe(distinctUntilChanged(), takeUntilDestroyed(destroyRef))\n .subscribe((status) => {\n const connected = status === 'connected';\n if (connected && !wasConnected) {\n timer(RECONNECT_REFRESH_DELAY_MS)\n .pipe(takeUntilDestroyed(destroyRef))\n .subscribe(() => {\n refreshIfAuthorized();\n });\n }\n wasConnected = connected;\n });\n\n connection.connectionStatus$\n .pipe(\n distinctUntilChanged(),\n switchMap((status) => {\n if (status === 'connected') {\n return EMPTY;\n }\n return timer(POLL_INTERVAL_MS, POLL_INTERVAL_MS);\n }),\n takeUntilDestroyed(destroyRef),\n )\n .subscribe(() => {\n refreshIfAuthorized();\n });\n\n document.addEventListener(\n 'visibilitychange',\n () => {\n if (document.visibilityState === 'visible') {\n refreshIfAuthorized();\n }\n },\n { passive: true },\n );\n },\n };\n }),\n ];\n}\n\n//#endregion\n","import { inject, type Provider } from '@angular/core';\nimport {\n AXP_APP_STARTUP_PRIORITY,\n provideAppStartUpTask,\n} from '@acorex-platform/framework-client/core';\nimport {\n AXPRealtimeDispatcherService,\n AXP_REALTIME_TOPIC_BACKGROUND_JOB_TRAY_REFRESH,\n type AXPRealtimeBackgroundJobTrayRefreshPayload,\n} from '@acorex-platform/framework-client/realtime';\nimport { BackgroundJobTrayRealtimeService } from './background-job-tray-realtime.service';\n\n//#region ----- Tray realtime topic handler -----\n\nexport function provideBackgroundJobTrayRealtimeHandlers(): Provider[] {\n return [\n provideAppStartUpTask(() => {\n const dispatcher = inject(AXPRealtimeDispatcherService, { optional: true });\n const trayRealtime = inject(BackgroundJobTrayRealtimeService);\n return {\n name: 'background-job-tray-realtime-handlers',\n priority: AXP_APP_STARTUP_PRIORITY.realtimeHandlers,\n run: async () => {\n dispatcher?.register({\n topic: AXP_REALTIME_TOPIC_BACKGROUND_JOB_TRAY_REFRESH,\n handle: (envelope) => {\n const payload = (envelope.payload ?? {}) as AXPRealtimeBackgroundJobTrayRefreshPayload;\n trayRealtime.notifyChanged(payload);\n },\n });\n },\n };\n }),\n ];\n}\n\n//#endregion\n","import { inject, type Provider } from '@angular/core';\nimport {\n AXP_APP_STARTUP_PRIORITY,\n provideAppStartUpTask,\n} from '@acorex-platform/framework-client/core';\nimport { AXP_BACKGROUND_OPERATION_PROVIDERS } from '@acorex-platform/framework-client/common';\nimport { BackgroundJobTrayOperationProvider } from './background-job-tray-operation.provider';\nimport { BackgroundJobTraySyncService } from './background-job-tray-sync.service';\nimport { provideBackgroundJobTrayFallbackSync } from './background-job-tray-fallback.providers';\nimport { provideBackgroundJobTrayRealtimeHandlers } from './background-job-tray-realtime.providers';\n\n//#region ----- Tray providers -----\n\nexport function provideBackgroundJobTray(): Provider[] {\n return [\n BackgroundJobTrayOperationProvider,\n {\n provide: AXP_BACKGROUND_OPERATION_PROVIDERS,\n useExisting: BackgroundJobTrayOperationProvider,\n multi: true,\n },\n ...provideBackgroundJobTrayRealtimeHandlers(),\n ...provideBackgroundJobTrayFallbackSync(),\n provideAppStartUpTask(() => {\n const sync = inject(BackgroundJobTraySyncService);\n return {\n name: 'background-job-tray-sync',\n priority: AXP_APP_STARTUP_PRIORITY.realtimeHandlers,\n run: async () => {\n sync.start();\n },\n };\n }),\n ];\n}\n\n//#endregion\n","import { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-background-job-management-client/contracts';\n\n/** Background Job Management module manifest. */\nexport const BackgroundJobManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'platform',\n};\n","import { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport {\n AXPAdministrationPermissionKeys,\n AXPBackgroundJobManagementMenuKeys,\n RootConfig,\n} from '@acorex-platform/module-background-job-management-client/contracts';\n\nexport class AXMBackgroundJobManagementMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n private sessionService = inject(AXPSessionService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n\n const module = RootConfig.module;\n const viewJobsPolicy = {\n features: [module.name],\n permissions: [AXPAdministrationPermissionKeys.ViewJobs],\n };\n\n const monitoringMenu = context.find(AXPCommonMenuKeys.Monitoring);\n if (!monitoringMenu.exists) {\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXPCommonMenuKeys.Monitoring,\n priority: 12,\n text: '@general:menus.monitoring.title',\n icon: 'fa-light fa-chart-line',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n context.find(AXPCommonMenuKeys.Monitoring).addItems([\n {\n name: AXPBackgroundJobManagementMenuKeys.Jobs,\n text: '@background-job-management:jobs.menus.jobs.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.backgroundJob.name),\n priority: 2,\n icon: RootConfig.entities.backgroundJob.icon,\n policy: viewJobsPolicy,\n },\n ]);\n\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXPBackgroundJobManagementMenuKeys.Schedules,\n text: '@background-job-management:schedules.menus.schedules.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.backgroundJobSchedule.name),\n priority: 16,\n icon: RootConfig.entities.backgroundJobSchedule.icon,\n policy: viewJobsPolicy,\n },\n ]);\n }\n}\n","//#region ---- Imports ----\n\nimport {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport { AXPCommonPermissionGroupKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPAdministrationPermissionKeys } from '@acorex-platform/module-background-job-management-client/contracts';\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Permission Definition Provider ----\n\n/**\n * Registers Jobs section capabilities under Administration.\n */\n@Injectable()\nexport class AXMBackgroundJobManagementPermissionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPAdministrationPermissionKeys;\n const groups = AXPCommonPermissionGroupKeys;\n const P = '@common:administration.permissions';\n const G = '@common:permission-groups';\n\n context.addGroup(groups.Administration.Root, `${G}.administration.title`, `${G}.administration.description`, { order: 120 });\n\n context\n .addGroup(\n groups.Administration.Jobs,\n `${G}.administration-jobs.title`,\n `${G}.administration-jobs.description`,\n { parent: groups.Administration.Root, order: 70 },\n )\n .addPermission(keys.ViewJobs, `${P}.view-jobs.title`, `${P}.view-jobs.description`)\n .endPermission()\n .addPermission(keys.ManageJobActions, `${P}.manage-job-actions.title`, `${P}.manage-job-actions.description`)\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPBackgroundJobManagementSettings,\n} from '@acorex-platform/module-background-job-management-client/contracts';\n\n//#region ---- Background job management settings ----\n\nexport class AXMBackgroundJobManagementSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n const retentionEnabled = `{{ context.eval('${AXPBackgroundJobManagementSettings.RetentionEnabled}') }}`;\n\n context\n .addGroup(\n 'background-job-management',\n '@background-job-management:settings.group.title',\n '@background-job-management:settings.group.description',\n 'fa-light fa-gears',\n undefined,\n 850,\n )\n .addSection(\n 'retention',\n '@background-job-management:settings.retention.title',\n '@background-job-management:settings.retention.description',\n )\n .addSetting({\n key: AXPBackgroundJobManagementSettings.RetentionEnabled,\n title: '@background-job-management:settings.retention.items.enabled.title',\n description: '@background-job-management:settings.retention.items.enabled.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: true,\n widget: { type: AXPWidgetsList.Editors.ToggleSwitch },\n })\n .addSetting({\n key: AXPBackgroundJobManagementSettings.RetentionDefaultDays,\n title: '@background-job-management:settings.retention.items.default-days.title',\n description: '@background-job-management:settings.retention.items.default-days.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: 30,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1, maxValue: 365, visibility: retentionEnabled },\n },\n validationRules: [{ rule: 'required' }],\n })\n .addSetting({\n key: AXPBackgroundJobManagementSettings.RetentionDeadLetterDays,\n title: '@background-job-management:settings.retention.items.dead-letter-days.title',\n description: '@background-job-management:settings.retention.items.dead-letter-days.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: 90,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1, maxValue: 730, visibility: retentionEnabled },\n },\n validationRules: [{ rule: 'required' }],\n })\n .addSetting({\n key: AXPBackgroundJobManagementSettings.RetentionBatchSize,\n title: '@background-job-management:settings.retention.items.batch-size.title',\n description: '@background-job-management:settings.retention.items.batch-size.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: 500,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1, maxValue: 5000, visibility: retentionEnabled },\n },\n validationRules: [{ rule: 'required' }],\n })\n .addSetting({\n key: AXPBackgroundJobManagementSettings.RetentionPurgeCron,\n title: '@background-job-management:settings.retention.items.purge-cron.title',\n description: '@background-job-management:settings.retention.items.purge-cron.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: '0 3 * * *',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n options: { visibility: retentionEnabled },\n },\n validationRules: [{ rule: 'required' }],\n })\n .endSection()\n .endGroup();\n }\n}\n\n//#endregion\n","import { AXPBackgroundJobCommandKeys } from '@acorex-platform/framework-shared/background-job';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_STATUS_PROVIDERS } from '@acorex-platform/framework-client/common';\nimport { AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { NgModule } from '@angular/core';\nimport { AXMBackgroundJobManagementWidgetsProvider } from './widget-definition.provider';\nimport { AXMBackgroundJobScheduleStatusProvider } from './features/background-job-schedule-status.provider';\nimport { AXMBackgroundJobStatusProvider } from './features/background-job-status.provider';\nimport { provideBackgroundJobTray } from './features/tray/background-job-tray.providers';\n\nimport { BackgroundJobManagementManifest } from './manifest';\nimport { AXMBackgroundJobManagementMenuProvider } from './menu.provider';\nimport { AXMBackgroundJobManagementPermissionProvider } from './permission-definition.provider';\nimport { AXMBackgroundJobManagementSettingProvider } from './settings.provider';\n\n@NgModule({\n imports: [AXPWidgetCoreModule],\n providers: [\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMBackgroundJobManagementWidgetsProvider,\n multi: true,\n },\n ...provideBackgroundJobTray(),\n provideCommandSetups([\n {\n key: AXPBackgroundJobCommandKeys.JobCancel,\n command: () => import('./commands/cancel-background-job.command').then((c) => c.CancelBackgroundJobCommand),\n },\n {\n key: AXPBackgroundJobCommandKeys.JobRetry,\n command: () => import('./commands/retry-background-job.command').then((c) => c.RetryBackgroundJobCommand),\n },\n {\n key: AXPBackgroundJobCommandKeys.JobReplayDeadLetter,\n command: () =>\n import('./commands/replay-dead-letter.command').then((c) => c.ReplayDeadLetterBackgroundJobCommand),\n },\n {\n key: AXPBackgroundJobCommandKeys.TrayExecuteClick,\n command: () =>\n import('./commands/tray-execute-click.command').then((c) => c.BackgroundJobTrayExecuteClickCommand),\n },\n {\n key: AXPBackgroundJobCommandKeys.TrayRunAction,\n command: () =>\n import('./commands/tray-run-action.command').then((c) => c.BackgroundJobTrayRunActionCommand),\n },\n {\n key: AXPBackgroundJobCommandKeys.ScheduleRunNow,\n command: () => import('./commands/run-schedule-now.command').then((c) => c.RunScheduleNowCommand),\n },\n ]),\n \n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: AXMBackgroundJobScheduleStatusProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: AXMBackgroundJobStatusProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMBackgroundJobManagementMenuProvider,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMBackgroundJobManagementPermissionProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMBackgroundJobManagementSettingProvider,\n multi: true,\n },\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: BackgroundJobManagementManifest,\n multi: true,\n },\n ],\n})\nexport class AXMBackgroundJobManagementModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["I18N"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-background-job-management-client.mjs","sources":["../../../../libs/modules/background-job-management/client/src/lib/background-job-management-client.port.ts","../../../../libs/modules/background-job-management/client/src/lib/widgets/background-job-source.widget.ts","../../../../libs/modules/background-job-management/client/src/lib/widget-definition.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/features/background-job-schedule-status.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/features/background-job-status.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray.mapper.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray-realtime.service.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray-sync.service.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray-operation.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray-fallback.providers.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray-realtime.providers.ts","../../../../libs/modules/background-job-management/client/src/lib/features/tray/background-job-tray.providers.ts","../../../../libs/modules/background-job-management/client/src/lib/manifest.ts","../../../../libs/modules/background-job-management/client/src/lib/menu.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/settings.provider.ts","../../../../libs/modules/background-job-management/client/src/lib/background-job-management.module.ts","../../../../libs/modules/background-job-management/client/src/acorex-platform-module-background-job-management-client.ts"],"sourcesContent":["import type {\n AXPBackgroundJob,\n AXPBackgroundJobAttempt,\n AXPBackgroundJobSchedule,\n AXPCancelBackgroundJobResult,\n AXPCreateBackgroundJobRequest,\n AXPCreateBackgroundJobResult,\n AXPDismissBackgroundJobsResult,\n AXPRetryBackgroundJobResult,\n} from '@acorex-platform/framework-shared/background-job';\n\n//#region ---- Client port ----\n\n/**\n * Client-side port for the background-job-management server API.\n * Bound to the HTTP implementation by the gateway package.\n */\nexport abstract class AXPBackgroundJobManagementClient {\n abstract createJob(request: AXPCreateBackgroundJobRequest): Promise<AXPCreateBackgroundJobResult>;\n abstract getJob(jobId: string): Promise<AXPBackgroundJob | null>;\n abstract listAttempts(jobId: string): Promise<AXPBackgroundJobAttempt[]>;\n abstract cancelJob(jobId: string, reason?: string): Promise<AXPCancelBackgroundJobResult>;\n abstract retryJob(jobId: string): Promise<AXPRetryBackgroundJobResult>;\n abstract deleteJob(jobId: string): Promise<{ success: boolean }>;\n /** Hide terminal jobs from the footer tray (1 → Job:Dismiss; 2+ → runtime commands/bulk). */\n abstract dismissJobs(jobIds: string[]): Promise<AXPDismissBackgroundJobsResult>;\n abstract replayDeadLetter(jobId: string): Promise<{ jobId: string }>;\n abstract upsertSchedule(schedule: Partial<AXPBackgroundJobSchedule>): Promise<AXPBackgroundJobSchedule>;\n abstract enableSchedule(scheduleId: string): Promise<{ success: boolean }>;\n abstract disableSchedule(scheduleId: string): Promise<{ success: boolean }>;\n abstract runScheduleNow(scheduleId: string): Promise<AXPCreateBackgroundJobResult>;\n abstract deleteSchedule(scheduleId: string): Promise<{ success: boolean }>;\n /** Active jobs for the footer tray (own jobs, or all when admin). */\n abstract listActiveForTray(take?: number): Promise<AXPBackgroundJob[]>;\n /** Pull schedule for an integration connection (`commandKey` + optional `connectionId`). */\n abstract getScheduleByScope(\n commandKey: string,\n connectionId?: string,\n ): Promise<AXPBackgroundJobSchedule | null>;\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { BACKGROUND_JOB_SOURCE_COLUMN_WIDGET } from '@acorex-platform/module-background-job-management-client/contracts';\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\n\n//#endregion\n\n//#region ----- Widget -----\n\nexport const BackgroundJobSourceColumnWidget: AXPWidgetConfig = {\n name: BACKGROUND_JOB_SOURCE_COLUMN_WIDGET,\n title: '@background-job-management:jobs.entities.background-job.fields.source.title',\n icon: 'fa-light fa-user',\n groups: [AXPWidgetGroupEnum.BaseWidget],\n type: 'editor',\n components: {\n column: {\n component: () =>\n import('./background-job-source-column.component').then((c) => c.BackgroundJobSourceColumnComponent),\n },\n },\n};\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { BackgroundJobSourceColumnWidget } from './widgets/background-job-source.widget';\n\n//#endregion\n\n//#region ----- Widgets provider -----\n\nconst BACKGROUND_JOB_WIDGETS = [BackgroundJobSourceColumnWidget];\n\n@Injectable()\nexport class AXMBackgroundJobManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return BACKGROUND_JOB_WIDGETS;\n }\n}\n\n//#endregion\n","import { AXStyleColorType } from '@acorex/cdk/common';\nimport {\n AXP_BACKGROUND_JOB_SCHEDULE_STATUS_ACTIVE,\n AXP_BACKGROUND_JOB_SCHEDULE_STATUS_DEFINITION_KEY,\n type AXPBackgroundJobScheduleStatus,\n} from '@acorex-platform/framework-shared/background-job';\nimport { AXPStatusProvider, AXPStatusTransition } from '@acorex-platform/framework-shared/core';\n\nconst I18N = '@background-job-management:schedules.entities.background-job-schedule';\n\n//#region ---- Job schedule status provider ----\n\nexport class AXMBackgroundJobScheduleStatusProvider extends AXPStatusProvider {\n readonly key = AXP_BACKGROUND_JOB_SCHEDULE_STATUS_DEFINITION_KEY;\n\n readonly defaultStatus: AXPBackgroundJobScheduleStatus = AXP_BACKGROUND_JOB_SCHEDULE_STATUS_ACTIVE;\n\n readonly statuses = [\n {\n name: 'active' as const,\n title: `${I18N}.status.active`,\n color: 'success' as AXStyleColorType,\n generateView: true,\n isInitial: true,\n },\n {\n name: 'pause' as const,\n title: `${I18N}.status.pause`,\n color: 'warning' as AXStyleColorType,\n generateView: true,\n },\n {\n name: 'disabled' as const,\n title: `${I18N}.status.disabled`,\n color: 'danger' as AXStyleColorType,\n generateView: true,\n isFinal: true,\n },\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n { from: 'active', to: 'pause', title: `${I18N}.transitions.pause` },\n { from: 'pause', to: 'active', title: `${I18N}.transitions.resume` },\n { from: 'active', to: 'disabled', title: `${I18N}.transitions.disable` },\n { from: 'disabled', to: 'active', title: `${I18N}.transitions.enable` },\n { from: 'pause', to: 'disabled', title: `${I18N}.transitions.disable` },\n { from: 'disabled', to: 'pause', title: `${I18N}.transitions.pause` },\n ];\n}\n\n//#endregion\n","import { AXStyleColorType } from '@acorex/cdk/common';\nimport {\n AXP_BACKGROUND_JOB_STATUS_CREATED,\n AXP_BACKGROUND_JOB_STATUS_DEFINITION_KEY,\n type AXPBackgroundJobStatus,\n} from '@acorex-platform/framework-shared/background-job';\nimport { AXPStatusProvider } from '@acorex-platform/framework-shared/core';\n\nconst I18N = '@background-job-management:jobs.entities.background-job';\n\n//#region ---- Background job status provider ----\n\n/**\n * Engine-managed lifecycle for logical jobs (`BackgroundJob`).\n * Read-only in the UI — transitions are performed by the execution engine and job commands.\n */\nexport class AXMBackgroundJobStatusProvider extends AXPStatusProvider {\n readonly key = AXP_BACKGROUND_JOB_STATUS_DEFINITION_KEY;\n\n readonly defaultStatus: AXPBackgroundJobStatus = AXP_BACKGROUND_JOB_STATUS_CREATED;\n\n readonly statuses = [\n {\n name: 'created' as const,\n title: `${I18N}.states.created`,\n color: 'secondary' as AXStyleColorType,\n generateView: true,\n isInitial: true,\n },\n {\n name: 'scheduled' as const,\n title: `${I18N}.states.scheduled`,\n color: 'info' as AXStyleColorType,\n generateView: true,\n },\n {\n name: 'queued' as const,\n title: `${I18N}.states.queued`,\n color: 'warning' as AXStyleColorType,\n generateView: true,\n },\n {\n name: 'running' as const,\n title: `${I18N}.states.running`,\n color: 'primary' as AXStyleColorType,\n generateView: true,\n },\n {\n name: 'paused' as const,\n title: `${I18N}.states.paused`,\n color: 'warning' as AXStyleColorType,\n generateView: true,\n },\n {\n name: 'completed' as const,\n title: `${I18N}.states.completed`,\n color: 'success' as AXStyleColorType,\n generateView: true,\n isFinal: true,\n },\n {\n name: 'failed' as const,\n title: `${I18N}.states.failed`,\n color: 'danger' as AXStyleColorType,\n generateView: true,\n isFinal: true,\n },\n {\n name: 'cancelled' as const,\n title: `${I18N}.states.cancelled`,\n color: 'warning' as AXStyleColorType,\n generateView: true,\n isFinal: true,\n },\n {\n name: 'dead-lettered' as const,\n title: `${I18N}.states.dead-lettered`,\n color: 'danger' as AXStyleColorType,\n generateView: true,\n isFinal: true,\n },\n ];\n\n readonly transitions = [];\n}\n\n//#endregion\n","import type { AXPBackgroundJob, AXPBackgroundJobStatus } from '@acorex-platform/framework-shared/background-job';\nimport type { AXPBackgroundOperation, AXPBackgroundOperationStatus } from '@acorex-platform/framework-client/common';\nimport {\n axpBackgroundOperationCapabilities,\n axpBackgroundOperationFailurePolicy,\n axpCoerceBackgroundOperationDate,\n} from '@acorex-platform/framework-client/common';\n\n//#region ----- Status mapping -----\n\nconst ACTIVE_JOB_STATUSES = new Set<AXPBackgroundJobStatus>([\n 'created',\n 'scheduled',\n 'queued',\n 'running',\n 'paused',\n]);\n\nexport function mapBackgroundJobStatusToOperationStatus(\n status: AXPBackgroundJobStatus,\n): AXPBackgroundOperationStatus {\n switch (status) {\n case 'running':\n return 'running';\n case 'paused':\n return 'paused';\n case 'completed':\n return 'completed';\n case 'failed':\n case 'dead-lettered':\n return 'failed';\n case 'cancelled':\n return 'cancelled';\n case 'created':\n case 'scheduled':\n case 'queued':\n default:\n return 'queued';\n }\n}\n\n//#endregion\n\n//#region ----- Job → tray operation -----\n\nexport function mapBackgroundJobToTrayOperation(job: AXPBackgroundJob): AXPBackgroundOperation {\n const status = mapBackgroundJobStatusToOperationStatus(job.status);\n const isActive = ACTIVE_JOB_STATUSES.has(job.status);\n const capabilities = job.capabilities ?? {};\n const createdAt =\n axpCoerceBackgroundOperationDate(job.createdAt as Date | string | undefined) ?? new Date();\n\n return {\n id: job.id,\n providerKey: job.providerKey,\n title: job.title,\n status,\n progress: job.progress,\n statusText: job.statusText,\n currentStep: job.currentStep,\n createdAt,\n startedAt:\n axpCoerceBackgroundOperationDate(job.firstStartedAt as Date | string | undefined) ??\n axpCoerceBackgroundOperationDate(job.executedAt as Date | string | undefined) ??\n undefined,\n completedAt: axpCoerceBackgroundOperationDate(job.completedAt as Date | string | undefined) ?? undefined,\n capabilities: axpBackgroundOperationCapabilities({\n cancellable:\n isActive &&\n (capabilities.supportsCooperativeCancellation === true || capabilities.canCancelQueued === true),\n pausable: isActive && capabilities.supportsCooperativePause === true,\n resumable: status === 'paused' && capabilities.supportsCooperativePause === true,\n retryable: status === 'failed',\n supportsProgress:\n capabilities.supportsProgress === true || typeof job.progress === 'number',\n supportsEstimate: capabilities.supportsEstimate === true,\n clickable: capabilities.clickable === true,\n keepInTrayAfterComplete: capabilities.keepInTrayAfterComplete === true,\n notifyOnComplete: capabilities.notifyOnComplete !== false,\n notifyOnFailed: capabilities.notifyOnFailed !== false,\n }),\n failurePolicy: axpBackgroundOperationFailurePolicy({\n maxRetries: job.maxAttempts,\n retryCount: Math.max(0, job.currentAttempt - 1),\n }),\n error: job.result?.message\n ? {\n message: job.result.message,\n code: typeof job.result.data?.['code'] === 'string' ? job.result.data['code'] : undefined,\n }\n : undefined,\n data: {\n jobId: job.id,\n providerKey: job.providerKey,\n command: job.command,\n payload: job.command?.payload,\n reportRequestId:\n typeof job.command?.payload?.['reportRequestId'] === 'string'\n ? job.command.payload['reportRequestId']\n : undefined,\n },\n };\n}\n\n//#endregion\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport type { AXPRealtimeBackgroundJobTrayRefreshPayload } from '@acorex-platform/framework-client/realtime';\n\n//#region ----- Types -----\n\nexport interface BackgroundJobTrayChangeEvent {\n payload: AXPRealtimeBackgroundJobTrayRefreshPayload;\n}\n\n//#endregion\n\n//#region ----- Tray realtime events -----\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BackgroundJobTrayRealtimeService {\n private readonly changedSubject = new Subject<BackgroundJobTrayChangeEvent>();\n\n readonly changed$ = this.changedSubject.asObservable();\n\n notifyChanged(payload: AXPRealtimeBackgroundJobTrayRefreshPayload): void {\n this.changedSubject.next({ payload });\n }\n}\n\n//#endregion\n","import { DestroyRef, Injectable, computed, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AXPSessionService, AXPSessionStatus } from '@acorex-platform/framework-client/auth';\nimport type { AXPRealtimeBackgroundJobTrayRefreshPayload } from '@acorex-platform/framework-client/realtime';\nimport { AXPQueryService } from '@acorex-platform/framework-client/runtime';\nimport type { AXPBackgroundJob, AXPBackgroundJobStatus } from '@acorex-platform/framework-shared/background-job';\nimport {\n AXPBackgroundJobQueryKeys,\n isBackgroundJobTerminal,\n} from '@acorex-platform/framework-shared/background-job';\nimport { runtimeQueryCollectionData } from '@acorex-platform/framework-shared/core';\nimport { filter } from 'rxjs/operators';\nimport { AXPBackgroundJobManagementClient } from '../../background-job-management-client.port';\nimport { mapBackgroundJobToTrayOperation } from './background-job-tray.mapper';\nimport { BackgroundJobTrayRealtimeService } from './background-job-tray-realtime.service';\n\n//#region ----- Constants -----\n\n/** Safety net while a job is active if a realtime tick was missed. */\nconst ACTIVE_JOB_WATCHDOG_MS = 30_000;\n\n/** Coalesce consecutive full-list fetches (e.g. create + early progress before local row exists). */\nconst FULL_REFRESH_DEBOUNCE_MS = 250;\n\nconst TERMINAL_STATUSES = new Set<string>(['completed', 'failed', 'cancelled', 'dead-lettered']);\n\n//#endregion\n\n//#region ----- Tray sync service -----\n\n@Injectable({ providedIn: 'root' })\nexport class BackgroundJobTraySyncService {\n //#region ----- Dependencies -----\n\n private readonly queryService = inject(AXPQueryService);\n private readonly sessionService = inject(AXPSessionService);\n private readonly client = inject(AXPBackgroundJobManagementClient);\n private readonly destroyRef = inject(DestroyRef);\n private readonly trayRealtime = inject(BackgroundJobTrayRealtimeService, { optional: true });\n\n //#endregion\n\n //#region ----- State -----\n\n private readonly jobs = signal<readonly AXPBackgroundJob[]>([]);\n private started = false;\n private refreshGeneration = 0;\n private refreshInFlight = false;\n private refreshQueued = false;\n private watchdogTimer: ReturnType<typeof setTimeout> | null = null;\n private fullRefreshTimer: ReturnType<typeof setTimeout> | null = null;\n\n readonly operations = computed(() => this.jobs().map((job) => mapBackgroundJobToTrayOperation(job)));\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n start(): void {\n if (this.started) {\n return;\n }\n this.started = true;\n\n this.destroyRef.onDestroy(() => {\n this.clearActiveWatchdog();\n this.clearFullRefreshTimer();\n });\n\n this.sessionService.status$\n .pipe(\n filter((status) => status === AXPSessionStatus.Authorized),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n void this.refresh();\n });\n\n this.sessionService.status$\n .pipe(\n filter((status) => status !== AXPSessionStatus.Authorized),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.clearActiveWatchdog();\n this.clearFullRefreshTimer();\n this.jobs.set([]);\n });\n\n this.trayRealtime?.changed$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(({ payload }) => {\n this.applyRealtimePayload(payload);\n });\n\n if (this.sessionService.isAuthorized) {\n void this.refresh();\n }\n }\n\n async refresh(): Promise<void> {\n this.clearFullRefreshTimer();\n\n if (this.refreshInFlight) {\n this.refreshQueued = true;\n return;\n }\n\n this.refreshInFlight = true;\n const generation = ++this.refreshGeneration;\n\n try {\n if (!this.sessionService.isAuthorized) {\n if (generation === this.refreshGeneration) {\n this.clearActiveWatchdog();\n this.jobs.set([]);\n }\n return;\n }\n\n try {\n const result = await this.queryService.fetch<{ take?: number }, AXPBackgroundJob>(\n AXPBackgroundJobQueryKeys.JobListActiveForTray,\n { take: 100 },\n );\n if (generation !== this.refreshGeneration) {\n return;\n }\n const items = runtimeQueryCollectionData(result)?.items ?? [];\n this.jobs.set(items);\n this.armActiveWatchdog();\n } catch {\n // Keep the last known tray snapshot when sync fails transiently.\n if (generation === this.refreshGeneration) {\n this.armActiveWatchdog();\n }\n }\n } finally {\n this.refreshInFlight = false;\n if (this.refreshQueued) {\n this.refreshQueued = false;\n if (this.sessionService.isAuthorized) {\n void this.refresh();\n }\n }\n }\n }\n\n async dismissJobs(jobIds: readonly string[]): Promise<void> {\n const ids = [...new Set(jobIds.map((id) => id?.trim()).filter(Boolean))];\n if (ids.length === 0) {\n return;\n }\n\n // Optimistic hide; realtime `dismissed` keeps other tabs in sync without a list refetch.\n this.removeJobs(ids);\n await this.client.dismissJobs(ids);\n }\n\n //#endregion\n\n //#region ----- Private helpers -----\n\n private applyRealtimePayload(payload: AXPRealtimeBackgroundJobTrayRefreshPayload): void {\n if (!this.sessionService.isAuthorized) {\n return;\n }\n\n const jobId = payload.jobId?.trim();\n if (!jobId) {\n this.scheduleFullRefresh();\n return;\n }\n\n if (payload.op === 'dismissed' || payload.trayDismissedAt) {\n this.removeJobs([jobId]);\n return;\n }\n\n if (payload.op === 'created') {\n // New jobs need the full row (title, capabilities, command payload).\n this.scheduleFullRefresh();\n return;\n }\n\n const existing = this.jobs().find((job) => job.id === jobId);\n if (!existing) {\n this.scheduleFullRefresh();\n return;\n }\n\n const nextStatus = (payload.status?.trim() || existing.status) as AXPBackgroundJobStatus;\n const keepInTray =\n payload.keepInTrayAfterComplete === true || existing.capabilities?.keepInTrayAfterComplete === true;\n\n if (isBackgroundJobTerminal(nextStatus) && !keepInTray) {\n this.removeJobs([jobId]);\n return;\n }\n\n this.jobs.update((current) =>\n current.map((job) => {\n if (job.id !== jobId) {\n return job;\n }\n return {\n ...job,\n status: nextStatus,\n progress: typeof payload.progress === 'number' ? payload.progress : job.progress,\n statusText: payload.statusText ?? job.statusText,\n currentStep: payload.currentStep ?? job.currentStep,\n capabilities: {\n ...(job.capabilities ?? {}),\n supportsProgress:\n job.capabilities?.supportsProgress === true ||\n payload.supportsProgress === true ||\n typeof payload.progress === 'number',\n },\n completedAt:\n payload.completedAt ??\n (TERMINAL_STATUSES.has(nextStatus) ? job.completedAt ?? new Date().toISOString() : job.completedAt),\n };\n }),\n );\n this.armActiveWatchdog();\n }\n\n private scheduleFullRefresh(): void {\n this.clearFullRefreshTimer();\n this.fullRefreshTimer = setTimeout(() => {\n this.fullRefreshTimer = null;\n void this.refresh();\n }, FULL_REFRESH_DEBOUNCE_MS);\n }\n\n private clearFullRefreshTimer(): void {\n if (!this.fullRefreshTimer) {\n return;\n }\n clearTimeout(this.fullRefreshTimer);\n this.fullRefreshTimer = null;\n }\n\n private removeJobs(jobIds: readonly string[]): void {\n const idSet = new Set(jobIds);\n this.jobs.update((current) => current.filter((job) => !idSet.has(job.id)));\n this.armActiveWatchdog();\n }\n\n private hasActiveTrayJob(): boolean {\n return this.jobs().some((job) => !isBackgroundJobTerminal(job.status));\n }\n\n private armActiveWatchdog(): void {\n this.clearActiveWatchdog();\n if (!this.sessionService.isAuthorized || !this.hasActiveTrayJob()) {\n return;\n }\n this.watchdogTimer = setTimeout(() => {\n this.watchdogTimer = null;\n void this.refresh();\n }, ACTIVE_JOB_WATCHDOG_MS);\n }\n\n private clearActiveWatchdog(): void {\n if (!this.watchdogTimer) {\n return;\n }\n clearTimeout(this.watchdogTimer);\n this.watchdogTimer = null;\n }\n\n //#endregion\n}\n\n//#endregion\n","import { Injectable, inject } from '@angular/core';\nimport {\n AXPBackgroundOperationProvider,\n type AXPBackgroundOperation,\n type AXPBackgroundOperationCreateRequest,\n} from '@acorex-platform/framework-client/common';\nimport { AXPBackgroundJobManagementClient } from '../../background-job-management-client.port';\nimport { BackgroundJobTraySyncService } from './background-job-tray-sync.service';\n\n//#region ----- Tray operation provider -----\n\n@Injectable()\nexport class BackgroundJobTrayOperationProvider extends AXPBackgroundOperationProvider {\n override readonly key = 'background-job';\n\n private readonly sync = inject(BackgroundJobTraySyncService);\n private readonly client = inject(AXPBackgroundJobManagementClient);\n\n override readonly operations = this.sync.operations;\n\n override async create(_request: AXPBackgroundOperationCreateRequest): Promise<AXPBackgroundOperation> {\n throw new Error('Background jobs are created on the server.');\n }\n\n override async cancel(operationId: string): Promise<void> {\n await this.client.cancelJob(operationId);\n await this.sync.refresh();\n }\n\n override async pause(_operationId: string): Promise<void> {\n throw new Error('Pause is not supported from the tray yet.');\n }\n\n override async resume(_operationId: string): Promise<void> {\n throw new Error('Resume is not supported from the tray yet.');\n }\n\n override async retry(operationId: string): Promise<void> {\n await this.client.retryJob(operationId);\n await this.sync.refresh();\n }\n\n override async dismiss(operationId: string): Promise<void> {\n await this.sync.dismissJobs([operationId]);\n }\n\n override async dismissMany(operationIds: readonly string[]): Promise<void> {\n await this.sync.dismissJobs(operationIds);\n }\n}\n\n//#endregion\n","import { DestroyRef, inject, type Provider } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AXP_APP_STARTUP_PRIORITY,\n provideAppStartUpTask,\n} from '@acorex-platform/framework-client/core';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPRealtimeConnectionService } from '@acorex-platform/framework-client/realtime';\nimport { distinctUntilChanged, EMPTY, switchMap, timer } from 'rxjs';\nimport { BackgroundJobTraySyncService } from './background-job-tray-sync.service';\n\n//#region ----- Constants -----\n\nconst POLL_INTERVAL_MS = 60_000;\nconst RECONNECT_REFRESH_DELAY_MS = 250;\n\n//#endregion\n\n//#region ----- Tray fallback sync -----\n\n/**\n * Keeps the footer tray fresh when Socket.IO is down: poll while disconnected,\n * refresh on reconnect and when the tab becomes visible again.\n */\nexport function provideBackgroundJobTrayFallbackSync(): Provider[] {\n return [\n provideAppStartUpTask(() => {\n const sync = inject(BackgroundJobTraySyncService);\n const sessionService = inject(AXPSessionService);\n const connection = inject(AXPRealtimeConnectionService, { optional: true });\n const destroyRef = inject(DestroyRef);\n\n const refreshIfAuthorized = (): void => {\n if (sessionService.isReadyForAppScopedApi) {\n void sync.refresh();\n }\n };\n\n return {\n name: 'background-job-tray-fallback-sync',\n priority: AXP_APP_STARTUP_PRIORITY.realtimeSubscriptions,\n run: async () => {\n if (!connection) {\n return;\n }\n\n let wasConnected = connection.isSocketConnected();\n\n connection.connectionStatus$\n .pipe(distinctUntilChanged(), takeUntilDestroyed(destroyRef))\n .subscribe((status) => {\n const connected = status === 'connected';\n if (connected && !wasConnected) {\n timer(RECONNECT_REFRESH_DELAY_MS)\n .pipe(takeUntilDestroyed(destroyRef))\n .subscribe(() => {\n refreshIfAuthorized();\n });\n }\n wasConnected = connected;\n });\n\n connection.connectionStatus$\n .pipe(\n distinctUntilChanged(),\n switchMap((status) => {\n if (status === 'connected') {\n return EMPTY;\n }\n return timer(POLL_INTERVAL_MS, POLL_INTERVAL_MS);\n }),\n takeUntilDestroyed(destroyRef),\n )\n .subscribe(() => {\n refreshIfAuthorized();\n });\n\n document.addEventListener(\n 'visibilitychange',\n () => {\n if (document.visibilityState === 'visible') {\n refreshIfAuthorized();\n }\n },\n { passive: true },\n );\n },\n };\n }),\n ];\n}\n\n//#endregion\n","import { inject, type Provider } from '@angular/core';\nimport {\n AXP_APP_STARTUP_PRIORITY,\n provideAppStartUpTask,\n} from '@acorex-platform/framework-client/core';\nimport {\n AXPRealtimeDispatcherService,\n AXP_REALTIME_TOPIC_BACKGROUND_JOB_TRAY_REFRESH,\n type AXPRealtimeBackgroundJobTrayRefreshPayload,\n} from '@acorex-platform/framework-client/realtime';\nimport { BackgroundJobTrayRealtimeService } from './background-job-tray-realtime.service';\n\n//#region ----- Tray realtime topic handler -----\n\nexport function provideBackgroundJobTrayRealtimeHandlers(): Provider[] {\n return [\n provideAppStartUpTask(() => {\n const dispatcher = inject(AXPRealtimeDispatcherService, { optional: true });\n const trayRealtime = inject(BackgroundJobTrayRealtimeService);\n return {\n name: 'background-job-tray-realtime-handlers',\n priority: AXP_APP_STARTUP_PRIORITY.realtimeHandlers,\n run: async () => {\n dispatcher?.register({\n topic: AXP_REALTIME_TOPIC_BACKGROUND_JOB_TRAY_REFRESH,\n handle: (envelope) => {\n const payload = (envelope.payload ?? {}) as AXPRealtimeBackgroundJobTrayRefreshPayload;\n trayRealtime.notifyChanged(payload);\n },\n });\n },\n };\n }),\n ];\n}\n\n//#endregion\n","import { inject, type Provider } from '@angular/core';\nimport {\n AXP_APP_STARTUP_PRIORITY,\n provideAppStartUpTask,\n} from '@acorex-platform/framework-client/core';\nimport { AXP_BACKGROUND_OPERATION_PROVIDERS } from '@acorex-platform/framework-client/common';\nimport { BackgroundJobTrayOperationProvider } from './background-job-tray-operation.provider';\nimport { BackgroundJobTraySyncService } from './background-job-tray-sync.service';\nimport { provideBackgroundJobTrayFallbackSync } from './background-job-tray-fallback.providers';\nimport { provideBackgroundJobTrayRealtimeHandlers } from './background-job-tray-realtime.providers';\n\n//#region ----- Tray providers -----\n\nexport function provideBackgroundJobTray(): Provider[] {\n return [\n BackgroundJobTrayOperationProvider,\n {\n provide: AXP_BACKGROUND_OPERATION_PROVIDERS,\n useExisting: BackgroundJobTrayOperationProvider,\n multi: true,\n },\n ...provideBackgroundJobTrayRealtimeHandlers(),\n ...provideBackgroundJobTrayFallbackSync(),\n provideAppStartUpTask(() => {\n const sync = inject(BackgroundJobTraySyncService);\n return {\n name: 'background-job-tray-sync',\n priority: AXP_APP_STARTUP_PRIORITY.realtimeHandlers,\n run: async () => {\n sync.start();\n },\n };\n }),\n ];\n}\n\n//#endregion\n","import { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-background-job-management-client/contracts';\n\n/** Background Job Management module manifest. */\nexport const BackgroundJobManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'platform',\n};\n","import { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport {\n AXPAdministrationPermissionKeys,\n AXPBackgroundJobManagementMenuKeys,\n RootConfig,\n} from '@acorex-platform/module-background-job-management-client/contracts';\n\nexport class AXMBackgroundJobManagementMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n private sessionService = inject(AXPSessionService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n\n const module = RootConfig.module;\n const viewJobsPolicy = {\n features: [module.name],\n permissions: [AXPAdministrationPermissionKeys.ViewJobs],\n };\n\n const monitoringMenu = context.find(AXPCommonMenuKeys.Monitoring);\n if (!monitoringMenu.exists) {\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXPCommonMenuKeys.Monitoring,\n priority: 12,\n text: '@general:menus.monitoring.title',\n icon: 'fa-light fa-chart-line',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n context.find(AXPCommonMenuKeys.Monitoring).addItems([\n {\n name: AXPBackgroundJobManagementMenuKeys.Jobs,\n text: '@background-job-management:jobs.menus.jobs.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.backgroundJob.name),\n priority: 2,\n icon: RootConfig.entities.backgroundJob.icon,\n policy: viewJobsPolicy,\n },\n ]);\n\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXPBackgroundJobManagementMenuKeys.Schedules,\n text: '@background-job-management:schedules.menus.schedules.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.backgroundJobSchedule.name),\n priority: 16,\n icon: RootConfig.entities.backgroundJobSchedule.icon,\n policy: viewJobsPolicy,\n },\n ]);\n }\n}\n","//#region ---- Imports ----\n\nimport {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport { AXPCommonPermissionGroupKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPAdministrationPermissionKeys } from '@acorex-platform/module-background-job-management-client/contracts';\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Permission Definition Provider ----\n\n/**\n * Registers Jobs section capabilities under Administration.\n */\n@Injectable()\nexport class AXMBackgroundJobManagementPermissionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPAdministrationPermissionKeys;\n const groups = AXPCommonPermissionGroupKeys;\n const P = '@common:administration.permissions';\n const G = '@common:permission-groups';\n\n context.addGroup(groups.Administration.Root, `${G}.administration.title`, `${G}.administration.description`, { order: 120 });\n\n context\n .addGroup(\n groups.Administration.Jobs,\n `${G}.administration-jobs.title`,\n `${G}.administration-jobs.description`,\n { parent: groups.Administration.Root, order: 70 },\n )\n .addPermission(keys.ViewJobs, `${P}.view-jobs.title`, `${P}.view-jobs.description`)\n .endPermission()\n .addPermission(keys.ManageJobActions, `${P}.manage-job-actions.title`, `${P}.manage-job-actions.description`)\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPBackgroundJobManagementSettings,\n} from '@acorex-platform/module-background-job-management-client/contracts';\n\n//#region ---- Background job management settings ----\n\nexport class AXMBackgroundJobManagementSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n const retentionEnabled = `{{ context.eval('${AXPBackgroundJobManagementSettings.RetentionEnabled}') }}`;\n\n context\n .addGroup(\n 'background-job-management',\n '@background-job-management:settings.group.title',\n '@background-job-management:settings.group.description',\n 'fa-light fa-gears',\n undefined,\n 850,\n )\n .addSection(\n 'retention',\n '@background-job-management:settings.retention.title',\n '@background-job-management:settings.retention.description',\n )\n .addSetting({\n key: AXPBackgroundJobManagementSettings.RetentionEnabled,\n title: '@background-job-management:settings.retention.items.enabled.title',\n description: '@background-job-management:settings.retention.items.enabled.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: true,\n widget: { type: AXPWidgetsList.Editors.ToggleSwitch },\n })\n .addSetting({\n key: AXPBackgroundJobManagementSettings.RetentionDefaultDays,\n title: '@background-job-management:settings.retention.items.default-days.title',\n description: '@background-job-management:settings.retention.items.default-days.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: 30,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1, maxValue: 365, visibility: retentionEnabled },\n },\n validationRules: [{ rule: 'required' }],\n })\n .addSetting({\n key: AXPBackgroundJobManagementSettings.RetentionDeadLetterDays,\n title: '@background-job-management:settings.retention.items.dead-letter-days.title',\n description: '@background-job-management:settings.retention.items.dead-letter-days.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: 90,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1, maxValue: 730, visibility: retentionEnabled },\n },\n validationRules: [{ rule: 'required' }],\n })\n .addSetting({\n key: AXPBackgroundJobManagementSettings.RetentionBatchSize,\n title: '@background-job-management:settings.retention.items.batch-size.title',\n description: '@background-job-management:settings.retention.items.batch-size.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: 500,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1, maxValue: 5000, visibility: retentionEnabled },\n },\n validationRules: [{ rule: 'required' }],\n })\n .addSetting({\n key: AXPBackgroundJobManagementSettings.RetentionPurgeCron,\n title: '@background-job-management:settings.retention.items.purge-cron.title',\n description: '@background-job-management:settings.retention.items.purge-cron.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: '0 3 * * *',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n options: { visibility: retentionEnabled },\n },\n validationRules: [{ rule: 'required' }],\n })\n .endSection()\n .endGroup();\n }\n}\n\n//#endregion\n","import { AXPBackgroundJobCommandKeys } from '@acorex-platform/framework-shared/background-job';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_STATUS_PROVIDERS } from '@acorex-platform/framework-client/common';\nimport { AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { NgModule } from '@angular/core';\nimport { AXMBackgroundJobManagementWidgetsProvider } from './widget-definition.provider';\nimport { AXMBackgroundJobScheduleStatusProvider } from './features/background-job-schedule-status.provider';\nimport { AXMBackgroundJobStatusProvider } from './features/background-job-status.provider';\nimport { provideBackgroundJobTray } from './features/tray/background-job-tray.providers';\n\nimport { BackgroundJobManagementManifest } from './manifest';\nimport { AXMBackgroundJobManagementMenuProvider } from './menu.provider';\nimport { AXMBackgroundJobManagementPermissionProvider } from './permission-definition.provider';\nimport { AXMBackgroundJobManagementSettingProvider } from './settings.provider';\n\n@NgModule({\n imports: [AXPWidgetCoreModule],\n providers: [\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMBackgroundJobManagementWidgetsProvider,\n multi: true,\n },\n ...provideBackgroundJobTray(),\n provideCommandSetups([\n {\n key: AXPBackgroundJobCommandKeys.JobCancel,\n command: () => import('./commands/cancel-background-job.command').then((c) => c.CancelBackgroundJobCommand),\n },\n {\n key: AXPBackgroundJobCommandKeys.JobRetry,\n command: () => import('./commands/retry-background-job.command').then((c) => c.RetryBackgroundJobCommand),\n },\n {\n key: AXPBackgroundJobCommandKeys.JobReplayDeadLetter,\n command: () =>\n import('./commands/replay-dead-letter.command').then((c) => c.ReplayDeadLetterBackgroundJobCommand),\n },\n {\n key: AXPBackgroundJobCommandKeys.TrayExecuteClick,\n command: () =>\n import('./commands/tray-execute-click.command').then((c) => c.BackgroundJobTrayExecuteClickCommand),\n },\n {\n key: AXPBackgroundJobCommandKeys.TrayRunAction,\n command: () =>\n import('./commands/tray-run-action.command').then((c) => c.BackgroundJobTrayRunActionCommand),\n },\n {\n key: AXPBackgroundJobCommandKeys.ScheduleRunNow,\n command: () => import('./commands/run-schedule-now.command').then((c) => c.RunScheduleNowCommand),\n },\n ]),\n \n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: AXMBackgroundJobScheduleStatusProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: AXMBackgroundJobStatusProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMBackgroundJobManagementMenuProvider,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMBackgroundJobManagementPermissionProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMBackgroundJobManagementSettingProvider,\n multi: true,\n },\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: BackgroundJobManagementManifest,\n multi: true,\n },\n ],\n})\nexport class AXMBackgroundJobManagementModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["I18N"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-background-job-management-client",
3
- "version": "0.0.33",
3
+ "version": "0.0.37",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0 || ^22.0.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-module-background-job-management-client-contracts-entity-catalog-background-job-schedule.entity-q8VKiWJf.mjs","sources":["../../../../libs/modules/background-job-management/contracts/src/entities/background-job-schedule/background-job-schedule.entity.ts"],"sourcesContent":["import { AXPRegionalSetting, AXPSystemActionType, AXPWidgetsCatalog, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { AXPBackgroundJobCommandKeys, AXP_BACKGROUND_JOB_SCHEDULE_STATUS_DEFINITION_KEY } from '@acorex-platform/framework-shared/background-job';\nimport {\n AXPEntity,\n AXPEntityCommandScope,\n createAllQueryView,\n entityDetailsSimpleCondition,\n entityMasterCrudActions,\n entityMasterRecordActions,\n} from '@acorex-platform/framework-shared/entity';\nimport { RootConfig } from '../../root-config';\n\nconst I18N = '@background-job-management:schedules.entities.background-job-schedule';\n\nconst CONCURRENCY_ITEMS = [\n { name: 'skip-if-running', title: `${I18N}.options.concurrency.skip-if-running` },\n { name: 'queue', title: `${I18N}.options.concurrency.queue` },\n];\n\nconst MISSED_RUN_ITEMS = [\n { name: 'skip', title: `${I18N}.options.missed-run.skip` },\n { name: 'catch-up-one', title: `${I18N}.options.missed-run.catch-up-one` },\n];\n\nconst SOURCE_ITEMS = [\n { name: 'system', title: `${I18N}.options.source.system` },\n { name: 'integration', title: `${I18N}.options.source.integration` },\n { name: 'user', title: `${I18N}.options.source.user` },\n];\n\nconst VISIBILITY_ITEMS = [\n { name: 'initiator', title: `${I18N}.options.visibility.initiator` },\n { name: 'tenant-admin', title: `${I18N}.options.visibility.tenant-admin` },\n { name: 'silent', title: `${I18N}.options.visibility.silent` },\n];\n\nconst FAILURE_ACTION_ITEMS = [\n { name: 'pause', title: `${I18N}.options.failure-action.pause` },\n { name: 'disable', title: `${I18N}.options.failure-action.disable` },\n { name: 'alert-only', title: `${I18N}.options.failure-action.alert` },\n];\n\nexport async function factoryBackgroundJobSchedule(): Promise<AXPEntity | null> {\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.backgroundJobSchedule.name,\n title: RootConfig.entities.backgroundJobSchedule.title,\n icon: RootConfig.entities.backgroundJobSchedule.icon,\n plugins: [\n { name: 'history' },\n {\n name: 'status',\n options: {\n field: 'status',\n definition: AXP_BACKGROUND_JOB_SCHEDULE_STATUS_DEFINITION_KEY,\n showInCreate: false,\n generate: { views: { enabled: true } },\n },\n },\n ],\n formats: {\n individual: RootConfig.entities.backgroundJobSchedule.title,\n plural: RootConfig.entities.backgroundJobSchedule.titlePlural,\n searchResult: {\n title: '{{ title || command.key }}',\n description: '{{ description || cron }}',\n },\n },\n relatedEntities: [\n {\n entity: RootConfig.entities.backgroundJob.fullName,\n title: `${I18N}.related-entities.jobs.title`,\n icon: RootConfig.entities.backgroundJob.icon,\n columns: [\n 'title',\n 'command',\n 'executedAt',\n 'completedAt',\n 'totalDurationMs',\n 'progress',\n 'trigger',\n 'result',\n ],\n conditions: [entityDetailsSimpleCondition('scheduleId')],\n layout: { type: 'page-list', position: 'after', order: 1 },\n actions: [\n {\n title: '@general:actions.view.title',\n command: { name: 'Entity:View' },\n priority: 'primary',\n default: true,\n type: AXPSystemActionType.View,\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n },\n ],\n groups: [\n { id: 'basicInfo', title: `${I18N}.groups.basic-info` },\n { id: 'command', title: `${I18N}.groups.command` },\n { id: 'recurrence', title: `${I18N}.groups.recurrence` },\n { id: 'policies', title: `${I18N}.groups.policies` },\n { id: 'runtime', title: `${I18N}.groups.runtime` },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'basicInfo',\n schema: {\n dataType: 'uuid',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n {\n name: 'title',\n title: `${I18N}.fields.title.title`,\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text, options: { multiLanguage: true } },\n },\n options: { filter: { advance: { enabled: true }, inline: { enabled: false } }, sort: { enabled: true } },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'description',\n title: `${I18N}.fields.description.title`,\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.largeText, options: { rows: 3 } },\n },\n options: { filter: { advance: { enabled: true }, inline: { enabled: false } }, sort: { enabled: false } },\n },\n {\n name: 'command',\n title: `${I18N}.fields.command.title`,\n groupId: 'command',\n schema: {\n dataType: 'object',\n interface: {\n type: AXPWidgetsList.Editors.ActivityCommandConfigurator,\n options: {\n loadStrategy: 'command-registry',\n executionModeFilter: 'backend',\n capabilitiesFilter: ['background-job'],\n },\n },\n },\n options: { filter: { advance: { enabled: false }, inline: { enabled: false } }, sort: { enabled: false } },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'source',\n title: `${I18N}.fields.source.title`,\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n defaultValue: 'user',\n readonly: true,\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n readonly: true,\n valueField: 'name',\n textField: 'title',\n multiple: false,\n dataSource: SOURCE_ITEMS,\n },\n },\n },\n options: { filter: { advance: { enabled: true }, inline: { enabled: false } }, sort: { enabled: true } },\n },\n {\n name: 'cron',\n title: `${I18N}.fields.cron.title`,\n groupId: 'recurrence',\n schema: {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text },\n },\n options: { filter: { advance: { enabled: false }, inline: { enabled: false } }, sort: { enabled: false } },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'timezone',\n title: `${I18N}.fields.timezone.title`,\n groupId: 'recurrence',\n schema: {\n dataType: 'string',\n defaultValue: `{{ settings.get('${AXPRegionalSetting.TimeZone}') }}`,\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n entity: 'LocaleManagement.Timezones',\n look: 'select',\n allowSearch: true,\n valueField: 'code',\n textField: 'title',\n filter: {\n logic: 'and',\n filters: [{ field: 'isActive', operator: { type: 'equal' }, value: true }],\n },\n },\n },\n },\n options: { filter: { advance: { enabled: true }, inline: { enabled: false } }, sort: { enabled: true } },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'concurrencyPolicy',\n title: `${I18N}.fields.concurrency-policy.title`,\n groupId: 'policies',\n schema: {\n dataType: 'string',\n defaultValue: 'skip-if-running',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n multiple: false,\n dataSource: CONCURRENCY_ITEMS,\n },\n },\n },\n options: { filter: { advance: { enabled: false }, inline: { enabled: false } }, sort: { enabled: false } },\n },\n {\n name: 'missedRunPolicy',\n title: `${I18N}.fields.missed-run-policy.title`,\n groupId: 'policies',\n schema: {\n dataType: 'string',\n defaultValue: 'skip',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n multiple: false,\n dataSource: MISSED_RUN_ITEMS,\n },\n },\n },\n options: { filter: { advance: { enabled: false }, inline: { enabled: false } }, sort: { enabled: false } },\n },\n {\n name: 'defaultVisibility',\n title: `${I18N}.fields.default-visibility.title`,\n groupId: 'policies',\n schema: {\n dataType: 'string',\n defaultValue: 'tenant-admin',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n multiple: false,\n dataSource: VISIBILITY_ITEMS,\n },\n },\n },\n options: { filter: { advance: { enabled: false }, inline: { enabled: false } }, sort: { enabled: false } },\n },\n {\n name: 'failurePolicy.consecutiveFailureThreshold',\n title: `${I18N}.fields.failure-threshold.title`,\n groupId: 'policies',\n schema: {\n dataType: 'number',\n defaultValue: 5,\n interface: { type: AXPWidgetsCatalog.number, options: { minValue: 1 } },\n },\n options: { filter: { advance: { enabled: false }, inline: { enabled: false } }, sort: { enabled: false } },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'failurePolicy.onThresholdExceeded',\n title: `${I18N}.fields.failure-action.title`,\n groupId: 'policies',\n schema: {\n dataType: 'string',\n defaultValue: 'pause',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n multiple: false,\n dataSource: FAILURE_ACTION_ITEMS,\n },\n },\n },\n options: { filter: { advance: { enabled: false }, inline: { enabled: false } }, sort: { enabled: false } },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'failurePolicy.resetAfterSuccess',\n title: `${I18N}.fields.reset-failures-after-success.title`,\n groupId: 'policies',\n schema: {\n dataType: 'boolean',\n defaultValue: true,\n interface: { type: AXPWidgetsCatalog.toggle },\n },\n options: { filter: { advance: { enabled: false }, inline: { enabled: false } }, sort: { enabled: false } },\n },\n {\n name: 'nextRunAt',\n title: `${I18N}.fields.next-run-at.title`,\n groupId: 'runtime',\n schema: {\n dataType: 'datetime',\n interface: { type: AXPWidgetsCatalog.dateTime, options: { format: 'datetime' } },\n readonly: true,\n },\n options: { filter: { advance: { enabled: true }, inline: { enabled: false } }, sort: { enabled: true } },\n },\n {\n name: 'lastTriggeredAt',\n title: `${I18N}.fields.last-triggered-at.title`,\n groupId: 'runtime',\n schema: {\n dataType: 'datetime',\n interface: { type: AXPWidgetsCatalog.dateTime, options: { format: 'datetime' } },\n readonly: true,\n },\n options: { filter: { advance: { enabled: true }, inline: { enabled: false } }, sort: { enabled: true } },\n },\n {\n name: 'consecutiveFailures',\n title: `${I18N}.fields.consecutive-failures.title`,\n groupId: 'runtime',\n schema: {\n dataType: 'number',\n interface: { type: AXPWidgetsCatalog.number },\n readonly: true,\n },\n options: { filter: { advance: { enabled: false }, inline: { enabled: false } }, sort: { enabled: true } },\n },\n ],\n columns: [\n { name: 'title' },\n { name: 'command' },\n { name: 'cron' },\n { name: 'lastTriggeredAt' },\n { name: 'nextRunAt' },\n { name: 'consecutiveFailures' },\n ],\n interfaces: {\n master: {\n create: {\n sections: [\n { id: 'basicInfo', order: 1, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'command', order: 2, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'recurrence', order: 3, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'policies', order: 4, layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12 } } } },\n {\n name: 'command',\n layout: {\n label: { visible: false },\n positions: { lg: { colSpan: 12 } },\n },\n },\n { name: 'cron', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'timezone', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'concurrencyPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'missedRunPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'defaultVisibility', layout: { positions: { lg: { colSpan: 6 } } } },\n {\n name: 'failurePolicy.consecutiveFailureThreshold',\n layout: { positions: { lg: { colSpan: 4 } } },\n },\n { name: 'failurePolicy.onThresholdExceeded', layout: { positions: { lg: { colSpan: 4 } } } },\n { name: 'failurePolicy.resetAfterSuccess', layout: { positions: { lg: { colSpan: 4 } } } },\n ],\n },\n update: {\n sections: [\n { id: 'basicInfo', order: 1, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'command', order: 2, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'recurrence', order: 3, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'policies', order: 4, layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'source', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12 } } } },\n {\n name: 'command',\n layout: {\n label: { visible: false },\n positions: { lg: { colSpan: 12 } },\n },\n },\n { name: 'cron', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'timezone', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'concurrencyPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'missedRunPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'defaultVisibility', layout: { positions: { lg: { colSpan: 6 } } } },\n {\n name: 'failurePolicy.consecutiveFailureThreshold',\n layout: { positions: { lg: { colSpan: 4 } } },\n },\n { name: 'failurePolicy.onThresholdExceeded', layout: { positions: { lg: { colSpan: 4 } } } },\n { name: 'failurePolicy.resetAfterSuccess', layout: { positions: { lg: { colSpan: 4 } } } },\n ],\n },\n single: {\n title: '{{ title || command.key }}',\n sections: [\n { id: 'basicInfo', order: 1, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'command', order: 2, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'recurrence', order: 3, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'policies', order: 4, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'runtime', order: 5, layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'source', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12 } } } },\n {\n name: 'command',\n layout: {\n label: { visible: false },\n positions: { lg: { colSpan: 12 } },\n },\n },\n { name: 'cron', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'timezone', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'concurrencyPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'missedRunPolicy', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'defaultVisibility', layout: { positions: { lg: { colSpan: 6 } } } },\n {\n name: 'failurePolicy.consecutiveFailureThreshold',\n layout: { positions: { lg: { colSpan: 4 } } },\n },\n { name: 'failurePolicy.onThresholdExceeded', layout: { positions: { lg: { colSpan: 4 } } } },\n { name: 'failurePolicy.resetAfterSuccess', layout: { positions: { lg: { colSpan: 4 } } } },\n { name: 'nextRunAt', layout: { positions: { lg: { colSpan: 4 } } } },\n { name: 'lastTriggeredAt', layout: { positions: { lg: { colSpan: 4 } } } },\n { name: 'consecutiveFailures', layout: { positions: { lg: { colSpan: 4 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [\n ...entityMasterCrudActions(),\n {\n title: '@background-job-management:schedules.actions.run-now.title',\n name: 'run-schedule-now',\n command: {\n name: AXPBackgroundJobCommandKeys.ScheduleRunNow,\n options: {\n scheduleId: '{{ context.eval(\"id\") }}',\n },\n },\n icon: 'fa-light fa-play',\n color: 'success',\n priority: 'secondary',\n type: 'execute',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: '@background-job-management:schedules.actions.bulk-run-now.title',\n name: 'bulk-run-schedule-now',\n command: {\n name: 'Entity:Bulk',\n options: {\n command: AXPBackgroundJobCommandKeys.ScheduleRunNow,\n entity: RootConfig.entities.backgroundJobSchedule.fullName,\n idField: 'scheduleId',\n confirm: {\n title: '@background-job-management:schedules.actions.bulk-run-now.confirm.title',\n message: '@background-job-management:schedules.actions.bulk-run-now.confirm.message',\n },\n },\n },\n icon: 'fa-light fa-play',\n color: 'success',\n priority: 'primary',\n type: 'execute',\n scope: AXPEntityCommandScope.Selected,\n order: 10,\n },\n ],\n views: [createAllQueryView({ sorts: [{ name: 'auditInfo.created.at', dir: 'desc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n"],"names":[],"mappings":"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"}