@memberjunction/ng-dashboards 5.34.0 → 5.35.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 (348) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +51 -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 +399 -292
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
  6. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
  7. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
  8. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  9. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +75 -0
  10. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/analytics/ai-analytics-resource.component.js +400 -89
  12. package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
  13. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
  14. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
  15. package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
  16. package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
  17. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
  18. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  19. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
  20. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  21. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
  22. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
  23. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
  24. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
  25. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  26. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
  27. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  28. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
  29. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  30. package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
  31. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  32. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  33. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
  34. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  35. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  36. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
  37. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  38. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +990 -992
  39. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  40. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
  41. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  42. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
  43. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  44. package/dist/AI/components/models/model-management.component.d.ts +17 -0
  45. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  46. package/dist/AI/components/models/model-management.component.js +370 -425
  47. package/dist/AI/components/models/model-management.component.js.map +1 -1
  48. package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
  49. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.js +317 -357
  51. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  52. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
  53. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  54. package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
  55. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  56. package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
  57. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  58. package/dist/AI/components/system/system-configuration.component.js +403 -362
  59. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  60. package/dist/AI/components/tags/tags-resource.component.js +781 -783
  61. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  62. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
  63. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
  65. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  66. package/dist/Actions/components/actions-overview.component.d.ts +6 -0
  67. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  68. package/dist/Actions/components/actions-overview.component.js +79 -30
  69. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  70. package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
  71. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  72. package/dist/Actions/components/execution-monitoring.component.js +196 -142
  73. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  74. package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
  75. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  76. package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
  77. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  78. package/dist/Actions/components/explorer/index.d.ts +0 -1
  79. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  80. package/dist/Actions/components/explorer/index.js +0 -1
  81. package/dist/Actions/components/explorer/index.js.map +1 -1
  82. package/dist/Admin/admin-data-schema.component.js +32 -40
  83. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  84. package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
  85. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  86. package/dist/Admin/admin-identity-access.component.js +32 -40
  87. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  88. package/dist/Admin/admin-monitoring.component.js +32 -40
  89. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  90. package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
  91. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  92. package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
  93. package/dist/Archiving/components/archive-config-resource.component.js +24 -5
  94. package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
  95. package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
  96. package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
  97. package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
  98. package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
  99. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  100. package/dist/Communication/communication-logs-resource.component.js +80 -99
  101. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  102. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  103. package/dist/Communication/communication-monitor-resource.component.js +127 -106
  104. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  105. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  106. package/dist/Communication/communication-providers-resource.component.js +44 -45
  107. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  108. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  109. package/dist/Communication/communication-runs-resource.component.js +60 -58
  110. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  111. package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
  112. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  113. package/dist/Communication/communication-templates-resource.component.js +139 -162
  114. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  115. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
  116. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  117. package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
  118. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  119. package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
  120. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  121. package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
  122. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  123. package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
  124. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  125. package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
  126. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  127. package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
  128. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  129. package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
  130. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  131. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
  132. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
  133. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
  134. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
  135. package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
  136. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  137. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
  138. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  139. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
  140. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  141. package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
  142. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  143. package/dist/Home/home-dashboard.component.d.ts +6 -0
  144. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  145. package/dist/Home/home-dashboard.component.js +521 -485
  146. package/dist/Home/home-dashboard.component.js.map +1 -1
  147. package/dist/Integration/components/activity/activity.component.d.ts +8 -0
  148. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  149. package/dist/Integration/components/activity/activity.component.js +309 -318
  150. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  151. package/dist/Integration/components/connections/connections.component.js +866 -847
  152. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  153. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
  154. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  155. package/dist/Integration/components/overview/overview.component.js +182 -163
  156. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  157. package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
  158. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  159. package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
  160. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  161. package/dist/Integration/components/schedules/schedules.component.js +241 -241
  162. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  163. package/dist/Integration/integration.module.d.ts +1 -1
  164. package/dist/Integration/integration.module.d.ts.map +1 -1
  165. package/dist/Integration/integration.module.js +28 -1
  166. package/dist/Integration/integration.module.js.map +1 -1
  167. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
  168. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  169. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
  170. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  171. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
  172. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  173. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
  174. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
  175. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
  176. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  177. package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
  178. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  179. package/dist/Lists/components/lists-browse-resource.component.js +486 -532
  180. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  181. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  182. package/dist/Lists/components/lists-categories-resource.component.js +152 -160
  183. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  184. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  185. package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
  186. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  187. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  188. package/dist/Lists/components/lists-operations-resource.component.js +234 -246
  189. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  190. package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
  191. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  192. package/dist/MCP/mcp-dashboard.component.js +1248 -1338
  193. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  194. package/dist/MCP/mcp.module.d.ts +1 -1
  195. package/dist/MCP/mcp.module.d.ts.map +1 -1
  196. package/dist/MCP/mcp.module.js +34 -1
  197. package/dist/MCP/mcp.module.js.map +1 -1
  198. package/dist/Permissions/audit-log-resource.component.js +76 -85
  199. package/dist/Permissions/audit-log-resource.component.js.map +1 -1
  200. package/dist/Permissions/resource-access-resource.component.js +64 -69
  201. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  202. package/dist/Permissions/user-access-resource.component.js +63 -74
  203. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  204. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  205. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  206. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
  207. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  208. package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
  209. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  210. package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
  211. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  212. package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
  213. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  214. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
  215. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  216. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
  217. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  218. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
  219. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  220. package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
  221. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  222. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
  223. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  224. package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
  225. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  226. package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
  227. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  228. package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
  229. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  230. package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
  231. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  232. package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
  233. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  234. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +4 -0
  235. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  236. package/dist/SystemDiagnostics/system-diagnostics.component.js +812 -784
  237. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  238. package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
  239. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  240. package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
  241. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  242. package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
  243. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  244. package/dist/Testing/components/testing-analytics.component.js +420 -393
  245. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  246. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  247. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  248. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
  249. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  250. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
  251. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  252. package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
  253. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  254. package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
  255. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  256. package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
  257. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  258. package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
  259. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  260. package/dist/Testing/components/testing-explorer.component.js +587 -608
  261. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  262. package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
  263. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  264. package/dist/Testing/components/testing-review-resource.component.js +9 -12
  265. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  266. package/dist/Testing/components/testing-review.component.d.ts +3 -1
  267. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  268. package/dist/Testing/components/testing-review.component.js +310 -274
  269. package/dist/Testing/components/testing-review.component.js.map +1 -1
  270. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  271. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  272. package/dist/Testing/components/testing-runs-resource.component.js +16 -19
  273. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  274. package/dist/Testing/components/testing-runs.component.d.ts +3 -1
  275. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  276. package/dist/Testing/components/testing-runs.component.js +307 -273
  277. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  278. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  279. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  280. package/dist/Testing/testing-dashboard.component.js +107 -93
  281. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  282. package/dist/VersionHistory/components/diff-resource.component.js +185 -188
  283. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  284. package/dist/VersionHistory/components/graph-resource.component.js +154 -184
  285. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  286. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
  287. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  288. package/dist/VersionHistory/components/labels-resource.component.js +350 -354
  289. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  290. package/dist/VersionHistory/components/restore-resource.component.js +163 -169
  291. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  292. package/dist/actions-dashboards.module.d.ts +15 -16
  293. package/dist/actions-dashboards.module.d.ts.map +1 -1
  294. package/dist/actions-dashboards.module.js +34 -11
  295. package/dist/actions-dashboards.module.js.map +1 -1
  296. package/dist/ai-dashboards.module.d.ts +45 -48
  297. package/dist/ai-dashboards.module.d.ts.map +1 -1
  298. package/dist/ai-dashboards.module.js +36 -10
  299. package/dist/ai-dashboards.module.js.map +1 -1
  300. package/dist/archiving-dashboards.module.d.ts +2 -1
  301. package/dist/archiving-dashboards.module.d.ts.map +1 -1
  302. package/dist/archiving-dashboards.module.js +12 -2
  303. package/dist/archiving-dashboards.module.js.map +1 -1
  304. package/dist/communication-dashboards.module.d.ts +2 -1
  305. package/dist/communication-dashboards.module.d.ts.map +1 -1
  306. package/dist/communication-dashboards.module.js +24 -3
  307. package/dist/communication-dashboards.module.js.map +1 -1
  308. package/dist/core-dashboards.module.d.ts +1 -1
  309. package/dist/core-dashboards.module.d.ts.map +1 -1
  310. package/dist/core-dashboards.module.js +31 -1
  311. package/dist/core-dashboards.module.js.map +1 -1
  312. package/dist/credentials-dashboards.module.d.ts +1 -1
  313. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  314. package/dist/credentials-dashboards.module.js +28 -1
  315. package/dist/credentials-dashboards.module.js.map +1 -1
  316. package/dist/lists-dashboards.module.d.ts +1 -1
  317. package/dist/lists-dashboards.module.d.ts.map +1 -1
  318. package/dist/lists-dashboards.module.js +28 -1
  319. package/dist/lists-dashboards.module.js.map +1 -1
  320. package/dist/public-api.d.ts +2 -2
  321. package/dist/public-api.d.ts.map +1 -1
  322. package/dist/public-api.js +3 -3
  323. package/dist/public-api.js.map +1 -1
  324. package/dist/scheduling-dashboards.module.d.ts +1 -1
  325. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  326. package/dist/scheduling-dashboards.module.js +31 -1
  327. package/dist/scheduling-dashboards.module.js.map +1 -1
  328. package/dist/testing-dashboards.module.d.ts +8 -7
  329. package/dist/testing-dashboards.module.d.ts.map +1 -1
  330. package/dist/testing-dashboards.module.js +30 -0
  331. package/dist/testing-dashboards.module.js.map +1 -1
  332. package/package.json +52 -52
  333. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
  334. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
  335. package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
  336. package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
  337. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
  338. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
  339. package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
  340. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
  341. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
  342. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
  343. package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
  344. package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
  345. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
  346. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
  347. package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
  348. package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Component, ChangeDetectionStrategy, ViewChild } from '@angular/core';
8
8
  import { Subject } from 'rxjs';
9
- import { takeUntil, debounceTime, combineLatestWith } from 'rxjs/operators';
9
+ import { takeUntil, debounceTime, distinctUntilChanged, combineLatestWith } from 'rxjs/operators';
10
10
  import { CompositeKey, LogError, RunView } from '@memberjunction/core';
11
11
  import { ActionEngineBase } from '@memberjunction/actions-base';
12
12
  import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
@@ -19,139 +19,262 @@ import * as i2 from "@memberjunction/ng-ui-components";
19
19
  import * as i3 from "@memberjunction/ng-actions";
20
20
  import * as i4 from "@memberjunction/ng-shared-generic";
21
21
  import * as i5 from "./action-tree-panel.component";
22
- import * as i6 from "./action-toolbar.component";
23
- import * as i7 from "./action-breadcrumb.component";
24
- import * as i8 from "./action-card.component";
25
- import * as i9 from "./action-list-item.component";
26
- import * as i10 from "./new-category-panel.component";
27
- import * as i11 from "./new-action-panel.component";
28
- const _forTrack0 = ($index, $item) => $item.ID;
29
- function ActionExplorerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
30
- i0.ɵɵelementStart(0, "div", 1);
31
- i0.ɵɵelement(1, "mj-loading", 11);
22
+ import * as i6 from "./action-breadcrumb.component";
23
+ import * as i7 from "./action-card.component";
24
+ import * as i8 from "./action-list-item.component";
25
+ import * as i9 from "./new-category-panel.component";
26
+ import * as i10 from "./new-action-panel.component";
27
+ const _forTrack0 = ($index, $item) => $item.value;
28
+ const _forTrack1 = ($index, $item) => $item.field;
29
+ const _forTrack2 = ($index, $item) => $item.ID;
30
+ function ActionExplorerComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
31
+ const _r1 = i0.ɵɵgetCurrentView();
32
+ i0.ɵɵelementStart(0, "button", 31);
33
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.StateService.setStatusFilter([])); });
34
+ i0.ɵɵtext(1, "Clear");
32
35
  i0.ɵɵelementEnd();
33
36
  } }
34
- function ActionExplorerComponent_Conditional_7_Conditional_1_Template(rf, ctx) { if (rf & 1) {
35
- const _r1 = i0.ɵɵgetCurrentView();
36
- i0.ɵɵelement(0, "i", 12);
37
+ function ActionExplorerComponent_For_13_Template(rf, ctx) { if (rf & 1) {
38
+ const _r3 = i0.ɵɵgetCurrentView();
39
+ i0.ɵɵelementStart(0, "label", 32)(1, "input", 33);
40
+ i0.ɵɵlistener("change", function ActionExplorerComponent_For_13_Template_input_change_1_listener() { const status_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleStatus(status_r4.value)); });
41
+ i0.ɵɵelementEnd();
42
+ i0.ɵɵelement(2, "span", 34);
43
+ i0.ɵɵtext(3);
44
+ i0.ɵɵelementEnd();
45
+ } if (rf & 2) {
46
+ const status_r4 = ctx.$implicit;
47
+ const ctx_r1 = i0.ɵɵnextContext();
48
+ i0.ɵɵclassProp("selected", ctx_r1.isStatusSelected(status_r4.value));
49
+ i0.ɵɵadvance();
50
+ i0.ɵɵproperty("checked", ctx_r1.isStatusSelected(status_r4.value));
51
+ i0.ɵɵadvance();
52
+ i0.ɵɵattribute("data-status", status_r4.value);
53
+ i0.ɵɵadvance();
54
+ i0.ɵɵtextInterpolate1(" ", status_r4.label, " ");
55
+ } }
56
+ function ActionExplorerComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
57
+ const _r5 = i0.ɵɵgetCurrentView();
58
+ i0.ɵɵelementStart(0, "button", 31);
59
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_18_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.StateService.setTypeFilter([])); });
60
+ i0.ɵɵtext(1, "Clear");
61
+ i0.ɵɵelementEnd();
62
+ } }
63
+ function ActionExplorerComponent_For_21_Template(rf, ctx) { if (rf & 1) {
64
+ const _r6 = i0.ɵɵgetCurrentView();
65
+ i0.ɵɵelementStart(0, "label", 32)(1, "input", 33);
66
+ i0.ɵɵlistener("change", function ActionExplorerComponent_For_21_Template_input_change_1_listener() { const type_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleType(type_r7.value)); });
67
+ i0.ɵɵelementEnd();
68
+ i0.ɵɵelement(2, "i");
69
+ i0.ɵɵtext(3);
70
+ i0.ɵɵelementEnd();
71
+ } if (rf & 2) {
72
+ const type_r7 = ctx.$implicit;
73
+ const ctx_r1 = i0.ɵɵnextContext();
74
+ i0.ɵɵclassProp("selected", ctx_r1.isTypeSelected(type_r7.value));
75
+ i0.ɵɵadvance();
76
+ i0.ɵɵproperty("checked", ctx_r1.isTypeSelected(type_r7.value));
77
+ i0.ɵɵadvance();
78
+ i0.ɵɵclassMap(type_r7.icon);
79
+ i0.ɵɵadvance();
80
+ i0.ɵɵtextInterpolate1(" ", type_r7.label, " ");
81
+ } }
82
+ function ActionExplorerComponent_Conditional_27_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
83
+ i0.ɵɵelement(0, "i", 38);
84
+ } if (rf & 2) {
85
+ const ctx_r1 = i0.ɵɵnextContext(3);
86
+ i0.ɵɵclassMap(ctx_r1.SortDirection === "asc" ? "fa-solid fa-arrow-up" : "fa-solid fa-arrow-down");
87
+ } }
88
+ function ActionExplorerComponent_Conditional_27_For_2_Template(rf, ctx) { if (rf & 1) {
89
+ const _r8 = i0.ɵɵgetCurrentView();
90
+ i0.ɵɵelementStart(0, "button", 36);
91
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_27_For_2_Template_button_click_0_listener() { const option_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setSortField(option_r9.field)); });
92
+ i0.ɵɵelement(1, "i");
93
+ i0.ɵɵtext(2);
94
+ i0.ɵɵconditionalCreate(3, ActionExplorerComponent_Conditional_27_For_2_Conditional_3_Template, 1, 2, "i", 37);
95
+ i0.ɵɵelementEnd();
96
+ } if (rf & 2) {
97
+ const option_r9 = ctx.$implicit;
98
+ const ctx_r1 = i0.ɵɵnextContext(2);
99
+ i0.ɵɵclassProp("selected", ctx_r1.SortField === option_r9.field);
100
+ i0.ɵɵadvance();
101
+ i0.ɵɵclassMap(option_r9.icon);
102
+ i0.ɵɵadvance();
103
+ i0.ɵɵtextInterpolate1(" ", option_r9.label, " ");
104
+ i0.ɵɵadvance();
105
+ i0.ɵɵconditional(ctx_r1.SortField === option_r9.field ? 3 : -1);
106
+ } }
107
+ function ActionExplorerComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
108
+ i0.ɵɵelementStart(0, "div", 12);
109
+ i0.ɵɵrepeaterCreate(1, ActionExplorerComponent_Conditional_27_For_2_Template, 4, 6, "button", 35, _forTrack1);
110
+ i0.ɵɵelementEnd();
111
+ } if (rf & 2) {
112
+ const ctx_r1 = i0.ɵɵnextContext();
113
+ i0.ɵɵadvance();
114
+ i0.ɵɵrepeater(ctx_r1.SortOptions);
115
+ } }
116
+ function ActionExplorerComponent_Conditional_35_For_2_Template(rf, ctx) { if (rf & 1) {
117
+ const _r10 = i0.ɵɵgetCurrentView();
118
+ i0.ɵɵelementStart(0, "span", 40);
119
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_35_For_2_Template_span_click_0_listener() { const status_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleStatus(status_r11)); });
120
+ i0.ɵɵtext(1);
121
+ i0.ɵɵelement(2, "i", 41);
122
+ i0.ɵɵelementEnd();
123
+ } if (rf & 2) {
124
+ const status_r11 = ctx.$implicit;
125
+ i0.ɵɵadvance();
126
+ i0.ɵɵtextInterpolate1(" Status: ", status_r11, " ");
127
+ } }
128
+ function ActionExplorerComponent_Conditional_35_For_4_Template(rf, ctx) { if (rf & 1) {
129
+ const _r12 = i0.ɵɵgetCurrentView();
130
+ i0.ɵɵelementStart(0, "span", 40);
131
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_35_For_4_Template_span_click_0_listener() { const type_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleType(type_r13)); });
132
+ i0.ɵɵtext(1);
133
+ i0.ɵɵelement(2, "i", 41);
134
+ i0.ɵɵelementEnd();
135
+ } if (rf & 2) {
136
+ const type_r13 = ctx.$implicit;
137
+ i0.ɵɵadvance();
138
+ i0.ɵɵtextInterpolate1(" Type: ", type_r13 === "Generated" ? "AI Generated" : type_r13, " ");
139
+ } }
140
+ function ActionExplorerComponent_Conditional_35_Template(rf, ctx) { if (rf & 1) {
141
+ i0.ɵɵelementStart(0, "div", 19);
142
+ i0.ɵɵrepeaterCreate(1, ActionExplorerComponent_Conditional_35_For_2_Template, 3, 1, "span", 39, i0.ɵɵrepeaterTrackByIdentity);
143
+ i0.ɵɵrepeaterCreate(3, ActionExplorerComponent_Conditional_35_For_4_Template, 3, 1, "span", 39, i0.ɵɵrepeaterTrackByIdentity);
144
+ i0.ɵɵelementEnd();
145
+ } if (rf & 2) {
146
+ const ctx_r1 = i0.ɵɵnextContext();
147
+ i0.ɵɵadvance();
148
+ i0.ɵɵrepeater(ctx_r1.Filters.statuses);
149
+ i0.ɵɵadvance(2);
150
+ i0.ɵɵrepeater(ctx_r1.Filters.types);
151
+ } }
152
+ function ActionExplorerComponent_Conditional_38_Template(rf, ctx) { if (rf & 1) {
153
+ i0.ɵɵelementStart(0, "div", 22);
154
+ i0.ɵɵelement(1, "mj-loading", 42);
155
+ i0.ɵɵelementEnd();
156
+ } }
157
+ function ActionExplorerComponent_Conditional_43_Conditional_1_Template(rf, ctx) { if (rf & 1) {
158
+ const _r14 = i0.ɵɵgetCurrentView();
159
+ i0.ɵɵelement(0, "i", 43);
37
160
  i0.ɵɵelementStart(1, "h3");
38
161
  i0.ɵɵtext(2, "No actions match your filters");
39
162
  i0.ɵɵelementEnd();
40
163
  i0.ɵɵelementStart(3, "p");
41
164
  i0.ɵɵtext(4, "Try adjusting your search or filter criteria");
42
165
  i0.ɵɵelementEnd();
43
- i0.ɵɵelementStart(5, "button", 13);
44
- i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_7_Conditional_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.StateService.clearFilters(); return i0.ɵɵresetView(ctx_r1.StateService.setSelectedCategoryId("all")); });
45
- i0.ɵɵelement(6, "i", 14);
166
+ i0.ɵɵelementStart(5, "button", 44);
167
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_43_Conditional_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.StateService.clearFilters(); return i0.ɵɵresetView(ctx_r1.StateService.setSelectedCategoryId("all")); });
168
+ i0.ɵɵelement(6, "i", 41);
46
169
  i0.ɵɵtext(7, " Clear All Filters ");
47
170
  i0.ɵɵelementEnd();
48
171
  } }
49
- function ActionExplorerComponent_Conditional_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
50
- const _r3 = i0.ɵɵgetCurrentView();
51
- i0.ɵɵelement(0, "i", 15);
172
+ function ActionExplorerComponent_Conditional_43_Conditional_2_Template(rf, ctx) { if (rf & 1) {
173
+ const _r15 = i0.ɵɵgetCurrentView();
174
+ i0.ɵɵelement(0, "i", 45);
52
175
  i0.ɵɵelementStart(1, "h3");
53
176
  i0.ɵɵtext(2, "No actions yet");
54
177
  i0.ɵɵelementEnd();
55
178
  i0.ɵɵelementStart(3, "p");
56
179
  i0.ɵɵtext(4, "Create your first action to get started");
57
180
  i0.ɵɵelementEnd();
58
- i0.ɵɵelementStart(5, "button", 16);
59
- i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_7_Conditional_2_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onNewAction()); });
60
- i0.ɵɵelement(6, "i", 17);
181
+ i0.ɵɵelementStart(5, "button", 46);
182
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_43_Conditional_2_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onNewAction()); });
183
+ i0.ɵɵelement(6, "i", 16);
61
184
  i0.ɵɵtext(7, " Create Action ");
62
185
  i0.ɵɵelementEnd();
63
186
  } }
64
- function ActionExplorerComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
65
- i0.ɵɵelementStart(0, "div", 7);
66
- i0.ɵɵconditionalCreate(1, ActionExplorerComponent_Conditional_7_Conditional_1_Template, 8, 0)(2, ActionExplorerComponent_Conditional_7_Conditional_2_Template, 8, 0);
187
+ function ActionExplorerComponent_Conditional_43_Template(rf, ctx) { if (rf & 1) {
188
+ i0.ɵɵelementStart(0, "div", 27);
189
+ i0.ɵɵconditionalCreate(1, ActionExplorerComponent_Conditional_43_Conditional_1_Template, 8, 0)(2, ActionExplorerComponent_Conditional_43_Conditional_2_Template, 8, 0);
67
190
  i0.ɵɵelementEnd();
68
191
  } if (rf & 2) {
69
192
  const ctx_r1 = i0.ɵɵnextContext();
70
193
  i0.ɵɵadvance();
71
194
  i0.ɵɵconditional(ctx_r1.StateService.hasActiveFilters() || ctx_r1.SelectedCategoryId !== "all" ? 1 : 2);
72
195
  } }
73
- function ActionExplorerComponent_Conditional_8_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
74
- const _r4 = i0.ɵɵgetCurrentView();
75
- i0.ɵɵelementStart(0, "mj-action-card", 22);
76
- i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_8_Conditional_0_For_2_Template_mj_action_card_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_8_Conditional_0_For_2_Template_mj_action_card_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_8_Conditional_0_For_2_Template_mj_action_card_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_8_Conditional_0_For_2_Template_mj_action_card_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
196
+ function ActionExplorerComponent_Conditional_44_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
197
+ const _r16 = i0.ɵɵgetCurrentView();
198
+ i0.ɵɵelementStart(0, "mj-action-card", 51);
199
+ i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_44_Conditional_0_For_2_Template_mj_action_card_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_44_Conditional_0_For_2_Template_mj_action_card_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_44_Conditional_0_For_2_Template_mj_action_card_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_44_Conditional_0_For_2_Template_mj_action_card_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
77
200
  i0.ɵɵelementEnd();
78
201
  } if (rf & 2) {
79
- const action_r5 = ctx.$implicit;
202
+ const action_r17 = ctx.$implicit;
80
203
  const ctx_r1 = i0.ɵɵnextContext(3);
81
- i0.ɵɵproperty("Action", action_r5)("Categories", ctx_r1.CategoriesMap);
204
+ i0.ɵɵproperty("Action", action_r17)("Categories", ctx_r1.CategoriesMap);
82
205
  } }
83
- function ActionExplorerComponent_Conditional_8_Conditional_0_Template(rf, ctx) { if (rf & 1) {
84
- i0.ɵɵelementStart(0, "div", 18);
85
- i0.ɵɵrepeaterCreate(1, ActionExplorerComponent_Conditional_8_Conditional_0_For_2_Template, 1, 2, "mj-action-card", 21, _forTrack0);
206
+ function ActionExplorerComponent_Conditional_44_Conditional_0_Template(rf, ctx) { if (rf & 1) {
207
+ i0.ɵɵelementStart(0, "div", 47);
208
+ i0.ɵɵrepeaterCreate(1, ActionExplorerComponent_Conditional_44_Conditional_0_For_2_Template, 1, 2, "mj-action-card", 50, _forTrack2);
86
209
  i0.ɵɵelementEnd();
87
210
  } if (rf & 2) {
88
211
  const ctx_r1 = i0.ɵɵnextContext(2);
89
212
  i0.ɵɵadvance();
90
213
  i0.ɵɵrepeater(ctx_r1.FilteredActions);
91
214
  } }
92
- function ActionExplorerComponent_Conditional_8_Conditional_1_For_17_Template(rf, ctx) { if (rf & 1) {
93
- const _r6 = i0.ɵɵgetCurrentView();
94
- i0.ɵɵelementStart(0, "mj-action-list-item", 33);
95
- i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_8_Conditional_1_For_17_Template_mj_action_list_item_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_8_Conditional_1_For_17_Template_mj_action_list_item_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_8_Conditional_1_For_17_Template_mj_action_list_item_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_8_Conditional_1_For_17_Template_mj_action_list_item_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
215
+ function ActionExplorerComponent_Conditional_44_Conditional_1_For_17_Template(rf, ctx) { if (rf & 1) {
216
+ const _r18 = i0.ɵɵgetCurrentView();
217
+ i0.ɵɵelementStart(0, "mj-action-list-item", 62);
218
+ i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_44_Conditional_1_For_17_Template_mj_action_list_item_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_44_Conditional_1_For_17_Template_mj_action_list_item_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_44_Conditional_1_For_17_Template_mj_action_list_item_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_44_Conditional_1_For_17_Template_mj_action_list_item_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
96
219
  i0.ɵɵelementEnd();
97
220
  } if (rf & 2) {
98
- const action_r7 = ctx.$implicit;
221
+ const action_r19 = ctx.$implicit;
99
222
  const ctx_r1 = i0.ɵɵnextContext(3);
100
- i0.ɵɵproperty("Action", action_r7)("Categories", ctx_r1.CategoriesMap)("IsCompact", false);
223
+ i0.ɵɵproperty("Action", action_r19)("Categories", ctx_r1.CategoriesMap)("IsCompact", false);
101
224
  } }
102
- function ActionExplorerComponent_Conditional_8_Conditional_1_Template(rf, ctx) { if (rf & 1) {
103
- i0.ɵɵelementStart(0, "div", 19)(1, "div", 23);
104
- i0.ɵɵelement(2, "div", 24);
105
- i0.ɵɵelementStart(3, "div", 25);
225
+ function ActionExplorerComponent_Conditional_44_Conditional_1_Template(rf, ctx) { if (rf & 1) {
226
+ i0.ɵɵelementStart(0, "div", 48)(1, "div", 52);
227
+ i0.ɵɵelement(2, "div", 53);
228
+ i0.ɵɵelementStart(3, "div", 54);
106
229
  i0.ɵɵtext(4, "Name");
107
230
  i0.ɵɵelementEnd();
108
- i0.ɵɵelementStart(5, "div", 26);
231
+ i0.ɵɵelementStart(5, "div", 55);
109
232
  i0.ɵɵtext(6, "Category");
110
233
  i0.ɵɵelementEnd();
111
- i0.ɵɵelementStart(7, "div", 27);
234
+ i0.ɵɵelementStart(7, "div", 56);
112
235
  i0.ɵɵtext(8, "Status");
113
236
  i0.ɵɵelementEnd();
114
- i0.ɵɵelementStart(9, "div", 28);
237
+ i0.ɵɵelementStart(9, "div", 57);
115
238
  i0.ɵɵtext(10, "Type");
116
239
  i0.ɵɵelementEnd();
117
- i0.ɵɵelementStart(11, "div", 29);
240
+ i0.ɵɵelementStart(11, "div", 58);
118
241
  i0.ɵɵtext(12, "Params");
119
242
  i0.ɵɵelementEnd();
120
- i0.ɵɵelementStart(13, "div", 30);
243
+ i0.ɵɵelementStart(13, "div", 59);
121
244
  i0.ɵɵtext(14, "Updated");
122
245
  i0.ɵɵelementEnd();
123
- i0.ɵɵelement(15, "div", 31);
246
+ i0.ɵɵelement(15, "div", 60);
124
247
  i0.ɵɵelementEnd();
125
- i0.ɵɵrepeaterCreate(16, ActionExplorerComponent_Conditional_8_Conditional_1_For_17_Template, 1, 3, "mj-action-list-item", 32, _forTrack0);
248
+ i0.ɵɵrepeaterCreate(16, ActionExplorerComponent_Conditional_44_Conditional_1_For_17_Template, 1, 3, "mj-action-list-item", 61, _forTrack2);
126
249
  i0.ɵɵelementEnd();
127
250
  } if (rf & 2) {
128
251
  const ctx_r1 = i0.ɵɵnextContext(2);
129
252
  i0.ɵɵadvance(16);
130
253
  i0.ɵɵrepeater(ctx_r1.FilteredActions);
131
254
  } }
132
- function ActionExplorerComponent_Conditional_8_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
133
- const _r8 = i0.ɵɵgetCurrentView();
134
- i0.ɵɵelementStart(0, "mj-action-list-item", 33);
135
- i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_8_Conditional_2_For_2_Template_mj_action_list_item_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_8_Conditional_2_For_2_Template_mj_action_list_item_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_8_Conditional_2_For_2_Template_mj_action_list_item_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_8_Conditional_2_For_2_Template_mj_action_list_item_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
255
+ function ActionExplorerComponent_Conditional_44_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
256
+ const _r20 = i0.ɵɵgetCurrentView();
257
+ i0.ɵɵelementStart(0, "mj-action-list-item", 62);
258
+ i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_44_Conditional_2_For_2_Template_mj_action_list_item_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_44_Conditional_2_For_2_Template_mj_action_list_item_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_44_Conditional_2_For_2_Template_mj_action_list_item_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_44_Conditional_2_For_2_Template_mj_action_list_item_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
136
259
  i0.ɵɵelementEnd();
137
260
  } if (rf & 2) {
138
- const action_r9 = ctx.$implicit;
261
+ const action_r21 = ctx.$implicit;
139
262
  const ctx_r1 = i0.ɵɵnextContext(3);
140
- i0.ɵɵproperty("Action", action_r9)("Categories", ctx_r1.CategoriesMap)("IsCompact", true);
263
+ i0.ɵɵproperty("Action", action_r21)("Categories", ctx_r1.CategoriesMap)("IsCompact", true);
141
264
  } }
142
- function ActionExplorerComponent_Conditional_8_Conditional_2_Template(rf, ctx) { if (rf & 1) {
143
- i0.ɵɵelementStart(0, "div", 20);
144
- i0.ɵɵrepeaterCreate(1, ActionExplorerComponent_Conditional_8_Conditional_2_For_2_Template, 1, 3, "mj-action-list-item", 32, _forTrack0);
265
+ function ActionExplorerComponent_Conditional_44_Conditional_2_Template(rf, ctx) { if (rf & 1) {
266
+ i0.ɵɵelementStart(0, "div", 49);
267
+ i0.ɵɵrepeaterCreate(1, ActionExplorerComponent_Conditional_44_Conditional_2_For_2_Template, 1, 3, "mj-action-list-item", 61, _forTrack2);
145
268
  i0.ɵɵelementEnd();
146
269
  } if (rf & 2) {
147
270
  const ctx_r1 = i0.ɵɵnextContext(2);
148
271
  i0.ɵɵadvance();
149
272
  i0.ɵɵrepeater(ctx_r1.FilteredActions);
150
273
  } }
151
- function ActionExplorerComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
152
- i0.ɵɵconditionalCreate(0, ActionExplorerComponent_Conditional_8_Conditional_0_Template, 3, 0, "div", 18);
153
- i0.ɵɵconditionalCreate(1, ActionExplorerComponent_Conditional_8_Conditional_1_Template, 18, 0, "div", 19);
154
- i0.ɵɵconditionalCreate(2, ActionExplorerComponent_Conditional_8_Conditional_2_Template, 3, 0, "div", 20);
274
+ function ActionExplorerComponent_Conditional_44_Template(rf, ctx) { if (rf & 1) {
275
+ i0.ɵɵconditionalCreate(0, ActionExplorerComponent_Conditional_44_Conditional_0_Template, 3, 0, "div", 47);
276
+ i0.ɵɵconditionalCreate(1, ActionExplorerComponent_Conditional_44_Conditional_1_Template, 18, 0, "div", 48);
277
+ i0.ɵɵconditionalCreate(2, ActionExplorerComponent_Conditional_44_Conditional_2_Template, 3, 0, "div", 49);
155
278
  } if (rf & 2) {
156
279
  const ctx_r1 = i0.ɵɵnextContext();
157
280
  i0.ɵɵconditional(ctx_r1.ViewMode === "card" ? 0 : -1);
@@ -160,10 +283,10 @@ function ActionExplorerComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
160
283
  i0.ɵɵadvance();
161
284
  i0.ɵɵconditional(ctx_r1.ViewMode === "compact" ? 2 : -1);
162
285
  } }
163
- function ActionExplorerComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
164
- const _r10 = i0.ɵɵgetCurrentView();
165
- i0.ɵɵelementStart(0, "mj-action-test-harness-dialog", 34);
166
- i0.ɵɵlistener("Close", function ActionExplorerComponent_Conditional_11_Template_mj_action_test_harness_dialog_Close_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnRunDialogClose()); });
286
+ function ActionExplorerComponent_Conditional_47_Template(rf, ctx) { if (rf & 1) {
287
+ const _r22 = i0.ɵɵgetCurrentView();
288
+ i0.ɵɵelementStart(0, "mj-action-test-harness-dialog", 63);
289
+ i0.ɵɵlistener("Close", function ActionExplorerComponent_Conditional_47_Template_mj_action_test_harness_dialog_Close_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnRunDialogClose()); });
167
290
  i0.ɵɵelementEnd();
168
291
  } if (rf & 2) {
169
292
  const ctx_r1 = i0.ɵɵnextContext();
@@ -179,13 +302,46 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
179
302
  Categories = [];
180
303
  CategoriesMap = new Map();
181
304
  ViewMode = 'card';
305
+ SortField = 'name';
306
+ SortDirection = 'asc';
307
+ Filters = {
308
+ searchTerm: '',
309
+ statuses: [],
310
+ types: [],
311
+ approvalStatuses: [],
312
+ hasExecutions: null
313
+ };
314
+ ShowSortDropdown = false;
182
315
  SelectedCategoryId = 'all';
183
316
  NewCategoryParentId = null;
184
317
  // Run dialog state
185
318
  IsRunDialogOpen = false;
186
319
  SelectedActionForRun = null;
187
320
  SelectedActionParams = [];
321
+ // ───── Toolbar option arrays + helpers (consolidated from former mj-action-toolbar) ─────
322
+ ViewToggleOptions = [
323
+ { key: 'card', icon: 'fa-solid fa-grip', title: 'Card view' },
324
+ { key: 'list', icon: 'fa-solid fa-list', title: 'List view' },
325
+ { key: 'compact', icon: 'fa-solid fa-bars', title: 'Compact view' }
326
+ ];
327
+ SortOptions = [
328
+ { field: 'name', label: 'Name', icon: 'fa-solid fa-font' },
329
+ { field: 'updated', label: 'Last Updated', icon: 'fa-solid fa-clock' },
330
+ { field: 'status', label: 'Status', icon: 'fa-solid fa-circle-check' },
331
+ { field: 'type', label: 'Type', icon: 'fa-solid fa-tag' },
332
+ { field: 'category', label: 'Category', icon: 'fa-solid fa-folder' }
333
+ ];
334
+ StatusOptions = [
335
+ { value: 'Active', label: 'Active' },
336
+ { value: 'Pending', label: 'Pending' },
337
+ { value: 'Disabled', label: 'Disabled' }
338
+ ];
339
+ TypeOptions = [
340
+ { value: 'Generated', label: 'AI Generated', icon: 'fa-solid fa-robot' },
341
+ { value: 'Custom', label: 'Custom', icon: 'fa-solid fa-code' }
342
+ ];
188
343
  destroy$ = new Subject();
344
+ searchInput$ = new Subject();
189
345
  constructor(StateService, cdr) {
190
346
  super();
191
347
  this.StateService = StateService;
@@ -194,10 +350,16 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
194
350
  ngOnInit() {
195
351
  super.ngOnInit();
196
352
  this.subscribeToState();
353
+ this.setupSearchDebounce();
197
354
  this.applyQueryParams(this.GetQueryParams());
198
355
  this.StateService.loadSavedState();
199
356
  this.loadData();
200
357
  }
358
+ setupSearchDebounce() {
359
+ this.searchInput$.pipe(debounceTime(300), distinctUntilChanged(), takeUntil(this.destroy$)).subscribe(term => {
360
+ this.StateService.setSearchTerm(term);
361
+ });
362
+ }
201
363
  ngOnDestroy() {
202
364
  super.ngOnDestroy();
203
365
  this.destroy$.next();
@@ -217,7 +379,10 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
217
379
  this.cdr.markForCheck();
218
380
  });
219
381
  // Subscribe to filter and sort changes
220
- this.StateService.Filters$.pipe(combineLatestWith(this.StateService.SortConfig$), debounceTime(50), takeUntil(this.destroy$)).subscribe(() => {
382
+ this.StateService.Filters$.pipe(combineLatestWith(this.StateService.SortConfig$), debounceTime(50), takeUntil(this.destroy$)).subscribe(([filters, sort]) => {
383
+ this.Filters = filters;
384
+ this.SortField = sort.field;
385
+ this.SortDirection = sort.direction;
221
386
  this.applyFilters();
222
387
  this.UpdateQueryParams(this.StateService.buildQueryParams());
223
388
  this.cdr.markForCheck();
@@ -421,6 +586,65 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
421
586
  // Refresh data to include new action
422
587
  await this.loadData();
423
588
  }
589
+ // ───── Toolbar handlers (consolidated from former mj-action-toolbar) ─────
590
+ onSearchInput(term) {
591
+ this.searchInput$.next(term);
592
+ }
593
+ clearSearch() {
594
+ this.StateService.setSearchTerm('');
595
+ }
596
+ setViewMode(mode) {
597
+ this.StateService.setViewMode(mode);
598
+ }
599
+ setSortField(field) {
600
+ this.StateService.setSortField(field);
601
+ this.ShowSortDropdown = false;
602
+ }
603
+ toggleStatus(status) {
604
+ const current = [...this.Filters.statuses];
605
+ const i = current.indexOf(status);
606
+ if (i >= 0)
607
+ current.splice(i, 1);
608
+ else
609
+ current.push(status);
610
+ this.StateService.setStatusFilter(current);
611
+ }
612
+ toggleType(type) {
613
+ const current = [...this.Filters.types];
614
+ const i = current.indexOf(type);
615
+ if (i >= 0)
616
+ current.splice(i, 1);
617
+ else
618
+ current.push(type);
619
+ this.StateService.setTypeFilter(current);
620
+ }
621
+ isStatusSelected(status) {
622
+ return this.Filters.statuses.includes(status);
623
+ }
624
+ isTypeSelected(type) {
625
+ return this.Filters.types.includes(type);
626
+ }
627
+ clearFilters() {
628
+ this.StateService.clearFilters();
629
+ }
630
+ hasActiveFilters() {
631
+ return this.StateService.hasActiveFilters();
632
+ }
633
+ /** Active filter count for the popover badge — counts only Status + Type
634
+ * (searchTerm has its own search input, not part of the popover). */
635
+ get StatusTypeFilterCount() {
636
+ return this.Filters.statuses.length + this.Filters.types.length;
637
+ }
638
+ toggleSortDropdown() {
639
+ this.ShowSortDropdown = !this.ShowSortDropdown;
640
+ }
641
+ getSortLabel() {
642
+ const option = this.SortOptions.find(o => o.field === this.SortField);
643
+ return option?.label || 'Sort';
644
+ }
645
+ getSortIcon() {
646
+ return this.SortDirection === 'asc' ? 'fa-solid fa-arrow-up-short-wide' : 'fa-solid fa-arrow-down-wide-short';
647
+ }
424
648
  async GetResourceDisplayName(data) {
425
649
  return 'Action Explorer';
426
650
  }
@@ -433,47 +657,117 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
433
657
  } if (rf & 2) {
434
658
  let _t;
435
659
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.TreePanel = _t.first);
436
- } }, standalone: false, features: [i0.ɵɵProvidersFeature([ActionExplorerStateService]), i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 12, consts: [[1, "action-explorer"], [1, "loading-overlay"], [3, "CategorySelected", "NewCategoryClick", "EditCategoryClick", "Categories", "Actions"], [1, "explorer-main"], [3, "NewActionClick", "RefreshClick", "TotalCount", "FilteredCount"], [3, "CategorySelect", "SelectedCategoryId", "Categories"], [1, "explorer-content"], [1, "empty-state"], [3, "CategoryCreated", "Close", "Categories", "PreselectedParentId"], [3, "ActionCreated", "Categories"], [3, "Action", "ActionParams", "IsOpen"], ["text", "Loading actions...", "size", "medium"], [1, "fa-solid", "fa-filter-circle-xmark"], ["mjButton", "", "variant", "outline", 3, "click"], [1, "fa-solid", "fa-times"], [1, "fa-solid", "fa-bolt"], ["mjButton", "", "variant", "primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "card-grid"], [1, "list-view"], [1, "compact-view"], [3, "Action", "Categories"], [3, "ActionClick", "EditClick", "RunClick", "CategoryClick", "Action", "Categories"], [1, "list-header"], [1, "header-icon"], [1, "header-name"], [1, "header-category"], [1, "header-status"], [1, "header-type"], [1, "header-params"], [1, "header-updated"], [1, "header-actions"], [3, "Action", "Categories", "IsCompact"], [3, "ActionClick", "EditClick", "RunClick", "CategoryClick", "Action", "Categories", "IsCompact"], [3, "Close", "Action", "ActionParams", "IsOpen"]], template: function ActionExplorerComponent_Template(rf, ctx) { if (rf & 1) {
437
- i0.ɵɵelementStart(0, "div", 0);
438
- i0.ɵɵconditionalCreate(1, ActionExplorerComponent_Conditional_1_Template, 2, 0, "div", 1);
439
- i0.ɵɵelementStart(2, "mj-action-tree-panel", 2);
440
- i0.ɵɵlistener("CategorySelected", function ActionExplorerComponent_Template_mj_action_tree_panel_CategorySelected_2_listener($event) { return ctx.onCategorySelect($event); })("NewCategoryClick", function ActionExplorerComponent_Template_mj_action_tree_panel_NewCategoryClick_2_listener($event) { return ctx.onNewCategory($event); })("EditCategoryClick", function ActionExplorerComponent_Template_mj_action_tree_panel_EditCategoryClick_2_listener($event) { return ctx.onEditCategory($event); });
660
+ } }, standalone: false, features: [i0.ɵɵProvidersFeature([ActionExplorerStateService]), i0.ɵɵInheritDefinitionFeature], decls: 48, vars: 28, consts: [["Title", "Action Explorer", "Icon", "fa-solid fa-folder-tree", "Subtitle", "Browse, organize, and run all configured actions"], ["meta", ""], ["Label", "actions", 3, "Count", "Total"], ["actions", ""], [3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [1, "dropdown-section"], [1, "section-header"], ["mjButton", "", "variant", "flat", "size", "sm"], [1, "filter-options"], [1, "filter-option", 3, "selected"], [1, "dropdown-container", 3, "clickOutside"], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], [1, "dropdown-menu", "sort-menu"], [3, "KeyChange", "Options", "ActiveKey"], [3, "Clicked"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["toolbar", ""], ["Placeholder", "Search actions...", 3, "ValueChange", "Value"], [1, "active-filters"], [3, "Flex", "Padding"], [1, "action-explorer"], [1, "loading-overlay"], [3, "CategorySelected", "NewCategoryClick", "EditCategoryClick", "Categories", "Actions"], [1, "explorer-main"], [3, "CategorySelect", "SelectedCategoryId", "Categories"], [1, "explorer-content"], [1, "empty-state"], [3, "CategoryCreated", "Close", "Categories", "PreselectedParentId"], [3, "ActionCreated", "Categories"], [3, "Action", "ActionParams", "IsOpen"], ["mjButton", "", "variant", "flat", "size", "sm", 3, "click"], [1, "filter-option"], ["type", "checkbox", 3, "change", "checked"], [1, "status-dot"], [1, "sort-option", 3, "selected"], [1, "sort-option", 3, "click"], [1, "direction-icon", 3, "class"], [1, "direction-icon"], [1, "status-chip", "removable"], [1, "status-chip", "removable", 3, "click"], [1, "fa-solid", "fa-times"], ["text", "Loading actions...", "size", "medium"], [1, "fa-solid", "fa-filter-circle-xmark"], ["mjButton", "", "variant", "outline", 3, "click"], [1, "fa-solid", "fa-bolt"], ["mjButton", "", "variant", "primary", 3, "click"], [1, "card-grid"], [1, "list-view"], [1, "compact-view"], [3, "Action", "Categories"], [3, "ActionClick", "EditClick", "RunClick", "CategoryClick", "Action", "Categories"], [1, "list-header"], [1, "header-icon"], [1, "header-name"], [1, "header-category"], [1, "header-status"], [1, "header-type"], [1, "header-params"], [1, "header-updated"], [1, "header-actions"], [3, "Action", "Categories", "IsCompact"], [3, "ActionClick", "EditClick", "RunClick", "CategoryClick", "Action", "Categories", "IsCompact"], [3, "Close", "Action", "ActionParams", "IsOpen"]], template: function ActionExplorerComponent_Template(rf, ctx) { if (rf & 1) {
661
+ i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0)(2, "div", 1);
662
+ i0.ɵɵelement(3, "mj-stat-badge", 2);
663
+ i0.ɵɵelementEnd();
664
+ i0.ɵɵelementStart(4, "div", 3)(5, "mj-filter-popover", 4);
665
+ i0.ɵɵlistener("ClearAllRequested", function ActionExplorerComponent_Template_mj_filter_popover_ClearAllRequested_5_listener() { return ctx.clearFilters(); });
666
+ i0.ɵɵelementStart(6, "div", 5)(7, "div", 6)(8, "span");
667
+ i0.ɵɵtext(9, "Status");
668
+ i0.ɵɵelementEnd();
669
+ i0.ɵɵconditionalCreate(10, ActionExplorerComponent_Conditional_10_Template, 2, 0, "button", 7);
670
+ i0.ɵɵelementEnd();
671
+ i0.ɵɵelementStart(11, "div", 8);
672
+ i0.ɵɵrepeaterCreate(12, ActionExplorerComponent_For_13_Template, 4, 5, "label", 9, _forTrack0);
673
+ i0.ɵɵelementEnd()();
674
+ i0.ɵɵelementStart(14, "div", 5)(15, "div", 6)(16, "span");
675
+ i0.ɵɵtext(17, "Type");
441
676
  i0.ɵɵelementEnd();
442
- i0.ɵɵelementStart(3, "div", 3)(4, "mj-action-toolbar", 4);
443
- i0.ɵɵlistener("NewActionClick", function ActionExplorerComponent_Template_mj_action_toolbar_NewActionClick_4_listener() { return ctx.onNewAction(); })("RefreshClick", function ActionExplorerComponent_Template_mj_action_toolbar_RefreshClick_4_listener() { return ctx.onRefresh(); });
677
+ i0.ɵɵconditionalCreate(18, ActionExplorerComponent_Conditional_18_Template, 2, 0, "button", 7);
444
678
  i0.ɵɵelementEnd();
445
- i0.ɵɵelementStart(5, "mj-action-breadcrumb", 5);
446
- i0.ɵɵlistener("CategorySelect", function ActionExplorerComponent_Template_mj_action_breadcrumb_CategorySelect_5_listener($event) { return ctx.onCategorySelect($event); });
679
+ i0.ɵɵelementStart(19, "div", 8);
680
+ i0.ɵɵrepeaterCreate(20, ActionExplorerComponent_For_21_Template, 4, 6, "label", 9, _forTrack0);
681
+ i0.ɵɵelementEnd()()();
682
+ i0.ɵɵelementStart(22, "div", 10);
683
+ i0.ɵɵlistener("clickOutside", function ActionExplorerComponent_Template_div_clickOutside_22_listener() { return ctx.ShowSortDropdown = false; });
684
+ i0.ɵɵelementStart(23, "button", 11);
685
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Template_button_click_23_listener() { return ctx.toggleSortDropdown(); });
686
+ i0.ɵɵelement(24, "i");
687
+ i0.ɵɵtext(25);
688
+ i0.ɵɵelement(26, "i");
447
689
  i0.ɵɵelementEnd();
448
- i0.ɵɵelementStart(6, "div", 6);
449
- i0.ɵɵconditionalCreate(7, ActionExplorerComponent_Conditional_7_Template, 3, 1, "div", 7)(8, ActionExplorerComponent_Conditional_8_Template, 3, 3);
690
+ i0.ɵɵconditionalCreate(27, ActionExplorerComponent_Conditional_27_Template, 3, 0, "div", 12);
691
+ i0.ɵɵelementEnd();
692
+ i0.ɵɵelementStart(28, "mj-view-toggle", 13);
693
+ i0.ɵɵlistener("KeyChange", function ActionExplorerComponent_Template_mj_view_toggle_KeyChange_28_listener($event) { return ctx.setViewMode($event); });
694
+ i0.ɵɵelementEnd();
695
+ i0.ɵɵelementStart(29, "mj-refresh-button", 14);
696
+ i0.ɵɵlistener("Clicked", function ActionExplorerComponent_Template_mj_refresh_button_Clicked_29_listener() { return ctx.onRefresh(); });
697
+ i0.ɵɵelementEnd();
698
+ i0.ɵɵelementStart(30, "button", 15);
699
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Template_button_click_30_listener() { return ctx.onNewAction(); });
700
+ i0.ɵɵelement(31, "i", 16);
701
+ i0.ɵɵtext(32, " New Action ");
450
702
  i0.ɵɵelementEnd()();
451
- i0.ɵɵelementStart(9, "mj-new-category-panel", 8);
452
- i0.ɵɵlistener("CategoryCreated", function ActionExplorerComponent_Template_mj_new_category_panel_CategoryCreated_9_listener($event) { return ctx.onCategoryCreated($event); })("Close", function ActionExplorerComponent_Template_mj_new_category_panel_Close_9_listener() { return ctx.NewCategoryParentId = null; });
703
+ i0.ɵɵelementStart(33, "div", 17)(34, "mj-page-search", 18);
704
+ i0.ɵɵlistener("ValueChange", function ActionExplorerComponent_Template_mj_page_search_ValueChange_34_listener($event) { return ctx.onSearchInput($event); });
453
705
  i0.ɵɵelementEnd();
454
- i0.ɵɵelementStart(10, "mj-new-action-panel", 9);
455
- i0.ɵɵlistener("ActionCreated", function ActionExplorerComponent_Template_mj_new_action_panel_ActionCreated_10_listener() { return ctx.onActionCreated(); });
706
+ i0.ɵɵconditionalCreate(35, ActionExplorerComponent_Conditional_35_Template, 5, 0, "div", 19);
707
+ i0.ɵɵelementEnd()();
708
+ i0.ɵɵelementStart(36, "mj-page-body", 20)(37, "div", 21);
709
+ i0.ɵɵconditionalCreate(38, ActionExplorerComponent_Conditional_38_Template, 2, 0, "div", 22);
710
+ i0.ɵɵelementStart(39, "mj-action-tree-panel", 23);
711
+ i0.ɵɵlistener("CategorySelected", function ActionExplorerComponent_Template_mj_action_tree_panel_CategorySelected_39_listener($event) { return ctx.onCategorySelect($event); })("NewCategoryClick", function ActionExplorerComponent_Template_mj_action_tree_panel_NewCategoryClick_39_listener($event) { return ctx.onNewCategory($event); })("EditCategoryClick", function ActionExplorerComponent_Template_mj_action_tree_panel_EditCategoryClick_39_listener($event) { return ctx.onEditCategory($event); });
712
+ i0.ɵɵelementEnd();
713
+ i0.ɵɵelementStart(40, "div", 24)(41, "mj-action-breadcrumb", 25);
714
+ i0.ɵɵlistener("CategorySelect", function ActionExplorerComponent_Template_mj_action_breadcrumb_CategorySelect_41_listener($event) { return ctx.onCategorySelect($event); });
456
715
  i0.ɵɵelementEnd();
457
- i0.ɵɵconditionalCreate(11, ActionExplorerComponent_Conditional_11_Template, 1, 3, "mj-action-test-harness-dialog", 10);
716
+ i0.ɵɵelementStart(42, "div", 26);
717
+ i0.ɵɵconditionalCreate(43, ActionExplorerComponent_Conditional_43_Template, 3, 1, "div", 27)(44, ActionExplorerComponent_Conditional_44_Template, 3, 3);
718
+ i0.ɵɵelementEnd()();
719
+ i0.ɵɵelementStart(45, "mj-new-category-panel", 28);
720
+ i0.ɵɵlistener("CategoryCreated", function ActionExplorerComponent_Template_mj_new_category_panel_CategoryCreated_45_listener($event) { return ctx.onCategoryCreated($event); })("Close", function ActionExplorerComponent_Template_mj_new_category_panel_Close_45_listener() { return ctx.NewCategoryParentId = null; });
458
721
  i0.ɵɵelementEnd();
722
+ i0.ɵɵelementStart(46, "mj-new-action-panel", 29);
723
+ i0.ɵɵlistener("ActionCreated", function ActionExplorerComponent_Template_mj_new_action_panel_ActionCreated_46_listener() { return ctx.onActionCreated(); });
724
+ i0.ɵɵelementEnd();
725
+ i0.ɵɵconditionalCreate(47, ActionExplorerComponent_Conditional_47_Template, 1, 3, "mj-action-test-harness-dialog", 30);
726
+ i0.ɵɵelementEnd()()();
459
727
  } if (rf & 2) {
728
+ i0.ɵɵadvance(3);
729
+ i0.ɵɵproperty("Count", ctx.FilteredActions.length)("Total", ctx.Actions.length);
730
+ i0.ɵɵadvance(2);
731
+ i0.ɵɵproperty("ActiveCount", ctx.StatusTypeFilterCount)("ShowClearAll", ctx.StatusTypeFilterCount > 0);
732
+ i0.ɵɵadvance(5);
733
+ i0.ɵɵconditional(ctx.Filters.statuses.length > 0 ? 10 : -1);
734
+ i0.ɵɵadvance(2);
735
+ i0.ɵɵrepeater(ctx.StatusOptions);
736
+ i0.ɵɵadvance(6);
737
+ i0.ɵɵconditional(ctx.Filters.types.length > 0 ? 18 : -1);
738
+ i0.ɵɵadvance(2);
739
+ i0.ɵɵrepeater(ctx.TypeOptions);
740
+ i0.ɵɵadvance(4);
741
+ i0.ɵɵclassMap(ctx.getSortIcon());
460
742
  i0.ɵɵadvance();
461
- i0.ɵɵconditional(ctx.IsLoading ? 1 : -1);
743
+ i0.ɵɵtextInterpolate1(" ", ctx.getSortLabel(), " ");
462
744
  i0.ɵɵadvance();
463
- i0.ɵɵproperty("Categories", ctx.Categories)("Actions", ctx.Actions);
745
+ i0.ɵɵclassMap(ctx.ShowSortDropdown ? "fa-solid fa-chevron-up" : "fa-solid fa-chevron-down");
746
+ i0.ɵɵadvance();
747
+ i0.ɵɵconditional(ctx.ShowSortDropdown ? 27 : -1);
748
+ i0.ɵɵadvance();
749
+ i0.ɵɵproperty("Options", ctx.ViewToggleOptions)("ActiveKey", ctx.ViewMode);
750
+ i0.ɵɵadvance(6);
751
+ i0.ɵɵproperty("Value", ctx.Filters.searchTerm);
752
+ i0.ɵɵadvance();
753
+ i0.ɵɵconditional(ctx.hasActiveFilters() ? 35 : -1);
754
+ i0.ɵɵadvance();
755
+ i0.ɵɵproperty("Flex", true)("Padding", false);
464
756
  i0.ɵɵadvance(2);
465
- i0.ɵɵproperty("TotalCount", ctx.Actions.length)("FilteredCount", ctx.FilteredActions.length);
757
+ i0.ɵɵconditional(ctx.IsLoading ? 38 : -1);
466
758
  i0.ɵɵadvance();
759
+ i0.ɵɵproperty("Categories", ctx.Categories)("Actions", ctx.Actions);
760
+ i0.ɵɵadvance(2);
467
761
  i0.ɵɵproperty("SelectedCategoryId", ctx.SelectedCategoryId)("Categories", ctx.Categories);
468
762
  i0.ɵɵadvance(2);
469
- i0.ɵɵconditional(ctx.FilteredActions.length === 0 && !ctx.IsLoading ? 7 : 8);
763
+ i0.ɵɵconditional(ctx.FilteredActions.length === 0 && !ctx.IsLoading ? 43 : 44);
470
764
  i0.ɵɵadvance(2);
471
765
  i0.ɵɵproperty("Categories", ctx.Categories)("PreselectedParentId", ctx.NewCategoryParentId);
472
766
  i0.ɵɵadvance();
473
767
  i0.ɵɵproperty("Categories", ctx.Categories);
474
768
  i0.ɵɵadvance();
475
- i0.ɵɵconditional(ctx.SelectedActionForRun ? 11 : -1);
476
- } }, dependencies: [i2.MJButtonDirective, i3.ActionTestHarnessDialogComponent, i4.LoadingComponent, i5.ActionTreePanelComponent, i6.ActionToolbarComponent, i7.ActionBreadcrumbComponent, i8.ActionCardComponent, i9.ActionListItemComponent, i10.NewCategoryPanelComponent, i11.NewActionPanelComponent], styles: [".action-explorer[_ngcontent-%COMP%] {\n display: flex;\n height: 100%;\n background: var(--mj-bg-page);\n overflow: hidden;\n position: relative;\n}\n\n\n\n.explorer-main[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n}\n\n.explorer-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-bg-surface) 85%, transparent);\n z-index: 100;\n backdrop-filter: blur(2px);\n}\n\n\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 300px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 20px;\n opacity: 0.5;\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 20px 0;\n font-size: 14px;\n}\n\n.empty-state[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n\n\n.card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));\n gap: 20px;\n}\n\n\n\n.list-view[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.list-header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 140px 90px 70px 50px 90px 70px;\n gap: 12px;\n padding: 12px 16px;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n}\n\n.header-icon[_ngcontent-%COMP%] {\n \n\n}\n\n\n\n.compact-view[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n\n\n@media (max-width: 1200px) {\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n }\n}\n\n@media (max-width: 1024px) {\n .list-header[_ngcontent-%COMP%] {\n grid-template-columns: 36px 1fr 90px 50px 80px 60px;\n }\n\n .list-header[_ngcontent-%COMP%] .header-category[_ngcontent-%COMP%], \n .list-header[_ngcontent-%COMP%] .header-params[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n .explorer-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 12px;\n }\n\n .list-header[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n}\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--mj-border-default);\n border-radius: 4px;\n}\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-muted);\n}"], changeDetection: 0 });
769
+ i0.ɵɵconditional(ctx.SelectedActionForRun ? 47 : -1);
770
+ } }, dependencies: [i2.MJButtonDirective, i2.MJPageBodyComponent, i2.MJPageHeaderComponent, i2.MJPageLayoutComponent, i2.MJPageSearchComponent, i2.MJFilterPopoverComponent, i2.MJViewToggleComponent, i2.MJStatBadgeComponent, i2.MJRefreshButtonComponent, i3.ActionTestHarnessDialogComponent, i4.LoadingComponent, i5.ActionTreePanelComponent, i6.ActionBreadcrumbComponent, i7.ActionCardComponent, i8.ActionListItemComponent, i9.NewCategoryPanelComponent, i10.NewActionPanelComponent], styles: ["\n\n.dropdown-section[_ngcontent-%COMP%] {\n padding: 8px 12px;\n}\n.dropdown-section[_ngcontent-%COMP%]:not(:last-child) {\n border-bottom: 1px solid var(--mj-border-default);\n}\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n letter-spacing: 0.5px;\n}\n.section-header[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 6px;\n}\n.filter-options[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.filter-option[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 8px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s ease;\n font-size: 13px;\n}\n.filter-option[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n.filter-option.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n.filter-option[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n display: none;\n}\n.filter-option[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 13px;\n width: 18px;\n color: var(--mj-text-muted);\n}\n.filter-option.selected[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.status-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n}\n.status-dot[data-status=\"Active\"][_ngcontent-%COMP%] { background: var(--mj-status-success); }\n.status-dot[data-status=\"Pending\"][_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n.status-dot[data-status=\"Disabled\"][_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n\n\n.dropdown-container[_ngcontent-%COMP%] {\n position: relative;\n}\n.dropdown-menu[_ngcontent-%COMP%] {\n position: absolute;\n top: calc(100% + 4px);\n right: 0;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n z-index: 100;\n min-width: 220px;\n padding: 8px 0;\n}\n.sort-option[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 12px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 13px;\n text-align: left;\n transition: background 0.15s ease;\n}\n.sort-option[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n.sort-option.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n.sort-option[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n width: 18px;\n color: var(--mj-text-muted);\n}\n.sort-option.selected[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n color: var(--mj-brand-primary);\n}\n.sort-option[_ngcontent-%COMP%] .direction-icon[_ngcontent-%COMP%] {\n margin-left: auto;\n font-size: 11px;\n}\n\n\n\n.active-filters[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n.status-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 3px 10px;\n font-size: 12px;\n font-weight: 500;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n color: var(--mj-text-primary);\n border-radius: 14px;\n}\n.status-chip.removable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: background 0.15s ease;\n}\n.status-chip.removable[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 18%, var(--mj-bg-surface));\n}\n.status-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-muted);\n}\n\n.action-explorer[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-page);\n overflow: hidden;\n position: relative;\n}\n\n\n\n.explorer-main[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n}\n\n.explorer-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-bg-surface) 85%, transparent);\n z-index: 100;\n backdrop-filter: blur(2px);\n}\n\n\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 300px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 20px;\n opacity: 0.5;\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 20px 0;\n font-size: 14px;\n}\n\n.empty-state[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n\n\n.card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));\n gap: 20px;\n}\n\n\n\n.list-view[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.list-header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 140px 90px 70px 50px 90px 70px;\n gap: 12px;\n padding: 12px 16px;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n}\n\n.header-icon[_ngcontent-%COMP%] {\n \n\n}\n\n\n\n.compact-view[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n\n\n@media (max-width: 1200px) {\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n }\n}\n\n@media (max-width: 1024px) {\n .list-header[_ngcontent-%COMP%] {\n grid-template-columns: 36px 1fr 90px 50px 80px 60px;\n }\n\n .list-header[_ngcontent-%COMP%] .header-category[_ngcontent-%COMP%], \n .list-header[_ngcontent-%COMP%] .header-params[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n .explorer-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 12px;\n }\n\n .list-header[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n}\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--mj-border-default);\n border-radius: 4px;\n}\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-muted);\n}"], changeDetection: 0 });
477
771
  };
478
772
  ActionExplorerComponent = __decorate([
479
773
  RegisterClass(BaseResourceComponent, 'ActionExplorerResource')
@@ -481,10 +775,10 @@ ActionExplorerComponent = __decorate([
481
775
  export { ActionExplorerComponent };
482
776
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionExplorerComponent, [{
483
777
  type: Component,
484
- args: [{ standalone: false, selector: 'mj-action-explorer', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ActionExplorerStateService], template: "<div class=\"action-explorer\">\n <!-- Full-page Loading Overlay -->\n @if (IsLoading) {\n <div class=\"loading-overlay\">\n <mj-loading text=\"Loading actions...\" size=\"medium\"></mj-loading>\n </div>\n }\n\n <!-- Tree Panel (Left Sidebar) -->\n <mj-action-tree-panel\n [Categories]=\"Categories\"\n [Actions]=\"Actions\"\n (CategorySelected)=\"onCategorySelect($event)\"\n (NewCategoryClick)=\"onNewCategory($event)\"\n (EditCategoryClick)=\"onEditCategory($event)\">\n </mj-action-tree-panel>\n\n <!-- Main Content Area -->\n <div class=\"explorer-main\">\n <!-- Toolbar -->\n <mj-action-toolbar\n [TotalCount]=\"Actions.length\"\n [FilteredCount]=\"FilteredActions.length\"\n (NewActionClick)=\"onNewAction()\"\n (RefreshClick)=\"onRefresh()\">\n </mj-action-toolbar>\n\n <!-- Breadcrumb -->\n <mj-action-breadcrumb\n [SelectedCategoryId]=\"SelectedCategoryId\"\n [Categories]=\"Categories\"\n (CategorySelect)=\"onCategorySelect($event)\">\n </mj-action-breadcrumb>\n\n <!-- Content Area -->\n <div class=\"explorer-content\">\n @if (FilteredActions.length === 0 && !IsLoading) {\n <div class=\"empty-state\">\n @if (StateService.hasActiveFilters() || SelectedCategoryId !== 'all') {\n <i class=\"fa-solid fa-filter-circle-xmark\"></i>\n <h3>No actions match your filters</h3>\n <p>Try adjusting your search or filter criteria</p>\n <button mjButton\n variant=\"outline\"\n (click)=\"StateService.clearFilters(); StateService.setSelectedCategoryId('all')\">\n <i class=\"fa-solid fa-times\"></i>\n Clear All Filters\n </button>\n } @else {\n <i class=\"fa-solid fa-bolt\"></i>\n <h3>No actions yet</h3>\n <p>Create your first action to get started</p>\n <button mjButton\n variant=\"primary\"\n (click)=\"onNewAction()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Action\n </button>\n }\n </div>\n } @else {\n <!-- Card View -->\n @if (ViewMode === 'card') {\n <div class=\"card-grid\">\n @for (action of FilteredActions; track action.ID) {\n <mj-action-card\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-card>\n }\n </div>\n }\n\n <!-- List View -->\n @if (ViewMode === 'list') {\n <div class=\"list-view\">\n <div class=\"list-header\">\n <div class=\"header-icon\"></div>\n <div class=\"header-name\">Name</div>\n <div class=\"header-category\">Category</div>\n <div class=\"header-status\">Status</div>\n <div class=\"header-type\">Type</div>\n <div class=\"header-params\">Params</div>\n <div class=\"header-updated\">Updated</div>\n <div class=\"header-actions\"></div>\n </div>\n @for (action of FilteredActions; track action.ID) {\n <mj-action-list-item\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n [IsCompact]=\"false\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-list-item>\n }\n </div>\n }\n\n <!-- Compact View -->\n @if (ViewMode === 'compact') {\n <div class=\"compact-view\">\n @for (action of FilteredActions; track action.ID) {\n <mj-action-list-item\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n [IsCompact]=\"true\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-list-item>\n }\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Slide-in Panels -->\n <mj-new-category-panel\n [Categories]=\"Categories\"\n [PreselectedParentId]=\"NewCategoryParentId\"\n (CategoryCreated)=\"onCategoryCreated($event)\"\n (Close)=\"NewCategoryParentId = null\">\n </mj-new-category-panel>\n\n <mj-new-action-panel\n [Categories]=\"Categories\"\n (ActionCreated)=\"onActionCreated()\">\n </mj-new-action-panel>\n\n <!-- Action Run Dialog -->\n @if (SelectedActionForRun) {\n <mj-action-test-harness-dialog\n [Action]=\"SelectedActionForRun\"\n [ActionParams]=\"SelectedActionParams\"\n [IsOpen]=\"IsRunDialogOpen\"\n (Close)=\"OnRunDialogClose()\">\n </mj-action-test-harness-dialog>\n }\n</div>\n", styles: [".action-explorer {\n display: flex;\n height: 100%;\n background: var(--mj-bg-page);\n overflow: hidden;\n position: relative;\n}\n\n/* Main Content Area */\n.explorer-main {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n}\n\n.explorer-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Full-page Loading Overlay */\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-bg-surface) 85%, transparent);\n z-index: 100;\n backdrop-filter: blur(2px);\n}\n\n/* Legacy loading container (kept for backwards compatibility) */\n.loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 300px;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 20px;\n opacity: 0.5;\n}\n\n.empty-state h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.empty-state p {\n margin: 0 0 20px 0;\n font-size: 14px;\n}\n\n.empty-state button {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Card Grid */\n.card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));\n gap: 20px;\n}\n\n/* List View */\n.list-view {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.list-header {\n display: grid;\n grid-template-columns: 40px 1fr 140px 90px 70px 50px 90px 70px;\n gap: 12px;\n padding: 12px 16px;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n}\n\n.header-icon {\n /* Empty column for icon */\n}\n\n/* Compact View */\n.compact-view {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n/* Responsive */\n@media (max-width: 1200px) {\n .card-grid {\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n }\n}\n\n@media (max-width: 1024px) {\n .list-header {\n grid-template-columns: 36px 1fr 90px 50px 80px 60px;\n }\n\n .list-header .header-category,\n .list-header .header-params {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n .explorer-content {\n padding: 12px;\n }\n\n .card-grid {\n grid-template-columns: 1fr;\n gap: 12px;\n }\n\n .list-header {\n display: none;\n }\n}\n\n/* Scrollbar Styling */\n.explorer-content::-webkit-scrollbar {\n width: 8px;\n}\n\n.explorer-content::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.explorer-content::-webkit-scrollbar-thumb {\n background: var(--mj-border-default);\n border-radius: 4px;\n}\n\n.explorer-content::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-muted);\n}\n"] }]
778
+ args: [{ standalone: false, selector: 'mj-action-explorer', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ActionExplorerStateService], template: "<mj-page-layout>\n <mj-page-header\n Title=\"Action Explorer\"\n Icon=\"fa-solid fa-folder-tree\"\n Subtitle=\"Browse, organize, and run all configured actions\">\n <div meta>\n <mj-stat-badge\n [Count]=\"FilteredActions.length\"\n [Total]=\"Actions.length\"\n Label=\"actions\">\n </mj-stat-badge>\n </div>\n <div actions>\n <!-- Filters popover (shared trigger + popover chrome; multi-select checkbox content stays bespoke) -->\n <mj-filter-popover\n [ActiveCount]=\"StatusTypeFilterCount\"\n [ShowClearAll]=\"StatusTypeFilterCount > 0\"\n (ClearAllRequested)=\"clearFilters()\">\n <div class=\"dropdown-section\">\n <div class=\"section-header\">\n <span>Status</span>\n @if (Filters.statuses.length > 0) {\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"StateService.setStatusFilter([])\">Clear</button>\n }\n </div>\n <div class=\"filter-options\">\n @for (status of StatusOptions; track status.value) {\n <label class=\"filter-option\" [class.selected]=\"isStatusSelected(status.value)\">\n <input type=\"checkbox\"\n [checked]=\"isStatusSelected(status.value)\"\n (change)=\"toggleStatus(status.value)\">\n <span class=\"status-dot\" [attr.data-status]=\"status.value\"></span>\n {{ status.label }}\n </label>\n }\n </div>\n </div>\n <div class=\"dropdown-section\">\n <div class=\"section-header\">\n <span>Type</span>\n @if (Filters.types.length > 0) {\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"StateService.setTypeFilter([])\">Clear</button>\n }\n </div>\n <div class=\"filter-options\">\n @for (type of TypeOptions; track type.value) {\n <label class=\"filter-option\" [class.selected]=\"isTypeSelected(type.value)\">\n <input type=\"checkbox\"\n [checked]=\"isTypeSelected(type.value)\"\n (change)=\"toggleType(type.value)\">\n <i [class]=\"type.icon\"></i>\n {{ type.label }}\n </label>\n }\n </div>\n </div>\n </mj-filter-popover>\n\n <!-- Sort Dropdown (bespoke \u2014 no shared sort component yet) -->\n <div class=\"dropdown-container\" (clickOutside)=\"ShowSortDropdown = false\">\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"toggleSortDropdown()\">\n <i [class]=\"getSortIcon()\"></i> {{ getSortLabel() }}\n <i [class]=\"ShowSortDropdown ? 'fa-solid fa-chevron-up' : 'fa-solid fa-chevron-down'\"></i>\n </button>\n @if (ShowSortDropdown) {\n <div class=\"dropdown-menu sort-menu\">\n @for (option of SortOptions; track option.field) {\n <button class=\"sort-option\"\n [class.selected]=\"SortField === option.field\"\n (click)=\"setSortField(option.field)\">\n <i [class]=\"option.icon\"></i>\n {{ option.label }}\n @if (SortField === option.field) {\n <i [class]=\"SortDirection === 'asc' ? 'fa-solid fa-arrow-up' : 'fa-solid fa-arrow-down'\" class=\"direction-icon\"></i>\n }\n </button>\n }\n </div>\n }\n </div>\n\n <mj-view-toggle\n [Options]=\"ViewToggleOptions\"\n [ActiveKey]=\"ViewMode\"\n (KeyChange)=\"setViewMode($any($event))\">\n </mj-view-toggle>\n\n <mj-refresh-button (Clicked)=\"onRefresh()\"></mj-refresh-button>\n\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"onNewAction()\">\n <i class=\"fa-solid fa-plus\"></i> New Action\n </button>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search actions...\"\n [Value]=\"Filters.searchTerm\"\n (ValueChange)=\"onSearchInput($event)\">\n </mj-page-search>\n @if (hasActiveFilters()) {\n <div class=\"active-filters\">\n @for (status of Filters.statuses; track status) {\n <span class=\"status-chip removable\" (click)=\"toggleStatus(status)\">\n Status: {{ status }} <i class=\"fa-solid fa-times\"></i>\n </span>\n }\n @for (type of Filters.types; track type) {\n <span class=\"status-chip removable\" (click)=\"toggleType(type)\">\n Type: {{ type === 'Generated' ? 'AI Generated' : type }} <i class=\"fa-solid fa-times\"></i>\n </span>\n }\n </div>\n }\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\" [Padding]=\"false\">\n<div class=\"action-explorer\">\n <!-- Full-page Loading Overlay -->\n @if (IsLoading) {\n <div class=\"loading-overlay\">\n <mj-loading text=\"Loading actions...\" size=\"medium\"></mj-loading>\n </div>\n }\n\n <!-- Tree Panel (Left Sidebar) -->\n <mj-action-tree-panel\n [Categories]=\"Categories\"\n [Actions]=\"Actions\"\n (CategorySelected)=\"onCategorySelect($event)\"\n (NewCategoryClick)=\"onNewCategory($event)\"\n (EditCategoryClick)=\"onEditCategory($event)\">\n </mj-action-tree-panel>\n\n <!-- Main Content Area -->\n <div class=\"explorer-main\">\n <!-- Breadcrumb -->\n <mj-action-breadcrumb\n [SelectedCategoryId]=\"SelectedCategoryId\"\n [Categories]=\"Categories\"\n (CategorySelect)=\"onCategorySelect($event)\">\n </mj-action-breadcrumb>\n\n <!-- Content Area -->\n <div class=\"explorer-content\">\n @if (FilteredActions.length === 0 && !IsLoading) {\n <div class=\"empty-state\">\n @if (StateService.hasActiveFilters() || SelectedCategoryId !== 'all') {\n <i class=\"fa-solid fa-filter-circle-xmark\"></i>\n <h3>No actions match your filters</h3>\n <p>Try adjusting your search or filter criteria</p>\n <button mjButton\n variant=\"outline\"\n (click)=\"StateService.clearFilters(); StateService.setSelectedCategoryId('all')\">\n <i class=\"fa-solid fa-times\"></i>\n Clear All Filters\n </button>\n } @else {\n <i class=\"fa-solid fa-bolt\"></i>\n <h3>No actions yet</h3>\n <p>Create your first action to get started</p>\n <button mjButton\n variant=\"primary\"\n (click)=\"onNewAction()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Action\n </button>\n }\n </div>\n } @else {\n <!-- Card View -->\n @if (ViewMode === 'card') {\n <div class=\"card-grid\">\n @for (action of FilteredActions; track action.ID) {\n <mj-action-card\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-card>\n }\n </div>\n }\n\n <!-- List View -->\n @if (ViewMode === 'list') {\n <div class=\"list-view\">\n <div class=\"list-header\">\n <div class=\"header-icon\"></div>\n <div class=\"header-name\">Name</div>\n <div class=\"header-category\">Category</div>\n <div class=\"header-status\">Status</div>\n <div class=\"header-type\">Type</div>\n <div class=\"header-params\">Params</div>\n <div class=\"header-updated\">Updated</div>\n <div class=\"header-actions\"></div>\n </div>\n @for (action of FilteredActions; track action.ID) {\n <mj-action-list-item\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n [IsCompact]=\"false\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-list-item>\n }\n </div>\n }\n\n <!-- Compact View -->\n @if (ViewMode === 'compact') {\n <div class=\"compact-view\">\n @for (action of FilteredActions; track action.ID) {\n <mj-action-list-item\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n [IsCompact]=\"true\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-list-item>\n }\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Slide-in Panels -->\n <mj-new-category-panel\n [Categories]=\"Categories\"\n [PreselectedParentId]=\"NewCategoryParentId\"\n (CategoryCreated)=\"onCategoryCreated($event)\"\n (Close)=\"NewCategoryParentId = null\">\n </mj-new-category-panel>\n\n <mj-new-action-panel\n [Categories]=\"Categories\"\n (ActionCreated)=\"onActionCreated()\">\n </mj-new-action-panel>\n\n <!-- Action Run Dialog -->\n @if (SelectedActionForRun) {\n <mj-action-test-harness-dialog\n [Action]=\"SelectedActionForRun\"\n [ActionParams]=\"SelectedActionParams\"\n [IsOpen]=\"IsRunDialogOpen\"\n (Close)=\"OnRunDialogClose()\">\n </mj-action-test-harness-dialog>\n }\n</div>\n </mj-page-body>\n</mj-page-layout>\n", styles: ["/* \u2500\u2500\u2500\u2500 Filter popover internals (multi-select Status/Type) \u2500\u2500\u2500\u2500 */\n.dropdown-section {\n padding: 8px 12px;\n}\n.dropdown-section:not(:last-child) {\n border-bottom: 1px solid var(--mj-border-default);\n}\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n letter-spacing: 0.5px;\n}\n.section-header button {\n font-size: 11px;\n padding: 2px 6px;\n}\n.filter-options {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.filter-option {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 8px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s ease;\n font-size: 13px;\n}\n.filter-option:hover {\n background: var(--mj-bg-surface-hover);\n}\n.filter-option.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n.filter-option input[type=\"checkbox\"] {\n display: none;\n}\n.filter-option i {\n font-size: 13px;\n width: 18px;\n color: var(--mj-text-muted);\n}\n.filter-option.selected i {\n color: var(--mj-brand-primary);\n}\n.status-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n}\n.status-dot[data-status=\"Active\"] { background: var(--mj-status-success); }\n.status-dot[data-status=\"Pending\"] { background: var(--mj-status-warning); }\n.status-dot[data-status=\"Disabled\"] { background: var(--mj-status-error); }\n\n/* \u2500\u2500\u2500\u2500 Sort dropdown \u2500\u2500\u2500\u2500 */\n.dropdown-container {\n position: relative;\n}\n.dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n right: 0;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n z-index: 100;\n min-width: 220px;\n padding: 8px 0;\n}\n.sort-option {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 12px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 13px;\n text-align: left;\n transition: background 0.15s ease;\n}\n.sort-option:hover {\n background: var(--mj-bg-surface-hover);\n}\n.sort-option.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n.sort-option i:first-child {\n width: 18px;\n color: var(--mj-text-muted);\n}\n.sort-option.selected i:first-child {\n color: var(--mj-brand-primary);\n}\n.sort-option .direction-icon {\n margin-left: auto;\n font-size: 11px;\n}\n\n/* \u2500\u2500\u2500\u2500 Active filter chips (in [toolbar] next to search) \u2500\u2500\u2500\u2500 */\n.active-filters {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n.status-chip {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 3px 10px;\n font-size: 12px;\n font-weight: 500;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n color: var(--mj-text-primary);\n border-radius: 14px;\n}\n.status-chip.removable {\n cursor: pointer;\n transition: background 0.15s ease;\n}\n.status-chip.removable:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 18%, var(--mj-bg-surface));\n}\n.status-chip i {\n font-size: 10px;\n color: var(--mj-text-muted);\n}\n\n.action-explorer {\n display: flex;\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-page);\n overflow: hidden;\n position: relative;\n}\n\n/* Main Content Area */\n.explorer-main {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n}\n\n.explorer-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Full-page Loading Overlay */\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-bg-surface) 85%, transparent);\n z-index: 100;\n backdrop-filter: blur(2px);\n}\n\n/* Legacy loading container (kept for backwards compatibility) */\n.loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 300px;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 20px;\n opacity: 0.5;\n}\n\n.empty-state h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.empty-state p {\n margin: 0 0 20px 0;\n font-size: 14px;\n}\n\n.empty-state button {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Card Grid */\n.card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));\n gap: 20px;\n}\n\n/* List View */\n.list-view {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.list-header {\n display: grid;\n grid-template-columns: 40px 1fr 140px 90px 70px 50px 90px 70px;\n gap: 12px;\n padding: 12px 16px;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n}\n\n.header-icon {\n /* Empty column for icon */\n}\n\n/* Compact View */\n.compact-view {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n/* Responsive */\n@media (max-width: 1200px) {\n .card-grid {\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n }\n}\n\n@media (max-width: 1024px) {\n .list-header {\n grid-template-columns: 36px 1fr 90px 50px 80px 60px;\n }\n\n .list-header .header-category,\n .list-header .header-params {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n .explorer-content {\n padding: 12px;\n }\n\n .card-grid {\n grid-template-columns: 1fr;\n gap: 12px;\n }\n\n .list-header {\n display: none;\n }\n}\n\n/* Scrollbar Styling */\n.explorer-content::-webkit-scrollbar {\n width: 8px;\n}\n\n.explorer-content::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.explorer-content::-webkit-scrollbar-thumb {\n background: var(--mj-border-default);\n border-radius: 4px;\n}\n\n.explorer-content::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-muted);\n}\n"] }]
485
779
  }], () => [{ type: i1.ActionExplorerStateService }, { type: i0.ChangeDetectorRef }], { TreePanel: [{
486
780
  type: ViewChild,
487
781
  args: [ActionTreePanelComponent]
488
782
  }] }); })();
489
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionExplorerComponent, { className: "ActionExplorerComponent", filePath: "src/Actions/components/explorer/action-explorer.component.ts", lineNumber: 32 }); })();
783
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionExplorerComponent, { className: "ActionExplorerComponent", filePath: "src/Actions/components/explorer/action-explorer.component.ts", lineNumber: 41 }); })();
490
784
  //# sourceMappingURL=action-explorer.component.js.map