@memberjunction/ng-dashboards 5.8.0 → 5.9.0

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 (77) hide show
  1. package/dist/AI/components/models/model-management.component.d.ts +2 -0
  2. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  3. package/dist/AI/components/models/model-management.component.js +44 -2
  4. package/dist/AI/components/models/model-management.component.js.map +1 -1
  5. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  6. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +5 -2
  7. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  8. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  9. package/dist/Home/home-dashboard.component.js +10 -7
  10. package/dist/Home/home-dashboard.component.js.map +1 -1
  11. package/dist/Integration/components/activity/activity.component.d.ts +96 -0
  12. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -0
  13. package/dist/Integration/components/activity/activity.component.js +961 -0
  14. package/dist/Integration/components/activity/activity.component.js.map +1 -0
  15. package/dist/Integration/components/connections/connections.component.d.ts +194 -0
  16. package/dist/Integration/components/connections/connections.component.d.ts.map +1 -0
  17. package/dist/Integration/components/connections/connections.component.js +2368 -0
  18. package/dist/Integration/components/connections/connections.component.js.map +1 -0
  19. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts +211 -13
  20. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
  21. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +2093 -187
  22. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  23. package/dist/Integration/components/overview/overview.component.d.ts +60 -0
  24. package/dist/Integration/components/overview/overview.component.d.ts.map +1 -0
  25. package/dist/Integration/components/overview/overview.component.js +628 -0
  26. package/dist/Integration/components/overview/overview.component.js.map +1 -0
  27. package/dist/Integration/components/pipelines/pipelines.component.d.ts +203 -0
  28. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -0
  29. package/dist/Integration/components/pipelines/pipelines.component.js +2057 -0
  30. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -0
  31. package/dist/Integration/components/schedules/schedules.component.d.ts +110 -0
  32. package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -0
  33. package/dist/Integration/components/schedules/schedules.component.js +842 -0
  34. package/dist/Integration/components/schedules/schedules.component.js.map +1 -0
  35. package/dist/Integration/components/visual-editor/visual-editor.component.d.ts +141 -0
  36. package/dist/Integration/components/visual-editor/visual-editor.component.d.ts.map +1 -0
  37. package/dist/Integration/components/visual-editor/visual-editor.component.js +1538 -0
  38. package/dist/Integration/components/visual-editor/visual-editor.component.js.map +1 -0
  39. package/dist/Integration/components/widgets/run-history-panel.component.js +3 -2
  40. package/dist/Integration/components/widgets/run-history-panel.component.js.map +1 -1
  41. package/dist/Integration/index.d.ts +5 -3
  42. package/dist/Integration/index.d.ts.map +1 -1
  43. package/dist/Integration/index.js +11 -7
  44. package/dist/Integration/index.js.map +1 -1
  45. package/dist/Integration/integration.module.d.ts +20 -16
  46. package/dist/Integration/integration.module.d.ts.map +1 -1
  47. package/dist/Integration/integration.module.js +40 -21
  48. package/dist/Integration/integration.module.js.map +1 -1
  49. package/dist/Integration/services/integration-data.service.d.ts +117 -3
  50. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  51. package/dist/Integration/services/integration-data.service.js +415 -10
  52. package/dist/Integration/services/integration-data.service.js.map +1 -1
  53. package/dist/QueryBrowser/query-browser-resource.component.d.ts +27 -4
  54. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  55. package/dist/QueryBrowser/query-browser-resource.component.js +338 -144
  56. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  57. package/dist/__tests__/mapping-validation.test.d.ts +2 -0
  58. package/dist/__tests__/mapping-validation.test.d.ts.map +1 -0
  59. package/dist/__tests__/mapping-validation.test.js +170 -0
  60. package/dist/__tests__/mapping-validation.test.js.map +1 -0
  61. package/package.json +40 -38
  62. package/dist/Integration/components/connection-studio/connection-studio.component.d.ts +0 -81
  63. package/dist/Integration/components/connection-studio/connection-studio.component.d.ts.map +0 -1
  64. package/dist/Integration/components/connection-studio/connection-studio.component.js +0 -960
  65. package/dist/Integration/components/connection-studio/connection-studio.component.js.map +0 -1
  66. package/dist/Integration/components/control-tower/control-tower.component.d.ts +0 -43
  67. package/dist/Integration/components/control-tower/control-tower.component.d.ts.map +0 -1
  68. package/dist/Integration/components/control-tower/control-tower.component.js +0 -446
  69. package/dist/Integration/components/control-tower/control-tower.component.js.map +0 -1
  70. package/dist/Integration/components/sync-activity/sync-activity.component.d.ts +0 -65
  71. package/dist/Integration/components/sync-activity/sync-activity.component.d.ts.map +0 -1
  72. package/dist/Integration/components/sync-activity/sync-activity.component.js +0 -671
  73. package/dist/Integration/components/sync-activity/sync-activity.component.js.map +0 -1
  74. package/dist/__tests__/connection-studio.test.d.ts +0 -2
  75. package/dist/__tests__/connection-studio.test.d.ts.map +0 -1
  76. package/dist/__tests__/connection-studio.test.js +0 -186
  77. package/dist/__tests__/connection-studio.test.js.map +0 -1
@@ -0,0 +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, inject } from '@angular/core';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { IRunViewProvider, RunView } from '@memberjunction/core';\nimport {\n IntegrationDataService,\n IntegrationSummary,\n IntegrationRunRow,\n RunDetailRow,\n EntityMapRow,\n} from '../../services/integration-data.service';\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 LastAppliedAt: 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 {\n\n // Data\n AllRuns: IntegrationRunRow[] = [];\n FilteredRuns: IntegrationRunRow[] = [];\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: 'today', Label: 'Today' },\n { Value: '7d', Label: '7 Days' },\n { Value: '30d', Label: '30 Days' },\n { Value: 'all', Label: 'All' }\n ];\n\n private dataService = inject(IntegrationDataService);\n private cdr = inject(ChangeDetectorRef);\n\n async ngOnInit(): Promise<void> {\n await this.LoadData();\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.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: 'LastAppliedAt DESC',\n Fields: ['ID', 'EntityMapID', 'WatermarkType', 'WatermarkValue', 'LastAppliedAt'],\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 }\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 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 return;\n }\n this.SelectedRunID = runID;\n this.ActiveDetailTab = 'entities';\n this.IsLoadingDetail = true;\n this.cdr.detectChanges();\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: string | null, endedAt: 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: string | null): string {\n return this.dataService.ComputeRelativeTime(dateStr);\n }\n\n FormatAbsoluteDate(dateStr: 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: 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","<div class=\"activity-container\">\n\n <!-- Filter Bar -->\n <div class=\"filter-bar\">\n <div class=\"filter-group filter-pills\">\n @for (status of StatusOptions; track status) {\n <button class=\"pill-btn\"\n [class.active]=\"StatusFilter === status\"\n (click)=\"SetStatusFilter(status)\">\n {{ status }}\n </button>\n }\n </div>\n\n <div class=\"filter-group\">\n <select class=\"filter-select\"\n [ngModel]=\"IntegrationFilter ?? ''\"\n (ngModelChange)=\"SetIntegrationFilter($event || null)\">\n <option value=\"\">All Integrations</option>\n @for (opt of Integrations; track opt.ID) {\n <option [value]=\"opt.ID\">{{ opt.Name }}</option>\n }\n </select>\n </div>\n\n <div class=\"filter-group filter-pills\">\n @for (d of DateOptions; track d.Value) {\n <button class=\"pill-btn\"\n [class.active]=\"DateFilter === d.Value\"\n (click)=\"SetDateFilter(d.Value)\">\n {{ d.Label }}\n </button>\n }\n </div>\n\n <div class=\"filter-group\">\n <input type=\"text\"\n class=\"search-input\"\n placeholder=\"Search integrations...\"\n [(ngModel)]=\"SearchQuery\"\n (input)=\"OnSearchChange()\" />\n </div>\n\n <button class=\"refresh-btn\" (click)=\"Refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n </button>\n </div>\n\n <!-- Summary Strip -->\n @if (!IsLoading && AllRuns.length > 0) {\n <div class=\"summary-strip\">\n <div class=\"summary-badge\">\n <span class=\"badge-dot dot-blue\"></span>\n <span class=\"badge-count\">{{ TotalRuns }}</span>\n <span class=\"badge-label\">Total Runs</span>\n </div>\n <div class=\"summary-badge\">\n <span class=\"badge-dot dot-green\"></span>\n <span class=\"badge-count count-green\">{{ SuccessfulRuns }}</span>\n <span class=\"badge-label\">Successful</span>\n </div>\n <div class=\"summary-badge\">\n <span class=\"badge-dot dot-red\"></span>\n <span class=\"badge-count count-red\">{{ FailedRuns }}</span>\n <span class=\"badge-label\">Failed</span>\n </div>\n <div class=\"summary-badge\">\n <span class=\"badge-dot dot-blue\"></span>\n <span class=\"badge-count\">{{ TotalRecordsProcessed | number }}</span>\n <span class=\"badge-label\">Records Processed</span>\n </div>\n </div>\n }\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 <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No runs found for the selected filters.</p>\n </div>\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 -->\n <div class=\"run-row\"\n [class.selected]=\"IsSelectedRun(run.ID)\"\n (click)=\"SelectRun(run.ID)\">\n <div class=\"run-row-main\">\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\n <!-- Expand chevron -->\n <button class=\"expand-btn\"\n (click)=\"ToggleExpand(run.ID); $event.stopPropagation()\"\n title=\"Show entity breakdown\">\n <i class=\"fa-solid fa-chevron-down\"\n [class.rotated]=\"IsExpanded(run.ID)\"></i>\n </button>\n </div>\n\n <!-- Expanded section: entity breakdown -->\n @if (IsExpanded(run.ID)) {\n <div class=\"expanded-section\" (click)=\"$event.stopPropagation()\">\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 <div class=\"expanded-empty\">\n <i class=\"fa-solid fa-circle-info\"></i>\n No entity details for this run.\n </div>\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 }\n </div>\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 <div class=\"detail-empty\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <p>No entity detail records for this run.</p>\n </div>\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 <div class=\"detail-empty\">\n <i class=\"fa-solid fa-droplet-slash\"></i>\n <p>No watermarks recorded for this integration.</p>\n </div>\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.LastAppliedAt) }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n }\n </div>\n </div>\n }\n\n </div>\n }\n\n</div>\n"]}
@@ -0,0 +1,194 @@
1
+ import { OnInit, OnDestroy } from '@angular/core';
2
+ import { CompositeKey } from '@memberjunction/core';
3
+ import { BaseResourceComponent } from '@memberjunction/ng-shared';
4
+ import { ResourceData, MJCompanyIntegrationEntity, MJCredentialEntity } from '@memberjunction/core-entities';
5
+ import { CredentialDialogResult } from '@memberjunction/ng-credentials';
6
+ import { TreeBranchConfig, TreeLeafConfig, TreeNode, TreeDropdownComponent } from '@memberjunction/ng-trees';
7
+ import { IntegrationSummary, IntegrationDefinitionRow, EntityMapRow } from '../../services/integration-data.service';
8
+ import * as i0 from "@angular/core";
9
+ type StatusBadgeType = 'Connected' | 'Error' | 'Inactive' | 'Syncing';
10
+ type WizardStepType = 1 | 2 | 3;
11
+ type CardMenuAction = 'edit' | 'disable' | 'delete';
12
+ interface WizardStep {
13
+ Number: number;
14
+ Label: string;
15
+ }
16
+ interface CompanyRow {
17
+ ID: string;
18
+ Name: string;
19
+ }
20
+ export declare class ConnectionsComponent extends BaseResourceComponent implements OnInit, OnDestroy {
21
+ Connections: IntegrationSummary[];
22
+ EntityMapCounts: Map<string, number>;
23
+ IsLoading: boolean;
24
+ TestingCardID: string | null;
25
+ TestCardResults: Map<string, {
26
+ Success: boolean;
27
+ Message: string;
28
+ }>;
29
+ WizardOpen: boolean;
30
+ WizardStep: WizardStepType;
31
+ WizardSteps: WizardStep[];
32
+ AvailableIntegrations: IntegrationDefinitionRow[];
33
+ SearchQuery: string;
34
+ SelectedIntegration: IntegrationDefinitionRow | null;
35
+ ConnectionName: string;
36
+ SelectedCompanyID: string | null;
37
+ ConnectionDescription: string;
38
+ Companies: CompanyRow[];
39
+ SelectedCredentialID: string | null;
40
+ ShowCredentialDialog: boolean;
41
+ PreselectedCredentialTypeId: string | undefined;
42
+ ExistingCredentials: MJCredentialEntity[];
43
+ IsLoadingCredentials: boolean;
44
+ SelectedCredential: MJCredentialEntity | null;
45
+ TestResult: {
46
+ Success: boolean;
47
+ Message: string;
48
+ ServerVersion?: string;
49
+ } | null;
50
+ IsTesting: boolean;
51
+ IsSaving: boolean;
52
+ SavedIntegrationID: string | null;
53
+ OpenMenuID: string | null;
54
+ EditPanelOpen: boolean;
55
+ EditingSummary: IntegrationSummary | null;
56
+ EditEntity: MJCompanyIntegrationEntity | null;
57
+ EditName: string;
58
+ EditDescription: string;
59
+ EditCredentialID: string | null;
60
+ EditCredential: MJCredentialEntity | null;
61
+ EditCredentials: MJCredentialEntity[];
62
+ EditIsActive: boolean;
63
+ IsEditSaving: boolean;
64
+ IsEditLoading: boolean;
65
+ SelectedSummary: IntegrationSummary | null;
66
+ DetailEntityMaps: EntityMapRow[];
67
+ DetailFilteredMaps: EntityMapRow[];
68
+ DetailSearchTerm: string;
69
+ IsDetailLoading: boolean;
70
+ EditorEntityMap: EntityMapRow | null;
71
+ ShowAddMapPanel: boolean;
72
+ AvailableSourceObjects: Array<{
73
+ Name: string;
74
+ Label: string;
75
+ }>;
76
+ IsLoadingSourceObjects: boolean;
77
+ AddMapSourceObjectName: string;
78
+ AddMapEntityID: string;
79
+ AddMapDirection: 'Pull' | 'Push' | 'Bidirectional';
80
+ IsSavingAddMap: boolean;
81
+ entityTreeDropdown: TreeDropdownComponent | undefined;
82
+ EntityBranchConfig: TreeBranchConfig;
83
+ EntityLeafConfig: TreeLeafConfig;
84
+ ShowCreateEntity: boolean;
85
+ NewEntitySchema: string;
86
+ NewEntityTable: string;
87
+ DDLPreview: string | null;
88
+ DDLPreviewWarnings: string[];
89
+ IsGeneratingDDL: boolean;
90
+ IsCreatingEntity: boolean;
91
+ DeleteConfirmID: string | null;
92
+ IsDeleting: boolean;
93
+ private dataService;
94
+ private cdr;
95
+ private documentClickHandler;
96
+ ngOnInit(): Promise<void>;
97
+ ngOnDestroy(): void;
98
+ GetResourceDisplayName(_data: ResourceData): Promise<string>;
99
+ GetResourceIconClass(_data: ResourceData): Promise<string>;
100
+ LoadData(): Promise<void>;
101
+ GetStatusBadge(summary: IntegrationSummary): StatusBadgeType;
102
+ GetStatusBadgeClass(summary: IntegrationSummary): string;
103
+ GetIntegrationIcon(name: string): string;
104
+ GetIconBrandColor(name: string): string;
105
+ GetEntityMapCount(integrationID: string): number;
106
+ GetCredentialHint(summary: IntegrationSummary): string;
107
+ GetSourceTypeLabel(summary: IntegrationSummary): string;
108
+ IsConnectionActive(summary: IntegrationSummary): boolean;
109
+ ToggleMenu(integrationID: string, event: Event): void;
110
+ IsMenuOpen(integrationID: string): boolean;
111
+ OnMenuAction(action: CardMenuAction, summary: IntegrationSummary): void;
112
+ GetMenuActionLabel(summary: IntegrationSummary): string;
113
+ OpenEditPanel(summary: IntegrationSummary): Promise<void>;
114
+ CloseEditPanel(): void;
115
+ SaveEditChanges(): Promise<void>;
116
+ SelectEditCredential(credential: MJCredentialEntity): void;
117
+ ClearEditCredential(): void;
118
+ OpenEditCredentialDialog(): void;
119
+ OnEditCredentialDialogClose(result: CredentialDialogResult): void;
120
+ ShowDeleteConfirm(integrationID: string): void;
121
+ CancelDelete(): void;
122
+ ConfirmDelete(integrationID: string): Promise<void>;
123
+ IsDeleteConfirming(integrationID: string): boolean;
124
+ TestExistingConnection(integrationID: string): Promise<void>;
125
+ IsTestingCard(integrationID: string): boolean;
126
+ GetCardTestResult(integrationID: string): {
127
+ Success: boolean;
128
+ Message: string;
129
+ } | null;
130
+ RunSync(integrationID: string): Promise<void>;
131
+ SelectIntegrationCard(summary: IntegrationSummary): Promise<void>;
132
+ CloseDetailView(): void;
133
+ OnDetailSearch(event: Event): void;
134
+ DirectionLabel(direction: string): string;
135
+ DirectionText(direction: string): string;
136
+ DirectionBadgeClass(direction: string): string;
137
+ OnToggleMapEnabled(em: EntityMapRow, event: Event): Promise<void>;
138
+ get DetailActiveMapCount(): number;
139
+ private applyDetailFilter;
140
+ OnEntityMapClick(em: EntityMapRow): void;
141
+ CloseEntityMapEditor(): void;
142
+ ToggleAddMapPanel(): Promise<void>;
143
+ CloseAddMapPanel(): void;
144
+ get CanSaveAddMap(): boolean;
145
+ get AddMapEntityIDAsKey(): CompositeKey | null;
146
+ OnEntityTreeSelection(node: TreeNode | TreeNode[] | null): void;
147
+ OpenNewEntityDialog(): void;
148
+ CloseNewEntityDialog(): void;
149
+ DDLCopied: boolean;
150
+ CopyDDLToClipboard(): Promise<void>;
151
+ get CanGenerateSQL(): boolean;
152
+ get NewEntityName(): string;
153
+ PreviewDDL(): Promise<void>;
154
+ SaveAddMap(): Promise<void>;
155
+ private resetAddMapState;
156
+ private loadAddMapData;
157
+ private loadEntityMapsForIntegration;
158
+ OpenWizard(): Promise<void>;
159
+ CloseWizard(): void;
160
+ OnKeydown(event: KeyboardEvent): void;
161
+ NextStep(): void;
162
+ PreviousStep(): void;
163
+ get IsNextDisabled(): boolean;
164
+ get NextButtonLabel(): string;
165
+ IsStepCompleted(stepNumber: number): boolean;
166
+ IsStepActive(stepNumber: number): boolean;
167
+ SelectIntegration(def: IntegrationDefinitionRow): void;
168
+ IsSelectedIntegration(def: IntegrationDefinitionRow): boolean;
169
+ get FilteredIntegrations(): IntegrationDefinitionRow[];
170
+ get NeedsCompanyPicker(): boolean;
171
+ get IntegrationCredentialTypeID(): string | null;
172
+ ShowExistingCredentials(): Promise<void>;
173
+ SelectExistingCredential(credential: MJCredentialEntity): void;
174
+ OpenCredentialDialog(): void;
175
+ OnCredentialDialogClose(result: CredentialDialogResult): void;
176
+ ClearCredential(): void;
177
+ TestNewConnection(): Promise<void>;
178
+ FinishWizard(): Promise<void>;
179
+ private loadWizardData;
180
+ private saveCompanyIntegration;
181
+ private loadAllEntityMaps;
182
+ private countMapsByIntegration;
183
+ private resolveIconByName;
184
+ private resolveBrandColor;
185
+ private toggleConnectionActive;
186
+ private loadEditCredentials;
187
+ private resetWizardState;
188
+ private onDocumentClick;
189
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConnectionsComponent, never>;
190
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConnectionsComponent, "app-integration-connections", never, {}, {}, never, never, false, never>;
191
+ }
192
+ export declare function LoadConnectionsComponent(): void;
193
+ export {};
194
+ //# sourceMappingURL=connections.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.component.d.ts","sourceRoot":"","sources":["../../../../src/Integration/components/connections/connections.component.ts"],"names":[],"mappings":"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"}