@memberjunction/ng-core-entity-forms 6.2.0 → 6.3.0-edge.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 (204) hide show
  1. package/README.md +5 -6
  2. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js +3 -3
  4. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js.map +1 -1
  5. package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.d.ts +12 -0
  6. package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.d.ts.map +1 -1
  7. package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js +293 -230
  8. package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js.map +1 -1
  9. package/dist/lib/custom/AIAgents/add-action-dialog.component.js +2 -2
  10. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +2 -2
  11. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +11 -0
  12. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  13. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +862 -812
  14. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  15. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +2 -2
  16. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +2 -2
  17. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +2 -2
  18. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +2 -2
  19. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +2 -2
  20. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +2 -2
  21. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +12 -0
  22. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  23. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +821 -763
  24. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  25. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +2 -2
  26. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +10 -0
  27. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
  28. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +700 -605
  29. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  30. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +10 -0
  31. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
  32. package/dist/lib/custom/Actions/action-execution-log-form.component.js +223 -175
  33. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  34. package/dist/lib/custom/Actions/action-form.component.d.ts +10 -0
  35. package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
  36. package/dist/lib/custom/Actions/action-form.component.js +502 -453
  37. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  38. package/dist/lib/custom/Companies/company-header.panel.d.ts.map +1 -1
  39. package/dist/lib/custom/Companies/company-header.panel.js +3 -3
  40. package/dist/lib/custom/Companies/company-header.panel.js.map +1 -1
  41. package/dist/lib/custom/Conversations/conversation-header.panel.d.ts.map +1 -1
  42. package/dist/lib/custom/Conversations/conversation-header.panel.js +3 -3
  43. package/dist/lib/custom/Conversations/conversation-header.panel.js.map +1 -1
  44. package/dist/lib/custom/Employees/employee-header.panel.d.ts.map +1 -1
  45. package/dist/lib/custom/Employees/employee-header.panel.js +3 -3
  46. package/dist/lib/custom/Employees/employee-header.panel.js.map +1 -1
  47. package/dist/lib/custom/Entities/entity-form.component.d.ts +15 -0
  48. package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
  49. package/dist/lib/custom/Entities/entity-form.component.js +836 -801
  50. package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
  51. package/dist/lib/custom/EntityActions/entityaction.form.component.js +2 -2
  52. package/dist/lib/custom/Files/file-form.component.js +2 -2
  53. package/dist/lib/custom/Lists/list-form.component.d.ts +5 -0
  54. package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
  55. package/dist/lib/custom/Lists/list-form.component.js +355 -338
  56. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  57. package/dist/lib/custom/MLModels/ml-model-form.component.js +3 -3
  58. package/dist/lib/custom/MLModels/ml-model-form.component.js.map +1 -1
  59. package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +17 -35
  60. package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -1
  61. package/dist/lib/custom/MLModels/ml-model-view-models.js +55 -54
  62. package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -1
  63. package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +7 -99
  64. package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -1
  65. package/dist/lib/custom/MLModels/ps-model-detail.component.js +124 -303
  66. package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -1
  67. package/dist/lib/custom/Queries/query-form.component.d.ts +9 -0
  68. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  69. package/dist/lib/custom/Queries/query-form.component.js +493 -444
  70. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  71. package/dist/lib/custom/Queries/query-run-dialog.component.js +2 -2
  72. package/dist/lib/custom/Templates/template-param-dialog.component.js +2 -2
  73. package/dist/lib/custom/Templates/templates-form.component.d.ts +9 -0
  74. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  75. package/dist/lib/custom/Templates/templates-form.component.js +118 -74
  76. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  77. package/dist/lib/custom/Tests/test-form.component.d.ts +5 -0
  78. package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
  79. package/dist/lib/custom/Tests/test-form.component.js +471 -451
  80. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  81. package/dist/lib/custom/Tests/test-run-form.component.d.ts +5 -0
  82. package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
  83. package/dist/lib/custom/Tests/test-run-form.component.js +312 -289
  84. package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
  85. package/dist/lib/custom/Tests/test-suite-form.component.d.ts +5 -0
  86. package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
  87. package/dist/lib/custom/Tests/test-suite-form.component.js +697 -677
  88. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  89. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +5 -0
  90. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
  91. package/dist/lib/custom/Tests/test-suite-run-form.component.js +453 -433
  92. package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
  93. package/dist/lib/custom/Users/user-header.panel.d.ts.map +1 -1
  94. package/dist/lib/custom/Users/user-header.panel.js +3 -3
  95. package/dist/lib/custom/Users/user-header.panel.js.map +1 -1
  96. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts +2 -2
  97. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts.map +1 -1
  98. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js +30 -13
  99. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js.map +1 -1
  100. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +23 -0
  101. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  102. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +276 -216
  103. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  104. package/dist/lib/custom/custom-forms.module.d.ts +1 -1
  105. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  106. package/dist/lib/custom/custom-forms.module.js +7 -1
  107. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  108. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
  109. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +32 -14
  110. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
  111. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.d.ts.map +1 -1
  112. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js +119 -95
  113. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js.map +1 -1
  114. package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.d.ts +10 -0
  115. package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.d.ts.map +1 -0
  116. package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.js +124 -0
  117. package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.js.map +1 -0
  118. package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.d.ts +10 -0
  119. package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.d.ts.map +1 -0
  120. package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.js +99 -0
  121. package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.js.map +1 -0
  122. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +2 -2
  123. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
  124. package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.d.ts +10 -0
  125. package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.d.ts.map +1 -0
  126. package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.js +95 -0
  127. package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.js.map +1 -0
  128. package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.d.ts +10 -0
  129. package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.d.ts.map +1 -0
  130. package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.js +60 -0
  131. package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.js.map +1 -0
  132. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  133. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +124 -106
  134. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  135. package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.d.ts.map +1 -1
  136. package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js +12 -4
  137. package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js.map +1 -1
  138. package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.d.ts.map +1 -1
  139. package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js +19 -11
  140. package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js.map +1 -1
  141. package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.d.ts +10 -0
  142. package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.d.ts.map +1 -0
  143. package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.js +62 -0
  144. package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.js.map +1 -0
  145. package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.d.ts.map +1 -1
  146. package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js +26 -12
  147. package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js.map +1 -1
  148. package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.d.ts +10 -0
  149. package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.d.ts.map +1 -0
  150. package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.js +140 -0
  151. package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.js.map +1 -0
  152. package/dist/lib/generated/Entities/MJFile/mjfile.form.component.d.ts.map +1 -1
  153. package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js +69 -15
  154. package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js.map +1 -1
  155. package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.d.ts.map +1 -1
  156. package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js +31 -13
  157. package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js.map +1 -1
  158. package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.d.ts +10 -0
  159. package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.d.ts.map +1 -0
  160. package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.js +205 -0
  161. package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.js.map +1 -0
  162. package/dist/lib/generated/Entities/MJMLModel/mjmlmodel.form.component.d.ts.map +1 -1
  163. package/dist/lib/generated/Entities/MJMLModel/mjmlmodel.form.component.js +24 -6
  164. package/dist/lib/generated/Entities/MJMLModel/mjmlmodel.form.component.js.map +1 -1
  165. package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.d.ts +10 -0
  166. package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.d.ts.map +1 -0
  167. package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.js +173 -0
  168. package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.js.map +1 -0
  169. package/dist/lib/generated/Entities/MJMLTrainingPipeline/mjmltrainingpipeline.form.component.d.ts.map +1 -1
  170. package/dist/lib/generated/Entities/MJMLTrainingPipeline/mjmltrainingpipeline.form.component.js +46 -24
  171. package/dist/lib/generated/Entities/MJMLTrainingPipeline/mjmltrainingpipeline.form.component.js.map +1 -1
  172. package/dist/lib/generated/Entities/MJMLTrainingRun/mjmltrainingrun.form.component.js +22 -14
  173. package/dist/lib/generated/Entities/MJMLTrainingRun/mjmltrainingrun.form.component.js.map +1 -1
  174. package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.d.ts +10 -0
  175. package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.d.ts.map +1 -0
  176. package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.js +175 -0
  177. package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.js.map +1 -0
  178. package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js +8 -6
  179. package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js.map +1 -1
  180. package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.d.ts.map +1 -1
  181. package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js +44 -36
  182. package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js.map +1 -1
  183. package/dist/lib/generated/Entities/MJTask/mjtask.form.component.d.ts.map +1 -1
  184. package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js +54 -32
  185. package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js.map +1 -1
  186. package/dist/lib/generated/generated-forms.module.d.ts +452 -443
  187. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  188. package/dist/lib/generated/generated-forms.module.js +27 -0
  189. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  190. package/dist/lib/panels/feature-values/feature-values.panel.js +1 -1
  191. package/dist/lib/panels/feature-values/feature-values.panel.js.map +1 -1
  192. package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts +1 -1
  193. package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
  194. package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
  195. package/dist/lib/shared/components/template-editor.component.js +2 -2
  196. package/dist/lib/shared/phone-hero.d.ts +17 -0
  197. package/dist/lib/shared/phone-hero.d.ts.map +1 -0
  198. package/dist/lib/shared/phone-hero.js +30 -0
  199. package/dist/lib/shared/phone-hero.js.map +1 -0
  200. package/dist/lib/shared/phone-sections-state.d.ts +28 -0
  201. package/dist/lib/shared/phone-sections-state.d.ts.map +1 -0
  202. package/dist/lib/shared/phone-sections-state.js +38 -0
  203. package/dist/lib/shared/phone-sections-state.js.map +1 -0
  204. package/package.json +50 -50
package/README.md CHANGED
@@ -24,7 +24,7 @@ npm install @memberjunction/ng-core-entity-forms
24
24
  - @memberjunction/core
25
25
  - @memberjunction/core-entities
26
26
  - @memberjunction/ng-base-forms
27
- - Various MemberJunction and Kendo UI components
27
+ - Various MemberJunction UI components
28
28
 
29
29
  ## Usage
30
30
 
@@ -162,7 +162,7 @@ In doubt: "generated form + extras" → Pattern 1. "generated form is the wrong
162
162
  - `{entity-name}-form.component.html` (template)
163
163
  - **Inheritance**: Extend generated form components (e.g., `TemplateFormComponent`) which inherit from `BaseFormComponent`
164
164
  - **Registration**: Use `@RegisterClass(BaseFormComponent, 'EntityName')` decorator
165
- - **Module Integration**: Add to `custom-forms.module.ts` declarations, exports, and import required Kendo modules
165
+ - **Module Integration**: Add to `custom-forms.module.ts` declarations, exports, and import required MJ modules
166
166
 
167
167
  ### **Entity & Data Management**
168
168
  - **Strong Typing**: Never use `any` - always use proper entity types (`TemplateEntity`, `TemplateCategoryEntity`)
@@ -173,7 +173,7 @@ In doubt: "generated form + extras" → Pattern 1. "generated form is the wrong
173
173
  ### **Angular Best Practices**
174
174
  - **Modern Syntax**: Always use `@if`, `@for`, `@switch` instead of structural directives
175
175
  - **Track Functions**: Include `track` in `@for` loops for performance
176
- - **Component Integration**: Use Kendo UI components for consistency (textbox, textarea, dropdownlist, combobox, numerictextbox, button)
176
+ - **Component Integration**: Use MJ UI components for consistency (`mj-input`, `mj-textarea`, `mj-dropdown`, `mj-combobox`, `mj-numeric-input`, `button mjButton`)
177
177
 
178
178
  ### **Save Lifecycle & Validation**
179
179
  - **Override SaveRecord()**: Handle complex saving by overriding `SaveRecord(StopEditModeAfterSave: boolean)`
@@ -264,9 +264,8 @@ Each entity form typically follows this structure:
264
264
  - @memberjunction/ng-code-editor
265
265
  - @memberjunction/ng-timeline
266
266
  - @memberjunction/ng-join-grid
267
- - @progress/kendo-angular-grid
268
- - @progress/kendo-angular-dropdowns
269
- - @progress/kendo-angular-dialog
267
+ - `ag-grid-angular`
268
+ - `@memberjunction/ng-ui-components`
270
269
 
271
270
  ### AI & Notification Dependencies
272
271
  - @memberjunction/ai
@@ -1 +1 @@
1
- {"version":3,"file":"ai-agent-category-header.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgentCategories/ai-agent-category-header.panel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAkB,MAAM,+BAA+B,CAAC;;AAIxF,qBAqFa,0BAA2B,SAAQ,aAAa,CAAC,uBAAuB,CAAC;IAC3E,WAAW,UAAS;IAEpB,QAAQ,IAAI,IAAI;IAKvB,IAAW,QAAQ,IAAI,uBAAuB,GAAG,IAAI,CAEpD;IAEM,eAAe,IAAI,IAAI;yCAZrB,0BAA0B;2CAA1B,0BAA0B;CAgBtC"}
1
+ {"version":3,"file":"ai-agent-category-header.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgentCategories/ai-agent-category-header.panel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAkB,MAAM,+BAA+B,CAAC;;AAIxF,qBA2Fa,0BAA2B,SAAQ,aAAa,CAAC,uBAAuB,CAAC;IAC3E,WAAW,UAAS;IAEpB,QAAQ,IAAI,IAAI;IAKvB,IAAW,QAAQ,IAAI,uBAAuB,GAAG,IAAI,CAEpD;IAEM,eAAe,IAAI,IAAI;yCAZrB,0BAA0B;2CAA1B,0BAA0B;CAgBtC"}
@@ -81,7 +81,7 @@ let AIAgentCategoryHeaderPanel = class AIAgentCategoryHeaderPanel extends BaseFo
81
81
  i0.ɵɵconditionalCreate(0, AIAgentCategoryHeaderPanel_Conditional_0_Template, 15, 8, "div", 0);
82
82
  } if (rf & 2) {
83
83
  i0.ɵɵconditional(ctx.Category ? 0 : -1);
84
- } }, dependencies: [CommonModule], styles: ["[_nghost-%COMP%] { display: block; width: 100%; }\n .mj-entity-hero-header[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }\n .mj-hero-identity[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 14px; }\n .mj-hero-avatar[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] { font-size: 18px; font-weight: 800; color: var(--mj-text-primary, #f8fafc); }\n .mj-hero-subline[_ngcontent-%COMP%] { font-size: 12.5px; color: var(--mj-text-secondary, #94a3b8); margin-top: 2px; }\n .mj-hero-toggle-btn[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 2px; }\n .mj-hero-metric-label[_ngcontent-%COMP%] { font-size: 10.5px; font-weight: 700; color: var(--mj-text-muted, #64748b); text-transform: uppercase; }\n .mj-hero-metric-val[_ngcontent-%COMP%] { font-size: 14px; font-weight: 700; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }"], changeDetection: 0 }); }
84
+ } }, dependencies: [CommonModule], styles: ["[_nghost-%COMP%] { display: block; width: 100%; }\n .mj-entity-hero-header[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }\n .mj-hero-identity[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 14px; }\n \n\n .mj-hero-top[_ngcontent-%COMP%], .mj-hero-identity[_ngcontent-%COMP%], .mj-hero-identity[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] { min-width: 0; }\n .mj-hero-identity[_ngcontent-%COMP%] { flex: 1 1 auto; }\n .mj-hero-title[_ngcontent-%COMP%] { overflow-wrap: anywhere; }\n .mj-hero-subline[_ngcontent-%COMP%], .mj-hero-metrics-row[_ngcontent-%COMP%] { flex-wrap: wrap; }\n .mj-hero-avatar[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] { font-size: 18px; font-weight: 800; color: var(--mj-text-primary, #f8fafc); }\n .mj-hero-subline[_ngcontent-%COMP%] { font-size: 12.5px; color: var(--mj-text-secondary, #94a3b8); margin-top: 2px; }\n .mj-hero-toggle-btn[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 2px; }\n .mj-hero-metric-label[_ngcontent-%COMP%] { font-size: 10.5px; font-weight: 700; color: var(--mj-text-muted, #64748b); text-transform: uppercase; }\n .mj-hero-metric-val[_ngcontent-%COMP%] { font-size: 14px; font-weight: 700; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }"], changeDetection: 0 }); }
85
85
  };
86
86
  AIAgentCategoryHeaderPanel = __decorate([
87
87
  RegisterClassEx(BaseFormPanel, {
@@ -136,7 +136,7 @@ export { AIAgentCategoryHeaderPanel };
136
136
  }
137
137
  </div>
138
138
  }
139
- `, 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; }\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 "] }]
139
+ `, 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 /* Let the identity column shrink so a long title (an email, say) wraps instead of pushing\n the toggle past the edge and making the panel column scroll sideways on a phone. */\n .mj-hero-top, .mj-hero-identity, .mj-hero-identity > div { min-width: 0; }\n .mj-hero-identity { flex: 1 1 auto; }\n .mj-hero-title { overflow-wrap: anywhere; }\n .mj-hero-subline, .mj-hero-metrics-row { flex-wrap: wrap; }\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; }\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 "] }]
140
140
  }], null, null); })();
141
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentCategoryHeaderPanel, { className: "AIAgentCategoryHeaderPanel", filePath: "src/lib/custom/AIAgentCategories/ai-agent-category-header.panel.ts", lineNumber: 94 }); })();
141
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentCategoryHeaderPanel, { className: "AIAgentCategoryHeaderPanel", filePath: "src/lib/custom/AIAgentCategories/ai-agent-category-header.panel.ts", lineNumber: 100 }); })();
142
142
  //# sourceMappingURL=ai-agent-category-header.panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-agent-category-header.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgentCategories/ai-agent-category-header.panel.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAU,MAAM,eAAe,CAAC;AAC3E,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,EAA2B,cAAc,EAAE,MAAM,+BAA+B,CAAC;;;IA8C5D,AADJ,AADJ,kCAAiC,cACD,eACW;IAAA,sBAAM;IAAA,oBAAO;IAChD,mCAAyD;IAAA,8BAAc;IAC3E,AAD2E,oBAAO,EAC5E;IAEF,AADJ,kCAA4B,eACW;IAAA,6BAAa;IAAA,oBAAO;IACvD,mCAAiC;IAAA,aAAkC;IAE3E,AADI,AADuE,oBAAO,EACxE,EACJ;;;IAFmC,gBAAkC;IAAlC,4FAAkC;;;;IAzBvE,AADJ,AADJ,AADJ,iCAAmC,aACN,aACS,aACiE;IACvF,0BAAuC;IAC3C,oBAAM;IAEF,AADJ,8BAAK,YACyB;IAAA,YAA0C;IAAA,oBAAK;IAErE,AADJ,iCAA6B,WACnB;IAAA,aAAyD;IAG3E,AADI,AADI,AADmE,oBAAO,EACpE,EACJ,EACJ;IAEF,AADJ,kCAA6B,iBACgH;IAAxF,kMAAS,wBAAiB,KAAC;IACxE,2BAAmG;IAG/G,AADI,AADI,oBAAS,EACP,EACJ;IAEN,8GAAoB;IAYxB,oBAAM;;;IAzBoC,eAA0C;IAA1C,iEAA0C;IAE1D,eAAyD;IAAzD,gFAAyD;IAKM,eAA2D;IAA3D,mFAA2D;IAChH,cAAoC;IAAC,AAArC,oDAAoC,uCAAsC;IAK1G,cAWC;IAXD,+CAWC;;AApDjB,MAAM,WAAW,GAAG,2CAA2C,CAAC;AAuFzD,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,aAAsC;IAA/E;;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,QAAQ;QACf,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;4RAfQ,0BAA0B,yBAA1B,0BAA0B;oEAA1B,0BAA0B;YAnE/B,6FAAgB;;YAAhB,uCAkCC;4BArCK,YAAY;;AAsEb,0BAA0B;IArFtC,eAAe,CAAC,aAAa,EAAE;QAC5B,GAAG,EAAE,2CAA2C;QAChD,QAAQ,EAAE;YACN,MAAM,EAAE,yBAAyB;YACjC,+EAA+E;YAC/E,8DAA8D;YAC9D,IAAI,EAAE,eAAe;YACrB,YAAY,EAAE,MAAM;YACpB,eAAe,EAAE,4BAA4B;YAC7C,OAAO,EAAE,EAAE;SACd;KACJ,CAAC;GA0EW,0BAA0B,CAgBtC;;iFAhBY,0BAA0B;cAzEtC,SAAS;2BACI,mCAAmC,cACjC,IAAI,WACP,CAAC,YAAY,CAAC,mBACN,uBAAuB,CAAC,MAAM,YACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoCT;;kFAgCQ,0BAA0B","sourcesContent":["import { Component, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormPanel } from '@memberjunction/ng-base-forms';\nimport { MJAIAgentCategoryEntity, UserInfoEngine } from '@memberjunction/core-entities';\n\nconst SETTING_KEY = 'mj.form.aiAgentCategories.headerCollapsed';\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJ: AI Agent Categories:header',\n metadata: {\n entity: 'MJ: AI Agent Categories',\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: 'ai-agent-categories:header',\n sortKey: 20,\n },\n})\n@Component({\n selector: 'mj-ai-agent-category-header-panel',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (Category) {\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, #8b5cf6, #6366f1);\">\n <i class=\"fa-solid fa-layer-group\"></i>\n </div>\n <div>\n <h1 class=\"mj-hero-title\">{{ Category.Name || 'AI Agent Category' }}</h1>\n <div class=\"mj-hero-subline\">\n <span>{{ Category.Description || 'Operational Agent Cluster' }}</span>\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\">Status</span>\n <span class=\"mj-hero-metric-val\" style=\"color: #10b981;\">Active Cluster</span>\n </div>\n <div class=\"mj-hero-metric\">\n <span class=\"mj-hero-metric-label\">Category Code</span>\n <span class=\"mj-hero-metric-val\">{{ Category.ID?.substring(0, 8) }}</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; }\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 AIAgentCategoryHeaderPanel extends BaseFormPanel<MJAIAgentCategoryEntity> {\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 Category(): MJAIAgentCategoryEntity | 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":"ai-agent-category-header.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgentCategories/ai-agent-category-header.panel.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAU,MAAM,eAAe,CAAC;AAC3E,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,EAA2B,cAAc,EAAE,MAAM,+BAA+B,CAAC;;;IA8C5D,AADJ,AADJ,kCAAiC,cACD,eACW;IAAA,sBAAM;IAAA,oBAAO;IAChD,mCAAyD;IAAA,8BAAc;IAC3E,AAD2E,oBAAO,EAC5E;IAEF,AADJ,kCAA4B,eACW;IAAA,6BAAa;IAAA,oBAAO;IACvD,mCAAiC;IAAA,aAAkC;IAE3E,AADI,AADuE,oBAAO,EACxE,EACJ;;;IAFmC,gBAAkC;IAAlC,4FAAkC;;;;IAzBvE,AADJ,AADJ,AADJ,iCAAmC,aACN,aACS,aACiE;IACvF,0BAAuC;IAC3C,oBAAM;IAEF,AADJ,8BAAK,YACyB;IAAA,YAA0C;IAAA,oBAAK;IAErE,AADJ,iCAA6B,WACnB;IAAA,aAAyD;IAG3E,AADI,AADI,AADmE,oBAAO,EACpE,EACJ,EACJ;IAEF,AADJ,kCAA6B,iBACgH;IAAxF,kMAAS,wBAAiB,KAAC;IACxE,2BAAmG;IAG/G,AADI,AADI,oBAAS,EACP,EACJ;IAEN,8GAAoB;IAYxB,oBAAM;;;IAzBoC,eAA0C;IAA1C,iEAA0C;IAE1D,eAAyD;IAAzD,gFAAyD;IAKM,eAA2D;IAA3D,mFAA2D;IAChH,cAAoC;IAAC,AAArC,oDAAoC,uCAAsC;IAK1G,cAWC;IAXD,+CAWC;;AApDjB,MAAM,WAAW,GAAG,2CAA2C,CAAC;AA6FzD,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,aAAsC;IAA/E;;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,QAAQ;QACf,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;4RAfQ,0BAA0B,yBAA1B,0BAA0B;oEAA1B,0BAA0B;YAzE/B,6FAAgB;;YAAhB,uCAkCC;4BArCK,YAAY;;AA4Eb,0BAA0B;IA3FtC,eAAe,CAAC,aAAa,EAAE;QAC5B,GAAG,EAAE,2CAA2C;QAChD,QAAQ,EAAE;YACN,MAAM,EAAE,yBAAyB;YACjC,+EAA+E;YAC/E,8DAA8D;YAC9D,IAAI,EAAE,eAAe;YACrB,YAAY,EAAE,MAAM;YACpB,eAAe,EAAE,4BAA4B;YAC7C,OAAO,EAAE,EAAE;SACd;KACJ,CAAC;GAgFW,0BAA0B,CAgBtC;;iFAhBY,0BAA0B;cA/EtC,SAAS;2BACI,mCAAmC,cACjC,IAAI,WACP,CAAC,YAAY,CAAC,mBACN,uBAAuB,CAAC,MAAM,YACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoCT;;kFAsCQ,0BAA0B","sourcesContent":["import { Component, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormPanel } from '@memberjunction/ng-base-forms';\nimport { MJAIAgentCategoryEntity, UserInfoEngine } from '@memberjunction/core-entities';\n\nconst SETTING_KEY = 'mj.form.aiAgentCategories.headerCollapsed';\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJ: AI Agent Categories:header',\n metadata: {\n entity: 'MJ: AI Agent Categories',\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: 'ai-agent-categories:header',\n sortKey: 20,\n },\n})\n@Component({\n selector: 'mj-ai-agent-category-header-panel',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (Category) {\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, #8b5cf6, #6366f1);\">\n <i class=\"fa-solid fa-layer-group\"></i>\n </div>\n <div>\n <h1 class=\"mj-hero-title\">{{ Category.Name || 'AI Agent Category' }}</h1>\n <div class=\"mj-hero-subline\">\n <span>{{ Category.Description || 'Operational Agent Cluster' }}</span>\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\">Status</span>\n <span class=\"mj-hero-metric-val\" style=\"color: #10b981;\">Active Cluster</span>\n </div>\n <div class=\"mj-hero-metric\">\n <span class=\"mj-hero-metric-label\">Category Code</span>\n <span class=\"mj-hero-metric-val\">{{ Category.ID?.substring(0, 8) }}</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 /* Let the identity column shrink so a long title (an email, say) wraps instead of pushing\n the toggle past the edge and making the panel column scroll sideways on a phone. */\n .mj-hero-top, .mj-hero-identity, .mj-hero-identity > div { min-width: 0; }\n .mj-hero-identity { flex: 1 1 auto; }\n .mj-hero-title { overflow-wrap: anywhere; }\n .mj-hero-subline, .mj-hero-metrics-row { flex-wrap: wrap; }\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; }\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 AIAgentCategoryHeaderPanel extends BaseFormPanel<MJAIAgentCategoryEntity> {\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 Category(): MJAIAgentCategoryEntity | 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,6 +1,7 @@
1
1
  import { OnInit } from '@angular/core';
2
2
  import { MJAIAgentSessionEntity } from '@memberjunction/core-entities';
3
3
  import { MJAIAgentSessionFormComponent } from '../../generated/Entities/MJAIAgentSession/mjaiagentsession.form.component';
4
+ import { SectionPickerItem } from '@memberjunction/ng-ui-components';
4
5
  import * as i0 from "@angular/core";
5
6
  /** Date values arrive as ISO strings from `ResultType: 'simple'` RunViews. */
6
7
  type DateLike = Date | string;
@@ -64,6 +65,12 @@ export interface SessionChannelDisplayRow {
64
65
  * tabbed panes for the delegated run tree, channels, transcript, and details.
65
66
  */
66
67
  export declare class MJAIAgentSessionFormComponentExtended extends MJAIAgentSessionFormComponent implements OnInit {
68
+ /** Phone hero (6A): whether the summary line is expanded to show the rest of the hero. */
69
+ HeroDetailsOpen: boolean;
70
+ /** Toggles the phone hero between its compact identity row and the full hero. */
71
+ ToggleHeroDetails(): void;
72
+ /** The phone hero's one-line summary of what the compact hero leaves out. */
73
+ get HeroSummary(): string;
67
74
  record: MJAIAgentSessionEntity;
68
75
  /** Hide the generated-section controls — this form has a fully custom layout. */
69
76
  readonly ToolbarConfig: import("@memberjunction/ng-base-forms").FormToolbarConfig;
@@ -113,6 +120,11 @@ export declare class MJAIAgentSessionFormComponentExtended extends MJAIAgentSess
113
120
  */
114
121
  private computeSessionUsage;
115
122
  ChangeTab(tab: 'runs' | 'channels' | 'transcript' | 'details'): void;
123
+ /** The tab strip as `mj-section-picker` items: strip order, a count only where the tab has rows. */
124
+ get SectionPickerItems(): SectionPickerItem[];
125
+ /** A pick from the phone section sheet; goes through ChangeTab. An unknown key is ignored. */
126
+ OnSectionPicked(key: string): void;
127
+ private static readonly phoneTabs;
116
128
  GetStatusIcon(status: string | null): string;
117
129
  GetRunStatusIcon(status: string): string;
118
130
  GetChannelIcon(channelName: string | null): string;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-agent-session-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgentSessions/ai-agent-session-form.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-agent-session-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgentSessions/ai-agent-session-form.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAU,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAKvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2EAA2E,CAAC;AAE1H,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;;AAcrE,8EAA8E;AAC9E,KAAK,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;AAiB9B,mEAAmE;AACnE,UAAU,iBAAiB;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC/D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;IACzB,YAAY,EAAE,QAAQ,CAAC;IACvB,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAC;CACnC;AASD,iFAAiF;AACjF,UAAU,aAAa;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,QAAQ,CAAC;CAC5B;AAED,iFAAiF;AACjF,UAAU,mBAAmB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;IAChB,WAAW,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,uFAAuF;AACvF,MAAM,WAAW,kBAAkB;IAC/B,+EAA+E;IAC/E,IAAI,EAAE,KAAK,GAAG,WAAW,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,8EAA8E;AAC9E,MAAM,WAAW,wBAAwB;IACrC,GAAG,EAAE,iBAAiB,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,qBAOa,qCAAsC,SAAQ,6BAA8B,YAAW,MAAM;IAEtG,0FAA0F;IACnF,eAAe,UAAS;IAE/B,iFAAiF;IAC1E,iBAAiB,IAAI,IAAI;IAKhC,6EAA6E;IAC7E,IAAW,WAAW,IAAI,MAAM,CAQ/B;IACM,MAAM,EAAG,sBAAsB,CAAC;IAEvC,iFAAiF;IACjF,SAAgB,aAAa,4DAAgC;IAE7D,8DAA8D;IAC9C,uBAAuB,IAAI,UAAU,GAAG,YAAY;IAEpE,2FAA2F;IAC3F,IAAoB,kBAAkB,IAAI,OAAO,CAAiB;IAG3D,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAU;IACnE,OAAO,UAAS;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGhC,OAAO,EAAE,kBAAkB,EAAE,CAAM;IACnC,QAAQ,EAAE,wBAAwB,EAAE,CAAM;IAC1C,UAAU,EAAE,aAAa,EAAE,CAAM;IACjC,iBAAiB,SAAK;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IACpC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IACtC,gBAAgB,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IACpD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,kBAAkB,CAAuB;IAEjD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,UAAU,CAA8B;IAEjC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAYxC,8EAA8E;IAC9E,OAAO,CAAC,kBAAkB;IAc1B;;;;;OAKG;YACW,eAAe;IAgF7B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,mBAAmB;IAiB3B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAcpB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,IAAI;IAI3E,oGAAoG;IACpG,IAAW,kBAAkB,IAAI,iBAAiB,EAAE,CAQnD;IAED,8FAA8F;IACvF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAoH;IAE9I,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAS5C,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAaxC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAWzD,8DAA8D;IAC9D,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,2EAA2E;IAC3E,IAAW,eAAe,IAAI,MAAM,CAMnC;IAEM,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM;IAa3E,OAAO,CAAC,MAAM;IAMd,uEAAuE;IACvE,IAAW,YAAY,IAAI,MAAM,CAShC;IAMM,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAM1E,0FAA0F;IACnF,sBAAsB,IAAI,IAAI;IAiB9B,WAAW,IAAI,IAAI;yCAzYjB,qCAAqC;2CAArC,qCAAqC;CAiZjD"}