@acorex/modules 21.0.0-next.73 → 21.0.0-next.74
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/fesm2022/acorex-modules-ai-management.mjs +48 -15
- package/fesm2022/acorex-modules-ai-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-FKvCLWhj.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-yboYQ8I-.mjs} +24 -24
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-FKvCLWhj.mjs.map → acorex-modules-assessment-management-acorex-modules-assessment-management-yboYQ8I-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-B59NvUDv.mjs → acorex-modules-assessment-management-assessment-case.entity-BBWeshSs.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-B59NvUDv.mjs.map → acorex-modules-assessment-management-assessment-case.entity-BBWeshSs.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-session-answers-view.util-DY3kcvHv.mjs → acorex-modules-assessment-management-assessment-session-answers-view.util-UCYBAHLk.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session-answers-view.util-DY3kcvHv.mjs.map → acorex-modules-assessment-management-assessment-session-answers-view.util-UCYBAHLk.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-NZgnUnIg.mjs → acorex-modules-assessment-management-assessment-session.entity-Bp_dS1Js.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-NZgnUnIg.mjs.map → acorex-modules-assessment-management-assessment-session.entity-Bp_dS1Js.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-DTpp9nGB.mjs → acorex-modules-assessment-management-fill-assessment-session.command-VivCLw2H.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-DTpp9nGB.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-VivCLw2H.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-DLN9rq0h.mjs → acorex-modules-assessment-management-preview-question.command-CKF4BjCx.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-DLN9rq0h.mjs.map → acorex-modules-assessment-management-preview-question.command-CKF4BjCx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-D5RxnsfD.mjs → acorex-modules-assessment-management-preview-questionnaire.command-B_2o4jC2.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-D5RxnsfD.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-B_2o4jC2.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-j6Pzk1UT.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-s8KcR3D0.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-j6Pzk1UT.mjs.map → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-s8KcR3D0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-C8jxKIKe.mjs → acorex-modules-assessment-management-question-bank-item.entity-Sj-5woTX.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-C8jxKIKe.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-Sj-5woTX.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-DYtzVNK8.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-ClvQ18w6.mjs} +5 -375
- package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-ClvQ18w6.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-Ca-oiaZ5.mjs → acorex-modules-assessment-management-questionnaire.entity-BbyNZvoc.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-Ca-oiaZ5.mjs.map → acorex-modules-assessment-management-questionnaire.entity-BbyNZvoc.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-review-assessment-session.command-CXSelp7y.mjs → acorex-modules-assessment-management-review-assessment-session.command-B2QViI9d.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-review-assessment-session.command-CXSelp7y.mjs.map → acorex-modules-assessment-management-review-assessment-session.command-B2QViI9d.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BQDyUTwa.mjs → acorex-modules-assessment-management-view-session-answers.command-CWdBtkn1.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BQDyUTwa.mjs.map → acorex-modules-assessment-management-view-session-answers.command-CWdBtkn1.mjs.map} +1 -1
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- package/fesm2022/{acorex-modules-content-management-acorex-modules-content-management-CVyrVwfU.mjs → acorex-modules-content-management-acorex-modules-content-management-B5zqb3b_.mjs} +5 -5
- package/fesm2022/{acorex-modules-content-management-acorex-modules-content-management-CVyrVwfU.mjs.map → acorex-modules-content-management-acorex-modules-content-management-B5zqb3b_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-content-management-permission-definition.provider-BnnCEroN.mjs → acorex-modules-content-management-permission-definition.provider-DxI6NmP4.mjs} +2 -2
- package/fesm2022/{acorex-modules-content-management-permission-definition.provider-BnnCEroN.mjs.map → acorex-modules-content-management-permission-definition.provider-DxI6NmP4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-edit.component-B3Scw9SG.mjs → acorex-modules-content-management-template-content-editor-widget-edit.component-ChmkpMy9.mjs} +3 -3
- package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-edit.component-B3Scw9SG.mjs.map → acorex-modules-content-management-template-content-editor-widget-edit.component-ChmkpMy9.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-view.component-D7EBdcU9.mjs → acorex-modules-content-management-template-content-editor-widget-view.component-LyoQmopL.mjs} +2 -2
- package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-view.component-D7EBdcU9.mjs.map → acorex-modules-content-management-template-content-editor-widget-view.component-LyoQmopL.mjs.map} +1 -1
- package/fesm2022/acorex-modules-content-management.mjs +1 -1
- package/fesm2022/{acorex-modules-conversation-acorex-modules-conversation-p9c5_MMk.mjs → acorex-modules-conversation-acorex-modules-conversation-lPw23AJc.mjs} +10 -9
- package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-lPw23AJc.mjs.map +1 -0
- package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-DQiGLMAZ.mjs → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-D0SGSQC8.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-DQiGLMAZ.mjs.map → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-D0SGSQC8.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-comments-page.component-rY_6dZ3X.mjs → acorex-modules-conversation-comments-page.component-Bqeplzuy.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-comments-page.component-rY_6dZ3X.mjs.map → acorex-modules-conversation-comments-page.component-Bqeplzuy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-Bi1MZ0AE.mjs → acorex-modules-conversation-send-assist-chat-message.command-CFwkUHCc.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-Bi1MZ0AE.mjs.map → acorex-modules-conversation-send-assist-chat-message.command-CFwkUHCc.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-1Mro9mxs.mjs → acorex-modules-conversation-start-assist-chat.command-aEOnD6ax.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-1Mro9mxs.mjs.map → acorex-modules-conversation-start-assist-chat.command-aEOnD6ax.mjs.map} +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +1 -1
- package/fesm2022/{acorex-modules-dashboard-management-acorex-modules-dashboard-management-DLOyCwM3.mjs → acorex-modules-dashboard-management-acorex-modules-dashboard-management-D2TrYnCW.mjs} +4 -4
- package/fesm2022/{acorex-modules-dashboard-management-acorex-modules-dashboard-management-DLOyCwM3.mjs.map → acorex-modules-dashboard-management-acorex-modules-dashboard-management-D2TrYnCW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-dashboard-management-index-DlrkqIge.mjs → acorex-modules-dashboard-management-index-DAQNEq43.mjs} +2 -2
- package/fesm2022/{acorex-modules-dashboard-management-index-DlrkqIge.mjs.map → acorex-modules-dashboard-management-index-DAQNEq43.mjs.map} +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +1 -1
- package/fesm2022/acorex-modules-data-management.mjs +2 -1
- package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-B8de7ifz.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-SYgMvrE2.mjs → acorex-modules-platform-management-acorex-modules-platform-management-ilmoyxAw.mjs} +95 -4442
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-ilmoyxAw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-CKiFNjU0.mjs → acorex-modules-platform-management-menu-list.component-MJCUVTho.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-CKiFNjU0.mjs.map → acorex-modules-platform-management-menu-list.component-MJCUVTho.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/{acorex-modules-task-management-acorex-modules-task-management-Dfx7mO_y.mjs → acorex-modules-task-management-acorex-modules-task-management-Bv7Ye6d1.mjs} +2 -2
- package/fesm2022/{acorex-modules-task-management-acorex-modules-task-management-Dfx7mO_y.mjs.map → acorex-modules-task-management-acorex-modules-task-management-Bv7Ye6d1.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-task-management-task-board.page-eXpBudGO.mjs → acorex-modules-task-management-task-board.page-CfgeDnBx.mjs} +3 -3
- package/fesm2022/{acorex-modules-task-management-task-board.page-eXpBudGO.mjs.map → acorex-modules-task-management-task-board.page-CfgeDnBx.mjs.map} +1 -1
- package/fesm2022/acorex-modules-task-management.mjs +1 -1
- package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-LJ8Bb-CT.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BW6kK9Av.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-index--D61tV-f.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-index-DXIQw3Ao.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-huamhFhc.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-activity-instance-rows.utils-L8W4ogSI.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-run-history-popup.component-FLqOdI2t.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-run-history-visual-tab.component-3gnqTYdJ.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-modules-ai-management.d.ts +2 -2
- package/types/acorex-modules-content-management.d.ts +2 -1
- package/types/acorex-modules-data-management.d.ts +2 -1
- package/types/acorex-modules-notification-management.d.ts +2 -1
- package/types/acorex-modules-platform-management.d.ts +3 -137
- package/types/acorex-modules-workflow-management.d.ts +2 -1
- package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-DYtzVNK8.mjs.map +0 -1
- package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-p9c5_MMk.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-SYgMvrE2.mjs.map +0 -1
|
@@ -8,7 +8,7 @@ import * as i0 from '@angular/core';
|
|
|
8
8
|
import { input, computed, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
9
9
|
import * as i2$1 from '@acorex/components/decorators';
|
|
10
10
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
11
|
-
import { b as axmSanitizeDebugFilenamePart, c as axmDownloadDebugJson, d as axmAssistSegmentDirection, e as axmParseAssistTranscriptTextEnvelope, f as axmAssistWidgetNodeFromUnknown, g as axmSyntheticEmbedMessage, h as AXMNodeMessageRendererComponent, i as AXMAssistBotFileLineComponent, j as AXMAssistSuggestionChipsComponent } from './acorex-modules-conversation-acorex-modules-conversation-
|
|
11
|
+
import { b as axmSanitizeDebugFilenamePart, c as axmDownloadDebugJson, d as axmAssistSegmentDirection, e as axmParseAssistTranscriptTextEnvelope, f as axmAssistWidgetNodeFromUnknown, g as axmSyntheticEmbedMessage, h as AXMNodeMessageRendererComponent, i as AXMAssistBotFileLineComponent, j as AXMAssistSuggestionChipsComponent } from './acorex-modules-conversation-acorex-modules-conversation-lPw23AJc.mjs';
|
|
12
12
|
import * as i1 from '@acorex/cdk/accordion';
|
|
13
13
|
import { AXAccordionCdkModule } from '@acorex/cdk/accordion';
|
|
14
14
|
import * as i5 from '@acorex/components/code-editor';
|
|
@@ -326,4 +326,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
326
326
|
}] });
|
|
327
327
|
|
|
328
328
|
export { AXMAssistDelegatedAgentDetailPopupComponent };
|
|
329
|
-
//# sourceMappingURL=acorex-modules-conversation-assist-delegated-agent-detail-popup.component-
|
|
329
|
+
//# sourceMappingURL=acorex-modules-conversation-assist-delegated-agent-detail-popup.component-D0SGSQC8.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-conversation-assist-delegated-agent-detail-popup.component-DQiGLMAZ.mjs","sources":["../../../../libs/modules/conversation/src/lib/features/chat/plugins/utils/assist-delegated-agent-detail-export.util.ts","../../../../libs/modules/conversation/src/lib/features/chat/plugins/utils/assist-delegated-agent-transcript-view.util.ts","../../../../libs/modules/conversation/src/lib/features/chat/plugins/message-renderers/assist-delegated-agent-transcript-view.component.ts","../../../../libs/modules/conversation/src/lib/features/chat/plugins/message-renderers/assist-delegated-agent-transcript-view.component.html","../../../../libs/modules/conversation/src/lib/features/chat/plugins/message-renderers/assist-delegated-agent-detail-popup.component.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport type {\n AXPAiChatMessage,\n AXPAiDelegatedAgentTranscriptRunInput,\n} from '@acorex/modules/ai-management';\n\nimport { axmDownloadDebugJson, axmSanitizeDebugFilenamePart } from './assist-debug-information.util';\n\n//#endregion\n\n//#region ---- Types ----\n\n/** JSON shape for delegated specialist detail download. */\nexport interface AXMAssistDelegatedAgentDetailExport {\n exportedAt: string;\n delegationCallId: string;\n agentName?: string;\n runInput?: AXPAiDelegatedAgentTranscriptRunInput;\n messages: AXPAiChatMessage[];\n}\n\n//#endregion\n\n//#region ---- Export ----\n\nexport function axmFormatDelegatedAgentDetailExportJson(\n delegationCallId: string,\n messages: AXPAiChatMessage[],\n runInput?: AXPAiDelegatedAgentTranscriptRunInput,\n agentName?: string,\n): string {\n const snapshot: AXMAssistDelegatedAgentDetailExport = {\n exportedAt: new Date().toISOString(),\n delegationCallId: delegationCallId.trim(),\n ...(agentName?.trim() ? { agentName: agentName.trim() } : {}),\n ...(runInput ? { runInput } : {}),\n messages,\n };\n return JSON.stringify(snapshot, null, 2);\n}\n\nexport function axmDownloadDelegatedAgentDetailJson(\n delegationCallId: string,\n messages: AXPAiChatMessage[],\n runInput?: AXPAiDelegatedAgentTranscriptRunInput,\n agentName?: string,\n): void {\n const text = axmFormatDelegatedAgentDetailExportJson(delegationCallId, messages, runInput, agentName);\n const filename = `assist-delegated-agent-${axmSanitizeDebugFilenamePart(delegationCallId)}.json`;\n axmDownloadDebugJson(filename, text);\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport type { AXMessage } from '@acorex/components/conversation2';\nimport type { AXPAiChatMessage } from '@acorex/modules/ai-management';\n\n//#endregion\n\n//#region ---- Tool result index ----\n\n/** Maps tool_call id → tool-role line carrying {@code tool_result} / {@code agent_result}. */\nexport function axmBuildToolResultByCallId(messages: AXPAiChatMessage[]): Map<string, AXPAiChatMessage> {\n const map = new Map<string, AXPAiChatMessage>();\n for (const line of messages) {\n if (line.role !== 'tool') {\n continue;\n }\n for (const seg of line.responses) {\n if (seg.type !== 'tool_result' && seg.type !== 'agent_result') {\n continue;\n }\n const callId = seg.callId?.trim();\n if (callId) {\n map.set(callId, line);\n }\n }\n }\n return map;\n}\n\n//#endregion\n\n//#region ---- Formatters ----\n\nexport function axmTryPrettyJson(raw: string): string {\n const trimmed = raw.trim();\n if (!trimmed) {\n return '';\n }\n try {\n return JSON.stringify(JSON.parse(trimmed), null, 2);\n } catch {\n return trimmed;\n }\n}\n\nexport function axmFormatTranscriptArgs(args: unknown): string {\n if (args == null) {\n return '';\n }\n if (typeof args === 'string') {\n return axmTryPrettyJson(args);\n }\n try {\n return JSON.stringify(args, null, 2);\n } catch {\n return String(args);\n }\n}\n\nexport function axmFormatTranscriptFallbackSegment(seg: unknown): string {\n try {\n return JSON.stringify(seg, null, 2);\n } catch {\n return String(seg);\n }\n}\n\n//#endregion\n\n//#region ---- Embed parent stub ----\n\n/** Minimal parent message for synthetic embed renderers inside the detail popup. */\nexport function axmDelegatedTranscriptEmbedParentStub(): AXMessage {\n return {\n id: 'assist-delegated-transcript-embed',\n conversationId: '',\n senderId: 'assist',\n type: 'text',\n payload: { type: 'text', text: '' },\n status: 'sent',\n metadata: { assistEmbed: true },\n } as unknown as AXMessage;\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXAccordionCdkModule } from '@acorex/cdk/accordion';\nimport { AXCodeEditorDefaultLanguage, AXCodeEditorModule } from '@acorex/components/code-editor';\nimport type { AXMessage, AXMessagePayload } from '@acorex/components/conversation2';\nimport { AXTextRendererComponent } from '@acorex/components/conversation2';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport type {\n AXPAiChatMessage,\n AXPAiChatResponse,\n AXPAiDelegatedAgentResultSegment,\n} from '@acorex/modules/ai-management';\nimport {\n axpAiChatToolOrAgentResultBodyJson,\n axpAiDelegatedAgentPromptPreview,\n axpAiDelegatedAgentResultSegments,\n axpAiParseSupervisorAgentToolName,\n} from '@acorex/modules/ai-management';\nimport { AXPMarkdownTemplateDirective, AXPMarkdownViewerComponent } from '@acorex/platform/layout/components';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport {\n axmAssistWidgetNodeFromUnknown,\n axmParseAssistTranscriptTextEnvelope,\n axmSyntheticEmbedMessage,\n} from '../utils/assist-bot-transcript.util';\nimport {\n axmBuildToolResultByCallId,\n axmFormatTranscriptArgs,\n axmFormatTranscriptFallbackSegment,\n axmTryPrettyJson,\n} from '../utils/assist-delegated-agent-transcript-view.util';\nimport { axmAssistSegmentDirection } from '../utils/assist-segment-direction.util';\nimport { AXMAssistBotFileLineComponent } from './assist-bot-file-line.component';\nimport { AXMAssistSuggestionChipsComponent } from '../shared/assist-suggestion-chips.component';\nimport { AXMNodeMessageRendererComponent } from './node-message-renderer.component';\n\n//#endregion\n\n//#region ---- Component ----\n\n/**\n * Read-only {@link AXPAiChatMessage} transcript (role + responses[]) for delegated specialist detail.\n */\n@Component({\n selector: 'axm-assist-delegated-agent-transcript-view',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXTextRendererComponent,\n AXMNodeMessageRendererComponent,\n AXMAssistBotFileLineComponent,\n AXMAssistSuggestionChipsComponent,\n AXAccordionCdkModule,\n AXCodeEditorModule,\n AXPMarkdownViewerComponent,\n AXPMarkdownTemplateDirective,\n FormsModule,\n AXTranslationModule,\n AsyncPipe,\n ],\n templateUrl: './assist-delegated-agent-transcript-view.component.html',\n styleUrls: [\n './assist-message-renderer.component.scss',\n './assist-delegated-agent-transcript-view.component.scss',\n ],\n})\nexport class AXMAssistDelegatedAgentTranscriptViewComponent {\n //#region ---- Inputs ----\n\n readonly messages = input<AXPAiChatMessage[]>([]);\n readonly embedParent = input.required<AXMessage>();\n readonly emptyHint = input<string | undefined>(undefined);\n readonly agentTitleById = input<Record<string, string>>({});\n\n //#endregion\n\n //#region ---- Template helpers ----\n\n protected readonly segmentDir = axmAssistSegmentDirection;\n protected readonly parseAssistLineText = axmParseAssistTranscriptTextEnvelope;\n protected readonly axmAssistWidgetNodeFromUnknown = axmAssistWidgetNodeFromUnknown;\n protected readonly isDelegatedAgentCommand = (command: string): boolean =>\n axpAiParseSupervisorAgentToolName(command) != null;\n\n //#endregion\n\n //#region ---- Computed ----\n\n readonly hasMessages = computed(() => this.messages().length > 0);\n\n readonly toolResultByCallId = computed(() => axmBuildToolResultByCallId(this.messages()));\n\n readonly displayLines = computed(() =>\n this.messages().map((line, lineIndex) => ({ line, lineIndex })),\n );\n\n //#endregion\n\n //#region ---- Segment renderers ----\n\n protected roleTranslationKey(role: AXPAiChatMessage['role']): string {\n return `@conversation:chat.assist-renderer.delegated-agent.roles.${role}`;\n }\n\n protected resolveToolDisplayTitle(command: string): string {\n const agentId = axpAiParseSupervisorAgentToolName(command);\n if (agentId) {\n const title = this.agentTitleById()[agentId];\n if (title?.trim()) {\n return title.trim();\n }\n return agentId;\n }\n return command?.trim() || 'Tool';\n }\n\n protected toolResultForCallId(callId: string | undefined): AXPAiChatMessage | null {\n if (!callId?.trim()) {\n return null;\n }\n return this.toolResultByCallId().get(callId.trim()) ?? null;\n }\n\n protected delegatedAgentOutcomeSegmentsForCall(res: AXPAiChatMessage | null): AXPAiDelegatedAgentResultSegment[] {\n if (!res) {\n return [];\n }\n const raw = axpAiChatToolOrAgentResultBodyJson(res);\n if (!raw.trim()) {\n return [];\n }\n try {\n const o = JSON.parse(raw) as Record<string, unknown>;\n if (o['success'] === false) {\n return [];\n }\n return axpAiDelegatedAgentResultSegments(o as { success?: boolean; data?: { responses?: AXPAiDelegatedAgentResultSegment[] } });\n } catch {\n return [];\n }\n }\n\n protected delegatedPromptPreview(argumentsValue: unknown): string {\n return axpAiDelegatedAgentPromptPreview(argumentsValue);\n }\n\n protected formatArgs(args: unknown): string {\n return axmFormatTranscriptArgs(args);\n }\n\n protected formatToolResultBody(line: AXPAiChatMessage): string {\n return axmTryPrettyJson(axpAiChatToolOrAgentResultBodyJson(line));\n }\n\n protected formatFallbackSegment(seg: AXPAiChatResponse): string {\n return axmFormatTranscriptFallbackSegment(seg);\n }\n\n protected syntheticTextMessage(lineIndex: number, segIndex: number, text: string): AXMessage {\n return axmSyntheticEmbedMessage(this.embedParent(), `dt-${lineIndex}-${segIndex}`, {\n type: 'text',\n payload: { type: 'text', text },\n });\n }\n\n protected syntheticNodeEmbedMessage(lineIndex: number, segIndex: number, content: unknown): AXMessage {\n return axmSyntheticEmbedMessage(this.embedParent(), `dn-${lineIndex}-${segIndex}`, {\n type: 'node',\n payload: { type: 'node', content } as unknown as AXMessagePayload,\n });\n }\n\n protected markdownCodeLanguage(segment: unknown): AXCodeEditorDefaultLanguage {\n if (this.isMarkdownCodeSegment(segment) && segment.language.trim()) {\n return segment.language as AXCodeEditorDefaultLanguage;\n }\n return 'javascript';\n }\n\n protected markdownCodeValue(segment: unknown): string {\n if (this.isMarkdownCodeSegment(segment)) {\n return segment.code;\n }\n return '';\n }\n\n private isMarkdownCodeSegment(segment: unknown): segment is { type: 'code'; language: string; code: string } {\n if (!segment || typeof segment !== 'object') {\n return false;\n }\n const candidate = segment as { type?: unknown; language?: unknown; code?: unknown };\n return candidate.type === 'code' && typeof candidate.language === 'string' && typeof candidate.code === 'string';\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"axm-delegated-transcript\">\n @if (!hasMessages() && emptyHint()) {\n <p class=\"axm-delegated-transcript__empty\">{{ emptyHint() }}</p>\n } @else {\n <div class=\"axm-assist-bot axm-delegated-transcript__lines\" role=\"list\">\n <div class=\"axm-assist-renderer__accordion-group\" axAccordionGroup [accordion]=\"false\">\n @for (item of displayLines(); track item.lineIndex) {\n @let line = item.line;\n @let lineIndex = item.lineIndex;\n <div\n class=\"axm-delegated-transcript__line axm-assist-bot__line axm-assist-renderer__collapse-shell\"\n axAccordionItem\n #roleSection=\"axAccordionItem\"\n role=\"listitem\"\n [class.axm-assist-bot__line--user]=\"line.role === 'user'\"\n [class.axm-assist-bot__line--tool-role]=\"line.role === 'tool'\"\n [attr.data-role]=\"line.role\"\n >\n <header\n class=\"axm-delegated-transcript__role axm-assist-renderer__accordion-header\"\n axAccordionItemHeader\n >\n <span class=\"axm-assist-renderer__accordion-header-main\">\n <span class=\"axm-assist-renderer__accordion-header-title\">\n <i\n class=\"fa-light fa-chevron-down axm-assist-renderer__thinking-chevron\"\n [class.axm-assist-renderer__thinking-chevron--expanded]=\"!roleSection.isCollapsed()\"\n aria-hidden=\"true\"\n ></i>\n <span>{{ roleTranslationKey(line.role) | translate | async }}</span>\n </span>\n @if (line.delegatedReflection) {\n <span class=\"axm-delegated-transcript__reflection-badge\">{{\n '@conversation:chat.assist-renderer.delegated-agent.reflection' | translate | async\n }}</span>\n }\n @if (line.name?.trim()) {\n <span class=\"axm-delegated-transcript__name\">{{ line.name }}</span>\n }\n </span>\n </header>\n\n <div axAccordionItemContent>\n <div class=\"axm-assist-renderer__collapse-body axm-delegated-transcript__segments\">\n @for (seg of line.responses; track segIndex; let segIndex = $index) {\n @if (line.role === 'user' && seg.type === 'file') {\n <axm-assist-bot-file-line\n [parentMessage]=\"embedParent()\"\n [fileId]=\"seg.content.fileId\"\n />\n } @else if (line.role === 'user' && seg.type === 'text') {\n <div class=\"axm-assist-bot__segment\" [attr.dir]=\"segmentDir(seg.content)\">\n <ax-conversation-text-renderer [message]=\"syntheticTextMessage(lineIndex, segIndex, seg.content)\" />\n </div>\n } @else if (line.role === 'assistant' && seg.type === 'think') {\n <details class=\"axm-delegated-transcript__think\" open>\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(seg.content)\"\n >\n {{ seg.content }}\n </div>\n </details>\n } @else if (line.role === 'assistant' && seg.type === 'text') {\n @let parsedLine = parseAssistLineText(seg.content);\n @if (parsedLine.thinking?.trim()) {\n <details class=\"axm-delegated-transcript__think\" open>\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(parsedLine.thinking ?? '')\"\n >\n {{ parsedLine.thinking }}\n </div>\n </details>\n }\n @if (parsedLine.body.trim()) {\n <div\n class=\"axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(parsedLine.body)\"\n >\n <axp-markdown-viewer [markdown]=\"parsedLine.body\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </ng-template>\n </axp-markdown-viewer>\n </div>\n }\n } @else if (\n line.role === 'assistant' &&\n (seg.type === 'agent' || seg.type === 'tool') &&\n isDelegatedAgentCommand(seg.content.command)\n ) {\n <div\n class=\"axm-assist-renderer__tool-card axm-assist-renderer__collapse-shell axm-delegated-transcript__tool-block\"\n >\n <div class=\"axm-assist-renderer__accordion-header axm-delegated-transcript__tool-header\">\n <span class=\"axm-assist-renderer__accordion-header-title\">\n <i class=\"fa-light fa-people-group axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ resolveToolDisplayTitle(seg.content.command) }}\n </span>\n <span class=\"axm-assist-renderer__badge axm-assist-renderer__badge--primary\">{{\n '@conversation:chat.assist-renderer.badges.agent' | translate | async\n }}</span>\n </div>\n <div class=\"axm-assist-renderer__collapse-body\">\n <div class=\"axm-assist-renderer__tool-body\">\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.agent-prompt' | translate | async }}\n </div>\n <div\n class=\"axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(delegatedPromptPreview(seg.content.arguments))\"\n >\n {{ delegatedPromptPreview(seg.content.arguments) }}\n </div>\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.input' | translate | async }}\n </div>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatArgs(seg.content.arguments)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n @if (toolResultForCallId(seg.callId); as resultLine) {\n @let outcomeSegs = delegatedAgentOutcomeSegmentsForCall(resultLine);\n @if (outcomeSegs.length > 0) {\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.agent-answer' | translate | async }}\n </div>\n @for (outSeg of outcomeSegs; track $index) {\n @switch (outSeg.type) {\n @case ('text') {\n @let parsedOut = parseAssistLineText(outSeg.content);\n @if (parsedOut.body.trim()) {\n <div\n class=\"axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(parsedOut.body)\"\n >\n <axp-markdown-viewer [markdown]=\"parsedOut.body\" />\n </div>\n }\n }\n @case ('think') {\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(outSeg.content)\"\n >\n {{ outSeg.content }}\n </div>\n }\n @case ('file') {\n <axm-assist-bot-file-line\n [parentMessage]=\"embedParent()\"\n [fileId]=\"outSeg.content.fileId\"\n />\n }\n @case ('node') {\n @if (axmAssistWidgetNodeFromUnknown(outSeg.content); as widgetNode) {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeEmbedMessage(lineIndex, segIndex * 1000 + $index, outSeg.content)\n \"\n />\n </div>\n }\n }\n @case ('followUp') {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-assist-suggestion-chips [items]=\"outSeg.content\" />\n </div>\n }\n }\n }\n } @else {\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.output' | translate | async }}\n </div>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatToolResultBody(resultLine)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n }\n }\n </div>\n </div>\n </div>\n } @else if (line.role === 'assistant' && (seg.type === 'agent' || seg.type === 'tool')) {\n <div\n class=\"axm-assist-renderer__tool-card axm-assist-renderer__collapse-shell axm-delegated-transcript__tool-block\"\n >\n <div class=\"axm-assist-renderer__accordion-header axm-delegated-transcript__tool-header\">\n <span class=\"axm-assist-renderer__accordion-header-title\">\n <i\n class=\"fa-light fa-screwdriver-wrench axm-assist-renderer__tool-title-icon\"\n aria-hidden=\"true\"\n ></i>\n {{ resolveToolDisplayTitle(seg.content.command) }}\n </span>\n <span class=\"axm-assist-renderer__badge axm-assist-renderer__badge--primary\">{{\n '@conversation:chat.assist-renderer.badges.tool' | translate | async\n }}</span>\n </div>\n <div class=\"axm-assist-renderer__collapse-body\">\n <div class=\"axm-assist-renderer__tool-body\">\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.input' | translate | async }}\n </div>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatArgs(seg.content.arguments)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n @if (toolResultForCallId(seg.callId); as resultLine) {\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.output' | translate | async }}\n </div>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatToolResultBody(resultLine)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n }\n </div>\n </div>\n </div>\n } @else if (line.role === 'assistant' && seg.type === 'node') {\n @if (axmAssistWidgetNodeFromUnknown(seg.content)) {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"syntheticNodeEmbedMessage(lineIndex, segIndex, seg.content)\"\n />\n </div>\n }\n } @else if (line.role === 'assistant' && seg.type === 'file') {\n <axm-assist-bot-file-line\n [parentMessage]=\"embedParent()\"\n [fileId]=\"seg.content.fileId\"\n />\n } @else if (line.role === 'tool' && (seg.type === 'tool_result' || seg.type === 'agent_result')) {\n <!-- Shown on the matching tool/agent block above -->\n } @else if (line.role === 'system' && seg.type === 'text') {\n <div class=\"axm-assist-bot__segment\" [attr.dir]=\"segmentDir(seg.content)\">\n <ax-conversation-text-renderer [message]=\"syntheticTextMessage(lineIndex, segIndex, seg.content)\" />\n </div>\n } @else {\n <div\n class=\"axm-assist-bot__fallback axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(formatFallbackSegment(seg))\"\n >\n {{ formatFallbackSegment(seg) }}\n </div>\n }\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n</div>\n","//#region ---- Imports ----\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport type { AXPAiChatMessage, AXPAiDelegatedAgentTranscriptRunInput } from '@acorex/modules/ai-management';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { axmDownloadDelegatedAgentDetailJson } from '../utils/assist-delegated-agent-detail-export.util';\nimport { axmDelegatedTranscriptEmbedParentStub } from '../utils/assist-delegated-agent-transcript-view.util';\nimport { AXMAssistDelegatedAgentTranscriptViewComponent } from './assist-delegated-agent-transcript-view.component';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMAssistDelegatedAgentDetailPopupData {\n delegationCallId: string;\n messages: AXPAiChatMessage[];\n runInput?: AXPAiDelegatedAgentTranscriptRunInput;\n agentName?: string;\n emptyHint?: string;\n agentTitleById?: Record<string, string>;\n}\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-assist-delegated-agent-detail-popup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXMAssistDelegatedAgentTranscriptViewComponent,\n AXButtonModule,\n AXTranslationModule,\n AsyncPipe,\n AXDecoratorModule,\n ],\n template: `\n <div class=\"axm-assist-delegated-detail-popup\">\n <axm-assist-delegated-agent-transcript-view\n [messages]=\"messages\"\n [embedParent]=\"embedParent\"\n [emptyHint]=\"emptyHint\"\n [agentTitleById]=\"agentTitleById\"\n />\n <ax-footer>\n <ax-suffix>\n <ax-button\n look=\"outline\"\n color=\"primary\"\n icon=\"fa-light fa-download\"\n [text]=\"'@conversation:chat.assist-renderer.delegated-agent.download-json' | translate | async\"\n [disabled]=\"!messages.length\"\n (onClick)=\"downloadJson()\"\n ></ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'@general:actions.close.title' | translate | async\"\n (onClick)=\"close()\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n </div>\n `,\n styles: [\n `\n .axm-assist-delegated-detail-popup {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n min-block-size: 0;\n }\n\n .axm-assist-delegated-detail-popup ax-footer ax-suffix {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n `,\n ],\n})\nexport class AXMAssistDelegatedAgentDetailPopupComponent extends AXBasePageComponent {\n /** Set by {@link AXPopupService} from `data`. */\n delegationCallId = '';\n\n messages: AXPAiChatMessage[] = [];\n\n runInput?: AXPAiDelegatedAgentTranscriptRunInput;\n\n agentName?: string;\n\n emptyHint?: string;\n\n agentTitleById: Record<string, string> = {};\n\n embedParent = axmDelegatedTranscriptEmbedParentStub();\n\n protected downloadJson(): void {\n axmDownloadDelegatedAgentDetailJson(\n this.delegationCallId,\n this.messages,\n this.runInput,\n this.agentName,\n );\n }\n}\n\n//#endregion\n"],"names":["i2","i3","i4","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-modules-conversation-assist-delegated-agent-detail-popup.component-D0SGSQC8.mjs","sources":["../../../../libs/modules/conversation/src/lib/features/chat/plugins/utils/assist-delegated-agent-detail-export.util.ts","../../../../libs/modules/conversation/src/lib/features/chat/plugins/utils/assist-delegated-agent-transcript-view.util.ts","../../../../libs/modules/conversation/src/lib/features/chat/plugins/message-renderers/assist-delegated-agent-transcript-view.component.ts","../../../../libs/modules/conversation/src/lib/features/chat/plugins/message-renderers/assist-delegated-agent-transcript-view.component.html","../../../../libs/modules/conversation/src/lib/features/chat/plugins/message-renderers/assist-delegated-agent-detail-popup.component.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport type {\n AXPAiChatMessage,\n AXPAiDelegatedAgentTranscriptRunInput,\n} from '@acorex/modules/ai-management';\n\nimport { axmDownloadDebugJson, axmSanitizeDebugFilenamePart } from './assist-debug-information.util';\n\n//#endregion\n\n//#region ---- Types ----\n\n/** JSON shape for delegated specialist detail download. */\nexport interface AXMAssistDelegatedAgentDetailExport {\n exportedAt: string;\n delegationCallId: string;\n agentName?: string;\n runInput?: AXPAiDelegatedAgentTranscriptRunInput;\n messages: AXPAiChatMessage[];\n}\n\n//#endregion\n\n//#region ---- Export ----\n\nexport function axmFormatDelegatedAgentDetailExportJson(\n delegationCallId: string,\n messages: AXPAiChatMessage[],\n runInput?: AXPAiDelegatedAgentTranscriptRunInput,\n agentName?: string,\n): string {\n const snapshot: AXMAssistDelegatedAgentDetailExport = {\n exportedAt: new Date().toISOString(),\n delegationCallId: delegationCallId.trim(),\n ...(agentName?.trim() ? { agentName: agentName.trim() } : {}),\n ...(runInput ? { runInput } : {}),\n messages,\n };\n return JSON.stringify(snapshot, null, 2);\n}\n\nexport function axmDownloadDelegatedAgentDetailJson(\n delegationCallId: string,\n messages: AXPAiChatMessage[],\n runInput?: AXPAiDelegatedAgentTranscriptRunInput,\n agentName?: string,\n): void {\n const text = axmFormatDelegatedAgentDetailExportJson(delegationCallId, messages, runInput, agentName);\n const filename = `assist-delegated-agent-${axmSanitizeDebugFilenamePart(delegationCallId)}.json`;\n axmDownloadDebugJson(filename, text);\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport type { AXMessage } from '@acorex/components/conversation2';\nimport type { AXPAiChatMessage } from '@acorex/modules/ai-management';\n\n//#endregion\n\n//#region ---- Tool result index ----\n\n/** Maps tool_call id → tool-role line carrying {@code tool_result} / {@code agent_result}. */\nexport function axmBuildToolResultByCallId(messages: AXPAiChatMessage[]): Map<string, AXPAiChatMessage> {\n const map = new Map<string, AXPAiChatMessage>();\n for (const line of messages) {\n if (line.role !== 'tool') {\n continue;\n }\n for (const seg of line.responses) {\n if (seg.type !== 'tool_result' && seg.type !== 'agent_result') {\n continue;\n }\n const callId = seg.callId?.trim();\n if (callId) {\n map.set(callId, line);\n }\n }\n }\n return map;\n}\n\n//#endregion\n\n//#region ---- Formatters ----\n\nexport function axmTryPrettyJson(raw: string): string {\n const trimmed = raw.trim();\n if (!trimmed) {\n return '';\n }\n try {\n return JSON.stringify(JSON.parse(trimmed), null, 2);\n } catch {\n return trimmed;\n }\n}\n\nexport function axmFormatTranscriptArgs(args: unknown): string {\n if (args == null) {\n return '';\n }\n if (typeof args === 'string') {\n return axmTryPrettyJson(args);\n }\n try {\n return JSON.stringify(args, null, 2);\n } catch {\n return String(args);\n }\n}\n\nexport function axmFormatTranscriptFallbackSegment(seg: unknown): string {\n try {\n return JSON.stringify(seg, null, 2);\n } catch {\n return String(seg);\n }\n}\n\n//#endregion\n\n//#region ---- Embed parent stub ----\n\n/** Minimal parent message for synthetic embed renderers inside the detail popup. */\nexport function axmDelegatedTranscriptEmbedParentStub(): AXMessage {\n return {\n id: 'assist-delegated-transcript-embed',\n conversationId: '',\n senderId: 'assist',\n type: 'text',\n payload: { type: 'text', text: '' },\n status: 'sent',\n metadata: { assistEmbed: true },\n } as unknown as AXMessage;\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXAccordionCdkModule } from '@acorex/cdk/accordion';\nimport { AXCodeEditorDefaultLanguage, AXCodeEditorModule } from '@acorex/components/code-editor';\nimport type { AXMessage, AXMessagePayload } from '@acorex/components/conversation2';\nimport { AXTextRendererComponent } from '@acorex/components/conversation2';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport type {\n AXPAiChatMessage,\n AXPAiChatResponse,\n AXPAiDelegatedAgentResultSegment,\n} from '@acorex/modules/ai-management';\nimport {\n axpAiChatToolOrAgentResultBodyJson,\n axpAiDelegatedAgentPromptPreview,\n axpAiDelegatedAgentResultSegments,\n axpAiParseSupervisorAgentToolName,\n} from '@acorex/modules/ai-management';\nimport { AXPMarkdownTemplateDirective, AXPMarkdownViewerComponent } from '@acorex/platform/layout/components';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport {\n axmAssistWidgetNodeFromUnknown,\n axmParseAssistTranscriptTextEnvelope,\n axmSyntheticEmbedMessage,\n} from '../utils/assist-bot-transcript.util';\nimport {\n axmBuildToolResultByCallId,\n axmFormatTranscriptArgs,\n axmFormatTranscriptFallbackSegment,\n axmTryPrettyJson,\n} from '../utils/assist-delegated-agent-transcript-view.util';\nimport { axmAssistSegmentDirection } from '../utils/assist-segment-direction.util';\nimport { AXMAssistBotFileLineComponent } from './assist-bot-file-line.component';\nimport { AXMAssistSuggestionChipsComponent } from '../shared/assist-suggestion-chips.component';\nimport { AXMNodeMessageRendererComponent } from './node-message-renderer.component';\n\n//#endregion\n\n//#region ---- Component ----\n\n/**\n * Read-only {@link AXPAiChatMessage} transcript (role + responses[]) for delegated specialist detail.\n */\n@Component({\n selector: 'axm-assist-delegated-agent-transcript-view',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXTextRendererComponent,\n AXMNodeMessageRendererComponent,\n AXMAssistBotFileLineComponent,\n AXMAssistSuggestionChipsComponent,\n AXAccordionCdkModule,\n AXCodeEditorModule,\n AXPMarkdownViewerComponent,\n AXPMarkdownTemplateDirective,\n FormsModule,\n AXTranslationModule,\n AsyncPipe,\n ],\n templateUrl: './assist-delegated-agent-transcript-view.component.html',\n styleUrls: [\n './assist-message-renderer.component.scss',\n './assist-delegated-agent-transcript-view.component.scss',\n ],\n})\nexport class AXMAssistDelegatedAgentTranscriptViewComponent {\n //#region ---- Inputs ----\n\n readonly messages = input<AXPAiChatMessage[]>([]);\n readonly embedParent = input.required<AXMessage>();\n readonly emptyHint = input<string | undefined>(undefined);\n readonly agentTitleById = input<Record<string, string>>({});\n\n //#endregion\n\n //#region ---- Template helpers ----\n\n protected readonly segmentDir = axmAssistSegmentDirection;\n protected readonly parseAssistLineText = axmParseAssistTranscriptTextEnvelope;\n protected readonly axmAssistWidgetNodeFromUnknown = axmAssistWidgetNodeFromUnknown;\n protected readonly isDelegatedAgentCommand = (command: string): boolean =>\n axpAiParseSupervisorAgentToolName(command) != null;\n\n //#endregion\n\n //#region ---- Computed ----\n\n readonly hasMessages = computed(() => this.messages().length > 0);\n\n readonly toolResultByCallId = computed(() => axmBuildToolResultByCallId(this.messages()));\n\n readonly displayLines = computed(() =>\n this.messages().map((line, lineIndex) => ({ line, lineIndex })),\n );\n\n //#endregion\n\n //#region ---- Segment renderers ----\n\n protected roleTranslationKey(role: AXPAiChatMessage['role']): string {\n return `@conversation:chat.assist-renderer.delegated-agent.roles.${role}`;\n }\n\n protected resolveToolDisplayTitle(command: string): string {\n const agentId = axpAiParseSupervisorAgentToolName(command);\n if (agentId) {\n const title = this.agentTitleById()[agentId];\n if (title?.trim()) {\n return title.trim();\n }\n return agentId;\n }\n return command?.trim() || 'Tool';\n }\n\n protected toolResultForCallId(callId: string | undefined): AXPAiChatMessage | null {\n if (!callId?.trim()) {\n return null;\n }\n return this.toolResultByCallId().get(callId.trim()) ?? null;\n }\n\n protected delegatedAgentOutcomeSegmentsForCall(res: AXPAiChatMessage | null): AXPAiDelegatedAgentResultSegment[] {\n if (!res) {\n return [];\n }\n const raw = axpAiChatToolOrAgentResultBodyJson(res);\n if (!raw.trim()) {\n return [];\n }\n try {\n const o = JSON.parse(raw) as Record<string, unknown>;\n if (o['success'] === false) {\n return [];\n }\n return axpAiDelegatedAgentResultSegments(o as { success?: boolean; data?: { responses?: AXPAiDelegatedAgentResultSegment[] } });\n } catch {\n return [];\n }\n }\n\n protected delegatedPromptPreview(argumentsValue: unknown): string {\n return axpAiDelegatedAgentPromptPreview(argumentsValue);\n }\n\n protected formatArgs(args: unknown): string {\n return axmFormatTranscriptArgs(args);\n }\n\n protected formatToolResultBody(line: AXPAiChatMessage): string {\n return axmTryPrettyJson(axpAiChatToolOrAgentResultBodyJson(line));\n }\n\n protected formatFallbackSegment(seg: AXPAiChatResponse): string {\n return axmFormatTranscriptFallbackSegment(seg);\n }\n\n protected syntheticTextMessage(lineIndex: number, segIndex: number, text: string): AXMessage {\n return axmSyntheticEmbedMessage(this.embedParent(), `dt-${lineIndex}-${segIndex}`, {\n type: 'text',\n payload: { type: 'text', text },\n });\n }\n\n protected syntheticNodeEmbedMessage(lineIndex: number, segIndex: number, content: unknown): AXMessage {\n return axmSyntheticEmbedMessage(this.embedParent(), `dn-${lineIndex}-${segIndex}`, {\n type: 'node',\n payload: { type: 'node', content } as unknown as AXMessagePayload,\n });\n }\n\n protected markdownCodeLanguage(segment: unknown): AXCodeEditorDefaultLanguage {\n if (this.isMarkdownCodeSegment(segment) && segment.language.trim()) {\n return segment.language as AXCodeEditorDefaultLanguage;\n }\n return 'javascript';\n }\n\n protected markdownCodeValue(segment: unknown): string {\n if (this.isMarkdownCodeSegment(segment)) {\n return segment.code;\n }\n return '';\n }\n\n private isMarkdownCodeSegment(segment: unknown): segment is { type: 'code'; language: string; code: string } {\n if (!segment || typeof segment !== 'object') {\n return false;\n }\n const candidate = segment as { type?: unknown; language?: unknown; code?: unknown };\n return candidate.type === 'code' && typeof candidate.language === 'string' && typeof candidate.code === 'string';\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"axm-delegated-transcript\">\n @if (!hasMessages() && emptyHint()) {\n <p class=\"axm-delegated-transcript__empty\">{{ emptyHint() }}</p>\n } @else {\n <div class=\"axm-assist-bot axm-delegated-transcript__lines\" role=\"list\">\n <div class=\"axm-assist-renderer__accordion-group\" axAccordionGroup [accordion]=\"false\">\n @for (item of displayLines(); track item.lineIndex) {\n @let line = item.line;\n @let lineIndex = item.lineIndex;\n <div\n class=\"axm-delegated-transcript__line axm-assist-bot__line axm-assist-renderer__collapse-shell\"\n axAccordionItem\n #roleSection=\"axAccordionItem\"\n role=\"listitem\"\n [class.axm-assist-bot__line--user]=\"line.role === 'user'\"\n [class.axm-assist-bot__line--tool-role]=\"line.role === 'tool'\"\n [attr.data-role]=\"line.role\"\n >\n <header\n class=\"axm-delegated-transcript__role axm-assist-renderer__accordion-header\"\n axAccordionItemHeader\n >\n <span class=\"axm-assist-renderer__accordion-header-main\">\n <span class=\"axm-assist-renderer__accordion-header-title\">\n <i\n class=\"fa-light fa-chevron-down axm-assist-renderer__thinking-chevron\"\n [class.axm-assist-renderer__thinking-chevron--expanded]=\"!roleSection.isCollapsed()\"\n aria-hidden=\"true\"\n ></i>\n <span>{{ roleTranslationKey(line.role) | translate | async }}</span>\n </span>\n @if (line.delegatedReflection) {\n <span class=\"axm-delegated-transcript__reflection-badge\">{{\n '@conversation:chat.assist-renderer.delegated-agent.reflection' | translate | async\n }}</span>\n }\n @if (line.name?.trim()) {\n <span class=\"axm-delegated-transcript__name\">{{ line.name }}</span>\n }\n </span>\n </header>\n\n <div axAccordionItemContent>\n <div class=\"axm-assist-renderer__collapse-body axm-delegated-transcript__segments\">\n @for (seg of line.responses; track segIndex; let segIndex = $index) {\n @if (line.role === 'user' && seg.type === 'file') {\n <axm-assist-bot-file-line\n [parentMessage]=\"embedParent()\"\n [fileId]=\"seg.content.fileId\"\n />\n } @else if (line.role === 'user' && seg.type === 'text') {\n <div class=\"axm-assist-bot__segment\" [attr.dir]=\"segmentDir(seg.content)\">\n <ax-conversation-text-renderer [message]=\"syntheticTextMessage(lineIndex, segIndex, seg.content)\" />\n </div>\n } @else if (line.role === 'assistant' && seg.type === 'think') {\n <details class=\"axm-delegated-transcript__think\" open>\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(seg.content)\"\n >\n {{ seg.content }}\n </div>\n </details>\n } @else if (line.role === 'assistant' && seg.type === 'text') {\n @let parsedLine = parseAssistLineText(seg.content);\n @if (parsedLine.thinking?.trim()) {\n <details class=\"axm-delegated-transcript__think\" open>\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(parsedLine.thinking ?? '')\"\n >\n {{ parsedLine.thinking }}\n </div>\n </details>\n }\n @if (parsedLine.body.trim()) {\n <div\n class=\"axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(parsedLine.body)\"\n >\n <axp-markdown-viewer [markdown]=\"parsedLine.body\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </ng-template>\n </axp-markdown-viewer>\n </div>\n }\n } @else if (\n line.role === 'assistant' &&\n (seg.type === 'agent' || seg.type === 'tool') &&\n isDelegatedAgentCommand(seg.content.command)\n ) {\n <div\n class=\"axm-assist-renderer__tool-card axm-assist-renderer__collapse-shell axm-delegated-transcript__tool-block\"\n >\n <div class=\"axm-assist-renderer__accordion-header axm-delegated-transcript__tool-header\">\n <span class=\"axm-assist-renderer__accordion-header-title\">\n <i class=\"fa-light fa-people-group axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ resolveToolDisplayTitle(seg.content.command) }}\n </span>\n <span class=\"axm-assist-renderer__badge axm-assist-renderer__badge--primary\">{{\n '@conversation:chat.assist-renderer.badges.agent' | translate | async\n }}</span>\n </div>\n <div class=\"axm-assist-renderer__collapse-body\">\n <div class=\"axm-assist-renderer__tool-body\">\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.agent-prompt' | translate | async }}\n </div>\n <div\n class=\"axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(delegatedPromptPreview(seg.content.arguments))\"\n >\n {{ delegatedPromptPreview(seg.content.arguments) }}\n </div>\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.input' | translate | async }}\n </div>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatArgs(seg.content.arguments)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n @if (toolResultForCallId(seg.callId); as resultLine) {\n @let outcomeSegs = delegatedAgentOutcomeSegmentsForCall(resultLine);\n @if (outcomeSegs.length > 0) {\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.agent-answer' | translate | async }}\n </div>\n @for (outSeg of outcomeSegs; track $index) {\n @switch (outSeg.type) {\n @case ('text') {\n @let parsedOut = parseAssistLineText(outSeg.content);\n @if (parsedOut.body.trim()) {\n <div\n class=\"axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(parsedOut.body)\"\n >\n <axp-markdown-viewer [markdown]=\"parsedOut.body\" />\n </div>\n }\n }\n @case ('think') {\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(outSeg.content)\"\n >\n {{ outSeg.content }}\n </div>\n }\n @case ('file') {\n <axm-assist-bot-file-line\n [parentMessage]=\"embedParent()\"\n [fileId]=\"outSeg.content.fileId\"\n />\n }\n @case ('node') {\n @if (axmAssistWidgetNodeFromUnknown(outSeg.content); as widgetNode) {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeEmbedMessage(lineIndex, segIndex * 1000 + $index, outSeg.content)\n \"\n />\n </div>\n }\n }\n @case ('followUp') {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-assist-suggestion-chips [items]=\"outSeg.content\" />\n </div>\n }\n }\n }\n } @else {\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.output' | translate | async }}\n </div>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatToolResultBody(resultLine)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n }\n }\n </div>\n </div>\n </div>\n } @else if (line.role === 'assistant' && (seg.type === 'agent' || seg.type === 'tool')) {\n <div\n class=\"axm-assist-renderer__tool-card axm-assist-renderer__collapse-shell axm-delegated-transcript__tool-block\"\n >\n <div class=\"axm-assist-renderer__accordion-header axm-delegated-transcript__tool-header\">\n <span class=\"axm-assist-renderer__accordion-header-title\">\n <i\n class=\"fa-light fa-screwdriver-wrench axm-assist-renderer__tool-title-icon\"\n aria-hidden=\"true\"\n ></i>\n {{ resolveToolDisplayTitle(seg.content.command) }}\n </span>\n <span class=\"axm-assist-renderer__badge axm-assist-renderer__badge--primary\">{{\n '@conversation:chat.assist-renderer.badges.tool' | translate | async\n }}</span>\n </div>\n <div class=\"axm-assist-renderer__collapse-body\">\n <div class=\"axm-assist-renderer__tool-body\">\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.input' | translate | async }}\n </div>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatArgs(seg.content.arguments)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n @if (toolResultForCallId(seg.callId); as resultLine) {\n <div class=\"axm-assist-renderer__tool-section-label\">\n {{ '@conversation:chat.assist-renderer.sections.output' | translate | async }}\n </div>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatToolResultBody(resultLine)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n }\n </div>\n </div>\n </div>\n } @else if (line.role === 'assistant' && seg.type === 'node') {\n @if (axmAssistWidgetNodeFromUnknown(seg.content)) {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"syntheticNodeEmbedMessage(lineIndex, segIndex, seg.content)\"\n />\n </div>\n }\n } @else if (line.role === 'assistant' && seg.type === 'file') {\n <axm-assist-bot-file-line\n [parentMessage]=\"embedParent()\"\n [fileId]=\"seg.content.fileId\"\n />\n } @else if (line.role === 'tool' && (seg.type === 'tool_result' || seg.type === 'agent_result')) {\n <!-- Shown on the matching tool/agent block above -->\n } @else if (line.role === 'system' && seg.type === 'text') {\n <div class=\"axm-assist-bot__segment\" [attr.dir]=\"segmentDir(seg.content)\">\n <ax-conversation-text-renderer [message]=\"syntheticTextMessage(lineIndex, segIndex, seg.content)\" />\n </div>\n } @else {\n <div\n class=\"axm-assist-bot__fallback axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(formatFallbackSegment(seg))\"\n >\n {{ formatFallbackSegment(seg) }}\n </div>\n }\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n</div>\n","//#region ---- Imports ----\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport type { AXPAiChatMessage, AXPAiDelegatedAgentTranscriptRunInput } from '@acorex/modules/ai-management';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { axmDownloadDelegatedAgentDetailJson } from '../utils/assist-delegated-agent-detail-export.util';\nimport { axmDelegatedTranscriptEmbedParentStub } from '../utils/assist-delegated-agent-transcript-view.util';\nimport { AXMAssistDelegatedAgentTranscriptViewComponent } from './assist-delegated-agent-transcript-view.component';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMAssistDelegatedAgentDetailPopupData {\n delegationCallId: string;\n messages: AXPAiChatMessage[];\n runInput?: AXPAiDelegatedAgentTranscriptRunInput;\n agentName?: string;\n emptyHint?: string;\n agentTitleById?: Record<string, string>;\n}\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-assist-delegated-agent-detail-popup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXMAssistDelegatedAgentTranscriptViewComponent,\n AXButtonModule,\n AXTranslationModule,\n AsyncPipe,\n AXDecoratorModule,\n ],\n template: `\n <div class=\"axm-assist-delegated-detail-popup\">\n <axm-assist-delegated-agent-transcript-view\n [messages]=\"messages\"\n [embedParent]=\"embedParent\"\n [emptyHint]=\"emptyHint\"\n [agentTitleById]=\"agentTitleById\"\n />\n <ax-footer>\n <ax-suffix>\n <ax-button\n look=\"outline\"\n color=\"primary\"\n icon=\"fa-light fa-download\"\n [text]=\"'@conversation:chat.assist-renderer.delegated-agent.download-json' | translate | async\"\n [disabled]=\"!messages.length\"\n (onClick)=\"downloadJson()\"\n ></ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'@general:actions.close.title' | translate | async\"\n (onClick)=\"close()\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n </div>\n `,\n styles: [\n `\n .axm-assist-delegated-detail-popup {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n min-block-size: 0;\n }\n\n .axm-assist-delegated-detail-popup ax-footer ax-suffix {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n `,\n ],\n})\nexport class AXMAssistDelegatedAgentDetailPopupComponent extends AXBasePageComponent {\n /** Set by {@link AXPopupService} from `data`. */\n delegationCallId = '';\n\n messages: AXPAiChatMessage[] = [];\n\n runInput?: AXPAiDelegatedAgentTranscriptRunInput;\n\n agentName?: string;\n\n emptyHint?: string;\n\n agentTitleById: Record<string, string> = {};\n\n embedParent = axmDelegatedTranscriptEmbedParentStub();\n\n protected downloadJson(): void {\n axmDownloadDelegatedAgentDetailJson(\n this.delegationCallId,\n this.messages,\n this.runInput,\n this.agentName,\n );\n }\n}\n\n//#endregion\n"],"names":["i2","i3","i4","i1"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { input, inject, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import { ActivatedRoute } from '@angular/router';
|
|
4
4
|
import { AXPPageLayoutBaseComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
|
|
5
|
-
import { a as AXMCommentComponent } from './acorex-modules-conversation-acorex-modules-conversation-
|
|
5
|
+
import { a as AXMCommentComponent } from './acorex-modules-conversation-acorex-modules-conversation-lPw23AJc.mjs';
|
|
6
6
|
|
|
7
7
|
//#region ---- Comments Page Component ----
|
|
8
8
|
/**
|
|
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
75
75
|
}], propDecorators: { rootContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "rootContext", required: true }] }], pageConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageConfig", required: false }] }] } });
|
|
76
76
|
|
|
77
77
|
export { AXMCommentsPageComponent };
|
|
78
|
-
//# sourceMappingURL=acorex-modules-conversation-comments-page.component-
|
|
78
|
+
//# sourceMappingURL=acorex-modules-conversation-comments-page.component-Bqeplzuy.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-conversation-comments-page.component-
|
|
1
|
+
{"version":3,"file":"acorex-modules-conversation-comments-page.component-Bqeplzuy.mjs","sources":["../../../../libs/modules/conversation/src/lib/features/comment/comments-page/comments-page.component.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent } from '@acorex/platform/layout/views';\nimport { AXMCommentComponent } from '../comment.component';\n\n//#region ---- Comments Page Component ----\n\n/**\n * Page component that renders comments using AXMCommentComponent.\n * Used when comments plugin has display: 'page'.\n * Receives rootContext (entity data) and derives refrenceType/refrenceId from route params and context.\n */\n@Component({\n selector: 'axm-comments-page',\n imports: [AXMCommentComponent],\n template: `\n @if (refrenceType() && refrenceId()) {\n <axm-comment\n [refrenceType]=\"refrenceType()!\"\n [refrenceId]=\"refrenceId()!\"\n [subject]=\"subject()\"\n ></axm-comment>\n }\n `,\n styles: `\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMCommentsPageComponent,\n },\n ],\n})\nexport class AXMCommentsPageComponent extends AXPPageLayoutBaseComponent {\n\n //#region ---- Inputs ----\n\n /** Entity data context passed by the page host */\n rootContext = input.required<Record<string, any>>();\n\n /** Page-level configuration from the entity page definition */\n pageConfig = input<Record<string, unknown>>();\n\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n private route = inject(ActivatedRoute);\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected refrenceType = computed(() => {\n const moduleName = this.route.snapshot.parent?.paramMap.get('module');\n const entityName = this.route.snapshot.paramMap.get('entity');\n if (moduleName && entityName) {\n return `${moduleName}.${entityName}`;\n }\n return null;\n });\n\n protected refrenceId = computed(() => {\n const ctx = this.rootContext();\n return ctx?.['id'] ?? null;\n });\n\n protected subject = computed(() => {\n const ctx = this.rootContext();\n return ctx?.['title'] ?? '';\n });\n\n //#endregion\n\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import * as i0 from '@angular/core';
|
|
|
5
5
|
import { inject, Injectable } from '@angular/core';
|
|
6
6
|
import { Router } from '@angular/router';
|
|
7
7
|
import { AXPSessionService } from '@acorex/platform/auth';
|
|
8
|
-
import { A as AXMChatAssistLauncherService, C as CONVERSATION_SEND_ASSIST_CHAT_MESSAGE_COMMAND } from './acorex-modules-conversation-acorex-modules-conversation-
|
|
8
|
+
import { A as AXMChatAssistLauncherService, C as CONVERSATION_SEND_ASSIST_CHAT_MESSAGE_COMMAND } from './acorex-modules-conversation-acorex-modules-conversation-lPw23AJc.mjs';
|
|
9
9
|
|
|
10
10
|
//#region ---- Imports ----
|
|
11
11
|
//#endregion
|
|
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
87
87
|
}] });
|
|
88
88
|
|
|
89
89
|
export { AXMConversationSendAssistChatMessageCommand };
|
|
90
|
-
//# sourceMappingURL=acorex-modules-conversation-send-assist-chat-message.command-
|
|
90
|
+
//# sourceMappingURL=acorex-modules-conversation-send-assist-chat-message.command-CFwkUHCc.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-conversation-send-assist-chat-message.command-
|
|
1
|
+
{"version":3,"file":"acorex-modules-conversation-send-assist-chat-message.command-CFwkUHCc.mjs","sources":["../../../../libs/modules/conversation/src/lib/features/commands/send-assist-chat-message.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXConversationService, type AXMessagePayload } from '@acorex/components/conversation2';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXMChatAssistLauncherService } from '../chat/services/assist-chat-launcher.service';\nimport { CONVERSATION_SEND_ASSIST_CHAT_MESSAGE_COMMAND } from './conversation-command.keys';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMSendAssistChatMessageOptions {\n text: string;\n conversationId?: string;\n assistId?: string;\n targetId?: string;\n navigate?: boolean;\n}\n\nexport interface AXMSendAssistChatMessageResult {\n conversationId: string;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationSendAssistChatMessageCommand\n implements AXPCommand<AXMSendAssistChatMessageOptions, AXMSendAssistChatMessageResult>\n{\n private readonly conversationService = inject(AXConversationService);\n private readonly launcher = inject(AXMChatAssistLauncherService);\n private readonly translationService = inject(AXTranslationService);\n private readonly toastService = inject(AXToastService);\n private readonly router = inject(Router);\n private readonly sessionService = inject(AXPSessionService);\n\n async execute(\n input: AXMSendAssistChatMessageOptions | unknown,\n ): Promise<AXPExecuteCommandResult<AXMSendAssistChatMessageResult>> {\n const raw = input as { __context__?: { options?: Partial<AXMSendAssistChatMessageOptions> } } & Record<\n string,\n unknown\n >;\n const { __context__: _workflowContext, ...rest } = raw;\n const options: Partial<AXMSendAssistChatMessageOptions> = {\n ...(_workflowContext?.options ?? {}),\n ...(rest as unknown as Partial<AXMSendAssistChatMessageOptions>),\n };\n\n const text = (typeof options.text === 'string' ? options.text : '').trim();\n if (!text) {\n return {\n success: false,\n message: { text: 'text is required for Conversation:SendAssistChatMessage.' },\n };\n }\n\n let conversationId =\n (typeof options.conversationId === 'string' ? options.conversationId.trim() : '') ||\n this.conversationService.activeConversationId()?.trim() ||\n '';\n\n try {\n if (!conversationId) {\n const assistId =\n (typeof options.assistId === 'string' ? options.assistId.trim() : '') ||\n (typeof options.targetId === 'string' ? options.targetId.trim() : '');\n if (!assistId) {\n return {\n success: false,\n message: {\n text: 'conversationId or assistId is required for Conversation:SendAssistChatMessage.',\n },\n };\n }\n\n const started = await this.launcher.startAssistChat({\n targetId: assistId,\n navigate: false,\n });\n if (!started?.conversation.id) {\n return { success: false };\n }\n conversationId = started.conversation.id;\n }\n\n const payload: AXMessagePayload = { type: 'text', text };\n await this.conversationService.sendMessage({\n conversationId,\n type: 'text',\n payload,\n });\n\n if (options.navigate !== false) {\n await this.router.navigate([this.#applicationRouteSegment(), 'chat', conversationId]);\n }\n\n return { success: true, data: { conversationId } };\n } catch (error: unknown) {\n console.error(`[${CONVERSATION_SEND_ASSIST_CHAT_MESSAGE_COMMAND}] Failed:`, error);\n const message = await this.translationService.translateAsync(\n '@conversation:chat.starter-prompts.errors.send',\n );\n this.toastService.danger(message);\n return { success: false };\n }\n }\n\n #applicationRouteSegment(): string {\n return this.sessionService.application?.name ?? 'platform';\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { A as AXMChatAssistLauncherService } from './acorex-modules-conversation-acorex-modules-conversation-
|
|
3
|
+
import { A as AXMChatAssistLauncherService } from './acorex-modules-conversation-acorex-modules-conversation-lPw23AJc.mjs';
|
|
4
4
|
|
|
5
5
|
//#endregion
|
|
6
6
|
//#region ---- Command ----
|
|
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
41
41
|
}] });
|
|
42
42
|
|
|
43
43
|
export { AXMConversationStartAssistChatCommand };
|
|
44
|
-
//# sourceMappingURL=acorex-modules-conversation-start-assist-chat.command-
|
|
44
|
+
//# sourceMappingURL=acorex-modules-conversation-start-assist-chat.command-aEOnD6ax.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-conversation-start-assist-chat.command-
|
|
1
|
+
{"version":3,"file":"acorex-modules-conversation-start-assist-chat.command-aEOnD6ax.mjs","sources":["../../../../libs/modules/conversation/src/lib/features/commands/start-assist-chat.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { Injectable, inject } from '@angular/core';\nimport { AXMChatAssistLauncherService } from '../chat/services/assist-chat-launcher.service';\nimport type { AXMStartAssistChatOptions, AXMStartAssistChatResult } from '../chat/services/assist-chat-launcher.types';\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationStartAssistChatCommand\n implements AXPCommand<AXMStartAssistChatOptions, AXMStartAssistChatResult | null>\n{\n private readonly launcher = inject(AXMChatAssistLauncherService);\n\n async execute(\n input: AXMStartAssistChatOptions | unknown,\n ): Promise<AXPExecuteCommandResult<AXMStartAssistChatResult | null>> {\n const raw = input as { __context__?: { options?: Partial<AXMStartAssistChatOptions> } } & Record<\n string,\n unknown\n >;\n const { __context__: _workflowContext, ...rest } = raw;\n const options: Partial<AXMStartAssistChatOptions> = {\n ...(_workflowContext?.options ?? {}),\n ...(rest as unknown as Partial<AXMStartAssistChatOptions>),\n };\n\n const targetId =\n (typeof options.targetId === 'string' ? options.targetId.trim() : '') ||\n (typeof options.assistId === 'string' ? options.assistId.trim() : '');\n if (!targetId) {\n return {\n success: false,\n message: { text: 'targetId is required for Conversation:StartAssistChat.' },\n };\n }\n\n const result = await this.launcher.startAssistChat({\n targetId,\n navigate: options.navigate,\n });\n\n if (!result) {\n return { success: false };\n }\n\n return { success: true, data: result };\n }\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;AAQA;AAEA;MAGa,qCAAqC,CAAA;AADlD,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAoCjE,IAAA;IAlCC,MAAM,OAAO,CACX,KAA0C,EAAA;QAE1C,MAAM,GAAG,GAAG,KAGX;QACD,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG;AACtD,QAAA,MAAM,OAAO,GAAuC;AAClD,YAAA,IAAI,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC;AACpC,YAAA,GAAI,IAAsD;SAC3D;QAED,MAAM,QAAQ,GACZ,CAAC,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;aACnE,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,EAAE,IAAI,EAAE,wDAAwD,EAAE;aAC5E;QACH;QAEA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YACjD,QAAQ;YACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC3B,SAAA,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3B;QAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IACxC;8GAtCW,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qCAAqC,cADxB,MAAM,EAAA,CAAA,CAAA;;2FACnB,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBADjD,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { k as AXMChatComponent, l as AXMChatConversationApi, m as AXMChatMessageApi, n as AXMChatRealtimeApi, o as AXMChatUserApi, a as AXMCommentComponent, p as AXMCommentManagementService, q as AXMCommentPopupComponent, r as AXMCommentPopupStartAction, s as AXMCommentPopupWorkflow, t as AXMCommentRealtimeService, u as AXMCommentRealtimeServiceImpl, v as AXMCommentService, w as AXMCommentServiceImpl, x as AXMCommentWidgetViewComponent, y as AXMConversationAssistBackgroundOperationHandler, z as AXMConversationModule, B as AXMPermissionsKeys, D as AXM_ASSIST_TRANSCRIPT_LINE_PAYLOAD_TYPE, E as AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_HANDLERS, F as AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_KEY, G as AXM_CONVERSATION_CHAT_ATTACHMENT_CATEGORY, H as AXM_CONVERSATION_CHAT_ATTACHMENT_REF_TYPE, I as AXPCommentWidget, J as AXPConversationMenuKeys, K as COMMENTS_PAGE_COMPONENT_KEY, R as RootConfig, L as axmApplyAnswerTextToAssistPayloadLine, M as axmAssistFollowUpItemsFromUnknown, N as axmAssistLastTranscriptLine, O as axmAssistUserFacingPayloadLine, P as axmAssistUserVisibleItemsForLine, f as axmAssistWidgetNodeFromUnknown, Q as axmBuildAssistTranscriptLinePayload, S as axmIsAssistPeerParticipant, T as axmIsAssistRetryableStatus, U as axmIsAssistStreamingStatus, V as axmNormalizeAssistTranscriptForChatUi, W as axmNormalizeAssistTranscriptLineResponses, X as axmParseAssistTranscriptLinePayload, e as axmParseAssistTranscriptTextEnvelope, Y as axmPartitionAssistAnswerText, Z as axmReadAssistAiTranscript, _ as axmReadAssistAiTranscriptRaw, $ as axmReadAssistResponseError, a0 as axmReadAssistResponseStatus, a1 as axmResolveAssistFinalAnswerText, a2 as axmSanitizeAssistUserAnswerText, g as axmSyntheticEmbedMessage, a3 as commentsPlugin, a4 as messageFactory, a5 as persistChatAttachment, a6 as roomFactory, a7 as tabFactory } from './acorex-modules-conversation-acorex-modules-conversation-
|
|
1
|
+
export { k as AXMChatComponent, l as AXMChatConversationApi, m as AXMChatMessageApi, n as AXMChatRealtimeApi, o as AXMChatUserApi, a as AXMCommentComponent, p as AXMCommentManagementService, q as AXMCommentPopupComponent, r as AXMCommentPopupStartAction, s as AXMCommentPopupWorkflow, t as AXMCommentRealtimeService, u as AXMCommentRealtimeServiceImpl, v as AXMCommentService, w as AXMCommentServiceImpl, x as AXMCommentWidgetViewComponent, y as AXMConversationAssistBackgroundOperationHandler, z as AXMConversationModule, B as AXMPermissionsKeys, D as AXM_ASSIST_TRANSCRIPT_LINE_PAYLOAD_TYPE, E as AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_HANDLERS, F as AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_KEY, G as AXM_CONVERSATION_CHAT_ATTACHMENT_CATEGORY, H as AXM_CONVERSATION_CHAT_ATTACHMENT_REF_TYPE, I as AXPCommentWidget, J as AXPConversationMenuKeys, K as COMMENTS_PAGE_COMPONENT_KEY, R as RootConfig, L as axmApplyAnswerTextToAssistPayloadLine, M as axmAssistFollowUpItemsFromUnknown, N as axmAssistLastTranscriptLine, O as axmAssistUserFacingPayloadLine, P as axmAssistUserVisibleItemsForLine, f as axmAssistWidgetNodeFromUnknown, Q as axmBuildAssistTranscriptLinePayload, S as axmIsAssistPeerParticipant, T as axmIsAssistRetryableStatus, U as axmIsAssistStreamingStatus, V as axmNormalizeAssistTranscriptForChatUi, W as axmNormalizeAssistTranscriptLineResponses, X as axmParseAssistTranscriptLinePayload, e as axmParseAssistTranscriptTextEnvelope, Y as axmPartitionAssistAnswerText, Z as axmReadAssistAiTranscript, _ as axmReadAssistAiTranscriptRaw, $ as axmReadAssistResponseError, a0 as axmReadAssistResponseStatus, a1 as axmResolveAssistFinalAnswerText, a2 as axmSanitizeAssistUserAnswerText, g as axmSyntheticEmbedMessage, a3 as commentsPlugin, a4 as messageFactory, a5 as persistChatAttachment, a6 as roomFactory, a7 as tabFactory } from './acorex-modules-conversation-acorex-modules-conversation-lPw23AJc.mjs';
|
|
2
2
|
//# sourceMappingURL=acorex-modules-conversation.mjs.map
|
|
@@ -6154,7 +6154,7 @@ class AXPStickyNoteWidgetViewComponent extends AXPDashboardWidgetComponent {
|
|
|
6154
6154
|
provide: AXGridLayoutWidgetComponent,
|
|
6155
6155
|
useExisting: AXPStickyNoteWidgetViewComponent,
|
|
6156
6156
|
},
|
|
6157
|
-
], viewQueries: [{ propertyName: "wysiwyg", first: true, predicate: ["wysiwyg"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"sticky-note-container ax-size-full ax-rounded-lg ax-flex ax-flex-col ax-p-4 ax-shadow-md ax-transition-all ax-duration-300 hover:ax-shadow-lg\"\n [style.background-color]=\"bgColor()\"\n [style.color]=\"color()\"\n [class.ax-shadow-lg]=\"isEditing()\"\n [class.ax-scale-[1.02]]=\"isEditing()\"\n (dblclick)=\"activateEdit()\"\n>\n <!-- Header with timestamp -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-3\">\n <div class=\"ax-text-xs ax-opacity-70 ax-font-medium ax-flex ax-items-center ax-gap-1\">\n <i class=\"fa-regular fa-clock ax-text-[0.65rem]\"></i>\n {{ date() | format: 'datetime' : { format: 'short' } | async }}\n </div>\n </div>\n\n <!-- Content area -->\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-wysiwyg-container\n #wysiwyg\n [class]=\"isEditing() ? 'ax-pointer-events-auto ax-cursor-text' : 'ax-pointer-events-none !ax-cursor-pointer'\"\n class=\"ax-h-full\"\n [placeHolder]=\"('@dashboard:widgets.sticky-note.placeholder' | translate | async)!\"\n look=\"none\"\n (onValueChanged)=\"valueChange($event)\"\n [ngModel]=\"value()\"\n >\n <ax-wysiwyg-view class=\"!ax-size-full ax-border-b-0\"></ax-wysiwyg-view>\n <ax-wysiwyg-toolbar class=\"ax-hidden\"></ax-wysiwyg-toolbar>\n </ax-wysiwyg-container>\n </div>\n\n <!-- Footer with color selector and save button -->\n @if (isEditing()) {\n <div class=\"ax-absolute ax-bottom-2 ax-left-2 ax-right-2 ax-flex ax-flex-wrap ax-gap-1 ax-text-xs\">\n <!-- Color selection bar when in edit mode -->\n <div class=\"ax-flex ax-w-full ax-mt-2 ax-border ax-border-gray-200 ax-overflow-hidden ax-rounded-md\">\n @for (preset of colorPresets; track preset) {\n <div\n class=\"ax-h-6 ax-flex-1 ax-cursor-pointer ax-transition-all ax-duration-200 ax-border-r ax-border-gray-200 last:ax-border-r-0 hover:ax-brightness-95\"\n [style.background-color]=\"preset\"\n [class.ax-ring-inset]=\"bgColor() === preset\"\n [class.ax-ring-2]=\"bgColor() === preset\"\n [class.ax-ring-primary]=\"bgColor() === preset\"\n (click)=\"setColor(preset)\"\n ></div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep ax-wysiwyg-container .ax-editor-container,:host ::ng-deep ax-wysiwyg-view .ax-editor-container{--ax-comp-editor-bg-color: transparent !important;color:#333}:host ::ng-deep ax-wysiwyg-container .ax-editor-container .ql-editor,:host ::ng-deep ax-wysiwyg-view .ax-editor-container .ql-editor{color:inherit}:host ::ng-deep ax-wysiwyg-container .ax-editor-container .ql-editor.ql-blank:before,:host ::ng-deep ax-wysiwyg-view .ax-editor-container .ql-editor.ql-blank:before{color:inherit;opacity:.55}\n"], dependencies: [{ kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i1$3.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "readonly", "disabled", "value", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i1$3.AXWysiwygViewComponent, selector: "ax-wysiwyg-view" }, { kind: "component", type: i1$3.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXToolBarModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXColorBoxModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6157
|
+
], viewQueries: [{ propertyName: "wysiwyg", first: true, predicate: ["wysiwyg"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"sticky-note-container ax-size-full ax-rounded-lg ax-flex ax-flex-col ax-p-4 ax-shadow-md ax-transition-all ax-duration-300 hover:ax-shadow-lg\"\n [style.background-color]=\"bgColor()\"\n [style.color]=\"color()\"\n [class.ax-shadow-lg]=\"isEditing()\"\n [class.ax-scale-[1.02]]=\"isEditing()\"\n (dblclick)=\"activateEdit()\"\n>\n <!-- Header with timestamp -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-3\">\n <div class=\"ax-text-xs ax-opacity-70 ax-font-medium ax-flex ax-items-center ax-gap-1\">\n <i class=\"fa-regular fa-clock ax-text-[0.65rem]\"></i>\n {{ date() | format: 'datetime' : { format: 'short' } | async }}\n </div>\n </div>\n\n <!-- Content area -->\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-wysiwyg-container\n #wysiwyg\n [class]=\"isEditing() ? 'ax-pointer-events-auto ax-cursor-text' : 'ax-pointer-events-none !ax-cursor-pointer'\"\n class=\"ax-h-full\"\n [placeHolder]=\"('@dashboard:widgets.sticky-note.placeholder' | translate | async)!\"\n look=\"none\"\n (onValueChanged)=\"valueChange($event)\"\n [ngModel]=\"value()\"\n >\n <ax-wysiwyg-view class=\"!ax-size-full ax-border-b-0\"></ax-wysiwyg-view>\n <ax-wysiwyg-toolbar class=\"ax-hidden\"></ax-wysiwyg-toolbar>\n </ax-wysiwyg-container>\n </div>\n\n <!-- Footer with color selector and save button -->\n @if (isEditing()) {\n <div class=\"ax-absolute ax-bottom-2 ax-left-2 ax-right-2 ax-flex ax-flex-wrap ax-gap-1 ax-text-xs\">\n <!-- Color selection bar when in edit mode -->\n <div class=\"ax-flex ax-w-full ax-mt-2 ax-border ax-border-gray-200 ax-overflow-hidden ax-rounded-md\">\n @for (preset of colorPresets; track preset) {\n <div\n class=\"ax-h-6 ax-flex-1 ax-cursor-pointer ax-transition-all ax-duration-200 ax-border-r ax-border-gray-200 last:ax-border-r-0 hover:ax-brightness-95\"\n [style.background-color]=\"preset\"\n [class.ax-ring-inset]=\"bgColor() === preset\"\n [class.ax-ring-2]=\"bgColor() === preset\"\n [class.ax-ring-primary]=\"bgColor() === preset\"\n (click)=\"setColor(preset)\"\n ></div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep ax-wysiwyg-container .ax-editor-container,:host ::ng-deep ax-wysiwyg-view .ax-editor-container{--ax-comp-editor-bg-color: transparent !important;color:#333}:host ::ng-deep ax-wysiwyg-container .ax-editor-container .ql-editor,:host ::ng-deep ax-wysiwyg-view .ax-editor-container .ql-editor{color:inherit}:host ::ng-deep ax-wysiwyg-container .ax-editor-container .ql-editor.ql-blank:before,:host ::ng-deep ax-wysiwyg-view .ax-editor-container .ql-editor.ql-blank:before{color:inherit;opacity:.55}\n"], dependencies: [{ kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i1$3.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "readonly", "disabled", "value", "placeHolder", "initialLine"], outputs: ["onValueChanged"] }, { kind: "component", type: i1$3.AXWysiwygViewComponent, selector: "ax-wysiwyg-view" }, { kind: "component", type: i1$3.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXToolBarModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXColorBoxModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6158
6158
|
}
|
|
6159
6159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStickyNoteWidgetViewComponent, decorators: [{
|
|
6160
6160
|
type: Component,
|
|
@@ -6330,7 +6330,7 @@ class AXMDashboardManagementModule {
|
|
|
6330
6330
|
useClass: AXMEntityProvider,
|
|
6331
6331
|
multi: true,
|
|
6332
6332
|
},
|
|
6333
|
-
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-modules-dashboard-management-index-
|
|
6333
|
+
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-modules-dashboard-management-index-DAQNEq43.mjs').then((m) => m.AXMDashboardLayoutPageComponentProvider)),
|
|
6334
6334
|
], imports: [AXPWidgetCoreModule] }); }
|
|
6335
6335
|
}
|
|
6336
6336
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMDashboardManagementModule, decorators: [{
|
|
@@ -6381,7 +6381,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
6381
6381
|
useClass: AXMEntityProvider,
|
|
6382
6382
|
multi: true,
|
|
6383
6383
|
},
|
|
6384
|
-
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-modules-dashboard-management-index-
|
|
6384
|
+
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-modules-dashboard-management-index-DAQNEq43.mjs').then((m) => m.AXMDashboardLayoutPageComponentProvider)),
|
|
6385
6385
|
],
|
|
6386
6386
|
}]
|
|
6387
6387
|
}] });
|
|
@@ -8403,4 +8403,4 @@ var AXPHomeDashboardSetting;
|
|
|
8403
8403
|
*/
|
|
8404
8404
|
|
|
8405
8405
|
export { AXP_DASHBOARD_SHARED_SUB_CHART_SPECIALIZED as $, AXMDashboardStore as A, AXPHeatmapChartWidgetViewComponent as B, AXPHomeDashboardSetting as C, DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY as D, AXPKpiDetailsWidget as E, AXPKpiDetailsWidgetViewComponent as F, AXPKpiProgressWidget as G, AXPKpiProgressWidgetViewComponent as H, AXPKpiSegmentedWidget as I, AXPKpiSegmentedWidgetViewComponent as J, AXPKpiStatCardWidget as K, AXPKpiStatCardWidgetViewComponent as L, AXPLineChartWidget as M, AXPLineChartWidgetViewComponent as N, AXPMinimalWeatherWidget as O, AXPShortcutWidget as P, AXPShortcutWidgetViewComponent as Q, AXPStickyNoteWidget as R, AXPStickyNoteWidgetViewComponent as S, AXPWeatherApiAbstract as T, AXPWeatherApiMockService as U, AXPWeatherApiService as V, AXPWeatherWidget as W, AXPWeatherWidgetViewComponent as X, AXP_DASHBOARD_SHARED_SUB_CHART_CARTESIAN as Y, AXP_DASHBOARD_SHARED_SUB_CHART_KPI as Z, AXP_DASHBOARD_SHARED_SUB_CHART_RADIAL as _, AXMDashboardGridLayoutSectionComponent as a, AXP_DASHBOARD_SHARED_SUB_UTILITY_NOTES as a0, AXP_DASHBOARD_SHARED_SUB_UTILITY_SHORTCUT as a1, AXP_DASHBOARD_SHARED_SUB_UTILITY_TIME as a2, AXP_DASHBOARD_SHARED_SUB_UTILITY_WEATHER as a3, AXP_DATE_FORMAT_OPTIONS as a4, AXP_TIMEZONE_OPTIONS as a5, AXP_WIDGETS_CHART_CATEGORY as a6, AXP_WIDGETS_UTILITY_CATEGORY as a7, RootConfig as a8, dashboardFactory as a9, DASHBOARD_LAYOUT_ENTITY_MODE as b, AXMAddDashboardPopup as c, AXMAdvancedWeatherViewComponent as d, AXMAnalogClockComponent as e, AXMClockWidgetViewComponent as f, AXMConfigurationPopup as g, AXMDashboardHomeComponent as h, AXMDashboardManagementModule as i, AXMDashboardPopupService as j, AXMDashboardWidgetWrapperComponent as k, AXMMinimalWeatherViewComponent as l, AXPAdvancedWeatherWidget as m, AXPAnalogClockWidget as n, AXPBarChartWidget as o, AXPBarChartWidgetViewComponent as p, AXPClockCalendarWidget as q, AXPClockCalendarWidgetViewComponent as r, AXPDashboardWidgetComponent as s, AXPDonutChartWidget as t, AXPDonutChartWidgetViewComponent as u, AXPFunnelChartWidget as v, AXPFunnelChartWidgetViewComponent as w, AXPGaugeChartWidget as x, AXPGaugeChartWidgetViewComponent as y, AXPHeatmapChartWidget as z };
|
|
8406
|
-
//# sourceMappingURL=acorex-modules-dashboard-management-acorex-modules-dashboard-management-
|
|
8406
|
+
//# sourceMappingURL=acorex-modules-dashboard-management-acorex-modules-dashboard-management-D2TrYnCW.mjs.map
|