@memberjunction/ng-dashboards 6.2.0-edge.2 → 6.2.0-edge.4

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 (229) hide show
  1. package/dist/AI/components/analytics/realtime/realtime-transcripts-data.d.ts +4 -3
  2. package/dist/AI/components/analytics/realtime/realtime-transcripts-data.d.ts.map +1 -1
  3. package/dist/AI/components/analytics/realtime/realtime-transcripts-data.js +8 -5
  4. package/dist/AI/components/analytics/realtime/realtime-transcripts-data.js.map +1 -1
  5. package/dist/AI/components/duplicates/compare-value.component.d.ts +67 -0
  6. package/dist/AI/components/duplicates/compare-value.component.d.ts.map +1 -0
  7. package/dist/AI/components/duplicates/compare-value.component.js +168 -0
  8. package/dist/AI/components/duplicates/compare-value.component.js.map +1 -0
  9. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +49 -3
  10. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +287 -169
  12. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  13. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +77 -0
  14. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -0
  15. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +116 -0
  16. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -0
  17. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
  18. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  19. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +16 -4
  20. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  21. package/dist/AI/components/tags/tags-resource.component.d.ts +2 -0
  22. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  23. package/dist/AI/components/tags/tags-resource.component.js +12 -6
  24. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  25. package/dist/AI/components/vectors/vector-index-auto.d.ts +29 -0
  26. package/dist/AI/components/vectors/vector-index-auto.d.ts.map +1 -0
  27. package/dist/AI/components/vectors/vector-index-auto.js +59 -0
  28. package/dist/AI/components/vectors/vector-index-auto.js.map +1 -0
  29. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +9 -0
  30. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  31. package/dist/AI/components/vectors/vector-management-resource.component.js +65 -20
  32. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  33. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  34. package/dist/Actions/components/actions-overview.component.js +7 -3
  35. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  36. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  37. package/dist/Actions/components/categories-list-view.component.js +3 -2
  38. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  39. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  40. package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
  41. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  42. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +0 -3
  43. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
  44. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +5 -14
  45. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
  46. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  47. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +1 -0
  48. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  49. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  50. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +1 -0
  51. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  52. package/dist/ComponentStudio/components/form-override-dialog.component.d.ts +12 -1
  53. package/dist/ComponentStudio/components/form-override-dialog.component.d.ts.map +1 -1
  54. package/dist/ComponentStudio/components/form-override-dialog.component.js +128 -81
  55. package/dist/ComponentStudio/components/form-override-dialog.component.js.map +1 -1
  56. package/dist/Credentials/components/credentials-list-resource.component.d.ts +2 -0
  57. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  58. package/dist/Credentials/components/credentials-list-resource.component.js +12 -10
  59. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  60. package/dist/DashboardBrowser/dashboard-browser-agent-context.d.ts +14 -43
  61. package/dist/DashboardBrowser/dashboard-browser-agent-context.d.ts.map +1 -1
  62. package/dist/DashboardBrowser/dashboard-browser-agent-context.js +6 -29
  63. package/dist/DashboardBrowser/dashboard-browser-agent-context.js.map +1 -1
  64. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +174 -321
  65. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  66. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +522 -1195
  67. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  68. package/dist/DashboardBrowser/dashboard-library-filter.d.ts +116 -0
  69. package/dist/DashboardBrowser/dashboard-library-filter.d.ts.map +1 -0
  70. package/dist/DashboardBrowser/dashboard-library-filter.js +277 -0
  71. package/dist/DashboardBrowser/dashboard-library-filter.js.map +1 -0
  72. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts +1 -1
  73. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  74. package/dist/DashboardBrowser/dashboards-agent-tools.d.ts +26 -0
  75. package/dist/DashboardBrowser/dashboards-agent-tools.d.ts.map +1 -0
  76. package/dist/DashboardBrowser/dashboards-agent-tools.js +32 -0
  77. package/dist/DashboardBrowser/dashboards-agent-tools.js.map +1 -0
  78. package/dist/DashboardBrowser/dashboards-categories-resource.component.d.ts +58 -0
  79. package/dist/DashboardBrowser/dashboards-categories-resource.component.d.ts.map +1 -0
  80. package/dist/DashboardBrowser/dashboards-categories-resource.component.js +391 -0
  81. package/dist/DashboardBrowser/dashboards-categories-resource.component.js.map +1 -0
  82. package/dist/DashboardBrowser/dashboards-categories.helpers.d.ts +37 -0
  83. package/dist/DashboardBrowser/dashboards-categories.helpers.d.ts.map +1 -0
  84. package/dist/DashboardBrowser/dashboards-categories.helpers.js +68 -0
  85. package/dist/DashboardBrowser/dashboards-categories.helpers.js.map +1 -0
  86. package/dist/DashboardEditor/dashboard-editor.component.d.ts +295 -0
  87. package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -0
  88. package/dist/DashboardEditor/dashboard-editor.component.js +1022 -0
  89. package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -0
  90. package/dist/DashboardEditor/dashboard-editor.types.d.ts +23 -0
  91. package/dist/DashboardEditor/dashboard-editor.types.d.ts.map +1 -0
  92. package/dist/DashboardEditor/dashboard-editor.types.js +3 -0
  93. package/dist/DashboardEditor/dashboard-editor.types.js.map +1 -0
  94. package/dist/DashboardEditor/dashboard-viewer-factory.d.ts +11 -0
  95. package/dist/DashboardEditor/dashboard-viewer-factory.d.ts.map +1 -0
  96. package/dist/DashboardEditor/dashboard-viewer-factory.js +17 -0
  97. package/dist/DashboardEditor/dashboard-viewer-factory.js.map +1 -0
  98. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +30 -0
  99. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  100. package/dist/DataExplorer/data-explorer-dashboard.component.js +349 -232
  101. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  102. package/dist/DataExplorer/services/explorer-state.service.d.ts +1 -1
  103. package/dist/DataExplorer/services/explorer-state.service.js +2 -5
  104. package/dist/DataExplorer/services/explorer-state.service.js.map +1 -1
  105. package/dist/FormBuilder/form-builder-resource.component.d.ts +0 -14
  106. package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
  107. package/dist/FormBuilder/form-builder-resource.component.js +7 -29
  108. package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
  109. package/dist/Home/home-agent-context.d.ts +29 -10
  110. package/dist/Home/home-agent-context.d.ts.map +1 -1
  111. package/dist/Home/home-agent-context.js +50 -24
  112. package/dist/Home/home-agent-context.js.map +1 -1
  113. package/dist/Home/home-dashboard-switcher.component.d.ts +95 -0
  114. package/dist/Home/home-dashboard-switcher.component.d.ts.map +1 -0
  115. package/dist/Home/home-dashboard-switcher.component.js +442 -0
  116. package/dist/Home/home-dashboard-switcher.component.js.map +1 -0
  117. package/dist/Home/home-dashboard.component.d.ts +330 -17
  118. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  119. package/dist/Home/home-dashboard.component.js +1702 -1014
  120. package/dist/Home/home-dashboard.component.js.map +1 -1
  121. package/dist/Home/home-menus.d.ts +38 -0
  122. package/dist/Home/home-menus.d.ts.map +1 -0
  123. package/dist/Home/home-menus.js +53 -0
  124. package/dist/Home/home-menus.js.map +1 -0
  125. package/dist/Home/home-pinned-dashboards.d.ts +33 -0
  126. package/dist/Home/home-pinned-dashboards.d.ts.map +1 -0
  127. package/dist/Home/home-pinned-dashboards.js +76 -0
  128. package/dist/Home/home-pinned-dashboards.js.map +1 -0
  129. package/dist/PredictiveStudio/components/ps-production.component.d.ts +5 -1
  130. package/dist/PredictiveStudio/components/ps-production.component.d.ts.map +1 -1
  131. package/dist/PredictiveStudio/components/ps-production.component.js +64 -41
  132. package/dist/PredictiveStudio/components/ps-production.component.js.map +1 -1
  133. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  134. package/dist/QueryBrowser/query-browser-resource.component.js +3 -2
  135. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  136. package/dist/RealtimeRecordings/realtime-recordings-dashboard.component.js +2 -2
  137. package/dist/RealtimeRecordings/realtime-recordings-dashboard.component.js.map +1 -1
  138. package/dist/TelephonyOperations/telephony-operations-agent-context.d.ts +107 -0
  139. package/dist/TelephonyOperations/telephony-operations-agent-context.d.ts.map +1 -0
  140. package/dist/TelephonyOperations/telephony-operations-agent-context.js +216 -0
  141. package/dist/TelephonyOperations/telephony-operations-agent-context.js.map +1 -0
  142. package/dist/TelephonyOperations/telephony-operations-dashboard.component.d.ts +58 -0
  143. package/dist/TelephonyOperations/telephony-operations-dashboard.component.d.ts.map +1 -0
  144. package/dist/TelephonyOperations/telephony-operations-dashboard.component.js +812 -0
  145. package/dist/TelephonyOperations/telephony-operations-dashboard.component.js.map +1 -0
  146. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  147. package/dist/Testing/components/testing-explorer.component.js +7 -7
  148. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  149. package/dist/WorkQueue/components/work-queue-bindings.component.d.ts +37 -0
  150. package/dist/WorkQueue/components/work-queue-bindings.component.d.ts.map +1 -0
  151. package/dist/WorkQueue/components/work-queue-bindings.component.js +210 -0
  152. package/dist/WorkQueue/components/work-queue-bindings.component.js.map +1 -0
  153. package/dist/WorkQueue/components/work-queue-dead-letters.component.d.ts +70 -0
  154. package/dist/WorkQueue/components/work-queue-dead-letters.component.d.ts.map +1 -0
  155. package/dist/WorkQueue/components/work-queue-dead-letters.component.js +496 -0
  156. package/dist/WorkQueue/components/work-queue-dead-letters.component.js.map +1 -0
  157. package/dist/WorkQueue/components/work-queue-discard-dialog.component.d.ts +22 -0
  158. package/dist/WorkQueue/components/work-queue-discard-dialog.component.d.ts.map +1 -0
  159. package/dist/WorkQueue/components/work-queue-discard-dialog.component.js +99 -0
  160. package/dist/WorkQueue/components/work-queue-discard-dialog.component.js.map +1 -0
  161. package/dist/WorkQueue/components/work-queue-overview.component.d.ts +29 -0
  162. package/dist/WorkQueue/components/work-queue-overview.component.d.ts.map +1 -0
  163. package/dist/WorkQueue/components/work-queue-overview.component.js +278 -0
  164. package/dist/WorkQueue/components/work-queue-overview.component.js.map +1 -0
  165. package/dist/WorkQueue/components/work-queue-partitions.component.d.ts +59 -0
  166. package/dist/WorkQueue/components/work-queue-partitions.component.d.ts.map +1 -0
  167. package/dist/WorkQueue/components/work-queue-partitions.component.js +359 -0
  168. package/dist/WorkQueue/components/work-queue-partitions.component.js.map +1 -0
  169. package/dist/WorkQueue/services/work-queue-operator.service.d.ts +22 -0
  170. package/dist/WorkQueue/services/work-queue-operator.service.d.ts.map +1 -0
  171. package/dist/WorkQueue/services/work-queue-operator.service.js +44 -0
  172. package/dist/WorkQueue/services/work-queue-operator.service.js.map +1 -0
  173. package/dist/WorkQueue/work-queue-agent-context.d.ts +67 -0
  174. package/dist/WorkQueue/work-queue-agent-context.d.ts.map +1 -0
  175. package/dist/WorkQueue/work-queue-agent-context.js +119 -0
  176. package/dist/WorkQueue/work-queue-agent-context.js.map +1 -0
  177. package/dist/WorkQueue/work-queue-dashboard.component.d.ts +94 -0
  178. package/dist/WorkQueue/work-queue-dashboard.component.d.ts.map +1 -0
  179. package/dist/WorkQueue/work-queue-dashboard.component.js +545 -0
  180. package/dist/WorkQueue/work-queue-dashboard.component.js.map +1 -0
  181. package/dist/WorkQueue/work-queue-types.d.ts +40 -0
  182. package/dist/WorkQueue/work-queue-types.d.ts.map +1 -0
  183. package/dist/WorkQueue/work-queue-types.js +2 -0
  184. package/dist/WorkQueue/work-queue-types.js.map +1 -0
  185. package/dist/ai-dashboards.module.d.ts +21 -20
  186. package/dist/ai-dashboards.module.d.ts.map +1 -1
  187. package/dist/ai-dashboards.module.js +4 -1
  188. package/dist/ai-dashboards.module.js.map +1 -1
  189. package/dist/core-dashboards.module.d.ts +69 -61
  190. package/dist/core-dashboards.module.d.ts.map +1 -1
  191. package/dist/core-dashboards.module.js +29 -2
  192. package/dist/core-dashboards.module.js.map +1 -1
  193. package/dist/data-explorer-dashboards.module.d.ts +1 -1
  194. package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
  195. package/dist/data-explorer-dashboards.module.js +3 -1
  196. package/dist/data-explorer-dashboards.module.js.map +1 -1
  197. package/dist/module.d.ts +14 -13
  198. package/dist/module.d.ts.map +1 -1
  199. package/dist/module.js +7 -0
  200. package/dist/module.js.map +1 -1
  201. package/dist/public-api.d.ts +6 -0
  202. package/dist/public-api.d.ts.map +1 -1
  203. package/dist/public-api.js +9 -0
  204. package/dist/public-api.js.map +1 -1
  205. package/dist/shared/dashboard-library-changes.d.ts +23 -0
  206. package/dist/shared/dashboard-library-changes.d.ts.map +1 -0
  207. package/dist/shared/dashboard-library-changes.js +26 -0
  208. package/dist/shared/dashboard-library-changes.js.map +1 -0
  209. package/dist/shared/dashboard-owner-names.d.ts +17 -0
  210. package/dist/shared/dashboard-owner-names.d.ts.map +1 -0
  211. package/dist/shared/dashboard-owner-names.js +65 -0
  212. package/dist/shared/dashboard-owner-names.js.map +1 -0
  213. package/dist/shared/dashboard-recents.d.ts +34 -0
  214. package/dist/shared/dashboard-recents.d.ts.map +1 -0
  215. package/dist/shared/dashboard-recents.js +87 -0
  216. package/dist/shared/dashboard-recents.js.map +1 -0
  217. package/dist/shared/dashboards-app-install.d.ts +59 -0
  218. package/dist/shared/dashboards-app-install.d.ts.map +1 -0
  219. package/dist/shared/dashboards-app-install.js +97 -0
  220. package/dist/shared/dashboards-app-install.js.map +1 -0
  221. package/dist/shared/dashboards-app.helpers.d.ts +42 -0
  222. package/dist/shared/dashboards-app.helpers.d.ts.map +1 -0
  223. package/dist/shared/dashboards-app.helpers.js +143 -0
  224. package/dist/shared/dashboards-app.helpers.js.map +1 -0
  225. package/dist/work-queue-dashboards.module.d.ts +23 -0
  226. package/dist/work-queue-dashboards.module.d.ts.map +1 -0
  227. package/dist/work-queue-dashboards.module.js +92 -0
  228. package/dist/work-queue-dashboards.module.js.map +1 -0
  229. package/package.json +73 -66
@@ -1 +1 @@
1
- {"version":3,"file":"ps-production.component.js","sourceRoot":"","sources":["../../../src/PredictiveStudio/components/ps-production.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewEncapsulation, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { AngularSplitModule } from 'angular-split';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { MJButtonDirective } from '@memberjunction/ng-ui-components';\nimport { RunView } from '@memberjunction/core';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { MJMLModelEntity, MJMLModelScoringBindingEntity, MJProcessRunDetailEntity, UserInfoEngine } from '@memberjunction/core-entities';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { PredictiveStudioEngine } from '../engine/predictive-studio.engine';\nimport { PSProcessRunRow, PrimaryAuc, PrimaryModelScore, FormatMetricValue } from '../predictive-studio.view-models';\nimport { humanizeCron, StatusVariant } from '../production-distribution';\nimport { PSOperateDialogComponent } from './ps-operate-dialog.component';\nimport { PSPredictionsGridComponent } from './ps-predictions-grid.component';\n\n/** A model's deployment state, derived purely from cached bindings + Record Processes. */\ntype DeployState = 'bound' | 'scheduled' | 'idle';\n\n/** One scoring binding shown in a model's deployment detail. */\ninterface BindingVM {\n id: string;\n targetEntity: string;\n targetColumn: string;\n mode: string;\n schedulePhrase: string | null;\n}\n\n/** One published model in the production control tower (DB-light — all fields from engine caches). */\ninterface ProductionModelVM {\n modelId: string;\n label: string;\n algorithm: string;\n problemType: string;\n version: number;\n holdoutMetric: string;\n deployState: DeployState;\n bindingCount: number;\n processCount: number;\n scheduledCount: number;\n /** Most recent scored-at across the model's bindings (cached lineage — no DB hit). */\n lastScoredAt: Date | null;\n lastRowCount: number | null;\n}\n\n/** One per-record prediction in a run's drill-in (parsed from `MJ: Process Run Details` `ResultPayload`). */\ninterface RunDetailVM {\n recordId: string;\n status: string;\n /** Formatted numeric prediction, or '—'. */\n score: string;\n /** Predicted class label (classification), or null. */\n class: string | null;\n /** ISO timestamp the prediction was produced (`$.scoredAt`), or the detail's completion time. */\n scoredAt: string | null;\n}\n\n/**\n * Models in Production — the **model-centric** control tower. Every approved (Published) model appears\n * here whether it's idle, scheduled, or bound — a scoring binding is a *deployment marker*, not a\n * prerequisite to appear or to run. Reactive + DB-light: the published-model list and each model's\n * deployment state come straight from the `PredictiveStudioEngine` caches (a `BaseEngine` subclass) via\n * `ObserveProperty`, so it re-renders on any model/binding change with no polling; a model's **past runs**\n * are loaded on demand when selected (`MJ: Process Runs` grow unbounded — never bulk-cached).\n *\n * Entity-agnostic: model labels derive from the producing pipeline; binding targets come from the binding\n * rows. **Operate** (the rocket button) opens the {@link PSOperateDialogComponent} to run/schedule/bind the\n * model; clicking a run drills into its per-record predictions (`MJ: Process Run Details`).\n */\n@Component({\n standalone: true,\n selector: 'ps-production',\n imports: [CommonModule, AngularSplitModule, SharedGenericModule, MJButtonDirective, PSOperateDialogComponent, PSPredictionsGridComponent],\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['../predictive-studio.shared.css', './ps-production.component.css'],\n template: `\n <div class=\"ps-panel ps-production\" data-testid=\"ps-production-panel\">\n @if (models.length === 0) {\n <div class=\"ps-empty\" data-testid=\"ps-production-empty\">\n <span class=\"ps-empty-ico\"><i class=\"fa-solid fa-satellite-dish\"></i></span>\n <h3>No models in production yet</h3>\n <p>\n When you publish a trained model in the Model Registry it shows up here — ready to schedule,\n bind to a column, and run. Train a pipeline and promote the model to Published to get started.\n </p>\n </div>\n } @else {\n <!-- KPI strip -->\n @if (!isRunFocused) {\n <div class=\"prod-kpis\" data-testid=\"ps-production-kpis\">\n <div class=\"ps-kpi\"><div class=\"label\">Published</div><div class=\"val\">{{ models.length }}</div></div>\n <div class=\"ps-kpi\"><div class=\"label\">Scheduled</div><div class=\"val\">{{ scheduledModelCount }}</div></div>\n <div class=\"ps-kpi\"><div class=\"label\">Bound (write-back)</div><div class=\"val\">{{ boundModelCount }}</div></div>\n <div class=\"ps-kpi\"><div class=\"label\">Idle</div><div class=\"val\">{{ idleModelCount }}</div></div>\n </div>\n }\n\n <div class=\"prod-layout\" [class.list-collapsed]=\"isListCollapsed\">\n @if (isListCollapsed) {\n <div class=\"prod-collapsed-strip\" data-testid=\"ps-production-collapsed-rail\">\n <button class=\"prod-rail-collapse\" type=\"button\" (click)=\"toggleList()\" aria-label=\"Expand models list\" title=\"Expand list\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n <div class=\"prod-collapsed-strip-label\"><i class=\"fa-solid fa-satellite-dish\"></i></div>\n </div>\n }\n\n <as-split direction=\"horizontal\" class=\"prod-splitter\" unit=\"percent\" [gutterSize]=\"6\" (dragEnd)=\"onSplitDragEnd($event.sizes)\">\n @if (!isListCollapsed) {\n <as-split-area [size]=\"listSizePct\" [minSize]=\"18\" [maxSize]=\"50\">\n <!-- master list -->\n <div class=\"ps-card mlist\" data-testid=\"ps-production-list\">\n <div class=\"ps-card-head\">\n <h3>Published models</h3>\n <div style=\"display:flex;gap:6px;align-items:center\">\n <span class=\"ps-badge gray\">{{ models.length }}</span>\n <button class=\"prod-collapse-btn\" type=\"button\" (click)=\"toggleList()\" title=\"Collapse list\" aria-label=\"Collapse list\">\n <i class=\"fa-solid fa-chevron-left\"></i>\n </button>\n </div>\n </div>\n <div class=\"ps-card-body\" style=\"padding:8px\">\n @for (m of models; track m.modelId) {\n <div class=\"mrow\" data-testid=\"ps-production-row\" [class.sel]=\"m.modelId === selectedModelId\" (click)=\"select(m.modelId)\">\n <div class=\"ico\" [class]=\"'st-' + m.deployState\"><i [class]=\"deployIcon(m.deployState)\"></i></div>\n <div style=\"flex:1;min-width:0\">\n <div class=\"nm\">{{ m.label }}</div>\n <div class=\"ln2 ps-muted ps-small\">v{{ m.version }} · {{ m.algorithm }}</div>\n </div>\n <div class=\"meta\">\n <span class=\"ps-badge\" [class]=\"deployBadge(m.deployState)\">{{ deployLabel(m.deployState) }}</span>\n <div class=\"ps-mono ps-small ps-muted\">{{ m.holdoutMetric }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n </as-split-area>\n }\n\n <as-split-area [size]=\"isListCollapsed ? 100 : detailSizePct\" [minSize]=\"50\">\n <!-- detail -->\n <div class=\"ps-col detail\" [class.focused-run]=\"selectedRunId && isRunFocused\" data-testid=\"ps-production-detail\">\n <!-- 1. MODEL HEADER CARD -->\n <div class=\"ps-card prod-header-card\" [class.collapsed]=\"isHeaderCollapsed\">\n @if (!isHeaderCollapsed) {\n <div class=\"ps-card-body dh\">\n <div class=\"big-ico\" [class]=\"'st-' + selected.deployState\"><i [class]=\"deployIcon(selected.deployState)\"></i></div>\n <div style=\"flex:1;min-width:0\">\n <h2 data-testid=\"ps-production-detail-name\">{{ selected.label }} <span class=\"ps-tag ps-mono\">v{{ selected.version }}</span></h2>\n <div class=\"ps-muted ps-small sub\">{{ selected.algorithm }} · {{ selected.problemType }} · holdout {{ selected.holdoutMetric }}</div>\n </div>\n <span class=\"ps-badge\" [class]=\"deployBadge(selected.deployState)\">{{ deployLabel(selected.deployState) }}</span>\n <button mjButton variant=\"primary\" size=\"sm\" data-testid=\"ps-production-operate\" (click)=\"operateOpen = true\">\n <i class=\"fa-solid fa-rocket\"></i> Operate\n </button>\n <button class=\"ps-card-collapse-btn\" type=\"button\" (click)=\"toggleHeaderCollapse()\" title=\"Collapse model header\" aria-label=\"Collapse model header\">\n <i class=\"fa-solid fa-chevron-up\"></i>\n </button>\n </div>\n } @else {\n <div class=\"ps-card-body dh-compact\" (click)=\"toggleHeaderCollapse()\">\n <div class=\"mini-ico\" [class]=\"'st-' + selected.deployState\"><i [class]=\"deployIcon(selected.deployState)\"></i></div>\n <div class=\"compact-info\">\n <strong>{{ selected.label }}</strong>\n <span class=\"ps-tag ps-mono ps-small\">v{{ selected.version }}</span>\n <span class=\"ps-muted ps-small\">· {{ selected.algorithm }}</span>\n </div>\n <span class=\"ps-badge\" [class]=\"deployBadge(selected.deployState)\">{{ deployLabel(selected.deployState) }}</span>\n <button mjButton variant=\"primary\" size=\"sm\" data-testid=\"ps-production-operate-compact\" (click)=\"$event.stopPropagation(); operateOpen = true\">\n <i class=\"fa-solid fa-rocket\"></i> Operate\n </button>\n <button class=\"ps-card-collapse-btn\" type=\"button\" (click)=\"$event.stopPropagation(); toggleHeaderCollapse()\" title=\"Expand model header\" aria-label=\"Expand model header\">\n <i class=\"fa-solid fa-chevron-down\"></i>\n </button>\n </div>\n }\n </div>\n\n <!-- 2. DEPLOYMENT STATUS CARD -->\n <div class=\"ps-card prod-deployment-card\" [class.collapsed]=\"isDeploymentCollapsed\">\n <div class=\"ps-card-head clickable\" (click)=\"toggleDeploymentCollapse()\">\n <div style=\"display:flex;align-items:center;gap:8px\">\n <i class=\"fa-solid fa-network-wired\" style=\"color:var(--mj-brand-primary)\"></i>\n <h3>Deployment</h3>\n <span class=\"ps-muted ps-small\">{{ selected.processCount }} process{{ selected.processCount === 1 ? '' : 'es' }} · {{ selected.bindingCount }} binding{{ selected.bindingCount === 1 ? '' : 's' }}</span>\n @if (isDeploymentCollapsed && selectedBindings.length > 0) {\n <span class=\"ps-badge gray ps-small\">{{ selectedBindings[0].targetEntity }}.{{ selectedBindings[0].targetColumn }}</span>\n }\n </div>\n <div style=\"display:flex;align-items:center;gap:6px\">\n <button class=\"ps-card-collapse-btn\" type=\"button\" (click)=\"$event.stopPropagation(); toggleDeploymentCollapse()\" [title]=\"isDeploymentCollapsed ? 'Expand deployment' : 'Collapse deployment'\" [attr.aria-label]=\"isDeploymentCollapsed ? 'Expand deployment' : 'Collapse deployment'\">\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"!isDeploymentCollapsed\" [class.fa-chevron-down]=\"isDeploymentCollapsed\"></i>\n </button>\n </div>\n </div>\n @if (!isDeploymentCollapsed) {\n <div class=\"ps-card-body\">\n @if (selected.deployState === 'idle') {\n <div class=\"ps-callout info\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <div class=\"ps-small\">This model is published but <strong>not operating</strong> yet — nothing scores with it. Click <strong>Operate</strong> above to run it now, schedule it to run regularly, or write predictions back to a column.</div>\n </div>\n } @else {\n @if (selectedBindings.length > 0) {\n <div class=\"ps-section-title\">Scoring bindings</div>\n @for (b of selectedBindings; track b.id) {\n <div class=\"bind-row\">\n <i class=\"fa-solid fa-arrow-right-to-bracket ps-muted\"></i>\n <div style=\"flex:1\">\n <div class=\"ps-small\"><strong>{{ b.targetEntity }}</strong>.{{ b.targetColumn }}</div>\n <div class=\"ps-muted ps-small\">{{ b.mode }}{{ b.schedulePhrase ? ' · ' + b.schedulePhrase : '' }}</div>\n </div>\n <span class=\"ps-badge\" [class]=\"modeBadge(b.mode)\">{{ b.mode }}</span>\n </div>\n }\n } @else {\n <div class=\"ps-small ps-muted\">Scheduled to run, writing generic output to the process run history (no write-back column).</div>\n }\n @if (selected.lastScoredAt) {\n <div class=\"ps-divider\"></div>\n <div class=\"ps-row\" style=\"justify-content:space-between\"><span class=\"ps-muted ps-small\">Last scored</span><span class=\"ps-small\">{{ selected.lastScoredAt | date:'medium' }}{{ selected.lastRowCount != null ? ' · ' + selected.lastRowCount + ' rows' : '' }}</span></div>\n }\n }\n </div>\n }\n </div>\n\n <!-- 3. RUN HISTORY CARD -->\n <div class=\"ps-card run-card\" [class.drilldown-active]=\"selectedRunId\" [class.focus-fill]=\"selectedRunId && isRunFocused\">\n <div class=\"ps-card-head\">\n <div style=\"display:flex;align-items:center;gap:8px\">\n <i class=\"fa-solid fa-clock-rotate-left\" style=\"color:var(--mj-status-info)\"></i>\n <h3>Run history</h3>\n <span class=\"ps-muted ps-small\">last 90 days · newest first</span>\n </div>\n @if (selectedRunId) {\n <div style=\"display:flex;align-items:center;gap:8px\">\n <button class=\"ps-focus-toggle-btn\" type=\"button\" (click)=\"toggleRunFocus()\" [class.active]=\"isRunFocused\" [title]=\"isRunFocused ? 'Exit focus (expand header & deployment)' : 'Focus mode (collapse header & deployment)'\">\n <i class=\"fa-solid\" [class.fa-compress]=\"isRunFocused\" [class.fa-expand]=\"!isRunFocused\"></i>\n <span>{{ isRunFocused ? 'Exit Focus' : 'Focus' }}</span>\n </button>\n </div>\n }\n </div>\n <div class=\"ps-card-body run-card-body\">\n @if (selectedRunId) {\n <!-- run drill-in: unified predictions grid with virtual scrolling, name resolution, charts & history -->\n <div class=\"run-drill-nav\">\n <button class=\"run-back\" data-testid=\"ps-production-run-back\" (click)=\"closeRun()\">\n <i class=\"fa-solid fa-arrow-left\"></i> All runs\n </button>\n <span class=\"ps-tag ps-mono ps-small\">Run: {{ selectedRunId }}</span>\n </div>\n <ps-predictions-grid\n data-testid=\"ps-production-run-grid\"\n [modelId]=\"selected.modelId\"\n [runId]=\"selectedRunId\"\n [entityName]=\"selectedTargetEntityName\"\n [problemType]=\"selected.problemType\"\n [title]=\"selected.label + ' — Run Predictions'\"\n [height]=\"runGridHeight\">\n </ps-predictions-grid>\n } @else if (loadingRuns) {\n <mj-loading text=\"Loading runs...\" size=\"small\"></mj-loading>\n } @else if (runs.length === 0) {\n <div class=\"ps-small ps-muted\">No runs recorded yet. Each time this model runs as a Record Process, its predictions are saved to the process run history — even without a scoring binding.</div>\n } @else {\n <table class=\"runs-table\">\n <thead><tr><th>When</th><th>Status</th><th>Scored</th><th>Process</th><th></th></tr></thead>\n <tbody>\n @for (r of runs; track r.ID) {\n <tr data-testid=\"ps-production-run\" class=\"run-row\" (click)=\"openRun(r.ID)\">\n <td>{{ (r.StartTime || r.CreatedAt) | date:'short' }}</td>\n <td><span class=\"ps-badge\" [class]=\"runBadge(r.Status)\">{{ r.Status }}</span></td>\n <td class=\"ps-mono\">{{ r.SuccessCount }}<span class=\"ps-muted\">/{{ r.TotalItemCount ?? 0 }}</span></td>\n <td class=\"ps-small ps-muted\">{{ r.ProcessName || '—' }}</td>\n <td class=\"run-right\">@if (r.DryRun) { <span class=\"ps-tag amber\">dry run</span> }<i class=\"fa-solid fa-chevron-right ps-muted\"></i></td>\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n </div>\n </div>\n </as-split-area>\n </as-split>\n </div>\n\n <ps-operate-dialog\n [Visible]=\"operateOpen\"\n [modelId]=\"selected.modelId\"\n [modelLabel]=\"selected.label\"\n [engine]=\"engine\"\n [provider]=\"ProviderToUse\"\n [currentUser]=\"ProviderToUse.CurrentUser\"\n (Close)=\"onOperateClose($event)\">\n </ps-operate-dialog>\n }\n </div>\n `,\n})\nexport class PSProductionComponent extends BaseAngularComponent implements OnInit, OnDestroy {\n @Input() engine!: PredictiveStudioEngine;\n\n private cdr = inject(ChangeDetectorRef);\n private modelsSub?: Subscription;\n\n public Models: ProductionModelVM[] = [];\n\n /** @deprecated Use {@link Models}. */\n public get models(): ProductionModelVM[] {\n return this.Models;\n }\n /** @deprecated Use {@link Models}. */\n public set models(value: ProductionModelVM[]) {\n this.Models = value;\n }\n public SelectedModelId = '';\n\n /** @deprecated Use {@link SelectedModelId}. */\n public get selectedModelId() {\n return this.SelectedModelId;\n }\n /** @deprecated Use {@link SelectedModelId}. */\n public set selectedModelId(value) {\n this.SelectedModelId = value;\n }\n public SelectedBindings: BindingVM[] = [];\n\n /** @deprecated Use {@link SelectedBindings}. */\n public get selectedBindings(): BindingVM[] {\n return this.SelectedBindings;\n }\n /** @deprecated Use {@link SelectedBindings}. */\n public set selectedBindings(value: BindingVM[]) {\n this.SelectedBindings = value;\n }\n public Runs: PSProcessRunRow[] = [];\n\n /** @deprecated Use {@link Runs}. */\n public get runs(): PSProcessRunRow[] {\n return this.Runs;\n }\n /** @deprecated Use {@link Runs}. */\n public set runs(value: PSProcessRunRow[]) {\n this.Runs = value;\n }\n public LoadingRuns = false;\n\n /** @deprecated Use {@link LoadingRuns}. */\n public get loadingRuns() {\n return this.LoadingRuns;\n }\n /** @deprecated Use {@link LoadingRuns}. */\n public set loadingRuns(value) {\n this.LoadingRuns = value;\n }\n public LoadingDetails = false;\n\n /** @deprecated Use {@link LoadingDetails}. */\n public get loadingDetails() {\n return this.LoadingDetails;\n }\n /** @deprecated Use {@link LoadingDetails}. */\n public set loadingDetails(value) {\n this.LoadingDetails = value;\n }\n /** Whether the \"Operate this model\" dialog is open for the selected model. */\n public OperateOpen = false;\n\n /** @deprecated Use {@link OperateOpen}. */\n public get operateOpen() {\n return this.OperateOpen;\n }\n /** @deprecated Use {@link OperateOpen}. */\n public set operateOpen(value) {\n this.OperateOpen = value;\n }\n /** The run whose per-record predictions are drilled into (null = the run list). */\n public SelectedRunId: string | null = null;\n\n /** @deprecated Use {@link SelectedRunId}. */\n public get selectedRunId(): string | null {\n return this.SelectedRunId;\n }\n /** @deprecated Use {@link SelectedRunId}. */\n public set selectedRunId(value: string | null) {\n this.SelectedRunId = value;\n }\n public RunDetails: RunDetailVM[] = [];\n\n /** @deprecated Use {@link RunDetails}. */\n public get runDetails(): RunDetailVM[] {\n return this.RunDetails;\n }\n /** @deprecated Use {@link RunDetails}. */\n public set runDetails(value: RunDetailVM[]) {\n this.RunDetails = value;\n }\n public ListSizePct = 30;\n\n /** @deprecated Use {@link ListSizePct}. */\n public get listSizePct() {\n return this.ListSizePct;\n }\n /** @deprecated Use {@link ListSizePct}. */\n public set listSizePct(value) {\n this.ListSizePct = value;\n }\n public DetailSizePct = 70;\n\n /** @deprecated Use {@link DetailSizePct}. */\n public get detailSizePct() {\n return this.DetailSizePct;\n }\n /** @deprecated Use {@link DetailSizePct}. */\n public set detailSizePct(value) {\n this.DetailSizePct = value;\n }\n public IsListCollapsed = false;\n\n /** @deprecated Use {@link IsListCollapsed}. */\n public get isListCollapsed() {\n return this.IsListCollapsed;\n }\n /** @deprecated Use {@link IsListCollapsed}. */\n public set isListCollapsed(value) {\n this.IsListCollapsed = value;\n }\n public IsHeaderCollapsed = false;\n\n /** @deprecated Use {@link IsHeaderCollapsed}. */\n public get isHeaderCollapsed() {\n return this.IsHeaderCollapsed;\n }\n /** @deprecated Use {@link IsHeaderCollapsed}. */\n public set isHeaderCollapsed(value) {\n this.IsHeaderCollapsed = value;\n }\n public IsDeploymentCollapsed = false;\n\n /** @deprecated Use {@link IsDeploymentCollapsed}. */\n public get isDeploymentCollapsed() {\n return this.IsDeploymentCollapsed;\n }\n /** @deprecated Use {@link IsDeploymentCollapsed}. */\n public set isDeploymentCollapsed(value) {\n this.IsDeploymentCollapsed = value;\n }\n public IsRunFocused = false;\n\n /** @deprecated Use {@link IsRunFocused}. */\n public get isRunFocused() {\n return this.IsRunFocused;\n }\n /** @deprecated Use {@link IsRunFocused}. */\n public set isRunFocused(value) {\n this.IsRunFocused = value;\n }\n\n public get RunGridHeight(): string {\n if (this.IsRunFocused || (this.IsHeaderCollapsed && this.IsDeploymentCollapsed)) {\n return '740px';\n }\n return '520px';\n }\n\n /** @deprecated Use {@link RunGridHeight}. */\n public get runGridHeight(): string {\n return this.RunGridHeight;\n }\n\n ngOnInit(): void {\n this.loadLayoutPrefs();\n // Reactive: rebuild the published-model list on any MJ: ML Models change (save/delete/remote-invalidate).\n this.modelsSub = this.engine\n .ObserveProperty<MJMLModelEntity>('_Models')\n .subscribe(() => {\n this.rebuildModels();\n this.cdr.detectChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.modelsSub?.unsubscribe();\n }\n\n // ---- layout splitter resizing & persistence ----\n\n public ToggleHeaderCollapse(): void {\n this.IsHeaderCollapsed = !this.IsHeaderCollapsed;\n this.updateFocusState();\n this.saveLayoutPrefs();\n this.cdr.detectChanges();\n }\n\n /** @deprecated Use {@link ToggleHeaderCollapse}. */\n public toggleHeaderCollapse(): void {\n return this.ToggleHeaderCollapse();\n }\n\n public ToggleDeploymentCollapse(): void {\n this.IsDeploymentCollapsed = !this.IsDeploymentCollapsed;\n this.updateFocusState();\n this.saveLayoutPrefs();\n this.cdr.detectChanges();\n }\n\n /** @deprecated Use {@link ToggleDeploymentCollapse}. */\n public toggleDeploymentCollapse(): void {\n return this.ToggleDeploymentCollapse();\n }\n\n public ToggleRunFocus(): void {\n this.IsRunFocused = !this.IsRunFocused;\n if (this.IsRunFocused) {\n this.IsHeaderCollapsed = true;\n this.IsDeploymentCollapsed = true;\n } else {\n this.IsHeaderCollapsed = false;\n this.IsDeploymentCollapsed = false;\n }\n this.saveLayoutPrefs();\n this.cdr.detectChanges();\n }\n\n /** @deprecated Use {@link ToggleRunFocus}. */\n public toggleRunFocus(): void {\n return this.ToggleRunFocus();\n }\n\n private updateFocusState(): void {\n this.IsRunFocused = this.IsHeaderCollapsed && this.IsDeploymentCollapsed;\n }\n\n private loadLayoutPrefs(): void {\n const raw = UserInfoEngine.Instance.GetSetting('mj.predictiveStudio.production.layout');\n if (raw) {\n try {\n const parsed = JSON.parse(raw);\n if (typeof parsed.listSizePct === 'number' && parsed.listSizePct >= 15 && parsed.listSizePct <= 60) {\n this.ListSizePct = parsed.listSizePct;\n this.DetailSizePct = 100 - parsed.listSizePct;\n }\n if (typeof parsed.isListCollapsed === 'boolean') {\n this.IsListCollapsed = parsed.isListCollapsed;\n }\n if (typeof parsed.isHeaderCollapsed === 'boolean') {\n this.IsHeaderCollapsed = parsed.isHeaderCollapsed;\n }\n if (typeof parsed.isDeploymentCollapsed === 'boolean') {\n this.IsDeploymentCollapsed = parsed.isDeploymentCollapsed;\n }\n if (typeof parsed.isRunFocused === 'boolean') {\n this.IsRunFocused = parsed.isRunFocused;\n }\n } catch {}\n }\n }\n\n public OnSplitDragEnd(sizes: readonly (number | '*')[]): void {\n if (Array.isArray(sizes) && sizes.length === 2 && typeof sizes[0] === 'number' && typeof sizes[1] === 'number') {\n this.ListSizePct = Math.round(sizes[0]);\n this.DetailSizePct = Math.round(sizes[1]);\n this.saveLayoutPrefs();\n }\n }\n\n /** @deprecated Use {@link OnSplitDragEnd}. */\n public onSplitDragEnd(sizes: readonly (number | '*')[]): void {\n return this.OnSplitDragEnd(sizes);\n }\n\n public ToggleList(): void {\n this.IsListCollapsed = !this.IsListCollapsed;\n this.saveLayoutPrefs();\n this.cdr.detectChanges();\n }\n\n /** @deprecated Use {@link ToggleList}. */\n public toggleList(): void {\n return this.ToggleList();\n }\n\n private saveLayoutPrefs(): void {\n const prefs = {\n listSizePct: this.ListSizePct,\n detailSizePct: this.DetailSizePct,\n isListCollapsed: this.IsListCollapsed,\n isHeaderCollapsed: this.IsHeaderCollapsed,\n isDeploymentCollapsed: this.IsDeploymentCollapsed,\n isRunFocused: this.IsRunFocused,\n };\n UserInfoEngine.Instance.SetSettingDebounced('mj.predictiveStudio.production.layout', JSON.stringify(prefs));\n }\n\n // ---- KPIs ----\n\n public get ScheduledModelCount(): number {\n return this.Models.filter((m) => m.deployState === 'scheduled' || m.scheduledCount > 0).length;\n }\n\n /** @deprecated Use {@link ScheduledModelCount}. */\n public get scheduledModelCount(): number {\n return this.ScheduledModelCount;\n }\n public get BoundModelCount(): number {\n return this.Models.filter((m) => m.bindingCount > 0).length;\n }\n\n /** @deprecated Use {@link BoundModelCount}. */\n public get boundModelCount(): number {\n return this.BoundModelCount;\n }\n public get IdleModelCount(): number {\n return this.Models.filter((m) => m.deployState === 'idle').length;\n }\n\n /** @deprecated Use {@link IdleModelCount}. */\n public get idleModelCount(): number {\n return this.IdleModelCount;\n }\n\n // ---- reactive list build (DB-light, from caches) ----\n\n private rebuildModels(): void {\n this.Models = (this.engine?.PublishedModels ?? []).map((m) => this.toVM(m));\n if (!this.Models.some((m) => UUIDsEqual(m.modelId, this.SelectedModelId))) {\n const first = this.Models[0]?.modelId ?? '';\n if (first) {\n this.Select(first);\n } else {\n this.SelectedModelId = '';\n this.SelectedBindings = [];\n this.Runs = [];\n }\n } else {\n this.SelectedBindings = this.bindingsForModel(this.SelectedModelId);\n }\n }\n\n private toVM(m: MJMLModelEntity): ProductionModelVM {\n const bindings = this.engine.ScoringBindings.filter((b) => UUIDsEqual(b.MLModelID, m.ID));\n const processes = this.engine.RecordProcessesForModel(m.ID);\n const scheduledCount = processes.filter((p) => !!p.ScheduleEnabled).length\n + bindings.filter((b) => b.Mode === 'Scheduled').length;\n const lastScoredAt = bindings.reduce<Date | null>(\n (acc, b) => (b.LastScoredAt && (!acc || b.LastScoredAt.getTime() > acc.getTime()) ? b.LastScoredAt : acc),\n null,\n );\n const lastRowCount = bindings.find((b) => b.LastRowCount != null)?.LastRowCount ?? null;\n const score = PrimaryModelScore(m);\n const holdoutMetric = score != null ? FormatMetricValue(score.key, score.value) : '—';\n return {\n modelId: m.ID,\n label: this.engine.ModelDisplayName(m),\n algorithm: this.engine.AlgorithmName(m.AlgorithmID),\n problemType: m.ProblemType ?? '—',\n version: m.Version,\n holdoutMetric,\n deployState: bindings.length > 0 ? 'bound' : scheduledCount > 0 ? 'scheduled' : 'idle',\n bindingCount: bindings.length,\n processCount: processes.length,\n scheduledCount,\n lastScoredAt,\n lastRowCount,\n };\n }\n\n private bindingsForModel(modelId: string): BindingVM[] {\n return this.engine.ScoringBindings\n .filter((b) => UUIDsEqual(b.MLModelID, modelId))\n .map((b) => this.toBindingVM(b));\n }\n\n private toBindingVM(b: MJMLModelScoringBindingEntity): BindingVM {\n const process = this.engine.RecordProcessByID(b.RecordProcessID);\n return {\n id: b.ID,\n targetEntity: this.resolveEntityName(b),\n targetColumn: b.TargetColumn ?? '(generic output)',\n mode: b.Mode,\n schedulePhrase: b.Mode === 'Scheduled' ? humanizeCron(process?.CronExpression ?? null) : null,\n };\n }\n\n private resolveEntityName(b: MJMLModelScoringBindingEntity): string {\n if (b.TargetEntity) return b.TargetEntity;\n if (b.TargetEntityID) {\n const entity = this.ProviderToUse.Entities.find((e) => UUIDsEqual(e.ID, b.TargetEntityID));\n if (entity) return entity.Name;\n }\n return '—';\n }\n\n public get SelectedTargetEntityName(): string | null {\n if (this.SelectedBindings.length > 0 && this.SelectedBindings[0].targetEntity !== '—') {\n return this.SelectedBindings[0].targetEntity;\n }\n const model = this.engine?.PublishedModels?.find((m) => UUIDsEqual(m.ID, this.Selected.modelId));\n if (model?.PipelineID) {\n const pipeline = this.engine?.Pipelines?.find((p) => UUIDsEqual(p.ID, model.PipelineID));\n if (pipeline?.TargetEntityID) {\n const ent = this.ProviderToUse.Entities.find((e) => UUIDsEqual(e.ID, pipeline.TargetEntityID));\n if (ent) return ent.Name;\n }\n }\n return null;\n }\n\n /** @deprecated Use {@link SelectedTargetEntityName}. */\n public get selectedTargetEntityName(): string | null {\n return this.SelectedTargetEntityName;\n }\n\n // ---- selection + on-demand run history ----\n\n public get Selected(): ProductionModelVM {\n return (\n this.Models.find((m) => UUIDsEqual(m.modelId, this.SelectedModelId)) ??\n this.Models[0] ?? {\n modelId: '', label: '—', algorithm: '—', problemType: '—', version: 0, holdoutMetric: '—',\n deployState: 'idle', bindingCount: 0, processCount: 0, scheduledCount: 0, lastScoredAt: null, lastRowCount: null,\n }\n );\n }\n\n /** @deprecated Use {@link Selected}. */\n public get selected(): ProductionModelVM {\n return this.Selected;\n }\n\n /**\n * Close the Operate dialog. On a successful change the dialog already refreshed the engine\n * (Config(true)) — the reactive `_Models` subscription re-renders the deploy state — but the\n * on-demand run history + bindings of the SELECTED model are not part of that stream, so reload them\n * here so a just-created run / binding shows immediately.\n */\n public OnOperateClose(result: { changed: boolean }): void {\n this.OperateOpen = false;\n if (result.changed && this.SelectedModelId) {\n this.SelectedBindings = this.bindingsForModel(this.SelectedModelId);\n void this.loadRuns(this.SelectedModelId);\n }\n }\n\n /** @deprecated Use {@link OnOperateClose}. */\n public onOperateClose(result: { changed: boolean }): void {\n return this.OnOperateClose(result);\n }\n\n public Select(id: string): void {\n this.SelectedModelId = id;\n this.SelectedBindings = this.bindingsForModel(id);\n this.CloseRun();\n void this.loadRuns(id);\n }\n\n /** @deprecated Use {@link Select}. */\n public select(id: string): void {\n return this.Select(id);\n }\n\n // ---- run drill-in: per-record predictions (on demand) ----\n\n /** Drill into a run's per-record predictions (`MJ: Process Run Details` `ResultPayload`). */\n public OpenRun(runId: string): void {\n this.SelectedRunId = runId;\n void this.loadRunDetails(runId);\n }\n\n /** @deprecated Use {@link OpenRun}. */\n public openRun(runId: string): void {\n return this.OpenRun(runId);\n }\n\n public CloseRun(): void {\n this.SelectedRunId = null;\n this.RunDetails = [];\n }\n\n /** @deprecated Use {@link CloseRun}. */\n public closeRun(): void {\n return this.CloseRun();\n }\n\n private async loadRunDetails(runId: string): Promise<void> {\n this.LoadingDetails = true;\n this.RunDetails = [];\n this.cdr.detectChanges();\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const r = await rv.RunView<MJProcessRunDetailEntity>(\n {\n EntityName: 'MJ: Process Run Details',\n ExtraFilter: `ProcessRunID='${runId}'`,\n OrderBy: '__mj_CreatedAt ASC',\n MaxRows: 200,\n ResultType: 'entity_object',\n },\n this.ProviderToUse.CurrentUser,\n );\n this.RunDetails = r.Success ? (r.Results ?? []).map((d) => this.toDetailVM(d)) : [];\n } finally {\n this.LoadingDetails = false;\n this.cdr.detectChanges();\n }\n }\n\n /** Project a Process Run Detail into a per-record prediction row, parsing the ML `ResultPayload`. */\n private toDetailVM(d: MJProcessRunDetailEntity): RunDetailVM {\n let score = '—';\n let cls: string | null = null;\n let scoredAt: string | null = d.CompletedAt ? d.CompletedAt.toISOString() : null;\n if (d.ResultPayload) {\n try {\n const p = JSON.parse(d.ResultPayload) as { score?: number; class?: string; scoredAt?: string };\n if (typeof p.score === 'number') {\n score = p.score.toFixed(4);\n }\n cls = p.class ?? null;\n scoredAt = p.scoredAt ?? scoredAt;\n } catch {\n /* leave defaults — a non-ML payload (or malformed) just shows '—' */\n }\n }\n return { recordId: d.RecordID ?? '—', status: d.Status, score, class: cls, scoredAt };\n }\n\n /** On-demand run history for the selected model (DB-light — only the selected model, capped). */\n private async loadRuns(modelId: string): Promise<void> {\n this.LoadingRuns = true;\n this.Runs = [];\n this.cdr.detectChanges();\n try {\n this.Runs = await this.engine.LoadRecentRunsForModel(\n modelId,\n this.ProviderToUse,\n this.ProviderToUse.CurrentUser,\n { sinceDays: 90, maxRows: 50 },\n );\n } finally {\n this.LoadingRuns = false;\n this.cdr.detectChanges();\n }\n }\n\n // ---- display helpers ----\n\n public DeployIcon(state: DeployState): string {\n switch (state) {\n case 'bound': return 'fa-solid fa-arrow-right-to-bracket';\n case 'scheduled': return 'fa-solid fa-clock';\n case 'idle': return 'fa-solid fa-circle-pause';\n }\n }\n\n /** @deprecated Use {@link DeployIcon}. */\n public deployIcon(state: DeployState): string {\n return this.DeployIcon(state);\n }\n public DeployLabel(state: DeployState): string {\n switch (state) {\n case 'bound': return 'Bound';\n case 'scheduled': return 'Scheduled';\n case 'idle': return 'Idle';\n }\n }\n\n /** @deprecated Use {@link DeployLabel}. */\n public deployLabel(state: DeployState): string {\n return this.DeployLabel(state);\n }\n public DeployBadge(state: DeployState): StatusVariant {\n switch (state) {\n case 'bound': return 'green';\n case 'scheduled': return 'blue';\n case 'idle': return 'gray';\n }\n }\n\n /** @deprecated Use {@link DeployBadge}. */\n public deployBadge(state: DeployState): StatusVariant {\n return this.DeployBadge(state);\n }\n public ModeBadge(mode: string): StatusVariant {\n return mode === 'Scheduled' ? 'blue' : mode === 'Materialized' ? 'green' : 'gray';\n }\n\n /** @deprecated Use {@link ModeBadge}. */\n public modeBadge(mode: string): StatusVariant {\n return this.ModeBadge(mode);\n }\n public RunBadge(status: string): StatusVariant {\n const s = (status || '').toLowerCase();\n if (s.includes('complete') || s.includes('success')) return 'green';\n if (s.includes('fail') || s.includes('error')) return 'red';\n if (s.includes('run') || s.includes('progress')) return 'blue';\n return 'gray';\n }\n\n /** @deprecated Use {@link RunBadge}. */\n public runBadge(status: string): StatusVariant {\n return this.RunBadge(status);\n }\n}\n"]}
1
+ {"version":3,"file":"ps-production.component.js","sourceRoot":"","sources":["../../../src/PredictiveStudio/components/ps-production.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewEncapsulation, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { AngularSplitModule } from 'angular-split';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { MJButtonDirective } from '@memberjunction/ng-ui-components';\nimport { RunView } from '@memberjunction/core';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { MJMLModelEntity, MJMLModelScoringBindingEntity, MJProcessRunDetailEntity, UserInfoEngine } from '@memberjunction/core-entities';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { PredictiveStudioEngine } from '../engine/predictive-studio.engine';\nimport { PSProcessRunRow, PrimaryAuc, PrimaryModelScore, FormatMetricValue } from '../predictive-studio.view-models';\nimport { humanizeCron, StatusVariant } from '../production-distribution';\nimport { PSOperateDialogComponent } from './ps-operate-dialog.component';\nimport { PSPredictionsGridComponent } from './ps-predictions-grid.component';\n\n/** A model's deployment state, derived purely from cached bindings + Record Processes. */\n/**\n * `needs-training` overrides the others: a model with no trained artifact can't score, so it is\n * never shown as Bound/Scheduled (which would promise results a run can't deliver).\n */\ntype DeployState = 'needs-training' | 'bound' | 'scheduled' | 'idle';\n\n/** One scoring binding shown in a model's deployment detail. */\ninterface BindingVM {\n id: string;\n targetEntity: string;\n targetColumn: string;\n mode: string;\n schedulePhrase: string | null;\n}\n\n/** One published model in the production control tower (DB-light — all fields from engine caches). */\ninterface ProductionModelVM {\n modelId: string;\n label: string;\n algorithm: string;\n problemType: string;\n version: number;\n holdoutMetric: string;\n deployState: DeployState;\n bindingCount: number;\n processCount: number;\n scheduledCount: number;\n /** Most recent scored-at across the model's bindings (cached lineage — no DB hit). */\n lastScoredAt: Date | null;\n lastRowCount: number | null;\n}\n\n/** One per-record prediction in a run's drill-in (parsed from `MJ: Process Run Details` `ResultPayload`). */\ninterface RunDetailVM {\n recordId: string;\n status: string;\n /** Formatted numeric prediction, or '—'. */\n score: string;\n /** Predicted class label (classification), or null. */\n class: string | null;\n /** ISO timestamp the prediction was produced (`$.scoredAt`), or the detail's completion time. */\n scoredAt: string | null;\n}\n\n/**\n * Models in Production — the **model-centric** control tower. Every approved (Published) model appears\n * here whether it's idle, scheduled, or bound — a scoring binding is a *deployment marker*, not a\n * prerequisite to appear or to run. Reactive + DB-light: the published-model list and each model's\n * deployment state come straight from the `PredictiveStudioEngine` caches (a `BaseEngine` subclass) via\n * `ObserveProperty`, so it re-renders on any model/binding change with no polling; a model's **past runs**\n * are loaded on demand when selected (`MJ: Process Runs` grow unbounded — never bulk-cached).\n *\n * Entity-agnostic: model labels derive from the producing pipeline; binding targets come from the binding\n * rows. **Operate** (the rocket button) opens the {@link PSOperateDialogComponent} to run/schedule/bind the\n * model; clicking a run drills into its per-record predictions (`MJ: Process Run Details`).\n */\n@Component({\n standalone: true,\n selector: 'ps-production',\n imports: [CommonModule, AngularSplitModule, SharedGenericModule, MJButtonDirective, PSOperateDialogComponent, PSPredictionsGridComponent],\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['../predictive-studio.shared.css', './ps-production.component.css'],\n template: `\n <div class=\"ps-panel ps-production\" data-testid=\"ps-production-panel\">\n @if (models.length === 0) {\n <div class=\"ps-empty\" data-testid=\"ps-production-empty\">\n <span class=\"ps-empty-ico\"><i class=\"fa-solid fa-satellite-dish\"></i></span>\n <h3>No models in production yet</h3>\n <p>\n When you publish a trained model in the Model Registry it shows up here — ready to schedule,\n bind to a column, and run. Train a pipeline and promote the model to Published to get started.\n </p>\n </div>\n } @else {\n <!-- KPI strip -->\n @if (!isRunFocused) {\n <div class=\"prod-kpis\" data-testid=\"ps-production-kpis\">\n <div class=\"ps-kpi\"><div class=\"label\">Published</div><div class=\"val\">{{ models.length }}</div></div>\n <div class=\"ps-kpi\"><div class=\"label\">Scheduled</div><div class=\"val\">{{ scheduledModelCount }}</div></div>\n <div class=\"ps-kpi\"><div class=\"label\">Bound (write-back)</div><div class=\"val\">{{ boundModelCount }}</div></div>\n <div class=\"ps-kpi\"><div class=\"label\">Idle</div><div class=\"val\">{{ idleModelCount }}</div></div>\n </div>\n }\n\n <div class=\"prod-layout\" [class.list-collapsed]=\"isListCollapsed\">\n @if (isListCollapsed) {\n <div class=\"prod-collapsed-strip\" data-testid=\"ps-production-collapsed-rail\">\n <button class=\"prod-rail-collapse\" type=\"button\" (click)=\"toggleList()\" aria-label=\"Expand models list\" title=\"Expand list\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n <div class=\"prod-collapsed-strip-label\"><i class=\"fa-solid fa-satellite-dish\"></i></div>\n </div>\n }\n\n <as-split direction=\"horizontal\" class=\"prod-splitter\" unit=\"percent\" [gutterSize]=\"6\" (dragEnd)=\"onSplitDragEnd($event.sizes)\">\n @if (!isListCollapsed) {\n <as-split-area [size]=\"listSizePct\" [minSize]=\"18\" [maxSize]=\"50\">\n <!-- master list -->\n <div class=\"ps-card mlist\" data-testid=\"ps-production-list\">\n <div class=\"ps-card-head\">\n <h3>Published models</h3>\n <div style=\"display:flex;gap:6px;align-items:center\">\n <span class=\"ps-badge gray\">{{ models.length }}</span>\n <button class=\"prod-collapse-btn\" type=\"button\" (click)=\"toggleList()\" title=\"Collapse list\" aria-label=\"Collapse list\">\n <i class=\"fa-solid fa-chevron-left\"></i>\n </button>\n </div>\n </div>\n <div class=\"ps-card-body\" style=\"padding:8px\">\n @for (m of models; track m.modelId) {\n <div class=\"mrow\" data-testid=\"ps-production-row\" [class.sel]=\"m.modelId === selectedModelId\" (click)=\"select(m.modelId)\">\n <div class=\"ico\" [class]=\"'st-' + m.deployState\"><i [class]=\"deployIcon(m.deployState)\"></i></div>\n <div style=\"flex:1;min-width:0\">\n <div class=\"nm\">{{ m.label }}</div>\n <div class=\"ln2 ps-muted ps-small\">v{{ m.version }} · {{ m.algorithm }}</div>\n </div>\n <div class=\"meta\">\n <span class=\"ps-badge\" [class]=\"deployBadge(m.deployState)\">{{ deployLabel(m.deployState) }}</span>\n <div class=\"ps-mono ps-small ps-muted\">{{ m.holdoutMetric }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n </as-split-area>\n }\n\n <as-split-area [size]=\"isListCollapsed ? 100 : detailSizePct\" [minSize]=\"50\">\n <!-- detail -->\n <div class=\"ps-col detail\" [class.focused-run]=\"selectedRunId && isRunFocused\" data-testid=\"ps-production-detail\">\n <!-- 1. MODEL HEADER CARD -->\n <div class=\"ps-card prod-header-card\" [class.collapsed]=\"isHeaderCollapsed\">\n @if (!isHeaderCollapsed) {\n <div class=\"ps-card-body dh\">\n <div class=\"big-ico\" [class]=\"'st-' + selected.deployState\"><i [class]=\"deployIcon(selected.deployState)\"></i></div>\n <div style=\"flex:1;min-width:0\">\n <h2 data-testid=\"ps-production-detail-name\">{{ selected.label }} <span class=\"ps-tag ps-mono\">v{{ selected.version }}</span></h2>\n <div class=\"ps-muted ps-small sub\">{{ selected.algorithm }} · {{ selected.problemType }} · holdout {{ selected.holdoutMetric }}</div>\n </div>\n <span class=\"ps-badge\" [class]=\"deployBadge(selected.deployState)\">{{ deployLabel(selected.deployState) }}</span>\n <button mjButton variant=\"primary\" size=\"sm\" data-testid=\"ps-production-operate\" [disabled]=\"selected.deployState === 'needs-training'\" [title]=\"selected.deployState === 'needs-training' ? 'Train this model before operating it' : 'Operate this model'\" (click)=\"operateOpen = true\">\n <i class=\"fa-solid fa-rocket\"></i> Operate\n </button>\n <button class=\"ps-card-collapse-btn\" type=\"button\" (click)=\"toggleHeaderCollapse()\" title=\"Collapse model header\" aria-label=\"Collapse model header\">\n <i class=\"fa-solid fa-chevron-up\"></i>\n </button>\n </div>\n } @else {\n <div class=\"ps-card-body dh-compact\" (click)=\"toggleHeaderCollapse()\">\n <div class=\"mini-ico\" [class]=\"'st-' + selected.deployState\"><i [class]=\"deployIcon(selected.deployState)\"></i></div>\n <div class=\"compact-info\">\n <strong>{{ selected.label }}</strong>\n <span class=\"ps-tag ps-mono ps-small\">v{{ selected.version }}</span>\n <span class=\"ps-muted ps-small\">· {{ selected.algorithm }}</span>\n </div>\n <span class=\"ps-badge\" [class]=\"deployBadge(selected.deployState)\">{{ deployLabel(selected.deployState) }}</span>\n <button mjButton variant=\"primary\" size=\"sm\" data-testid=\"ps-production-operate-compact\" [disabled]=\"selected.deployState === 'needs-training'\" (click)=\"$event.stopPropagation(); operateOpen = true\">\n <i class=\"fa-solid fa-rocket\"></i> Operate\n </button>\n <button class=\"ps-card-collapse-btn\" type=\"button\" (click)=\"$event.stopPropagation(); toggleHeaderCollapse()\" title=\"Expand model header\" aria-label=\"Expand model header\">\n <i class=\"fa-solid fa-chevron-down\"></i>\n </button>\n </div>\n }\n </div>\n\n <!-- 2. DEPLOYMENT STATUS CARD -->\n <div class=\"ps-card prod-deployment-card\" [class.collapsed]=\"isDeploymentCollapsed\">\n <div class=\"ps-card-head clickable\" (click)=\"toggleDeploymentCollapse()\">\n <div style=\"display:flex;align-items:center;gap:8px\">\n <i class=\"fa-solid fa-network-wired\" style=\"color:var(--mj-brand-primary)\"></i>\n <h3>Deployment</h3>\n <span class=\"ps-muted ps-small\">{{ selected.processCount }} process{{ selected.processCount === 1 ? '' : 'es' }} · {{ selected.bindingCount }} binding{{ selected.bindingCount === 1 ? '' : 's' }}</span>\n @if (isDeploymentCollapsed && selectedBindings.length > 0) {\n <span class=\"ps-badge gray ps-small\">{{ selectedBindings[0].targetEntity }}.{{ selectedBindings[0].targetColumn }}</span>\n }\n </div>\n <div style=\"display:flex;align-items:center;gap:6px\">\n <button class=\"ps-card-collapse-btn\" type=\"button\" (click)=\"$event.stopPropagation(); toggleDeploymentCollapse()\" [title]=\"isDeploymentCollapsed ? 'Expand deployment' : 'Collapse deployment'\" [attr.aria-label]=\"isDeploymentCollapsed ? 'Expand deployment' : 'Collapse deployment'\">\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"!isDeploymentCollapsed\" [class.fa-chevron-down]=\"isDeploymentCollapsed\"></i>\n </button>\n </div>\n </div>\n @if (!isDeploymentCollapsed) {\n <div class=\"ps-card-body\">\n @if (selected.deployState === 'needs-training') {\n <div class=\"ps-callout warn\" data-testid=\"ps-production-needs-training\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n <div class=\"ps-small\">This model <strong>needs training</strong> — it has no trained model artifact on this server, so it can't score anything yet. Train its pipeline (Pipelines → Train), then publish the new model; scoring processes that opt in to auto-train do this on their next run.</div>\n </div>\n } @else if (selected.deployState === 'idle') {\n <div class=\"ps-callout info\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <div class=\"ps-small\">This model is published but <strong>not operating</strong> yet — nothing scores with it. Click <strong>Operate</strong> above to run it now, schedule it to run regularly, or write predictions back to a column.</div>\n </div>\n } @else {\n @if (selectedBindings.length > 0) {\n <div class=\"ps-section-title\">Scoring bindings</div>\n @for (b of selectedBindings; track b.id) {\n <div class=\"bind-row\">\n <i class=\"fa-solid fa-arrow-right-to-bracket ps-muted\"></i>\n <div style=\"flex:1\">\n <div class=\"ps-small\"><strong>{{ b.targetEntity }}</strong>.{{ b.targetColumn }}</div>\n <div class=\"ps-muted ps-small\">{{ b.mode }}{{ b.schedulePhrase ? ' · ' + b.schedulePhrase : '' }}</div>\n </div>\n <span class=\"ps-badge\" [class]=\"modeBadge(b.mode)\">{{ b.mode }}</span>\n </div>\n }\n } @else {\n <div class=\"ps-small ps-muted\">Scheduled to run, writing generic output to the process run history (no write-back column).</div>\n }\n @if (selected.lastScoredAt) {\n <div class=\"ps-divider\"></div>\n <div class=\"ps-row\" style=\"justify-content:space-between\"><span class=\"ps-muted ps-small\">Last scored</span><span class=\"ps-small\">{{ selected.lastScoredAt | date:'medium' }}{{ selected.lastRowCount != null ? ' · ' + selected.lastRowCount + ' rows' : '' }}</span></div>\n }\n }\n </div>\n }\n </div>\n\n <!-- 3. RUN HISTORY CARD -->\n <div class=\"ps-card run-card\" [class.drilldown-active]=\"selectedRunId\" [class.focus-fill]=\"selectedRunId && isRunFocused\">\n <div class=\"ps-card-head\">\n <div style=\"display:flex;align-items:center;gap:8px\">\n <i class=\"fa-solid fa-clock-rotate-left\" style=\"color:var(--mj-status-info)\"></i>\n <h3>Run history</h3>\n <span class=\"ps-muted ps-small\">last 90 days · newest first</span>\n </div>\n @if (selectedRunId) {\n <div style=\"display:flex;align-items:center;gap:8px\">\n <button class=\"ps-focus-toggle-btn\" type=\"button\" (click)=\"toggleRunFocus()\" [class.active]=\"isRunFocused\" [title]=\"isRunFocused ? 'Exit focus (expand header & deployment)' : 'Focus mode (collapse header & deployment)'\">\n <i class=\"fa-solid\" [class.fa-compress]=\"isRunFocused\" [class.fa-expand]=\"!isRunFocused\"></i>\n <span>{{ isRunFocused ? 'Exit Focus' : 'Focus' }}</span>\n </button>\n </div>\n }\n </div>\n <div class=\"ps-card-body run-card-body\">\n @if (selectedRunId) {\n <!-- run drill-in: unified predictions grid with virtual scrolling, name resolution, charts & history -->\n <div class=\"run-drill-nav\">\n <button class=\"run-back\" data-testid=\"ps-production-run-back\" (click)=\"closeRun()\">\n <i class=\"fa-solid fa-arrow-left\"></i> All runs\n </button>\n <span class=\"ps-tag ps-mono ps-small\">Run: {{ selectedRunId }}</span>\n </div>\n <ps-predictions-grid\n data-testid=\"ps-production-run-grid\"\n [modelId]=\"selected.modelId\"\n [runId]=\"selectedRunId\"\n [entityName]=\"selectedTargetEntityName\"\n [problemType]=\"selected.problemType\"\n [title]=\"selected.label + ' — Run Predictions'\"\n [height]=\"runGridHeight\">\n </ps-predictions-grid>\n } @else if (loadingRuns) {\n <mj-loading text=\"Loading runs...\" size=\"small\"></mj-loading>\n } @else if (runs.length === 0) {\n <div class=\"ps-small ps-muted\">No runs recorded yet. Each time this model runs as a Record Process, its predictions are saved to the process run history — even without a scoring binding.</div>\n } @else {\n <table class=\"runs-table\">\n <thead><tr><th>When</th><th>Status</th><th>Scored</th><th>Process</th><th></th></tr></thead>\n <tbody>\n @for (r of runs; track r.ID) {\n <tr data-testid=\"ps-production-run\" class=\"run-row\" (click)=\"openRun(r.ID)\">\n <td>{{ (r.StartTime || r.CreatedAt) | date:'short' }}</td>\n <td><span class=\"ps-badge\" [class]=\"runBadge(r.Status)\">{{ r.Status }}</span></td>\n <td class=\"ps-mono\">{{ r.SuccessCount }}<span class=\"ps-muted\">/{{ r.TotalItemCount ?? 0 }}</span></td>\n <td class=\"ps-small ps-muted\">{{ r.ProcessName || '—' }}</td>\n <td class=\"run-right\">@if (r.DryRun) { <span class=\"ps-tag amber\">dry run</span> }<i class=\"fa-solid fa-chevron-right ps-muted\"></i></td>\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n </div>\n </div>\n </as-split-area>\n </as-split>\n </div>\n\n <ps-operate-dialog\n [Visible]=\"operateOpen\"\n [modelId]=\"selected.modelId\"\n [modelLabel]=\"selected.label\"\n [engine]=\"engine\"\n [provider]=\"ProviderToUse\"\n [currentUser]=\"ProviderToUse.CurrentUser\"\n (Close)=\"onOperateClose($event)\">\n </ps-operate-dialog>\n }\n </div>\n `,\n})\nexport class PSProductionComponent extends BaseAngularComponent implements OnInit, OnDestroy {\n @Input() engine!: PredictiveStudioEngine;\n\n private cdr = inject(ChangeDetectorRef);\n private modelsSub?: Subscription;\n\n public Models: ProductionModelVM[] = [];\n\n /** @deprecated Use {@link Models}. */\n public get models(): ProductionModelVM[] {\n return this.Models;\n }\n /** @deprecated Use {@link Models}. */\n public set models(value: ProductionModelVM[]) {\n this.Models = value;\n }\n public SelectedModelId = '';\n\n /** @deprecated Use {@link SelectedModelId}. */\n public get selectedModelId() {\n return this.SelectedModelId;\n }\n /** @deprecated Use {@link SelectedModelId}. */\n public set selectedModelId(value) {\n this.SelectedModelId = value;\n }\n public SelectedBindings: BindingVM[] = [];\n\n /** @deprecated Use {@link SelectedBindings}. */\n public get selectedBindings(): BindingVM[] {\n return this.SelectedBindings;\n }\n /** @deprecated Use {@link SelectedBindings}. */\n public set selectedBindings(value: BindingVM[]) {\n this.SelectedBindings = value;\n }\n public Runs: PSProcessRunRow[] = [];\n\n /** @deprecated Use {@link Runs}. */\n public get runs(): PSProcessRunRow[] {\n return this.Runs;\n }\n /** @deprecated Use {@link Runs}. */\n public set runs(value: PSProcessRunRow[]) {\n this.Runs = value;\n }\n public LoadingRuns = false;\n\n /** @deprecated Use {@link LoadingRuns}. */\n public get loadingRuns() {\n return this.LoadingRuns;\n }\n /** @deprecated Use {@link LoadingRuns}. */\n public set loadingRuns(value) {\n this.LoadingRuns = value;\n }\n public LoadingDetails = false;\n\n /** @deprecated Use {@link LoadingDetails}. */\n public get loadingDetails() {\n return this.LoadingDetails;\n }\n /** @deprecated Use {@link LoadingDetails}. */\n public set loadingDetails(value) {\n this.LoadingDetails = value;\n }\n /** Whether the \"Operate this model\" dialog is open for the selected model. */\n public OperateOpen = false;\n\n /** @deprecated Use {@link OperateOpen}. */\n public get operateOpen() {\n return this.OperateOpen;\n }\n /** @deprecated Use {@link OperateOpen}. */\n public set operateOpen(value) {\n this.OperateOpen = value;\n }\n /** The run whose per-record predictions are drilled into (null = the run list). */\n public SelectedRunId: string | null = null;\n\n /** @deprecated Use {@link SelectedRunId}. */\n public get selectedRunId(): string | null {\n return this.SelectedRunId;\n }\n /** @deprecated Use {@link SelectedRunId}. */\n public set selectedRunId(value: string | null) {\n this.SelectedRunId = value;\n }\n public RunDetails: RunDetailVM[] = [];\n\n /** @deprecated Use {@link RunDetails}. */\n public get runDetails(): RunDetailVM[] {\n return this.RunDetails;\n }\n /** @deprecated Use {@link RunDetails}. */\n public set runDetails(value: RunDetailVM[]) {\n this.RunDetails = value;\n }\n public ListSizePct = 30;\n\n /** @deprecated Use {@link ListSizePct}. */\n public get listSizePct() {\n return this.ListSizePct;\n }\n /** @deprecated Use {@link ListSizePct}. */\n public set listSizePct(value) {\n this.ListSizePct = value;\n }\n public DetailSizePct = 70;\n\n /** @deprecated Use {@link DetailSizePct}. */\n public get detailSizePct() {\n return this.DetailSizePct;\n }\n /** @deprecated Use {@link DetailSizePct}. */\n public set detailSizePct(value) {\n this.DetailSizePct = value;\n }\n public IsListCollapsed = false;\n\n /** @deprecated Use {@link IsListCollapsed}. */\n public get isListCollapsed() {\n return this.IsListCollapsed;\n }\n /** @deprecated Use {@link IsListCollapsed}. */\n public set isListCollapsed(value) {\n this.IsListCollapsed = value;\n }\n public IsHeaderCollapsed = false;\n\n /** @deprecated Use {@link IsHeaderCollapsed}. */\n public get isHeaderCollapsed() {\n return this.IsHeaderCollapsed;\n }\n /** @deprecated Use {@link IsHeaderCollapsed}. */\n public set isHeaderCollapsed(value) {\n this.IsHeaderCollapsed = value;\n }\n public IsDeploymentCollapsed = false;\n\n /** @deprecated Use {@link IsDeploymentCollapsed}. */\n public get isDeploymentCollapsed() {\n return this.IsDeploymentCollapsed;\n }\n /** @deprecated Use {@link IsDeploymentCollapsed}. */\n public set isDeploymentCollapsed(value) {\n this.IsDeploymentCollapsed = value;\n }\n public IsRunFocused = false;\n\n /** @deprecated Use {@link IsRunFocused}. */\n public get isRunFocused() {\n return this.IsRunFocused;\n }\n /** @deprecated Use {@link IsRunFocused}. */\n public set isRunFocused(value) {\n this.IsRunFocused = value;\n }\n\n public get RunGridHeight(): string {\n if (this.IsRunFocused || (this.IsHeaderCollapsed && this.IsDeploymentCollapsed)) {\n return '740px';\n }\n return '520px';\n }\n\n /** @deprecated Use {@link RunGridHeight}. */\n public get runGridHeight(): string {\n return this.RunGridHeight;\n }\n\n ngOnInit(): void {\n this.loadLayoutPrefs();\n // Reactive: rebuild the published-model list on any MJ: ML Models change (save/delete/remote-invalidate).\n this.modelsSub = this.engine\n .ObserveProperty<MJMLModelEntity>('_Models')\n .subscribe(() => {\n this.rebuildModels();\n this.cdr.detectChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.modelsSub?.unsubscribe();\n }\n\n // ---- layout splitter resizing & persistence ----\n\n public ToggleHeaderCollapse(): void {\n this.IsHeaderCollapsed = !this.IsHeaderCollapsed;\n this.updateFocusState();\n this.saveLayoutPrefs();\n this.cdr.detectChanges();\n }\n\n /** @deprecated Use {@link ToggleHeaderCollapse}. */\n public toggleHeaderCollapse(): void {\n return this.ToggleHeaderCollapse();\n }\n\n public ToggleDeploymentCollapse(): void {\n this.IsDeploymentCollapsed = !this.IsDeploymentCollapsed;\n this.updateFocusState();\n this.saveLayoutPrefs();\n this.cdr.detectChanges();\n }\n\n /** @deprecated Use {@link ToggleDeploymentCollapse}. */\n public toggleDeploymentCollapse(): void {\n return this.ToggleDeploymentCollapse();\n }\n\n public ToggleRunFocus(): void {\n this.IsRunFocused = !this.IsRunFocused;\n if (this.IsRunFocused) {\n this.IsHeaderCollapsed = true;\n this.IsDeploymentCollapsed = true;\n } else {\n this.IsHeaderCollapsed = false;\n this.IsDeploymentCollapsed = false;\n }\n this.saveLayoutPrefs();\n this.cdr.detectChanges();\n }\n\n /** @deprecated Use {@link ToggleRunFocus}. */\n public toggleRunFocus(): void {\n return this.ToggleRunFocus();\n }\n\n private updateFocusState(): void {\n this.IsRunFocused = this.IsHeaderCollapsed && this.IsDeploymentCollapsed;\n }\n\n private loadLayoutPrefs(): void {\n const raw = UserInfoEngine.Instance.GetSetting('mj.predictiveStudio.production.layout');\n if (raw) {\n try {\n const parsed = JSON.parse(raw);\n if (typeof parsed.listSizePct === 'number' && parsed.listSizePct >= 15 && parsed.listSizePct <= 60) {\n this.ListSizePct = parsed.listSizePct;\n this.DetailSizePct = 100 - parsed.listSizePct;\n }\n if (typeof parsed.isListCollapsed === 'boolean') {\n this.IsListCollapsed = parsed.isListCollapsed;\n }\n if (typeof parsed.isHeaderCollapsed === 'boolean') {\n this.IsHeaderCollapsed = parsed.isHeaderCollapsed;\n }\n if (typeof parsed.isDeploymentCollapsed === 'boolean') {\n this.IsDeploymentCollapsed = parsed.isDeploymentCollapsed;\n }\n if (typeof parsed.isRunFocused === 'boolean') {\n this.IsRunFocused = parsed.isRunFocused;\n }\n } catch {}\n }\n }\n\n public OnSplitDragEnd(sizes: readonly (number | '*')[]): void {\n if (Array.isArray(sizes) && sizes.length === 2 && typeof sizes[0] === 'number' && typeof sizes[1] === 'number') {\n this.ListSizePct = Math.round(sizes[0]);\n this.DetailSizePct = Math.round(sizes[1]);\n this.saveLayoutPrefs();\n }\n }\n\n /** @deprecated Use {@link OnSplitDragEnd}. */\n public onSplitDragEnd(sizes: readonly (number | '*')[]): void {\n return this.OnSplitDragEnd(sizes);\n }\n\n public ToggleList(): void {\n this.IsListCollapsed = !this.IsListCollapsed;\n this.saveLayoutPrefs();\n this.cdr.detectChanges();\n }\n\n /** @deprecated Use {@link ToggleList}. */\n public toggleList(): void {\n return this.ToggleList();\n }\n\n private saveLayoutPrefs(): void {\n const prefs = {\n listSizePct: this.ListSizePct,\n detailSizePct: this.DetailSizePct,\n isListCollapsed: this.IsListCollapsed,\n isHeaderCollapsed: this.IsHeaderCollapsed,\n isDeploymentCollapsed: this.IsDeploymentCollapsed,\n isRunFocused: this.IsRunFocused,\n };\n UserInfoEngine.Instance.SetSettingDebounced('mj.predictiveStudio.production.layout', JSON.stringify(prefs));\n }\n\n // ---- KPIs ----\n\n public get ScheduledModelCount(): number {\n return this.Models.filter((m) => m.deployState === 'scheduled' || m.scheduledCount > 0).length;\n }\n\n /** @deprecated Use {@link ScheduledModelCount}. */\n public get scheduledModelCount(): number {\n return this.ScheduledModelCount;\n }\n public get BoundModelCount(): number {\n return this.Models.filter((m) => m.bindingCount > 0).length;\n }\n\n /** @deprecated Use {@link BoundModelCount}. */\n public get boundModelCount(): number {\n return this.BoundModelCount;\n }\n public get IdleModelCount(): number {\n return this.Models.filter((m) => m.deployState === 'idle').length;\n }\n\n /** @deprecated Use {@link IdleModelCount}. */\n public get idleModelCount(): number {\n return this.IdleModelCount;\n }\n\n // ---- reactive list build (DB-light, from caches) ----\n\n private rebuildModels(): void {\n this.Models = (this.engine?.PublishedModels ?? []).map((m) => this.toVM(m));\n if (!this.Models.some((m) => UUIDsEqual(m.modelId, this.SelectedModelId))) {\n const first = this.Models[0]?.modelId ?? '';\n if (first) {\n this.Select(first);\n } else {\n this.SelectedModelId = '';\n this.SelectedBindings = [];\n this.Runs = [];\n }\n } else {\n this.SelectedBindings = this.bindingsForModel(this.SelectedModelId);\n }\n }\n\n private toVM(m: MJMLModelEntity): ProductionModelVM {\n const bindings = this.engine.ScoringBindings.filter((b) => UUIDsEqual(b.MLModelID, m.ID));\n const processes = this.engine.RecordProcessesForModel(m.ID);\n const scheduledCount = processes.filter((p) => !!p.ScheduleEnabled).length\n + bindings.filter((b) => b.Mode === 'Scheduled').length;\n const lastScoredAt = bindings.reduce<Date | null>(\n (acc, b) => (b.LastScoredAt && (!acc || b.LastScoredAt.getTime() > acc.getTime()) ? b.LastScoredAt : acc),\n null,\n );\n const lastRowCount = bindings.find((b) => b.LastRowCount != null)?.LastRowCount ?? null;\n const score = PrimaryModelScore(m);\n const holdoutMetric = score != null ? FormatMetricValue(score.key, score.value) : '—';\n return {\n modelId: m.ID,\n label: this.engine.ModelDisplayName(m),\n algorithm: this.engine.AlgorithmName(m.AlgorithmID),\n problemType: m.ProblemType ?? '—',\n version: m.Version,\n holdoutMetric,\n deployState: !m.ArtifactFileID ? 'needs-training' : bindings.length > 0 ? 'bound' : scheduledCount > 0 ? 'scheduled' : 'idle',\n bindingCount: bindings.length,\n processCount: processes.length,\n scheduledCount,\n lastScoredAt,\n lastRowCount,\n };\n }\n\n private bindingsForModel(modelId: string): BindingVM[] {\n return this.engine.ScoringBindings\n .filter((b) => UUIDsEqual(b.MLModelID, modelId))\n .map((b) => this.toBindingVM(b));\n }\n\n private toBindingVM(b: MJMLModelScoringBindingEntity): BindingVM {\n const process = this.engine.RecordProcessByID(b.RecordProcessID);\n return {\n id: b.ID,\n targetEntity: this.resolveEntityName(b),\n targetColumn: b.TargetColumn ?? '(generic output)',\n mode: b.Mode,\n schedulePhrase: b.Mode === 'Scheduled' ? humanizeCron(process?.CronExpression ?? null) : null,\n };\n }\n\n private resolveEntityName(b: MJMLModelScoringBindingEntity): string {\n if (b.TargetEntity) return b.TargetEntity;\n if (b.TargetEntityID) {\n const entity = this.ProviderToUse.Entities.find((e) => UUIDsEqual(e.ID, b.TargetEntityID));\n if (entity) return entity.Name;\n }\n return '—';\n }\n\n public get SelectedTargetEntityName(): string | null {\n if (this.SelectedBindings.length > 0 && this.SelectedBindings[0].targetEntity !== '—') {\n return this.SelectedBindings[0].targetEntity;\n }\n const model = this.engine?.PublishedModels?.find((m) => UUIDsEqual(m.ID, this.Selected.modelId));\n if (model?.PipelineID) {\n const pipeline = this.engine?.Pipelines?.find((p) => UUIDsEqual(p.ID, model.PipelineID));\n if (pipeline?.TargetEntityID) {\n const ent = this.ProviderToUse.Entities.find((e) => UUIDsEqual(e.ID, pipeline.TargetEntityID));\n if (ent) return ent.Name;\n }\n }\n return null;\n }\n\n /** @deprecated Use {@link SelectedTargetEntityName}. */\n public get selectedTargetEntityName(): string | null {\n return this.SelectedTargetEntityName;\n }\n\n // ---- selection + on-demand run history ----\n\n public get Selected(): ProductionModelVM {\n return (\n this.Models.find((m) => UUIDsEqual(m.modelId, this.SelectedModelId)) ??\n this.Models[0] ?? {\n modelId: '', label: '—', algorithm: '—', problemType: '—', version: 0, holdoutMetric: '—',\n deployState: 'idle', bindingCount: 0, processCount: 0, scheduledCount: 0, lastScoredAt: null, lastRowCount: null,\n }\n );\n }\n\n /** @deprecated Use {@link Selected}. */\n public get selected(): ProductionModelVM {\n return this.Selected;\n }\n\n /**\n * Close the Operate dialog. On a successful change the dialog already refreshed the engine\n * (Config(true)) — the reactive `_Models` subscription re-renders the deploy state — but the\n * on-demand run history + bindings of the SELECTED model are not part of that stream, so reload them\n * here so a just-created run / binding shows immediately.\n */\n public OnOperateClose(result: { changed: boolean }): void {\n this.OperateOpen = false;\n if (result.changed && this.SelectedModelId) {\n this.SelectedBindings = this.bindingsForModel(this.SelectedModelId);\n void this.loadRuns(this.SelectedModelId);\n }\n }\n\n /** @deprecated Use {@link OnOperateClose}. */\n public onOperateClose(result: { changed: boolean }): void {\n return this.OnOperateClose(result);\n }\n\n public Select(id: string): void {\n this.SelectedModelId = id;\n this.SelectedBindings = this.bindingsForModel(id);\n this.CloseRun();\n void this.loadRuns(id);\n }\n\n /** @deprecated Use {@link Select}. */\n public select(id: string): void {\n return this.Select(id);\n }\n\n // ---- run drill-in: per-record predictions (on demand) ----\n\n /** Drill into a run's per-record predictions (`MJ: Process Run Details` `ResultPayload`). */\n public OpenRun(runId: string): void {\n this.SelectedRunId = runId;\n void this.loadRunDetails(runId);\n }\n\n /** @deprecated Use {@link OpenRun}. */\n public openRun(runId: string): void {\n return this.OpenRun(runId);\n }\n\n public CloseRun(): void {\n this.SelectedRunId = null;\n this.RunDetails = [];\n }\n\n /** @deprecated Use {@link CloseRun}. */\n public closeRun(): void {\n return this.CloseRun();\n }\n\n private async loadRunDetails(runId: string): Promise<void> {\n this.LoadingDetails = true;\n this.RunDetails = [];\n this.cdr.detectChanges();\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const r = await rv.RunView<MJProcessRunDetailEntity>(\n {\n EntityName: 'MJ: Process Run Details',\n ExtraFilter: `ProcessRunID='${runId}'`,\n OrderBy: '__mj_CreatedAt ASC',\n MaxRows: 200,\n ResultType: 'entity_object',\n },\n this.ProviderToUse.CurrentUser,\n );\n this.RunDetails = r.Success ? (r.Results ?? []).map((d) => this.toDetailVM(d)) : [];\n } finally {\n this.LoadingDetails = false;\n this.cdr.detectChanges();\n }\n }\n\n /** Project a Process Run Detail into a per-record prediction row, parsing the ML `ResultPayload`. */\n private toDetailVM(d: MJProcessRunDetailEntity): RunDetailVM {\n let score = '—';\n let cls: string | null = null;\n let scoredAt: string | null = d.CompletedAt ? d.CompletedAt.toISOString() : null;\n if (d.ResultPayload) {\n try {\n const p = JSON.parse(d.ResultPayload) as { score?: number; class?: string; scoredAt?: string };\n if (typeof p.score === 'number') {\n score = p.score.toFixed(4);\n }\n cls = p.class ?? null;\n scoredAt = p.scoredAt ?? scoredAt;\n } catch {\n /* leave defaults — a non-ML payload (or malformed) just shows '—' */\n }\n }\n return { recordId: d.RecordID ?? '—', status: d.Status, score, class: cls, scoredAt };\n }\n\n /** On-demand run history for the selected model (DB-light — only the selected model, capped). */\n private async loadRuns(modelId: string): Promise<void> {\n this.LoadingRuns = true;\n this.Runs = [];\n this.cdr.detectChanges();\n try {\n this.Runs = await this.engine.LoadRecentRunsForModel(\n modelId,\n this.ProviderToUse,\n this.ProviderToUse.CurrentUser,\n { sinceDays: 90, maxRows: 50 },\n );\n } finally {\n this.LoadingRuns = false;\n this.cdr.detectChanges();\n }\n }\n\n // ---- display helpers ----\n\n public DeployIcon(state: DeployState): string {\n switch (state) {\n case 'needs-training': return 'fa-solid fa-triangle-exclamation';\n case 'bound': return 'fa-solid fa-arrow-right-to-bracket';\n case 'scheduled': return 'fa-solid fa-clock';\n case 'idle': return 'fa-solid fa-circle-pause';\n }\n }\n\n /** @deprecated Use {@link DeployIcon}. */\n public deployIcon(state: DeployState): string {\n return this.DeployIcon(state);\n }\n public DeployLabel(state: DeployState): string {\n switch (state) {\n case 'needs-training': return 'Needs training';\n case 'bound': return 'Bound';\n case 'scheduled': return 'Scheduled';\n case 'idle': return 'Idle';\n }\n }\n\n /** @deprecated Use {@link DeployLabel}. */\n public deployLabel(state: DeployState): string {\n return this.DeployLabel(state);\n }\n public DeployBadge(state: DeployState): StatusVariant {\n switch (state) {\n case 'needs-training': return 'amber';\n case 'bound': return 'green';\n case 'scheduled': return 'blue';\n case 'idle': return 'gray';\n }\n }\n\n /** @deprecated Use {@link DeployBadge}. */\n public deployBadge(state: DeployState): StatusVariant {\n return this.DeployBadge(state);\n }\n public ModeBadge(mode: string): StatusVariant {\n return mode === 'Scheduled' ? 'blue' : mode === 'Materialized' ? 'green' : 'gray';\n }\n\n /** @deprecated Use {@link ModeBadge}. */\n public modeBadge(mode: string): StatusVariant {\n return this.ModeBadge(mode);\n }\n public RunBadge(status: string): StatusVariant {\n const s = (status || '').toLowerCase();\n if (s.includes('complete') || s.includes('success')) return 'green';\n if (s.includes('fail') || s.includes('error')) return 'red';\n if (s.includes('run') || s.includes('progress')) return 'blue';\n return 'gray';\n }\n\n /** @deprecated Use {@link RunBadge}. */\n public runBadge(status: string): StatusVariant {\n return this.RunBadge(status);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"query-browser-resource.component.d.ts","sourceRoot":"","sources":["../../src/QueryBrowser/query-browser-resource.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-browser-resource.component.d.ts","sourceRoot":"","sources":["../../src/QueryBrowser/query-browser-resource.component.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var QueryBrowserResourceComponent_1;
8
8
  import { Component, ChangeDetectionStrategy, HostListener, ViewChild } from '@angular/core';
9
9
  import { Subject } from 'rxjs';
10
- import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
10
+ import { GroupByUUID, RegisterClass, UUIDsEqual } from '@memberjunction/global';
11
11
  import { BaseResourceComponent } from '@memberjunction/ng-shared';
12
12
  import { CompositeKey, RunQuery } from '@memberjunction/core';
13
13
  import { UserInfoEngine, QueryEngine } from '@memberjunction/core-entities';
@@ -1136,9 +1136,10 @@ let QueryBrowserResourceComponent = class QueryBrowserResourceComponent extends
1136
1136
  const categoryMap = new Map();
1137
1137
  // Use filtered queries (status + search filters applied)
1138
1138
  const visibleQueries = this.FilteredQueries;
1139
+ const queriesByCategory = GroupByUUID(visibleQueries, q => q.CategoryID);
1139
1140
  // Create nodes for all categories, restoring expanded state
1140
1141
  for (const category of this.Categories) {
1141
- const queriesInCategory = visibleQueries.filter(q => UUIDsEqual(q.CategoryID, category.ID));
1142
+ const queriesInCategory = queriesByCategory.Get(category.ID) ?? [];
1142
1143
  categoryMap.set(category.ID, {
1143
1144
  category,
1144
1145
  children: [],