@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.
- package/LICENSE +180 -4
- package/README.md +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts +7 -1
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +2 -2
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +3 -0
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +2 -1
- package/dist/Integration/components/overview/overview.component.js.map +1 -1
- package/dist/Integration/components/widgets/integration-card.component.d.ts.map +1 -1
- package/dist/Integration/components/widgets/integration-card.component.js +8 -7
- package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
- package/dist/Integration/components/widgets/run-history-panel.component.d.ts +1 -1
- package/dist/Integration/components/widgets/run-history-panel.component.d.ts.map +1 -1
- package/dist/Integration/components/widgets/run-history-panel.component.js +6 -0
- package/dist/Integration/components/widgets/run-history-panel.component.js.map +1 -1
- package/dist/Integration/services/integration-data.service.d.ts +13 -3
- package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
- package/dist/Integration/services/integration-data.service.js +13 -2
- package/dist/Integration/services/integration-data.service.js.map +1 -1
- package/dist/Workflows/components/workflow-run-debug-state.d.ts +41 -0
- package/dist/Workflows/components/workflow-run-debug-state.d.ts.map +1 -0
- package/dist/Workflows/components/workflow-run-debug-state.js +78 -0
- package/dist/Workflows/components/workflow-run-debug-state.js.map +1 -0
- package/dist/Workflows/components/workflow-run-layout.d.ts +83 -0
- package/dist/Workflows/components/workflow-run-layout.d.ts.map +1 -0
- package/dist/Workflows/components/workflow-run-layout.js +133 -0
- package/dist/Workflows/components/workflow-run-layout.js.map +1 -0
- package/dist/Workflows/components/workflow-runs-resource.component.d.ts +146 -3
- package/dist/Workflows/components/workflow-runs-resource.component.d.ts.map +1 -1
- package/dist/Workflows/components/workflow-runs-resource.component.js +1271 -125
- package/dist/Workflows/components/workflow-runs-resource.component.js.map +1 -1
- package/dist/workflows-dashboards.module.d.ts +2 -1
- package/dist/workflows-dashboards.module.d.ts.map +1 -1
- package/dist/workflows-dashboards.module.js +6 -2
- package/dist/workflows-dashboards.module.js.map +1 -1
- 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) {
|