@memberjunction/ng-core-entity-forms 6.2.0-edge.2 → 6.2.0-edge.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.d.ts.map +1 -1
  2. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js +9 -5
  3. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js.map +1 -1
  4. package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts +4 -0
  5. package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts.map +1 -1
  6. package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js +67 -36
  7. package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js.map +1 -1
  8. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +5 -0
  9. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  10. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +13 -9
  11. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  12. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  13. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +1 -0
  14. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  15. package/dist/lib/custom/Companies/company-header.panel.d.ts.map +1 -1
  16. package/dist/lib/custom/Companies/company-header.panel.js +9 -5
  17. package/dist/lib/custom/Companies/company-header.panel.js.map +1 -1
  18. package/dist/lib/custom/Companies/company-overview.panel.d.ts +4 -0
  19. package/dist/lib/custom/Companies/company-overview.panel.d.ts.map +1 -1
  20. package/dist/lib/custom/Companies/company-overview.panel.js +68 -37
  21. package/dist/lib/custom/Companies/company-overview.panel.js.map +1 -1
  22. package/dist/lib/custom/Conversations/conversation-header.panel.d.ts.map +1 -1
  23. package/dist/lib/custom/Conversations/conversation-header.panel.js +9 -5
  24. package/dist/lib/custom/Conversations/conversation-header.panel.js.map +1 -1
  25. package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +25 -4
  26. package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts.map +1 -1
  27. package/dist/lib/custom/Conversations/conversation-overview.panel.js +212 -90
  28. package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
  29. package/dist/lib/custom/Employees/employee-header.panel.d.ts.map +1 -1
  30. package/dist/lib/custom/Employees/employee-header.panel.js +9 -5
  31. package/dist/lib/custom/Employees/employee-header.panel.js.map +1 -1
  32. package/dist/lib/custom/Employees/employee-overview.panel.d.ts +4 -0
  33. package/dist/lib/custom/Employees/employee-overview.panel.d.ts.map +1 -1
  34. package/dist/lib/custom/Employees/employee-overview.panel.js +68 -37
  35. package/dist/lib/custom/Employees/employee-overview.panel.js.map +1 -1
  36. package/dist/lib/custom/Entities/entity-form.component.d.ts +8 -0
  37. package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
  38. package/dist/lib/custom/Entities/entity-form.component.js +19 -4
  39. package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
  40. package/dist/lib/custom/Files/file-form.component.d.ts +5 -5
  41. package/dist/lib/custom/Files/file-form.component.d.ts.map +1 -1
  42. package/dist/lib/custom/Files/file-form.component.js +227 -157
  43. package/dist/lib/custom/Files/file-form.component.js.map +1 -1
  44. package/dist/lib/custom/Files/file-form.logic.d.ts +24 -0
  45. package/dist/lib/custom/Files/file-form.logic.d.ts.map +1 -0
  46. package/dist/lib/custom/Files/file-form.logic.js +57 -0
  47. package/dist/lib/custom/Files/file-form.logic.js.map +1 -0
  48. package/dist/lib/custom/HierarchyPanels/hierarchy-form-panels.d.ts.map +1 -1
  49. package/dist/lib/custom/HierarchyPanels/hierarchy-form-panels.js +60 -45
  50. package/dist/lib/custom/HierarchyPanels/hierarchy-form-panels.js.map +1 -1
  51. package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
  52. package/dist/lib/custom/Lists/list-form.component.js +4 -2
  53. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  54. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  55. package/dist/lib/custom/Queries/query-form.component.js +3 -2
  56. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  57. package/dist/lib/custom/Rubrics/rubric-form.component.js +1 -1
  58. package/dist/lib/custom/Rubrics/rubric-form.component.js.map +1 -1
  59. package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts.map +1 -1
  60. package/dist/lib/custom/SearchScopes/searchscope-form.component.js +1 -0
  61. package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
  62. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  63. package/dist/lib/custom/Templates/templates-form.component.js +3 -2
  64. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  65. package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
  66. package/dist/lib/custom/Tests/test-form.component.js +1 -0
  67. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  68. package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
  69. package/dist/lib/custom/Tests/test-run-form.component.js +1 -0
  70. package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
  71. package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
  72. package/dist/lib/custom/Tests/test-suite-form.component.js +1 -0
  73. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  74. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
  75. package/dist/lib/custom/Tests/test-suite-run-form.component.js +1 -0
  76. package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
  77. package/dist/lib/custom/Users/user-header.panel.d.ts.map +1 -1
  78. package/dist/lib/custom/Users/user-header.panel.js +9 -5
  79. package/dist/lib/custom/Users/user-header.panel.js.map +1 -1
  80. package/dist/lib/custom/Users/user-overview.panel.d.ts +4 -0
  81. package/dist/lib/custom/Users/user-overview.panel.d.ts.map +1 -1
  82. package/dist/lib/custom/Users/user-overview.panel.js +64 -33
  83. package/dist/lib/custom/Users/user-overview.panel.js.map +1 -1
  84. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts +34 -0
  85. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts.map +1 -0
  86. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js +33 -0
  87. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js.map +1 -0
  88. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +3 -0
  89. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
  90. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +261 -242
  91. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  92. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  93. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +1 -0
  94. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  95. package/dist/lib/custom/custom-forms.module.d.ts +35 -34
  96. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  97. package/dist/lib/custom/custom-forms.module.js +6 -2
  98. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  99. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
  100. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +98 -44
  101. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  102. package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.d.ts.map +1 -1
  103. package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.js +5 -9
  104. package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.js.map +1 -1
  105. package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.d.ts.map +1 -1
  106. package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js +15 -18
  107. package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js.map +1 -1
  108. package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.d.ts.map +1 -1
  109. package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.js +5 -9
  110. package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.js.map +1 -1
  111. package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.d.ts.map +1 -1
  112. package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js +27 -9
  113. package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js.map +1 -1
  114. package/dist/lib/generated/Entities/MJAIAgentSessionBridge/mjaiagentsessionbridge.form.component.js +17 -15
  115. package/dist/lib/generated/Entities/MJAIAgentSessionBridge/mjaiagentsessionbridge.form.component.js.map +1 -1
  116. package/dist/lib/generated/Entities/MJAIBridgeProvider/mjaibridgeprovider.form.component.d.ts.map +1 -1
  117. package/dist/lib/generated/Entities/MJAIBridgeProvider/mjaibridgeprovider.form.component.js +25 -7
  118. package/dist/lib/generated/Entities/MJAIBridgeProvider/mjaibridgeprovider.form.component.js.map +1 -1
  119. package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js +12 -14
  120. package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js.map +1 -1
  121. package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.d.ts.map +1 -1
  122. package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.js +5 -9
  123. package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.js.map +1 -1
  124. package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.d.ts.map +1 -1
  125. package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.js +5 -9
  126. package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.js.map +1 -1
  127. package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.d.ts.map +1 -1
  128. package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js +26 -8
  129. package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js.map +1 -1
  130. package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.d.ts.map +1 -1
  131. package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.js +4 -7
  132. package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.js.map +1 -1
  133. package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.d.ts.map +1 -1
  134. package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.js +4 -7
  135. package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.js.map +1 -1
  136. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.d.ts.map +1 -1
  137. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +49 -13
  138. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
  139. package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.d.ts.map +1 -1
  140. package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.js +5 -9
  141. package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.js.map +1 -1
  142. package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.d.ts +10 -0
  143. package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.d.ts.map +1 -0
  144. package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.js +111 -0
  145. package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.js.map +1 -0
  146. package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.d.ts.map +1 -1
  147. package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js +73 -75
  148. package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js.map +1 -1
  149. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.d.ts.map +1 -1
  150. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +34 -16
  151. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js.map +1 -1
  152. package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.d.ts.map +1 -1
  153. package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.js +5 -9
  154. package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.js.map +1 -1
  155. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  156. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +169 -97
  157. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  158. package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.d.ts.map +1 -1
  159. package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.js +8 -11
  160. package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.js.map +1 -1
  161. package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.d.ts.map +1 -1
  162. package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js +15 -18
  163. package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js.map +1 -1
  164. package/dist/lib/generated/Entities/MJEntityFormContribution/mjentityformcontribution.form.component.d.ts +10 -0
  165. package/dist/lib/generated/Entities/MJEntityFormContribution/mjentityformcontribution.form.component.d.ts.map +1 -0
  166. package/dist/lib/generated/Entities/MJEntityFormContribution/mjentityformcontribution.form.component.js +148 -0
  167. package/dist/lib/generated/Entities/MJEntityFormContribution/mjentityformcontribution.form.component.js.map +1 -0
  168. package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.d.ts.map +1 -1
  169. package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js +53 -56
  170. package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js.map +1 -1
  171. package/dist/lib/generated/Entities/MJInteraction/mjinteraction.form.component.d.ts +10 -0
  172. package/dist/lib/generated/Entities/MJInteraction/mjinteraction.form.component.d.ts.map +1 -0
  173. package/dist/lib/generated/Entities/MJInteraction/mjinteraction.form.component.js +161 -0
  174. package/dist/lib/generated/Entities/MJInteraction/mjinteraction.form.component.js.map +1 -0
  175. package/dist/lib/generated/Entities/MJInteractionEvent/mjinteractionevent.form.component.d.ts +10 -0
  176. package/dist/lib/generated/Entities/MJInteractionEvent/mjinteractionevent.form.component.d.ts.map +1 -0
  177. package/dist/lib/generated/Entities/MJInteractionEvent/mjinteractionevent.form.component.js +78 -0
  178. package/dist/lib/generated/Entities/MJInteractionEvent/mjinteractionevent.form.component.js.map +1 -0
  179. package/dist/lib/generated/Entities/MJInteractionLink/mjinteractionlink.form.component.d.ts +10 -0
  180. package/dist/lib/generated/Entities/MJInteractionLink/mjinteractionlink.form.component.d.ts.map +1 -0
  181. package/dist/lib/generated/Entities/MJInteractionLink/mjinteractionlink.form.component.js +68 -0
  182. package/dist/lib/generated/Entities/MJInteractionLink/mjinteractionlink.form.component.js.map +1 -0
  183. package/dist/lib/generated/Entities/MJInteractionOffer/mjinteractionoffer.form.component.d.ts +10 -0
  184. package/dist/lib/generated/Entities/MJInteractionOffer/mjinteractionoffer.form.component.d.ts.map +1 -0
  185. package/dist/lib/generated/Entities/MJInteractionOffer/mjinteractionoffer.form.component.js +100 -0
  186. package/dist/lib/generated/Entities/MJInteractionOffer/mjinteractionoffer.form.component.js.map +1 -0
  187. package/dist/lib/generated/Entities/MJMeeting/mjmeeting.form.component.d.ts +10 -0
  188. package/dist/lib/generated/Entities/MJMeeting/mjmeeting.form.component.d.ts.map +1 -0
  189. package/dist/lib/generated/Entities/MJMeeting/mjmeeting.form.component.js +119 -0
  190. package/dist/lib/generated/Entities/MJMeeting/mjmeeting.form.component.js.map +1 -0
  191. package/dist/lib/generated/Entities/MJMeetingParticipant/mjmeetingparticipant.form.component.d.ts +10 -0
  192. package/dist/lib/generated/Entities/MJMeetingParticipant/mjmeetingparticipant.form.component.d.ts.map +1 -0
  193. package/dist/lib/generated/Entities/MJMeetingParticipant/mjmeetingparticipant.form.component.js +92 -0
  194. package/dist/lib/generated/Entities/MJMeetingParticipant/mjmeetingparticipant.form.component.js.map +1 -0
  195. package/dist/lib/generated/Entities/MJNumberPool/mjnumberpool.form.component.d.ts +10 -0
  196. package/dist/lib/generated/Entities/MJNumberPool/mjnumberpool.form.component.d.ts.map +1 -0
  197. package/dist/lib/generated/Entities/MJNumberPool/mjnumberpool.form.component.js +87 -0
  198. package/dist/lib/generated/Entities/MJNumberPool/mjnumberpool.form.component.js.map +1 -0
  199. package/dist/lib/generated/Entities/MJPhoneNumber/mjphonenumber.form.component.d.ts +10 -0
  200. package/dist/lib/generated/Entities/MJPhoneNumber/mjphonenumber.form.component.d.ts.map +1 -0
  201. package/dist/lib/generated/Entities/MJPhoneNumber/mjphonenumber.form.component.js +129 -0
  202. package/dist/lib/generated/Entities/MJPhoneNumber/mjphonenumber.form.component.js.map +1 -0
  203. package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.d.ts.map +1 -1
  204. package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.js +5 -9
  205. package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.js.map +1 -1
  206. package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.d.ts.map +1 -1
  207. package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.js +8 -11
  208. package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.js.map +1 -1
  209. package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.d.ts.map +1 -1
  210. package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js +36 -40
  211. package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js.map +1 -1
  212. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.d.ts.map +1 -1
  213. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js +39 -21
  214. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js.map +1 -1
  215. package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.d.ts.map +1 -1
  216. package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js +45 -48
  217. package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js.map +1 -1
  218. package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.d.ts +10 -0
  219. package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.d.ts.map +1 -0
  220. package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.js +106 -0
  221. package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.js.map +1 -0
  222. package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.d.ts.map +1 -1
  223. package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js +15 -18
  224. package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js.map +1 -1
  225. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  226. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +822 -676
  227. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  228. package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.d.ts.map +1 -1
  229. package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js +24 -6
  230. package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js.map +1 -1
  231. package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.d.ts.map +1 -1
  232. package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.js +5 -9
  233. package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.js.map +1 -1
  234. package/dist/lib/generated/Entities/MJWorkQueueDeduplication/mjworkqueuededuplication.form.component.d.ts +10 -0
  235. package/dist/lib/generated/Entities/MJWorkQueueDeduplication/mjworkqueuededuplication.form.component.d.ts.map +1 -0
  236. package/dist/lib/generated/Entities/MJWorkQueueDeduplication/mjworkqueuededuplication.form.component.js +64 -0
  237. package/dist/lib/generated/Entities/MJWorkQueueDeduplication/mjworkqueuededuplication.form.component.js.map +1 -0
  238. package/dist/lib/generated/Entities/MJWorkQueueDelivery/mjworkqueuedelivery.form.component.d.ts +10 -0
  239. package/dist/lib/generated/Entities/MJWorkQueueDelivery/mjworkqueuedelivery.form.component.d.ts.map +1 -0
  240. package/dist/lib/generated/Entities/MJWorkQueueDelivery/mjworkqueuedelivery.form.component.js +94 -0
  241. package/dist/lib/generated/Entities/MJWorkQueueDelivery/mjworkqueuedelivery.form.component.js.map +1 -0
  242. package/dist/lib/generated/Entities/MJWorkQueueMessage/mjworkqueuemessage.form.component.d.ts +10 -0
  243. package/dist/lib/generated/Entities/MJWorkQueueMessage/mjworkqueuemessage.form.component.d.ts.map +1 -0
  244. package/dist/lib/generated/Entities/MJWorkQueueMessage/mjworkqueuemessage.form.component.js +91 -0
  245. package/dist/lib/generated/Entities/MJWorkQueueMessage/mjworkqueuemessage.form.component.js.map +1 -0
  246. package/dist/lib/generated/Entities/MJWorkQueueSubscription/mjworkqueuesubscription.form.component.d.ts +10 -0
  247. package/dist/lib/generated/Entities/MJWorkQueueSubscription/mjworkqueuesubscription.form.component.d.ts.map +1 -0
  248. package/dist/lib/generated/Entities/MJWorkQueueSubscription/mjworkqueuesubscription.form.component.js +105 -0
  249. package/dist/lib/generated/Entities/MJWorkQueueSubscription/mjworkqueuesubscription.form.component.js.map +1 -0
  250. package/dist/lib/generated/Entities/MJWorkQueueTopic/mjworkqueuetopic.form.component.d.ts +10 -0
  251. package/dist/lib/generated/Entities/MJWorkQueueTopic/mjworkqueuetopic.form.component.d.ts.map +1 -0
  252. package/dist/lib/generated/Entities/MJWorkQueueTopic/mjworkqueuetopic.form.component.js +129 -0
  253. package/dist/lib/generated/Entities/MJWorkQueueTopic/mjworkqueuetopic.form.component.js.map +1 -0
  254. package/dist/lib/generated/Entities/MJWorkQueueTransport/mjworkqueuetransport.form.component.d.ts +10 -0
  255. package/dist/lib/generated/Entities/MJWorkQueueTransport/mjworkqueuetransport.form.component.d.ts.map +1 -0
  256. package/dist/lib/generated/Entities/MJWorkQueueTransport/mjworkqueuetransport.form.component.js +85 -0
  257. package/dist/lib/generated/Entities/MJWorkQueueTransport/mjworkqueuetransport.form.component.js.map +1 -0
  258. package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.d.ts.map +1 -1
  259. package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js +17 -20
  260. package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js.map +1 -1
  261. package/dist/lib/generated/generated-forms.module.d.ts +448 -431
  262. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  263. package/dist/lib/generated/generated-forms.module.js +63 -12
  264. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  265. package/dist/lib/panels/ai-agents/agent-realtime.panel.d.ts +7 -1
  266. package/dist/lib/panels/ai-agents/agent-realtime.panel.d.ts.map +1 -1
  267. package/dist/lib/panels/ai-agents/agent-realtime.panel.js +89 -43
  268. package/dist/lib/panels/ai-agents/agent-realtime.panel.js.map +1 -1
  269. package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js +3 -3
  270. package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js.map +1 -1
  271. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +5 -5
  272. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -1
  273. package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +4 -4
  274. package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -1
  275. package/dist/lib/panels/form-chrome/entity-relationship-form-role.panel.js +3 -3
  276. package/dist/lib/panels/form-chrome/entity-relationship-form-role.panel.js.map +1 -1
  277. package/dist/lib/panels/model-predictions/model-prediction.panel.js +4 -4
  278. package/dist/lib/panels/model-predictions/model-prediction.panel.js.map +1 -1
  279. package/package.json +48 -47
@@ -1 +1 @@
1
- {"version":3,"file":"user-header.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Users/user-header.panel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAkB,MAAM,+BAA+B,CAAC;;AAI7E,qBAuFa,eAAgB,SAAQ,aAAa,CAAC,YAAY,CAAC;IACrD,WAAW,UAAS;IAEpB,QAAQ,IAAI,IAAI;IAKvB,IAAW,IAAI,IAAI,YAAY,GAAG,IAAI,CAErC;IAEM,eAAe,IAAI,IAAI;yCAZrB,eAAe;2CAAf,eAAe;CAgB3B"}
1
+ {"version":3,"file":"user-header.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Users/user-header.panel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAkB,MAAM,+BAA+B,CAAC;;AAI7E,qBA2Fa,eAAgB,SAAQ,aAAa,CAAC,YAAY,CAAC;IACrD,WAAW,UAAS;IAEpB,QAAQ,IAAI,IAAI;IAKvB,IAAW,IAAI,IAAI,YAAY,GAAG,IAAI,CAErC;IAEM,eAAe,IAAI,IAAI;yCAZrB,eAAe;2CAAf,eAAe;CAgB3B"}
@@ -105,11 +105,15 @@ let UserHeaderPanel = class UserHeaderPanel extends BaseFormPanel {
105
105
  };
106
106
  UserHeaderPanel = __decorate([
107
107
  RegisterClassEx(BaseFormPanel, {
108
- key: 'form-panel:Users:header',
108
+ key: 'form-panel:MJ: Users:header',
109
109
  metadata: {
110
- entity: 'Users',
111
- slot: 'header',
112
- sortKey: 10,
110
+ entity: 'MJ: Users',
111
+ // A hero is a bare strip in before-fields. Its sortKey is above the overview's
112
+ // (higher draws first), so it draws above the overview cards.
113
+ slot: 'before-fields',
114
+ presentation: 'bare',
115
+ contributionKey: 'users:header',
116
+ sortKey: 20,
113
117
  },
114
118
  })
115
119
  ], UserHeaderPanel);
@@ -160,5 +164,5 @@ export { UserHeaderPanel };
160
164
  }
161
165
  `, styles: ["\n :host { display: block; width: 100%; }\n .mj-entity-hero-header {\n background: linear-gradient(180deg, var(--mj-bg-surface, #111a2e) 0%, var(--mj-bg-surface-card, #141f36) 100%);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n padding: 16px 24px;\n }\n .mj-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }\n .mj-hero-identity { display: flex; align-items: center; gap: 14px; }\n .mj-hero-avatar {\n width: 44px; height: 44px; border-radius: 10px;\n display: flex; align-items: center; justify-content: center;\n font-size: 18px; color: #fff; flex-shrink: 0;\n }\n .mj-hero-title { font-size: 18px; font-weight: 800; color: var(--mj-text-primary, #f8fafc); }\n .mj-hero-subline { font-size: 12.5px; color: var(--mj-text-secondary, #94a3b8); margin-top: 2px; display: flex; gap: 8px; align-items: center; }\n .mj-hero-toggle-btn {\n background: none; border: 1px solid var(--mj-border-default, #223254);\n color: var(--mj-text-muted, #64748b); border-radius: 6px;\n padding: 6px 10px; cursor: pointer;\n }\n .mj-hero-metrics-row {\n display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px; margin-top: 14px; padding-top: 12px;\n border-top: 1px solid rgba(255, 255, 255, 0.05);\n }\n .mj-hero-metric { display: flex; flex-direction: column; gap: 2px; }\n .mj-hero-metric-label { font-size: 10.5px; font-weight: 700; color: var(--mj-text-muted, #64748b); text-transform: uppercase; }\n .mj-hero-metric-val { font-size: 14px; font-weight: 700; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n "] }]
162
166
  }], null, null); })();
163
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserHeaderPanel, { className: "UserHeaderPanel", filePath: "src/lib/custom/Users/user-header.panel.ts", lineNumber: 96 }); })();
167
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserHeaderPanel, { className: "UserHeaderPanel", filePath: "src/lib/custom/Users/user-header.panel.ts", lineNumber: 100 }); })();
164
168
  //# sourceMappingURL=user-header.panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-header.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/Users/user-header.panel.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAgB,cAAc,EAAE,MAAM,+BAA+B,CAAC;;;IA8BzC,+BAAM;IAAA,sBAAC;IAAA,oBAAO;IACd,+BAAM;IAAA,YAAqB;IAAA,oBAAO;;;IAA5B,eAAqB;IAArB,iDAAqB;;;IAenC,AADJ,AADJ,kCAAiC,cACD,eACW;IAAA,uBAAO;IAAA,oBAAO;IACjD,mCAAiC;IAAA,YAA8B;IACnE,AADmE,oBAAO,EACpE;IAEF,AADJ,kCAA4B,eACW;IAAA,8BAAc;IAAA,oBAAO;IACxD,mCAAuF;IACnF,aACJ;IAER,AADI,AADI,oBAAO,EACL,EACJ;;;IARmC,eAA8B;IAA9B,oFAA8B;IAI9B,eAAqD;IAArD,qEAAqD;IAClF,cACJ;IADI,6EACJ;;;;IA/BJ,AADJ,AADJ,AADJ,iCAAmC,aACN,aACS,aACiE;IACvF,0BAAqC;IACzC,oBAAM;IAEF,AADJ,8BAAK,YACyB;IAAA,YAAsD;IAAA,oBAAK;IAEjF,AADJ,iCAA6B,WACnB;IAAA,aAAuB;IAAA,oBAAO;IACpC,uFAAiB;IAM7B,AADI,AADI,oBAAM,EACJ,EACJ;IAEF,AADJ,kCAA6B,iBACgH;IAAxF,uLAAS,wBAAiB,KAAC;IACxE,2BAAmG;IAG/G,AADI,AADI,oBAAS,EACP,EACJ;IAEN,mGAAoB;IAcxB,oBAAM;;;IA/BoC,eAAsD;IAAtD,oFAAsD;IAEtE,eAAuB;IAAvB,mDAAuB;IAC7B,cAGC;IAHD,4CAGC;IAKoE,eAA2D;IAA3D,mFAA2D;IAChH,cAAoC;IAAC,AAArC,oDAAoC,uCAAsC;IAK1G,cAaC;IAbD,+CAaC;;AAtDjB,MAAM,WAAW,GAAG,+BAA+B,CAAC;AAyF7C,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,aAA2B;IAAzD;;QACI,gBAAW,GAAG,KAAK,CAAC;KAe9B;IAbU,QAAQ;QACX,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,GAAG;YAAE,IAAI,CAAC,WAAW,GAAG,GAAG,KAAK,MAAM,CAAC;IAC/C,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,eAAe;QAClB,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACrC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACvF,CAAC;gPAfQ,eAAe,yBAAf,eAAe;oEAAf,eAAe;YAzEpB,kFAAY;;YAAZ,mCAwCC;4BA3CK,YAAY;;AA4Eb,eAAe;IAvF3B,eAAe,CAAC,aAAa,EAAE;QAC5B,GAAG,EAAE,yBAAyB;QAC9B,QAAQ,EAAE;YACN,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;SACd;KACJ,CAAC;GAgFW,eAAe,CAgB3B;;iFAhBY,eAAe;cA/E3B,SAAS;2BACI,sBAAsB,cACpB,IAAI,WACP,CAAC,YAAY,CAAC,mBACN,uBAAuB,CAAC,MAAM,YACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0CT;;kFAgCQ,eAAe","sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormPanel } from '@memberjunction/ng-base-forms';\nimport { MJUserEntity, UserInfoEngine } from '@memberjunction/core-entities';\n\nconst SETTING_KEY = 'mj.form.users.headerCollapsed';\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:Users:header',\n metadata: {\n entity: 'Users',\n slot: 'header',\n sortKey: 10,\n },\n})\n@Component({\n selector: 'mj-user-header-panel',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (User) {\n <div class=\"mj-entity-hero-header\">\n <div class=\"mj-hero-top\">\n <div class=\"mj-hero-identity\">\n <div class=\"mj-hero-avatar\" style=\"background: linear-gradient(135deg, #0ea5e9, #0369a1);\">\n <i class=\"fa-solid fa-user-gear\"></i>\n </div>\n <div>\n <h1 class=\"mj-hero-title\">{{ User.Name || User.Email || 'MemberJunction User' }}</h1>\n <div class=\"mj-hero-subline\">\n <span>Email: {{ User.Email }}</span>\n @if (User.Type) {\n <span>•</span>\n <span>Type: {{ User.Type }}</span>\n }\n </div>\n </div>\n </div>\n <div class=\"mj-hero-actions\">\n <button type=\"button\" class=\"mj-hero-toggle-btn\" (click)=\"ToggleCollapsed()\" [title]=\"IsCollapsed ? 'Expand Header' : 'Collapse Header'\">\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"!IsCollapsed\" [class.fa-chevron-down]=\"IsCollapsed\"></i>\n </button>\n </div>\n </div>\n\n @if (!IsCollapsed) {\n <div class=\"mj-hero-metrics-row\">\n <div class=\"mj-hero-metric\">\n <span class=\"mj-hero-metric-label\">User ID</span>\n <span class=\"mj-hero-metric-val\">{{ User.ID?.substring(0, 8) }}</span>\n </div>\n <div class=\"mj-hero-metric\">\n <span class=\"mj-hero-metric-label\">Account Status</span>\n <span class=\"mj-hero-metric-val\" [style.color]=\"User.IsActive ? '#10b981' : '#f43f5e'\">\n {{ User.IsActive ? 'Active' : 'Inactive' }}\n </span>\n </div>\n </div>\n }\n </div>\n }\n `,\n styles: [`\n :host { display: block; width: 100%; }\n .mj-entity-hero-header {\n background: linear-gradient(180deg, var(--mj-bg-surface, #111a2e) 0%, var(--mj-bg-surface-card, #141f36) 100%);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n padding: 16px 24px;\n }\n .mj-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }\n .mj-hero-identity { display: flex; align-items: center; gap: 14px; }\n .mj-hero-avatar {\n width: 44px; height: 44px; border-radius: 10px;\n display: flex; align-items: center; justify-content: center;\n font-size: 18px; color: #fff; flex-shrink: 0;\n }\n .mj-hero-title { font-size: 18px; font-weight: 800; color: var(--mj-text-primary, #f8fafc); }\n .mj-hero-subline { font-size: 12.5px; color: var(--mj-text-secondary, #94a3b8); margin-top: 2px; display: flex; gap: 8px; align-items: center; }\n .mj-hero-toggle-btn {\n background: none; border: 1px solid var(--mj-border-default, #223254);\n color: var(--mj-text-muted, #64748b); border-radius: 6px;\n padding: 6px 10px; cursor: pointer;\n }\n .mj-hero-metrics-row {\n display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px; margin-top: 14px; padding-top: 12px;\n border-top: 1px solid rgba(255, 255, 255, 0.05);\n }\n .mj-hero-metric { display: flex; flex-direction: column; gap: 2px; }\n .mj-hero-metric-label { font-size: 10.5px; font-weight: 700; color: var(--mj-text-muted, #64748b); text-transform: uppercase; }\n .mj-hero-metric-val { font-size: 14px; font-weight: 700; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n `]\n})\nexport class UserHeaderPanel extends BaseFormPanel<MJUserEntity> {\n public IsCollapsed = false;\n\n public ngOnInit(): void {\n const raw = UserInfoEngine.Instance.GetSetting(SETTING_KEY);\n if (raw) this.IsCollapsed = raw === 'true';\n }\n\n public get User(): MJUserEntity | null {\n return this.Record;\n }\n\n public ToggleCollapsed(): void {\n this.IsCollapsed = !this.IsCollapsed;\n UserInfoEngine.Instance.SetSettingDebounced(SETTING_KEY, String(this.IsCollapsed));\n }\n}\n"]}
1
+ {"version":3,"file":"user-header.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/Users/user-header.panel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormPanel } from '@memberjunction/ng-base-forms';\nimport { MJUserEntity, UserInfoEngine } from '@memberjunction/core-entities';\n\nconst SETTING_KEY = 'mj.form.users.headerCollapsed';\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJ: Users:header',\n metadata: {\n entity: 'MJ: Users',\n // A hero is a bare strip in before-fields. Its sortKey is above the overview's\n // (higher draws first), so it draws above the overview cards.\n slot: 'before-fields',\n presentation: 'bare',\n contributionKey: 'users:header',\n sortKey: 20,\n },\n})\n@Component({\n selector: 'mj-user-header-panel',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (User) {\n <div class=\"mj-entity-hero-header\">\n <div class=\"mj-hero-top\">\n <div class=\"mj-hero-identity\">\n <div class=\"mj-hero-avatar\" style=\"background: linear-gradient(135deg, #0ea5e9, #0369a1);\">\n <i class=\"fa-solid fa-user-gear\"></i>\n </div>\n <div>\n <h1 class=\"mj-hero-title\">{{ User.Name || User.Email || 'MemberJunction User' }}</h1>\n <div class=\"mj-hero-subline\">\n <span>Email: {{ User.Email }}</span>\n @if (User.Type) {\n <span>•</span>\n <span>Type: {{ User.Type }}</span>\n }\n </div>\n </div>\n </div>\n <div class=\"mj-hero-actions\">\n <button type=\"button\" class=\"mj-hero-toggle-btn\" (click)=\"ToggleCollapsed()\" [title]=\"IsCollapsed ? 'Expand Header' : 'Collapse Header'\">\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"!IsCollapsed\" [class.fa-chevron-down]=\"IsCollapsed\"></i>\n </button>\n </div>\n </div>\n\n @if (!IsCollapsed) {\n <div class=\"mj-hero-metrics-row\">\n <div class=\"mj-hero-metric\">\n <span class=\"mj-hero-metric-label\">User ID</span>\n <span class=\"mj-hero-metric-val\">{{ User.ID?.substring(0, 8) }}</span>\n </div>\n <div class=\"mj-hero-metric\">\n <span class=\"mj-hero-metric-label\">Account Status</span>\n <span class=\"mj-hero-metric-val\" [style.color]=\"User.IsActive ? '#10b981' : '#f43f5e'\">\n {{ User.IsActive ? 'Active' : 'Inactive' }}\n </span>\n </div>\n </div>\n }\n </div>\n }\n `,\n styles: [`\n :host { display: block; width: 100%; }\n .mj-entity-hero-header {\n background: linear-gradient(180deg, var(--mj-bg-surface, #111a2e) 0%, var(--mj-bg-surface-card, #141f36) 100%);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n padding: 16px 24px;\n }\n .mj-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }\n .mj-hero-identity { display: flex; align-items: center; gap: 14px; }\n .mj-hero-avatar {\n width: 44px; height: 44px; border-radius: 10px;\n display: flex; align-items: center; justify-content: center;\n font-size: 18px; color: #fff; flex-shrink: 0;\n }\n .mj-hero-title { font-size: 18px; font-weight: 800; color: var(--mj-text-primary, #f8fafc); }\n .mj-hero-subline { font-size: 12.5px; color: var(--mj-text-secondary, #94a3b8); margin-top: 2px; display: flex; gap: 8px; align-items: center; }\n .mj-hero-toggle-btn {\n background: none; border: 1px solid var(--mj-border-default, #223254);\n color: var(--mj-text-muted, #64748b); border-radius: 6px;\n padding: 6px 10px; cursor: pointer;\n }\n .mj-hero-metrics-row {\n display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px; margin-top: 14px; padding-top: 12px;\n border-top: 1px solid rgba(255, 255, 255, 0.05);\n }\n .mj-hero-metric { display: flex; flex-direction: column; gap: 2px; }\n .mj-hero-metric-label { font-size: 10.5px; font-weight: 700; color: var(--mj-text-muted, #64748b); text-transform: uppercase; }\n .mj-hero-metric-val { font-size: 14px; font-weight: 700; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n `]\n})\nexport class UserHeaderPanel extends BaseFormPanel<MJUserEntity> {\n public IsCollapsed = false;\n\n public ngOnInit(): void {\n const raw = UserInfoEngine.Instance.GetSetting(SETTING_KEY);\n if (raw) this.IsCollapsed = raw === 'true';\n }\n\n public get User(): MJUserEntity | null {\n return this.Record;\n }\n\n public ToggleCollapsed(): void {\n this.IsCollapsed = !this.IsCollapsed;\n UserInfoEngine.Instance.SetSettingDebounced(SETTING_KEY, String(this.IsCollapsed));\n }\n}\n"]}
@@ -9,9 +9,13 @@ interface UserRoleRow {
9
9
  export declare class UserOverviewPanel extends BaseFormPanel<MJUserEntity> implements OnInit {
10
10
  private cdr;
11
11
  Roles: UserRoleRow[];
12
+ /** Set when the query fails, so the card shows the failure instead of an empty list. */
13
+ LoadError: string | null;
12
14
  get User(): MJUserEntity | null;
13
15
  ngOnInit(): void;
14
16
  private loadUserRoles;
17
+ /** Shows a short "could not load" line, with the underlying message when there is one. */
18
+ private showLoadError;
15
19
  static ɵfac: i0.ɵɵFactoryDeclaration<UserOverviewPanel, never>;
16
20
  static ɵcmp: i0.ɵɵComponentDeclaration<UserOverviewPanel, "mj-user-overview-panel", never, {}, {}, never, never, true, never>;
17
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user-overview.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Users/user-overview.panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,MAAM,EAA6B,MAAM,eAAe,CAAC;AAItG,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;;AAE7D,UAAU,WAAW;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,qBAmHa,iBAAkB,SAAQ,aAAa,CAAC,YAAY,CAAE,YAAW,MAAM;IAChF,OAAO,CAAC,GAAG,CAA6B;IACjC,KAAK,EAAE,WAAW,EAAE,CAAM;IAEjC,IAAW,IAAI,IAAI,YAAY,GAAG,IAAI,CAErC;IAEM,QAAQ,IAAI,IAAI;YAIT,aAAa;yCAZlB,iBAAiB;2CAAjB,iBAAiB;CA+B7B"}
1
+ {"version":3,"file":"user-overview.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Users/user-overview.panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,MAAM,EAA6B,MAAM,eAAe,CAAC;AAItG,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;;AAE7D,UAAU,WAAW;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,qBAwHa,iBAAkB,SAAQ,aAAa,CAAC,YAAY,CAAE,YAAW,MAAM;IAChF,OAAO,CAAC,GAAG,CAA6B;IACjC,KAAK,EAAE,WAAW,EAAE,CAAM;IACjC,wFAAwF;IACjF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEvC,IAAW,IAAI,IAAI,YAAY,GAAG,IAAI,CAErC;IAEM,QAAQ,IAAI,IAAI;YAIT,aAAa;IAuB3B,0FAA0F;IAC1F,OAAO,CAAC,aAAa;yCAtCZ,iBAAiB;2CAAjB,iBAAiB;CAyC7B"}
@@ -11,34 +11,54 @@ import { RegisterClassEx } from '@memberjunction/global';
11
11
  import { BaseFormPanel } from '@memberjunction/ng-base-forms';
12
12
  import * as i0 from "@angular/core";
13
13
  const _forTrack0 = ($index, $item) => $item.ID;
14
- function UserOverviewPanel_Conditional_9_Template(rf, ctx) { if (rf & 1) {
14
+ function UserOverviewPanel_Conditional_6_Template(rf, ctx) { if (rf & 1) {
15
+ i0.ɵɵdomElementStart(0, "span", 5);
16
+ i0.ɵɵtext(1);
17
+ i0.ɵɵdomElementEnd();
18
+ } if (rf & 2) {
19
+ const ctx_r0 = i0.ɵɵnextContext();
20
+ i0.ɵɵadvance();
21
+ i0.ɵɵtextInterpolate1("", ctx_r0.Roles.length, " Roles");
22
+ } }
23
+ function UserOverviewPanel_Conditional_8_Template(rf, ctx) { if (rf & 1) {
15
24
  i0.ɵɵdomElementStart(0, "span", 7);
25
+ i0.ɵɵtext(1);
26
+ i0.ɵɵdomElementEnd();
27
+ } if (rf & 2) {
28
+ const ctx_r0 = i0.ɵɵnextContext();
29
+ i0.ɵɵadvance();
30
+ i0.ɵɵtextInterpolate(ctx_r0.LoadError);
31
+ } }
32
+ function UserOverviewPanel_Conditional_9_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵdomElementStart(0, "span", 8);
16
34
  i0.ɵɵtext(1, "No explicit roles assigned. Default permissions apply.");
17
35
  i0.ɵɵdomElementEnd();
18
36
  } }
19
37
  function UserOverviewPanel_Conditional_10_For_1_Template(rf, ctx) { if (rf & 1) {
20
- i0.ɵɵdomElementStart(0, "div", 9)(1, "span", 10);
38
+ i0.ɵɵdomElementStart(0, "div", 10)(1, "span", 11);
21
39
  i0.ɵɵtext(2);
22
40
  i0.ɵɵdomElementEnd();
23
- i0.ɵɵdomElementStart(3, "span", 13);
41
+ i0.ɵɵdomElementStart(3, "span", 14);
24
42
  i0.ɵɵtext(4, "Granted");
25
43
  i0.ɵɵdomElementEnd()();
26
44
  } if (rf & 2) {
27
- const role_r1 = ctx.$implicit;
45
+ const role_r2 = ctx.$implicit;
28
46
  i0.ɵɵadvance(2);
29
- i0.ɵɵtextInterpolate(role_r1.Role);
47
+ i0.ɵɵtextInterpolate(role_r2.Role);
30
48
  } }
31
49
  function UserOverviewPanel_Conditional_10_Template(rf, ctx) { if (rf & 1) {
32
- i0.ɵɵrepeaterCreate(0, UserOverviewPanel_Conditional_10_For_1_Template, 5, 1, "div", 9, _forTrack0);
50
+ i0.ɵɵrepeaterCreate(0, UserOverviewPanel_Conditional_10_For_1_Template, 5, 1, "div", 10, _forTrack0);
33
51
  } if (rf & 2) {
34
- const ctx_r1 = i0.ɵɵnextContext();
35
- i0.ɵɵrepeater(ctx_r1.Roles);
52
+ const ctx_r0 = i0.ɵɵnextContext();
53
+ i0.ɵɵrepeater(ctx_r0.Roles);
36
54
  } }
37
55
  let UserOverviewPanel = class UserOverviewPanel extends BaseFormPanel {
38
56
  constructor() {
39
57
  super(...arguments);
40
58
  this.cdr = inject(ChangeDetectorRef);
41
59
  this.Roles = [];
60
+ /** Set when the query fails, so the card shows the failure instead of an empty list. */
61
+ this.LoadError = null;
42
62
  }
43
63
  get User() {
44
64
  return this.Record;
@@ -58,64 +78,71 @@ let UserOverviewPanel = class UserOverviewPanel extends BaseFormPanel {
58
78
  MaxRows: 20,
59
79
  ResultType: 'simple'
60
80
  });
61
- if (res.Success && res.Results) {
62
- this.Roles = res.Results;
63
- this.cdr.markForCheck();
81
+ if (res.Success) {
82
+ this.Roles = res.Results ?? [];
83
+ }
84
+ else {
85
+ this.showLoadError(res.ErrorMessage);
64
86
  }
65
87
  }
66
88
  catch (e) {
67
89
  console.error('Failed to load user roles:', e);
90
+ this.showLoadError(e instanceof Error ? e.message : undefined);
68
91
  }
92
+ this.cdr.markForCheck();
93
+ }
94
+ /** Shows a short "could not load" line, with the underlying message when there is one. */
95
+ showLoadError(detail) {
96
+ this.LoadError = detail ? `Could not load roles: ${detail}` : 'Could not load roles.';
69
97
  }
70
98
  static { this.ɵfac = /*@__PURE__*/ (() => { let ɵUserOverviewPanel_BaseFactory; return function UserOverviewPanel_Factory(__ngFactoryType__) { return (ɵUserOverviewPanel_BaseFactory || (ɵUserOverviewPanel_BaseFactory = i0.ɵɵgetInheritedFactory(UserOverviewPanel)))(__ngFactoryType__ || UserOverviewPanel); }; })(); }
71
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserOverviewPanel, selectors: [["mj-user-overview-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 29, vars: 8, consts: [[1, "mj-user-overview-grid"], [1, "mj-overview-card"], [1, "mj-card-header"], [1, "mj-card-title"], [1, "fa-solid", "fa-shield-halved", 2, "color", "var(--mj-brand-primary, #38bdf8)"], [1, "mj-card-badge"], [1, "mj-card-body"], [2, "font-size", "12px", "color", "var(--mj-text-muted)"], [1, "fa-solid", "fa-user-check", 2, "color", "#10b981"], [1, "mj-metric-row"], [1, "mj-metric-label"], [1, "mj-pill"], [1, "mj-metric-val"], [1, "mj-pill", "mj-pill-purple"]], template: function UserOverviewPanel_Template(rf, ctx) { if (rf & 1) {
99
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserOverviewPanel, selectors: [["mj-user-overview-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 29, vars: 8, consts: [[1, "mj-user-overview-grid"], [1, "mj-overview-card"], [1, "mj-card-header"], [1, "mj-card-title"], [1, "fa-solid", "fa-shield-halved", 2, "color", "var(--mj-brand-primary, #38bdf8)"], [1, "mj-card-badge"], [1, "mj-card-body"], [1, "mj-load-error"], [2, "font-size", "12px", "color", "var(--mj-text-muted)"], [1, "fa-solid", "fa-user-check", 2, "color", "#10b981"], [1, "mj-metric-row"], [1, "mj-metric-label"], [1, "mj-pill"], [1, "mj-metric-val"], [1, "mj-pill", "mj-pill-purple"]], template: function UserOverviewPanel_Template(rf, ctx) { if (rf & 1) {
72
100
  i0.ɵɵdomElementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
73
101
  i0.ɵɵdomElement(4, "i", 4);
74
102
  i0.ɵɵtext(5, " Assigned Security Roles");
75
103
  i0.ɵɵdomElementEnd();
76
- i0.ɵɵdomElementStart(6, "span", 5);
77
- i0.ɵɵtext(7);
78
- i0.ɵɵdomElementEnd()();
79
- i0.ɵɵdomElementStart(8, "div", 6);
80
- i0.ɵɵconditionalCreate(9, UserOverviewPanel_Conditional_9_Template, 2, 0, "span", 7)(10, UserOverviewPanel_Conditional_10_Template, 2, 0);
104
+ i0.ɵɵconditionalCreate(6, UserOverviewPanel_Conditional_6_Template, 2, 1, "span", 5);
105
+ i0.ɵɵdomElementEnd();
106
+ i0.ɵɵdomElementStart(7, "div", 6);
107
+ i0.ɵɵconditionalCreate(8, UserOverviewPanel_Conditional_8_Template, 2, 1, "span", 7)(9, UserOverviewPanel_Conditional_9_Template, 2, 0, "span", 8)(10, UserOverviewPanel_Conditional_10_Template, 2, 0);
81
108
  i0.ɵɵdomElementEnd()();
82
109
  i0.ɵɵdomElementStart(11, "div", 1)(12, "div", 2)(13, "div", 3);
83
- i0.ɵɵdomElement(14, "i", 8);
110
+ i0.ɵɵdomElement(14, "i", 9);
84
111
  i0.ɵɵtext(15, " Account Health");
85
112
  i0.ɵɵdomElementEnd();
86
113
  i0.ɵɵdomElementStart(16, "span", 5);
87
114
  i0.ɵɵtext(17, "Security");
88
115
  i0.ɵɵdomElementEnd()();
89
- i0.ɵɵdomElementStart(18, "div", 6)(19, "div", 9)(20, "span", 10);
116
+ i0.ɵɵdomElementStart(18, "div", 6)(19, "div", 10)(20, "span", 11);
90
117
  i0.ɵɵtext(21, "Account Active");
91
118
  i0.ɵɵdomElementEnd();
92
- i0.ɵɵdomElementStart(22, "span", 11);
119
+ i0.ɵɵdomElementStart(22, "span", 12);
93
120
  i0.ɵɵtext(23);
94
121
  i0.ɵɵdomElementEnd()();
95
- i0.ɵɵdomElementStart(24, "div", 9)(25, "span", 10);
122
+ i0.ɵɵdomElementStart(24, "div", 10)(25, "span", 11);
96
123
  i0.ɵɵtext(26, "User Type");
97
124
  i0.ɵɵdomElementEnd();
98
- i0.ɵɵdomElementStart(27, "span", 12);
125
+ i0.ɵɵdomElementStart(27, "span", 13);
99
126
  i0.ɵɵtext(28);
100
127
  i0.ɵɵdomElementEnd()()()()();
101
128
  } if (rf & 2) {
102
- i0.ɵɵadvance(7);
103
- i0.ɵɵtextInterpolate1("", ctx.Roles.length, " Roles");
129
+ i0.ɵɵadvance(6);
130
+ i0.ɵɵconditional(!ctx.LoadError ? 6 : -1);
104
131
  i0.ɵɵadvance(2);
105
- i0.ɵɵconditional(ctx.Roles.length === 0 ? 9 : 10);
106
- i0.ɵɵadvance(13);
132
+ i0.ɵɵconditional(ctx.LoadError ? 8 : ctx.Roles.length === 0 ? 9 : 10);
133
+ i0.ɵɵadvance(14);
107
134
  i0.ɵɵclassProp("mj-pill-green", ctx.User == null ? null : ctx.User.IsActive)("mj-pill-red", !(ctx.User == null ? null : ctx.User.IsActive));
108
135
  i0.ɵɵadvance();
109
136
  i0.ɵɵtextInterpolate1(" ", (ctx.User == null ? null : ctx.User.IsActive) ? "Active" : "Disabled", " ");
110
137
  i0.ɵɵadvance(5);
111
138
  i0.ɵɵtextInterpolate((ctx.User == null ? null : ctx.User.Type) || "Standard User");
112
- } }, dependencies: [CommonModule], styles: ["[_nghost-%COMP%] { display: block; width: 100%; margin-bottom: 20px; }\n .mj-user-overview-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header[_ngcontent-%COMP%] {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title[_ngcontent-%COMP%] {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body[_ngcontent-%COMP%] {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label[_ngcontent-%COMP%] { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val[_ngcontent-%COMP%] { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-pill[_ngcontent-%COMP%] { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green[_ngcontent-%COMP%] { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-red[_ngcontent-%COMP%] { background: rgba(244, 63, 94, 0.15); color: #f43f5e; }\n .mj-pill-purple[_ngcontent-%COMP%] { background: rgba(168, 85, 247, 0.15); color: #c084fc; }"], changeDetection: 0 }); }
139
+ } }, dependencies: [CommonModule], styles: ["[_nghost-%COMP%] { display: block; width: 100%; margin-bottom: 20px; }\n .mj-user-overview-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header[_ngcontent-%COMP%] {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title[_ngcontent-%COMP%] {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body[_ngcontent-%COMP%] {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label[_ngcontent-%COMP%] { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val[_ngcontent-%COMP%] { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-load-error[_ngcontent-%COMP%] { font-size: 12px; color: var(--mj-status-error); }\n .mj-pill[_ngcontent-%COMP%] { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green[_ngcontent-%COMP%] { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-red[_ngcontent-%COMP%] { background: rgba(244, 63, 94, 0.15); color: #f43f5e; }\n .mj-pill-purple[_ngcontent-%COMP%] { background: rgba(168, 85, 247, 0.15); color: #c084fc; }"], changeDetection: 0 }); }
113
140
  };
114
141
  UserOverviewPanel = __decorate([
115
142
  RegisterClassEx(BaseFormPanel, {
116
- key: 'form-panel:Users:overview',
143
+ key: 'form-panel:MJ: Users:overview',
117
144
  metadata: {
118
- entity: 'Users',
145
+ entity: 'MJ: Users',
119
146
  slot: 'before-fields',
120
147
  sortKey: 10,
121
148
  },
@@ -130,10 +157,14 @@ export { UserOverviewPanel };
130
157
  <div class="mj-overview-card">
131
158
  <div class="mj-card-header">
132
159
  <div class="mj-card-title"><i class="fa-solid fa-shield-halved" style="color: var(--mj-brand-primary, #38bdf8);"></i> Assigned Security Roles</div>
133
- <span class="mj-card-badge">{{ Roles.length }} Roles</span>
160
+ @if (!LoadError) {
161
+ <span class="mj-card-badge">{{ Roles.length }} Roles</span>
162
+ }
134
163
  </div>
135
164
  <div class="mj-card-body">
136
- @if (Roles.length === 0) {
165
+ @if (LoadError) {
166
+ <span class="mj-load-error">{{ LoadError }}</span>
167
+ } @else if (Roles.length === 0) {
137
168
  <span style="font-size: 12px; color: var(--mj-text-muted);">No explicit roles assigned. Default permissions apply.</span>
138
169
  } @else {
139
170
  @for (role of Roles; track role.ID) {
@@ -166,7 +197,7 @@ export { UserOverviewPanel };
166
197
  </div>
167
198
  </div>
168
199
  </div>
169
- `, styles: ["\n :host { display: block; width: 100%; margin-bottom: 20px; }\n .mj-user-overview-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-pill { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-red { background: rgba(244, 63, 94, 0.15); color: #f43f5e; }\n .mj-pill-purple { background: rgba(168, 85, 247, 0.15); color: #c084fc; }\n "] }]
200
+ `, styles: ["\n :host { display: block; width: 100%; margin-bottom: 20px; }\n .mj-user-overview-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-load-error { font-size: 12px; color: var(--mj-status-error); }\n .mj-pill { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-red { background: rgba(244, 63, 94, 0.15); color: #f43f5e; }\n .mj-pill-purple { background: rgba(168, 85, 247, 0.15); color: #c084fc; }\n "] }]
170
201
  }], null, null); })();
171
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserOverviewPanel, { className: "UserOverviewPanel", filePath: "src/lib/custom/Users/user-overview.panel.ts", lineNumber: 128 }); })();
202
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserOverviewPanel, { className: "UserOverviewPanel", filePath: "src/lib/custom/Users/user-overview.panel.ts", lineNumber: 133 }); })();
172
203
  //# sourceMappingURL=user-overview.panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-overview.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/Users/user-overview.panel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ChangeDetectionStrategy, OnInit, inject, ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RunView } from '@memberjunction/core';\nimport { RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormPanel } from '@memberjunction/ng-base-forms';\nimport { MJUserEntity } from '@memberjunction/core-entities';\n\ninterface UserRoleRow {\n ID: string;\n Role: string;\n}\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:Users:overview',\n metadata: {\n entity: 'Users',\n slot: 'before-fields',\n sortKey: 10,\n },\n})\n@Component({\n selector: 'mj-user-overview-panel',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"mj-user-overview-grid\">\n <!-- Card 1: Assigned Roles -->\n <div class=\"mj-overview-card\">\n <div class=\"mj-card-header\">\n <div class=\"mj-card-title\"><i class=\"fa-solid fa-shield-halved\" style=\"color: var(--mj-brand-primary, #38bdf8);\"></i> Assigned Security Roles</div>\n <span class=\"mj-card-badge\">{{ Roles.length }} Roles</span>\n </div>\n <div class=\"mj-card-body\">\n @if (Roles.length === 0) {\n <span style=\"font-size: 12px; color: var(--mj-text-muted);\">No explicit roles assigned. Default permissions apply.</span>\n } @else {\n @for (role of Roles; track role.ID) {\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">{{ role.Role }}</span>\n <span class=\"mj-pill mj-pill-purple\">Granted</span>\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Card 2: Account Health & Status -->\n <div class=\"mj-overview-card\">\n <div class=\"mj-card-header\">\n <div class=\"mj-card-title\"><i class=\"fa-solid fa-user-check\" style=\"color: #10b981;\"></i> Account Health</div>\n <span class=\"mj-card-badge\">Security</span>\n </div>\n <div class=\"mj-card-body\">\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">Account Active</span>\n <span class=\"mj-pill\" [class.mj-pill-green]=\"User?.IsActive\" [class.mj-pill-red]=\"!User?.IsActive\">\n {{ User?.IsActive ? 'Active' : 'Disabled' }}\n </span>\n </div>\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">User Type</span>\n <span class=\"mj-metric-val\">{{ User?.Type || 'Standard User' }}</span>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: [`\n :host { display: block; width: 100%; margin-bottom: 20px; }\n .mj-user-overview-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-pill { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-red { background: rgba(244, 63, 94, 0.15); color: #f43f5e; }\n .mj-pill-purple { background: rgba(168, 85, 247, 0.15); color: #c084fc; }\n `]\n})\nexport class UserOverviewPanel extends BaseFormPanel<MJUserEntity> implements OnInit {\n private cdr = inject(ChangeDetectorRef);\n public Roles: UserRoleRow[] = [];\n\n public get User(): MJUserEntity | null {\n return this.Record;\n }\n\n public ngOnInit(): void {\n this.loadUserRoles();\n }\n\n private async loadUserRoles(): Promise<void> {\n if (!this.Record?.ID) return;\n try {\n const rv = new RunView();\n const res = await rv.RunView<UserRoleRow>({\n EntityName: 'MJ: User Roles',\n ExtraFilter: `UserID = '${this.Record.ID}'`,\n Fields: ['ID', 'Role'],\n MaxRows: 20,\n ResultType: 'simple'\n });\n if (res.Success && res.Results) {\n this.Roles = res.Results;\n this.cdr.markForCheck();\n }\n } catch (e) {\n console.error('Failed to load user roles:', e);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"user-overview.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/Users/user-overview.panel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ChangeDetectionStrategy, OnInit, inject, ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RunView } from '@memberjunction/core';\nimport { RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormPanel } from '@memberjunction/ng-base-forms';\nimport { MJUserEntity } from '@memberjunction/core-entities';\n\ninterface UserRoleRow {\n ID: string;\n Role: string;\n}\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJ: Users:overview',\n metadata: {\n entity: 'MJ: Users',\n slot: 'before-fields',\n sortKey: 10,\n },\n})\n@Component({\n selector: 'mj-user-overview-panel',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"mj-user-overview-grid\">\n <!-- Card 1: Assigned Roles -->\n <div class=\"mj-overview-card\">\n <div class=\"mj-card-header\">\n <div class=\"mj-card-title\"><i class=\"fa-solid fa-shield-halved\" style=\"color: var(--mj-brand-primary, #38bdf8);\"></i> Assigned Security Roles</div>\n @if (!LoadError) {\n <span class=\"mj-card-badge\">{{ Roles.length }} Roles</span>\n }\n </div>\n <div class=\"mj-card-body\">\n @if (LoadError) {\n <span class=\"mj-load-error\">{{ LoadError }}</span>\n } @else if (Roles.length === 0) {\n <span style=\"font-size: 12px; color: var(--mj-text-muted);\">No explicit roles assigned. Default permissions apply.</span>\n } @else {\n @for (role of Roles; track role.ID) {\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">{{ role.Role }}</span>\n <span class=\"mj-pill mj-pill-purple\">Granted</span>\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Card 2: Account Health & Status -->\n <div class=\"mj-overview-card\">\n <div class=\"mj-card-header\">\n <div class=\"mj-card-title\"><i class=\"fa-solid fa-user-check\" style=\"color: #10b981;\"></i> Account Health</div>\n <span class=\"mj-card-badge\">Security</span>\n </div>\n <div class=\"mj-card-body\">\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">Account Active</span>\n <span class=\"mj-pill\" [class.mj-pill-green]=\"User?.IsActive\" [class.mj-pill-red]=\"!User?.IsActive\">\n {{ User?.IsActive ? 'Active' : 'Disabled' }}\n </span>\n </div>\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">User Type</span>\n <span class=\"mj-metric-val\">{{ User?.Type || 'Standard User' }}</span>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: [`\n :host { display: block; width: 100%; margin-bottom: 20px; }\n .mj-user-overview-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-load-error { font-size: 12px; color: var(--mj-status-error); }\n .mj-pill { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-red { background: rgba(244, 63, 94, 0.15); color: #f43f5e; }\n .mj-pill-purple { background: rgba(168, 85, 247, 0.15); color: #c084fc; }\n `]\n})\nexport class UserOverviewPanel extends BaseFormPanel<MJUserEntity> implements OnInit {\n private cdr = inject(ChangeDetectorRef);\n public Roles: UserRoleRow[] = [];\n /** Set when the query fails, so the card shows the failure instead of an empty list. */\n public LoadError: string | null = null;\n\n public get User(): MJUserEntity | null {\n return this.Record;\n }\n\n public ngOnInit(): void {\n this.loadUserRoles();\n }\n\n private async loadUserRoles(): Promise<void> {\n if (!this.Record?.ID) return;\n try {\n const rv = new RunView();\n const res = await rv.RunView<UserRoleRow>({\n EntityName: 'MJ: User Roles',\n ExtraFilter: `UserID = '${this.Record.ID}'`,\n Fields: ['ID', 'Role'],\n MaxRows: 20,\n ResultType: 'simple'\n });\n if (res.Success) {\n this.Roles = res.Results ?? [];\n } else {\n this.showLoadError(res.ErrorMessage);\n }\n } catch (e) {\n console.error('Failed to load user roles:', e);\n this.showLoadError(e instanceof Error ? e.message : undefined);\n }\n this.cdr.markForCheck();\n }\n\n /** Shows a short \"could not load\" line, with the underlying message when there is one. */\n private showLoadError(detail: string | undefined): void {\n this.LoadError = detail ? `Could not load roles: ${detail}` : 'Could not load roles.';\n }\n}\n"]}
@@ -0,0 +1,34 @@
1
+ /** A model + vendor's token rates, in currency per token. */
2
+ export interface PromptRunTokenRates {
3
+ InputRate: number;
4
+ OutputRate: number;
5
+ CacheReadRate: number;
6
+ CacheWriteRate: number;
7
+ }
8
+ /** The prompt run fields the split reads. Deliberately not the full entity. */
9
+ export type PromptRunCostSplitFields = {
10
+ TokensPrompt?: number | null;
11
+ TokensCompletion?: number | null;
12
+ TokensCacheRead?: number | null;
13
+ TokensCacheWrite?: number | null;
14
+ ModelSpecificResponseDetails?: string | null;
15
+ };
16
+ /** One run's share of the cost card. */
17
+ export interface PromptRunCostSplit {
18
+ /** Uncached input, cache reads and cache writes, each at its own rate. */
19
+ InputCost: number;
20
+ /** The output tokens the cost row priced, at the output rate. */
21
+ OutputCost: number;
22
+ /** What caching saved against pricing every input token at the full input rate. */
23
+ Savings: number;
24
+ /** The avatar video line's cost, from the run's cost lines; 0 for a run without one. */
25
+ AvatarVideoCost: number;
26
+ }
27
+ /**
28
+ * Splits one prompt run's cost into input, output and avatar video.
29
+ *
30
+ * @param run The prompt run's token columns and details.
31
+ * @param rate Its model + vendor's token rates.
32
+ */
33
+ export declare function SplitPromptRunCost(run: PromptRunCostSplitFields, rate: PromptRunTokenRates): PromptRunCostSplit;
34
+ //# sourceMappingURL=agent-run-cost-split.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-run-cost-split.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/agent-run-cost-split.ts"],"names":[],"mappings":"AAWA,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,+EAA+E;AAC/E,MAAM,MAAM,wBAAwB,GAAG;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,4BAA4B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD,CAAC;AAEF,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IAC/B,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,wFAAwF;IACxF,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,mBAAmB,GAAG,kBAAkB,CAe/G"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The input / output / avatar video split of one prompt run's cost, for the agent-run analytics cost card.
3
+ *
4
+ * The card prices input and output from the run's cost row, per token. A realtime run with a generated avatar is
5
+ * priced in two lines (written into its details as `CostLines` when it was priced): the cost row over its tokens, less
6
+ * the output tokens the provider counted as video, plus the avatar video at its per-minute price. Pricing every output
7
+ * token at the output rate would charge that video at the text rate and disagree with the run's `Cost`; so the split
8
+ * prices only the output tokens the cost row's line priced, and reads the video line's cost as it is.
9
+ */
10
+ import { AVATAR_VIDEO_COST_LINE_MODALITY, ReadCostLines } from '@memberjunction/ai-engine-base';
11
+ /**
12
+ * Splits one prompt run's cost into input, output and avatar video.
13
+ *
14
+ * @param run The prompt run's token columns and details.
15
+ * @param rate Its model + vendor's token rates.
16
+ */
17
+ export function SplitPromptRunCost(run, rate) {
18
+ const lines = ReadCostLines(run.ModelSpecificResponseDetails);
19
+ const defaultLine = lines.find((line) => line.Modality === null);
20
+ const videoLines = lines.filter((line) => line.Modality === AVATAR_VIDEO_COST_LINE_MODALITY);
21
+ const inputTokens = run.TokensPrompt ?? 0;
22
+ const cacheReadTokens = run.TokensCacheRead ?? 0;
23
+ const cacheWriteTokens = run.TokensCacheWrite ?? 0;
24
+ // Without a video line every output token was priced at the output rate, as it always was.
25
+ const outputTokens = videoLines.length > 0 && defaultLine ? defaultLine.Output : (run.TokensCompletion ?? 0);
26
+ return {
27
+ InputCost: inputTokens * rate.InputRate + cacheReadTokens * rate.CacheReadRate + cacheWriteTokens * rate.CacheWriteRate,
28
+ OutputCost: outputTokens * rate.OutputRate,
29
+ Savings: cacheReadTokens * (rate.InputRate - rate.CacheReadRate) + cacheWriteTokens * (rate.InputRate - rate.CacheWriteRate),
30
+ AvatarVideoCost: videoLines.reduce((total, line) => total + line.Cost, 0),
31
+ };
32
+ }
33
+ //# sourceMappingURL=agent-run-cost-split.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-run-cost-split.js","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/agent-run-cost-split.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,+BAA+B,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AA+BhG;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAA6B,EAAE,IAAyB;IACvF,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,+BAA+B,CAAC,CAAC;IAC7F,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC;IACjD,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC;IACnD,2FAA2F;IAC3F,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC;IAC7G,OAAO;QACH,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,eAAe,GAAG,IAAI,CAAC,aAAa,GAAG,gBAAgB,GAAG,IAAI,CAAC,cAAc;QACvH,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC,UAAU;QAC1C,OAAO,EAAE,eAAe,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,gBAAgB,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;QAC5H,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;KAC5E,CAAC;AACN,CAAC","sourcesContent":["/**\n * The input / output / avatar video split of one prompt run's cost, for the agent-run analytics cost card.\n *\n * The card prices input and output from the run's cost row, per token. A realtime run with a generated avatar is\n * priced in two lines (written into its details as `CostLines` when it was priced): the cost row over its tokens, less\n * the output tokens the provider counted as video, plus the avatar video at its per-minute price. Pricing every output\n * token at the output rate would charge that video at the text rate and disagree with the run's `Cost`; so the split\n * prices only the output tokens the cost row's line priced, and reads the video line's cost as it is.\n */\nimport { AVATAR_VIDEO_COST_LINE_MODALITY, ReadCostLines } from '@memberjunction/ai-engine-base';\n\n/** A model + vendor's token rates, in currency per token. */\nexport interface PromptRunTokenRates {\n InputRate: number;\n OutputRate: number;\n CacheReadRate: number;\n CacheWriteRate: number;\n}\n\n/** The prompt run fields the split reads. Deliberately not the full entity. */\nexport type PromptRunCostSplitFields = {\n TokensPrompt?: number | null;\n TokensCompletion?: number | null;\n TokensCacheRead?: number | null;\n TokensCacheWrite?: number | null;\n ModelSpecificResponseDetails?: string | null;\n};\n\n/** One run's share of the cost card. */\nexport interface PromptRunCostSplit {\n /** Uncached input, cache reads and cache writes, each at its own rate. */\n InputCost: number;\n /** The output tokens the cost row priced, at the output rate. */\n OutputCost: number;\n /** What caching saved against pricing every input token at the full input rate. */\n Savings: number;\n /** The avatar video line's cost, from the run's cost lines; 0 for a run without one. */\n AvatarVideoCost: number;\n}\n\n/**\n * Splits one prompt run's cost into input, output and avatar video.\n *\n * @param run The prompt run's token columns and details.\n * @param rate Its model + vendor's token rates.\n */\nexport function SplitPromptRunCost(run: PromptRunCostSplitFields, rate: PromptRunTokenRates): PromptRunCostSplit {\n const lines = ReadCostLines(run.ModelSpecificResponseDetails);\n const defaultLine = lines.find((line) => line.Modality === null);\n const videoLines = lines.filter((line) => line.Modality === AVATAR_VIDEO_COST_LINE_MODALITY);\n const inputTokens = run.TokensPrompt ?? 0;\n const cacheReadTokens = run.TokensCacheRead ?? 0;\n const cacheWriteTokens = run.TokensCacheWrite ?? 0;\n // Without a video line every output token was priced at the output rate, as it always was.\n const outputTokens = videoLines.length > 0 && defaultLine ? defaultLine.Output : (run.TokensCompletion ?? 0);\n return {\n InputCost: inputTokens * rate.InputRate + cacheReadTokens * rate.CacheReadRate + cacheWriteTokens * rate.CacheWriteRate,\n OutputCost: outputTokens * rate.OutputRate,\n Savings: cacheReadTokens * (rate.InputRate - rate.CacheReadRate) + cacheWriteTokens * (rate.InputRate - rate.CacheWriteRate),\n AvatarVideoCost: videoLines.reduce((total, line) => total + line.Cost, 0),\n };\n}\n"]}
@@ -35,6 +35,7 @@ interface PromptMetrics {
35
35
  inputCost: number;
36
36
  outputCost: number;
37
37
  savings: number;
38
+ avatarVideoCost: number;
38
39
  unratedCost: number;
39
40
  };
40
41
  tokenUsage: {
@@ -344,6 +345,8 @@ export declare class AIAgentRunAnalyticsComponent extends BaseAngularComponent i
344
345
  get inputCost(): number;
345
346
  /** Rate-derived output dollars. */
346
347
  get OutputCost(): number;
348
+ /** Avatar video dollars, from the runs' cost lines (priced per minute, apart from the output tokens). */
349
+ get AvatarVideoCost(): number;
347
350
  /** @deprecated Use {@link OutputCost}. */
348
351
  get outputCost(): number;
349
352
  /** Net dollars saved by caching vs. pricing all input at the full input rate. */
@@ -1 +1 @@
1
- {"version":3,"file":"ai-agent-run-analytics.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-analytics.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-agent-run-analytics.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/ai-agent-run/ai-agent-run-analytics.component.ts"],"names":[],"mappings":"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"}