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

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 (398) 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-form-tabs.d.ts +1 -0
  10. package/dist/lib/custom/AIAgents/agent-form-tabs.d.ts.map +1 -1
  11. package/dist/lib/custom/AIAgents/agent-form-tabs.js +2 -0
  12. package/dist/lib/custom/AIAgents/agent-form-tabs.js.map +1 -1
  13. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +80 -16
  14. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
  15. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +146 -46
  16. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
  17. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +329 -27
  18. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  19. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1322 -783
  20. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  21. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +76 -0
  22. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
  23. package/dist/lib/custom/AIAgents/ai-agent-management.service.js +77 -33
  24. package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
  25. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +69 -15
  26. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
  27. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +182 -74
  28. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
  29. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +105 -25
  30. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
  31. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +272 -112
  32. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
  33. package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +32 -6
  34. package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
  35. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +71 -19
  36. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
  37. package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +10 -0
  38. package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
  39. package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +27 -7
  40. package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
  41. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +65 -15
  42. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
  43. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +152 -52
  44. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
  45. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +81 -15
  46. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
  47. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +145 -45
  48. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
  49. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +71 -17
  50. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
  51. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +175 -67
  52. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
  53. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +173 -27
  54. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  55. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +385 -93
  56. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  57. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts +64 -4
  58. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -1
  59. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +129 -29
  60. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
  61. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +260 -27
  62. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
  63. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +694 -252
  64. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  65. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +10 -0
  66. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
  67. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +17 -9
  68. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
  69. package/dist/lib/custom/AIPrompts/pending-records.d.ts +11 -0
  70. package/dist/lib/custom/AIPrompts/pending-records.d.ts.map +1 -0
  71. package/dist/lib/custom/AIPrompts/pending-records.js +21 -0
  72. package/dist/lib/custom/AIPrompts/pending-records.js.map +1 -0
  73. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +74 -16
  74. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
  75. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +174 -58
  76. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
  77. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +108 -14
  78. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
  79. package/dist/lib/custom/Actions/action-execution-log-form.component.js +258 -70
  80. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  81. package/dist/lib/custom/Actions/action-form.component.d.ts +198 -14
  82. package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
  83. package/dist/lib/custom/Actions/action-form.component.js +387 -107
  84. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  85. package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts +12 -6
  86. package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts.map +1 -1
  87. package/dist/lib/custom/BridgeProviders/bridge-provider-features.js +41 -29
  88. package/dist/lib/custom/BridgeProviders/bridge-provider-features.js.map +1 -1
  89. package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js +14 -14
  90. package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js.map +1 -1
  91. package/dist/lib/custom/Companies/company-overview.panel.d.ts +1 -1
  92. package/dist/lib/custom/Companies/company-overview.panel.js +2 -2
  93. package/dist/lib/custom/Companies/company-overview.panel.js.map +1 -1
  94. package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +1 -1
  95. package/dist/lib/custom/Conversations/conversation-overview.panel.js +2 -2
  96. package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
  97. package/dist/lib/custom/Employees/employee-overview.panel.d.ts +1 -1
  98. package/dist/lib/custom/Employees/employee-overview.panel.js +2 -2
  99. package/dist/lib/custom/Employees/employee-overview.panel.js.map +1 -1
  100. package/dist/lib/custom/Entities/entity-form.component.d.ts +217 -29
  101. package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
  102. package/dist/lib/custom/Entities/entity-form.component.js +734 -285
  103. package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
  104. package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +5 -1
  105. package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
  106. package/dist/lib/custom/EntityActions/entityaction.form.component.js +10 -2
  107. package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
  108. package/dist/lib/custom/Files/file-form.component.d.ts +1 -1
  109. package/dist/lib/custom/Files/file-form.component.js +2 -2
  110. package/dist/lib/custom/Files/file-form.component.js.map +1 -1
  111. package/dist/lib/custom/Lists/list-form.component.d.ts +300 -36
  112. package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
  113. package/dist/lib/custom/Lists/list-form.component.js +664 -208
  114. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  115. package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +31 -0
  116. package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -1
  117. package/dist/lib/custom/MLModels/ml-model-view-models.js +52 -16
  118. package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -1
  119. package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +107 -10
  120. package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -1
  121. package/dist/lib/custom/MLModels/ps-model-detail.component.js +291 -101
  122. package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -1
  123. package/dist/lib/custom/Queries/query-form.component.d.ts +201 -26
  124. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  125. package/dist/lib/custom/Queries/query-form.component.js +429 -109
  126. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  127. package/dist/lib/custom/Queries/query-run-dialog.component.d.ts +107 -14
  128. package/dist/lib/custom/Queries/query-run-dialog.component.d.ts.map +1 -1
  129. package/dist/lib/custom/Queries/query-run-dialog.component.js +249 -79
  130. package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
  131. package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts +129 -4
  132. package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
  133. package/dist/lib/custom/RecordProcesses/record-process-form.component.js +904 -90
  134. package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
  135. package/dist/lib/custom/Rubrics/evaluation-form.component.d.ts +37 -0
  136. package/dist/lib/custom/Rubrics/evaluation-form.component.d.ts.map +1 -0
  137. package/dist/lib/custom/Rubrics/evaluation-form.component.js +399 -0
  138. package/dist/lib/custom/Rubrics/evaluation-form.component.js.map +1 -0
  139. package/dist/lib/custom/Rubrics/record-forms.component.d.ts +69 -0
  140. package/dist/lib/custom/Rubrics/record-forms.component.d.ts.map +1 -0
  141. package/dist/lib/custom/Rubrics/record-forms.component.js +587 -0
  142. package/dist/lib/custom/Rubrics/record-forms.component.js.map +1 -0
  143. package/dist/lib/custom/Rubrics/rubric-form.component.d.ts +67 -0
  144. package/dist/lib/custom/Rubrics/rubric-form.component.d.ts.map +1 -0
  145. package/dist/lib/custom/Rubrics/rubric-form.component.js +534 -0
  146. package/dist/lib/custom/Rubrics/rubric-form.component.js.map +1 -0
  147. package/dist/lib/custom/Rubrics/rubric-form.panels.d.ts +25 -0
  148. package/dist/lib/custom/Rubrics/rubric-form.panels.d.ts.map +1 -0
  149. package/dist/lib/custom/Rubrics/rubric-form.panels.js +299 -0
  150. package/dist/lib/custom/Rubrics/rubric-form.panels.js.map +1 -0
  151. package/dist/lib/custom/Rubrics/scale-form.component.d.ts +31 -0
  152. package/dist/lib/custom/Rubrics/scale-form.component.d.ts.map +1 -0
  153. package/dist/lib/custom/Rubrics/scale-form.component.js +395 -0
  154. package/dist/lib/custom/Rubrics/scale-form.component.js.map +1 -0
  155. package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts +1 -1
  156. package/dist/lib/custom/SearchScopes/searchscope-form.component.js +4 -4
  157. package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
  158. package/dist/lib/custom/SessionBridges/session-bridge-form.component.js.map +1 -1
  159. package/dist/lib/custom/Templates/template-param-dialog.component.d.ts +77 -13
  160. package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
  161. package/dist/lib/custom/Templates/template-param-dialog.component.js +196 -78
  162. package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
  163. package/dist/lib/custom/Templates/template-params-grid.component.d.ts +49 -7
  164. package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
  165. package/dist/lib/custom/Templates/template-params-grid.component.js +132 -44
  166. package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
  167. package/dist/lib/custom/Templates/templates-form.component.d.ts +153 -19
  168. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  169. package/dist/lib/custom/Templates/templates-form.component.js +434 -217
  170. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  171. package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +24 -4
  172. package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -1
  173. package/dist/lib/custom/Tests/entity-link-pill.component.js +64 -20
  174. package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
  175. package/dist/lib/custom/Tests/test-form.component.d.ts +223 -27
  176. package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
  177. package/dist/lib/custom/Tests/test-form.component.js +951 -530
  178. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  179. package/dist/lib/custom/Tests/test-run-checks.d.ts +2 -0
  180. package/dist/lib/custom/Tests/test-run-checks.d.ts.map +1 -1
  181. package/dist/lib/custom/Tests/test-run-checks.js +5 -1
  182. package/dist/lib/custom/Tests/test-run-checks.js.map +1 -1
  183. package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts +2 -0
  184. package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts.map +1 -1
  185. package/dist/lib/custom/Tests/test-run-feedback-form.component.js +5 -1
  186. package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
  187. package/dist/lib/custom/Tests/test-run-form.component.d.ts +146 -18
  188. package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
  189. package/dist/lib/custom/Tests/test-run-form.component.js +362 -106
  190. package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
  191. package/dist/lib/custom/Tests/test-suite-form.component.d.ts +395 -47
  192. package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
  193. package/dist/lib/custom/Tests/test-suite-form.component.js +1719 -1007
  194. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  195. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +214 -26
  196. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
  197. package/dist/lib/custom/Tests/test-suite-run-form.component.js +535 -159
  198. package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
  199. package/dist/lib/custom/Users/user-overview.panel.d.ts +1 -1
  200. package/dist/lib/custom/Users/user-overview.panel.js +3 -3
  201. package/dist/lib/custom/Users/user-overview.panel.js.map +1 -1
  202. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +208 -29
  203. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
  204. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +446 -138
  205. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  206. package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts +6 -0
  207. package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts.map +1 -1
  208. package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js +16 -4
  209. package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js.map +1 -1
  210. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts +50 -6
  211. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
  212. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +84 -12
  213. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
  214. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +89 -5
  215. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
  216. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +216 -70
  217. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
  218. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +62 -3
  219. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
  220. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +140 -42
  221. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
  222. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +81 -10
  223. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  224. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +165 -37
  225. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  226. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +140 -15
  227. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  228. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +326 -100
  229. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  230. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts +101 -15
  231. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts.map +1 -1
  232. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js +281 -97
  233. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js.map +1 -1
  234. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts +43 -25
  235. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts.map +1 -1
  236. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js +100 -64
  237. package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js.map +1 -1
  238. package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts +14 -2
  239. package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts.map +1 -1
  240. package/dist/lib/custom/ai-agent-run/flow/constellation.component.js +71 -53
  241. package/dist/lib/custom/ai-agent-run/flow/constellation.component.js.map +1 -1
  242. package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts +14 -2
  243. package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts.map +1 -1
  244. package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js +70 -52
  245. package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js.map +1 -1
  246. package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts +8 -0
  247. package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts.map +1 -1
  248. package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js +22 -6
  249. package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js.map +1 -1
  250. package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts +24 -2
  251. package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts.map +1 -1
  252. package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js +91 -59
  253. package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js.map +1 -1
  254. package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts +10 -2
  255. package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts.map +1 -1
  256. package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js +33 -17
  257. package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js.map +1 -1
  258. package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts +2 -0
  259. package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts.map +1 -1
  260. package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js +34 -30
  261. package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js.map +1 -1
  262. package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts +14 -2
  263. package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts.map +1 -1
  264. package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js +69 -51
  265. package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js.map +1 -1
  266. package/dist/lib/custom/custom-forms.module.d.ts +56 -48
  267. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  268. package/dist/lib/custom/custom-forms.module.js +60 -0
  269. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  270. package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +38 -12
  271. package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
  272. package/dist/lib/custom/shared/entity-selector-dialog.component.js +103 -51
  273. package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
  274. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
  275. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +61 -43
  276. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  277. package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.d.ts +10 -0
  278. package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.d.ts.map +1 -0
  279. package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.js +74 -0
  280. package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.js.map +1 -0
  281. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
  282. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +37 -19
  283. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
  284. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
  285. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +78 -52
  286. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
  287. package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +76 -74
  288. package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
  289. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  290. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +156 -84
  291. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  292. package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.d.ts +10 -0
  293. package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.d.ts.map +1 -0
  294. package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.js +62 -0
  295. package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.js.map +1 -0
  296. package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.d.ts.map +1 -1
  297. package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js +24 -6
  298. package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js.map +1 -1
  299. package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +27 -25
  300. package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
  301. package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.d.ts.map +1 -1
  302. package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js +24 -16
  303. package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js.map +1 -1
  304. package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.d.ts +10 -0
  305. package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.d.ts.map +1 -0
  306. package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.js +107 -0
  307. package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.js.map +1 -0
  308. package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.d.ts +10 -0
  309. package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.d.ts.map +1 -0
  310. package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.js +74 -0
  311. package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.js.map +1 -0
  312. package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.d.ts +10 -0
  313. package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.d.ts.map +1 -0
  314. package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.js +135 -0
  315. package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.js.map +1 -0
  316. package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.d.ts +10 -0
  317. package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.d.ts.map +1 -0
  318. package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.js +87 -0
  319. package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.js.map +1 -0
  320. package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.d.ts +10 -0
  321. package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.d.ts.map +1 -0
  322. package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.js +107 -0
  323. package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.js.map +1 -0
  324. package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.d.ts +10 -0
  325. package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.d.ts.map +1 -0
  326. package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.js +155 -0
  327. package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.js.map +1 -0
  328. package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.d.ts +10 -0
  329. package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.d.ts.map +1 -0
  330. package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.js +62 -0
  331. package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.js.map +1 -0
  332. package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.d.ts +10 -0
  333. package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.d.ts.map +1 -0
  334. package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.js +183 -0
  335. package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.js.map +1 -0
  336. package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.d.ts +10 -0
  337. package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.d.ts.map +1 -0
  338. package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.js +120 -0
  339. package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.js.map +1 -0
  340. package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.d.ts +10 -0
  341. package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.d.ts.map +1 -0
  342. package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.js +107 -0
  343. package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.js.map +1 -0
  344. package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.d.ts +10 -0
  345. package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.d.ts.map +1 -0
  346. package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.js +103 -0
  347. package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.js.map +1 -0
  348. package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.d.ts +10 -0
  349. package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.d.ts.map +1 -0
  350. package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.js +171 -0
  351. package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.js.map +1 -0
  352. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.d.ts.map +1 -1
  353. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +24 -16
  354. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
  355. package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js +27 -25
  356. package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js.map +1 -1
  357. package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.d.ts.map +1 -1
  358. package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js +19 -11
  359. package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js.map +1 -1
  360. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  361. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +209 -119
  362. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  363. package/dist/lib/generated/generated-forms.module.d.ts +436 -422
  364. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  365. package/dist/lib/generated/generated-forms.module.js +44 -2
  366. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  367. package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts +5 -1
  368. package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts.map +1 -1
  369. package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js +11 -3
  370. package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js.map +1 -1
  371. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts +2 -0
  372. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts.map +1 -1
  373. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +16 -12
  374. package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -1
  375. package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts +1 -1
  376. package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +2 -2
  377. package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -1
  378. package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts +45 -19
  379. package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
  380. package/dist/lib/panels/model-predictions/model-prediction.logic.js +95 -43
  381. package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
  382. package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts +20 -16
  383. package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts.map +1 -1
  384. package/dist/lib/panels/model-predictions/model-prediction.panel.js +73 -65
  385. package/dist/lib/panels/model-predictions/model-prediction.panel.js.map +1 -1
  386. package/dist/lib/panels/record-clone/entity-clone-config-editor.component.d.ts +116 -0
  387. package/dist/lib/panels/record-clone/entity-clone-config-editor.component.d.ts.map +1 -0
  388. package/dist/lib/panels/record-clone/entity-clone-config-editor.component.js +820 -0
  389. package/dist/lib/panels/record-clone/entity-clone-config-editor.component.js.map +1 -0
  390. package/dist/lib/shared/components/template-editor.component.d.ts +158 -15
  391. package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
  392. package/dist/lib/shared/components/template-editor.component.js +389 -127
  393. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  394. package/dist/public-api.d.ts +5 -0
  395. package/dist/public-api.d.ts.map +1 -1
  396. package/dist/public-api.js +5 -0
  397. package/dist/public-api.js.map +1 -1
  398. package/package.json +47 -42
@@ -4,7 +4,9 @@ import { TabEvent } from '@memberjunction/ng-tabstrip';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class MJEntityActionFormComponentExtended extends MJEntityActionFormComponent {
6
6
  record: MJEntityActionEntity;
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 Entity Action form looks best full-width on first open. */
9
11
  getDefaultFormWidthMode(): 'centered' | 'full-width';
10
12
  private sharedService;
@@ -16,6 +18,8 @@ export declare class MJEntityActionFormComponentExtended extends MJEntityActionF
16
18
  /**
17
19
  * Handle tab selection events
18
20
  */
21
+ OnTabSelect(e: TabEvent): void;
22
+ /** @deprecated Use {@link OnTabSelect}. */
19
23
  onTabSelect(e: TabEvent): void;
20
24
  /**
21
25
  * Check if a tab is currently active
@@ -1 +1 @@
1
- {"version":3,"file":"entityaction.form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/EntityActions/entityaction.form.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAIrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uEAAuE,CAAC;AACpH,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;;AAEvD,qBAOa,mCAAoC,SAAQ,2BAA2B;IACzE,MAAM,EAAG,oBAAoB,CAAC;IACrC,SAAgB,aAAa,4DAAgC;IAE7D,4EAA4E;IAC5D,uBAAuB,IAAI,UAAU,GAAG,YAAY;IACpE,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,UAAU,CAAuB;IAEzC;;OAEG;IACI,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM;IAIxC;;OAEG;IACI,WAAW,CAAC,CAAC,EAAE,QAAQ;IAK9B;;OAEG;IACI,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;yCA3BpC,mCAAmC;2CAAnC,mCAAmC;CA8B/C"}
1
+ {"version":3,"file":"entityaction.form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/EntityActions/entityaction.form.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAIrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uEAAuE,CAAC;AACpH,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;;AAEvD,qBAOa,mCAAoC,SAAQ,2BAA2B;IACzE,MAAM,EAAG,oBAAoB,CAAC;IACrC,SAAgB,aAAa,4DAAgC;IAE7D,6CAA6C;IAC7C,IAAW,aAAa,8DAEvB;IAED,4EAA4E;IAC5D,uBAAuB,IAAI,UAAU,GAAG,YAAY;IACpE,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,UAAU,CAAuB;IAEzC;;OAEG;IACI,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM;IAIxC;;OAEG;IACI,WAAW,CAAC,CAAC,EAAE,QAAQ;IAK9B,2CAA2C;IACpC,WAAW,CAAC,CAAC,EAAE,QAAQ;IAI9B;;OAEG;IACI,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;yCArCpC,mCAAmC;2CAAnC,mCAAmC;CAwC/C"}
@@ -72,10 +72,14 @@ function MJEntityActionFormComponentExtended_Conditional_0_Template(rf, ctx) { i
72
72
  let MJEntityActionFormComponentExtended = class MJEntityActionFormComponentExtended extends MJEntityActionFormComponent {
73
73
  constructor() {
74
74
  super(...arguments);
75
- this.toolbarConfig = CUSTOM_LAYOUT_TOOLBAR_CONFIG;
75
+ this.ToolbarConfig = CUSTOM_LAYOUT_TOOLBAR_CONFIG;
76
76
  this.sharedService = inject(SharedService);
77
77
  this.currentTab = null;
78
78
  }
79
+ /** @deprecated Use {@link ToolbarConfig}. */
80
+ get toolbarConfig() {
81
+ return this.ToolbarConfig;
82
+ }
79
83
  /** Custom-layout Entity Action form looks best full-width on first open. */
80
84
  getDefaultFormWidthMode() { return 'full-width'; }
81
85
  /**
@@ -87,10 +91,14 @@ let MJEntityActionFormComponentExtended = class MJEntityActionFormComponentExten
87
91
  /**
88
92
  * Handle tab selection events
89
93
  */
90
- onTabSelect(e) {
94
+ OnTabSelect(e) {
91
95
  this.currentTab = e.tab?.Name || null;
92
96
  this.sharedService.InvokeManualResize();
93
97
  }
98
+ /** @deprecated Use {@link OnTabSelect}. */
99
+ onTabSelect(e) {
100
+ return this.OnTabSelect(e);
101
+ }
94
102
  /**
95
103
  * Check if a tab is currently active
96
104
  */
@@ -1 +1 @@
1
- {"version":3,"file":"entityaction.form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/EntityActions/entityaction.form.component.ts","../../../../src/lib/custom/EntityActions/entityaction.form.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,uEAAuE,CAAC;;;;;;;;;;;;;ICJpH,mDAO4D;IAAxD,AADA,AADA,AADA,AADA,qOAAY,6BAAsB,KAAC,gOAChB,0BAAmB,KAAC,gOACpB,0BAAmB,KAAC,kOACnB,2BAAoB,KAAC,gPACd,kCAA2B,KAAC;IACvD,kCAAwH;IACtH,4BACM;IACN,sCAA2F;IAAzC,AAArC,8NAAe,0BAAmB,KAAC,mNAAqB,2BAAoB,KAAC;IACxF,iCAAuB;IACrB,yBACF;IAAA,iBAAS;IACT,mCAAa;IACX,qCAKkB;IACpB,iBAAc;IACd,kCAEwC;IACtC,yBACF;IAAA,iBAAS;IACT,oCAAa;IACX,oCAiBe;IACjB,iBAAc;IACd,mCAEwC;IACtC,8BACF;IAAA,iBAAS;IACT,oCAAa;IACX,oCAkBe;IACjB,iBAAc;IACd,mCAEwC;IACtC,0BACF;IAAA,iBAAS;IACT,oCAAa;IAKX,oDAM+B;IAIzC,AADI,AADE,AADE,iBAAc,EACF,EACT,EACgB;;;IA5FvB,AADA,AADwC,AAAlB,sCAAiB,yBAAuB,uCAC/B,2BACL;IAiBlB,eAAiB;IACjB,AADA,sCAAiB,6BACI;IAIvB,cAA0B;IAC1B,AADA,+CAA0B,sCACW;IAKnC,eAAwB;IAcxB,AADgB,AADA,AARA,AAFhB,AADA,AADA,sCAAwB,2BACE,mCACC,yDAEsC,+DAQM,yDACO,yEACxB;IAKxD,cAA0B;IAC1B,AADA,+CAA0B,sCACW;IAKnC,eAAwB;IAcxB,AAFgB,AADA,AAThB,AADA,AADA,sCAAwB,2BACE,mCACC,+DAS4C,yDAChB,yEAED;IAMxD,cAA0B;IAC1B,AADA,+CAA0B,sCACW;IASnC,eAA+E;IAI/E,AADA,AADA,AADA,AADA,oGAA+E,wEACf,+DACT,eACzC,sBACO;;AD3E1B,IAAM,mCAAmC,GAAzC,MAAM,mCAAoC,SAAQ,2BAA2B;IAA7E;;QAEa,kBAAa,GAAG,4BAA4B,CAAC;QAIrD,kBAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACtC,eAAU,GAAkB,IAAI,CAAC;KAuB5C;IA1BG,4EAA4E;IAC5D,uBAAuB,KAAgC,OAAO,YAAY,CAAC,CAAC,CAAC;IAI7F;;OAEG;IACI,kBAAkB,CAAC,KAAc;QACpC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,CAAW;QAC1B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,OAAe;QAC/B,OAAO,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC;IACvC,CAAC;gUA7BQ,mCAAmC,yBAAnC,mCAAmC;oEAAnC,mCAAmC;YCfhD,4HAAc;;YAAd,qCAgGC;;;ADjFY,mCAAmC;IAP/C,aAAa,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;GAO1C,mCAAmC,CA8B/C;;iFA9BY,mCAAmC;cAN/C,SAAS;6BACI,KAAK,YACL,uCAAuC;;kFAIxC,mCAAmC","sourcesContent":["import { Component, inject } from '@angular/core';\nimport { MJEntityActionEntity } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent, CUSTOM_LAYOUT_TOOLBAR_CONFIG } from '@memberjunction/ng-base-forms';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { MJEntityActionFormComponent } from '../../generated/Entities/MJEntityAction/mjentityaction.form.component';\nimport { TabEvent } from '@memberjunction/ng-tabstrip';\n\n@RegisterClass(BaseFormComponent, 'MJ: Entity Actions')\n@Component({\n standalone: false,\n selector: 'mj-custom-entity-action-extended-form',\n templateUrl: './entityaction.form.component.html',\n styleUrls: ['../../../shared/form-styles.css', './entityaction.form.component.css']\n})\nexport class MJEntityActionFormComponentExtended extends MJEntityActionFormComponent {\n public record!: MJEntityActionEntity;\n public readonly toolbarConfig = CUSTOM_LAYOUT_TOOLBAR_CONFIG;\n\n /** Custom-layout Entity Action form looks best full-width on first open. */\n public override getDefaultFormWidthMode(): 'centered' | 'full-width' { return 'full-width'; }\n private sharedService = inject(SharedService);\n private currentTab: string | null = null;\n\n /**\n * Convenience method to resize application container when required\n */\n public InvokeManualResize(delay?: number) {\n this.sharedService.InvokeManualResize(delay);\n }\n\n /**\n * Handle tab selection events\n */\n public onTabSelect(e: TabEvent) {\n this.currentTab = e.tab?.Name || null;\n this.sharedService.InvokeManualResize();\n }\n\n /**\n * Check if a tab is currently active\n */\n public IsCurrentTab(tabName: string): boolean {\n return this.currentTab === tabName;\n }\n}\n","@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n [ToolbarConfig]=\"toolbarConfig\"\n [WidthMode]=\"'full-width'\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <div #topArea class=\"record-form-group\">\n </div>\n <mj-tabstrip (TabSelected)=\"onTabSelect($event)\" (ResizeContainer)=\"InvokeManualResize()\">\n <mj-tab Name=\"Details\">\n Details\n </mj-tab>\n <mj-tab-body>\n <mj-form-section\n Entity=\"MJ: Entity Actions\"\n Section=\"details\"\n [record]=\"record\"\n [EditMode]=\"EditMode\">\n </mj-form-section>\n </mj-tab-body>\n <mj-tab Name=\"MJ: Entity Action Params\"\n [Visible]=\"record.IsSaved\"\n [Props]=\"{EntityRelationshipID: 247}\">\n Params\n </mj-tab>\n <mj-tab-body>\n <mj-join-grid\n [ShowSaveButton]=\"false\"\n [ShowCancelButton]=\"false\"\n [EditMode]=\"GridEditMode()\"\n RowsEntityName=\"MJ: Action Params\"\n [RowsExtraFilter]=\"'ActionID=' + record.ActionID\"\n RowsEntityDisplayField=\"Name\"\n RowsEntityDataSource=\"FullEntity\"\n RowsOrderBy=\"ID\"\n RowsEntityDisplayName=\"Action Param\"\n ColumnsMode=\"Fields\"\n JoinEntityName=\"MJ: Entity Action Params\"\n JoinEntityRowForeignKey=\"ActionParamID\"\n [JoinEntityExtraFilter]=\"'EntityActionID=' + record.ID\"\n [JoinEntityDisplayColumns]=\"['ValueType', 'Value','Comments']\"\n [NewRecordDefaultValues]=\"{EntityActionID: record.ID}\"\n >\n </mj-join-grid>\n </mj-tab-body>\n <mj-tab Name=\"MJ: Entity Action Invocations\"\n [Visible]=\"record.IsSaved\"\n [Props]=\"{EntityRelationshipID: 247}\">\n Invocations\n </mj-tab>\n <mj-tab-body>\n <mj-join-grid\n [ShowSaveButton]=\"false\"\n [ShowCancelButton]=\"false\"\n [EditMode]=\"GridEditMode()\"\n RowsEntityName=\"MJ: Entity Action Invocation Types\"\n RowsEntityDisplayField=\"Name\"\n RowsEntityDataSource=\"FullEntity\"\n RowsOrderBy=\"Name\"\n RowsEntityDisplayName=\"Type\"\n ColumnsMode=\"Fields\"\n JoinEntityName=\"MJ: Entity Action Invocations\"\n JoinEntityRowForeignKey=\"InvocationTypeID\"\n [JoinEntityExtraFilter]=\"'EntityActionID=' + record.ID\"\n [JoinEntityDisplayColumns]=\"['Status']\"\n CheckBoxValueMode=\"RecordExists\"\n [NewRecordDefaultValues]=\"{EntityActionID: record.ID}\"\n style=\"height: 500px; width: 800px;\"\n >\n </mj-join-grid>\n </mj-tab-body>\n <mj-tab Name=\"MJ: Entity Action Filters\"\n [Visible]=\"record.IsSaved\"\n [Props]=\"{EntityRelationshipID: 248}\">\n Filters\n </mj-tab>\n <mj-tab-body>\n <!-- Explicit Height: the default 'auto' resolves to height:100%, which needs a definite\n ancestor — the tab body used to hardcode viewport height and provide one, but it now\n sizes to content (the host owns region sizing), so 100% would resolve to nothing and\n the grid loses its internal scroll. 600px ≈ the region the old viewport math yielded. -->\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Entity Action Filters')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Entity Action Filters')\"\n [AllowLoad]=\"IsCurrentTab('MJ: Entity Action Filters')\"\n [Height]=\"600\"\n [ShowToolbar]=\"false\">\n </mj-explorer-entity-data-grid>\n </mj-tab-body>\n </mj-tabstrip>\n </form>\n</mj-record-form-container>\n}\n"]}
1
+ {"version":3,"file":"entityaction.form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/EntityActions/entityaction.form.component.ts","../../../../src/lib/custom/EntityActions/entityaction.form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, inject } from '@angular/core';\nimport { MJEntityActionEntity } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent, CUSTOM_LAYOUT_TOOLBAR_CONFIG } from '@memberjunction/ng-base-forms';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { MJEntityActionFormComponent } from '../../generated/Entities/MJEntityAction/mjentityaction.form.component';\nimport { TabEvent } from '@memberjunction/ng-tabstrip';\n\n@RegisterClass(BaseFormComponent, 'MJ: Entity Actions')\n@Component({\n standalone: false,\n selector: 'mj-custom-entity-action-extended-form',\n templateUrl: './entityaction.form.component.html',\n styleUrls: ['../../../shared/form-styles.css', './entityaction.form.component.css']\n})\nexport class MJEntityActionFormComponentExtended extends MJEntityActionFormComponent {\n public record!: MJEntityActionEntity;\n public readonly ToolbarConfig = CUSTOM_LAYOUT_TOOLBAR_CONFIG;\n\n /** @deprecated Use {@link ToolbarConfig}. */\n public get toolbarConfig() {\n return this.ToolbarConfig;\n }\n\n /** Custom-layout Entity Action form looks best full-width on first open. */\n public override getDefaultFormWidthMode(): 'centered' | 'full-width' { return 'full-width'; }\n private sharedService = inject(SharedService);\n private currentTab: string | null = null;\n\n /**\n * Convenience method to resize application container when required\n */\n public InvokeManualResize(delay?: number) {\n this.sharedService.InvokeManualResize(delay);\n }\n\n /**\n * Handle tab selection events\n */\n public OnTabSelect(e: TabEvent) {\n this.currentTab = e.tab?.Name || null;\n this.sharedService.InvokeManualResize();\n }\n\n /** @deprecated Use {@link OnTabSelect}. */\n public onTabSelect(e: TabEvent) {\n return this.OnTabSelect(e);\n }\n\n /**\n * Check if a tab is currently active\n */\n public IsCurrentTab(tabName: string): boolean {\n return this.currentTab === tabName;\n }\n}\n","@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n [ToolbarConfig]=\"toolbarConfig\"\n [WidthMode]=\"'full-width'\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <div #topArea class=\"record-form-group\">\n </div>\n <mj-tabstrip (TabSelected)=\"onTabSelect($event)\" (ResizeContainer)=\"InvokeManualResize()\">\n <mj-tab Name=\"Details\">\n Details\n </mj-tab>\n <mj-tab-body>\n <mj-form-section\n Entity=\"MJ: Entity Actions\"\n Section=\"details\"\n [record]=\"record\"\n [EditMode]=\"EditMode\">\n </mj-form-section>\n </mj-tab-body>\n <mj-tab Name=\"MJ: Entity Action Params\"\n [Visible]=\"record.IsSaved\"\n [Props]=\"{EntityRelationshipID: 247}\">\n Params\n </mj-tab>\n <mj-tab-body>\n <mj-join-grid\n [ShowSaveButton]=\"false\"\n [ShowCancelButton]=\"false\"\n [EditMode]=\"GridEditMode()\"\n RowsEntityName=\"MJ: Action Params\"\n [RowsExtraFilter]=\"'ActionID=' + record.ActionID\"\n RowsEntityDisplayField=\"Name\"\n RowsEntityDataSource=\"FullEntity\"\n RowsOrderBy=\"ID\"\n RowsEntityDisplayName=\"Action Param\"\n ColumnsMode=\"Fields\"\n JoinEntityName=\"MJ: Entity Action Params\"\n JoinEntityRowForeignKey=\"ActionParamID\"\n [JoinEntityExtraFilter]=\"'EntityActionID=' + record.ID\"\n [JoinEntityDisplayColumns]=\"['ValueType', 'Value','Comments']\"\n [NewRecordDefaultValues]=\"{EntityActionID: record.ID}\"\n >\n </mj-join-grid>\n </mj-tab-body>\n <mj-tab Name=\"MJ: Entity Action Invocations\"\n [Visible]=\"record.IsSaved\"\n [Props]=\"{EntityRelationshipID: 247}\">\n Invocations\n </mj-tab>\n <mj-tab-body>\n <mj-join-grid\n [ShowSaveButton]=\"false\"\n [ShowCancelButton]=\"false\"\n [EditMode]=\"GridEditMode()\"\n RowsEntityName=\"MJ: Entity Action Invocation Types\"\n RowsEntityDisplayField=\"Name\"\n RowsEntityDataSource=\"FullEntity\"\n RowsOrderBy=\"Name\"\n RowsEntityDisplayName=\"Type\"\n ColumnsMode=\"Fields\"\n JoinEntityName=\"MJ: Entity Action Invocations\"\n JoinEntityRowForeignKey=\"InvocationTypeID\"\n [JoinEntityExtraFilter]=\"'EntityActionID=' + record.ID\"\n [JoinEntityDisplayColumns]=\"['Status']\"\n CheckBoxValueMode=\"RecordExists\"\n [NewRecordDefaultValues]=\"{EntityActionID: record.ID}\"\n style=\"height: 500px; width: 800px;\"\n >\n </mj-join-grid>\n </mj-tab-body>\n <mj-tab Name=\"MJ: Entity Action Filters\"\n [Visible]=\"record.IsSaved\"\n [Props]=\"{EntityRelationshipID: 248}\">\n Filters\n </mj-tab>\n <mj-tab-body>\n <!-- Explicit Height: the default 'auto' resolves to height:100%, which needs a definite\n ancestor — the tab body used to hardcode viewport height and provide one, but it now\n sizes to content (the host owns region sizing), so 100% would resolve to nothing and\n the grid loses its internal scroll. 600px ≈ the region the old viewport math yielded. -->\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Entity Action Filters')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Entity Action Filters')\"\n [AllowLoad]=\"IsCurrentTab('MJ: Entity Action Filters')\"\n [Height]=\"600\"\n [ShowToolbar]=\"false\">\n </mj-explorer-entity-data-grid>\n </mj-tab-body>\n </mj-tabstrip>\n </form>\n</mj-record-form-container>\n}\n"]}
@@ -19,7 +19,7 @@ export declare class MJFileFormComponentExtended extends MJFileFormComponent imp
19
19
  ngOnInit(): Promise<void>;
20
20
  ngOnChanges(changes: SimpleChanges): Promise<void>;
21
21
  ngOnDestroy(): void;
22
- private RestoreUserPreferences;
22
+ private restoreUserPreferences;
23
23
  /**
24
24
  * Loads the media streaming URL for inline viewing.
25
25
  */
@@ -487,7 +487,7 @@ let MJFileFormComponentExtended = class MJFileFormComponentExtended extends MJFi
487
487
  static { this.PREF_SHOW_DETAILS = 'mj.fileViewer.showDetailsSidebar'; }
488
488
  async ngOnInit() {
489
489
  await super.ngOnInit();
490
- this.RestoreUserPreferences();
490
+ this.restoreUserPreferences();
491
491
  if (this.record?.ID) {
492
492
  void this.LoadMediaPreview();
493
493
  }
@@ -503,7 +503,7 @@ let MJFileFormComponentExtended = class MJFileFormComponentExtended extends MJFi
503
503
  }
504
504
  super.ngOnDestroy();
505
505
  }
506
- RestoreUserPreferences() {
506
+ restoreUserPreferences() {
507
507
  const saved = UserInfoEngine.Instance.GetSetting(MJFileFormComponentExtended_1.PREF_SHOW_DETAILS);
508
508
  if (saved !== undefined && saved !== null) {
509
509
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"file-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Files/file-form.component.ts","../../../../src/lib/custom/Files/file-form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, OnChanges, SimpleChanges, inject, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { MJFileEntity, UserInfoEngine } from '@memberjunction/core-entities';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { GraphQLDataProvider, gql } from '@memberjunction/graphql-dataprovider';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJFileFormComponent } from '../../generated/Entities/MJFile/mjfile.form.component';\nimport { z } from 'zod';\n\nconst CreateMediaAccessTokenMutation = gql`\n mutation CreateMediaAccessToken($fileId: String!) {\n CreateMediaAccessToken(fileId: $fileId) {\n Success\n Token\n Url\n MimeType\n ErrorMessage\n }\n }\n`;\n\nconst CreateMediaAccessTokenMutationSchema = z.object({\n CreateMediaAccessToken: z.object({\n Success: z.boolean(),\n Token: z.string().optional().nullable(),\n Url: z.string().optional().nullable(),\n MimeType: z.string().optional().nullable(),\n ErrorMessage: z.string().optional().nullable(),\n }),\n});\n\nconst DownloadUrlMutation = gql`\n mutation DownloadUrl($fileId: String!) {\n DownloadUrl(fileId: $fileId) {\n Success\n ErrorMessage\n Url\n }\n }\n`;\n\nconst DownloadUrlMutationSchema = z.object({\n DownloadUrl: z.object({\n Success: z.boolean(),\n ErrorMessage: z.string().optional().nullable(),\n Url: z.string().optional().nullable(),\n }),\n});\n\n@RegisterClass(BaseFormComponent, 'MJ: Files', 100)\n@Component({\n standalone: false,\n selector: 'mj-file-form-extended',\n templateUrl: './file-form.component.html',\n styleUrls: ['../../../shared/form-styles.css', './file-form.component.css'],\n})\nexport class MJFileFormComponentExtended extends MJFileFormComponent implements OnInit, OnDestroy, OnChanges {\n public override record!: MJFileEntity;\n\n public static readonly PREF_SHOW_DETAILS = 'mj.fileViewer.showDetailsSidebar';\n\n public IsLoadingMedia: boolean = true;\n public IsMediaLoaded: boolean = false;\n public MediaUrl: string | null = null;\n public SafeMediaUrl: SafeResourceUrl | null = null;\n public TextContent: string | null = null;\n public ShowDetailsSidebar: boolean = true;\n public ViewStandardForm: boolean = false;\n\n private sanitizer = inject(DomSanitizer);\n private notifications = inject(MJNotificationService);\n private mediaTimer?: ReturnType<typeof setTimeout>;\n\n public override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n this.RestoreUserPreferences();\n if (this.record?.ID) {\n void this.LoadMediaPreview();\n }\n }\n\n public async ngOnChanges(changes: SimpleChanges): Promise<void> {\n if (changes['record'] && this.record?.ID) {\n void this.LoadMediaPreview();\n }\n }\n\n public override ngOnDestroy(): void {\n if (this.mediaTimer) {\n clearTimeout(this.mediaTimer);\n }\n super.ngOnDestroy();\n }\n\n private RestoreUserPreferences(): void {\n const saved = UserInfoEngine.Instance.GetSetting(MJFileFormComponentExtended.PREF_SHOW_DETAILS);\n if (saved !== undefined && saved !== null) {\n try {\n this.ShowDetailsSidebar = JSON.parse(saved) === true;\n } catch {\n this.ShowDetailsSidebar = saved === 'true';\n }\n }\n }\n\n /**\n * Loads the media streaming URL for inline viewing.\n */\n public async LoadMediaPreview(): Promise<void> {\n if (!this.record?.ID) return;\n\n this.IsLoadingMedia = true;\n this.IsMediaLoaded = false;\n this.MediaUrl = null;\n this.SafeMediaUrl = null;\n this.TextContent = null;\n this.cdr.markForCheck();\n\n try {\n // 1. Try CreateMediaAccessToken (supports Range headers and browser tab titles)\n const mediaResult = await GraphQLDataProvider.ExecuteGQL(\n CreateMediaAccessTokenMutation,\n { fileId: this.record.ID }\n );\n const parsedMedia = CreateMediaAccessTokenMutationSchema.safeParse(mediaResult);\n if (parsedMedia.success && parsedMedia.data.CreateMediaAccessToken.Success && parsedMedia.data.CreateMediaAccessToken.Url) {\n this.MediaUrl = parsedMedia.data.CreateMediaAccessToken.Url;\n this.SafeMediaUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.MediaUrl);\n } else {\n // 2. Fallback to DownloadUrl\n const downloadResult = await GraphQLDataProvider.ExecuteGQL(\n DownloadUrlMutation,\n { fileId: this.record.ID }\n );\n const parsedDownload = DownloadUrlMutationSchema.safeParse(downloadResult);\n if (parsedDownload.success && parsedDownload.data.DownloadUrl.Success && parsedDownload.data.DownloadUrl.Url) {\n this.MediaUrl = parsedDownload.data.DownloadUrl.Url;\n this.SafeMediaUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.MediaUrl);\n }\n }\n\n if (this.MediaUrl) {\n const mediaType = this.MediaType;\n if (mediaType === 'text') {\n try {\n const resp = await window.fetch(this.MediaUrl);\n if (resp.ok) {\n this.TextContent = await resp.text();\n }\n } catch {\n // fallback\n }\n this.IsMediaLoaded = true;\n }\n } else {\n this.IsMediaLoaded = true;\n }\n } catch (err) {\n console.error('[MJFileFormComponentExtended] Error loading media preview:', err);\n this.IsMediaLoaded = true;\n } finally {\n this.IsLoadingMedia = false;\n this.cdr.markForCheck();\n }\n }\n\n public OnMediaElementLoaded(): void {\n if (this.mediaTimer) clearTimeout(this.mediaTimer);\n this.mediaTimer = setTimeout(() => {\n this.IsMediaLoaded = true;\n this.cdr.markForCheck();\n }, 350);\n }\n\n /**\n * Determines media type category based on MIME type or file extension.\n */\n public get MediaType(): 'image' | 'pdf' | 'video' | 'audio' | 'text' | 'other' {\n const mime = (this.record?.ContentType || '').toLowerCase();\n const name = (this.record?.Name || '').toLowerCase();\n\n if (mime.startsWith('image/') || /\\.(png|jpe?g|gif|webp|svg|ico|bmp|avif)$/.test(name)) return 'image';\n if (mime === 'application/pdf' || name.endsWith('.pdf')) return 'pdf';\n if (mime.startsWith('video/') || /\\.(mp4|webm|ogg|mov|mkv|avi)$/.test(name)) return 'video';\n if (mime.startsWith('audio/') || /\\.(mp3|wav|ogg|aac|m4a|flac)$/.test(name)) return 'audio';\n if (\n mime.startsWith('text/') ||\n mime.includes('json') ||\n mime.includes('xml') ||\n mime.includes('javascript') ||\n /\\.(txt|md|csv|json|xml|yaml|yml|js|ts|html|css|sql|sh|log)$/.test(name)\n ) {\n return 'text';\n }\n return 'other';\n }\n\n public get FileIconClass(): string {\n switch (this.MediaType) {\n case 'image': return 'fa-solid fa-file-image mj-file-color-image';\n case 'pdf': return 'fa-solid fa-file-pdf mj-file-color-pdf';\n case 'video': return 'fa-solid fa-file-video mj-file-color-video';\n case 'audio': return 'fa-solid fa-file-audio mj-file-color-audio';\n case 'text': return 'fa-solid fa-file-lines mj-file-color-text';\n default: return 'fa-solid fa-file mj-file-color-generic';\n }\n }\n\n public FormatFileSize(bytes: number | null | undefined): string {\n if (bytes == null || isNaN(bytes) || bytes <= 0) return '0 B';\n const units = ['B', 'KB', 'MB', 'GB', 'TB'];\n const idx = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);\n const val = bytes / Math.pow(1024, idx);\n return `${val.toFixed(idx === 0 ? 0 : 1)} ${units[idx]}`;\n }\n\n public OpenInExternalTab(): void {\n if (this.MediaUrl) {\n window.open(this.MediaUrl, '_blank', 'noopener,noreferrer');\n } else {\n this.notifications.CreateSimpleNotification('File URL not ready', 'warning');\n }\n }\n\n public ToggleDetailsSidebar(): void {\n this.ShowDetailsSidebar = !this.ShowDetailsSidebar;\n UserInfoEngine.Instance.SetSettingDebounced(\n MJFileFormComponentExtended.PREF_SHOW_DETAILS,\n JSON.stringify(this.ShowDetailsSidebar)\n );\n }\n\n public ToggleViewMode(): void {\n this.ViewStandardForm = !this.ViewStandardForm;\n }\n}\n","@if (!ViewStandardForm) {\n <div class=\"mj-file-viewer-container\">\n <!-- Top Action & Info Header -->\n <header class=\"mj-file-viewer-header\">\n <div class=\"mj-file-viewer-header-left\">\n <div class=\"mj-file-viewer-icon-box\">\n <i [class]=\"FileIconClass\"></i>\n </div>\n <div class=\"mj-file-viewer-title-group\">\n <h1 class=\"mj-file-viewer-title\" [title]=\"record.Name\">{{ record.Name }}</h1>\n <div class=\"mj-file-viewer-badges\">\n <span class=\"mj-file-badge mj-file-badge--type\">{{ record.ContentType || 'Document' }}</span>\n <span class=\"mj-file-badge mj-file-badge--size\">{{ FormatFileSize(record.ContentLength) }}</span>\n @if (record.Status) {\n <span class=\"mj-file-badge mj-file-badge--status\">{{ record.Status }}</span>\n }\n </div>\n </div>\n </div>\n\n <div class=\"mj-file-viewer-header-right\">\n @if (MediaUrl) {\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"OpenInExternalTab()\" title=\"Open file in new browser tab\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n <span>Open in New Tab</span>\n </button>\n }\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"ToggleDetailsSidebar()\" [title]=\"ShowDetailsSidebar ? 'Hide Details' : 'Show Details'\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <span>{{ ShowDetailsSidebar ? 'Hide Details' : 'Details' }}</span>\n </button>\n @if (UserCanEdit) {\n <button type=\"button\" mjButton variant=\"tertiary\" size=\"sm\" (click)=\"ToggleViewMode()\" title=\"Switch to full record editor\">\n <i class=\"fa-solid fa-pen-to-square\"></i>\n <span>Edit Record</span>\n </button>\n }\n </div>\n </header>\n\n <!-- Body / Split Content Area -->\n <div class=\"mj-file-viewer-body\">\n <!-- Media Stage -->\n <main class=\"mj-file-viewer-stage\">\n @if (IsLoadingMedia || !IsMediaLoaded) {\n <div class=\"mj-file-viewer-loading-overlay\">\n <mj-loading [text]=\"'Loading ' + (record.Name || 'file') + '...'\"></mj-loading>\n </div>\n }\n\n @switch (MediaType) {\n @case ('image') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-image-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <img [src]=\"MediaUrl\" [alt]=\"record.Name\" (load)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\" />\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-image mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Image preview could not be loaded.</p>\n </div>\n }\n }\n @case ('pdf') {\n @if (SafeMediaUrl) {\n <div class=\"mj-file-media-frame-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <iframe [src]=\"SafeMediaUrl\" title=\"Document Preview\" (load)=\"OnMediaElementLoaded()\"></iframe>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-pdf mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>PDF preview could not be loaded.</p>\n </div>\n }\n }\n @case ('video') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-video-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <video controls autoplay [src]=\"MediaUrl\" (loadeddata)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\"></video>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-video mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Video preview could not be loaded.</p>\n </div>\n }\n }\n @case ('audio') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-audio-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <div class=\"mj-file-audio-visual-icon\"><i class=\"fa-solid fa-headphones\"></i></div>\n <audio controls [src]=\"MediaUrl\" (loadeddata)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\"></audio>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-audio mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Audio preview could not be loaded.</p>\n </div>\n }\n }\n @case ('text') {\n <div class=\"mj-file-media-text-box\">\n <pre><code>{{ TextContent || 'Loading text content...' }}</code></pre>\n </div>\n }\n @default {\n <div class=\"mj-file-viewer-fallback\">\n <i [class]=\"FileIconClass\" class=\"mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p class=\"mj-file-fallback-meta\">{{ record.ContentType || 'Document' }} &bull; {{ FormatFileSize(record.ContentLength) }}</p>\n <p class=\"mj-file-fallback-desc\">{{ record.Description || 'Preview is not available for this file type.' }}</p>\n @if (MediaUrl) {\n <button type=\"button\" mjButton variant=\"primary\" (click)=\"OpenInExternalTab()\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n <span>Open in Browser</span>\n </button>\n }\n </div>\n }\n }\n </main>\n\n <!-- Details & Linked Records Sidebar -->\n @if (ShowDetailsSidebar) {\n <aside class=\"mj-file-viewer-sidebar\">\n <div class=\"mj-file-sidebar-header\">\n <h3>File Details & Links</h3>\n <button type=\"button\" class=\"mj-file-sidebar-close\" (click)=\"ToggleDetailsSidebar()\" title=\"Collapse Sidebar\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <div class=\"mj-file-sidebar-content\">\n <!-- Metadata Cards -->\n <div class=\"mj-file-sidebar-card\">\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">File Name:</span>\n <span class=\"mj-file-meta-val font-semibold\">{{ record.Name }}</span>\n </div>\n @if (record.Description) {\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Description:</span>\n <span class=\"mj-file-meta-val\">{{ record.Description }}</span>\n </div>\n }\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">MIME Type:</span>\n <span class=\"mj-file-meta-val font-mono\">{{ record.ContentType || 'Unknown' }}</span>\n </div>\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Size:</span>\n <span class=\"mj-file-meta-val\">{{ FormatFileSize(record.ContentLength) }}</span>\n </div>\n @if (record.Status) {\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Status:</span>\n <span class=\"mj-file-meta-val\">{{ record.Status }}</span>\n </div>\n }\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Created:</span>\n <span class=\"mj-file-meta-val\">{{ record.CreatedAt | date:'short' }}</span>\n </div>\n </div>\n\n <!-- Linked Records -->\n <div class=\"mj-file-sidebar-section\">\n <h4 class=\"mj-file-sidebar-section-title\">\n <i class=\"fa-solid fa-link\"></i>\n <span>Linked Records</span>\n </h4>\n <div class=\"mj-file-relationship-wrapper\">\n <mj-relationship-view \n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: File Entity Record Links', 'FileID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: File Entity Record Links', 'FileID')\">\n </mj-relationship-view>\n </div>\n </div>\n </div>\n </aside>\n }\n </div>\n </div>\n} @else {\n <div class=\"mj-file-standard-form-wrapper\">\n <div class=\"mj-file-mode-switch-bar\">\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"ToggleViewMode()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n <span>Return to File Preview</span>\n </button>\n </div>\n\n <mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- File Basics Section -->\n <mj-collapsible-panel\n SectionKey=\"fileBasics\"\n SectionName=\"File Basics\"\n Icon=\"fa fa-file\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Name\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Description\"\n Type=\"textarea\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Classification & Status Section -->\n <mj-collapsible-panel\n SectionKey=\"classificationStatus\"\n SectionName=\"Classification & Status\"\n Icon=\"fa fa-tags\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"CategoryID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Status\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Storage Details Section -->\n <mj-collapsible-panel\n SectionKey=\"storageDetails\"\n SectionName=\"Storage Details\"\n Icon=\"fa fa-database\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ProviderID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ProviderKey\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ContentType\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ContentLength\"\n Type=\"numeric\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Linked Records Section -->\n <mj-collapsible-panel\n SectionKey=\"mJFileEntityRecordLinks\"\n SectionName=\"File Entity Record Links\"\n Icon=\"fa fa-link\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-relationship-view \n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: File Entity Record Links','FileID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: File Entity Record Links','FileID')\">\n </mj-relationship-view>\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n </mj-record-form-container>\n </div>\n}\n"]}
1
+ {"version":3,"file":"file-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Files/file-form.component.ts","../../../../src/lib/custom/Files/file-form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, OnChanges, SimpleChanges, inject, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { MJFileEntity, UserInfoEngine } from '@memberjunction/core-entities';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { GraphQLDataProvider, gql } from '@memberjunction/graphql-dataprovider';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJFileFormComponent } from '../../generated/Entities/MJFile/mjfile.form.component';\nimport { z } from 'zod';\n\nconst CreateMediaAccessTokenMutation = gql`\n mutation CreateMediaAccessToken($fileId: String!) {\n CreateMediaAccessToken(fileId: $fileId) {\n Success\n Token\n Url\n MimeType\n ErrorMessage\n }\n }\n`;\n\nconst CreateMediaAccessTokenMutationSchema = z.object({\n CreateMediaAccessToken: z.object({\n Success: z.boolean(),\n Token: z.string().optional().nullable(),\n Url: z.string().optional().nullable(),\n MimeType: z.string().optional().nullable(),\n ErrorMessage: z.string().optional().nullable(),\n }),\n});\n\nconst DownloadUrlMutation = gql`\n mutation DownloadUrl($fileId: String!) {\n DownloadUrl(fileId: $fileId) {\n Success\n ErrorMessage\n Url\n }\n }\n`;\n\nconst DownloadUrlMutationSchema = z.object({\n DownloadUrl: z.object({\n Success: z.boolean(),\n ErrorMessage: z.string().optional().nullable(),\n Url: z.string().optional().nullable(),\n }),\n});\n\n@RegisterClass(BaseFormComponent, 'MJ: Files', 100)\n@Component({\n standalone: false,\n selector: 'mj-file-form-extended',\n templateUrl: './file-form.component.html',\n styleUrls: ['../../../shared/form-styles.css', './file-form.component.css'],\n})\nexport class MJFileFormComponentExtended extends MJFileFormComponent implements OnInit, OnDestroy, OnChanges {\n public override record!: MJFileEntity;\n\n public static readonly PREF_SHOW_DETAILS = 'mj.fileViewer.showDetailsSidebar';\n\n public IsLoadingMedia: boolean = true;\n public IsMediaLoaded: boolean = false;\n public MediaUrl: string | null = null;\n public SafeMediaUrl: SafeResourceUrl | null = null;\n public TextContent: string | null = null;\n public ShowDetailsSidebar: boolean = true;\n public ViewStandardForm: boolean = false;\n\n private sanitizer = inject(DomSanitizer);\n private notifications = inject(MJNotificationService);\n private mediaTimer?: ReturnType<typeof setTimeout>;\n\n public override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n this.restoreUserPreferences();\n if (this.record?.ID) {\n void this.LoadMediaPreview();\n }\n }\n\n public async ngOnChanges(changes: SimpleChanges): Promise<void> {\n if (changes['record'] && this.record?.ID) {\n void this.LoadMediaPreview();\n }\n }\n\n public override ngOnDestroy(): void {\n if (this.mediaTimer) {\n clearTimeout(this.mediaTimer);\n }\n super.ngOnDestroy();\n }\n\n private restoreUserPreferences(): void {\n const saved = UserInfoEngine.Instance.GetSetting(MJFileFormComponentExtended.PREF_SHOW_DETAILS);\n if (saved !== undefined && saved !== null) {\n try {\n this.ShowDetailsSidebar = JSON.parse(saved) === true;\n } catch {\n this.ShowDetailsSidebar = saved === 'true';\n }\n }\n }\n\n /**\n * Loads the media streaming URL for inline viewing.\n */\n public async LoadMediaPreview(): Promise<void> {\n if (!this.record?.ID) return;\n\n this.IsLoadingMedia = true;\n this.IsMediaLoaded = false;\n this.MediaUrl = null;\n this.SafeMediaUrl = null;\n this.TextContent = null;\n this.cdr.markForCheck();\n\n try {\n // 1. Try CreateMediaAccessToken (supports Range headers and browser tab titles)\n const mediaResult = await GraphQLDataProvider.ExecuteGQL(\n CreateMediaAccessTokenMutation,\n { fileId: this.record.ID }\n );\n const parsedMedia = CreateMediaAccessTokenMutationSchema.safeParse(mediaResult);\n if (parsedMedia.success && parsedMedia.data.CreateMediaAccessToken.Success && parsedMedia.data.CreateMediaAccessToken.Url) {\n this.MediaUrl = parsedMedia.data.CreateMediaAccessToken.Url;\n this.SafeMediaUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.MediaUrl);\n } else {\n // 2. Fallback to DownloadUrl\n const downloadResult = await GraphQLDataProvider.ExecuteGQL(\n DownloadUrlMutation,\n { fileId: this.record.ID }\n );\n const parsedDownload = DownloadUrlMutationSchema.safeParse(downloadResult);\n if (parsedDownload.success && parsedDownload.data.DownloadUrl.Success && parsedDownload.data.DownloadUrl.Url) {\n this.MediaUrl = parsedDownload.data.DownloadUrl.Url;\n this.SafeMediaUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.MediaUrl);\n }\n }\n\n if (this.MediaUrl) {\n const mediaType = this.MediaType;\n if (mediaType === 'text') {\n try {\n const resp = await window.fetch(this.MediaUrl);\n if (resp.ok) {\n this.TextContent = await resp.text();\n }\n } catch {\n // fallback\n }\n this.IsMediaLoaded = true;\n }\n } else {\n this.IsMediaLoaded = true;\n }\n } catch (err) {\n console.error('[MJFileFormComponentExtended] Error loading media preview:', err);\n this.IsMediaLoaded = true;\n } finally {\n this.IsLoadingMedia = false;\n this.cdr.markForCheck();\n }\n }\n\n public OnMediaElementLoaded(): void {\n if (this.mediaTimer) clearTimeout(this.mediaTimer);\n this.mediaTimer = setTimeout(() => {\n this.IsMediaLoaded = true;\n this.cdr.markForCheck();\n }, 350);\n }\n\n /**\n * Determines media type category based on MIME type or file extension.\n */\n public get MediaType(): 'image' | 'pdf' | 'video' | 'audio' | 'text' | 'other' {\n const mime = (this.record?.ContentType || '').toLowerCase();\n const name = (this.record?.Name || '').toLowerCase();\n\n if (mime.startsWith('image/') || /\\.(png|jpe?g|gif|webp|svg|ico|bmp|avif)$/.test(name)) return 'image';\n if (mime === 'application/pdf' || name.endsWith('.pdf')) return 'pdf';\n if (mime.startsWith('video/') || /\\.(mp4|webm|ogg|mov|mkv|avi)$/.test(name)) return 'video';\n if (mime.startsWith('audio/') || /\\.(mp3|wav|ogg|aac|m4a|flac)$/.test(name)) return 'audio';\n if (\n mime.startsWith('text/') ||\n mime.includes('json') ||\n mime.includes('xml') ||\n mime.includes('javascript') ||\n /\\.(txt|md|csv|json|xml|yaml|yml|js|ts|html|css|sql|sh|log)$/.test(name)\n ) {\n return 'text';\n }\n return 'other';\n }\n\n public get FileIconClass(): string {\n switch (this.MediaType) {\n case 'image': return 'fa-solid fa-file-image mj-file-color-image';\n case 'pdf': return 'fa-solid fa-file-pdf mj-file-color-pdf';\n case 'video': return 'fa-solid fa-file-video mj-file-color-video';\n case 'audio': return 'fa-solid fa-file-audio mj-file-color-audio';\n case 'text': return 'fa-solid fa-file-lines mj-file-color-text';\n default: return 'fa-solid fa-file mj-file-color-generic';\n }\n }\n\n public FormatFileSize(bytes: number | null | undefined): string {\n if (bytes == null || isNaN(bytes) || bytes <= 0) return '0 B';\n const units = ['B', 'KB', 'MB', 'GB', 'TB'];\n const idx = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);\n const val = bytes / Math.pow(1024, idx);\n return `${val.toFixed(idx === 0 ? 0 : 1)} ${units[idx]}`;\n }\n\n public OpenInExternalTab(): void {\n if (this.MediaUrl) {\n window.open(this.MediaUrl, '_blank', 'noopener,noreferrer');\n } else {\n this.notifications.CreateSimpleNotification('File URL not ready', 'warning');\n }\n }\n\n public ToggleDetailsSidebar(): void {\n this.ShowDetailsSidebar = !this.ShowDetailsSidebar;\n UserInfoEngine.Instance.SetSettingDebounced(\n MJFileFormComponentExtended.PREF_SHOW_DETAILS,\n JSON.stringify(this.ShowDetailsSidebar)\n );\n }\n\n public ToggleViewMode(): void {\n this.ViewStandardForm = !this.ViewStandardForm;\n }\n}\n","@if (!ViewStandardForm) {\n <div class=\"mj-file-viewer-container\">\n <!-- Top Action & Info Header -->\n <header class=\"mj-file-viewer-header\">\n <div class=\"mj-file-viewer-header-left\">\n <div class=\"mj-file-viewer-icon-box\">\n <i [class]=\"FileIconClass\"></i>\n </div>\n <div class=\"mj-file-viewer-title-group\">\n <h1 class=\"mj-file-viewer-title\" [title]=\"record.Name\">{{ record.Name }}</h1>\n <div class=\"mj-file-viewer-badges\">\n <span class=\"mj-file-badge mj-file-badge--type\">{{ record.ContentType || 'Document' }}</span>\n <span class=\"mj-file-badge mj-file-badge--size\">{{ FormatFileSize(record.ContentLength) }}</span>\n @if (record.Status) {\n <span class=\"mj-file-badge mj-file-badge--status\">{{ record.Status }}</span>\n }\n </div>\n </div>\n </div>\n\n <div class=\"mj-file-viewer-header-right\">\n @if (MediaUrl) {\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"OpenInExternalTab()\" title=\"Open file in new browser tab\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n <span>Open in New Tab</span>\n </button>\n }\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"ToggleDetailsSidebar()\" [title]=\"ShowDetailsSidebar ? 'Hide Details' : 'Show Details'\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <span>{{ ShowDetailsSidebar ? 'Hide Details' : 'Details' }}</span>\n </button>\n @if (UserCanEdit) {\n <button type=\"button\" mjButton variant=\"tertiary\" size=\"sm\" (click)=\"ToggleViewMode()\" title=\"Switch to full record editor\">\n <i class=\"fa-solid fa-pen-to-square\"></i>\n <span>Edit Record</span>\n </button>\n }\n </div>\n </header>\n\n <!-- Body / Split Content Area -->\n <div class=\"mj-file-viewer-body\">\n <!-- Media Stage -->\n <main class=\"mj-file-viewer-stage\">\n @if (IsLoadingMedia || !IsMediaLoaded) {\n <div class=\"mj-file-viewer-loading-overlay\">\n <mj-loading [text]=\"'Loading ' + (record.Name || 'file') + '...'\"></mj-loading>\n </div>\n }\n\n @switch (MediaType) {\n @case ('image') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-image-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <img [src]=\"MediaUrl\" [alt]=\"record.Name\" (load)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\" />\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-image mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Image preview could not be loaded.</p>\n </div>\n }\n }\n @case ('pdf') {\n @if (SafeMediaUrl) {\n <div class=\"mj-file-media-frame-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <iframe [src]=\"SafeMediaUrl\" title=\"Document Preview\" (load)=\"OnMediaElementLoaded()\"></iframe>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-pdf mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>PDF preview could not be loaded.</p>\n </div>\n }\n }\n @case ('video') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-video-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <video controls autoplay [src]=\"MediaUrl\" (loadeddata)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\"></video>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-video mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Video preview could not be loaded.</p>\n </div>\n }\n }\n @case ('audio') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-audio-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <div class=\"mj-file-audio-visual-icon\"><i class=\"fa-solid fa-headphones\"></i></div>\n <audio controls [src]=\"MediaUrl\" (loadeddata)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\"></audio>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-audio mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Audio preview could not be loaded.</p>\n </div>\n }\n }\n @case ('text') {\n <div class=\"mj-file-media-text-box\">\n <pre><code>{{ TextContent || 'Loading text content...' }}</code></pre>\n </div>\n }\n @default {\n <div class=\"mj-file-viewer-fallback\">\n <i [class]=\"FileIconClass\" class=\"mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p class=\"mj-file-fallback-meta\">{{ record.ContentType || 'Document' }} &bull; {{ FormatFileSize(record.ContentLength) }}</p>\n <p class=\"mj-file-fallback-desc\">{{ record.Description || 'Preview is not available for this file type.' }}</p>\n @if (MediaUrl) {\n <button type=\"button\" mjButton variant=\"primary\" (click)=\"OpenInExternalTab()\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n <span>Open in Browser</span>\n </button>\n }\n </div>\n }\n }\n </main>\n\n <!-- Details & Linked Records Sidebar -->\n @if (ShowDetailsSidebar) {\n <aside class=\"mj-file-viewer-sidebar\">\n <div class=\"mj-file-sidebar-header\">\n <h3>File Details & Links</h3>\n <button type=\"button\" class=\"mj-file-sidebar-close\" (click)=\"ToggleDetailsSidebar()\" title=\"Collapse Sidebar\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <div class=\"mj-file-sidebar-content\">\n <!-- Metadata Cards -->\n <div class=\"mj-file-sidebar-card\">\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">File Name:</span>\n <span class=\"mj-file-meta-val font-semibold\">{{ record.Name }}</span>\n </div>\n @if (record.Description) {\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Description:</span>\n <span class=\"mj-file-meta-val\">{{ record.Description }}</span>\n </div>\n }\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">MIME Type:</span>\n <span class=\"mj-file-meta-val font-mono\">{{ record.ContentType || 'Unknown' }}</span>\n </div>\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Size:</span>\n <span class=\"mj-file-meta-val\">{{ FormatFileSize(record.ContentLength) }}</span>\n </div>\n @if (record.Status) {\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Status:</span>\n <span class=\"mj-file-meta-val\">{{ record.Status }}</span>\n </div>\n }\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Created:</span>\n <span class=\"mj-file-meta-val\">{{ record.CreatedAt | date:'short' }}</span>\n </div>\n </div>\n\n <!-- Linked Records -->\n <div class=\"mj-file-sidebar-section\">\n <h4 class=\"mj-file-sidebar-section-title\">\n <i class=\"fa-solid fa-link\"></i>\n <span>Linked Records</span>\n </h4>\n <div class=\"mj-file-relationship-wrapper\">\n <mj-relationship-view \n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: File Entity Record Links', 'FileID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: File Entity Record Links', 'FileID')\">\n </mj-relationship-view>\n </div>\n </div>\n </div>\n </aside>\n }\n </div>\n </div>\n} @else {\n <div class=\"mj-file-standard-form-wrapper\">\n <div class=\"mj-file-mode-switch-bar\">\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"ToggleViewMode()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n <span>Return to File Preview</span>\n </button>\n </div>\n\n <mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- File Basics Section -->\n <mj-collapsible-panel\n SectionKey=\"fileBasics\"\n SectionName=\"File Basics\"\n Icon=\"fa fa-file\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Name\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Description\"\n Type=\"textarea\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Classification & Status Section -->\n <mj-collapsible-panel\n SectionKey=\"classificationStatus\"\n SectionName=\"Classification & Status\"\n Icon=\"fa fa-tags\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"CategoryID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Status\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Storage Details Section -->\n <mj-collapsible-panel\n SectionKey=\"storageDetails\"\n SectionName=\"Storage Details\"\n Icon=\"fa fa-database\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ProviderID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ProviderKey\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ContentType\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ContentLength\"\n Type=\"numeric\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Linked Records Section -->\n <mj-collapsible-panel\n SectionKey=\"mJFileEntityRecordLinks\"\n SectionName=\"File Entity Record Links\"\n Icon=\"fa fa-link\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-relationship-view \n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: File Entity Record Links','FileID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: File Entity Record Links','FileID')\">\n </mj-relationship-view>\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n </mj-record-form-container>\n </div>\n}\n"]}