@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":"model-prompt-priority-matrix.component.js","sourceRoot":"","sources":["../../../../src/AI/components/prompts/model-prompt-priority-matrix.component.ts","../../../../src/AI/components/prompts/model-prompt-priority-matrix.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { RunView, Metadata, LogError, LogStatus } from '@memberjunction/core';\nimport { MJAIPromptModelEntity } from '@memberjunction/core-entities';\nimport { Subject, BehaviorSubject } from 'rxjs';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJAIModelEntityExtended, MJAIPromptEntityExtended } from '@memberjunction/ai-core-plus';\nimport { UUIDsEqual } from '@memberjunction/global';\n\ninterface PromptModelAssociation {\n promptId: string;\n promptName: string;\n modelId: string;\n modelName: string;\n priority: number;\n status: string;\n association: MJAIPromptModelEntity | null;\n isNew: boolean;\n isModified: boolean;\n}\n\ninterface MatrixCell {\n promptId: string;\n modelId: string;\n association: PromptModelAssociation | null;\n canAssign: boolean;\n}\n\n@Component({\n standalone: false,\n selector: 'app-model-prompt-priority-matrix',\n templateUrl: './model-prompt-priority-matrix.component.html',\n styleUrls: ['./model-prompt-priority-matrix.component.css']\n})\nexport class ModelPromptPriorityMatrixComponent implements OnInit, OnDestroy {\n @Input() selectedPrompts: MJAIPromptEntityExtended[] = [];\n @Input() selectedModels: MJAIModelEntityExtended[] = [];\n @Input() readonly = false;\n \n @Output() associationsChange = new EventEmitter<PromptModelAssociation[]>();\n @Output() stateChange = new EventEmitter<any>();\n @Output() promptSelected = new EventEmitter<MJAIPromptEntityExtended>();\n \n // Data\n public prompts: MJAIPromptEntityExtended[] = [];\n public models: MJAIModelEntityExtended[] = [];\n public associations: PromptModelAssociation[] = [];\n public matrix: MatrixCell[][] = [];\n \n // UI State\n public isLoading = false;\n public loadingMessage = '';\n public error: string | null = null;\n public viewMode: 'matrix' | 'list' = 'matrix';\n public sortBy: 'prompt' | 'model' | 'priority' = 'priority';\n public sortDirection: 'asc' | 'desc' = 'asc';\n public showInactiveAssociations = false;\n \n // Selection and editing\n public selectedCells: Set<string> = new Set();\n public editingCell: string | null = null;\n public bulkEditMode = false;\n public bulkEditPriority = 1;\n public bulkEditStatus = 'Active';\n \n // Filtering\n public promptFilter$ = new BehaviorSubject<string>('');\n public modelFilter$ = new BehaviorSubject<string>('');\n public statusFilter$ = new BehaviorSubject<string>('all');\n \n // Performance metrics\n public performanceData: { [key: string]: any } = {};\n public showPerformanceOverlay = false;\n \n private destroy$ = new Subject<void>();\n \n constructor(private notificationService: MJNotificationService) {}\n \n ngOnInit(): void {\n this.loadData();\n }\n \n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n \n public async loadData(): Promise<void> {\n try {\n this.isLoading = true;\n this.error = null;\n this.loadingMessage = 'Loading prompts, models, and associations...';\n \n const [prompts, models, associations] = await Promise.all([\n this.loadPrompts(),\n this.loadModels(),\n this.loadAssociations()\n ]);\n \n this.prompts = this.selectedPrompts.length > 0 ? this.selectedPrompts : prompts;\n this.models = this.selectedModels.length > 0 ? this.selectedModels : models;\n \n this.buildAssociations(associations);\n this.buildMatrix();\n \n LogStatus('Model-prompt priority matrix loaded successfully');\n } catch (error) {\n this.error = 'Failed to load matrix data. Please try again.';\n LogError('Error loading matrix data', undefined, error);\n } finally {\n this.isLoading = false;\n }\n }\n \n private async loadPrompts(): Promise<MJAIPromptEntityExtended[]> {\n const rv = new RunView();\n const result = await rv.RunView({\n EntityName: 'MJ: AI Prompts',\n ExtraFilter: \"Status = 'Active'\",\n OrderBy: 'Name',\n UserSearchString: '',\n IgnoreMaxRows: false,\n MaxRows: 500\n });\n \n if (result && result.Success && result.Results) {\n return result.Results as MJAIPromptEntityExtended[];\n } else {\n throw new Error('Failed to load AI prompts');\n }\n }\n \n private async loadModels(): Promise<MJAIModelEntityExtended[]> {\n const rv = new RunView();\n const result = await rv.RunView({\n EntityName: 'MJ: AI Models',\n ExtraFilter: \"IsActive = 1\",\n OrderBy: 'Name',\n UserSearchString: '',\n IgnoreMaxRows: false,\n MaxRows: 200\n });\n \n if (result && result.Success && result.Results) {\n return result.Results as MJAIModelEntityExtended[];\n } else {\n throw new Error('Failed to load AI models');\n }\n }\n \n private async loadAssociations(): Promise<MJAIPromptModelEntity[]> {\n const rv = new RunView();\n const result = await rv.RunView({\n EntityName: 'MJ: AI Prompt Models',\n ExtraFilter: '',\n OrderBy: 'Priority',\n UserSearchString: '',\n IgnoreMaxRows: false,\n MaxRows: 2000\n });\n \n if (result && result.Success && result.Results) {\n return result.Results as MJAIPromptModelEntity[];\n } else {\n throw new Error('Failed to load prompt-model associations');\n }\n }\n \n private buildAssociations(dbAssociations: MJAIPromptModelEntity[]): void {\n this.associations = [];\n \n // Create associations for existing database records\n dbAssociations.forEach(dbAssoc => {\n const prompt = this.prompts.find(p => UUIDsEqual(p.ID, dbAssoc.PromptID));\n const model = this.models.find(m => UUIDsEqual(m.ID, dbAssoc.ModelID));\n \n if (prompt && model) {\n this.associations.push({\n promptId: prompt.ID,\n promptName: prompt.Name,\n modelId: model.ID,\n modelName: model.Name,\n priority: dbAssoc.Priority || 1,\n status: dbAssoc.Status || 'Active',\n association: dbAssoc,\n isNew: false,\n isModified: false\n });\n }\n });\n }\n \n private buildMatrix(): void {\n this.matrix = [];\n \n this.prompts.forEach((prompt, promptIndex) => {\n this.matrix[promptIndex] = [];\n \n this.models.forEach((model, modelIndex) => {\n const association = this.associations.find(a => \n UUIDsEqual(a.promptId, prompt.ID) && UUIDsEqual(a.modelId, model.ID)\n );\n \n this.matrix[promptIndex][modelIndex] = {\n promptId: prompt.ID,\n modelId: model.ID,\n association: association || null,\n canAssign: this.canAssignModelToPrompt(prompt, model)\n };\n });\n });\n }\n \n private canAssignModelToPrompt(prompt: MJAIPromptEntityExtended, model: MJAIModelEntityExtended): boolean {\n // Check model type compatibility\n if (prompt.OutputType && model.AIModelTypeID) {\n // Add business logic for compatibility checking\n return true;\n }\n return true;\n }\n \n public getCellKey(promptIndex: number, modelIndex: number): string {\n return `${promptIndex}-${modelIndex}`;\n }\n \n public getCellClass(cell: MatrixCell): string {\n const classes = ['matrix-cell'];\n \n if (cell.association) {\n classes.push('has-association');\n classes.push(`priority-${Math.min(cell.association.priority, 5)}`);\n \n if (cell.association.status === 'Inactive') {\n classes.push('inactive');\n }\n \n if (cell.association.isNew) {\n classes.push('new');\n }\n \n if (cell.association.isModified) {\n classes.push('modified');\n }\n } else {\n classes.push('no-association');\n }\n \n if (!cell.canAssign) {\n classes.push('cannot-assign');\n }\n \n const cellKey = this.getCellKey(\n this.prompts.findIndex(p => UUIDsEqual(p.ID, cell.promptId)),\n this.models.findIndex(m => UUIDsEqual(m.ID, cell.modelId))\n );\n \n if (this.selectedCells.has(cellKey)) {\n classes.push('selected');\n }\n \n if (this.editingCell === cellKey) {\n classes.push('editing');\n }\n \n return classes.join(' ');\n }\n \n public onCellClick(promptIndex: number, modelIndex: number, event: MouseEvent): void {\n if (this.readonly) return;\n \n const cellKey = this.getCellKey(promptIndex, modelIndex);\n const cell = this.matrix[promptIndex][modelIndex];\n \n if (event.ctrlKey || event.metaKey) {\n // Multi-select mode\n if (this.selectedCells.has(cellKey)) {\n this.selectedCells.delete(cellKey);\n } else {\n this.selectedCells.add(cellKey);\n }\n } else if (event.shiftKey && this.selectedCells.size > 0) {\n // Range select mode\n this.selectRange(promptIndex, modelIndex);\n } else {\n // Single select mode\n this.selectedCells.clear();\n if (cell.canAssign) {\n this.selectedCells.add(cellKey);\n }\n }\n }\n \n public onCellDoubleClick(promptIndex: number, modelIndex: number): void {\n if (this.readonly) return;\n \n const cellKey = this.getCellKey(promptIndex, modelIndex);\n const cell = this.matrix[promptIndex][modelIndex];\n \n if (cell.canAssign) {\n this.editingCell = cellKey;\n \n if (!cell.association) {\n // Create new association\n this.createAssociation(cell.promptId, cell.modelId);\n }\n }\n }\n \n private selectRange(endPromptIndex: number, endModelIndex: number): void {\n const selectedKeys = Array.from(this.selectedCells);\n if (selectedKeys.length === 0) return;\n \n const lastSelectedKey = selectedKeys[selectedKeys.length - 1];\n const [startPromptIndex, startModelIndex] = lastSelectedKey.split('-').map(Number);\n \n const minPromptIndex = Math.min(startPromptIndex, endPromptIndex);\n const maxPromptIndex = Math.max(startPromptIndex, endPromptIndex);\n const minModelIndex = Math.min(startModelIndex, endModelIndex);\n const maxModelIndex = Math.max(startModelIndex, endModelIndex);\n \n this.selectedCells.clear();\n \n for (let p = minPromptIndex; p <= maxPromptIndex; p++) {\n for (let m = minModelIndex; m <= maxModelIndex; m++) {\n const cell = this.matrix[p][m];\n if (cell && cell.canAssign) {\n this.selectedCells.add(this.getCellKey(p, m));\n }\n }\n }\n }\n \n public createAssociation(promptId: string, modelId: string, priority: number = 1): void {\n const prompt = this.prompts.find(p => UUIDsEqual(p.ID, promptId));\n const model = this.models.find(m => UUIDsEqual(m.ID, modelId));\n \n if (!prompt || !model) return;\n \n const newAssociation: PromptModelAssociation = {\n promptId,\n promptName: prompt.Name,\n modelId,\n modelName: model.Name,\n priority,\n status: 'Active',\n association: null,\n isNew: true,\n isModified: false\n };\n \n this.associations.push(newAssociation);\n this.buildMatrix();\n this.associationsChange.emit(this.associations);\n }\n \n public updateAssociation(promptId: string, modelId: string, updates: Partial<PromptModelAssociation>): void {\n const associationIndex = this.associations.findIndex(a => \n a.promptId === promptId && a.modelId === modelId\n );\n \n if (associationIndex >= 0) {\n const association = this.associations[associationIndex];\n Object.assign(association, updates);\n \n if (!association.isNew) {\n association.isModified = true;\n }\n \n this.buildMatrix();\n this.associationsChange.emit(this.associations);\n }\n }\n \n public removeAssociation(promptId: string, modelId: string): void {\n const associationIndex = this.associations.findIndex(a => \n a.promptId === promptId && a.modelId === modelId\n );\n \n if (associationIndex >= 0) {\n this.associations.splice(associationIndex, 1);\n this.buildMatrix();\n this.associationsChange.emit(this.associations);\n }\n }\n \n public bulkUpdateSelectedCells(): void {\n if (this.selectedCells.size === 0) return;\n \n this.selectedCells.forEach(cellKey => {\n const [promptIndex, modelIndex] = cellKey.split('-').map(Number);\n const cell = this.matrix[promptIndex][modelIndex];\n \n if (cell && cell.canAssign) {\n if (cell.association) {\n this.updateAssociation(cell.promptId, cell.modelId, {\n priority: this.bulkEditPriority,\n status: this.bulkEditStatus\n });\n } else {\n this.createAssociation(cell.promptId, cell.modelId, this.bulkEditPriority);\n }\n }\n });\n \n this.selectedCells.clear();\n this.bulkEditMode = false;\n }\n \n public bulkRemoveSelectedCells(): void {\n if (this.selectedCells.size === 0) return;\n \n this.selectedCells.forEach(cellKey => {\n const [promptIndex, modelIndex] = cellKey.split('-').map(Number);\n const cell = this.matrix[promptIndex][modelIndex];\n \n if (cell && cell.association) {\n this.removeAssociation(cell.promptId, cell.modelId);\n }\n });\n \n this.selectedCells.clear();\n }\n \n public async saveChanges(): Promise<void> {\n try {\n this.isLoading = true;\n this.loadingMessage = 'Saving associations...';\n \n const md = new Metadata();\n if (!md) throw new Error('Metadata provider not available');\n \n const savePromises: Promise<boolean>[] = [];\n \n for (const association of this.associations) {\n if (association.isNew || association.isModified) {\n let entity: MJAIPromptModelEntity;\n \n if (association.association) {\n // Update existing\n entity = await md.GetEntityObject<MJAIPromptModelEntity>('MJ: AI Prompt Models', md.CurrentUser);\n await entity.Load(association.association.ID);\n } else {\n // Create new\n entity = await md.GetEntityObject<MJAIPromptModelEntity>('MJ: AI Prompt Models', md.CurrentUser);\n }\n \n entity.PromptID = association.promptId;\n entity.ModelID = association.modelId;\n entity.Priority = association.priority;\n entity.Status = association.status as any;\n \n savePromises.push(entity.Save());\n }\n }\n \n const results = await Promise.all(savePromises);\n const failures = results.filter(r => !r).length;\n \n if (failures === 0) {\n this.notificationService.CreateSimpleNotification('All associations saved successfully', 'success', 3000);\n // Reload data to get fresh state\n await this.loadData();\n } else {\n this.notificationService.CreateSimpleNotification(`${failures} association(s) failed to save`, 'warning', 4000);\n }\n \n } catch (error) {\n this.error = 'Failed to save associations. Please try again.';\n LogError('Error saving associations', undefined, error);\n this.notificationService.CreateSimpleNotification('Failed to save associations', 'error', 4000);\n } finally {\n this.isLoading = false;\n }\n }\n \n public hasUnsavedChanges(): boolean {\n return this.associations.some(a => a.isNew || a.isModified);\n }\n \n public discardChanges(): void {\n if (!this.hasUnsavedChanges()) return;\n \n const confirm = window.confirm('Discard all unsaved changes?');\n if (confirm) {\n this.loadData();\n }\n }\n \n public getAssociationCount(): number {\n return this.associations.filter(a => a.status === 'Active').length;\n }\n \n public getModelAssociationCount(modelId: string): number {\n return this.associations.filter(a => a.modelId === modelId && a.status === 'Active').length;\n }\n \n public getPromptAssociationCount(promptId: string): number {\n return this.associations.filter(a => a.promptId === promptId && a.status === 'Active').length;\n }\n \n public getCellTooltip(association: any): string {\n if (!association) return 'No association';\n return `Priority: ${association.priority || 'Not set'}`;\n }\n\n public getAveragePriority(): number {\n const activeAssociations = this.associations.filter(a => a.status === 'Active');\n if (activeAssociations.length === 0) return 0;\n \n const sum = activeAssociations.reduce((total, a) => total + a.priority, 0);\n return Math.round((sum / activeAssociations.length) * 100) / 100;\n }\n \n public sortAssociations(): void {\n this.associations.sort((a, b) => {\n let comparison = 0;\n \n switch (this.sortBy) {\n case 'prompt':\n comparison = a.promptName.localeCompare(b.promptName);\n break;\n case 'model':\n comparison = a.modelName.localeCompare(b.modelName);\n break;\n case 'priority':\n comparison = a.priority - b.priority;\n break;\n }\n \n return this.sortDirection === 'desc' ? -comparison : comparison;\n });\n \n this.buildMatrix();\n }\n \n public toggleSortDirection(): void {\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n this.sortAssociations();\n }\n \n public onViewModeChange(mode: 'matrix' | 'list'): void {\n this.viewMode = mode;\n this.selectedCells.clear();\n this.editingCell = null;\n }\n \n public exportMatrix(): void {\n const exportData = {\n prompts: this.prompts.map(p => ({ id: p.ID, name: p.Name })),\n models: this.models.map(m => ({ id: m.ID, name: m.Name })),\n associations: this.associations.map(a => ({\n promptId: a.promptId,\n promptName: a.promptName,\n modelId: a.modelId,\n modelName: a.modelName,\n priority: a.priority,\n status: a.status\n })),\n exportDate: new Date().toISOString()\n };\n \n const blob = new Blob([JSON.stringify(exportData, null, 2)], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `prompt-model-matrix-${new Date().toISOString().split('T')[0]}.json`;\n a.click();\n URL.revokeObjectURL(url);\n }\n\n public selectPrompt(prompt: MJAIPromptEntityExtended): void {\n this.promptSelected.emit(prompt);\n }\n}","<div class=\"model-prompt-priority-matrix\">\n <!-- Header toolbar -->\n <div class=\"matrix-toolbar\">\n <div class=\"toolbar-section\">\n <h5 class=\"toolbar-title\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Model-Prompt Priority Matrix\n </h5>\n \n <div class=\"view-mode-toggle\">\n <div class=\"btn-group\" role=\"group\">\n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"matrixView\" \n value=\"matrix\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"matrixView\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Matrix\n </label>\n \n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"listView\" \n value=\"list\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"listView\">\n <i class=\"fa-solid fa-list\"></i>\n List\n </label>\n </div>\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n <div class=\"matrix-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-link text-primary\"></i>\n {{ getAssociationCount() }} associations\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-star text-warning\"></i>\n {{ getAveragePriority() }} avg priority\n </span>\n @if (hasUnsavedChanges()) {\n <span class=\"stat-item text-warning\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n Unsaved changes\n </span>\n }\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n @if (selectedCells.size > 0) {\n <div class=\"bulk-actions\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n [class.active]=\"bulkEditMode\"\n (click)=\"bulkEditMode = !bulkEditMode\"\n title=\"Bulk edit selected cells\">\n <i class=\"fa-solid fa-edit\"></i>\n Edit ({{ selectedCells.size }})\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"bulkRemoveSelectedCells()\"\n title=\"Remove selected associations\">\n <i class=\"fa-solid fa-trash\"></i>\n Remove\n </button>\n </div>\n }\n \n <div class=\"action-buttons\">\n @if (hasUnsavedChanges()) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"discardChanges()\"\n title=\"Discard changes\">\n <i class=\"fa-solid fa-undo\"></i>\n Discard\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-success\"\n (click)=\"saveChanges()\"\n [disabled]=\"isLoading\"\n title=\"Save changes\">\n <i class=\"fa-solid fa-save\"></i>\n Save\n </button>\n }\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-info\"\n (click)=\"exportMatrix()\"\n title=\"Export matrix\">\n <i class=\"fa-solid fa-download\"></i>\n Export\n </button>\n </div>\n </div>\n </div>\n \n <!-- Bulk edit panel -->\n @if (bulkEditMode && selectedCells.size > 0) {\n <div class=\"bulk-edit-panel\">\n <div class=\"bulk-edit-controls\">\n <div class=\"form-group\">\n <label for=\"bulkPriority\" class=\"form-label\">Priority:</label>\n <input \n type=\"number\" \n id=\"bulkPriority\"\n class=\"form-control form-control-sm\"\n [(ngModel)]=\"bulkEditPriority\"\n min=\"1\"\n max=\"10\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"bulkStatus\" class=\"form-label\">Status:</label>\n <select \n id=\"bulkStatus\"\n class=\"form-select form-select-sm\"\n [(ngModel)]=\"bulkEditStatus\">\n <option value=\"Active\">Active</option>\n <option value=\"Inactive\">Inactive</option>\n </select>\n </div>\n \n <div class=\"form-group\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-primary\"\n (click)=\"bulkUpdateSelectedCells()\"\n title=\"Apply changes to selected cells\">\n <i class=\"fa-solid fa-check\"></i>\n Apply\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"bulkEditMode = false\"\n title=\"Cancel bulk edit\">\n <i class=\"fa-solid fa-times\"></i>\n Cancel\n </button>\n </div>\n </div>\n \n <div class=\"bulk-edit-info\">\n <small class=\"text-muted\">\n Editing {{ selectedCells.size }} selected cell(s). \n Use Ctrl+Click for multi-select, Shift+Click for range select.\n </small>\n </div>\n </div>\n }\n \n <!-- Loading state -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading [text]=\"loadingMessage\" size=\"large\"></mj-loading>\n </div>\n } @else {\n <!-- Matrix view -->\n @if (viewMode === 'matrix') {\n <div class=\"matrix-container\">\n <div class=\"matrix-scroll\">\n <table class=\"matrix-table\">\n <!-- Header row with model names -->\n <thead>\n <tr>\n <th class=\"prompt-header\">Prompts \\\\ Models</th>\n @for (model of models; track model.ID) {\n <th class=\"model-header\" [title]=\"model.Description || model.Name\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ model.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getModelAssociationCount(model.ID) }}</small>\n </div>\n </div>\n </th>\n }\n </tr>\n </thead>\n \n <!-- Matrix body -->\n <tbody>\n @for (prompt of prompts; track prompt.ID; let promptIndex = $index) {\n <tr class=\"matrix-row\">\n <th class=\"prompt-header\" [title]=\"prompt.Description || prompt.Name\" (click)=\"selectPrompt(prompt)\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ prompt.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getPromptAssociationCount(prompt.ID) }}</small>\n </div>\n </div>\n </th>\n \n @for (model of models; track model.ID; let modelIndex = $index) {\n <td \n [class]=\"getCellClass(matrix[promptIndex][modelIndex])\"\n (click)=\"onCellClick(promptIndex, modelIndex, $event)\"\n (dblclick)=\"onCellDoubleClick(promptIndex, modelIndex)\"\n [title]=\"getCellTooltip(matrix[promptIndex][modelIndex])\">\n \n @if (matrix[promptIndex][modelIndex].association; as assoc) {\n <div class=\"cell-content\">\n <div class=\"priority-badge priority-{{ assoc.priority }}\">\n {{ assoc.priority }}\n </div>\n \n @if (assoc.status === 'Inactive') {\n <div class=\"status-indicator inactive\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n \n @if (assoc.isNew) {\n <div class=\"change-indicator new\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else if (assoc.isModified) {\n <div class=\"change-indicator modified\">\n <i class=\"fa-solid fa-edit\"></i>\n </div>\n }\n \n @if (showPerformanceOverlay && performanceData[assoc.promptId + '_' + assoc.modelId]) {\n <div class=\"performance-overlay\">\n <small>{{ performanceData[assoc.promptId + '_' + assoc.modelId].avgResponseTime }}ms</small>\n </div>\n }\n </div>\n } @else {\n <div class=\"cell-content empty\">\n @if (matrix[promptIndex][modelIndex].canAssign) {\n <div class=\"empty-cell-indicator\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else {\n <div class=\"blocked-cell-indicator\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n </div>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n }\n \n <!-- List view -->\n @if (viewMode === 'list') {\n <div class=\"list-container\">\n <div class=\"list-header\">\n <div class=\"list-controls\">\n <div class=\"sort-controls\">\n <label class=\"form-label\">Sort by:</label>\n <select \n class=\"form-select form-select-sm\"\n [(ngModel)]=\"sortBy\"\n (ngModelChange)=\"sortAssociations()\">\n <option value=\"prompt\">Prompt Name</option>\n <option value=\"model\">Model Name</option>\n <option value=\"priority\">Priority</option>\n </select>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"toggleSortDirection()\"\n [title]=\"'Sort ' + (sortDirection === 'asc' ? 'descending' : 'ascending')\">\n <i class=\"fa-solid\" [class.fa-sort-up]=\"sortDirection === 'asc'\" [class.fa-sort-down]=\"sortDirection === 'desc'\"></i>\n </button>\n </div>\n \n <div class=\"filter-controls\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n id=\"showInactive\"\n [(ngModel)]=\"showInactiveAssociations\">\n <label class=\"form-check-label\" for=\"showInactive\">\n Show inactive\n </label>\n </div>\n </div>\n </div>\n </div>\n \n <div class=\"associations-list\">\n @for (association of associations; track association.promptId + '_' + association.modelId) {\n @if (showInactiveAssociations || association.status === 'Active') {\n <div class=\"association-item\" \n [class.inactive]=\"association.status === 'Inactive'\"\n [class.new]=\"association.isNew\"\n [class.modified]=\"association.isModified\">\n \n <div class=\"association-header\">\n <div class=\"association-names\">\n <strong class=\"prompt-name\">{{ association.promptName }}</strong>\n <i class=\"fa-solid fa-arrow-right text-muted\"></i>\n <strong class=\"model-name\">{{ association.modelName }}</strong>\n </div>\n \n <div class=\"association-actions\">\n @if (!readonly) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n title=\"Edit association\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"removeAssociation(association.promptId, association.modelId)\"\n title=\"Remove association\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n \n <div class=\"association-details\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Priority:</span>\n <span class=\"priority-badge priority-{{ association.priority }}\">\n {{ association.priority }}\n </span>\n </div>\n \n <div class=\"detail-item\">\n <span class=\"detail-label\">Status:</span>\n <span class=\"status-badge\" [class.badge-success]=\"association.status === 'Active'\" [class.badge-secondary]=\"association.status === 'Inactive'\">\n {{ association.status }}\n </span>\n </div>\n \n @if (association.isNew) {\n <div class=\"detail-item\">\n <span class=\"change-badge new\">\n <i class=\"fa-solid fa-plus\"></i>\n New\n </span>\n </div>\n } @else if (association.isModified) {\n <div class=\"detail-item\">\n <span class=\"change-badge modified\">\n <i class=\"fa-solid fa-edit\"></i>\n Modified\n </span>\n </div>\n }\n </div>\n </div>\n }\n }\n \n @if (associations.length === 0) {\n <div class=\"no-associations-message\">\n <i class=\"fa-solid fa-info-circle text-muted\"></i>\n <p class=\"text-muted mb-0\">No prompt-model associations found. Click on matrix cells to create associations.</p>\n </div>\n }\n </div>\n </div>\n }\n }\n \n <!-- Error state -->\n @if (error) {\n <div class=\"error-container\">\n <div class=\"alert alert-danger\" role=\"alert\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ error }}\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger ms-2\"\n (click)=\"loadData()\">\n <i class=\"fa-solid fa-refresh\"></i>\n Retry\n </button>\n </div>\n </div>\n }\n</div>"]}
1
+ {"version":3,"file":"model-prompt-priority-matrix.component.js","sourceRoot":"","sources":["../../../../src/AI/components/prompts/model-prompt-priority-matrix.component.ts","../../../../src/AI/components/prompts/model-prompt-priority-matrix.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { RunView, LogError, LogStatus } from '@memberjunction/core';\nimport { MJAIPromptModelEntity } from '@memberjunction/core-entities';\nimport { Subject, BehaviorSubject } from 'rxjs';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJAIModelEntityExtended, MJAIPromptEntityExtended } from '@memberjunction/ai-core-plus';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\n\ninterface PromptModelAssociation {\n promptId: string;\n promptName: string;\n modelId: string;\n modelName: string;\n priority: number;\n status: string;\n association: MJAIPromptModelEntity | null;\n isNew: boolean;\n isModified: boolean;\n}\n\ninterface MatrixCell {\n promptId: string;\n modelId: string;\n association: PromptModelAssociation | null;\n canAssign: boolean;\n}\n\n@Component({\n standalone: false,\n selector: 'app-model-prompt-priority-matrix',\n templateUrl: './model-prompt-priority-matrix.component.html',\n styleUrls: ['./model-prompt-priority-matrix.component.css']\n})\nexport class ModelPromptPriorityMatrixComponent extends BaseAngularComponent implements OnInit, OnDestroy {\n @Input() selectedPrompts: MJAIPromptEntityExtended[] = [];\n @Input() selectedModels: MJAIModelEntityExtended[] = [];\n @Input() readonly = false;\n \n @Output() associationsChange = new EventEmitter<PromptModelAssociation[]>();\n @Output() stateChange = new EventEmitter<any>();\n @Output() promptSelected = new EventEmitter<MJAIPromptEntityExtended>();\n \n // Data\n public prompts: MJAIPromptEntityExtended[] = [];\n public models: MJAIModelEntityExtended[] = [];\n public associations: PromptModelAssociation[] = [];\n public matrix: MatrixCell[][] = [];\n \n // UI State\n public isLoading = false;\n public loadingMessage = '';\n public error: string | null = null;\n public viewMode: 'matrix' | 'list' = 'matrix';\n public sortBy: 'prompt' | 'model' | 'priority' = 'priority';\n public sortDirection: 'asc' | 'desc' = 'asc';\n public showInactiveAssociations = false;\n \n // Selection and editing\n public selectedCells: Set<string> = new Set();\n public editingCell: string | null = null;\n public bulkEditMode = false;\n public bulkEditPriority = 1;\n public bulkEditStatus = 'Active';\n \n // Filtering\n public promptFilter$ = new BehaviorSubject<string>('');\n public modelFilter$ = new BehaviorSubject<string>('');\n public statusFilter$ = new BehaviorSubject<string>('all');\n \n // Performance metrics\n public performanceData: { [key: string]: any } = {};\n public showPerformanceOverlay = false;\n \n private destroy$ = new Subject<void>();\n \n constructor(private notificationService: MJNotificationService) { super(); }\n \n ngOnInit(): void {\n this.loadData();\n }\n \n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n \n public async loadData(): Promise<void> {\n try {\n this.isLoading = true;\n this.error = null;\n this.loadingMessage = 'Loading prompts, models, and associations...';\n \n const [prompts, models, associations] = await Promise.all([\n this.loadPrompts(),\n this.loadModels(),\n this.loadAssociations()\n ]);\n \n this.prompts = this.selectedPrompts.length > 0 ? this.selectedPrompts : prompts;\n this.models = this.selectedModels.length > 0 ? this.selectedModels : models;\n \n this.buildAssociations(associations);\n this.buildMatrix();\n \n LogStatus('Model-prompt priority matrix loaded successfully');\n } catch (error) {\n this.error = 'Failed to load matrix data. Please try again.';\n LogError('Error loading matrix data', undefined, error);\n } finally {\n this.isLoading = false;\n }\n }\n \n private async loadPrompts(): Promise<MJAIPromptEntityExtended[]> {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView({\n EntityName: 'MJ: AI Prompts',\n ExtraFilter: \"Status = 'Active'\",\n OrderBy: 'Name',\n UserSearchString: '',\n IgnoreMaxRows: false,\n MaxRows: 500\n });\n \n if (result && result.Success && result.Results) {\n return result.Results as MJAIPromptEntityExtended[];\n } else {\n throw new Error('Failed to load AI prompts');\n }\n }\n \n private async loadModels(): Promise<MJAIModelEntityExtended[]> {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView({\n EntityName: 'MJ: AI Models',\n ExtraFilter: \"IsActive = 1\",\n OrderBy: 'Name',\n UserSearchString: '',\n IgnoreMaxRows: false,\n MaxRows: 200\n });\n \n if (result && result.Success && result.Results) {\n return result.Results as MJAIModelEntityExtended[];\n } else {\n throw new Error('Failed to load AI models');\n }\n }\n \n private async loadAssociations(): Promise<MJAIPromptModelEntity[]> {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView({\n EntityName: 'MJ: AI Prompt Models',\n ExtraFilter: '',\n OrderBy: 'Priority',\n UserSearchString: '',\n IgnoreMaxRows: false,\n MaxRows: 2000\n });\n \n if (result && result.Success && result.Results) {\n return result.Results as MJAIPromptModelEntity[];\n } else {\n throw new Error('Failed to load prompt-model associations');\n }\n }\n \n private buildAssociations(dbAssociations: MJAIPromptModelEntity[]): void {\n this.associations = [];\n \n // Create associations for existing database records\n dbAssociations.forEach(dbAssoc => {\n const prompt = this.prompts.find(p => UUIDsEqual(p.ID, dbAssoc.PromptID));\n const model = this.models.find(m => UUIDsEqual(m.ID, dbAssoc.ModelID));\n \n if (prompt && model) {\n this.associations.push({\n promptId: prompt.ID,\n promptName: prompt.Name,\n modelId: model.ID,\n modelName: model.Name,\n priority: dbAssoc.Priority || 1,\n status: dbAssoc.Status || 'Active',\n association: dbAssoc,\n isNew: false,\n isModified: false\n });\n }\n });\n }\n \n private buildMatrix(): void {\n this.matrix = [];\n \n this.prompts.forEach((prompt, promptIndex) => {\n this.matrix[promptIndex] = [];\n \n this.models.forEach((model, modelIndex) => {\n const association = this.associations.find(a => \n UUIDsEqual(a.promptId, prompt.ID) && UUIDsEqual(a.modelId, model.ID)\n );\n \n this.matrix[promptIndex][modelIndex] = {\n promptId: prompt.ID,\n modelId: model.ID,\n association: association || null,\n canAssign: this.canAssignModelToPrompt(prompt, model)\n };\n });\n });\n }\n \n private canAssignModelToPrompt(prompt: MJAIPromptEntityExtended, model: MJAIModelEntityExtended): boolean {\n // Check model type compatibility\n if (prompt.OutputType && model.AIModelTypeID) {\n // Add business logic for compatibility checking\n return true;\n }\n return true;\n }\n \n public getCellKey(promptIndex: number, modelIndex: number): string {\n return `${promptIndex}-${modelIndex}`;\n }\n \n public getCellClass(cell: MatrixCell): string {\n const classes = ['matrix-cell'];\n \n if (cell.association) {\n classes.push('has-association');\n classes.push(`priority-${Math.min(cell.association.priority, 5)}`);\n \n if (cell.association.status === 'Inactive') {\n classes.push('inactive');\n }\n \n if (cell.association.isNew) {\n classes.push('new');\n }\n \n if (cell.association.isModified) {\n classes.push('modified');\n }\n } else {\n classes.push('no-association');\n }\n \n if (!cell.canAssign) {\n classes.push('cannot-assign');\n }\n \n const cellKey = this.getCellKey(\n this.prompts.findIndex(p => UUIDsEqual(p.ID, cell.promptId)),\n this.models.findIndex(m => UUIDsEqual(m.ID, cell.modelId))\n );\n \n if (this.selectedCells.has(cellKey)) {\n classes.push('selected');\n }\n \n if (this.editingCell === cellKey) {\n classes.push('editing');\n }\n \n return classes.join(' ');\n }\n \n public onCellClick(promptIndex: number, modelIndex: number, event: MouseEvent): void {\n if (this.readonly) return;\n \n const cellKey = this.getCellKey(promptIndex, modelIndex);\n const cell = this.matrix[promptIndex][modelIndex];\n \n if (event.ctrlKey || event.metaKey) {\n // Multi-select mode\n if (this.selectedCells.has(cellKey)) {\n this.selectedCells.delete(cellKey);\n } else {\n this.selectedCells.add(cellKey);\n }\n } else if (event.shiftKey && this.selectedCells.size > 0) {\n // Range select mode\n this.selectRange(promptIndex, modelIndex);\n } else {\n // Single select mode\n this.selectedCells.clear();\n if (cell.canAssign) {\n this.selectedCells.add(cellKey);\n }\n }\n }\n \n public onCellDoubleClick(promptIndex: number, modelIndex: number): void {\n if (this.readonly) return;\n \n const cellKey = this.getCellKey(promptIndex, modelIndex);\n const cell = this.matrix[promptIndex][modelIndex];\n \n if (cell.canAssign) {\n this.editingCell = cellKey;\n \n if (!cell.association) {\n // Create new association\n this.createAssociation(cell.promptId, cell.modelId);\n }\n }\n }\n \n private selectRange(endPromptIndex: number, endModelIndex: number): void {\n const selectedKeys = Array.from(this.selectedCells);\n if (selectedKeys.length === 0) return;\n \n const lastSelectedKey = selectedKeys[selectedKeys.length - 1];\n const [startPromptIndex, startModelIndex] = lastSelectedKey.split('-').map(Number);\n \n const minPromptIndex = Math.min(startPromptIndex, endPromptIndex);\n const maxPromptIndex = Math.max(startPromptIndex, endPromptIndex);\n const minModelIndex = Math.min(startModelIndex, endModelIndex);\n const maxModelIndex = Math.max(startModelIndex, endModelIndex);\n \n this.selectedCells.clear();\n \n for (let p = minPromptIndex; p <= maxPromptIndex; p++) {\n for (let m = minModelIndex; m <= maxModelIndex; m++) {\n const cell = this.matrix[p][m];\n if (cell && cell.canAssign) {\n this.selectedCells.add(this.getCellKey(p, m));\n }\n }\n }\n }\n \n public createAssociation(promptId: string, modelId: string, priority: number = 1): void {\n const prompt = this.prompts.find(p => UUIDsEqual(p.ID, promptId));\n const model = this.models.find(m => UUIDsEqual(m.ID, modelId));\n \n if (!prompt || !model) return;\n \n const newAssociation: PromptModelAssociation = {\n promptId,\n promptName: prompt.Name,\n modelId,\n modelName: model.Name,\n priority,\n status: 'Active',\n association: null,\n isNew: true,\n isModified: false\n };\n \n this.associations.push(newAssociation);\n this.buildMatrix();\n this.associationsChange.emit(this.associations);\n }\n \n public updateAssociation(promptId: string, modelId: string, updates: Partial<PromptModelAssociation>): void {\n const associationIndex = this.associations.findIndex(a => \n a.promptId === promptId && a.modelId === modelId\n );\n \n if (associationIndex >= 0) {\n const association = this.associations[associationIndex];\n Object.assign(association, updates);\n \n if (!association.isNew) {\n association.isModified = true;\n }\n \n this.buildMatrix();\n this.associationsChange.emit(this.associations);\n }\n }\n \n public removeAssociation(promptId: string, modelId: string): void {\n const associationIndex = this.associations.findIndex(a => \n a.promptId === promptId && a.modelId === modelId\n );\n \n if (associationIndex >= 0) {\n this.associations.splice(associationIndex, 1);\n this.buildMatrix();\n this.associationsChange.emit(this.associations);\n }\n }\n \n public bulkUpdateSelectedCells(): void {\n if (this.selectedCells.size === 0) return;\n \n this.selectedCells.forEach(cellKey => {\n const [promptIndex, modelIndex] = cellKey.split('-').map(Number);\n const cell = this.matrix[promptIndex][modelIndex];\n \n if (cell && cell.canAssign) {\n if (cell.association) {\n this.updateAssociation(cell.promptId, cell.modelId, {\n priority: this.bulkEditPriority,\n status: this.bulkEditStatus\n });\n } else {\n this.createAssociation(cell.promptId, cell.modelId, this.bulkEditPriority);\n }\n }\n });\n \n this.selectedCells.clear();\n this.bulkEditMode = false;\n }\n \n public bulkRemoveSelectedCells(): void {\n if (this.selectedCells.size === 0) return;\n \n this.selectedCells.forEach(cellKey => {\n const [promptIndex, modelIndex] = cellKey.split('-').map(Number);\n const cell = this.matrix[promptIndex][modelIndex];\n \n if (cell && cell.association) {\n this.removeAssociation(cell.promptId, cell.modelId);\n }\n });\n \n this.selectedCells.clear();\n }\n \n public async saveChanges(): Promise<void> {\n try {\n this.isLoading = true;\n this.loadingMessage = 'Saving associations...';\n \n const md = this.ProviderToUse;\n if (!md) throw new Error('Metadata provider not available');\n \n const savePromises: Promise<boolean>[] = [];\n \n for (const association of this.associations) {\n if (association.isNew || association.isModified) {\n let entity: MJAIPromptModelEntity;\n \n if (association.association) {\n // Update existing\n entity = await md.GetEntityObject<MJAIPromptModelEntity>('MJ: AI Prompt Models', md.CurrentUser);\n await entity.Load(association.association.ID);\n } else {\n // Create new\n entity = await md.GetEntityObject<MJAIPromptModelEntity>('MJ: AI Prompt Models', md.CurrentUser);\n }\n \n entity.PromptID = association.promptId;\n entity.ModelID = association.modelId;\n entity.Priority = association.priority;\n entity.Status = association.status as any;\n \n savePromises.push(entity.Save());\n }\n }\n \n const results = await Promise.all(savePromises);\n const failures = results.filter(r => !r).length;\n \n if (failures === 0) {\n this.notificationService.CreateSimpleNotification('All associations saved successfully', 'success', 3000);\n // Reload data to get fresh state\n await this.loadData();\n } else {\n this.notificationService.CreateSimpleNotification(`${failures} association(s) failed to save`, 'warning', 4000);\n }\n \n } catch (error) {\n this.error = 'Failed to save associations. Please try again.';\n LogError('Error saving associations', undefined, error);\n this.notificationService.CreateSimpleNotification('Failed to save associations', 'error', 4000);\n } finally {\n this.isLoading = false;\n }\n }\n \n public hasUnsavedChanges(): boolean {\n return this.associations.some(a => a.isNew || a.isModified);\n }\n \n public discardChanges(): void {\n if (!this.hasUnsavedChanges()) return;\n \n const confirm = window.confirm('Discard all unsaved changes?');\n if (confirm) {\n this.loadData();\n }\n }\n \n public getAssociationCount(): number {\n return this.associations.filter(a => a.status === 'Active').length;\n }\n \n public getModelAssociationCount(modelId: string): number {\n return this.associations.filter(a => a.modelId === modelId && a.status === 'Active').length;\n }\n \n public getPromptAssociationCount(promptId: string): number {\n return this.associations.filter(a => a.promptId === promptId && a.status === 'Active').length;\n }\n \n public getCellTooltip(association: any): string {\n if (!association) return 'No association';\n return `Priority: ${association.priority || 'Not set'}`;\n }\n\n public getAveragePriority(): number {\n const activeAssociations = this.associations.filter(a => a.status === 'Active');\n if (activeAssociations.length === 0) return 0;\n \n const sum = activeAssociations.reduce((total, a) => total + a.priority, 0);\n return Math.round((sum / activeAssociations.length) * 100) / 100;\n }\n \n public sortAssociations(): void {\n this.associations.sort((a, b) => {\n let comparison = 0;\n \n switch (this.sortBy) {\n case 'prompt':\n comparison = a.promptName.localeCompare(b.promptName);\n break;\n case 'model':\n comparison = a.modelName.localeCompare(b.modelName);\n break;\n case 'priority':\n comparison = a.priority - b.priority;\n break;\n }\n \n return this.sortDirection === 'desc' ? -comparison : comparison;\n });\n \n this.buildMatrix();\n }\n \n public toggleSortDirection(): void {\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n this.sortAssociations();\n }\n \n public onViewModeChange(mode: 'matrix' | 'list'): void {\n this.viewMode = mode;\n this.selectedCells.clear();\n this.editingCell = null;\n }\n \n public exportMatrix(): void {\n const exportData = {\n prompts: this.prompts.map(p => ({ id: p.ID, name: p.Name })),\n models: this.models.map(m => ({ id: m.ID, name: m.Name })),\n associations: this.associations.map(a => ({\n promptId: a.promptId,\n promptName: a.promptName,\n modelId: a.modelId,\n modelName: a.modelName,\n priority: a.priority,\n status: a.status\n })),\n exportDate: new Date().toISOString()\n };\n \n const blob = new Blob([JSON.stringify(exportData, null, 2)], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `prompt-model-matrix-${new Date().toISOString().split('T')[0]}.json`;\n a.click();\n URL.revokeObjectURL(url);\n }\n\n public selectPrompt(prompt: MJAIPromptEntityExtended): void {\n this.promptSelected.emit(prompt);\n }\n}","<div class=\"model-prompt-priority-matrix\">\n <!-- Header toolbar -->\n <div class=\"matrix-toolbar\">\n <div class=\"toolbar-section\">\n <h5 class=\"toolbar-title\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Model-Prompt Priority Matrix\n </h5>\n \n <div class=\"view-mode-toggle\">\n <div class=\"btn-group\" role=\"group\">\n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"matrixView\" \n value=\"matrix\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"matrixView\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Matrix\n </label>\n \n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"listView\" \n value=\"list\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"listView\">\n <i class=\"fa-solid fa-list\"></i>\n List\n </label>\n </div>\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n <div class=\"matrix-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-link text-primary\"></i>\n {{ getAssociationCount() }} associations\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-star text-warning\"></i>\n {{ getAveragePriority() }} avg priority\n </span>\n @if (hasUnsavedChanges()) {\n <span class=\"stat-item text-warning\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n Unsaved changes\n </span>\n }\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n @if (selectedCells.size > 0) {\n <div class=\"bulk-actions\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n [class.active]=\"bulkEditMode\"\n (click)=\"bulkEditMode = !bulkEditMode\"\n title=\"Bulk edit selected cells\">\n <i class=\"fa-solid fa-edit\"></i>\n Edit ({{ selectedCells.size }})\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"bulkRemoveSelectedCells()\"\n title=\"Remove selected associations\">\n <i class=\"fa-solid fa-trash\"></i>\n Remove\n </button>\n </div>\n }\n \n <div class=\"action-buttons\">\n @if (hasUnsavedChanges()) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"discardChanges()\"\n title=\"Discard changes\">\n <i class=\"fa-solid fa-undo\"></i>\n Discard\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-success\"\n (click)=\"saveChanges()\"\n [disabled]=\"isLoading\"\n title=\"Save changes\">\n <i class=\"fa-solid fa-save\"></i>\n Save\n </button>\n }\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-info\"\n (click)=\"exportMatrix()\"\n title=\"Export matrix\">\n <i class=\"fa-solid fa-download\"></i>\n Export\n </button>\n </div>\n </div>\n </div>\n \n <!-- Bulk edit panel -->\n @if (bulkEditMode && selectedCells.size > 0) {\n <div class=\"bulk-edit-panel\">\n <div class=\"bulk-edit-controls\">\n <div class=\"form-group\">\n <label for=\"bulkPriority\" class=\"form-label\">Priority:</label>\n <input \n type=\"number\" \n id=\"bulkPriority\"\n class=\"form-control form-control-sm\"\n [(ngModel)]=\"bulkEditPriority\"\n min=\"1\"\n max=\"10\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"bulkStatus\" class=\"form-label\">Status:</label>\n <select \n id=\"bulkStatus\"\n class=\"form-select form-select-sm\"\n [(ngModel)]=\"bulkEditStatus\">\n <option value=\"Active\">Active</option>\n <option value=\"Inactive\">Inactive</option>\n </select>\n </div>\n \n <div class=\"form-group\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-primary\"\n (click)=\"bulkUpdateSelectedCells()\"\n title=\"Apply changes to selected cells\">\n <i class=\"fa-solid fa-check\"></i>\n Apply\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"bulkEditMode = false\"\n title=\"Cancel bulk edit\">\n <i class=\"fa-solid fa-times\"></i>\n Cancel\n </button>\n </div>\n </div>\n \n <div class=\"bulk-edit-info\">\n <small class=\"text-muted\">\n Editing {{ selectedCells.size }} selected cell(s). \n Use Ctrl+Click for multi-select, Shift+Click for range select.\n </small>\n </div>\n </div>\n }\n \n <!-- Loading state -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading [text]=\"loadingMessage\" size=\"large\"></mj-loading>\n </div>\n } @else {\n <!-- Matrix view -->\n @if (viewMode === 'matrix') {\n <div class=\"matrix-container\">\n <div class=\"matrix-scroll\">\n <table class=\"matrix-table\">\n <!-- Header row with model names -->\n <thead>\n <tr>\n <th class=\"prompt-header\">Prompts \\\\ Models</th>\n @for (model of models; track model.ID) {\n <th class=\"model-header\" [title]=\"model.Description || model.Name\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ model.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getModelAssociationCount(model.ID) }}</small>\n </div>\n </div>\n </th>\n }\n </tr>\n </thead>\n \n <!-- Matrix body -->\n <tbody>\n @for (prompt of prompts; track prompt.ID; let promptIndex = $index) {\n <tr class=\"matrix-row\">\n <th class=\"prompt-header\" [title]=\"prompt.Description || prompt.Name\" (click)=\"selectPrompt(prompt)\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ prompt.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getPromptAssociationCount(prompt.ID) }}</small>\n </div>\n </div>\n </th>\n \n @for (model of models; track model.ID; let modelIndex = $index) {\n <td \n [class]=\"getCellClass(matrix[promptIndex][modelIndex])\"\n (click)=\"onCellClick(promptIndex, modelIndex, $event)\"\n (dblclick)=\"onCellDoubleClick(promptIndex, modelIndex)\"\n [title]=\"getCellTooltip(matrix[promptIndex][modelIndex])\">\n \n @if (matrix[promptIndex][modelIndex].association; as assoc) {\n <div class=\"cell-content\">\n <div class=\"priority-badge priority-{{ assoc.priority }}\">\n {{ assoc.priority }}\n </div>\n \n @if (assoc.status === 'Inactive') {\n <div class=\"status-indicator inactive\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n \n @if (assoc.isNew) {\n <div class=\"change-indicator new\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else if (assoc.isModified) {\n <div class=\"change-indicator modified\">\n <i class=\"fa-solid fa-edit\"></i>\n </div>\n }\n \n @if (showPerformanceOverlay && performanceData[assoc.promptId + '_' + assoc.modelId]) {\n <div class=\"performance-overlay\">\n <small>{{ performanceData[assoc.promptId + '_' + assoc.modelId].avgResponseTime }}ms</small>\n </div>\n }\n </div>\n } @else {\n <div class=\"cell-content empty\">\n @if (matrix[promptIndex][modelIndex].canAssign) {\n <div class=\"empty-cell-indicator\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else {\n <div class=\"blocked-cell-indicator\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n </div>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n }\n \n <!-- List view -->\n @if (viewMode === 'list') {\n <div class=\"list-container\">\n <div class=\"list-header\">\n <div class=\"list-controls\">\n <div class=\"sort-controls\">\n <label class=\"form-label\">Sort by:</label>\n <select \n class=\"form-select form-select-sm\"\n [(ngModel)]=\"sortBy\"\n (ngModelChange)=\"sortAssociations()\">\n <option value=\"prompt\">Prompt Name</option>\n <option value=\"model\">Model Name</option>\n <option value=\"priority\">Priority</option>\n </select>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"toggleSortDirection()\"\n [title]=\"'Sort ' + (sortDirection === 'asc' ? 'descending' : 'ascending')\">\n <i class=\"fa-solid\" [class.fa-sort-up]=\"sortDirection === 'asc'\" [class.fa-sort-down]=\"sortDirection === 'desc'\"></i>\n </button>\n </div>\n \n <div class=\"filter-controls\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n id=\"showInactive\"\n [(ngModel)]=\"showInactiveAssociations\">\n <label class=\"form-check-label\" for=\"showInactive\">\n Show inactive\n </label>\n </div>\n </div>\n </div>\n </div>\n \n <div class=\"associations-list\">\n @for (association of associations; track association.promptId + '_' + association.modelId) {\n @if (showInactiveAssociations || association.status === 'Active') {\n <div class=\"association-item\" \n [class.inactive]=\"association.status === 'Inactive'\"\n [class.new]=\"association.isNew\"\n [class.modified]=\"association.isModified\">\n \n <div class=\"association-header\">\n <div class=\"association-names\">\n <strong class=\"prompt-name\">{{ association.promptName }}</strong>\n <i class=\"fa-solid fa-arrow-right text-muted\"></i>\n <strong class=\"model-name\">{{ association.modelName }}</strong>\n </div>\n \n <div class=\"association-actions\">\n @if (!readonly) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n title=\"Edit association\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"removeAssociation(association.promptId, association.modelId)\"\n title=\"Remove association\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n \n <div class=\"association-details\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Priority:</span>\n <span class=\"priority-badge priority-{{ association.priority }}\">\n {{ association.priority }}\n </span>\n </div>\n \n <div class=\"detail-item\">\n <span class=\"detail-label\">Status:</span>\n <span class=\"status-badge\" [class.badge-success]=\"association.status === 'Active'\" [class.badge-secondary]=\"association.status === 'Inactive'\">\n {{ association.status }}\n </span>\n </div>\n \n @if (association.isNew) {\n <div class=\"detail-item\">\n <span class=\"change-badge new\">\n <i class=\"fa-solid fa-plus\"></i>\n New\n </span>\n </div>\n } @else if (association.isModified) {\n <div class=\"detail-item\">\n <span class=\"change-badge modified\">\n <i class=\"fa-solid fa-edit\"></i>\n Modified\n </span>\n </div>\n }\n </div>\n </div>\n }\n }\n \n @if (associations.length === 0) {\n <div class=\"no-associations-message\">\n <i class=\"fa-solid fa-info-circle text-muted\"></i>\n <p class=\"text-muted mb-0\">No prompt-model associations found. Click on matrix cells to create associations.</p>\n </div>\n }\n </div>\n </div>\n }\n }\n \n <!-- Error state -->\n @if (error) {\n <div class=\"error-container\">\n <div class=\"alert alert-danger\" role=\"alert\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ error }}\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger ms-2\"\n (click)=\"loadData()\">\n <i class=\"fa-solid fa-refresh\"></i>\n Retry\n </button>\n </div>\n </div>\n }\n</div>"]}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-management.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/prompts/prompt-management.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-management.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/prompts/prompt-management.component.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { Component } from '@angular/core';
8
8
  import { Subject, BehaviorSubject } from 'rxjs';
9
9
  import { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';
10
10
  import { UserInfoEngine } from '@memberjunction/core-entities';
11
- import { Metadata, CompositeKey } from '@memberjunction/core';
11
+ import { CompositeKey } from '@memberjunction/core';
12
12
  import { AIEngineBase } from '@memberjunction/ai-engine-base';
13
13
  import { TemplateEngineBase } from '@memberjunction/templates-base-types';
14
14
  import { BaseResourceComponent } from '@memberjunction/ng-shared';
@@ -654,7 +654,7 @@ let PromptManagementComponent = class PromptManagementComponent extends BaseReso
654
654
  // === Permission Checks ===
655
655
  /** Cache for permission checks to avoid repeated calculations */
656
656
  _permissionCache = new Map();
657
- _metadata = new Metadata();
657
+ _metadata = this.ProviderToUse;
658
658
  /** Check if user can create AI Prompts */
659
659
  get UserCanCreatePrompts() {
660
660
  return this.checkEntityPermission('MJ: AI Prompts', 'Create');