@memberjunction/ng-core-entity-forms 6.2.0-edge.0 → 6.2.0-edge.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts +1 -1
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js +2 -2
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js.map +1 -1
- package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +90 -16
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +218 -70
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-form-tabs.d.ts +1 -0
- package/dist/lib/custom/AIAgents/agent-form-tabs.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-form-tabs.js +2 -0
- package/dist/lib/custom/AIAgents/agent-form-tabs.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +80 -16
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +146 -46
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +329 -27
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1322 -783
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +76 -0
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js +77 -33
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +69 -15
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +182 -74
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +105 -25
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +272 -112
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +32 -6
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +71 -19
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +10 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +27 -7
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +65 -15
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +152 -52
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +81 -15
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +145 -45
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +71 -17
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +175 -67
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +173 -27
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +385 -93
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts +64 -4
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +129 -29
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +260 -27
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +694 -252
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +10 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +17 -9
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
- package/dist/lib/custom/AIPrompts/pending-records.d.ts +11 -0
- package/dist/lib/custom/AIPrompts/pending-records.d.ts.map +1 -0
- package/dist/lib/custom/AIPrompts/pending-records.js +21 -0
- package/dist/lib/custom/AIPrompts/pending-records.js.map +1 -0
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +74 -16
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +174 -58
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +108 -14
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +258 -70
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts +198 -14
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +387 -107
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts +12 -6
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js +41 -29
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js +14 -14
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js.map +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.js +2 -2
- package/dist/lib/custom/Companies/company-overview.panel.js.map +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.js +2 -2
- package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.js +2 -2
- package/dist/lib/custom/Employees/employee-overview.panel.js.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.d.ts +217 -29
- package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.js +734 -285
- package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +5 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.js +10 -2
- package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
- package/dist/lib/custom/Files/file-form.component.d.ts +1 -1
- package/dist/lib/custom/Files/file-form.component.js +2 -2
- package/dist/lib/custom/Files/file-form.component.js.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.d.ts +300 -36
- package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +664 -208
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +31 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-view-models.js +52 -16
- package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -1
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +107 -10
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/MLModels/ps-model-detail.component.js +291 -101
- package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.d.ts +201 -26
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +429 -109
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.d.ts +107 -14
- package/dist/lib/custom/Queries/query-run-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.js +249 -79
- package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts +129 -4
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js +904 -90
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
- package/dist/lib/custom/Rubrics/evaluation-form.component.d.ts +37 -0
- package/dist/lib/custom/Rubrics/evaluation-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/evaluation-form.component.js +399 -0
- package/dist/lib/custom/Rubrics/evaluation-form.component.js.map +1 -0
- package/dist/lib/custom/Rubrics/record-forms.component.d.ts +69 -0
- package/dist/lib/custom/Rubrics/record-forms.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/record-forms.component.js +587 -0
- package/dist/lib/custom/Rubrics/record-forms.component.js.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.d.ts +67 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.js +534 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.js.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.d.ts +25 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.js +299 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.js.map +1 -0
- package/dist/lib/custom/Rubrics/scale-form.component.d.ts +31 -0
- package/dist/lib/custom/Rubrics/scale-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/scale-form.component.js +395 -0
- package/dist/lib/custom/Rubrics/scale-form.component.js.map +1 -0
- package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js +4 -4
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
- package/dist/lib/custom/SessionBridges/session-bridge-form.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts +77 -13
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.js +196 -78
- package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts +49 -7
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.js +132 -44
- package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.d.ts +153 -19
- package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +434 -217
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +24 -4
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.js +64 -20
- package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.d.ts +223 -27
- package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +951 -530
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-checks.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.js +5 -1
- package/dist/lib/custom/Tests/test-run-checks.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js +5 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.d.ts +146 -18
- package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +362 -106
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts +395 -47
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +1719 -1007
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +214 -26
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +535 -159
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/Users/user-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Users/user-overview.panel.js +3 -3
- package/dist/lib/custom/Users/user-overview.panel.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +208 -29
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +446 -138
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts +6 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js +16 -4
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts +50 -6
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +84 -12
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +89 -5
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +216 -70
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +62 -3
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +140 -42
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +81 -10
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +165 -37
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +140 -15
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +326 -100
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts +101 -15
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js +281 -97
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts +43 -25
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js +100 -64
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.js +71 -53
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js +70 -52
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts +8 -0
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js +22 -6
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts +24 -2
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js +91 -59
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts +10 -2
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js +33 -17
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts +2 -0
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js +34 -30
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js +69 -51
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +56 -48
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +60 -0
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +38 -12
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.js +103 -51
- package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +61 -43
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.js +74 -0
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +37 -19
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +78 -52
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +76 -74
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +156 -84
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.js +62 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js +24 -6
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +27 -25
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js +24 -16
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.js +74 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.js +135 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.js +87 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.js +155 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.js +62 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.js +183 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.js +120 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.js +103 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.js +171 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +24 -16
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js +27 -25
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js +19 -11
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +209 -119
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +436 -422
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +44 -2
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts +5 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts.map +1 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js +11 -3
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts +2 -0
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +16 -12
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -1
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts +1 -1
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +2 -2
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts +45 -19
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.js +95 -43
- package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts +20 -16
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.js +73 -65
- package/dist/lib/panels/model-predictions/model-prediction.panel.js.map +1 -1
- package/dist/lib/panels/record-clone/entity-clone-config-editor.component.d.ts +116 -0
- package/dist/lib/panels/record-clone/entity-clone-config-editor.component.d.ts.map +1 -0
- package/dist/lib/panels/record-clone/entity-clone-config-editor.component.js +820 -0
- package/dist/lib/panels/record-clone/entity-clone-config-editor.component.js.map +1 -0
- package/dist/lib/shared/components/template-editor.component.d.ts +158 -15
- package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +389 -127
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/dist/public-api.d.ts +5 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +5 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +47 -42
|
@@ -6,19 +6,19 @@ import { MJAIAgentEntityExtended } from "@memberjunction/ai-core-plus";
|
|
|
6
6
|
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export interface SubAgentSelectorResult {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
SelectedAgents: MJAIAgentEntityExtended[];
|
|
10
|
+
CreateNew: boolean;
|
|
11
11
|
}
|
|
12
12
|
export interface SubAgentSelectorConfig {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
Title: string;
|
|
14
|
+
MultiSelect: boolean;
|
|
15
|
+
SelectedAgentIds: string[];
|
|
16
|
+
ShowCreateNew: boolean;
|
|
17
|
+
ParentAgentId: string;
|
|
18
18
|
}
|
|
19
19
|
export interface AgentDisplayItem extends MJAIAgentEntityExtended {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
Selected: boolean;
|
|
21
|
+
TypeName?: string;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Sub-Agent Selector Dialog for selecting agents to convert to sub-agents.
|
|
@@ -28,16 +28,54 @@ export declare class SubAgentSelectorDialogComponent extends BaseAngularComponen
|
|
|
28
28
|
private cdr;
|
|
29
29
|
config: SubAgentSelectorConfig;
|
|
30
30
|
private destroy$;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
Result: Subject<SubAgentSelectorResult | null>;
|
|
32
|
+
/** @deprecated Use {@link Result}. */
|
|
33
|
+
get result(): Subject<SubAgentSelectorResult | null>;
|
|
34
|
+
/** @deprecated Use {@link Result}. */
|
|
35
|
+
set result(value: Subject<SubAgentSelectorResult | null>);
|
|
36
|
+
AllAgents$: BehaviorSubject<AgentDisplayItem[]>;
|
|
37
|
+
/** @deprecated Use {@link AllAgents$}. */
|
|
38
|
+
get allAgents$(): BehaviorSubject<AgentDisplayItem[]>;
|
|
39
|
+
/** @deprecated Use {@link AllAgents$}. */
|
|
40
|
+
set allAgents$(value: BehaviorSubject<AgentDisplayItem[]>);
|
|
41
|
+
AgentTypes$: BehaviorSubject<MJAIAgentTypeEntity[]>;
|
|
42
|
+
/** @deprecated Use {@link AgentTypes$}. */
|
|
43
|
+
get agentTypes$(): BehaviorSubject<MJAIAgentTypeEntity[]>;
|
|
44
|
+
/** @deprecated Use {@link AgentTypes$}. */
|
|
45
|
+
set agentTypes$(value: BehaviorSubject<MJAIAgentTypeEntity[]>);
|
|
46
|
+
FilteredAgents$: BehaviorSubject<AgentDisplayItem[]>;
|
|
47
|
+
/** @deprecated Use {@link FilteredAgents$}. */
|
|
48
|
+
get filteredAgents$(): BehaviorSubject<AgentDisplayItem[]>;
|
|
49
|
+
/** @deprecated Use {@link FilteredAgents$}. */
|
|
50
|
+
set filteredAgents$(value: BehaviorSubject<AgentDisplayItem[]>);
|
|
51
|
+
SelectedAgents$: BehaviorSubject<Set<string>>;
|
|
52
|
+
/** @deprecated Use {@link SelectedAgents$}. */
|
|
53
|
+
get selectedAgents$(): BehaviorSubject<Set<string>>;
|
|
54
|
+
/** @deprecated Use {@link SelectedAgents$}. */
|
|
55
|
+
set selectedAgents$(value: BehaviorSubject<Set<string>>);
|
|
56
|
+
IsLoading$: BehaviorSubject<boolean>;
|
|
57
|
+
/** @deprecated Use {@link IsLoading$}. */
|
|
58
|
+
get isLoading$(): BehaviorSubject<boolean>;
|
|
59
|
+
/** @deprecated Use {@link IsLoading$}. */
|
|
60
|
+
set isLoading$(value: BehaviorSubject<boolean>);
|
|
61
|
+
SearchControl: FormControl<string | null>;
|
|
62
|
+
/** @deprecated Use {@link SearchControl}. */
|
|
63
|
+
get searchControl(): FormControl<string | null>;
|
|
64
|
+
/** @deprecated Use {@link SearchControl}. */
|
|
65
|
+
set searchControl(value: FormControl<string | null>);
|
|
66
|
+
SelectedTypeId$: BehaviorSubject<string>;
|
|
67
|
+
/** @deprecated Use {@link SelectedTypeId$}. */
|
|
68
|
+
get selectedTypeId$(): BehaviorSubject<string>;
|
|
69
|
+
/** @deprecated Use {@link SelectedTypeId$}. */
|
|
70
|
+
set selectedTypeId$(value: BehaviorSubject<string>);
|
|
71
|
+
get SelectedCount(): number;
|
|
72
|
+
/** @deprecated Use {@link SelectedCount}. */
|
|
39
73
|
get selectedCount(): number;
|
|
74
|
+
get TotalAgentCount(): number;
|
|
75
|
+
/** @deprecated Use {@link TotalAgentCount}. */
|
|
40
76
|
get totalAgentCount(): number;
|
|
77
|
+
get FilteredCount(): number;
|
|
78
|
+
/** @deprecated Use {@link FilteredCount}. */
|
|
41
79
|
get filteredCount(): number;
|
|
42
80
|
/** True when the empty list is the result of search/type filtering (vs. no eligible agents at all). */
|
|
43
81
|
get IsAgentListNarrowed(): boolean;
|
|
@@ -52,8 +90,14 @@ export declare class SubAgentSelectorDialogComponent extends BaseAngularComponen
|
|
|
52
90
|
private setupFiltering;
|
|
53
91
|
private filterAgents;
|
|
54
92
|
private preselectExistingAgents;
|
|
93
|
+
SelectType(typeId: string): void;
|
|
94
|
+
/** @deprecated Use {@link SelectType}. */
|
|
55
95
|
selectType(typeId: string): void;
|
|
96
|
+
ToggleAgentSelection(agent: AgentDisplayItem): void;
|
|
97
|
+
/** @deprecated Use {@link ToggleAgentSelection}. */
|
|
56
98
|
toggleAgentSelection(agent: AgentDisplayItem): void;
|
|
99
|
+
ClearSearch(): void;
|
|
100
|
+
/** @deprecated Use {@link ClearSearch}. */
|
|
57
101
|
clearSearch(): void;
|
|
58
102
|
/**
|
|
59
103
|
* Backs the no-results empty-state "Clear Filters" CTA. Unlike clearSearch (the
|
|
@@ -61,11 +105,21 @@ export declare class SubAgentSelectorDialogComponent extends BaseAngularComponen
|
|
|
61
105
|
* dimension the list narrows on — search AND the agent-type filter — so the CTA
|
|
62
106
|
* actually returns results instead of appearing to do nothing.
|
|
63
107
|
*/
|
|
108
|
+
ClearFilters(): void;
|
|
109
|
+
/** @deprecated Use {@link ClearFilters}. */
|
|
64
110
|
clearFilters(): void;
|
|
111
|
+
GetAgentIcon(agent: AgentDisplayItem): string;
|
|
112
|
+
/** @deprecated Use {@link GetAgentIcon}. */
|
|
65
113
|
getAgentIcon(agent: AgentDisplayItem): string;
|
|
114
|
+
GetAgentStatusColor(agent: AgentDisplayItem): string;
|
|
115
|
+
/** @deprecated Use {@link GetAgentStatusColor}. */
|
|
66
116
|
getAgentStatusColor(agent: AgentDisplayItem): string;
|
|
67
117
|
cancel(): void;
|
|
118
|
+
CreateNew(): void;
|
|
119
|
+
/** @deprecated Use {@link CreateNew}. */
|
|
68
120
|
createNew(): void;
|
|
121
|
+
AddSelectedAgents(): Promise<void>;
|
|
122
|
+
/** @deprecated Use {@link AddSelectedAgents}. */
|
|
69
123
|
addSelectedAgents(): Promise<void>;
|
|
70
124
|
static ɵfac: i0.ɵɵFactoryDeclaration<SubAgentSelectorDialogComponent, never>;
|
|
71
125
|
static ɵcmp: i0.ɵɵComponentDeclaration<SubAgentSelectorDialogComponent, "mj-sub-agent-selector-dialog", never, {}, { "DialogClose": "DialogClose"; }, never, never, false, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sub-agent-selector-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/sub-agent-selector-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,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AACrE,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,uBAAuB;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAMa,+BAAgC,SAAQ,oBAAqB,YAAW,MAAM,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"sub-agent-selector-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/sub-agent-selector-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,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AACrE,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,uBAAuB;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAMa,+BAAgC,SAAQ,oBAAqB,YAAW,MAAM,EAAE,SAAS;IAuIlG,OAAO,CAAC,GAAG;IApIb,MAAM,EAAG,sBAAsB,CAAC;IAGhC,OAAO,CAAC,QAAQ,CAAuB;IAChC,MAAM,yCAAgD;IAE7D,sCAAsC;IACtC,IAAW,MAAM,2CAEhB;IACD,sCAAsC;IACtC,IAAW,MAAM,CAAC,KAAK,wCAAA,EAEtB;IAGD,UAAU,sCAA+C;IAEzD,0CAA0C;IAC1C,IAAI,UAAU,wCAEb;IACD,0CAA0C;IAC1C,IAAI,UAAU,CAAC,KAAK,qCAAA,EAEnB;IACD,WAAW,yCAAkD;IAE7D,2CAA2C;IAC3C,IAAI,WAAW,2CAEd;IACD,2CAA2C;IAC3C,IAAI,WAAW,CAAC,KAAK,wCAAA,EAEpB;IACD,eAAe,sCAA+C;IAE9D,+CAA+C;IAC/C,IAAI,eAAe,wCAElB;IACD,+CAA+C;IAC/C,IAAI,eAAe,CAAC,KAAK,qCAAA,EAExB;IACD,eAAe,+BAA+C;IAE9D,+CAA+C;IAC/C,IAAI,eAAe,iCAElB;IACD,+CAA+C;IAC/C,IAAI,eAAe,CAAC,KAAK,8BAAA,EAExB;IACD,UAAU,2BAAuC;IAEjD,0CAA0C;IAC1C,IAAI,UAAU,6BAEb;IACD,0CAA0C;IAC1C,IAAI,UAAU,CAAC,KAAK,0BAAA,EAEnB;IAGD,aAAa,6BAAuB;IAEpC,6CAA6C;IAC7C,IAAI,aAAa,+BAEhB;IACD,6CAA6C;IAC7C,IAAI,aAAa,CAAC,KAAK,4BAAA,EAEtB;IACD,eAAe,0BAAsC;IAErD,+CAA+C;IAC/C,IAAI,eAAe,4BAElB;IACD,+CAA+C;IAC/C,IAAI,eAAe,CAAC,KAAK,yBAAA,EAExB;IAGD,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,6CAA6C;IAC7C,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,+CAA+C;IAC/C,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,6CAA6C;IAC7C,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,uGAAuG;IACvG,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED,qDAAqD;IACrD,IAAI,eAAe,IAAI,MAAM,CAI5B;IAES,WAAW,qBAA4B;gBAGvC,GAAG,EAAE,iBAAiB;IAIhC,QAAQ;IAMR,WAAW;YAKG,cAAc;YAYd,kBAAkB;IAwChC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,uBAAuB;IAgB/B,UAAU,CAAC,MAAM,EAAE,MAAM;IAIzB,0CAA0C;IAC1C,UAAU,CAAC,MAAM,EAAE,MAAM;IAIzB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB;IAqC5C,oDAAoD;IACpD,oBAAoB,CAAC,KAAK,EAAE,gBAAgB;IAI5C,WAAW;IAIX,2CAA2C;IAC3C,WAAW;IAIX;;;;;OAKG;IACH,YAAY;IAKZ,4CAA4C;IAC5C,YAAY;IAIZ,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAO7C,4CAA4C;IAC5C,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAI7C,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IASpD,mDAAmD;IACnD,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAMpD,MAAM;IAKN,SAAS;IAQT,yCAAyC;IACzC,SAAS;IAIH,iBAAiB;IAkBvB,iDAAiD;IAC3C,iBAAiB;yCA5YZ,+BAA+B;2CAA/B,+BAA+B;CA+Y3C"}
|
|
@@ -88,7 +88,7 @@ function SubAgentSelectorDialogComponent_Conditional_26_Conditional_2_For_2_Cond
|
|
|
88
88
|
} if (rf & 2) {
|
|
89
89
|
const agent_r5 = i0.ɵɵnextContext().$implicit;
|
|
90
90
|
i0.ɵɵadvance();
|
|
91
|
-
i0.ɵɵtextInterpolate(agent_r5.
|
|
91
|
+
i0.ɵɵtextInterpolate(agent_r5.TypeName);
|
|
92
92
|
} }
|
|
93
93
|
function SubAgentSelectorDialogComponent_Conditional_26_Conditional_2_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
94
94
|
i0.ɵɵelementStart(0, "span", 44);
|
|
@@ -120,9 +120,9 @@ function SubAgentSelectorDialogComponent_Conditional_26_Conditional_2_For_2_Temp
|
|
|
120
120
|
i0.ɵɵelementEnd()()();
|
|
121
121
|
} if (rf & 2) {
|
|
122
122
|
const agent_r5 = ctx.$implicit;
|
|
123
|
-
i0.ɵɵclassProp("selected", agent_r5.
|
|
123
|
+
i0.ɵɵclassProp("selected", agent_r5.Selected);
|
|
124
124
|
i0.ɵɵadvance(2);
|
|
125
|
-
i0.ɵɵconditional(agent_r5.
|
|
125
|
+
i0.ɵɵconditional(agent_r5.Selected ? 2 : 3);
|
|
126
126
|
i0.ɵɵadvance(3);
|
|
127
127
|
i0.ɵɵconditional(agent_r5.LogoURL ? 5 : 6);
|
|
128
128
|
i0.ɵɵadvance(4);
|
|
@@ -132,7 +132,7 @@ function SubAgentSelectorDialogComponent_Conditional_26_Conditional_2_For_2_Temp
|
|
|
132
132
|
i0.ɵɵadvance(2);
|
|
133
133
|
i0.ɵɵconditional(agent_r5.Status ? 12 : -1);
|
|
134
134
|
i0.ɵɵadvance();
|
|
135
|
-
i0.ɵɵconditional(agent_r5.
|
|
135
|
+
i0.ɵɵconditional(agent_r5.TypeName ? 13 : -1);
|
|
136
136
|
i0.ɵɵadvance();
|
|
137
137
|
i0.ɵɵconditional(agent_r5.ExecutionMode ? 14 : -1);
|
|
138
138
|
} }
|
|
@@ -177,19 +177,95 @@ function SubAgentSelectorDialogComponent_Conditional_35_Template(rf, ctx) { if (
|
|
|
177
177
|
* Only shows agents with NULL ParentID (root agents) that can become sub-agents.
|
|
178
178
|
*/
|
|
179
179
|
export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
180
|
+
/** @deprecated Use {@link Result}. */
|
|
181
|
+
get result() {
|
|
182
|
+
return this.Result;
|
|
183
|
+
}
|
|
184
|
+
/** @deprecated Use {@link Result}. */
|
|
185
|
+
set result(value) {
|
|
186
|
+
this.Result = value;
|
|
187
|
+
}
|
|
188
|
+
/** @deprecated Use {@link AllAgents$}. */
|
|
189
|
+
get allAgents$() {
|
|
190
|
+
return this.AllAgents$;
|
|
191
|
+
}
|
|
192
|
+
/** @deprecated Use {@link AllAgents$}. */
|
|
193
|
+
set allAgents$(value) {
|
|
194
|
+
this.AllAgents$ = value;
|
|
195
|
+
}
|
|
196
|
+
/** @deprecated Use {@link AgentTypes$}. */
|
|
197
|
+
get agentTypes$() {
|
|
198
|
+
return this.AgentTypes$;
|
|
199
|
+
}
|
|
200
|
+
/** @deprecated Use {@link AgentTypes$}. */
|
|
201
|
+
set agentTypes$(value) {
|
|
202
|
+
this.AgentTypes$ = value;
|
|
203
|
+
}
|
|
204
|
+
/** @deprecated Use {@link FilteredAgents$}. */
|
|
205
|
+
get filteredAgents$() {
|
|
206
|
+
return this.FilteredAgents$;
|
|
207
|
+
}
|
|
208
|
+
/** @deprecated Use {@link FilteredAgents$}. */
|
|
209
|
+
set filteredAgents$(value) {
|
|
210
|
+
this.FilteredAgents$ = value;
|
|
211
|
+
}
|
|
212
|
+
/** @deprecated Use {@link SelectedAgents$}. */
|
|
213
|
+
get selectedAgents$() {
|
|
214
|
+
return this.SelectedAgents$;
|
|
215
|
+
}
|
|
216
|
+
/** @deprecated Use {@link SelectedAgents$}. */
|
|
217
|
+
set selectedAgents$(value) {
|
|
218
|
+
this.SelectedAgents$ = value;
|
|
219
|
+
}
|
|
220
|
+
/** @deprecated Use {@link IsLoading$}. */
|
|
221
|
+
get isLoading$() {
|
|
222
|
+
return this.IsLoading$;
|
|
223
|
+
}
|
|
224
|
+
/** @deprecated Use {@link IsLoading$}. */
|
|
225
|
+
set isLoading$(value) {
|
|
226
|
+
this.IsLoading$ = value;
|
|
227
|
+
}
|
|
228
|
+
/** @deprecated Use {@link SearchControl}. */
|
|
229
|
+
get searchControl() {
|
|
230
|
+
return this.SearchControl;
|
|
231
|
+
}
|
|
232
|
+
/** @deprecated Use {@link SearchControl}. */
|
|
233
|
+
set searchControl(value) {
|
|
234
|
+
this.SearchControl = value;
|
|
235
|
+
}
|
|
236
|
+
/** @deprecated Use {@link SelectedTypeId$}. */
|
|
237
|
+
get selectedTypeId$() {
|
|
238
|
+
return this.SelectedTypeId$;
|
|
239
|
+
}
|
|
240
|
+
/** @deprecated Use {@link SelectedTypeId$}. */
|
|
241
|
+
set selectedTypeId$(value) {
|
|
242
|
+
this.SelectedTypeId$ = value;
|
|
243
|
+
}
|
|
180
244
|
// Computed values
|
|
245
|
+
get SelectedCount() {
|
|
246
|
+
return this.SelectedAgents$.value.size;
|
|
247
|
+
}
|
|
248
|
+
/** @deprecated Use {@link SelectedCount}. */
|
|
181
249
|
get selectedCount() {
|
|
182
|
-
return this.
|
|
250
|
+
return this.SelectedCount;
|
|
183
251
|
}
|
|
252
|
+
get TotalAgentCount() {
|
|
253
|
+
return this.AllAgents$.value.length;
|
|
254
|
+
}
|
|
255
|
+
/** @deprecated Use {@link TotalAgentCount}. */
|
|
184
256
|
get totalAgentCount() {
|
|
185
|
-
return this.
|
|
257
|
+
return this.TotalAgentCount;
|
|
258
|
+
}
|
|
259
|
+
get FilteredCount() {
|
|
260
|
+
return this.FilteredAgents$.value.length;
|
|
186
261
|
}
|
|
262
|
+
/** @deprecated Use {@link FilteredCount}. */
|
|
187
263
|
get filteredCount() {
|
|
188
|
-
return this.
|
|
264
|
+
return this.FilteredCount;
|
|
189
265
|
}
|
|
190
266
|
/** True when the empty list is the result of search/type filtering (vs. no eligible agents at all). */
|
|
191
267
|
get IsAgentListNarrowed() {
|
|
192
|
-
return this.
|
|
268
|
+
return this.TotalAgentCount > 0;
|
|
193
269
|
}
|
|
194
270
|
/** Supporting copy for the no-agents empty state. */
|
|
195
271
|
get NoAgentsMessage() {
|
|
@@ -202,16 +278,16 @@ export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
|
202
278
|
this.cdr = cdr;
|
|
203
279
|
// Reactive state management
|
|
204
280
|
this.destroy$ = new Subject();
|
|
205
|
-
this.
|
|
281
|
+
this.Result = new Subject();
|
|
206
282
|
// Data streams
|
|
207
|
-
this.
|
|
208
|
-
this.
|
|
209
|
-
this.
|
|
210
|
-
this.
|
|
211
|
-
this.
|
|
283
|
+
this.AllAgents$ = new BehaviorSubject([]);
|
|
284
|
+
this.AgentTypes$ = new BehaviorSubject([]);
|
|
285
|
+
this.FilteredAgents$ = new BehaviorSubject([]);
|
|
286
|
+
this.SelectedAgents$ = new BehaviorSubject(new Set());
|
|
287
|
+
this.IsLoading$ = new BehaviorSubject(false);
|
|
212
288
|
// UI state
|
|
213
|
-
this.
|
|
214
|
-
this.
|
|
289
|
+
this.SearchControl = new FormControl('');
|
|
290
|
+
this.SelectedTypeId$ = new BehaviorSubject('all');
|
|
215
291
|
this.DialogClose = new EventEmitter();
|
|
216
292
|
}
|
|
217
293
|
ngOnInit() {
|
|
@@ -224,7 +300,7 @@ export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
|
224
300
|
this.destroy$.complete();
|
|
225
301
|
}
|
|
226
302
|
async initializeData() {
|
|
227
|
-
this.
|
|
303
|
+
this.IsLoading$.next(true);
|
|
228
304
|
try {
|
|
229
305
|
await this.loadAgentsAndTypes();
|
|
230
306
|
}
|
|
@@ -232,7 +308,7 @@ export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
|
232
308
|
console.error('Error loading dialog data:', error);
|
|
233
309
|
}
|
|
234
310
|
finally {
|
|
235
|
-
this.
|
|
311
|
+
this.IsLoading$.next(false);
|
|
236
312
|
}
|
|
237
313
|
}
|
|
238
314
|
async loadAgentsAndTypes() {
|
|
@@ -242,7 +318,7 @@ export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
|
242
318
|
// Root agents (index 0)
|
|
243
319
|
{
|
|
244
320
|
EntityName: 'MJ: AI Agents',
|
|
245
|
-
ExtraFilter: `ParentID IS NULL AND ID != '${this.config.
|
|
321
|
+
ExtraFilter: `ParentID IS NULL AND ID != '${this.config.ParentAgentId}' AND Status = 'Active' AND (ExposeAsAction = 0 OR ExposeAsAction IS NULL)`,
|
|
246
322
|
OrderBy: 'Name',
|
|
247
323
|
ResultType: 'entity_object',
|
|
248
324
|
MaxRows: 1000
|
|
@@ -260,21 +336,21 @@ export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
|
260
336
|
if (results[0].Success) {
|
|
261
337
|
const agents = (results[0].Results || []).map(agent => ({
|
|
262
338
|
...agent.GetAll(),
|
|
263
|
-
|
|
264
|
-
|
|
339
|
+
Selected: false,
|
|
340
|
+
TypeName: agent.Type || 'Default'
|
|
265
341
|
}));
|
|
266
|
-
this.
|
|
342
|
+
this.AllAgents$.next(agents);
|
|
267
343
|
}
|
|
268
344
|
// Process agent types (index 1)
|
|
269
345
|
if (results[1].Success) {
|
|
270
|
-
this.
|
|
346
|
+
this.AgentTypes$.next(results[1].Results || []);
|
|
271
347
|
}
|
|
272
348
|
}
|
|
273
349
|
setupFiltering() {
|
|
274
350
|
combineLatest([
|
|
275
|
-
this.
|
|
276
|
-
this.
|
|
277
|
-
this.
|
|
351
|
+
this.AllAgents$,
|
|
352
|
+
this.SearchControl.valueChanges.pipe(debounceTime(300), distinctUntilChanged(), startWith('')),
|
|
353
|
+
this.SelectedTypeId$
|
|
278
354
|
]).pipe(takeUntil(this.destroy$)).subscribe(([agents, searchTerm, typeId]) => {
|
|
279
355
|
this.filterAgents(agents, searchTerm || '', typeId);
|
|
280
356
|
});
|
|
@@ -290,40 +366,44 @@ export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
|
290
366
|
const term = searchTerm.toLowerCase();
|
|
291
367
|
filtered = filtered.filter(agent => (agent.Name && agent.Name.toLowerCase().includes(term)) ||
|
|
292
368
|
(agent.Description && agent.Description.toLowerCase().includes(term)) ||
|
|
293
|
-
(agent.
|
|
369
|
+
(agent.TypeName && agent.TypeName.toLowerCase().includes(term)));
|
|
294
370
|
}
|
|
295
|
-
this.
|
|
371
|
+
this.FilteredAgents$.next(filtered);
|
|
296
372
|
}
|
|
297
373
|
preselectExistingAgents() {
|
|
298
|
-
if (this.config.
|
|
299
|
-
const selected = new Set(this.config.
|
|
300
|
-
this.
|
|
374
|
+
if (this.config.SelectedAgentIds.length > 0) {
|
|
375
|
+
const selected = new Set(this.config.SelectedAgentIds);
|
|
376
|
+
this.SelectedAgents$.next(selected);
|
|
301
377
|
// Update agent selection state
|
|
302
|
-
const agents = this.
|
|
378
|
+
const agents = this.AllAgents$.value;
|
|
303
379
|
agents.forEach(agent => {
|
|
304
|
-
agent.
|
|
380
|
+
agent.Selected = selected.has(agent.ID);
|
|
305
381
|
});
|
|
306
|
-
this.
|
|
382
|
+
this.AllAgents$.next(agents);
|
|
307
383
|
}
|
|
308
384
|
}
|
|
309
385
|
// === UI Event Handlers ===
|
|
386
|
+
SelectType(typeId) {
|
|
387
|
+
this.SelectedTypeId$.next(typeId);
|
|
388
|
+
}
|
|
389
|
+
/** @deprecated Use {@link SelectType}. */
|
|
310
390
|
selectType(typeId) {
|
|
311
|
-
this.
|
|
391
|
+
return this.SelectType(typeId);
|
|
312
392
|
}
|
|
313
|
-
|
|
314
|
-
const selected = this.
|
|
315
|
-
const agents = this.
|
|
393
|
+
ToggleAgentSelection(agent) {
|
|
394
|
+
const selected = this.SelectedAgents$.value;
|
|
395
|
+
const agents = this.AllAgents$.value;
|
|
316
396
|
// Find the agent and toggle its selection
|
|
317
397
|
const agentToUpdate = agents.find(a => UUIDsEqual(a.ID, agent.ID));
|
|
318
398
|
if (agentToUpdate) {
|
|
319
|
-
agentToUpdate.
|
|
320
|
-
if (agentToUpdate.
|
|
321
|
-
if (!this.config.
|
|
399
|
+
agentToUpdate.Selected = !agentToUpdate.Selected;
|
|
400
|
+
if (agentToUpdate.Selected) {
|
|
401
|
+
if (!this.config.MultiSelect) {
|
|
322
402
|
// Single select mode - clear other selections
|
|
323
403
|
selected.clear();
|
|
324
404
|
agents.forEach(a => {
|
|
325
405
|
if (!UUIDsEqual(a.ID, agent.ID)) {
|
|
326
|
-
a.
|
|
406
|
+
a.Selected = false;
|
|
327
407
|
}
|
|
328
408
|
});
|
|
329
409
|
}
|
|
@@ -332,19 +412,27 @@ export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
|
332
412
|
else {
|
|
333
413
|
selected.delete(agent.ID);
|
|
334
414
|
}
|
|
335
|
-
this.
|
|
336
|
-
this.
|
|
415
|
+
this.SelectedAgents$.next(new Set(selected));
|
|
416
|
+
this.AllAgents$.next(agents);
|
|
337
417
|
// Update filtered agents to reflect selection state
|
|
338
|
-
const filtered = this.
|
|
418
|
+
const filtered = this.FilteredAgents$.value;
|
|
339
419
|
const filteredAgent = filtered.find(a => UUIDsEqual(a.ID, agent.ID));
|
|
340
420
|
if (filteredAgent) {
|
|
341
|
-
filteredAgent.
|
|
342
|
-
this.
|
|
421
|
+
filteredAgent.Selected = agentToUpdate.Selected;
|
|
422
|
+
this.FilteredAgents$.next(filtered);
|
|
343
423
|
}
|
|
344
424
|
}
|
|
345
425
|
}
|
|
426
|
+
/** @deprecated Use {@link ToggleAgentSelection}. */
|
|
427
|
+
toggleAgentSelection(agent) {
|
|
428
|
+
return this.ToggleAgentSelection(agent);
|
|
429
|
+
}
|
|
430
|
+
ClearSearch() {
|
|
431
|
+
this.SearchControl.reset();
|
|
432
|
+
}
|
|
433
|
+
/** @deprecated Use {@link ClearSearch}. */
|
|
346
434
|
clearSearch() {
|
|
347
|
-
this.
|
|
435
|
+
return this.ClearSearch();
|
|
348
436
|
}
|
|
349
437
|
/**
|
|
350
438
|
* Backs the no-results empty-state "Clear Filters" CTA. Unlike clearSearch (the
|
|
@@ -352,17 +440,25 @@ export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
|
352
440
|
* dimension the list narrows on — search AND the agent-type filter — so the CTA
|
|
353
441
|
* actually returns results instead of appearing to do nothing.
|
|
354
442
|
*/
|
|
443
|
+
ClearFilters() {
|
|
444
|
+
this.SearchControl.reset();
|
|
445
|
+
this.SelectedTypeId$.next('all');
|
|
446
|
+
}
|
|
447
|
+
/** @deprecated Use {@link ClearFilters}. */
|
|
355
448
|
clearFilters() {
|
|
356
|
-
this.
|
|
357
|
-
this.selectedTypeId$.next('all');
|
|
449
|
+
return this.ClearFilters();
|
|
358
450
|
}
|
|
359
|
-
|
|
451
|
+
GetAgentIcon(agent) {
|
|
360
452
|
if (agent.IconClass) {
|
|
361
453
|
return agent.IconClass;
|
|
362
454
|
}
|
|
363
455
|
return 'fa-solid fa-robot';
|
|
364
456
|
}
|
|
365
|
-
|
|
457
|
+
/** @deprecated Use {@link GetAgentIcon}. */
|
|
458
|
+
getAgentIcon(agent) {
|
|
459
|
+
return this.GetAgentIcon(agent);
|
|
460
|
+
}
|
|
461
|
+
GetAgentStatusColor(agent) {
|
|
366
462
|
switch (agent.Status) {
|
|
367
463
|
case 'Active': return 'var(--mj-status-success)';
|
|
368
464
|
case 'Disabled': return 'var(--mj-text-muted)';
|
|
@@ -370,32 +466,44 @@ export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
|
370
466
|
default: return 'var(--mj-text-muted)';
|
|
371
467
|
}
|
|
372
468
|
}
|
|
469
|
+
/** @deprecated Use {@link GetAgentStatusColor}. */
|
|
470
|
+
getAgentStatusColor(agent) {
|
|
471
|
+
return this.GetAgentStatusColor(agent);
|
|
472
|
+
}
|
|
373
473
|
// === Dialog Actions ===
|
|
374
474
|
cancel() {
|
|
375
|
-
this.
|
|
475
|
+
this.Result.next(null);
|
|
376
476
|
this.DialogClose.emit();
|
|
377
477
|
}
|
|
378
|
-
|
|
379
|
-
this.
|
|
380
|
-
|
|
381
|
-
|
|
478
|
+
CreateNew() {
|
|
479
|
+
this.Result.next({
|
|
480
|
+
SelectedAgents: [],
|
|
481
|
+
CreateNew: true
|
|
382
482
|
});
|
|
383
483
|
this.DialogClose.emit();
|
|
384
484
|
}
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
485
|
+
/** @deprecated Use {@link CreateNew}. */
|
|
486
|
+
createNew() {
|
|
487
|
+
return this.CreateNew();
|
|
488
|
+
}
|
|
489
|
+
async AddSelectedAgents() {
|
|
490
|
+
const selectedIds = this.SelectedAgents$.value;
|
|
491
|
+
const allAgents = this.AllAgents$.value;
|
|
388
492
|
// Get the selected agent display items
|
|
389
493
|
const selectedDisplayItems = allAgents
|
|
390
494
|
.filter(agent => selectedIds.has(agent.ID));
|
|
391
495
|
// Convert AgentDisplayItem to MJAIAgentEntityExtended by casting (they have the same structure)
|
|
392
496
|
const selectedAgents = selectedDisplayItems.map(item => item);
|
|
393
|
-
this.
|
|
394
|
-
selectedAgents,
|
|
395
|
-
|
|
497
|
+
this.Result.next({
|
|
498
|
+
SelectedAgents: selectedAgents,
|
|
499
|
+
CreateNew: false
|
|
396
500
|
});
|
|
397
501
|
this.DialogClose.emit();
|
|
398
502
|
}
|
|
503
|
+
/** @deprecated Use {@link AddSelectedAgents}. */
|
|
504
|
+
async addSelectedAgents() {
|
|
505
|
+
return this.AddSelectedAgents();
|
|
506
|
+
}
|
|
399
507
|
static { this.ɵfac = function SubAgentSelectorDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubAgentSelectorDialogComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
400
508
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SubAgentSelectorDialogComponent, selectors: [["mj-sub-agent-selector-dialog"]], outputs: { DialogClose: "DialogClose" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 36, vars: 21, consts: [[1, "sub-agent-selector-dialog"], [1, "dialog-header"], [1, "header-info"], [1, "header-description"], [1, "header-stats"], [1, "selection-count"], [1, "total-count"], [1, "controls-section"], [1, "search-controls"], [1, "search-input"], [1, "fa-solid", "fa-search", "search-icon"], ["placeholder", "Search agents by name, description, or type...", 1, "mj-input", "search-field", 3, "formControl"], ["mjButton", "", "variant", "flat", 1, "clear-search"], [1, "filter-controls"], [1, "type-filter"], ["TextField", "Name", "ValueField", "ID", 1, "type-dropdown", 3, "ngModelChange", "ngModel", "ValuePrimitive", "DefaultItem", "Data"], [1, "loading-state"], [1, "content-area"], [1, "dialog-footer"], [1, "footer-left"], ["mjButton", "", "variant", "primary"], [1, "footer-right"], ["mjButton", "", "variant", "flat", 3, "click"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], ["mjButton", "", "variant", "flat", 1, "clear-search", 3, "click"], [1, "fa-solid", "fa-times"], [1, "fa-solid", "fa-spinner", "fa-spin", "fa-2x"], ["Icon", "fa-solid fa-robot", "Title", "No agents found", "Size", "compact", 3, "Variant", "Message", "ActionText"], [1, "agents-grid"], ["Icon", "fa-solid fa-robot", "Title", "No agents found", "Size", "compact", 3, "Action", "Variant", "Message", "ActionText"], [1, "agent-card", 3, "selected"], [1, "agent-card", 3, "click"], [1, "selection-indicator"], [1, "fa-solid", "fa-check-circle"], [1, "fa-regular", "fa-circle"], [1, "agent-icon"], [1, "agent-logo", 3, "src", "alt"], [3, "class"], [1, "agent-info"], [1, "agent-name"], [1, "agent-description"], [1, "agent-meta"], [1, "status-badge", 3, "background-color"], [1, "type-badge"], [1, "execution-badge"], [1, "status-badge"], ["mjButton", "", "variant", "primary", 3, "click"], [1, "fa-solid", "fa-plus"]], template: function SubAgentSelectorDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
401
509
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "h3");
|
|
@@ -437,7 +545,7 @@ export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
|
437
545
|
i0.ɵɵelementEnd()()()();
|
|
438
546
|
} if (rf & 2) {
|
|
439
547
|
i0.ɵɵadvance(4);
|
|
440
|
-
i0.ɵɵtextInterpolate(ctx.config.
|
|
548
|
+
i0.ɵɵtextInterpolate(ctx.config.Title || "Select Sub-Agents");
|
|
441
549
|
i0.ɵɵadvance(4);
|
|
442
550
|
i0.ɵɵconditional(ctx.selectedCount > 0 ? 8 : -1);
|
|
443
551
|
i0.ɵɵadvance(2);
|
|
@@ -451,16 +559,16 @@ export class SubAgentSelectorDialogComponent extends BaseAngularComponent {
|
|
|
451
559
|
i0.ɵɵadvance(3);
|
|
452
560
|
i0.ɵɵconditional(i0.ɵɵpipeBind1(25, 18, ctx.isLoading$) ? 24 : 26);
|
|
453
561
|
i0.ɵɵadvance(5);
|
|
454
|
-
i0.ɵɵconditional(ctx.config.
|
|
562
|
+
i0.ɵɵconditional(ctx.config.ShowCreateNew ? 29 : -1);
|
|
455
563
|
i0.ɵɵadvance(4);
|
|
456
564
|
i0.ɵɵproperty("disabled", ctx.selectedCount === 0);
|
|
457
565
|
i0.ɵɵadvance();
|
|
458
|
-
i0.ɵɵconditional(ctx.config.
|
|
566
|
+
i0.ɵɵconditional(ctx.config.MultiSelect ? 34 : 35);
|
|
459
567
|
} }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgModel, i1.FormControlDirective, i2.MJEmptyStateComponent, i2.MJButtonDirective, i2.MJDropdownComponent, i3.AsyncPipe], styles: [".sub-agent-selector-dialog[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\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.dialog-header[_ngcontent-%COMP%] {\n padding: 1.5rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n}\n\n.header-info[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-primary);\n font-size: 1.25rem;\n font-weight: 600;\n}\n\n.header-description[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 0.25rem;\n font-size: 0.85rem;\n}\n\n.selection-count[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.total-count[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n\n.controls-section[_ngcontent-%COMP%] {\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n display: flex;\n gap: 1rem;\n align-items: flex-end;\n}\n\n.search-controls[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.search-input[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n z-index: 1;\n}\n\n.search-field[_ngcontent-%COMP%] {\n width: 100%;\n padding-left: 40px;\n}\n\n.clear-search[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px;\n z-index: 1;\n}\n\n.filter-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 1rem;\n align-items: flex-end;\n}\n\n.type-filter[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.type-filter[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.type-dropdown[_ngcontent-%COMP%] {\n min-width: 150px;\n}\n\n\n.content-area[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 1rem;\n}\n\n\n.loading-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}\n\n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-bottom: 1rem;\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1rem;\n}\n\n\n.agents-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1rem;\n}\n\n.agent-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-bg-surface-sunken);\n border-radius: 8px;\n padding: 1rem;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n gap: 1rem;\n position: relative;\n}\n\n.agent-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.agent-card.selected[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface));\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n}\n\n.selection-indicator[_ngcontent-%COMP%] {\n position: absolute;\n top: 0.75rem;\n right: 0.75rem;\n font-size: 1.1rem;\n}\n\n.selection-indicator[_ngcontent-%COMP%] .fa-check-circle[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.selection-indicator[_ngcontent-%COMP%] .fa-circle[_ngcontent-%COMP%] {\n color: var(--mj-border-default);\n}\n\n.agent-icon[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.agent-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.5rem;\n color: var(--mj-brand-primary);\n}\n\n.agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.agent-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 0.5rem;\n word-wrap: break-word;\n}\n\n.agent-description[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n margin-bottom: 0.75rem;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.agent-meta[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n\n.status-badge[_ngcontent-%COMP%], \n.type-badge[_ngcontent-%COMP%], \n.execution-badge[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--mj-text-inverse);\n}\n\n\n\n.type-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.execution-badge[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n\n.dialog-footer[_ngcontent-%COMP%] {\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface);\n border-top: 1px solid var(--mj-bg-surface-sunken);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.footer-left[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n}\n\n.footer-right[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.75rem;\n}\n\n.dialog-footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n min-width: 100px;\n}\n\n.dialog-footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n}\n\n\n@media (max-width: 768px) {\n .agents-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .dialog-header[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 1rem;\n }\n\n .header-stats[_ngcontent-%COMP%] {\n align-items: flex-start;\n }\n\n .controls-section[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-controls[_ngcontent-%COMP%] {\n justify-content: flex-start;\n }\n\n .dialog-footer[_ngcontent-%COMP%] {\n flex-direction: column-reverse;\n gap: 1rem;\n }\n\n .footer-left[_ngcontent-%COMP%], \n .footer-right[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: center;\n }\n}"] }); }
|
|
460
568
|
}
|
|
461
569
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubAgentSelectorDialogComponent, [{
|
|
462
570
|
type: Component,
|
|
463
|
-
args: [{ standalone: false, selector: 'mj-sub-agent-selector-dialog', template: "<!-- Sub-Agent Selector Dialog -->\n<div class=\"sub-agent-selector-dialog\">\n \n <!-- Dialog Header -->\n <div class=\"dialog-header\">\n <div class=\"header-info\">\n <h3>{{ config.title || 'Select Sub-Agents' }}</h3>\n <p class=\"header-description\">\n Choose existing root agents to convert into sub-agents. Only active agents without parents and not exposed as actions can be selected.\n </p>\n </div>\n <div class=\"header-stats\">\n @if (selectedCount > 0) {\n <span class=\"selection-count\">{{ selectedCount }} selected</span>\n }\n <span class=\"total-count\">{{ filteredCount }} of {{ totalAgentCount }} agents</span>\n </div>\n </div>\n\n <!-- Search and Filter Controls -->\n <div class=\"controls-section\">\n <div class=\"search-controls\">\n <div class=\"search-input\">\n <i class=\"fa-solid fa-search search-icon\"></i>\n <input\n class=\"mj-input search-field\"\n [formControl]=\"searchControl\"\n placeholder=\"Search agents by name, description, or type...\">\n @if (searchControl.value) {\n <button mjButton\n variant=\"flat\"\n (click)=\"clearSearch()\"\n class=\"clear-search\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n </div>\n\n <div class=\"filter-controls\">\n <div class=\"type-filter\">\n <label>Agent Type:</label>\n <mj-dropdown\n [ngModel]=\"selectedTypeId$ | async\"\n (ngModelChange)=\"selectType($any($event))\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [DefaultItem]=\"{ Name: 'All Types', ID: 'all' }\"\n [Data]=\"agentTypes$ | async\"\n class=\"type-dropdown\">\n </mj-dropdown>\n </div>\n </div>\n </div>\n\n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n <p>Loading available agents...</p>\n </div>\n } @else {\n \n <!-- Content Area -->\n <div class=\"content-area\">\n @if (filteredCount === 0) {\n <mj-empty-state\n [Variant]=\"IsAgentListNarrowed ? 'no-results' : 'empty'\"\n Icon=\"fa-solid fa-robot\"\n Title=\"No agents found\"\n [Message]=\"NoAgentsMessage\"\n [ActionText]=\"IsAgentListNarrowed ? 'Clear Filters' : ''\"\n (Action)=\"clearFilters()\"\n Size=\"compact\" />\n } @else {\n \n <!-- Agents Grid -->\n <div class=\"agents-grid\">\n @for (agent of (filteredAgents$ | async); track agent.ID) {\n <div class=\"agent-card\" \n [class.selected]=\"agent.selected\"\n (click)=\"toggleAgentSelection(agent)\">\n \n <!-- Selection Indicator -->\n <div class=\"selection-indicator\">\n @if (agent.selected) {\n <i class=\"fa-solid fa-check-circle\"></i>\n } @else {\n <i class=\"fa-regular fa-circle\"></i>\n }\n </div>\n \n <!-- Agent Icon/Logo -->\n <div class=\"agent-icon\">\n @if (agent.LogoURL) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name + ' logo'\" class=\"agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon(agent)\"></i>\n }\n </div>\n \n <!-- Agent Info -->\n <div class=\"agent-info\">\n <div class=\"agent-name\">{{ agent.Name }}</div>\n @if (agent.Description) {\n <div class=\"agent-description\">{{ agent.Description }}</div>\n }\n <div class=\"agent-meta\">\n @if (agent.Status) {\n <span class=\"status-badge\" [style.background-color]=\"getAgentStatusColor(agent)\">\n {{ agent.Status }}\n </span>\n }\n @if (agent.typeName) {\n <span class=\"type-badge\">{{ agent.typeName }}</span>\n }\n @if (agent.ExecutionMode) {\n <span class=\"execution-badge\">{{ agent.ExecutionMode }}</span>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <div class=\"footer-left\">\n @if (config.showCreateNew) {\n <button mjButton\n variant=\"primary\"\n (click)=\"createNew()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Sub-Agent\n </button>\n }\n </div>\n \n <div class=\"footer-right\">\n <button mjButton\n variant=\"flat\"\n (click)=\"cancel()\">\n Cancel\n </button>\n\n <button mjButton\n variant=\"primary\"\n (click)=\"addSelectedAgents()\"\n [disabled]=\"selectedCount === 0\">\n @if (config.multiSelect) {\n Add {{ selectedCount > 0 ? selectedCount + ' ' : '' }}Sub-Agent{{ selectedCount !== 1 ? 's' : '' }}\n } @else {\n Add Sub-Agent\n }\n </button>\n </div>\n </div>\n</div>", styles: [".sub-agent-selector-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\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.dialog-header {\n padding: 1.5rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n}\n\n.header-info h3 {\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-primary);\n font-size: 1.25rem;\n font-weight: 600;\n}\n\n.header-description {\n margin: 0;\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n}\n\n.header-stats {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 0.25rem;\n font-size: 0.85rem;\n}\n\n.selection-count {\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.total-count {\n color: var(--mj-text-muted);\n}\n\n/* === Controls Section === */\n.controls-section {\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n display: flex;\n gap: 1rem;\n align-items: flex-end;\n}\n\n.search-controls {\n flex: 1;\n}\n\n.search-input {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-icon {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n z-index: 1;\n}\n\n.search-field {\n width: 100%;\n padding-left: 40px;\n}\n\n.clear-search {\n position: absolute;\n right: 8px;\n z-index: 1;\n}\n\n.filter-controls {\n display: flex;\n gap: 1rem;\n align-items: flex-end;\n}\n\n.type-filter {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.type-filter label {\n font-size: 0.85rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.type-dropdown {\n min-width: 150px;\n}\n\n/* === Content Area === */\n.content-area {\n flex: 1;\n overflow-y: auto;\n padding: 1rem;\n}\n\n/* === Loading State === */\n.loading-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}\n\n.loading-state i {\n color: var(--mj-brand-primary);\n margin-bottom: 1rem;\n}\n\n.loading-state p {\n margin: 0;\n font-size: 1rem;\n}\n\n/* === Agents Grid === */\n.agents-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1rem;\n}\n\n.agent-card {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-bg-surface-sunken);\n border-radius: 8px;\n padding: 1rem;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n gap: 1rem;\n position: relative;\n}\n\n.agent-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.agent-card.selected {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface));\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n}\n\n.selection-indicator {\n position: absolute;\n top: 0.75rem;\n right: 0.75rem;\n font-size: 1.1rem;\n}\n\n.selection-indicator .fa-check-circle {\n color: var(--mj-status-success);\n}\n\n.selection-indicator .fa-circle {\n color: var(--mj-border-default);\n}\n\n.agent-icon {\n flex-shrink: 0;\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.agent-icon i {\n font-size: 1.5rem;\n color: var(--mj-brand-primary);\n}\n\n.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.agent-info {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name {\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 0.5rem;\n word-wrap: break-word;\n}\n\n.agent-description {\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n margin-bottom: 0.75rem;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.agent-meta {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n\n.status-badge,\n.type-badge,\n.execution-badge {\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--mj-text-inverse);\n}\n\n/* Status badge color set dynamically via style binding */\n\n.type-badge {\n background: var(--mj-brand-primary);\n}\n\n.execution-badge {\n background: var(--mj-status-warning);\n}\n\n/* === Dialog Footer === */\n.dialog-footer {\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface);\n border-top: 1px solid var(--mj-bg-surface-sunken);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.footer-left {\n display: flex;\n gap: 0.5rem;\n}\n\n.footer-right {\n display: flex;\n gap: 0.75rem;\n}\n\n.dialog-footer button {\n min-width: 100px;\n}\n\n.dialog-footer button i {\n margin-right: 0.5rem;\n}\n\n/* === Responsive Design === */\n@media (max-width: 768px) {\n .agents-grid {\n grid-template-columns: 1fr;\n }\n\n .dialog-header {\n flex-direction: column;\n gap: 1rem;\n }\n\n .header-stats {\n align-items: flex-start;\n }\n\n .controls-section {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-controls {\n justify-content: flex-start;\n }\n\n .dialog-footer {\n flex-direction: column-reverse;\n gap: 1rem;\n }\n\n .footer-left,\n .footer-right {\n width: 100%;\n justify-content: center;\n }\n}\n"] }]
|
|
571
|
+
args: [{ standalone: false, selector: 'mj-sub-agent-selector-dialog', template: "<!-- Sub-Agent Selector Dialog -->\n<div class=\"sub-agent-selector-dialog\">\n \n <!-- Dialog Header -->\n <div class=\"dialog-header\">\n <div class=\"header-info\">\n <h3>{{ config.Title || 'Select Sub-Agents' }}</h3>\n <p class=\"header-description\">\n Choose existing root agents to convert into sub-agents. Only active agents without parents and not exposed as actions can be selected.\n </p>\n </div>\n <div class=\"header-stats\">\n @if (selectedCount > 0) {\n <span class=\"selection-count\">{{ selectedCount }} selected</span>\n }\n <span class=\"total-count\">{{ filteredCount }} of {{ totalAgentCount }} agents</span>\n </div>\n </div>\n\n <!-- Search and Filter Controls -->\n <div class=\"controls-section\">\n <div class=\"search-controls\">\n <div class=\"search-input\">\n <i class=\"fa-solid fa-search search-icon\"></i>\n <input\n class=\"mj-input search-field\"\n [formControl]=\"searchControl\"\n placeholder=\"Search agents by name, description, or type...\">\n @if (searchControl.value) {\n <button mjButton\n variant=\"flat\"\n (click)=\"clearSearch()\"\n class=\"clear-search\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n </div>\n\n <div class=\"filter-controls\">\n <div class=\"type-filter\">\n <label>Agent Type:</label>\n <mj-dropdown\n [ngModel]=\"selectedTypeId$ | async\"\n (ngModelChange)=\"selectType($any($event))\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [DefaultItem]=\"{ Name: 'All Types', ID: 'all' }\"\n [Data]=\"agentTypes$ | async\"\n class=\"type-dropdown\">\n </mj-dropdown>\n </div>\n </div>\n </div>\n\n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n <p>Loading available agents...</p>\n </div>\n } @else {\n \n <!-- Content Area -->\n <div class=\"content-area\">\n @if (filteredCount === 0) {\n <mj-empty-state\n [Variant]=\"IsAgentListNarrowed ? 'no-results' : 'empty'\"\n Icon=\"fa-solid fa-robot\"\n Title=\"No agents found\"\n [Message]=\"NoAgentsMessage\"\n [ActionText]=\"IsAgentListNarrowed ? 'Clear Filters' : ''\"\n (Action)=\"clearFilters()\"\n Size=\"compact\" />\n } @else {\n \n <!-- Agents Grid -->\n <div class=\"agents-grid\">\n @for (agent of (filteredAgents$ | async); track agent.ID) {\n <div class=\"agent-card\" \n [class.selected]=\"agent.Selected\"\n (click)=\"toggleAgentSelection(agent)\">\n \n <!-- Selection Indicator -->\n <div class=\"selection-indicator\">\n @if (agent.Selected) {\n <i class=\"fa-solid fa-check-circle\"></i>\n } @else {\n <i class=\"fa-regular fa-circle\"></i>\n }\n </div>\n \n <!-- Agent Icon/Logo -->\n <div class=\"agent-icon\">\n @if (agent.LogoURL) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name + ' logo'\" class=\"agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon(agent)\"></i>\n }\n </div>\n \n <!-- Agent Info -->\n <div class=\"agent-info\">\n <div class=\"agent-name\">{{ agent.Name }}</div>\n @if (agent.Description) {\n <div class=\"agent-description\">{{ agent.Description }}</div>\n }\n <div class=\"agent-meta\">\n @if (agent.Status) {\n <span class=\"status-badge\" [style.background-color]=\"getAgentStatusColor(agent)\">\n {{ agent.Status }}\n </span>\n }\n @if (agent.TypeName) {\n <span class=\"type-badge\">{{ agent.TypeName }}</span>\n }\n @if (agent.ExecutionMode) {\n <span class=\"execution-badge\">{{ agent.ExecutionMode }}</span>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <div class=\"footer-left\">\n @if (config.ShowCreateNew) {\n <button mjButton\n variant=\"primary\"\n (click)=\"createNew()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Sub-Agent\n </button>\n }\n </div>\n \n <div class=\"footer-right\">\n <button mjButton\n variant=\"flat\"\n (click)=\"cancel()\">\n Cancel\n </button>\n\n <button mjButton\n variant=\"primary\"\n (click)=\"addSelectedAgents()\"\n [disabled]=\"selectedCount === 0\">\n @if (config.MultiSelect) {\n Add {{ selectedCount > 0 ? selectedCount + ' ' : '' }}Sub-Agent{{ selectedCount !== 1 ? 's' : '' }}\n } @else {\n Add Sub-Agent\n }\n </button>\n </div>\n </div>\n</div>", styles: [".sub-agent-selector-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\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.dialog-header {\n padding: 1.5rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n}\n\n.header-info h3 {\n margin: 0 0 0.5rem 0;\n color: var(--mj-text-primary);\n font-size: 1.25rem;\n font-weight: 600;\n}\n\n.header-description {\n margin: 0;\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n}\n\n.header-stats {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 0.25rem;\n font-size: 0.85rem;\n}\n\n.selection-count {\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.total-count {\n color: var(--mj-text-muted);\n}\n\n/* === Controls Section === */\n.controls-section {\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n display: flex;\n gap: 1rem;\n align-items: flex-end;\n}\n\n.search-controls {\n flex: 1;\n}\n\n.search-input {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-icon {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n z-index: 1;\n}\n\n.search-field {\n width: 100%;\n padding-left: 40px;\n}\n\n.clear-search {\n position: absolute;\n right: 8px;\n z-index: 1;\n}\n\n.filter-controls {\n display: flex;\n gap: 1rem;\n align-items: flex-end;\n}\n\n.type-filter {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.type-filter label {\n font-size: 0.85rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.type-dropdown {\n min-width: 150px;\n}\n\n/* === Content Area === */\n.content-area {\n flex: 1;\n overflow-y: auto;\n padding: 1rem;\n}\n\n/* === Loading State === */\n.loading-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}\n\n.loading-state i {\n color: var(--mj-brand-primary);\n margin-bottom: 1rem;\n}\n\n.loading-state p {\n margin: 0;\n font-size: 1rem;\n}\n\n/* === Agents Grid === */\n.agents-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1rem;\n}\n\n.agent-card {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-bg-surface-sunken);\n border-radius: 8px;\n padding: 1rem;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n gap: 1rem;\n position: relative;\n}\n\n.agent-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.agent-card.selected {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface));\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n}\n\n.selection-indicator {\n position: absolute;\n top: 0.75rem;\n right: 0.75rem;\n font-size: 1.1rem;\n}\n\n.selection-indicator .fa-check-circle {\n color: var(--mj-status-success);\n}\n\n.selection-indicator .fa-circle {\n color: var(--mj-border-default);\n}\n\n.agent-icon {\n flex-shrink: 0;\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.agent-icon i {\n font-size: 1.5rem;\n color: var(--mj-brand-primary);\n}\n\n.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.agent-info {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name {\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 0.5rem;\n word-wrap: break-word;\n}\n\n.agent-description {\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n margin-bottom: 0.75rem;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.agent-meta {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n\n.status-badge,\n.type-badge,\n.execution-badge {\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--mj-text-inverse);\n}\n\n/* Status badge color set dynamically via style binding */\n\n.type-badge {\n background: var(--mj-brand-primary);\n}\n\n.execution-badge {\n background: var(--mj-status-warning);\n}\n\n/* === Dialog Footer === */\n.dialog-footer {\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface);\n border-top: 1px solid var(--mj-bg-surface-sunken);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.footer-left {\n display: flex;\n gap: 0.5rem;\n}\n\n.footer-right {\n display: flex;\n gap: 0.75rem;\n}\n\n.dialog-footer button {\n min-width: 100px;\n}\n\n.dialog-footer button i {\n margin-right: 0.5rem;\n}\n\n/* === Responsive Design === */\n@media (max-width: 768px) {\n .agents-grid {\n grid-template-columns: 1fr;\n }\n\n .dialog-header {\n flex-direction: column;\n gap: 1rem;\n }\n\n .header-stats {\n align-items: flex-start;\n }\n\n .controls-section {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-controls {\n justify-content: flex-start;\n }\n\n .dialog-footer {\n flex-direction: column-reverse;\n gap: 1rem;\n }\n\n .footer-left,\n .footer-right {\n width: 100%;\n justify-content: center;\n }\n}\n"] }]
|
|
464
572
|
}], () => [{ type: i0.ChangeDetectorRef }], { DialogClose: [{
|
|
465
573
|
type: Output
|
|
466
574
|
}] }); })();
|