@memberjunction/ng-dashboards 5.37.0 → 5.39.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 (328) hide show
  1. package/README.md +46 -7
  2. package/dist/AI/components/agents/agent-configuration.component.js +199 -198
  3. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  4. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
  5. package/dist/AI/components/analytics/ai-analytics-resource.component.js +20 -17
  6. package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
  7. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +15 -0
  8. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  9. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +166 -58
  10. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  11. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  12. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +2 -1
  13. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  14. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +1 -0
  15. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  16. package/dist/AI/components/analytics/model-performance/model-performance.component.js +55 -36
  17. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  18. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts +9 -1
  19. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  20. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +158 -117
  21. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  22. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts +1 -0
  23. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  24. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +22 -8
  25. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  26. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +89 -842
  27. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  28. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +1353 -7683
  29. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  30. package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts +87 -0
  31. package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts.map +1 -0
  32. package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js +475 -0
  33. package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js.map +1 -0
  34. package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts +29 -0
  35. package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts.map +1 -0
  36. package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js +208 -0
  37. package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js.map +1 -0
  38. package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts +21 -0
  39. package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts.map +1 -0
  40. package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js +70 -0
  41. package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js.map +1 -0
  42. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts +235 -0
  43. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -0
  44. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +1735 -0
  45. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -0
  46. package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts +61 -0
  47. package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts.map +1 -0
  48. package/dist/AI/components/autotagging/shared/classify.dryrun.js +78 -0
  49. package/dist/AI/components/autotagging/shared/classify.dryrun.js.map +1 -0
  50. package/dist/AI/components/autotagging/shared/classify.format.d.ts +43 -0
  51. package/dist/AI/components/autotagging/shared/classify.format.d.ts.map +1 -0
  52. package/dist/AI/components/autotagging/shared/classify.format.js +209 -0
  53. package/dist/AI/components/autotagging/shared/classify.format.js.map +1 -0
  54. package/dist/AI/components/autotagging/shared/classify.types.d.ts +276 -0
  55. package/dist/AI/components/autotagging/shared/classify.types.d.ts.map +1 -0
  56. package/dist/AI/components/autotagging/shared/classify.types.js +6 -0
  57. package/dist/AI/components/autotagging/shared/classify.types.js.map +1 -0
  58. package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts +103 -0
  59. package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts.map +1 -0
  60. package/dist/AI/components/autotagging/tabs/health-tab.component.js +571 -0
  61. package/dist/AI/components/autotagging/tabs/health-tab.component.js.map +1 -0
  62. package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts +40 -0
  63. package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts.map +1 -0
  64. package/dist/AI/components/autotagging/tabs/history-tab.component.js +402 -0
  65. package/dist/AI/components/autotagging/tabs/history-tab.component.js.map +1 -0
  66. package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts +107 -0
  67. package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts.map +1 -0
  68. package/dist/AI/components/autotagging/tabs/inbox-tab.component.js +719 -0
  69. package/dist/AI/components/autotagging/tabs/inbox-tab.component.js.map +1 -0
  70. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts +122 -0
  71. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts.map +1 -0
  72. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js +752 -0
  73. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js.map +1 -0
  74. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts +166 -0
  75. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -0
  76. package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1384 -0
  77. package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -0
  78. package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts +70 -0
  79. package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts.map +1 -0
  80. package/dist/AI/components/autotagging/tabs/tags-tab.component.js +448 -0
  81. package/dist/AI/components/autotagging/tabs/tags-tab.component.js.map +1 -0
  82. package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts +397 -0
  83. package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts.map +1 -0
  84. package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js +3490 -0
  85. package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js.map +1 -0
  86. package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts +47 -0
  87. package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts.map +1 -0
  88. package/dist/AI/components/autotagging/tabs/types-tab.component.js +220 -0
  89. package/dist/AI/components/autotagging/tabs/types-tab.component.js.map +1 -0
  90. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +293 -289
  91. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  92. package/dist/AI/components/models/model-management.component.js +209 -208
  93. package/dist/AI/components/models/model-management.component.js.map +1 -1
  94. package/dist/AI/components/prompts/prompt-management.component.js +130 -128
  95. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  96. package/dist/AI/components/requests/agent-requests-resource.component.js +61 -61
  97. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  98. package/dist/AI/components/system/system-configuration.component.js +17 -17
  99. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  100. package/dist/AI/components/tags/tags-resource.component.js +550 -532
  101. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  102. package/dist/AI/components/vectors/vector-management-resource.component.js +1 -1
  103. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  104. package/dist/AI/services/ai-instrumentation.service.d.ts +5 -0
  105. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  106. package/dist/AI/services/ai-instrumentation.service.js +14 -2
  107. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  108. package/dist/AI/services/cache-metrics.d.ts +50 -0
  109. package/dist/AI/services/cache-metrics.d.ts.map +1 -0
  110. package/dist/AI/services/cache-metrics.js +43 -0
  111. package/dist/AI/services/cache-metrics.js.map +1 -0
  112. package/dist/APIKeys/api-key-edit-panel.component.js +2 -2
  113. package/dist/APIKeys/api-keys-resource.component.js +132 -131
  114. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  115. package/dist/Actions/components/actions-overview.component.js +141 -141
  116. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  117. package/dist/Actions/components/execution-monitoring.component.js +15 -15
  118. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  119. package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -5
  120. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  121. package/dist/Actions/components/explorer/action-explorer.component.js +139 -212
  122. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  123. package/dist/Admin/admin-data-schema.component.js +2 -2
  124. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  125. package/dist/Admin/admin-dev-tools-resource.component.js +2 -2
  126. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  127. package/dist/Admin/admin-identity-access.component.js +2 -2
  128. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  129. package/dist/Admin/admin-monitoring.component.js +2 -2
  130. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  131. package/dist/ApplicationRoles/application-roles-resource.component.js +54 -49
  132. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  133. package/dist/Communication/communication-logs-resource.component.d.ts +6 -0
  134. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  135. package/dist/Communication/communication-logs-resource.component.js +72 -50
  136. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  137. package/dist/Communication/communication-monitor-resource.component.js +103 -102
  138. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  139. package/dist/Communication/communication-providers-resource.component.js +52 -51
  140. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  141. package/dist/Communication/communication-runs-resource.component.js +39 -38
  142. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  143. package/dist/Communication/communication-templates-resource.component.d.ts +6 -0
  144. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  145. package/dist/Communication/communication-templates-resource.component.js +92 -89
  146. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  147. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +73 -1
  148. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  149. package/dist/ComponentStudio/component-studio-dashboard.component.js +512 -127
  150. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  151. package/dist/ComponentStudio/component-studio-resource.component.d.ts +22 -0
  152. package/dist/ComponentStudio/component-studio-resource.component.d.ts.map +1 -0
  153. package/dist/ComponentStudio/component-studio-resource.component.js +55 -0
  154. package/dist/ComponentStudio/component-studio-resource.component.js.map +1 -0
  155. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +104 -45
  156. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
  157. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +234 -331
  158. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
  159. package/dist/ComponentStudio/components/form-builder/form-builder-canvas.component.d.ts +54 -0
  160. package/dist/ComponentStudio/components/form-builder/form-builder-canvas.component.d.ts.map +1 -0
  161. package/dist/ComponentStudio/components/form-builder/form-builder-canvas.component.js +339 -0
  162. package/dist/ComponentStudio/components/form-builder/form-builder-canvas.component.js.map +1 -0
  163. package/dist/ComponentStudio/components/form-builder/form-builder-right-panel.component.d.ts +65 -0
  164. package/dist/ComponentStudio/components/form-builder/form-builder-right-panel.component.d.ts.map +1 -0
  165. package/dist/ComponentStudio/components/form-builder/form-builder-right-panel.component.js +492 -0
  166. package/dist/ComponentStudio/components/form-builder/form-builder-right-panel.component.js.map +1 -0
  167. package/dist/ComponentStudio/components/form-builder/form-builder-tab.component.d.ts +88 -0
  168. package/dist/ComponentStudio/components/form-builder/form-builder-tab.component.d.ts.map +1 -0
  169. package/dist/ComponentStudio/components/form-builder/form-builder-tab.component.js +457 -0
  170. package/dist/ComponentStudio/components/form-builder/form-builder-tab.component.js.map +1 -0
  171. package/dist/ComponentStudio/components/form-override-dialog.component.d.ts +106 -0
  172. package/dist/ComponentStudio/components/form-override-dialog.component.d.ts.map +1 -0
  173. package/dist/ComponentStudio/components/form-override-dialog.component.js +478 -0
  174. package/dist/ComponentStudio/components/form-override-dialog.component.js.map +1 -0
  175. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts +54 -0
  176. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
  177. package/dist/ComponentStudio/components/workspace/component-preview.component.js +361 -50
  178. package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
  179. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts +10 -0
  180. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -1
  181. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +114 -45
  182. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -1
  183. package/dist/ComponentStudio/services/canvas-to-code.d.ts +32 -0
  184. package/dist/ComponentStudio/services/canvas-to-code.d.ts.map +1 -0
  185. package/dist/ComponentStudio/services/canvas-to-code.js +347 -0
  186. package/dist/ComponentStudio/services/canvas-to-code.js.map +1 -0
  187. package/dist/ComponentStudio/services/code-to-canvas.d.ts +32 -0
  188. package/dist/ComponentStudio/services/code-to-canvas.d.ts.map +1 -0
  189. package/dist/ComponentStudio/services/code-to-canvas.js +92 -0
  190. package/dist/ComponentStudio/services/code-to-canvas.js.map +1 -0
  191. package/dist/ComponentStudio/services/component-studio-state.service.d.ts +29 -0
  192. package/dist/ComponentStudio/services/component-studio-state.service.d.ts.map +1 -1
  193. package/dist/ComponentStudio/services/component-studio-state.service.js +76 -0
  194. package/dist/ComponentStudio/services/component-studio-state.service.js.map +1 -1
  195. package/dist/ComponentStudio/services/entity-form-override.service.d.ts +86 -0
  196. package/dist/ComponentStudio/services/entity-form-override.service.d.ts.map +1 -0
  197. package/dist/ComponentStudio/services/entity-form-override.service.js +246 -0
  198. package/dist/ComponentStudio/services/entity-form-override.service.js.map +1 -0
  199. package/dist/ComponentStudio/services/field-binding-scanner.d.ts +29 -0
  200. package/dist/ComponentStudio/services/field-binding-scanner.d.ts.map +1 -0
  201. package/dist/ComponentStudio/services/field-binding-scanner.js +110 -0
  202. package/dist/ComponentStudio/services/field-binding-scanner.js.map +1 -0
  203. package/dist/ComponentStudio/services/form-canvas-model.d.ts +56 -0
  204. package/dist/ComponentStudio/services/form-canvas-model.d.ts.map +1 -0
  205. package/dist/ComponentStudio/services/form-canvas-model.js +35 -0
  206. package/dist/ComponentStudio/services/form-canvas-model.js.map +1 -0
  207. package/dist/ComponentStudio/services/form-host-props-fixture.d.ts +10 -0
  208. package/dist/ComponentStudio/services/form-host-props-fixture.d.ts.map +1 -0
  209. package/dist/ComponentStudio/services/form-host-props-fixture.js +10 -0
  210. package/dist/ComponentStudio/services/form-host-props-fixture.js.map +1 -0
  211. package/dist/Credentials/components/credentials-audit-resource.component.js +136 -135
  212. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  213. package/dist/Credentials/components/credentials-categories-resource.component.js +155 -152
  214. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  215. package/dist/Credentials/components/credentials-list-resource.component.js +119 -118
  216. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  217. package/dist/Credentials/components/credentials-overview-resource.component.js +129 -128
  218. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  219. package/dist/Credentials/components/credentials-types-resource.component.js +107 -106
  220. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  221. package/dist/DataExplorer/data-explorer-dashboard.component.js +2 -2
  222. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  223. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +1 -1
  224. package/dist/DatabaseDesigner/components/entity-list.component.js +115 -114
  225. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  226. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +5 -6
  227. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  228. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +4 -5
  229. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  230. package/dist/DevTools/app-state-inspector.component.js +18 -17
  231. package/dist/DevTools/app-state-inspector.component.js.map +1 -1
  232. package/dist/DevTools/class-registry.component.js +88 -85
  233. package/dist/DevTools/class-registry.component.js.map +1 -1
  234. package/dist/DevTools/event-monitor.component.js +155 -150
  235. package/dist/DevTools/event-monitor.component.js.map +1 -1
  236. package/dist/DevTools/graphql-console.component.js +245 -243
  237. package/dist/DevTools/graphql-console.component.js.map +1 -1
  238. package/dist/DevTools/layout-inspector.component.js +18 -17
  239. package/dist/DevTools/layout-inspector.component.js.map +1 -1
  240. package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -19
  241. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  242. package/dist/FormBuilder/form-builder-resource.component.d.ts +964 -0
  243. package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -0
  244. package/dist/FormBuilder/form-builder-resource.component.js +4487 -0
  245. package/dist/FormBuilder/form-builder-resource.component.js.map +1 -0
  246. package/dist/FormBuilder/form-builder-version-rail.helpers.d.ts +55 -0
  247. package/dist/FormBuilder/form-builder-version-rail.helpers.d.ts.map +1 -0
  248. package/dist/FormBuilder/form-builder-version-rail.helpers.js +73 -0
  249. package/dist/FormBuilder/form-builder-version-rail.helpers.js.map +1 -0
  250. package/dist/Home/home-application.d.ts +21 -1
  251. package/dist/Home/home-application.d.ts.map +1 -1
  252. package/dist/Home/home-application.js +60 -8
  253. package/dist/Home/home-application.js.map +1 -1
  254. package/dist/Home/home-dashboard.component.js +2 -2
  255. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  256. package/dist/Integration/components/activity/activity.component.js +236 -229
  257. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  258. package/dist/Integration/components/connections/connections.component.js +390 -389
  259. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  260. package/dist/Integration/components/overview/overview.component.js +2 -2
  261. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +2 -2
  262. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  263. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +45 -44
  264. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  265. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +293 -291
  266. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  267. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +62 -61
  268. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  269. package/dist/Lists/components/lists-browse-resource.component.d.ts +6 -2
  270. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  271. package/dist/Lists/components/lists-browse-resource.component.js +525 -566
  272. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  273. package/dist/Lists/components/lists-categories-resource.component.js +135 -134
  274. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  275. package/dist/Lists/components/lists-my-lists-resource.component.js +199 -198
  276. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  277. package/dist/MCP/mcp-dashboard.component.js +443 -438
  278. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  279. package/dist/QueryBrowser/query-browser-resource.component.d.ts +14 -14
  280. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  281. package/dist/QueryBrowser/query-browser-resource.component.js +11 -10
  282. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  283. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  284. package/dist/Scheduling/components/scheduling-activity.component.js +146 -147
  285. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  286. package/dist/Scheduling/components/scheduling-jobs.component.js +76 -75
  287. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  288. package/dist/Scheduling/components/scheduling-overview.component.js +97 -96
  289. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  290. package/dist/Scheduling/scheduling-dashboard.component.js +24 -22
  291. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  292. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +2 -0
  293. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
  294. package/dist/Scheduling/services/scheduling-instrumentation.service.js +1 -0
  295. package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
  296. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +1 -1
  297. package/dist/Testing/components/testing-explorer.component.d.ts +14 -4
  298. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  299. package/dist/Testing/components/testing-explorer.component.js +436 -427
  300. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  301. package/dist/Testing/components/testing-runs-resource.component.js +1 -1
  302. package/dist/Testing/components/testing-runs.component.js +116 -115
  303. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  304. package/dist/Testing/testing-dashboard.component.js +6 -7
  305. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  306. package/dist/VersionHistory/components/labels-resource.component.js +173 -172
  307. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  308. package/dist/VersionHistory/components/restore-resource.component.d.ts +6 -0
  309. package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
  310. package/dist/VersionHistory/components/restore-resource.component.js +116 -92
  311. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  312. package/dist/ai-dashboards.module.d.ts +47 -35
  313. package/dist/ai-dashboards.module.d.ts.map +1 -1
  314. package/dist/ai-dashboards.module.js +40 -1
  315. package/dist/ai-dashboards.module.js.map +1 -1
  316. package/dist/communication-dashboards.module.d.ts +1 -1
  317. package/dist/communication-dashboards.module.d.ts.map +1 -1
  318. package/dist/communication-dashboards.module.js +7 -1
  319. package/dist/communication-dashboards.module.js.map +1 -1
  320. package/dist/component-studio-dashboards.module.d.ts +34 -22
  321. package/dist/component-studio-dashboards.module.d.ts.map +1 -1
  322. package/dist/component-studio-dashboards.module.js +65 -9
  323. package/dist/component-studio-dashboards.module.js.map +1 -1
  324. package/dist/testing-dashboards.module.d.ts +4 -5
  325. package/dist/testing-dashboards.module.d.ts.map +1 -1
  326. package/dist/testing-dashboards.module.js +7 -5
  327. package/dist/testing-dashboards.module.js.map +1 -1
  328. package/package.json +55 -53
@@ -27,19 +27,19 @@ import * as i10 from "./new-action-panel.component";
27
27
  const _forTrack0 = ($index, $item) => $item.value;
28
28
  const _forTrack1 = ($index, $item) => $item.field;
29
29
  const _forTrack2 = ($index, $item) => $item.ID;
30
- function ActionExplorerComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
30
+ function ActionExplorerComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
31
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([])); });
32
+ i0.ɵɵelementStart(0, "button", 29);
33
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.StateService.setStatusFilter([])); });
34
34
  i0.ɵɵtext(1, "Clear");
35
35
  i0.ɵɵelementEnd();
36
36
  } }
37
- function ActionExplorerComponent_For_13_Template(rf, ctx) { if (rf & 1) {
37
+ function ActionExplorerComponent_For_20_Template(rf, ctx) { if (rf & 1) {
38
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)); });
39
+ i0.ɵɵelementStart(0, "label", 30)(1, "input", 31);
40
+ i0.ɵɵlistener("change", function ActionExplorerComponent_For_20_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
41
  i0.ɵɵelementEnd();
42
- i0.ɵɵelement(2, "span", 34);
42
+ i0.ɵɵelement(2, "span", 32);
43
43
  i0.ɵɵtext(3);
44
44
  i0.ɵɵelementEnd();
45
45
  } if (rf & 2) {
@@ -53,17 +53,17 @@ function ActionExplorerComponent_For_13_Template(rf, ctx) { if (rf & 1) {
53
53
  i0.ɵɵadvance();
54
54
  i0.ɵɵtextInterpolate1(" ", status_r4.label, " ");
55
55
  } }
56
- function ActionExplorerComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
56
+ function ActionExplorerComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
57
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([])); });
58
+ i0.ɵɵelementStart(0, "button", 29);
59
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_25_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.StateService.setTypeFilter([])); });
60
60
  i0.ɵɵtext(1, "Clear");
61
61
  i0.ɵɵelementEnd();
62
62
  } }
63
- function ActionExplorerComponent_For_21_Template(rf, ctx) { if (rf & 1) {
63
+ function ActionExplorerComponent_For_28_Template(rf, ctx) { if (rf & 1) {
64
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)); });
65
+ i0.ɵɵelementStart(0, "label", 30)(1, "input", 31);
66
+ i0.ɵɵlistener("change", function ActionExplorerComponent_For_28_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
67
  i0.ɵɵelementEnd();
68
68
  i0.ɵɵelement(2, "i");
69
69
  i0.ɵɵtext(3);
@@ -79,23 +79,23 @@ function ActionExplorerComponent_For_21_Template(rf, ctx) { if (rf & 1) {
79
79
  i0.ɵɵadvance();
80
80
  i0.ɵɵtextInterpolate1(" ", type_r7.label, " ");
81
81
  } }
82
- function ActionExplorerComponent_Conditional_27_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
83
- i0.ɵɵelement(0, "i", 38);
82
+ function ActionExplorerComponent_For_35_Conditional_3_Template(rf, ctx) { if (rf & 1) {
83
+ i0.ɵɵelement(0, "i", 35);
84
84
  } if (rf & 2) {
85
- const ctx_r1 = i0.ɵɵnextContext(3);
85
+ const ctx_r1 = i0.ɵɵnextContext(2);
86
86
  i0.ɵɵclassMap(ctx_r1.SortDirection === "asc" ? "fa-solid fa-arrow-up" : "fa-solid fa-arrow-down");
87
87
  } }
88
- function ActionExplorerComponent_Conditional_27_For_2_Template(rf, ctx) { if (rf & 1) {
88
+ function ActionExplorerComponent_For_35_Template(rf, ctx) { if (rf & 1) {
89
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)); });
90
+ i0.ɵɵelementStart(0, "button", 33);
91
+ i0.ɵɵlistener("click", function ActionExplorerComponent_For_35_Template_button_click_0_listener() { const option_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setSortField(option_r9.field)); });
92
92
  i0.ɵɵelement(1, "i");
93
93
  i0.ɵɵtext(2);
94
- i0.ɵɵconditionalCreate(3, ActionExplorerComponent_Conditional_27_For_2_Conditional_3_Template, 1, 2, "i", 37);
94
+ i0.ɵɵconditionalCreate(3, ActionExplorerComponent_For_35_Conditional_3_Template, 1, 2, "i", 34);
95
95
  i0.ɵɵelementEnd();
96
96
  } if (rf & 2) {
97
97
  const option_r9 = ctx.$implicit;
98
- const ctx_r1 = i0.ɵɵnextContext(2);
98
+ const ctx_r1 = i0.ɵɵnextContext();
99
99
  i0.ɵɵclassProp("selected", ctx_r1.SortField === option_r9.field);
100
100
  i0.ɵɵadvance();
101
101
  i0.ɵɵclassMap(option_r9.icon);
@@ -104,177 +104,132 @@ function ActionExplorerComponent_Conditional_27_For_2_Template(rf, ctx) { if (rf
104
104
  i0.ɵɵadvance();
105
105
  i0.ɵɵconditional(ctx_r1.SortField === option_r9.field ? 3 : -1);
106
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);
107
+ function ActionExplorerComponent_Conditional_39_Template(rf, ctx) { if (rf & 1) {
108
+ i0.ɵɵelementStart(0, "div", 20);
109
+ i0.ɵɵelement(1, "mj-loading", 36);
110
110
  i0.ɵɵelementEnd();
111
- } if (rf & 2) {
112
- const ctx_r1 = i0.ɵɵnextContext();
113
- i0.ɵɵadvance();
114
- i0.ɵɵrepeater(ctx_r1.SortOptions);
115
111
  } }
116
- function ActionExplorerComponent_Conditional_35_For_2_Template(rf, ctx) { if (rf & 1) {
112
+ function ActionExplorerComponent_Conditional_44_Conditional_1_Template(rf, ctx) { if (rf & 1) {
117
113
  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);
114
+ i0.ɵɵelement(0, "i", 37);
160
115
  i0.ɵɵelementStart(1, "h3");
161
116
  i0.ɵɵtext(2, "No actions match your filters");
162
117
  i0.ɵɵelementEnd();
163
118
  i0.ɵɵelementStart(3, "p");
164
119
  i0.ɵɵtext(4, "Try adjusting your search or filter criteria");
165
120
  i0.ɵɵelementEnd();
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);
121
+ i0.ɵɵelementStart(5, "button", 38);
122
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_44_Conditional_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.StateService.clearFilters(); return i0.ɵɵresetView(ctx_r1.StateService.setSelectedCategoryId("all")); });
123
+ i0.ɵɵelement(6, "i", 39);
169
124
  i0.ɵɵtext(7, " Clear All Filters ");
170
125
  i0.ɵɵelementEnd();
171
126
  } }
172
- function ActionExplorerComponent_Conditional_43_Conditional_2_Template(rf, ctx) { if (rf & 1) {
173
- const _r15 = i0.ɵɵgetCurrentView();
174
- i0.ɵɵelement(0, "i", 45);
127
+ function ActionExplorerComponent_Conditional_44_Conditional_2_Template(rf, ctx) { if (rf & 1) {
128
+ const _r11 = i0.ɵɵgetCurrentView();
129
+ i0.ɵɵelement(0, "i", 40);
175
130
  i0.ɵɵelementStart(1, "h3");
176
131
  i0.ɵɵtext(2, "No actions yet");
177
132
  i0.ɵɵelementEnd();
178
133
  i0.ɵɵelementStart(3, "p");
179
134
  i0.ɵɵtext(4, "Create your first action to get started");
180
135
  i0.ɵɵelementEnd();
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);
136
+ i0.ɵɵelementStart(5, "button", 41);
137
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_44_Conditional_2_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onNewAction()); });
138
+ i0.ɵɵelement(6, "i", 6);
184
139
  i0.ɵɵtext(7, " Create Action ");
185
140
  i0.ɵɵelementEnd();
186
141
  } }
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);
142
+ function ActionExplorerComponent_Conditional_44_Template(rf, ctx) { if (rf & 1) {
143
+ i0.ɵɵelementStart(0, "div", 25);
144
+ i0.ɵɵconditionalCreate(1, ActionExplorerComponent_Conditional_44_Conditional_1_Template, 8, 0)(2, ActionExplorerComponent_Conditional_44_Conditional_2_Template, 8, 0);
190
145
  i0.ɵɵelementEnd();
191
146
  } if (rf & 2) {
192
147
  const ctx_r1 = i0.ɵɵnextContext();
193
148
  i0.ɵɵadvance();
194
149
  i0.ɵɵconditional(ctx_r1.StateService.hasActiveFilters() || ctx_r1.SelectedCategoryId !== "all" ? 1 : 2);
195
150
  } }
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)); });
151
+ function ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
152
+ const _r12 = i0.ɵɵgetCurrentView();
153
+ i0.ɵɵelementStart(0, "mj-action-card", 46);
154
+ i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template_mj_action_card_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template_mj_action_card_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template_mj_action_card_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template_mj_action_card_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
200
155
  i0.ɵɵelementEnd();
201
156
  } if (rf & 2) {
202
- const action_r17 = ctx.$implicit;
157
+ const action_r13 = ctx.$implicit;
203
158
  const ctx_r1 = i0.ɵɵnextContext(3);
204
- i0.ɵɵproperty("Action", action_r17)("Categories", ctx_r1.CategoriesMap);
159
+ i0.ɵɵproperty("Action", action_r13)("Categories", ctx_r1.CategoriesMap);
205
160
  } }
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);
161
+ function ActionExplorerComponent_Conditional_45_Conditional_0_Template(rf, ctx) { if (rf & 1) {
162
+ i0.ɵɵelementStart(0, "div", 42);
163
+ i0.ɵɵrepeaterCreate(1, ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template, 1, 2, "mj-action-card", 45, _forTrack2);
209
164
  i0.ɵɵelementEnd();
210
165
  } if (rf & 2) {
211
166
  const ctx_r1 = i0.ɵɵnextContext(2);
212
167
  i0.ɵɵadvance();
213
168
  i0.ɵɵrepeater(ctx_r1.FilteredActions);
214
169
  } }
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)); });
170
+ function ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template(rf, ctx) { if (rf & 1) {
171
+ const _r14 = i0.ɵɵgetCurrentView();
172
+ i0.ɵɵelementStart(0, "mj-action-list-item", 57);
173
+ i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template_mj_action_list_item_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template_mj_action_list_item_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template_mj_action_list_item_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template_mj_action_list_item_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
219
174
  i0.ɵɵelementEnd();
220
175
  } if (rf & 2) {
221
- const action_r19 = ctx.$implicit;
176
+ const action_r15 = ctx.$implicit;
222
177
  const ctx_r1 = i0.ɵɵnextContext(3);
223
- i0.ɵɵproperty("Action", action_r19)("Categories", ctx_r1.CategoriesMap)("IsCompact", false);
178
+ i0.ɵɵproperty("Action", action_r15)("Categories", ctx_r1.CategoriesMap)("IsCompact", false);
224
179
  } }
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);
180
+ function ActionExplorerComponent_Conditional_45_Conditional_1_Template(rf, ctx) { if (rf & 1) {
181
+ i0.ɵɵelementStart(0, "div", 43)(1, "div", 47);
182
+ i0.ɵɵelement(2, "div", 48);
183
+ i0.ɵɵelementStart(3, "div", 49);
229
184
  i0.ɵɵtext(4, "Name");
230
185
  i0.ɵɵelementEnd();
231
- i0.ɵɵelementStart(5, "div", 55);
186
+ i0.ɵɵelementStart(5, "div", 50);
232
187
  i0.ɵɵtext(6, "Category");
233
188
  i0.ɵɵelementEnd();
234
- i0.ɵɵelementStart(7, "div", 56);
189
+ i0.ɵɵelementStart(7, "div", 51);
235
190
  i0.ɵɵtext(8, "Status");
236
191
  i0.ɵɵelementEnd();
237
- i0.ɵɵelementStart(9, "div", 57);
192
+ i0.ɵɵelementStart(9, "div", 52);
238
193
  i0.ɵɵtext(10, "Type");
239
194
  i0.ɵɵelementEnd();
240
- i0.ɵɵelementStart(11, "div", 58);
195
+ i0.ɵɵelementStart(11, "div", 53);
241
196
  i0.ɵɵtext(12, "Params");
242
197
  i0.ɵɵelementEnd();
243
- i0.ɵɵelementStart(13, "div", 59);
198
+ i0.ɵɵelementStart(13, "div", 54);
244
199
  i0.ɵɵtext(14, "Updated");
245
200
  i0.ɵɵelementEnd();
246
- i0.ɵɵelement(15, "div", 60);
201
+ i0.ɵɵelement(15, "div", 55);
247
202
  i0.ɵɵelementEnd();
248
- i0.ɵɵrepeaterCreate(16, ActionExplorerComponent_Conditional_44_Conditional_1_For_17_Template, 1, 3, "mj-action-list-item", 61, _forTrack2);
203
+ i0.ɵɵrepeaterCreate(16, ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template, 1, 3, "mj-action-list-item", 56, _forTrack2);
249
204
  i0.ɵɵelementEnd();
250
205
  } if (rf & 2) {
251
206
  const ctx_r1 = i0.ɵɵnextContext(2);
252
207
  i0.ɵɵadvance(16);
253
208
  i0.ɵɵrepeater(ctx_r1.FilteredActions);
254
209
  } }
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)); });
210
+ function ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
211
+ const _r16 = i0.ɵɵgetCurrentView();
212
+ i0.ɵɵelementStart(0, "mj-action-list-item", 57);
213
+ i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template_mj_action_list_item_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template_mj_action_list_item_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template_mj_action_list_item_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template_mj_action_list_item_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
259
214
  i0.ɵɵelementEnd();
260
215
  } if (rf & 2) {
261
- const action_r21 = ctx.$implicit;
216
+ const action_r17 = ctx.$implicit;
262
217
  const ctx_r1 = i0.ɵɵnextContext(3);
263
- i0.ɵɵproperty("Action", action_r21)("Categories", ctx_r1.CategoriesMap)("IsCompact", true);
218
+ i0.ɵɵproperty("Action", action_r17)("Categories", ctx_r1.CategoriesMap)("IsCompact", true);
264
219
  } }
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);
220
+ function ActionExplorerComponent_Conditional_45_Conditional_2_Template(rf, ctx) { if (rf & 1) {
221
+ i0.ɵɵelementStart(0, "div", 44);
222
+ i0.ɵɵrepeaterCreate(1, ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template, 1, 3, "mj-action-list-item", 56, _forTrack2);
268
223
  i0.ɵɵelementEnd();
269
224
  } if (rf & 2) {
270
225
  const ctx_r1 = i0.ɵɵnextContext(2);
271
226
  i0.ɵɵadvance();
272
227
  i0.ɵɵrepeater(ctx_r1.FilteredActions);
273
228
  } }
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);
229
+ function ActionExplorerComponent_Conditional_45_Template(rf, ctx) { if (rf & 1) {
230
+ i0.ɵɵconditionalCreate(0, ActionExplorerComponent_Conditional_45_Conditional_0_Template, 3, 0, "div", 42);
231
+ i0.ɵɵconditionalCreate(1, ActionExplorerComponent_Conditional_45_Conditional_1_Template, 18, 0, "div", 43);
232
+ i0.ɵɵconditionalCreate(2, ActionExplorerComponent_Conditional_45_Conditional_2_Template, 3, 0, "div", 44);
278
233
  } if (rf & 2) {
279
234
  const ctx_r1 = i0.ɵɵnextContext();
280
235
  i0.ɵɵconditional(ctx_r1.ViewMode === "card" ? 0 : -1);
@@ -283,10 +238,10 @@ function ActionExplorerComponent_Conditional_44_Template(rf, ctx) { if (rf & 1)
283
238
  i0.ɵɵadvance();
284
239
  i0.ɵɵconditional(ctx_r1.ViewMode === "compact" ? 2 : -1);
285
240
  } }
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()); });
241
+ function ActionExplorerComponent_Conditional_48_Template(rf, ctx) { if (rf & 1) {
242
+ const _r18 = i0.ɵɵgetCurrentView();
243
+ i0.ɵɵelementStart(0, "mj-action-test-harness-dialog", 58);
244
+ i0.ɵɵlistener("Close", function ActionExplorerComponent_Conditional_48_Template_mj_action_test_harness_dialog_Close_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnRunDialogClose()); });
290
245
  i0.ɵɵelementEnd();
291
246
  } if (rf & 2) {
292
247
  const ctx_r1 = i0.ɵɵnextContext();
@@ -311,7 +266,6 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
311
266
  approvalStatuses: [],
312
267
  hasExecutions: null
313
268
  };
314
- ShowSortDropdown = false;
315
269
  SelectedCategoryId = 'all';
316
270
  NewCategoryParentId = null;
317
271
  // Run dialog state
@@ -598,7 +552,6 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
598
552
  }
599
553
  setSortField(field) {
600
554
  this.StateService.setSortField(field);
601
- this.ShowSortDropdown = false;
602
555
  }
603
556
  toggleStatus(status) {
604
557
  const current = [...this.Filters.statuses];
@@ -627,24 +580,11 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
627
580
  clearFilters() {
628
581
  this.StateService.clearFilters();
629
582
  }
630
- hasActiveFilters() {
631
- return this.StateService.hasActiveFilters();
632
- }
633
583
  /** Active filter count for the popover badge — counts only Status + Type
634
584
  * (searchTerm has its own search input, not part of the popover). */
635
585
  get StatusTypeFilterCount() {
636
586
  return this.Filters.statuses.length + this.Filters.types.length;
637
587
  }
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
- }
648
588
  async GetResourceDisplayName(data) {
649
589
  return 'Action Explorer';
650
590
  }
@@ -657,117 +597,104 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
657
597
  } if (rf & 2) {
658
598
  let _t;
659
599
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.TreePanel = _t.first);
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) {
600
+ } }, standalone: false, features: [i0.ɵɵProvidersFeature([ActionExplorerStateService]), i0.ɵɵInheritDefinitionFeature], decls: 49, vars: 21, 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, "Clicked"], ["mjButton", "", "variant", "primary", "size", "sm", "title", "New Action", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "action-btn-label"], ["toolbar", ""], ["Placeholder", "Search actions...", 3, "ValueChange", "Value"], [3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [1, "dropdown-section"], [1, "section-header"], ["mjButton", "", "variant", "flat", "size", "sm"], [1, "filter-options"], [1, "filter-option", 3, "selected"], [1, "sort-option", 3, "selected"], [3, "KeyChange", "Options", "ActiveKey"], [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, "click"], [1, "direction-icon", 3, "class"], [1, "direction-icon"], ["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, "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
601
  i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0)(2, "div", 1);
662
602
  i0.ɵɵelement(3, "mj-stat-badge", 2);
663
603
  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);
604
+ i0.ɵɵelementStart(4, "div", 3)(5, "mj-refresh-button", 4);
605
+ i0.ɵɵlistener("Clicked", function ActionExplorerComponent_Template_mj_refresh_button_Clicked_5_listener() { return ctx.onRefresh(); });
670
606
  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");
676
- i0.ɵɵelementEnd();
677
- i0.ɵɵconditionalCreate(18, ActionExplorerComponent_Conditional_18_Template, 2, 0, "button", 7);
678
- i0.ɵɵelementEnd();
679
- i0.ɵɵelementStart(19, "div", 8);
680
- i0.ɵɵrepeaterCreate(20, ActionExplorerComponent_For_21_Template, 4, 6, "label", 9, _forTrack0);
607
+ i0.ɵɵelementStart(6, "button", 5);
608
+ i0.ɵɵlistener("click", function ActionExplorerComponent_Template_button_click_6_listener() { return ctx.onNewAction(); });
609
+ i0.ɵɵelement(7, "i", 6);
610
+ i0.ɵɵelementStart(8, "span", 7);
611
+ i0.ɵɵtext(9, "New Action");
681
612
  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");
689
- i0.ɵɵelementEnd();
690
- i0.ɵɵconditionalCreate(27, ActionExplorerComponent_Conditional_27_Template, 3, 0, "div", 12);
613
+ i0.ɵɵelementStart(10, "div", 8)(11, "mj-page-search", 9);
614
+ i0.ɵɵlistener("ValueChange", function ActionExplorerComponent_Template_mj_page_search_ValueChange_11_listener($event) { return ctx.onSearchInput($event); });
691
615
  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); });
616
+ i0.ɵɵelementStart(12, "mj-filter-popover", 10);
617
+ i0.ɵɵlistener("ClearAllRequested", function ActionExplorerComponent_Template_mj_filter_popover_ClearAllRequested_12_listener() { return ctx.clearFilters(); });
618
+ i0.ɵɵelementStart(13, "div", 11)(14, "div", 12)(15, "span");
619
+ i0.ɵɵtext(16, "Status");
694
620
  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(); });
621
+ i0.ɵɵconditionalCreate(17, ActionExplorerComponent_Conditional_17_Template, 2, 0, "button", 13);
697
622
  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 ");
623
+ i0.ɵɵelementStart(18, "div", 14);
624
+ i0.ɵɵrepeaterCreate(19, ActionExplorerComponent_For_20_Template, 4, 5, "label", 15, _forTrack0);
702
625
  i0.ɵɵelementEnd()();
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); });
626
+ i0.ɵɵelementStart(21, "div", 11)(22, "div", 12)(23, "span");
627
+ i0.ɵɵtext(24, "Type");
705
628
  i0.ɵɵelementEnd();
706
- i0.ɵɵconditionalCreate(35, ActionExplorerComponent_Conditional_35_Template, 5, 0, "div", 19);
629
+ i0.ɵɵconditionalCreate(25, ActionExplorerComponent_Conditional_25_Template, 2, 0, "button", 13);
630
+ i0.ɵɵelementEnd();
631
+ i0.ɵɵelementStart(26, "div", 14);
632
+ i0.ɵɵrepeaterCreate(27, ActionExplorerComponent_For_28_Template, 4, 6, "label", 15, _forTrack0);
633
+ i0.ɵɵelementEnd()();
634
+ i0.ɵɵelementStart(29, "div", 11)(30, "div", 12)(31, "span");
635
+ i0.ɵɵtext(32, "Sort");
707
636
  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); });
637
+ i0.ɵɵelementStart(33, "div", 14);
638
+ i0.ɵɵrepeaterCreate(34, ActionExplorerComponent_For_35_Template, 4, 6, "button", 16, _forTrack1);
639
+ i0.ɵɵelementEnd()()();
640
+ i0.ɵɵelementStart(36, "mj-view-toggle", 17);
641
+ i0.ɵɵlistener("KeyChange", function ActionExplorerComponent_Template_mj_view_toggle_KeyChange_36_listener($event) { return ctx.setViewMode($event); });
642
+ i0.ɵɵelementEnd()()();
643
+ i0.ɵɵelementStart(37, "mj-page-body", 18)(38, "div", 19);
644
+ i0.ɵɵconditionalCreate(39, ActionExplorerComponent_Conditional_39_Template, 2, 0, "div", 20);
645
+ i0.ɵɵelementStart(40, "mj-action-tree-panel", 21);
646
+ i0.ɵɵlistener("CategorySelected", function ActionExplorerComponent_Template_mj_action_tree_panel_CategorySelected_40_listener($event) { return ctx.onCategorySelect($event); })("NewCategoryClick", function ActionExplorerComponent_Template_mj_action_tree_panel_NewCategoryClick_40_listener($event) { return ctx.onNewCategory($event); })("EditCategoryClick", function ActionExplorerComponent_Template_mj_action_tree_panel_EditCategoryClick_40_listener($event) { return ctx.onEditCategory($event); });
712
647
  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); });
648
+ i0.ɵɵelementStart(41, "div", 22)(42, "mj-action-breadcrumb", 23);
649
+ i0.ɵɵlistener("CategorySelect", function ActionExplorerComponent_Template_mj_action_breadcrumb_CategorySelect_42_listener($event) { return ctx.onCategorySelect($event); });
715
650
  i0.ɵɵelementEnd();
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);
651
+ i0.ɵɵelementStart(43, "div", 24);
652
+ i0.ɵɵconditionalCreate(44, ActionExplorerComponent_Conditional_44_Template, 3, 1, "div", 25)(45, ActionExplorerComponent_Conditional_45_Template, 3, 3);
718
653
  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; });
654
+ i0.ɵɵelementStart(46, "mj-new-category-panel", 26);
655
+ i0.ɵɵlistener("CategoryCreated", function ActionExplorerComponent_Template_mj_new_category_panel_CategoryCreated_46_listener($event) { return ctx.onCategoryCreated($event); })("Close", function ActionExplorerComponent_Template_mj_new_category_panel_Close_46_listener() { return ctx.NewCategoryParentId = null; });
721
656
  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(); });
657
+ i0.ɵɵelementStart(47, "mj-new-action-panel", 27);
658
+ i0.ɵɵlistener("ActionCreated", function ActionExplorerComponent_Template_mj_new_action_panel_ActionCreated_47_listener() { return ctx.onActionCreated(); });
724
659
  i0.ɵɵelementEnd();
725
- i0.ɵɵconditionalCreate(47, ActionExplorerComponent_Conditional_47_Template, 1, 3, "mj-action-test-harness-dialog", 30);
660
+ i0.ɵɵconditionalCreate(48, ActionExplorerComponent_Conditional_48_Template, 1, 3, "mj-action-test-harness-dialog", 28);
726
661
  i0.ɵɵelementEnd()()();
727
662
  } if (rf & 2) {
728
663
  i0.ɵɵadvance(3);
729
664
  i0.ɵɵproperty("Count", ctx.FilteredActions.length)("Total", ctx.Actions.length);
730
- i0.ɵɵadvance(2);
665
+ i0.ɵɵadvance(8);
666
+ i0.ɵɵproperty("Value", ctx.Filters.searchTerm);
667
+ i0.ɵɵadvance();
731
668
  i0.ɵɵproperty("ActiveCount", ctx.StatusTypeFilterCount)("ShowClearAll", ctx.StatusTypeFilterCount > 0);
732
669
  i0.ɵɵadvance(5);
733
- i0.ɵɵconditional(ctx.Filters.statuses.length > 0 ? 10 : -1);
670
+ i0.ɵɵconditional(ctx.Filters.statuses.length > 0 ? 17 : -1);
734
671
  i0.ɵɵadvance(2);
735
672
  i0.ɵɵrepeater(ctx.StatusOptions);
736
673
  i0.ɵɵadvance(6);
737
- i0.ɵɵconditional(ctx.Filters.types.length > 0 ? 18 : -1);
674
+ i0.ɵɵconditional(ctx.Filters.types.length > 0 ? 25 : -1);
738
675
  i0.ɵɵadvance(2);
739
676
  i0.ɵɵrepeater(ctx.TypeOptions);
740
- i0.ɵɵadvance(4);
741
- i0.ɵɵclassMap(ctx.getSortIcon());
742
- i0.ɵɵadvance();
743
- i0.ɵɵtextInterpolate1(" ", ctx.getSortLabel(), " ");
744
- i0.ɵɵadvance();
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();
677
+ i0.ɵɵadvance(7);
678
+ i0.ɵɵrepeater(ctx.SortOptions);
679
+ i0.ɵɵadvance(2);
749
680
  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
681
  i0.ɵɵadvance();
755
682
  i0.ɵɵproperty("Flex", true)("Padding", false);
756
683
  i0.ɵɵadvance(2);
757
- i0.ɵɵconditional(ctx.IsLoading ? 38 : -1);
684
+ i0.ɵɵconditional(ctx.IsLoading ? 39 : -1);
758
685
  i0.ɵɵadvance();
759
686
  i0.ɵɵproperty("Categories", ctx.Categories)("Actions", ctx.Actions);
760
687
  i0.ɵɵadvance(2);
761
688
  i0.ɵɵproperty("SelectedCategoryId", ctx.SelectedCategoryId)("Categories", ctx.Categories);
762
689
  i0.ɵɵadvance(2);
763
- i0.ɵɵconditional(ctx.FilteredActions.length === 0 && !ctx.IsLoading ? 43 : 44);
690
+ i0.ɵɵconditional(ctx.FilteredActions.length === 0 && !ctx.IsLoading ? 44 : 45);
764
691
  i0.ɵɵadvance(2);
765
692
  i0.ɵɵproperty("Categories", ctx.Categories)("PreselectedParentId", ctx.NewCategoryParentId);
766
693
  i0.ɵɵadvance();
767
694
  i0.ɵɵproperty("Categories", ctx.Categories);
768
695
  i0.ɵɵadvance();
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 });
696
+ i0.ɵɵconditional(ctx.SelectedActionForRun ? 48 : -1);
697
+ } }, 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.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.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 \n\n\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 });
771
698
  };
772
699
  ActionExplorerComponent = __decorate([
773
700
  RegisterClass(BaseResourceComponent, 'ActionExplorerResource')
@@ -775,7 +702,7 @@ ActionExplorerComponent = __decorate([
775
702
  export { ActionExplorerComponent };
776
703
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionExplorerComponent, [{
777
704
  type: Component,
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"] }]
705
+ 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 <!-- Verbs only per \u00A73: secondary Refresh + the one primary CTA (rightmost). -->\n <mj-refresh-button (Clicked)=\"onRefresh()\"></mj-refresh-button>\n\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"onNewAction()\" title=\"New Action\">\n <i class=\"fa-solid fa-plus\"></i> <span class=\"action-btn-label\">New Action</span>\n </button>\n </div>\n <div toolbar>\n <!-- Control bar per \u00A73: search \u00B7 Filter (Status/Type/Sort) \u00B7 view. -->\n <mj-page-search\n Placeholder=\"Search actions...\"\n [Value]=\"Filters.searchTerm\"\n (ValueChange)=\"onSearchInput($event)\">\n </mj-page-search>\n\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 <!-- Sort lives inside the Filters popover (was a standalone dropdown). -->\n <div class=\"dropdown-section\">\n <div class=\"section-header\"><span>Sort</span></div>\n <div class=\"filter-options\">\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 </div>\n </mj-filter-popover>\n\n <mj-view-toggle\n [Options]=\"ViewToggleOptions\"\n [ActiveKey]=\"ViewMode\"\n (KeyChange)=\"setViewMode($any($event))\">\n </mj-view-toggle>\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 options (inside the Filters popover) \u2500\u2500\u2500\u2500 */\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.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 /* Search-grow + .action-btn-label collapse are owned by the shared chrome\n (page-header.scss) since search lives in the [toolbar] slot. None here. */\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"] }]
779
706
  }], () => [{ type: i1.ActionExplorerStateService }, { type: i0.ChangeDetectorRef }], { TreePanel: [{
780
707
  type: ViewChild,
781
708
  args: [ActionTreePanelComponent]