@memberjunction/ng-core-entity-forms 5.22.0 → 5.24.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 (215) hide show
  1. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +4 -5
  2. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/add-action-dialog.component.js +55 -59
  4. package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
  5. package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js +0 -1
  6. package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js.map +1 -1
  7. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +4 -5
  8. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
  9. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +54 -71
  10. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
  11. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  12. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1053 -1096
  13. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  14. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +2 -3
  15. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
  16. package/dist/lib/custom/AIAgents/ai-agent-management.service.js +39 -82
  17. package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
  18. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +4 -5
  19. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
  20. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +28 -31
  21. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
  22. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +4 -5
  23. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
  24. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +15 -14
  25. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
  26. package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +4 -7
  27. package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
  28. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +77 -124
  29. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
  30. package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +2 -2
  31. package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
  32. package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +10 -11
  33. package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
  34. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +4 -5
  35. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
  36. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +18 -18
  37. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
  38. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +4 -5
  39. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
  40. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +59 -80
  41. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
  42. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +4 -5
  43. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
  44. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +23 -24
  45. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
  46. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  47. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +862 -906
  48. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  49. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +4 -5
  50. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
  51. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +448 -499
  52. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  53. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +2 -2
  54. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
  55. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +6 -11
  56. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
  57. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +4 -5
  58. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
  59. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +16 -15
  60. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
  61. package/dist/lib/custom/Actions/action-execution-log-form.component.js +160 -166
  62. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  63. package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
  64. package/dist/lib/custom/Actions/action-form.component.js +93 -94
  65. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  66. package/dist/lib/custom/ContentSources/content-source-form.component.d.ts +22 -0
  67. package/dist/lib/custom/ContentSources/content-source-form.component.d.ts.map +1 -0
  68. package/dist/lib/custom/ContentSources/content-source-form.component.js +165 -0
  69. package/dist/lib/custom/ContentSources/content-source-form.component.js.map +1 -0
  70. package/dist/lib/custom/Entities/entity-form.component.js +2 -2
  71. package/dist/lib/custom/Lists/list-form.component.js +61 -63
  72. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  73. package/dist/lib/custom/Queries/query-category-dialog.component.js +33 -59
  74. package/dist/lib/custom/Queries/query-category-dialog.component.js.map +1 -1
  75. package/dist/lib/custom/Queries/query-form.component.js +354 -360
  76. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  77. package/dist/lib/custom/Queries/query-run-dialog.component.js +62 -71
  78. package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
  79. package/dist/lib/custom/Templates/template-param-dialog.component.js +128 -124
  80. package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
  81. package/dist/lib/custom/Templates/template-params-grid.component.d.ts +45 -22
  82. package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
  83. package/dist/lib/custom/Templates/template-params-grid.component.js +380 -384
  84. package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
  85. package/dist/lib/custom/Templates/templates-form.component.js +34 -36
  86. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  87. package/dist/lib/custom/Tests/test-form.component.js +8 -9
  88. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  89. package/dist/lib/custom/Tests/test-run-feedback-form.component.js +4 -4
  90. package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
  91. package/dist/lib/custom/Tests/test-run-form.component.js +7 -7
  92. package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
  93. package/dist/lib/custom/Tests/test-suite-form.component.js +6 -7
  94. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  95. package/dist/lib/custom/Tests/test-suite-run-form.component.js +6 -7
  96. package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
  97. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +381 -409
  98. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  99. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
  100. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +1 -1
  101. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
  102. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  103. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +74 -63
  104. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  105. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +10 -10
  106. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -1
  107. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  108. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +352 -332
  109. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  110. package/dist/lib/custom/custom-forms.module.d.ts +25 -29
  111. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  112. package/dist/lib/custom/custom-forms.module.js +57 -82
  113. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  114. package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +4 -5
  115. package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
  116. package/dist/lib/custom/shared/entity-selector-dialog.component.js +59 -66
  117. package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
  118. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
  119. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +176 -156
  120. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  121. package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.d.ts +10 -0
  122. package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.d.ts.map +1 -0
  123. package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js +65 -0
  124. package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js.map +1 -0
  125. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.d.ts +10 -0
  126. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.d.ts.map +1 -0
  127. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js +89 -0
  128. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js.map +1 -0
  129. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.d.ts.map +1 -1
  130. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +98 -44
  131. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
  132. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
  133. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +35 -17
  134. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
  135. package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.d.ts.map +1 -1
  136. package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js +79 -20
  137. package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js.map +1 -1
  138. package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.d.ts +10 -0
  139. package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.d.ts.map +1 -0
  140. package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js +73 -0
  141. package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js.map +1 -0
  142. package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js +11 -6
  143. package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js.map +1 -1
  144. package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.d.ts.map +1 -1
  145. package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js +49 -8
  146. package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js.map +1 -1
  147. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.d.ts +10 -0
  148. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.d.ts.map +1 -0
  149. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js +107 -0
  150. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js.map +1 -0
  151. package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.d.ts +10 -0
  152. package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.d.ts.map +1 -0
  153. package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js +57 -0
  154. package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js.map +1 -0
  155. package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.d.ts.map +1 -1
  156. package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +71 -24
  157. package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js.map +1 -1
  158. package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.d.ts.map +1 -1
  159. package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js +43 -15
  160. package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js.map +1 -1
  161. package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.d.ts.map +1 -1
  162. package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js +43 -17
  163. package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
  164. package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js +21 -11
  165. package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js.map +1 -1
  166. package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +19 -13
  167. package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js.map +1 -1
  168. package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.d.ts.map +1 -1
  169. package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js +7 -9
  170. package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js.map +1 -1
  171. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  172. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +78 -60
  173. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  174. package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.d.ts.map +1 -1
  175. package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js +24 -6
  176. package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js.map +1 -1
  177. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.d.ts.map +1 -1
  178. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +21 -9
  179. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
  180. package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.d.ts.map +1 -1
  181. package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js +23 -5
  182. package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js.map +1 -1
  183. package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.d.ts +10 -0
  184. package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.d.ts.map +1 -0
  185. package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js +77 -0
  186. package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js.map +1 -0
  187. package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.d.ts.map +1 -1
  188. package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js +22 -4
  189. package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js.map +1 -1
  190. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.d.ts.map +1 -1
  191. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +139 -19
  192. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
  193. package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.d.ts +10 -0
  194. package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.d.ts.map +1 -0
  195. package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js +67 -0
  196. package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js.map +1 -0
  197. package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.d.ts +10 -0
  198. package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.d.ts.map +1 -0
  199. package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js +65 -0
  200. package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js.map +1 -0
  201. package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js +10 -8
  202. package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js.map +1 -1
  203. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  204. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +226 -154
  205. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  206. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.d.ts.map +1 -1
  207. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js +41 -5
  208. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js.map +1 -1
  209. package/dist/lib/generated/generated-forms.module.d.ts +286 -279
  210. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  211. package/dist/lib/generated/generated-forms.module.js +192 -214
  212. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  213. package/dist/lib/shared/components/template-editor.component.js +14 -15
  214. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  215. package/package.json +34 -41
@@ -1,6 +1,5 @@
1
- import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
1
+ import { OnInit, OnDestroy, ChangeDetectorRef, EventEmitter } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
- import { WindowRef } from '@progress/kendo-angular-dialog';
4
3
  import { Subject, BehaviorSubject } from 'rxjs';
5
4
  import { MJActionEntity, MJActionCategoryEntity } from '@memberjunction/core-entities';
6
5
  import * as i0 from "@angular/core";
@@ -21,7 +20,6 @@ export interface ActionDisplayItem extends MJActionEntity {
21
20
  * Features searchable action list, category filtering, and multi-select capability.
22
21
  */
23
22
  export declare class AddActionDialogComponent implements OnInit, OnDestroy {
24
- private dialogRef;
25
23
  private cdr;
26
24
  agentId: string;
27
25
  agentName: string;
@@ -41,7 +39,8 @@ export declare class AddActionDialogComponent implements OnInit, OnDestroy {
41
39
  get selectedCount(): number;
42
40
  get totalActionCount(): number;
43
41
  get filteredCount(): number;
44
- constructor(dialogRef: WindowRef, cdr: ChangeDetectorRef);
42
+ DialogClose: EventEmitter<void>;
43
+ constructor(cdr: ChangeDetectorRef);
45
44
  ngOnInit(): void;
46
45
  ngOnDestroy(): void;
47
46
  private initializeData;
@@ -60,6 +59,6 @@ export declare class AddActionDialogComponent implements OnInit, OnDestroy {
60
59
  cancel(): void;
61
60
  addSelectedActions(): void;
62
61
  static ɵfac: i0.ɵɵFactoryDeclaration<AddActionDialogComponent, never>;
63
- static ɵcmp: i0.ɵɵComponentDeclaration<AddActionDialogComponent, "mj-add-action-dialog", never, {}, {}, never, never, false, never>;
62
+ static ɵcmp: i0.ɵɵComponentDeclaration<AddActionDialogComponent, "mj-add-action-dialog", never, {}, { "DialogClose": "DialogClose"; }, never, never, false, never>;
64
63
  }
65
64
  //# sourceMappingURL=add-action-dialog.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-action-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/add-action-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAa,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,eAAe,EAA2E,MAAM,MAAM,CAAC;AAEzH,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;;AAGvF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAMa,wBAAyB,YAAW,MAAM,EAAE,SAAS;IAuC9D,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IArCb,OAAO,EAAE,MAAM,CAAM;IACrB,SAAS,EAAE,MAAM,CAAM;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAM;IAGjC,OAAO,CAAC,QAAQ,CAAuB;IAChC,MAAM,4BAAmC;IAGhD,WAAW,uCAAgD;IAC3D,WAAW,4CAAqD;IAChE,gBAAgB,uCAAgD;IAChE,aAAa,sCAA+C;IAC5D,gBAAgB,+BAA+C;IAC/D,UAAU,2BAAuC;IAGjD,aAAa,6BAAuB;IACpC,mBAAmB,0BAAsC;IACzD,SAAS,mCAAgD;IACzD,kBAAkB,cAAqB;IAGvC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;gBAGS,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,iBAAiB;IAGhC,QAAQ;IAMR,WAAW;YAKG,cAAc;YAad,wBAAwB;IAmCtC,OAAO,CAAC,iBAAiB;IAgDzB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,wBAAwB;IAgBhC,cAAc,CAAC,UAAU,EAAE,MAAM;IAIjC,cAAc;IAKd,qBAAqB,CAAC,MAAM,EAAE,iBAAiB;IA4B/C,WAAW;IAIX,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAsBhD,MAAM;IAKN,kBAAkB;yCAzSP,wBAAwB;2CAAxB,wBAAwB;CAuTpC"}
1
+ {"version":3,"file":"add-action-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/add-action-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,eAAe,EAA2E,MAAM,MAAM,CAAC;AAEzH,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;;AAGvF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAMa,wBAAyB,YAAW,MAAM,EAAE,SAAS;IAyC9D,OAAO,CAAC,GAAG;IAtCb,OAAO,EAAE,MAAM,CAAM;IACrB,SAAS,EAAE,MAAM,CAAM;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAM;IAGjC,OAAO,CAAC,QAAQ,CAAuB;IAChC,MAAM,4BAAmC;IAGhD,WAAW,uCAAgD;IAC3D,WAAW,4CAAqD;IAChE,gBAAgB,uCAAgD;IAChE,aAAa,sCAA+C;IAC5D,gBAAgB,+BAA+C;IAC/D,UAAU,2BAAuC;IAGjD,aAAa,6BAAuB;IACpC,mBAAmB,0BAAsC;IACzD,SAAS,mCAAgD;IACzD,kBAAkB,cAAqB;IAGvC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAES,WAAW,qBAA4B;gBAGvC,GAAG,EAAE,iBAAiB;IAGhC,QAAQ;IAMR,WAAW;YAKG,cAAc;YAad,wBAAwB;IAmCtC,OAAO,CAAC,iBAAiB;IAgDzB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,wBAAwB;IAgBhC,cAAc,CAAC,UAAU,EAAE,MAAM;IAIjC,cAAc;IAKd,qBAAqB,CAAC,MAAM,EAAE,iBAAiB;IA4B/C,WAAW;IAIX,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAsBhD,MAAM;IAKN,kBAAkB;yCA1SP,wBAAwB;2CAAxB,wBAAwB;CAwTpC"}
@@ -1,19 +1,14 @@
1
- import { Component } from '@angular/core';
1
+ import { Component, Output, EventEmitter } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
3
  import { Subject, BehaviorSubject, combineLatest, debounceTime, distinctUntilChanged, takeUntil, startWith } from 'rxjs';
4
4
  import { RunView } from '@memberjunction/core';
5
5
  import { UUIDsEqual } from '@memberjunction/global';
6
6
  import * as i0 from "@angular/core";
7
- import * as i1 from "@progress/kendo-angular-dialog";
8
- import * as i2 from "@angular/forms";
9
- import * as i3 from "@progress/kendo-angular-inputs";
10
- import * as i4 from "@progress/kendo-angular-buttons";
11
- import * as i5 from "@angular/common";
7
+ import * as i1 from "@angular/forms";
8
+ import * as i2 from "@memberjunction/ng-ui-components";
9
+ import * as i3 from "@angular/common";
12
10
  const _forTrack0 = ($index, $item) => $item.id;
13
11
  const _forTrack1 = ($index, $item) => $item.ID;
14
- function AddActionDialogComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
15
- i0.ɵɵelement(0, "i", 27);
16
- } }
17
12
  function AddActionDialogComponent_For_24_Template(rf, ctx) { if (rf & 1) {
18
13
  const _r1 = i0.ɵɵgetCurrentView();
19
14
  i0.ɵɵelementStart(0, "div", 28);
@@ -38,7 +33,7 @@ function AddActionDialogComponent_For_24_Template(rf, ctx) { if (rf & 1) {
38
33
  i0.ɵɵtextInterpolate(category_r2.count);
39
34
  } }
40
35
  function AddActionDialogComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵelementStart(0, "div", 18)(1, "div", 31);
36
+ i0.ɵɵelementStart(0, "div", 19)(1, "div", 31);
42
37
  i0.ɵɵelement(2, "i", 32);
43
38
  i0.ɵɵelementEnd();
44
39
  i0.ɵɵelementStart(3, "p");
@@ -47,7 +42,7 @@ function AddActionDialogComponent_Conditional_27_Template(rf, ctx) { if (rf & 1)
47
42
  } }
48
43
  function AddActionDialogComponent_Conditional_29_Template(rf, ctx) { if (rf & 1) {
49
44
  const _r4 = i0.ɵɵgetCurrentView();
50
- i0.ɵɵelementStart(0, "div", 19);
45
+ i0.ɵɵelementStart(0, "div", 20);
51
46
  i0.ɵɵelement(1, "i", 33);
52
47
  i0.ɵɵelementStart(2, "h3");
53
48
  i0.ɵɵtext(3, "No actions found");
@@ -92,7 +87,7 @@ function AddActionDialogComponent_Conditional_31_For_2_Template(rf, ctx) { if (r
92
87
  i0.ɵɵelementStart(0, "div", 36);
93
88
  i0.ɵɵlistener("click", function AddActionDialogComponent_Conditional_31_For_2_Template_div_click_0_listener() { const action_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleActionSelection(action_r6)); });
94
89
  i0.ɵɵelementStart(1, "div", 37);
95
- i0.ɵɵelement(2, "i", 7);
90
+ i0.ɵɵelement(2, "i", 8);
96
91
  i0.ɵɵelementEnd();
97
92
  i0.ɵɵelementStart(3, "div", 38)(4, "div", 39);
98
93
  i0.ɵɵelement(5, "i");
@@ -128,7 +123,7 @@ function AddActionDialogComponent_Conditional_31_For_2_Template(rf, ctx) { if (r
128
123
  i0.ɵɵconditional(ctx_r2.existingActionIds.includes(action_r6.ID) ? 13 : -1);
129
124
  } }
130
125
  function AddActionDialogComponent_Conditional_31_Template(rf, ctx) { if (rf & 1) {
131
- i0.ɵɵelementStart(0, "div", 20);
126
+ i0.ɵɵelementStart(0, "div", 21);
132
127
  i0.ɵɵrepeaterCreate(1, AddActionDialogComponent_Conditional_31_For_2_Template, 14, 16, "div", 35, _forTrack1);
133
128
  i0.ɵɵpipe(3, "async");
134
129
  i0.ɵɵelementEnd();
@@ -145,7 +140,7 @@ function AddActionDialogComponent_Conditional_34_For_14_Conditional_13_Template(
145
140
  } }
146
141
  function AddActionDialogComponent_Conditional_34_For_14_Conditional_14_Template(rf, ctx) { if (rf & 1) {
147
142
  i0.ɵɵelementStart(0, "span", 59);
148
- i0.ɵɵelement(1, "i", 26);
143
+ i0.ɵɵelement(1, "i", 27);
149
144
  i0.ɵɵtext(2, " Available ");
150
145
  i0.ɵɵelementEnd();
151
146
  } }
@@ -154,7 +149,7 @@ function AddActionDialogComponent_Conditional_34_For_14_Template(rf, ctx) { if (
154
149
  i0.ɵɵelementStart(0, "div", 57);
155
150
  i0.ɵɵlistener("click", function AddActionDialogComponent_Conditional_34_For_14_Template_div_click_0_listener() { const action_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleActionSelection(action_r8)); });
156
151
  i0.ɵɵelementStart(1, "span", 50);
157
- i0.ɵɵelement(2, "i", 7);
152
+ i0.ɵɵelement(2, "i", 8);
158
153
  i0.ɵɵelementEnd();
159
154
  i0.ɵɵelementStart(3, "span", 51);
160
155
  i0.ɵɵelement(4, "i");
@@ -192,7 +187,7 @@ function AddActionDialogComponent_Conditional_34_For_14_Template(rf, ctx) { if (
192
187
  i0.ɵɵconditional(ctx_r2.existingActionIds.includes(action_r8.ID) ? 13 : 14);
193
188
  } }
194
189
  function AddActionDialogComponent_Conditional_34_Template(rf, ctx) { if (rf & 1) {
195
- i0.ɵɵelementStart(0, "div", 21)(1, "div", 49);
190
+ i0.ɵɵelementStart(0, "div", 22)(1, "div", 49);
196
191
  i0.ɵɵelement(2, "span", 50);
197
192
  i0.ɵɵelementStart(3, "span", 51);
198
193
  i0.ɵɵtext(4, "Name");
@@ -218,7 +213,7 @@ function AddActionDialogComponent_Conditional_34_Template(rf, ctx) { if (rf & 1)
218
213
  i0.ɵɵrepeater(i0.ɵɵpipeBind1(15, 0, ctx_r2.filteredActions$));
219
214
  } }
220
215
  function AddActionDialogComponent_Conditional_37_Template(rf, ctx) { if (rf & 1) {
221
- i0.ɵɵelementStart(0, "div", 22)(1, "div", 60);
216
+ i0.ɵɵelementStart(0, "div", 23)(1, "div", 60);
222
217
  i0.ɵɵelement(2, "i", 61);
223
218
  i0.ɵɵelementStart(3, "span");
224
219
  i0.ɵɵtext(4);
@@ -243,8 +238,7 @@ export class AddActionDialogComponent {
243
238
  get filteredCount() {
244
239
  return this.filteredActions$.value.length;
245
240
  }
246
- constructor(dialogRef, cdr) {
247
- this.dialogRef = dialogRef;
241
+ constructor(cdr) {
248
242
  this.cdr = cdr;
249
243
  // Input properties set by service
250
244
  this.agentId = '';
@@ -265,6 +259,7 @@ export class AddActionDialogComponent {
265
259
  this.selectedCategoryId$ = new BehaviorSubject('all');
266
260
  this.viewMode$ = new BehaviorSubject('grid');
267
261
  this.expandedCategories = new Set();
262
+ this.DialogClose = new EventEmitter();
268
263
  }
269
264
  ngOnInit() {
270
265
  this.initializeData();
@@ -485,7 +480,7 @@ export class AddActionDialogComponent {
485
480
  // === Dialog Actions ===
486
481
  cancel() {
487
482
  this.result.next([]);
488
- this.dialogRef.close();
483
+ this.DialogClose.emit();
489
484
  }
490
485
  addSelectedActions() {
491
486
  const selectedIds = this.selectedActions$.value;
@@ -496,85 +491,86 @@ export class AddActionDialogComponent {
496
491
  // Convert ActionDisplayItem to MJActionEntity by casting (they have the same structure)
497
492
  const selectedActions = selectedDisplayItems.map(item => item);
498
493
  this.result.next(selectedActions);
499
- this.dialogRef.close();
494
+ this.DialogClose.emit();
500
495
  }
501
- static { this.ɵfac = function AddActionDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AddActionDialogComponent)(i0.ɵɵdirectiveInject(i1.WindowRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
502
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddActionDialogComponent, selectors: [["mj-add-action-dialog"]], standalone: false, decls: 44, vars: 40, consts: [[1, "add-action-dialog"], [1, "dialog-header"], [1, "search-section"], ["placeholder", "Search actions by name, description, or category...", 1, "search-input", 3, "formControl", "clearButton"], ["kendoTextBoxPrefixTemplate", ""], [1, "header-actions"], ["kendoButton", "", "size", "small", "kendoTooltip", "", 3, "click", "toggleable", "selected", "title"], [1, "fa-solid"], [1, "stats"], [1, "stat-item"], [1, "fa-solid", "fa-bolt"], [1, "dialog-content"], [1, "category-sidebar"], [1, "sidebar-header"], [1, "fa-solid", "fa-folder-tree"], [1, "category-list"], [1, "category-item", 3, "selected"], [1, "actions-container"], [1, "loading-state"], [1, "empty-state"], [1, "actions-grid"], [1, "actions-list"], [1, "selection-summary"], [1, "dialog-footer"], ["kendoButton", "", "look", "flat", 3, "click"], ["kendoButton", "", "themeColor", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-plus"], [1, "fa-solid", "fa-search"], [1, "category-item", 3, "click"], [1, "category-name"], [1, "category-count"], [1, "loading-spinner"], [1, "fa-solid", "fa-spinner", "fa-spin", "fa-2x"], [1, "fa-solid", "fa-search-minus"], ["kendoButton", "", 3, "click"], [1, "action-card", 3, "selected", "existing"], [1, "action-card", 3, "click"], [1, "selection-indicator"], [1, "card-header"], [1, "action-icon"], [1, "action-name"], [1, "card-body"], [1, "action-description"], [1, "category-badge"], [1, "type-badge"], [1, "existing-overlay"], [1, "fa-solid", "fa-folder"], [1, "fa-solid", "fa-tag"], [1, "fa-solid", "fa-check"], [1, "list-header"], [1, "col-select"], [1, "col-name"], [1, "col-category"], [1, "col-type"], [1, "col-description"], [1, "col-status"], [1, "list-item", 3, "selected", "existing"], [1, "list-item", 3, "click"], [1, "status-badge", "existing"], [1, "status-badge", "available"], [1, "summary-content"], [1, "fa-solid", "fa-check-circle"]], template: function AddActionDialogComponent_Template(rf, ctx) { if (rf & 1) {
503
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "kendo-textbox", 3);
504
- i0.ɵɵtemplate(4, AddActionDialogComponent_ng_template_4_Template, 1, 0, "ng-template", 4);
496
+ static { this.ɵfac = function AddActionDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AddActionDialogComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
497
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddActionDialogComponent, selectors: [["mj-add-action-dialog"]], outputs: { DialogClose: "DialogClose" }, standalone: false, decls: 44, vars: 35, consts: [[1, "add-action-dialog"], [1, "dialog-header"], [1, "search-section"], [1, "search-input-wrapper"], [1, "fa-solid", "fa-search", "search-prefix-icon"], ["placeholder", "Search actions by name, description, or category...", 1, "mj-input", "search-input", 3, "formControl"], [1, "header-actions"], ["mjButton", "", "variant", "flat", 3, "click", "title"], [1, "fa-solid"], [1, "stats"], [1, "stat-item"], [1, "fa-solid", "fa-bolt"], [1, "dialog-content"], [1, "category-sidebar"], [1, "sidebar-header"], [1, "fa-solid", "fa-folder-tree"], [1, "category-list"], [1, "category-item", 3, "selected"], [1, "actions-container"], [1, "loading-state"], [1, "empty-state"], [1, "actions-grid"], [1, "actions-list"], [1, "selection-summary"], [1, "dialog-footer"], ["mjButton", "", "variant", "flat", 3, "click"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-plus"], [1, "category-item", 3, "click"], [1, "category-name"], [1, "category-count"], [1, "loading-spinner"], [1, "fa-solid", "fa-spinner", "fa-spin", "fa-2x"], [1, "fa-solid", "fa-search-minus"], ["mjButton", "", 3, "click"], [1, "action-card", 3, "selected", "existing"], [1, "action-card", 3, "click"], [1, "selection-indicator"], [1, "card-header"], [1, "action-icon"], [1, "action-name"], [1, "card-body"], [1, "action-description"], [1, "category-badge"], [1, "type-badge"], [1, "existing-overlay"], [1, "fa-solid", "fa-folder"], [1, "fa-solid", "fa-tag"], [1, "fa-solid", "fa-check"], [1, "list-header"], [1, "col-select"], [1, "col-name"], [1, "col-category"], [1, "col-type"], [1, "col-description"], [1, "col-status"], [1, "list-item", 3, "selected", "existing"], [1, "list-item", 3, "click"], [1, "status-badge", "existing"], [1, "status-badge", "available"], [1, "summary-content"], [1, "fa-solid", "fa-check-circle"]], template: function AddActionDialogComponent_Template(rf, ctx) { if (rf & 1) {
498
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
499
+ i0.ɵɵelement(4, "i", 4)(5, "input", 5);
505
500
  i0.ɵɵelementEnd()();
506
- i0.ɵɵelementStart(5, "div", 5)(6, "button", 6);
507
- i0.ɵɵpipe(7, "async");
501
+ i0.ɵɵelementStart(6, "div", 6)(7, "button", 7);
508
502
  i0.ɵɵpipe(8, "async");
509
- i0.ɵɵlistener("click", function AddActionDialogComponent_Template_button_click_6_listener() { return ctx.toggleViewMode(); });
510
- i0.ɵɵelement(9, "i", 7);
503
+ i0.ɵɵlistener("click", function AddActionDialogComponent_Template_button_click_7_listener() { return ctx.toggleViewMode(); });
504
+ i0.ɵɵelement(9, "i", 8);
511
505
  i0.ɵɵpipe(10, "async");
512
506
  i0.ɵɵpipe(11, "async");
513
507
  i0.ɵɵelementEnd();
514
- i0.ɵɵelementStart(12, "div", 8)(13, "span", 9);
515
- i0.ɵɵelement(14, "i", 10);
508
+ i0.ɵɵelementStart(12, "div", 9)(13, "span", 10);
509
+ i0.ɵɵelement(14, "i", 11);
516
510
  i0.ɵɵtext(15);
517
511
  i0.ɵɵelementEnd()()()();
518
- i0.ɵɵelementStart(16, "div", 11)(17, "div", 12)(18, "div", 13)(19, "h4");
519
- i0.ɵɵelement(20, "i", 14);
512
+ i0.ɵɵelementStart(16, "div", 12)(17, "div", 13)(18, "div", 14)(19, "h4");
513
+ i0.ɵɵelement(20, "i", 15);
520
514
  i0.ɵɵtext(21, " Categories");
521
515
  i0.ɵɵelementEnd()();
522
- i0.ɵɵelementStart(22, "div", 15);
523
- i0.ɵɵrepeaterCreate(23, AddActionDialogComponent_For_24_Template, 7, 9, "div", 16, _forTrack0);
516
+ i0.ɵɵelementStart(22, "div", 16);
517
+ i0.ɵɵrepeaterCreate(23, AddActionDialogComponent_For_24_Template, 7, 9, "div", 17, _forTrack0);
524
518
  i0.ɵɵpipe(25, "async");
525
519
  i0.ɵɵelementEnd()();
526
- i0.ɵɵelementStart(26, "div", 17);
527
- i0.ɵɵconditionalCreate(27, AddActionDialogComponent_Conditional_27_Template, 5, 0, "div", 18);
520
+ i0.ɵɵelementStart(26, "div", 18);
521
+ i0.ɵɵconditionalCreate(27, AddActionDialogComponent_Conditional_27_Template, 5, 0, "div", 19);
528
522
  i0.ɵɵpipe(28, "async");
529
- i0.ɵɵconditionalCreate(29, AddActionDialogComponent_Conditional_29_Template, 8, 0, "div", 19);
523
+ i0.ɵɵconditionalCreate(29, AddActionDialogComponent_Conditional_29_Template, 8, 0, "div", 20);
530
524
  i0.ɵɵpipe(30, "async");
531
- i0.ɵɵconditionalCreate(31, AddActionDialogComponent_Conditional_31_Template, 4, 2, "div", 20);
525
+ i0.ɵɵconditionalCreate(31, AddActionDialogComponent_Conditional_31_Template, 4, 2, "div", 21);
532
526
  i0.ɵɵpipe(32, "async");
533
527
  i0.ɵɵpipe(33, "async");
534
- i0.ɵɵconditionalCreate(34, AddActionDialogComponent_Conditional_34_Template, 16, 2, "div", 21);
528
+ i0.ɵɵconditionalCreate(34, AddActionDialogComponent_Conditional_34_Template, 16, 2, "div", 22);
535
529
  i0.ɵɵpipe(35, "async");
536
530
  i0.ɵɵpipe(36, "async");
537
531
  i0.ɵɵelementEnd()();
538
- i0.ɵɵconditionalCreate(37, AddActionDialogComponent_Conditional_37_Template, 5, 2, "div", 22);
539
- i0.ɵɵelementStart(38, "div", 23)(39, "button", 24);
532
+ i0.ɵɵconditionalCreate(37, AddActionDialogComponent_Conditional_37_Template, 5, 2, "div", 23);
533
+ i0.ɵɵelementStart(38, "div", 24)(39, "button", 25);
540
534
  i0.ɵɵlistener("click", function AddActionDialogComponent_Template_button_click_39_listener() { return ctx.cancel(); });
541
535
  i0.ɵɵtext(40, " Cancel ");
542
536
  i0.ɵɵelementEnd();
543
- i0.ɵɵelementStart(41, "button", 25);
537
+ i0.ɵɵelementStart(41, "button", 26);
544
538
  i0.ɵɵlistener("click", function AddActionDialogComponent_Template_button_click_41_listener() { return ctx.addSelectedActions(); });
545
- i0.ɵɵelement(42, "i", 26);
539
+ i0.ɵɵelement(42, "i", 27);
546
540
  i0.ɵɵtext(43);
547
541
  i0.ɵɵelementEnd()()();
548
542
  } if (rf & 2) {
549
- i0.ɵɵadvance(3);
550
- i0.ɵɵproperty("formControl", ctx.searchControl)("clearButton", true);
551
- i0.ɵɵadvance(3);
552
- i0.ɵɵproperty("toggleable", true)("selected", i0.ɵɵpipeBind1(7, 18, ctx.viewMode$) === "grid")("title", i0.ɵɵpipeBind1(8, 20, ctx.viewMode$) === "grid" ? "Switch to list view" : "Switch to grid view");
553
- i0.ɵɵadvance(3);
554
- i0.ɵɵclassProp("fa-th", i0.ɵɵpipeBind1(10, 22, ctx.viewMode$) === "grid")("fa-list", i0.ɵɵpipeBind1(11, 24, ctx.viewMode$) === "list");
543
+ i0.ɵɵadvance(5);
544
+ i0.ɵɵproperty("formControl", ctx.searchControl);
545
+ i0.ɵɵadvance(2);
546
+ i0.ɵɵproperty("title", i0.ɵɵpipeBind1(8, 15, ctx.viewMode$) === "grid" ? "Switch to list view" : "Switch to grid view");
547
+ i0.ɵɵadvance(2);
548
+ i0.ɵɵclassProp("fa-th", i0.ɵɵpipeBind1(10, 17, ctx.viewMode$) === "grid")("fa-list", i0.ɵɵpipeBind1(11, 19, ctx.viewMode$) === "list");
555
549
  i0.ɵɵadvance(6);
556
550
  i0.ɵɵtextInterpolate2(" ", ctx.filteredCount, " of ", ctx.totalActionCount, " actions ");
557
551
  i0.ɵɵadvance(8);
558
- i0.ɵɵrepeater(i0.ɵɵpipeBind1(25, 26, ctx.categoryTree$));
552
+ i0.ɵɵrepeater(i0.ɵɵpipeBind1(25, 21, ctx.categoryTree$));
559
553
  i0.ɵɵadvance(4);
560
- i0.ɵɵconditional(i0.ɵɵpipeBind1(28, 28, ctx.isLoading$) ? 27 : -1);
554
+ i0.ɵɵconditional(i0.ɵɵpipeBind1(28, 23, ctx.isLoading$) ? 27 : -1);
561
555
  i0.ɵɵadvance(2);
562
- i0.ɵɵconditional(!i0.ɵɵpipeBind1(30, 30, ctx.isLoading$) && ctx.filteredCount === 0 ? 29 : -1);
556
+ i0.ɵɵconditional(!i0.ɵɵpipeBind1(30, 25, ctx.isLoading$) && ctx.filteredCount === 0 ? 29 : -1);
563
557
  i0.ɵɵadvance(2);
564
- i0.ɵɵconditional(!i0.ɵɵpipeBind1(32, 32, ctx.isLoading$) && i0.ɵɵpipeBind1(33, 34, ctx.viewMode$) === "grid" && ctx.filteredCount > 0 ? 31 : -1);
558
+ i0.ɵɵconditional(!i0.ɵɵpipeBind1(32, 27, ctx.isLoading$) && i0.ɵɵpipeBind1(33, 29, ctx.viewMode$) === "grid" && ctx.filteredCount > 0 ? 31 : -1);
565
559
  i0.ɵɵadvance(3);
566
- i0.ɵɵconditional(!i0.ɵɵpipeBind1(35, 36, ctx.isLoading$) && i0.ɵɵpipeBind1(36, 38, ctx.viewMode$) === "list" && ctx.filteredCount > 0 ? 34 : -1);
560
+ i0.ɵɵconditional(!i0.ɵɵpipeBind1(35, 31, ctx.isLoading$) && i0.ɵɵpipeBind1(36, 33, ctx.viewMode$) === "list" && ctx.filteredCount > 0 ? 34 : -1);
567
561
  i0.ɵɵadvance(3);
568
562
  i0.ɵɵconditional(ctx.selectedCount > 0 ? 37 : -1);
569
563
  i0.ɵɵadvance(4);
570
564
  i0.ɵɵproperty("disabled", ctx.selectedCount === 0);
571
565
  i0.ɵɵadvance(2);
572
566
  i0.ɵɵtextInterpolate1(" Add Selected (", ctx.selectedCount, ") ");
573
- } }, dependencies: [i2.NgControlStatus, i2.FormControlDirective, i3.TextBoxComponent, i3.TextBoxPrefixTemplateDirective, i4.ButtonComponent, i5.AsyncPipe], styles: [".add-action-dialog[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n\n\n[_nghost-%COMP%] .k-dialog, \n[_nghost-%COMP%] .k-window {\n z-index: 10000 !important;\n}\n\n[_nghost-%COMP%] .k-overlay {\n z-index: 9999 !important;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .search-section[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .search-section[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 400px;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] {\n width: 250px;\n background: var(--mj-bg-surface-card);\n border-right: 1px solid var(--mj-border-default);\n overflow-y: auto;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] {\n padding: 1rem;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 1rem;\n font-weight: 600;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] {\n padding: 0.5rem 0;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: all 0.2s ease;\n border-left: 3px solid transparent;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-left-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] .category-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-icon[_ngcontent-%COMP%] {\n width: 16px;\n text-align: center;\n margin-right: 0.75rem;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-name[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-count[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n padding: 0.25rem 0.5rem;\n border-radius: 12px;\n font-size: 0.8rem;\n font-weight: 600;\n min-width: 24px;\n text-align: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] .category-count[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] {\n flex: 1;\n padding: 1.5rem;\n overflow-y: auto;\n background: var(--mj-bg-surface);\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%] {\n margin-bottom: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: var(--mj-text-muted);\n text-align: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3rem;\n margin-bottom: 1rem;\n color: var(--mj-border-default);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-secondary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 1.5rem 0;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] {\n position: relative;\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 1.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n transform: translateY(-2px);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.selected[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 4%, var(--mj-bg-surface));\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-status-success) 15%, transparent);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.selected[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.existing[_ngcontent-%COMP%] {\n border-color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n cursor: default;\n opacity: 0.7;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.existing[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] {\n position: absolute;\n top: 1rem;\n right: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: var(--mj-border-default);\n transition: color 0.2s ease;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-bottom: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-name[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .action-description[_ngcontent-%COMP%] {\n margin: 0 0 1rem 0;\n color: var(--mj-text-muted);\n line-height: 1.4;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .category-badge[_ngcontent-%COMP%], \n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n margin-right: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .category-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-text-muted) 90%, transparent);\n color: var(--mj-text-inverse);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 0.5rem;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n margin-bottom: 0.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n align-items: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 4%, var(--mj-bg-surface));\n border-color: var(--mj-status-success);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.selected[_ngcontent-%COMP%] .col-select[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.existing[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n opacity: 0.7;\n cursor: default;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.existing[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-select[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: var(--mj-border-default);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-name[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge.existing[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge.available[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] {\n padding: 1rem 1.5rem;\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-top: 1px solid color-mix(in srgb, var(--mj-status-success) 25%, var(--mj-bg-surface));\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] .summary-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: var(--mj-status-success);\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] .summary-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] button[kendoButton][_ngcontent-%COMP%] {\n min-width: 120px;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] button[kendoButton][look=\"primary\"][_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n}\n\n\n\n@media (max-width: 768px) {\n .add-action-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] {\n width: 100%;\n max-height: 200px;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] {\n grid-template-columns: 40px 1fr 80px;\n gap: 0.5rem;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-category[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-type[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-category[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-type[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%] {\n display: none;\n }\n}"] }); }
567
+ } }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.FormControlDirective, i2.MJButtonDirective, i3.AsyncPipe], styles: [".add-action-dialog[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n\n\n[_nghost-%COMP%] .k-dialog, \n[_nghost-%COMP%] .k-window {\n z-index: 10000 !important;\n}\n\n[_nghost-%COMP%] .k-overlay {\n z-index: 9999 !important;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .search-section[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .search-section[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 400px;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] {\n width: 250px;\n background: var(--mj-bg-surface-card);\n border-right: 1px solid var(--mj-border-default);\n overflow-y: auto;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] {\n padding: 1rem;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 1rem;\n font-weight: 600;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] {\n padding: 0.5rem 0;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: all 0.2s ease;\n border-left: 3px solid transparent;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-left-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] .category-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-icon[_ngcontent-%COMP%] {\n width: 16px;\n text-align: center;\n margin-right: 0.75rem;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-name[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-count[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n padding: 0.25rem 0.5rem;\n border-radius: 12px;\n font-size: 0.8rem;\n font-weight: 600;\n min-width: 24px;\n text-align: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] .category-count[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] {\n flex: 1;\n padding: 1.5rem;\n overflow-y: auto;\n background: var(--mj-bg-surface);\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%] {\n margin-bottom: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: var(--mj-text-muted);\n text-align: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3rem;\n margin-bottom: 1rem;\n color: var(--mj-border-default);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-secondary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 1.5rem 0;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] {\n position: relative;\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 1.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n transform: translateY(-2px);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.selected[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 4%, var(--mj-bg-surface));\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-status-success) 15%, transparent);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.selected[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.existing[_ngcontent-%COMP%] {\n border-color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n cursor: default;\n opacity: 0.7;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.existing[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] {\n position: absolute;\n top: 1rem;\n right: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: var(--mj-border-default);\n transition: color 0.2s ease;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-bottom: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-name[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .action-description[_ngcontent-%COMP%] {\n margin: 0 0 1rem 0;\n color: var(--mj-text-muted);\n line-height: 1.4;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .category-badge[_ngcontent-%COMP%], \n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n margin-right: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .category-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-text-muted) 90%, transparent);\n color: var(--mj-text-inverse);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 0.5rem;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n margin-bottom: 0.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n align-items: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 4%, var(--mj-bg-surface));\n border-color: var(--mj-status-success);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.selected[_ngcontent-%COMP%] .col-select[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.existing[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n opacity: 0.7;\n cursor: default;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.existing[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-select[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: var(--mj-border-default);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-name[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge.existing[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge.available[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] {\n padding: 1rem 1.5rem;\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-top: 1px solid color-mix(in srgb, var(--mj-status-success) 25%, var(--mj-bg-surface));\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] .summary-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: var(--mj-status-success);\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] .summary-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n\n\n\n@media (max-width: 768px) {\n .add-action-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] {\n width: 100%;\n max-height: 200px;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] {\n grid-template-columns: 40px 1fr 80px;\n gap: 0.5rem;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-category[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-type[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-category[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-type[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%] {\n display: none;\n }\n}"] }); }
574
568
  }
575
569
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddActionDialogComponent, [{
576
570
  type: Component,
577
- args: [{ standalone: false, selector: 'mj-add-action-dialog', template: "<!-- Add Action Dialog -->\n<div class=\"add-action-dialog\">\n \n <!-- Dialog Header -->\n <div class=\"dialog-header\">\n <div class=\"search-section\">\n <kendo-textbox \n [formControl]=\"searchControl\" \n placeholder=\"Search actions by name, description, or category...\"\n class=\"search-input\"\n [clearButton]=\"true\">\n <ng-template kendoTextBoxPrefixTemplate>\n <i class=\"fa-solid fa-search\"></i>\n </ng-template>\n </kendo-textbox>\n </div>\n \n <div class=\"header-actions\">\n <!-- View Toggle -->\n <button kendoButton \n [toggleable]=\"true\" \n [selected]=\"(viewMode$ | async) === 'grid'\"\n (click)=\"toggleViewMode()\"\n size=\"small\"\n kendoTooltip\n [title]=\"(viewMode$ | async) === 'grid' ? 'Switch to list view' : 'Switch to grid view'\">\n <i class=\"fa-solid\" \n [class.fa-th]=\"(viewMode$ | async) === 'grid'\" \n [class.fa-list]=\"(viewMode$ | async) === 'list'\"></i>\n </button>\n \n <!-- Stats -->\n <div class=\"stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-bolt\"></i>\n {{ filteredCount }} of {{ totalActionCount }} actions\n </span>\n </div>\n </div>\n </div>\n\n <!-- Main Content -->\n <div class=\"dialog-content\">\n \n <!-- Category Sidebar -->\n <div class=\"category-sidebar\">\n <div class=\"sidebar-header\">\n <h4><i class=\"fa-solid fa-folder-tree\"></i> Categories</h4>\n </div>\n \n <div class=\"category-list\">\n @for (category of categoryTree$ | async; track category.id) {\n <div class=\"category-item\" \n [class.selected]=\"(selectedCategoryId$ | async) === category.id\"\n (click)=\"selectCategory(category.id)\">\n <i class=\"fa-solid {{ category.icon }} category-icon\"></i>\n <span class=\"category-name\">{{ category.name }}</span>\n <span class=\"category-count\">{{ category.count }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- Actions Display -->\n <div class=\"actions-container\">\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <div class=\"loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n </div>\n <p>Loading actions...</p>\n </div>\n }\n\n <!-- Empty State -->\n @if (!(isLoading$ | async) && filteredCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-search-minus\"></i>\n <h3>No actions found</h3>\n <p>Try adjusting your search criteria or selecting a different category</p>\n <button kendoButton (click)=\"clearSearch()\">Clear Search</button>\n </div>\n }\n\n <!-- Grid View -->\n @if (!(isLoading$ | async) && (viewMode$ | async) === 'grid' && filteredCount > 0) {\n <div class=\"actions-grid\">\n @for (action of filteredActions$ | async; track action.ID) {\n <div class=\"action-card\" \n [class.selected]=\"action.selected\"\n [class.existing]=\"existingActionIds.includes(action.ID)\"\n (click)=\"toggleActionSelection(action)\">\n \n <!-- Selection Indicator -->\n <div class=\"selection-indicator\">\n <i class=\"fa-solid\" \n [class.fa-check-circle]=\"action.selected\" \n [class.fa-circle]=\"!action.selected\"></i>\n </div>\n \n <!-- Card Content -->\n <div class=\"card-header\">\n <div class=\"action-icon\">\n <i class=\"fa-solid {{ getActionIcon(action) }}\"></i>\n </div>\n <h3 class=\"action-name\">{{ action.Name }}</h3>\n </div>\n \n <div class=\"card-body\">\n <p class=\"action-description\">{{ action.Description || 'No description available' }}</p>\n \n @if (action.categoryName) {\n <div class=\"category-badge\">\n <i class=\"fa-solid fa-folder\"></i>\n {{ action.categoryName }}\n </div>\n }\n \n @if (action.Type) {\n <div class=\"type-badge\">\n <i class=\"fa-solid fa-tag\"></i>\n {{ action.Type }}\n </div>\n }\n </div>\n \n <!-- Existing Action Overlay -->\n @if (existingActionIds.includes(action.ID)) {\n <div class=\"existing-overlay\">\n <i class=\"fa-solid fa-check\"></i>\n <span>Already Added</span>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- List View -->\n @if (!(isLoading$ | async) && (viewMode$ | async) === 'list' && filteredCount > 0) {\n <div class=\"actions-list\">\n \n <!-- List Header -->\n <div class=\"list-header\">\n <span class=\"col-select\"></span>\n <span class=\"col-name\">Name</span>\n <span class=\"col-category\">Category</span>\n <span class=\"col-type\">Type</span>\n <span class=\"col-description\">Description</span>\n <span class=\"col-status\">Status</span>\n </div>\n \n <!-- List Items -->\n @for (action of filteredActions$ | async; track action.ID) {\n <div class=\"list-item\" \n [class.selected]=\"action.selected\"\n [class.existing]=\"existingActionIds.includes(action.ID)\"\n (click)=\"toggleActionSelection(action)\">\n \n <span class=\"col-select\">\n <i class=\"fa-solid\" \n [class.fa-check-circle]=\"action.selected\" \n [class.fa-circle]=\"!action.selected\"></i>\n </span>\n \n <span class=\"col-name\">\n <i class=\"fa-solid {{ getActionIcon(action) }} action-icon\"></i>\n {{ action.Name }}\n </span>\n \n <span class=\"col-category\">{{ action.categoryName || '-' }}</span>\n <span class=\"col-type\">{{ action.Type || '-' }}</span>\n <span class=\"col-description\">{{ action.Description || '-' }}</span>\n \n <span class=\"col-status\">\n @if (existingActionIds.includes(action.ID)) {\n <span class=\"status-badge existing\">\n <i class=\"fa-solid fa-check\"></i>\n Added\n </span>\n } @else {\n <span class=\"status-badge available\">\n <i class=\"fa-solid fa-plus\"></i>\n Available\n </span>\n }\n </span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- Selected Actions Summary -->\n @if (selectedCount > 0) {\n <div class=\"selection-summary\">\n <div class=\"summary-content\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <span>{{ selectedCount }} action{{ selectedCount === 1 ? '' : 's' }} selected</span>\n </div>\n </div>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <button kendoButton \n look=\"flat\" \n (click)=\"cancel()\">\n Cancel\n </button>\n \n <button kendoButton \n themeColor=\"primary\" \n [disabled]=\"selectedCount === 0\"\n (click)=\"addSelectedActions()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Selected ({{ selectedCount }})\n </button>\n </div>\n</div>", styles: [".add-action-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n/* Ensure dialog appears above banner and other elements */\n:host ::ng-deep .k-dialog,\n:host ::ng-deep .k-window {\n z-index: 10000 !important;\n}\n\n:host ::ng-deep .k-overlay {\n z-index: 9999 !important;\n}\n\n/* === Dialog Header === */\n.add-action-dialog .dialog-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.add-action-dialog .dialog-header .search-section {\n flex: 1;\n}\n\n.add-action-dialog .dialog-header .search-section .search-input {\n width: 100%;\n max-width: 400px;\n}\n\n.add-action-dialog .dialog-header .header-actions {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.add-action-dialog .dialog-header .header-actions .stats .stat-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.add-action-dialog .dialog-header .header-actions .stats .stat-item i {\n color: var(--mj-status-success);\n}\n\n/* === Main Content === */\n.add-action-dialog .dialog-content {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n/* === Category Sidebar === */\n.add-action-dialog .category-sidebar {\n width: 250px;\n background: var(--mj-bg-surface-card);\n border-right: 1px solid var(--mj-border-default);\n overflow-y: auto;\n}\n\n.add-action-dialog .category-sidebar .sidebar-header {\n padding: 1rem;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.add-action-dialog .category-sidebar .sidebar-header h4 {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 1rem;\n font-weight: 600;\n}\n\n.add-action-dialog .category-sidebar .sidebar-header h4 i {\n margin-right: 0.5rem;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog .category-sidebar .category-list {\n padding: 0.5rem 0;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item {\n display: flex;\n align-items: center;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: all 0.2s ease;\n border-left: 3px solid transparent;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-left-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected .category-icon {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-icon {\n width: 16px;\n text-align: center;\n margin-right: 0.75rem;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-name {\n flex: 1;\n font-weight: 500;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-count {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n padding: 0.25rem 0.5rem;\n border-radius: 12px;\n font-size: 0.8rem;\n font-weight: 600;\n min-width: 24px;\n text-align: center;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected .category-count {\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n/* === Actions Container === */\n.add-action-dialog .actions-container {\n flex: 1;\n padding: 1.5rem;\n overflow-y: auto;\n background: var(--mj-bg-surface);\n}\n\n/* Loading State */\n.add-action-dialog .actions-container .loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog .actions-container .loading-state .loading-spinner {\n margin-bottom: 1rem;\n}\n\n.add-action-dialog .actions-container .loading-state .loading-spinner i {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .actions-container .loading-state p {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n/* Empty State */\n.add-action-dialog .actions-container .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: var(--mj-text-muted);\n text-align: center;\n}\n\n.add-action-dialog .actions-container .empty-state i {\n font-size: 3rem;\n margin-bottom: 1rem;\n color: var(--mj-border-default);\n}\n\n.add-action-dialog .actions-container .empty-state h3 {\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-secondary);\n}\n\n.add-action-dialog .actions-container .empty-state p {\n margin: 0 0 1.5rem 0;\n}\n\n/* === Grid View === */\n.add-action-dialog .actions-container .actions-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card {\n position: relative;\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 1.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n transform: translateY(-2px);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.selected {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 4%, var(--mj-bg-surface));\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-status-success) 15%, transparent);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.selected .selection-indicator i {\n color: var(--mj-status-success);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.existing {\n border-color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n cursor: default;\n opacity: 0.7;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.existing:hover {\n transform: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .selection-indicator {\n position: absolute;\n top: 1rem;\n right: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .selection-indicator i {\n font-size: 1.25rem;\n color: var(--mj-border-default);\n transition: color 0.2s ease;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header {\n display: flex;\n align-items: center;\n margin-bottom: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-icon {\n width: 40px;\n height: 40px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-icon i {\n font-size: 1.25rem;\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-name {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.2;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .action-description {\n margin: 0 0 1rem 0;\n color: var(--mj-text-muted);\n line-height: 1.4;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .category-badge,\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n margin-right: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .category-badge i,\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge i {\n font-size: 0.7rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-text-muted) 90%, transparent);\n color: var(--mj-text-inverse);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay i {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay span {\n font-weight: 600;\n}\n\n/* === List View === */\n.add-action-dialog .actions-container .actions-list .list-header {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 0.5rem;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n margin-bottom: 0.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n align-items: center;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.selected {\n background: color-mix(in srgb, var(--mj-status-success) 4%, var(--mj-bg-surface));\n border-color: var(--mj-status-success);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.selected .col-select i {\n color: var(--mj-status-success);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.existing {\n background: var(--mj-bg-surface-card);\n opacity: 0.7;\n cursor: default;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.existing:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-select i {\n font-size: 1.25rem;\n color: var(--mj-border-default);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-name {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 500;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-name .action-icon {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge.existing {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge.available {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n/* === Selection Summary === */\n.add-action-dialog .selection-summary {\n padding: 1rem 1.5rem;\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-top: 1px solid color-mix(in srgb, var(--mj-status-success) 25%, var(--mj-bg-surface));\n}\n\n.add-action-dialog .selection-summary .summary-content {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: var(--mj-status-success);\n font-weight: 500;\n}\n\n.add-action-dialog .selection-summary .summary-content i {\n color: var(--mj-status-success);\n}\n\n/* === Dialog Footer === */\n.add-action-dialog .dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.add-action-dialog .dialog-footer button[kendoButton] {\n min-width: 120px;\n}\n\n.add-action-dialog .dialog-footer button[kendoButton][look=\"primary\"] i {\n margin-right: 0.5rem;\n}\n\n/* === Responsive Design === */\n@media (max-width: 768px) {\n .add-action-dialog .dialog-content {\n flex-direction: column;\n }\n\n .add-action-dialog .category-sidebar {\n width: 100%;\n max-height: 200px;\n }\n\n .add-action-dialog .actions-container .actions-grid {\n grid-template-columns: 1fr;\n }\n\n .add-action-dialog .actions-container .actions-list .list-header,\n .add-action-dialog .actions-container .actions-list .list-item {\n grid-template-columns: 40px 1fr 80px;\n gap: 0.5rem;\n }\n\n .add-action-dialog .actions-container .actions-list .list-header .col-category,\n .add-action-dialog .actions-container .actions-list .list-header .col-type,\n .add-action-dialog .actions-container .actions-list .list-header .col-description,\n .add-action-dialog .actions-container .actions-list .list-item .col-category,\n .add-action-dialog .actions-container .actions-list .list-item .col-type,\n .add-action-dialog .actions-container .actions-list .list-item .col-description {\n display: none;\n }\n}\n"] }]
578
- }], () => [{ type: i1.WindowRef }, { type: i0.ChangeDetectorRef }], null); })();
579
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddActionDialogComponent, { className: "AddActionDialogComponent", filePath: "src/lib/custom/AIAgents/add-action-dialog.component.ts", lineNumber: 33 }); })();
571
+ args: [{ standalone: false, selector: 'mj-add-action-dialog', template: "<!-- Add Action Dialog -->\n<div class=\"add-action-dialog\">\n \n <!-- Dialog Header -->\n <div class=\"dialog-header\">\n <div class=\"search-section\">\n <div class=\"search-input-wrapper\">\n <i class=\"fa-solid fa-search search-prefix-icon\"></i>\n <input\n class=\"mj-input search-input\"\n [formControl]=\"searchControl\"\n placeholder=\"Search actions by name, description, or category...\">\n </div>\n </div>\n \n <div class=\"header-actions\">\n <!-- View Toggle -->\n <button mjButton\n variant=\"flat\"\n (click)=\"toggleViewMode()\"\n [title]=\"(viewMode$ | async) === 'grid' ? 'Switch to list view' : 'Switch to grid view'\">\n <i class=\"fa-solid\"\n [class.fa-th]=\"(viewMode$ | async) === 'grid'\"\n [class.fa-list]=\"(viewMode$ | async) === 'list'\"></i>\n </button>\n \n <!-- Stats -->\n <div class=\"stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-bolt\"></i>\n {{ filteredCount }} of {{ totalActionCount }} actions\n </span>\n </div>\n </div>\n </div>\n\n <!-- Main Content -->\n <div class=\"dialog-content\">\n \n <!-- Category Sidebar -->\n <div class=\"category-sidebar\">\n <div class=\"sidebar-header\">\n <h4><i class=\"fa-solid fa-folder-tree\"></i> Categories</h4>\n </div>\n \n <div class=\"category-list\">\n @for (category of categoryTree$ | async; track category.id) {\n <div class=\"category-item\" \n [class.selected]=\"(selectedCategoryId$ | async) === category.id\"\n (click)=\"selectCategory(category.id)\">\n <i class=\"fa-solid {{ category.icon }} category-icon\"></i>\n <span class=\"category-name\">{{ category.name }}</span>\n <span class=\"category-count\">{{ category.count }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- Actions Display -->\n <div class=\"actions-container\">\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <div class=\"loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n </div>\n <p>Loading actions...</p>\n </div>\n }\n\n <!-- Empty State -->\n @if (!(isLoading$ | async) && filteredCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-search-minus\"></i>\n <h3>No actions found</h3>\n <p>Try adjusting your search criteria or selecting a different category</p>\n <button mjButton (click)=\"clearSearch()\">Clear Search</button>\n </div>\n }\n\n <!-- Grid View -->\n @if (!(isLoading$ | async) && (viewMode$ | async) === 'grid' && filteredCount > 0) {\n <div class=\"actions-grid\">\n @for (action of filteredActions$ | async; track action.ID) {\n <div class=\"action-card\" \n [class.selected]=\"action.selected\"\n [class.existing]=\"existingActionIds.includes(action.ID)\"\n (click)=\"toggleActionSelection(action)\">\n \n <!-- Selection Indicator -->\n <div class=\"selection-indicator\">\n <i class=\"fa-solid\" \n [class.fa-check-circle]=\"action.selected\" \n [class.fa-circle]=\"!action.selected\"></i>\n </div>\n \n <!-- Card Content -->\n <div class=\"card-header\">\n <div class=\"action-icon\">\n <i class=\"fa-solid {{ getActionIcon(action) }}\"></i>\n </div>\n <h3 class=\"action-name\">{{ action.Name }}</h3>\n </div>\n \n <div class=\"card-body\">\n <p class=\"action-description\">{{ action.Description || 'No description available' }}</p>\n \n @if (action.categoryName) {\n <div class=\"category-badge\">\n <i class=\"fa-solid fa-folder\"></i>\n {{ action.categoryName }}\n </div>\n }\n \n @if (action.Type) {\n <div class=\"type-badge\">\n <i class=\"fa-solid fa-tag\"></i>\n {{ action.Type }}\n </div>\n }\n </div>\n \n <!-- Existing Action Overlay -->\n @if (existingActionIds.includes(action.ID)) {\n <div class=\"existing-overlay\">\n <i class=\"fa-solid fa-check\"></i>\n <span>Already Added</span>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- List View -->\n @if (!(isLoading$ | async) && (viewMode$ | async) === 'list' && filteredCount > 0) {\n <div class=\"actions-list\">\n \n <!-- List Header -->\n <div class=\"list-header\">\n <span class=\"col-select\"></span>\n <span class=\"col-name\">Name</span>\n <span class=\"col-category\">Category</span>\n <span class=\"col-type\">Type</span>\n <span class=\"col-description\">Description</span>\n <span class=\"col-status\">Status</span>\n </div>\n \n <!-- List Items -->\n @for (action of filteredActions$ | async; track action.ID) {\n <div class=\"list-item\" \n [class.selected]=\"action.selected\"\n [class.existing]=\"existingActionIds.includes(action.ID)\"\n (click)=\"toggleActionSelection(action)\">\n \n <span class=\"col-select\">\n <i class=\"fa-solid\" \n [class.fa-check-circle]=\"action.selected\" \n [class.fa-circle]=\"!action.selected\"></i>\n </span>\n \n <span class=\"col-name\">\n <i class=\"fa-solid {{ getActionIcon(action) }} action-icon\"></i>\n {{ action.Name }}\n </span>\n \n <span class=\"col-category\">{{ action.categoryName || '-' }}</span>\n <span class=\"col-type\">{{ action.Type || '-' }}</span>\n <span class=\"col-description\">{{ action.Description || '-' }}</span>\n \n <span class=\"col-status\">\n @if (existingActionIds.includes(action.ID)) {\n <span class=\"status-badge existing\">\n <i class=\"fa-solid fa-check\"></i>\n Added\n </span>\n } @else {\n <span class=\"status-badge available\">\n <i class=\"fa-solid fa-plus\"></i>\n Available\n </span>\n }\n </span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- Selected Actions Summary -->\n @if (selectedCount > 0) {\n <div class=\"selection-summary\">\n <div class=\"summary-content\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <span>{{ selectedCount }} action{{ selectedCount === 1 ? '' : 's' }} selected</span>\n </div>\n </div>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <button mjButton\n variant=\"flat\"\n (click)=\"cancel()\">\n Cancel\n </button>\n\n <button mjButton\n variant=\"primary\"\n [disabled]=\"selectedCount === 0\"\n (click)=\"addSelectedActions()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Selected ({{ selectedCount }})\n </button>\n </div>\n</div>", styles: [".add-action-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n/* Ensure dialog appears above banner and other elements */\n:host ::ng-deep .k-dialog,\n:host ::ng-deep .k-window {\n z-index: 10000 !important;\n}\n\n:host ::ng-deep .k-overlay {\n z-index: 9999 !important;\n}\n\n/* === Dialog Header === */\n.add-action-dialog .dialog-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.add-action-dialog .dialog-header .search-section {\n flex: 1;\n}\n\n.add-action-dialog .dialog-header .search-section .search-input {\n width: 100%;\n max-width: 400px;\n}\n\n.add-action-dialog .dialog-header .header-actions {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.add-action-dialog .dialog-header .header-actions .stats .stat-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.add-action-dialog .dialog-header .header-actions .stats .stat-item i {\n color: var(--mj-status-success);\n}\n\n/* === Main Content === */\n.add-action-dialog .dialog-content {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n/* === Category Sidebar === */\n.add-action-dialog .category-sidebar {\n width: 250px;\n background: var(--mj-bg-surface-card);\n border-right: 1px solid var(--mj-border-default);\n overflow-y: auto;\n}\n\n.add-action-dialog .category-sidebar .sidebar-header {\n padding: 1rem;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.add-action-dialog .category-sidebar .sidebar-header h4 {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 1rem;\n font-weight: 600;\n}\n\n.add-action-dialog .category-sidebar .sidebar-header h4 i {\n margin-right: 0.5rem;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog .category-sidebar .category-list {\n padding: 0.5rem 0;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item {\n display: flex;\n align-items: center;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: all 0.2s ease;\n border-left: 3px solid transparent;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-left-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected .category-icon {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-icon {\n width: 16px;\n text-align: center;\n margin-right: 0.75rem;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-name {\n flex: 1;\n font-weight: 500;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-count {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n padding: 0.25rem 0.5rem;\n border-radius: 12px;\n font-size: 0.8rem;\n font-weight: 600;\n min-width: 24px;\n text-align: center;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected .category-count {\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n/* === Actions Container === */\n.add-action-dialog .actions-container {\n flex: 1;\n padding: 1.5rem;\n overflow-y: auto;\n background: var(--mj-bg-surface);\n}\n\n/* Loading State */\n.add-action-dialog .actions-container .loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n color: var(--mj-text-muted);\n}\n\n.add-action-dialog .actions-container .loading-state .loading-spinner {\n margin-bottom: 1rem;\n}\n\n.add-action-dialog .actions-container .loading-state .loading-spinner i {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .actions-container .loading-state p {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n/* Empty State */\n.add-action-dialog .actions-container .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: var(--mj-text-muted);\n text-align: center;\n}\n\n.add-action-dialog .actions-container .empty-state i {\n font-size: 3rem;\n margin-bottom: 1rem;\n color: var(--mj-border-default);\n}\n\n.add-action-dialog .actions-container .empty-state h3 {\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-secondary);\n}\n\n.add-action-dialog .actions-container .empty-state p {\n margin: 0 0 1.5rem 0;\n}\n\n/* === Grid View === */\n.add-action-dialog .actions-container .actions-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card {\n position: relative;\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 1.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n transform: translateY(-2px);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.selected {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 4%, var(--mj-bg-surface));\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-status-success) 15%, transparent);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.selected .selection-indicator i {\n color: var(--mj-status-success);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.existing {\n border-color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n cursor: default;\n opacity: 0.7;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.existing:hover {\n transform: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .selection-indicator {\n position: absolute;\n top: 1rem;\n right: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .selection-indicator i {\n font-size: 1.25rem;\n color: var(--mj-border-default);\n transition: color 0.2s ease;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header {\n display: flex;\n align-items: center;\n margin-bottom: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-icon {\n width: 40px;\n height: 40px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-icon i {\n font-size: 1.25rem;\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-name {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.2;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .action-description {\n margin: 0 0 1rem 0;\n color: var(--mj-text-muted);\n line-height: 1.4;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .category-badge,\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n margin-right: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .category-badge i,\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge i {\n font-size: 0.7rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-text-muted) 90%, transparent);\n color: var(--mj-text-inverse);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay i {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay span {\n font-weight: 600;\n}\n\n/* === List View === */\n.add-action-dialog .actions-container .actions-list .list-header {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 0.5rem;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n margin-bottom: 0.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n align-items: center;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.selected {\n background: color-mix(in srgb, var(--mj-status-success) 4%, var(--mj-bg-surface));\n border-color: var(--mj-status-success);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.selected .col-select i {\n color: var(--mj-status-success);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.existing {\n background: var(--mj-bg-surface-card);\n opacity: 0.7;\n cursor: default;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.existing:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-select i {\n font-size: 1.25rem;\n color: var(--mj-border-default);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-name {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 500;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-name .action-icon {\n color: var(--mj-brand-primary);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge.existing {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge.available {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n/* === Selection Summary === */\n.add-action-dialog .selection-summary {\n padding: 1rem 1.5rem;\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-top: 1px solid color-mix(in srgb, var(--mj-status-success) 25%, var(--mj-bg-surface));\n}\n\n.add-action-dialog .selection-summary .summary-content {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: var(--mj-status-success);\n font-weight: 500;\n}\n\n.add-action-dialog .selection-summary .summary-content i {\n color: var(--mj-status-success);\n}\n\n/* === Dialog Footer === */\n.add-action-dialog .dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.add-action-dialog .dialog-footer button {\n min-width: 120px;\n}\n\n/* === Responsive Design === */\n@media (max-width: 768px) {\n .add-action-dialog .dialog-content {\n flex-direction: column;\n }\n\n .add-action-dialog .category-sidebar {\n width: 100%;\n max-height: 200px;\n }\n\n .add-action-dialog .actions-container .actions-grid {\n grid-template-columns: 1fr;\n }\n\n .add-action-dialog .actions-container .actions-list .list-header,\n .add-action-dialog .actions-container .actions-list .list-item {\n grid-template-columns: 40px 1fr 80px;\n gap: 0.5rem;\n }\n\n .add-action-dialog .actions-container .actions-list .list-header .col-category,\n .add-action-dialog .actions-container .actions-list .list-header .col-type,\n .add-action-dialog .actions-container .actions-list .list-header .col-description,\n .add-action-dialog .actions-container .actions-list .list-item .col-category,\n .add-action-dialog .actions-container .actions-list .list-item .col-type,\n .add-action-dialog .actions-container .actions-list .list-item .col-description {\n display: none;\n }\n}\n"] }]
572
+ }], () => [{ type: i0.ChangeDetectorRef }], { DialogClose: [{
573
+ type: Output
574
+ }] }); })();
575
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddActionDialogComponent, { className: "AddActionDialogComponent", filePath: "src/lib/custom/AIAgents/add-action-dialog.component.ts", lineNumber: 32 }); })();
580
576
  //# sourceMappingURL=add-action-dialog.component.js.map