@memberjunction/ng-dashboards 5.30.1 → 5.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  2. package/dist/AI/components/agents/agent-configuration.component.js +4 -4
  3. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  4. package/dist/AI/components/agents/agent-editor.component.d.ts +2 -1
  5. package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
  6. package/dist/AI/components/agents/agent-editor.component.js +8 -6
  7. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  8. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +2 -1
  9. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
  10. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +6 -5
  11. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  12. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +2 -1
  13. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  14. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +6 -5
  15. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  16. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +2 -1
  17. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
  18. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +6 -5
  19. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
  20. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts +2 -1
  21. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  22. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +7 -4
  23. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  24. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +3 -2
  25. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  26. package/dist/AI/components/analytics/model-performance/model-performance.component.js +10 -6
  27. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  28. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts +2 -1
  29. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  30. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +6 -5
  31. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  32. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts +2 -1
  33. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  34. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +6 -5
  35. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  36. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  37. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +55 -52
  38. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  39. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +15 -15
  40. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  41. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  42. package/dist/AI/components/execution-monitoring.component.js +4 -3
  43. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  44. package/dist/AI/components/models/model-management.component.js +2 -2
  45. package/dist/AI/components/models/model-management.component.js.map +1 -1
  46. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +2 -1
  47. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  48. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +10 -8
  49. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  51. package/dist/AI/components/prompts/prompt-management.component.js +2 -2
  52. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  53. package/dist/AI/components/prompts/prompt-version-control.component.d.ts +2 -1
  54. package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
  55. package/dist/AI/components/prompts/prompt-version-control.component.js +13 -10
  56. package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
  57. package/dist/AI/components/requests/agent-requests-resource.component.js +1 -1
  58. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  59. package/dist/AI/components/tags/tags-resource.component.d.ts +1181 -0
  60. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -0
  61. package/dist/AI/components/tags/tags-resource.component.js +7487 -0
  62. package/dist/AI/components/tags/tags-resource.component.js.map +1 -0
  63. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/vectors/vector-management-resource.component.js +25 -21
  65. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  66. package/dist/AI/index.d.ts +1 -0
  67. package/dist/AI/index.d.ts.map +1 -1
  68. package/dist/AI/index.js +5 -0
  69. package/dist/AI/index.js.map +1 -1
  70. package/dist/AI/services/ai-instrumentation.service.d.ts +5 -0
  71. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  72. package/dist/AI/services/ai-instrumentation.service.js +12 -4
  73. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  74. package/dist/APIKeys/api-applications-panel.component.d.ts +3 -2
  75. package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
  76. package/dist/APIKeys/api-applications-panel.component.js +5 -4
  77. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  78. package/dist/APIKeys/api-key-create-dialog.component.d.ts +2 -1
  79. package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
  80. package/dist/APIKeys/api-key-create-dialog.component.js +5 -5
  81. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  82. package/dist/APIKeys/api-key-edit-panel.component.d.ts +3 -2
  83. package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
  84. package/dist/APIKeys/api-key-edit-panel.component.js +11 -10
  85. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  86. package/dist/APIKeys/api-key-list.component.d.ts +2 -1
  87. package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
  88. package/dist/APIKeys/api-key-list.component.js +6 -5
  89. package/dist/APIKeys/api-key-list.component.js.map +1 -1
  90. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  91. package/dist/APIKeys/api-keys-resource.component.js +4 -4
  92. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  93. package/dist/APIKeys/api-scopes-panel.component.d.ts +3 -2
  94. package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
  95. package/dist/APIKeys/api-scopes-panel.component.js +8 -6
  96. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  97. package/dist/APIKeys/api-usage-panel.component.d.ts +3 -2
  98. package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
  99. package/dist/APIKeys/api-usage-panel.component.js +10 -8
  100. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  101. package/dist/Actions/components/actions-list-view.component.d.ts +2 -1
  102. package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
  103. package/dist/Actions/components/actions-list-view.component.js +6 -5
  104. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  105. package/dist/Actions/components/actions-overview.component.js +2 -2
  106. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  107. package/dist/Actions/components/categories-list-view.component.d.ts +2 -1
  108. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  109. package/dist/Actions/components/categories-list-view.component.js +6 -5
  110. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  111. package/dist/Actions/components/execution-monitoring.component.js +1 -1
  112. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  113. package/dist/Actions/components/explorer/action-card.component.d.ts +2 -1
  114. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  115. package/dist/Actions/components/explorer/action-card.component.js +6 -4
  116. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  117. package/dist/Actions/components/explorer/action-explorer.component.js +1 -1
  118. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  119. package/dist/Actions/components/explorer/new-action-panel.component.d.ts +2 -1
  120. package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
  121. package/dist/Actions/components/explorer/new-action-panel.component.js +7 -5
  122. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  123. package/dist/Actions/components/explorer/new-category-panel.component.d.ts +2 -1
  124. package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
  125. package/dist/Actions/components/explorer/new-category-panel.component.js +7 -5
  126. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  127. package/dist/ApplicationRoles/application-roles-resource.component.js +4 -4
  128. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  129. package/dist/Communication/communication-logs-resource.component.js +1 -1
  130. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  131. package/dist/Communication/communication-monitor-resource.component.js +1 -1
  132. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  133. package/dist/Communication/communication-providers-resource.component.js +3 -3
  134. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  135. package/dist/Communication/communication-runs-resource.component.js +1 -1
  136. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  137. package/dist/Communication/communication-templates-resource.component.js +3 -3
  138. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  139. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +1 -1
  140. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  141. package/dist/ComponentStudio/component-studio-dashboard.component.js +5 -4
  142. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  143. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +2 -1
  144. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
  145. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +6 -4
  146. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
  147. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +11 -2
  148. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  149. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +61 -27
  150. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  151. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +4 -2
  152. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  153. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +19 -11
  154. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  155. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts +4 -2
  156. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -1
  157. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +11 -3
  158. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  159. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts +10 -1
  160. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
  161. package/dist/ComponentStudio/components/workspace/component-preview.component.js +18 -9
  162. package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
  163. package/dist/ComponentStudio/services/component-studio-state.service.d.ts +11 -1
  164. package/dist/ComponentStudio/services/component-studio-state.service.d.ts.map +1 -1
  165. package/dist/ComponentStudio/services/component-studio-state.service.js +23 -3
  166. package/dist/ComponentStudio/services/component-studio-state.service.js.map +1 -1
  167. package/dist/ComponentStudio/services/component-version.service.d.ts +6 -1
  168. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
  169. package/dist/ComponentStudio/services/component-version.service.js +16 -6
  170. package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
  171. package/dist/Credentials/components/credentials-audit-resource.component.js +1 -1
  172. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  173. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  174. package/dist/Credentials/components/credentials-categories-resource.component.js +3 -3
  175. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  176. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  177. package/dist/Credentials/components/credentials-list-resource.component.js +3 -3
  178. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  179. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
  180. package/dist/Credentials/components/credentials-overview-resource.component.js +3 -3
  181. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  182. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  183. package/dist/Credentials/components/credentials-types-resource.component.js +3 -3
  184. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  185. package/dist/Credentials/credentials-dashboard.component.js +1 -1
  186. package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
  187. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +13 -13
  188. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  189. package/dist/DashboardBrowser/dashboard-share-adapter.d.ts +4 -0
  190. package/dist/DashboardBrowser/dashboard-share-adapter.d.ts.map +1 -1
  191. package/dist/DashboardBrowser/dashboard-share-adapter.js +5 -2
  192. package/dist/DashboardBrowser/dashboard-share-adapter.js.map +1 -1
  193. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts +3 -1
  194. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
  195. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -4
  196. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  197. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +3 -2
  198. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
  199. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +7 -6
  200. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  201. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +3 -2
  202. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
  203. package/dist/DataExplorer/components/view-selector/view-selector.component.js +6 -5
  204. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
  205. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  206. package/dist/DataExplorer/data-explorer-dashboard.component.js +10 -9
  207. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  208. package/dist/DataExplorer/services/explorer-state.service.d.ts +6 -1
  209. package/dist/DataExplorer/services/explorer-state.service.d.ts.map +1 -1
  210. package/dist/DataExplorer/services/explorer-state.service.js +15 -5
  211. package/dist/DataExplorer/services/explorer-state.service.js.map +1 -1
  212. package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.d.ts +64 -0
  213. package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.d.ts.map +1 -0
  214. package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.js +400 -0
  215. package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.js.map +1 -0
  216. package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.d.ts +42 -0
  217. package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.d.ts.map +1 -0
  218. package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.js +232 -0
  219. package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.js.map +1 -0
  220. package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.d.ts +14 -0
  221. package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.d.ts.map +1 -0
  222. package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.js +38 -0
  223. package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.js.map +1 -0
  224. package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.d.ts +24 -0
  225. package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.d.ts.map +1 -0
  226. package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.js +77 -0
  227. package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.js.map +1 -0
  228. package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.d.ts +88 -0
  229. package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.d.ts.map +1 -0
  230. package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.js +404 -0
  231. package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.js.map +1 -0
  232. package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.d.ts +12 -0
  233. package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.d.ts.map +1 -0
  234. package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.js +116 -0
  235. package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.js.map +1 -0
  236. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +55 -0
  237. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -0
  238. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +204 -0
  239. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -0
  240. package/dist/DatabaseDesigner/components/entity-list.component.d.ts +61 -0
  241. package/dist/DatabaseDesigner/components/entity-list.component.d.ts.map +1 -0
  242. package/dist/DatabaseDesigner/components/entity-list.component.js +485 -0
  243. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -0
  244. package/dist/DatabaseDesigner/components/modify/database-modify.component.d.ts +52 -0
  245. package/dist/DatabaseDesigner/components/modify/database-modify.component.d.ts.map +1 -0
  246. package/dist/DatabaseDesigner/components/modify/database-modify.component.js +320 -0
  247. package/dist/DatabaseDesigner/components/modify/database-modify.component.js.map +1 -0
  248. package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.d.ts +79 -0
  249. package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.d.ts.map +1 -0
  250. package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.js +378 -0
  251. package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.js.map +1 -0
  252. package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.d.ts +85 -0
  253. package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.d.ts.map +1 -0
  254. package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.js +429 -0
  255. package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.js.map +1 -0
  256. package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.d.ts +58 -0
  257. package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.d.ts.map +1 -0
  258. package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.js +333 -0
  259. package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.js.map +1 -0
  260. package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.d.ts +36 -0
  261. package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.d.ts.map +1 -0
  262. package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.js +345 -0
  263. package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.js.map +1 -0
  264. package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.d.ts +13 -0
  265. package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.d.ts.map +1 -0
  266. package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.js +81 -0
  267. package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.js.map +1 -0
  268. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +30 -0
  269. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -0
  270. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +131 -0
  271. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -0
  272. package/dist/DatabaseDesigner/database-designer-erd.d.ts +19 -0
  273. package/dist/DatabaseDesigner/database-designer-erd.d.ts.map +1 -0
  274. package/dist/DatabaseDesigner/database-designer-erd.js +84 -0
  275. package/dist/DatabaseDesigner/database-designer-erd.js.map +1 -0
  276. package/dist/DatabaseDesigner/database-designer.types.d.ts +167 -0
  277. package/dist/DatabaseDesigner/database-designer.types.d.ts.map +1 -0
  278. package/dist/DatabaseDesigner/database-designer.types.js +26 -0
  279. package/dist/DatabaseDesigner/database-designer.types.js.map +1 -0
  280. package/dist/DatabaseDesigner/services/database-designer.engine.d.ts +94 -0
  281. package/dist/DatabaseDesigner/services/database-designer.engine.d.ts.map +1 -0
  282. package/dist/DatabaseDesigner/services/database-designer.engine.js +392 -0
  283. package/dist/DatabaseDesigner/services/database-designer.engine.js.map +1 -0
  284. package/dist/DatabaseDesigner/services/database-designer.service.d.ts +78 -0
  285. package/dist/DatabaseDesigner/services/database-designer.service.d.ts.map +1 -0
  286. package/dist/DatabaseDesigner/services/database-designer.service.js +273 -0
  287. package/dist/DatabaseDesigner/services/database-designer.service.js.map +1 -0
  288. package/dist/DatabaseDesigner/services/entity-wizard-state.service.d.ts +79 -0
  289. package/dist/DatabaseDesigner/services/entity-wizard-state.service.d.ts.map +1 -0
  290. package/dist/DatabaseDesigner/services/entity-wizard-state.service.js +204 -0
  291. package/dist/DatabaseDesigner/services/entity-wizard-state.service.js.map +1 -0
  292. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  293. package/dist/EntityAdmin/entity-admin-dashboard.component.js +2 -2
  294. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  295. package/dist/Home/action-pin-config-dialog.component.d.ts +2 -1
  296. package/dist/Home/action-pin-config-dialog.component.d.ts.map +1 -1
  297. package/dist/Home/action-pin-config-dialog.component.js +6 -4
  298. package/dist/Home/action-pin-config-dialog.component.js.map +1 -1
  299. package/dist/Home/action-pin-runner-dialog.component.d.ts +2 -1
  300. package/dist/Home/action-pin-runner-dialog.component.d.ts.map +1 -1
  301. package/dist/Home/action-pin-runner-dialog.component.js +5 -4
  302. package/dist/Home/action-pin-runner-dialog.component.js.map +1 -1
  303. package/dist/Home/home-application.d.ts.map +1 -1
  304. package/dist/Home/home-application.js +10 -12
  305. package/dist/Home/home-application.js.map +1 -1
  306. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  307. package/dist/Home/home-dashboard.component.js +3 -3
  308. package/dist/Home/home-dashboard.component.js.map +1 -1
  309. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  310. package/dist/Integration/components/activity/activity.component.js +1 -0
  311. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  312. package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
  313. package/dist/Integration/components/connections/connections.component.js +11 -10
  314. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  315. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
  316. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +2 -2
  317. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  318. package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
  319. package/dist/Integration/components/overview/overview.component.js +1 -0
  320. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  321. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  322. package/dist/Integration/components/pipelines/pipelines.component.js +1 -0
  323. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  324. package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
  325. package/dist/Integration/components/schedules/schedules.component.js +5 -4
  326. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  327. package/dist/Integration/services/integration-data.service.d.ts +5 -1
  328. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  329. package/dist/Integration/services/integration-data.service.js +27 -19
  330. package/dist/Integration/services/integration-data.service.js.map +1 -1
  331. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +6 -6
  332. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  333. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
  334. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +8 -6
  335. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  336. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +6 -6
  337. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  338. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +3 -3
  339. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  340. package/dist/Lists/components/lists-browse-resource.component.js +6 -6
  341. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  342. package/dist/Lists/components/lists-categories-resource.component.js +4 -4
  343. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  344. package/dist/Lists/components/lists-my-lists-resource.component.js +6 -6
  345. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  346. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  347. package/dist/Lists/components/lists-operations-resource.component.js +11 -10
  348. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  349. package/dist/Lists/services/list-set-operations.service.d.ts +5 -0
  350. package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
  351. package/dist/Lists/services/list-set-operations.service.js +11 -3
  352. package/dist/Lists/services/list-set-operations.service.js.map +1 -1
  353. package/dist/MCP/components/mcp-connection-dialog.component.d.ts +2 -1
  354. package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
  355. package/dist/MCP/components/mcp-connection-dialog.component.js +8 -6
  356. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  357. package/dist/MCP/components/mcp-server-dialog.component.d.ts +2 -1
  358. package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -1
  359. package/dist/MCP/components/mcp-server-dialog.component.js +7 -5
  360. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  361. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  362. package/dist/MCP/mcp-dashboard.component.js +12 -12
  363. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  364. package/dist/Permissions/permissions-shared.d.ts +3 -3
  365. package/dist/Permissions/permissions-shared.d.ts.map +1 -1
  366. package/dist/Permissions/permissions-shared.js +5 -5
  367. package/dist/Permissions/permissions-shared.js.map +1 -1
  368. package/dist/Permissions/resource-access-resource.component.js +1 -1
  369. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  370. package/dist/Permissions/user-access-resource.component.js +1 -2
  371. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  372. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  373. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  374. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  375. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  376. package/dist/Scheduling/scheduling-dashboard.component.js +1 -0
  377. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  378. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +5 -0
  379. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
  380. package/dist/Scheduling/services/scheduling-instrumentation.service.js +21 -13
  381. package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
  382. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  383. package/dist/SystemDiagnostics/system-diagnostics.component.js +2 -2
  384. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  385. package/dist/Testing/components/testing-explorer.component.d.ts +2 -1
  386. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  387. package/dist/Testing/components/testing-explorer.component.js +9 -7
  388. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  389. package/dist/Testing/services/testing-instrumentation.service.d.ts +6 -1
  390. package/dist/Testing/services/testing-instrumentation.service.d.ts.map +1 -1
  391. package/dist/Testing/services/testing-instrumentation.service.js +21 -11
  392. package/dist/Testing/services/testing-instrumentation.service.js.map +1 -1
  393. package/dist/Testing/testing-dashboard.component.d.ts +3 -1
  394. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  395. package/dist/Testing/testing-dashboard.component.js +15 -11
  396. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  397. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
  398. package/dist/VersionHistory/components/diff-resource.component.js +5 -5
  399. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  400. package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -1
  401. package/dist/VersionHistory/components/graph-resource.component.js +1 -2
  402. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  403. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  404. package/dist/VersionHistory/components/labels-resource.component.js +3 -3
  405. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  406. package/dist/VersionHistory/components/restore-resource.component.js +1 -1
  407. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  408. package/dist/ai-dashboards.module.d.ts +35 -34
  409. package/dist/ai-dashboards.module.d.ts.map +1 -1
  410. package/dist/ai-dashboards.module.js +6 -0
  411. package/dist/ai-dashboards.module.js.map +1 -1
  412. package/dist/module.d.ts +13 -12
  413. package/dist/module.d.ts.map +1 -1
  414. package/dist/module.js +7 -0
  415. package/dist/module.js.map +1 -1
  416. package/dist/public-api.d.ts +3 -1
  417. package/dist/public-api.d.ts.map +1 -1
  418. package/dist/public-api.js +3 -1
  419. package/dist/public-api.js.map +1 -1
  420. package/dist/shared/entity-field-display.d.ts +4 -3
  421. package/dist/shared/entity-field-display.d.ts.map +1 -1
  422. package/dist/shared/entity-field-display.js +9 -9
  423. package/dist/shared/entity-field-display.js.map +1 -1
  424. package/package.json +52 -51
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.component.d.ts","sourceRoot":"","sources":["../../../../src/Integration/components/schedules/schedules.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedules.component.d.ts","sourceRoot":"","sources":["../../../../src/Integration/components/schedules/schedules.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,MAAM,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAoD,MAAM,+BAA+B,CAAC;;AAO/G,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7C,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,qBAOa,kBAAmB,SAAQ,qBAAsB,YAAW,MAAM,EAAE,SAAS;IAMxF,SAAS,EAAE,WAAW,EAAE,CAAM;IAC9B,SAAS,UAAQ;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC,6CAA6C;IAC7C,cAAc,oCAA2C;IAEzD,yCAAyC;IACzC,eAAe,EAAE,WAAW,EAAE,CAAM;IACpC,aAAa,EAAE,MAAM,EAAE,CAAM;IAE7B,8BAA8B;IAC9B,eAAe,EAAE,cAAc,EAAE,CAQ/B;IAEF,8BAA8B;IAC9B,WAAW,EAAE,UAAU,EAAE,CAKvB;IAMF,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,YAAY,CAA+C;IAEnE,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA0C;IAMjF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAU/B,WAAW,IAAI,IAAI;IAYb,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ1D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC/B,aAAa,IAAI,IAAI;IAwBrB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAQlD,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI;IAIlF,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAKzD,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAIlE,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAK5D,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAQ5D,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAQpC,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CxD;;;;OAIG;YACW,gBAAgB;IAsB9B,8DAA8D;IAC9D,OAAO,CAAC,qBAAqB;IAU7B,wEAAwE;IACxE,OAAO,CAAC,cAAc;IAOtB;;;OAGG;YACW,kBAAkB;IAsChC,oEAAoE;YACtD,mBAAmB;IAU3B,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD,2BAA2B,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO;IAI3D,wBAAwB,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM;IAI/E,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAI1D,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAItD,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAInE,kBAAkB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM;IAQjD,kBAAkB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM;IAKjD,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAarD,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIxC,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7D,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAIxC,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAIzC,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM;IAIpD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM;IAI5D,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM;IAIlE,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM;IAI/D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI/C,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM;IAQzD,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,gBAAgB;IAQxB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,gBAAgB;yCAlkBb,kBAAkB;2CAAlB,kBAAkB;CA2kB9B;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C"}
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { ChangeDetectorRef, Component, inject } from '@angular/core';
8
8
  import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
9
- import { Metadata, RunView } from '@memberjunction/core';
9
+ import { RunView } from '@memberjunction/core';
10
10
  import { BaseResourceComponent } from '@memberjunction/ng-shared';
11
11
  import { IntegrationDataService, ResolveIntegrationIcon } from '../../services/integration-data.service';
12
12
  import * as i0 from "@angular/core";
@@ -447,6 +447,7 @@ let SchedulesComponent = class SchedulesComponent extends BaseResourceComponent
447
447
  // ---------------------------------------------------------------------------
448
448
  async ngOnInit() {
449
449
  super.ngOnInit();
450
+ this.dataService.Provider = this.ProviderToUse;
450
451
  this.buildTimelineHours();
451
452
  await this.LoadData();
452
453
  this.NotifyLoadComplete();
@@ -566,7 +567,7 @@ let SchedulesComponent = class SchedulesComponent extends BaseResourceComponent
566
567
  this.SavingID = integrationID;
567
568
  this.cdr.detectChanges();
568
569
  try {
569
- const md = new Metadata();
570
+ const md = this.ProviderToUse;
570
571
  const entity = await md.GetEntityObject('MJ: Company Integrations');
571
572
  await entity.Load(integrationID);
572
573
  // Resolve effective values (pending change wins over stored value)
@@ -646,7 +647,7 @@ let SchedulesComponent = class SchedulesComponent extends BaseResourceComponent
646
647
  * Returns the ID of the job (new or existing).
647
648
  */
648
649
  async UpsertScheduledJob(existingJobID, entity, cronExpression, integrationID) {
649
- const md = new Metadata();
650
+ const md = this.ProviderToUse;
650
651
  if (existingJobID) {
651
652
  const job = await md.GetEntityObject('MJ: Scheduled Jobs');
652
653
  const loaded = await job.Load(existingJobID);
@@ -677,7 +678,7 @@ let SchedulesComponent = class SchedulesComponent extends BaseResourceComponent
677
678
  }
678
679
  /** Sets an existing ScheduledJob to Disabled so it stops firing. */
679
680
  async DisableScheduledJob(jobID) {
680
- const md = new Metadata();
681
+ const md = this.ProviderToUse;
681
682
  const job = await md.GetEntityObject('MJ: Scheduled Jobs');
682
683
  const loaded = await job.Load(jobID);
683
684
  if (loaded) {
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.component.js","sourceRoot":"","sources":["../../../../src/Integration/components/schedules/schedules.component.ts","../../../../src/Integration/components/schedules/schedules.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectorRef, Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { ResourceData, MJCompanyIntegrationEntity, MJScheduledJobEntity } from '@memberjunction/core-entities';\nimport { IntegrationDataService, ResolveIntegrationIcon } from '../../services/integration-data.service';\n\n// ---------------------------------------------------------------------------\n// Data interfaces\n// ---------------------------------------------------------------------------\n\ninterface 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 ScheduledJobID: string | null;\n}\n\ninterface TimelineMarker {\n Hour: number;\n Minute: number;\n IsNext: boolean;\n}\n\ninterface TimelineRow {\n IntegrationID: string;\n IntegrationName: string;\n Markers: TimelineMarker[];\n IsLocked: boolean;\n}\n\ninterface IntervalPreset {\n Label: string;\n Minutes: number;\n}\n\ninterface CronPreset {\n Label: string;\n Expression: string;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\n@RegisterClass(BaseResourceComponent, 'IntegrationSchedules')\n@Component({\n standalone: false,\n selector: 'app-integration-schedules',\n templateUrl: './schedules.component.html',\n styleUrls: ['./schedules.component.css']\n})\nexport class SchedulesComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n\n // ---------------------------------------------------------------------------\n // Public state\n // ---------------------------------------------------------------------------\n\n Schedules: ScheduleRow[] = [];\n IsLoading = true;\n SavingID: string | null = null;\n RunningID: string | null = null;\n\n /** Track pending edits per integration ID */\n PendingChanges = new Map<string, Partial<ScheduleRow>>();\n\n /** Timeline data built from schedules */\n TimelineMarkers: TimelineRow[] = [];\n TimelineHours: number[] = [];\n\n /** Preset interval choices */\n IntervalPresets: IntervalPreset[] = [\n { Label: '5m', Minutes: 5 },\n { Label: '15m', Minutes: 15 },\n { Label: '30m', Minutes: 30 },\n { Label: '1h', Minutes: 60 },\n { Label: '6h', Minutes: 360 },\n { Label: '12h', Minutes: 720 },\n { Label: '24h', Minutes: 1440 }\n ];\n\n /** Preset cron expressions */\n CronPresets: CronPreset[] = [\n { Label: 'Every hour', Expression: '0 * * * *' },\n { Label: 'Every 6 hours', Expression: '0 */6 * * *' },\n { Label: 'Daily midnight', Expression: '0 0 * * *' },\n { Label: 'Weekdays 9am', Expression: '0 9 * * 1-5' }\n ];\n\n // ---------------------------------------------------------------------------\n // Private\n // ---------------------------------------------------------------------------\n\n private dataService = inject(IntegrationDataService);\n private cdr = inject(ChangeDetectorRef);\n private refreshTimer: ReturnType<typeof setInterval> | null = null;\n\n /** JobTypeID for \"Integration Sync\" scheduled job type (from MJ metadata) */\n private readonly INTEGRATION_SYNC_JOB_TYPE_ID = '4CD34733-4751-4572-B946-17DF6CB3EC90';\n\n // ---------------------------------------------------------------------------\n // Lifecycle\n // ---------------------------------------------------------------------------\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n this.buildTimelineHours();\n await this.LoadData();\n this.NotifyLoadComplete();\n // Refresh relative times every 60 seconds\n this.refreshTimer = setInterval(() => this.cdr.detectChanges(), 60_000);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n this.refreshTimer = null;\n }\n }\n\n // ---------------------------------------------------------------------------\n // Resource overrides\n // ---------------------------------------------------------------------------\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Schedules';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-calendar-check';\n }\n\n // ---------------------------------------------------------------------------\n // Data loading\n // ---------------------------------------------------------------------------\n\n async LoadData(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n try {\n const provider = this.RunViewToUse;\n const rv = new RunView(provider ?? null);\n const result = await rv.RunView<ScheduleRow>({\n EntityName: 'MJ: Company Integrations',\n ExtraFilter: '',\n OrderBy: 'Name',\n Fields: [\n 'ID', 'Name', 'Integration', 'Company', 'IsActive',\n 'ScheduleEnabled', 'ScheduleType', 'ScheduleIntervalMinutes',\n 'CronExpression', 'NextScheduledRunAt', 'LastScheduledRunAt',\n 'IsLocked', 'LockedAt', 'ScheduledJobID'\n ],\n ResultType: 'simple'\n });\n this.Schedules = result.Results;\n this.BuildTimeline();\n } catch (err) {\n console.error('[SchedulesComponent] Failed to load data:', err);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Timeline\n // ---------------------------------------------------------------------------\n\n BuildTimeline(): void {\n const now = new Date();\n const rows: TimelineRow[] = [];\n\n for (const schedule of this.Schedules) {\n if (!schedule.ScheduleEnabled) continue;\n\n const markers = this.computeMarkersForSchedule(schedule, now);\n if (markers.length > 0 || schedule.IsLocked) {\n rows.push({\n IntegrationID: schedule.ID,\n IntegrationName: schedule.Integration ?? schedule.Name,\n Markers: markers,\n IsLocked: schedule.IsLocked\n });\n }\n }\n this.TimelineMarkers = rows;\n }\n\n // ---------------------------------------------------------------------------\n // Schedule editing\n // ---------------------------------------------------------------------------\n\n ToggleScheduleEnabled(integrationID: string): void {\n const schedule = this.findSchedule(integrationID);\n if (!schedule) return;\n\n const current = this.getEffectiveValue(integrationID, 'ScheduleEnabled', schedule.ScheduleEnabled);\n this.setPendingChange(integrationID, 'ScheduleEnabled', !current);\n }\n\n SetScheduleType(integrationID: string, type: 'Manual' | 'Interval' | 'Cron'): void {\n this.setPendingChange(integrationID, 'ScheduleType', type);\n }\n\n SetInterval(integrationID: string, minutes: number): void {\n this.setPendingChange(integrationID, 'ScheduleIntervalMinutes', minutes);\n this.setPendingChange(integrationID, 'ScheduleType', 'Interval');\n }\n\n SetCronExpression(integrationID: string, expression: string): void {\n this.setPendingChange(integrationID, 'CronExpression', expression);\n }\n\n OnCronInputChange(integrationID: string, event: Event): void {\n const input = event.target as HTMLInputElement;\n this.SetCronExpression(integrationID, input.value);\n }\n\n SetCustomInterval(integrationID: string, event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = parseInt(input.value, 10);\n if (!isNaN(value) && value > 0) {\n this.SetInterval(integrationID, value);\n }\n }\n\n HasChanges(integrationID: string): boolean {\n return this.PendingChanges.has(integrationID);\n }\n\n // ---------------------------------------------------------------------------\n // Save & Run\n // ---------------------------------------------------------------------------\n\n async SaveSchedule(integrationID: string): Promise<void> {\n const changes = this.PendingChanges.get(integrationID);\n if (!changes) return;\n\n this.SavingID = integrationID;\n this.cdr.detectChanges();\n\n try {\n const md = new Metadata();\n const entity = await md.GetEntityObject<MJCompanyIntegrationEntity>('MJ: Company Integrations');\n await entity.Load(integrationID);\n\n // Resolve effective values (pending change wins over stored value)\n const scheduleEnabled = changes.ScheduleEnabled ?? (entity.Get('ScheduleEnabled') as boolean);\n const scheduleType = (changes.ScheduleType ?? entity.Get('ScheduleType') as string) as 'Manual' | 'Interval' | 'Cron';\n const cronExpression = changes.CronExpression ?? (entity.Get('CronExpression') as string | null);\n const intervalMinutes = changes.ScheduleIntervalMinutes ?? (entity.Get('ScheduleIntervalMinutes') as number | null);\n\n // Apply schedule fields to the entity\n if (changes.ScheduleEnabled !== undefined) entity.Set('ScheduleEnabled', changes.ScheduleEnabled);\n if (changes.ScheduleType !== undefined) entity.Set('ScheduleType', changes.ScheduleType);\n if (changes.ScheduleIntervalMinutes !== undefined) entity.Set('ScheduleIntervalMinutes', changes.ScheduleIntervalMinutes);\n if (changes.CronExpression !== undefined) entity.Set('CronExpression', changes.CronExpression);\n\n // Create/update/disable the linked ScheduledJob so the scheduler actually fires\n await this.SyncScheduledJob(entity, scheduleEnabled, scheduleType, cronExpression, intervalMinutes, integrationID);\n\n const saved = await entity.Save();\n if (saved) {\n this.PendingChanges.delete(integrationID);\n await this.LoadData();\n } else {\n console.error('[SchedulesComponent] Failed to save schedule:', entity.LatestResult?.CompleteMessage);\n }\n } catch (err) {\n console.error('[SchedulesComponent] Error saving schedule:', err);\n } finally {\n this.SavingID = null;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Scheduled job sync helpers\n // ---------------------------------------------------------------------------\n\n /**\n * Creates, updates, or disables the ScheduledJob record linked to this integration.\n * When enabled with a real schedule type, ensures an Active ScheduledJob exists.\n * When disabled or set to Manual, marks the ScheduledJob as Disabled (if one exists).\n */\n private async SyncScheduledJob(\n entity: MJCompanyIntegrationEntity,\n enabled: boolean,\n scheduleType: 'Manual' | 'Interval' | 'Cron',\n cronExpression: string | null,\n intervalMinutes: number | null,\n integrationID: string\n ): Promise<void> {\n const effectiveCron = this.ResolveCronExpression(scheduleType, cronExpression, intervalMinutes);\n const existingJobID = entity.Get('ScheduledJobID') as string | null;\n const shouldBeActive = enabled && scheduleType !== 'Manual' && !!effectiveCron;\n\n if (shouldBeActive) {\n const jobID = await this.UpsertScheduledJob(existingJobID, entity, effectiveCron!, integrationID);\n if (jobID !== existingJobID) {\n entity.Set('ScheduledJobID', jobID);\n }\n } else if (existingJobID) {\n await this.DisableScheduledJob(existingJobID);\n }\n }\n\n /** Converts schedule type + config into a cron expression. */\n private ResolveCronExpression(\n scheduleType: 'Manual' | 'Interval' | 'Cron',\n cronExpression: string | null,\n intervalMinutes: number | null\n ): string | null {\n if (scheduleType === 'Cron') return cronExpression;\n if (scheduleType === 'Interval' && intervalMinutes) return this.IntervalToCron(intervalMinutes);\n return null;\n }\n\n /** Converts an interval in minutes to an equivalent cron expression. */\n private IntervalToCron(minutes: number): string {\n if (minutes < 60) return `*/${minutes} * * * *`;\n const hours = minutes / 60;\n if (Number.isInteger(hours)) return hours === 1 ? '0 * * * *' : `0 */${hours} * * *`;\n return `*/${minutes} * * * *`;\n }\n\n /**\n * Creates a new ScheduledJob or updates the existing one.\n * Returns the ID of the job (new or existing).\n */\n private async UpsertScheduledJob(\n existingJobID: string | null,\n entity: MJCompanyIntegrationEntity,\n cronExpression: string,\n integrationID: string\n ): Promise<string> {\n const md = new Metadata();\n\n if (existingJobID) {\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n const loaded = await job.Load(existingJobID);\n if (loaded) {\n job.Set('CronExpression', cronExpression);\n job.Set('Status', 'Active');\n // Reset NextRunAt so the scheduler picks up the new cron immediately\n job.Set('NextRunAt', new Date());\n await job.Save();\n return existingJobID;\n }\n }\n\n // No existing job (or failed to load) — create a new one\n const integrationName = (entity.Get('Name') as string) ?? (entity.Get('Integration') as string) ?? 'Integration';\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n job.NewRecord();\n job.Set('Name', `${integrationName} Sync`);\n job.Set('JobTypeID', this.INTEGRATION_SYNC_JOB_TYPE_ID);\n job.Set('CronExpression', cronExpression);\n job.Set('Timezone', 'UTC');\n job.Set('Status', 'Active');\n job.Set('ConcurrencyMode', 'Skip');\n job.Set('Configuration', JSON.stringify({ CompanyIntegrationID: integrationID }));\n // Set NextRunAt to now so the scheduler fires it on next poll without needing a restart\n job.Set('NextRunAt', new Date());\n await job.Save();\n return job.Get('ID') as string;\n }\n\n /** Sets an existing ScheduledJob to Disabled so it stops firing. */\n private async DisableScheduledJob(jobID: string): Promise<void> {\n const md = new Metadata();\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n const loaded = await job.Load(jobID);\n if (loaded) {\n job.Set('Status', 'Disabled');\n await job.Save();\n }\n }\n\n async RunNow(integrationID: string): Promise<void> {\n if (this.RunningID) return;\n this.RunningID = integrationID;\n this.cdr.detectChanges();\n\n try {\n const result = await this.dataService.RunSync(integrationID);\n if (!result.Success) {\n console.error('[SchedulesComponent] RunSync failed:', result.Message);\n }\n await this.LoadData();\n } catch (err) {\n console.error('[SchedulesComponent] RunNow error:', err);\n } finally {\n this.RunningID = null;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Template helpers\n // ---------------------------------------------------------------------------\n\n GetEffectiveScheduleEnabled(schedule: ScheduleRow): boolean {\n return this.getEffectiveValue(schedule.ID, 'ScheduleEnabled', schedule.ScheduleEnabled) as boolean;\n }\n\n GetEffectiveScheduleType(schedule: ScheduleRow): 'Manual' | 'Interval' | 'Cron' {\n return this.getEffectiveValue(schedule.ID, 'ScheduleType', schedule.ScheduleType) as 'Manual' | 'Interval' | 'Cron';\n }\n\n GetEffectiveInterval(schedule: ScheduleRow): number | null {\n return this.getEffectiveValue(schedule.ID, 'ScheduleIntervalMinutes', schedule.ScheduleIntervalMinutes) as number | null;\n }\n\n GetEffectiveCron(schedule: ScheduleRow): string | null {\n return this.getEffectiveValue(schedule.ID, 'CronExpression', schedule.CronExpression) as string | null;\n }\n\n IsIntervalSelected(schedule: ScheduleRow, minutes: number): boolean {\n return this.GetEffectiveInterval(schedule) === minutes;\n }\n\n GetNextRunRelative(schedule: ScheduleRow): string {\n if (!schedule.NextScheduledRunAt) return 'Not scheduled';\n const next = new Date(schedule.NextScheduledRunAt);\n const diffMs = next.getTime() - Date.now();\n if (diffMs < 0) return 'Overdue';\n return 'in ' + this.formatDurationMs(diffMs);\n }\n\n GetLastRunRelative(schedule: ScheduleRow): string {\n if (!schedule.LastScheduledRunAt) return 'Never';\n return this.dataService.ComputeRelativeTime(schedule.LastScheduledRunAt);\n }\n\n GetCronDescription(expression: string | null): string {\n if (!expression) return '';\n const parts = expression.split(' ');\n if (parts.length !== 5) return expression;\n const [min, hour, , , dow] = parts;\n if (min === '0' && hour === '*') return 'Every hour';\n if (min === '0' && hour.startsWith('*/')) return `Every ${hour.slice(2)} hours`;\n if (min === '0' && hour !== '*' && dow === '*') return `Daily at ${hour}:00`;\n if (min === '0' && hour !== '*' && dow === '1-5') return `Weekdays at ${hour}:00`;\n if (dow === '1-5') return `Weekdays at ${hour}:${min.padStart(2, '0')}`;\n return expression;\n }\n\n GetIntegrationIcon(name: string): string {\n return ResolveIntegrationIcon(name);\n }\n\n ComputeTimelinePosition(hour: number, minute: number): number {\n return ((hour * 60 + minute) / (24 * 60)) * 100;\n }\n\n IsSaving(integrationID: string): boolean {\n return UUIDsEqual(this.SavingID, integrationID);\n }\n\n IsRunning(integrationID: string): boolean {\n return UUIDsEqual(this.RunningID, integrationID);\n }\n\n get ScheduledCount(): number {\n return this.Schedules.filter(s => s.ScheduleEnabled).length;\n }\n\n get LockedCount(): number {\n return this.Schedules.filter(s => s.IsLocked).length;\n }\n\n TrackByID(_index: number, item: ScheduleRow): string {\n return item.ID;\n }\n\n TrackTimelineByID(_index: number, item: TimelineRow): string {\n return item.IntegrationID;\n }\n\n TrackPresetByMinutes(_index: number, item: IntervalPreset): number {\n return item.Minutes;\n }\n\n TrackCronPresetByExpr(_index: number, item: CronPreset): string {\n return item.Expression;\n }\n\n TrackHour(_index: number, hour: number): number {\n return hour;\n }\n\n TrackMarker(index: number, _item: TimelineMarker): number {\n return index;\n }\n\n // ---------------------------------------------------------------------------\n // Private helpers\n // ---------------------------------------------------------------------------\n\n private findSchedule(integrationID: string): ScheduleRow | undefined {\n return this.Schedules.find(s => UUIDsEqual(s.ID, integrationID));\n }\n\n private getEffectiveValue<K extends keyof ScheduleRow>(\n integrationID: string,\n field: K,\n originalValue: ScheduleRow[K]\n ): ScheduleRow[K] {\n const changes = this.PendingChanges.get(integrationID);\n if (changes && field in changes) {\n return changes[field] as ScheduleRow[K];\n }\n return originalValue;\n }\n\n private setPendingChange<K extends keyof ScheduleRow>(\n integrationID: string,\n field: K,\n value: ScheduleRow[K]\n ): void {\n const existing = this.PendingChanges.get(integrationID) ?? {};\n existing[field] = value;\n this.PendingChanges.set(integrationID, existing);\n this.cdr.detectChanges();\n }\n\n private buildTimelineHours(): void {\n this.TimelineHours = Array.from({ length: 24 }, (_, i) => i);\n }\n\n private computeMarkersForSchedule(schedule: ScheduleRow, now: Date): TimelineMarker[] {\n const markers: TimelineMarker[] = [];\n const type = schedule.ScheduleType;\n\n if (type === 'Interval' && schedule.ScheduleIntervalMinutes && schedule.ScheduleIntervalMinutes > 0) {\n this.computeIntervalMarkers(schedule, now, markers);\n } else if (type === 'Cron' && schedule.CronExpression) {\n this.computeCronMarkers(schedule, now, markers);\n } else if (schedule.NextScheduledRunAt) {\n this.addNextRunMarker(schedule, now, markers);\n }\n\n return markers;\n }\n\n private computeIntervalMarkers(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n const intervalMs = schedule.ScheduleIntervalMinutes! * 60_000;\n const endTime = now.getTime() + 24 * 60 * 60_000;\n\n // Start from the next scheduled run or from now\n let cursor = schedule.NextScheduledRunAt\n ? new Date(schedule.NextScheduledRunAt).getTime()\n : now.getTime();\n\n // If cursor is in the past, advance to the next future occurrence\n while (cursor < now.getTime()) {\n cursor += intervalMs;\n }\n\n const nextRun = cursor;\n\n while (cursor < endTime) {\n const d = new Date(cursor);\n markers.push({\n Hour: d.getHours(),\n Minute: d.getMinutes(),\n IsNext: cursor === nextRun\n });\n cursor += intervalMs;\n }\n }\n\n private computeCronMarkers(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n // Simple cron approximation for timeline display\n const times = this.approximateCronTimes(schedule.CronExpression!);\n const nextRunTime = schedule.NextScheduledRunAt ? new Date(schedule.NextScheduledRunAt) : null;\n\n for (const time of times) {\n const isNext = nextRunTime != null\n && time.Hour === nextRunTime.getHours()\n && time.Minute === nextRunTime.getMinutes();\n markers.push({ Hour: time.Hour, Minute: time.Minute, IsNext: isNext });\n }\n }\n\n private addNextRunMarker(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n const next = new Date(schedule.NextScheduledRunAt!);\n const diffMs = next.getTime() - now.getTime();\n if (diffMs >= 0 && diffMs <= 24 * 60 * 60_000) {\n markers.push({ Hour: next.getHours(), Minute: next.getMinutes(), IsNext: true });\n }\n }\n\n /**\n * Approximate cron schedule times within a 24-hour window.\n * Handles common patterns only -- not a full cron parser.\n */\n private approximateCronTimes(expression: string): Array<{ Hour: number; Minute: number }> {\n const parts = expression.split(' ');\n if (parts.length !== 5) return [];\n const [minPart, hourPart] = parts;\n const minute = minPart === '*' ? 0 : parseInt(minPart, 10);\n const times: Array<{ Hour: number; Minute: number }> = [];\n\n if (hourPart === '*') {\n // Every hour\n for (let h = 0; h < 24; h++) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n } else if (hourPart.startsWith('*/')) {\n const step = parseInt(hourPart.slice(2), 10);\n if (!isNaN(step) && step > 0) {\n for (let h = 0; h < 24; h += step) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n }\n } else {\n // Specific hour(s) — comma-separated\n const hours = hourPart.split(',').map(h => parseInt(h.trim(), 10)).filter(h => !isNaN(h));\n for (const h of hours) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n }\n\n return times;\n }\n\n private formatDurationMs(ms: number): string {\n const totalMinutes = Math.floor(ms / 60_000);\n if (totalMinutes < 1) return 'less than a minute';\n if (totalMinutes < 60) return `${totalMinutes} minute${totalMinutes === 1 ? '' : 's'}`;\n const hours = Math.floor(totalMinutes / 60);\n const minutes = totalMinutes % 60;\n if (minutes === 0) return `${hours} hour${hours === 1 ? '' : 's'}`;\n return `${hours}h ${minutes}m`;\n }\n}\n\nexport function LoadSchedulesComponent(): void {\n // Tree-shaking prevention: importing this module causes\n // @RegisterClass decorators to fire, registering components.\n}\n","<!-- Loading state -->\n@if (IsLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading schedules...\"></mj-loading>\n </div>\n} @else {\n <div class=\"schedules-root\">\n\n <!-- ================================================================= -->\n <!-- HEADER -->\n <!-- ================================================================= -->\n <div class=\"section-header\">\n <div class=\"header-left\">\n <h2 class=\"section-title\">\n <i class=\"fa-solid fa-calendar-check\"></i>\n Sync Schedules\n </h2>\n <span class=\"header-meta\">{{ Schedules.length }} integration{{ Schedules.length === 1 ? '' : 's' }}</span>\n <span class=\"header-meta\">{{ ScheduledCount }} scheduled</span>\n @if (LockedCount > 0) {\n <span class=\"header-meta running-badge\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n {{ LockedCount }} running\n </span>\n }\n </div>\n <button class=\"btn btn-outline\" (click)=\"LoadData()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n Refresh\n </button>\n </div>\n\n <!-- ================================================================= -->\n <!-- TIMELINE (24-hour visual) -->\n <!-- ================================================================= -->\n @if (TimelineMarkers.length > 0) {\n <div class=\"timeline-section\">\n <div class=\"timeline-title\">\n <i class=\"fa-regular fa-clock\"></i>\n Next 24 Hours\n </div>\n <div class=\"timeline-container\">\n <!-- Hour grid labels -->\n <div class=\"timeline-grid-labels\">\n <div class=\"timeline-label-spacer\"></div>\n <div class=\"timeline-grid-track\">\n @for (hour of TimelineHours; track TrackHour($index, hour)) {\n @if (hour % 4 === 0) {\n <span class=\"timeline-hour-label\"\n [style.left.%]=\"ComputeTimelinePosition(hour, 0)\">\n {{ hour }}:00\n </span>\n }\n }\n </div>\n </div>\n\n <!-- Integration rows -->\n @for (row of TimelineMarkers; track TrackTimelineByID($index, row)) {\n <div class=\"timeline-row\">\n <div class=\"timeline-row-label\" [title]=\"row.IntegrationName\">\n {{ row.IntegrationName }}\n </div>\n <div class=\"timeline-track-container\">\n <!-- Hour grid lines -->\n @for (hour of TimelineHours; track TrackHour($index, hour)) {\n @if (hour % 4 === 0) {\n <div class=\"timeline-grid-line\"\n [style.left.%]=\"ComputeTimelinePosition(hour, 0)\">\n </div>\n }\n }\n\n <!-- Track bar -->\n <div class=\"timeline-track\"></div>\n\n <!-- Markers -->\n @for (marker of row.Markers; track TrackMarker($index, marker)) {\n <div class=\"timeline-marker\"\n [class.timeline-marker-next]=\"marker.IsNext\"\n [style.left.%]=\"ComputeTimelinePosition(marker.Hour, marker.Minute)\"\n [title]=\"marker.Hour + ':' + ('' + marker.Minute).padStart(2, '0')\">\n </div>\n }\n\n <!-- Locked indicator -->\n @if (row.IsLocked) {\n <div class=\"timeline-locked-indicator\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n </div>\n }\n\n <!-- Current time line -->\n <div class=\"timeline-now-line\"></div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- ================================================================= -->\n <!-- SCHEDULE CARDS -->\n <!-- ================================================================= -->\n <div class=\"cards-section\">\n @for (schedule of Schedules; track TrackByID($index, schedule)) {\n <div class=\"schedule-card\" [class.schedule-card-disabled]=\"!schedule.IsActive\">\n\n <!-- LEFT: Icon + Info -->\n <div class=\"card-info\">\n <div class=\"card-icon\">\n <i [class]=\"GetIntegrationIcon(schedule.Integration || schedule.Name)\"></i>\n </div>\n <div class=\"card-details\">\n <div class=\"card-name\">{{ schedule.Integration || schedule.Name }}</div>\n <div class=\"card-company\">{{ schedule.Company }}</div>\n <div class=\"card-badges\">\n @if (schedule.IsActive) {\n <span class=\"badge badge-success\">Active</span>\n } @else {\n <span class=\"badge badge-gray\">Inactive</span>\n }\n @if (schedule.IsLocked) {\n <span class=\"badge badge-running\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running\n </span>\n }\n </div>\n </div>\n </div>\n\n <!-- CENTER: Schedule Configuration -->\n <div class=\"card-config\">\n <!-- Schedule toggle -->\n <div class=\"config-row\">\n <label class=\"toggle-label\">\n Auto-sync\n <button class=\"toggle-switch\"\n [class.toggle-on]=\"GetEffectiveScheduleEnabled(schedule)\"\n (click)=\"ToggleScheduleEnabled(schedule.ID)\"\n [attr.aria-checked]=\"GetEffectiveScheduleEnabled(schedule)\"\n role=\"switch\">\n <span class=\"toggle-knob\"></span>\n </button>\n </label>\n </div>\n\n @if (GetEffectiveScheduleEnabled(schedule)) {\n <!-- Schedule type pills -->\n <div class=\"config-row\">\n <div class=\"type-pills\">\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Manual'\"\n (click)=\"SetScheduleType(schedule.ID, 'Manual')\">\n Manual\n </button>\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Interval'\"\n (click)=\"SetScheduleType(schedule.ID, 'Interval')\">\n Interval\n </button>\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Cron'\"\n (click)=\"SetScheduleType(schedule.ID, 'Cron')\">\n Cron\n </button>\n </div>\n </div>\n\n <!-- Interval config -->\n @if (GetEffectiveScheduleType(schedule) === 'Interval') {\n <div class=\"config-row\">\n <div class=\"interval-presets\">\n @for (preset of IntervalPresets; track TrackPresetByMinutes($index, preset)) {\n <button class=\"preset-btn\"\n [class.preset-btn-active]=\"IsIntervalSelected(schedule, preset.Minutes)\"\n (click)=\"SetInterval(schedule.ID, preset.Minutes)\">\n {{ preset.Label }}\n </button>\n }\n </div>\n <div class=\"custom-interval\">\n <input type=\"number\"\n class=\"interval-input\"\n placeholder=\"Custom min\"\n min=\"1\"\n [value]=\"GetEffectiveInterval(schedule)\"\n (change)=\"SetCustomInterval(schedule.ID, $event)\" />\n <span class=\"interval-unit\">min</span>\n </div>\n </div>\n }\n\n <!-- Cron config -->\n @if (GetEffectiveScheduleType(schedule) === 'Cron') {\n <div class=\"config-row\">\n <div class=\"cron-presets\">\n @for (preset of CronPresets; track TrackCronPresetByExpr($index, preset)) {\n <button class=\"preset-btn\"\n [class.preset-btn-active]=\"GetEffectiveCron(schedule) === preset.Expression\"\n (click)=\"SetCronExpression(schedule.ID, preset.Expression)\">\n {{ preset.Label }}\n </button>\n }\n </div>\n <div class=\"cron-input-row\">\n <input type=\"text\"\n class=\"cron-input\"\n placeholder=\"* * * * *\"\n [value]=\"GetEffectiveCron(schedule) ?? ''\"\n (change)=\"OnCronInputChange(schedule.ID, $event)\" />\n @if (GetEffectiveCron(schedule)) {\n <span class=\"cron-description\">\n {{ GetCronDescription(GetEffectiveCron(schedule)) }}\n </span>\n }\n </div>\n </div>\n }\n }\n </div>\n\n <!-- RIGHT: Status + Actions -->\n <div class=\"card-status\">\n <div class=\"status-items\">\n <div class=\"status-item\">\n <span class=\"status-label\">Next run</span>\n <span class=\"status-value\">{{ GetNextRunRelative(schedule) }}</span>\n </div>\n <div class=\"status-item\">\n <span class=\"status-label\">Last run</span>\n <span class=\"status-value\">{{ GetLastRunRelative(schedule) }}</span>\n </div>\n <div class=\"status-item\">\n <span class=\"status-label\">Status</span>\n @if (schedule.IsLocked) {\n <span class=\"status-value status-running\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running\n </span>\n } @else {\n <span class=\"status-value status-idle\">Idle</span>\n }\n </div>\n </div>\n\n <div class=\"card-actions\">\n @if (HasChanges(schedule.ID)) {\n <button class=\"btn btn-primary btn-save\"\n [disabled]=\"IsSaving(schedule.ID)\"\n (click)=\"SaveSchedule(schedule.ID)\">\n @if (IsSaving(schedule.ID)) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-check\"></i>\n Save\n }\n </button>\n }\n <button class=\"btn btn-outline btn-run\"\n [disabled]=\"IsRunning(schedule.ID) || schedule.IsLocked\"\n (click)=\"RunNow(schedule.ID)\">\n @if (IsRunning(schedule.ID)) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running...\n } @else {\n <i class=\"fa-solid fa-play\"></i>\n Run Now\n }\n </button>\n </div>\n </div>\n </div>\n }\n\n @if (Schedules.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-calendar-xmark\"></i>\n <p>No integrations found</p>\n </div>\n }\n </div>\n </div>\n}\n"]}
1
+ {"version":3,"file":"schedules.component.js","sourceRoot":"","sources":["../../../../src/Integration/components/schedules/schedules.component.ts","../../../../src/Integration/components/schedules/schedules.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectorRef, Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { ResourceData, MJCompanyIntegrationEntity, MJScheduledJobEntity } from '@memberjunction/core-entities';\nimport { IntegrationDataService, ResolveIntegrationIcon } from '../../services/integration-data.service';\n\n// ---------------------------------------------------------------------------\n// Data interfaces\n// ---------------------------------------------------------------------------\n\ninterface 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 ScheduledJobID: string | null;\n}\n\ninterface TimelineMarker {\n Hour: number;\n Minute: number;\n IsNext: boolean;\n}\n\ninterface TimelineRow {\n IntegrationID: string;\n IntegrationName: string;\n Markers: TimelineMarker[];\n IsLocked: boolean;\n}\n\ninterface IntervalPreset {\n Label: string;\n Minutes: number;\n}\n\ninterface CronPreset {\n Label: string;\n Expression: string;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\n@RegisterClass(BaseResourceComponent, 'IntegrationSchedules')\n@Component({\n standalone: false,\n selector: 'app-integration-schedules',\n templateUrl: './schedules.component.html',\n styleUrls: ['./schedules.component.css']\n})\nexport class SchedulesComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n\n // ---------------------------------------------------------------------------\n // Public state\n // ---------------------------------------------------------------------------\n\n Schedules: ScheduleRow[] = [];\n IsLoading = true;\n SavingID: string | null = null;\n RunningID: string | null = null;\n\n /** Track pending edits per integration ID */\n PendingChanges = new Map<string, Partial<ScheduleRow>>();\n\n /** Timeline data built from schedules */\n TimelineMarkers: TimelineRow[] = [];\n TimelineHours: number[] = [];\n\n /** Preset interval choices */\n IntervalPresets: IntervalPreset[] = [\n { Label: '5m', Minutes: 5 },\n { Label: '15m', Minutes: 15 },\n { Label: '30m', Minutes: 30 },\n { Label: '1h', Minutes: 60 },\n { Label: '6h', Minutes: 360 },\n { Label: '12h', Minutes: 720 },\n { Label: '24h', Minutes: 1440 }\n ];\n\n /** Preset cron expressions */\n CronPresets: CronPreset[] = [\n { Label: 'Every hour', Expression: '0 * * * *' },\n { Label: 'Every 6 hours', Expression: '0 */6 * * *' },\n { Label: 'Daily midnight', Expression: '0 0 * * *' },\n { Label: 'Weekdays 9am', Expression: '0 9 * * 1-5' }\n ];\n\n // ---------------------------------------------------------------------------\n // Private\n // ---------------------------------------------------------------------------\n\n private dataService = inject(IntegrationDataService);\n private cdr = inject(ChangeDetectorRef);\n private refreshTimer: ReturnType<typeof setInterval> | null = null;\n\n /** JobTypeID for \"Integration Sync\" scheduled job type (from MJ metadata) */\n private readonly INTEGRATION_SYNC_JOB_TYPE_ID = '4CD34733-4751-4572-B946-17DF6CB3EC90';\n\n // ---------------------------------------------------------------------------\n // Lifecycle\n // ---------------------------------------------------------------------------\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n this.dataService.Provider = this.ProviderToUse;\n this.buildTimelineHours();\n await this.LoadData();\n this.NotifyLoadComplete();\n // Refresh relative times every 60 seconds\n this.refreshTimer = setInterval(() => this.cdr.detectChanges(), 60_000);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n this.refreshTimer = null;\n }\n }\n\n // ---------------------------------------------------------------------------\n // Resource overrides\n // ---------------------------------------------------------------------------\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Schedules';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-calendar-check';\n }\n\n // ---------------------------------------------------------------------------\n // Data loading\n // ---------------------------------------------------------------------------\n\n async LoadData(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n try {\n const provider = this.RunViewToUse;\n const rv = new RunView(provider ?? null);\n const result = await rv.RunView<ScheduleRow>({\n EntityName: 'MJ: Company Integrations',\n ExtraFilter: '',\n OrderBy: 'Name',\n Fields: [\n 'ID', 'Name', 'Integration', 'Company', 'IsActive',\n 'ScheduleEnabled', 'ScheduleType', 'ScheduleIntervalMinutes',\n 'CronExpression', 'NextScheduledRunAt', 'LastScheduledRunAt',\n 'IsLocked', 'LockedAt', 'ScheduledJobID'\n ],\n ResultType: 'simple'\n });\n this.Schedules = result.Results;\n this.BuildTimeline();\n } catch (err) {\n console.error('[SchedulesComponent] Failed to load data:', err);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Timeline\n // ---------------------------------------------------------------------------\n\n BuildTimeline(): void {\n const now = new Date();\n const rows: TimelineRow[] = [];\n\n for (const schedule of this.Schedules) {\n if (!schedule.ScheduleEnabled) continue;\n\n const markers = this.computeMarkersForSchedule(schedule, now);\n if (markers.length > 0 || schedule.IsLocked) {\n rows.push({\n IntegrationID: schedule.ID,\n IntegrationName: schedule.Integration ?? schedule.Name,\n Markers: markers,\n IsLocked: schedule.IsLocked\n });\n }\n }\n this.TimelineMarkers = rows;\n }\n\n // ---------------------------------------------------------------------------\n // Schedule editing\n // ---------------------------------------------------------------------------\n\n ToggleScheduleEnabled(integrationID: string): void {\n const schedule = this.findSchedule(integrationID);\n if (!schedule) return;\n\n const current = this.getEffectiveValue(integrationID, 'ScheduleEnabled', schedule.ScheduleEnabled);\n this.setPendingChange(integrationID, 'ScheduleEnabled', !current);\n }\n\n SetScheduleType(integrationID: string, type: 'Manual' | 'Interval' | 'Cron'): void {\n this.setPendingChange(integrationID, 'ScheduleType', type);\n }\n\n SetInterval(integrationID: string, minutes: number): void {\n this.setPendingChange(integrationID, 'ScheduleIntervalMinutes', minutes);\n this.setPendingChange(integrationID, 'ScheduleType', 'Interval');\n }\n\n SetCronExpression(integrationID: string, expression: string): void {\n this.setPendingChange(integrationID, 'CronExpression', expression);\n }\n\n OnCronInputChange(integrationID: string, event: Event): void {\n const input = event.target as HTMLInputElement;\n this.SetCronExpression(integrationID, input.value);\n }\n\n SetCustomInterval(integrationID: string, event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = parseInt(input.value, 10);\n if (!isNaN(value) && value > 0) {\n this.SetInterval(integrationID, value);\n }\n }\n\n HasChanges(integrationID: string): boolean {\n return this.PendingChanges.has(integrationID);\n }\n\n // ---------------------------------------------------------------------------\n // Save & Run\n // ---------------------------------------------------------------------------\n\n async SaveSchedule(integrationID: string): Promise<void> {\n const changes = this.PendingChanges.get(integrationID);\n if (!changes) return;\n\n this.SavingID = integrationID;\n this.cdr.detectChanges();\n\n try {\n const md = this.ProviderToUse;\n const entity = await md.GetEntityObject<MJCompanyIntegrationEntity>('MJ: Company Integrations');\n await entity.Load(integrationID);\n\n // Resolve effective values (pending change wins over stored value)\n const scheduleEnabled = changes.ScheduleEnabled ?? (entity.Get('ScheduleEnabled') as boolean);\n const scheduleType = (changes.ScheduleType ?? entity.Get('ScheduleType') as string) as 'Manual' | 'Interval' | 'Cron';\n const cronExpression = changes.CronExpression ?? (entity.Get('CronExpression') as string | null);\n const intervalMinutes = changes.ScheduleIntervalMinutes ?? (entity.Get('ScheduleIntervalMinutes') as number | null);\n\n // Apply schedule fields to the entity\n if (changes.ScheduleEnabled !== undefined) entity.Set('ScheduleEnabled', changes.ScheduleEnabled);\n if (changes.ScheduleType !== undefined) entity.Set('ScheduleType', changes.ScheduleType);\n if (changes.ScheduleIntervalMinutes !== undefined) entity.Set('ScheduleIntervalMinutes', changes.ScheduleIntervalMinutes);\n if (changes.CronExpression !== undefined) entity.Set('CronExpression', changes.CronExpression);\n\n // Create/update/disable the linked ScheduledJob so the scheduler actually fires\n await this.SyncScheduledJob(entity, scheduleEnabled, scheduleType, cronExpression, intervalMinutes, integrationID);\n\n const saved = await entity.Save();\n if (saved) {\n this.PendingChanges.delete(integrationID);\n await this.LoadData();\n } else {\n console.error('[SchedulesComponent] Failed to save schedule:', entity.LatestResult?.CompleteMessage);\n }\n } catch (err) {\n console.error('[SchedulesComponent] Error saving schedule:', err);\n } finally {\n this.SavingID = null;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Scheduled job sync helpers\n // ---------------------------------------------------------------------------\n\n /**\n * Creates, updates, or disables the ScheduledJob record linked to this integration.\n * When enabled with a real schedule type, ensures an Active ScheduledJob exists.\n * When disabled or set to Manual, marks the ScheduledJob as Disabled (if one exists).\n */\n private async SyncScheduledJob(\n entity: MJCompanyIntegrationEntity,\n enabled: boolean,\n scheduleType: 'Manual' | 'Interval' | 'Cron',\n cronExpression: string | null,\n intervalMinutes: number | null,\n integrationID: string\n ): Promise<void> {\n const effectiveCron = this.ResolveCronExpression(scheduleType, cronExpression, intervalMinutes);\n const existingJobID = entity.Get('ScheduledJobID') as string | null;\n const shouldBeActive = enabled && scheduleType !== 'Manual' && !!effectiveCron;\n\n if (shouldBeActive) {\n const jobID = await this.UpsertScheduledJob(existingJobID, entity, effectiveCron!, integrationID);\n if (jobID !== existingJobID) {\n entity.Set('ScheduledJobID', jobID);\n }\n } else if (existingJobID) {\n await this.DisableScheduledJob(existingJobID);\n }\n }\n\n /** Converts schedule type + config into a cron expression. */\n private ResolveCronExpression(\n scheduleType: 'Manual' | 'Interval' | 'Cron',\n cronExpression: string | null,\n intervalMinutes: number | null\n ): string | null {\n if (scheduleType === 'Cron') return cronExpression;\n if (scheduleType === 'Interval' && intervalMinutes) return this.IntervalToCron(intervalMinutes);\n return null;\n }\n\n /** Converts an interval in minutes to an equivalent cron expression. */\n private IntervalToCron(minutes: number): string {\n if (minutes < 60) return `*/${minutes} * * * *`;\n const hours = minutes / 60;\n if (Number.isInteger(hours)) return hours === 1 ? '0 * * * *' : `0 */${hours} * * *`;\n return `*/${minutes} * * * *`;\n }\n\n /**\n * Creates a new ScheduledJob or updates the existing one.\n * Returns the ID of the job (new or existing).\n */\n private async UpsertScheduledJob(\n existingJobID: string | null,\n entity: MJCompanyIntegrationEntity,\n cronExpression: string,\n integrationID: string\n ): Promise<string> {\n const md = this.ProviderToUse;\n\n if (existingJobID) {\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n const loaded = await job.Load(existingJobID);\n if (loaded) {\n job.Set('CronExpression', cronExpression);\n job.Set('Status', 'Active');\n // Reset NextRunAt so the scheduler picks up the new cron immediately\n job.Set('NextRunAt', new Date());\n await job.Save();\n return existingJobID;\n }\n }\n\n // No existing job (or failed to load) — create a new one\n const integrationName = (entity.Get('Name') as string) ?? (entity.Get('Integration') as string) ?? 'Integration';\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n job.NewRecord();\n job.Set('Name', `${integrationName} Sync`);\n job.Set('JobTypeID', this.INTEGRATION_SYNC_JOB_TYPE_ID);\n job.Set('CronExpression', cronExpression);\n job.Set('Timezone', 'UTC');\n job.Set('Status', 'Active');\n job.Set('ConcurrencyMode', 'Skip');\n job.Set('Configuration', JSON.stringify({ CompanyIntegrationID: integrationID }));\n // Set NextRunAt to now so the scheduler fires it on next poll without needing a restart\n job.Set('NextRunAt', new Date());\n await job.Save();\n return job.Get('ID') as string;\n }\n\n /** Sets an existing ScheduledJob to Disabled so it stops firing. */\n private async DisableScheduledJob(jobID: string): Promise<void> {\n const md = this.ProviderToUse;\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n const loaded = await job.Load(jobID);\n if (loaded) {\n job.Set('Status', 'Disabled');\n await job.Save();\n }\n }\n\n async RunNow(integrationID: string): Promise<void> {\n if (this.RunningID) return;\n this.RunningID = integrationID;\n this.cdr.detectChanges();\n\n try {\n const result = await this.dataService.RunSync(integrationID);\n if (!result.Success) {\n console.error('[SchedulesComponent] RunSync failed:', result.Message);\n }\n await this.LoadData();\n } catch (err) {\n console.error('[SchedulesComponent] RunNow error:', err);\n } finally {\n this.RunningID = null;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Template helpers\n // ---------------------------------------------------------------------------\n\n GetEffectiveScheduleEnabled(schedule: ScheduleRow): boolean {\n return this.getEffectiveValue(schedule.ID, 'ScheduleEnabled', schedule.ScheduleEnabled) as boolean;\n }\n\n GetEffectiveScheduleType(schedule: ScheduleRow): 'Manual' | 'Interval' | 'Cron' {\n return this.getEffectiveValue(schedule.ID, 'ScheduleType', schedule.ScheduleType) as 'Manual' | 'Interval' | 'Cron';\n }\n\n GetEffectiveInterval(schedule: ScheduleRow): number | null {\n return this.getEffectiveValue(schedule.ID, 'ScheduleIntervalMinutes', schedule.ScheduleIntervalMinutes) as number | null;\n }\n\n GetEffectiveCron(schedule: ScheduleRow): string | null {\n return this.getEffectiveValue(schedule.ID, 'CronExpression', schedule.CronExpression) as string | null;\n }\n\n IsIntervalSelected(schedule: ScheduleRow, minutes: number): boolean {\n return this.GetEffectiveInterval(schedule) === minutes;\n }\n\n GetNextRunRelative(schedule: ScheduleRow): string {\n if (!schedule.NextScheduledRunAt) return 'Not scheduled';\n const next = new Date(schedule.NextScheduledRunAt);\n const diffMs = next.getTime() - Date.now();\n if (diffMs < 0) return 'Overdue';\n return 'in ' + this.formatDurationMs(diffMs);\n }\n\n GetLastRunRelative(schedule: ScheduleRow): string {\n if (!schedule.LastScheduledRunAt) return 'Never';\n return this.dataService.ComputeRelativeTime(schedule.LastScheduledRunAt);\n }\n\n GetCronDescription(expression: string | null): string {\n if (!expression) return '';\n const parts = expression.split(' ');\n if (parts.length !== 5) return expression;\n const [min, hour, , , dow] = parts;\n if (min === '0' && hour === '*') return 'Every hour';\n if (min === '0' && hour.startsWith('*/')) return `Every ${hour.slice(2)} hours`;\n if (min === '0' && hour !== '*' && dow === '*') return `Daily at ${hour}:00`;\n if (min === '0' && hour !== '*' && dow === '1-5') return `Weekdays at ${hour}:00`;\n if (dow === '1-5') return `Weekdays at ${hour}:${min.padStart(2, '0')}`;\n return expression;\n }\n\n GetIntegrationIcon(name: string): string {\n return ResolveIntegrationIcon(name);\n }\n\n ComputeTimelinePosition(hour: number, minute: number): number {\n return ((hour * 60 + minute) / (24 * 60)) * 100;\n }\n\n IsSaving(integrationID: string): boolean {\n return UUIDsEqual(this.SavingID, integrationID);\n }\n\n IsRunning(integrationID: string): boolean {\n return UUIDsEqual(this.RunningID, integrationID);\n }\n\n get ScheduledCount(): number {\n return this.Schedules.filter(s => s.ScheduleEnabled).length;\n }\n\n get LockedCount(): number {\n return this.Schedules.filter(s => s.IsLocked).length;\n }\n\n TrackByID(_index: number, item: ScheduleRow): string {\n return item.ID;\n }\n\n TrackTimelineByID(_index: number, item: TimelineRow): string {\n return item.IntegrationID;\n }\n\n TrackPresetByMinutes(_index: number, item: IntervalPreset): number {\n return item.Minutes;\n }\n\n TrackCronPresetByExpr(_index: number, item: CronPreset): string {\n return item.Expression;\n }\n\n TrackHour(_index: number, hour: number): number {\n return hour;\n }\n\n TrackMarker(index: number, _item: TimelineMarker): number {\n return index;\n }\n\n // ---------------------------------------------------------------------------\n // Private helpers\n // ---------------------------------------------------------------------------\n\n private findSchedule(integrationID: string): ScheduleRow | undefined {\n return this.Schedules.find(s => UUIDsEqual(s.ID, integrationID));\n }\n\n private getEffectiveValue<K extends keyof ScheduleRow>(\n integrationID: string,\n field: K,\n originalValue: ScheduleRow[K]\n ): ScheduleRow[K] {\n const changes = this.PendingChanges.get(integrationID);\n if (changes && field in changes) {\n return changes[field] as ScheduleRow[K];\n }\n return originalValue;\n }\n\n private setPendingChange<K extends keyof ScheduleRow>(\n integrationID: string,\n field: K,\n value: ScheduleRow[K]\n ): void {\n const existing = this.PendingChanges.get(integrationID) ?? {};\n existing[field] = value;\n this.PendingChanges.set(integrationID, existing);\n this.cdr.detectChanges();\n }\n\n private buildTimelineHours(): void {\n this.TimelineHours = Array.from({ length: 24 }, (_, i) => i);\n }\n\n private computeMarkersForSchedule(schedule: ScheduleRow, now: Date): TimelineMarker[] {\n const markers: TimelineMarker[] = [];\n const type = schedule.ScheduleType;\n\n if (type === 'Interval' && schedule.ScheduleIntervalMinutes && schedule.ScheduleIntervalMinutes > 0) {\n this.computeIntervalMarkers(schedule, now, markers);\n } else if (type === 'Cron' && schedule.CronExpression) {\n this.computeCronMarkers(schedule, now, markers);\n } else if (schedule.NextScheduledRunAt) {\n this.addNextRunMarker(schedule, now, markers);\n }\n\n return markers;\n }\n\n private computeIntervalMarkers(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n const intervalMs = schedule.ScheduleIntervalMinutes! * 60_000;\n const endTime = now.getTime() + 24 * 60 * 60_000;\n\n // Start from the next scheduled run or from now\n let cursor = schedule.NextScheduledRunAt\n ? new Date(schedule.NextScheduledRunAt).getTime()\n : now.getTime();\n\n // If cursor is in the past, advance to the next future occurrence\n while (cursor < now.getTime()) {\n cursor += intervalMs;\n }\n\n const nextRun = cursor;\n\n while (cursor < endTime) {\n const d = new Date(cursor);\n markers.push({\n Hour: d.getHours(),\n Minute: d.getMinutes(),\n IsNext: cursor === nextRun\n });\n cursor += intervalMs;\n }\n }\n\n private computeCronMarkers(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n // Simple cron approximation for timeline display\n const times = this.approximateCronTimes(schedule.CronExpression!);\n const nextRunTime = schedule.NextScheduledRunAt ? new Date(schedule.NextScheduledRunAt) : null;\n\n for (const time of times) {\n const isNext = nextRunTime != null\n && time.Hour === nextRunTime.getHours()\n && time.Minute === nextRunTime.getMinutes();\n markers.push({ Hour: time.Hour, Minute: time.Minute, IsNext: isNext });\n }\n }\n\n private addNextRunMarker(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n const next = new Date(schedule.NextScheduledRunAt!);\n const diffMs = next.getTime() - now.getTime();\n if (diffMs >= 0 && diffMs <= 24 * 60 * 60_000) {\n markers.push({ Hour: next.getHours(), Minute: next.getMinutes(), IsNext: true });\n }\n }\n\n /**\n * Approximate cron schedule times within a 24-hour window.\n * Handles common patterns only -- not a full cron parser.\n */\n private approximateCronTimes(expression: string): Array<{ Hour: number; Minute: number }> {\n const parts = expression.split(' ');\n if (parts.length !== 5) return [];\n const [minPart, hourPart] = parts;\n const minute = minPart === '*' ? 0 : parseInt(minPart, 10);\n const times: Array<{ Hour: number; Minute: number }> = [];\n\n if (hourPart === '*') {\n // Every hour\n for (let h = 0; h < 24; h++) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n } else if (hourPart.startsWith('*/')) {\n const step = parseInt(hourPart.slice(2), 10);\n if (!isNaN(step) && step > 0) {\n for (let h = 0; h < 24; h += step) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n }\n } else {\n // Specific hour(s) — comma-separated\n const hours = hourPart.split(',').map(h => parseInt(h.trim(), 10)).filter(h => !isNaN(h));\n for (const h of hours) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n }\n\n return times;\n }\n\n private formatDurationMs(ms: number): string {\n const totalMinutes = Math.floor(ms / 60_000);\n if (totalMinutes < 1) return 'less than a minute';\n if (totalMinutes < 60) return `${totalMinutes} minute${totalMinutes === 1 ? '' : 's'}`;\n const hours = Math.floor(totalMinutes / 60);\n const minutes = totalMinutes % 60;\n if (minutes === 0) return `${hours} hour${hours === 1 ? '' : 's'}`;\n return `${hours}h ${minutes}m`;\n }\n}\n\nexport function LoadSchedulesComponent(): void {\n // Tree-shaking prevention: importing this module causes\n // @RegisterClass decorators to fire, registering components.\n}\n","<!-- Loading state -->\n@if (IsLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading schedules...\"></mj-loading>\n </div>\n} @else {\n <div class=\"schedules-root\">\n\n <!-- ================================================================= -->\n <!-- HEADER -->\n <!-- ================================================================= -->\n <div class=\"section-header\">\n <div class=\"header-left\">\n <h2 class=\"section-title\">\n <i class=\"fa-solid fa-calendar-check\"></i>\n Sync Schedules\n </h2>\n <span class=\"header-meta\">{{ Schedules.length }} integration{{ Schedules.length === 1 ? '' : 's' }}</span>\n <span class=\"header-meta\">{{ ScheduledCount }} scheduled</span>\n @if (LockedCount > 0) {\n <span class=\"header-meta running-badge\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n {{ LockedCount }} running\n </span>\n }\n </div>\n <button class=\"btn btn-outline\" (click)=\"LoadData()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n Refresh\n </button>\n </div>\n\n <!-- ================================================================= -->\n <!-- TIMELINE (24-hour visual) -->\n <!-- ================================================================= -->\n @if (TimelineMarkers.length > 0) {\n <div class=\"timeline-section\">\n <div class=\"timeline-title\">\n <i class=\"fa-regular fa-clock\"></i>\n Next 24 Hours\n </div>\n <div class=\"timeline-container\">\n <!-- Hour grid labels -->\n <div class=\"timeline-grid-labels\">\n <div class=\"timeline-label-spacer\"></div>\n <div class=\"timeline-grid-track\">\n @for (hour of TimelineHours; track TrackHour($index, hour)) {\n @if (hour % 4 === 0) {\n <span class=\"timeline-hour-label\"\n [style.left.%]=\"ComputeTimelinePosition(hour, 0)\">\n {{ hour }}:00\n </span>\n }\n }\n </div>\n </div>\n\n <!-- Integration rows -->\n @for (row of TimelineMarkers; track TrackTimelineByID($index, row)) {\n <div class=\"timeline-row\">\n <div class=\"timeline-row-label\" [title]=\"row.IntegrationName\">\n {{ row.IntegrationName }}\n </div>\n <div class=\"timeline-track-container\">\n <!-- Hour grid lines -->\n @for (hour of TimelineHours; track TrackHour($index, hour)) {\n @if (hour % 4 === 0) {\n <div class=\"timeline-grid-line\"\n [style.left.%]=\"ComputeTimelinePosition(hour, 0)\">\n </div>\n }\n }\n\n <!-- Track bar -->\n <div class=\"timeline-track\"></div>\n\n <!-- Markers -->\n @for (marker of row.Markers; track TrackMarker($index, marker)) {\n <div class=\"timeline-marker\"\n [class.timeline-marker-next]=\"marker.IsNext\"\n [style.left.%]=\"ComputeTimelinePosition(marker.Hour, marker.Minute)\"\n [title]=\"marker.Hour + ':' + ('' + marker.Minute).padStart(2, '0')\">\n </div>\n }\n\n <!-- Locked indicator -->\n @if (row.IsLocked) {\n <div class=\"timeline-locked-indicator\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n </div>\n }\n\n <!-- Current time line -->\n <div class=\"timeline-now-line\"></div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- ================================================================= -->\n <!-- SCHEDULE CARDS -->\n <!-- ================================================================= -->\n <div class=\"cards-section\">\n @for (schedule of Schedules; track TrackByID($index, schedule)) {\n <div class=\"schedule-card\" [class.schedule-card-disabled]=\"!schedule.IsActive\">\n\n <!-- LEFT: Icon + Info -->\n <div class=\"card-info\">\n <div class=\"card-icon\">\n <i [class]=\"GetIntegrationIcon(schedule.Integration || schedule.Name)\"></i>\n </div>\n <div class=\"card-details\">\n <div class=\"card-name\">{{ schedule.Integration || schedule.Name }}</div>\n <div class=\"card-company\">{{ schedule.Company }}</div>\n <div class=\"card-badges\">\n @if (schedule.IsActive) {\n <span class=\"badge badge-success\">Active</span>\n } @else {\n <span class=\"badge badge-gray\">Inactive</span>\n }\n @if (schedule.IsLocked) {\n <span class=\"badge badge-running\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running\n </span>\n }\n </div>\n </div>\n </div>\n\n <!-- CENTER: Schedule Configuration -->\n <div class=\"card-config\">\n <!-- Schedule toggle -->\n <div class=\"config-row\">\n <label class=\"toggle-label\">\n Auto-sync\n <button class=\"toggle-switch\"\n [class.toggle-on]=\"GetEffectiveScheduleEnabled(schedule)\"\n (click)=\"ToggleScheduleEnabled(schedule.ID)\"\n [attr.aria-checked]=\"GetEffectiveScheduleEnabled(schedule)\"\n role=\"switch\">\n <span class=\"toggle-knob\"></span>\n </button>\n </label>\n </div>\n\n @if (GetEffectiveScheduleEnabled(schedule)) {\n <!-- Schedule type pills -->\n <div class=\"config-row\">\n <div class=\"type-pills\">\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Manual'\"\n (click)=\"SetScheduleType(schedule.ID, 'Manual')\">\n Manual\n </button>\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Interval'\"\n (click)=\"SetScheduleType(schedule.ID, 'Interval')\">\n Interval\n </button>\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Cron'\"\n (click)=\"SetScheduleType(schedule.ID, 'Cron')\">\n Cron\n </button>\n </div>\n </div>\n\n <!-- Interval config -->\n @if (GetEffectiveScheduleType(schedule) === 'Interval') {\n <div class=\"config-row\">\n <div class=\"interval-presets\">\n @for (preset of IntervalPresets; track TrackPresetByMinutes($index, preset)) {\n <button class=\"preset-btn\"\n [class.preset-btn-active]=\"IsIntervalSelected(schedule, preset.Minutes)\"\n (click)=\"SetInterval(schedule.ID, preset.Minutes)\">\n {{ preset.Label }}\n </button>\n }\n </div>\n <div class=\"custom-interval\">\n <input type=\"number\"\n class=\"interval-input\"\n placeholder=\"Custom min\"\n min=\"1\"\n [value]=\"GetEffectiveInterval(schedule)\"\n (change)=\"SetCustomInterval(schedule.ID, $event)\" />\n <span class=\"interval-unit\">min</span>\n </div>\n </div>\n }\n\n <!-- Cron config -->\n @if (GetEffectiveScheduleType(schedule) === 'Cron') {\n <div class=\"config-row\">\n <div class=\"cron-presets\">\n @for (preset of CronPresets; track TrackCronPresetByExpr($index, preset)) {\n <button class=\"preset-btn\"\n [class.preset-btn-active]=\"GetEffectiveCron(schedule) === preset.Expression\"\n (click)=\"SetCronExpression(schedule.ID, preset.Expression)\">\n {{ preset.Label }}\n </button>\n }\n </div>\n <div class=\"cron-input-row\">\n <input type=\"text\"\n class=\"cron-input\"\n placeholder=\"* * * * *\"\n [value]=\"GetEffectiveCron(schedule) ?? ''\"\n (change)=\"OnCronInputChange(schedule.ID, $event)\" />\n @if (GetEffectiveCron(schedule)) {\n <span class=\"cron-description\">\n {{ GetCronDescription(GetEffectiveCron(schedule)) }}\n </span>\n }\n </div>\n </div>\n }\n }\n </div>\n\n <!-- RIGHT: Status + Actions -->\n <div class=\"card-status\">\n <div class=\"status-items\">\n <div class=\"status-item\">\n <span class=\"status-label\">Next run</span>\n <span class=\"status-value\">{{ GetNextRunRelative(schedule) }}</span>\n </div>\n <div class=\"status-item\">\n <span class=\"status-label\">Last run</span>\n <span class=\"status-value\">{{ GetLastRunRelative(schedule) }}</span>\n </div>\n <div class=\"status-item\">\n <span class=\"status-label\">Status</span>\n @if (schedule.IsLocked) {\n <span class=\"status-value status-running\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running\n </span>\n } @else {\n <span class=\"status-value status-idle\">Idle</span>\n }\n </div>\n </div>\n\n <div class=\"card-actions\">\n @if (HasChanges(schedule.ID)) {\n <button class=\"btn btn-primary btn-save\"\n [disabled]=\"IsSaving(schedule.ID)\"\n (click)=\"SaveSchedule(schedule.ID)\">\n @if (IsSaving(schedule.ID)) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-check\"></i>\n Save\n }\n </button>\n }\n <button class=\"btn btn-outline btn-run\"\n [disabled]=\"IsRunning(schedule.ID) || schedule.IsLocked\"\n (click)=\"RunNow(schedule.ID)\">\n @if (IsRunning(schedule.ID)) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running...\n } @else {\n <i class=\"fa-solid fa-play\"></i>\n Run Now\n }\n </button>\n </div>\n </div>\n </div>\n }\n\n @if (Schedules.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-calendar-xmark\"></i>\n <p>No integrations found</p>\n </div>\n }\n </div>\n </div>\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { IRunViewProvider } from '@memberjunction/core';
1
+ import { IRunViewProvider, IMetadataProvider } from '@memberjunction/core';
2
2
  import { MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationEntity, MJIntegrationEntity, MJIntegrationSourceTypeEntity, MJCompanyIntegrationSyncWatermarkEntity } from '@memberjunction/core-entities';
3
3
  import { DiscoveredObjectResult, DiscoveredFieldResult, DiscoveryResult, ConnectionTestGraphQLResult, SchemaPreviewObjectInput, SchemaPreviewResult, DefaultConfigResult, ApplyAllResult, SourceObjectListItem, SourceObjectSelectionInput } from '@memberjunction/graphql-dataprovider';
4
4
  import * as i0 from "@angular/core";
@@ -167,6 +167,10 @@ export declare function ResolveIntegrationIcon(name: string, entityIcon?: string
167
167
  */
168
168
  export declare function IsImageIcon(icon: string | null | undefined): boolean;
169
169
  export declare class IntegrationDataService {
170
+ private _provider;
171
+ /** Set the metadata provider this service should use. Components should call this after injection. */
172
+ set Provider(value: IMetadataProvider | null);
173
+ get Provider(): IMetadataProvider;
170
174
  LoadIntegrationSummaries(provider?: IRunViewProvider | null): Promise<IntegrationSummary[]>;
171
175
  LoadEntityMaps(companyIntegrationID: string, _provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationEntityMapEntity[]>;
172
176
  LoadFieldMaps(entityMapID: string, _provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationFieldMapEntity[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"integration-data.service.d.ts","sourceRoot":"","sources":["../../../src/Integration/services/integration-data.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,EACL,mCAAmC,EACnC,kCAAkC,EAClC,0BAA0B,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,uCAAuC,EACxC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAIL,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,2BAA2B,EAC3B,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,sCAAsC,CAAC;;AAE9C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;IACzD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;IACjD,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,EAAE,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;IAC1D,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,CAAC;IACpD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC/B;AAED,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAaD,oEAAoE;AACpE,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,0BAA0B,CAAC;IACxC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACjD,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,WAAW,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;IACzD,WAAW,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;IACvC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7C,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAwBD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAQvF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGpE;AAED,qBAGa,sBAAsB;IAE3B,wBAAwB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAyB3F,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,mCAAmC,EAAE,CAAC;IAKjI,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,kCAAkC,EAAE,CAAC;IAKtH,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAclI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAahG,wEAAwE;IACxE,OAAO,CAAC,mBAAmB;IAyCrB,0BAA0B,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAK/F,eAAe,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC;IAK9F,cAAc,CAAC,KAAK,GAAE,MAAW,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAcnG,qBAAqB,CAAC,IAAI,GAAE,MAAU,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkB9G,WAAW,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,eAAe;IA2B7D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAYzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAM7C,eAAe,CAAC,MAAM,EAAE;QAC5B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC;QAClD,kBAAkB,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;QACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;KAC5D,GAAG,OAAO,CAAC,mCAAmC,GAAG,IAAI,CAAC;IAuBjD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOtD,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ/E,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAUxG,cAAc,CAAC,MAAM,EAAE;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,MAAM,CAAC;QACrD,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,kCAAkC,GAAG,IAAI,CAAC;IAwBhD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOpD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;QAChD,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,MAAM,CAAC;QACrD,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;QAC/B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpB,8DAA8D;IACxD,cAAc,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAOvG,mFAAmF;IAC7E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAW9J,oEAAoE;IAC9D,eAAe,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAKvG,oDAAoD;IAC9C,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAKzH,uEAAuE;IACjE,aAAa,CACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,wBAAwB,EAAE,EACnC,QAAQ,GAAE,MAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAK/B,kEAAkE;IAC5D,iBAAiB,CACrB,oBAAoB,EAAE,MAAM,EAC5B,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBlD,oGAAoG;IAC9F,qBAAqB,CACzB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,wBAAwB,EAAE,GAClC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAMjD,wEAAwE;IAClE,gBAAgB,CACpB,KAAK,EAAE,KAAK,CAAC;QAAE,oBAAoB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,wBAAwB,EAAE,CAAA;KAAE,CAAC,GAClF,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,oBAAoB,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;QACxG,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IAKF,6FAA6F;IACvF,aAAa,CACjB,oBAAoB,EAAE,MAAM,EAC5B,aAAa,EAAE,0BAA0B,EAAE,GAC1C,OAAO,CAAC,cAAc,CAAC;IAK1B;;;OAGG;IACG,iBAAiB,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAKvG,kFAAkF;IAC5E,QAAQ,CACZ,oBAAoB,EAAE,MAAM,EAC5B,iBAAiB,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC,cAAc,CAAC;IAK1B,6CAA6C;IACvC,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAK7G,gEAAgE;IAC1D,gBAAgB,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAKlF,6CAA6C;IACvC,cAAc,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAKxF,gFAAgF;IAC1E,iBAAiB,CACrB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAgBnE,+EAA+E;IACzE,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAU,EACjB,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GACjC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAuBnE,0DAA0D;IACpD,yBAAyB,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GACjC,OAAO,CAAC,MAAM,CAAC;IAelB,0DAA0D;IACpD,oBAAoB,CACxB,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GACjC,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAyC7G,0EAA0E;IACpE,sBAAsB,CAC1B,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,OAAO,EACjB,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,GAC/C,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAMjD,oEAAoE;IAC9D,OAAO,CAAC,oBAAoB,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAmB7G,uFAAuF;IACjF,aAAa,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;IAK/F,4EAA4E;IACtE,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,uCAAuC,EAAE,CAAC;IAS3I;;;;;OAKG;IACG,aAAa,CACjB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAM,GAAG,MAAM,GAAG,eAAwB,GACpD,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IA4ErF,0DAA0D;IAC1D,WAAW,IAAI,MAAM,EAAE;IASvB,6EAA6E;IACvE,mBAAmB,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAY9E,cAAc;IAY5B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,mBAAmB;yCAr1BhB,sBAAsB;6CAAtB,sBAAsB;CAm2BlC"}
1
+ {"version":3,"file":"integration-data.service.d.ts","sourceRoot":"","sources":["../../../src/Integration/services/integration-data.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9F,OAAO,EACL,mCAAmC,EACnC,kCAAkC,EAClC,0BAA0B,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,uCAAuC,EACxC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAIL,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,2BAA2B,EAC3B,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,sCAAsC,CAAC;;AAE9C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;IACzD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;IACjD,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,EAAE,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;IAC1D,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,CAAC;IACpD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC/B;AAED,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAaD,oEAAoE;AACpE,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,0BAA0B,CAAC;IACxC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACjD,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,WAAW,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;IACzD,WAAW,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;IACvC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7C,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAwBD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAQvF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGpE;AAED,qBAGa,sBAAsB;IACjC,OAAO,CAAC,SAAS,CAAkC;IAEnD,sGAAsG;IACtG,IAAW,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAElD;IAED,IAAW,QAAQ,IAAI,iBAAiB,CAEvC;IAEK,wBAAwB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAyB3F,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,mCAAmC,EAAE,CAAC;IAKjI,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,kCAAkC,EAAE,CAAC;IAKtH,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAclI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAahG,wEAAwE;IACxE,OAAO,CAAC,mBAAmB;IAyCrB,0BAA0B,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAK/F,eAAe,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC;IAK9F,cAAc,CAAC,KAAK,GAAE,MAAW,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAcnG,qBAAqB,CAAC,IAAI,GAAE,MAAU,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkB9G,WAAW,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,eAAe;IA2B7D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAYzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAM7C,eAAe,CAAC,MAAM,EAAE;QAC5B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC;QAClD,kBAAkB,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;QACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;KAC5D,GAAG,OAAO,CAAC,mCAAmC,GAAG,IAAI,CAAC;IAuBjD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOtD,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ/E,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAUxG,cAAc,CAAC,MAAM,EAAE;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,MAAM,CAAC;QACrD,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,kCAAkC,GAAG,IAAI,CAAC;IAwBhD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOpD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;QAChD,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,MAAM,CAAC;QACrD,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;QAC/B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpB,8DAA8D;IACxD,cAAc,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAOvG,mFAAmF;IAC7E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAW9J,oEAAoE;IAC9D,eAAe,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAKvG,oDAAoD;IAC9C,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAKzH,uEAAuE;IACjE,aAAa,CACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,wBAAwB,EAAE,EACnC,QAAQ,GAAE,MAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAK/B,kEAAkE;IAC5D,iBAAiB,CACrB,oBAAoB,EAAE,MAAM,EAC5B,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBlD,oGAAoG;IAC9F,qBAAqB,CACzB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,wBAAwB,EAAE,GAClC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAMjD,wEAAwE;IAClE,gBAAgB,CACpB,KAAK,EAAE,KAAK,CAAC;QAAE,oBAAoB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,wBAAwB,EAAE,CAAA;KAAE,CAAC,GAClF,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,oBAAoB,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;QACxG,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IAKF,6FAA6F;IACvF,aAAa,CACjB,oBAAoB,EAAE,MAAM,EAC5B,aAAa,EAAE,0BAA0B,EAAE,GAC1C,OAAO,CAAC,cAAc,CAAC;IAK1B;;;OAGG;IACG,iBAAiB,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAKvG,kFAAkF;IAC5E,QAAQ,CACZ,oBAAoB,EAAE,MAAM,EAC5B,iBAAiB,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC,cAAc,CAAC;IAK1B,6CAA6C;IACvC,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAK7G,gEAAgE;IAC1D,gBAAgB,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAKlF,6CAA6C;IACvC,cAAc,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAKxF,gFAAgF;IAC1E,iBAAiB,CACrB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAgBnE,+EAA+E;IACzE,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAU,EACjB,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GACjC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAuBnE,0DAA0D;IACpD,yBAAyB,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GACjC,OAAO,CAAC,MAAM,CAAC;IAelB,0DAA0D;IACpD,oBAAoB,CACxB,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GACjC,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAyC7G,0EAA0E;IACpE,sBAAsB,CAC1B,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,OAAO,EACjB,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,GAC/C,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAMjD,oEAAoE;IAC9D,OAAO,CAAC,oBAAoB,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAmB7G,uFAAuF;IACjF,aAAa,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;IAK/F,4EAA4E;IACtE,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,uCAAuC,EAAE,CAAC;IAS3I;;;;;OAKG;IACG,aAAa,CACjB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAM,GAAG,MAAM,GAAG,eAAwB,GACpD,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IA4ErF,0DAA0D;IAC1D,WAAW,IAAI,MAAM,EAAE;IASvB,6EAA6E;IACvE,mBAAmB,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAY9E,cAAc;IAY5B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,mBAAmB;yCA/1BhB,sBAAsB;6CAAtB,sBAAsB;CA62BlC"}
@@ -50,6 +50,14 @@ export function IsImageIcon(icon) {
50
50
  return icon.startsWith('http') || icon.startsWith('data:') || icon.startsWith('/');
51
51
  }
52
52
  export class IntegrationDataService {
53
+ _provider = null;
54
+ /** Set the metadata provider this service should use. Components should call this after injection. */
55
+ set Provider(value) {
56
+ this._provider = value;
57
+ }
58
+ get Provider() {
59
+ return this._provider ?? Metadata.Provider;
60
+ }
53
61
  async LoadIntegrationSummaries(provider) {
54
62
  const engine = IntegrationEngineBase.Instance;
55
63
  const rv = this.createRunView(provider);
@@ -221,7 +229,7 @@ export class IntegrationDataService {
221
229
  }
222
230
  // --- Entity Map CRUD ---
223
231
  async CreateEntityMap(params) {
224
- const md = new Metadata();
232
+ const md = this.Provider;
225
233
  const em = await md.GetEntityObject('MJ: Company Integration Entity Maps');
226
234
  em.NewRecord();
227
235
  em.CompanyIntegrationID = params.CompanyIntegrationID;
@@ -243,20 +251,20 @@ export class IntegrationDataService {
243
251
  return em;
244
252
  }
245
253
  async DeleteEntityMap(entityMapID) {
246
- const md = new Metadata();
254
+ const md = this.Provider;
247
255
  const em = await md.GetEntityObject('MJ: Company Integration Entity Maps');
248
256
  await em.Load(entityMapID);
249
257
  return em.Delete();
250
258
  }
251
259
  async ToggleEntityMapEnabled(entityMapID, enabled) {
252
- const md = new Metadata();
260
+ const md = this.Provider;
253
261
  const em = await md.GetEntityObject('MJ: Company Integration Entity Maps');
254
262
  await em.Load(entityMapID);
255
263
  em.SyncEnabled = enabled;
256
264
  return em.Save();
257
265
  }
258
266
  async UpdateSyncDirection(entityMapID, direction) {
259
- const md = new Metadata();
267
+ const md = this.Provider;
260
268
  const em = await md.GetEntityObject('MJ: Company Integration Entity Maps');
261
269
  await em.Load(entityMapID);
262
270
  em.SyncDirection = direction;
@@ -264,7 +272,7 @@ export class IntegrationDataService {
264
272
  }
265
273
  // --- Field Map CRUD ---
266
274
  async CreateFieldMap(params) {
267
- const md = new Metadata();
275
+ const md = this.Provider;
268
276
  const fm = await md.GetEntityObject('MJ: Company Integration Field Maps');
269
277
  fm.NewRecord();
270
278
  fm.EntityMapID = params.EntityMapID;
@@ -289,13 +297,13 @@ export class IntegrationDataService {
289
297
  return fm;
290
298
  }
291
299
  async DeleteFieldMap(fieldMapID) {
292
- const md = new Metadata();
300
+ const md = this.Provider;
293
301
  const fm = await md.GetEntityObject('MJ: Company Integration Field Maps');
294
302
  await fm.Load(fieldMapID);
295
303
  return fm.Delete();
296
304
  }
297
305
  async UpdateFieldMap(fieldMapID, updates) {
298
- const md = new Metadata();
306
+ const md = this.Provider;
299
307
  const fm = await md.GetEntityObject('MJ: Company Integration Field Maps');
300
308
  await fm.Load(fieldMapID);
301
309
  if (updates.SourceFieldName !== undefined)
@@ -316,14 +324,14 @@ export class IntegrationDataService {
316
324
  }
317
325
  /** Load available MJ entities for mapping target selection */
318
326
  async LoadMJEntities(_provider) {
319
- const md = new Metadata();
327
+ const md = this.Provider;
320
328
  return md.Entities
321
329
  .map(e => ({ ID: e.ID, Name: e.Name }))
322
330
  .sort((a, b) => a.Name.localeCompare(b.Name));
323
331
  }
324
332
  /** Load entity fields for a given entity (for field mapping destination picker) */
325
333
  async LoadEntityFields(entityID, _provider) {
326
- const md = new Metadata();
334
+ const md = this.Provider;
327
335
  const entity = md.Entities.find(e => UUIDsEqual(e.ID, entityID));
328
336
  if (!entity)
329
337
  return [];
@@ -349,7 +357,7 @@ export class IntegrationDataService {
349
357
  }
350
358
  /** Execute the full RSU pipeline for an integration entity map */
351
359
  async RunSchemaPipeline(companyIntegrationID, entityMap) {
352
- const md = new Metadata();
360
+ const md = this.Provider;
353
361
  const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityMap.EntityID));
354
362
  if (!entityInfo) {
355
363
  return { Success: false, Message: `Entity not found for ID ${entityMap.EntityID}` };
@@ -427,7 +435,7 @@ export class IntegrationDataService {
427
435
  }
428
436
  /** Preview destination data by loading a few records from the target entity */
429
437
  async PreviewDestinationData(entityID, limit = 5, provider) {
430
- const md = new Metadata();
438
+ const md = this.Provider;
431
439
  const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityID));
432
440
  if (!entityInfo)
433
441
  return [];
@@ -449,7 +457,7 @@ export class IntegrationDataService {
449
457
  }
450
458
  /** Get a count of records in the destination MJ entity */
451
459
  async GetDestinationRecordCount(entityID, provider) {
452
- const md = new Metadata();
460
+ const md = this.Provider;
453
461
  const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityID));
454
462
  if (!entityInfo)
455
463
  return 0;
@@ -505,7 +513,7 @@ export class IntegrationDataService {
505
513
  }
506
514
  /** Run a directional sync directly via the GraphQL StartSync mutation. */
507
515
  async StartSyncWithDirection(companyIntegrationID, fullSync, syncDirection) {
508
- const provider = Metadata.Provider;
516
+ const provider = this.Provider;
509
517
  const client = new GraphQLIntegrationClient(provider);
510
518
  return client.StartSync(companyIntegrationID, undefined, fullSync, syncDirection);
511
519
  }
@@ -518,7 +526,7 @@ export class IntegrationDataService {
518
526
  Message: 'Action "Run Integration Sync" not found. Ensure the action is registered.'
519
527
  };
520
528
  }
521
- const provider = Metadata.Provider;
529
+ const provider = this.Provider;
522
530
  const actionClient = new GraphQLActionClient(provider);
523
531
  const params = [
524
532
  { Name: 'CompanyIntegrationID', Value: companyIntegrationID, Type: 'Input' },
@@ -548,7 +556,7 @@ export class IntegrationDataService {
548
556
  * for every non-system column. Returns the count of maps created.
549
557
  */
550
558
  async AutoMapSchema(companyIntegrationID, schemaName, direction = 'Pull') {
551
- const md = new Metadata();
559
+ const md = this.Provider;
552
560
  const errors = [];
553
561
  // Get entities in the target schema
554
562
  const schemaEntities = md.Entities.filter(e => e.SchemaName.toLowerCase() === schemaName.toLowerCase());
@@ -612,7 +620,7 @@ export class IntegrationDataService {
612
620
  }
613
621
  /** Load available schemas (for auto-map schema picker) */
614
622
  LoadSchemas() {
615
- const md = new Metadata();
623
+ const md = this.Provider;
616
624
  const schemas = new Set();
617
625
  for (const entity of md.Entities) {
618
626
  if (entity.SchemaName)
@@ -633,7 +641,7 @@ export class IntegrationDataService {
633
641
  return counts;
634
642
  }
635
643
  async lookupActionID(actionName) {
636
- const rv = new RunView();
644
+ const rv = RunView.FromMetadataProvider(this.Provider);
637
645
  const result = await rv.RunView({
638
646
  EntityName: 'MJ: Actions',
639
647
  ExtraFilter: `Name='${actionName}'`,
@@ -644,11 +652,11 @@ export class IntegrationDataService {
644
652
  return result.Results.length > 0 ? result.Results[0].ID : null;
645
653
  }
646
654
  getIntegrationClient() {
647
- const provider = Metadata.Provider;
655
+ const provider = this.Provider;
648
656
  return new GraphQLIntegrationClient(provider);
649
657
  }
650
658
  createRunView(provider) {
651
- return new RunView(provider ?? null);
659
+ return new RunView((provider ?? this.Provider));
652
660
  }
653
661
  buildSummary(integration, allRuns, sourceTypes, integrationDefs) {
654
662
  const integrationRuns = allRuns.filter(r => UUIDsEqual(r.CompanyIntegrationID, integration.ID));