@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-clone-config-editor.component.js","sourceRoot":"","sources":["../../../../src/lib/panels/record-clone/entity-clone-config-editor.component.ts","../../../../src/lib/panels/record-clone/entity-clone-config-editor.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { CompositeKey, type EntityInfo, type IEntityCloneConfiguration, type ICloneRelationshipPolicy } from '@memberjunction/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport type { RecordClonePlanDetails } from '@memberjunction/core-entities';\nimport { RecordCloneService, CompositeKeyToRecordCloneKey } from '@memberjunction/ng-record-clone';\nimport {\n CloneConfigMetaFromEntity,\n CloneConfigValidator,\n DEFAULT_CLONE_AI_ACTIONS,\n DEFAULT_CLONE_ENTITY_ACTIONS,\n type CloneConfigValidationError,\n} from '@memberjunction/record-cloning-base';\n\n/** String-list rules under `Clone.Fields` the editor offers as field chips. */\nexport type CloneFieldListKey = 'PromptFor' | 'Exclude' | 'Ownership' | 'ServerAllocated';\n\n/** One row of the relationships grid. */\nexport interface CloneRelationshipRow {\n RelatedEntity: string;\n JoinField: string;\n /**\n * Key of this row in `Clone.Relationships`: `\"<RelatedEntity>\"`, or `\"<RelatedEntity>.<JoinField>\"`\n * when the entity has several relationships to the same target (or the config already uses it).\n */\n ConfigKey: string;\n Policy: ICloneRelationshipPolicy['Policy'] | '';\n Locked: boolean;\n MaxRecords: number | null;\n}\n\ntype Option<T> = { text: string; value: T };\n\n/**\n * Editor for an entity's record-cloning configuration (`Configuration.Clone` on its MJ: Entities\n * record), shown in the Entities form's Settings section (plan §12.6).\n *\n * The common settings have controls; everything else (Reset values, Rules, JsonRemap, Presets,\n * Descendants, CreationPath) is editable in the Advanced JSON box, which always shows the whole\n * bag. Validate runs the client-safe `CloneConfigValidator`; Preview plan asks the server for a\n * dry-run plan of one record using the saved configuration; Copy metadata JSON produces the\n * `metadata/entities/.clone-configurations.json` entry for shipping the setting.\n */\n@Component({\n standalone: false,\n selector: 'mj-entity-clone-config-editor',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './entity-clone-config-editor.component.html',\n styleUrls: ['./entity-clone-config-editor.component.css'],\n})\nexport class EntityCloneConfigEditorComponent extends BaseAngularComponent {\n private cdr = inject(ChangeDetectorRef);\n private cloneService = inject(RecordCloneService);\n\n /** The entity whose configuration is edited; supplies fields and relationships. */\n @Input() Entity: EntityInfo | null = null;\n /** The current `Configuration.Clone` bag, or null when the entity has none. */\n @Input() CloneConfig: IEntityCloneConfiguration | null = null;\n /** Controls are read-only unless the form is in edit mode. */\n @Input() EditMode = false;\n /** Fires with the new bag (null to remove it) on every change. */\n @Output() CloneConfigChange = new EventEmitter<IEntityCloneConfiguration | null>();\n\n public readonly ScopeOptions = {\n Subtypes: [\n { text: 'Include (default)', value: 'include' },\n { text: 'Exclude', value: 'exclude' },\n ] as Option<string>[],\n Hierarchy: [\n { text: 'Whole subtree (default)', value: 'subtree' },\n { text: 'This node only', value: 'node' },\n ] as Option<string>[],\n SoftLinks: [\n { text: 'Skip (default)', value: 'skip' },\n { text: 'Include', value: 'include' },\n ] as Option<string>[],\n // Entity Actions run on cloned rows by default, as for any create; AI Actions don't.\n EntityActions: [\n { text: 'Fire (default)', value: 'fire' },\n { text: 'Suppress', value: 'suppress' },\n ] as Option<string>[],\n AIActions: [\n { text: 'Suppress (default)', value: 'suppress' },\n { text: 'Fire', value: 'fire' },\n ] as Option<string>[],\n UserEditable: [\n { text: 'All (default): users may narrow scope; widening needs Override Scope', value: 'all' },\n { text: 'Scope: users may narrow scope', value: 'scope' },\n { text: 'Fields only: values, no scope changes', value: 'fields' },\n { text: 'None: confirm only', value: 'none' },\n ] as Option<string>[],\n NamingStrategy: [\n { text: 'Suffix (default)', value: 'suffix' },\n { text: 'Increment', value: 'increment' },\n { text: 'Prompt the user', value: 'prompt' },\n { text: 'None', value: 'none' },\n ] as Option<string>[],\n Policy: [\n { text: 'Default', value: '' },\n { text: 'Deep (copy)', value: 'Deep' },\n { text: 'Reference', value: 'Reference' },\n { text: 'Skip', value: 'Skip' },\n ] as Option<string>[],\n };\n\n public readonly FieldLists: Array<{ Key: CloneFieldListKey; Label: string; Hint: string }> = [\n { Key: 'PromptFor', Label: 'Ask the user for', Hint: 'Required on the clone, e.g. a unique Email.' },\n { Key: 'Exclude', Label: 'Never copy', Hint: 'Left at the column default on the clone.' },\n { Key: 'Ownership', Label: 'Set to the cloning user', Hint: 'Owner or creator columns.' },\n { Key: 'ServerAllocated', Label: 'Let the server assign', Hint: 'Numbers or slugs the save hook allocates.' },\n ];\n\n public ValidationResults: CloneConfigValidationError[] | null = null;\n public JsonError = '';\n public CopyMessage = '';\n public PreviewRecordId = '';\n public PreviewPlan: RecordClonePlanDetails | null = null;\n public PreviewError = '';\n public IsPreviewing = false;\n /** Show every one-to-many relationship, not only the configured ones. */\n public ShowAllRelationships = false;\n\n /** Bumped after each add so the \"Add field…\" dropdowns re-render showing their placeholder. */\n public AddVersion = 0;\n private previewRequest = 0;\n\n // ── Read helpers ─────────────────────────────────────────────────────\n\n public get Config(): IEntityCloneConfiguration {\n return this.CloneConfig ?? {};\n }\n\n /** Fields a list rule may name: everything but key and __mj system columns. */\n public get FieldNames(): string[] {\n return (this.Entity?.Fields ?? [])\n .filter((f) => !f.IsPrimaryKey && !f.Name.startsWith('__mj_'))\n .map((f) => f.Name);\n }\n\n public FieldList(key: CloneFieldListKey): string[] {\n return (this.Config.Fields?.[key] as string[] | undefined) ?? [];\n }\n\n public AvailableFields(key: CloneFieldListKey): string[] {\n const chosen = new Set(this.FieldList(key));\n return this.FieldNames.filter((f) => !chosen.has(f));\n }\n\n public get NamingFields(): string[] {\n return this.Config.Naming?.Fields ?? [];\n }\n\n public get AvailableNamingFields(): string[] {\n const chosen = new Set(this.NamingFields);\n return this.FieldNames.filter((f) => !chosen.has(f));\n }\n\n /** One row per one-to-many relationship, with its configured policy. */\n public get RelationshipRows(): CloneRelationshipRow[] {\n const rels = (this.Entity?.RelatedEntities ?? []).filter((r) => r.Type?.trim().toLowerCase() === 'one to many');\n const perTarget = new Map<string, number>();\n for (const r of rels) perTarget.set(r.RelatedEntity, (perTarget.get(r.RelatedEntity) ?? 0) + 1);\n const configured = this.Config.Relationships ?? {};\n return rels.map((r) => {\n const qualified = `${r.RelatedEntity}.${r.RelatedEntityJoinField}`;\n // Prefer an existing qualified key; use the plain key only when this target is unambiguous.\n const configKey = qualified in configured || (perTarget.get(r.RelatedEntity) ?? 0) > 1 ? qualified : r.RelatedEntity;\n const cfg = configured[configKey];\n return {\n RelatedEntity: r.RelatedEntity,\n JoinField: r.RelatedEntityJoinField,\n ConfigKey: configKey,\n Policy: cfg?.Policy ?? '',\n Locked: cfg?.Locked ?? false,\n MaxRecords: cfg?.MaxRecords ?? null,\n };\n });\n }\n\n /** The rows the grid shows: configured relationships, or all of them when expanded. */\n public get VisibleRelationshipRows(): CloneRelationshipRow[] {\n const rows = this.RelationshipRows;\n return this.ShowAllRelationships ? rows : rows.filter((r) => r.Policy || r.Locked || r.MaxRecords);\n }\n\n public get AdvancedJson(): string {\n return this.CloneConfig ? JSON.stringify(this.CloneConfig, null, 2) : '';\n }\n\n public get HasConfig(): boolean {\n return !!this.CloneConfig && Object.keys(this.CloneConfig).length > 0;\n }\n\n // ── Edits ────────────────────────────────────────────────────────────\n\n /** Sets top-level keys; an undefined, empty or default-equivalent value removes the key. */\n /** The value of the input, select or textarea that raised a DOM event. */\n public InputValue(event: Event): string {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null;\n return target?.value ?? '';\n }\n\n public Patch(changes: Partial<IEntityCloneConfiguration>): void {\n const next: Record<string, unknown> = { ...this.Config };\n for (const [k, v] of Object.entries(changes)) {\n if (v === undefined || v === '' || v === null) delete next[k];\n else next[k] = v;\n }\n this.emit(next as IEntityCloneConfiguration);\n }\n\n public OnNumberChange(key: 'MaxDepth' | 'MaxRecords', value: number | null): void {\n this.Patch({ [key]: value && value > 0 ? Math.floor(value) : undefined });\n }\n\n\n public OnHooksChange(key: 'EntityActions' | 'AIActions', value: 'suppress' | 'fire'): void {\n const hooks = { ...(this.Config.Hooks ?? {}), [key]: value };\n // Only the default leaves the key out; the other value must be written to take effect.\n if (value === (key === 'EntityActions' ? DEFAULT_CLONE_ENTITY_ACTIONS : DEFAULT_CLONE_AI_ACTIONS)) delete hooks[key];\n this.Patch({ Hooks: Object.keys(hooks).length > 0 ? hooks : undefined });\n }\n\n public OnNamingChange(changes: { Template?: string; Strategy?: string }): void {\n const naming: Record<string, unknown> = { ...(this.Config.Naming ?? {}), ...changes };\n for (const k of Object.keys(naming)) {\n if (naming[k] === '' || naming[k] === undefined) delete naming[k];\n }\n this.Patch({ Naming: Object.keys(naming).length > 0 ? (naming as IEntityCloneConfiguration['Naming']) : undefined });\n }\n\n public AddNamingField(field: string | null): void {\n if (!field) return;\n this.AddVersion++;\n const naming = { ...(this.Config.Naming ?? {}), Fields: [...this.NamingFields, field] };\n this.Patch({ Naming: naming });\n }\n\n public RemoveNamingField(field: string): void {\n const fields = this.NamingFields.filter((f) => f !== field);\n const naming: Record<string, unknown> = { ...(this.Config.Naming ?? {}), Fields: fields };\n if (fields.length === 0) delete naming['Fields'];\n this.Patch({ Naming: Object.keys(naming).length > 0 ? (naming as IEntityCloneConfiguration['Naming']) : undefined });\n }\n\n public AddField(key: CloneFieldListKey, field: string | null): void {\n if (!field) return;\n this.AddVersion++;\n this.setFieldList(key, [...this.FieldList(key), field]);\n }\n\n public RemoveField(key: CloneFieldListKey, field: string): void {\n this.setFieldList(key, this.FieldList(key).filter((f) => f !== field));\n }\n\n public OnRelationshipChange(row: CloneRelationshipRow, changes: Partial<Pick<CloneRelationshipRow, 'Policy' | 'Locked' | 'MaxRecords'>>): void {\n const merged = { ...row, ...changes };\n const relationships: Record<string, ICloneRelationshipPolicy> = { ...(this.Config.Relationships ?? {}) };\n const existing: ICloneRelationshipPolicy = { ...(relationships[row.ConfigKey] ?? {}) };\n if (merged.Policy) existing.Policy = merged.Policy; else delete existing.Policy;\n if (merged.Locked) existing.Locked = true; else delete existing.Locked;\n if (merged.MaxRecords && merged.MaxRecords > 0) existing.MaxRecords = Math.floor(merged.MaxRecords); else delete existing.MaxRecords;\n if (Object.keys(existing).length > 0) relationships[row.ConfigKey] = existing;\n else delete relationships[row.ConfigKey];\n this.Patch({ Relationships: Object.keys(relationships).length > 0 ? relationships : undefined });\n }\n\n /** Replaces the whole bag with the Advanced JSON, if it parses to an object. */\n public OnApplyJson(text: string): void {\n const trimmed = text.trim();\n if (!trimmed) {\n this.JsonError = '';\n this.emit(null);\n return;\n }\n try {\n const parsed: unknown = JSON.parse(trimmed);\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n this.JsonError = 'The clone configuration must be a JSON object.';\n } else {\n this.JsonError = '';\n this.emit(parsed as IEntityCloneConfiguration);\n }\n } catch (err) {\n this.JsonError = `Not valid JSON: ${err instanceof Error ? err.message : String(err)}`;\n }\n this.cdr.markForCheck();\n }\n\n // ── Actions ──────────────────────────────────────────────────────────\n\n /** Runs the client-side validator against this entity's fields and relationships. */\n public Validate(): void {\n if (!this.Entity) return;\n const all = (this.ProviderToUse?.Entities ?? []).map((e) => CloneConfigMetaFromEntity(e, e.CloneConfig));\n this.ValidationResults = CloneConfigValidator.Validate(CloneConfigMetaFromEntity(this.Entity, { ...this.Config, Enabled: true }), all);\n this.cdr.markForCheck();\n }\n\n /** Copies the `.clone-configurations.json` entry for this entity to the clipboard. */\n public async CopyMetadataJson(): Promise<void> {\n if (!this.Entity) return;\n const entry = {\n fields: { Name: this.Entity.Name, Configuration: { Clone: this.Config } },\n primaryKey: { ID: `@lookup:MJ: Entities.Name=${this.Entity.Name}` },\n };\n try {\n await navigator.clipboard.writeText(JSON.stringify(entry, null, 2));\n this.CopyMessage = 'Copied. Paste it into metadata/entities/.clone-configurations.json.';\n } catch {\n this.CopyMessage = 'Copy failed; select the Advanced JSON instead.';\n }\n this.cdr.markForCheck();\n }\n\n /** Asks the server for a dry-run plan of one record. Uses the saved configuration, not unsaved edits. */\n public async PreviewPlanFor(recordId: string): Promise<void> {\n const id = recordId.trim();\n if (!this.Entity || !id) return;\n // Only the latest request may update the preview, so a slow earlier answer can't overwrite it.\n const request = ++this.previewRequest;\n this.IsPreviewing = true;\n this.PreviewError = '';\n this.PreviewPlan = null;\n this.cdr.markForCheck();\n try {\n const out = await this.cloneService.PlanClone(\n {\n EntityName: this.Entity.Name,\n SourceRecordKey: CompositeKeyToRecordCloneKey(CompositeKey.FromURLSegment(this.Entity, id)),\n },\n this.ProviderToUse\n );\n if (request === this.previewRequest) this.PreviewPlan = out.Plan;\n } catch (err) {\n if (request === this.previewRequest) this.PreviewError = err instanceof Error ? err.message : String(err);\n } finally {\n if (request === this.previewRequest) this.IsPreviewing = false;\n this.cdr.markForCheck();\n }\n }\n\n // ── Internals ────────────────────────────────────────────────────────\n\n private setFieldList(key: CloneFieldListKey, values: string[]): void {\n const fields: Record<string, unknown> = { ...(this.Config.Fields ?? {}) };\n if (values.length > 0) fields[key] = values; else delete fields[key];\n this.Patch({ Fields: Object.keys(fields).length > 0 ? (fields as IEntityCloneConfiguration['Fields']) : undefined });\n }\n\n private emit(next: IEntityCloneConfiguration | null): void {\n const empty = !next || Object.keys(next).length === 0;\n this.ValidationResults = null;\n this.CloneConfigChange.emit(empty ? null : next);\n this.cdr.markForCheck();\n }\n}\n","<div class=\"mj-clone-config\">\n <p class=\"mj-clone-config-intro\">\n How records of this entity are copied. Most teams ship this as JSON in\n <code>metadata/entities/.clone-configurations.json</code>; changes here save with the entity.\n </p>\n\n <!-- Status -->\n <div class=\"mj-clone-config-group\">\n <div class=\"mj-clone-config-row\">\n <span class=\"mj-clone-config-label\">Allow cloning from this entity's records</span>\n <mj-switch [ngModel]=\"Config.Enabled === true\" [Disabled]=\"!EditMode\" (ngModelChange)=\"Patch({ Enabled: $event ? true : undefined })\"></mj-switch>\n </div>\n <div class=\"mj-clone-config-row\">\n <span class=\"mj-clone-config-label\">Never clone these rows (not even as children)</span>\n <mj-switch [ngModel]=\"Config.NotCloneable === true\" [Disabled]=\"!EditMode\" (ngModelChange)=\"Patch({ NotCloneable: $event ? true : undefined })\"></mj-switch>\n </div>\n @if (Config.NotCloneable || Config.Enabled === false) {\n <label class=\"mj-clone-config-field mj-clone-config-field--wide\">\n <span>Reason shown to users</span>\n <input class=\"mj-clone-config-input\" type=\"text\" [value]=\"Config.NotCloneableReason ?? ''\" [disabled]=\"!EditMode\"\n (change)=\"Patch({ NotCloneableReason: InputValue($event) })\" />\n </label>\n }\n </div>\n\n <!-- Scope defaults -->\n <h4 class=\"mj-clone-config-heading\">Scope</h4>\n <div class=\"mj-clone-config-grid\">\n <label class=\"mj-clone-config-field\">\n <span>Max depth</span>\n <mj-numeric-input [ngModel]=\"Config.MaxDepth ?? null\" [Min]=\"1\" [Max]=\"10\" [Disabled]=\"!EditMode\" (ngModelChange)=\"OnNumberChange('MaxDepth', $event)\"></mj-numeric-input>\n </label>\n <label class=\"mj-clone-config-field\">\n <span>Max records</span>\n <mj-numeric-input [ngModel]=\"Config.MaxRecords ?? null\" [Min]=\"1\" [Max]=\"100000\" [Disabled]=\"!EditMode\" (ngModelChange)=\"OnNumberChange('MaxRecords', $event)\"></mj-numeric-input>\n </label>\n <label class=\"mj-clone-config-field\">\n <span>IS-A subtypes</span>\n <mj-dropdown [Data]=\"ScopeOptions.Subtypes\" TextField=\"text\" ValueField=\"value\" [ValuePrimitive]=\"true\"\n [ngModel]=\"Config.Subtypes ?? 'include'\" [Disabled]=\"!EditMode\" (ngModelChange)=\"Patch({ Subtypes: $event === 'include' ? undefined : $event })\"></mj-dropdown>\n </label>\n <label class=\"mj-clone-config-field\">\n <span>Hierarchy</span>\n <mj-dropdown [Data]=\"ScopeOptions.Hierarchy\" TextField=\"text\" ValueField=\"value\" [ValuePrimitive]=\"true\"\n [ngModel]=\"Config.Hierarchy ?? 'subtree'\" [Disabled]=\"!EditMode\" (ngModelChange)=\"Patch({ Hierarchy: $event === 'subtree' ? undefined : $event })\"></mj-dropdown>\n </label>\n <label class=\"mj-clone-config-field\">\n <span>Soft links (tags, notes, attachments)</span>\n <mj-dropdown [Data]=\"ScopeOptions.SoftLinks\" TextField=\"text\" ValueField=\"value\" [ValuePrimitive]=\"true\"\n [ngModel]=\"Config.SoftLinks ?? 'skip'\" [Disabled]=\"!EditMode\" (ngModelChange)=\"Patch({ SoftLinks: $event === 'skip' ? undefined : $event })\"></mj-dropdown>\n </label>\n <label class=\"mj-clone-config-field\">\n <span>Entity Actions</span>\n <mj-dropdown [Data]=\"ScopeOptions.EntityActions\" TextField=\"text\" ValueField=\"value\" [ValuePrimitive]=\"true\"\n [ngModel]=\"Config.Hooks?.EntityActions ?? 'fire'\" [Disabled]=\"!EditMode\" (ngModelChange)=\"OnHooksChange('EntityActions', $event)\"></mj-dropdown>\n </label>\n <label class=\"mj-clone-config-field\">\n <span>AI Actions</span>\n <mj-dropdown [Data]=\"ScopeOptions.AIActions\" TextField=\"text\" ValueField=\"value\" [ValuePrimitive]=\"true\"\n [ngModel]=\"Config.Hooks?.AIActions ?? 'suppress'\" [Disabled]=\"!EditMode\" (ngModelChange)=\"OnHooksChange('AIActions', $event)\"></mj-dropdown>\n </label>\n <label class=\"mj-clone-config-field mj-clone-config-field--wide\">\n <span>What users may change</span>\n <mj-dropdown [Data]=\"ScopeOptions.UserEditable\" TextField=\"text\" ValueField=\"value\" [ValuePrimitive]=\"true\"\n [ngModel]=\"Config.UserEditable ?? 'all'\" [Disabled]=\"!EditMode\" (ngModelChange)=\"Patch({ UserEditable: $event === 'all' ? undefined : $event })\"></mj-dropdown>\n </label>\n </div>\n\n <!-- Naming -->\n <h4 class=\"mj-clone-config-heading\">Naming</h4>\n <div class=\"mj-clone-config-grid\">\n <label class=\"mj-clone-config-field\">\n <span>Name template</span>\n <input class=\"mj-clone-config-input\" type=\"text\" placeholder=\"Copy of {Name}\" [value]=\"Config.Naming?.Template ?? ''\" [disabled]=\"!EditMode\"\n (change)=\"OnNamingChange({ Template: InputValue($event) })\" />\n </label>\n <label class=\"mj-clone-config-field\">\n <span>Strategy</span>\n <mj-dropdown [Data]=\"ScopeOptions.NamingStrategy\" TextField=\"text\" ValueField=\"value\" [ValuePrimitive]=\"true\"\n [ngModel]=\"Config.Naming?.Strategy ?? 'suffix'\" [Disabled]=\"!EditMode\" (ngModelChange)=\"OnNamingChange({ Strategy: $event === 'suffix' ? '' : $event })\"></mj-dropdown>\n </label>\n <div class=\"mj-clone-config-field mj-clone-config-field--wide\">\n <span>Fields the template names</span>\n <div class=\"mj-clone-config-chips\">\n @for (f of NamingFields; track f) {\n <span class=\"mj-clone-config-chip\">{{ f }}\n @if (EditMode) {\n <button type=\"button\" class=\"mj-clone-config-chip-x\" [attr.aria-label]=\"'Remove ' + f\" (click)=\"RemoveNamingField(f)\"><i class=\"fa-solid fa-xmark\"></i></button>\n }\n </span>\n } @empty {\n <span class=\"mj-clone-config-muted\">The name field and unique text fields (default)</span>\n }\n @if (EditMode && AvailableNamingFields.length > 0) {\n @for (v of [AddVersion]; track v) {\n <mj-dropdown class=\"mj-clone-config-add\" [Data]=\"AvailableNamingFields\" Placeholder=\"Add field…\" [ngModel]=\"null\" (ngModelChange)=\"AddNamingField($event)\"></mj-dropdown>\n }\n }\n </div>\n </div>\n </div>\n\n <!-- Field rules -->\n <h4 class=\"mj-clone-config-heading\">Fields</h4>\n <div class=\"mj-clone-config-lists\">\n @for (list of FieldLists; track list.Key) {\n <div class=\"mj-clone-config-field mj-clone-config-field--wide\">\n <span>{{ list.Label }} <span class=\"mj-clone-config-muted\">{{ list.Hint }}</span></span>\n <div class=\"mj-clone-config-chips\">\n @for (f of FieldList(list.Key); track f) {\n <span class=\"mj-clone-config-chip\">{{ f }}\n @if (EditMode) {\n <button type=\"button\" class=\"mj-clone-config-chip-x\" [attr.aria-label]=\"'Remove ' + f\" (click)=\"RemoveField(list.Key, f)\"><i class=\"fa-solid fa-xmark\"></i></button>\n }\n </span>\n } @empty {\n <span class=\"mj-clone-config-muted\">None</span>\n }\n @if (EditMode && AvailableFields(list.Key).length > 0) {\n @for (v of [AddVersion]; track v) {\n <mj-dropdown class=\"mj-clone-config-add\" [Data]=\"AvailableFields(list.Key)\" Placeholder=\"Add field…\" [ngModel]=\"null\" (ngModelChange)=\"AddField(list.Key, $event)\"></mj-dropdown>\n }\n }\n </div>\n </div>\n }\n </div>\n\n <!-- Relationships -->\n @if (RelationshipRows.length > 0) {\n <div class=\"mj-clone-config-heading-row\">\n <h4 class=\"mj-clone-config-heading\">Related records</h4>\n <button type=\"button\" mjButton Variant=\"flat\" Size=\"sm\" (click)=\"ShowAllRelationships = !ShowAllRelationships\">\n {{ ShowAllRelationships ? 'Show configured only' : 'Show all ' + RelationshipRows.length }}\n </button>\n </div>\n @if (!ShowAllRelationships && VisibleRelationshipRows.length === 0) {\n <p class=\"mj-clone-config-muted\">No relationship has its own policy; each uses the default. Show all to set one.</p>\n }\n @if (VisibleRelationshipRows.length > 0) {\n <div class=\"mj-clone-config-table-wrap\">\n <table class=\"mj-clone-config-table\">\n <thead>\n <tr><th>Relationship</th><th>Policy</th><th>Locked</th><th>Max records</th></tr>\n </thead>\n <tbody>\n @for (row of VisibleRelationshipRows; track row.ConfigKey + row.JoinField) {\n <tr>\n <td>{{ row.RelatedEntity }} <span class=\"mj-clone-config-muted\">({{ row.JoinField }})</span></td>\n <td>\n <mj-dropdown [Data]=\"ScopeOptions.Policy\" TextField=\"text\" ValueField=\"value\" [ValuePrimitive]=\"true\"\n [ngModel]=\"row.Policy\" [Disabled]=\"!EditMode\" (ngModelChange)=\"OnRelationshipChange(row, { Policy: $event })\"></mj-dropdown>\n </td>\n <td>\n <mj-switch [ngModel]=\"row.Locked\" [Disabled]=\"!EditMode\" (ngModelChange)=\"OnRelationshipChange(row, { Locked: $event })\"></mj-switch>\n </td>\n <td>\n <mj-numeric-input [ngModel]=\"row.MaxRecords\" [Min]=\"1\" [Disabled]=\"!EditMode\" (ngModelChange)=\"OnRelationshipChange(row, { MaxRecords: $event })\"></mj-numeric-input>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n }\n\n <!-- Advanced JSON -->\n <details class=\"mj-clone-config-advanced\">\n <summary>Advanced (JSON): Reset values, Rules, JsonRemap, Presets, Descendants and the rest</summary>\n <textarea class=\"mj-clone-config-json\" rows=\"14\" spellcheck=\"false\" [value]=\"AdvancedJson\" [disabled]=\"!EditMode\"\n aria-label=\"Clone configuration JSON\" (change)=\"OnApplyJson(InputValue($event))\"></textarea>\n @if (JsonError) {\n <p class=\"mj-clone-config-error\">{{ JsonError }}</p>\n }\n </details>\n\n <!-- Actions -->\n <div class=\"mj-clone-config-actions\">\n <button type=\"button\" mjButton Variant=\"outline\" Size=\"sm\" [disabled]=\"!HasConfig\" (click)=\"Validate()\">\n <i class=\"fa-solid fa-list-check\"></i> Validate\n </button>\n <button type=\"button\" mjButton Variant=\"outline\" Size=\"sm\" [disabled]=\"!HasConfig\" (click)=\"CopyMetadataJson()\">\n <i class=\"fa-regular fa-copy\"></i> Copy metadata JSON\n </button>\n @if (CopyMessage) {\n <span class=\"mj-clone-config-muted\">{{ CopyMessage }}</span>\n }\n </div>\n\n @if (ValidationResults) {\n @if (ValidationResults.length === 0) {\n <p class=\"mj-clone-config-ok\"><i class=\"fa-solid fa-circle-check\"></i> No problems found.</p>\n } @else {\n <ul class=\"mj-clone-config-findings\">\n @for (r of ValidationResults; track $index) {\n <li [class.is-error]=\"r.Severity === 'Error'\">\n <strong>{{ r.Severity }}</strong> <code>{{ r.PropertyPath }}</code>: {{ r.Message }}\n </li>\n }\n </ul>\n }\n }\n\n <!-- Preview -->\n <h4 class=\"mj-clone-config-heading\">Preview a clone</h4>\n <p class=\"mj-clone-config-muted\">Plans a clone of one record with the <strong>saved</strong> configuration. Nothing is written.</p>\n <div class=\"mj-clone-config-preview-row\">\n <input class=\"mj-clone-config-input\" type=\"text\" placeholder=\"Record ID\" aria-label=\"Record ID to preview\"\n [value]=\"PreviewRecordId\" (input)=\"PreviewRecordId = InputValue($event)\" (keydown.enter)=\"!IsPreviewing && PreviewPlanFor(PreviewRecordId)\" />\n <button type=\"button\" mjButton Variant=\"outline\" Size=\"sm\" [disabled]=\"!PreviewRecordId.trim() || IsPreviewing\" (click)=\"PreviewPlanFor(PreviewRecordId)\">\n @if (IsPreviewing) { <i class=\"fa-solid fa-spinner fa-spin\"></i> } @else { <i class=\"fa-solid fa-diagram-project\"></i> } Preview plan\n </button>\n </div>\n @if (PreviewError) {\n <p class=\"mj-clone-config-error\">{{ PreviewError }}</p>\n }\n @if (PreviewPlan) {\n <mj-clone-plan-tree [Plan]=\"PreviewPlan\"></mj-clone-plan-tree>\n }\n</div>\n"]}
@@ -5,7 +5,7 @@ import { MJConfirmService } from '@memberjunction/ng-ui-components';
5
5
  import { LanguageDescription } from '@codemirror/language';
6
6
  import { CodeEditorComponent } from '@memberjunction/ng-code-editor';
7
7
  import { SystemPlaceholder, SystemPlaceholderCategory } from '@memberjunction/ai-core-plus';
8
- import { BaseAngularComponent } from '@memberjunction/ng-base-types';
8
+ import { BaseAngularComponent, PendingRecordItem } from '@memberjunction/ng-base-types';
9
9
  import * as i0 from "@angular/core";
10
10
  export interface TemplateEditorConfig {
11
11
  allowEdit?: boolean;
@@ -15,61 +15,177 @@ export interface TemplateEditorConfig {
15
15
  export declare class TemplateEditorComponent extends BaseAngularComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {
16
16
  private notificationService;
17
17
  private confirmService;
18
- template: MJTemplateEntity | null;
18
+ Template: MJTemplateEntity | null;
19
+ /** @deprecated Use {@link Template}. */
20
+ set template(value: MJTemplateEntity | null);
21
+ /** @deprecated Use {@link Template}. */
22
+ get template(): MJTemplateEntity | null;
19
23
  config: TemplateEditorConfig;
24
+ ContentChange: EventEmitter<MJTemplateContentEntity[]>;
25
+ /**
26
+ * @deprecated Use {@link ContentChange}.
27
+ *
28
+ * The same emitter under the old binding name, so a template still binding
29
+ * (contentChange) keeps working. Must stay AFTER ContentChange: class fields
30
+ * initialise in order, and the other way round this captures undefined.
31
+ */
20
32
  contentChange: EventEmitter<MJTemplateContentEntity[]>;
33
+ RunTemplate: EventEmitter<MJTemplateEntity>;
34
+ /**
35
+ * @deprecated Use {@link RunTemplate}.
36
+ *
37
+ * The same emitter under the old binding name, so a template still binding
38
+ * (runTemplate) keeps working. Must stay AFTER RunTemplate: class fields
39
+ * initialise in order, and the other way round this captures undefined.
40
+ */
21
41
  runTemplate: EventEmitter<MJTemplateEntity>;
22
- templateContents: MJTemplateContentEntity[];
23
- selectedContentIndex: number;
24
- isAddingNewContent: boolean;
25
- newTemplateContent: MJTemplateContentEntity | null;
26
- hasUnsavedChanges: boolean;
27
- contentTypeOptions: Array<{
42
+ TemplateContents: MJTemplateContentEntity[];
43
+ /** @deprecated Use {@link TemplateContents}. */
44
+ get templateContents(): MJTemplateContentEntity[];
45
+ /** @deprecated Use {@link TemplateContents}. */
46
+ set templateContents(value: MJTemplateContentEntity[]);
47
+ SelectedContentIndex: number;
48
+ /** @deprecated Use {@link SelectedContentIndex}. */
49
+ get selectedContentIndex(): number;
50
+ /** @deprecated Use {@link SelectedContentIndex}. */
51
+ set selectedContentIndex(value: number);
52
+ IsAddingNewContent: boolean;
53
+ /** @deprecated Use {@link IsAddingNewContent}. */
54
+ get isAddingNewContent(): boolean;
55
+ /** @deprecated Use {@link IsAddingNewContent}. */
56
+ set isAddingNewContent(value: boolean);
57
+ NewTemplateContent: MJTemplateContentEntity | null;
58
+ /** @deprecated Use {@link NewTemplateContent}. */
59
+ get newTemplateContent(): MJTemplateContentEntity | null;
60
+ /** @deprecated Use {@link NewTemplateContent}. */
61
+ set newTemplateContent(value: MJTemplateContentEntity | null);
62
+ HasUnsavedChanges: boolean;
63
+ /** @deprecated Use {@link HasUnsavedChanges}. */
64
+ get hasUnsavedChanges(): boolean;
65
+ /** @deprecated Use {@link HasUnsavedChanges}. */
66
+ set hasUnsavedChanges(value: boolean);
67
+ ContentTypeOptions: Array<{
68
+ text: string;
69
+ value: string;
70
+ }>;
71
+ /** @deprecated Use {@link ContentTypeOptions}. */
72
+ get contentTypeOptions(): Array<{
73
+ text: string;
74
+ value: string;
75
+ }>;
76
+ /** @deprecated Use {@link ContentTypeOptions}. */
77
+ set contentTypeOptions(value: Array<{
28
78
  text: string;
29
79
  value: string;
80
+ }>);
81
+ SupportedLanguages: LanguageDescription[];
82
+ /** @deprecated Use {@link SupportedLanguages}. */
83
+ get supportedLanguages(): LanguageDescription[];
84
+ /** @deprecated Use {@link SupportedLanguages}. */
85
+ set supportedLanguages(value: LanguageDescription[]);
86
+ IsRunningTemplate: boolean;
87
+ /** @deprecated Use {@link IsRunningTemplate}. */
88
+ get isRunningTemplate(): boolean;
89
+ /** @deprecated Use {@link IsRunningTemplate}. */
90
+ set isRunningTemplate(value: boolean);
91
+ ActiveHelpTab: 'syntax' | 'placeholders';
92
+ /** @deprecated Use {@link ActiveHelpTab}. */
93
+ get activeHelpTab(): 'syntax' | 'placeholders';
94
+ /** @deprecated Use {@link ActiveHelpTab}. */
95
+ set activeHelpTab(value: 'syntax' | 'placeholders');
96
+ ActivePlaceholderCategory: string;
97
+ /** @deprecated Use {@link ActivePlaceholderCategory}. */
98
+ get activePlaceholderCategory(): string;
99
+ /** @deprecated Use {@link ActivePlaceholderCategory}. */
100
+ set activePlaceholderCategory(value: string);
101
+ PlaceholderCategories: Array<{
102
+ category: SystemPlaceholderCategory;
103
+ placeholders: SystemPlaceholder[];
30
104
  }>;
31
- supportedLanguages: LanguageDescription[];
32
- isRunningTemplate: boolean;
33
- activeHelpTab: 'syntax' | 'placeholders';
34
- activePlaceholderCategory: string;
35
- placeholderCategories: Array<{
105
+ /** @deprecated Use {@link PlaceholderCategories}. */
106
+ get placeholderCategories(): Array<{
36
107
  category: SystemPlaceholderCategory;
37
108
  placeholders: SystemPlaceholder[];
38
109
  }>;
39
- codeEditor: CodeEditorComponent | null;
110
+ /** @deprecated Use {@link PlaceholderCategories}. */
111
+ set placeholderCategories(value: Array<{
112
+ category: SystemPlaceholderCategory;
113
+ placeholders: SystemPlaceholder[];
114
+ }>);
115
+ CodeEditor: CodeEditorComponent | null;
116
+ /** @deprecated Use {@link CodeEditor}. */
117
+ get codeEditor(): CodeEditorComponent | null;
118
+ /** @deprecated Use {@link CodeEditor}. */
119
+ set codeEditor(value: CodeEditorComponent | null);
40
120
  private isUpdatingEditorValue;
41
121
  private destroy$;
42
122
  private get _metadata();
43
123
  private activeTimeouts;
124
+ private elementRef;
44
125
  constructor(notificationService: MJNotificationService, confirmService: MJConfirmService);
45
126
  ngOnInit(): Promise<void>;
127
+ /**
128
+ * A host form that folds this editor's contents into its pending records (see GetPendingChanges)
129
+ * also reverts them when the user discards the edit: `BaseFormComponent.CancelEdit()` calls
130
+ * `Revert()` on every pending record and broadcasts REVERT_PENDING_CHANGES. The entities roll back
131
+ * on their own, but this editor's rows, CodeMirror's text and the dirty flag would not know, so
132
+ * the screen would keep showing discarded text and the next save would fail on it. Reload from
133
+ * the saved state when the event comes from a form this editor sits inside.
134
+ */
135
+ private listenForHostFormEvents;
46
136
  ngOnChanges(changes: SimpleChanges): Promise<void>;
47
137
  private organizePlaceholdersByCategory;
48
138
  /**
49
139
  * Copies a placeholder to the clipboard
50
140
  */
141
+ CopyPlaceholder(placeholderName: string): Promise<void>;
142
+ /** @deprecated Use {@link CopyPlaceholder}. */
51
143
  copyPlaceholder(placeholderName: string): Promise<void>;
52
144
  ngOnDestroy(): void;
53
145
  ngAfterViewInit(): void;
146
+ LoadTemplateContents(): Promise<void>;
147
+ /** @deprecated Use {@link LoadTemplateContents}. */
54
148
  loadTemplateContents(): Promise<void>;
55
149
  /**
56
150
  * Public method to refresh the template editor and discard unsaved changes
57
151
  * This should be called when canceling edits to restore the original state
58
152
  */
153
+ RefreshAndDiscardChanges(): Promise<void>;
154
+ /** @deprecated Use {@link RefreshAndDiscardChanges}. */
59
155
  refreshAndDiscardChanges(): Promise<void>;
156
+ CreateDefaultTemplateContent(): Promise<void>;
157
+ /** @deprecated Use {@link CreateDefaultTemplateContent}. */
60
158
  createDefaultTemplateContent(): Promise<void>;
159
+ SelectTemplateContent(index: number, confirmSwitch?: boolean): Promise<void>;
160
+ /** @deprecated Use {@link SelectTemplateContent}. */
61
161
  selectTemplateContent(index: number, confirmSwitch?: boolean): Promise<void>;
162
+ LoadContentTypes(): void;
163
+ /** @deprecated Use {@link LoadContentTypes}. */
62
164
  loadContentTypes(): void;
165
+ AddNewTemplateContent(): Promise<void>;
166
+ /** @deprecated Use {@link AddNewTemplateContent}. */
63
167
  addNewTemplateContent(): Promise<void>;
168
+ DeleteTemplateContent(index: number): Promise<void>;
169
+ /** @deprecated Use {@link DeleteTemplateContent}. */
64
170
  deleteTemplateContent(index: number): Promise<void>;
171
+ get CurrentTemplateContent(): MJTemplateContentEntity | null;
172
+ /** @deprecated Use {@link CurrentTemplateContent}. */
65
173
  get currentTemplateContent(): MJTemplateContentEntity | null;
174
+ get HasMultipleContents(): boolean;
175
+ /** @deprecated Use {@link HasMultipleContents}. */
66
176
  get hasMultipleContents(): boolean;
177
+ OnContentTypeChange(): void;
178
+ /** @deprecated Use {@link OnContentTypeChange}. */
67
179
  onContentTypeChange(): void;
180
+ OnContentChange(): void;
181
+ /** @deprecated Use {@link OnContentChange}. */
68
182
  onContentChange(): void;
69
183
  /**
70
184
  * Updates the hasUnsavedChanges flag based on entity dirty states
71
185
  */
72
186
  private updateUnsavedChangesFlag;
187
+ OnTemplateTextChange(event: any): void;
188
+ /** @deprecated Use {@link OnTemplateTextChange}. */
73
189
  onTemplateTextChange(event: any): void;
74
190
  /**
75
191
  * Helper method to track setTimeout calls for cleanup
@@ -79,18 +195,45 @@ export declare class TemplateEditorComponent extends BaseAngularComponent implem
79
195
  * Manually sync the editor value without triggering change events
80
196
  */
81
197
  private syncEditorValue;
198
+ SaveTemplateContents(): Promise<boolean>;
199
+ /**
200
+ * The content rows a HOST FORM should persist inside its own save: every content that is new or
201
+ * dirty, each stamped with the template's ID. Forms that embed this editor (Templates, AI Prompts)
202
+ * call this from their `PopulatePendingRecords()` override, so the template and its contents
203
+ * commit in one transaction and a content that fails validation blocks the save visibly instead
204
+ * of being dropped on the floor. A brand-new content nobody typed into is not a change and is
205
+ * skipped; a read-only editor contributes nothing.
206
+ */
207
+ GetPendingChanges(): PendingRecordItem[];
208
+ /**
209
+ * The host form has persisted the rows from {@link GetPendingChanges}: clear the local dirty state
210
+ * and publish the saved set to listeners.
211
+ */
212
+ MarkContentsSaved(): void;
213
+ /** @deprecated Use {@link SaveTemplateContents}. */
82
214
  saveTemplateContents(): Promise<boolean>;
215
+ GetContentTypeDisplayText(typeId: string): string;
216
+ /** @deprecated Use {@link GetContentTypeDisplayText}. */
83
217
  getContentTypeDisplayText(typeId: string): string;
218
+ GetEditorLanguage(): string;
219
+ /** @deprecated Use {@link GetEditorLanguage}. */
84
220
  getEditorLanguage(): string;
85
221
  /**
86
222
  * Test run the current template using the parameter dialog
87
223
  */
224
+ OnRunTemplate(): Promise<void>;
225
+ /** @deprecated Use {@link OnRunTemplate}. */
88
226
  onRunTemplate(): Promise<void>;
227
+ GetContentTypeOptionsForContent(): Array<{
228
+ text: string;
229
+ value: string;
230
+ }>;
231
+ /** @deprecated Use {@link GetContentTypeOptionsForContent}. */
89
232
  getContentTypeOptionsForContent(): Array<{
90
233
  text: string;
91
234
  value: string;
92
235
  }>;
93
236
  static ɵfac: i0.ɵɵFactoryDeclaration<TemplateEditorComponent, never>;
94
- static ɵcmp: i0.ɵɵComponentDeclaration<TemplateEditorComponent, "mj-template-editor", never, { "template": { "alias": "template"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "contentChange": "contentChange"; "runTemplate": "runTemplate"; }, never, never, false, never>;
237
+ static ɵcmp: i0.ɵɵComponentDeclaration<TemplateEditorComponent, "mj-template-editor", never, { "Template": { "alias": "Template"; "required": false; }; "template": { "alias": "template"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "ContentChange": "ContentChange"; "contentChange": "contentChange"; "RunTemplate": "RunTemplate"; "runTemplate": "runTemplate"; }, never, never, false, never>;
95
238
  }
96
239
  //# sourceMappingURL=template-editor.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-editor.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/components/template-editor.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-editor.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/components/template-editor.component.ts"],"names":[],"mappings":"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"}