@memberjunction/ng-dashboards 6.1.0-edge.2 → 6.1.0-edge.3

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 (40) hide show
  1. package/LICENSE +180 -4
  2. package/README.md +1 -1
  3. package/dist/Integration/components/activity/activity.component.d.ts +7 -1
  4. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  5. package/dist/Integration/components/activity/activity.component.js +2 -2
  6. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  7. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
  8. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +3 -0
  9. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  10. package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
  11. package/dist/Integration/components/overview/overview.component.js +2 -1
  12. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  13. package/dist/Integration/components/widgets/integration-card.component.d.ts.map +1 -1
  14. package/dist/Integration/components/widgets/integration-card.component.js +8 -7
  15. package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
  16. package/dist/Integration/components/widgets/run-history-panel.component.d.ts +1 -1
  17. package/dist/Integration/components/widgets/run-history-panel.component.d.ts.map +1 -1
  18. package/dist/Integration/components/widgets/run-history-panel.component.js +6 -0
  19. package/dist/Integration/components/widgets/run-history-panel.component.js.map +1 -1
  20. package/dist/Integration/services/integration-data.service.d.ts +13 -3
  21. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  22. package/dist/Integration/services/integration-data.service.js +13 -2
  23. package/dist/Integration/services/integration-data.service.js.map +1 -1
  24. package/dist/Workflows/components/workflow-run-debug-state.d.ts +41 -0
  25. package/dist/Workflows/components/workflow-run-debug-state.d.ts.map +1 -0
  26. package/dist/Workflows/components/workflow-run-debug-state.js +78 -0
  27. package/dist/Workflows/components/workflow-run-debug-state.js.map +1 -0
  28. package/dist/Workflows/components/workflow-run-layout.d.ts +83 -0
  29. package/dist/Workflows/components/workflow-run-layout.d.ts.map +1 -0
  30. package/dist/Workflows/components/workflow-run-layout.js +133 -0
  31. package/dist/Workflows/components/workflow-run-layout.js.map +1 -0
  32. package/dist/Workflows/components/workflow-runs-resource.component.d.ts +146 -3
  33. package/dist/Workflows/components/workflow-runs-resource.component.d.ts.map +1 -1
  34. package/dist/Workflows/components/workflow-runs-resource.component.js +1271 -125
  35. package/dist/Workflows/components/workflow-runs-resource.component.js.map +1 -1
  36. package/dist/workflows-dashboards.module.d.ts +2 -1
  37. package/dist/workflows-dashboards.module.d.ts.map +1 -1
  38. package/dist/workflows-dashboards.module.js +6 -2
  39. package/dist/workflows-dashboards.module.js.map +1 -1
  40. package/package.json +64 -64
@@ -1 +1 @@
1
- {"version":3,"file":"activity.component.js","sourceRoot":"","sources":["../../../../src/Integration/components/activity/activity.component.ts","../../../../src/Integration/components/activity/activity.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectorRef, Component, OnInit, AfterViewInit, inject } from '@angular/core';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { FilterFieldConfig } from '@memberjunction/ng-ui-components';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { CompositeKey, IRunViewProvider, RunView } from '@memberjunction/core';\nimport {\n IntegrationDataService,\n IntegrationSummary,\n IntegrationRunRow,\n RunDetailRow,\n EntityMapRow,\n} from '../../services/integration-data.service';\nimport {\n buildActivityAgentContext,\n resolveIntegrationSurface,\n navLabelForSurface,\n resolveIntegrationRecord,\n buildIntegrationNotFoundError,\n ActivityRunSummary,\n NamedIntegrationRecord,\n} from '../../integration-agent-context';\nimport { AgentToolResult, validateEnumParam, validateStringParam } from '../../../shared/agent-tool-validation';\n\ntype StatusFilterType = 'All' | 'Success' | 'Failed' | 'In Progress' | 'Pending';\ntype DateFilterType = 'today' | '7d' | '30d' | 'all';\n\ninterface WatermarkRow {\n ID: string;\n EntityMapID: string;\n WatermarkType: string;\n WatermarkValue: string | null;\n LastSyncAt: string | null;\n EntityMap: string;\n}\n\ninterface IntegrationOption {\n ID: string;\n Name: string;\n}\n\n@RegisterClass(BaseResourceComponent, 'IntegrationActivity')\n@Component({\n standalone: false,\n selector: 'app-integration-activity',\n templateUrl: './activity.component.html',\n styleUrls: ['./activity.component.css']\n})\nexport class ActivityComponent extends BaseResourceComponent implements OnInit, AfterViewInit {\n\n // Data\n AllRuns: IntegrationRunRow[] = [];\n FilteredRuns: IntegrationRunRow[] = [];\n Summaries: IntegrationSummary[] = [];\n Integrations: IntegrationOption[] = [];\n SelectedRunID: string | null = null;\n SelectedRunDetails: RunDetailRow[] = [];\n WatermarkData: WatermarkRow[] = [];\n IsLoading = true;\n IsLoadingDetail = false;\n\n // Filters\n StatusFilter: StatusFilterType = 'All';\n IntegrationFilter: string | null = null;\n DateFilter: DateFilterType = '7d';\n SearchQuery = '';\n ExpandedRunID: string | null = null;\n\n // Expanded row details cache\n private expandedDetails: RunDetailRow[] = [];\n private isLoadingExpanded = false;\n\n // Detail panel tab\n ActiveDetailTab: 'entities' | 'watermarks' = 'entities';\n IsLoadingWatermarks = false;\n\n StatusOptions: StatusFilterType[] = ['All', 'Success', 'Failed', 'In Progress', 'Pending'];\n DateOptions: { Value: DateFilterType; Label: string }[] = [\n { Value: 'all', Label: 'All' },\n { Value: 'today', Label: 'Today' },\n { Value: '7d', Label: '7 Days' },\n { Value: '30d', Label: '30 Days' }\n ];\n\n private dataService = inject(IntegrationDataService);\n private cdr = inject(ChangeDetectorRef);\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n this.dataService.Provider = this.ProviderToUse;\n await this.LoadData();\n this.NotifyLoadComplete();\n }\n\n // ── Data Loading ──────────────────────────────────────────\n\n async LoadData(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n try {\n const provider = this.RunViewToUse;\n const [summaries, runs] = await Promise.all([\n this.dataService.LoadIntegrationSummaries(provider),\n this.loadAllRuns(provider)\n ]);\n this.Summaries = summaries;\n this.Integrations = this.buildIntegrationOptions(summaries);\n this.AllRuns = runs;\n this.ApplyFilters();\n } catch (err) {\n console.error('[IntegrationActivity] Failed to load data:', err);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n private async loadAllRuns(provider: IRunViewProvider | null): Promise<IntegrationRunRow[]> {\n const rv = new RunView(provider ?? null);\n const result = await rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: '',\n OrderBy: 'StartedAt DESC',\n MaxRows: 200,\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords',\n 'Status', 'ErrorLog', 'Integration', 'Company', 'RunByUser'],\n ResultType: 'simple'\n });\n return result.Results;\n }\n\n private buildIntegrationOptions(summaries: IntegrationSummary[]): IntegrationOption[] {\n return summaries.map(s => ({\n ID: s.Integration.ID,\n Name: `${s.Integration.Integration} (${s.Integration.Company})`\n }));\n }\n\n async LoadRunDetails(runID: string): Promise<RunDetailRow[]> {\n try {\n return await this.dataService.LoadRunDetails(runID, this.RunViewToUse);\n } catch (err) {\n console.error('[IntegrationActivity] Failed to load run details:', err);\n return [];\n }\n }\n\n async LoadWatermarks(companyIntegrationID: string): Promise<void> {\n this.IsLoadingWatermarks = true;\n this.cdr.detectChanges();\n try {\n this.WatermarkData = await this.loadWatermarkData(companyIntegrationID);\n } catch (err) {\n console.error('[IntegrationActivity] Failed to load watermarks:', err);\n } finally {\n this.IsLoadingWatermarks = false;\n this.cdr.detectChanges();\n }\n }\n\n private async loadWatermarkData(companyIntegrationID: string): Promise<WatermarkRow[]> {\n const entityMaps = await this.dataService.LoadEntityMaps(companyIntegrationID, this.RunViewToUse);\n if (entityMaps.length === 0) return [];\n\n const entityMapIDs = entityMaps.map(m => `'${m.ID}'`).join(',');\n const rv = new RunView(this.RunViewToUse ?? null);\n const result = await rv.RunView<WatermarkRow>({\n EntityName: 'MJ: Company Integration Sync Watermarks',\n ExtraFilter: `EntityMapID IN (${entityMapIDs})`,\n OrderBy: 'LastSyncAt DESC',\n Fields: ['ID', 'EntityMapID', 'WatermarkType', 'WatermarkValue', 'LastSyncAt'],\n ResultType: 'simple'\n });\n\n return this.mergeWatermarksWithEntityMaps(result.Results, entityMaps);\n }\n\n private mergeWatermarksWithEntityMaps(\n watermarks: WatermarkRow[],\n entityMaps: EntityMapRow[]\n ): WatermarkRow[] {\n const mapLookup = new Map(entityMaps.map(m => [m.ID.toLowerCase(), m]));\n return watermarks.map(w => ({\n ...w,\n EntityMap: mapLookup.get(w.EntityMapID?.toLowerCase())?.ExternalObjectName ?? w.EntityMapID\n }));\n }\n\n // ── Filtering ─────────────────────────────────────────────\n\n ApplyFilters(): void {\n let filtered = this.AllRuns;\n filtered = this.filterByStatus(filtered);\n filtered = this.filterByIntegration(filtered);\n filtered = this.filterByDate(filtered);\n filtered = this.filterBySearch(filtered);\n this.FilteredRuns = filtered;\n this.emitAgentContext();\n }\n\n // ---------------------------------------------------------------------------\n // AI Agent Context & Client Tools\n //\n // 🔒 SAFETY BOUNDARY: The Activity surface exposes ONLY read-only filter /\n // search / select / open-record / navigation / refresh tools to the agent\n // (SwitchIntegrationSurface, FilterActivityByStatus / ByTimeRange / ByIntegration,\n // SearchActivity, ClearActivityFilters, SelectActivityRun, OpenActivityRunRecord,\n // RefreshIntegrationData). It deliberately does NOT expose any sync trigger\n // (RunSync — a LIVE external sync), nor any mutation of mappings, schedules, or\n // credentials. SelectActivityRun opens the read-only detail panel;\n // OpenActivityRunRecord opens the run record in a tab for VIEWING (not editing).\n // The agent can narrow what's shown and select/open runs; the user performs\n // every mutating action from the UI.\n // ---------------------------------------------------------------------------\n\n ngAfterViewInit(): void {\n this.emitAgentContext();\n this.registerAgentTools();\n }\n\n private emitAgentContext(): void {\n const kpis = this.dataService.ComputeKPIs(this.Summaries);\n const selectedRun = this.GetSelectedRun();\n const context = buildActivityAgentContext({\n KPIs: {\n TotalIntegrations: kpis.TotalIntegrations,\n ActiveSyncs: kpis.ActiveSyncs,\n RecordsSyncedToday: kpis.RecordsSyncedToday,\n SyncErrorRate: kpis.ErrorRate,\n PipelineCount: 0,\n ScheduledSyncCount: 0,\n },\n IsLoading: this.IsLoading,\n StatusFilter: this.StatusFilter,\n DateFilter: this.DateFilter,\n IntegrationFilterName: this.resolveIntegrationFilterName(),\n SearchQuery: this.SearchQuery,\n FilteredRunCount: this.FilteredRuns.length,\n TotalRunCount: this.AllRuns.length,\n SuccessfulRunCount: this.SuccessfulRuns,\n FailedRunCount: this.FailedRuns,\n TotalRecordsProcessed: this.TotalRecordsProcessed,\n VisibleRuns: this.FilteredRuns.map(r => this.buildRunSummary(r)),\n SelectedRunId: this.SelectedRunID,\n SelectedRunName: selectedRun ? this.runLabel(selectedRun) : null,\n AvailableIntegrationNames: this.Integrations.map(i => i.Name),\n });\n this.navigationService.SetAgentContext(this, context);\n }\n\n private registerAgentTools(): void {\n this.navigationService.SetAgentClientTools(this, [\n {\n Name: 'SwitchIntegrationSurface',\n Description: 'Switch to a different Integration surface. Valid surfaces: Overview, Connections, Activity, Schedules.',\n ParameterSchema: { type: 'object', properties: { surface: { type: 'string' } }, required: ['surface'] },\n Handler: async (params: Record<string, unknown>) => this.toolSwitchSurface(params),\n },\n {\n Name: 'FilterActivityByStatus',\n Description: 'Filter the run-activity list by status. Valid: All, Success, Failed, In Progress, Pending.',\n ParameterSchema: { type: 'object', properties: { status: { type: 'string' } }, required: ['status'] },\n Handler: async (params: Record<string, unknown>) => this.toolFilterByStatus(params),\n },\n {\n Name: 'FilterActivityByTimeRange',\n Description: 'Filter the run-activity list by time range. Valid: today, 7d, 30d, all.',\n ParameterSchema: { type: 'object', properties: { range: { type: 'string' } }, required: ['range'] },\n Handler: async (params: Record<string, unknown>) => this.toolFilterByTimeRange(params),\n },\n {\n Name: 'FilterActivityByIntegration',\n Description: 'Filter the run-activity list to a single integration. Accepts the integration ID or name (exact or partial), or \"all\" to clear.',\n ParameterSchema: { type: 'object', properties: { integration: { type: 'string' } }, required: ['integration'] },\n Handler: async (params: Record<string, unknown>) => this.toolFilterByIntegration(params),\n },\n {\n Name: 'SearchActivity',\n Description: 'Search the run-activity list by integration or company name.',\n ParameterSchema: { type: 'object', properties: { query: { type: 'string' } }, required: ['query'] },\n Handler: async (params: Record<string, unknown>) => this.toolSearch(params),\n },\n {\n Name: 'ClearActivityFilters',\n Description: 'Reset the run-activity filters (status → All, time range → 7d, integration → all, search cleared).',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n this.ResetIntegrationFilter();\n this.OnSearchValueChange('');\n return { Success: true };\n },\n },\n {\n Name: 'SelectActivityRun',\n Description: 'Open the detail panel for a run. Accepts the run ID or a run label (integration/company/status, exact or partial).',\n ParameterSchema: { type: 'object', properties: { run: { type: 'string' } }, required: ['run'] },\n Handler: async (params: Record<string, unknown>) => this.toolSelectRun(params),\n },\n {\n Name: 'OpenActivityRunRecord',\n Description: 'Open a company-integration-run record in a tab for viewing. Accepts the run ID or a run label (exact or partial).',\n ParameterSchema: { type: 'object', properties: { run: { type: 'string' } }, required: ['run'] },\n Handler: async (params: Record<string, unknown>) => this.toolOpenRunRecord(params),\n },\n {\n Name: 'RefreshIntegrationData',\n Description: 'Reload the integration run-activity history.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n await this.LoadData();\n return { Success: true };\n },\n },\n ]);\n }\n\n private async toolSwitchSurface(params: Record<string, unknown>): Promise<AgentToolResult> {\n const surface = resolveIntegrationSurface(params['surface']);\n if (!surface) {\n return { Success: false, ErrorMessage: 'Invalid surface. Expected one of: Overview, Connections, Activity, Schedules.' };\n }\n const tabId = await this.navigationService.OpenNavItemByName(navLabelForSurface(surface));\n if (!tabId) {\n return { Success: false, ErrorMessage: `Could not open the \"${surface}\" surface.` };\n }\n return { Success: true };\n }\n\n private toolFilterByStatus(params: Record<string, unknown>): AgentToolResult {\n const check = validateEnumParam<StatusFilterType>(params['status'], this.StatusOptions, 'status');\n if (!check.ok) {\n return check.result;\n }\n this.SetStatusFilter(check.value);\n return { Success: true };\n }\n\n private toolFilterByTimeRange(params: Record<string, unknown>): AgentToolResult {\n const allowed = this.DateOptions.map(d => d.Value);\n const check = validateEnumParam<DateFilterType>(params['range'], allowed, 'range');\n if (!check.ok) {\n return check.result;\n }\n this.SetDateFilter(check.value);\n return { Success: true };\n }\n\n private toolFilterByIntegration(params: Record<string, unknown>): AgentToolResult {\n const check = validateStringParam(params['integration'], 'integration');\n if (!check.ok) {\n return check.result;\n }\n if (check.value.trim().toLowerCase() === 'all') {\n this.SetIntegrationFilter(null);\n return { Success: true };\n }\n const candidates: NamedIntegrationRecord[] = this.Integrations.map(i => ({ ID: i.ID, Name: i.Name }));\n const match = resolveIntegrationRecord(check.value, candidates);\n if (!match) {\n return { Success: false, ErrorMessage: buildIntegrationNotFoundError(check.value, candidates, 'integration') };\n }\n this.SetIntegrationFilter(match.ID);\n return { Success: true };\n }\n\n private toolSearch(params: Record<string, unknown>): AgentToolResult {\n const check = validateStringParam(params['query'], 'query');\n if (!check.ok) {\n return check.result;\n }\n this.OnSearchValueChange(check.value);\n return { Success: true };\n }\n\n private async toolSelectRun(params: Record<string, unknown>): Promise<AgentToolResult> {\n const match = this.resolveRunFromParam(params['run']);\n if (!match.ok) {\n return match.result;\n }\n // SelectRun toggles; only open when not already the selected run.\n if (!UUIDsEqual(this.SelectedRunID, match.value.ID)) {\n await this.SelectRun(match.value.ID);\n }\n this.emitAgentContext();\n return { Success: true };\n }\n\n private toolOpenRunRecord(params: Record<string, unknown>): AgentToolResult {\n const match = this.resolveRunFromParam(params['run']);\n if (!match.ok) {\n return match.result;\n }\n this.navigationService.OpenEntityRecord('MJ: Company Integration Runs', CompositeKey.FromID(match.value.ID));\n return { Success: true };\n }\n\n /** Resolve an agent-supplied run reference (id or label) against the loaded runs. */\n private resolveRunFromParam(\n raw: unknown,\n ): { ok: true; value: IntegrationRunRow } | { ok: false; result: AgentToolResult } {\n const check = validateStringParam(raw, 'run');\n if (!check.ok) {\n return { ok: false, result: check.result };\n }\n const candidates: NamedIntegrationRecord[] = this.AllRuns.map(r => ({ ID: r.ID, Name: this.runLabel(r) }));\n const match = resolveIntegrationRecord(check.value, candidates);\n if (!match) {\n return { ok: false, result: { Success: false, ErrorMessage: buildIntegrationNotFoundError(check.value, candidates, 'run') } };\n }\n const run = this.AllRuns.find(r => UUIDsEqual(r.ID, match.ID));\n if (!run) {\n return { ok: false, result: { Success: false, ErrorMessage: buildIntegrationNotFoundError(check.value, candidates, 'run') } };\n }\n return { ok: true, value: run };\n }\n\n /** Human-readable label for a run row, used for agent name-resolution + context. */\n private runLabel(run: IntegrationRunRow): string {\n const who = run.Integration ?? 'Integration';\n const company = run.Company ? ` (${run.Company})` : '';\n return `${who}${company} · ${run.Status}`;\n }\n\n private buildRunSummary(run: IntegrationRunRow): ActivityRunSummary {\n return {\n ID: run.ID,\n Name: this.runLabel(run),\n Status: run.Status,\n TotalRecords: run.TotalRecords,\n When: this.dataService.ComputeRelativeTime(run.StartedAt),\n };\n }\n\n /** Resolve the active integration-filter ID to its display name, or null. */\n private resolveIntegrationFilterName(): string | null {\n if (!this.IntegrationFilter) {\n return null;\n }\n return this.Integrations.find(i => UUIDsEqual(i.ID, this.IntegrationFilter))?.Name ?? null;\n }\n\n private filterByStatus(runs: IntegrationRunRow[]): IntegrationRunRow[] {\n if (this.StatusFilter === 'All') return runs;\n return runs.filter(r => r.Status === this.StatusFilter);\n }\n\n private filterByIntegration(runs: IntegrationRunRow[]): IntegrationRunRow[] {\n if (!this.IntegrationFilter) return runs;\n return runs.filter(r => UUIDsEqual(r.CompanyIntegrationID, this.IntegrationFilter));\n }\n\n private filterByDate(runs: IntegrationRunRow[]): IntegrationRunRow[] {\n const cutoff = this.getDateCutoff(this.DateFilter);\n if (!cutoff) return runs;\n return runs.filter(r => r.StartedAt && new Date(r.StartedAt) >= cutoff);\n }\n\n private filterBySearch(runs: IntegrationRunRow[]): IntegrationRunRow[] {\n if (!this.SearchQuery.trim()) return runs;\n const query = this.SearchQuery.toLowerCase().trim();\n return runs.filter(r =>\n r.Integration?.toLowerCase().includes(query) ||\n r.Company?.toLowerCase().includes(query)\n );\n }\n\n private getDateCutoff(range: DateFilterType): Date | null {\n if (range === 'all') return null;\n const now = new Date();\n if (range === 'today') {\n const today = new Date(now);\n today.setHours(0, 0, 0, 0);\n return today;\n }\n const days = range === '7d' ? 7 : 30;\n const cutoff = new Date(now);\n cutoff.setDate(cutoff.getDate() - days);\n return cutoff;\n }\n\n SetStatusFilter(status: StatusFilterType): void {\n this.StatusFilter = status;\n this.ApplyFilters();\n }\n\n SetDateFilter(range: DateFilterType): void {\n this.DateFilter = range;\n this.ApplyFilters();\n }\n\n SetIntegrationFilter(id: string | null): void {\n this.IntegrationFilter = id;\n this.ApplyFilters();\n }\n\n OnSearchChange(): void {\n this.ApplyFilters();\n }\n\n /** Bridge for <mj-page-search> which emits a plain string. */\n OnSearchValueChange(value: string): void {\n this.SearchQuery = value;\n this.ApplyFilters();\n }\n\n // ---- Integration filter popover wiring ---------------------------------\n\n get ActivityFilterFields(): FilterFieldConfig[] {\n return [\n {\n key: 'dateRange',\n type: 'chips',\n label: 'Date range',\n chipOptions: this.DateOptions.map(d => ({ text: d.Label, value: d.Value })),\n },\n {\n key: 'status',\n type: 'chips',\n label: 'Status',\n chipOptions: this.StatusOptions.map(s => ({ text: s, value: s })),\n },\n {\n key: 'integration',\n type: 'dropdown',\n label: 'Integration',\n icon: 'fa-solid fa-plug',\n placeholder: 'All Integrations',\n filterable: this.Integrations.length > 10,\n options: [\n { text: 'All Integrations', value: '' },\n ...this.Integrations.map(i => ({ text: i.Name, value: i.ID })),\n ],\n },\n ];\n }\n\n get ActivityFilterValues(): Record<string, unknown> {\n return {\n dateRange: this.DateFilter,\n status: this.StatusFilter,\n integration: this.IntegrationFilter ?? ''\n };\n }\n\n get ActiveFilterCount(): number {\n let count = 0;\n if (this.DateFilter !== '7d') count++;\n if (this.StatusFilter !== 'All') count++;\n if (this.IntegrationFilter) count++;\n return count;\n }\n\n OnFilterValuesChange(values: Record<string, unknown>): void {\n const next = (values ?? {}) as { dateRange?: string; status?: string; integration?: string };\n if (next.dateRange && next.dateRange !== this.DateFilter) {\n this.SetDateFilter(next.dateRange as DateFilterType);\n }\n if (next.status && next.status !== this.StatusFilter) {\n this.SetStatusFilter(next.status as StatusFilterType);\n }\n const integ = next.integration ?? '';\n if ((integ || null) !== this.IntegrationFilter) {\n this.SetIntegrationFilter(integ || null);\n }\n }\n\n ResetIntegrationFilter(): void {\n if (this.DateFilter !== '7d') this.SetDateFilter('7d');\n if (this.StatusFilter !== 'All') this.SetStatusFilter('All');\n if (this.IntegrationFilter) this.SetIntegrationFilter(null);\n }\n\n async Refresh(): Promise<void> {\n await this.LoadData();\n }\n\n // ── Run Selection & Expansion ─────────────────────────────\n\n async SelectRun(runID: string): Promise<void> {\n if (UUIDsEqual(this.SelectedRunID, runID)) {\n this.SelectedRunID = null;\n this.SelectedRunDetails = [];\n this.WatermarkData = [];\n this.emitAgentContext();\n return;\n }\n this.SelectedRunID = runID;\n this.ActiveDetailTab = 'entities';\n this.IsLoadingDetail = true;\n this.cdr.detectChanges();\n this.emitAgentContext();\n\n const run = this.findRunByID(runID);\n try {\n this.SelectedRunDetails = await this.LoadRunDetails(runID);\n if (run) {\n await this.LoadWatermarks(run.CompanyIntegrationID);\n }\n } finally {\n this.IsLoadingDetail = false;\n this.cdr.detectChanges();\n }\n }\n\n async ToggleExpand(runID: string): Promise<void> {\n if (UUIDsEqual(this.ExpandedRunID, runID)) {\n this.ExpandedRunID = null;\n this.expandedDetails = [];\n return;\n }\n this.ExpandedRunID = runID;\n this.isLoadingExpanded = true;\n this.cdr.detectChanges();\n try {\n this.expandedDetails = await this.LoadRunDetails(runID);\n } finally {\n this.isLoadingExpanded = false;\n this.cdr.detectChanges();\n }\n }\n\n IsExpanded(runID: string): boolean {\n return UUIDsEqual(this.ExpandedRunID, runID);\n }\n\n IsSelectedRun(runID: string): boolean {\n return UUIDsEqual(this.SelectedRunID, runID);\n }\n\n GetExpandedDetails(): RunDetailRow[] {\n return this.expandedDetails;\n }\n\n IsLoadingExpandedDetails(): boolean {\n return this.isLoadingExpanded;\n }\n\n GetSelectedRun(): IntegrationRunRow | null {\n return this.findRunByID(this.SelectedRunID);\n }\n\n SetDetailTab(tab: 'entities' | 'watermarks'): void {\n this.ActiveDetailTab = tab;\n }\n\n private findRunByID(runID: string | null): IntegrationRunRow | null {\n if (!runID) return null;\n return this.AllRuns.find(r => UUIDsEqual(r.ID, runID)) ?? null;\n }\n\n // ── Formatting Helpers ────────────────────────────────────\n\n FormatDuration(startedAt: Date | string | null, endedAt: Date | string | null): string {\n if (!startedAt || !endedAt) return '--';\n const ms = new Date(endedAt).getTime() - new Date(startedAt).getTime();\n return this.dataService.FormatDuration(ms);\n }\n\n GetRelativeTime(dateStr: Date | string | null): string {\n return this.dataService.ComputeRelativeTime(dateStr);\n }\n\n FormatAbsoluteDate(dateStr: Date | string | null): string {\n if (!dateStr) return '';\n return new Date(dateStr).toLocaleString(undefined, {\n year: 'numeric', month: 'short', day: 'numeric',\n hour: '2-digit', minute: '2-digit', second: '2-digit'\n });\n }\n\n FormatWatermark(value: string | null): string {\n if (!value) return 'Not set';\n if (value.length > 40) return value.substring(0, 37) + '...';\n return value;\n }\n\n FormatDate(dateStr: Date | string | null): string {\n if (!dateStr) return '--';\n return new Date(dateStr).toLocaleString(undefined, {\n month: 'short', day: 'numeric',\n hour: '2-digit', minute: '2-digit'\n });\n }\n\n GetStatusIcon(status: string): string {\n if (status === 'Success') return 'fa-solid fa-circle-check';\n if (status === 'Failed') return 'fa-solid fa-circle-xmark';\n if (status === 'In Progress') return 'fa-solid fa-spinner fa-spin';\n return 'fa-solid fa-clock';\n }\n\n GetStatusColor(status: string): string {\n if (status === 'Success') return 'green';\n if (status === 'Failed') return 'red';\n if (status === 'In Progress') return 'amber';\n return 'gray';\n }\n\n GetStatusDotClass(status: string): string {\n return `status-dot dot-${this.GetStatusColor(status)}`;\n }\n\n StatusChipClass(status: string): string {\n return `chip chip-${this.GetStatusColor(status)}`;\n }\n\n GetErrorCount(run: IntegrationRunRow): number {\n return run.ErrorLog ? 1 : 0;\n }\n\n // ── Summary Computed Properties ───────────────────────────\n\n get TotalRuns(): number {\n return this.FilteredRuns.length;\n }\n\n get SuccessfulRuns(): number {\n return this.FilteredRuns.filter(r => r.Status === 'Success').length;\n }\n\n get FailedRuns(): number {\n return this.FilteredRuns.filter(r => r.Status === 'Failed').length;\n }\n\n get TotalRecordsProcessed(): number {\n return this.FilteredRuns.reduce((acc, r) => acc + r.TotalRecords, 0);\n }\n\n // ── Duration Bar (detail panel) ───────────────────────────\n\n GetDurationBarWidth(run: IntegrationRunRow): number {\n if (!run.StartedAt || !run.EndedAt) return 0;\n return 100;\n }\n\n GetDurationBarLabel(run: IntegrationRunRow): string {\n return this.FormatDuration(run.StartedAt, run.EndedAt);\n }\n\n // ── Resource overrides ────────────────────────────────────\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Activity';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-clock-rotate-left';\n }\n}\n\nexport function LoadActivityComponent(): void {\n // Tree-shaking prevention: importing this module causes\n // @RegisterClass decorators to fire, registering components.\n}\n","<mj-page-layout>\n <mj-page-header\n Title=\"Integration Activity\"\n Icon=\"fa-solid fa-clock-rotate-left\"\n Subtitle=\"Sync run history and outcomes\">\n <!-- [meta] retains the succeeded/failed status pills (genuine variant\n signal — error rate at a glance) and the records aggregate\n (non-trivially derived: count of records across all runs).\n \"Total runs\" dropped per chrome slot discipline audit Task B —\n that count equals the visible list's row count. -->\n @if (!IsLoading && AllRuns.length > 0) {\n <div meta>\n <mj-stat-badge [Count]=\"SuccessfulRuns\" Label=\"succeeded\" Variant=\"success\"></mj-stat-badge>\n <mj-stat-badge [Count]=\"FailedRuns\" Label=\"failed\" Variant=\"error\"></mj-stat-badge>\n <mj-stat-badge [Count]=\"TotalRecordsProcessed | number\" Label=\"records\"></mj-stat-badge>\n </div>\n }\n <div actions>\n <mj-refresh-button [Loading]=\"IsLoading\" (Clicked)=\"Refresh()\"></mj-refresh-button>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search integrations...\"\n [Value]=\"SearchQuery\"\n (ValueChange)=\"OnSearchValueChange($event)\">\n </mj-page-search>\n <mj-filter-popover\n [ActiveCount]=\"ActiveFilterCount\"\n [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"ResetIntegrationFilter()\">\n <mj-filter-panel\n [Fields]=\"ActivityFilterFields\"\n [Values]=\"ActivityFilterValues\"\n (ValuesChange)=\"OnFilterValuesChange($event)\"\n (Reset)=\"ResetIntegrationFilter()\">\n </mj-filter-panel>\n </mj-filter-popover>\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\">\n<div class=\"activity-container\">\n\n <!-- Loading state -->\n @if (IsLoading) {\n <div class=\"loading-area\">\n <mj-loading text=\"Loading activity...\" size=\"medium\"></mj-loading>\n </div>\n }\n\n <!-- Empty state -->\n @if (!IsLoading && FilteredRuns.length === 0) {\n <mj-empty-state Variant=\"no-results\" Icon=\"fa-solid fa-inbox\"\n Title=\"No runs found for the selected filters.\" />\n }\n\n <!-- Split View: Run List + Detail Panel -->\n @if (!IsLoading && FilteredRuns.length > 0) {\n <div class=\"split-view\">\n\n <!-- Left panel: Run list -->\n <div class=\"run-list-panel\">\n @for (run of FilteredRuns; track run.ID) {\n <!-- Run row → accordion panel. The title slot carries the run's status +\n integration + meta columns; the accordion toggle reveals the entity\n breakdown (formerly the chevron's ToggleExpand). SelectRun (the\n right-hand detail panel) moves to the header actions slot, since the\n accordion header click now owns expand/collapse.\n Side-effecting handler (ToggleExpand async-loads the breakdown) +\n Default CD → [Expanded] + (ExpandedChange). -->\n <mj-accordion-panel class=\"run-panel\"\n [class.selected]=\"IsSelectedRun(run.ID)\"\n Size=\"sm\" [FlushBody]=\"true\"\n [Expanded]=\"IsExpanded(run.ID)\"\n (ExpandedChange)=\"ToggleExpand(run.ID)\">\n <ng-template mjAccordionTitle>\n <!-- Status indicator -->\n <span [class]=\"GetStatusDotClass(run.Status)\"></span>\n <i [class]=\"GetStatusIcon(run.Status)\"\n [class.icon-green]=\"run.Status === 'Success'\"\n [class.icon-red]=\"run.Status === 'Failed'\"\n [class.icon-amber]=\"run.Status === 'In Progress'\"\n [class.icon-gray]=\"run.Status === 'Pending'\"\n class=\"status-icon\"></i>\n\n <!-- Integration info -->\n <div class=\"run-info\">\n <span class=\"run-integration\">{{ run.Integration }}</span>\n <span class=\"run-company\">{{ run.Company }}</span>\n </div>\n\n <!-- Started time -->\n <div class=\"run-meta\" [title]=\"FormatAbsoluteDate(run.StartedAt)\">\n {{ GetRelativeTime(run.StartedAt) }}\n </div>\n\n <!-- Duration -->\n <div class=\"run-meta run-duration\">\n {{ FormatDuration(run.StartedAt, run.EndedAt) }}\n </div>\n\n <!-- Records -->\n <div class=\"run-meta run-records\">\n {{ run.TotalRecords | number }}\n </div>\n\n <!-- Errors -->\n <div class=\"run-meta run-errors\" [class.has-errors]=\"run.ErrorLog\">\n @if (run.ErrorLog) {\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n }\n </div>\n\n <!-- Triggered by -->\n <div class=\"run-meta run-user\">\n {{ run.RunByUser || 'Scheduled' }}\n </div>\n </ng-template>\n\n <!-- Open/close the right-hand detail panel (entity breakdown +\n watermarks). Lives in the actions slot because the accordion\n header click is now the expand/collapse toggle. -->\n <ng-template mjAccordionActions>\n <button type=\"button\" class=\"detail-toggle-btn\"\n [class.active]=\"IsSelectedRun(run.ID)\"\n (click)=\"SelectRun(run.ID)\"\n title=\"Show run detail panel\">\n <i class=\"fa-solid fa-table-columns\"></i>\n </button>\n </ng-template>\n\n <!-- Expanded section: entity breakdown (lazy body) -->\n <ng-template mjAccordionBody>\n <div class=\"expanded-section\">\n @if (IsLoadingExpandedDetails()) {\n <div class=\"expanded-loading\">\n <mj-loading text=\"Loading breakdown...\" size=\"small\"></mj-loading>\n </div>\n } @else if (GetExpandedDetails().length === 0) {\n <mj-empty-state class=\"expanded-empty\" Size=\"compact\" Icon=\"fa-solid fa-circle-info\"\n Title=\"No entity details for this run.\" />\n } @else {\n <table class=\"entity-table\">\n <thead>\n <tr>\n <th>Entity</th>\n <th class=\"num-col\">Processed</th>\n <th class=\"num-col\">Created</th>\n <th class=\"num-col\">Updated</th>\n <th class=\"num-col\">Deleted</th>\n <th class=\"num-col\">Errored</th>\n <th class=\"num-col\">Skipped</th>\n </tr>\n </thead>\n <tbody>\n @for (detail of GetExpandedDetails(); track detail.EntityID) {\n <tr [class.error-row]=\"detail.RecordsErrored > 0\">\n <td>{{ detail.Entity }}</td>\n <td class=\"num-col\">{{ detail.RecordsProcessed | number }}</td>\n <td class=\"num-col created-col\">{{ detail.RecordsCreated | number }}</td>\n <td class=\"num-col updated-col\">{{ detail.RecordsUpdated | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsDeleted | number }}</td>\n <td class=\"num-col error-col\">{{ detail.RecordsErrored | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsSkipped | number }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <!-- Error log in expanded view -->\n @if (run.ErrorLog) {\n <div class=\"error-log-block\">\n <div class=\"error-log-label\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> Error Log\n </div>\n <pre class=\"error-log-content\">{{ run.ErrorLog }}</pre>\n </div>\n }\n </div>\n </ng-template>\n </mj-accordion-panel>\n }\n </div>\n\n <!-- Right panel: Detail -->\n @if (SelectedRunID && GetSelectedRun()) {\n <div class=\"detail-panel\">\n <div class=\"detail-header\">\n <div class=\"detail-header-info\">\n <h3>{{ GetSelectedRun()!.Integration }}</h3>\n <span [class]=\"StatusChipClass(GetSelectedRun()!.Status)\">\n <i [class]=\"GetStatusIcon(GetSelectedRun()!.Status)\"></i>\n {{ GetSelectedRun()!.Status }}\n </span>\n <span class=\"detail-time\">{{ FormatDate(GetSelectedRun()!.StartedAt) }}</span>\n </div>\n <button class=\"close-detail-btn\" (click)=\"SelectRun(SelectedRunID!)\" title=\"Close\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <!-- Duration bar -->\n @if (GetSelectedRun()!.StartedAt && GetSelectedRun()!.EndedAt) {\n <div class=\"duration-bar-container\">\n <div class=\"duration-bar-track\">\n <div class=\"duration-bar-fill\"\n [style.width.%]=\"GetDurationBarWidth(GetSelectedRun()!)\"></div>\n </div>\n <div class=\"duration-bar-labels\">\n <span>{{ FormatDate(GetSelectedRun()!.StartedAt) }}</span>\n <span class=\"duration-bar-value\">{{ GetDurationBarLabel(GetSelectedRun()!) }}</span>\n <span>{{ FormatDate(GetSelectedRun()!.EndedAt) }}</span>\n </div>\n </div>\n }\n\n <!-- Tabs -->\n <div class=\"detail-tabs\">\n <button class=\"tab-btn\" [class.active]=\"ActiveDetailTab === 'entities'\"\n (click)=\"SetDetailTab('entities')\">\n <i class=\"fa-solid fa-table\"></i> Entity Breakdown\n </button>\n <button class=\"tab-btn\" [class.active]=\"ActiveDetailTab === 'watermarks'\"\n (click)=\"SetDetailTab('watermarks')\">\n <i class=\"fa-solid fa-droplet\"></i> Watermarks\n </button>\n </div>\n\n <div class=\"detail-content\">\n <!-- Entity breakdown tab -->\n @if (ActiveDetailTab === 'entities') {\n @if (IsLoadingDetail) {\n <div class=\"detail-loading\">\n <mj-loading text=\"Loading details...\" size=\"small\"></mj-loading>\n </div>\n } @else if (SelectedRunDetails.length === 0) {\n <mj-empty-state class=\"detail-empty\" Size=\"compact\" Icon=\"fa-solid fa-circle-info\"\n Title=\"No entity detail records for this run.\" />\n } @else {\n <table class=\"detail-table\">\n <thead>\n <tr>\n <th>Entity</th>\n <th class=\"num-col\">Processed</th>\n <th class=\"num-col\">Created</th>\n <th class=\"num-col\">Updated</th>\n <th class=\"num-col\">Deleted</th>\n <th class=\"num-col\">Errors</th>\n <th class=\"num-col\">Skipped</th>\n </tr>\n </thead>\n <tbody>\n @for (detail of SelectedRunDetails; track detail.EntityID) {\n <tr [class.error-row]=\"detail.RecordsErrored > 0\">\n <td>{{ detail.Entity }}</td>\n <td class=\"num-col\">{{ detail.RecordsProcessed | number }}</td>\n <td class=\"num-col created-col\">{{ detail.RecordsCreated | number }}</td>\n <td class=\"num-col updated-col\">{{ detail.RecordsUpdated | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsDeleted | number }}</td>\n <td class=\"num-col error-col\">{{ detail.RecordsErrored | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsSkipped | number }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <!-- Error log -->\n @if (GetSelectedRun()?.ErrorLog) {\n <div class=\"error-log-block detail-error-log\">\n <div class=\"error-log-label\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> Error Log\n </div>\n <pre class=\"error-log-content\">{{ GetSelectedRun()!.ErrorLog }}</pre>\n </div>\n }\n }\n\n <!-- Watermarks tab -->\n @if (ActiveDetailTab === 'watermarks') {\n @if (IsLoadingWatermarks) {\n <div class=\"detail-loading\">\n <mj-loading text=\"Loading watermarks...\" size=\"small\"></mj-loading>\n </div>\n } @else if (WatermarkData.length === 0) {\n <mj-empty-state class=\"detail-empty\" Size=\"compact\" Icon=\"fa-solid fa-droplet-slash\"\n Title=\"No watermarks recorded for this integration.\" />\n } @else {\n <table class=\"detail-table\">\n <thead>\n <tr>\n <th>Entity Map</th>\n <th>Type</th>\n <th>Current Value</th>\n <th>Last Applied</th>\n </tr>\n </thead>\n <tbody>\n @for (wm of WatermarkData; track wm.ID) {\n <tr>\n <td>{{ wm.EntityMap }}</td>\n <td><span class=\"type-badge\">{{ wm.WatermarkType }}</span></td>\n <td class=\"mono-cell watermark-value\">{{ FormatWatermark(wm.WatermarkValue) }}</td>\n <td>{{ FormatDate(wm.LastSyncAt) }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n }\n </div>\n </div>\n }\n\n </div>\n }\n\n</div>\n </mj-page-body>\n</mj-page-layout>\n"]}
1
+ {"version":3,"file":"activity.component.js","sourceRoot":"","sources":["../../../../src/Integration/components/activity/activity.component.ts","../../../../src/Integration/components/activity/activity.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectorRef, Component, OnInit, AfterViewInit, inject } from '@angular/core';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { FilterFieldConfig } from '@memberjunction/ng-ui-components';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport type { MJCompanyIntegrationRunEntity } from '@memberjunction/core-entities';\nimport { CompositeKey, IRunViewProvider, RunView } from '@memberjunction/core';\nimport {\n IntegrationDataService,\n IntegrationSummary,\n IntegrationRunRow,\n RunDetailRow,\n EntityMapRow,\n} from '../../services/integration-data.service';\nimport {\n buildActivityAgentContext,\n resolveIntegrationSurface,\n navLabelForSurface,\n resolveIntegrationRecord,\n buildIntegrationNotFoundError,\n ActivityRunSummary,\n NamedIntegrationRecord,\n} from '../../integration-agent-context';\nimport { AgentToolResult, validateEnumParam, validateStringParam } from '../../../shared/agent-tool-validation';\n\n/**\n * The activity filter's choices: 'All' plus every real run status, derived from the entity so the\n * filter can never silently lose a status the database can produce. The hand-written union this\n * replaces had already fallen behind — 'Queued' rows existed and were unfilterable.\n */\ntype StatusFilterType = 'All' | MJCompanyIntegrationRunEntity['Status'];\ntype DateFilterType = 'today' | '7d' | '30d' | 'all';\n\ninterface WatermarkRow {\n ID: string;\n EntityMapID: string;\n WatermarkType: string;\n WatermarkValue: string | null;\n LastSyncAt: string | null;\n EntityMap: string;\n}\n\ninterface IntegrationOption {\n ID: string;\n Name: string;\n}\n\n@RegisterClass(BaseResourceComponent, 'IntegrationActivity')\n@Component({\n standalone: false,\n selector: 'app-integration-activity',\n templateUrl: './activity.component.html',\n styleUrls: ['./activity.component.css']\n})\nexport class ActivityComponent extends BaseResourceComponent implements OnInit, AfterViewInit {\n\n // Data\n AllRuns: IntegrationRunRow[] = [];\n FilteredRuns: IntegrationRunRow[] = [];\n Summaries: IntegrationSummary[] = [];\n Integrations: IntegrationOption[] = [];\n SelectedRunID: string | null = null;\n SelectedRunDetails: RunDetailRow[] = [];\n WatermarkData: WatermarkRow[] = [];\n IsLoading = true;\n IsLoadingDetail = false;\n\n // Filters\n StatusFilter: StatusFilterType = 'All';\n IntegrationFilter: string | null = null;\n DateFilter: DateFilterType = '7d';\n SearchQuery = '';\n ExpandedRunID: string | null = null;\n\n // Expanded row details cache\n private expandedDetails: RunDetailRow[] = [];\n private isLoadingExpanded = false;\n\n // Detail panel tab\n ActiveDetailTab: 'entities' | 'watermarks' = 'entities';\n IsLoadingWatermarks = false;\n\n StatusOptions: StatusFilterType[] = ['All', 'Success', 'Failed', 'Cancelled', 'In Progress', 'Queued', 'Pending'];\n DateOptions: { Value: DateFilterType; Label: string }[] = [\n { Value: 'all', Label: 'All' },\n { Value: 'today', Label: 'Today' },\n { Value: '7d', Label: '7 Days' },\n { Value: '30d', Label: '30 Days' }\n ];\n\n private dataService = inject(IntegrationDataService);\n private cdr = inject(ChangeDetectorRef);\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n this.dataService.Provider = this.ProviderToUse;\n await this.LoadData();\n this.NotifyLoadComplete();\n }\n\n // ── Data Loading ──────────────────────────────────────────\n\n async LoadData(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n try {\n const provider = this.RunViewToUse;\n const [summaries, runs] = await Promise.all([\n this.dataService.LoadIntegrationSummaries(provider),\n this.loadAllRuns(provider)\n ]);\n this.Summaries = summaries;\n this.Integrations = this.buildIntegrationOptions(summaries);\n this.AllRuns = runs;\n this.ApplyFilters();\n } catch (err) {\n console.error('[IntegrationActivity] Failed to load data:', err);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n private async loadAllRuns(provider: IRunViewProvider | null): Promise<IntegrationRunRow[]> {\n const rv = new RunView(provider ?? null);\n const result = await rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: '',\n OrderBy: 'StartedAt DESC',\n MaxRows: 200,\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords',\n 'Status', 'ErrorLog', 'Integration', 'Company', 'RunByUser'],\n ResultType: 'simple'\n });\n return result.Results;\n }\n\n private buildIntegrationOptions(summaries: IntegrationSummary[]): IntegrationOption[] {\n return summaries.map(s => ({\n ID: s.Integration.ID,\n Name: `${s.Integration.Integration} (${s.Integration.Company})`\n }));\n }\n\n async LoadRunDetails(runID: string): Promise<RunDetailRow[]> {\n try {\n return await this.dataService.LoadRunDetails(runID, this.RunViewToUse);\n } catch (err) {\n console.error('[IntegrationActivity] Failed to load run details:', err);\n return [];\n }\n }\n\n async LoadWatermarks(companyIntegrationID: string): Promise<void> {\n this.IsLoadingWatermarks = true;\n this.cdr.detectChanges();\n try {\n this.WatermarkData = await this.loadWatermarkData(companyIntegrationID);\n } catch (err) {\n console.error('[IntegrationActivity] Failed to load watermarks:', err);\n } finally {\n this.IsLoadingWatermarks = false;\n this.cdr.detectChanges();\n }\n }\n\n private async loadWatermarkData(companyIntegrationID: string): Promise<WatermarkRow[]> {\n const entityMaps = await this.dataService.LoadEntityMaps(companyIntegrationID, this.RunViewToUse);\n if (entityMaps.length === 0) return [];\n\n const entityMapIDs = entityMaps.map(m => `'${m.ID}'`).join(',');\n const rv = new RunView(this.RunViewToUse ?? null);\n const result = await rv.RunView<WatermarkRow>({\n EntityName: 'MJ: Company Integration Sync Watermarks',\n ExtraFilter: `EntityMapID IN (${entityMapIDs})`,\n OrderBy: 'LastSyncAt DESC',\n Fields: ['ID', 'EntityMapID', 'WatermarkType', 'WatermarkValue', 'LastSyncAt'],\n ResultType: 'simple'\n });\n\n return this.mergeWatermarksWithEntityMaps(result.Results, entityMaps);\n }\n\n private mergeWatermarksWithEntityMaps(\n watermarks: WatermarkRow[],\n entityMaps: EntityMapRow[]\n ): WatermarkRow[] {\n const mapLookup = new Map(entityMaps.map(m => [m.ID.toLowerCase(), m]));\n return watermarks.map(w => ({\n ...w,\n EntityMap: mapLookup.get(w.EntityMapID?.toLowerCase())?.ExternalObjectName ?? w.EntityMapID\n }));\n }\n\n // ── Filtering ─────────────────────────────────────────────\n\n ApplyFilters(): void {\n let filtered = this.AllRuns;\n filtered = this.filterByStatus(filtered);\n filtered = this.filterByIntegration(filtered);\n filtered = this.filterByDate(filtered);\n filtered = this.filterBySearch(filtered);\n this.FilteredRuns = filtered;\n this.emitAgentContext();\n }\n\n // ---------------------------------------------------------------------------\n // AI Agent Context & Client Tools\n //\n // 🔒 SAFETY BOUNDARY: The Activity surface exposes ONLY read-only filter /\n // search / select / open-record / navigation / refresh tools to the agent\n // (SwitchIntegrationSurface, FilterActivityByStatus / ByTimeRange / ByIntegration,\n // SearchActivity, ClearActivityFilters, SelectActivityRun, OpenActivityRunRecord,\n // RefreshIntegrationData). It deliberately does NOT expose any sync trigger\n // (RunSync — a LIVE external sync), nor any mutation of mappings, schedules, or\n // credentials. SelectActivityRun opens the read-only detail panel;\n // OpenActivityRunRecord opens the run record in a tab for VIEWING (not editing).\n // The agent can narrow what's shown and select/open runs; the user performs\n // every mutating action from the UI.\n // ---------------------------------------------------------------------------\n\n ngAfterViewInit(): void {\n this.emitAgentContext();\n this.registerAgentTools();\n }\n\n private emitAgentContext(): void {\n const kpis = this.dataService.ComputeKPIs(this.Summaries);\n const selectedRun = this.GetSelectedRun();\n const context = buildActivityAgentContext({\n KPIs: {\n TotalIntegrations: kpis.TotalIntegrations,\n ActiveSyncs: kpis.ActiveSyncs,\n RecordsSyncedToday: kpis.RecordsSyncedToday,\n SyncErrorRate: kpis.ErrorRate,\n PipelineCount: 0,\n ScheduledSyncCount: 0,\n },\n IsLoading: this.IsLoading,\n StatusFilter: this.StatusFilter,\n DateFilter: this.DateFilter,\n IntegrationFilterName: this.resolveIntegrationFilterName(),\n SearchQuery: this.SearchQuery,\n FilteredRunCount: this.FilteredRuns.length,\n TotalRunCount: this.AllRuns.length,\n SuccessfulRunCount: this.SuccessfulRuns,\n FailedRunCount: this.FailedRuns,\n TotalRecordsProcessed: this.TotalRecordsProcessed,\n VisibleRuns: this.FilteredRuns.map(r => this.buildRunSummary(r)),\n SelectedRunId: this.SelectedRunID,\n SelectedRunName: selectedRun ? this.runLabel(selectedRun) : null,\n AvailableIntegrationNames: this.Integrations.map(i => i.Name),\n });\n this.navigationService.SetAgentContext(this, context);\n }\n\n private registerAgentTools(): void {\n this.navigationService.SetAgentClientTools(this, [\n {\n Name: 'SwitchIntegrationSurface',\n Description: 'Switch to a different Integration surface. Valid surfaces: Overview, Connections, Activity, Schedules.',\n ParameterSchema: { type: 'object', properties: { surface: { type: 'string' } }, required: ['surface'] },\n Handler: async (params: Record<string, unknown>) => this.toolSwitchSurface(params),\n },\n {\n Name: 'FilterActivityByStatus',\n Description: 'Filter the run-activity list by status. Valid: All, Success, Failed, In Progress, Pending.',\n ParameterSchema: { type: 'object', properties: { status: { type: 'string' } }, required: ['status'] },\n Handler: async (params: Record<string, unknown>) => this.toolFilterByStatus(params),\n },\n {\n Name: 'FilterActivityByTimeRange',\n Description: 'Filter the run-activity list by time range. Valid: today, 7d, 30d, all.',\n ParameterSchema: { type: 'object', properties: { range: { type: 'string' } }, required: ['range'] },\n Handler: async (params: Record<string, unknown>) => this.toolFilterByTimeRange(params),\n },\n {\n Name: 'FilterActivityByIntegration',\n Description: 'Filter the run-activity list to a single integration. Accepts the integration ID or name (exact or partial), or \"all\" to clear.',\n ParameterSchema: { type: 'object', properties: { integration: { type: 'string' } }, required: ['integration'] },\n Handler: async (params: Record<string, unknown>) => this.toolFilterByIntegration(params),\n },\n {\n Name: 'SearchActivity',\n Description: 'Search the run-activity list by integration or company name.',\n ParameterSchema: { type: 'object', properties: { query: { type: 'string' } }, required: ['query'] },\n Handler: async (params: Record<string, unknown>) => this.toolSearch(params),\n },\n {\n Name: 'ClearActivityFilters',\n Description: 'Reset the run-activity filters (status → All, time range → 7d, integration → all, search cleared).',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n this.ResetIntegrationFilter();\n this.OnSearchValueChange('');\n return { Success: true };\n },\n },\n {\n Name: 'SelectActivityRun',\n Description: 'Open the detail panel for a run. Accepts the run ID or a run label (integration/company/status, exact or partial).',\n ParameterSchema: { type: 'object', properties: { run: { type: 'string' } }, required: ['run'] },\n Handler: async (params: Record<string, unknown>) => this.toolSelectRun(params),\n },\n {\n Name: 'OpenActivityRunRecord',\n Description: 'Open a company-integration-run record in a tab for viewing. Accepts the run ID or a run label (exact or partial).',\n ParameterSchema: { type: 'object', properties: { run: { type: 'string' } }, required: ['run'] },\n Handler: async (params: Record<string, unknown>) => this.toolOpenRunRecord(params),\n },\n {\n Name: 'RefreshIntegrationData',\n Description: 'Reload the integration run-activity history.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n await this.LoadData();\n return { Success: true };\n },\n },\n ]);\n }\n\n private async toolSwitchSurface(params: Record<string, unknown>): Promise<AgentToolResult> {\n const surface = resolveIntegrationSurface(params['surface']);\n if (!surface) {\n return { Success: false, ErrorMessage: 'Invalid surface. Expected one of: Overview, Connections, Activity, Schedules.' };\n }\n const tabId = await this.navigationService.OpenNavItemByName(navLabelForSurface(surface));\n if (!tabId) {\n return { Success: false, ErrorMessage: `Could not open the \"${surface}\" surface.` };\n }\n return { Success: true };\n }\n\n private toolFilterByStatus(params: Record<string, unknown>): AgentToolResult {\n const check = validateEnumParam<StatusFilterType>(params['status'], this.StatusOptions, 'status');\n if (!check.ok) {\n return check.result;\n }\n this.SetStatusFilter(check.value);\n return { Success: true };\n }\n\n private toolFilterByTimeRange(params: Record<string, unknown>): AgentToolResult {\n const allowed = this.DateOptions.map(d => d.Value);\n const check = validateEnumParam<DateFilterType>(params['range'], allowed, 'range');\n if (!check.ok) {\n return check.result;\n }\n this.SetDateFilter(check.value);\n return { Success: true };\n }\n\n private toolFilterByIntegration(params: Record<string, unknown>): AgentToolResult {\n const check = validateStringParam(params['integration'], 'integration');\n if (!check.ok) {\n return check.result;\n }\n if (check.value.trim().toLowerCase() === 'all') {\n this.SetIntegrationFilter(null);\n return { Success: true };\n }\n const candidates: NamedIntegrationRecord[] = this.Integrations.map(i => ({ ID: i.ID, Name: i.Name }));\n const match = resolveIntegrationRecord(check.value, candidates);\n if (!match) {\n return { Success: false, ErrorMessage: buildIntegrationNotFoundError(check.value, candidates, 'integration') };\n }\n this.SetIntegrationFilter(match.ID);\n return { Success: true };\n }\n\n private toolSearch(params: Record<string, unknown>): AgentToolResult {\n const check = validateStringParam(params['query'], 'query');\n if (!check.ok) {\n return check.result;\n }\n this.OnSearchValueChange(check.value);\n return { Success: true };\n }\n\n private async toolSelectRun(params: Record<string, unknown>): Promise<AgentToolResult> {\n const match = this.resolveRunFromParam(params['run']);\n if (!match.ok) {\n return match.result;\n }\n // SelectRun toggles; only open when not already the selected run.\n if (!UUIDsEqual(this.SelectedRunID, match.value.ID)) {\n await this.SelectRun(match.value.ID);\n }\n this.emitAgentContext();\n return { Success: true };\n }\n\n private toolOpenRunRecord(params: Record<string, unknown>): AgentToolResult {\n const match = this.resolveRunFromParam(params['run']);\n if (!match.ok) {\n return match.result;\n }\n this.navigationService.OpenEntityRecord('MJ: Company Integration Runs', CompositeKey.FromID(match.value.ID));\n return { Success: true };\n }\n\n /** Resolve an agent-supplied run reference (id or label) against the loaded runs. */\n private resolveRunFromParam(\n raw: unknown,\n ): { ok: true; value: IntegrationRunRow } | { ok: false; result: AgentToolResult } {\n const check = validateStringParam(raw, 'run');\n if (!check.ok) {\n return { ok: false, result: check.result };\n }\n const candidates: NamedIntegrationRecord[] = this.AllRuns.map(r => ({ ID: r.ID, Name: this.runLabel(r) }));\n const match = resolveIntegrationRecord(check.value, candidates);\n if (!match) {\n return { ok: false, result: { Success: false, ErrorMessage: buildIntegrationNotFoundError(check.value, candidates, 'run') } };\n }\n const run = this.AllRuns.find(r => UUIDsEqual(r.ID, match.ID));\n if (!run) {\n return { ok: false, result: { Success: false, ErrorMessage: buildIntegrationNotFoundError(check.value, candidates, 'run') } };\n }\n return { ok: true, value: run };\n }\n\n /** Human-readable label for a run row, used for agent name-resolution + context. */\n private runLabel(run: IntegrationRunRow): string {\n const who = run.Integration ?? 'Integration';\n const company = run.Company ? ` (${run.Company})` : '';\n return `${who}${company} · ${run.Status}`;\n }\n\n private buildRunSummary(run: IntegrationRunRow): ActivityRunSummary {\n return {\n ID: run.ID,\n Name: this.runLabel(run),\n Status: run.Status,\n TotalRecords: run.TotalRecords,\n When: this.dataService.ComputeRelativeTime(run.StartedAt),\n };\n }\n\n /** Resolve the active integration-filter ID to its display name, or null. */\n private resolveIntegrationFilterName(): string | null {\n if (!this.IntegrationFilter) {\n return null;\n }\n return this.Integrations.find(i => UUIDsEqual(i.ID, this.IntegrationFilter))?.Name ?? null;\n }\n\n private filterByStatus(runs: IntegrationRunRow[]): IntegrationRunRow[] {\n if (this.StatusFilter === 'All') return runs;\n return runs.filter(r => r.Status === this.StatusFilter);\n }\n\n private filterByIntegration(runs: IntegrationRunRow[]): IntegrationRunRow[] {\n if (!this.IntegrationFilter) return runs;\n return runs.filter(r => UUIDsEqual(r.CompanyIntegrationID, this.IntegrationFilter));\n }\n\n private filterByDate(runs: IntegrationRunRow[]): IntegrationRunRow[] {\n const cutoff = this.getDateCutoff(this.DateFilter);\n if (!cutoff) return runs;\n return runs.filter(r => r.StartedAt && new Date(r.StartedAt) >= cutoff);\n }\n\n private filterBySearch(runs: IntegrationRunRow[]): IntegrationRunRow[] {\n if (!this.SearchQuery.trim()) return runs;\n const query = this.SearchQuery.toLowerCase().trim();\n return runs.filter(r =>\n r.Integration?.toLowerCase().includes(query) ||\n r.Company?.toLowerCase().includes(query)\n );\n }\n\n private getDateCutoff(range: DateFilterType): Date | null {\n if (range === 'all') return null;\n const now = new Date();\n if (range === 'today') {\n const today = new Date(now);\n today.setHours(0, 0, 0, 0);\n return today;\n }\n const days = range === '7d' ? 7 : 30;\n const cutoff = new Date(now);\n cutoff.setDate(cutoff.getDate() - days);\n return cutoff;\n }\n\n SetStatusFilter(status: StatusFilterType): void {\n this.StatusFilter = status;\n this.ApplyFilters();\n }\n\n SetDateFilter(range: DateFilterType): void {\n this.DateFilter = range;\n this.ApplyFilters();\n }\n\n SetIntegrationFilter(id: string | null): void {\n this.IntegrationFilter = id;\n this.ApplyFilters();\n }\n\n OnSearchChange(): void {\n this.ApplyFilters();\n }\n\n /** Bridge for <mj-page-search> which emits a plain string. */\n OnSearchValueChange(value: string): void {\n this.SearchQuery = value;\n this.ApplyFilters();\n }\n\n // ---- Integration filter popover wiring ---------------------------------\n\n get ActivityFilterFields(): FilterFieldConfig[] {\n return [\n {\n key: 'dateRange',\n type: 'chips',\n label: 'Date range',\n chipOptions: this.DateOptions.map(d => ({ text: d.Label, value: d.Value })),\n },\n {\n key: 'status',\n type: 'chips',\n label: 'Status',\n chipOptions: this.StatusOptions.map(s => ({ text: s, value: s })),\n },\n {\n key: 'integration',\n type: 'dropdown',\n label: 'Integration',\n icon: 'fa-solid fa-plug',\n placeholder: 'All Integrations',\n filterable: this.Integrations.length > 10,\n options: [\n { text: 'All Integrations', value: '' },\n ...this.Integrations.map(i => ({ text: i.Name, value: i.ID })),\n ],\n },\n ];\n }\n\n get ActivityFilterValues(): Record<string, unknown> {\n return {\n dateRange: this.DateFilter,\n status: this.StatusFilter,\n integration: this.IntegrationFilter ?? ''\n };\n }\n\n get ActiveFilterCount(): number {\n let count = 0;\n if (this.DateFilter !== '7d') count++;\n if (this.StatusFilter !== 'All') count++;\n if (this.IntegrationFilter) count++;\n return count;\n }\n\n OnFilterValuesChange(values: Record<string, unknown>): void {\n const next = (values ?? {}) as { dateRange?: string; status?: string; integration?: string };\n if (next.dateRange && next.dateRange !== this.DateFilter) {\n this.SetDateFilter(next.dateRange as DateFilterType);\n }\n if (next.status && next.status !== this.StatusFilter) {\n this.SetStatusFilter(next.status as StatusFilterType);\n }\n const integ = next.integration ?? '';\n if ((integ || null) !== this.IntegrationFilter) {\n this.SetIntegrationFilter(integ || null);\n }\n }\n\n ResetIntegrationFilter(): void {\n if (this.DateFilter !== '7d') this.SetDateFilter('7d');\n if (this.StatusFilter !== 'All') this.SetStatusFilter('All');\n if (this.IntegrationFilter) this.SetIntegrationFilter(null);\n }\n\n async Refresh(): Promise<void> {\n await this.LoadData();\n }\n\n // ── Run Selection & Expansion ─────────────────────────────\n\n async SelectRun(runID: string): Promise<void> {\n if (UUIDsEqual(this.SelectedRunID, runID)) {\n this.SelectedRunID = null;\n this.SelectedRunDetails = [];\n this.WatermarkData = [];\n this.emitAgentContext();\n return;\n }\n this.SelectedRunID = runID;\n this.ActiveDetailTab = 'entities';\n this.IsLoadingDetail = true;\n this.cdr.detectChanges();\n this.emitAgentContext();\n\n const run = this.findRunByID(runID);\n try {\n this.SelectedRunDetails = await this.LoadRunDetails(runID);\n if (run) {\n await this.LoadWatermarks(run.CompanyIntegrationID);\n }\n } finally {\n this.IsLoadingDetail = false;\n this.cdr.detectChanges();\n }\n }\n\n async ToggleExpand(runID: string): Promise<void> {\n if (UUIDsEqual(this.ExpandedRunID, runID)) {\n this.ExpandedRunID = null;\n this.expandedDetails = [];\n return;\n }\n this.ExpandedRunID = runID;\n this.isLoadingExpanded = true;\n this.cdr.detectChanges();\n try {\n this.expandedDetails = await this.LoadRunDetails(runID);\n } finally {\n this.isLoadingExpanded = false;\n this.cdr.detectChanges();\n }\n }\n\n IsExpanded(runID: string): boolean {\n return UUIDsEqual(this.ExpandedRunID, runID);\n }\n\n IsSelectedRun(runID: string): boolean {\n return UUIDsEqual(this.SelectedRunID, runID);\n }\n\n GetExpandedDetails(): RunDetailRow[] {\n return this.expandedDetails;\n }\n\n IsLoadingExpandedDetails(): boolean {\n return this.isLoadingExpanded;\n }\n\n GetSelectedRun(): IntegrationRunRow | null {\n return this.findRunByID(this.SelectedRunID);\n }\n\n SetDetailTab(tab: 'entities' | 'watermarks'): void {\n this.ActiveDetailTab = tab;\n }\n\n private findRunByID(runID: string | null): IntegrationRunRow | null {\n if (!runID) return null;\n return this.AllRuns.find(r => UUIDsEqual(r.ID, runID)) ?? null;\n }\n\n // ── Formatting Helpers ────────────────────────────────────\n\n FormatDuration(startedAt: Date | string | null, endedAt: Date | string | null): string {\n if (!startedAt || !endedAt) return '--';\n const ms = new Date(endedAt).getTime() - new Date(startedAt).getTime();\n return this.dataService.FormatDuration(ms);\n }\n\n GetRelativeTime(dateStr: Date | string | null): string {\n return this.dataService.ComputeRelativeTime(dateStr);\n }\n\n FormatAbsoluteDate(dateStr: Date | string | null): string {\n if (!dateStr) return '';\n return new Date(dateStr).toLocaleString(undefined, {\n year: 'numeric', month: 'short', day: 'numeric',\n hour: '2-digit', minute: '2-digit', second: '2-digit'\n });\n }\n\n FormatWatermark(value: string | null): string {\n if (!value) return 'Not set';\n if (value.length > 40) return value.substring(0, 37) + '...';\n return value;\n }\n\n FormatDate(dateStr: Date | string | null): string {\n if (!dateStr) return '--';\n return new Date(dateStr).toLocaleString(undefined, {\n month: 'short', day: 'numeric',\n hour: '2-digit', minute: '2-digit'\n });\n }\n\n GetStatusIcon(status: string): string {\n if (status === 'Success') return 'fa-solid fa-circle-check';\n if (status === 'Failed') return 'fa-solid fa-circle-xmark';\n if (status === 'In Progress') return 'fa-solid fa-spinner fa-spin';\n return 'fa-solid fa-clock';\n }\n\n GetStatusColor(status: string): string {\n if (status === 'Success') return 'green';\n if (status === 'Failed') return 'red';\n if (status === 'In Progress') return 'amber';\n return 'gray';\n }\n\n GetStatusDotClass(status: string): string {\n return `status-dot dot-${this.GetStatusColor(status)}`;\n }\n\n StatusChipClass(status: string): string {\n return `chip chip-${this.GetStatusColor(status)}`;\n }\n\n GetErrorCount(run: IntegrationRunRow): number {\n return run.ErrorLog ? 1 : 0;\n }\n\n // ── Summary Computed Properties ───────────────────────────\n\n get TotalRuns(): number {\n return this.FilteredRuns.length;\n }\n\n get SuccessfulRuns(): number {\n return this.FilteredRuns.filter(r => r.Status === 'Success').length;\n }\n\n get FailedRuns(): number {\n return this.FilteredRuns.filter(r => r.Status === 'Failed').length;\n }\n\n get TotalRecordsProcessed(): number {\n return this.FilteredRuns.reduce((acc, r) => acc + r.TotalRecords, 0);\n }\n\n // ── Duration Bar (detail panel) ───────────────────────────\n\n GetDurationBarWidth(run: IntegrationRunRow): number {\n if (!run.StartedAt || !run.EndedAt) return 0;\n return 100;\n }\n\n GetDurationBarLabel(run: IntegrationRunRow): string {\n return this.FormatDuration(run.StartedAt, run.EndedAt);\n }\n\n // ── Resource overrides ────────────────────────────────────\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Activity';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-clock-rotate-left';\n }\n}\n\nexport function LoadActivityComponent(): void {\n // Tree-shaking prevention: importing this module causes\n // @RegisterClass decorators to fire, registering components.\n}\n","<mj-page-layout>\n <mj-page-header\n Title=\"Integration Activity\"\n Icon=\"fa-solid fa-clock-rotate-left\"\n Subtitle=\"Sync run history and outcomes\">\n <!-- [meta] retains the succeeded/failed status pills (genuine variant\n signal — error rate at a glance) and the records aggregate\n (non-trivially derived: count of records across all runs).\n \"Total runs\" dropped per chrome slot discipline audit Task B —\n that count equals the visible list's row count. -->\n @if (!IsLoading && AllRuns.length > 0) {\n <div meta>\n <mj-stat-badge [Count]=\"SuccessfulRuns\" Label=\"succeeded\" Variant=\"success\"></mj-stat-badge>\n <mj-stat-badge [Count]=\"FailedRuns\" Label=\"failed\" Variant=\"error\"></mj-stat-badge>\n <mj-stat-badge [Count]=\"TotalRecordsProcessed | number\" Label=\"records\"></mj-stat-badge>\n </div>\n }\n <div actions>\n <mj-refresh-button [Loading]=\"IsLoading\" (Clicked)=\"Refresh()\"></mj-refresh-button>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search integrations...\"\n [Value]=\"SearchQuery\"\n (ValueChange)=\"OnSearchValueChange($event)\">\n </mj-page-search>\n <mj-filter-popover\n [ActiveCount]=\"ActiveFilterCount\"\n [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"ResetIntegrationFilter()\">\n <mj-filter-panel\n [Fields]=\"ActivityFilterFields\"\n [Values]=\"ActivityFilterValues\"\n (ValuesChange)=\"OnFilterValuesChange($event)\"\n (Reset)=\"ResetIntegrationFilter()\">\n </mj-filter-panel>\n </mj-filter-popover>\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\">\n<div class=\"activity-container\">\n\n <!-- Loading state -->\n @if (IsLoading) {\n <div class=\"loading-area\">\n <mj-loading text=\"Loading activity...\" size=\"medium\"></mj-loading>\n </div>\n }\n\n <!-- Empty state -->\n @if (!IsLoading && FilteredRuns.length === 0) {\n <mj-empty-state Variant=\"no-results\" Icon=\"fa-solid fa-inbox\"\n Title=\"No runs found for the selected filters.\" />\n }\n\n <!-- Split View: Run List + Detail Panel -->\n @if (!IsLoading && FilteredRuns.length > 0) {\n <div class=\"split-view\">\n\n <!-- Left panel: Run list -->\n <div class=\"run-list-panel\">\n @for (run of FilteredRuns; track run.ID) {\n <!-- Run row → accordion panel. The title slot carries the run's status +\n integration + meta columns; the accordion toggle reveals the entity\n breakdown (formerly the chevron's ToggleExpand). SelectRun (the\n right-hand detail panel) moves to the header actions slot, since the\n accordion header click now owns expand/collapse.\n Side-effecting handler (ToggleExpand async-loads the breakdown) +\n Default CD → [Expanded] + (ExpandedChange). -->\n <mj-accordion-panel class=\"run-panel\"\n [class.selected]=\"IsSelectedRun(run.ID)\"\n Size=\"sm\" [FlushBody]=\"true\"\n [Expanded]=\"IsExpanded(run.ID)\"\n (ExpandedChange)=\"ToggleExpand(run.ID)\">\n <ng-template mjAccordionTitle>\n <!-- Status indicator -->\n <span [class]=\"GetStatusDotClass(run.Status)\"></span>\n <i [class]=\"GetStatusIcon(run.Status)\"\n [class.icon-green]=\"run.Status === 'Success'\"\n [class.icon-red]=\"run.Status === 'Failed'\"\n [class.icon-amber]=\"run.Status === 'In Progress'\"\n [class.icon-gray]=\"run.Status === 'Pending'\"\n class=\"status-icon\"></i>\n\n <!-- Integration info -->\n <div class=\"run-info\">\n <span class=\"run-integration\">{{ run.Integration }}</span>\n <span class=\"run-company\">{{ run.Company }}</span>\n </div>\n\n <!-- Started time -->\n <div class=\"run-meta\" [title]=\"FormatAbsoluteDate(run.StartedAt)\">\n {{ GetRelativeTime(run.StartedAt) }}\n </div>\n\n <!-- Duration -->\n <div class=\"run-meta run-duration\">\n {{ FormatDuration(run.StartedAt, run.EndedAt) }}\n </div>\n\n <!-- Records -->\n <div class=\"run-meta run-records\">\n {{ run.TotalRecords | number }}\n </div>\n\n <!-- Errors -->\n <div class=\"run-meta run-errors\" [class.has-errors]=\"run.ErrorLog\">\n @if (run.ErrorLog) {\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n }\n </div>\n\n <!-- Triggered by -->\n <div class=\"run-meta run-user\">\n {{ run.RunByUser || 'Scheduled' }}\n </div>\n </ng-template>\n\n <!-- Open/close the right-hand detail panel (entity breakdown +\n watermarks). Lives in the actions slot because the accordion\n header click is now the expand/collapse toggle. -->\n <ng-template mjAccordionActions>\n <button type=\"button\" class=\"detail-toggle-btn\"\n [class.active]=\"IsSelectedRun(run.ID)\"\n (click)=\"SelectRun(run.ID)\"\n title=\"Show run detail panel\">\n <i class=\"fa-solid fa-table-columns\"></i>\n </button>\n </ng-template>\n\n <!-- Expanded section: entity breakdown (lazy body) -->\n <ng-template mjAccordionBody>\n <div class=\"expanded-section\">\n @if (IsLoadingExpandedDetails()) {\n <div class=\"expanded-loading\">\n <mj-loading text=\"Loading breakdown...\" size=\"small\"></mj-loading>\n </div>\n } @else if (GetExpandedDetails().length === 0) {\n <mj-empty-state class=\"expanded-empty\" Size=\"compact\" Icon=\"fa-solid fa-circle-info\"\n Title=\"No entity details for this run.\" />\n } @else {\n <table class=\"entity-table\">\n <thead>\n <tr>\n <th>Entity</th>\n <th class=\"num-col\">Processed</th>\n <th class=\"num-col\">Created</th>\n <th class=\"num-col\">Updated</th>\n <th class=\"num-col\">Deleted</th>\n <th class=\"num-col\">Errored</th>\n <th class=\"num-col\">Skipped</th>\n </tr>\n </thead>\n <tbody>\n @for (detail of GetExpandedDetails(); track detail.EntityID) {\n <tr [class.error-row]=\"detail.RecordsErrored > 0\">\n <td>{{ detail.Entity }}</td>\n <td class=\"num-col\">{{ detail.RecordsProcessed | number }}</td>\n <td class=\"num-col created-col\">{{ detail.RecordsCreated | number }}</td>\n <td class=\"num-col updated-col\">{{ detail.RecordsUpdated | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsDeleted | number }}</td>\n <td class=\"num-col error-col\">{{ detail.RecordsErrored | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsSkipped | number }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <!-- Error log in expanded view -->\n @if (run.ErrorLog) {\n <div class=\"error-log-block\">\n <div class=\"error-log-label\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> Error Log\n </div>\n <pre class=\"error-log-content\">{{ run.ErrorLog }}</pre>\n </div>\n }\n </div>\n </ng-template>\n </mj-accordion-panel>\n }\n </div>\n\n <!-- Right panel: Detail -->\n @if (SelectedRunID && GetSelectedRun()) {\n <div class=\"detail-panel\">\n <div class=\"detail-header\">\n <div class=\"detail-header-info\">\n <h3>{{ GetSelectedRun()!.Integration }}</h3>\n <span [class]=\"StatusChipClass(GetSelectedRun()!.Status)\">\n <i [class]=\"GetStatusIcon(GetSelectedRun()!.Status)\"></i>\n {{ GetSelectedRun()!.Status }}\n </span>\n <span class=\"detail-time\">{{ FormatDate(GetSelectedRun()!.StartedAt) }}</span>\n </div>\n <button class=\"close-detail-btn\" (click)=\"SelectRun(SelectedRunID!)\" title=\"Close\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <!-- Duration bar -->\n @if (GetSelectedRun()!.StartedAt && GetSelectedRun()!.EndedAt) {\n <div class=\"duration-bar-container\">\n <div class=\"duration-bar-track\">\n <div class=\"duration-bar-fill\"\n [style.width.%]=\"GetDurationBarWidth(GetSelectedRun()!)\"></div>\n </div>\n <div class=\"duration-bar-labels\">\n <span>{{ FormatDate(GetSelectedRun()!.StartedAt) }}</span>\n <span class=\"duration-bar-value\">{{ GetDurationBarLabel(GetSelectedRun()!) }}</span>\n <span>{{ FormatDate(GetSelectedRun()!.EndedAt) }}</span>\n </div>\n </div>\n }\n\n <!-- Tabs -->\n <div class=\"detail-tabs\">\n <button class=\"tab-btn\" [class.active]=\"ActiveDetailTab === 'entities'\"\n (click)=\"SetDetailTab('entities')\">\n <i class=\"fa-solid fa-table\"></i> Entity Breakdown\n </button>\n <button class=\"tab-btn\" [class.active]=\"ActiveDetailTab === 'watermarks'\"\n (click)=\"SetDetailTab('watermarks')\">\n <i class=\"fa-solid fa-droplet\"></i> Watermarks\n </button>\n </div>\n\n <div class=\"detail-content\">\n <!-- Entity breakdown tab -->\n @if (ActiveDetailTab === 'entities') {\n @if (IsLoadingDetail) {\n <div class=\"detail-loading\">\n <mj-loading text=\"Loading details...\" size=\"small\"></mj-loading>\n </div>\n } @else if (SelectedRunDetails.length === 0) {\n <mj-empty-state class=\"detail-empty\" Size=\"compact\" Icon=\"fa-solid fa-circle-info\"\n Title=\"No entity detail records for this run.\" />\n } @else {\n <table class=\"detail-table\">\n <thead>\n <tr>\n <th>Entity</th>\n <th class=\"num-col\">Processed</th>\n <th class=\"num-col\">Created</th>\n <th class=\"num-col\">Updated</th>\n <th class=\"num-col\">Deleted</th>\n <th class=\"num-col\">Errors</th>\n <th class=\"num-col\">Skipped</th>\n </tr>\n </thead>\n <tbody>\n @for (detail of SelectedRunDetails; track detail.EntityID) {\n <tr [class.error-row]=\"detail.RecordsErrored > 0\">\n <td>{{ detail.Entity }}</td>\n <td class=\"num-col\">{{ detail.RecordsProcessed | number }}</td>\n <td class=\"num-col created-col\">{{ detail.RecordsCreated | number }}</td>\n <td class=\"num-col updated-col\">{{ detail.RecordsUpdated | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsDeleted | number }}</td>\n <td class=\"num-col error-col\">{{ detail.RecordsErrored | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsSkipped | number }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <!-- Error log -->\n @if (GetSelectedRun()?.ErrorLog) {\n <div class=\"error-log-block detail-error-log\">\n <div class=\"error-log-label\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> Error Log\n </div>\n <pre class=\"error-log-content\">{{ GetSelectedRun()!.ErrorLog }}</pre>\n </div>\n }\n }\n\n <!-- Watermarks tab -->\n @if (ActiveDetailTab === 'watermarks') {\n @if (IsLoadingWatermarks) {\n <div class=\"detail-loading\">\n <mj-loading text=\"Loading watermarks...\" size=\"small\"></mj-loading>\n </div>\n } @else if (WatermarkData.length === 0) {\n <mj-empty-state class=\"detail-empty\" Size=\"compact\" Icon=\"fa-solid fa-droplet-slash\"\n Title=\"No watermarks recorded for this integration.\" />\n } @else {\n <table class=\"detail-table\">\n <thead>\n <tr>\n <th>Entity Map</th>\n <th>Type</th>\n <th>Current Value</th>\n <th>Last Applied</th>\n </tr>\n </thead>\n <tbody>\n @for (wm of WatermarkData; track wm.ID) {\n <tr>\n <td>{{ wm.EntityMap }}</td>\n <td><span class=\"type-badge\">{{ wm.WatermarkType }}</span></td>\n <td class=\"mono-cell watermark-value\">{{ FormatWatermark(wm.WatermarkValue) }}</td>\n <td>{{ FormatDate(wm.LastSyncAt) }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n }\n </div>\n </div>\n }\n\n </div>\n }\n\n</div>\n </mj-page-body>\n</mj-page-layout>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mapping-workspace.component.d.ts","sourceRoot":"","sources":["../../../../src/Integration/components/mapping-workspace/mapping-workspace.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapping-workspace.component.d.ts","sourceRoot":"","sources":["../../../../src/Integration/components/mapping-workspace/mapping-workspace.component.ts"],"names":[],"mappings":"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"}
@@ -2316,6 +2316,9 @@ let MappingWorkspaceComponent = class MappingWorkspaceComponent extends BaseReso
2316
2316
  return 'green';
2317
2317
  if (this.LatestRun.Status === 'Failed')
2318
2318
  return 'red';
2319
+ // Deliberately stopped reads as neutral, not as a defect and not as still-running.
2320
+ if (this.LatestRun.Status === 'Cancelled')
2321
+ return 'gray';
2319
2322
  return 'amber';
2320
2323
  }
2321
2324
  FormatDate(dateStr) {