@acorex/modules 21.0.0-next.40 → 21.0.0-next.41
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-acorex-modules-ai-management-Bqfx8OTv.mjs → acorex-modules-ai-management-acorex-modules-ai-management-D7_4LOGV.mjs} +3486 -1149
- package/fesm2022/acorex-modules-ai-management-acorex-modules-ai-management-D7_4LOGV.mjs.map +1 -0
- package/fesm2022/{acorex-modules-ai-management-agent-registry-tool-configurator-widget-edit.component-DyczMN-R.mjs → acorex-modules-ai-management-agent-registry-tool-configurator-widget-edit.component-C7TQMwX4.mjs} +4 -3
- package/fesm2022/acorex-modules-ai-management-agent-registry-tool-configurator-widget-edit.component-C7TQMwX4.mjs.map +1 -0
- package/fesm2022/{acorex-modules-ai-management-agent.entity-CpSXisAh.mjs → acorex-modules-ai-management-agent.entity-DwPIKib2.mjs} +20 -17
- package/fesm2022/acorex-modules-ai-management-agent.entity-DwPIKib2.mjs.map +1 -0
- package/fesm2022/{acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CYk2rB36.mjs → acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-D2GJ5qD1.mjs} +28 -6
- package/fesm2022/acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-D2GJ5qD1.mjs.map +1 -0
- package/fesm2022/{acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-BDcW8BRI.mjs → acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-BozVAuLO.mjs} +6 -9
- package/fesm2022/acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-BozVAuLO.mjs.map +1 -0
- package/fesm2022/{acorex-modules-ai-management-assist.entity-7uTePpME.mjs → acorex-modules-ai-management-assist.entity-CuToMDS_.mjs} +10 -11
- package/fesm2022/acorex-modules-ai-management-assist.entity-CuToMDS_.mjs.map +1 -0
- package/fesm2022/acorex-modules-ai-management-index-DaGJVOFw.mjs +2 -0
- package/fesm2022/{acorex-modules-ai-management-index-DUojDUau.mjs.map → acorex-modules-ai-management-index-DaGJVOFw.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-ai-management-model.entity-C9J3trsK.mjs → acorex-modules-ai-management-model.entity-vUNlioDw.mjs} +20 -17
- package/fesm2022/acorex-modules-ai-management-model.entity-vUNlioDw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-ai-management-open-ai-endpoint.entity-kHsxkjEd.mjs → acorex-modules-ai-management-open-ai-endpoint.entity-BpxRR5ir.mjs} +28 -9
- package/fesm2022/acorex-modules-ai-management-open-ai-endpoint.entity-BpxRR5ir.mjs.map +1 -0
- package/fesm2022/acorex-modules-ai-management.mjs +1 -1
- package/fesm2022/{acorex-modules-asset-management-acorex-modules-asset-management-BRap9yt6.mjs → acorex-modules-asset-management-acorex-modules-asset-management-DrIhRaZ6.mjs} +84 -99
- package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-DrIhRaZ6.mjs.map +1 -0
- package/fesm2022/{acorex-modules-asset-management-asset-rental-history.entity-B_QZI3Cy.mjs → acorex-modules-asset-management-asset-rental-history.entity-95NBXoex.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-rental-history.entity-B_QZI3Cy.mjs.map → acorex-modules-asset-management-asset-rental-history.entity-95NBXoex.mjs.map} +1 -1
- package/fesm2022/acorex-modules-asset-management-asset-state-history.entity-C-z103la.mjs +258 -0
- package/fesm2022/acorex-modules-asset-management-asset-state-history.entity-C-z103la.mjs.map +1 -0
- package/fesm2022/{acorex-modules-asset-management-asset-status.rules-BL0Osjqv.mjs → acorex-modules-asset-management-asset-status.rules-B7KwWQEe.mjs} +2 -2
- package/fesm2022/acorex-modules-asset-management-asset-status.rules-B7KwWQEe.mjs.map +1 -0
- package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-BRz8vItS.mjs → acorex-modules-asset-management-asset-system-assignment.entity-HqZtfJpe.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-BRz8vItS.mjs.map → acorex-modules-asset-management-asset-system-assignment.entity-HqZtfJpe.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-b_o5UnuE.mjs → acorex-modules-asset-management-asset-system-type.entity-fvrbyjXb.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-b_o5UnuE.mjs.map → acorex-modules-asset-management-asset-system-type.entity-fvrbyjXb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-system.entity-C6ak4u9z.mjs → acorex-modules-asset-management-asset-system.entity-DVAaXNWx.mjs} +13 -3
- package/fesm2022/acorex-modules-asset-management-asset-system.entity-DVAaXNWx.mjs.map +1 -0
- package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-BQjGo1s1.mjs → acorex-modules-asset-management-asset-type-section-component.entity-n-bxBcGz.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-BQjGo1s1.mjs.map → acorex-modules-asset-management-asset-type-section-component.entity-n-bxBcGz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-C1DJZZFy.mjs → acorex-modules-asset-management-asset-type-section.entity-BF7N699p.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-C1DJZZFy.mjs.map → acorex-modules-asset-management-asset-type-section.entity-BF7N699p.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-type.entity-CtOnArR9.mjs → acorex-modules-asset-management-asset-type.entity-Dt61Rs4F.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-type.entity-CtOnArR9.mjs.map → acorex-modules-asset-management-asset-type.entity-Dt61Rs4F.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset.entity-BaET-kSd.mjs → acorex-modules-asset-management-asset.entity-BzlsaEwC.mjs} +35 -10
- package/fesm2022/acorex-modules-asset-management-asset.entity-BzlsaEwC.mjs.map +1 -0
- package/fesm2022/{acorex-modules-asset-management-assetLifecycleState.provider-DZ5r2zx7.mjs → acorex-modules-asset-management-assetLifecycle-state.provider-DZ5r2zx7.mjs} +1 -1
- package/fesm2022/acorex-modules-asset-management-assetLifecycle-state.provider-DZ5r2zx7.mjs.map +1 -0
- package/fesm2022/acorex-modules-asset-management.mjs +1 -1
- package/fesm2022/acorex-modules-common.mjs +33 -3
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +270 -206
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/{acorex-modules-dashboard-management-acorex-modules-dashboard-management-yqfev--M.mjs → acorex-modules-dashboard-management-acorex-modules-dashboard-management-DLndkp6w.mjs} +23 -39
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-DLndkp6w.mjs.map +1 -0
- package/fesm2022/{acorex-modules-dashboard-management-index-CYnWQ2od.mjs → acorex-modules-dashboard-management-index-c8QzHHtG.mjs} +2 -2
- package/fesm2022/{acorex-modules-dashboard-management-index-CYnWQ2od.mjs.map → acorex-modules-dashboard-management-index-c8QzHHtG.mjs.map} +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +1 -1
- package/fesm2022/acorex-modules-document-management.mjs +114 -22
- package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-Ck9q-IWW.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-Bgsi3FHG.mjs} +21 -19
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-Bgsi3FHG.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-qYSPyG_q.mjs → acorex-modules-human-capital-management-approve-leave-request.command-CxpTmb-1.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-qYSPyG_q.mjs.map → acorex-modules-human-capital-management-approve-leave-request.command-CxpTmb-1.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-Da3u1fo5.mjs → acorex-modules-human-capital-management-assign-position-assignment.command-jLGe49dJ.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-Da3u1fo5.mjs.map → acorex-modules-human-capital-management-assign-position-assignment.command-jLGe49dJ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-DstI60jo.mjs → acorex-modules-human-capital-management-cancel-leave-request.command-ChNGu90e.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-DstI60jo.mjs.map → acorex-modules-human-capital-management-cancel-leave-request.command-ChNGu90e.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-employee.entity-DjMQm3VC.mjs → acorex-modules-human-capital-management-employee.entity-4k7F7_ON.mjs} +18 -16
- package/fesm2022/acorex-modules-human-capital-management-employee.entity-4k7F7_ON.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-v8WzEHiE.mjs → acorex-modules-human-capital-management-employment-type.entity-Jo2fB9R3.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-v8WzEHiE.mjs.map → acorex-modules-human-capital-management-employment-type.entity-Jo2fB9R3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-B9Bf-Nnm.mjs → acorex-modules-human-capital-management-leave-request.entity-DhLUXnJu.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-B9Bf-Nnm.mjs.map → acorex-modules-human-capital-management-leave-request.entity-DhLUXnJu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-Bpfd_hNb.mjs → acorex-modules-human-capital-management-leave-type.entity-C-lN2bb0.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-Bpfd_hNb.mjs.map → acorex-modules-human-capital-management-leave-type.entity-C-lN2bb0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-f0IDrLSn.mjs → acorex-modules-human-capital-management-position-assignment.entity-BD1jN4Mx.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-f0IDrLSn.mjs.map → acorex-modules-human-capital-management-position-assignment.entity-BD1jN4Mx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-DxNsroYI.mjs → acorex-modules-human-capital-management-reject-leave-request.command-D0G6UrqI.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-DxNsroYI.mjs.map → acorex-modules-human-capital-management-reject-leave-request.command-D0G6UrqI.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-C3J9pcfh.mjs → acorex-modules-human-capital-management-revoke-position-assignment.command-CYzqQXja.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-C3J9pcfh.mjs.map → acorex-modules-human-capital-management-revoke-position-assignment.command-CYzqQXja.mjs.map} +1 -1
- package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-acorex-modules-maintenance-management-CfHMiVos.mjs → acorex-modules-maintenance-management-acorex-modules-maintenance-management-B5wf4zMI.mjs} +400 -147
- package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-B5wf4zMI.mjs.map +1 -0
- package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-DKbARwJh.mjs → acorex-modules-maintenance-management-failure-effect.entity-Cv5KnboB.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-DKbARwJh.mjs.map → acorex-modules-maintenance-management-failure-effect.entity-Cv5KnboB.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-Br0lvFfu.mjs → acorex-modules-maintenance-management-failure-mode-asset-type.entity-BBL3-hfv.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-Br0lvFfu.mjs.map → acorex-modules-maintenance-management-failure-mode-asset-type.entity-BBL3-hfv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-Dydg4AJ7.mjs → acorex-modules-maintenance-management-failure-mode-mechanism.entity-nxOdHZxu.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-Dydg4AJ7.mjs.map → acorex-modules-maintenance-management-failure-mode-mechanism.entity-nxOdHZxu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-DHiVJHFj.mjs → acorex-modules-maintenance-management-failure-mode-solution.entity-ApD80Scc.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-DHiVJHFj.mjs.map → acorex-modules-maintenance-management-failure-mode-solution.entity-ApD80Scc.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-CZfm0U8u.mjs → acorex-modules-maintenance-management-failure-register-cause.entity-CibfwJLG.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-CZfm0U8u.mjs.map → acorex-modules-maintenance-management-failure-register-cause.entity-CibfwJLG.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-DbCAFveJ.mjs → acorex-modules-maintenance-management-failure-register-effect.entity-DpoqULBf.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-DbCAFveJ.mjs.map → acorex-modules-maintenance-management-failure-register-effect.entity-DpoqULBf.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-D83Yo6dT.mjs → acorex-modules-maintenance-management-failure-register-mechanism.entity-0-J2Hkmn.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-D83Yo6dT.mjs.map → acorex-modules-maintenance-management-failure-register-mechanism.entity-0-J2Hkmn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register.entity-zKGo9bOs.mjs → acorex-modules-maintenance-management-failure-register.entity-C4Az4Rr9.mjs} +23 -53
- package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-C4Az4Rr9.mjs.map +1 -0
- package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-Cnvdmt0N.mjs → acorex-modules-maintenance-management-failure-severity.entity-BZo6UUun.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-Cnvdmt0N.mjs.map → acorex-modules-maintenance-management-failure-severity.entity-BZo6UUun.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-maintenance-template.entity-CzX0phT-.mjs → acorex-modules-maintenance-management-maintenance-template.entity-DxYY0hpG.mjs} +14 -11
- package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-DxYY0hpG.mjs.map +1 -0
- package/fesm2022/acorex-modules-maintenance-management-work-order-list-command-DTKNtyBF.mjs +54 -0
- package/fesm2022/acorex-modules-maintenance-management-work-order-list-command-DTKNtyBF.mjs.map +1 -0
- package/fesm2022/acorex-modules-maintenance-management.mjs +1 -1
- package/fesm2022/{acorex-modules-organization-management-acorex-modules-organization-management-CnAHfj2t.mjs → acorex-modules-organization-management-acorex-modules-organization-management-Bu8fRj_5.mjs} +48 -22
- package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-Bu8fRj_5.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-add-position-to-business-unit.command-Qej_boIY.mjs +109 -0
- package/fesm2022/acorex-modules-organization-management-add-position-to-business-unit.command-Qej_boIY.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-business-unit.entity-Dpf7-aeM.mjs → acorex-modules-organization-management-business-unit.entity-BfQ_7JAq.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-business-unit.entity-Dpf7-aeM.mjs.map → acorex-modules-organization-management-business-unit.entity-BfQ_7JAq.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-chart.entity-CQX81AiE.mjs → acorex-modules-organization-management-chart.entity-CNQGGfHV.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-chart.entity-CQX81AiE.mjs.map → acorex-modules-organization-management-chart.entity-CNQGGfHV.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-company.entity-D-RWQ_8O.mjs → acorex-modules-organization-management-company.entity-D_nTKLzu.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-company.entity-D-RWQ_8O.mjs.map → acorex-modules-organization-management-company.entity-D_nTKLzu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-entity.provider-BdaKwTZq.mjs → acorex-modules-organization-management-entity.provider-B4uYixLQ.mjs} +15 -15
- package/fesm2022/{acorex-modules-organization-management-entity.provider-BdaKwTZq.mjs.map → acorex-modules-organization-management-entity.provider-B4uYixLQ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-EzMuHJ2K.mjs → acorex-modules-organization-management-feature-definition.provider-COjc6knz.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-EzMuHJ2K.mjs.map → acorex-modules-organization-management-feature-definition.provider-COjc6knz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition-pages-component.provider-C8_Ab3Q7.mjs → acorex-modules-organization-management-job-definition-pages-component.provider-gDpII9TZ.mjs} +3 -3
- package/fesm2022/{acorex-modules-organization-management-job-definition-pages-component.provider-C8_Ab3Q7.mjs.map → acorex-modules-organization-management-job-definition-pages-component.provider-gDpII9TZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition-responsibilities-page.component-DHUlvoOO.mjs → acorex-modules-organization-management-job-definition-responsibilities-page.component-CjXV4wrM.mjs} +3 -3
- package/fesm2022/{acorex-modules-organization-management-job-definition-responsibilities-page.component-DHUlvoOO.mjs.map → acorex-modules-organization-management-job-definition-responsibilities-page.component-CjXV4wrM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition-skills-page.component-BpVESnnH.mjs → acorex-modules-organization-management-job-definition-skills-page.component-2XBgMms-.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-definition-skills-page.component-BpVESnnH.mjs.map → acorex-modules-organization-management-job-definition-skills-page.component-2XBgMms-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition.entity-H8VAbZ_r.mjs → acorex-modules-organization-management-job-definition.entity-f0JnkdjP.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-definition.entity-H8VAbZ_r.mjs.map → acorex-modules-organization-management-job-definition.entity-f0JnkdjP.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-level.datasource-Dxfq0cGw.mjs → acorex-modules-organization-management-job-level.datasource-ByHluGvc.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-level.datasource-Dxfq0cGw.mjs.map → acorex-modules-organization-management-job-level.datasource-ByHluGvc.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-level.entity-Bdja794J.mjs → acorex-modules-organization-management-job-level.entity-BJJJQxCp.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-level.entity-Bdja794J.mjs.map → acorex-modules-organization-management-job-level.entity-BJJJQxCp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-menu.provider-DnvNM-pk.mjs → acorex-modules-organization-management-menu.provider-Dd_Z58sY.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-menu.provider-DnvNM-pk.mjs.map → acorex-modules-organization-management-menu.provider-Dd_Z58sY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-COkMtxFO.mjs → acorex-modules-organization-management-org-chart.page-fudrNddI.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-COkMtxFO.mjs.map → acorex-modules-organization-management-org-chart.page-fudrNddI.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-BDLIuqxU.mjs → acorex-modules-organization-management-permission-definition.provider-CoB_RGSa.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-BDLIuqxU.mjs.map → acorex-modules-organization-management-permission-definition.provider-CoB_RGSa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-position.entity-BpbzqtEY.mjs → acorex-modules-organization-management-position.entity-T1DY1fZn.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-position.entity-BpbzqtEY.mjs.map → acorex-modules-organization-management-position.entity-T1DY1fZn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CGkXAtH2.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CIPzMi3d.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CGkXAtH2.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CIPzMi3d.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-Dw-tX5XI.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-DzdTNVP6.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-Dw-tX5XI.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-DzdTNVP6.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-D_ClGAIJ.mjs → acorex-modules-organization-management-responsibilities-matrix.component-C850Dz47.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-D_ClGAIJ.mjs.map → acorex-modules-organization-management-responsibilities-matrix.component-C850Dz47.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-CzkogsDv.mjs → acorex-modules-organization-management-responsibility-level.entity-CVxWva5x.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-CzkogsDv.mjs.map → acorex-modules-organization-management-responsibility-level.entity-CVxWva5x.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibility.entity-DfKM6HV7.mjs → acorex-modules-organization-management-responsibility.entity-BmDZhqNl.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibility.entity-DfKM6HV7.mjs.map → acorex-modules-organization-management-responsibility.entity-BmDZhqNl.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-settings.provider-DaeJkP0y.mjs → acorex-modules-organization-management-settings.provider-wwGKyBrV.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-settings.provider-DaeJkP0y.mjs.map → acorex-modules-organization-management-settings.provider-wwGKyBrV.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team-business-unit.entity-Cm9qcAG7.mjs → acorex-modules-organization-management-team-business-unit.entity-BmXLb4RI.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team-business-unit.entity-Cm9qcAG7.mjs.map → acorex-modules-organization-management-team-business-unit.entity-BmXLb4RI.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-B3xgLE6N.mjs → acorex-modules-organization-management-team-member-role.entity-C4DGSm2r.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-B3xgLE6N.mjs.map → acorex-modules-organization-management-team-member-role.entity-C4DGSm2r.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team-member.entity-Dk9t9S1r.mjs → acorex-modules-organization-management-team-member.entity-CvVHEzIU.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team-member.entity-Dk9t9S1r.mjs.map → acorex-modules-organization-management-team-member.entity-CvVHEzIU.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team.entity-BbcFYP20.mjs → acorex-modules-organization-management-team.entity-urjULfNp.mjs} +6 -9
- package/fesm2022/acorex-modules-organization-management-team.entity-urjULfNp.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-Dl-3IE-C.mjs → acorex-modules-platform-management-acorex-modules-platform-management-CZMqG3Eq.mjs} +10 -2
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-Dl-3IE-C.mjs.map → acorex-modules-platform-management-acorex-modules-platform-management-CZMqG3Eq.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management-list-registered-data-sources.query-DdDvT0uh.mjs +81 -0
- package/fesm2022/acorex-modules-platform-management-list-registered-data-sources.query-DdDvT0uh.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-Brwqsawl.mjs → acorex-modules-platform-management-menu-list.component-BRA7Q50z.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-Brwqsawl.mjs.map → acorex-modules-platform-management-menu-list.component-BRA7Q50z.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/{acorex-modules-product-catalog-product.entity-aVWXuhlQ.mjs → acorex-modules-product-catalog-product.entity-BbB7GAg7.mjs} +3 -2
- package/fesm2022/acorex-modules-product-catalog-product.entity-BbB7GAg7.mjs.map +1 -0
- package/fesm2022/acorex-modules-product-catalog.mjs +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +231 -137
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-supplier-management.mjs +1 -0
- package/fesm2022/acorex-modules-supplier-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-it-Lf0L_.mjs +6066 -0
- package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-it-Lf0L_.mjs.map +1 -0
- package/fesm2022/{acorex-modules-task-management-task-board.page-DA2563QE.mjs → acorex-modules-task-management-task-board.page-DF4XWz_0.mjs} +260 -87
- package/fesm2022/acorex-modules-task-management-task-board.page-DF4XWz_0.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +1 -5860
- package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-tenant-management.mjs +6 -15
- package/fesm2022/acorex-modules-tenant-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BYJpDQRs.mjs → acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-Dj6LkQeZ.mjs} +5 -5
- package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BYJpDQRs.mjs.map → acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-Dj6LkQeZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-workflow-management-index-C9Qc07oK.mjs → acorex-modules-workflow-management-index-CHySddpP.mjs} +2 -64
- package/fesm2022/acorex-modules-workflow-management-index-CHySddpP.mjs.map +1 -0
- package/fesm2022/{acorex-modules-workflow-management-index-Bx2uYraH.mjs → acorex-modules-workflow-management-index-Eh5DDK-V.mjs} +3 -3
- package/fesm2022/{acorex-modules-workflow-management-index-Bx2uYraH.mjs.map → acorex-modules-workflow-management-index-Eh5DDK-V.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-workflow-management-index-D8fjNgQJ.mjs → acorex-modules-workflow-management-index-V4OesZTq.mjs} +6 -6
- package/fesm2022/{acorex-modules-workflow-management-index-D8fjNgQJ.mjs.map → acorex-modules-workflow-management-index-V4OesZTq.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-workflow-management-workflow-definition.entity-DqPVpcSv.mjs → acorex-modules-workflow-management-workflow-definition.entity-CjQQpjdB.mjs} +1 -16
- package/fesm2022/{acorex-modules-workflow-management-workflow-definition.entity-DqPVpcSv.mjs.map → acorex-modules-workflow-management-workflow-definition.entity-CjQQpjdB.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-workflow-management-workflow-instance.entity-D-KnWlsU.mjs → acorex-modules-workflow-management-workflow-instance.entity-B_V3uMSI.mjs} +30 -20
- package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-B_V3uMSI.mjs.map +1 -0
- package/fesm2022/{acorex-modules-workflow-management-workflow-task-popover.component-NpUx0sB5.mjs → acorex-modules-workflow-management-workflow-task-popover.component-l37iXJIY.mjs} +19 -15
- package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-l37iXJIY.mjs.map +1 -0
- package/fesm2022/acorex-modules-workflow-management.mjs +31 -2383
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-modules-ai-management.d.ts +544 -67
- package/types/acorex-modules-asset-management.d.ts +51 -14
- package/types/acorex-modules-common.d.ts +24 -3
- package/types/acorex-modules-dashboard-management.d.ts +23 -12
- package/types/acorex-modules-document-management.d.ts +18 -2
- package/types/acorex-modules-human-capital-management.d.ts +1 -1
- package/types/acorex-modules-maintenance-management.d.ts +4 -7
- package/types/acorex-modules-reservation-management.d.ts +6 -5
- package/types/acorex-modules-task-management.d.ts +34 -5
- package/types/acorex-modules-workflow-management.d.ts +16 -549
- package/fesm2022/acorex-modules-ai-management-acorex-modules-ai-management-Bqfx8OTv.mjs.map +0 -1
- package/fesm2022/acorex-modules-ai-management-agent-registry-tool-configurator-widget-edit.component-DyczMN-R.mjs.map +0 -1
- package/fesm2022/acorex-modules-ai-management-agent.entity-CpSXisAh.mjs.map +0 -1
- package/fesm2022/acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CYk2rB36.mjs.map +0 -1
- package/fesm2022/acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-BDcW8BRI.mjs.map +0 -1
- package/fesm2022/acorex-modules-ai-management-assist.entity-7uTePpME.mjs.map +0 -1
- package/fesm2022/acorex-modules-ai-management-index-DUojDUau.mjs +0 -2
- package/fesm2022/acorex-modules-ai-management-model.entity-C9J3trsK.mjs.map +0 -1
- package/fesm2022/acorex-modules-ai-management-open-ai-endpoint.entity-kHsxkjEd.mjs.map +0 -1
- package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-BRap9yt6.mjs.map +0 -1
- package/fesm2022/acorex-modules-asset-management-asset-status.rules-BL0Osjqv.mjs.map +0 -1
- package/fesm2022/acorex-modules-asset-management-asset-system.entity-C6ak4u9z.mjs.map +0 -1
- package/fesm2022/acorex-modules-asset-management-asset.entity-BaET-kSd.mjs.map +0 -1
- package/fesm2022/acorex-modules-asset-management-assetLifecycleState.provider-DZ5r2zx7.mjs.map +0 -1
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-yqfev--M.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-Ck9q-IWW.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-employee.entity-DjMQm3VC.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-CfHMiVos.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-zKGo9bOs.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-CzX0phT-.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-CnAHfj2t.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-team.entity-BbcFYP20.mjs.map +0 -1
- package/fesm2022/acorex-modules-product-catalog-product.entity-aVWXuhlQ.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-task-board.page-DA2563QE.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-index-C9Qc07oK.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-D-KnWlsU.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-NpUx0sB5.mjs.map +0 -1
|
@@ -10,7 +10,7 @@ import { CommonModule, AsyncPipe, DatePipe } from '@angular/common';
|
|
|
10
10
|
import * as i0 from '@angular/core';
|
|
11
11
|
import { Injectable, NgModule, inject, output, signal, viewChild, computed, effect, untracked, ChangeDetectionStrategy, Component, input, afterNextRender, DestroyRef, ElementRef, ViewEncapsulation, SecurityContext, Injector, importProvidersFrom } from '@angular/core';
|
|
12
12
|
import { Router, ActivatedRoute, RouterModule, ROUTES } from '@angular/router';
|
|
13
|
-
import * as i1$
|
|
13
|
+
import * as i1$3 from '@acorex/platform/layout/widget-core';
|
|
14
14
|
import { AXPWidgetsCatalog, AXPValueWidgetComponent, AXPWidgetGroupEnum, AXPWidgetCoreModule, AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex/platform/layout/widget-core';
|
|
15
15
|
import * as i1$6 from '@acorex/platform/workflow';
|
|
16
16
|
import { AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
|
|
@@ -19,7 +19,7 @@ import { AXMUsersEntityService } from '@acorex/modules/security-management';
|
|
|
19
19
|
import { Subject, map, filter, merge, auditTime } from 'rxjs';
|
|
20
20
|
import * as i2 from '@acorex/components/button';
|
|
21
21
|
import { AXButtonModule, AXButtonComponent } from '@acorex/components/button';
|
|
22
|
-
import { AXConversationService, AXNewConversationDialogComponent, AXConversationContainerDirective, AXSidebarComponent, AXInfoBarComponent, AXMessageListComponent, AXComposerComponent, AXUserApi, AXConversationApi, AXMessageApi, AXRealtimeApi,
|
|
22
|
+
import { AXConversationService, AXNewConversationDialogComponent, AXConversationContainerDirective, AXSidebarComponent, AXInfoBarComponent, AXMessageListComponent, AXComposerComponent, AXUserApi, AXConversationApi, AXMessageApi, AXRealtimeApi, conversationSharedStorage, axConversationIndexedDbStorage, AXImageRendererComponent, AXTextRendererComponent, provideConversation, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_INFO_BAR_INFO_ACTION, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AXComposerService, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_VOICE_RENDERER, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_STICKER_RENDERER } from '@acorex/components/conversation2';
|
|
23
23
|
import { AXDialogService } from '@acorex/components/dialog';
|
|
24
24
|
import * as i1$1 from '@acorex/components/decorators';
|
|
25
25
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
@@ -58,7 +58,7 @@ import { AXSkeletonModule } from '@acorex/components/skeleton';
|
|
|
58
58
|
import { AXToolBarModule } from '@acorex/components/toolbar';
|
|
59
59
|
import * as i9 from '@acorex/core/format';
|
|
60
60
|
import { AXFormatModule } from '@acorex/core/format';
|
|
61
|
-
import * as i1$
|
|
61
|
+
import * as i1$4 from '@acorex/cdk/accordion';
|
|
62
62
|
import { AXAccordionCdkModule } from '@acorex/cdk/accordion';
|
|
63
63
|
import * as i2$2 from '@acorex/components/badge';
|
|
64
64
|
import { AXBadgeModule } from '@acorex/components/badge';
|
|
@@ -1927,6 +1927,7 @@ class AXMChatWithAssistDialogComponent extends AXBasePageComponent {
|
|
|
1927
1927
|
async loadAssistsFromApi() {
|
|
1928
1928
|
this.loading.set(true);
|
|
1929
1929
|
try {
|
|
1930
|
+
//TODO: use .withEntity().data() instead of entityRegistry.resolve()
|
|
1930
1931
|
const entity = await this.entityRegistry.resolve(RootConfig$1.module.name, RootConfig$1.entities.assist.name);
|
|
1931
1932
|
const execute = entity.queries?.list?.execute;
|
|
1932
1933
|
if (!execute) {
|
|
@@ -1937,7 +1938,7 @@ class AXMChatWithAssistDialogComponent extends AXBasePageComponent {
|
|
|
1937
1938
|
take: 500,
|
|
1938
1939
|
sort: [{ name: 'name', dir: 'asc' }],
|
|
1939
1940
|
});
|
|
1940
|
-
this.rows.set((res.items ?? [])
|
|
1941
|
+
this.rows.set((res.items ?? []));
|
|
1941
1942
|
}
|
|
1942
1943
|
catch (error) {
|
|
1943
1944
|
console.error('Failed to load assists:', error);
|
|
@@ -1959,16 +1960,8 @@ class AXMChatWithAssistDialogComponent extends AXBasePageComponent {
|
|
|
1959
1960
|
r.title.toLowerCase().includes(q) ||
|
|
1960
1961
|
(r.description?.toLowerCase().includes(q) ?? false));
|
|
1961
1962
|
}
|
|
1962
|
-
normalizeRow(raw) {
|
|
1963
|
-
const id = String(raw['id'] ?? '');
|
|
1964
|
-
const name = String(raw['name'] ?? '');
|
|
1965
|
-
const title = String(raw['title'] ?? name);
|
|
1966
|
-
const description = raw['description'] != null ? String(raw['description']) : undefined;
|
|
1967
|
-
const professionImageUrl = raw['professionImageUrl'] != null ? String(raw['professionImageUrl']) : undefined;
|
|
1968
|
-
return { id, name, title, description, professionImageUrl };
|
|
1969
|
-
}
|
|
1970
1963
|
displayName(row) {
|
|
1971
|
-
return row.title?.trim() || row.name?.trim() || row.id;
|
|
1964
|
+
return this.translationService.resolve(row.title)?.trim() || row.name?.trim() || row.id;
|
|
1972
1965
|
}
|
|
1973
1966
|
assistAvatarUrl(row) {
|
|
1974
1967
|
const avatarUrl = row.professionImageUrl?.trim();
|
|
@@ -2085,7 +2078,7 @@ class AXMChatWithAssistDialogComponent extends AXBasePageComponent {
|
|
|
2085
2078
|
<!-- <input class="ax-checkbox" type="checkbox" [checked]="isAssistSelected(row.id)" tabindex="0" /> -->
|
|
2086
2079
|
<ax-avatar [size]="54">
|
|
2087
2080
|
@if (assistAvatarUrl(row); as avatarUrl) {
|
|
2088
|
-
<ax-image [src]="avatarUrl" [alt]="displayName(row)"></ax-image>
|
|
2081
|
+
<ax-image [src]="avatarUrl" [alt]="displayName(row) | translate | async"></ax-image>
|
|
2089
2082
|
} @else {
|
|
2090
2083
|
<ax-icon
|
|
2091
2084
|
><i
|
|
@@ -2102,9 +2095,9 @@ class AXMChatWithAssistDialogComponent extends AXBasePageComponent {
|
|
|
2102
2095
|
}
|
|
2103
2096
|
</ax-avatar>
|
|
2104
2097
|
<div class="user-item-text">
|
|
2105
|
-
<span class="ax-truncated user-name-text">{{ displayName(row) }}</span>
|
|
2098
|
+
<span class="ax-truncated user-name-text">{{ displayName(row) | translate | async }}</span>
|
|
2106
2099
|
@if (row.description) {
|
|
2107
|
-
<span class="user-description-text ax-truncated">{{ row.description }}</span>
|
|
2100
|
+
<span class="user-description-text ax-truncated">{{ row.description | translate | async }}</span>
|
|
2108
2101
|
}
|
|
2109
2102
|
</div>
|
|
2110
2103
|
</div>
|
|
@@ -2192,7 +2185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2192
2185
|
<!-- <input class="ax-checkbox" type="checkbox" [checked]="isAssistSelected(row.id)" tabindex="0" /> -->
|
|
2193
2186
|
<ax-avatar [size]="54">
|
|
2194
2187
|
@if (assistAvatarUrl(row); as avatarUrl) {
|
|
2195
|
-
<ax-image [src]="avatarUrl" [alt]="displayName(row)"></ax-image>
|
|
2188
|
+
<ax-image [src]="avatarUrl" [alt]="displayName(row) | translate | async"></ax-image>
|
|
2196
2189
|
} @else {
|
|
2197
2190
|
<ax-icon
|
|
2198
2191
|
><i
|
|
@@ -2209,9 +2202,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2209
2202
|
}
|
|
2210
2203
|
</ax-avatar>
|
|
2211
2204
|
<div class="user-item-text">
|
|
2212
|
-
<span class="ax-truncated user-name-text">{{ displayName(row) }}</span>
|
|
2205
|
+
<span class="ax-truncated user-name-text">{{ displayName(row) | translate | async }}</span>
|
|
2213
2206
|
@if (row.description) {
|
|
2214
|
-
<span class="user-description-text ax-truncated">{{ row.description }}</span>
|
|
2207
|
+
<span class="user-description-text ax-truncated">{{ row.description | translate | async }}</span>
|
|
2215
2208
|
}
|
|
2216
2209
|
</div>
|
|
2217
2210
|
</div>
|
|
@@ -3658,7 +3651,6 @@ class AXMChatInfoBarAssistModelActionComponent {
|
|
|
3658
3651
|
//#endregion
|
|
3659
3652
|
//#region ---- Services & Dependencies ----
|
|
3660
3653
|
this.modelCatalog = inject(AXPAiAssistChatModelCatalogService);
|
|
3661
|
-
this.conversationStore = inject(AXConversationStoreService);
|
|
3662
3654
|
this.entityService = inject(AXPEntityService);
|
|
3663
3655
|
this.settingsService = inject(AXPSettingsService);
|
|
3664
3656
|
this.debugModeEnabled = signal(false, ...(ngDevMode ? [{ debugName: "debugModeEnabled" }] : /* istanbul ignore next */ []));
|
|
@@ -3729,9 +3721,6 @@ class AXMChatInfoBarAssistModelActionComponent {
|
|
|
3729
3721
|
}
|
|
3730
3722
|
/** Writes modelEntityId into conversation metadata (in-memory store + IndexedDB). */
|
|
3731
3723
|
persistModelToMetadata(conversationId, modelEntityId) {
|
|
3732
|
-
this.conversationStore.updateConversation(conversationId, {
|
|
3733
|
-
metadata: { modelEntityId },
|
|
3734
|
-
});
|
|
3735
3724
|
const stored = conversationSharedStorage.conversations.get(conversationId);
|
|
3736
3725
|
if (stored) {
|
|
3737
3726
|
stored.metadata = { ...(stored.metadata ?? {}), modelEntityId };
|
|
@@ -3905,17 +3894,46 @@ function axmReadAssistAiTranscript(metadata) {
|
|
|
3905
3894
|
}
|
|
3906
3895
|
//#endregion
|
|
3907
3896
|
//#region ---- Layout / synthetic helpers ----
|
|
3897
|
+
/**
|
|
3898
|
+
* Transcript response discriminators ({@link AXPAiChatResponse} `type` values).
|
|
3899
|
+
* These must not be treated as {@link AXPWidgetNode} `type` when coercing unknown JSON.
|
|
3900
|
+
*/
|
|
3901
|
+
const AXM_ASSIST_TRANSCRIPT_NON_WIDGET_TYPES = new Set([
|
|
3902
|
+
'text',
|
|
3903
|
+
'think',
|
|
3904
|
+
'image',
|
|
3905
|
+
'audio',
|
|
3906
|
+
'file',
|
|
3907
|
+
'tool',
|
|
3908
|
+
'agent',
|
|
3909
|
+
'tool_result',
|
|
3910
|
+
'agent_result',
|
|
3911
|
+
]);
|
|
3912
|
+
const AXM_ASSIST_NODE_ENVELOPE_UNWRAP_MAX_DEPTH = 6;
|
|
3908
3913
|
/**
|
|
3909
3914
|
* Returns `content` as an {@link AXPWidgetNode} when it looks like a widget tree.
|
|
3915
|
+
* Rejects assistant transcript segment shapes (e.g. `{ type: 'text', content: '...' }`) and unwraps
|
|
3916
|
+
* a single `{ type: 'node', content: <widget> }` envelope if present.
|
|
3910
3917
|
*/
|
|
3911
|
-
function axmAssistWidgetNodeFromUnknown(content) {
|
|
3912
|
-
if (
|
|
3913
|
-
|
|
3914
|
-
!Array.isArray(content) &&
|
|
3915
|
-
typeof content['type'] === 'string') {
|
|
3916
|
-
return content;
|
|
3918
|
+
function axmAssistWidgetNodeFromUnknown(content, depth = 0) {
|
|
3919
|
+
if (depth > AXM_ASSIST_NODE_ENVELOPE_UNWRAP_MAX_DEPTH) {
|
|
3920
|
+
return null;
|
|
3917
3921
|
}
|
|
3918
|
-
|
|
3922
|
+
if (content == null || typeof content !== 'object' || Array.isArray(content)) {
|
|
3923
|
+
return null;
|
|
3924
|
+
}
|
|
3925
|
+
const rec = content;
|
|
3926
|
+
const t = rec['type'];
|
|
3927
|
+
if (typeof t !== 'string') {
|
|
3928
|
+
return null;
|
|
3929
|
+
}
|
|
3930
|
+
if (t === 'node' && 'content' in rec) {
|
|
3931
|
+
return axmAssistWidgetNodeFromUnknown(rec['content'], depth + 1);
|
|
3932
|
+
}
|
|
3933
|
+
if (AXM_ASSIST_TRANSCRIPT_NON_WIDGET_TYPES.has(t)) {
|
|
3934
|
+
return null;
|
|
3935
|
+
}
|
|
3936
|
+
return content;
|
|
3919
3937
|
}
|
|
3920
3938
|
/**
|
|
3921
3939
|
* Returns the first `node` segment's content as an {@link AXPWidgetNode} when it looks like a widget tree.
|
|
@@ -4089,8 +4107,10 @@ function renderInlineMarkdown(raw) {
|
|
|
4089
4107
|
function normalizeInput(raw) {
|
|
4090
4108
|
return (raw ?? '')
|
|
4091
4109
|
.replace(/\r\n/g, '\n')
|
|
4092
|
-
|
|
4093
|
-
.replace(
|
|
4110
|
+
// Line breaks: any HTML <br> variant (with attributes, XHTML-style, case-insensitive).
|
|
4111
|
+
.replace(/<\s*br\b[^>]*>/gi, '\n')
|
|
4112
|
+
// Same when the tag was HTML-escaped in the source (e.g. rich text or double-encoded snippets).
|
|
4113
|
+
.replace(/<\s*br\b[\s\S]*?>/gi, '\n')
|
|
4094
4114
|
.replace(/\n?<\s*hr\s*\/?\s*>\n?/gi, '\n\n---\n\n')
|
|
4095
4115
|
.replace(/\t/g, ' ')
|
|
4096
4116
|
.trim();
|
|
@@ -4245,6 +4265,206 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
4245
4265
|
`, styles: [":host{display:block;max-inline-size:min(100%,40rem)}.axm-assist-bot-image-line__err{margin:0;font-size:.8125rem;color:rgb(var(--ax-sys-color-danger-600, 220 38 38))}\n"] }]
|
|
4246
4266
|
}], ctorParameters: () => [], propDecorators: { parentMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentMessage", required: true }] }], fileId: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileId", required: true }] }], mimeType: [{ type: i0.Input, args: [{ isSignal: true, alias: "mimeType", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }] } });
|
|
4247
4267
|
|
|
4268
|
+
class AXMNodeMessageRendererComponent {
|
|
4269
|
+
constructor() {
|
|
4270
|
+
//#region ---- Inputs & Outputs ----
|
|
4271
|
+
this.message = input.required(...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
|
|
4272
|
+
this.node = input(undefined, ...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
|
|
4273
|
+
this.formSubmitted = output();
|
|
4274
|
+
//#endregion
|
|
4275
|
+
//#region ---- State ----
|
|
4276
|
+
this.contentState = signal('none', ...(ngDevMode ? [{ debugName: "contentState" }] : /* istanbul ignore next */ []));
|
|
4277
|
+
this.formContext = signal({}, ...(ngDevMode ? [{ debugName: "formContext" }] : /* istanbul ignore next */ []));
|
|
4278
|
+
this.isSubmitted = computed(() => this.readSubmittedState(this.message()), ...(ngDevMode ? [{ debugName: "isSubmitted" }] : /* istanbul ignore next */ []));
|
|
4279
|
+
this.isAssistEmbed = computed(() => this.readAssistEmbedFlag(this.message().metadata), ...(ngDevMode ? [{ debugName: "isAssistEmbed" }] : /* istanbul ignore next */ []));
|
|
4280
|
+
this.rendererState = computed(() => ({
|
|
4281
|
+
deliveryStatus: this.message().status,
|
|
4282
|
+
contentState: this.contentState(),
|
|
4283
|
+
}), ...(ngDevMode ? [{ debugName: "rendererState" }] : /* istanbul ignore next */ []));
|
|
4284
|
+
this.resolvedNode = computed(() => {
|
|
4285
|
+
const message = this.message();
|
|
4286
|
+
const payload = message.payload;
|
|
4287
|
+
if (this.isUserFormPayload(payload)) {
|
|
4288
|
+
return payload.node;
|
|
4289
|
+
}
|
|
4290
|
+
// Only treat `{ type: 'node', content }` when the chat message itself is a `node` message.
|
|
4291
|
+
if (message.type === 'node' && this.isNodeContentPayload(payload)) {
|
|
4292
|
+
const parsed = axmAssistWidgetNodeFromUnknown(payload.content);
|
|
4293
|
+
if (parsed) {
|
|
4294
|
+
return parsed;
|
|
4295
|
+
}
|
|
4296
|
+
if (this.readAssistEmbedFlag(message.metadata)) {
|
|
4297
|
+
// Assist embed: do not fall back to a synthetic name field (avoids a duplicate/spurious form).
|
|
4298
|
+
return {
|
|
4299
|
+
type: 'flex-layout',
|
|
4300
|
+
name: 'assist-node-empty',
|
|
4301
|
+
visible: false,
|
|
4302
|
+
children: [],
|
|
4303
|
+
};
|
|
4304
|
+
}
|
|
4305
|
+
}
|
|
4306
|
+
return this.node() ?? this.createFallbackNode();
|
|
4307
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedNode" }] : /* istanbul ignore next */ []));
|
|
4308
|
+
this.submittedMessage = computed(() => {
|
|
4309
|
+
return '@conversation:chat.user-form.states.submitted-success';
|
|
4310
|
+
}, ...(ngDevMode ? [{ debugName: "submittedMessage" }] : /* istanbul ignore next */ []));
|
|
4311
|
+
}
|
|
4312
|
+
//#endregion
|
|
4313
|
+
//#region ---- Handlers ----
|
|
4314
|
+
onContextChanged(event) {
|
|
4315
|
+
this.formContext.set((event.data ?? {}));
|
|
4316
|
+
}
|
|
4317
|
+
submit() {
|
|
4318
|
+
const context = this.formContext();
|
|
4319
|
+
this.formSubmitted.emit(context);
|
|
4320
|
+
void this.persistSubmittedState(context);
|
|
4321
|
+
}
|
|
4322
|
+
//#endregion
|
|
4323
|
+
//#region ---- Utilities ----
|
|
4324
|
+
isUserFormPayload(payload) {
|
|
4325
|
+
return (typeof payload === 'object' &&
|
|
4326
|
+
payload != null &&
|
|
4327
|
+
'type' in payload &&
|
|
4328
|
+
payload.type === 'user-form' &&
|
|
4329
|
+
'node' in payload);
|
|
4330
|
+
}
|
|
4331
|
+
isNodeContentPayload(payload) {
|
|
4332
|
+
return (typeof payload === 'object' &&
|
|
4333
|
+
payload != null &&
|
|
4334
|
+
'type' in payload &&
|
|
4335
|
+
payload.type === 'node' &&
|
|
4336
|
+
'content' in payload);
|
|
4337
|
+
}
|
|
4338
|
+
readAssistEmbedFlag(metadata) {
|
|
4339
|
+
if (typeof metadata !== 'object' || metadata == null) {
|
|
4340
|
+
return false;
|
|
4341
|
+
}
|
|
4342
|
+
return metadata['assistEmbed'] === true;
|
|
4343
|
+
}
|
|
4344
|
+
createFallbackNode() {
|
|
4345
|
+
return {
|
|
4346
|
+
type: 'text-editor',
|
|
4347
|
+
path: 'form.name',
|
|
4348
|
+
name: 'name',
|
|
4349
|
+
options: { placeholder: '@conversation:chat.user-form.fields.name.placeholder' },
|
|
4350
|
+
};
|
|
4351
|
+
}
|
|
4352
|
+
readSubmittedState(message) {
|
|
4353
|
+
const metadata = this.readUserFormMetadata(message.metadata);
|
|
4354
|
+
return metadata?.submitted === true;
|
|
4355
|
+
}
|
|
4356
|
+
readPersistedContext(message) {
|
|
4357
|
+
const metadata = this.readUserFormMetadata(message.metadata);
|
|
4358
|
+
if (!metadata?.context || typeof metadata.context !== 'object') {
|
|
4359
|
+
return null;
|
|
4360
|
+
}
|
|
4361
|
+
return metadata.context;
|
|
4362
|
+
}
|
|
4363
|
+
readUserFormMetadata(metadata) {
|
|
4364
|
+
if (typeof metadata !== 'object' || metadata == null) {
|
|
4365
|
+
return null;
|
|
4366
|
+
}
|
|
4367
|
+
const candidate = metadata['userForm'];
|
|
4368
|
+
if (typeof candidate !== 'object' || candidate == null) {
|
|
4369
|
+
return null;
|
|
4370
|
+
}
|
|
4371
|
+
return candidate;
|
|
4372
|
+
}
|
|
4373
|
+
async persistSubmittedState(context) {
|
|
4374
|
+
const message = this.message();
|
|
4375
|
+
const payload = this.message().payload;
|
|
4376
|
+
const payloadWithValue = this.isUserFormPayload(payload)
|
|
4377
|
+
? { ...payload, value: context }
|
|
4378
|
+
: this.message().payload;
|
|
4379
|
+
const updatedMessage = {
|
|
4380
|
+
...message,
|
|
4381
|
+
payload: payloadWithValue,
|
|
4382
|
+
metadata: {
|
|
4383
|
+
...(message.metadata ?? {}),
|
|
4384
|
+
userForm: {
|
|
4385
|
+
submitted: true,
|
|
4386
|
+
context,
|
|
4387
|
+
},
|
|
4388
|
+
},
|
|
4389
|
+
};
|
|
4390
|
+
conversationSharedStorage.messages.set(updatedMessage.id, updatedMessage);
|
|
4391
|
+
await axConversationIndexedDbStorage.putMessage(updatedMessage);
|
|
4392
|
+
conversationSharedStorage.messageUpdates$.next(updatedMessage);
|
|
4393
|
+
}
|
|
4394
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMNodeMessageRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4395
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMNodeMessageRendererComponent, isStandalone: true, selector: "axm-chat-user-form-renderer", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formSubmitted: "formSubmitted" }, ngImport: i0, template: `
|
|
4396
|
+
<div class="axm-user-form-renderer" [class.axm-user-form-renderer--assist-embed]="isAssistEmbed()">
|
|
4397
|
+
@if (isAssistEmbed()) {
|
|
4398
|
+
<axp-layout-renderer [layout]="resolvedNode()" mode="view" [context]="{}" />
|
|
4399
|
+
} @else if (!isSubmitted()) {
|
|
4400
|
+
<axp-widgets-container
|
|
4401
|
+
class="ax-flex ax-flex-col ax-gap-3"
|
|
4402
|
+
[context]="formContext()"
|
|
4403
|
+
(onContextChanged)="onContextChanged($event)"
|
|
4404
|
+
>
|
|
4405
|
+
<ng-container
|
|
4406
|
+
axp-widget-renderer
|
|
4407
|
+
[node]="resolvedNode()"
|
|
4408
|
+
[mode]="resolvedNode().mode ?? 'edit'"
|
|
4409
|
+
></ng-container>
|
|
4410
|
+
</axp-widgets-container>
|
|
4411
|
+
|
|
4412
|
+
<div class="ax-flex ax-justify-end ax-mt-2">
|
|
4413
|
+
<ax-button [text]="('@conversation:chat.user-form.actions.submit' | translate | async) ?? ''" (onClick)="submit()"></ax-button>
|
|
4414
|
+
</div>
|
|
4415
|
+
} @else {
|
|
4416
|
+
<div
|
|
4417
|
+
class="ax-mt-1 ax-rounded-xl ax-border ax-border-success-500/25 ax-bg-success-500/10 ax-px-3 ax-py-2 ax-shadow-sm"
|
|
4418
|
+
>
|
|
4419
|
+
<div class="ax-text-[0.7rem] ax-font-bold ax-uppercase ax-tracking-wide ax-text-success-700">
|
|
4420
|
+
{{ '@conversation:chat.user-form.states.submitted' | translate | async }}
|
|
4421
|
+
</div>
|
|
4422
|
+
<div class="ax-mt-1 ax-text-sm ax-font-medium ax-text-on-surface">
|
|
4423
|
+
{{ (submittedMessage() | translate | async) ?? '' }}
|
|
4424
|
+
</div>
|
|
4425
|
+
</div>
|
|
4426
|
+
}
|
|
4427
|
+
</div>
|
|
4428
|
+
`, isInline: true, styles: [":host{display:block;inline-size:min(100%,28rem)}:host:has(.axm-user-form-renderer--assist-embed){inline-size:100%;max-inline-size:none}\n"], dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1$3.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i1$3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPLayoutRendererComponent, selector: "axp-layout-renderer", inputs: ["layout", "context", "look", "mode"], outputs: ["contextChange", "contextInitiated", "validityChange"] }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4429
|
+
}
|
|
4430
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMNodeMessageRendererComponent, decorators: [{
|
|
4431
|
+
type: Component,
|
|
4432
|
+
args: [{ selector: 'axm-chat-user-form-renderer', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPWidgetCoreModule, AXButtonModule, AXTranslationModule, AXPLayoutRendererComponent, AsyncPipe], template: `
|
|
4433
|
+
<div class="axm-user-form-renderer" [class.axm-user-form-renderer--assist-embed]="isAssistEmbed()">
|
|
4434
|
+
@if (isAssistEmbed()) {
|
|
4435
|
+
<axp-layout-renderer [layout]="resolvedNode()" mode="view" [context]="{}" />
|
|
4436
|
+
} @else if (!isSubmitted()) {
|
|
4437
|
+
<axp-widgets-container
|
|
4438
|
+
class="ax-flex ax-flex-col ax-gap-3"
|
|
4439
|
+
[context]="formContext()"
|
|
4440
|
+
(onContextChanged)="onContextChanged($event)"
|
|
4441
|
+
>
|
|
4442
|
+
<ng-container
|
|
4443
|
+
axp-widget-renderer
|
|
4444
|
+
[node]="resolvedNode()"
|
|
4445
|
+
[mode]="resolvedNode().mode ?? 'edit'"
|
|
4446
|
+
></ng-container>
|
|
4447
|
+
</axp-widgets-container>
|
|
4448
|
+
|
|
4449
|
+
<div class="ax-flex ax-justify-end ax-mt-2">
|
|
4450
|
+
<ax-button [text]="('@conversation:chat.user-form.actions.submit' | translate | async) ?? ''" (onClick)="submit()"></ax-button>
|
|
4451
|
+
</div>
|
|
4452
|
+
} @else {
|
|
4453
|
+
<div
|
|
4454
|
+
class="ax-mt-1 ax-rounded-xl ax-border ax-border-success-500/25 ax-bg-success-500/10 ax-px-3 ax-py-2 ax-shadow-sm"
|
|
4455
|
+
>
|
|
4456
|
+
<div class="ax-text-[0.7rem] ax-font-bold ax-uppercase ax-tracking-wide ax-text-success-700">
|
|
4457
|
+
{{ '@conversation:chat.user-form.states.submitted' | translate | async }}
|
|
4458
|
+
</div>
|
|
4459
|
+
<div class="ax-mt-1 ax-text-sm ax-font-medium ax-text-on-surface">
|
|
4460
|
+
{{ (submittedMessage() | translate | async) ?? '' }}
|
|
4461
|
+
</div>
|
|
4462
|
+
</div>
|
|
4463
|
+
}
|
|
4464
|
+
</div>
|
|
4465
|
+
`, styles: [":host{display:block;inline-size:min(100%,28rem)}:host:has(.axm-user-form-renderer--assist-embed){inline-size:100%;max-inline-size:none}\n"] }]
|
|
4466
|
+
}], propDecorators: { message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: true }] }], node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: false }] }], formSubmitted: [{ type: i0.Output, args: ["formSubmitted"] }] } });
|
|
4467
|
+
|
|
4248
4468
|
//#region ---- Imports ----
|
|
4249
4469
|
//#endregion
|
|
4250
4470
|
//#region ---- Component ----
|
|
@@ -4263,6 +4483,7 @@ class AXMAssistMessageRendererComponent {
|
|
|
4263
4483
|
this.entityService = inject(AXPEntityService);
|
|
4264
4484
|
this.settingsService = inject(AXPSettingsService);
|
|
4265
4485
|
this.sanitizer = inject(DomSanitizer);
|
|
4486
|
+
this.translation = inject(AXTranslationService);
|
|
4266
4487
|
this.agentData = this.entityService
|
|
4267
4488
|
.withEntity(RootConfig$1.module.name, RootConfig$1.entities.agent.name)
|
|
4268
4489
|
.data();
|
|
@@ -4382,6 +4603,12 @@ class AXMAssistMessageRendererComponent {
|
|
|
4382
4603
|
payload: { type: 'text', text },
|
|
4383
4604
|
});
|
|
4384
4605
|
}
|
|
4606
|
+
syntheticNodeEmbedMessage(lineIndex, segIndex, content) {
|
|
4607
|
+
return axmSyntheticEmbedMessage(this.message(), `node-${lineIndex}-${segIndex}`, {
|
|
4608
|
+
type: 'node',
|
|
4609
|
+
payload: { type: 'node', content },
|
|
4610
|
+
});
|
|
4611
|
+
}
|
|
4385
4612
|
renderMarkdown(raw) {
|
|
4386
4613
|
return axmRenderAssistMarkdown(raw, this.sanitizer);
|
|
4387
4614
|
}
|
|
@@ -4597,7 +4824,7 @@ class AXMAssistMessageRendererComponent {
|
|
|
4597
4824
|
void this.agentData
|
|
4598
4825
|
.byKey(agentId)
|
|
4599
4826
|
.then((agent) => {
|
|
4600
|
-
const title = (agent?.title?.trim() || agent?.name?.trim() || agent?.id || agentId).trim();
|
|
4827
|
+
const title = (this.translation.resolve(agent?.title)?.trim() || agent?.name?.trim() || agent?.id || agentId).trim();
|
|
4601
4828
|
this.agentTitleById.update((current) => ({ ...current, [agentId]: title }));
|
|
4602
4829
|
})
|
|
4603
4830
|
.catch(() => {
|
|
@@ -4880,7 +5107,7 @@ class AXMAssistMessageRendererComponent {
|
|
|
4880
5107
|
></i>
|
|
4881
5108
|
<i class="fa-light fa-screwdriver-wrench axm-assist-renderer__tool-title-icon"></i>
|
|
4882
5109
|
{{ resolveToolDisplayTitle(seg.content.command) }}
|
|
4883
|
-
</span>
|
|
5110
|
+
</span>
|
|
4884
5111
|
</div>
|
|
4885
5112
|
<span
|
|
4886
5113
|
class="axm-assist-renderer__accordion-header-badge axm-assist-renderer__accordion-header-badge--primary"
|
|
@@ -5015,9 +5242,10 @@ class AXMAssistMessageRendererComponent {
|
|
|
5015
5242
|
</div>
|
|
5016
5243
|
</div>
|
|
5017
5244
|
} @else if (line.role === 'assistant' && seg.type === 'node') {
|
|
5018
|
-
@
|
|
5245
|
+
@let assistNodeWidget = axmAssistWidgetNodeFromUnknown(seg.content);
|
|
5246
|
+
@if (assistNodeWidget) {
|
|
5019
5247
|
<div class="axm-assist-bot__segment" dir="auto">
|
|
5020
|
-
<
|
|
5248
|
+
<axm-chat-user-form-renderer [message]="syntheticNodeEmbedMessage(lineIndex, segIndex, seg.content)" />
|
|
5021
5249
|
</div>
|
|
5022
5250
|
}
|
|
5023
5251
|
} @else if (line.role === 'assistant' && seg.type === 'image') {
|
|
@@ -5471,13 +5699,13 @@ class AXMAssistMessageRendererComponent {
|
|
|
5471
5699
|
}
|
|
5472
5700
|
}
|
|
5473
5701
|
</div>
|
|
5474
|
-
`, isInline: true, styles: [".axm-assist-renderer{display:flex;flex-direction:column;gap:.5rem}.axm-assist-bot{display:flex;flex-direction:column;gap:.75rem}.axm-assist-bot__segment{unicode-bidi:isolate;font-size:.95rem;line-height:1.8;letter-spacing:.002em;color:rgb(var(--ax-sys-color-on-surface));text-wrap:pretty}.axm-assist-bot__line--user{align-self:flex-end}.axm-assist-bot__line--tool-role{align-self:stretch}.axm-assist-bot__tool-result{border-radius:.5rem;border:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .1));background:var(--ax-color-surface, rgba(0, 0, 0, .02));padding:.5rem .75rem}.axm-assist-bot__fallback{font-size:.88rem;line-height:1.75;white-space:pre-wrap;word-break:break-word;opacity:.9}.axm-assist-renderer__cursor{display:inline-block;inline-size:6px;block-size:1em;margin-inline-start:2px;background:var(--ax-color-primary-500);border-radius:1px;animation:axm-blink .8s steps(2) infinite;vertical-align:text-bottom}@keyframes axm-blink{0%{opacity:1}50%{opacity:0}}.axm-assist-renderer__stream-content{display:flex;flex-direction:column;gap:.5rem}.axm-assist-renderer__streaming-activity{display:flex;align-items:center;gap:.5rem;padding-block:.15rem}.axm-assist-renderer__activity-label{line-height:1.45}.axm-assist-renderer__text{white-space:pre-line;word-break:break-word;line-height:1.85;font-size:.95rem;letter-spacing:.002em;text-wrap:pretty}.axm-assist-bot__segment ax-conversation-text-renderer{display:block}.axm-assist-bot__segment ax-conversation-text-renderer :is(p,ul,ol){margin-block:.45rem}.axm-assist-bot__segment ax-conversation-text-renderer li{line-height:1.8}.axm-assist-renderer__markdown :is(h1,h2,h3,h4,h5,h6){margin:.55rem 0 .35rem;line-height:1.35;font-weight:600}.axm-assist-renderer__markdown p{margin:.35rem 0}.axm-assist-renderer__markdown ul{margin:.4rem 0;padding-inline-start:1.1rem}.axm-assist-renderer__markdown blockquote{margin:.5rem 0;padding-inline:.65rem .5rem;border-inline-start:3px solid rgba(var(--ax-sys-color-primary),.35);background:rgba(var(--ax-sys-color-primary),.06);border-radius:.25rem}.axm-assist-renderer__markdown code{font-family:var(--ax-font-mono, monospace);font-size:.9em;padding:.1rem .3rem;border-radius:.25rem;background:var(--ax-color-ghost, rgba(0, 0, 0, .06))}.axm-assist-renderer__accordion-group{width:100%}.axm-assist-renderer__accordion-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem .75rem;cursor:pointer;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.axm-assist-renderer__accordion-header-main{min-inline-size:0;display:flex;flex-direction:column;gap:.1rem}.axm-assist-renderer__accordion-header-title{font-size:.78rem;line-height:1.2;font-weight:600;color:var(--ax-color-text-primary, #111827);display:inline-flex;align-items:center;gap:.35rem}.axm-assist-renderer__accordion-header-badge{flex-shrink:0}.axm-assist-renderer__accordion-header-badge--primary{background:rgba(var(--ax-sys-color-primary),.12);border-color:rgba(var(--ax-sys-color-primary),.25);color:rgb(var(--ax-sys-color-primary))}.axm-assist-renderer__accordion-header-badge--success{background:#16a34a1f;border-color:#16a34a40;color:#15803d}.axm-assist-renderer__accordion-header-badge--danger{background:#dc26261f;border-color:#dc262640;color:#b91c1c}.axm-assist-renderer__accordion-header--thinking{background:linear-gradient(180deg,#f59e0b1f,#f59e0b0a),var(--ax-color-surface, #fff)}.axm-assist-renderer__thinking-chevron{display:inline-block;font-size:.65rem;opacity:.75;transition:transform .2s ease;line-height:1;flex-shrink:0}.axm-assist-renderer__thinking-chevron--expanded{transform:rotate(180deg)}.axm-assist-renderer__thinking-body{padding:0 .75rem .625rem;font-size:.75rem;color:var(--ax-color-text-muted, #888);white-space:pre-wrap;word-break:break-word;line-height:1.5;border-block-start:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .06));padding-block-start:.5rem}.axm-assist-renderer__tools{display:flex;flex-direction:column;gap:.375rem}.axm-assist-renderer__tool-card{border-radius:.5rem;border:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .08));background:var(--ax-color-surface, rgba(255, 255, 255, .6));overflow:hidden}.axm-assist-renderer__tool-body{padding:.5rem .75rem .625rem;border-block-start:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .06));display:flex;flex-direction:column;gap:.25rem}.axm-assist-renderer__tool-section-label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ax-color-text-muted, #888)}.axm-assist-renderer__tool-pre{margin:0;max-block-size:10rem;overflow:auto;border-radius:.375rem;background:var(--ax-color-ghost, rgba(0, 0, 0, .03));padding:.5rem;font-family:var(--ax-font-mono, monospace);font-size:.675rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}.axm-assist-renderer__tool-editor-wrap{border-radius:.375rem;overflow:hidden}.axm-assist-renderer__waiting{display:flex;gap:.25rem;padding:.25rem 0}.axm-assist-renderer__dot{inline-size:6px;block-size:6px;border-radius:50%;background:var(--ax-color-text-muted, #999);animation:axm-blink 1.2s ease-in-out infinite}.axm-assist-renderer__dot:nth-child(2){animation-delay:.2s}.axm-assist-renderer__dot:nth-child(3){animation-delay:.4s}.axm-assist-renderer__agent-live-block{border-radius:.75rem;border:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .1));background:var(--ax-color-surface, rgba(255, 255, 255, .72));padding:.75rem .875rem;display:flex;flex-direction:column;gap:.65rem;max-inline-size:min(42rem,100%)}.axm-assist-renderer__agent-live-block--in-accordion{border:none;border-radius:0;background:transparent;padding:.5rem 0 0;max-inline-size:none}.axm-assist-renderer__agent-live-header{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.axm-assist-renderer__agent-live-title{font-size:.8125rem;font-weight:600;color:var(--ax-color-text-primary, #111827);flex:1;min-inline-size:0}.axm-assist-renderer__agent-live-prompt{font-size:.8125rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;padding:.5rem .75rem;border-radius:1.25rem;background:var(--ax-color-ghost, rgba(0, 0, 0, .05));align-self:flex-end;max-inline-size:min(92%,36rem)}.axm-assist-renderer__agent-live-stream{font-size:.8125rem;line-height:1.55;white-space:pre-line;word-break:break-word;padding-block-start:.15rem}.axm-assist-renderer__agent-live-nested-tools{display:flex;flex-direction:column;gap:.35rem;padding-block-start:.15rem;border-block-start:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .08))}.axm-assist-renderer__agent-live-nested-row{display:flex;align-items:center;gap:.45rem;font-size:.72rem}.axm-assist-renderer__agent-live-nested-name{font-family:var(--ax-font-mono, monospace);font-size:.7rem;flex:1;min-inline-size:0;overflow:hidden;text-overflow:ellipsis}.axm-assist-renderer__agent-live-nested-status{color:var(--ax-color-text-muted, #888);flex-shrink:0}\n"], dependencies: [{ kind: "component", type: AXTextRendererComponent, selector: "ax-conversation-text-renderer", inputs: ["message"] }, { kind: "component", type:
|
|
5702
|
+
`, isInline: true, styles: [".axm-assist-renderer{display:flex;flex-direction:column;gap:.5rem}.axm-assist-bot{display:flex;flex-direction:column;gap:.75rem}.axm-assist-bot__segment{unicode-bidi:isolate;font-size:.95rem;line-height:1.8;letter-spacing:.002em;color:rgb(var(--ax-sys-color-on-surface));text-wrap:pretty}.axm-assist-bot__line--user{align-self:flex-end}.axm-assist-bot__line--tool-role{align-self:stretch}.axm-assist-bot__tool-result{border-radius:.5rem;border:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .1));background:var(--ax-color-surface, rgba(0, 0, 0, .02));padding:.5rem .75rem}.axm-assist-bot__fallback{font-size:.88rem;line-height:1.75;white-space:pre-wrap;word-break:break-word;opacity:.9}.axm-assist-renderer__cursor{display:inline-block;inline-size:6px;block-size:1em;margin-inline-start:2px;background:var(--ax-color-primary-500);border-radius:1px;animation:axm-blink .8s steps(2) infinite;vertical-align:text-bottom}@keyframes axm-blink{0%{opacity:1}50%{opacity:0}}.axm-assist-renderer__stream-content{display:flex;flex-direction:column;gap:.5rem}.axm-assist-renderer__streaming-activity{display:flex;align-items:center;gap:.5rem;padding-block:.15rem}.axm-assist-renderer__activity-label{line-height:1.45}.axm-assist-renderer__text{white-space:pre-line;word-break:break-word;line-height:1.85;font-size:.95rem;letter-spacing:.002em;text-wrap:pretty}.axm-assist-bot__segment ax-conversation-text-renderer{display:block}.axm-assist-bot__segment ax-conversation-text-renderer :is(p,ul,ol){margin-block:.45rem}.axm-assist-bot__segment ax-conversation-text-renderer li{line-height:1.8}.axm-assist-renderer__markdown :is(h1,h2,h3,h4,h5,h6){margin:.55rem 0 .35rem;line-height:1.35;font-weight:600}.axm-assist-renderer__markdown p{margin:.35rem 0}.axm-assist-renderer__markdown ul{margin:.4rem 0;padding-inline-start:1.1rem}.axm-assist-renderer__markdown blockquote{margin:.5rem 0;padding-inline:.65rem .5rem;border-inline-start:3px solid rgba(var(--ax-sys-color-primary),.35);background:rgba(var(--ax-sys-color-primary),.06);border-radius:.25rem}.axm-assist-renderer__markdown code{font-family:var(--ax-font-mono, monospace);font-size:.9em;padding:.1rem .3rem;border-radius:.25rem;background:var(--ax-color-ghost, rgba(0, 0, 0, .06))}.axm-assist-renderer__accordion-group{width:100%}.axm-assist-renderer__accordion-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem .75rem;cursor:pointer;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.axm-assist-renderer__accordion-header-main{min-inline-size:0;display:flex;flex-direction:column;gap:.1rem}.axm-assist-renderer__accordion-header-title{font-size:.78rem;line-height:1.2;font-weight:600;color:var(--ax-color-text-primary, #111827);display:inline-flex;align-items:center;gap:.35rem}.axm-assist-renderer__accordion-header-badge{flex-shrink:0}.axm-assist-renderer__accordion-header-badge--primary{background:rgba(var(--ax-sys-color-primary),.12);border-color:rgba(var(--ax-sys-color-primary),.25);color:rgb(var(--ax-sys-color-primary))}.axm-assist-renderer__accordion-header-badge--success{background:#16a34a1f;border-color:#16a34a40;color:#15803d}.axm-assist-renderer__accordion-header-badge--danger{background:#dc26261f;border-color:#dc262640;color:#b91c1c}.axm-assist-renderer__accordion-header--thinking{background:linear-gradient(180deg,#f59e0b1f,#f59e0b0a),var(--ax-color-surface, #fff)}.axm-assist-renderer__thinking-chevron{display:inline-block;font-size:.65rem;opacity:.75;transition:transform .2s ease;line-height:1;flex-shrink:0}.axm-assist-renderer__thinking-chevron--expanded{transform:rotate(180deg)}.axm-assist-renderer__thinking-body{padding:0 .75rem .625rem;font-size:.75rem;color:var(--ax-color-text-muted, #888);white-space:pre-wrap;word-break:break-word;line-height:1.5;border-block-start:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .06));padding-block-start:.5rem}.axm-assist-renderer__tools{display:flex;flex-direction:column;gap:.375rem}.axm-assist-renderer__tool-card{border-radius:.5rem;border:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .08));background:var(--ax-color-surface, rgba(255, 255, 255, .6));overflow:hidden}.axm-assist-renderer__tool-body{padding:.5rem .75rem .625rem;border-block-start:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .06));display:flex;flex-direction:column;gap:.25rem}.axm-assist-renderer__tool-section-label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ax-color-text-muted, #888)}.axm-assist-renderer__tool-pre{margin:0;max-block-size:10rem;overflow:auto;border-radius:.375rem;background:var(--ax-color-ghost, rgba(0, 0, 0, .03));padding:.5rem;font-family:var(--ax-font-mono, monospace);font-size:.675rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}.axm-assist-renderer__tool-editor-wrap{border-radius:.375rem;overflow:hidden}.axm-assist-renderer__waiting{display:flex;gap:.25rem;padding:.25rem 0}.axm-assist-renderer__dot{inline-size:6px;block-size:6px;border-radius:50%;background:var(--ax-color-text-muted, #999);animation:axm-blink 1.2s ease-in-out infinite}.axm-assist-renderer__dot:nth-child(2){animation-delay:.2s}.axm-assist-renderer__dot:nth-child(3){animation-delay:.4s}.axm-assist-renderer__agent-live-block{border-radius:.75rem;border:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .1));background:var(--ax-color-surface, rgba(255, 255, 255, .72));padding:.75rem .875rem;display:flex;flex-direction:column;gap:.65rem;max-inline-size:min(42rem,100%)}.axm-assist-renderer__agent-live-block--in-accordion{border:none;border-radius:0;background:transparent;padding:.5rem 0 0;max-inline-size:none}.axm-assist-renderer__agent-live-header{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.axm-assist-renderer__agent-live-title{font-size:.8125rem;font-weight:600;color:var(--ax-color-text-primary, #111827);flex:1;min-inline-size:0}.axm-assist-renderer__agent-live-prompt{font-size:.8125rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;padding:.5rem .75rem;border-radius:1.25rem;background:var(--ax-color-ghost, rgba(0, 0, 0, .05));align-self:flex-end;max-inline-size:min(92%,36rem)}.axm-assist-renderer__agent-live-stream{font-size:.8125rem;line-height:1.55;white-space:pre-line;word-break:break-word;padding-block-start:.15rem}.axm-assist-renderer__agent-live-nested-tools{display:flex;flex-direction:column;gap:.35rem;padding-block-start:.15rem;border-block-start:1px solid var(--ax-color-border-default, rgba(0, 0, 0, .08))}.axm-assist-renderer__agent-live-nested-row{display:flex;align-items:center;gap:.45rem;font-size:.72rem}.axm-assist-renderer__agent-live-nested-name{font-family:var(--ax-font-mono, monospace);font-size:.7rem;flex:1;min-inline-size:0;overflow:hidden;text-overflow:ellipsis}.axm-assist-renderer__agent-live-nested-status{color:var(--ax-color-text-muted, #888);flex-shrink:0}\n"], dependencies: [{ kind: "component", type: AXTextRendererComponent, selector: "ax-conversation-text-renderer", inputs: ["message"] }, { kind: "component", type: AXMNodeMessageRendererComponent, selector: "axm-chat-user-form-renderer", inputs: ["message", "node"], outputs: ["formSubmitted"] }, { kind: "component", type: AXMAssistBotImageLineComponent, selector: "axm-assist-bot-image-line", inputs: ["parentMessage", "fileId", "mimeType", "name"] }, { kind: "ngmodule", type: AXAccordionCdkModule }, { kind: "directive", type: i1$4.AXAccordionGroupDirective, selector: "[axAccordionGroup]", inputs: ["accordion", "activeIndex", "collapsedOnItemClick"], exportAs: ["axAccordionGroup"] }, { kind: "directive", type: i1$4.AXAccordionItemContentDirective, selector: "[axAccordionItemContent]", inputs: ["transition"], exportAs: ["axAccordionItemContent"] }, { kind: "directive", type: i1$4.AXAccordionItemHeaderDirective, selector: "[axAccordionItemHeader]", exportAs: ["axAccordionItemHeader"] }, { kind: "directive", type: i1$4.AXAccordionItemDirective, selector: "[axAccordionItem]", inputs: ["isCollapsed"], outputs: ["isCollapsedChange", "onClick"], exportAs: ["axAccordionItem"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i2$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXCodeEditorModule }, { kind: "component", type: i3$2.AXCodeEditorComponent, selector: "ax-code-editor", inputs: ["disabled", "value", "state", "name", "id", "language", "readonly", "placeholder", "lineNumbers", "lineWrapping", "tabSize", "indentWithTab", "theme", "extensions", "ariaLabel", "focusOnReady", "formatOnSave", "minRow", "customCompletions"], outputs: ["onValueChanged", "valueChange", "stateChange", "readonlyChange", "disabledChange", "ready", "save"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5475
5703
|
}
|
|
5476
5704
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAssistMessageRendererComponent, decorators: [{
|
|
5477
5705
|
type: Component,
|
|
5478
5706
|
args: [{ selector: 'axm-assist-message-renderer', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
|
|
5479
5707
|
AXTextRendererComponent,
|
|
5480
|
-
|
|
5708
|
+
AXMNodeMessageRendererComponent,
|
|
5481
5709
|
AXMAssistBotImageLineComponent,
|
|
5482
5710
|
AXAccordionCdkModule,
|
|
5483
5711
|
AXBadgeModule,
|
|
@@ -5748,7 +5976,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
5748
5976
|
></i>
|
|
5749
5977
|
<i class="fa-light fa-screwdriver-wrench axm-assist-renderer__tool-title-icon"></i>
|
|
5750
5978
|
{{ resolveToolDisplayTitle(seg.content.command) }}
|
|
5751
|
-
</span>
|
|
5979
|
+
</span>
|
|
5752
5980
|
</div>
|
|
5753
5981
|
<span
|
|
5754
5982
|
class="axm-assist-renderer__accordion-header-badge axm-assist-renderer__accordion-header-badge--primary"
|
|
@@ -5883,9 +6111,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
5883
6111
|
</div>
|
|
5884
6112
|
</div>
|
|
5885
6113
|
} @else if (line.role === 'assistant' && seg.type === 'node') {
|
|
5886
|
-
@
|
|
6114
|
+
@let assistNodeWidget = axmAssistWidgetNodeFromUnknown(seg.content);
|
|
6115
|
+
@if (assistNodeWidget) {
|
|
5887
6116
|
<div class="axm-assist-bot__segment" dir="auto">
|
|
5888
|
-
<
|
|
6117
|
+
<axm-chat-user-form-renderer [message]="syntheticNodeEmbedMessage(lineIndex, segIndex, seg.content)" />
|
|
5889
6118
|
</div>
|
|
5890
6119
|
}
|
|
5891
6120
|
} @else if (line.role === 'assistant' && seg.type === 'image') {
|
|
@@ -6384,171 +6613,6 @@ const AXM_CONVERSATION_BOT_RENDERER = {
|
|
|
6384
6613
|
icon: 'fa-light fa-sparkles',
|
|
6385
6614
|
};
|
|
6386
6615
|
|
|
6387
|
-
class AXMNodeMessageRendererComponent {
|
|
6388
|
-
constructor() {
|
|
6389
|
-
//#region ---- Inputs & Outputs ----
|
|
6390
|
-
this.message = input.required(...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
|
|
6391
|
-
this.node = input(undefined, ...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
|
|
6392
|
-
this.formSubmitted = output();
|
|
6393
|
-
//#endregion
|
|
6394
|
-
//#region ---- State ----
|
|
6395
|
-
this.contentState = signal('none', ...(ngDevMode ? [{ debugName: "contentState" }] : /* istanbul ignore next */ []));
|
|
6396
|
-
this.formContext = signal({}, ...(ngDevMode ? [{ debugName: "formContext" }] : /* istanbul ignore next */ []));
|
|
6397
|
-
this.isSubmitted = computed(() => this.readSubmittedState(this.message()), ...(ngDevMode ? [{ debugName: "isSubmitted" }] : /* istanbul ignore next */ []));
|
|
6398
|
-
this.rendererState = computed(() => ({
|
|
6399
|
-
deliveryStatus: this.message().status,
|
|
6400
|
-
contentState: this.contentState(),
|
|
6401
|
-
}), ...(ngDevMode ? [{ debugName: "rendererState" }] : /* istanbul ignore next */ []));
|
|
6402
|
-
this.resolvedNode = computed(() => {
|
|
6403
|
-
const payload = this.message().payload;
|
|
6404
|
-
if (this.isUserFormPayload(payload)) {
|
|
6405
|
-
return payload.node;
|
|
6406
|
-
}
|
|
6407
|
-
return this.node() ?? this.createFallbackNode();
|
|
6408
|
-
}, ...(ngDevMode ? [{ debugName: "resolvedNode" }] : /* istanbul ignore next */ []));
|
|
6409
|
-
this.submittedMessage = computed(() => {
|
|
6410
|
-
return '@conversation:chat.user-form.states.submitted-success';
|
|
6411
|
-
}, ...(ngDevMode ? [{ debugName: "submittedMessage" }] : /* istanbul ignore next */ []));
|
|
6412
|
-
}
|
|
6413
|
-
//#endregion
|
|
6414
|
-
//#region ---- Handlers ----
|
|
6415
|
-
onContextChanged(event) {
|
|
6416
|
-
this.formContext.set((event.data ?? {}));
|
|
6417
|
-
}
|
|
6418
|
-
submit() {
|
|
6419
|
-
const context = this.formContext();
|
|
6420
|
-
this.formSubmitted.emit(context);
|
|
6421
|
-
void this.persistSubmittedState(context);
|
|
6422
|
-
}
|
|
6423
|
-
//#endregion
|
|
6424
|
-
//#region ---- Utilities ----
|
|
6425
|
-
isUserFormPayload(payload) {
|
|
6426
|
-
return (typeof payload === 'object' &&
|
|
6427
|
-
payload != null &&
|
|
6428
|
-
'type' in payload &&
|
|
6429
|
-
payload.type === 'user-form' &&
|
|
6430
|
-
'node' in payload);
|
|
6431
|
-
}
|
|
6432
|
-
createFallbackNode() {
|
|
6433
|
-
return {
|
|
6434
|
-
type: 'text-editor',
|
|
6435
|
-
path: 'form.name',
|
|
6436
|
-
name: 'name',
|
|
6437
|
-
options: { placeholder: '@conversation:chat.user-form.fields.name.placeholder' },
|
|
6438
|
-
};
|
|
6439
|
-
}
|
|
6440
|
-
readSubmittedState(message) {
|
|
6441
|
-
const metadata = this.readUserFormMetadata(message.metadata);
|
|
6442
|
-
return metadata?.submitted === true;
|
|
6443
|
-
}
|
|
6444
|
-
readPersistedContext(message) {
|
|
6445
|
-
const metadata = this.readUserFormMetadata(message.metadata);
|
|
6446
|
-
if (!metadata?.context || typeof metadata.context !== 'object') {
|
|
6447
|
-
return null;
|
|
6448
|
-
}
|
|
6449
|
-
return metadata.context;
|
|
6450
|
-
}
|
|
6451
|
-
readUserFormMetadata(metadata) {
|
|
6452
|
-
if (typeof metadata !== 'object' || metadata == null) {
|
|
6453
|
-
return null;
|
|
6454
|
-
}
|
|
6455
|
-
const candidate = metadata['userForm'];
|
|
6456
|
-
if (typeof candidate !== 'object' || candidate == null) {
|
|
6457
|
-
return null;
|
|
6458
|
-
}
|
|
6459
|
-
return candidate;
|
|
6460
|
-
}
|
|
6461
|
-
async persistSubmittedState(context) {
|
|
6462
|
-
const message = this.message();
|
|
6463
|
-
const payload = this.message().payload;
|
|
6464
|
-
const payloadWithValue = this.isUserFormPayload(payload)
|
|
6465
|
-
? { ...payload, value: context }
|
|
6466
|
-
: this.message().payload;
|
|
6467
|
-
const updatedMessage = {
|
|
6468
|
-
...message,
|
|
6469
|
-
payload: payloadWithValue,
|
|
6470
|
-
metadata: {
|
|
6471
|
-
...(message.metadata ?? {}),
|
|
6472
|
-
userForm: {
|
|
6473
|
-
submitted: true,
|
|
6474
|
-
context,
|
|
6475
|
-
},
|
|
6476
|
-
},
|
|
6477
|
-
};
|
|
6478
|
-
conversationSharedStorage.messages.set(updatedMessage.id, updatedMessage);
|
|
6479
|
-
await axConversationIndexedDbStorage.putMessage(updatedMessage);
|
|
6480
|
-
conversationSharedStorage.messageUpdates$.next(updatedMessage);
|
|
6481
|
-
}
|
|
6482
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMNodeMessageRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6483
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMNodeMessageRendererComponent, isStandalone: true, selector: "axm-chat-user-form-renderer", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formSubmitted: "formSubmitted" }, ngImport: i0, template: `
|
|
6484
|
-
<div class="axm-user-form-renderer">
|
|
6485
|
-
@if (!isSubmitted()) {
|
|
6486
|
-
<axp-widgets-container
|
|
6487
|
-
class="ax-flex ax-flex-col ax-gap-3"
|
|
6488
|
-
[context]="formContext()"
|
|
6489
|
-
(onContextChanged)="onContextChanged($event)"
|
|
6490
|
-
>
|
|
6491
|
-
<ng-container
|
|
6492
|
-
axp-widget-renderer
|
|
6493
|
-
[node]="resolvedNode()"
|
|
6494
|
-
[mode]="resolvedNode().mode ?? 'edit'"
|
|
6495
|
-
></ng-container>
|
|
6496
|
-
</axp-widgets-container>
|
|
6497
|
-
|
|
6498
|
-
<div class="ax-flex ax-justify-end ax-mt-2">
|
|
6499
|
-
<ax-button [text]="('@conversation:chat.user-form.actions.submit' | translate | async) ?? ''" (onClick)="submit()"></ax-button>
|
|
6500
|
-
</div>
|
|
6501
|
-
} @else {
|
|
6502
|
-
<div
|
|
6503
|
-
class="ax-mt-1 ax-rounded-xl ax-border ax-border-success-500/25 ax-bg-success-500/10 ax-px-3 ax-py-2 ax-shadow-sm"
|
|
6504
|
-
>
|
|
6505
|
-
<div class="ax-text-[0.7rem] ax-font-bold ax-uppercase ax-tracking-wide ax-text-success-700">
|
|
6506
|
-
{{ '@conversation:chat.user-form.states.submitted' | translate | async }}
|
|
6507
|
-
</div>
|
|
6508
|
-
<div class="ax-mt-1 ax-text-sm ax-font-medium ax-text-on-surface">
|
|
6509
|
-
{{ (submittedMessage() | translate | async) ?? '' }}
|
|
6510
|
-
</div>
|
|
6511
|
-
</div>
|
|
6512
|
-
}
|
|
6513
|
-
</div>
|
|
6514
|
-
`, isInline: true, styles: [":host{display:block;inline-size:min(100%,28rem)}\n"], dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1$4.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i1$4.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6515
|
-
}
|
|
6516
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMNodeMessageRendererComponent, decorators: [{
|
|
6517
|
-
type: Component,
|
|
6518
|
-
args: [{ selector: 'axm-chat-user-form-renderer', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPWidgetCoreModule, AXButtonModule, AXTranslationModule, AsyncPipe], template: `
|
|
6519
|
-
<div class="axm-user-form-renderer">
|
|
6520
|
-
@if (!isSubmitted()) {
|
|
6521
|
-
<axp-widgets-container
|
|
6522
|
-
class="ax-flex ax-flex-col ax-gap-3"
|
|
6523
|
-
[context]="formContext()"
|
|
6524
|
-
(onContextChanged)="onContextChanged($event)"
|
|
6525
|
-
>
|
|
6526
|
-
<ng-container
|
|
6527
|
-
axp-widget-renderer
|
|
6528
|
-
[node]="resolvedNode()"
|
|
6529
|
-
[mode]="resolvedNode().mode ?? 'edit'"
|
|
6530
|
-
></ng-container>
|
|
6531
|
-
</axp-widgets-container>
|
|
6532
|
-
|
|
6533
|
-
<div class="ax-flex ax-justify-end ax-mt-2">
|
|
6534
|
-
<ax-button [text]="('@conversation:chat.user-form.actions.submit' | translate | async) ?? ''" (onClick)="submit()"></ax-button>
|
|
6535
|
-
</div>
|
|
6536
|
-
} @else {
|
|
6537
|
-
<div
|
|
6538
|
-
class="ax-mt-1 ax-rounded-xl ax-border ax-border-success-500/25 ax-bg-success-500/10 ax-px-3 ax-py-2 ax-shadow-sm"
|
|
6539
|
-
>
|
|
6540
|
-
<div class="ax-text-[0.7rem] ax-font-bold ax-uppercase ax-tracking-wide ax-text-success-700">
|
|
6541
|
-
{{ '@conversation:chat.user-form.states.submitted' | translate | async }}
|
|
6542
|
-
</div>
|
|
6543
|
-
<div class="ax-mt-1 ax-text-sm ax-font-medium ax-text-on-surface">
|
|
6544
|
-
{{ (submittedMessage() | translate | async) ?? '' }}
|
|
6545
|
-
</div>
|
|
6546
|
-
</div>
|
|
6547
|
-
}
|
|
6548
|
-
</div>
|
|
6549
|
-
`, styles: [":host{display:block;inline-size:min(100%,28rem)}\n"] }]
|
|
6550
|
-
}], propDecorators: { message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: true }] }], node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: false }] }], formSubmitted: [{ type: i0.Output, args: ["formSubmitted"] }] } });
|
|
6551
|
-
|
|
6552
6616
|
// const AXM_USER_FORM_NODE: AXPWidgetNode = {
|
|
6553
6617
|
// type: 'flex-layout',
|
|
6554
6618
|
// name: 'node-layout',
|