@memberjunction/ng-dashboards 3.2.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +24 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +198 -111
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/models/model-management.component.d.ts +23 -0
  6. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  7. package/dist/AI/components/models/model-management.component.js +189 -83
  8. package/dist/AI/components/models/model-management.component.js.map +1 -1
  9. package/dist/AI/components/prompts/prompt-management.component.d.ts +23 -0
  10. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  11. package/dist/AI/components/prompts/prompt-management.component.js +135 -30
  12. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  13. package/dist/APIKeys/api-applications-panel.component.d.ts +169 -0
  14. package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -0
  15. package/dist/APIKeys/api-applications-panel.component.js +1058 -0
  16. package/dist/APIKeys/api-applications-panel.component.js.map +1 -0
  17. package/dist/APIKeys/api-key-create-dialog.component.d.ts +125 -0
  18. package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -0
  19. package/dist/APIKeys/api-key-create-dialog.component.js +768 -0
  20. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -0
  21. package/dist/APIKeys/api-key-edit-panel.component.d.ts +149 -0
  22. package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -0
  23. package/dist/APIKeys/api-key-edit-panel.component.js +1074 -0
  24. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -0
  25. package/dist/APIKeys/api-key-list.component.d.ts +131 -0
  26. package/dist/APIKeys/api-key-list.component.d.ts.map +1 -0
  27. package/dist/APIKeys/api-key-list.component.js +818 -0
  28. package/dist/APIKeys/api-key-list.component.js.map +1 -0
  29. package/dist/APIKeys/api-keys-resource.component.d.ts +211 -0
  30. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -0
  31. package/dist/APIKeys/api-keys-resource.component.js +1150 -0
  32. package/dist/APIKeys/api-keys-resource.component.js.map +1 -0
  33. package/dist/APIKeys/api-scopes-panel.component.d.ts +98 -0
  34. package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -0
  35. package/dist/APIKeys/api-scopes-panel.component.js +652 -0
  36. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -0
  37. package/dist/APIKeys/api-usage-panel.component.d.ts +174 -0
  38. package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -0
  39. package/dist/APIKeys/api-usage-panel.component.js +1013 -0
  40. package/dist/APIKeys/api-usage-panel.component.js.map +1 -0
  41. package/dist/APIKeys/index.d.ts +7 -0
  42. package/dist/APIKeys/index.d.ts.map +1 -0
  43. package/dist/APIKeys/index.js +8 -0
  44. package/dist/APIKeys/index.js.map +1 -0
  45. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts +22 -0
  46. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts.map +1 -0
  47. package/dist/Actions/components/explorer/action-breadcrumb.component.js +139 -0
  48. package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -0
  49. package/dist/Actions/components/explorer/action-card.component.d.ts +39 -0
  50. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -0
  51. package/dist/Actions/components/explorer/action-card.component.js +410 -0
  52. package/dist/Actions/components/explorer/action-card.component.js.map +1 -0
  53. package/dist/Actions/components/explorer/action-explorer.component.d.ts +62 -0
  54. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -0
  55. package/dist/Actions/components/explorer/action-explorer.component.js +527 -0
  56. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -0
  57. package/dist/Actions/components/explorer/action-list-item.component.d.ts +24 -0
  58. package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -0
  59. package/dist/Actions/components/explorer/action-list-item.component.js +210 -0
  60. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -0
  61. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +63 -0
  62. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +1 -0
  63. package/dist/Actions/components/explorer/action-toolbar.component.js +483 -0
  64. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -0
  65. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts +57 -0
  66. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -0
  67. package/dist/Actions/components/explorer/action-tree-panel.component.js +454 -0
  68. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -0
  69. package/dist/Actions/components/explorer/index.d.ts +10 -0
  70. package/dist/Actions/components/explorer/index.d.ts.map +1 -0
  71. package/dist/Actions/components/explorer/index.js +14 -0
  72. package/dist/Actions/components/explorer/index.js.map +1 -0
  73. package/dist/Actions/components/explorer/new-action-panel.component.d.ts +49 -0
  74. package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -0
  75. package/dist/Actions/components/explorer/new-action-panel.component.js +359 -0
  76. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -0
  77. package/dist/Actions/components/explorer/new-category-panel.component.d.ts +37 -0
  78. package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -0
  79. package/dist/Actions/components/explorer/new-category-panel.component.js +282 -0
  80. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -0
  81. package/dist/Actions/index.d.ts +3 -0
  82. package/dist/Actions/index.d.ts.map +1 -1
  83. package/dist/Actions/index.js +5 -0
  84. package/dist/Actions/index.js.map +1 -1
  85. package/dist/Actions/services/action-explorer-state.service.d.ts +104 -0
  86. package/dist/Actions/services/action-explorer-state.service.d.ts.map +1 -0
  87. package/dist/Actions/services/action-explorer-state.service.js +352 -0
  88. package/dist/Actions/services/action-explorer-state.service.js.map +1 -0
  89. package/dist/Communication/communication-dashboard.component.d.ts +2 -6
  90. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
  91. package/dist/Communication/communication-dashboard.component.js +142 -93
  92. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  93. package/dist/Communication/communication-logs-resource.component.d.ts +10 -4
  94. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  95. package/dist/Communication/communication-logs-resource.component.js +253 -121
  96. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  97. package/dist/Communication/communication-monitor-resource.component.d.ts +38 -3
  98. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  99. package/dist/Communication/communication-monitor-resource.component.js +431 -157
  100. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  101. package/dist/Communication/communication-providers-resource.component.d.ts +16 -5
  102. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  103. package/dist/Communication/communication-providers-resource.component.js +229 -118
  104. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  105. package/dist/Communication/communication-runs-resource.component.d.ts +4 -2
  106. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  107. package/dist/Communication/communication-runs-resource.component.js +155 -149
  108. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  109. package/dist/Communication/communication-templates-resource.component.d.ts +43 -0
  110. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -0
  111. package/dist/Communication/communication-templates-resource.component.js +371 -0
  112. package/dist/Communication/communication-templates-resource.component.js.map +1 -0
  113. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +69 -267
  114. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  115. package/dist/ComponentStudio/component-studio-dashboard.component.js +698 -1802
  116. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  117. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +68 -0
  118. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -0
  119. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +401 -0
  120. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -0
  121. package/dist/ComponentStudio/components/browser/component-browser.component.d.ts +44 -0
  122. package/dist/ComponentStudio/components/browser/component-browser.component.d.ts.map +1 -0
  123. package/dist/ComponentStudio/components/browser/component-browser.component.js +636 -0
  124. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -0
  125. package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts +35 -0
  126. package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts.map +1 -0
  127. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +380 -0
  128. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -0
  129. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts +24 -0
  130. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -0
  131. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +221 -0
  132. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -0
  133. package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts +28 -0
  134. package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts.map +1 -0
  135. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +263 -0
  136. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -0
  137. package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts +34 -0
  138. package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts.map +1 -0
  139. package/dist/ComponentStudio/components/editors/spec-editor.component.js +307 -0
  140. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -0
  141. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts +29 -0
  142. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts.map +1 -0
  143. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +159 -0
  144. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -0
  145. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts +20 -0
  146. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -0
  147. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +192 -0
  148. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -0
  149. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts +57 -0
  150. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -0
  151. package/dist/ComponentStudio/components/workspace/component-preview.component.js +342 -0
  152. package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -0
  153. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts +15 -0
  154. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -0
  155. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +144 -0
  156. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -0
  157. package/dist/ComponentStudio/services/component-studio-state.service.d.ts +203 -0
  158. package/dist/ComponentStudio/services/component-studio-state.service.d.ts.map +1 -0
  159. package/dist/ComponentStudio/services/component-studio-state.service.js +651 -0
  160. package/dist/ComponentStudio/services/component-studio-state.service.js.map +1 -0
  161. package/dist/ComponentStudio/services/component-version.service.d.ts +120 -0
  162. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -0
  163. package/dist/ComponentStudio/services/component-version.service.js +394 -0
  164. package/dist/ComponentStudio/services/component-version.service.js.map +1 -0
  165. package/dist/Credentials/components/credentials-categories-resource.component.d.ts +1 -1
  166. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  167. package/dist/Credentials/components/credentials-categories-resource.component.js +1 -1
  168. package/dist/Credentials/components/credentials-list-resource.component.d.ts +1 -1
  169. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  170. package/dist/Credentials/components/credentials-list-resource.component.js +1 -1
  171. package/dist/Credentials/components/credentials-types-resource.component.d.ts +1 -1
  172. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  173. package/dist/Credentials/components/credentials-types-resource.component.js +1 -1
  174. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  175. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +4 -2
  176. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  177. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +2 -2
  178. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +3 -3
  179. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  180. package/dist/DataExplorer/data-explorer-dashboard.component.js +22 -6
  181. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  182. package/dist/EntityAdmin/entity-admin-dashboard.component.js +2 -2
  183. package/dist/MCP/components/mcp-connection-dialog.component.d.ts +72 -0
  184. package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -0
  185. package/dist/MCP/components/mcp-connection-dialog.component.js +529 -0
  186. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -0
  187. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts +77 -0
  188. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts.map +1 -0
  189. package/dist/MCP/components/mcp-log-detail-panel.component.js +535 -0
  190. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -0
  191. package/dist/MCP/components/mcp-server-dialog.component.d.ts +77 -0
  192. package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -0
  193. package/dist/MCP/components/mcp-server-dialog.component.js +437 -0
  194. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -0
  195. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts +271 -0
  196. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts.map +1 -0
  197. package/dist/MCP/components/mcp-test-tool-dialog.component.js +1300 -0
  198. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -0
  199. package/dist/MCP/index.d.ts +11 -0
  200. package/dist/MCP/index.d.ts.map +1 -0
  201. package/dist/MCP/index.js +15 -0
  202. package/dist/MCP/index.js.map +1 -0
  203. package/dist/MCP/mcp-dashboard.component.d.ts +409 -0
  204. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -0
  205. package/dist/MCP/mcp-dashboard.component.js +2486 -0
  206. package/dist/MCP/mcp-dashboard.component.js.map +1 -0
  207. package/dist/MCP/mcp-resource.component.d.ts +20 -0
  208. package/dist/MCP/mcp-resource.component.d.ts.map +1 -0
  209. package/dist/MCP/mcp-resource.component.js +55 -0
  210. package/dist/MCP/mcp-resource.component.js.map +1 -0
  211. package/dist/MCP/mcp.module.d.ts +27 -0
  212. package/dist/MCP/mcp.module.d.ts.map +1 -0
  213. package/dist/MCP/mcp.module.js +122 -0
  214. package/dist/MCP/mcp.module.js.map +1 -0
  215. package/dist/MCP/services/mcp-tools.service.d.ts +109 -0
  216. package/dist/MCP/services/mcp-tools.service.d.ts.map +1 -0
  217. package/dist/MCP/services/mcp-tools.service.js +222 -0
  218. package/dist/MCP/services/mcp-tools.service.js.map +1 -0
  219. package/dist/Scheduling/components/index.d.ts +5 -8
  220. package/dist/Scheduling/components/index.d.ts.map +1 -1
  221. package/dist/Scheduling/components/index.js +6 -9
  222. package/dist/Scheduling/components/index.js.map +1 -1
  223. package/dist/Scheduling/components/job-slideout.component.d.ts +45 -0
  224. package/dist/Scheduling/components/job-slideout.component.d.ts.map +1 -0
  225. package/dist/Scheduling/components/job-slideout.component.js +458 -0
  226. package/dist/Scheduling/components/job-slideout.component.js.map +1 -0
  227. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +19 -0
  228. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -0
  229. package/dist/Scheduling/components/scheduling-activity-resource.component.js +51 -0
  230. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -0
  231. package/dist/Scheduling/components/scheduling-activity.component.d.ts +71 -0
  232. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -0
  233. package/dist/Scheduling/components/scheduling-activity.component.js +714 -0
  234. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -0
  235. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +3 -4
  236. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  237. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +3 -7
  238. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  239. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +52 -34
  240. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  241. package/dist/Scheduling/components/scheduling-jobs.component.js +446 -261
  242. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  243. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +19 -0
  244. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -0
  245. package/dist/Scheduling/components/scheduling-overview-resource.component.js +51 -0
  246. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -0
  247. package/dist/Scheduling/components/scheduling-overview.component.d.ts +43 -0
  248. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -0
  249. package/dist/Scheduling/components/scheduling-overview.component.js +595 -0
  250. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -0
  251. package/dist/Scheduling/scheduling-dashboard.component.d.ts +22 -32
  252. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  253. package/dist/Scheduling/scheduling-dashboard.component.js +175 -169
  254. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  255. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +49 -6
  256. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
  257. package/dist/Scheduling/services/scheduling-instrumentation.service.js +218 -149
  258. package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
  259. package/dist/Testing/components/index.d.ts +7 -8
  260. package/dist/Testing/components/index.d.ts.map +1 -1
  261. package/dist/Testing/components/index.js +8 -9
  262. package/dist/Testing/components/index.js.map +1 -1
  263. package/dist/Testing/components/testing-analytics-resource.component.d.ts +0 -4
  264. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  265. package/dist/Testing/components/testing-analytics-resource.component.js +1 -7
  266. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  267. package/dist/Testing/components/testing-analytics.component.d.ts +52 -37
  268. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  269. package/dist/Testing/components/testing-analytics.component.js +1023 -569
  270. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  271. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +16 -0
  272. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -0
  273. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +47 -0
  274. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -0
  275. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +57 -0
  276. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -0
  277. package/dist/Testing/components/testing-dashboard-tab.component.js +649 -0
  278. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -0
  279. package/dist/{Scheduling/components/scheduling-types-resource.component.d.ts → Testing/components/testing-explorer-resource.component.d.ts} +5 -9
  280. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -0
  281. package/dist/Testing/components/testing-explorer-resource.component.js +47 -0
  282. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -0
  283. package/dist/Testing/components/testing-explorer.component.d.ts +193 -0
  284. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -0
  285. package/dist/Testing/components/testing-explorer.component.js +2212 -0
  286. package/dist/Testing/components/testing-explorer.component.js.map +1 -0
  287. package/dist/Testing/components/testing-review-resource.component.d.ts +16 -0
  288. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -0
  289. package/dist/Testing/components/testing-review-resource.component.js +47 -0
  290. package/dist/Testing/components/testing-review-resource.component.js.map +1 -0
  291. package/dist/Testing/components/testing-review.component.d.ts +60 -0
  292. package/dist/Testing/components/testing-review.component.d.ts.map +1 -0
  293. package/dist/Testing/components/testing-review.component.js +985 -0
  294. package/dist/Testing/components/testing-review.component.js.map +1 -0
  295. package/dist/Testing/components/testing-runs-resource.component.d.ts +16 -0
  296. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -0
  297. package/dist/Testing/components/testing-runs-resource.component.js +47 -0
  298. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -0
  299. package/dist/Testing/components/testing-runs.component.d.ts +82 -0
  300. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -0
  301. package/dist/Testing/components/testing-runs.component.js +1067 -0
  302. package/dist/Testing/components/testing-runs.component.js.map +1 -0
  303. package/dist/Testing/testing-dashboard.component.d.ts +12 -15
  304. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  305. package/dist/Testing/testing-dashboard.component.js +46 -68
  306. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  307. package/dist/module.d.ts +121 -97
  308. package/dist/module.d.ts.map +1 -1
  309. package/dist/module.js +227 -95
  310. package/dist/module.js.map +1 -1
  311. package/dist/public-api.d.ts +12 -3
  312. package/dist/public-api.d.ts.map +1 -1
  313. package/dist/public-api.js +47 -16
  314. package/dist/public-api.js.map +1 -1
  315. package/dist/shared/pipes/highlight-search.pipe.d.ts +17 -0
  316. package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -0
  317. package/dist/shared/pipes/highlight-search.pipe.js +40 -0
  318. package/dist/shared/pipes/highlight-search.pipe.js.map +1 -0
  319. package/dist/shared/pipes/index.d.ts +2 -0
  320. package/dist/shared/pipes/index.d.ts.map +1 -0
  321. package/dist/shared/pipes/index.js +2 -0
  322. package/dist/shared/pipes/index.js.map +1 -0
  323. package/dist/shared/shared-pipes.module.d.ts +11 -0
  324. package/dist/shared/shared-pipes.module.d.ts.map +1 -0
  325. package/dist/shared/shared-pipes.module.js +24 -0
  326. package/dist/shared/shared-pipes.module.js.map +1 -0
  327. package/package.json +39 -32
  328. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts +0 -44
  329. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts.map +0 -1
  330. package/dist/Credentials/components/credential-category-edit-panel.component.js +0 -456
  331. package/dist/Credentials/components/credential-category-edit-panel.component.js.map +0 -1
  332. package/dist/Credentials/components/credential-edit-panel.component.d.ts +0 -70
  333. package/dist/Credentials/components/credential-edit-panel.component.d.ts.map +0 -1
  334. package/dist/Credentials/components/credential-edit-panel.component.js +0 -694
  335. package/dist/Credentials/components/credential-edit-panel.component.js.map +0 -1
  336. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts +0 -56
  337. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts.map +0 -1
  338. package/dist/Credentials/components/credential-type-edit-panel.component.js +0 -563
  339. package/dist/Credentials/components/credential-type-edit-panel.component.js.map +0 -1
  340. package/dist/Scheduling/components/scheduling-health-resource.component.d.ts +0 -20
  341. package/dist/Scheduling/components/scheduling-health-resource.component.d.ts.map +0 -1
  342. package/dist/Scheduling/components/scheduling-health-resource.component.js +0 -55
  343. package/dist/Scheduling/components/scheduling-health-resource.component.js.map +0 -1
  344. package/dist/Scheduling/components/scheduling-health.component.d.ts +0 -30
  345. package/dist/Scheduling/components/scheduling-health.component.d.ts.map +0 -1
  346. package/dist/Scheduling/components/scheduling-health.component.js +0 -315
  347. package/dist/Scheduling/components/scheduling-health.component.js.map +0 -1
  348. package/dist/Scheduling/components/scheduling-history-resource.component.d.ts +0 -20
  349. package/dist/Scheduling/components/scheduling-history-resource.component.d.ts.map +0 -1
  350. package/dist/Scheduling/components/scheduling-history-resource.component.js +0 -55
  351. package/dist/Scheduling/components/scheduling-history-resource.component.js.map +0 -1
  352. package/dist/Scheduling/components/scheduling-history.component.d.ts +0 -48
  353. package/dist/Scheduling/components/scheduling-history.component.d.ts.map +0 -1
  354. package/dist/Scheduling/components/scheduling-history.component.js +0 -377
  355. package/dist/Scheduling/components/scheduling-history.component.js.map +0 -1
  356. package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts +0 -20
  357. package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts.map +0 -1
  358. package/dist/Scheduling/components/scheduling-monitor-resource.component.js +0 -55
  359. package/dist/Scheduling/components/scheduling-monitor-resource.component.js.map +0 -1
  360. package/dist/Scheduling/components/scheduling-monitoring.component.d.ts +0 -37
  361. package/dist/Scheduling/components/scheduling-monitoring.component.d.ts.map +0 -1
  362. package/dist/Scheduling/components/scheduling-monitoring.component.js +0 -488
  363. package/dist/Scheduling/components/scheduling-monitoring.component.js.map +0 -1
  364. package/dist/Scheduling/components/scheduling-types-resource.component.d.ts.map +0 -1
  365. package/dist/Scheduling/components/scheduling-types-resource.component.js +0 -55
  366. package/dist/Scheduling/components/scheduling-types-resource.component.js.map +0 -1
  367. package/dist/Scheduling/components/scheduling-types.component.d.ts +0 -22
  368. package/dist/Scheduling/components/scheduling-types.component.d.ts.map +0 -1
  369. package/dist/Scheduling/components/scheduling-types.component.js +0 -165
  370. package/dist/Scheduling/components/scheduling-types.component.js.map +0 -1
  371. package/dist/Testing/components/testing-execution-resource.component.d.ts +0 -20
  372. package/dist/Testing/components/testing-execution-resource.component.d.ts.map +0 -1
  373. package/dist/Testing/components/testing-execution-resource.component.js +0 -55
  374. package/dist/Testing/components/testing-execution-resource.component.js.map +0 -1
  375. package/dist/Testing/components/testing-execution.component.d.ts +0 -71
  376. package/dist/Testing/components/testing-execution.component.d.ts.map +0 -1
  377. package/dist/Testing/components/testing-execution.component.js +0 -845
  378. package/dist/Testing/components/testing-execution.component.js.map +0 -1
  379. package/dist/Testing/components/testing-feedback-resource.component.d.ts +0 -20
  380. package/dist/Testing/components/testing-feedback-resource.component.d.ts.map +0 -1
  381. package/dist/Testing/components/testing-feedback-resource.component.js +0 -55
  382. package/dist/Testing/components/testing-feedback-resource.component.js.map +0 -1
  383. package/dist/Testing/components/testing-feedback.component.d.ts +0 -111
  384. package/dist/Testing/components/testing-feedback.component.d.ts.map +0 -1
  385. package/dist/Testing/components/testing-feedback.component.js +0 -1486
  386. package/dist/Testing/components/testing-feedback.component.js.map +0 -1
  387. package/dist/Testing/components/testing-overview-resource.component.d.ts +0 -20
  388. package/dist/Testing/components/testing-overview-resource.component.d.ts.map +0 -1
  389. package/dist/Testing/components/testing-overview-resource.component.js +0 -55
  390. package/dist/Testing/components/testing-overview-resource.component.js.map +0 -1
  391. package/dist/Testing/components/testing-overview.component.d.ts +0 -30
  392. package/dist/Testing/components/testing-overview.component.d.ts.map +0 -1
  393. package/dist/Testing/components/testing-overview.component.js +0 -361
  394. package/dist/Testing/components/testing-overview.component.js.map +0 -1
  395. package/dist/Testing/components/testing-version-comparison.component.d.ts +0 -62
  396. package/dist/Testing/components/testing-version-comparison.component.d.ts.map +0 -1
  397. package/dist/Testing/components/testing-version-comparison.component.js +0 -815
  398. package/dist/Testing/components/testing-version-comparison.component.js.map +0 -1
  399. package/dist/Testing/components/testing-version-resource.component.d.ts +0 -20
  400. package/dist/Testing/components/testing-version-resource.component.d.ts.map +0 -1
  401. package/dist/Testing/components/testing-version-resource.component.js +0 -55
  402. package/dist/Testing/components/testing-version-resource.component.js.map +0 -1
@@ -0,0 +1,221 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/component-studio-state.service";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "@memberjunction/ng-code-editor";
6
+ import * as i4 from "@progress/kendo-angular-buttons";
7
+ function DataRequirementsEditorComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
8
+ const _r1 = i0.ɵɵgetCurrentView();
9
+ i0.ɵɵelementStart(0, "div", 4)(1, "button", 8);
10
+ i0.ɵɵlistener("click", function DataRequirementsEditorComponent_Conditional_5_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ApplyChanges()); });
11
+ i0.ɵɵelement(2, "i", 9);
12
+ i0.ɵɵtext(3, " Apply Changes ");
13
+ i0.ɵɵelementEnd();
14
+ i0.ɵɵelementStart(4, "button", 8);
15
+ i0.ɵɵlistener("click", function DataRequirementsEditorComponent_Conditional_5_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CancelChanges()); });
16
+ i0.ɵɵelement(5, "i", 10);
17
+ i0.ɵɵtext(6, " Cancel ");
18
+ i0.ɵɵelementEnd()();
19
+ } if (rf & 2) {
20
+ i0.ɵɵadvance();
21
+ i0.ɵɵproperty("themeColor", "primary");
22
+ i0.ɵɵadvance(3);
23
+ i0.ɵɵproperty("themeColor", "base");
24
+ } }
25
+ function DataRequirementsEditorComponent_Conditional_7_Conditional_0_Template(rf, ctx) { if (rf & 1) {
26
+ i0.ɵɵelementStart(0, "div", 11)(1, "span", 13);
27
+ i0.ɵɵelement(2, "i", 14);
28
+ i0.ɵɵtext(3);
29
+ i0.ɵɵelementEnd();
30
+ i0.ɵɵelementStart(4, "span", 13);
31
+ i0.ɵɵelement(5, "i", 15);
32
+ i0.ɵɵtext(6);
33
+ i0.ɵɵelementEnd();
34
+ i0.ɵɵelementStart(7, "span", 16);
35
+ i0.ɵɵtext(8);
36
+ i0.ɵɵelementEnd()();
37
+ } if (rf & 2) {
38
+ const ctx_r1 = i0.ɵɵnextContext(2);
39
+ i0.ɵɵadvance(3);
40
+ i0.ɵɵtextInterpolate2(" ", ctx_r1.EntityCount, " ", ctx_r1.EntityCount === 1 ? "entity" : "entities", " ");
41
+ i0.ɵɵadvance(3);
42
+ i0.ɵɵtextInterpolate2(" ", ctx_r1.QueryCount, " ", ctx_r1.QueryCount === 1 ? "query" : "queries", " ");
43
+ i0.ɵɵadvance(2);
44
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.DataMode, " ");
45
+ } }
46
+ function DataRequirementsEditorComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
47
+ const _r3 = i0.ɵɵgetCurrentView();
48
+ i0.ɵɵtemplate(0, DataRequirementsEditorComponent_Conditional_7_Conditional_0_Template, 9, 5, "div", 11);
49
+ i0.ɵɵelementStart(1, "div", 6)(2, "mj-code-editor", 12);
50
+ i0.ɵɵtwoWayListener("ngModelChange", function DataRequirementsEditorComponent_Conditional_7_Template_mj_code_editor_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.EditableContent, $event) || (ctx_r1.EditableContent = $event); return i0.ɵɵresetView($event); });
51
+ i0.ɵɵlistener("ngModelChange", function DataRequirementsEditorComponent_Conditional_7_Template_mj_code_editor_ngModelChange_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnContentChanged()); });
52
+ i0.ɵɵelementEnd()();
53
+ } if (rf & 2) {
54
+ const ctx_r1 = i0.ɵɵnextContext();
55
+ i0.ɵɵconditional(ctx_r1.HasDataRequirements ? 0 : -1);
56
+ i0.ɵɵadvance(2);
57
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.EditableContent);
58
+ i0.ɵɵproperty("language", "json")("indentWithTab", true)("placeholder", "Enter data requirements JSON...");
59
+ } }
60
+ function DataRequirementsEditorComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
61
+ i0.ɵɵelementStart(0, "div", 7);
62
+ i0.ɵɵelement(1, "i", 3);
63
+ i0.ɵɵelementStart(2, "p");
64
+ i0.ɵɵtext(3, "Select a component to edit its data requirements.");
65
+ i0.ɵɵelementEnd()();
66
+ } }
67
+ export class DataRequirementsEditorComponent {
68
+ State;
69
+ cdr;
70
+ EditableContent = '';
71
+ IsEditing = false;
72
+ _parsedRequirements = null;
73
+ constructor(State, cdr) {
74
+ this.State = State;
75
+ this.cdr = cdr;
76
+ }
77
+ get HasDataRequirements() {
78
+ return this._parsedRequirements != null;
79
+ }
80
+ get EntityCount() {
81
+ if (!this._parsedRequirements)
82
+ return 0;
83
+ const entities = this._parsedRequirements['entities'];
84
+ return Array.isArray(entities) ? entities.length : 0;
85
+ }
86
+ get QueryCount() {
87
+ if (!this._parsedRequirements)
88
+ return 0;
89
+ const queries = this._parsedRequirements['queries'];
90
+ return Array.isArray(queries) ? queries.length : 0;
91
+ }
92
+ get DataMode() {
93
+ if (!this._parsedRequirements)
94
+ return '';
95
+ return this._parsedRequirements['mode'] || 'views';
96
+ }
97
+ ngOnInit() {
98
+ this.loadContent();
99
+ this.State.StateChanged.subscribe(() => {
100
+ this.loadContent();
101
+ this.cdr.detectChanges();
102
+ });
103
+ }
104
+ OnContentChanged() {
105
+ this.IsEditing = true;
106
+ this.parseContent();
107
+ }
108
+ ApplyChanges() {
109
+ try {
110
+ const spec = JSON.parse(this.State.EditableSpec);
111
+ const dataReq = JSON.parse(this.EditableContent);
112
+ spec.dataRequirements = dataReq;
113
+ this.State.UpdateSpec(spec);
114
+ this.IsEditing = false;
115
+ }
116
+ catch (error) {
117
+ console.error('Error applying data requirements changes:', error);
118
+ }
119
+ }
120
+ CancelChanges() {
121
+ this.loadContent();
122
+ this.IsEditing = false;
123
+ this.cdr.detectChanges();
124
+ }
125
+ loadContent() {
126
+ try {
127
+ const spec = JSON.parse(this.State.EditableSpec);
128
+ const dataReq = spec.dataRequirements || { mode: 'views', entities: [], queries: [] };
129
+ this.EditableContent = JSON.stringify(dataReq, null, 2);
130
+ this.parseContent();
131
+ }
132
+ catch {
133
+ this.EditableContent = '';
134
+ this._parsedRequirements = null;
135
+ }
136
+ }
137
+ parseContent() {
138
+ try {
139
+ this._parsedRequirements = JSON.parse(this.EditableContent);
140
+ }
141
+ catch {
142
+ this._parsedRequirements = null;
143
+ }
144
+ }
145
+ static ɵfac = function DataRequirementsEditorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DataRequirementsEditorComponent)(i0.ɵɵdirectiveInject(i1.ComponentStudioStateService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
146
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DataRequirementsEditorComponent, selectors: [["mj-data-requirements-editor"]], decls: 9, vars: 2, consts: [[1, "data-requirements-editor"], [1, "editor-header"], [1, "header-title"], [1, "fa-solid", "fa-database"], [1, "action-buttons"], [1, "editor-body"], [1, "json-editor-container"], [1, "empty-state"], ["kendoButton", "", 3, "click", "themeColor"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-times"], [1, "summary-bar"], [3, "ngModelChange", "ngModel", "language", "indentWithTab", "placeholder"], [1, "summary-item"], [1, "fa-solid", "fa-table"], [1, "fa-solid", "fa-search"], [1, "summary-item", "mode-badge"]], template: function DataRequirementsEditorComponent_Template(rf, ctx) { if (rf & 1) {
147
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "span", 2);
148
+ i0.ɵɵelement(3, "i", 3);
149
+ i0.ɵɵtext(4, " Data Requirements ");
150
+ i0.ɵɵelementEnd();
151
+ i0.ɵɵtemplate(5, DataRequirementsEditorComponent_Conditional_5_Template, 7, 2, "div", 4);
152
+ i0.ɵɵelementEnd();
153
+ i0.ɵɵelementStart(6, "div", 5);
154
+ i0.ɵɵtemplate(7, DataRequirementsEditorComponent_Conditional_7_Template, 3, 5, "div", 6)(8, DataRequirementsEditorComponent_Conditional_8_Template, 4, 0, "div", 7);
155
+ i0.ɵɵelementEnd()();
156
+ } if (rf & 2) {
157
+ i0.ɵɵadvance(5);
158
+ i0.ɵɵconditional(ctx.IsEditing ? 5 : -1);
159
+ i0.ɵɵadvance(2);
160
+ i0.ɵɵconditional(ctx.State.SelectedComponent ? 7 : 8);
161
+ } }, dependencies: [i2.NgControlStatus, i2.NgModel, i3.CodeEditorComponent, i4.ButtonComponent], styles: [".data-requirements-editor[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n .editor-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n border-bottom: 1px solid var(--mat-sys-outline-variant);\n background: var(--mat-sys-surface-container-lowest);\n flex-shrink: 0;\n }\n .header-title[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 13px;\n color: var(--mat-sys-on-surface);\n }\n .header-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 6px;\n color: var(--mat-sys-on-surface-variant);\n }\n .action-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n }\n .summary-bar[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 6px 12px;\n background: var(--mat-sys-primary-container);\n border-bottom: 1px solid var(--mat-sys-outline-variant);\n font-size: 12px;\n color: var(--mat-sys-on-primary-container);\n flex-shrink: 0;\n }\n .summary-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n .mode-badge[_ngcontent-%COMP%] {\n background: var(--mat-sys-surface-container-high);\n color: var(--mat-sys-on-surface);\n padding: 1px 8px;\n border-radius: 10px;\n font-weight: 600;\n text-transform: uppercase;\n font-size: 10px;\n }\n .editor-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n .json-editor-container[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n }\n .json-editor-container[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n }\n .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n color: var(--mat-sys-on-surface-variant);\n flex: 1;\n }\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n margin-bottom: 12px;\n }\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n text-align: center;\n }"] });
162
+ }
163
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataRequirementsEditorComponent, [{
164
+ type: Component,
165
+ args: [{ selector: 'mj-data-requirements-editor', template: `
166
+ <div class="data-requirements-editor">
167
+ <div class="editor-header">
168
+ <span class="header-title">
169
+ <i class="fa-solid fa-database"></i>
170
+ Data Requirements
171
+ </span>
172
+ @if (IsEditing) {
173
+ <div class="action-buttons">
174
+ <button kendoButton [themeColor]="'primary'" (click)="ApplyChanges()">
175
+ <i class="fa-solid fa-check"></i> Apply Changes
176
+ </button>
177
+ <button kendoButton [themeColor]="'base'" (click)="CancelChanges()">
178
+ <i class="fa-solid fa-times"></i> Cancel
179
+ </button>
180
+ </div>
181
+ }
182
+ </div>
183
+
184
+ <div class="editor-body">
185
+ @if (State.SelectedComponent) {
186
+ @if (HasDataRequirements) {
187
+ <div class="summary-bar">
188
+ <span class="summary-item">
189
+ <i class="fa-solid fa-table"></i>
190
+ {{ EntityCount }} {{ EntityCount === 1 ? 'entity' : 'entities' }}
191
+ </span>
192
+ <span class="summary-item">
193
+ <i class="fa-solid fa-search"></i>
194
+ {{ QueryCount }} {{ QueryCount === 1 ? 'query' : 'queries' }}
195
+ </span>
196
+ <span class="summary-item mode-badge">
197
+ {{ DataMode }}
198
+ </span>
199
+ </div>
200
+ }
201
+ <div class="json-editor-container">
202
+ <mj-code-editor
203
+ [(ngModel)]="EditableContent"
204
+ [language]="'json'"
205
+ [indentWithTab]="true"
206
+ [placeholder]="'Enter data requirements JSON...'"
207
+ (ngModelChange)="OnContentChanged()">
208
+ </mj-code-editor>
209
+ </div>
210
+ } @else {
211
+ <div class="empty-state">
212
+ <i class="fa-solid fa-database"></i>
213
+ <p>Select a component to edit its data requirements.</p>
214
+ </div>
215
+ }
216
+ </div>
217
+ </div>
218
+ `, styles: ["\n .data-requirements-editor {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n .editor-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n border-bottom: 1px solid var(--mat-sys-outline-variant);\n background: var(--mat-sys-surface-container-lowest);\n flex-shrink: 0;\n }\n .header-title {\n font-weight: 600;\n font-size: 13px;\n color: var(--mat-sys-on-surface);\n }\n .header-title i {\n margin-right: 6px;\n color: var(--mat-sys-on-surface-variant);\n }\n .action-buttons {\n display: flex;\n gap: 6px;\n }\n .summary-bar {\n display: flex;\n gap: 12px;\n padding: 6px 12px;\n background: var(--mat-sys-primary-container);\n border-bottom: 1px solid var(--mat-sys-outline-variant);\n font-size: 12px;\n color: var(--mat-sys-on-primary-container);\n flex-shrink: 0;\n }\n .summary-item {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n .mode-badge {\n background: var(--mat-sys-surface-container-high);\n color: var(--mat-sys-on-surface);\n padding: 1px 8px;\n border-radius: 10px;\n font-weight: 600;\n text-transform: uppercase;\n font-size: 10px;\n }\n .editor-body {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n .json-editor-container {\n flex: 1;\n overflow: hidden;\n }\n .json-editor-container mj-code-editor {\n display: block;\n height: 100%;\n }\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n color: var(--mat-sys-on-surface-variant);\n flex: 1;\n }\n .empty-state i {\n font-size: 32px;\n margin-bottom: 12px;\n }\n .empty-state p {\n margin: 0;\n font-size: 13px;\n text-align: center;\n }\n "] }]
219
+ }], () => [{ type: i1.ComponentStudioStateService }, { type: i0.ChangeDetectorRef }], null); })();
220
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DataRequirementsEditorComponent, { className: "DataRequirementsEditorComponent", filePath: "src/ComponentStudio/components/editors/data-requirements-editor.component.ts", lineNumber: 147 }); })();
221
+ //# sourceMappingURL=data-requirements-editor.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-requirements-editor.component.js","sourceRoot":"","sources":["../../../../src/ComponentStudio/components/editors/data-requirements-editor.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,eAAe,CAAC;;;;;;;;IAejD,AADF,8BAA4B,gBAC4C;IAAzB,mMAAS,qBAAc,KAAC;IACnE,uBAAiC;IAAC,+BACpC;IAAA,iBAAS;IACT,iCAAoE;IAA1B,mMAAS,sBAAe,KAAC;IACjE,wBAAiC;IAAC,wBACpC;IACF,AADE,iBAAS,EACL;;IANgB,cAAwB;IAAxB,sCAAwB;IAGxB,eAAqB;IAArB,mCAAqB;;;IAWvC,AADF,+BAAyB,eACI;IACzB,wBAAiC;IACjC,YACF;IAAA,iBAAO;IACP,gCAA2B;IACzB,wBAAkC;IAClC,YACF;IAAA,iBAAO;IACP,gCAAsC;IACpC,YACF;IACF,AADE,iBAAO,EACH;;;IATF,eACF;IADE,0GACF;IAGE,eACF;IADE,sGACF;IAEE,eACF;IADE,gDACF;;;;IAZJ,uGAA2B;IAgBzB,AADF,8BAAmC,yBAMM;IAJrC,8UAA6B;IAI7B,2NAAiB,yBAAkB,KAAC;IAExC,AADE,iBAAiB,EACb;;;IAvBN,qDAcC;IAGG,eAA6B;IAA7B,sDAA6B;IAG7B,AADA,AADA,iCAAmB,uBACG,kDAC2B;;;IAKrD,8BAAyB;IACvB,uBAAoC;IACpC,yBAAG;IAAA,iEAAiD;IACtD,AADsD,iBAAI,EACpD;;AA2FhB,MAAM,OAAO,+BAA+B;IAOjC;IACC;IAPV,eAAe,GAAW,EAAE,CAAC;IAC7B,SAAS,GAAY,KAAK,CAAC;IAEnB,mBAAmB,GAAmC,IAAI,CAAC;IAEnE,YACS,KAAkC,EACjC,GAAsB;QADvB,UAAK,GAAL,KAAK,CAA6B;QACjC,QAAG,GAAH,GAAG,CAAmB;IAC7B,CAAC;IAEJ,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAAE,OAAO,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAAE,OAAO,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAAE,OAAO,EAAE,CAAC;QACzC,OAAQ,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAY,IAAI,OAAO,CAAC;IACjE,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,YAAY;QACV,IAAI,CAAC;YACH,MAAM,IAAI,GAAkB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACtF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC;YACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;IACH,CAAC;yHAjFU,+BAA+B;6DAA/B,+BAA+B;YAzIpC,AADF,AADF,8BAAsC,aACT,cACE;YACzB,uBAAoC;YACpC,mCACF;YAAA,iBAAO;YACP,wFAAiB;YAUnB,iBAAM;YAEN,8BAAyB;YA0BrB,AAzBF,wFAA+B,2EAyBtB;YAOb,AADE,iBAAM,EACF;;YA7CF,eASC;YATD,wCASC;YAID,eA8BC;YA9BD,qDA8BC;;;iFA0FI,+BAA+B;cA9I3C,SAAS;2BACE,6BAA6B,YAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDT;;kFAuFU,+BAA+B"}
@@ -0,0 +1,28 @@
1
+ import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
2
+ import { ComponentStudioStateService } from '../../services/component-studio-state.service';
3
+ import * as i0 from "@angular/core";
4
+ type RequirementsField = 'functionalRequirements' | 'technicalDesign';
5
+ type EditorMode = 'preview' | 'edit';
6
+ export declare class RequirementsEditorComponent implements OnInit, OnDestroy {
7
+ State: ComponentStudioStateService;
8
+ private cdr;
9
+ Field: RequirementsField;
10
+ Title: string;
11
+ EditableContent: string;
12
+ IsEditing: boolean;
13
+ ViewMode: EditorMode;
14
+ private stateChangedSub;
15
+ constructor(State: ComponentStudioStateService, cdr: ChangeDetectorRef);
16
+ get FieldIcon(): string;
17
+ ngOnInit(): void;
18
+ ngOnDestroy(): void;
19
+ SetViewMode(mode: EditorMode): void;
20
+ OnContentChanged(): void;
21
+ ApplyChanges(): void;
22
+ CancelChanges(): void;
23
+ private loadContent;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<RequirementsEditorComponent, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<RequirementsEditorComponent, "mj-requirements-editor", never, { "Field": { "alias": "Field"; "required": false; }; "Title": { "alias": "Title"; "required": false; }; }, {}, never, never, false, never>;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=requirements-editor.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirements-editor.component.d.ts","sourceRoot":"","sources":["../../../../src/ComponentStudio/components/editors/requirements-editor.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;;AAG5F,KAAK,iBAAiB,GAAG,wBAAwB,GAAG,iBAAiB,CAAC;AACtE,KAAK,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAErC,qBA6Oa,2BAA4B,YAAW,MAAM,EAAE,SAAS;IAW1D,KAAK,EAAE,2BAA2B;IACzC,OAAO,CAAC,GAAG;IAXJ,KAAK,EAAE,iBAAiB,CAA4B;IACpD,KAAK,EAAE,MAAM,CAA6B;IAEnD,eAAe,EAAE,MAAM,CAAM;IAC7B,SAAS,EAAE,OAAO,CAAS;IAC3B,QAAQ,EAAE,UAAU,CAAa;IAEjC,OAAO,CAAC,eAAe,CAA6B;gBAG3C,KAAK,EAAE,2BAA2B,EACjC,GAAG,EAAE,iBAAiB;IAGhC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,QAAQ,IAAI,IAAI;IAUhB,WAAW,IAAI,IAAI;IAOnB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAKnC,gBAAgB,IAAI,IAAI;IAIxB,YAAY,IAAI,IAAI;IAYpB,aAAa,IAAI,IAAI;IAOrB,OAAO,CAAC,WAAW;yCAhER,2BAA2B;2CAA3B,2BAA2B;CAwEvC"}
@@ -0,0 +1,263 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/component-studio-state.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
6
+ import * as i4 from "@memberjunction/ng-code-editor";
7
+ import * as i5 from "@progress/kendo-angular-buttons";
8
+ import * as i6 from "@memberjunction/ng-markdown";
9
+ function RequirementsEditorComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
10
+ const _r1 = i0.ɵɵgetCurrentView();
11
+ i0.ɵɵelementStart(0, "div", 5)(1, "button", 12);
12
+ i0.ɵɵlistener("click", function RequirementsEditorComponent_Conditional_6_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ApplyChanges()); });
13
+ i0.ɵɵelement(2, "i", 13);
14
+ i0.ɵɵtext(3, " Apply ");
15
+ i0.ɵɵelementEnd();
16
+ i0.ɵɵelementStart(4, "button", 12);
17
+ i0.ɵɵlistener("click", function RequirementsEditorComponent_Conditional_6_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CancelChanges()); });
18
+ i0.ɵɵtext(5, " Cancel ");
19
+ i0.ɵɵelementEnd()();
20
+ } if (rf & 2) {
21
+ i0.ɵɵadvance();
22
+ i0.ɵɵproperty("themeColor", "primary");
23
+ i0.ɵɵadvance(3);
24
+ i0.ɵɵproperty("themeColor", "base");
25
+ } }
26
+ function RequirementsEditorComponent_Conditional_15_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelement(0, "mj-markdown", 16);
28
+ } if (rf & 2) {
29
+ const ctx_r1 = i0.ɵɵnextContext(3);
30
+ i0.ɵɵproperty("data", ctx_r1.EditableContent)("enableCodeCopy", true);
31
+ } }
32
+ function RequirementsEditorComponent_Conditional_15_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
33
+ const _r3 = i0.ɵɵgetCurrentView();
34
+ i0.ɵɵelementStart(0, "div", 17);
35
+ i0.ɵɵelement(1, "i", 18);
36
+ i0.ɵɵelementStart(2, "p");
37
+ i0.ɵɵtext(3);
38
+ i0.ɵɵpipe(4, "lowercase");
39
+ i0.ɵɵelementEnd();
40
+ i0.ɵɵelementStart(5, "button", 19);
41
+ i0.ɵɵlistener("click", function RequirementsEditorComponent_Conditional_15_Conditional_0_Conditional_2_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.SetViewMode("edit")); });
42
+ i0.ɵɵelement(6, "i", 9);
43
+ i0.ɵɵtext(7, " Start writing ");
44
+ i0.ɵɵelementEnd()();
45
+ } if (rf & 2) {
46
+ const ctx_r1 = i0.ɵɵnextContext(3);
47
+ i0.ɵɵadvance(3);
48
+ i0.ɵɵtextInterpolate1("No ", i0.ɵɵpipeBind1(4, 1, ctx_r1.Title), " defined yet.");
49
+ } }
50
+ function RequirementsEditorComponent_Conditional_15_Conditional_0_Template(rf, ctx) { if (rf & 1) {
51
+ i0.ɵɵelementStart(0, "div", 14);
52
+ i0.ɵɵtemplate(1, RequirementsEditorComponent_Conditional_15_Conditional_0_Conditional_1_Template, 1, 2, "mj-markdown", 16)(2, RequirementsEditorComponent_Conditional_15_Conditional_0_Conditional_2_Template, 8, 3, "div", 17);
53
+ i0.ɵɵelementEnd();
54
+ } if (rf & 2) {
55
+ const ctx_r1 = i0.ɵɵnextContext(2);
56
+ i0.ɵɵadvance();
57
+ i0.ɵɵconditional(ctx_r1.EditableContent ? 1 : 2);
58
+ } }
59
+ function RequirementsEditorComponent_Conditional_15_Conditional_1_Template(rf, ctx) { if (rf & 1) {
60
+ const _r4 = i0.ɵɵgetCurrentView();
61
+ i0.ɵɵelementStart(0, "div", 15)(1, "mj-code-editor", 20);
62
+ i0.ɵɵtwoWayListener("ngModelChange", function RequirementsEditorComponent_Conditional_15_Conditional_1_Template_mj_code_editor_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.EditableContent, $event) || (ctx_r1.EditableContent = $event); return i0.ɵɵresetView($event); });
63
+ i0.ɵɵlistener("ngModelChange", function RequirementsEditorComponent_Conditional_15_Conditional_1_Template_mj_code_editor_ngModelChange_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnContentChanged()); });
64
+ i0.ɵɵelementEnd()();
65
+ } if (rf & 2) {
66
+ const ctx_r1 = i0.ɵɵnextContext(2);
67
+ i0.ɵɵadvance();
68
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.EditableContent);
69
+ i0.ɵɵproperty("language", "markdown")("indentWithTab", true)("placeholder", "Enter " + ctx_r1.Title + " in markdown format...");
70
+ } }
71
+ function RequirementsEditorComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
72
+ i0.ɵɵtemplate(0, RequirementsEditorComponent_Conditional_15_Conditional_0_Template, 3, 1, "div", 14)(1, RequirementsEditorComponent_Conditional_15_Conditional_1_Template, 2, 4, "div", 15);
73
+ } if (rf & 2) {
74
+ const ctx_r1 = i0.ɵɵnextContext();
75
+ i0.ɵɵconditional(ctx_r1.ViewMode === "preview" ? 0 : 1);
76
+ } }
77
+ function RequirementsEditorComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
78
+ i0.ɵɵelementStart(0, "div", 11);
79
+ i0.ɵɵelement(1, "i", 18);
80
+ i0.ɵɵelementStart(2, "p");
81
+ i0.ɵɵtext(3);
82
+ i0.ɵɵpipe(4, "lowercase");
83
+ i0.ɵɵelementEnd()();
84
+ } if (rf & 2) {
85
+ const ctx_r1 = i0.ɵɵnextContext();
86
+ i0.ɵɵadvance(3);
87
+ i0.ɵɵtextInterpolate1("Select a component to view its ", i0.ɵɵpipeBind1(4, 1, ctx_r1.Title), ".");
88
+ } }
89
+ export class RequirementsEditorComponent {
90
+ State;
91
+ cdr;
92
+ Field = 'functionalRequirements';
93
+ Title = 'Functional Requirements';
94
+ EditableContent = '';
95
+ IsEditing = false;
96
+ ViewMode = 'preview';
97
+ stateChangedSub = null;
98
+ constructor(State, cdr) {
99
+ this.State = State;
100
+ this.cdr = cdr;
101
+ }
102
+ get FieldIcon() {
103
+ return this.Field === 'functionalRequirements' ? 'fa-clipboard-list' : 'fa-drafting-compass';
104
+ }
105
+ ngOnInit() {
106
+ this.loadContent();
107
+ this.stateChangedSub = this.State.StateChanged.subscribe(() => {
108
+ if (!this.IsEditing) {
109
+ this.loadContent();
110
+ }
111
+ this.cdr.detectChanges();
112
+ });
113
+ }
114
+ ngOnDestroy() {
115
+ if (this.stateChangedSub) {
116
+ this.stateChangedSub.unsubscribe();
117
+ this.stateChangedSub = null;
118
+ }
119
+ }
120
+ SetViewMode(mode) {
121
+ this.ViewMode = mode;
122
+ this.cdr.detectChanges();
123
+ }
124
+ OnContentChanged() {
125
+ this.IsEditing = true;
126
+ }
127
+ ApplyChanges() {
128
+ try {
129
+ const spec = JSON.parse(this.State.EditableSpec);
130
+ spec[this.Field] = this.EditableContent;
131
+ this.State.UpdateSpec(spec);
132
+ this.IsEditing = false;
133
+ this.ViewMode = 'preview';
134
+ }
135
+ catch (error) {
136
+ console.error('Error applying requirements changes:', error);
137
+ }
138
+ }
139
+ CancelChanges() {
140
+ this.loadContent();
141
+ this.IsEditing = false;
142
+ this.ViewMode = 'preview';
143
+ this.cdr.detectChanges();
144
+ }
145
+ loadContent() {
146
+ try {
147
+ const spec = JSON.parse(this.State.EditableSpec);
148
+ this.EditableContent = spec[this.Field] || '';
149
+ }
150
+ catch {
151
+ this.EditableContent = '';
152
+ }
153
+ }
154
+ static ɵfac = function RequirementsEditorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RequirementsEditorComponent)(i0.ɵɵdirectiveInject(i1.ComponentStudioStateService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
155
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RequirementsEditorComponent, selectors: [["mj-requirements-editor"]], inputs: { Field: "Field", Title: "Title" }, decls: 17, vars: 8, consts: [[1, "requirements-editor"], [1, "editor-header"], [1, "header-title"], [1, "fa-solid", 3, "ngClass"], [1, "header-right"], [1, "action-buttons"], [1, "mode-toggle"], [1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-eye"], [1, "fa-solid", "fa-pencil"], [1, "editor-body"], [1, "empty-state"], ["kendoButton", "", 1, "action-btn", 3, "click", "themeColor"], [1, "fa-solid", "fa-check"], [1, "preview-container"], [1, "code-editor-container"], [3, "data", "enableCodeCopy"], [1, "empty-preview"], [1, "fa-solid", "fa-file-lines"], [1, "edit-link", 3, "click"], [3, "ngModelChange", "ngModel", "language", "indentWithTab", "placeholder"]], template: function RequirementsEditorComponent_Template(rf, ctx) { if (rf & 1) {
156
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "span", 2);
157
+ i0.ɵɵelement(3, "i", 3);
158
+ i0.ɵɵtext(4);
159
+ i0.ɵɵelementEnd();
160
+ i0.ɵɵelementStart(5, "div", 4);
161
+ i0.ɵɵtemplate(6, RequirementsEditorComponent_Conditional_6_Template, 6, 2, "div", 5);
162
+ i0.ɵɵelementStart(7, "div", 6)(8, "button", 7);
163
+ i0.ɵɵlistener("click", function RequirementsEditorComponent_Template_button_click_8_listener() { return ctx.SetViewMode("preview"); });
164
+ i0.ɵɵelement(9, "i", 8);
165
+ i0.ɵɵtext(10, " Preview ");
166
+ i0.ɵɵelementEnd();
167
+ i0.ɵɵelementStart(11, "button", 7);
168
+ i0.ɵɵlistener("click", function RequirementsEditorComponent_Template_button_click_11_listener() { return ctx.SetViewMode("edit"); });
169
+ i0.ɵɵelement(12, "i", 9);
170
+ i0.ɵɵtext(13, " Edit ");
171
+ i0.ɵɵelementEnd()()()();
172
+ i0.ɵɵelementStart(14, "div", 10);
173
+ i0.ɵɵtemplate(15, RequirementsEditorComponent_Conditional_15_Template, 2, 1)(16, RequirementsEditorComponent_Conditional_16_Template, 5, 3, "div", 11);
174
+ i0.ɵɵelementEnd()();
175
+ } if (rf & 2) {
176
+ i0.ɵɵadvance(3);
177
+ i0.ɵɵproperty("ngClass", ctx.FieldIcon);
178
+ i0.ɵɵadvance();
179
+ i0.ɵɵtextInterpolate1(" ", ctx.Title, " ");
180
+ i0.ɵɵadvance(2);
181
+ i0.ɵɵconditional(ctx.IsEditing ? 6 : -1);
182
+ i0.ɵɵadvance(2);
183
+ i0.ɵɵclassProp("active", ctx.ViewMode === "preview");
184
+ i0.ɵɵadvance(3);
185
+ i0.ɵɵclassProp("active", ctx.ViewMode === "edit");
186
+ i0.ɵɵadvance(4);
187
+ i0.ɵɵconditional(ctx.State.SelectedComponent ? 15 : 16);
188
+ } }, dependencies: [i2.NgClass, i3.NgControlStatus, i3.NgModel, i4.CodeEditorComponent, i5.ButtonComponent, i6.MarkdownComponent, i2.LowerCasePipe], styles: [".requirements-editor[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .editor-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n border-bottom: 1px solid var(--mat-sys-outline-variant);\n background: var(--mat-sys-surface);\n flex-shrink: 0;\n gap: 8px;\n }\n\n .header-title[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 13px;\n color: var(--mat-sys-on-surface);\n white-space: nowrap;\n }\n\n .header-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 6px;\n color: var(--mat-sys-primary);\n }\n\n .header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .action-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n }\n\n .action-btn[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .mode-toggle[_ngcontent-%COMP%] {\n display: inline-flex;\n border: 1px solid var(--mat-sys-outline);\n border-radius: 8px;\n overflow: hidden;\n }\n\n .mode-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n border: none;\n background: transparent;\n color: var(--mat-sys-on-surface-variant);\n font-size: 11px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n font-family: inherit;\n }\n\n .mode-btn[_ngcontent-%COMP%]:not(:last-child) {\n border-right: 1px solid var(--mat-sys-outline);\n }\n\n .mode-btn[_ngcontent-%COMP%]:hover {\n background: var(--mat-sys-surface-container);\n }\n\n .mode-btn.active[_ngcontent-%COMP%] {\n background: var(--mat-sys-primary);\n color: var(--mat-sys-on-primary, #fff);\n }\n\n .mode-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n\n .editor-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .preview-container[_ngcontent-%COMP%] {\n flex: 1;\n overflow: auto;\n padding: 16px 20px;\n }\n\n .code-editor-container[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n }\n\n .code-editor-container[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n }\n\n .empty-preview[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n color: var(--mat-sys-on-surface-variant);\n }\n\n .empty-preview[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.4;\n }\n\n .empty-preview[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 12px;\n font-size: 13px;\n }\n\n .edit-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 6px 14px;\n border: 1px solid var(--mat-sys-outline);\n border-radius: 8px;\n background: transparent;\n color: var(--mat-sys-primary);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n font-family: inherit;\n }\n\n .edit-link[_ngcontent-%COMP%]:hover {\n background: var(--mat-sys-primary-container, #e0e7ff);\n }\n\n .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n color: var(--mat-sys-on-surface-variant);\n flex: 1;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.4;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n text-align: center;\n }"] });
189
+ }
190
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RequirementsEditorComponent, [{
191
+ type: Component,
192
+ args: [{ selector: 'mj-requirements-editor', template: `
193
+ <div class="requirements-editor">
194
+ <div class="editor-header">
195
+ <span class="header-title">
196
+ <i class="fa-solid" [ngClass]="FieldIcon"></i>
197
+ {{ Title }}
198
+ </span>
199
+ <div class="header-right">
200
+ @if (IsEditing) {
201
+ <div class="action-buttons">
202
+ <button kendoButton [themeColor]="'primary'" (click)="ApplyChanges()" class="action-btn">
203
+ <i class="fa-solid fa-check"></i> Apply
204
+ </button>
205
+ <button kendoButton [themeColor]="'base'" (click)="CancelChanges()" class="action-btn">
206
+ Cancel
207
+ </button>
208
+ </div>
209
+ }
210
+ <div class="mode-toggle">
211
+ <button class="mode-btn" [class.active]="ViewMode === 'preview'" (click)="SetViewMode('preview')">
212
+ <i class="fa-solid fa-eye"></i> Preview
213
+ </button>
214
+ <button class="mode-btn" [class.active]="ViewMode === 'edit'" (click)="SetViewMode('edit')">
215
+ <i class="fa-solid fa-pencil"></i> Edit
216
+ </button>
217
+ </div>
218
+ </div>
219
+ </div>
220
+
221
+ <div class="editor-body">
222
+ @if (State.SelectedComponent) {
223
+ @if (ViewMode === 'preview') {
224
+ <div class="preview-container">
225
+ @if (EditableContent) {
226
+ <mj-markdown [data]="EditableContent" [enableCodeCopy]="true"></mj-markdown>
227
+ } @else {
228
+ <div class="empty-preview">
229
+ <i class="fa-solid fa-file-lines"></i>
230
+ <p>No {{ Title | lowercase }} defined yet.</p>
231
+ <button class="edit-link" (click)="SetViewMode('edit')">
232
+ <i class="fa-solid fa-pencil"></i> Start writing
233
+ </button>
234
+ </div>
235
+ }
236
+ </div>
237
+ } @else {
238
+ <div class="code-editor-container">
239
+ <mj-code-editor
240
+ [(ngModel)]="EditableContent"
241
+ [language]="'markdown'"
242
+ [indentWithTab]="true"
243
+ [placeholder]="'Enter ' + Title + ' in markdown format...'"
244
+ (ngModelChange)="OnContentChanged()">
245
+ </mj-code-editor>
246
+ </div>
247
+ }
248
+ } @else {
249
+ <div class="empty-state">
250
+ <i class="fa-solid fa-file-lines"></i>
251
+ <p>Select a component to view its {{ Title | lowercase }}.</p>
252
+ </div>
253
+ }
254
+ </div>
255
+ </div>
256
+ `, styles: ["\n .requirements-editor {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .editor-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n border-bottom: 1px solid var(--mat-sys-outline-variant);\n background: var(--mat-sys-surface);\n flex-shrink: 0;\n gap: 8px;\n }\n\n .header-title {\n font-weight: 600;\n font-size: 13px;\n color: var(--mat-sys-on-surface);\n white-space: nowrap;\n }\n\n .header-title i {\n margin-right: 6px;\n color: var(--mat-sys-primary);\n }\n\n .header-right {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .action-buttons {\n display: flex;\n gap: 6px;\n }\n\n .action-btn {\n font-size: 12px;\n }\n\n .mode-toggle {\n display: inline-flex;\n border: 1px solid var(--mat-sys-outline);\n border-radius: 8px;\n overflow: hidden;\n }\n\n .mode-btn {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n border: none;\n background: transparent;\n color: var(--mat-sys-on-surface-variant);\n font-size: 11px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n font-family: inherit;\n }\n\n .mode-btn:not(:last-child) {\n border-right: 1px solid var(--mat-sys-outline);\n }\n\n .mode-btn:hover {\n background: var(--mat-sys-surface-container);\n }\n\n .mode-btn.active {\n background: var(--mat-sys-primary);\n color: var(--mat-sys-on-primary, #fff);\n }\n\n .mode-btn i {\n font-size: 10px;\n }\n\n .editor-body {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .preview-container {\n flex: 1;\n overflow: auto;\n padding: 16px 20px;\n }\n\n .code-editor-container {\n flex: 1;\n overflow: hidden;\n }\n\n .code-editor-container mj-code-editor {\n display: block;\n height: 100%;\n }\n\n .empty-preview {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n color: var(--mat-sys-on-surface-variant);\n }\n\n .empty-preview i {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.4;\n }\n\n .empty-preview p {\n margin: 0 0 12px;\n font-size: 13px;\n }\n\n .edit-link {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 6px 14px;\n border: 1px solid var(--mat-sys-outline);\n border-radius: 8px;\n background: transparent;\n color: var(--mat-sys-primary);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n font-family: inherit;\n }\n\n .edit-link:hover {\n background: var(--mat-sys-primary-container, #e0e7ff);\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n color: var(--mat-sys-on-surface-variant);\n flex: 1;\n }\n\n .empty-state i {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.4;\n }\n\n .empty-state p {\n margin: 0;\n font-size: 13px;\n text-align: center;\n }\n "] }]
257
+ }], () => [{ type: i1.ComponentStudioStateService }, { type: i0.ChangeDetectorRef }], { Field: [{
258
+ type: Input
259
+ }], Title: [{
260
+ type: Input
261
+ }] }); })();
262
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RequirementsEditorComponent, { className: "RequirementsEditorComponent", filePath: "src/ComponentStudio/components/editors/requirements-editor.component.ts", lineNumber: 246 }); })();
263
+ //# sourceMappingURL=requirements-editor.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirements-editor.component.js","sourceRoot":"","sources":["../../../../src/ComponentStudio/components/editors/requirements-editor.component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
2
+ import { ComponentStudioStateService } from '../../services/component-studio-state.service';
3
+ import * as i0 from "@angular/core";
4
+ type SpecEditorMode = 'form' | 'json';
5
+ interface SpecFormModel {
6
+ name: string;
7
+ title: string;
8
+ description: string;
9
+ type: string;
10
+ location: string;
11
+ exampleUsage: string;
12
+ }
13
+ export declare class SpecEditorComponent implements OnInit, OnDestroy {
14
+ State: ComponentStudioStateService;
15
+ private cdr;
16
+ Mode: SpecEditorMode;
17
+ FormModel: SpecFormModel;
18
+ ComponentTypes: string[];
19
+ private stateChangedSub;
20
+ constructor(State: ComponentStudioStateService, cdr: ChangeDetectorRef);
21
+ ngOnInit(): void;
22
+ ngOnDestroy(): void;
23
+ SetMode(mode: SpecEditorMode): void;
24
+ OnFormChanged(): void;
25
+ OnJsonChanged(): void;
26
+ ApplyChanges(): void;
27
+ CancelChanges(): void;
28
+ private syncSpecToForm;
29
+ private syncFormToSpec;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<SpecEditorComponent, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecEditorComponent, "mj-spec-editor", never, {}, {}, never, never, false, never>;
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=spec-editor.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-editor.component.d.ts","sourceRoot":"","sources":["../../../../src/ComponentStudio/components/editors/spec-editor.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;;AAE5F,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtC,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,qBA+Oa,mBAAoB,YAAW,MAAM,EAAE,SAAS;IAQlD,KAAK,EAAE,2BAA2B;IACzC,OAAO,CAAC,GAAG;IARb,IAAI,EAAE,cAAc,CAAU;IAC9B,SAAS,EAAE,aAAa,CAAsF;IAC9G,cAAc,EAAE,MAAM,EAAE,CAAmB;IAE3C,OAAO,CAAC,eAAe,CAA6B;gBAG3C,KAAK,EAAE,2BAA2B,EACjC,GAAG,EAAE,iBAAiB;IAGhC,QAAQ,IAAI,IAAI;IAUhB,WAAW,IAAI,IAAI;IAOnB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IASnC,aAAa,IAAI,IAAI;IAKrB,aAAa,IAAI,IAAI;IAIrB,YAAY,IAAI,IAAI;IAOpB,aAAa,IAAI,IAAI;IAMrB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,cAAc;yCA5EX,mBAAmB;2CAAnB,mBAAmB;CA0F/B"}