@memberjunction/ng-core-entity-forms 6.2.0-edge.0 → 6.2.0-edge.1

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 (275) hide show
  1. package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts +1 -1
  2. package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js +2 -2
  3. package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js.map +1 -1
  4. package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js.map +1 -1
  5. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +90 -16
  6. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
  7. package/dist/lib/custom/AIAgents/add-action-dialog.component.js +218 -70
  8. package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
  9. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +80 -16
  10. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
  11. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +146 -46
  12. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
  13. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +329 -27
  14. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  15. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +794 -262
  16. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  17. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +76 -0
  18. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
  19. package/dist/lib/custom/AIAgents/ai-agent-management.service.js +77 -33
  20. package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
  21. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +69 -15
  22. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
  23. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +182 -74
  24. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
  25. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +105 -25
  26. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
  27. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +272 -112
  28. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
  29. package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +32 -6
  30. package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
  31. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +71 -19
  32. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
  33. package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +10 -0
  34. package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
  35. package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +27 -7
  36. package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
  37. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +65 -15
  38. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
  39. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +152 -52
  40. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
  41. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +81 -15
  42. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
  43. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +145 -45
  44. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
  45. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +71 -17
  46. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
  47. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +175 -67
  48. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
  49. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +173 -27
  50. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  51. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +385 -93
  52. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  53. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts +64 -4
  54. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -1
  55. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +129 -29
  56. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
  57. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +260 -27
  58. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
  59. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +686 -238
  60. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  61. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +10 -0
  62. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
  63. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +17 -9
  64. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
  65. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +74 -16
  66. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
  67. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +174 -58
  68. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
  69. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +108 -14
  70. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
  71. package/dist/lib/custom/Actions/action-execution-log-form.component.js +258 -70
  72. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  73. package/dist/lib/custom/Actions/action-form.component.d.ts +198 -14
  74. package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
  75. package/dist/lib/custom/Actions/action-form.component.js +387 -107
  76. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  77. package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts +12 -6
  78. package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts.map +1 -1
  79. package/dist/lib/custom/BridgeProviders/bridge-provider-features.js +41 -29
  80. package/dist/lib/custom/BridgeProviders/bridge-provider-features.js.map +1 -1
  81. package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js +14 -14
  82. package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js.map +1 -1
  83. package/dist/lib/custom/Companies/company-overview.panel.d.ts +1 -1
  84. package/dist/lib/custom/Companies/company-overview.panel.js +2 -2
  85. package/dist/lib/custom/Companies/company-overview.panel.js.map +1 -1
  86. package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +1 -1
  87. package/dist/lib/custom/Conversations/conversation-overview.panel.js +2 -2
  88. package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
  89. package/dist/lib/custom/Employees/employee-overview.panel.d.ts +1 -1
  90. package/dist/lib/custom/Employees/employee-overview.panel.js +2 -2
  91. package/dist/lib/custom/Employees/employee-overview.panel.js.map +1 -1
  92. package/dist/lib/custom/Entities/entity-form.component.d.ts +209 -28
  93. package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
  94. package/dist/lib/custom/Entities/entity-form.component.js +494 -138
  95. package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
  96. package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +5 -1
  97. package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
  98. package/dist/lib/custom/EntityActions/entityaction.form.component.js +10 -2
  99. package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
  100. package/dist/lib/custom/Files/file-form.component.d.ts +1 -1
  101. package/dist/lib/custom/Files/file-form.component.js +2 -2
  102. package/dist/lib/custom/Files/file-form.component.js.map +1 -1
  103. package/dist/lib/custom/Lists/list-form.component.d.ts +300 -36
  104. package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
  105. package/dist/lib/custom/Lists/list-form.component.js +664 -208
  106. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  107. package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +31 -0
  108. package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -1
  109. package/dist/lib/custom/MLModels/ml-model-view-models.js +52 -16
  110. package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -1
  111. package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +107 -10
  112. package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -1
  113. package/dist/lib/custom/MLModels/ps-model-detail.component.js +291 -101
  114. package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -1
  115. package/dist/lib/custom/Queries/query-form.component.d.ts +201 -26
  116. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  117. package/dist/lib/custom/Queries/query-form.component.js +429 -109
  118. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  119. package/dist/lib/custom/Queries/query-run-dialog.component.d.ts +107 -14
  120. package/dist/lib/custom/Queries/query-run-dialog.component.d.ts.map +1 -1
  121. package/dist/lib/custom/Queries/query-run-dialog.component.js +249 -79
  122. package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
  123. package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts +110 -4
  124. package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
  125. package/dist/lib/custom/RecordProcesses/record-process-form.component.js +858 -86
  126. package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
  127. package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts +1 -1
  128. package/dist/lib/custom/SearchScopes/searchscope-form.component.js +4 -4
  129. package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
  130. package/dist/lib/custom/SessionBridges/session-bridge-form.component.js.map +1 -1
  131. package/dist/lib/custom/Templates/template-param-dialog.component.d.ts +77 -13
  132. package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
  133. package/dist/lib/custom/Templates/template-param-dialog.component.js +196 -78
  134. package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
  135. package/dist/lib/custom/Templates/template-params-grid.component.d.ts +49 -7
  136. package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
  137. package/dist/lib/custom/Templates/template-params-grid.component.js +132 -44
  138. package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
  139. package/dist/lib/custom/Templates/templates-form.component.d.ts +142 -17
  140. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  141. package/dist/lib/custom/Templates/templates-form.component.js +333 -113
  142. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  143. package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +24 -4
  144. package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -1
  145. package/dist/lib/custom/Tests/entity-link-pill.component.js +64 -20
  146. package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
  147. package/dist/lib/custom/Tests/test-form.component.d.ts +217 -27
  148. package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
  149. package/dist/lib/custom/Tests/test-form.component.js +549 -169
  150. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  151. package/dist/lib/custom/Tests/test-run-checks.d.ts +2 -0
  152. package/dist/lib/custom/Tests/test-run-checks.d.ts.map +1 -1
  153. package/dist/lib/custom/Tests/test-run-checks.js +5 -1
  154. package/dist/lib/custom/Tests/test-run-checks.js.map +1 -1
  155. package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts +2 -0
  156. package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts.map +1 -1
  157. package/dist/lib/custom/Tests/test-run-feedback-form.component.js +5 -1
  158. package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
  159. package/dist/lib/custom/Tests/test-run-form.component.d.ts +146 -18
  160. package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
  161. package/dist/lib/custom/Tests/test-run-form.component.js +362 -106
  162. package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
  163. package/dist/lib/custom/Tests/test-suite-form.component.d.ts +390 -47
  164. package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
  165. package/dist/lib/custom/Tests/test-suite-form.component.js +1015 -343
  166. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  167. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +214 -26
  168. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
  169. package/dist/lib/custom/Tests/test-suite-run-form.component.js +535 -159
  170. package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
  171. package/dist/lib/custom/Users/user-overview.panel.d.ts +1 -1
  172. package/dist/lib/custom/Users/user-overview.panel.js +2 -2
  173. package/dist/lib/custom/Users/user-overview.panel.js.map +1 -1
  174. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +208 -29
  175. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
  176. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +446 -138
  177. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  178. package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts +6 -0
  179. package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts.map +1 -1
  180. package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js +16 -4
  181. package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js.map +1 -1
  182. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts +50 -6
  183. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
  184. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +84 -12
  185. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
  186. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +89 -5
  187. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
  188. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +216 -70
  189. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
  190. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +62 -3
  191. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
  192. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +140 -42
  193. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
  194. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +81 -10
  195. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  196. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +165 -37
  197. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  198. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +140 -15
  199. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  200. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +326 -100
  201. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  202. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts +101 -15
  203. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts.map +1 -1
  204. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js +281 -97
  205. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js.map +1 -1
  206. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts +43 -25
  207. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts.map +1 -1
  208. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js +100 -64
  209. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js.map +1 -1
  210. package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts +14 -2
  211. package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts.map +1 -1
  212. package/dist/lib/custom/ai-agent-run/flow/constellation.component.js +71 -53
  213. package/dist/lib/custom/ai-agent-run/flow/constellation.component.js.map +1 -1
  214. package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts +14 -2
  215. package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts.map +1 -1
  216. package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js +70 -52
  217. package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js.map +1 -1
  218. package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts +8 -0
  219. package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts.map +1 -1
  220. package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js +22 -6
  221. package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js.map +1 -1
  222. package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts +24 -2
  223. package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts.map +1 -1
  224. package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js +91 -59
  225. package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js.map +1 -1
  226. package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts +10 -2
  227. package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts.map +1 -1
  228. package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js +33 -17
  229. package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js.map +1 -1
  230. package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts +2 -0
  231. package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts.map +1 -1
  232. package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js +34 -30
  233. package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js.map +1 -1
  234. package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts +14 -2
  235. package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts.map +1 -1
  236. package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js +69 -51
  237. package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js.map +1 -1
  238. package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +38 -12
  239. package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
  240. package/dist/lib/custom/shared/entity-selector-dialog.component.js +103 -51
  241. package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
  242. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
  243. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +59 -51
  244. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
  245. package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +76 -74
  246. package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
  247. package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +27 -25
  248. package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
  249. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  250. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +155 -119
  251. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  252. package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts +5 -1
  253. package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts.map +1 -1
  254. package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js +11 -3
  255. package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js.map +1 -1
  256. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts +2 -0
  257. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts.map +1 -1
  258. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +16 -12
  259. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -1
  260. package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts +1 -1
  261. package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +2 -2
  262. package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -1
  263. package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts +45 -19
  264. package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
  265. package/dist/lib/panels/model-predictions/model-prediction.logic.js +95 -43
  266. package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
  267. package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts +20 -16
  268. package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts.map +1 -1
  269. package/dist/lib/panels/model-predictions/model-prediction.panel.js +73 -65
  270. package/dist/lib/panels/model-predictions/model-prediction.panel.js.map +1 -1
  271. package/dist/lib/shared/components/template-editor.component.d.ts +133 -14
  272. package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
  273. package/dist/lib/shared/components/template-editor.component.js +322 -124
  274. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  275. package/package.json +43 -42
@@ -1 +1 @@
1
- {"version":3,"file":"action-execution-log-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Actions/action-execution-log-form.component.ts","../../../../src/lib/custom/Actions/action-execution-log-form.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAoB,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAY,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iCAAiC,EAAE,MAAM,mFAAmF,CAAC;;;;;;;ICM1G,uBAAoC;;;IAAjC,iDAA4B;;;IAE/B,uBAA+B;;;IAO3B,gCAA0B;IAAA,YAAiB;IAAA,iBAAO;;;IAAxB,cAAiB;IAAjB,wCAAiB;;;IAwBnD,AADJ,+BAAkB,eACM;IAAA,qBAAK;IAAA,iBAAO;IAChC,gCAAoB;IAAA,YAAmC;;IAC3D,AAD2D,iBAAO,EAC5D;;;IADkB,eAAmC;IAAnC,0EAAmC;;;;IAKvD,AADJ,+BAAkB,eACM;IAAA,sBAAM;IAAA,iBAAO;IAE7B,AADJ,gCAAoB,iBACsC;IAA7B,8MAAS,yBAAkB,KAAC;IACjD,YACA;IAAA,wBAAwC;IAGpD,AADI,AADI,iBAAS,EACN,EACL;;;IAJM,eACA;IADA,mDACA;;;;IAOR,AADJ,+BAAkB,eACM;IAAA,oBAAI;IAAA,iBAAO;IAE3B,AADJ,gCAAoB,iBACoC;IAA3B,8MAAS,uBAAgB,KAAC;IAC/C,YACA;IAAA,wBAAwC;IAGpD,AADI,AADI,iBAAS,EACN,EACL;;;IAJM,eACA;IADA,iDACA;;;IAcV,wBAAkC;IAAC,mCACrC;;;IAoCM,wBAAgC;IAChC,4BACA;IAAA,gCAA2D;IAAA,YAAqB;IAAA,iBAAO;;;IAA5B,eAAqB;IAArB,4CAAqB;;;;IAoD9D,kCAA0F;IAA/C,kPAAsB,EAAE,KAAC;IAChE,wBAA4B;IAChC,iBAAS;;;IAaL,wBAAyG;;;IAA1F,0GAAqF;;;IAWpG,wBAA2F;;;IAA5E,4FAAuE;;;;IAoB9F,AADJ,AADJ,+BAAyC,cACX,eACG;IAAA,wBAAQ;IAAA,iBAAO;IACxC,kCAAsF;IAA3C,8NAAS,8CAAgC,KAAC;IACjF,wBAA2B;IAEnC,AADI,iBAAS,EACP;IACN,0CAMwC;IALpC,yWAA6B;IAOrC,AADI,iBAAiB,EACf;;;IAPE,eAA6B;IAA7B,sDAA6B;IAI7B,AADA,AADA,+BAAiB,oBACE,sBACE;;;;IAOzB,0CAQgC;IAA5B,sPAAU,qBAAc,KAAC;IAR7B,iBAQgC;;;IAQR,wBAAkC;;;IAElC,wBAAmC;;;IAEnC,wBAAmC;;;;IAanC,kCAA8J;IAAzE,6SAAS,4BAAiB,KAAC;IAC5G,wBAAgF;IACpF,iBAAS;;;IAF2C,6CAAgC;IAA6B,8DAA4C;IAC1I,cAA4D;IAA5D,8EAA4D;;;;IAWnF,AADJ,+BAA4B,yBAOgB;IALpC,iZAA8B;IAOtC,AADI,iBAAiB,EACf;;;IAPE,cAA8B;IAA9B,oDAA8B;IAI9B,AADA,AADA,AADA,4CAA0B,kBACT,oBACE,sBACE;;;;IApC7B,AADJ,AADJ,8BAAgD,cAClB,eAC6B;IAK7C,AAFA,AAFF,4JAA0B,sIAEQ,sIAEzB;IAGT,YACJ;IAAA,iBAAO;IAEH,AADJ,+BAA6B,eACA;IAAA,YAAY;IAAA,iBAAO;IAC5C,iCAA6D;IACzD,yBAA6D;IAC7D,aACJ;IACJ,AADI,iBAAO,EACL;IACN,gCAA2B;IACvB,mKAAsB;IAKtB,mCAAsF;IAA/C,2QAAS,4BAAiB,KAAC;IAC9D,yBAA2B;IAGvC,AADI,AADI,iBAAS,EACP,EACJ;IACN,gCAA0D;IAAA,aAAe;IAAA,iBAAM;IAC/E,gKAAoC;IAYxC,iBAAK;;;;;IAzC4B,eAAyB;;IAC9C,cAMC;IAND,8EAMC;IACD,eACJ;IADI,gEACJ;IAE6B,eAAY;IAAZ,gCAAY;IACP,cAA8B;;IACzC,cAAyC;IAAzC,kEAAyC;IACxD,cACJ;IADI,gDACJ;IAGA,eAIC;IAJD,8CAIC;IAMkB,eAA8B;;IAAC,cAAe;IAAf,mCAAe;IACzE,cAWC;IAXD,gEAWC;;;IA5Cb,8BAAwB;IACpB,yLA6CC;IACL,iBAAK;;;IA9CD,cA6CC;IA7CD,wCA6CC;;;IA/CP,AAVF,qJAAuC,mHAU9B;;;IAVT,gEA2DC;;;;IAjLb,8CAAsC;IAClC,0HAA8B;IASlB,AADJ,AADJ,AAFJ,+BAA0B,cAEM,cACE,iBAKa;IAA/B,8MAAS,qBAAc,KAAK,CAAC,KAAC;IAC9B,qBAAI;IAAA,gCAAyB;IAAA,YAAqB;IACtD,AADsD,iBAAO,EACpD;IACT,kCAKqC;IAAjC,8MAAS,qBAAc,OAAO,CAAC,KAAC;IAChC,yBAAkC;IAClC,wBAAM;IAAA,iCAAyB;IAAA,aAAuB;IAC1D,AAD0D,iBAAO,EACxD;IACT,mCAKoC;IAAhC,+MAAS,qBAAc,MAAM,CAAC,KAAC;IAC/B,yBAAmC;IACnC,yBAAO;IAAA,iCAAyB;IAAA,aAAsB;IAC1D,AAD0D,iBAAO,EACxD;IACT,mCAKsC;IAAlC,+MAAS,qBAAc,QAAQ,CAAC,KAAC;IACjC,yBAAmC;IACnC,yBAAO;IAAA,iCAAyB;IAAA,aAAwB;IAEhE,AADI,AAD4D,iBAAO,EAC1D,EACP;IAGF,AADJ,gCAA2B,eACK;IACxB,yBAAyC;IACzC,kCAKyB;IADrB,uUAAwB;IAJ5B,iBAKyB;IACzB,gIAAkB;IAKtB,iBAAM;IAGF,AADJ,gCAAkE,kBAMrC;IADrB,+MAAS,kBAAW,MAAM,CAAC,KAAC;IAE5B,uBACA;IAAA,2HAA0B;IAG9B,iBAAS;IACT,mCAKyB;IADrB,+MAAS,kBAAW,MAAM,CAAC,KAAC;IAE5B,uBACA;IAAA,2HAA0B;IAIlC,AADI,iBAAS,EACP;IAEN,mCAKiC;IAD7B,+MAAS,sBAAe,KAAC;IAEzB,yBAA2B;IAC3B,sBACJ;IAER,AADI,AADI,iBAAS,EACP,EACJ;IAmBJ,AAjBF,6HAAmB,4FAiBV;IAgEjB,AADI,iBAAM,EACW;;;IApLD,+BAAiB;IAajB,eAAqC;IAArC,qDAAqC;IAER,eAAqB;IAArB,4CAAqB;IAKlD,cAAuC;IAAvC,uDAAuC;IACvC,yDAAoC;IAGL,eAAuB;IAAvB,8CAAuB;IAKtD,cAAsC;IAAtC,sDAAsC;IACtC,wDAAmC;IAGH,eAAsB;IAAtB,6CAAsB;IAKtD,cAAwC;IAAxC,wDAAwC;IACxC,0DAAqC;IAGL,eAAwB;IAAxB,+CAAwB;IAWpD,eAAwB;IAAxB,iDAAwB;IAE5B,cAIC;IAJD,6CAIC;IAOG,eAAmC;IAAnC,mDAAmC;IAInC,eAEC;IAFD,qDAEC;IAKD,cAAmC;IAAnC,mDAAmC;IAInC,eAEC;IAFD,qDAEC;IAOL,cAA4B;IAA5B,4CAA4B;IASxC,eA+EC;IA/ED,8CA+EC;;;IASH,wBAAkC;IAAC,gCACrC;;;;IAHJ,8CAAsC;IAClC,0HAA8B;IAKlB,AADJ,AADJ,+BAAyB,cACK,eACG;IAAA,oBAAI;IAAA,iBAAO;IACpC,kCAAuF;IAA5C,+MAAS,+CAAiC,KAAC;IAClF,wBAA2B;IAEnC,AADI,iBAAS,EACP;IACN,0CAMwC;IALpC,4VAA8B;IAQ9C,AADQ,AADI,iBAAiB,EACf,EACO;;;IApBD,+BAAiB;IAYrB,eAA8B;IAA9B,uDAA8B;IAI9B,AADA,AADA,+BAAiB,oBACE,sBACE;;;IAW/B,wBAA+B;IAAC,gCAClC;;;IAHJ,8CAAsC;IAClC,0HAA8B;IAG1B,qCAGyC;IACjD,iBAAqB;;IARD,+BAAiB;;ADnSlD,IAAM,yCAAyC,GAA/C,MAAM,yCAA0C,SAAQ,iCAAiC;IAAzF;;QAGH,mBAAmB;QACZ,WAAM,GAA0B,IAAI,CAAC;QACrC,SAAI,GAAwB,IAAI,CAAC;QAExC,iBAAiB;QACV,oBAAe,GAAG,KAAK,CAAC;QACxB,kBAAa,GAAG,KAAK,CAAC;QAE7B,wBAAwB;QACjB,oBAAe,GAAW,EAAE,CAAC;QAC7B,qBAAgB,GAAW,EAAE,CAAC;QAErC,4BAA4B;QACrB,kBAAa,GAAuB,EAAE,CAAC;QACvC,gBAAW,GAA+B,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACnF,qBAAgB,GAAG,KAAK,CAAC;QAEhC,6BAA6B;QACtB,eAAU,GAAe,KAAK,CAAC;QAC/B,eAAU,GAAW,EAAE,CAAC;QACxB,YAAO,GAAY,MAAM,CAAC;QAC1B,YAAO,GAAY,KAAK,CAAC;QACzB,gBAAW,GAAY,KAAK,CAAC;KA6UvC;IA3UG,KAAK,CAAC,QAAQ;QACV,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACvB,oBAAoB;YACpB,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,QAAQ,EAAE;aAClB,CAAC,CAAC;YAEH,qBAAqB;YACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO;QAElC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAiB,aAAa,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjD,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QACjC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,QAAQ;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAEhC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,eAAe,CAAe,WAAW,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC/B,CAAC;IACL,CAAC;IAEO,gBAAgB;QACpB,MAAM,YAAY,GAAqB;YACnC,iBAAiB,EAAE,IAAI;YACvB,QAAQ,EAAE,GAAG;YACb,KAAK,EAAE,KAAK;SACf,CAAC;QAEF,4CAA4C;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAElE,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,sBAAsB,CAAC,iBAAsC,CAAC,CAAC;gBACxE,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,CAAC;QACL,CAAC;QAED,mDAAmD;QACnD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACnE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAChD,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAAC,MAAyB;QACpD,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,MAAM;aACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACP,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,QAAQ,CAAC;YACrE,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,OAAO;gBACH,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9C,YAAY,EAAE,YAAY;gBAC1B,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;aACvE,CAAC;QACN,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1D,CAAC;IAEO,eAAe,CAAC,KAAc;QAClC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,WAAW,CAAC;QAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QACzC,MAAM,CAAC,GAAG,OAAO,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QACpC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,KAAc,EAAE,IAAmC;QACpE,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3B,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;YACrC,KAAK,SAAS,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,KAAK,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,MAAM,CAAC,GAAG,KAAe,CAAC;gBAC1B,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/D,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACX,MAAM,GAAG,GAAG,KAAkB,CAAC;gBAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAClC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;oBAC3E,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3F,CAAC;gBACD,OAAO,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC;YAClC,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,MAAM,GAAG,GAAG,KAAgC,CAAC;gBAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;YAClF,CAAC;QACL,CAAC;IACL,CAAC;IAED,4EAA4E;IAE5E,IAAW,kBAAkB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpD,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;QAC9B,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,GAAG,IAAI,CAAC,MAAM,CACd,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACrC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAC9D,CAAC;QACN,CAAC;QACD,MAAM,SAAS,GAA8B,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC1B,OAAO,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,OAAO,KAAK,CAAC;gBAAE,OAAO,OAAO,GAAG,OAAO,CAAC;YAC5C,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,aAAa,CAAC,MAAkB;QACnC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC7B,CAAC;IAEM,UAAU,CAAC,GAAY;QAC1B,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC;IACL,CAAC;IAEM,cAAc,CAAC,KAAuB;QACzC,IAAI,CAAC,KAAK,CAAC,YAAY;YAAE,OAAO;QAChC,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;IACrC,CAAC;IAEM,aAAa;QAChB,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IACzC,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;IAEM,UAAU,CAAC,MAAc,EAAE,CAAmB;QACjD,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAEM,cAAc,CAAC,KAAuB;QACzC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY;YAC3B,CAAC,CAAC,KAAK,CAAC,cAAc;YACtB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEO,mBAAmB,CAAC,KAAc;QACtC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACnC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACI,gBAAgB,CAAC,IAAmC;QACvD,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,QAAQ,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACvC,KAAK,QAAQ,CAAC,CAAC,OAAO,YAAY,CAAC;YACnC,KAAK,SAAS,CAAC,CAAC,OAAO,cAAc,CAAC;YACtC,KAAK,OAAO,CAAC,CAAC,OAAO,YAAY,CAAC;YAClC,KAAK,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC;YAChC,KAAK,MAAM,CAAC,CAAC,OAAO,iBAAiB,CAAC;YACtC,KAAK,WAAW,CAAC,CAAC,OAAO,QAAQ,CAAC;QACtC,CAAC;IACL,CAAC;IAEM,YAAY,CAAC,IAAe;QAC/B,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,aAAa;IACb,gBAAgB,CAAC,UAAkB,EAAE,QAAuB;QACxD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5I,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED,aAAa;IACb,oBAAoB;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QAC7D,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/F,CAAC;IAED,cAAc,CAAC,EAAU;QACrB,IAAI,EAAE,GAAG,IAAI;YAAE,OAAO,GAAG,EAAE,IAAI,CAAC;QAChC,IAAI,EAAE,GAAG,KAAK;YAAE,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACpD,IAAI,EAAE,GAAG,OAAO;YAAE,OAAO,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACvD,OAAO,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3C,CAAC;IAED,kBAAkB;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;QACnD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YAChF,OAAO,0BAA0B,CAAC;QACtC,CAAC;QACD,OAAO,wBAAwB,CAAC;IACpC,CAAC;IAED,iBAAiB;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;QACnD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YAChF,OAAO,iBAAiB,CAAC;QAC7B,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,IAAI,CAAC;YACD,gBAAgB;YAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;YAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;YAClD,+BAA+B;QACnC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,IAAI,CAAC;YACD,gBAAgB;YAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;YACnD,+BAA+B;QACnC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAC9B,IAAI,CAAC;YACD,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,uCAAuC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;wVArWQ,yCAAyC,yBAAzC,yCAAyC;oEAAzC,yCAAyC;YC5BlC,AADJ,AADJ,AADJ,AAFJ,AADJ,8BAA0H,aACd,aAEhF,aACY,aACC,aACK;YAOpB,AAFF,yGAAkC,mFAEzB;YAGb,iBAAM;YAEF,AADJ,8BAAyB,SACjB;YAAA,qCAAoB;YAAA,iBAAK;YAC7B,+BAAuB;YACnB,+GAAc;YAGd,iCAAqB;YAAA,aAAe;YAGhD,AADI,AADI,AADwC,iBAAO,EACzC,EACJ,EACJ;YAEF,AADJ,gCAA0B,eAC0D;YAC5E,yBAAmD;YACnD,aACJ;YAAA,iBAAM;YACN,gCAA4B;YACxB,yBAA4B;YAC5B,aACJ;YAER,AADI,AADI,iBAAM,EACJ,EACJ;YAGE,AADJ,AADJ,gCAA0B,eACJ,gBACM;YAAA,wBAAO;YAAA,iBAAO;YAClC,iCAAoB;YAAA,aAAqC;;YAC7D,AAD6D,iBAAO,EAC9D;YACN,8GAAsB;YAMtB,8GAAc;YAWd,8GAAY;YAYpB,AADI,iBAAM,EACJ;YAME,AAFJ,AADJ,gCAA0B,eACW,8BAES;YAClC,6GAA8B;YAKlB,AADJ,AADJ,gCAA0B,eACG,aACd;YAAA,6BAAY;YAAA,iBAAQ;YAC3B,iCAAwB;YAAA,aAAe;YAC3C,AAD2C,iBAAO,EAC5C;YAEF,AADJ,gCAAyB,aACd;YAAA,0BAAS;YAAA,iBAAQ;YACxB,iCAAwB;YAAA,aAAqB;YACjD,AADiD,iBAAO,EAClD;YAEF,AADJ,gCAAyB,aACd;YAAA,wBAAO;YAAA,iBAAQ;YACtB,iCAAwB;YAAA,aAAmB;YAC/C,AAD+C,iBAAO,EAChD;YAEF,AADJ,gCAAyB,aACd;YAAA,4BAAW;YAAA,iBAAQ;YAC1B,iCAA2B;YACvB,yBAAwF;YACxF,6BAA2C;YAAA,aAAgC;YAEnF,AADI,AAD+E,iBAAO,EAC/E,EACL;YAEF,AADJ,gCAAyB,aACd;YAAA,yBAAQ;YAAA,iBAAQ;YACvB,6BAAM;YAAA,aAA4C;YACtD,AADsD,iBAAO,EACvD;YAEF,AADJ,gCAAyB,aACd;YAAA,iCAAgB;YAAA,iBAAQ;YAC/B,6BAAM;YAAA,aAA8E;YAGpG,AADQ,AADI,AADwF,iBAAO,EACzF,EACJ,EACO;YAGrB,+HAAwB;YAyLxB,6HAAsB;YAyBtB,6HAA8D;YAc9E,AADI,AADI,AADI,iBAAM,EACJ,EACJ,EACJ;;YAvUkB,eAIC;YAJD,4DAIC;YAKG,eAEC;YAFD,sCAEC;YACoB,eAAe;YAAf,mCAAe;YAKlB,eAAqD;;YAC5D,cAA+B;YAA/B,iDAA+B;YAC9C,cACJ;YADI,mEACJ;YAGI,eACJ;YADI,+EACJ;YAMoB,eAAqC;YAArC,2EAAqC;YAE7D,eAKC;YALD,8CAKC;YACD,cAUC;YAVD,sCAUC;YACD,cAUC;YAVD,oCAUC;YAQmB,eAAiB;YAAjB,+BAAiB;YAOG,eAAe;YAAf,mCAAe;YAIf,eAAqB;YAArB,yCAAqB;YAIrB,eAAmB;YAAnB,uCAAmB;YAKQ,eAAoC;YAApC,iDAAoC;YAApE,iDAA+B;YACxC,cAAoC;YAApC,iDAAoC;YAAC,cAAgC;YAAhC,oDAAgC;YAKzE,eAA4C;YAA5C,oEAA4C;YAI5C,eAA8E;YAA9E,sGAA8E;YAMpG,cAsLC;YAtLD,gDAsLC;YAGD,cAsBC;YAtBD,8CAsBC;YAGD,cAUC;YAVD,8FAUC;;;AD5SJ,yCAAyC;IAPrD,aAAa,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;GAOjD,yCAAyC,CAsWrD;;iFAtWY,yCAAyC;cANrD,SAAS;6BACI,KAAK,YACL,8BAA8B;;kFAI/B,yCAAyC","sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { MJActionExecutionLogEntity, MJActionEntity, MJUserEntity } from '@memberjunction/core-entities';\nimport { RegisterClass, ParseJSONRecursive, ParseJSONOptions } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { Metadata, CompositeKey } from '@memberjunction/core';\nimport { MJActionExecutionLogFormComponent } from '../../generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component';\n\ntype ParamType = 'Input' | 'Output' | 'Both';\ntype TypeFilter = 'All' | ParamType;\ntype SortKey = 'name' | 'type';\ntype SortDir = 'asc' | 'desc';\n\ninterface ActionParameter {\n Name: string;\n Value: unknown;\n Type: ParamType;\n}\n\ninterface DisplayParameter extends ActionParameter {\n ValueKind: 'string' | 'number' | 'boolean' | 'null' | 'undefined' | 'array' | 'object';\n Preview: string;\n IsExpandable: boolean;\n Expanded: boolean;\n FormattedValue: string;\n}\n\n@RegisterClass(BaseFormComponent, 'MJ: Action Execution Logs')\n@Component({\n standalone: false,\n selector: 'mj-action-execution-log-form',\n templateUrl: './action-execution-log-form.component.html',\n styleUrls: ['./action-execution-log-form.component.css']\n})\nexport class MJActionExecutionLogFormComponentExtended extends MJActionExecutionLogFormComponent implements OnInit {\n public record!: MJActionExecutionLogEntity;\n\n // Related entities\n public action: MJActionEntity | null = null;\n public user: MJUserEntity | null = null;\n\n // Loading states\n public isLoadingAction = false;\n public isLoadingUser = false;\n\n // Formatted JSON fields\n public formattedParams: string = '';\n public formattedMessage: string = '';\n\n // Unified parameter display\n public allParameters: DisplayParameter[] = [];\n public paramCounts: Record<TypeFilter, number> = { All: 0, Input: 0, Output: 0, Both: 0 };\n public hasAnyParameters = false;\n\n // Filter / sort / view state\n public typeFilter: TypeFilter = 'All';\n public searchText: string = '';\n public sortKey: SortKey = 'type';\n public sortDir: SortDir = 'asc';\n public showRawJson: boolean = false;\n\n async ngOnInit() {\n await super.ngOnInit();\n \n if (this.record?.IsSaved) {\n // Load related data\n await Promise.all([\n this.loadAction(),\n this.loadUser()\n ]);\n \n // Format JSON fields\n this.formatJSONFields();\n this.cdr.detectChanges();\n }\n }\n\n private async loadAction() {\n if (!this.record.ActionID) return;\n \n this.isLoadingAction = true;\n try {\n const md = this.ProviderToUse;\n this.action = await md.GetEntityObject<MJActionEntity>('MJ: Actions');\n if (this.action) {\n await this.action.Load(this.record.ActionID);\n }\n } catch (error) {\n console.error('Error loading action:', error);\n } finally {\n this.isLoadingAction = false;\n }\n }\n\n private async loadUser() {\n if (!this.record.UserID) return;\n \n this.isLoadingUser = true;\n try {\n const md = this.ProviderToUse;\n this.user = await md.GetEntityObject<MJUserEntity>('MJ: Users');\n if (this.user) {\n await this.user.Load(this.record.UserID);\n }\n } catch (error) {\n console.error('Error loading user:', error);\n } finally {\n this.isLoadingUser = false;\n }\n }\n\n private formatJSONFields() {\n const parseOptions: ParseJSONOptions = {\n extractInlineJson: true,\n maxDepth: 100,\n debug: false\n };\n\n // Format Params with recursive JSON parsing\n if (this.record.Params) {\n try {\n const parsed = JSON.parse(this.record.Params);\n const recursivelyParsed = ParseJSONRecursive(parsed, parseOptions);\n this.formattedParams = JSON.stringify(recursivelyParsed, null, 2);\n\n if (Array.isArray(recursivelyParsed)) {\n this.buildDisplayParameters(recursivelyParsed as ActionParameter[]);\n }\n } catch (e) {\n this.formattedParams = this.record.Params;\n }\n }\n\n // Format Message field with recursive JSON parsing\n if (this.record.Message) {\n try {\n const parsed = JSON.parse(this.record.Message);\n const recursivelyParsed = ParseJSONRecursive(parsed, parseOptions);\n this.formattedMessage = JSON.stringify(recursivelyParsed, null, 2);\n } catch (e) {\n this.formattedMessage = this.record.Message;\n }\n }\n }\n\n /**\n * Build the unified parameter display list once, so filtering/sorting can\n * operate on a cheap, pre-computed structure.\n */\n private buildDisplayParameters(params: ActionParameter[]) {\n this.paramCounts = { All: 0, Input: 0, Output: 0, Both: 0 };\n this.allParameters = params\n .filter((p) => p && typeof p.Name === 'string')\n .map((p) => {\n const valueKind = this.detectValueKind(p.Value);\n const isExpandable = valueKind === 'array' || valueKind === 'object';\n this.paramCounts.All += 1;\n if (p.Type === 'Input' || p.Type === 'Output' || p.Type === 'Both') {\n this.paramCounts[p.Type] += 1;\n }\n return {\n Name: p.Name,\n Value: p.Value,\n Type: p.Type,\n ValueKind: valueKind,\n Preview: this.buildPreview(p.Value, valueKind),\n IsExpandable: isExpandable,\n Expanded: false,\n FormattedValue: isExpandable ? JSON.stringify(p.Value, null, 2) : ''\n };\n });\n this.hasAnyParameters = this.allParameters.length > 0;\n }\n\n private detectValueKind(value: unknown): DisplayParameter['ValueKind'] {\n if (value === null) return 'null';\n if (value === undefined) return 'undefined';\n if (Array.isArray(value)) return 'array';\n const t = typeof value;\n if (t === 'string' || t === 'number' || t === 'boolean') return t;\n if (t === 'object') return 'object';\n return 'string';\n }\n\n /**\n * Short inline preview for the row header. Objects/arrays get a compact\n * one-liner; expansion reveals the full formatted JSON below.\n */\n private buildPreview(value: unknown, kind: DisplayParameter['ValueKind']): string {\n switch (kind) {\n case 'null': return 'null';\n case 'undefined': return 'undefined';\n case 'boolean': return value ? 'true' : 'false';\n case 'number': return String(value);\n case 'string': {\n const s = value as string;\n return s.length > 160 ? `\"${s.slice(0, 157)}…\"` : `\"${s}\"`;\n }\n case 'array': {\n const arr = value as unknown[];\n if (arr.length === 0) return '[]';\n if (arr.length <= 5 && arr.every((v) => v === null || typeof v !== 'object')) {\n return `[${arr.map((v) => this.buildPreview(v, this.detectValueKind(v))).join(', ')}]`;\n }\n return `Array(${arr.length})`;\n }\n case 'object': {\n const obj = value as Record<string, unknown>;\n const keys = Object.keys(obj);\n if (keys.length === 0) return '{}';\n const head = keys.slice(0, 3).join(', ');\n return keys.length <= 3 ? `{ ${head} }` : `{ ${head}, …+${keys.length - 3} }`;\n }\n }\n }\n\n // --- Filter / sort / view helpers (invoked from template) ----------------\n\n public get filteredParameters(): DisplayParameter[] {\n const needle = this.searchText.trim().toLowerCase();\n let list = this.allParameters;\n if (this.typeFilter !== 'All') {\n list = list.filter((p) => p.Type === this.typeFilter);\n }\n if (needle) {\n list = list.filter(\n (p) =>\n p.Name.toLowerCase().includes(needle) ||\n (p.Preview && p.Preview.toLowerCase().includes(needle))\n );\n }\n const typeOrder: Record<ParamType, number> = { Input: 0, Both: 1, Output: 2 };\n const dirMult = this.sortDir === 'asc' ? 1 : -1;\n return [...list].sort((a, b) => {\n if (this.sortKey === 'name') {\n return dirMult * a.Name.localeCompare(b.Name, undefined, { sensitivity: 'base' });\n }\n const typeCmp = typeOrder[a.Type] - typeOrder[b.Type];\n if (typeCmp !== 0) return dirMult * typeCmp;\n return a.Name.localeCompare(b.Name, undefined, { sensitivity: 'base' });\n });\n }\n\n public setTypeFilter(filter: TypeFilter): void {\n this.typeFilter = filter;\n }\n\n public toggleSort(key: SortKey): void {\n if (this.sortKey === key) {\n this.sortDir = this.sortDir === 'asc' ? 'desc' : 'asc';\n } else {\n this.sortKey = key;\n this.sortDir = 'asc';\n }\n }\n\n public toggleExpanded(param: DisplayParameter): void {\n if (!param.IsExpandable) return;\n param.Expanded = !param.Expanded;\n }\n\n public toggleRawJson(): void {\n this.showRawJson = !this.showRawJson;\n }\n\n public clearFilters(): void {\n this.typeFilter = 'All';\n this.searchText = '';\n }\n\n public trackParam(_index: number, p: DisplayParameter): string {\n return `${p.Type}::${p.Name}`;\n }\n\n public copyParamValue(param: DisplayParameter): void {\n const text = param.IsExpandable\n ? param.FormattedValue\n : this.formatScalarForCopy(param.Value);\n void this.copyToClipboard(text);\n }\n\n private formatScalarForCopy(value: unknown): string {\n if (value === null) return 'null';\n if (value === undefined) return '';\n if (typeof value === 'string') return value;\n return String(value);\n }\n\n /**\n * Returns the icon class for a value kind — rendered to the left of each\n * preview so object/array/scalar rows are visually distinct at a glance.\n */\n public getValueKindIcon(kind: DisplayParameter['ValueKind']): string {\n switch (kind) {\n case 'string': return 'fa-quote-right';\n case 'number': return 'fa-hashtag';\n case 'boolean': return 'fa-toggle-on';\n case 'array': return 'fa-list-ol';\n case 'object': return 'fa-code';\n case 'null': return 'fa-circle-minus';\n case 'undefined': return 'fa-ban';\n }\n }\n\n public getTypeLabel(type: ParamType): string {\n return type === 'Both' ? 'In/Out' : type;\n }\n\n // Navigation\n navigateToEntity(entityName: string, recordId: string | null) {\n if (!recordId) return;\n SharedService.Instance.OpenEntityRecord(entityName, CompositeKey.FromURLSegment(this.ProviderToUse.EntityByName(entityName), recordId));\n }\n\n navigateToAction() {\n if (this.record.ActionID) {\n this.navigateToEntity('MJ: Actions', this.record.ActionID);\n }\n }\n\n navigateToUser() {\n if (this.record.UserID) {\n this.navigateToEntity('MJ: Users', this.record.UserID);\n }\n }\n\n // UI Helpers\n getExecutionDuration(): number {\n if (!this.record.StartedAt || !this.record.EndedAt) return 0;\n return new Date(this.record.EndedAt).getTime() - new Date(this.record.StartedAt).getTime();\n }\n\n formatDuration(ms: number): string {\n if (ms < 1000) return `${ms}ms`;\n if (ms < 60000) return `${(ms / 1000).toFixed(1)}s`;\n if (ms < 3600000) return `${(ms / 60000).toFixed(1)}m`;\n return `${(ms / 3600000).toFixed(1)}h`;\n }\n\n getResultCodeColor(): string {\n const code = this.record.ResultCode?.toLowerCase();\n if (code === 'success' || code === 'ok' || code === 'completed' || code === '200') {\n return 'var(--mj-status-success)';\n }\n return 'var(--mj-status-error)';\n }\n\n getResultCodeIcon(): string {\n const code = this.record.ResultCode?.toLowerCase();\n if (code === 'success' || code === 'ok' || code === 'completed' || code === '200') {\n return 'fa-check-circle';\n }\n return 'fa-times-circle';\n }\n\n // Save handlers for JSON fields\n async saveParams() {\n if (!this.EditMode) return;\n \n try {\n // Validate JSON\n JSON.parse(this.formattedParams);\n this.record.Params = this.formattedParams;\n await this.record.Save();\n } catch (e) {\n console.error('Invalid JSON in Params field:', e);\n // Could show notification here\n }\n }\n\n async saveMessage() {\n if (!this.EditMode) return;\n \n try {\n // Validate JSON\n JSON.parse(this.formattedMessage);\n this.record.Message = this.formattedMessage;\n await this.record.Save();\n } catch (e) {\n console.error('Invalid JSON in Message field:', e);\n // Could show notification here\n }\n }\n \n async copyToClipboard(text: string) {\n try {\n await navigator.clipboard.writeText(text);\n // Could show a toast notification here\n } catch (err) {\n console.error('Failed to copy to clipboard:', err);\n }\n }\n}\n","<div class=\"record-form-container action-execution-log-form\" style=\"height: 100%; display: flex; flex-direction: column;\">\n <div class=\"record-form\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"icon-wrapper\">\n <!-- The action's own icon when it has one, matching how the same action is\n drawn in the run timeline. `fa-terminal` stays as the fallback: it is\n what this form has always shown, and it is the honest answer for an\n action whose metadata names no icon. -->\n @if (action && action.IconClass) {\n <i [ngClass]=\"action.IconClass\"></i>\n } @else {\n <i class=\"fas fa-terminal\"></i>\n }\n </div>\n <div class=\"header-info\">\n <h2>Action Execution Log</h2>\n <div class=\"meta-info\">\n @if (action) {\n <span class=\"action-name\">{{ action.Name }}</span>\n }\n <span class=\"log-id\">{{ record.ID }}</span>\n </div>\n </div>\n </div>\n <div class=\"header-right\">\n <div class=\"status-badge\" [attr.data-status]=\"record.ResultCode?.toLowerCase()\">\n <i class=\"fas\" [ngClass]=\"getResultCodeIcon()\"></i>\n {{ record.ResultCode || 'UNKNOWN' }}\n </div>\n <div class=\"execution-time\">\n <i class=\"fas fa-clock\"></i>\n {{ formatDuration(getExecutionDuration()) }}\n </div>\n </div>\n </div>\n <div class=\"header-stats\">\n <div class=\"stat\">\n <span class=\"label\">Started</span>\n <span class=\"value\">{{ record.StartedAt | date:'short' }}</span>\n </div>\n @if (record.EndedAt) {\n <div class=\"stat\">\n <span class=\"label\">Ended</span>\n <span class=\"value\">{{ record.EndedAt | date:'short' }}</span>\n </div>\n }\n @if (action) {\n <div class=\"stat\">\n <span class=\"label\">Action</span>\n <span class=\"value\">\n <button class=\"btn-link\" (click)=\"navigateToAction()\">\n {{ action.Name }}\n <i class=\"fas fa-external-link-alt\"></i>\n </button>\n </span>\n </div>\n }\n @if (user) {\n <div class=\"stat\">\n <span class=\"label\">User</span>\n <span class=\"value\">\n <button class=\"btn-link\" (click)=\"navigateToUser()\">\n {{ user.Name }}\n <i class=\"fas fa-external-link-alt\"></i>\n </button>\n </span>\n </div>\n }\n </div>\n </div>\n\n <!-- Content Area -->\n <div class=\"content-area\">\n <div class=\"accordion-container\">\n <!-- Execution Details -->\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-info-circle\"></i> Execution Details\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Execution ID</label>\n <span class=\"monospace\">{{ record.ID }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Action ID</label>\n <span class=\"monospace\">{{ record.ActionID }}</span>\n </div>\n <div class=\"detail-item\">\n <label>User ID</label>\n <span class=\"monospace\">{{ record.UserID }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Result Code</label>\n <span class=\"detail-value\">\n <i class=\"fas\" [ngClass]=\"getResultCodeIcon()\" [style.color]=\"getResultCodeColor()\"></i>\n <span [style.color]=\"getResultCodeColor()\">{{ record.ResultCode || 'N/A' }}</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Duration</label>\n <span>{{ formatDuration(getExecutionDuration()) }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Retention Period</label>\n <span>{{ record.RetentionPeriod ? record.RetentionPeriod + ' days' : 'Indefinite' }}</span>\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Unified Parameters section -->\n @if (hasAnyParameters) {\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-sliders-h\"></i>\n Parameters\n <span class=\"mj-accordion-badge mj-accordion-badge--right\">{{ paramCounts.All }}</span>\n </ng-template>\n <div class=\"params-panel\">\n <!-- Toolbar: filter chips, search, sort, raw toggle -->\n <div class=\"params-toolbar\">\n <div class=\"filter-chips\">\n <button\n type=\"button\"\n class=\"chip\"\n [class.active]=\"typeFilter === 'All'\"\n (click)=\"setTypeFilter('All')\">\n All <span class=\"chip-count\">{{ paramCounts.All }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-input\"\n [class.active]=\"typeFilter === 'Input'\"\n [disabled]=\"paramCounts.Input === 0\"\n (click)=\"setTypeFilter('Input')\">\n <i class=\"fas fa-sign-in-alt\"></i>\n Input <span class=\"chip-count\">{{ paramCounts.Input }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-both\"\n [class.active]=\"typeFilter === 'Both'\"\n [disabled]=\"paramCounts.Both === 0\"\n (click)=\"setTypeFilter('Both')\">\n <i class=\"fas fa-exchange-alt\"></i>\n In/Out <span class=\"chip-count\">{{ paramCounts.Both }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-output\"\n [class.active]=\"typeFilter === 'Output'\"\n [disabled]=\"paramCounts.Output === 0\"\n (click)=\"setTypeFilter('Output')\">\n <i class=\"fas fa-sign-out-alt\"></i>\n Output <span class=\"chip-count\">{{ paramCounts.Output }}</span>\n </button>\n </div>\n\n <div class=\"toolbar-right\">\n <div class=\"search-wrapper\">\n <i class=\"fas fa-search search-icon\"></i>\n <input\n type=\"text\"\n class=\"mj-input params-search\"\n placeholder=\"Search name or value…\"\n [(ngModel)]=\"searchText\"\n name=\"paramSearch\" />\n @if (searchText) {\n <button type=\"button\" class=\"search-clear\" (click)=\"searchText = ''\" title=\"Clear search\">\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n\n <div class=\"sort-group\" role=\"group\" aria-label=\"Sort parameters\">\n <button\n type=\"button\"\n class=\"sort-btn\"\n [class.active]=\"sortKey === 'type'\"\n (click)=\"toggleSort('type')\"\n title=\"Sort by type\">\n Type\n @if (sortKey === 'type') {\n <i class=\"fas\" [ngClass]=\"sortDir === 'asc' ? 'fa-arrow-down-short-wide' : 'fa-arrow-up-wide-short'\"></i>\n }\n </button>\n <button\n type=\"button\"\n class=\"sort-btn\"\n [class.active]=\"sortKey === 'name'\"\n (click)=\"toggleSort('name')\"\n title=\"Sort by name\">\n Name\n @if (sortKey === 'name') {\n <i class=\"fas\" [ngClass]=\"sortDir === 'asc' ? 'fa-arrow-down-a-z' : 'fa-arrow-up-z-a'\"></i>\n }\n </button>\n </div>\n\n <button\n type=\"button\"\n class=\"raw-toggle\"\n [class.active]=\"showRawJson\"\n (click)=\"toggleRawJson()\"\n title=\"Toggle raw JSON view\">\n <i class=\"fas fa-code\"></i>\n Raw\n </button>\n </div>\n </div>\n\n @if (showRawJson) {\n <div class=\"json-viewer raw-json-viewer\">\n <div class=\"json-toolbar\">\n <span class=\"json-label\">Raw JSON</span>\n <button class=\"btn-icon\" title=\"Copy JSON\" (click)=\"copyToClipboard(formattedParams)\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n <mj-code-editor\n [(ngModel)]=\"formattedParams\"\n name=\"formattedParamsRaw\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 360px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else {\n <!-- Rich param list -->\n @if (filteredParameters.length === 0) {\n <mj-empty-state\n Variant=\"no-results\"\n Size=\"compact\"\n Icon=\"fa-solid fa-filter-circle-xmark\"\n Title=\"No parameters match the current filter.\"\n ActionText=\"Clear filters\"\n ActionIcon=\"fa-solid fa-rotate-left\"\n ActionVariant=\"flat\"\n (Action)=\"clearFilters()\" />\n } @else {\n <ul class=\"params-list\">\n @for (p of filteredParameters; track trackParam($index, p)) {\n <li class=\"param-row\" [attr.data-type]=\"p.Type\">\n <div class=\"param-header\">\n <span class=\"type-badge\" [attr.data-type]=\"p.Type\">\n @if (p.Type === 'Input') {\n <i class=\"fas fa-sign-in-alt\"></i>\n } @else if (p.Type === 'Output') {\n <i class=\"fas fa-sign-out-alt\"></i>\n } @else {\n <i class=\"fas fa-exchange-alt\"></i>\n }\n {{ getTypeLabel(p.Type) }}\n </span>\n <div class=\"param-name-wrap\">\n <span class=\"param-name\">{{ p.Name }}</span>\n <span class=\"value-kind-chip\" [attr.data-kind]=\"p.ValueKind\">\n <i class=\"fas\" [ngClass]=\"getValueKindIcon(p.ValueKind)\"></i>\n {{ p.ValueKind }}\n </span>\n </div>\n <div class=\"param-actions\">\n @if (p.IsExpandable) {\n <button type=\"button\" class=\"btn-icon param-expand\" [class.is-expanded]=\"p.Expanded\" (click)=\"toggleExpanded(p)\" [title]=\"p.Expanded ? 'Collapse' : 'Expand'\">\n <i class=\"fas\" [ngClass]=\"p.Expanded ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n }\n <button type=\"button\" class=\"btn-icon\" (click)=\"copyParamValue(p)\" title=\"Copy value\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n </div>\n <div class=\"param-preview\" [attr.data-kind]=\"p.ValueKind\">{{ p.Preview }}</div>\n @if (p.IsExpandable && p.Expanded) {\n <div class=\"param-expanded\">\n <mj-code-editor\n [(ngModel)]=\"p.FormattedValue\"\n [name]=\"'param-' + p.Name\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 240px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n </li>\n }\n </ul>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Output Message -->\n @if (record.Message) {\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-comment-alt\"></i> Output Message\n </ng-template>\n <div class=\"json-viewer\">\n <div class=\"json-toolbar\">\n <span class=\"json-label\">JSON</span>\n <button class=\"btn-icon\" title=\"Copy JSON\" (click)=\"copyToClipboard(formattedMessage)\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedMessage\"\n name=\"formattedMessage\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Empty States for missing data -->\n @if (!record.Params && !record.Message && !hasAnyParameters) {\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-database\"></i> Execution Data\n </ng-template>\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-inbox\"\n Title=\"No execution data recorded\" />\n </mj-accordion-panel>\n }\n </div>\n </div>\n </div>\n</div>"]}
1
+ {"version":3,"file":"action-execution-log-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Actions/action-execution-log-form.component.ts","../../../../src/lib/custom/Actions/action-execution-log-form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { MJActionExecutionLogEntity, MJActionEntity, MJUserEntity } from '@memberjunction/core-entities';\nimport { RegisterClass, ParseJSONRecursive, ParseJSONOptions } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { Metadata, CompositeKey } from '@memberjunction/core';\nimport { MJActionExecutionLogFormComponent } from '../../generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component';\n\ntype ParamType = 'Input' | 'Output' | 'Both';\ntype TypeFilter = 'All' | ParamType;\ntype SortKey = 'name' | 'type';\ntype SortDir = 'asc' | 'desc';\n\ninterface ActionParameter {\n Name: string;\n Value: unknown;\n Type: ParamType;\n}\n\ninterface DisplayParameter extends ActionParameter {\n ValueKind: 'string' | 'number' | 'boolean' | 'null' | 'undefined' | 'array' | 'object';\n Preview: string;\n IsExpandable: boolean;\n Expanded: boolean;\n FormattedValue: string;\n}\n\n@RegisterClass(BaseFormComponent, 'MJ: Action Execution Logs')\n@Component({\n standalone: false,\n selector: 'mj-action-execution-log-form',\n templateUrl: './action-execution-log-form.component.html',\n styleUrls: ['./action-execution-log-form.component.css']\n})\nexport class MJActionExecutionLogFormComponentExtended extends MJActionExecutionLogFormComponent implements OnInit {\n public record!: MJActionExecutionLogEntity;\n\n // Related entities\n public Action: MJActionEntity | null = null;\n\n /** @deprecated Use {@link Action}. */\n public get action(): MJActionEntity | null {\n return this.Action;\n }\n /** @deprecated Use {@link Action}. */\n public set action(value: MJActionEntity | null) {\n this.Action = value;\n }\n public User: MJUserEntity | null = null;\n\n /** @deprecated Use {@link User}. */\n public get user(): MJUserEntity | null {\n return this.User;\n }\n /** @deprecated Use {@link User}. */\n public set user(value: MJUserEntity | null) {\n this.User = value;\n }\n\n // Loading states\n public IsLoadingAction = false;\n\n /** @deprecated Use {@link IsLoadingAction}. */\n public get isLoadingAction() {\n return this.IsLoadingAction;\n }\n /** @deprecated Use {@link IsLoadingAction}. */\n public set isLoadingAction(value) {\n this.IsLoadingAction = value;\n }\n public IsLoadingUser = false;\n\n /** @deprecated Use {@link IsLoadingUser}. */\n public get isLoadingUser() {\n return this.IsLoadingUser;\n }\n /** @deprecated Use {@link IsLoadingUser}. */\n public set isLoadingUser(value) {\n this.IsLoadingUser = value;\n }\n\n // Formatted JSON fields\n public FormattedParams: string = '';\n\n /** @deprecated Use {@link FormattedParams}. */\n public get formattedParams(): string {\n return this.FormattedParams;\n }\n /** @deprecated Use {@link FormattedParams}. */\n public set formattedParams(value: string) {\n this.FormattedParams = value;\n }\n public FormattedMessage: string = '';\n\n /** @deprecated Use {@link FormattedMessage}. */\n public get formattedMessage(): string {\n return this.FormattedMessage;\n }\n /** @deprecated Use {@link FormattedMessage}. */\n public set formattedMessage(value: string) {\n this.FormattedMessage = value;\n }\n\n // Unified parameter display\n public AllParameters: DisplayParameter[] = [];\n\n /** @deprecated Use {@link AllParameters}. */\n public get allParameters(): DisplayParameter[] {\n return this.AllParameters;\n }\n /** @deprecated Use {@link AllParameters}. */\n public set allParameters(value: DisplayParameter[]) {\n this.AllParameters = value;\n }\n public ParamCounts: Record<TypeFilter, number> = { All: 0, Input: 0, Output: 0, Both: 0 };\n\n /** @deprecated Use {@link ParamCounts}. */\n public get paramCounts(): Record<TypeFilter, number> {\n return this.ParamCounts;\n }\n /** @deprecated Use {@link ParamCounts}. */\n public set paramCounts(value: Record<TypeFilter, number>) {\n this.ParamCounts = value;\n }\n public HasAnyParameters = false;\n\n /** @deprecated Use {@link HasAnyParameters}. */\n public get hasAnyParameters() {\n return this.HasAnyParameters;\n }\n /** @deprecated Use {@link HasAnyParameters}. */\n public set hasAnyParameters(value) {\n this.HasAnyParameters = value;\n }\n\n // Filter / sort / view state\n public TypeFilter: TypeFilter = 'All';\n\n /** @deprecated Use {@link TypeFilter}. */\n public get typeFilter(): TypeFilter {\n return this.TypeFilter;\n }\n /** @deprecated Use {@link TypeFilter}. */\n public set typeFilter(value: TypeFilter) {\n this.TypeFilter = value;\n }\n public SearchText: string = '';\n\n /** @deprecated Use {@link SearchText}. */\n public get searchText(): string {\n return this.SearchText;\n }\n /** @deprecated Use {@link SearchText}. */\n public set searchText(value: string) {\n this.SearchText = value;\n }\n public SortKey: SortKey = 'type';\n\n /** @deprecated Use {@link SortKey}. */\n public get sortKey(): SortKey {\n return this.SortKey;\n }\n /** @deprecated Use {@link SortKey}. */\n public set sortKey(value: SortKey) {\n this.SortKey = value;\n }\n public SortDir: SortDir = 'asc';\n\n /** @deprecated Use {@link SortDir}. */\n public get sortDir(): SortDir {\n return this.SortDir;\n }\n /** @deprecated Use {@link SortDir}. */\n public set sortDir(value: SortDir) {\n this.SortDir = value;\n }\n public ShowRawJson: boolean = false;\n\n /** @deprecated Use {@link ShowRawJson}. */\n public get showRawJson(): boolean {\n return this.ShowRawJson;\n }\n /** @deprecated Use {@link ShowRawJson}. */\n public set showRawJson(value: boolean) {\n this.ShowRawJson = value;\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n \n if (this.record?.IsSaved) {\n // Load related data\n await Promise.all([\n this.loadAction(),\n this.loadUser()\n ]);\n \n // Format JSON fields\n this.formatJSONFields();\n this.cdr.detectChanges();\n }\n }\n\n private async loadAction() {\n if (!this.record.ActionID) return;\n \n this.IsLoadingAction = true;\n try {\n const md = this.ProviderToUse;\n this.Action = await md.GetEntityObject<MJActionEntity>('MJ: Actions');\n if (this.Action) {\n await this.Action.Load(this.record.ActionID);\n }\n } catch (error) {\n console.error('Error loading action:', error);\n } finally {\n this.IsLoadingAction = false;\n }\n }\n\n private async loadUser() {\n if (!this.record.UserID) return;\n \n this.IsLoadingUser = true;\n try {\n const md = this.ProviderToUse;\n this.User = await md.GetEntityObject<MJUserEntity>('MJ: Users');\n if (this.User) {\n await this.User.Load(this.record.UserID);\n }\n } catch (error) {\n console.error('Error loading user:', error);\n } finally {\n this.IsLoadingUser = false;\n }\n }\n\n private formatJSONFields() {\n const parseOptions: ParseJSONOptions = {\n extractInlineJson: true,\n maxDepth: 100,\n debug: false\n };\n\n // Format Params with recursive JSON parsing\n if (this.record.Params) {\n try {\n const parsed = JSON.parse(this.record.Params);\n const recursivelyParsed = ParseJSONRecursive(parsed, parseOptions);\n this.FormattedParams = JSON.stringify(recursivelyParsed, null, 2);\n\n if (Array.isArray(recursivelyParsed)) {\n this.buildDisplayParameters(recursivelyParsed as ActionParameter[]);\n }\n } catch (e) {\n this.FormattedParams = this.record.Params;\n }\n }\n\n // Format Message field with recursive JSON parsing\n if (this.record.Message) {\n try {\n const parsed = JSON.parse(this.record.Message);\n const recursivelyParsed = ParseJSONRecursive(parsed, parseOptions);\n this.FormattedMessage = JSON.stringify(recursivelyParsed, null, 2);\n } catch (e) {\n this.FormattedMessage = this.record.Message;\n }\n }\n }\n\n /**\n * Build the unified parameter display list once, so filtering/sorting can\n * operate on a cheap, pre-computed structure.\n */\n private buildDisplayParameters(params: ActionParameter[]) {\n this.ParamCounts = { All: 0, Input: 0, Output: 0, Both: 0 };\n this.AllParameters = params\n .filter((p) => p && typeof p.Name === 'string')\n .map((p) => {\n const valueKind = this.detectValueKind(p.Value);\n const isExpandable = valueKind === 'array' || valueKind === 'object';\n this.ParamCounts.All += 1;\n if (p.Type === 'Input' || p.Type === 'Output' || p.Type === 'Both') {\n this.ParamCounts[p.Type] += 1;\n }\n return {\n Name: p.Name,\n Value: p.Value,\n Type: p.Type,\n ValueKind: valueKind,\n Preview: this.buildPreview(p.Value, valueKind),\n IsExpandable: isExpandable,\n Expanded: false,\n FormattedValue: isExpandable ? JSON.stringify(p.Value, null, 2) : ''\n };\n });\n this.HasAnyParameters = this.AllParameters.length > 0;\n }\n\n private detectValueKind(value: unknown): DisplayParameter['ValueKind'] {\n if (value === null) return 'null';\n if (value === undefined) return 'undefined';\n if (Array.isArray(value)) return 'array';\n const t = typeof value;\n if (t === 'string' || t === 'number' || t === 'boolean') return t;\n if (t === 'object') return 'object';\n return 'string';\n }\n\n /**\n * Short inline preview for the row header. Objects/arrays get a compact\n * one-liner; expansion reveals the full formatted JSON below.\n */\n private buildPreview(value: unknown, kind: DisplayParameter['ValueKind']): string {\n switch (kind) {\n case 'null': return 'null';\n case 'undefined': return 'undefined';\n case 'boolean': return value ? 'true' : 'false';\n case 'number': return String(value);\n case 'string': {\n const s = value as string;\n return s.length > 160 ? `\"${s.slice(0, 157)}…\"` : `\"${s}\"`;\n }\n case 'array': {\n const arr = value as unknown[];\n if (arr.length === 0) return '[]';\n if (arr.length <= 5 && arr.every((v) => v === null || typeof v !== 'object')) {\n return `[${arr.map((v) => this.buildPreview(v, this.detectValueKind(v))).join(', ')}]`;\n }\n return `Array(${arr.length})`;\n }\n case 'object': {\n const obj = value as Record<string, unknown>;\n const keys = Object.keys(obj);\n if (keys.length === 0) return '{}';\n const head = keys.slice(0, 3).join(', ');\n return keys.length <= 3 ? `{ ${head} }` : `{ ${head}, …+${keys.length - 3} }`;\n }\n }\n }\n\n // --- Filter / sort / view helpers (invoked from template) ----------------\n\n public get FilteredParameters(): DisplayParameter[] {\n const needle = this.SearchText.trim().toLowerCase();\n let list = this.AllParameters;\n if (this.TypeFilter !== 'All') {\n list = list.filter((p) => p.Type === this.TypeFilter);\n }\n if (needle) {\n list = list.filter(\n (p) =>\n p.Name.toLowerCase().includes(needle) ||\n (p.Preview && p.Preview.toLowerCase().includes(needle))\n );\n }\n const typeOrder: Record<ParamType, number> = { Input: 0, Both: 1, Output: 2 };\n const dirMult = this.SortDir === 'asc' ? 1 : -1;\n return [...list].sort((a, b) => {\n if (this.SortKey === 'name') {\n return dirMult * a.Name.localeCompare(b.Name, undefined, { sensitivity: 'base' });\n }\n const typeCmp = typeOrder[a.Type] - typeOrder[b.Type];\n if (typeCmp !== 0) return dirMult * typeCmp;\n return a.Name.localeCompare(b.Name, undefined, { sensitivity: 'base' });\n });\n }\n\n /** @deprecated Use {@link FilteredParameters}. */\n public get filteredParameters(): DisplayParameter[] {\n return this.FilteredParameters;\n }\n\n public SetTypeFilter(filter: TypeFilter): void {\n this.TypeFilter = filter;\n }\n\n /** @deprecated Use {@link SetTypeFilter}. */\n public setTypeFilter(filter: TypeFilter): void {\n return this.SetTypeFilter(filter);\n }\n\n public ToggleSort(key: SortKey): void {\n if (this.SortKey === key) {\n this.SortDir = this.SortDir === 'asc' ? 'desc' : 'asc';\n } else {\n this.SortKey = key;\n this.SortDir = 'asc';\n }\n }\n\n /** @deprecated Use {@link ToggleSort}. */\n public toggleSort(key: SortKey): void {\n return this.ToggleSort(key);\n }\n\n public ToggleExpanded(param: DisplayParameter): void {\n if (!param.IsExpandable) return;\n param.Expanded = !param.Expanded;\n }\n\n /** @deprecated Use {@link ToggleExpanded}. */\n public toggleExpanded(param: DisplayParameter): void {\n return this.ToggleExpanded(param);\n }\n\n public ToggleRawJson(): void {\n this.ShowRawJson = !this.ShowRawJson;\n }\n\n /** @deprecated Use {@link ToggleRawJson}. */\n public toggleRawJson(): void {\n return this.ToggleRawJson();\n }\n\n public ClearFilters(): void {\n this.TypeFilter = 'All';\n this.SearchText = '';\n }\n\n /** @deprecated Use {@link ClearFilters}. */\n public clearFilters(): void {\n return this.ClearFilters();\n }\n\n public TrackParam(_index: number, p: DisplayParameter): string {\n return `${p.Type}::${p.Name}`;\n }\n\n /** @deprecated Use {@link TrackParam}. */\n public trackParam(_index: number, p: DisplayParameter): string {\n return this.TrackParam(_index, p);\n }\n\n public CopyParamValue(param: DisplayParameter): void {\n const text = param.IsExpandable\n ? param.FormattedValue\n : this.formatScalarForCopy(param.Value);\n void this.CopyToClipboard(text);\n }\n\n /** @deprecated Use {@link CopyParamValue}. */\n public copyParamValue(param: DisplayParameter): void {\n return this.CopyParamValue(param);\n }\n\n private formatScalarForCopy(value: unknown): string {\n if (value === null) return 'null';\n if (value === undefined) return '';\n if (typeof value === 'string') return value;\n return String(value);\n }\n\n /**\n * Returns the icon class for a value kind — rendered to the left of each\n * preview so object/array/scalar rows are visually distinct at a glance.\n */\n public GetValueKindIcon(kind: DisplayParameter['ValueKind']): string {\n switch (kind) {\n case 'string': return 'fa-quote-right';\n case 'number': return 'fa-hashtag';\n case 'boolean': return 'fa-toggle-on';\n case 'array': return 'fa-list-ol';\n case 'object': return 'fa-code';\n case 'null': return 'fa-circle-minus';\n case 'undefined': return 'fa-ban';\n }\n }\n\n /** @deprecated Use {@link GetValueKindIcon}. */\n public getValueKindIcon(kind: DisplayParameter['ValueKind']): string {\n return this.GetValueKindIcon(kind);\n }\n\n public GetTypeLabel(type: ParamType): string {\n return type === 'Both' ? 'In/Out' : type;\n }\n\n /** @deprecated Use {@link GetTypeLabel}. */\n public getTypeLabel(type: ParamType): string {\n return this.GetTypeLabel(type);\n }\n\n // Navigation\n NavigateToEntity(entityName: string, recordId: string | null) {\n if (!recordId) return;\n SharedService.Instance.OpenEntityRecord(entityName, CompositeKey.FromURLSegment(this.ProviderToUse.EntityByName(entityName), recordId));\n }\n\n /** @deprecated Use {@link NavigateToEntity}. */\n navigateToEntity(entityName: string, recordId: string | null) {\n return this.NavigateToEntity(entityName, recordId);\n }\n\n NavigateToAction() {\n if (this.record.ActionID) {\n this.NavigateToEntity('MJ: Actions', this.record.ActionID);\n }\n }\n\n /** @deprecated Use {@link NavigateToAction}. */\n navigateToAction() {\n return this.NavigateToAction();\n }\n\n NavigateToUser() {\n if (this.record.UserID) {\n this.NavigateToEntity('MJ: Users', this.record.UserID);\n }\n }\n\n /** @deprecated Use {@link NavigateToUser}. */\n navigateToUser() {\n return this.NavigateToUser();\n }\n\n // UI Helpers\n GetExecutionDuration(): number {\n if (!this.record.StartedAt || !this.record.EndedAt) return 0;\n return new Date(this.record.EndedAt).getTime() - new Date(this.record.StartedAt).getTime();\n }\n\n /** @deprecated Use {@link GetExecutionDuration}. */\n getExecutionDuration(): number {\n return this.GetExecutionDuration();\n }\n\n formatDuration(ms: number): string {\n if (ms < 1000) return `${ms}ms`;\n if (ms < 60000) return `${(ms / 1000).toFixed(1)}s`;\n if (ms < 3600000) return `${(ms / 60000).toFixed(1)}m`;\n return `${(ms / 3600000).toFixed(1)}h`;\n }\n\n GetResultCodeColor(): string {\n const code = this.record.ResultCode?.toLowerCase();\n if (code === 'success' || code === 'ok' || code === 'completed' || code === '200') {\n return 'var(--mj-status-success)';\n }\n return 'var(--mj-status-error)';\n }\n\n /** @deprecated Use {@link GetResultCodeColor}. */\n getResultCodeColor(): string {\n return this.GetResultCodeColor();\n }\n\n GetResultCodeIcon(): string {\n const code = this.record.ResultCode?.toLowerCase();\n if (code === 'success' || code === 'ok' || code === 'completed' || code === '200') {\n return 'fa-check-circle';\n }\n return 'fa-times-circle';\n }\n\n /** @deprecated Use {@link GetResultCodeIcon}. */\n getResultCodeIcon(): string {\n return this.GetResultCodeIcon();\n }\n\n // Save handlers for JSON fields\n async SaveParams() {\n if (!this.EditMode) return;\n \n try {\n // Validate JSON\n JSON.parse(this.FormattedParams);\n this.record.Params = this.FormattedParams;\n await this.record.Save();\n } catch (e) {\n console.error('Invalid JSON in Params field:', e);\n // Could show notification here\n }\n }\n\n /** @deprecated Use {@link SaveParams}. */\n async saveParams() {\n return this.SaveParams();\n }\n\n async SaveMessage() {\n if (!this.EditMode) return;\n \n try {\n // Validate JSON\n JSON.parse(this.FormattedMessage);\n this.record.Message = this.FormattedMessage;\n await this.record.Save();\n } catch (e) {\n console.error('Invalid JSON in Message field:', e);\n // Could show notification here\n }\n }\n\n /** @deprecated Use {@link SaveMessage}. */\n async saveMessage() {\n return this.SaveMessage();\n }\n \n async CopyToClipboard(text: string) {\n try {\n await navigator.clipboard.writeText(text);\n // Could show a toast notification here\n } catch (err) {\n console.error('Failed to copy to clipboard:', err);\n }\n }\n\n /** @deprecated Use {@link CopyToClipboard}. */\n async copyToClipboard(text: string) {\n return this.CopyToClipboard(text);\n }\n}\n","<div class=\"record-form-container action-execution-log-form\" style=\"height: 100%; display: flex; flex-direction: column;\">\n <div class=\"record-form\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"icon-wrapper\">\n <!-- The action's own icon when it has one, matching how the same action is\n drawn in the run timeline. `fa-terminal` stays as the fallback: it is\n what this form has always shown, and it is the honest answer for an\n action whose metadata names no icon. -->\n @if (action && action.IconClass) {\n <i [ngClass]=\"action.IconClass\"></i>\n } @else {\n <i class=\"fas fa-terminal\"></i>\n }\n </div>\n <div class=\"header-info\">\n <h2>Action Execution Log</h2>\n <div class=\"meta-info\">\n @if (action) {\n <span class=\"action-name\">{{ action.Name }}</span>\n }\n <span class=\"log-id\">{{ record.ID }}</span>\n </div>\n </div>\n </div>\n <div class=\"header-right\">\n <div class=\"status-badge\" [attr.data-status]=\"record.ResultCode?.toLowerCase()\">\n <i class=\"fas\" [ngClass]=\"getResultCodeIcon()\"></i>\n {{ record.ResultCode || 'UNKNOWN' }}\n </div>\n <div class=\"execution-time\">\n <i class=\"fas fa-clock\"></i>\n {{ formatDuration(getExecutionDuration()) }}\n </div>\n </div>\n </div>\n <div class=\"header-stats\">\n <div class=\"stat\">\n <span class=\"label\">Started</span>\n <span class=\"value\">{{ record.StartedAt | date:'short' }}</span>\n </div>\n @if (record.EndedAt) {\n <div class=\"stat\">\n <span class=\"label\">Ended</span>\n <span class=\"value\">{{ record.EndedAt | date:'short' }}</span>\n </div>\n }\n @if (action) {\n <div class=\"stat\">\n <span class=\"label\">Action</span>\n <span class=\"value\">\n <button class=\"btn-link\" (click)=\"navigateToAction()\">\n {{ action.Name }}\n <i class=\"fas fa-external-link-alt\"></i>\n </button>\n </span>\n </div>\n }\n @if (user) {\n <div class=\"stat\">\n <span class=\"label\">User</span>\n <span class=\"value\">\n <button class=\"btn-link\" (click)=\"navigateToUser()\">\n {{ user.Name }}\n <i class=\"fas fa-external-link-alt\"></i>\n </button>\n </span>\n </div>\n }\n </div>\n </div>\n\n <!-- Content Area -->\n <div class=\"content-area\">\n <div class=\"accordion-container\">\n <!-- Execution Details -->\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-info-circle\"></i> Execution Details\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Execution ID</label>\n <span class=\"monospace\">{{ record.ID }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Action ID</label>\n <span class=\"monospace\">{{ record.ActionID }}</span>\n </div>\n <div class=\"detail-item\">\n <label>User ID</label>\n <span class=\"monospace\">{{ record.UserID }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Result Code</label>\n <span class=\"detail-value\">\n <i class=\"fas\" [ngClass]=\"getResultCodeIcon()\" [style.color]=\"getResultCodeColor()\"></i>\n <span [style.color]=\"getResultCodeColor()\">{{ record.ResultCode || 'N/A' }}</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Duration</label>\n <span>{{ formatDuration(getExecutionDuration()) }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Retention Period</label>\n <span>{{ record.RetentionPeriod ? record.RetentionPeriod + ' days' : 'Indefinite' }}</span>\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Unified Parameters section -->\n @if (hasAnyParameters) {\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-sliders-h\"></i>\n Parameters\n <span class=\"mj-accordion-badge mj-accordion-badge--right\">{{ paramCounts.All }}</span>\n </ng-template>\n <div class=\"params-panel\">\n <!-- Toolbar: filter chips, search, sort, raw toggle -->\n <div class=\"params-toolbar\">\n <div class=\"filter-chips\">\n <button\n type=\"button\"\n class=\"chip\"\n [class.active]=\"typeFilter === 'All'\"\n (click)=\"setTypeFilter('All')\">\n All <span class=\"chip-count\">{{ paramCounts.All }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-input\"\n [class.active]=\"typeFilter === 'Input'\"\n [disabled]=\"paramCounts.Input === 0\"\n (click)=\"setTypeFilter('Input')\">\n <i class=\"fas fa-sign-in-alt\"></i>\n Input <span class=\"chip-count\">{{ paramCounts.Input }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-both\"\n [class.active]=\"typeFilter === 'Both'\"\n [disabled]=\"paramCounts.Both === 0\"\n (click)=\"setTypeFilter('Both')\">\n <i class=\"fas fa-exchange-alt\"></i>\n In/Out <span class=\"chip-count\">{{ paramCounts.Both }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-output\"\n [class.active]=\"typeFilter === 'Output'\"\n [disabled]=\"paramCounts.Output === 0\"\n (click)=\"setTypeFilter('Output')\">\n <i class=\"fas fa-sign-out-alt\"></i>\n Output <span class=\"chip-count\">{{ paramCounts.Output }}</span>\n </button>\n </div>\n\n <div class=\"toolbar-right\">\n <div class=\"search-wrapper\">\n <i class=\"fas fa-search search-icon\"></i>\n <input\n type=\"text\"\n class=\"mj-input params-search\"\n placeholder=\"Search name or value…\"\n [(ngModel)]=\"searchText\"\n name=\"paramSearch\" />\n @if (searchText) {\n <button type=\"button\" class=\"search-clear\" (click)=\"searchText = ''\" title=\"Clear search\">\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n\n <div class=\"sort-group\" role=\"group\" aria-label=\"Sort parameters\">\n <button\n type=\"button\"\n class=\"sort-btn\"\n [class.active]=\"sortKey === 'type'\"\n (click)=\"toggleSort('type')\"\n title=\"Sort by type\">\n Type\n @if (sortKey === 'type') {\n <i class=\"fas\" [ngClass]=\"sortDir === 'asc' ? 'fa-arrow-down-short-wide' : 'fa-arrow-up-wide-short'\"></i>\n }\n </button>\n <button\n type=\"button\"\n class=\"sort-btn\"\n [class.active]=\"sortKey === 'name'\"\n (click)=\"toggleSort('name')\"\n title=\"Sort by name\">\n Name\n @if (sortKey === 'name') {\n <i class=\"fas\" [ngClass]=\"sortDir === 'asc' ? 'fa-arrow-down-a-z' : 'fa-arrow-up-z-a'\"></i>\n }\n </button>\n </div>\n\n <button\n type=\"button\"\n class=\"raw-toggle\"\n [class.active]=\"showRawJson\"\n (click)=\"toggleRawJson()\"\n title=\"Toggle raw JSON view\">\n <i class=\"fas fa-code\"></i>\n Raw\n </button>\n </div>\n </div>\n\n @if (showRawJson) {\n <div class=\"json-viewer raw-json-viewer\">\n <div class=\"json-toolbar\">\n <span class=\"json-label\">Raw JSON</span>\n <button class=\"btn-icon\" title=\"Copy JSON\" (click)=\"copyToClipboard(formattedParams)\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n <mj-code-editor\n [(ngModel)]=\"formattedParams\"\n name=\"formattedParamsRaw\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 360px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else {\n <!-- Rich param list -->\n @if (filteredParameters.length === 0) {\n <mj-empty-state\n Variant=\"no-results\"\n Size=\"compact\"\n Icon=\"fa-solid fa-filter-circle-xmark\"\n Title=\"No parameters match the current filter.\"\n ActionText=\"Clear filters\"\n ActionIcon=\"fa-solid fa-rotate-left\"\n ActionVariant=\"flat\"\n (Action)=\"clearFilters()\" />\n } @else {\n <ul class=\"params-list\">\n @for (p of filteredParameters; track trackParam($index, p)) {\n <li class=\"param-row\" [attr.data-type]=\"p.Type\">\n <div class=\"param-header\">\n <span class=\"type-badge\" [attr.data-type]=\"p.Type\">\n @if (p.Type === 'Input') {\n <i class=\"fas fa-sign-in-alt\"></i>\n } @else if (p.Type === 'Output') {\n <i class=\"fas fa-sign-out-alt\"></i>\n } @else {\n <i class=\"fas fa-exchange-alt\"></i>\n }\n {{ getTypeLabel(p.Type) }}\n </span>\n <div class=\"param-name-wrap\">\n <span class=\"param-name\">{{ p.Name }}</span>\n <span class=\"value-kind-chip\" [attr.data-kind]=\"p.ValueKind\">\n <i class=\"fas\" [ngClass]=\"getValueKindIcon(p.ValueKind)\"></i>\n {{ p.ValueKind }}\n </span>\n </div>\n <div class=\"param-actions\">\n @if (p.IsExpandable) {\n <button type=\"button\" class=\"btn-icon param-expand\" [class.is-expanded]=\"p.Expanded\" (click)=\"toggleExpanded(p)\" [title]=\"p.Expanded ? 'Collapse' : 'Expand'\">\n <i class=\"fas\" [ngClass]=\"p.Expanded ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n }\n <button type=\"button\" class=\"btn-icon\" (click)=\"copyParamValue(p)\" title=\"Copy value\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n </div>\n <div class=\"param-preview\" [attr.data-kind]=\"p.ValueKind\">{{ p.Preview }}</div>\n @if (p.IsExpandable && p.Expanded) {\n <div class=\"param-expanded\">\n <mj-code-editor\n [(ngModel)]=\"p.FormattedValue\"\n [name]=\"'param-' + p.Name\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 240px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n </li>\n }\n </ul>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Output Message -->\n @if (record.Message) {\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-comment-alt\"></i> Output Message\n </ng-template>\n <div class=\"json-viewer\">\n <div class=\"json-toolbar\">\n <span class=\"json-label\">JSON</span>\n <button class=\"btn-icon\" title=\"Copy JSON\" (click)=\"copyToClipboard(formattedMessage)\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedMessage\"\n name=\"formattedMessage\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Empty States for missing data -->\n @if (!record.Params && !record.Message && !hasAnyParameters) {\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-database\"></i> Execution Data\n </ng-template>\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-inbox\"\n Title=\"No execution data recorded\" />\n </mj-accordion-panel>\n }\n </div>\n </div>\n </div>\n</div>"]}
@@ -4,24 +4,58 @@ import { MJActionFormComponent } from '../../generated/Entities/MJAction/mjactio
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class MJActionFormComponentExtended extends MJActionFormComponent implements OnInit {
6
6
  record: MJActionEntity;
7
- readonly toolbarConfig: import("@memberjunction/ng-base-forms").FormToolbarConfig;
7
+ readonly ToolbarConfig: import("@memberjunction/ng-base-forms").FormToolbarConfig;
8
+ /** @deprecated Use {@link ToolbarConfig}. */
9
+ get toolbarConfig(): import("@memberjunction/ng-base-forms").FormToolbarConfig;
8
10
  /** Custom-layout Action form looks best full-width on first open. */
9
11
  getDefaultFormWidthMode(): 'centered' | 'full-width';
10
12
  category: MJActionCategoryEntity | null;
11
- actionParams: MJActionParamEntity[];
12
- resultCodes: MJActionResultCodeEntity[];
13
- recentExecutions: MJActionExecutionLogEntity[];
14
- actionLibraries: MJActionLibraryEntity[];
13
+ ActionParams: MJActionParamEntity[];
14
+ /** @deprecated Use {@link ActionParams}. */
15
+ get actionParams(): MJActionParamEntity[];
16
+ /** @deprecated Use {@link ActionParams}. */
17
+ set actionParams(value: MJActionParamEntity[]);
18
+ ResultCodes: MJActionResultCodeEntity[];
19
+ /** @deprecated Use {@link ResultCodes}. */
20
+ get resultCodes(): MJActionResultCodeEntity[];
21
+ /** @deprecated Use {@link ResultCodes}. */
22
+ set resultCodes(value: MJActionResultCodeEntity[]);
23
+ RecentExecutions: MJActionExecutionLogEntity[];
24
+ /** @deprecated Use {@link RecentExecutions}. */
25
+ get recentExecutions(): MJActionExecutionLogEntity[];
26
+ /** @deprecated Use {@link RecentExecutions}. */
27
+ set recentExecutions(value: MJActionExecutionLogEntity[]);
28
+ ActionLibraries: MJActionLibraryEntity[];
29
+ /** @deprecated Use {@link ActionLibraries}. */
30
+ get actionLibraries(): MJActionLibraryEntity[];
31
+ /** @deprecated Use {@link ActionLibraries}. */
32
+ set actionLibraries(value: MJActionLibraryEntity[]);
15
33
  libraries: MJLibraryEntity[];
16
34
  private _inputParams;
17
35
  private _outputParams;
18
36
  private paramsToDelete;
19
37
  private resultCodesToDelete;
20
- isLoadingParams: boolean;
21
- isLoadingResultCodes: boolean;
22
- isLoadingExecutions: boolean;
23
- isLoadingLibraries: boolean;
24
- expandedSections: {
38
+ IsLoadingParams: boolean;
39
+ /** @deprecated Use {@link IsLoadingParams}. */
40
+ get isLoadingParams(): boolean;
41
+ /** @deprecated Use {@link IsLoadingParams}. */
42
+ set isLoadingParams(value: boolean);
43
+ IsLoadingResultCodes: boolean;
44
+ /** @deprecated Use {@link IsLoadingResultCodes}. */
45
+ get isLoadingResultCodes(): boolean;
46
+ /** @deprecated Use {@link IsLoadingResultCodes}. */
47
+ set isLoadingResultCodes(value: boolean);
48
+ IsLoadingExecutions: boolean;
49
+ /** @deprecated Use {@link IsLoadingExecutions}. */
50
+ get isLoadingExecutions(): boolean;
51
+ /** @deprecated Use {@link IsLoadingExecutions}. */
52
+ set isLoadingExecutions(value: boolean);
53
+ IsLoadingLibraries: boolean;
54
+ /** @deprecated Use {@link IsLoadingLibraries}. */
55
+ get isLoadingLibraries(): boolean;
56
+ /** @deprecated Use {@link IsLoadingLibraries}. */
57
+ set isLoadingLibraries(value: boolean);
58
+ ExpandedSections: {
25
59
  overview: boolean;
26
60
  code: boolean;
27
61
  params: boolean;
@@ -29,15 +63,59 @@ export declare class MJActionFormComponentExtended extends MJActionFormComponent
29
63
  execution: boolean;
30
64
  configuration: boolean;
31
65
  };
32
- showTestHarness: boolean;
33
- executionStats: {
66
+ /** @deprecated Use {@link ExpandedSections}. */
67
+ get expandedSections(): {
68
+ overview: boolean;
69
+ code: boolean;
70
+ params: boolean;
71
+ resultCodes: boolean;
72
+ execution: boolean;
73
+ configuration: boolean;
74
+ };
75
+ /** @deprecated Use {@link ExpandedSections}. */
76
+ set expandedSections(value: {
77
+ overview: boolean;
78
+ code: boolean;
79
+ params: boolean;
80
+ resultCodes: boolean;
81
+ execution: boolean;
82
+ configuration: boolean;
83
+ });
84
+ ShowTestHarness: boolean;
85
+ /** @deprecated Use {@link ShowTestHarness}. */
86
+ get showTestHarness(): boolean;
87
+ /** @deprecated Use {@link ShowTestHarness}. */
88
+ set showTestHarness(value: boolean);
89
+ ExecutionStats: {
90
+ totalRuns: number;
91
+ successRate: number;
92
+ avgDuration: number;
93
+ lastRun: Date | null;
94
+ };
95
+ /** @deprecated Use {@link ExecutionStats}. */
96
+ get executionStats(): {
34
97
  totalRuns: number;
35
98
  successRate: number;
36
99
  avgDuration: number;
37
100
  lastRun: Date | null;
38
101
  };
39
- codeLanguage: string;
40
- showCodeComments: boolean;
102
+ /** @deprecated Use {@link ExecutionStats}. */
103
+ set executionStats(value: {
104
+ totalRuns: number;
105
+ successRate: number;
106
+ avgDuration: number;
107
+ lastRun: Date | null;
108
+ });
109
+ CodeLanguage: string;
110
+ /** @deprecated Use {@link CodeLanguage}. */
111
+ get codeLanguage(): string;
112
+ /** @deprecated Use {@link CodeLanguage}. */
113
+ set codeLanguage(value: string);
114
+ ShowCodeComments: boolean;
115
+ /** @deprecated Use {@link ShowCodeComments}. */
116
+ get showCodeComments(): boolean;
117
+ /** @deprecated Use {@link ShowCodeComments}. */
118
+ set showCodeComments(value: boolean);
41
119
  private dialogService;
42
120
  private viewContainerRef;
43
121
  private sharedService;
@@ -69,32 +147,71 @@ export declare class MJActionFormComponentExtended extends MJActionFormComponent
69
147
  private loadRecentExecutions;
70
148
  private loadActionLibraries;
71
149
  private loadExecutionStats;
150
+ GetStatusColor(): string;
151
+ /** @deprecated Use {@link GetStatusColor}. */
72
152
  getStatusColor(): string;
153
+ GetStatusIcon(): string;
154
+ /** @deprecated Use {@link GetStatusIcon}. */
73
155
  getStatusIcon(): string;
156
+ GetTypeColor(): string;
157
+ /** @deprecated Use {@link GetTypeColor}. */
74
158
  getTypeColor(): string;
159
+ GetTypeIcon(): string;
160
+ /** @deprecated Use {@link GetTypeIcon}. */
75
161
  getTypeIcon(): string;
162
+ get IsRuntimeAction(): boolean;
163
+ /** @deprecated Use {@link IsRuntimeAction}. */
76
164
  get isRuntimeAction(): boolean;
165
+ get RuntimeConfig(): MJActionEntity_IRuntimeActionConfiguration | null;
166
+ /** @deprecated Use {@link RuntimeConfig}. */
77
167
  get runtimeConfig(): MJActionEntity_IRuntimeActionConfiguration | null;
168
+ GetAllowedEntities(): Array<{
169
+ id: string;
170
+ name: string;
171
+ }>;
172
+ /** @deprecated Use {@link GetAllowedEntities}. */
78
173
  getAllowedEntities(): Array<{
79
174
  id: string;
80
175
  name: string;
81
176
  }>;
177
+ GetAllowedActions(): Array<{
178
+ id: string;
179
+ name: string;
180
+ }>;
181
+ /** @deprecated Use {@link GetAllowedActions}. */
82
182
  getAllowedActions(): Array<{
83
183
  id: string;
84
184
  name: string;
85
185
  }>;
186
+ GetAllowedAgents(): Array<{
187
+ id: string;
188
+ name: string;
189
+ }>;
190
+ /** @deprecated Use {@link GetAllowedAgents}. */
86
191
  getAllowedAgents(): Array<{
87
192
  id: string;
88
193
  name: string;
89
194
  }>;
195
+ GetRequestedLibraries(): Array<{
196
+ name: string;
197
+ version?: string;
198
+ }>;
199
+ /** @deprecated Use {@link GetRequestedLibraries}. */
90
200
  getRequestedLibraries(): Array<{
91
201
  name: string;
92
202
  version?: string;
93
203
  }>;
204
+ GetRuntimeLimits(): {
205
+ maxMemoryMB: number;
206
+ maxBridgeCalls: number;
207
+ };
208
+ /** @deprecated Use {@link GetRuntimeLimits}. */
94
209
  getRuntimeLimits(): {
95
210
  maxMemoryMB: number;
96
211
  maxBridgeCalls: number;
97
212
  };
213
+ GetRuntimeConfigSummary(): string;
214
+ /** @deprecated Use {@link GetRuntimeConfigSummary}. */
98
215
  getRuntimeConfigSummary(): string;
99
216
  /**
100
217
  * Returns which wildcard permission flags are set on the runtime
@@ -102,6 +219,13 @@ export declare class MJActionFormComponentExtended extends MJActionFormComponent
102
219
  * concession to the action — the approval UI renders a warning banner
103
220
  * when any of these are on so the approver sees the blast radius.
104
221
  */
222
+ GetWildcardFlags(): {
223
+ entity: boolean;
224
+ action: boolean;
225
+ agent: boolean;
226
+ any: boolean;
227
+ };
228
+ /** @deprecated Use {@link GetWildcardFlags}. */
105
229
  getWildcardFlags(): {
106
230
  entity: boolean;
107
231
  action: boolean;
@@ -120,34 +244,82 @@ export declare class MJActionFormComponentExtended extends MJActionFormComponent
120
244
  * is the standard fix for NG0100 when a conditional's expression
121
245
  * depends on a method call.
122
246
  */
247
+ get HasCodeApproval(): boolean;
248
+ /** @deprecated Use {@link HasCodeApproval}. */
123
249
  get hasCodeApproval(): boolean;
250
+ GetApprovalStatusColor(): string;
251
+ /** @deprecated Use {@link GetApprovalStatusColor}. */
124
252
  getApprovalStatusColor(): string;
253
+ GetApprovalStatusIcon(): string;
254
+ /** @deprecated Use {@link GetApprovalStatusIcon}. */
125
255
  getApprovalStatusIcon(): string;
256
+ GetParamTypeIcon(type: string): string;
257
+ /** @deprecated Use {@link GetParamTypeIcon}. */
126
258
  getParamTypeIcon(type: string): string;
259
+ GetParamTypeColor(type: string): string;
260
+ /** @deprecated Use {@link GetParamTypeColor}. */
127
261
  getParamTypeColor(type: string): string;
128
262
  formatDuration(ms: number): string;
129
263
  formatDate(date: Date | string | null): string;
264
+ NavigateToEntity(entityName: string, recordId: string | null): void;
265
+ /** @deprecated Use {@link NavigateToEntity}. */
130
266
  navigateToEntity(entityName: string, recordId: string | null): void;
267
+ NavigateToCategory(): void;
268
+ /** @deprecated Use {@link NavigateToCategory}. */
131
269
  navigateToCategory(): void;
270
+ NavigateToExecution(executionId: string): void;
271
+ /** @deprecated Use {@link NavigateToExecution}. */
132
272
  navigateToExecution(executionId: string): void;
273
+ NavigateToLibrary(libraryId: string): void;
274
+ /** @deprecated Use {@link NavigateToLibrary}. */
133
275
  navigateToLibrary(libraryId: string): void;
276
+ OpenTestHarness(): void;
277
+ /** @deprecated Use {@link OpenTestHarness}. */
134
278
  openTestHarness(): void;
135
279
  /**
136
280
  * Event handler for test harness visibility changes
137
281
  */
282
+ OnTestHarnessVisibilityChanged(isVisible: boolean): void;
283
+ /** @deprecated Use {@link OnTestHarnessVisibilityChanged}. */
138
284
  onTestHarnessVisibilityChanged(isVisible: boolean): void;
285
+ RegenerateCode(): Promise<void>;
286
+ /** @deprecated Use {@link RegenerateCode}. */
139
287
  regenerateCode(): Promise<void>;
288
+ ToggleCodeComments(): void;
289
+ /** @deprecated Use {@link ToggleCodeComments}. */
140
290
  toggleCodeComments(): void;
291
+ ApproveCode(): Promise<void>;
292
+ /** @deprecated Use {@link ApproveCode}. */
141
293
  approveCode(): Promise<void>;
294
+ RejectCode(): Promise<void>;
295
+ /** @deprecated Use {@link RejectCode}. */
142
296
  rejectCode(): Promise<void>;
297
+ CopyToClipboard(text: string): Promise<void>;
298
+ /** @deprecated Use {@link CopyToClipboard}. */
143
299
  copyToClipboard(text: string): Promise<void>;
300
+ GetInputParams(): MJActionParamEntity[];
301
+ /** @deprecated Use {@link GetInputParams}. */
144
302
  getInputParams(): MJActionParamEntity[];
303
+ GetOutputParams(): MJActionParamEntity[];
304
+ /** @deprecated Use {@link GetOutputParams}. */
145
305
  getOutputParams(): MJActionParamEntity[];
306
+ IsExecutionSuccess(execution: MJActionExecutionLogEntity): boolean;
307
+ /** @deprecated Use {@link IsExecutionSuccess}. */
146
308
  isExecutionSuccess(execution: MJActionExecutionLogEntity): boolean;
309
+ GetExecutionDuration(execution: MJActionExecutionLogEntity): number;
310
+ /** @deprecated Use {@link GetExecutionDuration}. */
147
311
  getExecutionDuration(execution: MJActionExecutionLogEntity): number;
312
+ GetSuccessRateColor(): string;
313
+ /** @deprecated Use {@link GetSuccessRateColor}. */
148
314
  getSuccessRateColor(): string;
315
+ AddParameter(type: 'Input' | 'Output' | 'Both'): Promise<void>;
316
+ /** @deprecated Use {@link AddParameter}. */
149
317
  addParameter(type: 'Input' | 'Output' | 'Both'): Promise<void>;
318
+ EditParameter(param: MJActionParamEntity): Promise<void>;
319
+ /** @deprecated Use {@link EditParameter}. */
150
320
  editParameter(param: MJActionParamEntity): Promise<void>;
321
+ OnParamClick(param: MJActionParamEntity, event: Event): void;
322
+ /** @deprecated Use {@link OnParamClick}. */
151
323
  onParamClick(param: MJActionParamEntity, event: Event): void;
152
324
  private updateParamArrays;
153
325
  protected PopulatePendingRecords(): void;
@@ -155,17 +327,29 @@ export declare class MJActionFormComponentExtended extends MJActionFormComponent
155
327
  * Gets the action's display icon
156
328
  * Falls back to default cog icon if no IconClass is set
157
329
  */
330
+ GetActionIcon(): string;
331
+ /** @deprecated Use {@link GetActionIcon}. */
158
332
  getActionIcon(): string;
333
+ AddResultCode(): Promise<void>;
334
+ /** @deprecated Use {@link AddResultCode}. */
159
335
  addResultCode(): Promise<void>;
336
+ EditResultCode(resultCode: MJActionResultCodeEntity): Promise<void>;
337
+ /** @deprecated Use {@link EditResultCode}. */
160
338
  editResultCode(resultCode: MJActionResultCodeEntity): Promise<void>;
339
+ OnResultCodeClick(resultCode: MJActionResultCodeEntity, event: Event): void;
340
+ /** @deprecated Use {@link OnResultCodeClick}. */
161
341
  onResultCodeClick(resultCode: MJActionResultCodeEntity, event: Event): void;
162
342
  /**
163
343
  * Delete a result code (marks for deletion on save)
164
344
  */
345
+ DeleteResultCode(resultCode: MJActionResultCodeEntity): void;
346
+ /** @deprecated Use {@link DeleteResultCode}. */
165
347
  deleteResultCode(resultCode: MJActionResultCodeEntity): void;
166
348
  /**
167
349
  * Delete a parameter (marks for deletion on save)
168
350
  */
351
+ DeleteParameter(param: MJActionParamEntity): void;
352
+ /** @deprecated Use {@link DeleteParameter}. */
169
353
  deleteParameter(param: MJActionParamEntity): void;
170
354
  static ɵfac: i0.ɵɵFactoryDeclaration<MJActionFormComponentExtended, never>;
171
355
  static ɵcmp: i0.ɵɵComponentDeclaration<MJActionFormComponentExtended, "mj-action-form", never, {}, {}, never, never, false, never>;