@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.
- package/dist/AI/components/models/model-management.component.d.ts +2 -0
- package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management.component.js +44 -2
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js +5 -2
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +10 -7
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts +96 -0
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -0
- package/dist/Integration/components/activity/activity.component.js +961 -0
- package/dist/Integration/components/activity/activity.component.js.map +1 -0
- package/dist/Integration/components/connections/connections.component.d.ts +194 -0
- package/dist/Integration/components/connections/connections.component.d.ts.map +1 -0
- package/dist/Integration/components/connections/connections.component.js +2368 -0
- package/dist/Integration/components/connections/connections.component.js.map +1 -0
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts +211 -13
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +2093 -187
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.d.ts +60 -0
- package/dist/Integration/components/overview/overview.component.d.ts.map +1 -0
- package/dist/Integration/components/overview/overview.component.js +628 -0
- package/dist/Integration/components/overview/overview.component.js.map +1 -0
- package/dist/Integration/components/pipelines/pipelines.component.d.ts +203 -0
- package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -0
- package/dist/Integration/components/pipelines/pipelines.component.js +2057 -0
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -0
- package/dist/Integration/components/schedules/schedules.component.d.ts +110 -0
- package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -0
- package/dist/Integration/components/schedules/schedules.component.js +842 -0
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -0
- package/dist/Integration/components/visual-editor/visual-editor.component.d.ts +141 -0
- package/dist/Integration/components/visual-editor/visual-editor.component.d.ts.map +1 -0
- package/dist/Integration/components/visual-editor/visual-editor.component.js +1538 -0
- package/dist/Integration/components/visual-editor/visual-editor.component.js.map +1 -0
- package/dist/Integration/components/widgets/run-history-panel.component.js +3 -2
- package/dist/Integration/components/widgets/run-history-panel.component.js.map +1 -1
- package/dist/Integration/index.d.ts +5 -3
- package/dist/Integration/index.d.ts.map +1 -1
- package/dist/Integration/index.js +11 -7
- package/dist/Integration/index.js.map +1 -1
- package/dist/Integration/integration.module.d.ts +20 -16
- package/dist/Integration/integration.module.d.ts.map +1 -1
- package/dist/Integration/integration.module.js +40 -21
- package/dist/Integration/integration.module.js.map +1 -1
- package/dist/Integration/services/integration-data.service.d.ts +117 -3
- package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
- package/dist/Integration/services/integration-data.service.js +415 -10
- package/dist/Integration/services/integration-data.service.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +27 -4
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +338 -144
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/__tests__/mapping-validation.test.d.ts +2 -0
- package/dist/__tests__/mapping-validation.test.d.ts.map +1 -0
- package/dist/__tests__/mapping-validation.test.js +170 -0
- package/dist/__tests__/mapping-validation.test.js.map +1 -0
- package/package.json +40 -38
- package/dist/Integration/components/connection-studio/connection-studio.component.d.ts +0 -81
- package/dist/Integration/components/connection-studio/connection-studio.component.d.ts.map +0 -1
- package/dist/Integration/components/connection-studio/connection-studio.component.js +0 -960
- package/dist/Integration/components/connection-studio/connection-studio.component.js.map +0 -1
- package/dist/Integration/components/control-tower/control-tower.component.d.ts +0 -43
- package/dist/Integration/components/control-tower/control-tower.component.d.ts.map +0 -1
- package/dist/Integration/components/control-tower/control-tower.component.js +0 -446
- package/dist/Integration/components/control-tower/control-tower.component.js.map +0 -1
- package/dist/Integration/components/sync-activity/sync-activity.component.d.ts +0 -65
- package/dist/Integration/components/sync-activity/sync-activity.component.d.ts.map +0 -1
- package/dist/Integration/components/sync-activity/sync-activity.component.js +0 -671
- package/dist/Integration/components/sync-activity/sync-activity.component.js.map +0 -1
- package/dist/__tests__/connection-studio.test.d.ts +0 -2
- package/dist/__tests__/connection-studio.test.d.ts.map +0 -1
- package/dist/__tests__/connection-studio.test.js +0 -186
- 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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"}
|