@memberjunction/ng-dashboards 6.2.0-edge.6 → 6.2.0-edge.8

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 (233) hide show
  1. package/README.md +23 -16
  2. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +2 -2
  3. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  4. package/dist/AI/components/analytics/realtime/realtime-management.component.d.ts.map +1 -1
  5. package/dist/AI/components/analytics/realtime/realtime-management.component.js +3 -1
  6. package/dist/AI/components/analytics/realtime/realtime-management.component.js.map +1 -1
  7. package/dist/AI/components/analytics/realtime/realtime-overview.component.d.ts +1 -1
  8. package/dist/AI/components/analytics/realtime/realtime-overview.component.js +3 -3
  9. package/dist/AI/components/analytics/realtime/realtime-overview.component.js.map +1 -1
  10. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts +6 -4
  11. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts.map +1 -1
  12. package/dist/AI/components/analytics/realtime/realtime-session-data.js +8 -2
  13. package/dist/AI/components/analytics/realtime/realtime-session-data.js.map +1 -1
  14. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  15. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +31 -10
  16. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  17. package/dist/AI/components/autotagging/components/classify-item-grid.component.js +1 -1
  18. package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -1
  19. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -1
  20. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +1 -0
  21. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -1
  22. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
  23. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +1 -0
  24. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
  25. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
  26. package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -0
  27. package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
  28. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  29. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +1 -0
  30. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  31. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +2 -2
  32. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  33. package/dist/AI/components/tags/tags-resource.component.js +14 -24
  34. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  35. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  36. package/dist/AI/components/vectors/vector-management-resource.component.js +14 -7
  37. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  38. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  39. package/dist/AI/services/ai-instrumentation.service.js +4 -2
  40. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  41. package/dist/Actions/action-result-code.d.ts +80 -0
  42. package/dist/Actions/action-result-code.d.ts.map +1 -0
  43. package/dist/Actions/action-result-code.js +163 -0
  44. package/dist/Actions/action-result-code.js.map +1 -0
  45. package/dist/Actions/components/actions-overview.component.d.ts +8 -0
  46. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  47. package/dist/Actions/components/actions-overview.component.js +12 -9
  48. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  49. package/dist/Actions/components/execution-monitoring.component.d.ts +29 -9
  50. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  51. package/dist/Actions/components/execution-monitoring.component.js +65 -42
  52. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  53. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  54. package/dist/Actions/components/explorer/action-card.component.js +5 -4
  55. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  56. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +92 -130
  57. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -1
  58. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +189 -274
  59. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -1
  60. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts +29 -0
  61. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts.map +1 -0
  62. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js +666 -0
  63. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js.map +1 -0
  64. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts +56 -0
  65. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts.map +1 -0
  66. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js +515 -0
  67. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js.map +1 -0
  68. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts +14 -0
  69. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts.map +1 -0
  70. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js +39 -0
  71. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js.map +1 -0
  72. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts +17 -0
  73. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts.map +1 -0
  74. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js +485 -0
  75. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js.map +1 -0
  76. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts +139 -0
  77. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts.map +1 -0
  78. package/dist/ChiefOfStaff/chief-of-staff-page-base.js +602 -0
  79. package/dist/ChiefOfStaff/chief-of-staff-page-base.js.map +1 -0
  80. package/dist/ChiefOfStaff/index.d.ts +4 -1
  81. package/dist/ChiefOfStaff/index.d.ts.map +1 -1
  82. package/dist/ChiefOfStaff/index.js +4 -1
  83. package/dist/ChiefOfStaff/index.js.map +1 -1
  84. package/dist/Communication/communication-monitor-resource.component.js +3 -3
  85. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  86. package/dist/Communication/communication-runs-resource.component.js +3 -3
  87. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  88. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  89. package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
  90. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  91. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  92. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -1
  93. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  94. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
  95. package/dist/ComponentStudio/services/component-version.service.js +3 -0
  96. package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
  97. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +21 -2
  98. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  99. package/dist/DataExplorer/data-explorer-dashboard.component.js +32 -5
  100. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  101. package/dist/DevTools/graphql-console.component.js +2 -2
  102. package/dist/DevTools/lazy-module-status.component.js +2 -2
  103. package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
  104. package/dist/FormBuilder/form-builder-resource.component.js +5 -0
  105. package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
  106. package/dist/Integration/components/connections/connections.component.js +2 -2
  107. package/dist/Integration/services/integration-data.service.d.ts +1 -1
  108. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  109. package/dist/Integration/services/integration-data.service.js +4 -3
  110. package/dist/Integration/services/integration-data.service.js.map +1 -1
  111. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
  112. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +11 -3
  113. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  114. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +16 -16
  115. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  116. package/dist/KnowledgeHub/components/visualize/semantic-graph/semantic-graph-explorer.component.d.ts +113 -0
  117. package/dist/KnowledgeHub/components/visualize/semantic-graph/semantic-graph-explorer.component.d.ts.map +1 -0
  118. package/dist/KnowledgeHub/components/visualize/semantic-graph/semantic-graph-explorer.component.js +1184 -0
  119. package/dist/KnowledgeHub/components/visualize/semantic-graph/semantic-graph-explorer.component.js.map +1 -0
  120. package/dist/KnowledgeHub/components/visualize/visualize-agent-context.d.ts +1 -1
  121. package/dist/KnowledgeHub/components/visualize/visualize-agent-context.d.ts.map +1 -1
  122. package/dist/KnowledgeHub/components/visualize/visualize-agent-context.js +1 -1
  123. package/dist/KnowledgeHub/components/visualize/visualize-agent-context.js.map +1 -1
  124. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts +1 -1
  125. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts.map +1 -1
  126. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js +21 -10
  127. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js.map +1 -1
  128. package/dist/Lists/components/lists-browse-resource.component.js +1 -1
  129. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  130. package/dist/Lists/components/lists-my-lists-resource.component.js +1 -1
  131. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  132. package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
  133. package/dist/LoginStudio/login-studio-resource.component.js +1 -0
  134. package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
  135. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
  136. package/dist/PredictiveStudio/components/ps-experiments.component.js +1 -0
  137. package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
  138. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +2 -2
  139. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
  140. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +3 -0
  141. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
  142. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
  143. package/dist/PredictiveStudio/engine/predictive-studio.engine.js +1 -0
  144. package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
  145. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
  146. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +1 -0
  147. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
  148. package/dist/QueryBrowser/query-browser-resource.component.d.ts +26 -0
  149. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  150. package/dist/QueryBrowser/query-browser-resource.component.js +375 -252
  151. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  152. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  153. package/dist/SystemDiagnostics/system-diagnostics.component.js +4 -2
  154. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  155. package/dist/UserRoutines/user-routines-resource.component.d.ts +8 -1
  156. package/dist/UserRoutines/user-routines-resource.component.d.ts.map +1 -1
  157. package/dist/UserRoutines/user-routines-resource.component.js +22 -4
  158. package/dist/UserRoutines/user-routines-resource.component.js.map +1 -1
  159. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
  160. package/dist/VersionHistory/components/diff-resource.component.js +1 -0
  161. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  162. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts +162 -0
  163. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts.map +1 -0
  164. package/dist/VideoStudio/components/vs-archetype-editor.component.js +1105 -0
  165. package/dist/VideoStudio/components/vs-archetype-editor.component.js.map +1 -0
  166. package/dist/VideoStudio/components/vs-audio-options.component.d.ts +27 -0
  167. package/dist/VideoStudio/components/vs-audio-options.component.d.ts.map +1 -0
  168. package/dist/VideoStudio/components/vs-audio-options.component.js +119 -0
  169. package/dist/VideoStudio/components/vs-audio-options.component.js.map +1 -0
  170. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts +105 -0
  171. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts.map +1 -0
  172. package/dist/VideoStudio/components/vs-copilot-panel.component.js +560 -0
  173. package/dist/VideoStudio/components/vs-copilot-panel.component.js.map +1 -0
  174. package/dist/VideoStudio/components/vs-production-brief.component.d.ts +163 -0
  175. package/dist/VideoStudio/components/vs-production-brief.component.d.ts.map +1 -0
  176. package/dist/VideoStudio/components/vs-production-brief.component.js +1054 -0
  177. package/dist/VideoStudio/components/vs-production-brief.component.js.map +1 -0
  178. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts +43 -0
  179. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts.map +1 -0
  180. package/dist/VideoStudio/components/vs-setup-health-card.component.js +412 -0
  181. package/dist/VideoStudio/components/vs-setup-health-card.component.js.map +1 -0
  182. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts +73 -0
  183. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts.map +1 -0
  184. package/dist/VideoStudio/components/vs-studio-slide-in.component.js +271 -0
  185. package/dist/VideoStudio/components/vs-studio-slide-in.component.js.map +1 -0
  186. package/dist/VideoStudio/index.d.ts +12 -0
  187. package/dist/VideoStudio/index.d.ts.map +1 -0
  188. package/dist/VideoStudio/index.js +12 -0
  189. package/dist/VideoStudio/index.js.map +1 -0
  190. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts +118 -0
  191. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts.map +1 -0
  192. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js +964 -0
  193. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js.map +1 -0
  194. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts +70 -0
  195. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts.map +1 -0
  196. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js +600 -0
  197. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js.map +1 -0
  198. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts +182 -0
  199. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts.map +1 -0
  200. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js +1481 -0
  201. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js.map +1 -0
  202. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts +102 -0
  203. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts.map +1 -0
  204. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js +240 -0
  205. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js.map +1 -0
  206. package/dist/VideoStudio/video-studio-agent-context.d.ts +495 -0
  207. package/dist/VideoStudio/video-studio-agent-context.d.ts.map +1 -0
  208. package/dist/VideoStudio/video-studio-agent-context.js +992 -0
  209. package/dist/VideoStudio/video-studio-agent-context.js.map +1 -0
  210. package/dist/ai-dashboards.module.d.ts +46 -41
  211. package/dist/ai-dashboards.module.d.ts.map +1 -1
  212. package/dist/ai-dashboards.module.js +33 -7
  213. package/dist/ai-dashboards.module.js.map +1 -1
  214. package/dist/module.d.ts +13 -12
  215. package/dist/module.d.ts.map +1 -1
  216. package/dist/module.js +7 -0
  217. package/dist/module.js.map +1 -1
  218. package/dist/public-api.d.ts +8 -1
  219. package/dist/public-api.d.ts.map +1 -1
  220. package/dist/public-api.js +10 -2
  221. package/dist/public-api.js.map +1 -1
  222. package/dist/shared/action-scheduled-job.d.ts.map +1 -1
  223. package/dist/shared/action-scheduled-job.js +2 -0
  224. package/dist/shared/action-scheduled-job.js.map +1 -1
  225. package/dist/video-studio-dashboards.module.d.ts +40 -0
  226. package/dist/video-studio-dashboards.module.d.ts.map +1 -0
  227. package/dist/video-studio-dashboards.module.js +159 -0
  228. package/dist/video-studio-dashboards.module.js.map +1 -0
  229. package/package.json +78 -71
  230. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts +0 -195
  231. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts.map +0 -1
  232. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js +0 -2910
  233. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js.map +0 -1
@@ -182,7 +182,7 @@ export declare class IntegrationDataService {
182
182
  get Provider(): IMetadataProvider;
183
183
  LoadIntegrationSummaries(provider?: IRunViewProvider | null): Promise<IntegrationSummary[]>;
184
184
  LoadEntityMaps(companyIntegrationID: string, _provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationEntityMapEntity[]>;
185
- LoadFieldMaps(entityMapID: string, _provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationFieldMapEntity[]>;
185
+ LoadFieldMaps(entityMapID: string, provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationFieldMapEntity[]>;
186
186
  LoadRunHistory(companyIntegrationID: string, limit?: number, provider?: IRunViewProvider | null): Promise<IntegrationRunRow[]>;
187
187
  LoadRunDetails(runID: string, provider?: IRunViewProvider | null): Promise<RunDetailRow[]>;
188
188
  /** Aggregate raw per-record detail rows into per-entity summary rows */
@@ -1 +1 @@
1
- {"version":3,"file":"integration-data.service.d.ts","sourceRoot":"","sources":["../../../src/Integration/services/integration-data.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integration-data.service.d.ts","sourceRoot":"","sources":["../../../src/Integration/services/integration-data.service.ts"],"names":[],"mappings":"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"}
@@ -84,9 +84,8 @@ export class IntegrationDataService {
84
84
  await IntegrationEngineBase.Instance.Config(false);
85
85
  return IntegrationEngineBase.Instance.GetEntityMapsForCompanyIntegration(companyIntegrationID);
86
86
  }
87
- async LoadFieldMaps(entityMapID, _provider) {
88
- await IntegrationEngineBase.Instance.Config(false);
89
- return IntegrationEngineBase.Instance.GetFieldMapsForEntityMap(entityMapID);
87
+ async LoadFieldMaps(entityMapID, provider) {
88
+ return IntegrationEngineBase.Instance.LoadFieldMapsForEntityMap(entityMapID, undefined, provider);
90
89
  }
91
90
  async LoadRunHistory(companyIntegrationID, limit = 10, provider) {
92
91
  const rv = this.createRunView(provider);
@@ -494,6 +493,7 @@ export class IntegrationDataService {
494
493
  EntityName: 'MJ: Company Integration Run Details',
495
494
  ExtraFilter: `CompanyIntegrationRunID='${run.ID}' AND EntityID='${entityID}'`,
496
495
  MaxRows: 1,
496
+ SkipTotalRowCount: true,
497
497
  Fields: ['EntityID'],
498
498
  ResultType: 'simple'
499
499
  });
@@ -651,6 +651,7 @@ export class IntegrationDataService {
651
651
  ExtraFilter: `Name='${actionName}'`,
652
652
  Fields: ['ID'],
653
653
  MaxRows: 1,
654
+ SkipTotalRowCount: true,
654
655
  ResultType: 'simple'
655
656
  });
656
657
  return result.Results.length > 0 ? result.Results[0].ID : null;
@@ -1 +1 @@
1
- {"version":3,"file":"integration-data.service.js","sourceRoot":"","sources":["../../../src/Integration/services/integration-data.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Metadata, RunView, IRunViewProvider, IMetadataProvider } from '@memberjunction/core';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { DateCellDayKey } from '../../shared/date-cell';\nimport {\n MJCompanyIntegrationEntityMapEntity,\n MJCompanyIntegrationFieldMapEntity,\n MJCompanyIntegrationEntity,\n MJIntegrationEntity,\n MJIntegrationSourceTypeEntity,\n MJCompanyIntegrationSyncWatermarkEntity,\n} from '@memberjunction/core-entities';\nimport type { MJCompanyIntegrationRunEntity } from '@memberjunction/core-entities';\n\n/**\n * A sync run's status, taken from the entity rather than restated here. The literal union that used\n * to be written out in both interfaces below had already gone stale — it predated 'Queued', so a\n * queued run was a value the compiler said could not exist. Indexed access tracks the CHECK\n * constraint through CodeGen, so a new status shows up as a compile error in the switch-like\n * helpers below instead of silently falling through to a default colour.\n */\ntype IntegrationRunStatus = MJCompanyIntegrationRunEntity['Status'];\nimport { IntegrationEngineBase } from '@memberjunction/integration-engine-base';\nimport {\n GraphQLDataProvider,\n GraphQLIntegrationClient,\n GraphQLActionClient,\n DiscoveredObjectResult,\n DiscoveredFieldResult,\n DiscoveryResult,\n ConnectionTestGraphQLResult,\n SchemaPreviewObjectInput,\n SchemaPreviewResult,\n DefaultConfigResult,\n ApplyAllResult,\n SourceObjectListItem,\n SourceObjectSelectionInput\n} from '@memberjunction/graphql-dataprovider';\n\n/**\n * Simple row types for read-only data loaded via ResultType: 'simple'\n */\nexport interface IntegrationRow {\n ID: string;\n Name: string;\n IsActive: boolean | null;\n LastRunID: string | null;\n LastRunStartedAt: Date | string | null;\n LastRunEndedAt: Date | string | null;\n Company: string;\n Integration: string;\n DriverClassName: string | null;\n}\n\nexport interface IntegrationRunRow {\n ID: string;\n CompanyIntegrationID: string;\n StartedAt: Date | string | null;\n EndedAt: Date | string | null;\n TotalRecords: number;\n Status: IntegrationRunStatus;\n ErrorLog: string | null;\n Integration: string;\n Company: string;\n RunByUser: string;\n}\n\nexport interface SourceTypeRow {\n ID: string;\n Name: string;\n Description: string | null;\n DriverClass: string;\n IconClass: string | null;\n Status: 'Active' | 'Inactive';\n}\n\nexport interface EntityMapRow {\n ID: string;\n CompanyIntegrationID: string;\n ExternalObjectName: string;\n ExternalObjectLabel: string | null;\n EntityID: string;\n SyncDirection: 'Bidirectional' | 'Pull' | 'Push';\n SyncEnabled: boolean;\n MatchStrategy: string | null;\n ConflictResolution: 'DestWins' | 'Manual' | 'MostRecent' | 'SourceWins';\n Priority: number;\n DeleteBehavior: 'DoNothing' | 'HardDelete' | 'SoftDelete';\n Status: 'Active' | 'Inactive';\n Entity: string;\n}\n\nexport interface FieldMapRow {\n ID: string;\n EntityMapID: string;\n SourceFieldName: string;\n SourceFieldLabel: string | null;\n DestinationFieldName: string;\n DestinationFieldLabel: string | null;\n Direction: 'Both' | 'DestToSource' | 'SourceToDest';\n TransformPipeline: string | null;\n IsKeyField: boolean;\n IsRequired: boolean;\n DefaultValue: string | null;\n Priority: number;\n Status: 'Active' | 'Inactive';\n}\n\n/** Aggregated per-entity stats for a run (computed client-side from raw detail records) */\nexport interface RunDetailRow {\n EntityID: string;\n Entity: string;\n RecordsProcessed: number;\n RecordsCreated: number;\n RecordsUpdated: number;\n RecordsDeleted: number;\n RecordsErrored: number;\n RecordsSkipped: number;\n}\n\n/** Raw record from MJ: Company Integration Run Details (one row per record operation) */\ninterface RawRunDetailRecord {\n ID: string;\n CompanyIntegrationRunID: string;\n EntityID: string;\n RecordID: string;\n Action: string;\n IsSuccess: boolean;\n Entity: string;\n}\n\n/** Master integration definition (e.g., \"HubSpot\", \"Salesforce\") */\nexport interface IntegrationDefinitionRow {\n ID: string;\n Name: string;\n Description: string | null;\n ClassName: string | null;\n ImportPath: string | null;\n NavigationBaseURL: string | null;\n BatchMaxRequestCount: number;\n BatchRequestWaitTime: number;\n CredentialTypeID: string | null;\n SourceTypeID: string | null;\n}\n\n/** Aggregated summary for a single integration, used by the Control Tower UI */\nexport interface IntegrationSummary {\n Integration: MJCompanyIntegrationEntity;\n SourceType: MJIntegrationSourceTypeEntity | null;\n /** Icon from the Integration entity — FA class, URL, or base64 */\n Icon: string | null;\n LatestRun: IntegrationRunRow | null;\n RecentRuns: IntegrationRunRow[];\n StatusColor: 'green' | 'amber' | 'red' | 'gray';\n RelativeTime: string;\n TotalRecordsSyncedToday: number;\n TotalErrors: number;\n DurationMs: number | null;\n}\n\n/** KPI data for the Control Tower top strip */\nexport interface IntegrationKPIs {\n TotalIntegrations: number;\n ActiveSyncs: number;\n RecordsSyncedToday: number;\n ErrorRate: number;\n AverageSyncDurationMs: number | null;\n}\n\n/** Activity feed item for the Control Tower bottom section */\nexport interface ActivityFeedItem {\n RunID: string;\n IntegrationName: string;\n Status: IntegrationRunStatus;\n StatusColor: 'amber' | 'green' | 'red' | 'gray';\n StartedAt: Date | string | null;\n RelativeTime: string;\n TotalRecords: number;\n RunByUser: string;\n}\n\n/** Daily record count for the bar chart */\nexport interface DailyRecordCount {\n Date: string;\n Label: string;\n Records: number;\n}\n\n/** Schedule row for the Schedules component (includes new scheduling fields) */\nexport interface ScheduleRow {\n ID: string;\n Name: string;\n Integration: string;\n Company: string;\n IsActive: boolean | null;\n ScheduleEnabled: boolean;\n ScheduleType: 'Manual' | 'Interval' | 'Cron';\n ScheduleIntervalMinutes: number | null;\n CronExpression: string | null;\n NextScheduledRunAt: string | null;\n LastScheduledRunAt: string | null;\n IsLocked: boolean;\n LockedAt: string | null;\n}\n\n/** Watermark row for the Activity detail panel */\nexport interface WatermarkRow {\n ID: string;\n EntityMapID: string;\n WatermarkType: string;\n WatermarkValue: string | null;\n Direction: 'Pull' | 'Push';\n EntityMap: string;\n}\n\n/** Shared icon resolution map for integration names to Font Awesome icon classes */\nconst INTEGRATION_ICON_MAP: Array<{ Pattern: RegExp; Icon: string }> = [\n { Pattern: /hubspot/i, Icon: 'fa-brands fa-hubspot' },\n { Pattern: /salesforce/i, Icon: 'fa-brands fa-salesforce' },\n { Pattern: /google/i, Icon: 'fa-brands fa-google' },\n { Pattern: /microsoft|dynamics|azure/i, Icon: 'fa-brands fa-microsoft' },\n { Pattern: /slack/i, Icon: 'fa-brands fa-slack' },\n { Pattern: /jira|atlassian/i, Icon: 'fa-brands fa-atlassian' },\n { Pattern: /github/i, Icon: 'fa-brands fa-github' },\n { Pattern: /stripe/i, Icon: 'fa-brands fa-stripe' },\n { Pattern: /shopify/i, Icon: 'fa-brands fa-shopify' },\n { Pattern: /mailchimp/i, Icon: 'fa-brands fa-mailchimp' },\n { Pattern: /wordpress/i, Icon: 'fa-brands fa-wordpress' },\n { Pattern: /dropbox/i, Icon: 'fa-brands fa-dropbox' },\n { Pattern: /csv|file|import/i, Icon: 'fa-solid fa-file-csv' },\n { Pattern: /postgres|mysql|sql|database|db/i, Icon: 'fa-solid fa-database' },\n { Pattern: /api|rest|graphql/i, Icon: 'fa-solid fa-code' },\n { Pattern: /member|membership/i, Icon: 'fa-solid fa-users' },\n { Pattern: /email|mail/i, Icon: 'fa-solid fa-envelope' },\n { Pattern: /calendar|event/i, Icon: 'fa-solid fa-calendar' }\n];\n\n/**\n * Resolve an integration icon. Checks the entity's Icon field first (supports\n * Font Awesome classes, URLs, and base64), then falls back to pattern-based\n * name matching, then to a generic plug icon.\n */\nexport function ResolveIntegrationIcon(name: string, entityIcon?: string | null): string {\n // If the Integration entity has an Icon value that looks like a FA class, use it directly\n if (entityIcon && entityIcon.startsWith('fa-')) {\n return entityIcon;\n }\n // Fall back to pattern-based name matching\n const match = INTEGRATION_ICON_MAP.find(m => m.Pattern.test(name));\n return match ? match.Icon : 'fa-solid fa-plug';\n}\n\n/**\n * Check if the Icon field contains an image URL or base64 data URI\n * (as opposed to a Font Awesome class). Used by templates to decide\n * whether to render an <i> or an <img>.\n */\nexport function IsImageIcon(icon: string | null | undefined): boolean {\n if (!icon) return false;\n return icon.startsWith('http') || icon.startsWith('data:') || icon.startsWith('/');\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IntegrationDataService {\n private _provider: IMetadataProvider | null = null;\n\n /** Set the metadata provider this service should use. Components should call this after injection. */\n public set Provider(value: IMetadataProvider | null) {\n this._provider = value;\n }\n\n public get Provider(): IMetadataProvider {\n return this._provider ?? Metadata.Provider;\n }\n\n async LoadIntegrationSummaries(provider?: IRunViewProvider | null): Promise<IntegrationSummary[]> {\n const engine = IntegrationEngineBase.Instance;\n const rv = this.createRunView(provider);\n\n // Engine provides cached metadata; only runs are dynamic and need a RunView call\n const [, runsResult] = await Promise.all([\n engine.Config(false),\n rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: '',\n OrderBy: 'StartedAt DESC',\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords',\n 'Status', 'ErrorLog', 'Integration', 'Company', 'RunByUser'],\n ResultType: 'simple'\n })\n ]);\n\n const integrations = engine.CompanyIntegrations;\n const runs = runsResult.Results;\n const sourceTypes = engine.SourceTypes;\n\n const integrationDefs = engine.Integrations;\n return integrations.map(integration => this.buildSummary(integration, runs, sourceTypes, integrationDefs));\n }\n\n async LoadEntityMaps(companyIntegrationID: string, _provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationEntityMapEntity[]> {\n await IntegrationEngineBase.Instance.Config(false);\n return IntegrationEngineBase.Instance.GetEntityMapsForCompanyIntegration(companyIntegrationID);\n }\n\n async LoadFieldMaps(entityMapID: string, _provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationFieldMapEntity[]> {\n await IntegrationEngineBase.Instance.Config(false);\n return IntegrationEngineBase.Instance.GetFieldMapsForEntityMap(entityMapID);\n }\n\n async LoadRunHistory(companyIntegrationID: string, limit: number = 10, provider?: IRunViewProvider | null): Promise<IntegrationRunRow[]> {\n const rv = this.createRunView(provider);\n const result = await rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: `CompanyIntegrationID='${companyIntegrationID}'`,\n OrderBy: 'StartedAt DESC',\n MaxRows: limit,\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords',\n 'Status', 'ErrorLog', 'Integration', 'Company', 'RunByUser'],\n ResultType: 'simple'\n });\n return result.Results;\n }\n\n async LoadRunDetails(runID: string, provider?: IRunViewProvider | null): Promise<RunDetailRow[]> {\n const rv = this.createRunView(provider);\n const result = await rv.RunView<RawRunDetailRecord>({\n EntityName: 'MJ: Company Integration Run Details',\n ExtraFilter: `CompanyIntegrationRunID='${runID}'`,\n OrderBy: 'Entity',\n Fields: ['ID', 'CompanyIntegrationRunID', 'EntityID', 'RecordID',\n 'Action', 'IsSuccess', 'Entity'],\n ResultType: 'simple'\n });\n return this.aggregateRunDetails(result.Results);\n }\n\n /** Aggregate raw per-record detail rows into per-entity summary rows */\n private aggregateRunDetails(rawRecords: RawRunDetailRecord[]): RunDetailRow[] {\n const entityMap = new Map<string, RunDetailRow>();\n\n for (const rec of rawRecords) {\n const key = rec.EntityID.toLowerCase();\n let row = entityMap.get(key);\n if (!row) {\n row = {\n EntityID: rec.EntityID,\n Entity: rec.Entity,\n RecordsProcessed: 0,\n RecordsCreated: 0,\n RecordsUpdated: 0,\n RecordsDeleted: 0,\n RecordsErrored: 0,\n RecordsSkipped: 0\n };\n entityMap.set(key, row);\n }\n\n row.RecordsProcessed++;\n\n if (!rec.IsSuccess) {\n row.RecordsErrored++;\n } else {\n const action = (rec.Action ?? '').toUpperCase();\n if (action === 'INSERT' || action === 'CREATE') {\n row.RecordsCreated++;\n } else if (action === 'UPDATE') {\n row.RecordsUpdated++;\n } else if (action === 'DELETE') {\n row.RecordsDeleted++;\n } else if (action === 'SKIP' || action === 'SKIPPED') {\n row.RecordsSkipped++;\n }\n }\n }\n\n return Array.from(entityMap.values()).sort((a, b) => a.Entity.localeCompare(b.Entity));\n }\n\n async LoadIntegrationDefinitions(_provider?: IRunViewProvider | null): Promise<MJIntegrationEntity[]> {\n await IntegrationEngineBase.Instance.Config(false);\n return IntegrationEngineBase.Instance.Integrations;\n }\n\n async LoadSourceTypes(_provider?: IRunViewProvider | null): Promise<MJIntegrationSourceTypeEntity[]> {\n await IntegrationEngineBase.Instance.Config(false);\n return IntegrationEngineBase.Instance.SourceTypes.filter(st => st.Status === 'Active');\n }\n\n async LoadRecentRuns(limit: number = 20, provider?: IRunViewProvider | null): Promise<ActivityFeedItem[]> {\n const rv = this.createRunView(provider);\n const result = await rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: '',\n OrderBy: 'StartedAt DESC',\n MaxRows: limit,\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords',\n 'Status', 'ErrorLog', 'Integration', 'Company', 'RunByUser'],\n ResultType: 'simple'\n });\n return result.Results.map(run => this.buildActivityFeedItem(run));\n }\n\n async LoadDailyRecordCounts(days: number = 7, provider?: IRunViewProvider | null): Promise<DailyRecordCount[]> {\n const rv = this.createRunView(provider);\n const cutoffDate = new Date();\n cutoffDate.setDate(cutoffDate.getDate() - days);\n const cutoffStr = cutoffDate.toISOString().split('T')[0];\n\n const result = await rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: `StartedAt >= '${cutoffStr}'`,\n OrderBy: 'StartedAt ASC',\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords',\n 'Status', 'ErrorLog', 'Integration', 'Company', 'RunByUser'],\n ResultType: 'simple'\n });\n\n return this.aggregateDailyCounts(result.Results, days);\n }\n\n ComputeKPIs(summaries: IntegrationSummary[]): IntegrationKPIs {\n const totalIntegrations = summaries.length;\n // 'Queued' counts as an active sync: worker-mode enqueues a run that has been asked for and\n // not yet finished, which is what this KPI means. Omitting it made every worker-mode\n // deployment under-report in-flight work.\n const activeSyncs = summaries.filter(\n s => s.LatestRun?.Status === 'In Progress' || s.LatestRun?.Status === 'Pending' || s.LatestRun?.Status === 'Queued'\n ).length;\n const recordsSyncedToday = summaries.reduce((acc, s) => acc + s.TotalRecordsSyncedToday, 0);\n\n const totalRuns = summaries.reduce((acc, s) => acc + s.RecentRuns.length, 0);\n const totalErrors = summaries.reduce((acc, s) => acc + s.TotalErrors, 0);\n const errorRate = totalRuns > 0 ? (totalErrors / totalRuns) * 100 : 0;\n\n const durationsMs = summaries\n .filter(s => s.DurationMs != null)\n .map(s => s.DurationMs as number);\n const averageSyncDurationMs = durationsMs.length > 0\n ? durationsMs.reduce((a, b) => a + b, 0) / durationsMs.length\n : null;\n\n return {\n TotalIntegrations: totalIntegrations,\n ActiveSyncs: activeSyncs,\n RecordsSyncedToday: recordsSyncedToday,\n ErrorRate: Math.round(errorRate * 10) / 10,\n AverageSyncDurationMs: averageSyncDurationMs\n };\n }\n\n FormatDuration(ms: number | null): string {\n if (ms == null) return '--';\n const totalSeconds = Math.floor(ms / 1000);\n if (totalSeconds < 60) return `${totalSeconds}s`;\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = totalSeconds % 60;\n if (minutes < 60) return `${minutes}m ${seconds}s`;\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = minutes % 60;\n return `${hours}h ${remainingMinutes}m`;\n }\n\n ComputeRelativeTime(dateStr: Date | string | null): string {\n return this.computeRelativeTime(dateStr);\n }\n\n // --- Entity Map CRUD ---\n\n async CreateEntityMap(params: {\n CompanyIntegrationID: string;\n ExternalObjectName: string;\n ExternalObjectLabel?: string;\n EntityID: string;\n SyncDirection?: 'Pull' | 'Push' | 'Bidirectional';\n ConflictResolution?: 'SourceWins' | 'DestWins' | 'MostRecent' | 'Manual';\n Priority?: number;\n DeleteBehavior?: 'SoftDelete' | 'DoNothing' | 'HardDelete';\n }): Promise<MJCompanyIntegrationEntityMapEntity | null> {\n const md = this.Provider;\n const em = await md.GetEntityObject<MJCompanyIntegrationEntityMapEntity>('MJ: Company Integration Entity Maps');\n em.NewRecord();\n em.CompanyIntegrationID = params.CompanyIntegrationID;\n em.ExternalObjectName = params.ExternalObjectName;\n if (params.ExternalObjectLabel) em.ExternalObjectLabel = params.ExternalObjectLabel;\n em.EntityID = params.EntityID;\n em.SyncDirection = params.SyncDirection ?? 'Pull';\n em.ConflictResolution = params.ConflictResolution ?? 'SourceWins';\n em.Priority = params.Priority ?? 0;\n em.DeleteBehavior = params.DeleteBehavior ?? 'SoftDelete';\n em.Status = 'Active';\n em.SyncEnabled = true;\n\n const saved = await em.Save();\n if (!saved) {\n console.error('[IntegrationDataService] Failed to create entity map:', em.LatestResult?.CompleteMessage);\n return null;\n }\n return em;\n }\n\n async DeleteEntityMap(entityMapID: string): Promise<boolean> {\n const md = this.Provider;\n const em = await md.GetEntityObject<MJCompanyIntegrationEntityMapEntity>('MJ: Company Integration Entity Maps');\n await em.Load(entityMapID);\n return em.Delete();\n }\n\n async ToggleEntityMapEnabled(entityMapID: string, enabled: boolean): Promise<boolean> {\n const md = this.Provider;\n const em = await md.GetEntityObject<MJCompanyIntegrationEntityMapEntity>('MJ: Company Integration Entity Maps');\n await em.Load(entityMapID);\n em.SyncEnabled = enabled;\n return em.Save();\n }\n\n async UpdateSyncDirection(entityMapID: string, direction: 'Pull' | 'Push' | 'Bidirectional'): Promise<boolean> {\n const md = this.Provider;\n const em = await md.GetEntityObject<MJCompanyIntegrationEntityMapEntity>('MJ: Company Integration Entity Maps');\n await em.Load(entityMapID);\n em.SyncDirection = direction;\n return em.Save();\n }\n\n // --- Field Map CRUD ---\n\n async CreateFieldMap(params: {\n EntityMapID: string;\n SourceFieldName: string;\n SourceFieldLabel?: string;\n DestinationFieldName: string;\n DestinationFieldLabel?: string;\n IsKeyField?: boolean;\n IsRequired?: boolean;\n Direction?: 'SourceToDest' | 'DestToSource' | 'Both';\n TransformPipeline?: string | null;\n Priority?: number;\n }): Promise<MJCompanyIntegrationFieldMapEntity | null> {\n const md = this.Provider;\n const fm = await md.GetEntityObject<MJCompanyIntegrationFieldMapEntity>('MJ: Company Integration Field Maps');\n fm.NewRecord();\n fm.EntityMapID = params.EntityMapID;\n fm.SourceFieldName = params.SourceFieldName;\n if (params.SourceFieldLabel) fm.SourceFieldLabel = params.SourceFieldLabel;\n fm.DestinationFieldName = params.DestinationFieldName;\n if (params.DestinationFieldLabel) fm.DestinationFieldLabel = params.DestinationFieldLabel;\n fm.IsKeyField = params.IsKeyField ?? false;\n fm.IsRequired = params.IsRequired ?? false;\n fm.Direction = params.Direction ?? 'SourceToDest';\n if (params.TransformPipeline !== undefined) fm.TransformPipeline = params.TransformPipeline;\n fm.Status = 'Active';\n fm.Priority = params.Priority ?? 0;\n\n const saved = await fm.Save();\n if (!saved) {\n console.error('[IntegrationDataService] Failed to create field map:', fm.LatestResult?.CompleteMessage);\n return null;\n }\n return fm;\n }\n\n async DeleteFieldMap(fieldMapID: string): Promise<boolean> {\n const md = this.Provider;\n const fm = await md.GetEntityObject<MJCompanyIntegrationFieldMapEntity>('MJ: Company Integration Field Maps');\n await fm.Load(fieldMapID);\n return fm.Delete();\n }\n\n async UpdateFieldMap(fieldMapID: string, updates: {\n SourceFieldName?: string;\n DestinationFieldName?: string;\n IsKeyField?: boolean;\n IsRequired?: boolean;\n Direction?: 'SourceToDest' | 'DestToSource' | 'Both';\n Status?: 'Active' | 'Inactive';\n TransformPipeline?: string | null;\n }): Promise<boolean> {\n const md = this.Provider;\n const fm = await md.GetEntityObject<MJCompanyIntegrationFieldMapEntity>('MJ: Company Integration Field Maps');\n await fm.Load(fieldMapID);\n if (updates.SourceFieldName !== undefined) fm.SourceFieldName = updates.SourceFieldName;\n if (updates.DestinationFieldName !== undefined) fm.DestinationFieldName = updates.DestinationFieldName;\n if (updates.IsKeyField !== undefined) fm.IsKeyField = updates.IsKeyField;\n if (updates.IsRequired !== undefined) fm.IsRequired = updates.IsRequired;\n if (updates.Direction !== undefined) fm.Direction = updates.Direction;\n if (updates.Status !== undefined) fm.Status = updates.Status;\n if (updates.TransformPipeline !== undefined) fm.TransformPipeline = updates.TransformPipeline;\n return fm.Save();\n }\n\n /** Load available MJ entities for mapping target selection */\n async LoadMJEntities(_provider?: IRunViewProvider | null): Promise<Array<{ ID: string; Name: string }>> {\n const md = this.Provider;\n return md.Entities\n .map(e => ({ ID: e.ID, Name: e.Name }))\n .sort((a, b) => a.Name.localeCompare(b.Name));\n }\n\n /** Load entity fields for a given entity (for field mapping destination picker) */\n async LoadEntityFields(entityID: string, _provider?: IRunViewProvider | null): Promise<Array<{ ID: string; Name: string; Type: string; IsRequired: boolean }>> {\n const md = this.Provider;\n const entity = md.Entities.find(e => UUIDsEqual(e.ID, entityID));\n if (!entity) return [];\n return entity.Fields\n .sort((a, b) => a.Sequence - b.Sequence)\n .map(f => ({ ID: f.ID, Name: f.Name, Type: f.Type, IsRequired: !f.AllowsNull }));\n }\n\n // --- Discovery (via GraphQL) ---\n\n /** Discover external objects available for a company integration */\n async DiscoverObjects(companyIntegrationID: string): Promise<DiscoveryResult<DiscoveredObjectResult[]>> {\n const client = this.getIntegrationClient();\n return client.DiscoverObjects(companyIntegrationID);\n }\n\n /** Discover fields on a specific external object */\n async DiscoverFields(companyIntegrationID: string, objectName: string): Promise<DiscoveryResult<DiscoveredFieldResult[]>> {\n const client = this.getIntegrationClient();\n return client.DiscoverFields(companyIntegrationID, objectName);\n }\n\n /** Generate DDL preview for creating tables from discovered objects */\n async SchemaPreview(\n companyIntegrationID: string,\n objects: SchemaPreviewObjectInput[],\n platform: string = 'sqlserver'\n ): Promise<SchemaPreviewResult> {\n const client = this.getIntegrationClient();\n return client.SchemaPreview(companyIntegrationID, objects, platform);\n }\n\n /** Execute the full RSU pipeline for an integration entity map */\n async RunSchemaPipeline(\n companyIntegrationID: string,\n entityMap: EntityMapRow\n ): Promise<{ Success: boolean; Message?: string }> {\n const md = this.Provider;\n const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityMap.EntityID));\n if (!entityInfo) {\n return { Success: false, Message: `Entity not found for ID ${entityMap.EntityID}` };\n }\n\n const objects: SchemaPreviewObjectInput[] = [{\n SourceObjectName: entityMap.ExternalObjectName,\n SchemaName: entityInfo.SchemaName,\n TableName: entityInfo.BaseTable,\n EntityName: entityInfo.Name\n }];\n\n const client = this.getIntegrationClient();\n const result = await client.ApplySchema(companyIntegrationID, objects);\n return { Success: result.Success, Message: result.Message };\n }\n\n /** Execute the RSU pipeline for new entity maps — introspects, generates DDL, runs full pipeline */\n async ApplySchemaForNewMaps(\n companyIntegrationID: string,\n objects: SchemaPreviewObjectInput[]\n ): Promise<{ Success: boolean; Message: string }> {\n const client = this.getIntegrationClient();\n const result = await client.ApplySchema(companyIntegrationID, objects);\n return { Success: result.Success, Message: result.Message ?? '' };\n }\n\n /** Batch apply schema for multiple connectors — one RSU pipeline run */\n async ApplySchemaBatch(\n items: Array<{ CompanyIntegrationID: string; Objects: SchemaPreviewObjectInput[] }>\n ): Promise<{\n Success: boolean;\n Message: string;\n Items?: Array<{ CompanyIntegrationID: string; Success: boolean; Message: string; Warnings?: string[] }>;\n Steps?: Array<{ Name: string; Status: string; DurationMs: number; Message: string }>;\n GitCommitSuccess?: boolean;\n APIRestarted?: boolean;\n }> {\n const client = this.getIntegrationClient();\n return client.ApplySchemaBatch(items);\n }\n\n /** Batch Apply All: schema + entity maps + field maps + sync via IntegrationApplyAllBatch */\n async ApplyAllBatch(\n companyIntegrationID: string,\n sourceObjects: SourceObjectSelectionInput[]\n ): Promise<ApplyAllResult> {\n const client = this.getIntegrationClient();\n return client.ApplyAllBatch([{ CompanyIntegrationID: companyIntegrationID, SourceObjects: sourceObjects }]);\n }\n\n /**\n * Lists every source object the external system exposes — thin catalog for\n * the picker. No per-object describe; that runs later in ApplyAllBatch.\n */\n async ListSourceObjects(companyIntegrationID: string): Promise<DiscoveryResult<SourceObjectListItem[]>> {\n const client = this.getIntegrationClient();\n return client.ListSourceObjects(companyIntegrationID);\n }\n\n /** Full automatic \"Apply All\" flow: pipeline + entity maps + field maps + sync */\n async ApplyAll(\n companyIntegrationID: string,\n sourceObjectNames: string[]\n ): Promise<ApplyAllResult> {\n const client = this.getIntegrationClient();\n return client.ApplyAll(companyIntegrationID, sourceObjectNames);\n }\n\n /** Start a sync for a company integration */\n async StartSync(companyIntegrationID: string): Promise<{ Success: boolean; Message: string; RunID?: string }> {\n const client = this.getIntegrationClient();\n return client.StartSync(companyIntegrationID);\n }\n\n /** Get the connector's default configuration for quick setup */\n async GetDefaultConfig(companyIntegrationID: string): Promise<DefaultConfigResult> {\n const client = this.getIntegrationClient();\n return client.GetDefaultConfig(companyIntegrationID);\n }\n\n /** Test connection to the external system */\n async TestConnection(companyIntegrationID: string): Promise<ConnectionTestGraphQLResult> {\n const client = this.getIntegrationClient();\n return client.TestConnection(companyIntegrationID);\n }\n\n /** Preview source data from the external system via connector's FetchChanges */\n async PreviewSourceData(\n companyIntegrationID: string,\n objectName: string,\n limit: number = 5\n ): Promise<Array<Record<string, string | number | boolean | null>>> {\n const client = this.getIntegrationClient();\n const result = await client.PreviewData(companyIntegrationID, objectName, limit);\n if (!result.Success || !result.Records) {\n console.warn('[IntegrationDataService] PreviewSourceData failed:', result.Message);\n return [];\n }\n return result.Records.map(r => {\n try {\n return JSON.parse(r.Data) as Record<string, string | number | boolean | null>;\n } catch {\n return { _raw: r.Data } as Record<string, string | number | boolean | null>;\n }\n });\n }\n\n /** Preview destination data by loading a few records from the target entity */\n async PreviewDestinationData(\n entityID: string,\n limit: number = 5,\n provider?: IRunViewProvider | null\n ): Promise<Array<Record<string, string | number | boolean | null>>> {\n const md = this.Provider;\n const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityID));\n if (!entityInfo) return [];\n\n // Load first N fields (skip internal __mj fields) to keep preview compact\n const fields = entityInfo.Fields\n .filter(f => !f.Name.startsWith('__mj'))\n .slice(0, 8)\n .map(f => f.Name);\n\n const rv = this.createRunView(provider);\n const result = await rv.RunView<Record<string, string | number | boolean | null>>({\n EntityName: entityInfo.Name,\n ExtraFilter: '',\n OrderBy: `${fields[0]} ASC`,\n MaxRows: limit,\n Fields: fields,\n ResultType: 'simple'\n });\n return result.Results;\n }\n\n /** Get a count of records in the destination MJ entity */\n async GetDestinationRecordCount(\n entityID: string,\n provider?: IRunViewProvider | null\n ): Promise<number> {\n const md = this.Provider;\n const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityID));\n if (!entityInfo) return 0;\n\n const rv = this.createRunView(provider);\n const result = await rv.RunView<{ TotalCount: number }>({\n EntityName: entityInfo.Name,\n ExtraFilter: '',\n Fields: entityInfo.PrimaryKeys.map(pk => pk.Name),\n ResultType: 'simple'\n });\n return result.TotalRowCount ?? result.Results.length;\n }\n\n /** Get the most recent run that touched a given entity */\n async GetLastSyncForEntity(\n companyIntegrationID: string,\n entityID: string,\n provider?: IRunViewProvider | null\n ): Promise<{ StartedAt: Date | string | null; EndedAt: Date | string | null; Status: string; TotalRecords: number } | null> {\n const rv = this.createRunView(provider);\n // Get runs for this integration, most recent first\n const runsResult = await rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: `CompanyIntegrationID='${companyIntegrationID}'`,\n OrderBy: 'StartedAt DESC',\n MaxRows: 5,\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords', 'Status'],\n ResultType: 'simple'\n });\n if (runsResult.Results.length === 0) return null;\n\n // Check each run's details to find one that touched this entity\n for (const run of runsResult.Results) {\n const detailResult = await rv.RunView<{ EntityID: string }>({\n EntityName: 'MJ: Company Integration Run Details',\n ExtraFilter: `CompanyIntegrationRunID='${run.ID}' AND EntityID='${entityID}'`,\n MaxRows: 1,\n Fields: ['EntityID'],\n ResultType: 'simple'\n });\n if (detailResult.Results.length > 0) {\n return {\n StartedAt: run.StartedAt,\n EndedAt: run.EndedAt,\n Status: run.Status,\n TotalRecords: run.TotalRecords\n };\n }\n }\n // No run touched this entity — return the most recent run anyway as context\n const latest = runsResult.Results[0];\n return {\n StartedAt: latest.StartedAt,\n EndedAt: latest.EndedAt,\n Status: latest.Status,\n TotalRecords: latest.TotalRecords\n };\n }\n\n /** Run a directional sync directly via the GraphQL StartSync mutation. */\n async StartSyncWithDirection(\n companyIntegrationID: string,\n fullSync: boolean,\n syncDirection: 'Pull' | 'Push' | 'Bidirectional'\n ): Promise<{ Success: boolean; Message: string }> {\n const provider = this.Provider as unknown as GraphQLDataProvider;\n const client = new GraphQLIntegrationClient(provider);\n return client.StartSync(companyIntegrationID, undefined, fullSync, syncDirection);\n }\n\n /** Run an integration sync via the \"Run Integration Sync\" action */\n async RunSync(companyIntegrationID: string, fullSync = false): Promise<{ Success: boolean; Message: string }> {\n const actionID = await this.lookupActionID('Run Integration Sync');\n if (!actionID) {\n return {\n Success: false,\n Message: 'Action \"Run Integration Sync\" not found. Ensure the action is registered.'\n };\n }\n\n const provider = this.Provider as unknown as GraphQLDataProvider;\n const actionClient = new GraphQLActionClient(provider);\n const params = [\n { Name: 'CompanyIntegrationID', Value: companyIntegrationID, Type: 'Input' as const },\n { Name: 'FullSync', Value: fullSync ? 'true' : 'false', Type: 'Input' as const },\n ];\n const result = await actionClient.RunAction(actionID, params);\n return { Success: result.Success, Message: result.Message ?? '' };\n }\n\n /** Load schedule data for all company integrations (includes new scheduling fields) */\n async LoadSchedules(_provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationEntity[]> {\n await IntegrationEngineBase.Instance.Config(false);\n return IntegrationEngineBase.Instance.CompanyIntegrations;\n }\n\n /** Load sync watermarks for a specific company integration's entity maps */\n async LoadWatermarks(companyIntegrationID: string, _provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationSyncWatermarkEntity[]> {\n await IntegrationEngineBase.Instance.Config(false);\n const entityMaps = IntegrationEngineBase.Instance.GetEntityMapsForCompanyIntegration(companyIntegrationID);\n if (entityMaps.length === 0) return [];\n\n const mapIDSet = new Set(entityMaps.map(em => em.ID.toLowerCase()));\n return IntegrationEngineBase.Instance.Watermarks.filter(w => mapIDSet.has(w.EntityMapID.toLowerCase()));\n }\n\n /**\n * Auto-map all entities in a given schema to a company integration.\n * For each entity in the schema that doesn't already have an entity map,\n * creates an entity map (ExternalObjectName = BaseTable) and 1:1 field maps\n * for every non-system column. Returns the count of maps created.\n */\n async AutoMapSchema(\n companyIntegrationID: string,\n schemaName: string,\n direction: 'Pull' | 'Push' | 'Bidirectional' = 'Pull'\n ): Promise<{ EntityMapsCreated: number; FieldMapsCreated: number; Errors: string[] }> {\n const md = this.Provider;\n const errors: string[] = [];\n\n // Get entities in the target schema\n const schemaEntities = md.Entities.filter(\n e => e.SchemaName.toLowerCase() === schemaName.toLowerCase()\n );\n if (schemaEntities.length === 0) {\n return { EntityMapsCreated: 0, FieldMapsCreated: 0, Errors: [`No entities found in schema \"${schemaName}\"`] };\n }\n\n // Load existing entity maps to avoid duplicates\n const existingMaps = await this.LoadEntityMaps(companyIntegrationID);\n const existingEntityIDs = new Set(existingMaps.map(m => m.ID.toLowerCase()));\n\n // Build a set of entity IDs that already have maps (by EntityID)\n const mappedEntityIDs = new Set<string>();\n for (const em of existingMaps) {\n mappedEntityIDs.add((em as unknown as { EntityID: string }).EntityID?.toLowerCase() ?? '');\n }\n // Also load full map data to check EntityID\n const engine = IntegrationEngineBase.Instance;\n await engine.Config(false);\n const allMaps = engine.GetEntityMapsForCompanyIntegration(companyIntegrationID);\n for (const em of allMaps) {\n mappedEntityIDs.add(em.EntityID.toLowerCase());\n }\n\n let entityMapsCreated = 0;\n let fieldMapsCreated = 0;\n\n for (const entity of schemaEntities) {\n // Skip if already mapped\n if (mappedEntityIDs.has(entity.ID.toLowerCase())) continue;\n\n // Create entity map\n const entityMap = await this.CreateEntityMap({\n CompanyIntegrationID: companyIntegrationID,\n ExternalObjectName: entity.BaseTable,\n EntityID: entity.ID,\n SyncDirection: direction\n });\n\n if (!entityMap) {\n errors.push(`Failed to create entity map for ${entity.Name}`);\n continue;\n }\n entityMapsCreated++;\n\n // Create 1:1 field maps for all non-system fields\n const fields = entity.Fields.filter(\n f => !f.Name.startsWith('__mj')\n );\n\n for (const field of fields) {\n const isKey = field.Name.toLowerCase() === 'uuid' || field.IsPrimaryKey;\n const fm = await this.CreateFieldMap({\n EntityMapID: entityMap.ID,\n SourceFieldName: field.Name,\n DestinationFieldName: field.Name,\n IsKeyField: isKey,\n IsRequired: isKey,\n Direction: direction === 'Bidirectional' ? 'Both' : 'SourceToDest'\n });\n if (fm) {\n fieldMapsCreated++;\n } else {\n errors.push(`Failed to create field map for ${entity.Name}.${field.Name}`);\n }\n }\n }\n\n return { EntityMapsCreated: entityMapsCreated, FieldMapsCreated: fieldMapsCreated, Errors: errors };\n }\n\n /** Load available schemas (for auto-map schema picker) */\n LoadSchemas(): string[] {\n const md = this.Provider;\n const schemas = new Set<string>();\n for (const entity of md.Entities) {\n if (entity.SchemaName) schemas.add(entity.SchemaName);\n }\n return Array.from(schemas).sort();\n }\n\n /** Load entity map count per company integration (used by Overview cards) */\n async LoadEntityMapCounts(_provider?: IRunViewProvider | null): Promise<Map<string, number>> {\n await IntegrationEngineBase.Instance.Config(false);\n const counts = new Map<string, number>();\n for (const em of IntegrationEngineBase.Instance.EntityMaps) {\n if (em.SyncEnabled) {\n const key = em.CompanyIntegrationID.toLowerCase();\n counts.set(key, (counts.get(key) ?? 0) + 1);\n }\n }\n return counts;\n }\n\n private async lookupActionID(actionName: string): Promise<string | null> {\n const rv = RunView.FromMetadataProvider(this.Provider);\n const result = await rv.RunView<{ ID: string }>({\n EntityName: 'MJ: Actions',\n ExtraFilter: `Name='${actionName}'`,\n Fields: ['ID'],\n MaxRows: 1,\n ResultType: 'simple'\n });\n return result.Results.length > 0 ? result.Results[0].ID : null;\n }\n\n private getIntegrationClient(): GraphQLIntegrationClient {\n const provider = this.Provider as unknown as GraphQLDataProvider;\n return new GraphQLIntegrationClient(provider);\n }\n\n private createRunView(provider?: IRunViewProvider | null): RunView {\n return new RunView((provider ?? this.Provider) as IRunViewProvider);\n }\n\n private buildSummary(\n integration: MJCompanyIntegrationEntity,\n allRuns: IntegrationRunRow[],\n sourceTypes: MJIntegrationSourceTypeEntity[],\n integrationDefs: MJIntegrationEntity[]\n ): IntegrationSummary {\n const integrationRuns = allRuns.filter(r => UUIDsEqual(r.CompanyIntegrationID, integration.ID));\n const latestRun = integrationRuns.length > 0 ? integrationRuns[0] : null;\n const recentRuns = integrationRuns.slice(0, 5);\n const statusColor = this.computeStatusColor(latestRun, integration.IsActive);\n const relativeTime = this.computeRelativeTime(latestRun?.StartedAt ?? null);\n const totalRecordsSyncedToday = this.computeRecordsSyncedToday(integrationRuns);\n const totalErrors = integrationRuns.filter(r => r.Status === 'Failed').length;\n const durationMs = this.computeDuration(latestRun);\n const sourceType = this.resolveSourceType(integration, sourceTypes);\n const integrationName = integration.Integration ?? '';\n const def = integrationDefs.find(d => d.Name === integrationName);\n const icon = (def?.Get('Icon') as string | null) ?? null;\n\n return {\n Integration: integration,\n SourceType: sourceType,\n Icon: icon,\n LatestRun: latestRun,\n RecentRuns: recentRuns,\n StatusColor: statusColor,\n RelativeTime: relativeTime,\n TotalRecordsSyncedToday: totalRecordsSyncedToday,\n TotalErrors: totalErrors,\n DurationMs: durationMs\n };\n }\n\n private resolveSourceType(\n integration: MJCompanyIntegrationEntity,\n sourceTypes: MJIntegrationSourceTypeEntity[]\n ): MJIntegrationSourceTypeEntity | null {\n if (!integration.SourceTypeID) return null;\n return sourceTypes.find(st => UUIDsEqual(st.ID, integration.SourceTypeID)) ?? null;\n }\n\n private buildActivityFeedItem(run: IntegrationRunRow): ActivityFeedItem {\n return {\n RunID: run.ID,\n IntegrationName: run.Integration,\n Status: run.Status,\n StatusColor: this.runStatusColor(run),\n StartedAt: run.StartedAt,\n RelativeTime: this.computeRelativeTime(run.StartedAt),\n TotalRecords: run.TotalRecords,\n RunByUser: run.RunByUser\n };\n }\n\n private runStatusColor(run: IntegrationRunRow): 'amber' | 'green' | 'red' | 'gray' {\n if (run.Status === 'Failed') return 'red';\n if (run.Status === 'Success') return 'green';\n // A cancelled run is neither healthy nor broken — someone stopped it on purpose. Red would\n // read as a defect to fix; amber would read as work still in flight. Neutral is the truth.\n if (run.Status === 'Cancelled') return 'gray';\n // 'Queued' / 'In Progress' / 'Pending' — work outstanding.\n return 'amber';\n }\n\n private computeRecordsSyncedToday(runs: IntegrationRunRow[]): number {\n const todayStart = new Date();\n todayStart.setHours(0, 0, 0, 0);\n return runs\n .filter(r => r.StartedAt && new Date(r.StartedAt) >= todayStart)\n .reduce((acc, r) => acc + r.TotalRecords, 0);\n }\n\n private computeDuration(run: IntegrationRunRow | null): number | null {\n if (!run?.StartedAt || !run?.EndedAt) return null;\n return new Date(run.EndedAt).getTime() - new Date(run.StartedAt).getTime();\n }\n\n private aggregateDailyCounts(runs: IntegrationRunRow[], days: number): DailyRecordCount[] {\n const result: DailyRecordCount[] = [];\n const today = new Date();\n\n for (let i = days - 1; i >= 0; i--) {\n const date = new Date(today);\n date.setDate(date.getDate() - i);\n const dateStr = date.toISOString().split('T')[0];\n const label = date.toLocaleDateString(undefined, { weekday: 'short' });\n\n const dayRecords = runs\n .filter(r => DateCellDayKey(r.StartedAt) === dateStr)\n .reduce((acc, r) => acc + r.TotalRecords, 0);\n\n result.push({ Date: dateStr, Label: label, Records: dayRecords });\n }\n return result;\n }\n\n private computeStatusColor(\n latestRun: IntegrationRunRow | null,\n isActive: boolean | null\n ): 'green' | 'amber' | 'red' | 'gray' {\n if (!isActive) return 'gray';\n if (!latestRun) return 'gray';\n if (latestRun.Status === 'Failed') return 'red';\n // 'Queued' belongs with the other work-outstanding states: a run waiting for a worker is\n // pending, not unknown. It was missing here only because the hand-copied union predated it.\n if (latestRun.Status === 'In Progress' || latestRun.Status === 'Pending' || latestRun.Status === 'Queued') return 'amber';\n if (latestRun.Status === 'Success') {\n return this.isStale(latestRun.StartedAt) ? 'amber' : 'green';\n }\n // 'Cancelled' lands here — deliberately neutral, same reasoning as runStatusColor.\n return 'gray';\n }\n\n private isStale(startedAt: Date | string | null): boolean {\n if (!startedAt) return true;\n const runDate = new Date(startedAt);\n const hoursAgo = (Date.now() - runDate.getTime()) / (1000 * 60 * 60);\n return hoursAgo > 24;\n }\n\n private computeRelativeTime(dateStr: Date | string | null): string {\n if (!dateStr) return 'Never run';\n const date = new Date(dateStr);\n const diffMs = Date.now() - date.getTime();\n const diffMinutes = Math.floor(diffMs / (1000 * 60));\n\n if (diffMinutes < 1) return 'Just now';\n if (diffMinutes < 60) return `${diffMinutes}m ago`;\n const diffHours = Math.floor(diffMinutes / 60);\n if (diffHours < 24) return `${diffHours}h ago`;\n const diffDays = Math.floor(diffHours / 24);\n if (diffDays < 30) return `${diffDays}d ago`;\n return date.toLocaleDateString();\n }\n}\n"]}
1
+ {"version":3,"file":"integration-data.service.js","sourceRoot":"","sources":["../../../src/Integration/services/integration-data.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Metadata, RunView, IRunViewProvider, IMetadataProvider } from '@memberjunction/core';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { DateCellDayKey } from '../../shared/date-cell';\nimport {\n MJCompanyIntegrationEntityMapEntity,\n MJCompanyIntegrationFieldMapEntity,\n MJCompanyIntegrationEntity,\n MJIntegrationEntity,\n MJIntegrationSourceTypeEntity,\n MJCompanyIntegrationSyncWatermarkEntity,\n} from '@memberjunction/core-entities';\nimport type { MJCompanyIntegrationRunEntity } from '@memberjunction/core-entities';\n\n/**\n * A sync run's status, taken from the entity rather than restated here. The literal union that used\n * to be written out in both interfaces below had already gone stale — it predated 'Queued', so a\n * queued run was a value the compiler said could not exist. Indexed access tracks the CHECK\n * constraint through CodeGen, so a new status shows up as a compile error in the switch-like\n * helpers below instead of silently falling through to a default colour.\n */\ntype IntegrationRunStatus = MJCompanyIntegrationRunEntity['Status'];\nimport { IntegrationEngineBase } from '@memberjunction/integration-engine-base';\nimport {\n GraphQLDataProvider,\n GraphQLIntegrationClient,\n GraphQLActionClient,\n DiscoveredObjectResult,\n DiscoveredFieldResult,\n DiscoveryResult,\n ConnectionTestGraphQLResult,\n SchemaPreviewObjectInput,\n SchemaPreviewResult,\n DefaultConfigResult,\n ApplyAllResult,\n SourceObjectListItem,\n SourceObjectSelectionInput\n} from '@memberjunction/graphql-dataprovider';\n\n/**\n * Simple row types for read-only data loaded via ResultType: 'simple'\n */\nexport interface IntegrationRow {\n ID: string;\n Name: string;\n IsActive: boolean | null;\n LastRunID: string | null;\n LastRunStartedAt: Date | string | null;\n LastRunEndedAt: Date | string | null;\n Company: string;\n Integration: string;\n DriverClassName: string | null;\n}\n\nexport interface IntegrationRunRow {\n ID: string;\n CompanyIntegrationID: string;\n StartedAt: Date | string | null;\n EndedAt: Date | string | null;\n TotalRecords: number;\n Status: IntegrationRunStatus;\n ErrorLog: string | null;\n Integration: string;\n Company: string;\n RunByUser: string;\n}\n\nexport interface SourceTypeRow {\n ID: string;\n Name: string;\n Description: string | null;\n DriverClass: string;\n IconClass: string | null;\n Status: 'Active' | 'Inactive';\n}\n\nexport interface EntityMapRow {\n ID: string;\n CompanyIntegrationID: string;\n ExternalObjectName: string;\n ExternalObjectLabel: string | null;\n EntityID: string;\n SyncDirection: 'Bidirectional' | 'Pull' | 'Push';\n SyncEnabled: boolean;\n MatchStrategy: string | null;\n ConflictResolution: 'DestWins' | 'Manual' | 'MostRecent' | 'SourceWins';\n Priority: number;\n DeleteBehavior: 'DoNothing' | 'HardDelete' | 'SoftDelete';\n Status: 'Active' | 'Inactive';\n Entity: string;\n}\n\nexport interface FieldMapRow {\n ID: string;\n EntityMapID: string;\n SourceFieldName: string;\n SourceFieldLabel: string | null;\n DestinationFieldName: string;\n DestinationFieldLabel: string | null;\n Direction: 'Both' | 'DestToSource' | 'SourceToDest';\n TransformPipeline: string | null;\n IsKeyField: boolean;\n IsRequired: boolean;\n DefaultValue: string | null;\n Priority: number;\n Status: 'Active' | 'Inactive';\n}\n\n/** Aggregated per-entity stats for a run (computed client-side from raw detail records) */\nexport interface RunDetailRow {\n EntityID: string;\n Entity: string;\n RecordsProcessed: number;\n RecordsCreated: number;\n RecordsUpdated: number;\n RecordsDeleted: number;\n RecordsErrored: number;\n RecordsSkipped: number;\n}\n\n/** Raw record from MJ: Company Integration Run Details (one row per record operation) */\ninterface RawRunDetailRecord {\n ID: string;\n CompanyIntegrationRunID: string;\n EntityID: string;\n RecordID: string;\n Action: string;\n IsSuccess: boolean;\n Entity: string;\n}\n\n/** Master integration definition (e.g., \"HubSpot\", \"Salesforce\") */\nexport interface IntegrationDefinitionRow {\n ID: string;\n Name: string;\n Description: string | null;\n ClassName: string | null;\n ImportPath: string | null;\n NavigationBaseURL: string | null;\n BatchMaxRequestCount: number;\n BatchRequestWaitTime: number;\n CredentialTypeID: string | null;\n SourceTypeID: string | null;\n}\n\n/** Aggregated summary for a single integration, used by the Control Tower UI */\nexport interface IntegrationSummary {\n Integration: MJCompanyIntegrationEntity;\n SourceType: MJIntegrationSourceTypeEntity | null;\n /** Icon from the Integration entity — FA class, URL, or base64 */\n Icon: string | null;\n LatestRun: IntegrationRunRow | null;\n RecentRuns: IntegrationRunRow[];\n StatusColor: 'green' | 'amber' | 'red' | 'gray';\n RelativeTime: string;\n TotalRecordsSyncedToday: number;\n TotalErrors: number;\n DurationMs: number | null;\n}\n\n/** KPI data for the Control Tower top strip */\nexport interface IntegrationKPIs {\n TotalIntegrations: number;\n ActiveSyncs: number;\n RecordsSyncedToday: number;\n ErrorRate: number;\n AverageSyncDurationMs: number | null;\n}\n\n/** Activity feed item for the Control Tower bottom section */\nexport interface ActivityFeedItem {\n RunID: string;\n IntegrationName: string;\n Status: IntegrationRunStatus;\n StatusColor: 'amber' | 'green' | 'red' | 'gray';\n StartedAt: Date | string | null;\n RelativeTime: string;\n TotalRecords: number;\n RunByUser: string;\n}\n\n/** Daily record count for the bar chart */\nexport interface DailyRecordCount {\n Date: string;\n Label: string;\n Records: number;\n}\n\n/** Schedule row for the Schedules component (includes new scheduling fields) */\nexport interface ScheduleRow {\n ID: string;\n Name: string;\n Integration: string;\n Company: string;\n IsActive: boolean | null;\n ScheduleEnabled: boolean;\n ScheduleType: 'Manual' | 'Interval' | 'Cron';\n ScheduleIntervalMinutes: number | null;\n CronExpression: string | null;\n NextScheduledRunAt: string | null;\n LastScheduledRunAt: string | null;\n IsLocked: boolean;\n LockedAt: string | null;\n}\n\n/** Watermark row for the Activity detail panel */\nexport interface WatermarkRow {\n ID: string;\n EntityMapID: string;\n WatermarkType: string;\n WatermarkValue: string | null;\n Direction: 'Pull' | 'Push';\n EntityMap: string;\n}\n\n/** Shared icon resolution map for integration names to Font Awesome icon classes */\nconst INTEGRATION_ICON_MAP: Array<{ Pattern: RegExp; Icon: string }> = [\n { Pattern: /hubspot/i, Icon: 'fa-brands fa-hubspot' },\n { Pattern: /salesforce/i, Icon: 'fa-brands fa-salesforce' },\n { Pattern: /google/i, Icon: 'fa-brands fa-google' },\n { Pattern: /microsoft|dynamics|azure/i, Icon: 'fa-brands fa-microsoft' },\n { Pattern: /slack/i, Icon: 'fa-brands fa-slack' },\n { Pattern: /jira|atlassian/i, Icon: 'fa-brands fa-atlassian' },\n { Pattern: /github/i, Icon: 'fa-brands fa-github' },\n { Pattern: /stripe/i, Icon: 'fa-brands fa-stripe' },\n { Pattern: /shopify/i, Icon: 'fa-brands fa-shopify' },\n { Pattern: /mailchimp/i, Icon: 'fa-brands fa-mailchimp' },\n { Pattern: /wordpress/i, Icon: 'fa-brands fa-wordpress' },\n { Pattern: /dropbox/i, Icon: 'fa-brands fa-dropbox' },\n { Pattern: /csv|file|import/i, Icon: 'fa-solid fa-file-csv' },\n { Pattern: /postgres|mysql|sql|database|db/i, Icon: 'fa-solid fa-database' },\n { Pattern: /api|rest|graphql/i, Icon: 'fa-solid fa-code' },\n { Pattern: /member|membership/i, Icon: 'fa-solid fa-users' },\n { Pattern: /email|mail/i, Icon: 'fa-solid fa-envelope' },\n { Pattern: /calendar|event/i, Icon: 'fa-solid fa-calendar' }\n];\n\n/**\n * Resolve an integration icon. Checks the entity's Icon field first (supports\n * Font Awesome classes, URLs, and base64), then falls back to pattern-based\n * name matching, then to a generic plug icon.\n */\nexport function ResolveIntegrationIcon(name: string, entityIcon?: string | null): string {\n // If the Integration entity has an Icon value that looks like a FA class, use it directly\n if (entityIcon && entityIcon.startsWith('fa-')) {\n return entityIcon;\n }\n // Fall back to pattern-based name matching\n const match = INTEGRATION_ICON_MAP.find(m => m.Pattern.test(name));\n return match ? match.Icon : 'fa-solid fa-plug';\n}\n\n/**\n * Check if the Icon field contains an image URL or base64 data URI\n * (as opposed to a Font Awesome class). Used by templates to decide\n * whether to render an <i> or an <img>.\n */\nexport function IsImageIcon(icon: string | null | undefined): boolean {\n if (!icon) return false;\n return icon.startsWith('http') || icon.startsWith('data:') || icon.startsWith('/');\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IntegrationDataService {\n private _provider: IMetadataProvider | null = null;\n\n /** Set the metadata provider this service should use. Components should call this after injection. */\n public set Provider(value: IMetadataProvider | null) {\n this._provider = value;\n }\n\n public get Provider(): IMetadataProvider {\n return this._provider ?? Metadata.Provider;\n }\n\n async LoadIntegrationSummaries(provider?: IRunViewProvider | null): Promise<IntegrationSummary[]> {\n const engine = IntegrationEngineBase.Instance;\n const rv = this.createRunView(provider);\n\n // Engine provides cached metadata; only runs are dynamic and need a RunView call\n const [, runsResult] = await Promise.all([\n engine.Config(false),\n rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: '',\n OrderBy: 'StartedAt DESC',\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords',\n 'Status', 'ErrorLog', 'Integration', 'Company', 'RunByUser'],\n ResultType: 'simple'\n })\n ]);\n\n const integrations = engine.CompanyIntegrations;\n const runs = runsResult.Results;\n const sourceTypes = engine.SourceTypes;\n\n const integrationDefs = engine.Integrations;\n return integrations.map(integration => this.buildSummary(integration, runs, sourceTypes, integrationDefs));\n }\n\n async LoadEntityMaps(companyIntegrationID: string, _provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationEntityMapEntity[]> {\n await IntegrationEngineBase.Instance.Config(false);\n return IntegrationEngineBase.Instance.GetEntityMapsForCompanyIntegration(companyIntegrationID);\n }\n\n async LoadFieldMaps(entityMapID: string, provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationFieldMapEntity[]> {\n return IntegrationEngineBase.Instance.LoadFieldMapsForEntityMap(entityMapID, undefined, provider);\n }\n\n async LoadRunHistory(companyIntegrationID: string, limit: number = 10, provider?: IRunViewProvider | null): Promise<IntegrationRunRow[]> {\n const rv = this.createRunView(provider);\n const result = await rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: `CompanyIntegrationID='${companyIntegrationID}'`,\n OrderBy: 'StartedAt DESC',\n MaxRows: limit,\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords',\n 'Status', 'ErrorLog', 'Integration', 'Company', 'RunByUser'],\n ResultType: 'simple'\n });\n return result.Results;\n }\n\n async LoadRunDetails(runID: string, provider?: IRunViewProvider | null): Promise<RunDetailRow[]> {\n const rv = this.createRunView(provider);\n const result = await rv.RunView<RawRunDetailRecord>({\n EntityName: 'MJ: Company Integration Run Details',\n ExtraFilter: `CompanyIntegrationRunID='${runID}'`,\n OrderBy: 'Entity',\n Fields: ['ID', 'CompanyIntegrationRunID', 'EntityID', 'RecordID',\n 'Action', 'IsSuccess', 'Entity'],\n ResultType: 'simple'\n });\n return this.aggregateRunDetails(result.Results);\n }\n\n /** Aggregate raw per-record detail rows into per-entity summary rows */\n private aggregateRunDetails(rawRecords: RawRunDetailRecord[]): RunDetailRow[] {\n const entityMap = new Map<string, RunDetailRow>();\n\n for (const rec of rawRecords) {\n const key = rec.EntityID.toLowerCase();\n let row = entityMap.get(key);\n if (!row) {\n row = {\n EntityID: rec.EntityID,\n Entity: rec.Entity,\n RecordsProcessed: 0,\n RecordsCreated: 0,\n RecordsUpdated: 0,\n RecordsDeleted: 0,\n RecordsErrored: 0,\n RecordsSkipped: 0\n };\n entityMap.set(key, row);\n }\n\n row.RecordsProcessed++;\n\n if (!rec.IsSuccess) {\n row.RecordsErrored++;\n } else {\n const action = (rec.Action ?? '').toUpperCase();\n if (action === 'INSERT' || action === 'CREATE') {\n row.RecordsCreated++;\n } else if (action === 'UPDATE') {\n row.RecordsUpdated++;\n } else if (action === 'DELETE') {\n row.RecordsDeleted++;\n } else if (action === 'SKIP' || action === 'SKIPPED') {\n row.RecordsSkipped++;\n }\n }\n }\n\n return Array.from(entityMap.values()).sort((a, b) => a.Entity.localeCompare(b.Entity));\n }\n\n async LoadIntegrationDefinitions(_provider?: IRunViewProvider | null): Promise<MJIntegrationEntity[]> {\n await IntegrationEngineBase.Instance.Config(false);\n return IntegrationEngineBase.Instance.Integrations;\n }\n\n async LoadSourceTypes(_provider?: IRunViewProvider | null): Promise<MJIntegrationSourceTypeEntity[]> {\n await IntegrationEngineBase.Instance.Config(false);\n return IntegrationEngineBase.Instance.SourceTypes.filter(st => st.Status === 'Active');\n }\n\n async LoadRecentRuns(limit: number = 20, provider?: IRunViewProvider | null): Promise<ActivityFeedItem[]> {\n const rv = this.createRunView(provider);\n const result = await rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: '',\n OrderBy: 'StartedAt DESC',\n MaxRows: limit,\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords',\n 'Status', 'ErrorLog', 'Integration', 'Company', 'RunByUser'],\n ResultType: 'simple'\n });\n return result.Results.map(run => this.buildActivityFeedItem(run));\n }\n\n async LoadDailyRecordCounts(days: number = 7, provider?: IRunViewProvider | null): Promise<DailyRecordCount[]> {\n const rv = this.createRunView(provider);\n const cutoffDate = new Date();\n cutoffDate.setDate(cutoffDate.getDate() - days);\n const cutoffStr = cutoffDate.toISOString().split('T')[0];\n\n const result = await rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: `StartedAt >= '${cutoffStr}'`,\n OrderBy: 'StartedAt ASC',\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords',\n 'Status', 'ErrorLog', 'Integration', 'Company', 'RunByUser'],\n ResultType: 'simple'\n });\n\n return this.aggregateDailyCounts(result.Results, days);\n }\n\n ComputeKPIs(summaries: IntegrationSummary[]): IntegrationKPIs {\n const totalIntegrations = summaries.length;\n // 'Queued' counts as an active sync: worker-mode enqueues a run that has been asked for and\n // not yet finished, which is what this KPI means. Omitting it made every worker-mode\n // deployment under-report in-flight work.\n const activeSyncs = summaries.filter(\n s => s.LatestRun?.Status === 'In Progress' || s.LatestRun?.Status === 'Pending' || s.LatestRun?.Status === 'Queued'\n ).length;\n const recordsSyncedToday = summaries.reduce((acc, s) => acc + s.TotalRecordsSyncedToday, 0);\n\n const totalRuns = summaries.reduce((acc, s) => acc + s.RecentRuns.length, 0);\n const totalErrors = summaries.reduce((acc, s) => acc + s.TotalErrors, 0);\n const errorRate = totalRuns > 0 ? (totalErrors / totalRuns) * 100 : 0;\n\n const durationsMs = summaries\n .filter(s => s.DurationMs != null)\n .map(s => s.DurationMs as number);\n const averageSyncDurationMs = durationsMs.length > 0\n ? durationsMs.reduce((a, b) => a + b, 0) / durationsMs.length\n : null;\n\n return {\n TotalIntegrations: totalIntegrations,\n ActiveSyncs: activeSyncs,\n RecordsSyncedToday: recordsSyncedToday,\n ErrorRate: Math.round(errorRate * 10) / 10,\n AverageSyncDurationMs: averageSyncDurationMs\n };\n }\n\n FormatDuration(ms: number | null): string {\n if (ms == null) return '--';\n const totalSeconds = Math.floor(ms / 1000);\n if (totalSeconds < 60) return `${totalSeconds}s`;\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = totalSeconds % 60;\n if (minutes < 60) return `${minutes}m ${seconds}s`;\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = minutes % 60;\n return `${hours}h ${remainingMinutes}m`;\n }\n\n ComputeRelativeTime(dateStr: Date | string | null): string {\n return this.computeRelativeTime(dateStr);\n }\n\n // --- Entity Map CRUD ---\n\n async CreateEntityMap(params: {\n CompanyIntegrationID: string;\n ExternalObjectName: string;\n ExternalObjectLabel?: string;\n EntityID: string;\n SyncDirection?: 'Pull' | 'Push' | 'Bidirectional';\n ConflictResolution?: 'SourceWins' | 'DestWins' | 'MostRecent' | 'Manual';\n Priority?: number;\n DeleteBehavior?: 'SoftDelete' | 'DoNothing' | 'HardDelete';\n }): Promise<MJCompanyIntegrationEntityMapEntity | null> {\n const md = this.Provider;\n const em = await md.GetEntityObject<MJCompanyIntegrationEntityMapEntity>('MJ: Company Integration Entity Maps');\n em.NewRecord();\n em.CompanyIntegrationID = params.CompanyIntegrationID;\n em.ExternalObjectName = params.ExternalObjectName;\n if (params.ExternalObjectLabel) em.ExternalObjectLabel = params.ExternalObjectLabel;\n em.EntityID = params.EntityID;\n em.SyncDirection = params.SyncDirection ?? 'Pull';\n em.ConflictResolution = params.ConflictResolution ?? 'SourceWins';\n em.Priority = params.Priority ?? 0;\n em.DeleteBehavior = params.DeleteBehavior ?? 'SoftDelete';\n em.Status = 'Active';\n em.SyncEnabled = true;\n\n const saved = await em.Save();\n if (!saved) {\n console.error('[IntegrationDataService] Failed to create entity map:', em.LatestResult?.CompleteMessage);\n return null;\n }\n return em;\n }\n\n async DeleteEntityMap(entityMapID: string): Promise<boolean> {\n const md = this.Provider;\n const em = await md.GetEntityObject<MJCompanyIntegrationEntityMapEntity>('MJ: Company Integration Entity Maps');\n await em.Load(entityMapID);\n return em.Delete();\n }\n\n async ToggleEntityMapEnabled(entityMapID: string, enabled: boolean): Promise<boolean> {\n const md = this.Provider;\n const em = await md.GetEntityObject<MJCompanyIntegrationEntityMapEntity>('MJ: Company Integration Entity Maps');\n await em.Load(entityMapID);\n em.SyncEnabled = enabled;\n return em.Save();\n }\n\n async UpdateSyncDirection(entityMapID: string, direction: 'Pull' | 'Push' | 'Bidirectional'): Promise<boolean> {\n const md = this.Provider;\n const em = await md.GetEntityObject<MJCompanyIntegrationEntityMapEntity>('MJ: Company Integration Entity Maps');\n await em.Load(entityMapID);\n em.SyncDirection = direction;\n return em.Save();\n }\n\n // --- Field Map CRUD ---\n\n async CreateFieldMap(params: {\n EntityMapID: string;\n SourceFieldName: string;\n SourceFieldLabel?: string;\n DestinationFieldName: string;\n DestinationFieldLabel?: string;\n IsKeyField?: boolean;\n IsRequired?: boolean;\n Direction?: 'SourceToDest' | 'DestToSource' | 'Both';\n TransformPipeline?: string | null;\n Priority?: number;\n }): Promise<MJCompanyIntegrationFieldMapEntity | null> {\n const md = this.Provider;\n const fm = await md.GetEntityObject<MJCompanyIntegrationFieldMapEntity>('MJ: Company Integration Field Maps');\n fm.NewRecord();\n fm.EntityMapID = params.EntityMapID;\n fm.SourceFieldName = params.SourceFieldName;\n if (params.SourceFieldLabel) fm.SourceFieldLabel = params.SourceFieldLabel;\n fm.DestinationFieldName = params.DestinationFieldName;\n if (params.DestinationFieldLabel) fm.DestinationFieldLabel = params.DestinationFieldLabel;\n fm.IsKeyField = params.IsKeyField ?? false;\n fm.IsRequired = params.IsRequired ?? false;\n fm.Direction = params.Direction ?? 'SourceToDest';\n if (params.TransformPipeline !== undefined) fm.TransformPipeline = params.TransformPipeline;\n fm.Status = 'Active';\n fm.Priority = params.Priority ?? 0;\n\n const saved = await fm.Save();\n if (!saved) {\n console.error('[IntegrationDataService] Failed to create field map:', fm.LatestResult?.CompleteMessage);\n return null;\n }\n return fm;\n }\n\n async DeleteFieldMap(fieldMapID: string): Promise<boolean> {\n const md = this.Provider;\n const fm = await md.GetEntityObject<MJCompanyIntegrationFieldMapEntity>('MJ: Company Integration Field Maps');\n await fm.Load(fieldMapID);\n return fm.Delete();\n }\n\n async UpdateFieldMap(fieldMapID: string, updates: {\n SourceFieldName?: string;\n DestinationFieldName?: string;\n IsKeyField?: boolean;\n IsRequired?: boolean;\n Direction?: 'SourceToDest' | 'DestToSource' | 'Both';\n Status?: 'Active' | 'Inactive';\n TransformPipeline?: string | null;\n }): Promise<boolean> {\n const md = this.Provider;\n const fm = await md.GetEntityObject<MJCompanyIntegrationFieldMapEntity>('MJ: Company Integration Field Maps');\n await fm.Load(fieldMapID);\n if (updates.SourceFieldName !== undefined) fm.SourceFieldName = updates.SourceFieldName;\n if (updates.DestinationFieldName !== undefined) fm.DestinationFieldName = updates.DestinationFieldName;\n if (updates.IsKeyField !== undefined) fm.IsKeyField = updates.IsKeyField;\n if (updates.IsRequired !== undefined) fm.IsRequired = updates.IsRequired;\n if (updates.Direction !== undefined) fm.Direction = updates.Direction;\n if (updates.Status !== undefined) fm.Status = updates.Status;\n if (updates.TransformPipeline !== undefined) fm.TransformPipeline = updates.TransformPipeline;\n return fm.Save();\n }\n\n /** Load available MJ entities for mapping target selection */\n async LoadMJEntities(_provider?: IRunViewProvider | null): Promise<Array<{ ID: string; Name: string }>> {\n const md = this.Provider;\n return md.Entities\n .map(e => ({ ID: e.ID, Name: e.Name }))\n .sort((a, b) => a.Name.localeCompare(b.Name));\n }\n\n /** Load entity fields for a given entity (for field mapping destination picker) */\n async LoadEntityFields(entityID: string, _provider?: IRunViewProvider | null): Promise<Array<{ ID: string; Name: string; Type: string; IsRequired: boolean }>> {\n const md = this.Provider;\n const entity = md.Entities.find(e => UUIDsEqual(e.ID, entityID));\n if (!entity) return [];\n return entity.Fields\n .sort((a, b) => a.Sequence - b.Sequence)\n .map(f => ({ ID: f.ID, Name: f.Name, Type: f.Type, IsRequired: !f.AllowsNull }));\n }\n\n // --- Discovery (via GraphQL) ---\n\n /** Discover external objects available for a company integration */\n async DiscoverObjects(companyIntegrationID: string): Promise<DiscoveryResult<DiscoveredObjectResult[]>> {\n const client = this.getIntegrationClient();\n return client.DiscoverObjects(companyIntegrationID);\n }\n\n /** Discover fields on a specific external object */\n async DiscoverFields(companyIntegrationID: string, objectName: string): Promise<DiscoveryResult<DiscoveredFieldResult[]>> {\n const client = this.getIntegrationClient();\n return client.DiscoverFields(companyIntegrationID, objectName);\n }\n\n /** Generate DDL preview for creating tables from discovered objects */\n async SchemaPreview(\n companyIntegrationID: string,\n objects: SchemaPreviewObjectInput[],\n platform: string = 'sqlserver'\n ): Promise<SchemaPreviewResult> {\n const client = this.getIntegrationClient();\n return client.SchemaPreview(companyIntegrationID, objects, platform);\n }\n\n /** Execute the full RSU pipeline for an integration entity map */\n async RunSchemaPipeline(\n companyIntegrationID: string,\n entityMap: EntityMapRow\n ): Promise<{ Success: boolean; Message?: string }> {\n const md = this.Provider;\n const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityMap.EntityID));\n if (!entityInfo) {\n return { Success: false, Message: `Entity not found for ID ${entityMap.EntityID}` };\n }\n\n const objects: SchemaPreviewObjectInput[] = [{\n SourceObjectName: entityMap.ExternalObjectName,\n SchemaName: entityInfo.SchemaName,\n TableName: entityInfo.BaseTable,\n EntityName: entityInfo.Name\n }];\n\n const client = this.getIntegrationClient();\n const result = await client.ApplySchema(companyIntegrationID, objects);\n return { Success: result.Success, Message: result.Message };\n }\n\n /** Execute the RSU pipeline for new entity maps — introspects, generates DDL, runs full pipeline */\n async ApplySchemaForNewMaps(\n companyIntegrationID: string,\n objects: SchemaPreviewObjectInput[]\n ): Promise<{ Success: boolean; Message: string }> {\n const client = this.getIntegrationClient();\n const result = await client.ApplySchema(companyIntegrationID, objects);\n return { Success: result.Success, Message: result.Message ?? '' };\n }\n\n /** Batch apply schema for multiple connectors — one RSU pipeline run */\n async ApplySchemaBatch(\n items: Array<{ CompanyIntegrationID: string; Objects: SchemaPreviewObjectInput[] }>\n ): Promise<{\n Success: boolean;\n Message: string;\n Items?: Array<{ CompanyIntegrationID: string; Success: boolean; Message: string; Warnings?: string[] }>;\n Steps?: Array<{ Name: string; Status: string; DurationMs: number; Message: string }>;\n GitCommitSuccess?: boolean;\n APIRestarted?: boolean;\n }> {\n const client = this.getIntegrationClient();\n return client.ApplySchemaBatch(items);\n }\n\n /** Batch Apply All: schema + entity maps + field maps + sync via IntegrationApplyAllBatch */\n async ApplyAllBatch(\n companyIntegrationID: string,\n sourceObjects: SourceObjectSelectionInput[]\n ): Promise<ApplyAllResult> {\n const client = this.getIntegrationClient();\n return client.ApplyAllBatch([{ CompanyIntegrationID: companyIntegrationID, SourceObjects: sourceObjects }]);\n }\n\n /**\n * Lists every source object the external system exposes — thin catalog for\n * the picker. No per-object describe; that runs later in ApplyAllBatch.\n */\n async ListSourceObjects(companyIntegrationID: string): Promise<DiscoveryResult<SourceObjectListItem[]>> {\n const client = this.getIntegrationClient();\n return client.ListSourceObjects(companyIntegrationID);\n }\n\n /** Full automatic \"Apply All\" flow: pipeline + entity maps + field maps + sync */\n async ApplyAll(\n companyIntegrationID: string,\n sourceObjectNames: string[]\n ): Promise<ApplyAllResult> {\n const client = this.getIntegrationClient();\n return client.ApplyAll(companyIntegrationID, sourceObjectNames);\n }\n\n /** Start a sync for a company integration */\n async StartSync(companyIntegrationID: string): Promise<{ Success: boolean; Message: string; RunID?: string }> {\n const client = this.getIntegrationClient();\n return client.StartSync(companyIntegrationID);\n }\n\n /** Get the connector's default configuration for quick setup */\n async GetDefaultConfig(companyIntegrationID: string): Promise<DefaultConfigResult> {\n const client = this.getIntegrationClient();\n return client.GetDefaultConfig(companyIntegrationID);\n }\n\n /** Test connection to the external system */\n async TestConnection(companyIntegrationID: string): Promise<ConnectionTestGraphQLResult> {\n const client = this.getIntegrationClient();\n return client.TestConnection(companyIntegrationID);\n }\n\n /** Preview source data from the external system via connector's FetchChanges */\n async PreviewSourceData(\n companyIntegrationID: string,\n objectName: string,\n limit: number = 5\n ): Promise<Array<Record<string, string | number | boolean | null>>> {\n const client = this.getIntegrationClient();\n const result = await client.PreviewData(companyIntegrationID, objectName, limit);\n if (!result.Success || !result.Records) {\n console.warn('[IntegrationDataService] PreviewSourceData failed:', result.Message);\n return [];\n }\n return result.Records.map(r => {\n try {\n return JSON.parse(r.Data) as Record<string, string | number | boolean | null>;\n } catch {\n return { _raw: r.Data } as Record<string, string | number | boolean | null>;\n }\n });\n }\n\n /** Preview destination data by loading a few records from the target entity */\n async PreviewDestinationData(\n entityID: string,\n limit: number = 5,\n provider?: IRunViewProvider | null\n ): Promise<Array<Record<string, string | number | boolean | null>>> {\n const md = this.Provider;\n const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityID));\n if (!entityInfo) return [];\n\n // Load first N fields (skip internal __mj fields) to keep preview compact\n const fields = entityInfo.Fields\n .filter(f => !f.Name.startsWith('__mj'))\n .slice(0, 8)\n .map(f => f.Name);\n\n const rv = this.createRunView(provider);\n const result = await rv.RunView<Record<string, string | number | boolean | null>>({\n EntityName: entityInfo.Name,\n ExtraFilter: '',\n OrderBy: `${fields[0]} ASC`,\n MaxRows: limit,\n Fields: fields,\n ResultType: 'simple'\n });\n return result.Results;\n }\n\n /** Get a count of records in the destination MJ entity */\n async GetDestinationRecordCount(\n entityID: string,\n provider?: IRunViewProvider | null\n ): Promise<number> {\n const md = this.Provider;\n const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityID));\n if (!entityInfo) return 0;\n\n const rv = this.createRunView(provider);\n const result = await rv.RunView<{ TotalCount: number }>({\n EntityName: entityInfo.Name,\n ExtraFilter: '',\n Fields: entityInfo.PrimaryKeys.map(pk => pk.Name),\n ResultType: 'simple'\n });\n return result.TotalRowCount ?? result.Results.length;\n }\n\n /** Get the most recent run that touched a given entity */\n async GetLastSyncForEntity(\n companyIntegrationID: string,\n entityID: string,\n provider?: IRunViewProvider | null\n ): Promise<{ StartedAt: Date | string | null; EndedAt: Date | string | null; Status: string; TotalRecords: number } | null> {\n const rv = this.createRunView(provider);\n // Get runs for this integration, most recent first\n const runsResult = await rv.RunView<IntegrationRunRow>({\n EntityName: 'MJ: Company Integration Runs',\n ExtraFilter: `CompanyIntegrationID='${companyIntegrationID}'`,\n OrderBy: 'StartedAt DESC',\n MaxRows: 5,\n Fields: ['ID', 'CompanyIntegrationID', 'StartedAt', 'EndedAt', 'TotalRecords', 'Status'],\n ResultType: 'simple'\n });\n if (runsResult.Results.length === 0) return null;\n\n // Check each run's details to find one that touched this entity\n for (const run of runsResult.Results) {\n const detailResult = await rv.RunView<{ EntityID: string }>({\n EntityName: 'MJ: Company Integration Run Details',\n ExtraFilter: `CompanyIntegrationRunID='${run.ID}' AND EntityID='${entityID}'`,\n MaxRows: 1,\n SkipTotalRowCount: true,\n Fields: ['EntityID'],\n ResultType: 'simple'\n });\n if (detailResult.Results.length > 0) {\n return {\n StartedAt: run.StartedAt,\n EndedAt: run.EndedAt,\n Status: run.Status,\n TotalRecords: run.TotalRecords\n };\n }\n }\n // No run touched this entity — return the most recent run anyway as context\n const latest = runsResult.Results[0];\n return {\n StartedAt: latest.StartedAt,\n EndedAt: latest.EndedAt,\n Status: latest.Status,\n TotalRecords: latest.TotalRecords\n };\n }\n\n /** Run a directional sync directly via the GraphQL StartSync mutation. */\n async StartSyncWithDirection(\n companyIntegrationID: string,\n fullSync: boolean,\n syncDirection: 'Pull' | 'Push' | 'Bidirectional'\n ): Promise<{ Success: boolean; Message: string }> {\n const provider = this.Provider as unknown as GraphQLDataProvider;\n const client = new GraphQLIntegrationClient(provider);\n return client.StartSync(companyIntegrationID, undefined, fullSync, syncDirection);\n }\n\n /** Run an integration sync via the \"Run Integration Sync\" action */\n async RunSync(companyIntegrationID: string, fullSync = false): Promise<{ Success: boolean; Message: string }> {\n const actionID = await this.lookupActionID('Run Integration Sync');\n if (!actionID) {\n return {\n Success: false,\n Message: 'Action \"Run Integration Sync\" not found. Ensure the action is registered.'\n };\n }\n\n const provider = this.Provider as unknown as GraphQLDataProvider;\n const actionClient = new GraphQLActionClient(provider);\n const params = [\n { Name: 'CompanyIntegrationID', Value: companyIntegrationID, Type: 'Input' as const },\n { Name: 'FullSync', Value: fullSync ? 'true' : 'false', Type: 'Input' as const },\n ];\n const result = await actionClient.RunAction(actionID, params);\n return { Success: result.Success, Message: result.Message ?? '' };\n }\n\n /** Load schedule data for all company integrations (includes new scheduling fields) */\n async LoadSchedules(_provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationEntity[]> {\n await IntegrationEngineBase.Instance.Config(false);\n return IntegrationEngineBase.Instance.CompanyIntegrations;\n }\n\n /** Load sync watermarks for a specific company integration's entity maps */\n async LoadWatermarks(companyIntegrationID: string, _provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationSyncWatermarkEntity[]> {\n await IntegrationEngineBase.Instance.Config(false);\n const entityMaps = IntegrationEngineBase.Instance.GetEntityMapsForCompanyIntegration(companyIntegrationID);\n if (entityMaps.length === 0) return [];\n\n const mapIDSet = new Set(entityMaps.map(em => em.ID.toLowerCase()));\n return IntegrationEngineBase.Instance.Watermarks.filter(w => mapIDSet.has(w.EntityMapID.toLowerCase()));\n }\n\n /**\n * Auto-map all entities in a given schema to a company integration.\n * For each entity in the schema that doesn't already have an entity map,\n * creates an entity map (ExternalObjectName = BaseTable) and 1:1 field maps\n * for every non-system column. Returns the count of maps created.\n */\n async AutoMapSchema(\n companyIntegrationID: string,\n schemaName: string,\n direction: 'Pull' | 'Push' | 'Bidirectional' = 'Pull'\n ): Promise<{ EntityMapsCreated: number; FieldMapsCreated: number; Errors: string[] }> {\n const md = this.Provider;\n const errors: string[] = [];\n\n // Get entities in the target schema\n const schemaEntities = md.Entities.filter(\n e => e.SchemaName.toLowerCase() === schemaName.toLowerCase()\n );\n if (schemaEntities.length === 0) {\n return { EntityMapsCreated: 0, FieldMapsCreated: 0, Errors: [`No entities found in schema \"${schemaName}\"`] };\n }\n\n // Load existing entity maps to avoid duplicates\n const existingMaps = await this.LoadEntityMaps(companyIntegrationID);\n const existingEntityIDs = new Set(existingMaps.map(m => m.ID.toLowerCase()));\n\n // Build a set of entity IDs that already have maps (by EntityID)\n const mappedEntityIDs = new Set<string>();\n for (const em of existingMaps) {\n mappedEntityIDs.add((em as unknown as { EntityID: string }).EntityID?.toLowerCase() ?? '');\n }\n // Also load full map data to check EntityID\n const engine = IntegrationEngineBase.Instance;\n await engine.Config(false);\n const allMaps = engine.GetEntityMapsForCompanyIntegration(companyIntegrationID);\n for (const em of allMaps) {\n mappedEntityIDs.add(em.EntityID.toLowerCase());\n }\n\n let entityMapsCreated = 0;\n let fieldMapsCreated = 0;\n\n for (const entity of schemaEntities) {\n // Skip if already mapped\n if (mappedEntityIDs.has(entity.ID.toLowerCase())) continue;\n\n // Create entity map\n const entityMap = await this.CreateEntityMap({\n CompanyIntegrationID: companyIntegrationID,\n ExternalObjectName: entity.BaseTable,\n EntityID: entity.ID,\n SyncDirection: direction\n });\n\n if (!entityMap) {\n errors.push(`Failed to create entity map for ${entity.Name}`);\n continue;\n }\n entityMapsCreated++;\n\n // Create 1:1 field maps for all non-system fields\n const fields = entity.Fields.filter(\n f => !f.Name.startsWith('__mj')\n );\n\n for (const field of fields) {\n const isKey = field.Name.toLowerCase() === 'uuid' || field.IsPrimaryKey;\n const fm = await this.CreateFieldMap({\n EntityMapID: entityMap.ID,\n SourceFieldName: field.Name,\n DestinationFieldName: field.Name,\n IsKeyField: isKey,\n IsRequired: isKey,\n Direction: direction === 'Bidirectional' ? 'Both' : 'SourceToDest'\n });\n if (fm) {\n fieldMapsCreated++;\n } else {\n errors.push(`Failed to create field map for ${entity.Name}.${field.Name}`);\n }\n }\n }\n\n return { EntityMapsCreated: entityMapsCreated, FieldMapsCreated: fieldMapsCreated, Errors: errors };\n }\n\n /** Load available schemas (for auto-map schema picker) */\n LoadSchemas(): string[] {\n const md = this.Provider;\n const schemas = new Set<string>();\n for (const entity of md.Entities) {\n if (entity.SchemaName) schemas.add(entity.SchemaName);\n }\n return Array.from(schemas).sort();\n }\n\n /** Load entity map count per company integration (used by Overview cards) */\n async LoadEntityMapCounts(_provider?: IRunViewProvider | null): Promise<Map<string, number>> {\n await IntegrationEngineBase.Instance.Config(false);\n const counts = new Map<string, number>();\n for (const em of IntegrationEngineBase.Instance.EntityMaps) {\n if (em.SyncEnabled) {\n const key = em.CompanyIntegrationID.toLowerCase();\n counts.set(key, (counts.get(key) ?? 0) + 1);\n }\n }\n return counts;\n }\n\n private async lookupActionID(actionName: string): Promise<string | null> {\n const rv = RunView.FromMetadataProvider(this.Provider);\n const result = await rv.RunView<{ ID: string }>({\n EntityName: 'MJ: Actions',\n ExtraFilter: `Name='${actionName}'`,\n Fields: ['ID'],\n MaxRows: 1,\n SkipTotalRowCount: true,\n ResultType: 'simple'\n });\n return result.Results.length > 0 ? result.Results[0].ID : null;\n }\n\n private getIntegrationClient(): GraphQLIntegrationClient {\n const provider = this.Provider as unknown as GraphQLDataProvider;\n return new GraphQLIntegrationClient(provider);\n }\n\n private createRunView(provider?: IRunViewProvider | null): RunView {\n return new RunView((provider ?? this.Provider) as IRunViewProvider);\n }\n\n private buildSummary(\n integration: MJCompanyIntegrationEntity,\n allRuns: IntegrationRunRow[],\n sourceTypes: MJIntegrationSourceTypeEntity[],\n integrationDefs: MJIntegrationEntity[]\n ): IntegrationSummary {\n const integrationRuns = allRuns.filter(r => UUIDsEqual(r.CompanyIntegrationID, integration.ID));\n const latestRun = integrationRuns.length > 0 ? integrationRuns[0] : null;\n const recentRuns = integrationRuns.slice(0, 5);\n const statusColor = this.computeStatusColor(latestRun, integration.IsActive);\n const relativeTime = this.computeRelativeTime(latestRun?.StartedAt ?? null);\n const totalRecordsSyncedToday = this.computeRecordsSyncedToday(integrationRuns);\n const totalErrors = integrationRuns.filter(r => r.Status === 'Failed').length;\n const durationMs = this.computeDuration(latestRun);\n const sourceType = this.resolveSourceType(integration, sourceTypes);\n const integrationName = integration.Integration ?? '';\n const def = integrationDefs.find(d => d.Name === integrationName);\n const icon = (def?.Get('Icon') as string | null) ?? null;\n\n return {\n Integration: integration,\n SourceType: sourceType,\n Icon: icon,\n LatestRun: latestRun,\n RecentRuns: recentRuns,\n StatusColor: statusColor,\n RelativeTime: relativeTime,\n TotalRecordsSyncedToday: totalRecordsSyncedToday,\n TotalErrors: totalErrors,\n DurationMs: durationMs\n };\n }\n\n private resolveSourceType(\n integration: MJCompanyIntegrationEntity,\n sourceTypes: MJIntegrationSourceTypeEntity[]\n ): MJIntegrationSourceTypeEntity | null {\n if (!integration.SourceTypeID) return null;\n return sourceTypes.find(st => UUIDsEqual(st.ID, integration.SourceTypeID)) ?? null;\n }\n\n private buildActivityFeedItem(run: IntegrationRunRow): ActivityFeedItem {\n return {\n RunID: run.ID,\n IntegrationName: run.Integration,\n Status: run.Status,\n StatusColor: this.runStatusColor(run),\n StartedAt: run.StartedAt,\n RelativeTime: this.computeRelativeTime(run.StartedAt),\n TotalRecords: run.TotalRecords,\n RunByUser: run.RunByUser\n };\n }\n\n private runStatusColor(run: IntegrationRunRow): 'amber' | 'green' | 'red' | 'gray' {\n if (run.Status === 'Failed') return 'red';\n if (run.Status === 'Success') return 'green';\n // A cancelled run is neither healthy nor broken — someone stopped it on purpose. Red would\n // read as a defect to fix; amber would read as work still in flight. Neutral is the truth.\n if (run.Status === 'Cancelled') return 'gray';\n // 'Queued' / 'In Progress' / 'Pending' — work outstanding.\n return 'amber';\n }\n\n private computeRecordsSyncedToday(runs: IntegrationRunRow[]): number {\n const todayStart = new Date();\n todayStart.setHours(0, 0, 0, 0);\n return runs\n .filter(r => r.StartedAt && new Date(r.StartedAt) >= todayStart)\n .reduce((acc, r) => acc + r.TotalRecords, 0);\n }\n\n private computeDuration(run: IntegrationRunRow | null): number | null {\n if (!run?.StartedAt || !run?.EndedAt) return null;\n return new Date(run.EndedAt).getTime() - new Date(run.StartedAt).getTime();\n }\n\n private aggregateDailyCounts(runs: IntegrationRunRow[], days: number): DailyRecordCount[] {\n const result: DailyRecordCount[] = [];\n const today = new Date();\n\n for (let i = days - 1; i >= 0; i--) {\n const date = new Date(today);\n date.setDate(date.getDate() - i);\n const dateStr = date.toISOString().split('T')[0];\n const label = date.toLocaleDateString(undefined, { weekday: 'short' });\n\n const dayRecords = runs\n .filter(r => DateCellDayKey(r.StartedAt) === dateStr)\n .reduce((acc, r) => acc + r.TotalRecords, 0);\n\n result.push({ Date: dateStr, Label: label, Records: dayRecords });\n }\n return result;\n }\n\n private computeStatusColor(\n latestRun: IntegrationRunRow | null,\n isActive: boolean | null\n ): 'green' | 'amber' | 'red' | 'gray' {\n if (!isActive) return 'gray';\n if (!latestRun) return 'gray';\n if (latestRun.Status === 'Failed') return 'red';\n // 'Queued' belongs with the other work-outstanding states: a run waiting for a worker is\n // pending, not unknown. It was missing here only because the hand-copied union predated it.\n if (latestRun.Status === 'In Progress' || latestRun.Status === 'Pending' || latestRun.Status === 'Queued') return 'amber';\n if (latestRun.Status === 'Success') {\n return this.isStale(latestRun.StartedAt) ? 'amber' : 'green';\n }\n // 'Cancelled' lands here — deliberately neutral, same reasoning as runStatusColor.\n return 'gray';\n }\n\n private isStale(startedAt: Date | string | null): boolean {\n if (!startedAt) return true;\n const runDate = new Date(startedAt);\n const hoursAgo = (Date.now() - runDate.getTime()) / (1000 * 60 * 60);\n return hoursAgo > 24;\n }\n\n private computeRelativeTime(dateStr: Date | string | null): string {\n if (!dateStr) return 'Never run';\n const date = new Date(dateStr);\n const diffMs = Date.now() - date.getTime();\n const diffMinutes = Math.floor(diffMs / (1000 * 60));\n\n if (diffMinutes < 1) return 'Just now';\n if (diffMinutes < 60) return `${diffMinutes}m ago`;\n const diffHours = Math.floor(diffMinutes / 60);\n if (diffHours < 24) return `${diffHours}h ago`;\n const diffDays = Math.floor(diffHours / 24);\n if (diffDays < 30) return `${diffDays}d ago`;\n return date.toLocaleDateString();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"cluster-visualization-resource.component.d.ts","sourceRoot":"","sources":["../../../../src/KnowledgeHub/components/clusters/cluster-visualization-resource.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cluster-visualization-resource.component.d.ts","sourceRoot":"","sources":["../../../../src/KnowledgeHub/components/clusters/cluster-visualization-resource.component.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ import { Component, ChangeDetectorRef, inject, ViewChild, Input, Output, EventEm
19
19
  import { Subject } from 'rxjs';
20
20
  import { CompositeKey, Metadata } from '@memberjunction/core';
21
21
  import { UserInfoEngine, KnowledgeHubMetadataEngine } from '@memberjunction/core-entities';
22
- import { RegisterClass } from '@memberjunction/global';
22
+ import { RegisterClass, UUIDMap } from '@memberjunction/global';
23
23
  import { BaseResourceComponent, NavigationService, ActivityService } from '@memberjunction/ng-shared';
24
24
  import { GraphQLAIClient } from '@memberjunction/graphql-dataprovider';
25
25
  import { AIEngineBase } from '@memberjunction/ai-engine-base';
@@ -277,6 +277,9 @@ let ClusterVisualizationResourceComponent = class ClusterVisualizationResourceCo
277
277
  await this.loadEntityOptions();
278
278
  this.loadSavedVisualizations();
279
279
  this.restoreLastSession();
280
+ if (!this.Result && !this.ActiveSavedId && this.SavedVisualizations.length > 0) {
281
+ this.OnSelectSaved(this.SavedVisualizations[0]);
282
+ }
280
283
  // When embedded in the Visualize host, the host owns agent context +
281
284
  // the resource load lifecycle; skip them here to avoid double-reporting.
282
285
  if (!this.Embedded) {
@@ -741,7 +744,7 @@ let ClusterVisualizationResourceComponent = class ClusterVisualizationResourceCo
741
744
  return [];
742
745
  }
743
746
  const isMulti = docIDs.length > 1;
744
- const docEntityMap = new Map(this.AllEntityDocOptions.map(d => [d.ID, d.EntityName ?? '']));
747
+ const docEntityMap = new UUIDMap(this.AllEntityDocOptions.map(d => [d.ID, d.EntityName ?? '']));
745
748
  const provider = this.ProviderToUse;
746
749
  const aiClient = new GraphQLAIClient(provider);
747
750
  const vectors = [];
@@ -771,7 +774,12 @@ let ClusterVisualizationResourceComponent = class ClusterVisualizationResourceCo
771
774
  const metadata = this.parseVectorMetadata(item.Metadata);
772
775
  // Ensure each point knows its source entity for color-by-entity.
773
776
  if (isMulti && !metadata['EntityName']) {
774
- metadata['EntityName'] = docEntityMap.get(docID) ?? metadata['Entity'] ?? '';
777
+ const templateID = metadata['TemplateID'];
778
+ metadata['EntityName'] =
779
+ docEntityMap.Get(docID) ??
780
+ (templateID ? docEntityMap.Get(templateID) : undefined) ??
781
+ metadata['Entity'] ??
782
+ '';
775
783
  }
776
784
  const label = this.buildLabel(metadata);
777
785
  vectors.push({